Mehr Intelligenz an der Edge Flexible KI-Lösungen für Kameras und Edge-KI-Appliances

Von Ravi Annavajjhala* Lesedauer: 6 min

Anbieter zum Thema

Moderne Edge-KI-Applikationen erfordern viel Rechenleistung. Zwar sind aktuelle Anwendungsprozessoren leistungsfähig und flexibel einsetzbar, in Kombination mit dedizierten KI-Prozessoren lassen sie sich jedoch gezielt erweitern.

Unterstützer: Ein dedizierter KI-Prozessor kann Anwendungsprozessoren in Edge-KI-Applikationen gezielt entlasten und die Verarbeitung zum Beispiel von Videodaten beschleunigen.
Unterstützer: Ein dedizierter KI-Prozessor kann Anwendungsprozessoren in Edge-KI-Applikationen gezielt entlasten und die Verarbeitung zum Beispiel von Videodaten beschleunigen.
(Bild: © Shuo – stock.adobe.com)

Die Anwendung von Künstlicher Intelligenz (KI) auf Videoströme von hochauflösenden Kameras kann deren Einsatz in vielen neuen Anwendungen ermöglichen. Dafür müssen KI-Lösungen am Rande des Netzwerks, der Edge, Inferenzberechnungen von neuronalen Netzen auf Videostreams mit verschiedenen Bildraten und unterschiedlichen Komplexitätsgraden durchführen. Die Anforderungen dafür sind zum Teil sehr hoch: Immer mehr Edge-KI-Anwendungen – insbesondere in den Bereichen Einzelhandel, Gesundheitswesen, Sicherheit und industrielle Steuerung – müssen hohe Videobildraten von 30 Frames per Second (fps) oder mehr und Auflösungen von 1080p und mehr bewältigen und zudem noch parallel zu anderen Modellen laufen.

Die i.MX-Anwendungsprozessoren von NXP Semiconductors sind so leistungsfähig, dass sie KI-Inferenzberechnungen unterschiedlicher Komplexität durch Kombinationen von CPUs, GPUs und bei einigen Modellen neuronalen Beschleunigern ermöglichen. Ist mehr Rechenleistung erforderlich, lassen sie sich zum Beispiel mit den Ara-1-Edge-KI-Prozessoren von Kinara kombinieren. So entsteht ein kostengünstiges System mit geringem Stromverbrauch, das eine sehr hohe KI-Rechenleistung liefert. In einer intelligenten Kamera lassen sich beide auf der Hauptplatine integrieren, so dass die Kamera auf Basis der Bilddaten komplexe KI-Aufgaben durchführen kann, bevor sie die Metadaten der Anwendung an einen Edge-Server oder für Nicht-Echtzeit-Analysen an die Cloud sendet.

Bildergalerie

Umwandlung der Bildsensor-Rohdaten für KI-Weiterverarbeitung

Ein solches energieeffizientes Smart-Kamera-Design mit einem Bildsensor, einem i.MX 8M Plus-Anwendungsprozessor (alternativ i.MX 8M Nano) und einem oder mehreren Ara-1-Chips, die auf einer einzigen Kameraplatine integriert sind, ist in Bild 1(a) zu sehen. Da das i.MX 8M Plus-System-on-Chip (SoC) über zwei Bildsignalprozessoren (Image Signal Processor) verfügt, kann es direkt an einen Kamerasensor angeschlossen werden und die Sensor-Rohdaten in das RGB-Format konvertieren, das für Anzeige, Speicherung und Inferenzierung benötigt wird. Im Falle anderer NXP-SoCs wie i.MX 8M Nano, die keinen ISP enthalten, kann ein Bildsensor mit integriertem ISP für das Design einer intelligenten Kamera verwendet werden. Der Host-Prozessor verarbeitet die Videobilder des Sensors vor, um die Sensordaten in ein Format umzuwandeln, das den Eingabeanforderungen der auf der Ara-1 durchgeführten KI-Inferenzierung entspricht (Bild 1). Die Vorverarbeitungsaufgaben wie Normalisierung, Mittelwertsubtraktion, Skalierung und Quantisierung in das int8-Datenformat (8 Bit Integer) werden auf dem Host-Prozessor mit CPU-Kernen oder der GPU durchgeführt.

