Forum: FPGA, VHDL & Co. Machine Vision Kamera mit FPGA-Bildbearbeitung selbst bauen


von Jan W. (Firma: TFD - Uni Hannover) (fred84)


Lesenswert?

Hallo,

ich muss leider gestehen, dass ich Maschinenbauer bin und bis jetzt 
recht wenig Ahnung von FPGAs, Platinen, Mikrocontrollern usw. habe. Ich 
beschäftige mich allerdings etwas mit digitaler Bildverarbeitung und 
habe da eine Projektidee für die ich eine "Smarte Kamera", also mit FPGA 
basierter Bildverarbeitung, bräuchte. Davon gibt es bereits einige auf 
dem Markt, aber das entspricht leider nicht wirklich meinen 
Vorstellungen bzw. meine Anwendung braucht eine möglichst hohe 
Bildauflösung (aktuell nutze ich 5120x5120) und das konnte ich als 
fertige Projekt nicht finden.

Außerdem finde ich FPGA und Mikrocontroller total interessant und würde 
mich gerne in das Thema einarbeiten. Das fehlende Wissen kann man sich 
ja anlesen. Ich bin mir allerdings sehr unsicher ob so ein Projekt als 
Hobbyelektroniker überhaupt realisierbar ist und hätte da gerne mal eine 
Einschätzung von ein paar Mitgliedern hier im Forum die mehr Erfahrung 
und Ahnung vom Thema haben.

Als Bildsensor würde z.b. sowas hier in Frage kommen:
http://www.onsemi.com/PowerSolutions/product.do?id=PYTHON25K
Das Bild des Sensors würde ich dann gerne auf einem FPGA auswerten und 
das Ergebnis der Auswertung (die Datenmenge wäre dann deutlich geringer 
als das Bild) über ein LAN-Verbindung schicken. Im Prinzip möchte ich 
gerne eine ähnliche Kamera bauen wie sie von www.vicon.com oder 
http://www.optitrack.com/ zum Motion Tracking eingesetzt werden. Ist 
sowas realistisch oder nicht?

Das die Sensoren usw. teuer sind und das so ein Projekt auch nicht 
gerade zum Einstieg sinnvoll ist, ist mir bewusst. Aber wäre sowas mit 
Erfahrung denkbar.

Jetzt bin ich mal gespannt :-)
Schon mal herzlichen Dank für eure Einschätzung
Jan

: Bearbeitet durch User
von Duke Scarring (Gast)


Lesenswert?

Wieviel Zeit, Geld und Ehrgeiz hast Du?

von jb (Gast)


Lesenswert?

Die Feinmechanik (und auch Optik) in (solch) einer Kamera darf man nicht 
unterschätzen.

Gruß Jonas

von Ich (Gast)


Lesenswert?

http://www.kameras.abs-jena.de/home_de.html ... frag doch mal, ob Du so 
eine FPGA-Kamera als Hardwareplattform für eigene FPGA-Entwicklungen 
bekommen kannst

von Lars R. (lrs)


Lesenswert?

@Jan W.:

Solche Kameras sind typischerweise als Stack von PCBs aufgebaut:
PCB mit Bildsensor
PCB mit FPGA
PCB mit Dateninterface

Ggf. ist auch Bildspeicher vorhanden.

