Guten Abend, ich möchte ein kleines Projekt starten, habe aber mit FPGAs kaum Erfahrung. Daher mein Problem: Ich plane eine 60-120fps-Echtzeit-Motion-Flow-Anwendung (3D-Scanner). Hierfür würde ich nun gern ein FPGA-Board nutzen. Mein Lattice ICEblink40LP1k ist hierfür vermutlich etwas schwachbrüstig :?. Ich schwanke nun zwischen 3 Platinen: - Lattice ICE40HX8K-DRAGON-EVN - Papilo Duo 2MB - Terasic DE-0 Nano Ich kann aber schwerlich die Leistungsfähigkeit abschätzen. Da man zum DE-0 Nano eine Tochterkarte zukaufen kann tendiere ich dazu. Jedoch würden mir 1,3 MP auch genügen. Der Fokus liegt auf der Geschwindigkeit. Zudem sollte der ein oder andere Stepper angesprochen werden... Ich bin mir darüber im klaren, dass es neben der Architektur auf mein konkretes Programm ankommt. Jedoch bin ich noch sehr unbedarft, und würde meine Anwendung dann ggf. an ein Beaglebone Black koppeln. Welches Board würdet ihr empfehlen? Wer mir sachdienliche Hinweise geben kann, dem ist mein ewiger Dank sicher ;)
Moin, eine ähnlich komplexe Anwendung wurde hier mal mit einem Gigabee von Trenz (Spartan6 mit DDR-Memory) und einem Blackfin erschlagen. Faktisch ein Basisboard, wo man die beteiligten Module einfach ransteckt. Mit so einer Kombination aus DSP und FPGA kommt man meiner Meinung nach am schnellsten zu einer Demo. Alles gleich im FPGA ohne Vorkenntnisse zu machen, ist ziemlich illusorisch, da holen Dich gleich eine Menge Probleme ein. Die aufgezählten Module oben reichen dafür zumindest was Lattice und Xilinx angeht, nicht aus, DE-0 kenn' ich nicht. Die OMAP-basierte HW halte ich für Bilderfassung im Highspeed-Bereich nicht für geeignet (hat mit dem DMA-Handling zu tun). Das ganze ist eine rechte Knacknuss, an der Du locker 5 Mannjahre verbraten kannst. (Der Kommentar kommt übrigens sehr oft bei ambitionierten Projektpostings :-) ) Trotzdem: Viel Erfolg, - Strubi
Ich mache so etwas ähnliches. Aber die Bildbearbeitung findet komplett im PC statt. Die Algorithmen dort zu entwickeln und dort in Bildbuffern zu arbeiten ist wesentlich angenehmer als mit VHDL.
PittyJ schrieb: > Ich mache so etwas ähnliches. > Aber die Bildbearbeitung findet komplett im PC statt. Dito. Die Aufgabe des FPGAs beschränkt sich auch bei mir darauf, die HW (Sensor, etc.) zu steuern, die Datenflut entgegennehmen, zwischenspeichern und umpacken. Dann die Daten (optional) vorfiltern und geeignet komprimieren um sie über den vorhandenen Schlauch (USB2/3) in den PC zu kriegen. Alles andere ist Sache der CPU/GPU.
:
Bearbeitet durch User
Ein DE0-nano ist aber fast für alles zu klein, hat zu wenig IOs und 5MP in 60 oder gar 120fps kannst Du damit gleich vergessen. Auch nur SDRAM Speicher ist zu langsam dafür. Was Du brauchst ist sowas etwas wie Arrow/Terassic SoCKit, mit DDR3-Speicher und einer Erweiterungsmöglichkeit, wo Du die Kameras anschließen kannst. Das ist wohl die günstigste Variante von Altera. Andere Hersteller kenne ich nicht. Im Prinzip musst Du wahrscheinlich die Daten einziehen (5MP bei 60 fps ist schon ordentlich, 120 fps ist auf dem Board mit dem Speicher nicht machbar) Und das noch in Stereo. Nur als Richtwert: 5MP bei 8 Bit (Graustufen) x 60 fps = ca 286 MByte/s. 2 Kameras -> 572 MBytes/s. DDR3 wird da am Anschlag sein (?). Musst Du die Daten also schon mal vorprozessieren: 9x9 Kernel ist wohl zu klein, also 15x15... Es wird sicherlich kein "kleines Projekt" ;-) Mach mal einfach die Rechnung auf, dann siehst Du bald, was machbar ist und was nicht. Vielleicht ist fullHD ausreichend? Oder gar 720p? SVGA, VGA? Schreib die Rechnung hier rein Grüße Kest
Vielen Dank für eure kritischen Stimmen. Ich muss gestehen, dass ich etwas blauäugig herangegangen bin. Ich wollte nicht zwingend auf 5MP... der Nachtrag betraf nur die Tochterkarte für das DE-0 Nano. Es war so angedacht, dass ich die einzelnen Pixel fraktioniere, und zu größeren Superpixeln zusammenfasse, jedoch auch in der Lage bin, die einzelnen Superpixel bei bedarf wieder aufzulösen. Unter diesem Aspekt kam ich erst auf die Idee ein FPGA zu nutzen. Angesichts der Kosten, die mein vorgesehenes Budget sprengen, werde ich wohl nur die Vorverarbeitung auf einem "kleinen" FPGA-Board laufen lassen und erstmal auf 30fps runter gehen. Alles weitere werde ich auf dem Beaglebone black laufen lassen. Ich werde mich dann langsam steigern und sehen was damit geht. Vielleicht klappt es ja auch bis 60fps. Das Arrow/Terassic SoCKit sieht interessant aus. Ich werde es mir vormerken. Allen beteiligten noch einmal einen recht herzlichen Dank! und insbesondere an Kest, der mit seiner Rechnung ein schlagkräftiges Argument hervorgebracht hat, das ich ganz verdrängt hatte.
Weiterhin kannst Du Dir mal die Arbeiten von Dan Strother anschauen, der partitioniert das schon ganz gut, macht aber auch keinen optical flow sondern semi-global block matching (was ähnlich bspw. auch in der Daimler Stereokamera, damals auf einem Spartan-3E sitzt, Paper dazu: http://www.6d-vision.com/9-literatur/gehrig_icvs09). HTH, Micha.
Achso, Dan Strother Link habe ich vergessen: http://danstrother.com/2011/01/24/fpga-stereo-vision-project/
Hallo Micha, Danke für den Hinweis. Für mich war das neu. Für mein Projekt stütze ich mich vorerst auf das Buch: http://www.amazon.de/Robotics-Vision-Control-Fundamental-Algorithms/dp/3642201431/ref=sr_1_5?ie=UTF8&qid=1426788175&sr=8-5&keywords=corke
Dan Strother, kannte ich noch gar nicht. Schaut ja vielversprechend aus - wofür die Leute doch Zeit haben ...
Wir machen Stereobildverarbeitung für Industrieanwendungen. Das meiste läuft auf Grafikkarten, zumindest wenn die Auswertung ein wenig Zeit hat und nicht in Echtzeit erfolgen muss. In jüngster Zeit kommt aber immer mehr in FPGAs rein. Das erfordert aber Rechenpower ohne Ende, wenn es mit der vollen Pixeltaktgeschwindigkeit erfolgen soll. Mit Papillo ist da nix. Eher Stratix und Kintex.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.