Andersons Blickwinkel
Ein Video-Codec für die Analyse durch künstliche Intelligenz

Obwohl der Techno-Thriller The Circle (2017) mehr ein Kommentar zu den ethischen Implikationen sozialer Netzwerke als zu den praktischen Aspekten externer Videoanalyse ist, ist es die unglaublich kleine “SeeChange”-Kamera im Zentrum der Handlung, die den Film wirklich in die Kategorie “Science-Fiction” einordnet.

Die ‘SeeChange’-Kamera/Überwachungsgerät aus dem Techno-Thriller ‘The Circle’ (2017).
Ein drahtloses und frei bewegliches Gerät, etwa so groß wie eine große Murmel, es ist nicht der Mangel an Solarpaneelen oder die Unwirtschaftlichkeit, Energie aus anderen Umgebungsquellen (wie Radiowellen) zu gewinnen, was SeeChange zu einem unwahrscheinlichen Vorhaben macht, sondern die Tatsache, dass es 24/7 Video komprimieren muss, mit welcher knappen Ladung es auch immer auskommen kann.
Die Stromversorgung billiger Sensoren dieser Art ist ein wichtiger Forschungsbereich in der Computer-Vision (CV) und Videoanalyse, insbesondere in nicht-urbanen Umgebungen, in denen der Sensor das Maximum an Leistung aus sehr begrenzten Energiequellen (Batterien, Solar usw.) herausholen muss.
In Fällen, in denen ein solches Edge-IoT/CV-Gerät dieser Art Bildinhalte an einen zentralen Server senden muss (oft über herkömmliche Mobilfunknetze), sind die Wahlmöglichkeiten begrenzt: Entweder muss das Gerät ein bestimmtes leichtes neuronales Netzwerk lokal ausführen, um nur optimierte Segmente von relevanten Daten an den Server zu senden; oder es muss “dumme” Videos an die angeschlossenen Cloud-Ressourcen senden, um sie auszuwerten.
Obwohl die Aktivierung durch Ereignis-basierte Smart-Vision-Sensoren (SVS) diesen Overhead reduzieren kann, kostet auch diese Aktivierungsüberwachung Energie.
Am Macht festhalten
Darüber hinaus hat das Gerät, auch bei seltenen Aktivierungen (d. h. ein Schaf wandert gelegentlich in Sicht), nicht genug Leistung, um Gigabyte unkomprimiertes Video zu senden; es hat auch nicht genug Leistung, um ständig populäre Video-Codec wie H.264/5 auszuführen, die Hardware erwarten, die entweder angeschlossen ist oder nicht weit von der nächsten Lade-Session entfernt ist.

Video-Analytics-Pipelines für drei typische Computer-Vision-Aufgaben. Die Video-Codier-Architektur muss für die Aufgabe trainiert werden und in der Regel für das neuronale Netzwerk, das die Daten erhält. Quelle: https://arxiv.org/pdf/2204.12534.pdf
Obwohl der weit verbreitete H.264-Codec einen geringeren Energieverbrauch als sein Nachfolger H.265 hat, hat er eine schlechte Komprimierungseffizienz. Sein Nachfolger, H.265, hat eine bessere Komprimierungseffizienz, aber einen höheren Energieverbrauch. Während Googles Open-Source- VP9-Codec sie beide in jedem Bereich schlägt, erfordert er höhere lokale Rechenressourcen, was weitere Probleme in einem angeblich billigen IoT-Sensor darstellt.
Was die lokale Analyse angeht: Sobald Sie auch nur das leichteste lokale neuronale Netzwerk ausgeführt haben, um zu bestimmen, welche Frames (oder Bereiche eines Frames) es wert sind, an den Server gesendet zu werden, haben Sie oft die Energie verbraucht, die Sie durch das Senden aller Frames gespart hätten.

Extrahieren von maskierten Darstellungen von Rindern mit einem Sensor, der wahrscheinlich nicht an das Stromnetz angeschlossen ist. Verwendet es seine begrenzte Leistungskapazität für lokale semantische Segmentierung mit einem leichten neuronalen Netzwerk; indem es begrenzte Informationen an einen Server sendet, um weitere Anweisungen zu erhalten (was Verzögerungen einführt); oder indem es ‘dumme’ Daten sendet (was Energie auf Bandbreite verschwenden würde)? Quelle: https://arxiv.org/pdf/1807.01972.pdf
Es ist klar, dass “im Freien” Computer-Vision-Projekte dedizierte Video-Codec benötigen, die für die Anforderungen spezifischer neuronaler Netze bei bestimmten und vielfältigen Aufgaben wie semantischer Segmentierung, Schlüsselpunkterkennung (Bewegungsanalyse) und Objekterkennung optimiert sind.
Wenn Sie das perfekte Verhältnis zwischen Video-Komprimierungseffizienz und minimalem Datentransfer erreichen können, sind Sie einen Schritt näher an SeeChange und die Fähigkeit, bezahlbare Sensornetzwerke in feindlichen Umgebungen zu bereitstellen.
AccMPEG
Eine neue Forschung der Universität von Chicago könnte einen Schritt in Richtung eines solchen Codecs gemacht haben, in Form von AccMPEG – einem neuen Video-Codier- und Streaming-Framework, das bei geringer Latenz, hoher Genauigkeit für serverseitige Deep-Neural-Networks (DNNs) und bemerkenswert geringen lokalen Rechenanforderungen arbeitet.

Architektur von AccMPEG. Quelle: https://arxiv.org/pdf/2204.12534.pdf
Das System kann durch die Bewertung des Ausmaßes, in dem jeder 16x16px Makroblock die Genauigkeit des serverseitigen DNN beeinflussen kann, Wirtschaftlichkeiten gegenüber vorherigen Methoden erzielen. Vorherige Methoden haben normalerweise die Genauigkeit auf der Grundlage jedes Pixels in einem Bild oder lokaler Operationen bewertet, um zu bestimmen, welche Regionen des Bildes von größtem Interesse sein könnten.
In AccMPEG wird diese Genauigkeit in einem benutzerdefinierten Modul namens AccGrad geschätzt, das die Weise misst, in der die Codierqualität des Makroblocks wahrscheinlich für den Endanwendungsfall relevant ist, wie z. B. ein serverseitiges DNN, das versucht, Menschen zu zählen, Skelett-Schätzung auf menschliche Bewegung durchzuführen oder andere häufige Computer-Vision-Aufgaben.
Wenn ein Video-Frame in das System eintritt, verarbeitet AccMPEG ihn zunächst durch ein billiges Qualitäts-Selektionsmodell, das AccModel genannt wird. Alle Bereiche, die wahrscheinlich nicht zu den nützlichen Berechnungen eines serverseitigen DNN beitragen, sind im Wesentlichen Ballast und sollten für die Codierung mit der niedrigsten möglichen Qualität markiert werden, im Gegensatz zu bedeutungsvollen Regionen, die mit besserer Qualität gesendet werden sollten.
Dieser Prozess stellt drei Herausforderungen dar: Kann der Prozess schnell genug durchgeführt werden, um akzeptable Latenz ohne den Einsatz energieschwacher lokaler Rechenressourcen zu erreichen? Kann eine optimale Beziehung zwischen Bildfrequenz und Qualität hergestellt werden? Und kann ein Modell schnell für ein individuelles serverseitiges DNN trainiert werden?
Schulungslogistik
Idealerweise würde ein Computer-Vision-Codec auf angeschlossenen Systemen auf die genauen Anforderungen eines bestimmten neuronalen Netzes vor trainiert. Das AccGrad-Modul kann jedoch direkt aus einem DNN mit nur zwei Vorwärts-Propagierungen abgeleitet werden, was eine Einsparung von zehnmal dem Standard-Overhead bedeutet.
AccMPEG trainiert AccGrad für nur 15 Epochen von drei Propagierungen durch das finale DNN und kann möglicherweise live mit seinem aktuellen Modellzustand als Vorlage neu trainiert werden, zumindest für ähnlich spezifizierte CV-Aufgaben.
AccModel verwendet den vorgefertigten MobileNet-SSD-Feature-Extractor, der in billigen Randgeräten häufig verwendet wird. Bei einem Umsatz von 12 GFLOPS verwendet das Modell nur ein Drittel der typischen ResNet18-Ansätze. Neben Batch-Normalisierung und Aktivierung besteht die Architektur nur aus Konvolutions-Schichten, und ihr Rechenaufwand ist proportional zur Bildgröße.

AccGrad entfernt die Notwendigkeit für finale DNN-Schlußfolgerung, was die Bereitstellungslogistik verbessert.
Bildfrequenz
Die Architektur läuft optimal bei 10 Bildern pro Sekunde, was sie für Zwecke wie landwirtschaftliche Überwachung, Gebäude-Abnutzungs-Überwachung, Hochblick-Verkehrsanalyse und repräsentative Skelett-Schätzung in menschlicher Bewegung geeignet macht; jedoch sind sehr schnell bewegte Szenarien, wie z. B. Niedrigblick-Verkehr (von Autos oder Menschen) und andere Situationen, in denen hohe Bildfrequenzen von Vorteil sind, für diesen Ansatz nicht geeignet.
Ein Teil der Methode liegt in der Annahme, dass benachbarte Makroblöcke wahrscheinlich von ähnlichem Wert sind, bis zu dem Punkt, an dem ein Makroblock unter die geschätzte Genauigkeit fällt. Die durch diesen Ansatz erhaltenen Bereiche sind klarer abgegrenzt und können mit höherer Geschwindigkeit berechnet werden.
Leistungsverbesserung
Die Forscher testeten das System auf einer 60-Dollar-Jetson-Nano-Platine mit einem einzelnen 128-Kern-Maxwell-GPU und verschiedenen anderen billigen Äquivalenten. OpenVINO wurde verwendet, um einige der Energieanforderungen der sehr dünnen lokalen DNNs auf CPUs zu verlagern.
AccModel selbst wurde ursprünglich offline auf einem Server mit 8 GeForce-RTX-2080S-GPUs trainiert. Obwohl dies eine beeindruckende Reihe von Rechenleistung für eine anfängliche Modellbildung ist, bedeutet die leichte Neu-Trainierung, die das System ermöglicht, und die Möglichkeit, ein Modell an bestimmte Toleranzparameter über verschiedene DNNs anzupassen, die ähnliche Aufgaben angehen, dass AccMPEG Teil eines Systems sein kann, das minimalen Aufwand im Freien benötigt.
Erstveröffentlicht am 1. Mai 2022.