Hier (https://hackaday.io/project/13245-altera-max10-breakout-board) 
habe ich ein Opensource-FPGA-board mit Kicad erstellt, dass für eine 
solche Kamera prinzipiell klein genug und leistungsfähig genug ist. Hast 
Du dazu Verbesserungsvorschläge? Viel Spaß beim Einlesen. Eventuelle 
Fragen zum Progamm gehören in das Unterforum Platinen.

von Florian R. (Firma: TU Wien) (frist)


Lesenswert?

Hi,
ich hätte großes Interesse an so einem Projekt, ich kann allerdings wohl 
eher wenig beisteuern, wenn es fertig ist würde ich es aber nachbauen. 
Ich denke es gibt einen großen Bedarf für offene Kamerasysteme. Am 
unteren Ende gibt es inzwischen einiges, PiCam etc. PixyCam, das reicht 
aber oft nicht und dann bleiben nur ziemlich teure Industrielösungen. 
Wird allerdings wohl leider auch seine Gründe haben, warum die so teuer 
sind.

Grüße
Flo

von Lars R. (lrs)


Lesenswert?

Florian R. schrieb:
> Wird allerdings wohl leider auch seine Gründe haben, warum die so teuer
> sind.

JA: Mangelndes Interesse an der Verfügbarkeit günstiger 
Opensource-Lösungen.

Ansatz: Arducam (google) Dabei meine ich nicht den Verwendungszweck von 
Arducam mit Arduino, sondern die Realisierung und das zur Verfügung 
stehende Material von Arducam.

von soso (Gast)


Lesenswert?

>(https://hackaday.io/project/13245-altera-max10-bre...)

Naja wohl eher ein Stück Pcb mit fanout von einem fpga und ein paar 
Kondis...

Die ganzen bösen Sachen (ddr4, interconnects bla bla) sind nicht 
geroutet.

Gruß J

von Jan W. (Firma: TFD - Uni Hannover) (fred84)


Lesenswert?

Das ging ja fix. Da bin ich ja schon mal erleichtert, dass ich nicht 
gleich für verrückt erklärt worden bin :-). Ich werde mich heute abend 
mal etwas intensiver mit euren Vorschlägen beschäftigen. Zumindest 
scheint es ja nicht unmöglich zu sein.

Habe gerade auch mal mit einem unserer Elektriker gesprochen. Der meinte 
es ist sportlich, sollte aber generell möglich sein. Außerdem habe ich 
gerade rausgefunden, dass es für den Sensor auch ein Evaluation-Board 
gibt. Das könnte hilfreich sein.

Bevor ich beginne, muss ich allerdings noch etwas Selbststudium 
betreiben. Falls ihr gute Literaturempfehlungen zum Thema habt, auch 
gerne zu Grundlagenwissen, immer her damit.

Danke für eure Tipps
Jan

von Gustl B. (-gb-)


Lesenswert?

Sowohl von Digilent (Xilix FPGA) als auch von Terasic (Altera FPGA) gibt 
Module mit Kamera die zu deren FPGA Boards passen. Außerdem haben auch 
einige Kameras FPGAs eingebaut, z. B. die RED. Viele anderen Kameras 
haben genormte Ausgänge die man leicht mit einem FPGA Board verheiraten 
kann. Ich würde da erstmal gar keine Hardware bauen ausser vielleicht 
eine kleiner Adapterplatine die ein Kamerainterface auf 
HSMC/FMC/Pfostenstecker anpasst.

: Bearbeitet durch User
von Christian (Gast)


Lesenswert?

Hallo,

welche Messtechnik hast Du denn zur Verfügung.. ? Sobald Du hier nicht 
mehr auf fertige Eval-Platinen zurückgreifen kannst, sondern selbst 
Leiterplatten entwirfst, wird es ohne geeigente Messgeräte bei der 
Fehlersuche sicherlich äußerst schwierig.

Grüße
Christian

von soso (Gast)


Lesenswert?

>Sowohl von Digilent (Xilix FPGA) als auch von Terasic (Altera FPGA) gibt
>Module mit Kamera die zu deren FPGA Boards passen. Außerdem haben auch
>einige Kameras FPGAs eingebaut, z. B. die RED.

Mit 25 Megapixeln ?

Gruß J

von Lars R. (lrs)


Lesenswert?

soso schrieb:
>>(https://hackaday.io/project/13245-altera-max10-bre...)
>
> Naja wohl eher ein Stück Pcb mit fanout von einem fpga und ein paar
> Kondis...

Daher die Bezeichnung breakout. Die Idee ist, etwas dazu zu bauen...

Für den PYTHON25K (26MP  @80 Hz) ist mein Vorschlag viel zu wenig. 
Sorry, hatte ich überlesen.

von GHD (Gast)


Lesenswert?

Das ist ein Projekt für 5 Mannjahre oder mehr. Neben dem Problemen und 
Kosten, dass ihr weder an richtige Datenblätter noch an die Interface 
Spezifikationen diverser Konsortien rankommt. Lasst es gut sein, kauft 
euch ein eval Board und das Kamera Board dazu, kauft die IP cores und 
wenn dann alles läuft, könnt ihr ein eigenes PCB machen. Ich hoffe ihr 
habt Geld ...

von leuteleute (Gast)


Lesenswert?

Also ich habe das Gefühl, die meisten, die hier antworten, vergessen ein 
elementares Detail: die Datenrate!
Der TO hat eine Kamera verlinkt, die 5120 x 5120 Pixel mit jeweils 
10-bit Auflösung besitzt! Außerdem macht das Teil bis zu 80 fps. Das 
macht insgesamt rund 20 Gbit/s. Die fallen aus dem Kameramodul als 32 
LVDS Channels a 720 Mbit/s raus. Das sind keine Datenraten, die man mal 
so eben routet und aufbaut. Fliegende Verkabelung o.a. anderes ala
Lars R. schrieb:
> Hier (https://hackaday.io/project/13245-altera-max10-bre...)
> habe ich ein Opensource-FPGA-board mit Kicad erstellt, dass für eine
> solche Kamera prinzipiell klein genug und leistungsfähig genug ist.
kann man da mal völlig vergessen. Auch ist der Max10 einfach ein 
lächerlicher Vorschlag für die Anwendung. Klar mag das Teil genug IOs 
haben und vielleicht können die auch jeweils ein knappes Gbit/s 
Datenrate, aber was macht man dann mit den Daten? Der TO will da ja 
Bildverarbeitung anstellen, d.h. er benötigt vielleicht mehrere Frames 
und plötzlich benötigt man Speicher, der 20 Gbit/s wegspeichern kann, 
usw. Zumal es dann ja nicht damit getan ist, die Daten von der Kamera 
ins FPGA zu bekommen und vielleicht 3 Frames noch im RAM abzulegen. 
Damit dann noch ordentlich Bildverarbeitung zu machen benötigt schonmal 
einiges an Erfahrung.

Also ich will es mal so sagen: wenn nicht a) einiges an Geld (locker 
2k€, b) sehr viel Zeit (rechne mal mit mindestens 2 Jahren) und c) 
viiiiel Motivation vorhanden ist, wird das nix.  Zumal der TO nichts mit 
Elektrotechnik am Hut hat und wie er selbst bereits sagt, keinerlei 
Vorkenntnisse besitzt. Da sind die 2 Jahre vermutlich noch mehr als 
gutmütig.

von Lars R. (lrs)


Lesenswert?

leuteleute schrieb:
> Lars R. schrieb:
>> Hier (https://hackaday.io/project/13245-altera-max10-bre...)
>> habe ich ein Opensource-FPGA-board mit Kicad erstellt, dass für eine
>> solche Kamera prinzipiell klein genug und leistungsfähig genug ist.
> kann man da mal völlig vergessen. Auch ist der Max10 einfach ein
> lächerlicher Vorschlag für die Anwendung.

ja, sorry.

> Klar mag das Teil genug IOs
> haben und vielleicht können die auch jeweils ein knappes Gbit/s
> Datenrate

Nein und nein. Dafür nicht einmal das.

> Also ich will es mal so sagen: wenn nicht a) einiges an Geld (locker
> 2k€

Vielleicht nicht mal für ein fertiges System? Der Selbstbau als 
Einzelstück entsprechend teurer. >500EUR allein für PCB?

von Christian (Gast)


Lesenswert?

leuteleute schrieb:

>
> Also ich will es mal so sagen: wenn nicht a) einiges an Geld (locker
> 2k€,

Meinst Du nicht eher 20k? :-)
- Multilayer-Platinen
- fehlerhafte Multilay-Platinen
- geeigente Layout-Software
- multi-100MHz-Messtechnik
- ...

Vielleicht sollte man für ein Lern-Projekt lieber ein paar etwas 
kleinere Brötchen backen. Sprich deutlich kleinere Auflösung, begrenze 
Framerate etc.

Grüße
Christian

von Jan W. (Firma: TFD - Uni Hannover) (fred84)


Lesenswert?

Ok, ich glaube eigene Platine ist erstmal raus. Ich habe mir gerade das 
hier mal angeguckt:
http://store.digilentinc.com/genesys-2-kintex-7-fpga-development-board/

Features:

- Xilinx Kintex-7™ FPGA (XC7K325T-2FFG900C)
- 50,950 logic slices (up 7x), each with four 6-input LUTs and 8 
flip-flops
- Close to 16 Mbits of fast block RAM (up 7x)
- Ten clock management tiles, each with phase-locked loop (PLL)
- 840 DSP slices (up 17x)
- Internal clock speeds exceeding 450MHz
- On-chip analog-to-digital converter (XADC)
- Up to 10.3125Gbps gigabit transceivers
- 1800Mbps DDR3 data rate with 32-bit data width
- Commercial -2 speed grade
- Fully-populated 400-pin FMC HPC connector w/ ten GTX lanes

Wenn ich das richtig verstehe, müsste die Geschwindigkeit erstmal 
reichen. Zwar nicht für die vollen 80 fps, aber 30 fps reichen mir auch. 
Das wären dann bei 5120x5120 px  etwa 26,2144 Mbyte + 30 fps = 786,432 
Mbyte/s.

Für die Bildverarbeitung ist immer nur das aktuelle Bild notwendig. Ob 
die LUTs für den Algorithmus der Bildverabeitung reichen weiß ich zwar 
nicht, aber der FPGA sollte zumindest schon mal die Bilder bei 30 fps 
aufnehmen können oder?

Übrigens, mir ist vollkommen bewusst, dass es kein Lernprojekt ist. Mich 
hat mehr interessiert ob es generell möglich ist sowas selbst zu machen 
:-)

