Optical Flow – typické případy použití
Optical Flow přináší výhody v případech použití, jako je
- Sledování objektů pro inteligentní analýzu videa
- Interpolace snímků videa, a extrapolace
- Odhad hloubky sterea
- Rozpoznávání akcí na videu
Sledování objektů pro inteligentní analýzu videa
Ještě před několika lety vyžadovala inteligentní analýza videa (IVA) fyzické prohlížení a ruční analýzu pořízených videí. Díky rychlému vývoji v oblasti počítačového vidění a technik hlubokého učení je nyní většina takových analýz automatizovaná. Identifikace zájmových objektů/osob/vozidel ze záznamů bezpečnostních kamer a jejich sledování napříč snímky videa lze dosáhnout pomocí algoritmů počítačového vidění. GPU jsou přirozenou volbou platformy pro provoz těchto aplikací kvůli vysoké výpočetní složitosti a požadavkům na paralelismus. Nejběžnější metodou je detekce a identifikace zájmových objektů/osob/vozidel v každém snímku videa a spuštění algoritmu pro korelaci objektů v po sobě jdoucích snímcích za účelem sledování jejich pohybu. Tato metoda je sice přesná, ale trpí extrémně vysokými nároky na výpočetní složitost, protože detekce/identifikace objektů je výpočetně náročná operace (typicky pomocí inference neuronových sítí).
Hardwarový motor optického toku výrazně zmírňuje požadavky na výpočetní složitost tím, že pomáhá sledovat objekty. Jakmile je například objekt detekován/identifikován detektorem, může být sledován v následujících snímcích videa algoritmem založeným na hardwarovém optickém toku GPU. Tím odpadá nutnost spouštět detekční algoritmus každý snímek, což vede k obrovskému snížení výpočetní náročnosti. Detektor nyní může být spuštěn každý K-tý snímek, aniž by byla ohrožena přesnost (K > 1, typicky K = 4). Tím zůstávají jádra CUDA GPU volná pro spuštění inference na dalších kanálech nebo jiných výpočetně náročných úlohách.
Optical Flow SDK 2.0 obsahuje knihovnu pro sledování objektů založenou na optickém toku spolu se zdrojovým kódem a rozhraním API připraveným k použití. V našich experimentech se ukázalo, že sledovač objektů založený na optickém toku snižuje využití GPU až o 80 % ve srovnání s některými nejoblíbenějšími algoritmy, aniž by byla ohrožena přesnost sledování.
Interpolace a extrapolace videosnímků
Optický tok lze také velmi efektivně použít pro interpolaci nebo extrapolaci videosnímků v reálném čase. To může být užitečné při zlepšování plynulosti přehrávání videa, generování zpomalených videí nebo snižování zdánlivé latence při zážitku z VR, jak to používá Oculus (podrobnosti)
Funkce optického toku v grafických procesorech Turing a Ampere urychluje tyto případy použití tím, že intenzivní výpočet vektorů toku přenáší na vyhrazený hardwarový engine na křemíku GPU, čímž uvolňuje cykly GPU a CPU pro jiné úlohy. Tato funkce v hardwaru je nezávislá na jádrech CUDA.
FAQ
Odpověď: Po stažení sady SDK si přečtěte soubor „ReadMe.txt“, kde je uvedena minimální požadovaná verze ovladače displeje. Musíte nainstalovat správné ovladače, jinak se SDK nespustí, a to je první věc, kterou byste měli zkontrolovat v případě, že dojde k selhání inicializace.
Odpověď: Klientská aplikace by se měla před povolením jakékoli funkce dotázat na schopnosti pomocí rozhraní API schopností.
Odpověď: Důrazně doporučujeme všem vývojářům aplikací, aby si před napsáním jakékoli aplikace podrobně prošli programové příručky. Některé tipy k této otázce naleznete zejména v následující části dokumentace:
- „Guidelines for Efficient Usage of NVOF API“ v příručce NVOF API Programming Guide, která je součástí sady Optical Flow SDK
A: Sada Optical Flow SDK poskytuje vzorky speciálně navržené tak, aby poskytovaly optimální výkon. Výkon můžete měřit pomocí libovolného ze vzorků.
A: NVOF API vystavuje API, které umožňuje uživatelům dotazovat se na maximální verze API podporované základním ovladačem. V závislosti na maximální verzi API podporované ovladačem může aplikace za běhu spustit kód zkompilovaný s příslušným API.
O: Představu o výkonu získáte v poznámce k aplikaci NVOFA, která je součástí dokumentace SDK. Výkon závisí na mnoha faktorech, mezi které patří např:
Podpora
Naše komunita na fóru je místem, kde mohou vývojáři klást otázky, sdílet zkušenosti a účastnit se diskusí se společností NVIDIA a dalšími odborníky v oboru.
Podívejte se na fórum zde.
Další zdroje
- NVIDIA Video Codec SDK
- DeepStream SDK for Intelligent Video Analytics
- Deep Learning Software
- GitHub – NVIDIA Optical flow in OpenCV
- Session GTC 2020 – NVIDIA Video Technologies: GTC 2020 Session – Efektivní využití Video Codec SDK a Optical Flow SDK na grafických procesorech NVIDIA
- NVIDIA DevBlog – 5. prosince 2019 – Zrychlení OpenCV:
- NVIDIA Developer News – 23. srpna 2019 – Výzkumníci z VideoGorillas využívají umělou inteligenci k remasterování archivního obsahu do rozlišení 4K a vyššího
- Oculus Developer blog – 23. května, 2019 – ASW a Passthrough+ s NVIDIA Optical Flow
- NVIDIA DevBlog – 13. února 2019 – Úvod do NVIDIA Optical Flow SDK