www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA zur Personenerkennung


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Andreas B. (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Servus Leute,

könnt ihr mir beim Einstieg in die FPGA Welt behilflich sein? Und zwar 
habe ich momentan ein Programm in C++ geschrieben, das per http auf eine 
IP-Kamera zugreift und dort ein Bild abruft. Anschließend wird dieses 
Bild analysiert (OpenCV) und darin gefundene Personen eingezeichnet.

Unter C++ funktioniert das System bereits, nun möchte ich das ganze mit 
Hilfe eines FPGAs / DSP umsetzen.

Könnt ihr mir da etwas behilflich sein? Was verwendet man jetzt an 
Hardware? Werde ich alles neuprogrammieren müssen?

Autor: Strubi (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Moin,

das Thema wird hier immer wieder mal durchgekaut, dürften einige 
ausführliche Threads zu finden sein, aber in Kürze:

> Werde ich alles neuprogrammieren müssen?

Beim FPGA ja, beim DSP je nachdem.
Beim FPGA gilt: rechenintensive, wenig komplexe Ops in gut gepipelinte 
Logik packen (also z.B. FIR-Filter-Ops). Bei den meisten DSPs sollte man 
sich im klaren sein, dass sie bei float/double-Arithmetik 
performancetechnisch in die Knie gehen.
Was ist deine Motivation? Wenn's nur "embedded" sein soll, würde ich zu 
einem ARM greifen, ev. mit FPU, wenn Du viele float-Routinen aus openCV 
benutzt.
Aber eine gute und genaue Antwort kann man Dir nur geben, wenn Du deine 
"processing stages" etwas dokumentierst.

Salut,

- Strubi

Autor: Tim T. (tim_taylor)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Andreas B. schrieb:
> Werde ich alles neuprogrammieren müssen?

Ja.

Autor: PittyJ (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Warum willst du das überhaupt auf einen FPGA oder DSP umsetzen?
Ein DSP läuft ja auch mit C++, also höchstens ein Recompile. Und dann 
sehen, was man optimieren kann, um die Vorteile eine DSP auszunutzen.

Mit einem FPGA alleine wird es nicht gehen. Es sei denn du 
implementierst einen Softcore-Prozessor im FPGA. Und ob dieser dann 
schneller ist, als eine normaler Prozessor....?
Alleine das Ansprechen der Kamera über TCPIP wird Monate in Anspruch 
nehmen. Und dann ist noch kein Bild ausgewertet.

Vielleícht sollte man bei dem jetzigen Programm analysieren: was kann 
parallelisiert werden, und wo kann eine Umsetzung eines einfachen 
Unterprogramms in Hardware etwas nützen.

Als Einstieg in die FPGA-Welt würde ich die üblichen Eval-Boards 
vorschlagen, und dann erst einmal mit Blink-Schaltungen beginnen.
Dann bekommt man ein Gefühl dafür, was geht und wie lange selbst 
einfache Dinge bei der Implementierung benötigen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite Flattr this
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Andreas B. schrieb:
> Unter C++ funktioniert das System bereits,
Auf welcher Plattform?
> nun möchte ich das ganze mit Hilfe eines FPGAs / DSP umsetzen.
Warum?
Welchen Zeitrahmen hast du?
BTW: du kannst auch auf DSPs mit C++ programmieren.

Man glaubt es nicht, was PittyJ schrieb:
> wie lange selbst einfache Dinge bei der Implementierung benötigen.
...solange man das nicht selber mal durchgemacht hat.

PittyJ schrieb:
> du implementierst einen Softcore-Prozessor im FPGA. Und ob dieser
> dann schneller ist, als ein normaler Prozessor....?
Niemals! Billiger, schneller und einfacher als z.B. mit einem Q7-CPU-PC 
bekommst du nirgends Rechenleistung. Immerhin wird bei PCs in 
Gigahertzen gerechnet. Auf einem insgesamt gleich teuren FPGA-System 
freust du dich, wenn deine CPU mit 200MHz läuft...

Autor: Andreas B. (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Also Zeit für das Projekt habe ich genug, da es mein Privatprojekt ist. 
Allerdings verstehe ich nicht, wieso ich schon für das Abrufen von 
Bildern über TCP/IP Monate brauchen werde.  Ist es denn keine 
"Standard-Aufgabe"? Wenn ich mir jetzt mal die FPGA Eval Boards 
anschaue, die es so gibt, dann sind die doch wirklich mit jedem "Scheiß" 
ausgestattet. Gibt es da vom Hersteller des Boards oder der IDE keine 
Bibliotheken, die genau so etwas für mich erledigen und den 
Entwicklungsaufwand auf das Nötigste beschränken?

Mein persönliches Ziel soll eine optische Steuerung für (m)einen Roboter 
sein. Sie soll embedded und echtzeitfähig sein. Aber vor allem 
unabhängig von einem Betriebssystem wie Windows oder Linux.

Meine aktuelle Implementierung mit C++ läuft derzeit unter Windows und 
ist momentan hauptsächlich als PoC gedacht.

Autor: tt2t (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Thomas Pfeifer hat seine Diplom-Arbeit mit Bildverarbeitung mit FPGA+DSP 
gemacht http://thomaspfeifer.net/fpga_dsp_bildverarbeitung.htm

Autor: PittyJ (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Andreas B. schrieb:
> Also Zeit für das Projekt habe ich genug, da es mein Privatprojekt ist.
> Allerdings verstehe ich nicht, wieso ich schon für das Abrufen von
> Bildern über TCP/IP Monate brauchen werde.  Ist es denn keine
> "Standard-Aufgabe"? Wenn ich mir jetzt mal die FPGA Eval Boards
> anschaue, die es so gibt, dann sind die doch wirklich mit jedem "Scheiß"
> ausgestattet. Gibt es da vom Hersteller des Boards oder der IDE keine
> Bibliotheken, die genau so etwas für mich erledigen und den
> Entwicklungsaufwand auf das Nötigste beschränken?

Ich habe für den reinen Ethernet MAC-Verkehr ca 4 Wochen gebraucht. 
Profis schaffen es evtl. in der Hälfte der Zeit. Alles reines VHDL. Und 
da ist noch keine IP-Schicht dabei, die liegt dann darüber.
Es gibt auch einen IP-Core dafür, der bei Altera circa 500 Euro an 
Lizenz kostet. Manche Dinge gibt es auch bei Opencores umsonst. 
Allerdings ist das wie bei freien Bibliotheken in C: man muss sie für 
sein Design anpassen.

Auf den Boards ist alles drauf. Aber nur die Hardware. Und die 
Ansteuerung darf man selber programmieren. Das ist in etwa, als wenn man 
einen PC ohne Betriebssystem hat. Es liegt nur ein C-Compiler dabei.

Es gibt auch die Softcores und System On a Chip Lösungen, die mehr 
bieten. Dafür zahlt man dann auch mehr.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite Flattr this
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Andreas B. schrieb:
> Sie soll embedded und echtzeitfähig sein. Aber vor allem
> unabhängig von einem Betriebssystem wie Windows oder Linux.
Dann lass das Betriebssystem einfach weg...

> Gibt es da vom Hersteller des Boards oder der IDE keine Bibliotheken,
> die genau so etwas für mich erledigen und den Entwicklungsaufwand auf
> das Nötigste beschränken?
Du wirst nicht "am Groben" die Zeit verbrauchen. Kaufleute nehmen da 
gerne das Pareto-Prinzip her (weil sie es nur mit solch einfachen 
Verhältnissen kapieren). Du wirst 80% der Aufgabe in 3 Monaten erledigt 
haben. Und für die restlichen 20% brauchst du dann noch ein zusätzliches 
Jahr.
Ich würde eher ein 9/1 Verhältnis draus machen: nach 2 Monaten bist du 
fast fertig. Und 18 Monate später am Ziel.

> Gibt es da vom Hersteller des Boards oder der IDE keine Bibliotheken,
> die genau so etwas für mich erledigen und den Entwicklungsaufwand auf
> das Nötigste beschränken?
Was ist dir das wert? Rechne mal mit 1k aufwärts für einfache IP-Cores.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net