Rozpoznávání vzorů

Detekce objektů ve videosekvenci v prostředí MATLAB & Simulink

Metody rozpoznávání vzorů (pattern matching) mají v současné technice a informatice široké využití. Jednou z oblastí jsou i algoritmy pro automatické rozpoznávání objektů v obrazových datech. MATLAB & Simulink představuje díky svým možnostem vhodný nástroj pro jejich implementaci.

MATLAB a Simulink ve zpracování videa
MATLAB je programovací jazyk čtvrté generace s rozsáhlými knihovnami vysoce nadstavbových funkcí pro vědecko-technické výpočty, řešení diferenciálních rovnic, statistiku, zpracování signálu a mnoho dalších. Širokou oblast zabírají i algoritmy a funkce určené pro zpracování obrazu. Jeho nadstavba Simulink vnáší do algoritmizace práci s časem a je tudíž vhodná pro modelování a simulaci dynamických systémů či tvorbu algoritmů, které jsou s časem úzce spjaté. Algoritmus se vytváří v grafickém prostředí skládáním bločků z předdefinovaných knihoven, kde každý bloček reprezentuje jednotlivou matematickou operaci či funkci. Bločky se propojují spojnicemi znázorňujícími tok dat v algoritmu do výsledného schématu, které může ve výsledku sestávat z několika úrovní zanoření. Toho se dosáhne pomocí definování bloků subsystémů, které v sobě ukrývají další funkční schémata. Simulink ve spojení s funkcemi pro zpracování obrazu lze využít k návrhu pokročilých algoritmů pro zpracování videa, ať už se jedná o videosekvenci uloženou v některém ze standardních souborových formátů nebo živý vstup z připojené webové kamery či framegrabberu.

Algoritmus detekce objektů ve videosekvenci
Algoritmus pro vyhledání zadaného objektu ve videosekvenci byl naprogramován v Simulinku s využitím knihoven pro zpracování obrazu a videa. Celý algoritmus sestává z několika subsystémů.
Ve fialovém rámečku na levé straně je blok s popiskem Target pro zadání hledaného vzorku, v tomto případě obrázku obdélníkového mikročipu. Vstupní videosekvence je ve formátu avi a je připojena blokem From Multimedia File. Videosekvence obsahuje průchod základní desky stolního PC před kamerou. Jádro algoritmu se skrývá v subsystému Target detection and tracking. Jeho cílem je určit, zda se hledaný objekt nachází v jednotlivých snímcích videosekvence, resp. určit metriku odpovídající míře shody vzoru s danou oblastí ve videosekvenci. K tomu byli využity funkce pro 2D normalizovanou cross-korelaci. Pokud je metrika v některém místě větší než prahová úroveň, uživatelsky definovatelná v bloku Threshold, je toto místo ve videu označeno zeleným rámečkem.
Výsledek cross-korelace pro konkrétní snímek ve videosekvenci lze se zobrazit graficky. Barva znázorňuje hodnotu metriky určující míru shody vzoru s danou oblastí snímku. Bílá odpovídá nejvyšší shodě.
Vstup z avi souboru by bylo dále možné nahradit vstupem živého videa použitím bloku pro připojení signálu z webové kamery. Takto by se algoritmus mohl stát součástí klasifikačního nebo detekčního zařízení pracujícího v reálném čase.

Možnosti využití
Obecně lze algoritmy pro zpracování videa vytvořené v Simulinku využít dvojím způsobem. Prvním z nich je provádění analýzy pomocí běžného PC. Mohou to být úlohy typu detekce výskytu konkrétních objektů v rozsáhlých videosouborech nebo on-line monitorování procesů pro klasifikaci výrobků, odhalení zmetků, apod. Druhou možností je překlad algoritmu vytvořeného v Simulinku do jazyka C a jeho kompilace do kódu určeného pro zvolenou cílovou platformu. Simulink disponuje generátory kódu, které vykonají celý proces automaticky. Vytvořený algoritmus lze pak použít přímo v zařízení integrovaném do procesu nebo ve finálním výrobku určeném pro distribuci.
Jaroslav Jirkovský

Späť