Unghiul lui Anderson
Un codec video proiectat pentru analiză AI

Deși techno-thriller-ul Cercul (2017) este mai mult un comentariu despre implicațiile etice ale rețelelor sociale decât despre aspectele practice ale analizei video externe, camera “SeeChange” improbabil de mică din centrul intrigii este ceea ce împinge cu adevărat filmul în categoria “științifico-fantastic”.

Dispozitivul de cameră/supraveghere ‘SeeChange’ din techno-thriller-ul ‘Cercul’ (2017).
Un dispozitiv wireless și liber, de aproximativ dimensiunea unei mărgele mari, nu este lipsa de panouri solare sau ineficiența extragerii energiei din alte surse ambientale (cum ar fi undele radio) ceea ce face SeeChange un prospect improbabil, ci faptul că va trebui să comprime video 24/7, pe orice încărcătură săracă pe care o poate menține.
Alimentarea senzorilor ieftini de acest tip este o zonă de cercetare fundamentală în domeniul viziunii calculate (CV) și al analizei video, în special în medii neurbane în care senzorul va trebui să extragă maximum de performanță din resursele de energie limitate (baterii, solare etc.).
În cazurile în care un astfel de dispozitiv de margine IoT/CV trebuie să trimită conținut de imagine către un server central (de obicei prin rețele de acoperire celulară convențională), opțiunile sunt dificile: dispozitivul trebuie să ruleze o rețea neurală ușoară local pentru a trimite doar segmente optimizate de date relevante pentru procesarea de către server; sau trebuie să trimită video “prost” pentru resursele conectate la rețea pentru a evalua.
Deși activarea prin mișcare prin senzori de viziune inteligenți (SVS) poate reduce această sarcină, această monitorizare a activării costă și ea energie.
Agățându-se de putere
Mai mult, chiar și cu activare infrequentă (de exemplu, o oaie intră ocazional în vedere), dispozitivul nu are suficientă putere pentru a trimite gigabiți de video necomprimat; nici nu are suficientă putere pentru a rula în mod constant codificatori video populari, cum ar fi H.264/5, care se așteaptă la hardware care este conectat sau nu este departe de următoarea sesiune de încărcare.

Pipe-uri de analiză video pentru trei sarcini tipice de viziune calculată. Arhitectura de codificare video trebuie să fie antrenată pentru sarcina de la îndemână și, de obicei, pentru rețeaua neurală care va primi datele. Sursă: https://arxiv.org/pdf/2204.12534.pdf
Deși codec-ul H.264, larg răspândit, are un consum de energie mai mic decât succesorul său H.265, are o eficiență de compresie slabă. Succesorul său, H.265, are o eficiență de compresie mai bună, dar un consum de energie mai mare. În timp ce codec-ul VP9 deschis al Google învinge ambele în fiecare domeniu, necesită resurse de calcul locale mai mari, ceea ce prezintă probleme suplimentare într-un senzor IoT ieftin.
În ceea ce privește analiza fluxului local: până când ai rulat chiar și cea mai ușoară rețea neurală locală pentru a determina care cadre (sau zone ale unui cadru) sunt demne de trimis la server, ai cheltuit adesea puterea pe care ai fi economisit-o trimițând toate cadrele.

Extrage reprezentări mascate ale bovinelor cu un senzor care nu este conectat la rețea. Cheltuiește capacitatea sa limitată de putere pentru segmentarea semantică locală cu o rețea neurală ușoară; trimite informații limitate către un server pentru instrucțiuni suplimentare (introducând întârziere); sau trimite date ‘proaste’ (irosind energie pe lățime de bandă)? Sursă: https://arxiv.org/pdf/1807.01972.pdf
Este clar că proiectele de viziune calculată “în sălbăticie” au nevoie de codificatori video dedicați care sunt optimizați pentru cerințele unor rețele neurale specifice și diverse, cum ar fi segmentarea semantică, detectarea punctelor cheie (analiza mișcării umane) și detectarea obiectelor, printre alte utilizări finale posibile.
Dacă poți obține compromisul perfect între eficiența compresiei video și transmisia minimă de date, ești un pas mai aproape de SeeChange și de capacitatea de a desfășura rețele de senzori accesibile în medii nefavorabile.
AccMPEG
O nouă cercetare de la Universitatea din Chicago ar putea fi făcut un pas mai aproape de un astfel de codec, sub forma AccMPEG – un cadru de codificare și transmisie video inovator care funcționează la latență scăzută, cu acuratețe ridicată pentru rețelele neurale profunde (DNN) de pe server și care are cerințe de calcul locale remarcabil de scăzute.

