16.8.2021
Poslední roky se zabývám neuronovými sítěmi, umělou inteligencí a deep-learningem a snažím se aplikovat nové poznatky v praxi. Už delší dobu používáme v kaceláři vrátného s rozeznáváním obličeje. Na experimenty s neuronovými sítěmi jsme si pořídili do kanceláře Pásovce. Software ve videostreameru dokážeme doplnit o moduly například pro rozeznávání osob, automobilů nebo identifikaci osob podle obličeje.
Společným prvkem ve většině aplikací neuronových sítí pro zpracování videa je u nás Nvidia Jetson Nano – jde o malý, levný počítač vybavený výkonným akcelerátorem pro umělou inteligenci.
Pro zpracování obrazu a zvuku nabízí Nvidia technologii DeepStream. Technologie DeepStream je postavená na GStreameru. Video se po jednotlivých snímcích předává z jednoho modulu do druhého, v každém modulu se provádí se snímkem nějaká operace. DeepStream dokáže ke snímkům přiložit i další užitečné informace, jako je například počet osob ve videu, jejich pozici na snímku, identifikaci podle obličeje, rozeznávání automobilů, čtení registračních značek a podobně. Nejlépe zde poslouží obrázek.
Nabízíme hotový počítač pro využití AI při zpracování obrazu: Videostreamer. Systém dovedeme doplnit o různé moduly pro rozeznávání objektů. Umělou inteligenci pro zpracování videa dokážeme zabudovat i do zákaznické aplikace na míru.
Přímo k Nvidia Jetson Nano lze připoji kamery dvě. Mimo to lze připojit množství dalších kamer po síti nebo přes USB.
Obraz lze před dalším zpracování různě upravovat – například vybrat pouze oblast zájmu, otočit a podobně.
Nvmux spojí video z několika kamer do jednoho video streamu. Svůj význam to má, pokud máte kamer připojených několik, a na všech chcete hledat auta a rozeznávat jejich registračí značku. Zpracování navíc poté může probíhat dávkově – za cenu mírného zpoždění obrazu se dosáhne vyššího výkonu.
V tomto modulu se vyhledají a označí (v metadatech) všechny objekty, které nás zajímají. Chceme-li rozeznávat registrační značky vozidel a typ vozidla, potřebujeme najít ve videu všechna auta a všechny registrační značky.
V předchozím modulu nvinfer se zpracovávají snímky videa jeden po druhém nezávisle na sobě. Nvtrack propojí informace ze snímků dohromady. Lidově řečeno – z třiceti různých detekovaných vozidel vyrobí nvtrack vozidlo jediné, detekované na třiceti po sobě jdoucích snímcích.
Těchto modulů může být použito několik – na obrázku jsou uvedené dva:
Při rozeznávání vozidel a jejich registračních značek může být užitečné určit i typ auta. Nechcete přeci pustit na malinké firemní parkoviště kamión, když víte, že jediná cesta ven vede couváním skrz výlohu.
On-screen-display: dokáže zobrazit metadata přímo ve zpracovávaném video streamu. Doplní orámování kolem objektů, napíše typ auta, registrační značku a podobně.
Informace namalovaná do video streamu je obvykle k ničemu. K systému pro čtení registračních značek je obvykle potřeba připojit různá zařízení – ovládání závory, automat pro výběr parkovacích poplatků, databázi a podobně. Modul nvmsgbroker dokáže předat metainformace po síti do jiného systému, používá k tomu protokoly pro IoT (Kafka, MQTT...)
Dávkově zpracovaný stream se rozdělí do původních několika streamů.
Zobrazení videa už je jen poslední, většinou bezvýznamná záležitost. Standardním kódovaním je dnes H264 či H265, přenosové protokoly mohou být různé (HSL, RTP atd.) Komprimace videa v Jetson Nano je zajištěná hardwarově.
Pro zpracování obrazu dnes existuje mnoho hotových neuronových sítí typu YOLO, SSD a podobně. Tyto sítě lze stáhnout hotové, natrénované na rozeznávání například již zde uvedených osob nebo automobilů.
Hotové neuronové sítě lze většinou natrénovat i na rozeznávání jiných typů objektů. Neuronovou síť je tak možné použít například pro počítání slepic a kachen na dvorku, vyžaduje to však velké úsilí při vytváření dostatečného množství dat pro trénování sítě.
Speciální typy úloh potom potřebují vlastní návrh neuronové sítě. Takovou úlohou je třeba vyhýbání se překážkám v Pásovci. Protože Pásovec disponuje dvěma kamerami – a tedy i prostorovými viděním – musí být neuronová síť navržená tak, aby zpracovávala oba kanály (levý i pravý) současně a aby dokázala odhadnout vzdálenost překážky a z ní odvodit pořebnou akci (popis sítě pro Pásovce).