Tech-Portal

Tech-Portal

Zero Copy GigE Vision und GPUDirect und GPU-Plug-ins mit eCapture Pro

Hochgeschwindigkeits-Gigevision-Multikamera-Beispiele aus der realen Welt mit GPU Direct und FPGA-Karten Ecapture 1@3x
Vision China Shenzhen 2023 China Bild 7

eSDK und eCapture Pro

Unsere eSDK ist die Low-Level-Softwareprogrammiereroption für vollständige Flexibilität bei benutzerdefinierten Anwendungen. Es verfügt über ausführbare Quellcode-Beispiele, die alle wichtigen Funktionen wie effizientes Erfassen von Frames, PTP-Synchronisierung usw. ausführen. GPUDirect, Multicast, IO-Triggerung und mehr.

Unsere eCapture Pro-Software ist eher anwendungsbasiert mit einem Schwerpunkt auf Systembereitstellung und Rapid Prototyping und umfasst Optionen für maßgeschneiderte GPU- und FPGA-Kartenverarbeitung. Wir kümmern uns um die ganze schwere Arbeit, die mit der Übertragung von Bildern zu Ihrer Verarbeitungsressource verbunden ist, und tun dies mit höchster Leistung. Sie konzentrieren sich auf Ihren Anwendungscode.

Sehen wir uns eCapture Pro in den folgenden Demos in Aktion an. Sehen ist Glauben.

Polarisation

Die erste Demo verwendet eine einzelne Kamera GPUDirect zu einer NVIDIA RTXA6000 GPU. Wir haben ein Polarisation Plug-in auf die GPU geladen. Mithilfe der Plug-In-Parameter wählen wir zunächst die normale Anzeige dieses IMX253-Polarisationssensors aus 10GigE-Kamera. Anschließend wählen wir die Plug-in-Option Polarisationsrichtung aus. Der Farbton ist ein Maß für den Winkel des polarisierten Lichts. Anschließend wählen wir die Plug-in-Option „Polarisationsgrad“ aus, die es uns ermöglicht, in helleren Bereichen zu sehen, wenn das reflektierte Licht stärker polarisiert ist.

Wenn wir ein anderes Motiv betrachten, wählen wir zunächst die normale Betrachtung. Beachten Sie die starke Reflexion der Windschutzscheibe und der Motorhaube. Mit der Plug-in-Option zum Entfernen der Polarisation können wir jetzt die Sichtbarkeit von Windschutzscheibe und Motorhaube verbessern. Mit der Plug-in-Option für den Polarisationsgrad können wir hellere Bereiche auf der Windschutzscheibe und der Motorhaube sehen, was auf stark polarisiertes Licht in diesen Bereichen hinweist, die daher gute Kandidatenbereiche für die Polarisationsentfernung sind. Schauen wir uns die Polarisationsrichtung für dieses Thema an.

Abschließend betrachten wir einen Objektivdeckel mit einem kaum erkennbaren Oberflächenfehler. Mithilfe der Plug-in-Option „Polarisationsgrad“ erhalten wir eine klarere Sicht auf diesen Fehler.

Benutzerdefiniertes Plug-In

Sehen wir uns an, wie man sein eigenes benutzerdefiniertes Plug-In für die Verwendung in eCapture Pro erstellen und dabei die Zero-Copy-, Zero-Loss- und GPUDirect-Funktionalität voll ausnutzen kann, während man nur Plug-In-Code schreibt. Wir schreiben zunächst unseren Cuda-basierten Code für die NVIDIA-GPU. Mit eCapture Pro stellen wir eine Reihe funktionierender Beispiele bereit, wie zum Beispiel das polarisierte Plug-in, das Sie gerade gesehen haben. Anschließend kompilieren wir unseren Code, der die Plug-in-DLL erstellt, die wir später in eCapture laden. Wir laden nun die Plug-in-DLL. Anschließend instanziieren wir dieses Plug-in auf der ausgewählten GPU und legen die Plug-in-Option für die erste Anzeige fest. Nachdem wir die gewünschte Kamera an diese GPU angeschlossen haben, führen wir das Plug-in aus, um die resultierende Ausgabe anzuzeigen.

Inferenz-Plug-In

Das nächste Beispiel zeigt ein sehr allgemeines OTS-Inferenzerkennungs-Plug-in. Wir laden das Plug-In. Wir instanziieren das Plug-in auf der gewünschten GPU. Wir verbinden die Kamera mit dieser GPU. Und schließlich führen wir das Plug-in aus und beobachten, wie das Plug-in die Tassen in der Szene erkennt und klassifiziert und dabei feststellt, dass dadurch die Objekte verfolgt werden, während sie sich bewegen.

Mustervergleichs-Plug-In