Gruß
Jan

: Bearbeitet durch User
von Marc H. (marchorby)


Lesenswert?

Wie wurde denn früher das Vision-System gemacht?

Bei so alten Siemens-Bestückungsautomaten sind ja auch Kameras (CCIR?) 
drinn die von einer Bilderkennungshardware abgefragt werden. Die 
Bausteine die ich gesehen habe sind in THD. Also nix FPGA. So etwas 
könnte man als Grundlage nehmen!

von Lars R. (lrs)


Lesenswert?

Jan W. schrieb:
> Übrigens, mir ist vollkommen bewusst, dass es kein Lernprojekt ist. Mich
> hat mehr interessiert ob es generell möglich ist soetwas selbst zu machen
> :-)

Diejenigen die können, wollen nicht. Diejenigen die wollen, können 
nicht.

Oder:

Diejenigen die können, fragen nicht ob man kann. Diejenigen, die fragen 
ob man kann, können nicht.

:-)


Kannst Du mit der Framerate noch weiter herunter?

von Florian R. (Firma: TU Wien) (frist)


Lesenswert?

Hi

> - geeigente Layout-Software
> - multi-100MHz-Messtechnik

Das zumindest sollte sich an der Uni auftreiben lassen, wenn man lang 
genug rumfragt, man muss es allerdings auch bedienen können.

