Mit Hilfe von Machine-Learning-basierter Bildverarbeitung können verschiedene Nudelsorten schon auf dem Förderband erkannt und klassifiziert werden.

Bild: iStock, Milkos

Bildverarbeitung mit Machine Learning Pasta auf dem Förderband erkennen

14.05.2019

Farfalle, Penne, Rigatoni und mehr – Nudelsorten gibt es viele. Mit Hilfe von Machine-Learning-basierter Bildverarbeitung können die verschiedenen Sorten schon auf dem Förderband erkannt und klassifiziert werden. Die dafür ausgewählten Systemkomponenten und Werkzeuge lassen sich nicht nur für Pasta, sondern auch für zahlreiche andere Objekte nutzen.

[]

Machine-Learning-Techniken haben sich für eine Vielzahl von Bildverarbeitungsaufgaben als sehr effektiv erwiesen. Bislang nutzen eingesetzte Embedded IoT-Systeme überwiegend vernetzte Cloud-basierte Ressourcen für maschinelles Lernen. Doch es gibt einen wachsenden Trend, diese Bildverarbeitung dezentral "at the edge" am Rand des Netzwerkes zu implementieren. Die richtige Wahl geeigneter Systemkomponenten und Werkzeuge reduziert den Aufwand, die Zeit und das Risiko dieses Designs – wie am Beispiel von industriell gefertigter Nudelsorten deutlich wird.

Kriterien zur Auswahl der Hardware-Architektur

Ein Prozessor mit modularen kompatiblen Komponenten ermöglicht eine flexible Skalierbarkeit des Designs hinsichtlich der Performance, des Stromverbrauchs und der Kosten. Wenn sich die Anforderungen des Designs über die Produktlebensdauer ändern, kann das System flexibel angepasst werden. Real Time Machine Learning ist ein rechenintensiver Prozess, der aufgrund der Parallelität der zugrunde liegenden Rechenoperationen oft effizienter auf eingebetteten Grafikprozessoren (Graphics Processing Unit, GPU) oder Co-Prozessoren betrieben werden kann. Aus diesem Grund ist für eine Machine-Learning-Anwendung ein embedded System-on-Chip (SoC) vorzuziehen, das diese Rechenressourcen bietet. Ein wichtiger Aspekt sind darüber hinaus periphere Schnittstellen und Bandbreiten, die für das Gleichgewicht des Systems erforderlich sind.

Für dieses Beispiel wurde ein Toradex Apalis Computer-on-Module (CoM) ausgewählt, der auf dem QuadMax Prozessor der NXP i.MX8-Serie basiert. Das Modul beinhaltet zwei Cortex-A72 und vier Cortex-A53 als Anwendungsprozessoren und zwei Cortex-M4 als Microcontroller Cores sowie eine integrierte High-Performance Dual Core General Purpose GPU und einen Embedded Hardware Video De- und Encoder. Mit mehr als zehn Jahren Verfügbarkeit ist dieses Modul für industrielle Anwendungen und Temperaturbereiche geeignet.

Anforderungen an Bildsensor und Schnittstelle

Die Auswahl des geeigneten Bildsensors und des Image Signal Processors (ISP) für die jeweilige Anwendung ist ebenfalls entscheidend für eine erfolgreiche Implementierung. Anforderungen wie Auflösung, spektrale Empfindlichkeit, Dynamikumfang und Sensorschnittstelle sind wichtige Faktoren, die berücksichtigt werden müssen. Wenn sich ein Objekt in Bezug auf die Bildrate stark bewegt, sollte ein Bildsensor mit Global Shutter in Betracht gezogen werden, um Verzerrungen in den aufgenommenen Bildern zu vermeiden.

Die Wahl der Bildsensor-Schnittstelle muss ebenfalls sorgfältig abgewogen werden. Schnittstellen wie USB oder Gigabit-Ethernet, die typischerweise für PC-basierte Bildverarbeitung verwendet werden, schneiden in puncto Kosten, Strom und Leistung im Vergleich zu MIPI CSI-2 oder parallelen Schnittstellen, die auf dem Toradex Apalis CoM unterstützt werden, schlecht ab.

In dem Pasta-Anwendungsbeispiel kommt für die Bilderfassung ein Embedded-Kameramodul der Alvium-Kameraserie von Allied Vision mit einem fünf Megapixel CMOS-Sensor von On Semiconductor zum Einsatz. Dieses Kameramodul nutzt die serielle MIPI CSI-2-Schnittstelle und enthält einen ISP zur Vorverarbeitung der Sensorrohdaten für eine optimale Bildqualität. Der ISP entlastet den Embedded-Prozessor von Vorgängen wie Defektpixel-Korrektur, Belichtungssteuerung und Debayering.

