Martin Langhammer Antonín Wimberský
ÚVOD
PŘEDPOKLADY Jednotný vstup Zadní SPZ Stejný úhel a vzdálenost záběru Pouze vodorovné záběry značek Obdélníkové značky Další předpoklady Nezakryté, čitelné značky Nepoškozené Pouze české SPZ
PŘEDZPRACOVÁNÍ Lokalizace oblasti SPZ Normalizace velikosti Vyrovnání světlosti, převod na černobílé Segmentace jednotlivých znaků Zpracování…
LOKALIZACE SPZ Implementace v Javě Nejprve převod na černobílý obrázek Podle průměrné světlosti obrázku Hledání bílého obdélníku Známe přibližný poměr stran a přibližné rozměry Algoritmus pro vyplňování plochy Začínáme z jednoho bodu, vyplníme bílou plochu a ověříme, zda vyplněná oblast může být SPZ Pokud ne, pokračujeme z jiného počátečního bodu Když postup selže, upravíme světlost obrázku a zkusíme to znovu
LOKALIZACE SPZ
PROBLÉMY PŘI LOKALIZACI Problém s částečně překrytou značkou (žebřík) Problém s nerovnoměrným osvětlením obrázku
PROBLÉMY PŘI LOKALIZACI (2) Některé značky obsahují navíc proužek EU, který algoritmus na vyplňování plochy nemusí najít Pro zachování proporce značky je ho pak třeba přidat (podle poměru stran výřezu), což může někdy způsobovat problémy
Úspěšnost vyhledávání SPZ Celkem jsme měli k dispozici 77 fotek aut Rozpoznáno 73 oblastí SPZ 3 zcela chybně 5 chybně určen proužek EU ostatní (65) zcela správně Tedy celková úspěšnost přes 84 procent
VLASTNÍ ROZPOZNÁVÁNÍ SPZ Implementace v Delphi Vstupem je oblast SPZ o rozměrech 200 x 40 pixelů Nejprve je třeba rozpoznat typ značky – rozpoznáváme 2 typy „staré“ a „nové“ SPZ Dále je třeba nalézt jednotlivé znaky Nakonec nastupuje vlastní rozpoznávání Vrstevnatá neuronová síť
TYPY ZNAČEK 2 základní typy: Nové značky je možné rozpoznat buď podle proužku EU – to ovšem moc nepomůže u značek, které ho nemají Jako kritérium pro dělení značek, které nemají proužek jsme použili pozici prvního znaku (u starších značek začíná více vlevo) Nemusí správně fungovat u špatně vyřezaných značek Pokud značku označíme jakou „novou“ a segmentace se nepodaří, předpokládáme, že je „stará“ a spustíme segmentaci znovu.
POSTUP SEGMENTACE Opět je třeba znormalizovat světlost – podle průměrné světlosti obrázku Následuje rozpoznání typu SPZ Nalezení pozic jednotlivých znaků v horizontálním směru – podle histogramu a znalosti typu značky rozdělíme SPZ na jednotlivé znaky Dělíme vždy skupiny znaků – u nových značek 2 skupiny (po 3 a 4 znacích), u starých 3 skupiny (3 – 2 – 2) Metoda „nejmenšího zla“ – hledáme místa dělení tak, aby přetínala co nejmenší počet černých pixelů Předpoklad pevné šířky znaku Horizontální oříznutí (podle histogramu určíme vhodné místo) Výsledný znak má rozměry 20 x 30 pixelů Vystředění znaku (horizontálně i vertikálně)
SAMOTNÉ ROZPOZNÁVÁNÍ ZNAKŮ Vrstevnatá neuronová síť s algoritmem zpětného šíření Vstupní atributy Vektor pixelů obrázku X-ový a Y-ový histogram obrázku Příliš nepomáhá, nakonec jsme nevyužili Celkem použity 3 nezávislé neuronové sítě Síť pro čísla Síť pro písmena krajů (14 různých znaků) – nové značky Písmena A, S, U, L, K, H, E, P, C, J, B, M, T, Z Síť pro všechna písmena – staré značky
ARCHITEKTURA SÍTĚ Používáme pouze jednu skrytou vrstvu Síť pro čísla Síť pro písmena krajů Síť pro všechna písmena Při použití histogramů má vstupní vektor velikost 650 (600 pixely, 30 vertikální histogram, 20 horizontální histogram)
TRÉNOVACÍ DATA První nápad Navrhneme paletu „referenčních“ znaků a na tu naučíme neuronovou síť Trénovací vzory můžeme rozšířit – algoritmické posuny (+-3 pixely horizontálně i vertikálně) Nefunguje příliš dobře (úspěšnost cca 73 procent pro číslice) Možné příčiny Třeba i další transformace – naklonění, změna tloušťky, velikosti Jak vlastně vypadají „referenční“ znaky?
TRÉNOVACÍ DATA(2) Reálná trénovací data Vybereme část správně vyřezaných značek (60 procent), proženeme je předzpracováním, jednotlivé oddělené znaky uložíme a použijeme je jako trénovací data Nerovnoměrný počet znaků – Mnoho „A“, žádné „Q“ Pro učení neuronové sítě je třeba stejný počet vzorů od každého znaku Chybějící znaky doplníme ručně nakreslenými U písmen jsme některé přebytečné znaky nepoužili (A) Dává jednoznačně lepší výsledky
VÝSLEDKY Úspěšnost na trénovacích datech: 100% čísla, 100% písmena krajů, 97% písmena Celkem zcela správně rozpoznáno 97% značek Úspěšnost na testovacích datech 97% čísla, 95% písmena krajů, 87% písmena Zcela správně rozpoznáno 88% SPZ Většina chyb se vyskytla u hůře čitelných a křivých značek
ROZPOZNÁNÍ SPZ a
ROZPOZNÁVÁNÍ SPZ(2)
ZÁVĚR Celkem dobré výsledky při splnění zjednodušujících předpokladů Zvládá dokonce i některé hůře čitelné značky
REÁLNÉ POUŽITÍ Problémy způsobuje třeba stín přes část značky (obrázku) Pro reálné použití by bylo třeba přidat více typů SPZ Čtvercové, zahraniční, žluté značky Hodně zjednodušující je předpoklad focení ze stejného úhlu a dále focení jedním přístrojem za přijatelných světelných podmínek