Als ich mal recherchiert hab schien es mir ein sehr großes Problem zu 
sein Datenblätter der Sensoren und die Sensoren selbst zu bekommen.

Mein Interesse ging damals allerdings weniger Richtung Geschwindigkeit, 
es sollte eher kein sind und gute Bildqualität liefern. Projekt liegt im 
Moment auf Eis, wenn ein grad laufender Forschungsantrag genehmigt wird, 
fällt allerdings mit etwas Glück sogar ein bisschen Geld dafür ab (in 
der Größenordnung von ein paar kEUR, reicht für Bauteile aber machen 
muss es jemand umsonst - wie so oft).

Grüße
Flo

von leuteleute (Gast)


Lesenswert?

Christian schrieb:
> leuteleute schrieb:
>> Also ich will es mal so sagen: wenn nicht a) einiges an Geld (locker
>> 2k€,
>
> Meinst Du nicht eher 20k? :-)
> - Multilayer-Platinen
> - fehlerhafte Multilay-Platinen
> - geeigente Layout-Software
> - multi-100MHz-Messtechnik
> - ...

Die 2k€ waren wirklich als unterstes Minimum gemeint, danach hat man 
dann ein hobbymäßig gefrickeltes Teil, aber ist noch weit von was 
professionellem weg.
Also damit meinte ich:
- Kameramodul als Einzelstück beim Hersteller zu deutlich günstigerem 
Preis bekommen, unter gewissen Vorraussetzungen (Forschungsprojekt, 
Student, whatever...)
- Design mit PCB-Tool, das nix kostet (z.B. KiCAD)
- günstigste 4-6 Layer Platine beim Chinesen rauslassen
- günstigstes FPGA, das gerade so ausreicht
- usw.

