Andersons vinkel

En video codec utformad för AI-analys

mm
Lägg till Unite.AI bland dina föredragna källor på Google

Även om techno-thrillern Cirkeln (2017) är mer en kommentar till de etiska implikationerna av sociala nätverk än de praktiska aspekterna av extern videoanalys, är den otroligt lilla ‘SeeChange’-kameran i mitten av handlingen det som verkligen för filmen in i ‘science fiction’-kategorin.

Den 'SeeChange'-kamera/övervakningsenhet från techno-thrillern The Circle (2017).

Den ‘SeeChange’-kamera/övervakningsenhet från techno-thrillern ‘The Circle’ (2017).

En trådlös och fri-roamande enhet som är ungefär lika stor som en stor marmelad, är det inte bristen på solceller eller ineffektiviteten i att dra kraft från andra omgivande källor (såsom radiovågor) som gör SeeChange till en osannolik prospekt, utan det faktum att den kommer att behöva komprimera video 24/7, på vilken begränsad laddning den kan upprätthålla.

Att strömförsörja billiga sensorer av detta slag är ett kärnområde för forskning inom datorseende (CV) och videoanalys, särskilt i icke-urbana miljöer där sensorn måste få ut maximal prestanda från mycket begränsade kraftresurser (batterier, solceller etc.).

I de fall där en sådan kant-IoT/CV-enhet av detta slag måste skicka bildinnehåll till en central server (ofta genom konventionella cellnätsnät), är valen hårda: antingen måste enheten köra en slags lättviktig neuronnät lokalt för att skicka endast optimerade segment av relevant data för server-sidig bearbetning; eller så måste den skicka ‘dumb’ video för att de anslutna molnresurserna ska kunna utvärdera.

Även om rörelseaktivering genom händelsebaserade Smart Vision Sensors (SVS) kan minska denna överbelastning, kostar den här aktiveringsövervakningen också energi.

Klängande efter kraft

Förutom att även med sällsynt aktivering (dvs. en fågel ibland vandrar in i synfältet), har enheten inte tillräckligt med kraft för att skicka gigabyte av okomprimerad video; den har inte heller tillräckligt med kraft för att konstant köra populära video-kompressionskodrar som H.264/5, som förväntar sig hårdvara som är antingen ansluten eller inte långt ifrån nästa laddningssession.

Videoanalys-pipelines för tre typiska datorseende-uppgifter. Video-kodningsarkitekturen måste tränas för den uppgift som ska utföras, och vanligtvis för det neuronnät som kommer att ta emot data. Källa: https://arxiv.org/pdf/2204.12534.pdf

Videoanalys-pipelines för tre typiska datorseende-uppgifter. Video-kodningsarkitekturen måste tränas för den uppgift som ska utföras, och vanligtvis för det neuronnät som kommer att ta emot data. Källa: https://arxiv.org/pdf/2204.12534.pdf

Även om den allmänt spridda H.264-kodaren har lägre energiförbrukning än sin efterföljare H.265, har den dålig komprimeringseffektivitet. Dess efterföljare, H.265, har bättre komprimeringseffektivitet, men högre energiförbrukning. Medan Googles öppna källkod VP9-kodare slår dem båda i varje område, kräver den högre lokala beräkningsresurser, vilket presenterar ytterligare problem i en påstått billig IoT-sensor.

Så för att analysera strömmen lokalt: vid den tidpunkt då du har kört även den lättaste lokala neuronnätet för att bestämma vilka ramar (eller områden i en ram) som är värda att skicka till servern, har du ofta förbrukat den kraft du skulle ha sparat genom att skicka alla ramar.

Extraherar maskerade representationer av nötkreatur med en sensor som sannolikt inte är ansluten till elnätet. Använder den sin begränsade kraftkapacitet för lokal semantisk segmentering med ett lättviktigt neuronnät; genom att skicka begränsad information till en server för ytterligare instruktioner (vilket introducerar latency); eller genom att skicka 'dumb' data (som slösar med energi på bandbredd)? Källa: https://arxiv.org/pdf/1807.01972.pdf

Extraherar maskerade representationer av nötkreatur med en sensor som sannolikt inte är ansluten till elnätet. Använder den sin begränsade kraftkapacitet för lokal semantisk segmentering med ett lättviktigt neuronnät; genom att skicka begränsad information till en server för ytterligare instruktioner (vilket introducerar latency); eller genom att skicka ‘dumb’ data (som slösar med energi på bandbredd)? Källa: https://arxiv.org/pdf/1807.01972.pdf

Det är tydligt att ‘i det vilda’ datorseende-projekt behöver dedikerade video-kompressionskodare som är optimerade för kraven från specifika neuronnät över specifika och varierande uppgifter som semantisk segmentering, nyckelpunktsdetektering (mänsklig rörelseanalys) och objektdetektering, bland andra möjliga slutanvändningar.

Om du kan få den perfekta avvägningen mellan video-komprimeringseffektivitet och minimal dataöverföring, är du ett steg närmare SeeChange, och möjligheten att distribuera billiga sensor-nätverk i ovänliga miljöer.

AccMPEG