Das nächste Beispiel zeigt ein sehr allgemeines Mustervergleichs-Plug-in. Die Mustervorlage wird vorab erstellt. Wie zuvor laden wir das Plug-In. Wir instanziieren das Plug-in auf der gewünschten GPU. Wir geben den Pfad zur Mustervorlage an. Wir verbinden die Kamera mit dieser GPU. Und schließlich führen wir das Plug-in aus, um zu beobachten, wie das Muster auf der sich bewegenden Platine verfolgt wird.

Flexibilität beim Plug-In-Routing

Lassen Sie uns nun zeigen, wie einfach es in eCapture Pro ist, die Verteilung der Verarbeitung von 21 neu zu ordnen 10GigE-Kameras mit 3 RTXA4000-GPUs unter Verwendung eines sehr einfachen Helligkeits-Plugins. Wir beginnen damit, alle 21 Kameraausgänge an GPU 1 zu leiten. Dann führen wir das Plugin aus. Beachten Sie, dass wir hier PTP für die 1us-Synchronisierungsgenauigkeit verwenden. Als nächstes deaktivieren wir GPUDirect mit einem einfachen Klick, um zu veranschaulichen, wie wir GPUs oder Umgebungen, die GPUDirect nicht unterstützen, problemlos unterstützen können. Wir führen Hochleistungskopien durch, um Bilder vom Systemspeicher auf die GPU zu verschieben.

Wiederholen wir den vorherigen Test, aber dieses Mal leiten wir 7 Kameraausgänge an jede GPU, um eine ausgewogene Verarbeitungsverteilung zu gewährleisten.

Auch hier zeigen wir, wie man dies ohne GPUDirect konfiguriert. Wir stellen fest, dass wir ohne GPUDirect unabhängig von leistungsstarken Speicherübertragungen die doppelte Systemspeicherbandbreite nutzen, sodass GPUDirect definitiv bevorzugt wird.

H.265/RTMP-Plug-In

Werfen wir nun einen Blick auf ein System mit einer hohen Kameraanzahl, um zu sehen, wie diese Plug-in-Funktion in solchen Systemen mit unglaublicher Benutzerfreundlichkeit genutzt werden kann.

Wir beginnen mit einem 24-Kamera-basierten System, das auf einem einzigen Mittelklasse-Server läuft, und erweitern dieses zunächst auf 48 Kameras. Wir fügen dem System ein paar zusätzliche Netzwerkports hinzu, wobei die Kameras über denselben 48-Port-Switch angeschlossen sind. Anschließend fügen wir eine weitere GPU hinzu, um die zusätzliche Arbeitslast zu bewältigen.

In der Datenflussansicht haben wir ein H.265-Komprimierungs-Plugin geladen und instanziiert. Beachten Sie, dass wir auf diesem einzelnen Server mehrere GPUs haben und die anderen 24 Kameras auf die zweite GPU umleiten müssen. Während alle Kamerabilder komprimiert und auf einem einzigen lokalen m.2-Laufwerk gespeichert werden, haben wir auch eine Kamera für das Streamen an einen RTMP-Client wie YouTube konfiguriert.

Schließlich können wir die h265-Dateien wiedergeben, indem wir sie beispielsweise in mp4 konvertieren.

SSD-Aufzeichnungs-Plug-In

In ähnlicher Weise verfügen wir über viele Systeme mit einer großen Kameraanzahl, die eCapture und die entsprechenden Plug-ins für volumetrische Erfassungsanwendungen verwenden.

Bei diesem speziellen System handelt es sich um ein 48 x 25GigE 25MP 60fps-Design, das alle Bilder auf SSDs speichert. Wir zeigen hier, wie alle Kameras über einen 48-Port-Switch mit den Netzwerkkarten verbunden sind.

In der Datenflussansicht zeigen wir, wie wir die Kameras an bestimmte SSDs weiterleiten. Wir können die Parameter einer Kamera bearbeiten und die Einstellungen dann an alle anderen Kameras im System übertragen. Anschließend starten wir die kurze Testaufnahme im PTP-Synchronisationsmodus mit 1us-Genauigkeit.

Während wir aufzeichnen, sehen wir uns die Registerkarte „System“ an, um zu veranschaulichen, dass während der Aufzeichnung keine Probleme aufgetreten sind, wie z. B. ausgelassene Frames, Verlust der PTP-Synchronisierung oder verpasste Speicherungen aufgrund von Ereignissen, bei denen das Laufwerk voll ist – um nur einige zu nennen. Wenn die Aufzeichnung abgeschlossen ist, können wir die Projektzusammenfassung überprüfen.

F&A

1. Ist der GPU-Plugin-Quellcode für die gezeigten Demos kostenlos?

