Optical Flow – Tipikus felhasználási esetek
Az Optical Flow olyan felhasználási eseteket támogat, mint
- Object tracking for intelligent video analytics
- Video frame interpolation, és extrapoláció
- Sztereó mélységbecslés
- Videó akciófelismerés
Object tracking for Intelligent Video Analytics
Néhány évvel ezelőttig az intelligens videóelemzés (IVA) a rögzített videók fizikai megtekintését és kézi elemzését igényelte. A számítógépes látás és a mélytanulási technikák gyors fejlődésével az ilyen elemzések nagy része ma már automatizált. Az érdekes tárgyak/személyek/járművek azonosítása a biztonsági kamerák felvételeiből, és nyomon követésük a videóképkockákon keresztül számítógépes látási algoritmusok segítségével valósítható meg. A GPU-k a nagy számítási komplexitás és a párhuzamossági követelmények miatt természetes választásnak számítanak az ilyen alkalmazások futtatására. A legelterjedtebb módszer az érdeklődésre számot tartó tárgyak/személyek/járművek észlelése és azonosítása minden egyes videóképkockán, majd egy algoritmus futtatása az egymást követő képkockákon lévő tárgyak korrelálására, hogy nyomon követhessük mozgásukat. Ez a módszer, bár pontos, rendkívül magas számítási bonyolultsági követelményekkel küzd, mivel a tárgyak észlelése/azonosítása számításigényes művelet (jellemzően neurális hálózati következtetés alkalmazásával).
A hardveres optikai áramlási motor jelentősen enyhíti a számítási bonyolultsági követelményeket, mivel segíti a tárgyak követését. Például, ha egy objektumot a detektor egyszer már észlelt/azonosított, azt a GPU hardveres optikai áramláson alapuló algoritmusával követni lehet az egymást követő videóképekben. Ez kiküszöböli a detektáló algoritmus minden egyes képkocka futtatásának szükségességét, ami a számítási komplexitás jelentős csökkenését eredményezi. A detektor mostantól minden K-edik képkockán futtatható a pontosság veszélyeztetése nélkül (K > 1, jellemzően K = 4). Ezáltal a GPU CUDA magjai szabadon maradnak a további csatornákra vonatkozó következtetések vagy más számításigényes feladatok futtatására.
Az Optical Flow SDK 2.0 tartalmaz egy optikai áramláson alapuló objektumkövető könyvtárat, forráskóddal és kész API-val együtt. Kísérleteink során bebizonyosodott, hogy az optikai áramláson alapuló objektumkövető akár 80%-kal csökkenti a GPU kihasználtságát a legnépszerűbb algoritmusokhoz képest, anélkül, hogy a követés pontossága csökkenne.
Videókép interpoláció és extrapoláció
Az optikai áramlás nagyon hatékonyan használható a videóképek valós idejű interpolációjára vagy extrapolációjára is. Ez hasznos lehet a videolejátszás simaságának javításában, lassított videók létrehozásában vagy a VR-élmény látszólagos késleltetésének csökkentésében, ahogyan azt az Oculus használja (részletek)
A Turing és Ampere GPU-k optikai áramlási funkciója felgyorsítja ezeket a felhasználási eseteket azáltal, hogy az intenzív áramlási vektorszámítást a GPU-szilícium dedikált hardvermotorjára terheli, ezáltal GPU- és CPU-ciklusokat szabadít fel más feladatokra. Ez a hardveres funkcionalitás független a CUDA-magoktól.
FAQ
V: Az SDK letöltése után olvassa el a “ReadMe.txt” fájlt, amely felsorolja a minimálisan szükséges kijelző-illesztőprogram verziót. A megfelelő illesztőprogramokat kell telepítenie, különben az SDK nem fog elindulni, és ez az első dolog, amit inicializálási hiba esetén ellenőrizni kell.
V: Az ügyfélalkalmazásnak le kell kérdeznie a képességeket a képesség API segítségével, mielőtt bármilyen funkciót engedélyezne.
V: Minden alkalmazásfejlesztőnek nyomatékosan javasoljuk, hogy bármely alkalmazás megírása előtt részletesen olvassa át a programozási útmutatókat. Különösen a dokumentáció következő szakaszát olvassa át a kérdéssel kapcsolatos néhány tippért:
- “Guidelines for Efficient Usage of NVOF API” in NVOF API Programming Guide, included in the Optical Flow SDK
V: Az Optical Flow SDK kifejezetten az optimális teljesítmény elérésére tervezett mintákat biztosít. A teljesítményt bármelyik minta segítségével mérheti.
A: Az NVOF API olyan API-kat állít ki, amelyek lehetővé teszik a felhasználók számára, hogy lekérdezzék a mögöttes illesztőprogram által támogatott maximális API-verziókat. Az illesztőprogram által támogatott maximális API-verziótól függően az alkalmazás a megfelelő API-val lefordított kódot indíthatja el futásidőben.
V: A teljesítményről az SDK dokumentációban található NVOFA alkalmazásjegyzetben tájékozódhat. A teljesítmény számos tényezőtől függ, amelyek közül néhány a következő: A használt GPU és annak órajele, a használt beállítások (pl. előbeállítás, rácsméret és olyan funkciók, mint a ROI), a rendelkezésre álló memória-sávszélesség, az alkalmazás tervezése.
Támogatás
Fórumközösségünkben a fejlesztők kérdéseket tehetnek fel, megoszthatják tapasztalataikat és részt vehetnek az NVIDIA és más szakértőkkel folytatott vitákban.
Nézze meg a fórumokat itt.
Kiegészítő források
- 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 és Optical Flow SDK
- GTC 2020 Session – Video Codec SDK és Optical Flow SDK hatékony használata NVIDIA GPU-kon
- NVIDIA DevBlog – December 5, 2019 – Accelerate OpenCV: Optical Flow Algorithms with NVIDIA Turing GPUs
- NVIDIA Developer News – 2019. augusztus 23. – A VideoGorillas kutatói mesterséges intelligenciát használnak az archivált tartalmak 4K felbontásra és feljebb történő remasterelésére
- Oculus Developer blog – május 23, 2019 – ASW és Passthrough+ az NVIDIA Optical Flow-val
- NVIDIA DevBlog – 2019. február 13. – Az NVIDIA Optical Flow SDK bemutatása