Die Alvium-Kameramodule sind als Platinenversion, mit offenem und geschlossenem Gehäuse sowie verschiedenen Objektivhalterungen erhältlich. Dies ermöglicht eine einfache Hardwareintegration. Dank ihres Plattformkonzepts und der integrierten Sensorschnittstelle verfügt die Alvium-Serie über einen CSI-2-Treiber für alle Modelle, unabhängig von Sensor oder Funktionsumfang. Dadurch ist es sehr einfach, Kameras zu tauschen oder ein System mit einem anderen Sensor aufzurüsten, was wiederum die Entwicklungszeit drastisch verkürzt und Kosten senkt.

Auswahl der Software-Architektur

Nach der Auswahl der Hardwarekomponenten muss nun festgelegt werden, welche Software für welche Bildverarbeitungsaufgaben wie beispielsweise den Konturcheck und die Klassifizierung eingesetzt wird.

Das Toradex Apalis CoM ist mit dem Linux-Betriebssystem beziehungsweise einem Linux Board Support Package (BSP) ausgestattet. Für das Alvium-Kameramodul ist ein Video4Linux2 (V4L2) Treiber verfügbar; dies vereinfacht die Integration in das Toradex i.MX 8QM Linux BSP. Ein Blob-Detektor dient dazu, im aufgenommenen Bild für jedes zu identifizierende Objekt die interessanten Bereiche zu finden. Diese werden dann als Input zur Klassifizierung an ein neuronales Netzwerk weitergeleitet. Schließlich werden die Klassifizierungsergebnisse verwendet, um das Quellbild für die Anzeige auf der grafischen Benutzeroberfläche zu kennzeichnen.

Mithilfe des Au-Zone DeepView Toolkit wurde als Machine-Learning-Bildklassifizierer das vorgefertigte MobileNet V2_0.35_128 Modell mit der Neural Network Exchange Format (NNEF) Schnittstelle verwendet. Der Vorteil eines vorgefertigten Modells besteht darin, dass die Anzahl der Bilder, die aufgenommen und verwendet werden müssen, um ein Neuronales Netzwerk von Grund auf zu trainieren, erheblich reduziert wird. Zur Klassifizierung der Pastasorten wurden sechs verschiedene Arten von Pasta verwendet. Mit einem Smartphone wurden von zufälligen Stichproben, die unabhängig von den Testproben waren, vier Trainingsbilder jedes Nudeltyps aufgenommen.

Das DeepView-Tool importiert die aufgenommen Proben und führt das Trainieren des MobileNet-Modells über ein Tensorflow-Backend durch. In etwa 30 Sekunden ist dieser Vorgang auf einem Desktop-Computer abgeschlossen und erreicht eine Genauigkeit von 98 Prozent. Da eine begrenzte Anzahl von Bildern für das Training aufgenommen wurde, erfolgt noch eine zusätzliche Validierung der Genauigkeit mit der eingesetzten Kamera.

Das aufgenommene Bild wird nach Anpassungen des Bildausschnitts und der Auflösung vom Blob-Detektor analysiert. Er erzeugt Rahmen für die Ausschnitte, die für den DeepView Classifier sowie die GUI-Anzeige von Interesse sind. Schließlich wird auf der Bildschirmoberfläche die beschriftete Pasta mit den Original-Trainingsbildern als Referenz angezeigt. Mit einer Geschwindigkeit von 36 Bildern pro Sekunde werden die auf dem Laufband transportierten Nudeln erkannt und angezeigt. Die CPU-Belastung für die gesamte Anwendung liegt im Bereich von 15 bis 25 Prozent und ist abhängig von der Geschwindigkeit des Laufbandes, die den Detektoralgorithmus beeinflusst.

Machine Learning ist ein leistungsfähiges Werkzeug für Edge-basierte Bildverarbeitung. Mit der Auswahl der verfügbaren Tools und Komponenten ist es einfach, schnell einen kostengünstiges, stromsparendes System zur Objekterkennung und -klassifizierung in ein Embedded-Produkt zu implementieren, das sowohl CPU- als auch GPU-Prozessoren für eine optimale Leistung nutzt.

Bildergalerie

  • Die Alvium-Kameraplattform basiert auf einem ultrakompakten Single-Board-Design mit allen elektronischen Komponenten auf beiden Seiten einer 27 x 27 Millimeter großen Platine, die als Bare-Board-Version erhältlich ist.

    Bild: Allied Vision

  • Für Machine-Learning-Anwendungen eignet sich unter anderem der Toradex Apalis Computer-on-Module, der einem Linux Board Support Package (BSP) ausgestattet ist.

    Bild: Allied Vision

  • Mit Machine-Learning-basierter Bildverarbeitung kann Pasta auf dem Förderband den verschiedenen Nudelsorten entsprechend klassifiziert werden.

    Bild: Allied Vision

Firmen zu diesem Artikel
Verwandte Artikel