PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verrückte Idee: Stereo Vision in DSP



lukepower
24.02.2006, 17:45
Grügott und Hallo,

ich hab nach einiger Recherche eine vielleicht etwas verrückte Idee. Ich möchte meinem geplanten Roboter eine Stereo-Vision verpassen, wo die Bilder zweier Kameras ausgewertet und daraus eine Depthmap erstellt wird. Nun sind die aktuellen Algorithmen zwar nicht "schlecht" bei der Erkennung der Daten, aber sie verlangen nach ordentlich Power. Und da man normalerweise auf einen mobilen Bot keinen 3Ghz Pentium sitzen hat, um rund 10 Bilder/sek zu bekommen, suche ich nach einer anderen Lösung.
Im Web bin ich heute auf einigen Papers gekommen, wo ein solches System in FPGAs oder mittels DSPs (von TI) implementiert wurde, wobei die Daten direkt von den Kameras angeliefert werden und mit bis zu 100 Bildern/sek (bei 640x480px) ausgewertet werden. Und das ganze bei erheblich weniger Saftverbrauch als eine CPU.

Nun meine Frage: Ist so ein System für einen bastler (oder eine Community von bastlern ;) ) überhaupt machbar? Ich meinerseits kann zwar recht gut programmieren, wie ich allerdings so ein FPGA z.B. mit einen ARM oder AVR-COntrollerboard sinnvoll ergänzen soll (oder umgekehrt) wüsste ich nicht. Auch die "beste" Lösung (FPGA oder DSP oder ...?) könnte ich jetzt nicht wirklich ausmachen. Toll wäre, wenn man als Community so ein Projekt unter der GPL entwickeln und die fertige Hardware + drauf laufender Software verkaufen könnte....

Kommentare? :)

Servus

Lukas

ogni42
24.02.2006, 20:09
Wird vielleicht "bastelinteressant" wenn es die neuen AVR32 gibt, die schon die wesentlichen DSP Funktionen (Fixpunkt SIMD) enthalten.

stochri
24.02.2006, 21:40
ch hab nach einiger Recherche eine vielleicht etwas verrückte Idee. Ich möchte meinem geplanten Roboter eine Stereo-Vision verpassen, wo die Bilder zweier Kameras ausgewertet und daraus eine Depthmap erstellt wird. Nun sind die aktuellen Algorithmen zwar nicht "schlecht" bei der Erkennung der Daten, aber sie verlangen nach ordentlich Power. Und da man normalerweise auf einen mobilen Bot keinen 3Ghz Pentium sitzen hat, um rund 10 Bilder/sek zu bekommen, suche ich nach einer anderen Lösung.

Hast Du schon einmal so einen Algorithmus auf dem PC realisiert ? Ich weiss, dass es ziemlich viel Forschung auf dem Gebiet der 3D-Bilderkennung gibt und ich weiss auch, dass eine praktische Realisierung ziemlich schwierig ist.

Ich bin immer der Meinung, man sollte zuerst einen Algorithmus realisiert und die Leistungsfähigkeit getestet haben, bevor man an die Hardware denkt. Es sei denn man will sich an der Hardware aufreiben und später das Projekt begraben.

Aus diesem Grunde halte ich den Ball sehr viel flacher, siehe hier:

https://www.roboternetz.de/phpBB2/viewtopic.php?t=15762

Aber wenn Du schon einen solchen Algorithmus auf dem PC realisiert hast, würde mich das Ergebnis sehr interessieren.

Gruss,
stochri

AxelM
09.03.2006, 20:00
Nun mit einem FPGA ist das wohl zu machen. In sachen DSP bin ich nicht der Fachmann, aber nach meinem Wissenstand ist das bestimmt auch möglich. Das ist aber auch nicht grad einfach in VHDL umzusetzen. Da müsste ich auch einiges an arbeit investieren, obwohl ich mich mal im bezug auf VHDL und FPGA´s nicht als Noob bezeichnen würde. Also realistisch gesehen würde ich sagen, das die lösung im FPGA ohne Vorwissen nicht zu realisieren ist. Es sei denn du bist ne Kämpfernatur :-)

ogni42
09.03.2006, 20:24
Für meinen Geschmack ist es einfacher, auf CPUs mit SIMD Einheiten à la ISSE3 zu setzen (wie z.B. AVR32). Unterm Strich reduzieren sich die richtig "teuren" Bildverarbeitungsroutinen meisten auf Vektor und Matrixoperationen, die sich sehr gut mit SIMD realisieren lassen. Ein VHDL/FPGA Profi kodiert das vielleicht auch sehr schnell, aber zum ist es nach meiner Erfahrung einfacher auf eine leicht zu bedienende (im Sinne von Algorithmen anpassen und testen) Plattform zu setzen.

Die zeitkritischen Codes kann man dann später immer noch in ein FPGA packen, wenn die Algorithmen stabil sind.