PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kamera-Erkennung / Bildverstehen



cooldown
16.05.2008, 19:00
Hallo,

Mich würde mal das Thema Bildverstehen etc. interessieren. Hat jemand von euch damit Erfahrung, Tipps oder ähnliches. Soweit ich das abschätzen konnte bis jetzt scheint das ja mehr als kompliziert zu sein.

Mein Ziel wäre es, ein Bilddaten in echtzeit (Kamera) zu klassifizieren und somit einen Roboter zu navigieren.

Der zweite Punkt wäre Stereoskopie (2 Kameras) um die räumlichen Abstände zu messen.

Und schließlich noch die Navigation, damit der Roboter "weiß" wo er sich im Terrain befindet.

Bin für jeden Tipp in diese Richtung dankbar, woher ich weitere Infos bekomme und wie man so etwas macht.

Robotniks
16.05.2008, 21:13
Kleiner Tipp :-)

www.Roborealm.com

Grüß´le

cooldown
17.05.2008, 00:17
@Robotniks: Danke, guter Tipp.

Sonst noch weitere Tipps/Infos? Denke meine Probleme werden etwas komplexer werden...

Hat schon jemand damit Erfahrungen?

johns
17.05.2008, 07:47
hallo,

http://www.intel.com/technology/computing/opencv/index.htm

lg

oberallgeier
17.05.2008, 08:42
Einfach ist es ganz bestimmt nicht, aber manche beissen sich prächtig durch dabe:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=321651#321651

MarsoTexx
17.05.2008, 10:13
Hallo,

einfach ist das leider nicht.
Trotzdem kannst du so einfach mglich urgendwo nfangen!
Ist schon ein par Jahren herr, habe dammals was d'uber nachtgedaht und einige Algorimten ausgedacht. Wichtigste ist, wie swher es aus wrden soll, versug es zu einfach wie moglich das Probleem an zu schauen und in kleine Teilen von zu schnitten.

Was ich slebst mache ist von ein Webcam einen Bild aus zu schnitten und zu speigern Bitmap. Es gibt im netz viele .DLL die integriert worden konnen in Delphi oder anliches. Mit Delphi kanst du einfach ein Bitmap
(vor)bearbeiten, FarbPegel, Unterschiedlichen Farben usw.
Nachher kommt die Algoritmes.

Hangt auch davon ab wie mit welchen Takt du z.B. dein Robot in eine Raum orientiren willst usw usw....

Ein bestimmten Algoritmes gibt es nicht so fertif so weit ich weis, baer du kannst dich mall vorstellen: wen in ein Raum verschidene helle LED's positioneert worden sind, kann mann die einfach in einen Bitmap erkennen, und mit wenig mathe und Fantasie, kommt maan sehr Weit.
Leiter bin ich noch nicht so Weit um mich damit zu beschaftigen. Zum erst
https://www.roboternetz.de/phpBB2/viewtopic.php?t=25330&postdays=0&postorder=asc&start=22

fertigen. Komm uberigens auch ein Webcam dr'auf mit ObjektErkannung aber kein Position-Im_Raum-Erkannung.

Viel Erfolg. Marcel

Felix G
17.05.2008, 14:34
Bedenke, daß du massenhaft Rechenleistung benötigst, um derartige Dinge in Echtzeit berechnen zu können!

Dein zweiter Vorschlag z.B. (3D-Daten mit 2 Kameras gewinnen) erfordert einige recht aufwändige Berechnungen, denn du musst zunächst eines der Bilder in viele kleine Segmente aufteilen, und dann jedes dieser Segmente auf dem zweiten Bild suchen (Korrelation). Damit erhälst du für jedes Segment den Versatz in X-Richtung. Dann benötigst du noch Informationen zur Orientierung der Kameras zueinander, sowie zu den verwendeten Objektiven (im wesentlichen ist hier die Brennweite von Bedeutung).

