7.
Rozpoznávanie obrazcov
Poznáme
dve základné metódy rozpoznávania:
Pred
tým, ako sa pustíme do rozpoznávania, musíme určiť popis
objektov. Cieľom popisu je určiť číselný vektor príznakov,
alebo nečíselný syntaktický popis charakterizujúci tvar, alebo
iné vlastnosti objektu.
Predpokladom
popisu objektov je ich identifikácia v obraze. Na to slúžia rôzne
algoritmy na farbenie oblastí. Po identifikácií objektu ho môžeme začať
skúmať. Pri skúmaní charakteristických vlastností objektov môžeme
vychádzať zo znalosti oblasti, alebo len z jeho hranice.
Metódy
delíme aj podľa toho, aký typ popisu nám dávajú:
Jednou
možnosťou identifikácie oblasti je farbenie. Princípom farbenia
je, že každú oblasť označíme iným prirodzeným číslom.
Predpokladajme, že proces segmentácie nám vrátil obraz skladajúci sa z 0
a 1. Kde 0 je pozadie a 1 označuje časť objektu v obraze.

Obr.
7.1 Masky určujúce susedov pre farbenie.
a)
4-susednosť b)
8-susednosť.
Algoritmus
farbenia:
Prvý
prechod: Prechádzajme obraz po riadkoch. Každému nenulovému obrazovému
elementu f(i,j) priradíme hodnotu podľa hodnoty jeho susedných elementov.
Poloha susedov je daná na obr. 7.1, pričom všetky susedné elementy už
boli algoritmom ofarbené.
-
Ak všetky susedné elementy sú ofarbené farbou pozadia, potom f(i,j)
priradíme doteraz nepoužitú farbu.
-
Ak práve jeden zo susedov má nenulovú hodnotu, potom priradíme
f(i,j) farbu suseda.
-
Ak je viac susedných elementov nenulových, potom f(i,j) priradíme
ľubovolnú z nich. Ak hodnoty susedov boli rôzne, nastane kolízia farieb
a musíme označiť kolíziu farieb.
Druhý
prechod: Prejdeme znovu celý obraz a podľa informácie o ekvivalencie
farieb prefarbíme obraz tak, aby každá oblasť bola ofarbená jednou
farbou.
Algoritmus pre 4-susednosť použije masku
z obr. 7.1 a) a algoritmus pre 8-susednosť masku z obr. 7.1
b).
Simulácia farbenia.
7.1.2
Popis vychádzajúci z hranice oblasti
Hranicu
oblasti najčastejšie zapisujeme pomocou reťazového
kódu. Hranica je
určená počiatočným bodom a postupnosťou čísiel,
ktoré určujú smer hranice. Reťazový kód je znázornený na obr.
7.2.

Reťazový kód môžeme získať
algoritmom sledovania hranice (4.2).
Popisy
hranice:

7.1.3
Popis vychádzajúci z oblasti objektu
Jednoduchý
objekt dokážeme ľahko popísať na základe jeho oblasti. Zložitejšie
objekty najprv musíme rozdeliť na jednoduchšie časti, ktoré popíšeme
samostatne. V takomto prípade objekt reprezentujeme rovinným grafom, ktorého
vrcholy sú časti vzniknuté dekompozíciou pôvodného objektu. Objekt je
teda popísaný vlastnosťami grafu a vlastnosťami vrcholov.
Popis
oblasti:
(1)
kde
S e počet súvislých častí objektu a N je počet dier.
(2)
(3)

Obecný
moment
je definovaný:
(4)
V diskrétnom
prípade je moment definovaný ako:
(5)
kde
x,y a i,j sú súradnice bodov oblasti.
Centrálny
moment
je definovaný ako:
(6)
a v diskrétnom
prípade:
(7)
Centrálny
moment je invariantný vzhľadom k posunutiu.

