Spinnaker-SDK: Eine API-Bibliothek für die industrielle Bildverarbeitung

Durch die Unterstützung einer breiten Palette von Teledyne GigE- und USB3-Flächenkameras können Ingenieure mit Spinnaker schnell eine Softwarelösung für Bildverarbeitungsanwendungen entwickeln. Mit der Option der vollständigen Kamerasteuerung ermöglicht Spinnaker den Benutzern den Zugang zur Verwaltung jeder Ebene der Bild-Pipeline. Darüber hinaus ermöglicht Spinnaker die zukunftssichere Gestaltung eines Systems, indem Kamerafunktionen, die in Zukunft hinzugefügt werden können, dynamisch auf einen Computer geladen werden, ohne dass der Code neu kompiliert werden muss.

SpinView-GUI

Mit einer intuitiven Benutzeroberfläche ermöglicht die SpinView-GUI, die grafische Benutzeroberfläche von Spinnaker, dem Benutzer den Zugriff auf alle Kamerasteuerungen. Mit der SpinView-Demoanwendung können Benutzer alle Kamerafunktionen erkunden und bewerten, ohne selbst programmieren zu müssen.  Dies ermöglicht ein schnelles Verständnis dessen, was ein Bildverarbeitungssystem leisten kann, ohne dass Entwickler Zeit dafür aufwenden müssen.

SpinView bietet zahlreiche Funktionen, die die Bildaufnahme mit einer Teledyne-Kamera zu einer einfachen Aufgabe machen. Durch die Nutzung des unkomplizierten Spinnaker-Rahmenwerks können Benutzer noch am selben Tag einen Machbarkeitsnachweis schreiben. Um einen nahtlosen Betrieb zu gewährleisten, können Benutzer bei der Bildsynthese die Vorteile des Computerprozessors (CPU) oder der Grafikkarte (GPU) nutzen. Auf diese Weise passt sich Spinnaker an die verfügbare Hardware an und es wird sichergestellt, dass es unabhängig vom verwendeten System reibungslos funktioniert.

Zusätzliche Funktionen:

Speichern des Bildes auf der Festplatte

Aufzeichnen von Videobildern auf der Festplatte

Anzeigen von Histogramm und Fadenkreuz

Anpassbares Layout

Funktionensuche

Anpassbare Protokollierung

Aufbauen auf bestehenden Projekten

Mit Spinnaker bietet Teledyne eine einfache und intuitive API, die die Entwicklung erleichtert. Dank der Unterstützung von C++, C#, C, VB.NET, Python 2.7, Python 3.10, ActiveX und DirectShow können Entwickler Anwendungen in den Programmiersprachen erstellen, die sie am besten beherrschen oder die für ihre Anwendung am besten geeignet sind. Profitieren Sie von der einfachen Fehlersuche und -beseitigung im Code dank einer schnell zu erlernenden API.

Die Verwendung von Beispielcode bietet Entwicklern, die das SDK noch nicht kennen, Unterstützung bei der Verwendung der verschiedenen Funktionen. Mithilfe dieser Beispiele können Entwickler besser verstehen, wie sie das SDK auf ihre eigenen Projekte anwenden können. Zudem zeigen sie, wie das SDK in verschiedenen Szenarien eingesetzt werden kann.

Vielfältige Kameraoptionen

Spinnaker wird auch dann eine Vielzahl von Bildverarbeitungslösungen unterstützen, wenn ein Bildverarbeitungssystem sich weiterentwickelt oder neue Kameras eingeführt werden. Zu den Schnittstellen der unterstützten Kameras gehören USB3, 1GigE, 5GigE und 10GigE. Dies umfasst Modelle wie Blackfly S, Firefly S, Genie Nano, Lt Series, Forge und Oryx, die in Zukunft noch besser unterstützt werden.

Diese fortlaufende Unterstützung unseres Kameraportfolios für die industrielle Bildverarbeitung ermöglicht es Entwicklern, eine Anwendung zu erstellen und ihre Anwendungen für zukünftige Upgrades weiter zu verwenden. Die Flexibilität des Systems erstreckt sich auch auf unterschiedliche Kameras, sodass Entwickler komplexe Projekte mit mehreren Kameramodellen erstellen können, wenn sie im Laufe der Zeit Kameras in ihrem Bildverarbeitungssystem aufrüsten oder ersetzen. So wird sichergestellt, dass die Anwendungen auch in den kommenden Jahren mit neuer Hardware kompatibel sind. Daher benötigen Ingenieure bei der Entwicklung ihrer Bildverarbeitungslösungen nur eine einmalige Investition, um ihre Zukunft zu sichern, ohne sich um die Verschwendung von Entwicklungsressourcen sorgen zu müssen.

Anwendungstools

 

Die breite Palette an Visualisierungs- und Debugging-Tools von Spinnaker ermöglicht Entwicklern die Fehlersuche und Optimierung ihrer Systeme für verschiedene Bildverarbeitungsanwendungen. Mit der neuesten Version des AdapterConfig-Tools bietet Teledyne eine einfache Einrichtung von GigE-Kameras für viele der verschiedenen Produktlinien von Teledyne, einschließlich 5GigE- und 10GigE-Kameras. Dieser Prozess läuft automatisch ab, um ein Plug-and-Play-Erlebnis mit jeder GigE-Kamera zu ermöglichen, und kann jede Kamera optimieren, um das Risiko eines unvorhersehbaren Computerverhaltens zu senken.

Das DriverInstaller-Tool ermöglicht eine einfache Flexibilität, indem es dem Benutzer erlaubt, zwischen einem Teledyne-Treiber und einem Treiber eines Drittanbieters zu wechseln. Dies ermöglicht einen einfachen Zugang zur Teledyne-Software und bietet Systemintegratoren gleichzeitig die Möglichkeit, viele unterstützte Softwarelösungen von Drittanbietern zu nutzen. Mit diesem Tool können Systeme, die auf eine bestimmte Software angewiesen sind, aktualisiert werden, um mit Spinnaker zu arbeiten, während gleichzeitig die bestehenden Tools beibehalten werden.

Weitere Tools sind das SpinPixelCorrection-Tool zur Korrektur defekter Pixel, das Logging-Tool zur zeitsparenden Fehlersuche und das GigE Network Tweaking-Tool zur Optimierung der Socket-Parameter für Linux-Systeme.

Unterstützung des Betriebssystems

Teledyne hat der Unterstützung verschiedener Betriebssysteme Priorität gegeben, um eine einfache Integration von Spinnaker zu gewährleisten. Zu den unterstützten Betriebssystemen gehören Ubuntu 22.04, Windows 10, MacOS und Linux ARM. Da viele Benutzer der Teledyne-Bildverarbeitungssysteme unterschiedliche Anwendungen verwenden, ermöglicht die Unterstützung mehrerer Plattformen den Entwicklern, ihre Anwendungen flexibel und weitgehend kompatibel mit Industriestandards zu gestalten.

 

Da Benutzer eine Vielzahl von Systemen mit unterschiedlichen Betriebssystemen verwenden können, hat Teledyne Spinnaker so entwickelt, dass es unter dem Betriebssystem ausgeführt werden kann, das am besten zu den Anforderungen einer Anwendung passt. Damit können Benutzer auch darauf vertrauen, dass Spinnaker bei der Arbeit mit mehreren Systemen für die Zusammenarbeit im Netzwerk ausgelegt ist und die Bildverarbeitungslösungen von Teledyne auf vielen Computern möglich sind.

Programmieren ohne lange Wartezeiten

Ein Bildverarbeitungssystem besteht aus vielen Komponenten. Die zusätzliche Komplexität einiger Systeme kann zu einem weiteren Zeitaufwand für die Integration führen. Ein Hauptziel bei Spinnaker war es, eine effiziente Arbeitsumgebung zu schaffen und so den Zeitaufwand für die Entwicklung zu verringern.

Um eine nahtlose Integration mit Spinnaker zu gewährleisten, hat Teledyne die Verwendung von bekannten Visual Studio-Umgebungen vereinfacht. Beginnen Sie mit der Visual Basic-Entwicklung, ohne sich Kameraeinstellungen oder Nodemap-Namen merken zu müssen. Nutzen Sie die Vorteile von IntelliSense zur Vorhersage von Merkmalsnamen während der Codierung.

T2IR-Unterstützung

T2IR (Trigger-to-Image Reliability) ist ein Rahmenwerk, das durch die Kombination von Software- und Hardware-Funktionen ein zuverlässiges Überprüfungssystem schafft. Mit T2IR können die Benutzer von Teledyne-Kameras darauf vertrauen, dass ihr System während der Verwendung von Spinnaker vorhersehbar ausgeführt wird. Mit Optimierungen für die Verbindung zwischen Kamera und Computersystem lassen sich viele typische Fehler, die bei der Bildaufnahme auftreten können, bereits im Vorfeld vermeiden.

Je anspruchsvoller Bildverarbeitungssysteme werden, desto wichtiger kann es werden, die Systemleistung überwachen zu können. Die Verwendung von T2IR ermöglicht es einem System, Ausnahmen auf kontrollierte Weise zu verwalten. Für den Fall, dass Probleme auftreten, stellt Teledyne Tools für die Fehlersuche und Nachverfolgung zur Verfügung, die eine schnelle Fehlerbehebung ermöglichen. Die Identifizierung von Paketverlusten mit Device and Stream Diagnostics ist eine schnelle Methode zur Fehlerbehebung. Speichern Sie wichtige Daten an einem sicheren Ort, indem Sie Debugging-Meldungen direkt in einem bestimmtes Verzeichnis protokollieren, und zwar über leicht konfigurierbare Dateien, die bereits standardmäßig in Spinnaker enthalten sind.

Optimieren Sie Ihren Code mit der Events Handling-Funktion, die den Benutzer über Ereignisse benachrichtigt und ressourcenintensiven Abfragecode überflüssig macht. Vermeiden Sie die Überlastung des Hostgeräts mit der Buffer Management-Funktion Durch die präzise Steuerung von Kamera- und Hostpuffern können die Bilder festgehalten und übertragen werden. Die Bildaufnahme wird auch durch die Frame Trigger Wait-Funktion optimiert, die verhindert, dass Bilder verloren gehen, indem sie mit dem Host kommuniziert, wenn die Kamera die Möglichkeit hat, neue Bilder aufzunehmen.   Mit diesen robusten Tools trägt T2IR dazu bei, Ausfallzeiten zu reduzieren und gleichzeitig die Reaktionsfähigkeit der Anwendung insgesamt zu verbessern.

GigE Multiplicity

Zusätzliche Aktualisierungen wurden mit der Veröffentlichung von Spinnaker 3.0 unter einem neuen T2IR-Layer mit dem Namen GigE Multiplicity aufgenommen. Diese Gruppe von Funktionen wurde entwickelt, um mehrere GigE-Kameras innerhalb eines Bildverarbeitungssystems zu optimieren.

Eine der wichtigsten Funktionen ist der Multicore GigE Optimizer. Mit dieser Funktion wird der GigE-Netzwerkverkehr auf mehrere Prozessorkerne verteilt, wodurch das System den Verkehr effizienter verarbeiten kann. Der Multicore GigE Optimizer kann helfen, eine Überlastung des Systems zu vermeiden, wenn eine große Datenmenge über das Netz gesendet wird.

Der Datenverkehr wird über mehrere CPU-Kerne verwaltet, um die Ressourcen des Hostgeräts besser zu nutzen. Jeder Kern kann an verschiedenen Teilen des Verkehrsstroms arbeiten. Als Teil von T2IR hilft die Protokollierung von Text und visuellen Hinweisen im Falle einer Verlangsamung des Netzwerkverkehrs bei der Fehlersuche von unvorhersehbarem Verhalten und bei der Vermeidung weiterer Engpässe.

Skalierbarkeit ist ein wichtiger Faktor für viele Bildverarbeitungssysteme. Durch die Möglichkeit, ein System nach Bedarf zu skalieren, kann der Multicore GigE Optimizer die Verkehrslast auch bei steigendem Aufkommen aufrechterhalten, ohne überfordert zu werden. Dies spielt eine wichtige Rolle bei Vorgängen wie dem Hinzufügen neuer Kameras zum System und der Reservierung ungenutzter Kerne zur Verwaltung zusätzlichen Netzwerkverkehrs.