Absolut, es ist im Lieferumfang enthalten und kostenlos, ebenso wie eCapture Pro für bis zu 2 Kameras. Sie könnten eines dieser Beispiele nehmen und schnell einen eigenen Prototyp erstellen.

2. Welche GPUs unterstützen Sie mit GPUDirect und Zero Copy?

Zum Beispiel RTXA6000, A5000, A4000, RTX6000 ADA, um nur einige zu nennen.

3. Können Plugins mit einer GPU funktionieren, die GPUDirect nicht unterstützt?

Absolut, wir haben eine Option, die nach dem Empfang eines Frames eine leistungsstarke Kopie aus dem Systemspeicher auf die GPU durchführt. Dies entspricht der doppelten Speicherbandbreite und ist abhängig vom Gesamtdurchsatz des Kamerasystems auf den meisten Systemen nutzbar.

4. Können KI-/Inferenz-/Deep-Learning-Berechnungen mit leistungsstarken Einzelserveranwendungen mit mehreren Kameras mithalten?

Auf jeden Fall arbeiten wir an optimal trainierten Modellen, um dies zu veranschaulichen. Wir stellen jedoch fest, dass wir Kunden haben, die bereits viele über 10 10GigE-Kameras auf einem einzigen Server betreiben und solche Inferenzmodelle mit GPUDirect ausführen.

5. Ist Ihre Technologie stärker auf Sport- und Virtual-Reality-Anwendungen ausgerichtet?

Absolut nicht. Die von uns entwickelte Technologie ist ebenso auf die maschinelle Bildverarbeitung und andere Anwendungen anwendbar, wie diese Präsentation gezeigt hat. Über 50 % unseres Marktes entfallen auf Bildverarbeitungsanwendungen.

Emergent ist Partner von NVidia und arbeitet seit 2015 mit NVidia- und Mellanox-Technologie

Über Emergent Vision Technologies

Logo Emergent Vision Technologies 300x110

Hier ist eine Zusammenfassung dessen, worum es bei Emergent geht…

  • Über 10 Auszeichnungen für Innovation und Pionierarbeit im Hochgeschwindigkeitsbereich GigE-Vision Bewegung abbilden
  • 10+ Jahre Versand 10GigE Kameras mit mehr als 140 Modellen
  • 5+ Jahre Versand 25GigE Kameras mit mehr als 55 Modellen
  • 2+ Jahre Versand 100GigE Kameras mit mehr als 16 Modellen
  • Leistungsführer in der Kameratechnologie
  • Konzentriert sich auf Hochgeschwindigkeits-Ethernet/GigE Vision
  • Konzentriert sich darauf, die Verarbeitung von Hochgeschwindigkeits-Bilddaten zu ermöglichen
  • Bereichsscan und Zeilenscan für
  • UV-, NIR-, polarisierte, Farb-, Mono-Modelle für multispektrale Anwendungen
  • Emergentes eSDK für volle Anwendungsflexibilität
  • Emergent eCapture Pro für eine sehr umfassende Softwarelösung
  • Umfassendste Produktpalette und Unterstützung für Hochgeschwindigkeits-Imaging-Anwendungen
  • Jede Geschwindigkeit, jede Auflösung, jede Kabellänge
  • Jetzt verfügbar!

Wir sind ein mehrfach preisgekröntes Unternehmen mit Schwerpunkt auf Hochgeschwindigkeits-GigE-Vision-Produkten.

Wir haben viele Jahre Produktversand in verschiedenen Geschwindigkeiten von 10GigE bis zu 100GigE.

Wir konzentrieren uns stark auf die Bereitstellung von End-to-End-Technologien und Support für die Anwendungen unserer Kunden.

Wir können die meisten Anwendungsanforderungen erfüllen.

Schließlich sind die vorgestellten Produkte jetzt verfügbar.

Einführung von 10GigE Vision und höher

Hier ist ein kurzer Überblick über die Einführung von GigE Vision-Produkten mit unterschiedlichen Geschwindigkeiten von 10GigE bis zu 100GigE. Emergent hat gezeigt, wie Spitzenleistungen erzielt werden können, und viele Märkte einschließlich der Bildverarbeitung für den Einsatz solcher Technologien geöffnet. Einige Unternehmen nutzen gerade jetzt unsere Bemühungen zur Veröffentlichung von 25G- und schnelleren Produkten, aber es ist noch ein weiter Weg, um ratifizierte und leistungsstarke Produkte herauszubringen.

Übernahme von 10GigEVision und höher

Abbildung: Emergent Vision Technologies ist der erste Anbieter von Kameras, die auf 10GigE-, 25GigE-, 50GigE- und 100GigE-Schnittstellen basieren.