Arhitectura AccMPEG. Sursă: https://arxiv.org/pdf/2204.12534.pdf
Sistemul este capabil să facă economii față de metodele anterioare prin evaluarea gradului în care fiecare bloc macro de 16x16px macroblock este probabil să afecteze acuratețea rețelei neurale de pe server. Metodele anterioare au evaluat, de obicei, această acuratețe pe baza fiecărui pixel din imagine sau au efectuat operații locale electrice scumpe pentru a evalua care regiuni ale imaginii ar putea fi de cel mai mare interes.
În AccMPEG, această acuratețe este estimată într-un modul personalizat numit AccGrad, care măsoară modurile în care calitatea de codificare a macroblock-ului este probabil să fie pertinentă pentru cazul de utilizare final, cum ar fi o rețea neurală de pe server care încearcă să numere oameni, să efectueze estimarea scheletului pe mișcarea umană sau alte sarcini comune de viziune calculată.
Pe măsură ce un cadru de video intră în sistem, AccMPEG procesează inițial printr-un model de selector de calitate ieftin, intitulat AccModel. Orice zone care nu sunt probabil să contribuie la calculele utile ale unei rețele neurale de pe server sunt, în esență, balast și ar trebui să fie marcate pentru codificare la cea mai mică calitate posibilă, în contrast cu regiunile semnificative, care ar trebui să fie trimise la o calitate mai bună.
Acest proces prezintă trei provocări: poate fi procesul efectuat suficient de repede pentru a atinge o latență acceptabilă fără a utiliza resurse locale de calcul care consumă energie? Poate fi stabilită o relație optimă între rata de cadre și calitate? Și poate fi un model antrenat rapid pentru o rețea neurală de pe server individuală?
Logistica antrenamentului
Ideal, un codec de viziune calculată ar fi pregătit pe sisteme conectate la rețea pentru cerințele exacte ale unei rețele neurale specifice. Modulul AccGrad, totuși, poate fi derivat direct dintr-o rețea neurală cu doar două propagări înainte, la o economie de zece ori a suprasarcinii standard.
AccMPEG antrenează AccGrad pentru doar 15 epoci de trei propagări fiecare prin DNN-ul final și poate fi reantrenat “live” folosind starea sa curentă de model ca șablon, cel puțin pentru sarcini de viziune calculată cu specificații similare.
AccModel folosește extractorul de caracteristici preantrenat MobileNet-SSD, comun în dispozitive de margine accesibile. La o cifră de 12 GFLOPS, modelul folosește doar o treime din abordările tipice ResNet18. Pe lângă normalizarea batch-ului și activare, arhitectura constă doar din straturi convoluționale și are o suprasarcină de calcul proporțională cu dimensiunea cadrului.

AccGrad elimină nevoia de inferență finală a DNN, îmbunătățind logistica de implementare.
Rată de cadre
Arhitectura rulează optim la 10fps, ceea ce o face potrivită pentru scopuri cum ar fi monitorizarea agricolă, supravegherea degradării clădirilor, analiza traficului din vedere de sus și inferența scheletului reprezentativ în mișcarea umană; cu toate acestea, scenarii cu mișcare rapidă, cum ar fi traficul din vedere de jos (al mașinilor sau oamenilor) și alte situații în care ratele de cadre ridicate sunt benefice, nu sunt potrivite pentru această abordare.
O parte a metodei constă în premisa că macroblocurile adiacente sunt probabil să aibă o valoare similară, până în punctul în care un macroblock scade sub acuratețea estimată. Zonele obținute prin această abordare sunt mai clar delimitate și pot fi calculate la o viteză mai mare.
Îmbunătățirea performanței
Cercetătorii au testat sistemul pe o placă Jetson Nano de 60 de dolari cu un singur GPU Maxwell cu 128 de nuclei și alte dispozitive ieftine echivalente. OpenVINO a fost utilizat pentru a compensa unele dintre cerințele de energie ale rețelelor neurale locale foarte rare la CPU.
AccModel a fost inițial antrenat offline pe un server cu 8 GPU GeForce RTX 2080S. Deși aceasta este o putere de calcul formidabilă pentru o construcție inițială de model, reantrenarea ușoară pe care o face posibilă sistemul și modul în care un model poate fi ajustat la anumite parametri de toleranță în diferite DNN care atacă sarcini similare înseamnă că AccMPEG poate face parte dintr-un sistem care are nevoie de o atenție minimă “în sălbăticie”.
Publicat pentru prima dată pe 1 mai 2022.