Also wirklich jeden Aspekt kostenoptimieren. Ob man das machen will sei 
dahingestellt ;-)

von Liz (Gast)


Lesenswert?

Was ist denn die Anwendung?
Vielleicht genügt was bereits fertiges?

von Strubi (Gast)


Lesenswert?

Ich schrieb:
> http://www.kameras.abs-jena.de/home_de.html ... frag doch mal, ob
> Du so
> eine FPGA-Kamera als Hardwareplattform für eigene FPGA-Entwicklungen
> bekommen kannst

Nur so am Rande: Auf mehrmalige ernstgemeinte Anfragen bei dieser Firma 
habe ich keine Antwort bekommen. Dafür wurde ich in ihren Werbeverteiler 
aufgenommen.

Für ernsthafte Entwicklung empfehle ich uneingeschränkt das Lattice 
HDR60, damit kriegt man recht schnell was zum Laufen. Wer die 800 USD 
für die Tools nicht spendieren will, kann auch mit einem Aptina 
Evalboard anfangen und mit einem FPGA verdrahten.

Für die Industrie allerdings, wo HDMI weniger eine Rolle spielt, würde 
ich zu den Trenz Gigabee-Modulen greifen. Wir haben damit ein paar 
Speziallösungen gebaut, ohne den Stress mit der DDR-Integration zu 
haben. Das geht beim Spartan6 wirklich locker vom Hocker (von einigen 
Bugs betr. BlockRAM abgesehen)

Grüsse,

- Strubi

von Liz (Gast)


Lesenswert?

Vielleicht ist COTS besser.
25mpixel Kameras mit Cameralink interface und global shutter, 30fps gibt 
es reichlich.
Dazu ein NVIDIA JETSON TK1 mit PIXCI® EB1mini
Interface. Ist kein Fpga, GPU ich weiss, dafür
gibt es aber reichlich freie SW.
Wenn man aber Mathlab mit Vision Fpga Lizenz besitzt, was ich hier 
annehme, verstehe ich die Präferenz zu FPGAs.

von Fpgakuechle K. (Gast)


Lesenswert?

Ich hab mal ne Zeitlang als Angestellter Kameras für machine vision 
gebaut. War so etwa:

CCD<- Sensortreiber <-FPGA <-> SDRAM
   -> VGA ->ADC     ->      -> Bridge -> USB
                                      -> Firewire
                                      -> GigE


Sensoren von Sony 1.3 Megapixel war da schon hoch, Samplerate bis zu 50 
MSps bei 10 bit, FPGA so ein klein bis mittlerer Xilinx spartan-6. Auf 
dem FPGA läuft ein Softcore als bare metal.
Zu Anfang war Linux geplant, das brachte aber mehr Nach- als Vorteile.


Allerdings stellt Sony demnächst die CCD-Sensorproduktion ein: 
https://de.ids-imaging.com/news-article/de_sony-discontinues-ccd-sensors.html

Als einmanprojekt würde ich ohne PCB 6-12 Monate ansetzen, eigentlich 
alles nicht so schwierig. Buchempfehlung zum reinschnuppern in die 
industrille Bilderkennung: ISBN 3-540-41977-2

von Weltbester FPGA.Pongo (Gast)


Lesenswert?

leuteleute schrieb:

>(rechne mal mit mindestens 2 Jahren)
und ich mache da noch eine Null hintendran. Eine Hochleistungsauswertung 
allein kostet schon Mannjahre, wenn man bei Null anfängt und nichts im 
Portefolio hat. Er muss das Rad neu erfinden und ein ganzes Auto bauen.

> viiiiel Motivation vorhanden ist
Wichtiger wäre Realismus.

> Zumal der TO nichts mit Elektrotechnik am Hut hat
Das ist der Hauptgrund für viel Blauäugigkeit. Man kann das Thema nicht 
überschauen und denkt sich, so schwierig wird es schon nicht werden.

