NVIDIA Optical Flow SDK

Optical Flow – typiske brugssituationer

Optical Flow gavner brugssituationer som

  • Objektsporing til intelligent videoanalyse
  • Video-frameinterpolation, og ekstrapolering
  • Stereo dybdevurdering
  • Video-handlingsgenkendelse

Objektsporing til intelligent videoanalyse

Indtil for få år siden krævede intelligent videoanalyse (IVA) fysisk visning og manuel analyse af de optagede videoer. Med den hurtige udvikling inden for computervision og dybe indlæringsteknikker er det meste af en sådan analyse nu automatiseret. Identificering af objekter/personer/køretøjer af interesse fra overvågningskameraoptagelser og sporing af dem på tværs af videobillederne kan opnås ved hjælp af computervision-algoritmer. GPU’er er et naturligt valg af platform til at køre disse applikationer på grund af deres høje kompleksitet og parallelitetskrav. Den mest almindelige metode er at registrere og identificere objekter/personer/køretøjer af interesse i hvert enkelt videobillede og køre en algoritme til at korrelere objekterne i på hinanden følgende billeder for at spore deres bevægelse. Denne metode er ganske vist præcis, men lider under ekstremt høje krav til beregningskompleksitet, da objektdetektion/identifikation er en beregningskrævende operation (typisk ved hjælp af neurale netværksinferens).

Den optiske flowmotor i hardware letter kravene til beregningskompleksitet betydeligt ved at hjælpe med at spore objekter. Når et objekt først er detekteret/identificeret af detektoren, kan det f.eks. spores i på hinanden følgende videobilleder ved hjælp af en algoritme baseret på GPU’ens hardwareoptiske flow-motor. Dette eliminerer behovet for at køre detektionsalgoritmen for hvert enkelt billede, hvilket resulterer i en massiv reduktion af den beregningsmæssige kompleksitet. Detektoren kan nu køre hvert K-te billede uden at gå på kompromis med nøjagtigheden (K > 1, typisk K = 4). Dette giver GPU’ens CUDA-kerner fri til at køre inferens på yderligere kanaler eller andre beregningsmæssigt intensive opgaver.

Optical Flow SDK 2.0 indeholder et objektsporingbibliotek baseret på optisk flow sammen med kildekode og et API, der er klar til brug. I vores eksperimenter har den optisk flow-baserede objekttracker vist sig at reducere GPU-anvendelsen med op til 80 % sammenlignet med nogle af de mest populære algoritmer uden at gå på kompromis med nøjagtigheden af sporingen.


Videorammeinterpolation og ekstrapolation

Optisk flow kan også bruges meget effektivt til at interpolere eller ekstrapolere videorammerne i realtid. Dette kan være nyttigt til at forbedre smidigheden af videoafspilning, generere slowmotion-videoer eller reducere den tilsyneladende latenstid i VR-oplevelser, som det bruges af Oculus (detaljer)

Optical Flow-funktionaliteten i Turing- og Ampere-GPU’er fremskynder disse anvendelsestilfælde ved at aflaste den intensive flowvektorberegning til en dedikeret hardware-motor på GPU-siliciumet og derved frigøre GPU- og CPU-cyklusser til andre opgaver. Denne funktionalitet i hardware er uafhængig af CUDA-kerner.

FAQ

A: Når du har downloadet SDK’et, skal du se “ReadMe.txt”, som angiver den krævede minimumsversion af skærmdriveren. Du skal installere de rigtige drivere, ellers vil SDK’et ikke kunne starte, og det er det første, du skal kontrollere, hvis der opstår en initialiseringsfejl.

Sv: Klientprogrammet skal forespørge på funktionerne ved hjælp af API’et for funktionerne, før det aktiverer en funktion.

Sv: Vi anbefaler på det kraftigste alle applikationsudviklere at gennemgå programmeringsvejledningerne i detaljer, inden de skriver en applikation. Du kan især få nogle tips om dette spørgsmål ved at gennemgå følgende afsnit i dokumentationen:

  1. “Guidelines for Efficient Usage of NVOF API” i NVOF API Programming Guide, der er inkluderet i Optical Flow SDK

Svar: Optical Flow SDK indeholder eksempler, der er specielt designet til at give optimal ydeevne. Du kan måle ydeevnen ved hjælp af alle prøverne.

Sv: NVOF API eksponerer API’er, som giver brugerne mulighed for at forespørge om de maksimale API-versioner, der understøttes af den underliggende driver. Afhængigt af den maksimale API-version, der understøttes af driveren, kan programmet starte kode ved kørselstid, der er kompileret med den relevante API.

Sv: Se venligst NVOFA-applikationsnotatet, der er inkluderet i SDK-dokumentationen, for at få en idé om ydeevne. Ydelsen afhænger af mange faktorer, hvoraf nogle af dem omfatter: GPU i brug og dens clockhastighed, anvendte indstillinger (f.eks. forudindstilling, gitterstørrelse og funktioner som ROI), tilgængelig hukommelsesbåndbredde, applikationsdesign.

Support

Vores forumfællesskab er et sted, hvor udviklere kan stille spørgsmål, dele erfaringer og deltage i diskussioner med NVIDIA og andre eksperter inden for området.
Kig på forummet her.

Supplerende ressourcer

  • NVIDIA Video Codec SDK
  • DeepStream SDK for Intelligent Video Analytics
  • Deep Learning Software
  • GitHub – NVIDIA Optical flow in OpenCV
  • GTC 2020 Session – NVIDIA Video Technologies: Video Codec and Optical Flow SDK
  • GTC 2020 Session – Effektiv brug af Video Codec SDK og Optical Flow SDK på NVIDIA GPU’er
  • NVIDIA DevBlog – December 5, 2019 – Accelerate OpenCV: Optical Flow-algoritmer med NVIDIA Turing GPU’er
  • NVIDIA Developer News – August 23, 2019 – Forskere hos VideoGorillas bruger AI til at remastre arkiveret indhold til 4K-opløsning og derover
  • Oculus Developer Blog – 23. maj, 2019 – ASW og Passthrough+ med NVIDIA Optical Flow
  • NVIDIA DevBlog – 13. februar 2019 – En introduktion til NVIDIA Optical Flow SDK

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.