Optimierung einer Schneidemaschine hinsichtlich der Verarbeitung von Fischfilets.
Beispiele von perfekt umgesetzten Lösungen. Lassen Sie sich überraschen und inspirieren.
Wir zeigen Ihnen konkrete Anwendungen und Potentiale für Ihre Branche.
In unserem Blog finden Sie Beiträge zu neuen technischen Entwicklungen.
Hier finden Sie unsere Videos, Flyer und mehr.
Für Anwender, die unsere Kameras vor Ort testen möchten.
Unser Team steht für Sie bereit. Schreiben Sie uns, wie wir Ihnen weiterhelfen können.
Dank unserer kompetenten Partner finden Sie unsere Produkte überall auf der Welt. So können wir Sie jederzeit mit Service & Support unterstützen.
Melden Sie sich an und bleiben Sie auf dem Laufenden!
FPGA-Programmierung für Embedded-Vision-Systeme
Mit der Nutzung des FPGA-Moduls im Zynq SoC für Bildverarbeitungsaufgaben kann die Geschwindigkeit von Embedded-Vision-Systemen erheblich gesteigert werden. Die Programmierung erfordert ein hohes Maß an Erfahrung, an erster Stelle steht jedoch, abzuwägen, ob eine Implementierung sinnvoll ist. Neben diesem Know-how bietet Bildverarbeitungsexperte Vision Components für seine Z-Kameras auch die Programmierung für spezielle Inspektionsaufgaben an, um bis zu zwanzigfache Leistungssteigerungen zu erreichen.
Bisher wurden FPGA-Module bei Vision Components für interne Systemaufgaben eingesetzt – dass sich die FPGA-Optimierung für Bildverarbeitungsroutinen auch für Anwender nachweislich lohnt, zeigt ein aktueller Anwendungsfall. Für eine 3D-Oberflächeninspektion wurde ein leistungsstarkes und sehr kompaktes Vision-System mit einer 3D-Abtastrate von 30 Hz gesucht. Da für das Gehäuse nicht mehr als 8 x 2 x 14 cm Platz zur Verfügung stand und auch die Leistungsaufnahme 3 W nicht überschreiten durfte, musste das System zudem äußerst kompakt und effizient sein.
Für die Anwendung kam also nur ein Embedded-System infrage. Mit einer herkömmlichen Lösung konnte die gewünschte Auswertegeschwindigkeit allerdings nicht erreicht werden, Vision Components schlug deshalb eine Lösung mit FPGA-Programmierung vor. Erste Tests ergaben schnell, dass die Gesamtauswertegeschwindigkeit dadurch enorm gesteigert werden konnte. Die Erwartungen des Kunden wurden um ganze 20% übertroffen. Tatsächlich konnte in diesem Fall die Auswertung um den Faktor 12 beschleunigt werden, in anderen Fällen sorgt die Nutzung des FPGA sogar für noch größere Leistungssteigerungen um den Faktor 20.
Möglich sind solche Leistungssteigerungen durch die Verlagerung ausgewählter Funktionen vom Multi-Core ARM-Prozessor des Zynq-Moduls der Z-Kameras in das integrierte FPGA. Noch während das aufgenommene Bild zum Prozessor übertragen wird, beginnt das FPGA-Modul bereits mit der Verarbeitung, so dass die ersten Prüfaufgaben abgeschlossen sind, wenn das Bild schließlich zur Bearbeitung durch den ARM-Prozessor in den Speicher gelangt.
Diese parallele Verarbeitung der Bilddaten reduziert die Gesamtverarbeitungszeit erheblich –nämlich um genau die Zeitspanne, die die gleiche Funktion im ARM-Prozessor benötigt hätte. Um diese Art der FPGA-Nutzung anbieten zu können, hat VC seine Z-Kameras mit dem ZYNQ SoC Modul von Xilinx ausgestattet, das eine freie Programmierung erlaubt. Erst damit ist die effiziente Nutzung des FPGA für Auswerteaufgaben überhaupt möglich.
Der augenfälligste Vorteil solch einer Nutzung des FPGA für die Bildauswertung ist die Ausführung der Aufgabe exakt in Pixeltakt. Dadurch kann die gesamte Bandbreite der Sensoren voll ausgenutzt werden. In Anwendungen ohne FPGA-Nutzung ist dies oft nicht möglich, da die Software natürlich ebenfalls Zeit benötigt und dadurch die Prozessgeschwindigkeit verlangsamt. Wird der FPGA aber für die Bildverarbeitung mitgenutzt, kann die Applikation in ungebremster Geschwindigkeit ausgeführt werden.
Kunden profitieren von dieser Expertise. Bei der FPGA-Programmierung ist nämlich schnell festzustellen, dass Funktion nicht gleich Funktion ist. In der Praxis zeigt sich, dass manche Funktionen im FPGA sogar langsamer ausgeführt werden als im ARM. Eine FPGA-Nutzung ist dann natürlich nicht sinnvoll, da die Gesamtleistung sich verschlechtert. Es gilt also abzuwägen, für welche Funktionen die FPGA-Nutzung nützlich und leistungssteigernd ist. VC erleichtert Kunden die Entscheidung pro FPGA deshalb mit einem umfassenden Dienstleistungsangebot und übernimmt auch die Implementierung. Anwender können in einer Simulationsumgebung auf dem PC Tests durchführen. So können alle Funktionen, die auf den FPGA programmiert werden, bereits im Vorfeld eins zu eins getestet und nötigenfalls debuggt werden. Dadurch vereinfacht sich die Fehlersuche enorm und die Entwicklungszeit verkürzt sich deutlich.
Um eine Idee oder ein Konzept auf den FPGA zu bringen, sind Spezialkenntnisse erforderlich. Die Umsetzung erfordert ein hohes Maß an Erfahrung und Fachwissen. Die Funktion der Bausteine und ihre Verschaltung untereinander lässt sich variabel gestalten, um die Funktionsweise einzelner Blöcke festzulegen. Funktionen oder Funktionsoptimierungen können so immer neu konfiguriert werden. Die Schaltungsstrukturen werden dabei mithilfe einer Hardwarebeschreibungssprache konfiguriert, mit der Anwender in der Regel aber nicht vertraut sind. Vision Components bietet seinen Kunden daher nicht nur die erforderliche Expertise um zu entscheiden, wann die FPGA-Programmierung sinnvoll ist, sondern auch eine Möglichkeit, in einem vertrauten Programmierumfeld selbst FPGA-Code zu programmieren.
Das hierfür eingesetzte Xilinx-Tool Vivado HLS erlaubt es Nutzern, den FPGA in den Sprachen C oder C++ zu programmieren. Der enorme Vorteil dieses Tools besteht darin, dass die Software sich vor der ersten Verwendung umfangreich auf dem PC testen, simulieren und debuggen lässt. Die Verwendung von Vivado HLS ist zudem optimal auf die VC-Z-Kameras und die VCLib-Softwarebibliothek zugeschnitten. Darin enthalten sind in C programmierte Funktionen, die bereits für eine effiziente FPGA-Ausnutzung modifiziert bzw. erstellt wurden. Mit der firmeneigenen VCLib können VC-Kunden außerdem auf vorgefertigte Basispakete wie z.B. Farbverarbeitung, unterschiedliche Filterroutinen, Pattern Matching und vieles mehr zurückgreifen.
Die Softwarebibliothek umfasst den gesammelten Erfahrungsschatz aus über 30 Jahren und erlaubt es, Code für FPGA schnell und effektiv zu kompilieren bzw. zu übersetzen. Mit ihr stehen alle notwendigen Bildverarbeitungsfunktionen für die industrielle Anwendung zur Verfügung, die variabel sowohl im ARM-Prozessor als auch im FPGA-Modul eingesetzt werden können – je nachdem, wo sie von größerem Nutzen sind, um für die jeweilige Applikation die bestmögliche Leistung zu erzielen.
Vision Components unterstützt interessierte Anwender beim Einstieg in das Thema FPGA-Programmierung auch mit Weiterbildungsangeboten. In kostenlosen Einführungsseminaren vermittelt das Unternehmen grundlegendes FPGA-Know-how und gibt Einblicke in die Anwendung der Entwicklungsumgebung. Teilnehmer können hier zum Beispiel das Entwicklungstool Vivado HLS zur FPGA-Programmierung in C-Sprache testen und sich mit dem Programmierprozess vertraut machen.
Dass die FPGA-Programmierung besonders auf kleinstem Raum eine hervorragende Lösungsmöglichkeit darstellt, konnte Vision Components u.a. in den folgenden zwei Kundenanwendungen verdeutlichen:
In einer Interferometrieanwendung wurde ein extrem kleines intelligentes System für die Bildverarbeitung benötigt, da kaum Raum für die Installation vorhanden war. Um auf so engem Raum eine Überhitzung zu vermeiden, musste das Bildverarbeitungssystem zudem über eine äußerst geringe Leistungsaufnahme verfügen. Für die Anwendung kam also nur ein intelligentes System in Frage. Um außerdem für die höchst aufwändige Aufgabe die nötige Rechenleistung zu erzielen und die gewünschte Flexibilität der Prozesse in GUI und Kommunikation zu erreichen, führte nur die Kombination aus FPGA und Multi-Core ARM – also die VC Z-Kameras – zum gewünschten Ergebnis.
Für eine andere Applikation in der Nahrungsmittellogistik, bei der Barcodes ausgelesen werden müssen, bot sich ebenfalls die FPGA-Programmierung im Verbund mit den extrem kleinen VC-Kameras an. Dort war prozessbedingt eine extrem hohe Bildrate bei einer sehr schnellen Band- und Objektgeschwindigkeit von 2 m pro Sekunde nötig. Es stand außerdem nur ein sehr kleines Sichtfenster von 20 mm zur Verfügung. Um trotz kleinstem Bauraum alle EAN-13-Barcodes im Bild sicher detektieren und auslesen zu können, erwies eine FPGA-Programmierung sich auch hier als ideale Lösung.
Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter.
Inspirationen, wie Sie Embedded Vision erfolgreich nutzen