Optical Flow – Tyypillisiä käyttötapauksia
Optical Flow hyödyttää käyttötapauksia, kuten
- Objektien seuranta älykkääseen videoanalytiikkaan
- Videoiden kehysten interpolointi, ja ekstrapolointi
- Stereosyvyyden estimointi
- Videotoimintojen tunnistaminen
Object tracking for Intelligent Video Analytics
Kunnes muutama vuosi sitten älykkään videoanalytiikan (IVA, Intelligent Video Analytics) toteuttaminen edellytti kuvattujen videoiden fyysistä katselua ja manuaalista analysointia. Tietokonenäön ja syväoppimistekniikoiden nopean kehityksen myötä suurin osa tällaisesta analysoinnista on nyt automatisoitu. Kiinnostavien kohteiden/henkilöiden/ajoneuvojen tunnistaminen turvakameran kuvamateriaalista ja niiden seuraaminen videokuvissa voidaan toteuttaa käyttämällä tietokonenäköalgoritmeja. Grafiikkasuorittimet ovat luonnollinen valinta alustaksi näiden sovellusten suorittamiseen, koska niiden laskennallinen monimutkaisuus ja rinnakkaisuusvaatimukset ovat korkeat. Yleisin menetelmä on havaita ja tunnistaa kiinnostavat kohteet/henkilöt/ajoneuvot jokaisessa videokuvassa ja suorittaa algoritmi, joka korreloi kohteet peräkkäisissä kuvissa niiden liikkeen seuraamiseksi. Vaikka tämä menetelmä on tarkka, se kärsii erittäin korkeista laskennallisen monimutkaisuuden vaatimuksista, koska kohteen havaitseminen/tunnistaminen on laskentaintensiivinen operaatio (tyypillisesti neuroverkon päättelyä käyttäen).
Laitteiston optinen virtausmoottori helpottaa laskennallisen monimutkaisuuden vaatimuksia merkittävästi auttamalla kohteiden seurannassa. Esimerkiksi kun tunnistin on havainnut/tunnistanut kohteen, sitä voidaan seurata peräkkäisissä videokuvissa GPU:n laitteiston optiseen virtaukseen perustuvalla algoritmilla. Näin havaitsemisalgoritmia ei tarvitse suorittaa joka kehyksessä, mikä vähentää laskennallista monimutkaisuutta huomattavasti. Ilmaisin voidaan nyt suorittaa joka K:nnen kuvan välein tarkkuudesta tinkimättä (K > 1, tyypillisesti K = 4). Näin GPU:n CUDA-ytimet jäävät vapaiksi ylimääräisten kanavien päättelyyn tai muihin laskentaintensiivisiin tehtäviin.
Optical Flow SDK 2.0 sisältää optiseen virtaukseen perustuvan objektinseurantakirjaston sekä lähdekoodin ja valmiin API:n. Kokeissamme optiseen virtaukseen perustuva objektinseuranta on osoittanut vähentävänsä GPU:n käyttöä jopa 80 % verrattuna joihinkin suosituimpiin algoritmeihin tinkimättä seurannan tarkkuudesta.
Videokuvakehysten interpolointi ja ekstrapolointi
Optista virtausta voidaan käyttää myös erittäin tehokkaasti videokuvakehysten reaaliaikaiseen interpolointiin tai ekstrapolointiin. Tämä voi olla hyödyllistä videotoiston sujuvuuden parantamisessa, hidastettujen videoiden tuottamisessa tai VR-kokemuksen näennäisen viiveen vähentämisessä, kuten Oculus käyttää (lisätietoja)
Turing- ja Ampere-grafiikkasuorittimissa oleva optisen virtauksen toiminto nopeuttaa näitä käyttötapauksia siirtämällä intensiivisen virtausvektorin laskennan erilliselle laitteistokehittimelle grafiikkasuorittimessa, jolloin grafiikkasuorittimelta ja suorittimelta vapautuu sykliä muihin tehtäviin. Tämä laitteiston toiminnallisuus on riippumaton CUDA-ytimistä.
FAQ
Vastaus: Kun olet ladannut SDK:n, katso ”ReadMe.txt”, jossa luetellaan vaadittu näytönohjaimen vähimmäisversio. Sinun on asennettava oikeat ajurit tai muuten SDK ei käynnisty, ja tämä on ensimmäinen asia, joka sinun on tarkistettava, jos alustaminen epäonnistuu.
V: Asiakassovelluksen on kysyttävä kyvykkyyksiä kyvykkyyksien käyttöliittymällä (capability API), ennen kuin se ottaa käyttöön minkä tahansa ominaisuuden.
V: Suosittelemme kaikille sovelluskehittäjille, että he tutustuvat ohjelmointioppaaseen yksityiskohtaisesti ennen sovelluksen kirjoittamista. Erityisesti tätä kysymystä koskevia vihjeitä löydät dokumentaation seuraavasta osiosta:
- ”Guidelines for Efficient Usage of NVOF API” (Ohjeita NVOF-API:n tehokkaaseen käyttöön) NVOF API Programming Guide (NVOF-API:n ohjelmointiopas), joka sisältyy Optical Flow SDK:hon
A: Optical Flow SDK tarjoaa näytteitä, jotka on suunniteltu nimenomaisesti optimaalisen suorituskyvyn saavuttamiseksi. Voit mitata suorituskykyä minkä tahansa näytteen avulla.
A: NVOF API paljastaa API:t, joiden avulla käyttäjät voivat kysyä taustalla olevan ohjaimen tukemia API-versioita maksimissaan. Ajurin tukemasta enimmäis-API-versiosta riippuen sovellus voi käynnistää ajonaikaisen koodin, joka on käännetty sopivalla API:lla.
V: Katso SDK:n dokumentaatioon sisältyvä NVOFA-sovellusmuistio saadaksesi käsityksen suorituskyvystä. Suorituskyky riippuu monista tekijöistä, joista joitakin ovat mm. seuraavat: Käytössä oleva näytönohjain ja sen kellotaajuus, käytetyt asetukset (esim. esiasetus, ruudukkokoko ja ominaisuudet, kuten ROI), käytettävissä oleva muistikaistanleveys, sovellussuunnittelu.
Tuki
Foorumi-yhteisömme foorumiyhteisö on paikka, jossa kehittäjät voivat kysyä kysymyksiä, vaihtaa kokemuksiaan ja osallistua keskusteluihin NVIDIA:n ja muiden asiantuntijoiden kanssa alalla.
Tutustu foorumeihin täällä.
Lisäresurssit
- NVIDIA Video Codec SDK
- DeepStream SDK älykkääseen videoanalytiikkaan
- Syväluento-ohjelmisto
- GitHub – NVIDIAn optinen virtaus OpenCV:ssä
- GTC 2020 -istunto – NVIDIAn videoteknologiat: Video Codec ja Optical Flow SDK
- GTC 2020 Session – Video Codec SDK:n ja Optical Flow SDK:n tehokas käyttö NVIDIAn näytönohjaimilla
- NVIDIA DevBlog – 5. joulukuuta 2019 – Accelerate OpenCV: Optical Flow Algorithms with NVIDIA Turing GPUs
- NVIDIA Developer News – August 23, 2019 – VideoGorillas -yrityksen tutkijat käyttävät tekoälyä arkistoidun sisällön remasterointiin 4K-resoluutioon ja ylempään
- Oculus Developer blog – May 23, 2019 – ASW ja Passthrough+ NVIDIA Optical Flow’lla
- NVIDIA DevBlog – 13. helmikuuta 2019 – Johdatus NVIDIA Optical Flow SDK:hon