PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CMUCam2 und der Bildsensor OV6620



x-ryder
11.10.2004, 16:15
Meine Frage:

Was macht der SX52-Controller der CMUCam2 besonderes mit den Bilddaten des Bildsensors um die Bedienung leichter zu machen (Nebeneffekte: Sparung an Speicher und höhere Geschwindigkeit *HINT*)?

Martin

phreak
11.10.2004, 16:41
komprimieren ? :D

x-ryder
11.10.2004, 16:43
naja naja ich muss sagen: sehr nahe dran (iss natürlich vollkommen falsch aber ich will ihm ja seine illusion lassen)

Martin

phreak
11.10.2004, 19:32
...

sonic
14.10.2004, 17:10
Kommt hier noch was? Lösung? ;-)

Gruß, Sonic

x-ryder
14.10.2004, 17:20
also irgendwie haben nach mir noch drei andere nen beitrag(frage) gepostet und deshalb kommt hier warscheinlich nix

Joerg
14.10.2004, 17:36
Hallo Martin,

\:D/ ich weiß es, ich weiß es ..... \:D/

darf ich lösen?

Viele Grüße
Jörg

x-ryder
14.10.2004, 17:42
na sicherlich

Joerg
14.10.2004, 19:16
Die CMUcams egal ob CMUcam1 oder 2 verfolgen die Idee, das auch ein einfacher relativ schwacher Mikrocontroller um Bildverarbeitungsaufgaben ergänzt werden kann, indem nicht die Videobilder in Echtzeit übertragen werden, sondern nur die Ergebnisse einer übertragenen Aufgabe. Dazu muss die Bildverarbeitung in der Kamera selbst stattfinden.

Zu diesem Zweck haben die Kameramodule sehr schnelle 8-Bit Controller von Ubicom (früher Scenix), die mit 75MHz getaktet eine Leistung von ca. 75MIPS (Millionen Operationen pro Sekunde) erreichen. Bei der CMUcam2 wird ein SX52 verwendet, der Controller hat 4K-Worte Flash EEPROM und 262 byte SRAM. Das ist jeweils doppelt so viel, wie beim bei der CMUcam1 verwendeten SX28.

Die Basisfunktion bei den CMUcams ist das Colortracking, vom Host wird eine Farbe in einem Befehl beschrieben (RGB, jeweils min- und max-Wert).
Der Befehl
:TC 120 255 0 30 0 30
beschreibt also z.B. ein rotes Objekt mit einer gewissen Toleranz. Daraufhin wird vom SX52 das Bild analysiert und abhängig von der Auflösung und Fenstergröße auf der RS232 bis zu 50 mal pro Sekunde ein Paket mit einem Tracking-Rechteck ausgegeben welches bei der CMUcam2 z.B. so aussieht:
T 23 86 18 44 27 119 6 16
Das bedeutet, es wurde obige Farbe gefunden, die Eckpunkte des Rechtecks sind: 18 44 27 119 (x1 y1 x2 y2), der Schwerpunkt liegt bei 23 86 (mx my). Die letzten Parameter (6 16) sind ein Maß für die Anzahl der getrackten Pixel und dem Grad der Übereinstimmung (Pixel/Area) der Farbe.
Gerade die Schwerpunktparameter lassen sich sehr gut für Nachführungsaufgaben verwenden. Auf Wunsch können vom SX52 beim TC-Befehl auch 2 Servos automatisch angesteuert werden (X- und Y-Richtung). Insgesamt sind bis 5 Servos handelbar (werden über Befehl gestellt).
Abschließend noch kurz bemerkt, dass der SX52 der CMUcam2 im Gegensatz zum SX28 der CMUcam1 nicht direkt mit den Kameradaten arbeitet sondern die Bilder in einem sehr schnellen Video-Speicher (Framebuffer) zwischengespeichert werden.
Das ermöglicht zusätzliche Funktionen wie Bewegungserkennung oder spezielle Auswertungen und ein konsistentes Bild bei der Übertragung (Framedump).

Zusammenfassend also, die CMUcams sind nicht dafür gedacht, Bilder in Echtzeit zu übertragen. Es gibt einen Satz von Bildverarbeitungsfunktionen, die Befehle und die Ergebnisse werden als Pakete in ASCII über die serielle Schnittstelle mit bis zu 115.200bps gesendet.

Hoffe, ich konnte die Ausgangsfrage damit hinreichend beantworten,
Viele Grüße
Jörg

sonic
14.10.2004, 19:22
also irgendwie haben nach mir noch drei andere nen beitrag(frage) gepostet und deshalb kommt hier warscheinlich nix

