Optical Flow – Cazuri de utilizare tipice
Optical Flow beneficiază de cazuri de utilizare cum ar fi
- Pistarea obiectelor pentru analiza video inteligentă
- Interpolarea cadrelor video, și extrapolare
- Stimarea adâncimii stereo
- Recunoașterea acțiunilor video
Pistarea obiectelor pentru analiza video inteligentă
Până acum câțiva ani, analiza video inteligentă (IVA) necesita vizualizarea fizică și analiza manuală a videoclipurilor capturate. Datorită evoluției rapide a tehnicilor de viziune computerizată și de învățare profundă, cea mai mare parte a acestor analize este acum automatizată. Identificarea obiectelor/persoanelor/vehiculelor de interes din înregistrările camerelor de securitate și urmărirea acestora pe parcursul cadrelor video poate fi realizată cu ajutorul algoritmilor de viziune computerizată. GPU-urile sunt o alegere naturală de platformă pentru rularea acestor aplicații din cauza complexității computaționale ridicate și a cerințelor de paralelism. Cea mai frecventă metodă constă în detectarea și identificarea obiectelor/persoanelor/vehiculelor de interes în fiecare cadru video și în rularea unui algoritm de corelare a obiectelor în cadre succesive pentru a le urmări mișcarea. Această metodă, deși precisă, suferă de cerințe de complexitate computațională extrem de ridicate, deoarece detectarea/identificarea obiectelor este o operațiune intensivă din punct de vedere computațional (de obicei, folosind inferența rețelelor neuronale).
Motorul hardware de flux optic ameliorează semnificativ cerințele de complexitate computațională, ajutând la urmărirea obiectelor. De exemplu, odată ce un obiect este detectat/identificat de către detector, acesta poate fi urmărit în cadre video succesive cu ajutorul unui algoritm bazat pe fluxul optic hardware al GPU. Acest lucru elimină necesitatea de a rula algoritmul de detecție la fiecare cadru, ceea ce duce la o reducere masivă a complexității de calcul. Detectorul poate acum să ruleze la fiecare al K-lea cadru fără a compromite precizia (K > 1, de obicei K = 4). Acest lucru lasă libere nucleele CUDA ale GPU-ului pentru a rula inferența pe canale suplimentare sau alte sarcini intensive din punct de vedere computațional.
Optical Flow SDK 2.0 include o bibliotecă de urmărire a obiectelor bazată pe fluxul optic, împreună cu codul sursă și API gata de utilizare. În experimentele noastre, urmăritorul de obiecte bazat pe fluxul optic a demonstrat că reduce utilizarea GPU cu până la 80%, în comparație cu unii dintre cei mai populari algoritmi, fără a compromite acuratețea urmăririi.
Interpolarea și extrapolarea cadrelor video
Fluxul optic poate fi, de asemenea, utilizat foarte eficient pentru interpolarea sau extrapolarea cadrelor video în timp real. Acest lucru poate fi util pentru a îmbunătăți fluiditatea redării video, pentru a genera videoclipuri cu încetinitorul sau pentru a reduce latența aparentă în experiența VR, așa cum este folosită de Oculus (detalii)
Funcționalitatea fluxului optic din GPU-urile Turing și Ampere accelerează aceste cazuri de utilizare prin descărcarea calculului intensiv al vectorului de flux către un motor hardware dedicat pe siliciul GPU, eliberând astfel cicluri GPU și CPU pentru alte sarcini. Această funcționalitate în hardware este independentă de nucleele CUDA.
FAQ
R: După ce descărcați SDK, consultați „ReadMe.txt”, care enumeră versiunea minimă necesară a driverului de afișare. Trebuie să instalați driverele corecte, altfel SDK nu va reuși să pornească și acesta este primul lucru pe care trebuie să-l verificați în cazul în care există un eșec de inițializare.
R: Aplicația client trebuie să interogheze capacitățile utilizând API-ul de capacități înainte de a activa orice funcție.
R: Recomandăm cu tărie tuturor dezvoltatorilor de aplicații să parcurgă în detaliu ghidurile de programare înainte de a scrie orice aplicație. În special, pentru câteva indicii cu privire la această întrebare, vă rugăm să parcurgeți următoarea secțiune din documentație:
- „Guidelines for Efficient Usage of NVOF API” (Orientări pentru utilizarea eficientă a NVOF API) din NVOF API Programming Guide (Ghid de programare NVOF API), inclus în Optical Flow SDK
R: Optical Flow SDK oferă mostre special concepute pentru a oferi performanțe optime. Puteți măsura performanța utilizând oricare dintre eșantioane.
R: API NVOF expune API-uri care permit utilizatorilor să interogheze versiunile API maxime acceptate de driverul de bază. În funcție de versiunea maximă de API suportată de driver, aplicația poate lansa codul în timpul execuției compilat cu API-ul corespunzător.
R: Vă rugăm să consultați nota aplicației NVOFA inclusă în documentația SDK pentru a vă face o idee despre performanță. Performanța depinde de mulți factori, dintre care unii includ: GPU-ul utilizat și viteza de ceas a acestuia, setările utilizate(de ex. presetare, dimensiunea grilei și caracteristici precum ROI), lățimea de bandă de memorie disponibilă, proiectarea aplicației.
Suport
Comunitatea noastră de forum este locul unde dezvoltatorii pot pune întrebări, împărtăși experiențe și participa la discuții cu NVIDIA și cu alți experți în domeniu.
Vezi forumurile aici.
Resurse suplimentare
- NVIDIA Video Codec SDK
- DeepStream SDK for Intelligent Video Analytics
- Deep Learning Software
- GitHub – Fluxul optic NVIDIA în OpenCV
- Sesiunea GTC 2020 – NVIDIA Video Technologies: Video Codec și Optical Flow SDK
- Sesiunea GTC 2020 – Utilizarea eficientă a Video Codec SDK și Optical Flow SDK pe GPU-urile NVIDIA
- NVIDIA DevBlog – 5 decembrie 2019 – Accelerarea OpenCV: Optical Flow Algorithms with NVIDIA Turing GPUs
- NVIDIA Developer News – 23 august 2019 – Researchers at VideoGorillas Use AI to Remaster Archived Content to 4K Resolution and Above
- Oculus Developer blog – 23 mai, 2019 – ASW și Passthrough+ cu NVIDIA Optical Flow
- NVIDIA DevBlog – 13 februarie 2019 – O introducere în SDK-ul NVIDIA Optical Flow