Die quantisierten Eingaben werden dann über eine USB- oder PCIe-Schnittstelle zur Inferenz an Ara-1 gesendet. Nach der Inferenz folgen die Nachbearbeitungsfunktionen. Ein Beispiel für die Nachverarbeitung ist die Logik der nicht-maximalen Unterdrückung (NMS), die häufig zur Interpretation der Ergebnisse von Objekterkennungsmodellen verwendet wird. Obwohl die Nachverarbeitung in der Regel auf dem Host-Prozessor durchgeführt wird, kann sie in einigen Fällen an Ara-1 ausgelagert werden. In jedem Fall werden die nachbearbeiteten Ergebnisse der Anwendung zur Verfügung gestellt, damit diese die gewünschte Logik für die Applikation implementieren kann.

Plug-ins für einfachen Aufbau GStreamer-basierter KI-Pipelines

KI-Anwendungen müssen das Ausführen von Vor- und Nachverarbeitungsschritten sowie das Inferencing auf Ara-1 verwalten. Die meisten intelligenten Kameraanwendungen erfordern außerdem das Ausführen mehrerer Modelle pro Frame oder Stream, entweder in parallelen Inferenzpipelines, bei denen mehrere Modelle unabhängig voneinander laufen, oder in einer kaskadierten Pipeline, bei der zunächst ein Modell abgearbeitet wird. Auf der Grundlage des Ergebnisses dieses Modells werden dann eine oder mehrere Instanzen eines anderen Modells ausgeführt. Um den Einsatz solcher KI-Pipelines zu vereinfachen, gibt es für die NXP-Plattformen die Frameworks GStreamer und NNStreamer.

Unabhängig davon, welches i.MX-SoC-Modell eingesetzt wird und ob die Vorverarbeitung auf dem Zentral- oder dem Grafikprozessor läuft, ist GStreamer das Framework zum Erstellen von Streaming-Media-Anwendungen. Es abstrahiert die Hardware-Ebene, so dass jeder i.MX SoC verwendet werden kann – und zwar ohne dass die zugrunde liegende Vision-Pipeline-Software geändert werden muss. GStreamer ist eine Bibliothek, die für den Aufbau von Compute-Graphen für medienverarbeitende Komponenten entwickelt wurde und die Zusammenstellung mehrerer Filterpipelines erleichtert, um beliebige Multi-Model-Szenarien zu bewältigen.

Durch das Hinzufügen von NNStreamer-Plugins können GStreamer-Entwickler neuronale Netzwerkmodelle, die auf den CPUs, GPUs oder NPUs des i.MX-Anwendungsprozessors laufen, effizient in die Bildverarbeitungspipeline integrieren. Kinara hat eine Reihe von GStreamer-kompatiblen Plugins entwickelt, die eine nahtlose Intgration von Ara-1 in NXP-Inferenz-Pipelines ermöglichen.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Aufbau von Edge-KI-Appliances mit i.MX 8M SoCs und Ara-1

Edge-KI-Appliances können auch anstelle von intelligenten Kameras für KI-Berechnungen verwendet werden. In diesem Szenario können die Kameras normale IP-Kameras ohne KI-Funktionen sein. Die Feeds von mehreren Kameras und anderen Sensoren werden zur Inferenz an eine KI-Appliance weitergeleitet. In der Praxis kann jede KI-Appliance 4-16 Kamera- und Sensor-Feeds verarbeiten. In einer großen Einrichtung, die Hunderte von Kameras benötigt, werden entsprechend mehrere Appliances eingesetzt. Dies ermöglicht ein weitaus skalierbareres Verarbeitungsmodell im Vergleich zu Edge-Servern, bei denen die Feeds von Hunderten von Kameras an eine Reihe von zentralen Servern weitergeleitet werden müssen, was erhebliche Kosten für die Infrastruktur und den Stromverbrauch der Server verursacht.