Höchstwahrscheinlich, die haben eben die Regeln nicht gelesen ;-(

Ich werd in Zukunft Threads verstecken die zu früh gestartet sind und sie erst dann wieder hervorzaubern wenn die Frage gelöst ist, ist glaub ich das einfachste...

Ist die Frage korrekt gelöst worden?

Gruß, Sonic

x-ryder
14.10.2004, 19:34
Das wäre zwar auch ne Lösung auf meine Frage, aber das ist nicht die Lösung, die ich meine... 8-[

Martin

Joerg
15.10.2004, 08:37
Das wäre zwar auch ne Lösung auf meine Frage, aber das ist nicht die Lösung, die ich meine... 8-[

Hmm, jetzt wirds schwierig. Da werden noch so einige Sachen gemacht, aber ich wollte eigentlich nicht zu weit ins Detail gehen.
So wird z.B. die Auflösung in X-Richtung halbiert, ohne große Verluste hinzunehmen, macht man ein Framedump, so muss man halt für ein korrektes Seitenverhältnis jeden horizontalen Pixel doppelt darstellen.

Definiere doch einfach mal "Bedienung" in deiner Frage.

Vor allem der Vorteil mit dem Speichersparen ist schwierig zu beurteilen, da weder der SX28 noch der SX52 überhaupt den RAM hat den man bräuchte, um eine Zeile oder gar Bild komplett mit allen Farben abzulegen. Und der Framebuffer AL422B kann mit einer Organisation von 384Kx8 auch deutlich mehr, dem macht das nichts, ob man ihn nur zum Teil oder voll ausnutzt.

Viele Grüße
Jörg

Manf
15.10.2004, 10:20
Da die Frage schon diskutiert wurde, aber wohl noch nicht zur völligen Zufriedenheit beantwortet zu sein scheint, habe ich die Stelle aus der Originalbeschreibung herausgesucht.

Ich nehme an es steht im Abschnitt Frame Differencing, den ich untern angefügt habe. Ich nehme weiter an, die Frage zielt genau auf die Bemerkung mit der der zweite Absatz beginnt: The CMUcam2 internally represents a reference image as an array of 8 by 8 bytes.
Ein vereinfachtes Bild wird gebildet und mit diesem Modellbild wird gerechnet.
Ich finde es schon angebracht, ein bischen weiter in die Materie einzudringen, um ein besseres Verständnis zu bekommen. Gute Anregung, wichtiges Thema mit praktischer Bedeutung.
Sag wenn es falsch ist, ich nehme es gelassen.
Manfred


How does the CMUcam2 do Frame Differencing?
Frame differencing is a method of identifying changes in a series of images. Given multiple images at different times from the same or similar view points, it is possible to compare them in order to isolate objects that may have moved. Using the CMUcam2’s frame differencing functionality is a good way to detect and track such motion in a scene. Instead of storing an entire image, the CMUcam2 stores an abstraction of the image. Using a similar process to color tracking, the CMUcam2 will generate or compare the image on a line by line basis as it receives the data.

The CMUcam2 internally represents a reference image as an array of 8 by 8 bytes. Each element of this array stores the average of a corresponding region on the main camera image. The default setting uses the green or intensity channel, but this can be changed for situations where one channel clearly shows more variation than the others. When a new image is read in, it is also converted into an array of 8x8 bytes. To look for a change, each block in the 8x8 grid is subtracted from the corresponding reference image block. If there is more than a specified threshold, a change is flagged. The rest of the data, such as middle mass, is calculated in an almost identical manner to the way it is in color tracking.

Joerg
15.10.2004, 11:13
Hallo Manfred,

wie schon geschrieben, es werden durchaus noch ein paar Tricks verwendet, die ich im übrigen auch nicht alle kenne. Mir steht leider (trotz 12 Seiten Lizenzvereinbarung) nicht der Sourcecode zur Verfügung.

Dennoch wird die von dir beschriebene Reduzierung auf 8 x 8 (bzw. 16 x 16 im Hires) nur beim Frame differencing (in erster Linie als Bewegungserkennung gedacht) verwendet.
Die Basisfunktion der CMUcam2 ist nach wie vor das Color-Tracking und da spielt diese Reduzierung keine Rolle.

Also wird Martin gebraucht, der uns zumindest einen Tip geben könnte, in welche Richtung wir "ermitteln" sollen.

Viele Grüße
Jörg

x-ryder
15.10.2004, 17:45
Es geht eher in Richtung Hardware (Matrix *HINT*) von wegen RGB auf der Matrix und sowas, die Matrix kann zwar nicht verändert werden aber die Software kann da etwas ausschließen *HINT*

Joerg
15.10.2004, 21:57
Hallo Martin,

naja von den 4er Gruppen 1xR, 2xG, 1xB des OV6620 wird einmal Grün in den Skat gedrückt, meinst du vielleicht das?

Viele Grüße
Jörg

x-ryder
15.10.2004, 21:59
Och MENNO!!!

Fies!!!

Jetzt hab ich wieder zuviel verrarten!!!!!!!!!

RICHTIG!!!!

Martin :cheesy: