Höhere Vision-Leistung durch Vorverarbeitung auf dem Framegrabber

Product / 08.2019


Heutige moderne Bildverarbeitungs- und Videoüberwachungsanwendungen erfüllen wesentlich schwierigere Anforderungen als je zuvor. Sie identifizieren beispielsweise eine kleine Anzahl an Krebszellen im Blut eines Patienten oder zeichnen auf, mit welchen Artikeln Kunden ein Geschäft verlassen, sodass ihre Konten ohne Checkout belastet werden können. Kamerahersteller statten derartige Anwendungen mit Sensoren aus, die eine enorm bessere Bildqualität und mehr Frames pro Sekunde bieten. Die Schnittstellenstandards von Bildverarbeitungssystemen haben Schritt gehalten und warten mit höheren Verbindungsbitraten auf, wie der neue Standard CoaXPress 2.0, der Datenraten von bis zu 12,5 Gigabit pro Sekunde (Gbit/s) bietet.
Diese Fortschritte haben CPUs an ihre Grenzen gebracht, die jetzt wesentlich größere Mengen an Imaging-Daten verarbeiten müssen. Einige Anwendungen verwenden High-End-CPUs oder teilen die Verarbeitung auf mehrere PCs auf. Beide Ansätze sind teuer und letzterer bedeutet auch beträchtlich mehr Platz und Gewicht. Von daher arbeiten viele Anwendungen mit CPU-Lasten knapp unter 100 %, was die Möglichkeit weiterer Leistungssteigerungen einschränkt.
 
Coaxlink-octo-and-CXP-12.png Euresys hat sich diesen Herausforderungen angenommen und ermöglicht Kameraherstellern und Vision-Integratoren, Code in das FPGA der Framegrabber Coaxlink Octo und Coaxlink Quad CXP-12 des Unternehmens hochzuladen. Auf diese Weise können Bildverarbeitungsaufgaben ausgeführt werden, die ansonsten nur auf dem Host möglich gewesen wären. Mit dem Euresys CustomLogic FPGA-Design-Kit sind praktisch alle sich wiederholenden Bildverarbeitungsaufgaben möglich, die für jedes Pixel im Bild ausgeführt werden. Typische Anwendungen Umfassen die Umwandlung des Bildes anhand einer Lookup-Tabelle, wie beispielsweise die Konvertierung der Farbe von der RGB- zur YUV-Skala, die Implementierung eines Rauschreduzierungsalgorithmus oder die Korrektur von Sensordefekten wie schwarzen Pixeln. Eine weitere gängige Anwendung ist die Flat-Field-Korrektur, wobei Unterschiede der Lichtintensität im gesamten Sichtfeld korrigiert werden.
 
Die Bildverarbeitung auf dem Framegrabber bietet wesentliche Verbesserungen bei Bildqualität und Verarbeitungsgeschwindigkeit, insbesondere für moderne Bildverarbeitungssysteme, die derzeit durch die Verarbeitungsleistung des Hostcomputers eingeschränkt sind. Das FPGA verarbeitet das Bild parallel mit der Bildübertragung. So wird ohne weitere Verzögerungen im Framegrabber Verarbeitungszeit auf dem Hostcomputer eingespart. Auf diese Weise können Vision-Systeme eine höhere Auflösung, höhere Bildgeschwindigkeiten und geringere Latenz ohne Kostenerhöhung für den Hostcomputer bieten.
Früher boten Lieferanten von Framegrabbern an, den Code von Kunden in ihre FPGAs im Herzen der Framegrabber einzubinden. Bei diesem Ansatz ist es jedoch erforderlich, dass Nutzer ihre geistigen Eigentumsrechte für die Integration in den Framegrabber preisgeben müssen.
Bei dem neuen CustomLogic-Ansatz ist das nicht der Fall. Hier können Nutzer ihren eigenen FPGA-Code in einer Objektdatei erstellen und kompilieren, die anschließend in das FPGA hochgeladen wird. Dazu wird ein vom Unternehmen des Framegrabbers zur Verfügung gestelltes Tool verwendet.
Der proprietäre Code des Vision-Integrators verlässt dabei niemals den Standort und ein Reverse-Engineering des resultierenden FPGA wäre extrem schwierig und teuer.
Viele große Maschinenhersteller haben ihre eigenen Framegrabber auf Basis von FPGAs entwickelt, die auch Bildverarbeitungs- und Analyseaufgaben ausführen. Diese Framegrabber nutzen in praktisch jedem Fall das alte CameraLink-Protokoll. Die Maschinenhersteller, die diese Framegrabber entwickelt haben, stehen jetzt der schwierigen Herausforderung gegenüber, die Framegrabber an die aktuelle Generation der Hochgeschwindigkeitsschnittstellen wie CXP-12 anzupassen. Ihre Aufgabe kann wesentlich vereinfacht werden, indem sie die integrierte CXP-Schnittstelle und die Fähigkeit nutzen, ihre proprietären Bildverarbeitungsroutinen hochzuladen, wie dies mit den neuen Framegrabbern von Euresys möglich ist.
Das CustomLogic-FPGA-Design belässt bis zu 70 % der Ressourcen auf den Xilinx Kintex Ultrascale XCKU035 FPGAs, die in den Framegrabbern Coaxlink Octo und Coaxlink Quad CXP-12 für die Bildverarbeitung verwendet werden.

FPGA-scale-(2).png

Das Design-Kit bietet Zugriff auf den Pixelfluss der CoaXPress-Kamera, DDR4 On-Board-Speicher und PCIe Gen3-Konnektivität. In der Designphase werden Xilinx Vivado-Entwicklungstools verwendet.
Das Coaxlink CustomLogic-Design-Kit wird mit einem Referenzdesign geliefert, das ein Xilinx Vivado-Projekt mit allen für den Nutzer verfügbaren Schnittstellen enthält.

ReferenceDesignCustomLogic-(1).png
 













Die Schnittstelle für den Datenstrom (Pixel) basiert auf dem AMBA AXI4-Stream-Protokoll. Quellseitig bietet diese Schnittstelle von der Kamera erfasste Bilder. Die Schnittstelle überträgt die Nachbearbeitung von der Benutzerlogik an den PCI Express-DMA-Backend-Kanal. Die Schnittstelle für Steuerung/Status ermöglicht dem Benutzer, Register in der Benutzerlogik über die Coaxlink-Treiber-API zu lesen und zu schreiben.
 
CustomLogic-(1).png

Die Ereignisschnittstelle ermöglicht der Benutzerlogik, zeitgestempelte Ereignisse an das Memento Logging-Tool mit einer Genauigkeit von 1 μs zu senden. Memento liefert Entwicklern eine präzise Zeitachse der zeitgestempelten Ereignisse mit Kontextinformationen einer Logikanalysatoransicht. Es bietet wertvolle Hilfe bei der Anwendungsentwicklung und beim Debuggen sowie während des Maschinenbetriebs.
Die Vivado® High-Level Synthesis (HLS), die als kostenloses Upgrade in allen Vivado HLx-Editionen enthalten ist, beschleunigt die IP-Erstellung durch die Möglichkeit von Spezifikationen in C, C++ und SystemC, die direkt in programmierbare Xilinx-Geräte implementiert werden können. Dazu ist keine manuelle Erstellung von RTL-Code (Register Transfer Level) erforderlich. Für das FPGA-Design müssen die Einschränkungen und Begrenzungen von FPGAs bekannt sein. Darüber hinaus sind Programmierkenntnisse in C++ erforderlich. So schließen beispielsweise die RAM-Begrenzungen (Random Access Memory) in FPGAs in der Regel eine Speicherzuweisung aus.

VivadoProjectCustomLogic_Interface1.png

VivadoProjectCustomLogic_VHD.png

CustomLogic kann viele Bildverarbeitungsaufgaben parallel ausführen und Pixel direkt ohne Pufferung oder Latenz verarbeiten. Durch die Verlagerung sich wiederholender und massiv parallel ausgeführter Aufgaben auf das FPGA kann sich die CPU auf High-Level-Aufgaben konzentrieren und so den Anforderungen moderner Bildverarbeitungsanwendungen nachkommen. Das in CustomLogic enthaltene geistige Eigentum wie die CoaXPress-Schnittstelle und das Logging-System Memento helfen dabei, Produkte in kürzerer Zeit auf den Markt zu bringen.