Ny forskning från University of Chicago kan ha tagit ett steg närmare en sådan kodare, i form av AccMPEG – en ny video-kodnings- och strömningsramverk som fungerar med låg latency, hög noggrannhet för server-sidiga djupa neuronnät (DNN), och som har förvånansvärt låga lokala beräkningskrav.

Arkitektur för AccMPEG. Källa: https://arxiv.org/pdf/2204.12534.pdf

Arkitektur för AccMPEG. Källa: https://arxiv.org/pdf/2204.12534.pdf

Systemet kan göra besparingar över tidigare metoder genom att bedöma i vilken utsträckning varje 16x16px macroblock sannolikt kommer att påverka noggrannheten hos server-sidiga DNN. Tidigare metoder har vanligtvis varit tvungna att bedöma denna typ av noggrannhet baserat på varje pixel i en bild eller utföra elektriskt dyra lokala operationer för att bedöma vilka områden av bilden som kan vara av störst intresse.

I AccMPEG, bedöms denna noggrannhet i en anpassad modul som kallas AccGrad, som mäter sätten på vilka kodningskvaliteten på macroblocket sannolikt kommer att vara relevant för den slutliga användningen, såsom en server-sidig DNN som försöker räkna människor, utföra skelett-estimering på mänsklig rörelse eller andra vanliga datorseende-uppgifter.

När en video-ram anländer till systemet, bearbetar AccMPEG den initialt genom en billig kvalitets-väljare-modell, med namnet AccModel. Alla områden som inte sannolikt kommer att bidra till de användbara beräkningarna av en server-sidig DNN är i princip ballast, och bör markeras för kodning i den lägsta möjliga kvaliteten, i kontrast till relevanta områden, som bör skickas i bättre kvalitet.

Denna process presenterar tre utmaningar: kan processen utföras tillräckligt snabbt för att uppnå acceptabel latency utan att använda energi-dränerande lokala beräkningsresurser? Kan en optimal relation mellan ramfrekvens och kvalitet etableras? Och kan en modell snabbt tränas för en individuell server-sidig DNN?

Träningslogistik

Idealt sett skulle en datorseende-kodare vara förtränad på anslutna system till de exakta kraven från ett specifikt neuronnät. AccGrad-modulen kan dock direkt härledas från en DNN med endast två framåt-propagationer, till en besparing av tio gånger den standardmässiga överbelastningen.

AccMPEG tränar AccGrad för bara 15 epoker av tre propagationer vardera genom den slutliga DNN, och kan potentiellt omtränas ‘live’ med hjälp av dess nuvarande modell-tillstånd som en mall, åtminstone för liknande CV-uppgifter.

AccModel använder den förtränade MobileNet-SSD-funktionsextraheraren, som är vanlig i billiga kant-enheter. Vid en omsättning av 12 GFLOPS, använder modellen endast en tredjedel av typiska ResNet18-ansatser. Förutom batch-normalisering och aktivering, består arkitekturen endast av konvolutionslager, och dess beräkningsöverbelastning är proportionell mot ramstorleken.

AccGrad tar bort behovet av slutlig DNN-inferens, vilket förbättrar distributionslogistiken.

AccGrad tar bort behovet av slutlig DNN-inferens, vilket förbättrar distributionslogistiken.

Ramfrekvens

Arkitekturen fungerar optimalt vid 10fps, vilket skulle göra den lämplig för ändamål som jordbruksövervakning, byggnadsdegraderingsövervakning, högvy-traffic-analys och representativ skelett-inferens i mänsklig rörelse; dock är snabbt rörliga scenarier, såsom lågvy-traffic (av bilar eller människor), och andra situationer där höga ramfrekvenser är fördelaktiga, inte lämpliga för denna ansats.

En del av metoden ligger i antagandet att angränsande macroblock sannolikt kommer att ha liknande värde, tills dess att en macroblock faller under den uppskattade noggrannheten. De områden som erhålls genom denna ansats är mer tydligt avgränsade, och kan beräknas med större hastighet.

Prestandaförbättring

Forskarna testade systemet på en $60 Jetson Nano-platta med en enda 128-kärnig Maxwell-GPU, och olika andra billiga ekvivalenter. OpenVINO användes för att kompensera för en del av energikraven för de mycket glesa lokala DNN:erna till CPU:er.

AccModel i sig var ursprungligen tränad offline på en server med 8 GeForce RTX 2080S-GPU:er. Även om detta är en imponerande samling av beräkningskraft för en initial modellbyggnad, innebär den lätta omträningsmöjlighet som systemet möjliggör, och det sätt på vilket en modell kan justeras till vissa toleransparametrar över olika DNN:er som angriper liknande uppgifter, att AccMPEG kan utgöra en del av ett system som behöver minimal övervakning i det vilda.

 

Publicerad första gången den 1 maj 2022.

Författare på maskinlärande, domänspecialist inom mänsklig bildsyntes. Fd chef för forskningsinnehåll på Metaphysic.ai, till dess upplösning i DNEG:s Brahma.ai.
Portfolio site: martinanderson.ai
Kontakt: [email protected]