Myslitelé

Použití umělé inteligence v reálném zpracování videa: Základy a více

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Od Maksyma Tatariants, inženýra datové vědy ve společnosti MobiDev.

Nic nového není na použití umělé inteligence (AI) v zpracování videa. Pokud se podíváte za zpracování obrazu – je to jeden z nejčastějších použití AI. A stejně jako zpracování obrazu, zpracování videa používá zavedené techniky jako počítačové vidění, rozpoznávání objektů, strojové učení a hluboké učení, aby tento proces vylepšilo.

Zda používáte počítačové vidění a NLP v editaci videa a generaci, rozpoznávání objektů v automatickém označování videa, strojové učení pro optimalizaci analýzy videa nebo hluboké učení pro urychlení odstranění pozadí, použití případů stále rostou.

Čtěte dál, abyste se dozvěděli, jaký přístup můžete zvolit při použití AI ve zpracování videa.

Základy zpracování videa v reálném čase

Začněme základy. Zpracování videa v reálném čase je nezbytnou technologií v systémech sledování pomocí rozpoznávání objektů a obličejů. Je také proces, který pohání software pro inspekci AI v průmyslovém sektoru.

Takže, jak funguje zpracování videa? Zpracování videa zahrnuje řadu kroků, které zahrnují dekódování, výpočet a kódování. Zde je to, co potřebujete vědět:

  • Dekódování: Proces, který je vyžadován pro převod videa z komprimovaného souboru zpět do jeho surové formy.
  • Výpočet: Konkrétní operace provedená na surovém videoframu.
  • Kódování: Proces, který převede zpracovaný rámec zpět do jeho původního komprimovaného stavu.

Nyní je cílem každého úkolu zpracování videa dokončit tyto kroky co nejrychleji a nejrychleji. Nejlehčí způsob, jak toho dosáhnout, je pracovat paralelně a optimalizovat algoritmus pro rychlost. Jednoduše řečeno? Musíte využít rozdělení souborů a architekturu potrubí.

Co je rozdělení souboru videa?

Rozdělení souboru videa umožňuje algoritmům pracovat současně, aby mohly používat pomalejší, ale přesnější modely. To je dosaženo rozdělením videí na samostatné části, které jsou pak zpracovány současně.

Můžete si rozdělení videa představit jako formu virtuální generace souboru místo generace pod-souboru.

Přes to, rozdělení souboru videa není nejlepší volbou pro zpracování videa v reálném čase. Proč přesně? Tento proces dělá obtížné pozastavit, obnovit a přehrávat soubor, zatímco je zpracováván.

Co je architektura potrubí?

Ostatní možností je architektura potrubí. Tento proces pracuje na rozdělení a paralelním zpracování úkolů, které jsou prováděny během zpracování, místo přímého rozdělení videa.

Zde je rychlý příklad toho, jak vypadá architektura potrubí v praxi a jak ji lze použít v systému sledování videa k detekci a rozmazání obličejů v reálném čase.

V tomto příkladu, potrubí rozdělilo úkoly na dekódování, detekci obličejů, rozmazání obličejů a kódování. A pokud chcete zlepšit rychlost potrubí, můžete použít techniky hlubokého učení.

Vysvětlení dekódování a kódování

Co se týče dekódování a kódování? Existují dvě způsoby, jak dokončit tyto procesy: software a hardware.

Možná jste již obeznámeni s konceptem hardwarové akcelerace. Tento proces je umožněn dekodéry a kódéry instalovanými v nejnovějších grafických kartách NVIDIA a CUDA jádrech.

Takže, jaké možnosti máte k dispozici pro hardwarovou akceleraci pro kódování a dekódování? Zde jsou některé z nejpopulárnějších možností:

  • Kompilace OpenCV s podporou CUDA: Kompilace OpenCV s podporou CUDA optimalizuje dekódování a jakýkoli výpočet, který používá OpenCV. Mějte na paměti, že budete muset psát v C++, protože Pythonový obal tuto funkci nepodporuje. Ale v situacích, které vyžadují dekódování a numerické výpočty s GPU bez kopírování z paměti CPU, je to stále jedna z lepších možností.
  • Kompilace FFmpeg nebo GStreamer s podporou NVDEC/NVENC kodeků: Další možností je použít vestavěný dekodér a kódér NVIDIA, který je součástí vlastních instalací FFmpeg a Gstreamer. Nicméně doporučujeme používat FFmpeg, protože vyžaduje méně údržby. Kromě toho většina knihoven je poháněna FFmpeg, což znamená, že automaticky zvýšíte výkon knihovny, pokud ji nahradíte.
  • Použití rámce zpracování videa NVIDIA: Konečnou možností je použít Pythonový obal pro dekódování rámce přímo do PyTorch tensoru na GPU. Tato možnost odstraňuje extra kopírování z CPU do GPU.

Detekce a rozmazání obličejů

Modely detekce objektů (SSD nebo RetinaFace) jsou populární volbou pro detekci obličejů. Tyto řešení pracují na lokalizaci lidského obličeje ve rámci. A na základě našeho zkušeností, máme tendenci preferovat modely Caffe Face a TensorFlow objektové detekce, protože poskytly nejlepší výsledky. Kromě toho jsou oba dostupné pomocí knihovny OpenCV modulu dnn.

Takže, co je dalším krokem po detekci obličeje? Následně systém založený na Pythonu a OpenCV odhalí obdélníky a detekční jistotu. Nakonec je aplikován algoritmus rozmazání na ořezané oblasti.

Jak můžete vytvořit software pro zpracování videa v reálném čase s AI?

Není žádným tajemstvím, že zpracování videa, kodeky, které ho pohání, a hardware a software, které jsou vyžadovány, jsou poměrně technické povahy.

Přesto to neznamená, že nemůžete tyto nástroje použít k vytvoření vlastního softwaru pro zpracování videa v reálném čase.

Zde je stručný přehled toho, co musíte udělat:

  1. Začněte úpravou svého předem trénovaného neuronového sítě, aby dokončil úkoly, které jsou vyžadovány.
  2. Konfigurovat svou cloudovou infrastrukturu pro zpracování videa a škálovat podle potřeby.
  3. Vytvořit software pro zhuštění procesu a integraci konkrétních použití, jako jsou mobilní aplikace a administrativní nebo webové panely.

Vývoj MVP pro podobný software pro zpracování videa může trvat až čtyři měsíce pomocí předem trénované neuronové sítě a jednoduchých aplikačních vrstev. Nicméně, rozsah a časový rámec závisí na podrobnostech každého projektu. Ve většině případů má smysl začít s vývojem Proof of Concept, aby se prozkoumaly podrobnosti projektu a našla optimální tok.

Maksym je ochotný získat nové poznatky a zkušenosti v oblasti Data Science a Machine Learning. Je zvláště intéressován technologiemi založenými na Deep Learning a jejich aplikací v obchodních případech.