> Da sind die 2 Jahre vermutlich noch mehr als gutmütig.
Um das Wissen anzuhäufen, eine Kamera mit solchem Sonderformat 
anzuschließen und auszuwerten, braucht schon der ET-Ansolvent zwei 
Jahre!

Wie soll der Sensor den angeschlossen werden? 16 Leitungen mit 
Cameralink?

Nee, Leute, ich mache solche Sachen und da sind Anfänger einfach 
aufgeschmissen! Eine solche App fährt sauch der Profi lieber mit 4 oder 
9 einzelnen handelsüblichen Kameras und matchet die Bilder zu einem 
großen. Damit ist das Feld auch gleich schön aufgeteilt zum Bearbeiten. 
Dahinter sitzen dann je Kamera 2-4 fette FPGAs, die die Viertelbilder 
prozessieren.

Sowas wird von 3-4 Leuten entwickelt. Dazu gibt es 2 weitere für 
Steuersoftware / firmware, einige Optiker/Mechaniker und einen PL.

Aber ein Maschinenbauabsolvent macht das natürlich mit links :-)

von ..,- (Gast)


Lesenswert?

Weltbester FPGA.Pongo schrieb im Beitrag #4711472:
> Aber ein Maschinenbauabsolvent macht das natürlich mit links :-)

Ich muss mir in der Firma ab und an von nem Maschinenbauer anhören warum 
denn die Entwicklung der Elektronik+Software nicht schneller gehen würde 
und wann wir denn endlich mal testen können - das passende Gehäuse sei 
ja schon lange fertig entwickelt... ;-) ;-P

von PittyJ (Gast)


Lesenswert?

Ich habe beruflich mit solchen Kameras zu tun. Und ich kenne auch ein 
paar Entwickler, und weiss, welche Probleme die mit solchen Kameras zu 
tun haben.

Da wird ein Einsteiger schon gar nicht mit zurecht kommen. Ich denke 
auch, dass es 20 Mannjahre werden, bevor was brauchbares heruas kommt.

Spare lieber das Geld. Ich kenne Firmen, die eine Lösung für deine 
Anforderungen haben. Nur das gibt es nicht für'n Appel und 'n Ei. Denn 
diese Leute haben schon die >20 Mannjahre nachgedacht, und möchten es 
nun bezahlt bekommen.

von Kest (Gast)


Lesenswert?

Aalso:
- man kaufe ein Arria 10 SoC Board --- 4000 € (3-6 Monate darauf warten)
- in der Zwischenzeit wird ein PCB für den Sensor gemacht, welches dann 
auf das Arria 10 Board kommt -- 1 Monat Schematics&Layout (wenn alles 
gut geht), 8-12 Wochen Produktion, 2000-5000€ Materialkosten (2-3 
Prototypen, die hoffentlich nicht verkackt werden)
- Inbetriebnahme -- 2-3 Wochen um das erste Bild im FPGA zu haben. Wenn 
es ganz blöd läuft, dann länger.

Und hier beginnt der Spaß:
- man nehme OpenCL SDK (2-5 kEuro) und implementiere den einfachsten 
Algorithmus auf dem Rechner, schmeißt das in den OpenCL to FPGA compiler 
-- läuft/läuft nicht (1 Monat)

Am Ende hat man viel Zeit und Geld investiert (auch wenn viele sich 
zusammenschließen und in ihre Freizeit alles implementieren) und man hat 
nur einen blöden Edge-Detector...

ODER:
Man kaufe sich eine 0815 Grafikkarte (mit OpenCL Unterstützung) und eine 
"normale" WebCam. Nach ein Paar Stunden hat man dann dasselbe, 
vielleicht nicht in 5Kx5K@80fps Auflösung, aber es ist fertig. Und alle 
freuen sich, dass so viel Geld und Zeit gespart wurde ;-)

Kest
p.s.: als ein Projekt nebenher/Hobby ist es nicht zu machen, da kann man 
sich drehen wie man möchte :-(

von J. S. (engineer) Benutzerseite


Lesenswert?

Jan W. schrieb:

> Als Bildsensor würde z.b. sowas hier in Frage kommen:

Was ist denn da als BV-Plattform angedacht?

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
Noch kein Account? Hier anmelden.