Andersons vinkel
En video codec designet til AI-analyse

Selvom techno-thriller The Circle (2017) er mere en kommentar til de etiske implikationer af sociale netværk end praktikken af ekstern videoanalyse, er det utroligt små ‘SeeChange’-kamera i centrum af handlingen, der virkelig skyder filmen ind i ‘science-fiction’-kategorien.

Det ‘SeeChange’-kamera/overvågningsenhed fra techno-thriller ‘The Circle’ (2017).
En trådløs og fri-roaming enhed på størrelse med en stor marmel, det er ikke manglen på solceller eller ineffektiviteten ved at trække strøm fra andre omgivende kilder (såsom radiobølger) der gør SeeChange til en usandsynlig prospekt, men det faktum, at det skal komprimere video 24/7, på hvad som helst af en sparsom opladning det kan opretholde.
At give strøm til billige sensorer af denne type er et kerneområde for forskning i computer vision (CV) og videoanalyse, særligt i ikke-urbane miljøer, hvor sensoren skal udnytte det maksimale af ydelsen fra meget begrænsede strømkilder (batterier, sol, osv.).
I tilfælde, hvor en sådan edge IoT/CV-enhed af denne type skal sende billeddata til en central server (ofte gennem konventionelle celle-dækkende netværk), er valgmulighederne hårde: enten skal enheden køre en slags letvægts neuralt netværk lokalt for at sende kun optimerede segmenter af relevant data til server-side bearbejdning; eller det skal sende ‘dummere’ video til de tilsluttede cloud-resourcer til at evaluere.
Selv om bevægelsesaktivering gennem event-baserede Smart Vision Sensors (SVS) kan reducere denne overhed, koster denne aktivering også energi.
At klamre sig til magten
Desuden, selv med sjælden aktivering (dvs. en får vandrer lejlighedsvis ind i synsfeltet), har enheden ikke nok strøm til at sende gigabytes af ukomprimeret video; heller ikke har det nok strøm til konstant at køre populære video-kompressionskodecer som H.264/5, som forventer hardware, der er enten tilsluttet eller ikke langt fra næste opladningssession.

Video analytics-pipelines til tre typiske computer vision-opgaver. Video-kodec-arkitekturen skal trænes til den opgave, der er på hånden, og normalt for det neurale netværk, der skal modtage dataene. Kilde: https://arxiv.org/pdf/2204.12534.pdf
Selv om den vidt udbredte H.264-kodec har lavere energiforbrug end sin efterfølger H.265, har det dårlig kompressions-effektivitet. Dets efterfølger, H.265, har bedre kompressions-effektivitet, men højere strømforbrug. Mens Google’s open source VP9-kodec slår dem begge i hver af disse områder, kræver det højere lokale beregningsressourcer, hvilket præsenterer yderligere problemer i en billig IoT-sensor.
Så vidt som lokale analyse af strømmen: ved den tid, du har kørt selv den letteste lokale neurale netværk for at bestemme, hvilke rammer (eller områder af en ramme) er værd at sende til serveren, har du ofte brugt den strøm, du ville have sparet ved at sende alle rammerne.

Ekstrahering af maskerede repræsentationer af kvæg med en sensor, der ikke er sandsynlig at være tilsluttet nettet. Bruger den sin begrænsede strømkapacitet på lokal semantisk segmentering med et letvægts neuralt netværk; ved at sende begrænsede oplysninger til en server til yderligere instruktioner (introducerer latency); eller ved at sende ‘dummere’ data (spilder energi på båndbredde)? Kilde: https://arxiv.org/pdf/1807.01972.pdf
Det er klart, at ‘i det vilde’ computer vision-projekter behøver dedikerede video-kompressionskodecer, der er optimeret til kravene for bestemte neurale netværk over bestemte og forskellige opgaver, såsom semantisk segmentering, nøglepunkt-detection (menneskebevægelsesanalyse) og objekt-detection, blandt andre mulige slutbrugsformål.
Hvis du kan få den perfekte balance mellem video-kompressions-effektivitet og minimal dataoverførsel, er du et skridt nærmere SeeChange, og evnen til at udvikle billige sensor-netværk i uvenlige miljøer.
AccMPEG
Nyt forskning fra University of Chicago kan have taget et skridt nærmere en sådan kodec, i form af AccMPEG – en ny video-kodec- og streaming-ramme, der opererer med lav latency, høj nøjagtighed for server-side Deep Neural Networks (DNNs), og som har bemærkelsesværdigt lav lokale beregningskrav.