7.2
Príznakové metódy rozpoznávania
(8)
Potom oddeľujúca nadplocha medzi wr
a ws
má rovnicu
(9)
Triedy
môžu byť:
Ak existuje nadplocha rozdeľujúca
priestor príznakov na podpriestory, ktoré sa rovnajú triedam, potom hovoríme
o probléme so separabilnými triedami. V opačnom prípade
hovoríme o probléme s neseparabilnými triedami.
Ako
sme sa už v úvode dozvedeli, úlohu rozdeľovania objektov do tried
vykonáva klasifikátor. Klasifikátor je zariadenie, ktoré má n vstupov a jeden
výstup. Rozhoduje sa podľa rozhodovacieho pravidla d,
(10)
Klasifikátor zaradí objekt s príznakmi
X do triedy wr
vtedy ak
(11)
Pre triedu wr
platí:
(12)
Klasifikátory rozdeľujeme na
Lineárny
klasifikátor
pracuje s lineárnymi diskriminačnými funkciami, ktoré majú tvar:
(13)
Nelineárny klasifikátor sa realizuje tak, že
príznakový priestor zobrazíme vhodnou nelineárnou transformáciou F
do nového príznakového priestoru v ktorom použijeme lineárny klasifikátor.
Túto konštrukciu klasifikátoru nazývame F-prevodník.
Diskriminačné funkcie F-prevodníka
sú definované nasledovne:
(14)
7.2.1
Kritérium minimálnej vzdialenosti
Táto
metóda rozpoznávania predpokladá, že máme trénovaciu množinu, poznáme počet
tried k a poznáme charakteristické prvky pre každú triedu,
ktoré sa nazývajú etalonom triedy. Označme etalony jednotlivých
tried v1, v2, ..., vk. Rozhodovacie pravidlo
zaradí vektor X do triedy r ak platí:
(15)
kde |.| je
vzdialenosť.

7.2.2
Kritérium minimálnej chyby
V praxi
často narazíme na problémy, keď nie sme schopní jednoznačne určiť,
do ktorej triedy patrí vektor príznakov. Kritérium minimálnej chyby J(q)
vyjadruje stratu z nesprávnej klasifikácie. Parametrizujme množinu
pravidiel s parametrom q. Veľkosť J(q) potom závisí
na použitom pravidle d(X,q)=w.
Optimálne rozhodovacie pravidlo d(X,q*)=w
je také pravidlo, pri ktorom J(q) nadobudne minimum, teda
(16)
7.2.3
Nastavenie klasifikátoru
Klasifikátor
sa nastavuje učením. Učenie je proces optimalizácie systému, založený
na postupnom predložení ukážkových príkladov. Cieľom učenia je
minimalizovať chybnú klasifikáciu.
Existujú dva typy učenia:
Proces učenia závisí aj od toho, aké
informácie sú nám známe. Niekedy máme k dispozícii konečnú
množinu objektov, pričom poznáme ich príslušnosť k triedam.
Takáto množina sa nazýva trénovacia množina. Cieľom je nastaviť
klasifikátor tak, aby bol optimálny pre celý príznakový priestor. Presnosť
klasifikátoru priamo súvisí s veľkosťou trénovacej množiny.
Inokedy máme len vstupnú množinu bez znalosti príslušnosti
k triedam. V takýchto prípadoch sa využívajú metódy
zhlukovej analýzy.
Zhluková
analýza zahŕňa metódy rozpoznávania, ktoré nepotrebujú učiteľa,
ani apriórne informácie o probléme. Ich vstupom je konečná množina
príznakov, ktorá obsahuje neklasifikované prvky. Cieľom je nájsť
vektory, ktoré sú vzájomne blízke. Metódy zhlukovej analýzy delia vstupnú
množinu na podmnožiny, zhluky na základe blízkosti príznakových
vektorov v priestore. Tieto zhluky potom vytvárajú jednotlivé triedy
rozpoznávania.
Metódy
zhlukovej analýzy delíme na:
·
Hierarchické metódy
·
Nehierarchické metódy
Nehierarchické
metódy
na začiatku odhadnú počet tried a následne vypočítavajú
zhluky. Ako príklad uvedieme MacQueenovu metódu:
1)
Určíme počet tried k, ako k bodov v priestore
príznakov. To môžeme spraviť náhodným výberom zo vstupnej množiny.
Tieto body budú začiatočné ťažiská tried.
2)
Postupne priradíme body zo vstupnej množiny do zhlukov, podľa
najmenšej vzdialenosti k ťažiskám zhlukov. Vždy, keď je do
zhluku priradený nový bod, prepočítame jeho ťažisko.
3)
Ťažiska zhlukov vypočítané v druhom kroku považujeme za
výsledné. Ďalešie body priraďujeme podľa kritéria minimálnej
vzdialenosti.
Metódy hierarchického zhlukovania sa ďalej
delia na:
Simulácia metódy MacQueen.
7.3
Štrukturálne rozpoznávanie
Metódy
štrukturálneho rozpoznávania využívajú kvalitatívny charakter objektov.
Syntaktický popis je používaný vtedy, keď príznakovým popisom nie sme
schopný zachytiť všetky charakteristiky objektu. Elementárne vlastnosti
štrukturálne popísaných objektov sa nazývajú primitíva. Tieto
primitíva by mali byť ľahko segmentovatelné z obrazu a mali
by odpovedať výrazným elementom spracovaného obrazu. Každé primitívum
označíme symbolom a vzájomné vzťahy medzi primitívami popíšeme reláciami.
Takto získame popis objektov relačnou štruktúrou. Túto konštrukciu
vieme zapísať pomocou formálnych jazykov a automatov.
Množina všetkých primitív sa nazýva abeceda.
Slovo nad abecedou je popis charakterizujúci objekt. Množina slov vytvára
jazyk. Jazyk popisuje jednu triedu. Relačné vzťahy medzi
primitívami sú zachytené gramatikou. Gramatika je množina pravidiel
pomocou ktorých môžeme odvodiť slová z daného jazyka.
Štrukturálne
rozpoznávanie sa skladá z nasledujúcich krokov:
1)
Analýzou úlohy určíme množinu primitív a relácie medzi
nimi.
2)
Vytvoríme gramatiky reprezentujúce jednotlivé triedy.
3)
Pri rozpoznávaní popíšeme objekt slovom nad abecedou a určíme,
ktorou gramatikou ho vieme odvodiť.
4)
Objekt zaradíme do tej triedy, ktorej gramatika dané slovo
vygenerovala.
Kroky (1) a (2) predstavujú fázu učenia
a kroky (3) a (4) tvoria fázu rozpoznávania, pričom krok (3) nazývame
syntaktickou analýzou.
Ako
sme už spomínali, primitíva a vzťahy medzi nimi sa dajú zapísať
formálnymi jazykmi. Terminálne symboly
sú písmená – primitíva. Abeceda je množina symbolov. Množina slov nad
abecedou vytvára formálny jazyk, ktorý je popísaný gramatikou.
Gramatika
je štvorica G=(N,T,P,S), kde N a T sú disjunktné
abecedy, N je množina neterminálnych symbolov, T je množina
terminálov, S je počiatočný symbol – axióm a P
je konečná množina pravidiel.
Jazyk generovaný gramatikou G je L(G)
(17)
Krok odvodenia v gramatike G je relácia Ţ
na (NČT)*.
Gramatiky delíme na
Príklad:

Terminálne symboly: {0, 1, 2, 3 }
Neterminálne symboly:
{S, a, b, c, d }
Pravidlá:
Pričom A, B, C, D sú reťazce ľubovoľnej
dĺžky skladajúce sa z terminálnych symbolov.
Príklad odvodenia slova:
Táto časť štrukturálneho rozpoznávania
vo veľkej miere závisí od schopnosti programátora, ktorý musí určiť
primitíva a relácie medzi nimi na základe zadania problému a množiny
vzorových obrazov. Potom nasleduje určenie gramatiky pre jednotlivé
triedy na základe vzorových slov. Toto sa nazýva inferencia
gramatiky. Vstupom algoritmu inferencie gramatiky sú slová z jazyka
– vzorové slová a slová nepatriace do jazyka, ktoré musí určiť
učiteľ. Od inferenčného algoritmu očakávame, že vytvorí
gramatiku, ktorá generuje vzorovú množinu a ďalšie slová, ktoré
majú podobnú štruktúru ako vzorové. Tento problém je veľmi zložitý.
Všeobecné algoritmy existujú len pre bezkontextové a regulárne
gramatiky.
Úlohou
klasifikátoru je rozhodnúť sa, že do ktorého gramatikou generovaného
jazyka patrí skúmané slovo. Ako prvý krok môže klasifikátor overiť,
či slovo je nad abecedou terminálnych slov gramatiky. Týmto spôsobom môžeme
redukovať počet gramatík, ktoré treba otestovať.
Na zistenie príslušnosti slova do jazyku
máme nasledujúce možnosti: