
V tomto článku opisujem riešenie, ktoré sme dodali jednému z našich významných podnikových zákazníkov: automatickú anonymizáciu videa zo skutočných záznamov. Tento projekt je zároveň súčasťou našich širších skúseností s technológiou NVIDIA DeepStream. V priebehu rokov sme vyvinuli viacero riešení využívajúcich NVIDIA DeepStream v rôznych odvetviach a na rôzne účely. Opakovane sa pritom ukazuje rovnaký architektonický vzor: DeepStream zabezpečuje výpočtovo náročné spracovanie videa a úlohy umelej inteligencie na GPU, zatiaľ čo Total.js všetko prepája do kompletného integrovaného riešenia.
Pred vstupom do procesu anonymizácie prechádzajú videá úvodnou fázou predspracovania, ktorú riadi Total.js Flow. Pôvodné nahrávky vo Full HD sa pomocou FFmpeg automaticky konvertujú do rozlíšenia HD. Tým sa zmenší veľkosť súborov a videá sa optimalizujú na následné spracovanie umelou inteligenciou.
Systém každý deň spracuje viac ako 20 GB videozáznamov, pričom jednotlivé videá zvyčajne trvajú 3 až 7 hodín. Total.js Flow túto konverznú pipeline spravuje automaticky, takže prichádzajúce nahrávky sú pripravené na ďalšiu fázu.
Mimoriadne zaujímavá je veľmi nízka pamäťová náročnosť Total.js Flow. Aj počas riadenia konverzií videa pomocou FFmpeg spotrebuje aplikácia Flow približne 20 MB RAM. Samotné spracovanie videa zabezpečuje FFmpeg ako samostatný proces, vďaka čomu môže Total.js Flow zostať mimoriadne ľahký a zároveň koordinovať operácie náročné na zdroje.

Po konverzii sa videá umiestnia do frontu, kde čakajú na explicitnú požiadavku na anonymizáciu.
Po spustení anonymizácie prevezme výpočtovo náročnú prácu NVIDIA DeepStream. Systém vo videozázname deteguje ľudí a pomocou akcelerácie GPU automaticky rozmaže ich hlavy a tváre.
Nie každý však musí byť nevyhnutne anonymizovaný. Operátor môže skontrolovať detegované osoby a vybrať tie, ktoré majú zostať viditeľné. Systém potom anonymizuje všetkých ostatných a vybrané osoby vo výslednom videu zachová rozpoznateľné.
Po dokončení spracovania sa anonymizované video uloží na nakonfigurované výstupné miesto. Odtiaľ Total.js Flow pokračuje v riadení pracovného postupu — odosiela upozornenia, presúva súbory, ukladá výsledky alebo spúšťa ďalšie služby.
Tento prístup kombinuje spracovanie umelej inteligencie akcelerované GPU s flexibilnou automatizáciou pracovných postupov. Celá pipeline tak dokáže spracovať veľké množstvo dlhých videozáznamov s minimálnym manuálnym zásahom.
![]() | ![]() |
Dve snímky videa anonymizovaného systémom. Tvár každého človeka vrátane ľudí v pozadí sa automaticky skryje.
Všetko spracovanie videa prebieha v infraštruktúre zákazníka. Videozáznamy nikdy neopúšťajú prostredie zákazníka, takže citlivé nahrávky zostávajú počas celého procesu pod jeho kontrolou.
NVIDIA DeepStream zabezpečuje výpočtovo náročné spracovanie videa a úlohy umelej inteligencie. Total.js Flow všetko prepája a riadi celý proces na viacerých lokalitách.
Pre tohto zákazníka prevádzkujeme viacero inštancií Total.js Flow distribuovaných na rôznych miestach po celej krajine. Každá lokalita používa vlastnú inštanciu Flow s identickou implementáciou, takže spracovanie videa a prenosy súborov možno riadiť lokálne.
Jednou z hlavných výhod tejto architektúry je automatická synchronizácia medzi inštanciami Flow. Všetky distribuované inštancie sa synchronizujú s centrálnou hlavnou inštanciou Flow. Kedykoľvek zmeníme hlavnú implementáciu Flow, aktualizácia sa v priebehu niekoľkých sekúnd automaticky prenesie do každej pripojenej lokality.
To znamená, že celý distribuovaný systém môžeme udržiavať a vylepšovať z jedného miesta bez manuálnej aktualizácie jednotlivých inštalácií. Či už upravíme existujúci pracovný postup, opravíme problém alebo pridáme novú funkciu, všetky lokality dostanú zmeny takmer okamžite.
Orchestrácia Total.js Flow:

Videozáznamy sa z geograficky rozptýlených inštancií Flow prenášajú do centrálnej infraštruktúry pomocou protokolu WebSocket.
Na zaistenie spoľahlivosti týchto prenosov sme vyvinuli dva vlastné komponenty Total.js Flow:
Oba komponenty podporujú obnoviteľný prenos súborov, čo je mimoriadne dôležité pri práci s veľkými videozáznamami na viacerých lokalitách.
Súbory sa prenášajú v 1 MB blokoch. Ak sa sieťové pripojenie počas nahrávania preruší, prenos sa nemusí začínať od začiatku. Po opätovnom nadviazaní spojenia WebSocket komponenty automaticky pokračujú v nahrávaní od miesta, kde bolo prerušené.
Tým sa výrazne znižuje zbytočná sieťová prevádzka a systém je odolnejší voči dočasným problémom s pripojením, najmä pri prenose záznamov trvajúcich niekoľko hodín.
Vyvinuli sme aj dva špecializované komponenty Flow, ktoré sa priamo integrujú s NVIDIA DeepStream:
Person detector prijme video, vykoná detekciu pomocou umelej inteligencie a vráti obrázok každej detegovanej osoby spolu s príslušnou časovou značkou v zázname. Tieto obrázky sa potom zobrazia v centrálnom rozhraní na správu, kde môže operátor skontrolovať detegované osoby.

Anonymizer queue riadi anonymizáciu na GPU a vytvára výsledné video MP4. Podporuje spracovanie až štyroch videí v jednej dávke.

Pracovný postup anonymizácie prebieha v dvoch fázach:
Tento prístup zabezpečuje, že súkromie je predvolené, pričom v prípade potreby stále umožňuje riadené výnimky podľa pracovného postupu zákazníka.

Okrem spracovania videa a prenosov súborov Total.js Flow riadi aj prevádzkové aspekty, ktoré zabezpečujú spoľahlivosť celého systému:
Jednotlivé komponenty zostávajú relatívne malé a zamerané na konkrétne úlohy. Spúšťajú operácie, sledujú ich priebeh, zabezpečujú komunikáciu a odovzdávajú údaje do ďalšieho kroku pracovného postupu.
Skutočná sila Total.js Flow spočíva v tom, ako jednoducho možno tieto komponenty skombinovať do kompletného distribuovaného systému. Pridanie nového kroku, napríklad e-mailového upozornenia, integrácie externého úložiska, schvaľovacieho procesu alebo ďalšej služby umelej inteligencie, často nevyžaduje nič viac než pripojenie ďalšieho komponentu.
Vďaka tejto architektúre môžeme centrálne spravovať geograficky distribuovanú infraštruktúru na spracovanie videa, pričom jednotlivé lokality zostávajú synchronizované, prenosy spoľahlivé a záťaž GPU pod kontrolou.

Anonymizácia je len jednou z vecí, ktoré DeepStream dokáže. Súčasne načítava veľké množstvo videozdrojov a v reálnom čase na nich spúšťa modely umelej inteligencie — na zariadení, ktoré sa zmestí vedľa kamery. V kombinácii s Total.js to otvára dlhý zoznam možností pre každú spoločnosť s kamerami. Na viacerých z nich sme pracovali a zvyšok poznáme dostatočne dobre na to, aby sme vám pomohli posúdiť, čo je realistické:
V každom prípade platí vyššie opísaný vzor. DeepStream vykoná detekciu, Total.js Flow prepojí výsledok s vaším procesom, údajmi a ľuďmi a používateľské rozhranie sa tiež vytvorí pomocou Total.js. Ide o kompletné riešenie, nielen o samotný model.
Toto je vzor, ktorý sa nám na Total.js páči a ktorý sme použili znova a znova. Výkonný nástroj napísaný v C++, Pythone alebo inom jazyku môže fungovať za komponentom Flow. Váš tím získa vizuálny proces, ktorému rozumie a ktorý môže meniť. Špecializovaná technológia zostáva tam, kde je najsilnejšia.
S DeepStream to pokrýva množstvo potrieb v oblasti videa a umelej inteligencie. Ak máte konkrétny nápad, ozvite sa nám. Radi ho s vami preberieme.