Arkitektur af AccMPEG. Kilde: https://arxiv.org/pdf/2204.12534.pdf
Systemet kan gøre besparelser over tidligere metoder ved at vurdere, i hvilken udstrækning hver 16x16px macroblock er sandsynlig at påvirke nøjagtigheden af server-side DNN. Tidligere metoder har generelt måttet vurdere denne slags nøjagtighed baseret på hver pixel i et billede eller udføre elektrisk dyre lokale operationer for at vurdere, hvilke områder af billedet, der kan være af størst interesse.
I AccMPEG vurderes denne nøjagtighed i en brugerdefineret modul kaldet AccGrad, som måler, på hvilke måder kodningskvaliteten af macroblock’en er sandsynlig at være relevant for slutbrugsfaldet, såsom en server-side DNN, der prøver at tælle mennesker, udføre skelet-estimation på menneskebevægelse eller andre almindelige computer vision-opgaver.
Da en ramme af video ankommer til systemet, behandler AccMPEG det først gennem en billig kvalitetsvælger-model, betegnet AccModel. Enhver område, der ikke er sandsynlig at bidrage til de nyttige beregninger af en server-side DNN, er essentiel ballast og skal markeres for kodning i den laveste mulige kvalitet, i modsætning til betydningsfulde områder, der skal sendes i bedre kvalitet.
Dette proces præsenterer tre udfordringer: kan processen udføres hurtigt nok til at opnå acceptabel latency uden at bruge energi-drengende lokale beregningsressourcer? Kan en optimal relation mellem ramme-hastighed og kvalitet etableres? Og kan en model hurtigt trænes for en individuel server-side DNN?
Træningslogistik
Ideelt set skulle en computer vision-kodec være fortrænet på tilsluttede systemer til de præcise krav for et bestemt neuralt netværk. AccGrad-modulen kan dog direkte afledes fra en DNN med kun to forward-propagationer, til en besparelse af ti gange den standardmæssige overhed.
AccMPEG træner AccGrad for kun 15 epocher af tre propagationer hver gennem den endelige DNN, og kan potentielt gen-trænes ‘live’ ved at bruge dens nuværende model-tilstand som skabelon, i det mindste for lignende CV-opgaver.
AccModel bruger den fortrænede MobileNet-SSD feature-ekstraktor, som er almindelig i billige edge-enheder. Ved en omskiftning på 12 GFLOPS bruger modellen kun en tredjedel af typiske ResNet18-tilgange. Ud over batch-normalisering og aktivering består arkitekturen kun af convolutionelle lag, og dens beregnings-overhed er proportional med ramme-størrelsen.

AccGrad fjerner behovet for endelig DNN-inferens, hvilket forbedrer deployments-logistik.
Ramme-hastighed
Arkitekturen kører optimalt ved 10fps, hvilket ville gøre den egnet til formål som landbrugs-overvågning, bygnings-degraderings-overvågning, høj-udsigt trafik-analyse og repræsentativ skelet-inferens i menneskebevægelse; dog er meget hurtigt-bevægelser-scenarier, såsom lav-udsigt trafik (af biler eller mennesker), og andre situationer, hvor høje ramme-hastigheder er fordelagtige, ikke egnede til denne tilgang.
En del af metodens sparsommelighed ligger i antagelsen, at tilstødende macroblocks sandsynligvis er af lignende værdi, indtil det punkt, hvor en macroblock falder under estimeret nøjagtighed. De områder, der opnås ved denne tilgang, er mere klart afgrænsede og kan beregnes med større hast.
Ydelsesforbedring
Forskerne testede systemet på en $60 Jetson Nano-plade med en enkelt 128-kernet Maxwell GPU, og andre billige ekvivalenter. OpenVINO blev brugt til at offset nogle af de energi-krav, der er forbundet med de meget sparsomme lokale DNN’er til CPU’er.
AccModel selv blev oprindeligt trænet offline på en server med 8 GeForce RTX 2080S GPU’er. Selv om dette er en imponerende samling af beregningskraft til en initial model-bygning, gør den let-vægts gen-træning, som systemet muliggør, og måden, hvorpå en model kan justeres til bestemte tolerenceparametre på tværs af forskellige DNN’er, der angriber lignende opgaver, at AccMPEG kan danne en del af et system, der har brug for minimal opmærksomhed i det vilde.
Offentliggjort første gang 1. maj 2022.