Wenn du das alles hast, kannst du mittels der in diesem Artikel (http://de.wikipedia.org/wiki/Photogrammetrie#Zentralprojektion) angegebenen Formel die XYZ-Koordinaten der Segmente ausrechnen (und damit letztendlich auch den Abstand in Metern vom Roboter zu den sichtbaren Objekten).


Das schafft weder ein AVR, noch ein ARM, noch irgendein anderer mir bekannter Mikrocontroller in Echtzeit (mit einem FPGA könnte es klappen), und selbst ein PC könnte Probleme damit haben, wenn die Auflösung zu groß ist.

Willa
17.05.2008, 20:37
denn du musst zunächst eines der Bilder in viele kleine Segmente aufteilen, und dann jedes dieser Segmente auf dem zweiten Bild suchen (Korrelation).
Genau das habe ich grad in Matlab programmiert. Bei einem 1000x1000px Bildpaar, das in ca 240 Segmente aufgeteilt wird (+50% Overlap) dauert die Analyse ca. 1 Minute pro Paar mit FFT auf einem PC....
Also:

Bedenke, daß du massenhaft Rechenleistung benötigst, um derartige Dinge in Echtzeit berechnen zu können!

MarsoTexx
18.05.2008, 12:47
Hi,

das hort sich ales gut an! Man vorsclga vor mein eigenes (zukunftiges) project war, erst mall das Bild zu vorbeartbeiten, z.B. augenommes Bild zumerst mall in sehr wenig Farbpegel umzusetzen. Und dan nicht jeder Pixel zu 'scannen' aber nur mit ein raster z.B. jeder 5. Pixel in die X und Y Richting (muss sicher sein das die Auflusing reigt etc etc.) Wen nachdem Die Brauchbare Pixel ausotiert sind (in diesem Fall 1 aus 5x5 pixe;l sind gewahlt worden) und davon sind einigen weitersortieert worden nach FarbPegel. So bekommt man ein Bild (nen Bild2) mit niederig Losung.

Wenn da aus wieder was gefoiltert wer, kann man wieder weitergehn.
Kann es leider nicht so in Detai erklaren. Wenn aber z.B. verschiede Pixel aus Bild 2 neben einander zelben Pegel haben (im einfachsten Fall ist ein Zwarch-Weis Bild gemacht) kan man in den Ort weiter unde mehr detaiert suchen. Usw...

Heist das jeden Schritt abghanoig ist von einander.

* Farbpegel nach verschieden Werten runterbrignen biss zum Zwarsch-Weis kan das. Die Pegel konnen Linear Logaritmisch usw. verteild werden.

* Wie viel dass Pixel runter geht must mann auch probieren. Vieleicht sind Horizontal und Vertical unterschidelich.

* Das eigentilcihe Algoritmes kann man auch vile wegen auf, und ist abhangig von vorigen Schritten.

In meinen Fall wurde ich dan zu rund experimentieren bis alles gut zusammen hangt. Etwas minder swerig wird es wan Man weis was zu ducrschnitlichh im Raum vorkommm an Objektgorsse un Farben usw usw.
Auch wenn da wegen das "lauf des algorimtes' fruh was raus kommt, und es kann gebraucht worden, kann man den Algotimes abbrechen usw usw.

Marcel

cooldown
18.05.2008, 19:46
Denke leider auch, das das alles ziemlich rechenintensiv wird. Jedoch bennötige ich normalerweise keine so hohen auflösungen von 1000px.
Experimentiere gerade ein wenig mit roborealm.

Felix G
18.05.2008, 19:53
Naja, 1000x1000 ist schon eine extreme Auflösung, aber selbst bei 640x480 muss ein PC schon ziemlich flott sein um es in Echtzeit (also sagen wir mal 25fps) schaffen zu können.

Willa
18.05.2008, 20:01
Das war ja auch nur als Beispiel gedacht um zu zeigen dass z.B. 10fps eine extreme Anforderung sind. Ich habe ja 0,0167 fps.... Wenn man 100x100px nach meiner Methode analysieren würde, wäre die max framerate 1,6fps.... (1000²/100²*0,0167). Natürlich ist meine Methode total suboptimal und ineffizient, aber dennoch.... Es braucht nen Haufen Rechenleistung.... wahrscheinlich besonders wenn man das ganze nicht in Maschinensprache programmiert.

Defiant
13.06.2008, 10:55
Ich weiß, der Thread ist etwas älter, aber: Hat einer von euch schon darüber nachgedacht das ganze mal auf einem FPGA zu realisieren?

marvin42x
23.06.2008, 09:37
Es sieht so aus als bahne sich der nächste Evolutionsschritt in der Bilderkennug an.

Ich hänge hier mal einen Link mit rein der mich sehr beeindruckt hat.
http://www.snotr.com/video/1340
Das kommt von denen:
http://www.robots.ox.ac.uk/~lav/


Netter Gruss

Addyfly
04.07.2008, 08:38
Das ist absolut unglaublich! =D> ... so wie man es auf den vielen Videos auf der Homepage erkennen kann, schaft diese Software es, eine Positionsbestimmung der kamera zu machen... mit nur einen Videobild... und das ohne verzögerung! Vollkommen genial was die da gemacht haben!

Viele Grüße Adrian