StereoBildverarbeitung - Optical Flow

Gast #4056548
Lesenswert?

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 ;)
Gast #4056574
Lesenswert?

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
#4056661
Lesenswert?

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.
Gast #4056712
Lesenswert?

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
Gast #4057064
Lesenswert?

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.
#4817365
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren