Choosing the Right Software for Embedded Vision

Die richtige Software für Embedded Vision auswählen

Willkommen zur nächsten Ausgabe der Bildverarbeitungsblogs von ClearView Imaging. Diese Woche schließen wir das Thema Embedded Vision ab, indem wir Softwareoptionen für Embedded-Vision-Systeme abwägen. Lesen Sie bis zum Ende, denn wir werden viele Faktoren berücksichtigen und ein Urteil über unsere Diskussionspunkte fällen.

Egal, ob Sie leistungsstarke Embedded-Vision-Systeme oder kompakte Embedded-Vision-Geräte bauen möchten oder einfach nur mehr über das Thema erfahren möchten, dieser Blog-Beitrag ist für Sie. Letztendlich ist Embedded Vision die Zukunft vieler Bildverarbeitungsanwendungen in der Robotik, industriellen Automatisierung, Medizin, Biowissenschaften und Automobilindustrie, um nur einige zu nennen. Wir wünschen Ihnen viel Spaß beim Lesen.

VS 1-1

Open-Source vs. lizenzierte Bildverarbeitungssoftware für Embedded Vision

Bei der Auswahl von Software für Embedded-Vision-Systeme stellt sich zunächst die Frage: Soll ich Open-Source-Software oder lizenzierte Bildverarbeitungssoftware, wie ein kostenpflichtiges SDK, verwenden? Selbst die besten Spezialisten stehen gelegentlich vor diesem Dilemma. Eine Auswahl zwischen beiden mag einfach klingen, ist es aber oft nicht. Wir wägen die Vor- und Nachteile von Open-Source-Bildverarbeitungssoftware für Embedded Vision ab.

 

Vorteile von Open-Source Embedded Vision Software

Kosten

Auch wenn dies ein offensichtlicher Vorteil ist, ist es wichtig zu betonen, dass Open-Source-Software per Definition kostenlos und offen ist. Sie verursacht auch keine laufenden, unbefristeten Lizenzkosten, sodass Sie beim Versand eines eingebetteten Systems, das Ihre Software verwendet, keine wiederkehrenden Softwarelizenzkosten zahlen. Dies macht diesen Ansatz für den Einsatz in großen Stückzahlen mit begrenzten Budgets machbar.

Ideenaustausch

Open-Source-Plattformen fördern den Ideenaustausch, der es den Entwicklern und Nutzern ermöglicht, bei wichtigen Leistungsthemen und auftretenden Problemen zusammenzuarbeiten, zumal die produzierte Software nicht reguliert ist. OpenCV ist ein großartiger Ort, um Ideen auszutauschen und Fragen an die OpenCV-Entwickler-Community zu stellen.

Interoperabilität

Open-Source-Software entspricht Open-Source-Modellen weitaus zuverlässiger als professionelle Bildverarbeitungssoftware. Sollten Sie ständig mit anderen Branchen und Nutzern interagieren und sich nicht durch etablierte Datenvereinbarungen einschränken lassen wollen, dann ist Open Source der richtige Weg.

Auch wenn dies alles sehr verlockend klingt, ist es wichtig, die folgenden potenziellen Nachteile zu berücksichtigen, bevor Sie sich auf OpenCV stürzen und eine Entscheidung überstürzen.

 undefined-Nov-18-2021-05-03-00-22-PM

OpenCV ist eine weit verbreitete Open-Source-Computer-Vision-Softwarebibliothek.

 

Nachteile von Open-Source Embedded Vision Software

Softwareentwicklung

Sofern Sie die Softwareentwicklung nicht selbst durchführen können, benötigen Sie ein Team von Entwicklern, entweder intern oder extern, mit hervorragenden Softwarekenntnissen in verschiedenen Programmiersprachen und einem tiefen Verständnis für Softwaredesign, Bildverarbeitungsbegriffe und -algorithmen.

Support & Erweiterungen

Support ist wohl das größte Problem bei Open-Source-Software für die Bildverarbeitung.

Auch wenn einige Open-Source-Entwickler eine Garantie anbieten, gibt es nur begrenzte Unterstützung, falls Sie auf Inkompatibilitätsprobleme stoßen, Updates benötigen oder auf Codierungsfehler treffen, die zu Ausfallzeiten führen könnten.

Darüber hinaus könnte Inkompatibilität mit anderen Systemen eine Fehlfunktion Ihrer Hardware verursachen, und ohne Support wäre dies höchstwahrscheinlich schwierig zu lösen, was Ressourcen beanspruchen und Zeit und Geld auf lange Sicht verschwenden würde.

Im Hinblick auf Verbesserungen gilt: Wenn Sie einen bestimmten Algorithmus schneller oder genauer ausführen müssen, müssen Sie möglicherweise warten, bis die Verbesserung kommt, falls überhaupt.

Gewählte Programmiersprache

Sie müssen auch die Sprache berücksichtigen, in der Sie Ihre Software schreiben möchten, und ob Open-Source-Vision-Software flexibel genug ist, um Ihnen das Schreiben in dieser Sprache zu ermöglichen. Die wichtigste Frage, die Sie sich stellen müssen, ist: Wenn ich diese Open-Source-Software wähle, kann ich dann in einer Programmiersprache programmieren, mit der ich bereits vertraut bin?

undefined-Nov-18-2021-05-03-00-41-PM

Python, C#, C++ und Visual Basic sind weit verbreitete Programmiersprachen für die Bildverarbeitung, aber nicht alle werden von Open-Source-Software unterstützt.

 

Zuverlässigkeit

Auch hier ist es entscheidend, die potenzielle Langlebigkeit und Zuverlässigkeit von Open-Source-Software zu berücksichtigen. Wurde sie von bezahlten Bildverarbeitungsexperten ausgiebig getestet? Wenn nicht, könnten Sie das Risiko eingehen, das Leidenschaftsprojekt eines Bildverarbeitungs-Enthusiasten in eine professionelle Umgebung zu integrieren.

Entwicklungs-/Testumgebungen

Es wäre ein Fehler, neue Software-Algorithmen in Ihre Embedded-Vision-Systeme zu implementieren, ohne sie vorher zu testen. Gibt es eine Möglichkeit, Ihren Algorithmus zu testen, ohne das gesamte System zu verwenden? Wenn nicht und Sie diese Phase überspringen, kann Open Source Ihr Projekt lahmlegen.

Funktionalität

Wie komplex sind Ihre beabsichtigten Funktionen der Bildverarbeitungssoftware? Können Sie mit Open-Source-Software sofort das tun, was Sie möchten, oder müssen Sie benutzerdefinierte Bildverarbeitungsalgorithmen schreiben? Falls nicht, werden Sie wahrscheinlich die gleichen Probleme haben, die wir unter Softwareentwicklung erwähnt haben.

Effizienz

Eine weitere große Frage ist, ob Ihre Open-Source-Software die verfügbare Rechenleistung Ihrer Hardware gut nutzen wird. Zum Beispiel: Kann der Algorithmus, den Sie benötigen, mit der gewünschten Geschwindigkeit ausgeführt werden? Bei professionellen lizenzierten Paketen werden Algorithmen konsequent für die neuesten CPU-Befehlssätze, wie SSE, SSE2, SSE3, SSE4, AVX, AVX-512 usw. optimiert und getestet.

Unterstützte Hardware

Was ist, wenn die Open-Source-Algorithmen von Ihrer Bildverarbeitungs-Hardware überhaupt nicht unterstützt werden? Dies ist eine besonders wichtige Frage in der Welt der Embedded Vision, wo Ihre Hardware-Optionen aufgrund von Größe und physischen Integrationsaspekten möglicherweise eingeschränkter sind. Funktioniert Ihre Software mit der von Ihnen verwendeten CPU, ganz zu schweigen von den Embedded-Vision-Kameras, Framegrabbern usw.?

Entscheidung zwischen Open-Source- und lizenzierten Bildverarbeitungs-SDKs

Unterm Strich gilt: Wenn Sie ein Hobbyist im Bereich Bildverarbeitung sind und Softwareprobleme Sie langfristig keine Tausende von Pfund kosten, dann ist Open-Source-Software eine gute Option.

Wenn Sie jedoch ein OEM oder Systemintegrator sind, könnten Sie einen Fehler machen, wenn Sie Open-Source-Software für die Implementierung in Ihre Embedded-Vision-Systeme wählen.

Um das Ganze noch komplexer zu machen, gibt es jedoch auch eine große Hardware-Überlegung anzustellen...

 VS 2

ARM/FPGA vs. Intel/CPU-Prozessoren für Embedded Vision

Intel CPUs

Professionelle Bildverarbeitungssoftwarepakete (wie MIL X) sind stark auf die von ihnen unterstützten Plattformen optimiert. Bei PC-Vision-Systemen läuft fast alles auf Intel-CPUs; zum Beispiel ist Matrox‘ neueste MIL-Version auf die neuesten Intel® Advanced Vector Extensions 512 (AVX-512) geschwindigkeitsoptimiert.

Die Optimierungen, die für Intel-CPUs funktionieren, funktionieren nicht für ARM, daher benötigen Sie ein Unternehmen, das die echte Low-Level-Optimierung durchführen kann – insbesondere wenn Sie ein Echtzeit-Vision-System haben, bei dem alles schnell laufen muss.

Dies könnte zum Beispiel den Unterschied ausmachen, ob Pattern Matching in Millisekunden oder Sekunden erfolgt.

FPGAs

Dann kommen wir zu FPGAs. Typischerweise benötigen Sie einen Hardwareentwickler, der mit VHDL arbeiten kann, um einen Algorithmus zu nehmen und ihn auf einem optimierten FPGA zum Laufen zu bringen. Matrox bietet jedoch Framegrabber an, die mit FPGAs ausgestattet sind, die bereits mit einsatzbereiten Bildverarbeitungsalgorithmen vorinstalliert sind.

Picture3

Matrox RadientPro CL Framegrabber

Dasselbe gilt für die neue NET iam Smart Camera. Diese intelligente Kamera ermöglicht es Anwendern ohne VHDL-Kenntnisse, die FPGA-Ressourcen für ihre eigenen Bildverarbeitungslösungen zu nutzen.

Picture4

NET iam Smart Kamera

Sie können auch kommerzielle Bibliotheken, OpenCV oder NET-Funktionen verwenden – in diesem Fall gibt es vielleicht mehr Nuancen bei der Entscheidung für eine Software, als eine klare, bessere oder schlechtere Bewertung zwischen Open-Source- und lizensierter Bildverarbeitungssoftware, da diese Kamera beides unterstützt.

Auswahl von lizenzierter Bildverarbeitungssoftware

MIL X für Embedded Vision

Es gibt einige fantastische Optionen, wenn es um lizenzierte SDKs für die Bildverarbeitung geht; wir empfehlen normalerweise MIL (Matrox Imaging Library) X, da es das Beste an Bildverarbeitungssoftware darstellt.

 Picture5

MIL X ist nicht nur hardwareeffizient, hochfunktional und zuverlässig, sondern ermöglicht Ihnen auch die Nutzung einer riesigen Bandbreite erstaunlicher Bildverarbeitungsfunktionen. Sie müssen Ihre eigenen Algorithmen nicht selbst schreiben – die Softwareexperten von Matrox haben bereits eine fantastische Auswahl an Bildverarbeitungsfunktionen in MIL X integriert.

Sie müssen sich auch keine Sorgen um Ihre bevorzugte Programmiersprache machen, da MIL X es Ihnen ermöglicht, Ihren Code in Python, C#, C++ und Visual Basic zu schreiben.

MIL X ist eine gemeinsame Software-Schnittstelle, was bedeutet, dass derselbe Kerncode, der für PC-Anwendungen auf einer Intel-CPU mit Windows entwickelt wurde, auch auf einem ARM-Prozessor mit Linux verwendet werden kann, wodurch er sich perfekt für die Installation in Embedded-Vision-Umgebungen eignet.

Darüber hinaus ist MIL X für GenICam-konforme Hardware optimiert, was bedeutet, dass Sie nicht nur einen viel reibungsloseren Weg zur Marktreife haben, sondern auch Software-Support von echten Bildverarbeitungs-Profis erhalten.

Lizenzierte Software wie MIL X erfordert nicht das Maß an internem Support, das Open-Source-Bildverarbeitungssoftware wahrscheinlich benötigen würde, was bedeutet, dass Sie Ihr Projekt ungehindert vorantreiben können.

Fazit

Einige Investitionen in ein großartiges lizenziertes SDK können für OEMs und Systemintegratoren eine Vorabinvestition sein, die Ihnen jedoch über Jahre hinweg Kopfschmerzen erspart. Wenn Sie ein Endnutzer sind oder mit ARM-Prozessoren arbeiten, gibt es etwas mehr Spielraum für Diskussionen, und mit der richtigen Vorbereitung könnte Open-Source-Bildverarbeitungssoftware eine Option für Ihr Embedded-Vision-Projekt sein.

Letztendlich geht es auch um die Frage der Optimierung. In eingebetteten Systemen, wenn Sie sich von einer Intel-CPU wegbewegen, ist es unerlässlich, die erforderliche Geschwindigkeit Ihres Systems genau zu berücksichtigen, wie Ihr System optimiert werden soll, um diese Geschwindigkeitsanforderung zu erfüllen, und schließlich, wer diese Optimierungsarbeit an Ihrem System durchführen wird.

 

Embedded Vision Lösungen von ClearView Imaging

Das war's mit unserer Blog-Beitragsserie über Embedded Vision. Weitere Informationen finden Sie in unserem großartigen Angebot an Bildverarbeitungsprodukten und -lösungen.

Seien Sie nächste Woche wieder dabei, wenn wir eine neue Blog-Serie zur Beleuchtung in der Bildverarbeitung starten!

Hier bei ClearView verfügen wir über ein breites Spektrum an Wissen und Expertise im Bereich der Bildverarbeitung, um Ihnen bei der Auswahl der richtigen Lösung für Ihr Projekt zu helfen.

Wir bieten eine riesige Auswahl an Komponenten, und unsere Experten helfen Ihnen gerne weiter, egal welche Frage oder welches Problem Sie haben. Kontaktieren Sie uns gerne, und einer unserer Bildverarbeitungsexperten hilft Ihnen gerne bei der Umsetzung Ihres Projekts!

Contact Us

Zurück zum Blog >