In der heutigen Welt, in der das Internet der Dinge (IoT) und Edge-Computing immer mehr an Bedeutung gewinnen, stehen Entwickler und Unternehmen vor der Herausforderung, komplexe Aufgaben wie die Objekterkennung auf limitierten Geräten effizient umzusetzen. Herkömmliche machine-learning-Modelle bieten zwar beeindruckende Ergebnisse auf leistungsstarken GPUs oder Servern, stoßen jedoch auf ressourcenbeschränkten Plattformen wie dem Raspberry Pi oft an ihre Grenzen. FOMO, ein innovativer Algorithmus für Objekterkennung speziell für solche eingeschränkten Geräte, bringt frischen Wind in diese Problematik und ermöglicht beeindruckende 60 Bilder pro Sekunde (fps) bei der Objekterkennung auf dem Raspberry Pi 4 und sogar auf Mikrocontroller-basierten Boards mit sehr begrenztem Speicher und Rechenleistung. FOMO steht für „Faster Objects, More Objects“ und stellt eine völlig neue Methode der Objekterkennung dar, die speziell für ressourcenbeschränkte Hardware entwickelt wurde. Während typische Modelle wie MobileNet SSD oder YOLOv5 sehr rechenintensiv sind und dadurch nur wenige Frames pro Sekunde auf kleineren Geräten erreichen, ermöglicht FOMO eine drastische Reduzierung des Rechenaufwands und des Speicherbedarfs, ohne dabei grundlegend an Genauigkeit einzubüßen.
Dies ist vor allem durch die innovative Nutzung von Positionserkennung durch sogenannte Heatmaps möglich, anstatt aufwändige Bounding-Box-Berechnungen durchzuführen. Bei der klassischen Bildklassifikation wird das gesamte Bild analysiert und eine einzige Entscheidung getroffen, beispielsweise ob ein Gesicht vorhanden ist oder nicht. Diese Methode liefert jedoch keine Informationen über die genaue Position oder die Anzahl der Objekte im Bild. Dagegen bieten klassische Objekterkennungsalgorithmen detaillierte Daten über die Lage und Größe von Objekten, benötigen aber wesentlich mehr Rechenressourcen und umfangreiche Datenmengen für das Training. FOMO kombiniert das Beste aus beiden Welten: Es arbeitet mit der Effizienz einer Bildklassifizierung, liefert jedoch gleichzeitig präzise Informationen über die Position und Anzahl der Objekte.
Der Schlüssel zur Funktionsweise von FOMO liegt in seiner Architektur, die auf tiefen neuronalen Netzen basiert und die letzte Klassifikationsschicht durch eine räumliche Heatmap ersetzt. Diese Heatmap zeigt für jede Region des Bildes eine Klassifizierungswahrscheinlichkeit an, wodurch eine genaue Lokalisierung auf einer fein unterteilten Karte ermöglicht wird. So wird das Bild nicht nur als Ganzes verstanden, sondern in kleinere Bereiche zerlegt, für die separat klassifiziert wird. Das ermöglicht eine genaue Identifikation und Zählung mehrerer Objekte, selbst wenn diese nah beieinander liegen. Das Modell reduziert also die Aufgabe der Objekterkennung auf eine lokale Klassifizierung mittels eines vollständig konvolutionalen neuronalen Netzes.
Die quadratischen Heatmap-Zellen entsprechen jeweils einem bestimmten Bereich im Eingabebild, wodurch die räumliche Beziehung beibehalten wird. Dies ist um ein Vielfaches effizienter als herkömmliche Methoden, die zunächst mehrere Regionen vorschlagen und danach einzeln klassifizieren müssen. Ein weiterer essenzieller Aspekt von FOMO ist die Verwendung des MobileNetV2 als Basisarchitektur. MobileNetV2 ist bereits für seine Rechen- und Speicherfreundlichkeit bekannt, und FOMO nutzt den vortrainierten Backbone dieses Modells, um so eine solide Basis für die Erkennung zu schaffen. Dabei wird der Netzwerk-Teil, der typischerweise zu einer einzigen Klassifikation führt, entfernt und durch eine eigene kleine Schicht ersetzt, die eine Heatmap pro Objektklasse erzeugt.
Die Anpassbarkeit des Modells erlaubt es, zwischen verschiedenen Intensitäts- und Genauigkeitsstufen zu wechseln. So kann beispielsweise die Downsampling-Rate der Heatmap variiert werden, wodurch die Auflösung der Erkennung gezielt beeinflusst wird. Eine sehr hohe Auflösung ermöglicht die Erkennung von vielen, auch kleinen Objekten, geht aber mit einem höheren Rechenaufwand einher. Für viele praktische Anwendungen reicht jedoch eine reduzierte Auflösung vollkommen aus. Beeindruckend ist zudem die Flexibilität in Bezug auf die Eingabebildgrößen.
FOMO funktioniert in gleicher Weise auf kleinen Bildern wie 96x96 Pixel, die in vielen Embedded-Anwendungen üblich sind, als auch auf größeren Bildern wie 320x320 oder gar 1024x1024. Damit ist es möglich, verschiedene Einsatzfälle abzudecken: von kleinen Überwachungskameras bis hin zu industriellen Qualitätskontrollen, bei denen auch kleinste Fehler erkannt werden müssen. Ein praxisnahes Beispiel aus der Edge-Impulse-Community zeigt, dass FOMO auf einem Raspberry Pi 4 realistische 60 Bilder pro Sekunde bei einer Auflösung von 160x160 Graustufenbildern erreicht. Zur Veranschaulichung wurde ein Modell zum Erkennen von Bierflaschen und Dosen entwickelt, das live auf der Plattform läuft. Im Vergleich schafft das MobileNet SSD Modell auf dem selben Gerät nur etwa 3 fps – damit übertrifft FOMO frühere Ansätze um das bis zu 20-fache.
Auf noch ressourcenärmeren Geräten wie dem Arduino Nicla Vision mit Cortex-M7 Prozessor sind ebenfalls echte Echtzeit-Raten möglich. Hier erreicht FOMO beeindruckende 30 Bilder pro Sekunde bei weniger als 250 Kilobyte RAM-Verbrauch. Das ermöglicht erstmals komplexe Objekterkennung sogar auf kleinen Mikrocontroller-Plattformen, die bislang nur für einfache Klassifikationsaufgaben in Frage kamen. Grund für diese Effizienz ist neben der Modellarchitektur auch die Verwendung spezieller Compiler wie den EON Compiler von Edge Impulse, der das Modell für die Zielhardware optimiert kompiliert und damit die Laufzeit deutlich verkürzt. Ein interessanter Punkt bei der Anwendung von FOMO ist die Abkehr von klassischen Bounding-Box-Indikatoren.
FOMO wurde auf die Erkennung von Objektzentroiden trainiert, was in vielen Szenarien ausreicht, da die genaue Größe der Objekte oft unwichtig ist – insbesondere bei festen Kamerapositionen und konstanten Objektgrößen. Die Netzwerkausgabe zeigt in der Heatmap unmittelbar, wo die Objekte zu finden sind, und daraus können bei Bedarf Bounding-Boxen recht einfach abgeleitet werden. Natürlich hat diese Methode auch Einschränkungen: Wenn sich Objekte zu dicht überlappen und sich somit Centroiden annähern, kann es zu Interferenzen in der Heatmap kommen, die eine präzise Trennung verhindern. Dies lässt sich jedoch durch Erhöhen der Heatmap-Auflösung reduzieren, was wiederum etwas mehr Rechenleistung erfordert. Für Entwickler und Unternehmen ergeben sich dadurch ganz neue Möglichkeiten der Echtzeitbildverarbeitung auf Edge-Geräten.
Natürliche Einsatzgebiete finden sich in Sicherheitskameras, industriellen Überwachungssystemen, smarten Haushaltsgeräten oder auch in der Landwirtschaft, beispielsweise zur Zählung von Tieren oder Früchten. Dank der Kombinierbarkeit mit Transfer Learning kann FOMO zudem an spezifische Anwendungsbereiche angepasst werden, ohne von Grund auf neu trainiert werden zu müssen. Die Handhabung von FOMO wird durch Tools wie Edge Impulse erleichtert. Hier kann man eigene Bilddatensätze einfach annotieren, Modelle trainieren und anschließend schnell auf verschiedene Hardware exportieren. Der Export als C++-Bibliothek erlaubt es, FOMO problemlos in bestehende Firmware oder Software-Stacks zu integrieren.
Das begünstigt die schnelle Umsetzung produktionsreifer Lösungen. Im Bereich der Leistungsoptimierung bietet FOMO zudem Expertenoptionen zur Feinjustierung. So kann beispielsweise die Gewichtung der Objekterkennung gegenüber dem Hintergrund in der Verlustfunktion angepasst werden, um seltene Objekte fokussierter zu detektieren. Ebenso lassen sich Elemente des MobileNet Backbone manipulieren, um eine Balance zwischen Modellgröße, Geschwindigkeit und Genauigkeit zu finden. Diese Flexibilität gewährleistet, dass FOMO sowohl auf kleinen Mikrocontrollern mit 80 MHz als auch auf kräftigen ARM-basierten Boards problemlos läuft.
Die minimalen Hardwareanforderungen für FOMO liegen im Bereich von 256 Kilobyte RAM bei kleineren Eingabebildern. Empfohlen werden jedoch mindestens 512 Kilobyte, um mehr Spielraum für größere Bilder und komplexere Modelle zu haben. Die Auswahl der richtigen Hardware ist dabei entscheidend, um den gewünschten Durchsatz von Frames pro Sekunde zu erreichen. Auch die Zukunftsperspektiven für FOMO sind vielversprechend. Die Entwickler arbeiten an Verbesserungen wie UNet-artigen Architekturen, die noch präzisere Segmentierungen und Erkennungen ermöglichen sollen.