Im Gegensatz zur direkten Sensorschnittstelle einer Smart-Kamera verwendet eine Edge-KI-Appliance ülicherweise Ethernet oder Wi-Fi, um Videofeeds über ein IP-Netzwerk zu empfangen. Darüber hinaus sind die eingehenden Datenströme in der Regel verschlüsselt, sodass die Appliance jeden eingehenden Stream zunächst dekodieren muss, bevor er verarbeitet werden kann. Schließlich muss eine Appliance im Gegensatz zu Smart-Kameras Inferencing und damit verbundene Aufgaben für die Vor- und Nachverarbeitung der Daten für mehrere Streams durchführen. Eine solche Appliance benötigt mehrere Ara-1-Prozessoren für höhere KI-Rechenleistung sowie einen leistungsfähigeren Host-Prozessor.

Ein solches Design verwendet den Anwendungsprozessor i.MX 8M Quad von NXP als Host (Bild 3). Sein hardwarebeschleunigter Videodecoder ermöglicht die Echtzeit-Dekodierung von bis zu acht 1080p-Streams oder zwei 4K-Streams. Darüber hinaus können die leistungsstarken Quad-Core-CPUs und die GPU des i.MX 8M die Pre- und Post-Processing-Funktionen mehrerer Inferenz-Pipelines übernehmen.

Die maximale Anzahl der von einer Edge-Appliance unterstützten Streams hängt zum Teil vom Host-Prozessor ab und davon, wie viele Streams er dekodieren und vor- und nachverarbeiten kann. In ähnlicher Weise bestimmt die Anzahl der Ara-1-Geräte in der Appliance, wie viele KI-Verarbeitungsströme unterstützt werden können. Ein einzelnes Ara-1-Gerät kann mehrere Videoströme verarbeiten, aber die Anzahl der Ströme pro Gerät ist direkt mit der Komplexität und Größe des Modells verbunden. Für eine KI-Edge-Appliance mit acht Streams sind beispielsweise 1 bis 4 Ara-1-Geräte erforderlich, je nach Modellkomplexität und gewünschter Verarbeitungsrate.

Unterstützung für PCIe oder USB erleichtert das Hardwaredesign

Unabhängig davon, ob es sich um intelligente Kameras oder Edge-Appliances handelt, können Entwickler Inferencing-Funktionen in eine breite Palette von NXP i.MX-Anwendungsprozessoren integrieren. Wie bereits erwähnt, erfüllen die verschiedenen i.MX-SoCs unterschiedliche Funktionen. Ein Beispiel ist der i.MX 8M Plus und sein ISP sowie der i.MX 8M Quad, der Dekodierunterstützung für acht 1080p-Streams oder zwei 4K-Streams bietet. Aus der Perspektive des Hardware-Designs wird weitere Flexibilität und Einfachheit durch die Kombination eines beliebigen i.MX SoC mit Ara-1 aufgrund der gemeinsamen PCIe- oder USB-Unterstützung erreicht.

Und schließlich, wie wir gesehen haben, aus der Perspektive der Software-Entwicklung, Kinaras Verwendung von GStreamer, um Ara-1 einfach in die Inferenz-Pipeline einzufügen und größere Code-Änderungen zu vermeiden, wenn i.MX-Anwendungsprozessoren gewechselt werden, rationalisiert die Fähigkeit, die Fähigkeiten von Smart-Kamera- oder Edge-KI-Geräten leicht zu erweitern. (me)

* Ravi Annavajjhala ist Chief Executive Officer von Kinara AI

(ID:49658936)