Industrielle Automatisierung und Computer-Vision-Anwendungen
Die Industrie 4.0-Initiative ist verantwortlich für das dramatische Wachstum beim Einsatz einer breiten Palette industrieller Internet-of-Things (IIoT)-Geräte, die für industrielle Automatisierungsanwendungen verwendet werden. IIoT-Geräte dienen der Überwachung und Steuerung von Produktionsanlagen und werden auch zur Messung und Analyse des Anlagenzustands im Rahmen von Wartungs-, Reparatur- und Überholungsmaßnahmen eingesetzt.
Sensoren sind unverzichtbar und reichen von Temperaturmessungen über Flüssigkeitsdrucksensoren bis hin zu Kameras für Bildverarbeitungsanwendungen. Sensoren werden auch zur Überwachung von Vibrationen eingesetzt, wobei Algorithmen der Audioverarbeitung mit neuronalen Netzen auf Daten von digitalen Mikrofonen angewendet werden. Auch die Bildverarbeitung ist eine wichtige Sensortechnik, mit der beispielsweise sichergestellt wird, dass die Flaschenetiketten in einer Abfüllanlage korrekt angebracht sind, oder die in Anwendungen der funktionalen Sicherheit zur Isolierung von Geräten eingesetzt wird, wenn Produktionsmitarbeiter einen unsicheren Bereich betreten.
Architektur einer Bildverarbeitungslösung
In jeder modernen Fabrik kann die computergestützte Bildverarbeitung in einer Vielzahl unterschiedlicher Anwendungen eingesetzt werden. Die computergestützte Bildverarbeitung beruht auf dem Einsatz einer oder mehrerer Videokameras, die an ein Computersystem angeschlossen sind. Die Art der Aufgabe bestimmt die Komplexität der Verarbeitung und die erforderlichen Rechenressourcen. Eine Anwendung, die Flaschen anhand der Genauigkeit der Anbringung eines Etiketts akzeptiert oder zurückweist, benötigt beispielsweise nicht unbedingt mehrere Kameras und intensive Rechenressourcen. Ein Algorithmus, der die Ränder des Etiketts innerhalb eines vordefinierten Bereichs auf der Flasche erkennt, ist mit softwarebasierten Kalman-Filtern relativ einfach zu realisieren.
Eine Anwendung, bei der die Körperteile des Bedieners einer hydraulischen Presse von den zu bearbeitenden Metallplatten und der Ausrüstung selbst unterschieden werden müssen, ist jedoch aufwändiger. Diese Anwendung erfordert ein neuronales Netzwerk mit maschinellem Lernen und kann mehrere verschiedene Kamerawinkel erfordern, um die Anforderungen an die funktionale Sicherheit zu erfüllen. Das neuronale Faltungsnetzwerk eignet sich am besten für bildbasierte Objekterkennungsaufgaben und muss vor dem Einsatz trainiert werden. Nach dem Training wird die Verwendung eines neuronalen Netzes als Inferenz bezeichnet. Beim Training werden Hunderte von richtigen und falschen Bildern untersucht, um Merkmale zu identifizieren und zu extrahieren, die die Klassifizierung unterstützen. Abbildung 1 zeigt ein Beispiel für die Architektur einer Bildverarbeitungslösung.
Aus der Sicht der Anwendung gibt es mehrere praktische Überlegungen, die das Entwicklungsteam prüfen sollte. Dazu gehören die Art der zu erkennenden Objekte, die Umgebungslichtbedingungen im Erfassungsbereich, die Geschwindigkeit, mit der sich die Objekte im Sichtfeld der Kamera bewegen, die erforderliche Geschwindigkeit der Objektidentifizierung und die Frage, ob mehrere Kamerawinkel erforderlich sind, um die Aufgabe zuverlässig zu erfüllen.
Auch die Betriebsumgebung muss untersucht werden; so ist für eine Anwendung, die Staub und Feuchtigkeit ausgesetzt ist, ein Schutz der Kamera und der Steuerelektronik gegen Eindringen erforderlich. Auch Vibrationen und Stöße können die Bildqualität beeinträchtigen und die Erkennung weniger zuverlässig machen.
Das Timing der Objekt- oder Merkmalserkennung ist entscheidend. Produktionslinien werden oft mit hoher Geschwindigkeit betrieben, um die Effizienz der Fabrik zu erhalten und die Durchsatzziele zu erreichen. Im obigen einfachen Beispiel einer Flaschenabfüllanlage muss die Bildverarbeitungsanwendung das Bild genau erfassen, verarbeiten und den Status des Etiketts so rechtzeitig bestimmen, dass die identifizierte Flasche behalten oder zurückgewiesen werden kann.
Vorstellung des Arduino Pro Portenta und des Portenta Vision Shields
Die kürzlich vorgestellte Arduino Pro Portenta-Plattform ist eine ideale Mikrocontroller-Plattform für den Prototyp einer industriellen Bildverarbeitungslösung.
Die Arduino-Familie von Mikrocontroller-Entwicklungsplatinen, die ursprünglich als Prototyping-Plattform für Bastler und Macher entwickelt wurde, hat sich ständig weiterentwickelt, um den anspruchsvollen Bedürfnissen von Innovatoren und Herstellern von Industrieanlagen gerecht zu werden.
Arduino hat vielen jungen Elektronikstudenten den Start ins Berufsleben ermöglicht und ist ein erschwingliches und äußerst vielseitiges eingebettetes Einplatinen-System für Entwickler, um neue Produktideen zu testen. Der Open-Source-Ansatz von Arduino in Verbindung mit der wachsenden Zahl von Erweiterungsplatinen und dem umfangreichen Software-Support aus der gesamten Elektronikindustrie hat Arduino als eine der ersten Embedded-Plattformen für viele neue Produktdesigns etabliert.
Die nächste Stufe der Arduino-Reise begann vor kurzem mit der Arduino Pro-Serie von Boards und Modulen für den industriellen Markt. Das Dual-Core Arduino Portenta H7 ist das erste Board der Pro-Serie, das die Anforderungen industrieller und kommerzieller Anwendungen erfüllt. Das Portenta H7 ist für industrielle Bildverarbeitungsanwendungen bestens gerüstet. Es ist im beliebten Arduino MKR-Board-Gehäuseformat gefertigt und ermöglicht den Zugang zu allen bestehenden Arduino-Zubehörboards und Shields. Das Portenta Vision Shield, das entweder mit einer kabelgebundenen Ethernet- oder einer drahtlosen LoRa-Schnittstelle erhältlich ist, eignet sich ideal für industrielle Computer-Vision-Anwendungen.
Der Arduino Portenta H7 verfügt über einen STMicro STM32H747XI Low-Power-Mikrocontroller, der mit einem Arm Cortex-M7- und einem Arm Cortex-M4-Kern ausgestattet ist. Beide Kerne verfügen über Gleitkommaeinheiten (FPU), wobei die M7-FPU doppelt genaue Berechnungen ermöglicht. Der M7-Kern kann mit bis zu 480 MHz und der M4-Kern mit bis zu 240 MHz arbeiten. Der M4-Kern verfügt außerdem über einen integrierten adaptiven Echtzeit-Beschleuniger-GPU, der speziell für die Ausführung von Algorithmen für neuronale Netze entwickelt wurde. Die Energieverwaltung des H7 wird durch die Verwendung von drei Power-Domains ermöglicht, die entweder durch die Anwendung oder durch Clock-Gating ein- und ausgeschaltet werden können. Eine einzige 5-VDC-Quelle versorgt den Portenta mit Strom, und im Standby-Schlafmodus mit aktivierter RTC beträgt der Stromverbrauch typischerweise nur 2,9 uA. Ein on-board PMIC bietet die Möglichkeit, einen Li-Po/Li-Ion-Akku zu laden.
Zu den Peripherie-Schnittstellen des Boards gehören mehrere I2C-, USART-, SPI- und CAN-Ports, eine 8-Bit-Kamera-Schnittstelle und ein MIPI-DSI-Host. Die Analog-Digital-Unterstützung umfasst zwei 12-Bit DACs und drei 16-Bit ADCs.
Das Arduino Portenta Vision Shield wird über High-Density-Anschlüsse mit dem Portenta H7 verbunden. Die integrierte Himan HM-01B0-Kamera mit sehr geringem Stromverbrauch kann QQVGA- und QVGA-Ausgänge mit Bildraten von 15 fps bis 120 fps liefern. Zwei MEMS-Mikrofone sind ebenfalls in das Shield integriert. Die Dual-Core-Fähigkeiten des Portenta H7 ermöglichen die Ausführung von MicroPython-Code und Arduino C-Skizzen auf den separaten Kernen.
Software-Unterstützung beschleunigt den Einsatz von Computer-Vision-Anwendungen
Der Portenta H7 und das Portenta Vision Shield werden vollständig von einer verbesserten Version der beliebten Arduino IDE unterstützt. Darüber hinaus sind ein Cloud-basierter Editor und ein Editor mit Befehlszeilenschnittstelle verfügbar. Komplette Kamera- und Mikrofonbibliotheken werden von der Arduino 2 IDE unterstützt, und auf der Arduino-Website finden sich verschiedene Tutorials.
Das Open-Source-Framework für maschinelles Lernen, OpenMV, und die OpenMV-IDE unterstützen die Portenta-Boards. OpenMV basiert auf Python und ermöglicht die Entwicklung von MicroPython-basierten Bildverarbeitungsanwendungen auf dem Portenta H7. Auf der Arduino-Website finden Sie zum Beispiel ein Tutorial zur Klassifizierung von Bildverarbeitungssystemen mit OpenMV und Edge Impulse.
Das neuronale Netzwerk verwendet Bildklassifizierungstechniken zur Erkennung von Äpfeln und Bananen, aber die beteiligten Konzepte und der angewandte Prozess können auch auf eine Flaschenetikettierungsanwendung angewendet werden.
Arduino Pro Portenta – beschleunigt die Entwicklung industrieller Bildverarbeitungssysteme
Für Embedded-Entwickler und Designer industrieller Anwendungen kann der Einstieg in ein Bildverarbeitungsprojekt eine entmutigende Erfahrung sein. Es ist schon schwierig genug, die Konzepte eines neuronalen Netzwerkalgorithmus zu verstehen, bevor man eine geeignete Prototyping-Plattform ausgewählt hat. Mit dem Arduino Portenta H7 und dem Portenta Vision Shield wird der Entwicklungsprozess jedoch erheblich vereinfacht. Mit der Unterstützung von industrieerprobten und gut unterstützten Machine-Learning-Frameworks, -Bibliotheken und -Tutorials sind die Herausforderungen bei der Entwicklung einer Machine-Vision-Anwendung zudem viel einfacher geworden.
Arduino Portenta H7 Mirocontroller Board
Arduino Portenta Vision Shield