You are on page 1of 286

1. Introducere.

1





1. Introducere.




1.1. Prelucrarea de imagini - principii generale.
1.2. Teoria recunoaterii formelor - generaliti.
1.2.1. Principii generale.
1.2.2. Strategii de recunoatere pentru N clase.
1.3. Metode conexioniste n prelucrarea de imagini i recunoaterea de forme.




1.1. Prelucrarea de imagini - principii generale.
Prelucrarea de imagini este un domeniu care i pstreaz dinamismul n ciuda trecerii
anilor. Dezvoltrile tehnologice au facilitat accesul unui numr tot mai mare de oameni la aceast
ramur fascinant a imagisticii computerizate.
Coninutul imagisticii computerizate a fost sintetizat (Fig.1) n lucrarea lui Pavlidis [79],
lucrare fundamental pentru nceputurile prelucrrii de imagini.

Imagine
Descriere
Prelucrare de imagini
Recunoatere de forme Grafic computerizat

Fig. 1. Coninutul imagisticii computerizate.

n aceeai lucrare, Pavlidis propune clasificarea imaginilor n patru clase, astfel:
Clasa (1) de imagini include imaginile n scar de gri (sau color).
Clasa (2) de imagini cuprinde imaginile binare (sau cu cteva culori).
Clasa (3) de imagini include imagini formate din linii i curbe continue.
Clasa (4) de imagini cuprinde imagini formate din puncte izolate sau poligoane.
Se remarc scderea complexitii imaginii odat cu numrul clasei, simultan cu reducerea
semnificativ a volumului de date necesar pentru stocarea lor (Howe[51]).
1. Introducere.
2
Astfel imaginile de clas (1) sunt cele mai complexe, un exemplu tipic de astfel de imagini
fiind cele de televiziune, obinute deci cu o camer TV. Imaginile binare conin doar dou nuane,
de obicei alb i negru (sau doar cteva culori n cazul imaginilor color). Clasa (3) cuprinde
imagini i mai simple, adic coninnd doar linii i curbe avnd grosimea de un pixel. Imaginile
din ultima clas sunt cele mai simple, ele fiind formate din puncte izolate sau, n cazul graficii
computerizate, din poligoane care descriu corpul tridimensional a crui reprezentare realist se
dorete n final.
Cteva exemple de imagini din diferite clase sunt date n continuare (Fig. 2):


Clasa (1) Clasa (2) Clasa(3)


Clasa (3) Clasa (4)
Fig. 2. Exemple de imagini din diferite clase.

O taxonomie a domeniului prelucrrii de imagini n corelaie cu grafica computerizat este
propus n continuare (Fig. 3):

binarizare (segmentare)
1 2 1D 4
3D
3
subiere contur
extragere contur
segmentare curbe
aproximare
interpolare expandare contur
umplere contur refacere
proiecie 1D
reconstrucie 2D
proiecie 2D reconstrucie 3D
restaurare
mbuntire imagini
filtrri
recunoatere
PRELUCRARE IMAGINI
GRAFIC
Fig. 3. O taxonomie a imagisticii computerizate.

Nu au fost reprezentai n diagrama anterioar algoritmii de codare/decodare a imaginilor,
care formeaz un subdomeniu destul de consistent al prelucrrii de imagini.
mbuntirea imaginilor i filtrrile formeaz un domeniu care se ocup de eliminarea
zgomotelor, mbuntirea contrastului, accentuarea muchiilor i detecia de muchii.
Restaurarea imaginilor i propune eliminarea distorsiunilor care afecteaz imaginea,
distorsiuni datorate unor fenomene fizice cunoscute, modelate matematic sau estimate.
1. Introducere.
3
Segmentarea imaginilor realizeaz separarea regiunilor uniforme, de interes, din imagine.
Uniformitatea este o noiune general ea nereducndu-se la constana nivelelor de gri (aceeai
textur, aceleai proprieti, etc.). Binarizarea furnizeaz la ieire o imagine de clas (2), ea
putnd fi asimilat unei operaii particulare de segmentare (de exemplu segmentarea cu prag).
Algoritmii de extragere de contur furnizeaz la ieire un contur nchis, deci o imagine de
clas (3). Algoritmii de subiere de contur realizeaz tot transformarea imaginilor de clas (2) n
imagini de clas (3), dar furnizeaz la ieire un graf.
Imaginile de clas (3) pot fi simplificate n continuare cu algoritmi de segmentare a
curbelor, care furnizeaz localizarea aa-numitele puncte critice i, n plus, parametrii curbelor
care aproximeaz/interpoleaz liniile i curbele din imagine ntre dou puncte critice succesive.
Se poate remarca c, practic, se obine n aceast faz o descriere extrem de simplificat a
imaginii iniiale.
n cazul graficii computerizate, dup cum s-a menionat anterior, se pleac de la o
descriere a imaginii, urmrindu-se n cazul cel mai general, sinteza unei imagini realiste.
Descrierea iniial cea mai des folosit conine o colecie de poligoane mpreun cu conexiunile
dintre ele, ceea ce formeaz aa-numita descriere "cadru-de srm" (wire-frame).
Obinerea imaginii realiste (clasa (1)) se traduce printr-o secven de algoritmi care
"apropie" imaginea sintetizat de cea real.
Algoritmii de aproximare/interpolare pleac de la descrierea "cadru-de-srm" i
urmresc obinerea unei curbe netede pentru suprafeele corpurilor tridimensionale ce se
reprezint.
Algoritmii de umplere de contur realizeaz operaia complementar extragerii de contur,
n timp ce expandarea este operaia complementar subierii.
Cunoscnd sau deducnd regulile de variaie a nivelului de gri (culorii) de-a lungul
suprafeelor care mrginesc corpul, prin operaia de refacere se poate obine o reprezentare
bidimensional realist a corpurilor studiate. Se ine cont de caracteristicile i poziia surselor de
lumin i caracteristicile locale ale corpurilor care se reprezint (reflexivitate, transparen, etc.).
Alte clase de algoritmi sunt specifice tomografiei computerizate, care realizeaz
investigarea nedistructiv a corpurilor.
Corpul studiat este penetrat de un fascicol de unde (raze "X", radiaii electromagnetice,
ultrasunete, etc) iar n prelungirea lor (mai puin n cazul ultrasunetelor, care msoar unda
reflectat) un set de receptori msoar energia rezultat a radiaiei, energie dependent direct de
proprietile locale de absorbie ale corpului investigat. Ceea ce se obine la nivelul receptorilor
este proiecia 1D (deci un vector) a unei seciuni plane a corpului investigat, ntr-o anumit
direcie.
Reconstrucia 2D reface seciunea plan a corpului studiat dintr-un set de proiecii 1D, n
direcii diferite, ale seciunii.
Avnd la dispoziie mai multe asemenea seciuni (paralele sau radiale) ale corpului studiat,
se poate realiza reconstrucia 3D a corpului studiat. Operaia invers se numete proiecie 2D.
Trebuie de remarcat ns c aceast sintez nu trebuie vzut rigid, existnd n literatur o
multitudine de algoritmi care nu pot fi ncadrai n ea i, n plus diferii autori ncadreaz diferit un
acelai algoritm n categorii diferite. Ca exemplu, operaia de codare a datelor poate fi vzut ca o
extragere de trsturi regenerative, ceea ce se obine fiind n esen o descriere a imaginii,
scopurile urmrite fiind ns diferite.

1.2. Teoria recunoaterii formelor - generaliti.
Recunoaterea formelor (Meisel[72]), (Sklansky[102]), (Vancea[108]) se ocup de
clasificarea unui set de obiecte, procese sau evenimente. Clasificarea este un proces fundamental
1. Introducere.
4
care caracterizeaz nu numai tiinele ci i viaa social. Metodele matematice dezvoltate n
cadrul recunoaterii formelor i gsesc aplicaie n cele mai diverse domenii.
Recunoaterea formelor are ca scop determinarea clasei din care fac parte elementele unei
mulimi. Stabilirea numrului de clase este o problem legat direct de caracteristicile aplicaiei.
Pot exista aplicaii cu numr de clase cunoscut aprioric, dar i aplicaii n care numrul de clase
trebuie stabilit algoritmic.
Clasificatorul este sistemul care implementeaz operaia de recunoatere a formelor, deci
el realizeaz o procedur stabilit anterior de clasificare.
Exist dou abordri ale procesului de recunoatere: recunoaterea controlat i
recunoaterea necontrolat.
Recunoaterea controlat (supervizat) implic existena unui set de forme a cror
apartenen la clase este cunoscut. Acest set de forme include setul de formare (nvare,
antrenare) care este folosit pentru construcia propriu-zis a clasificatorului i setul de predicie
(testare) al crui scop este testarea (evaluarea) clasificatorului respectiv. Construirea
clasificatorului este asociat n acest caz algoritmului de nvare corespunztor clasificatorului,
algoritm care construiete n mod iterativ coeficienii acestui clasificator.
Recunoaterea necontrolat (nesupervizat) nu necesit cunoaterea aprioric a
apartenenei formelor din setul de formare la clase (Hartigan[46]). Aceast abordare dezvolt
algoritmi care realizeaz construcia claselor pe msur ce formele analizate sunt luate n
considerare. Ei sunt numii algoritmi de grupare (clustering).
Schema bloc a unui sistem de recunoatere a formelor este dat n continuare (Fig. 4):

Translator
Selector
trsturi)
(extragere
trsturi
Clasificator
Decizie
Intrare

Fig. 4. Schema bloc a unui sistem de recunoatere a formelor.

1.2.1. Principii generale.
n urma extragerii trsturilor se obine un set de "n" trsturi notat:

T
n 2 1
) ,...,x ,x (x = X (1)
care poate fi vzut ca un vector n spaiul trsturilor (formelor), spaiu notat cu
n
R .
Clasificarea este o partiionare a spaiului formelor n "K" regiuni (clase), notate
...K 1 j j
} {
=

i care ndeplinesc condiiile:
=
k 2 1
... (2)
F ... =
k 2 1
(3)
unde F este mulimea punctelor care alctuiesc frontierele ntre aceste clase.
Funcia discriminant ataat unei clase este o funcie R X D ): (
j
, dat de:
...K 1 j, i i ), ( ) (
i j j
= > X D X D X (4)
Limitele de decizie ntre clasele
i
i
j
vor fi definite prin ecuaia:
0 ) ( ) (
j i
= X D X D (5)
Metodele matematice utilizate pentru rezolvarea problemelor de recunoatere a formelor
se grupeaz n dou mari categorii:
- metode decizional-teoretice i statistice;
- metode sintactice (lingvistice).
1. Introducere.
5
ntre cele dou clase de metode exist o conexiune direct care asigur ntreptrunderea
lor, dup cum rezult i din urmtoarea schem bloc care descrie modurile posibile de abordare
ale unei probleme generale de clasificare:

Metode
sintactice
Metode
mixte
Metode
statistice
Gramatici
utilizate
Descriere/
/extragere
primitive
Metode
parametrice
Metode
neparametrice
Forme de
intrare
Prelucrare
preliminar
Clasificare
supervizat/
/nesupervizat
Decizie

Fig. 5. Moduri posibile de abordare ale unei probleme de clasificare.

Dintre proprietile care permit evaluarea unui clasificator, mai importante sunt
urmtoarele:
Recunoaterea este exprimat prin rata de recunoatere, care este procentul de forme din
setul de formare recunoscut corect de clasificator.
Convergena exprim viteza de rspuns a unui clasificator. n cele mai multe cazuri se
urmrete realizarea unui compromis ntre rata de recunoatere i viteza de rspuns care
caracterizeaz un anume clasificator.
Sigurana este descris prin gradul de ncredere al unui clasificator, care caracterizeaz
capacitatea clasificatorului de a clasifica corect formele distorsionate aplicate la intrare.
Predicia exprim capacitatea clasificatorilor de a recunoate corect forme care nu aparin
setului de formare. O msur a acestei proprieti este abilitatea predictiv care exprim
procentul de forme din setul de predicie (deci cu apartenen la clase necunoscut n prealabil)
recunoscute corect.

1.2.2. Strategii de recunoatere pentru N clase.
Complexitatea problemei poate fi micorat mprind-o n mai multe sarcini mai mici, i
anume alctuind cteva grupe de clase i apoi construind cte un clasificator pentru fiecare grup
de forme (Bulea[14][21][23]), (Pudil[88]). Trsturile extrase se aplic simultan la intrrile
tuturor clasificatorilor i n mod normal unul singur va furniza decizia de recunoatere. Rolul
logicii de decizie este de a furniza o decizie corect n cazurile cu o oarecare doz de
1. Introducere.
6
incertitudine, utiliznd informaiile furnizate de toate clasificatoarele. Schemele bloc pentru dou
variante ale unui asemenea sistem sunt prezentate n continuare.
extragere
trsturi
selecie
trsturi
clasificator
grupa 1
clasificator
grupa 2
clasificator
grupa 3
clasificator
grupa G
decizie
rejecie forme nerecunoscute
tratare
erori
intrare
L
o
g
i
c


d
e

d
e
c
i
z
i
e

Fig. 6. Sistem de recunoatere pentru N clase, varianta 1.
extragere
trsturi
grupare
forme
clasificator
grupa 1
clasificator
grupa 2
clasificator
grupa 3
clasificator
grupa G
decizie
rejecie forme nerecunoscute
tratare
forme
nerecunoscute
intrare
i selecie
comutare
comutare
C
o
m
u
t
a
t
o
r
C
o
m
u
t
a
t
o
r
Fig. 7. Sistem de recunoatere pentru N clase, varianta 2.

Dei prima variant este mai simpl, se poate utiliza, pentru optimizarea timpului de
rspuns, un preclasificator care s specifice crei grupri i aparine fiecare form de intrare i n
consecin, care clasificator elementar trebuie folosit pentru recunoaterea efectiv.
De multe ori, orice sistem de recunoatere include i un subsistem de tratare a erorilor de
recunoatere (forme nerecunoscute), un exemplu tipic in acest sens fiind cazul caracterelor atinse
sau fragmentate din sistemele OCR (Optical Character Recognition).
1. Introducere.
7
n ambele cazuri, pentru formele nerecunoscute se mai face o ncercare n ipoteza c ele
reprezint forme nc "nenvate"; se ncearc reantrenarea clasificatorului, apoi rezultatul este
iari aplicat la intrarea clasificatorului pentru o nou ncercare.

1.3. Metode conexioniste n prelucrarea de imagini i recunoaterea de forme.
Metodele conexioniste se bazeaz pe utilizarea unei reele de "procesoare" conectate
intensiv unele cu altele. Fiecare "procesor" poate executa un numr redus de operaii, de obicei
aceleai pentru toate procesoarele din reea. Gradul lor de programabilitate este redus.
Implementarea acestor reele de procesoare impune ca o necesitate practic limitarea conexiunilor
aferente fiecrui procesor, astfel nct el s fie conectat doar la un numr de procesoare vecine.
Pot fi ncadrate n categoriile descrise anterior structurile sistolice, procesoarele
matriceale, reelele neurale artificiale, etc. (Conte[31]).
Structurile sistolice fac parte din categoria mai larg a mainilor paralele complexe care
sunt alctuite dintr-un mare numr de uniti procesoare, de obicei identice, fiecare fiind capabil
s execute o operaie fix de baz. Proprietile arhitecturale ale structurilor sistolice le fac
potrivite pentru o implementare VLSI. Conectarea celulelor de calcul se face conform unei
topologii regulare, n care fluxul de informaii este permis numai spre unitile adiacente ntr-un
mod "pipe-line". Necesitile de comunicare cu exteriorul sunt limitate, conexiunile sunt foarte
scurte, ceea ce permite o vitez mare de operare.
Procesoarele matriceale sunt structuri paralele care realizeaz aceleai operaii, simultan,
asupra unor date diferite. Ele constituie exemplul tipic de structuri SIMD (Single Instruction
Stream - Multiple Data Stream). Au un grad mai mare de programabilitate dect structurile
sistolice, dar utilizarea lor este limitat la aplicaii care cer un paralelism nalt, cum ar fi lucrul cu
matrici de date de dimensiuni mari (cazul imaginilor).
Reelele neurale (neuronale) artificiale (Haykin[47]), (Kohonen[62][63]), (Lipmann[66]),
(Rumelhart[98]) ncearc s se apropie de modelul creierului uman. Spre deosebire de mainile
Von--Neuman care se caracterizeaz prin existena unei uniti procesoare care execut
instruciuni stocate n memorie, ntr-o secven aflat sub controlul numrtorului de program,
alte arhitecturi propuse ncearc s exploateze ct mai eficient paralelismul care este de obicei
inerent. "Procesoarele" care formeaz reelele neuronale, sunt denumite neuroni artificiali.
Dac majoritatea calculatoarelor existente n momentul de fa dispun de o singur unitate
procesoare, extrem de puternic i de rapid, la cealalt extrem din punctul de vedere al structurii
interne se plaseaz aceste reele neurale artificiale, caracterizate printr-o simplificare extrem a
unitilor componente, alturi de o extindere ct mai larg a conexiunilor ntre aceste uniti
procesoare.
Orice reea neural este caracterizat de trei elemente: modelul neuronului, arhitectura
reelei i algoritmul de antrenare folosit.
n ceea ce privete modelele de neuroni, cel mai mult folosite n momentul de fa sunt
cele fr memorie, deci care implementeaz o relaie de forma:

=
=
N
1 i
j i ij j
) x w ( y f (6)
unde
j
y este ieirea neuronului "j",
i
x este intrarea "i" a neuronului,
ij
w este ponderea
conexiunii de la intrarea "i" la neuronul "j", iar
j
este pragul ataat neuronului "j".
Funcia f este o funcie neliniar care poate fi de tipul limitare hardware, prag logic,
sigmoid simetric sau nu, sau chiar funcia identic.
Modele mai sofisticate de neuroni introduc variabila timp, un astfel de model fiind descris
de urmtoarele relaii:
1. Introducere.
8

=
+ + =

=
) (u y
x w u
dt
du
j j
N
1 i
j i ij j
j
f
(7)
unde
j
u caracterizeaz starea curent a neuronului.
ntre arhitecturile de reele neurale, reelele "feed-forward" (conexiunile sunt
unidirecionale, nu exist bucle de reacie) au fost cel mai mult studiate. ntr-o asemenea reea,
neuronii sunt dispui n straturi succesive, ieirile neuronilor de pe straturile inferioare aplicndu-
se la intrrile neuronilor de pe stratul imediat urmtor.
Binecunoscutul perceptron multistrat are o asemenea structur, gama larg a aplicaiilor n
care o fost folosit fiind o dovad a capabilitilor unui asemenea sistem
Teoria recunoaterii formelor este deja o disciplina matur, care i-a dovedit utilitatea ntr-
o multitudine de domenii. Pe de o parte, paralelismul extins oferit de reelele neurale deschide noi
perspective teoriei recunoaterii formelor, iar pe de alta, fundamentul matematic solid al teoriei
recunoaterii formelor direcioneaz i dinamizeaz n permanen cercetrile asupra retelelor
neurale. Se poate remarca deci n acest context interdependenta strnsa ntre cele dou domenii de
studiu.
Principala calitate a reelelor neurale este aceea de clasificare. Clasificatorii neuronali mai
des folosii, sunt prezentai n urmtoarea taxonomie, funcie de tipul intrrilor (binare sau
continue), funcie de modul de antrenare (supervizat sau nesupervizat) i de arhitectura reelei:

Clasificatori neuronali
Intrri binare Intrri cu valori continue
Supervizat Nesupervizat Supervizat Nesupervizat
Reea
Hopfield
Reea
Hamming
Clasificator
Carpenter-
-Grossberg
Perceptron
Perceptron
multistrat
Harta de
autoorganizare
Kohonen
Clasificator
optimal
Algoritmul
"
Leader
"
de grupare
Clasificator
Gaussian
Clasificatorul
celor mai
"K" vecini
Algoritmul
"K-means"
de grupare
apropiai
trsturi cu

Fig. 8. O taxonomie a reelelor neurale.

Blocurile din partea de jos a schemei anterioare indic algoritmii clasici cei mai apropiai
de clasificatorul neural corespunztor.
Domeniul reelelor neurale artificiale cunoate n prezent un dinamism remarcabil
(Freeman[39]), (Haykin[47]) extinzndu-se rapid nu numai rezultatele teoretice, ci i aplicaiile
care folosesc aceste metode.
2. Tehnici de mbuntire a imaginilor.
9





2. Tehnici de mbuntire a imaginilor.




2.1. Eliminarea zgomotelor.
2.1.1. Filtre spaiale de eliminare a zgomotelor.
2.1.2. Filtre n domeniul frecven.
2.1.3. Filtrul Wiener generalizat.
2.1.4. Metode regionale.
2.2. mbuntirea contrastului.
2.2.1. mbuntirea contrastului prin operaii asupra histogramei.
2.2.2. Filtrarea homomorfic.
2.2.3. Diferenierea statistic.
2.3. Accentuarea muchiilor.
2.4. mbuntirea imaginilor binare.
2.4.1. Eliminarea zgomotelor.
2.4.2. Netezirea contururilor.
2.5. Detalii de implementare.




2.1. Eliminarea zgomotelor.
2.1.1. Filtre spaiale de eliminare a zgomotelor.
Tehnicile spaiale de eliminare a zgomotelor se remarc prin simplitate, ceea de duce la
posibilitatea unor implementri hardware n timp real. Ele se bazeaz pe folosires aa-numitelor
mti de convoluie care, n esen, realizeaz nlocuirea valorii fiecrui pixel cu o combinaie
liniar a valorilor pixelilor dintr-o vecintate a pixelului curent.
a) Filtre de mediere.
Pentru fiecare vecintate de pixeli (de obicei 3x3, dar i 5x5 sau 7x7), pixelul central se
nlocuiete cu o combinaie liniar a pixelilor din vecintate:


= =
+ +
1
1 m
1
1 n
n) m,j P(i M(m,n)
k
1
(i,j)= P
~
(1)
unde masca M(m,n) poate fi:
(
(
(

=
0 1 0
1 0 1
0 1 0
4
1
1
M
(
(
(

=
0 1 0
1 1 1
0 1 0
5
1
2
M
(
(
(

=
0 1 0
1 2 1
0 1 0
6
1
3
M
(
(
(

=
1 1 1
1 0 1
1 1 1
8
1
4
M
(
(
(

=
1 1 1
1 1 1
1 1 1
9
1
5
M
(
(
(

=
1 1 1
1 2 1
1 1 1
10
1
6
M
(
(
(

=
1 2 1
2 4 2
1 2 1
16
1
7
M (2)
2. Tehnici de mbuntire a imaginilor.
10

Asemenea tip de filtre se pot rafina astfel nct s nu fie afectai de operaia de mediere
pixelii situai pe muchii. Un operator pentru detecie de muchii (masc) poate indica prezena i
direcia unei muchii n imagine. n absena muchiei, se aplic filtrul de eliminare a zgomotelor
pentru toi pixelii din vecintate, n caz contrar doar pentru pixelii situai de o parte i de alta a
muchiei, cunoscnd direcia ei. De asemenea se pot utiliza mti de mediere pentru toi pixelii,
ns avnd coeficienii corelai cu datele furnizate de detectorul de muchii.

b) Medierea cu prag realizeaz compararea fiecrui pixel cu media vecinilor lui, medie
ce poate fi calculat printr-o convoluie cu masca
4
M . Modificarea pixelului curent se face doar
dac este ndeplinit o condiie de prag.


= =
= >
8
1 i
i
8
1 i
i
(x,y) v 1/8 (x,y) ] (x,y) v 1/8 (x,y) [ f f THEN IF (3)
c) Filtre mediane.
O categorie aparte de filtre spaiale o constituie filtrele mediane la care pixelul central al
unei vecinti de forma:

Fig. 1. Mti pentru filtrarea median.

este nlocuit cu medianul mulimii pixelilor din vecintate. Efectul aplicrii lor este c pixelii cu
valoarea mult diferit de a vecinilor dispar.


Exemplu de filtrare median.

Mai trebuie de menionat proprietatea filtrelor mediane de a nu altera semnificativ
colurile i muchiile obiectelor din imagine. Filtrarea median necesit ordonarea pixelilor din
vecintate, ceea ce nseamn un numr destul de mare de operaii. n literatur (Pavlidis[79]),
(Pratt[84]), (Rosenfeld[95]) sunt citate mai multe tehnici de aproximare a valorii mediane cutate
(filtrul pseudomedian, mini-max, maxi-min, etc.), precum i o serie de tehnici de minimizare a
timpului de calcul.

2. Tehnici de mbuntire a imaginilor.
11
2.1.2. Filtre n domeniul frecven pentru eliminarea zgomotelor sunt mai rar folosite,
mai ales datorit complexitii calculelor. Aplicaia tipic apare n cazul suprapunerii peste
imagine a unor interferene periodice cu caracteristici cunoscute. Spectrul unei asemenea imagini
conine maxime semnificative corespunztoare acestor interferene, care pot fi eliminate cu un
filtru oprete-band bidimensional, proiectat corespunztor.

2.1.3. Filtrul Wiener generalizat are schema bloc din figura urmtoare:

T T
-1
Z=X+W
A
Y

Fig. 2. Filtrul Wiener generalizat.

Unde:
) ,...,z ,z (z
1 N 1 0
= Z , ) ,...,x ,x (x
1 N 1 0
= X ,
) ,...,w ,w (w
1 N 1 0
= W , ) ,...,y ,y (y
1 N 1 0
= Y
A, T - matrici NxN ;
El este un filtru optimal care realizeaz minimizarea erorii medii ptratice de estimare a
semnalului util X, peste care se suprapune zgomotul Z.
)} ( ) {(
t
X Y X Y E = (4)
n ipotezele:
1) 0 } { } {
t t
= = WX E XW E , adic semnalul util i zgomotul sunt necorelate,
2)
t 1
T T =

, adic transformarea T este unitar,


rezult:

t 1
WW XX XX 0
) ( T K K TK A

+ = (5)
] ) ( [
WW
1
WW XX XX XX
K K K K K trace

+ = (6)
unde
} { } ) )( {
t t
XX
XX E X X X (X E K = = (7)
i
} { } ) )( {(
t t
WW
WW E W W W W E K = = (8)
sunt matricile de autocorelaie pentru semnalul util i respectiv zgomot, iar } {X E X = ,
} {W E W = sunt mediile lor.
Deci cunoscnd caracteristicile statistice ale semnalului util i respectiv zgomotului se
poate construi un filtru optimal, avnd matricea dat de
0
A .
Remarcnd faptul c mrimea erorii nu depinde de transformarea ortogonal aleas, putem
alege matricea T din condiia minimizrii numrului de calcule.

2.1.4. Metode regionale.
Mai nti, prin convoluie cu un set de operatori specifici de extracie de linii i muchii,
imaginea original este transformat pentru a obine o "imagine de control" (Knutsson[61]).
Aceasta este o imagine complex, fiecare punct al ei avnd o magnitudine (x,y) B i o direcie
(x,y) . Deci (x,y) F fiind imaginea iniial, imaginea de control se obine astfel:
4 , 3 , 2 , 1 i (x,y), cu (x,y) (x,y)
i i
= = E F S (9)
(x,y) (x,y) (x,y)
i i
D F C = , (10)
2. Tehnici de mbuntire a imaginilor.
12
unde "" nseamn convoluie, iar (x,y)
i
E i respectiv (x,y)
i
D sunt filtre spaiale pentru
detecia de muchii i respectiv linii, avnd direcia "i".
Amplitudinea imaginii de control n direcia "i" este dat de:
4 , 3 , 2 , 1 , i (x,y) (x,y) (x,y) (x,y)
2
i
2
i i
= + = V C S B , (11)
unde:
1 0 , (x,y) (x,y) (x,y)

4
1 i
2
i
2
i
< <
(

+ =

=
C S V (12)
Amplitudinea global este dat de:

2
4 2
2
3 1
(x,y)] (x,y) [ (x,y)] (x,y) [ (x,y) B B B B B + = (13)
iar direcia n punctul de coordonate ) y , x ( este ) , ( y x , care se deduce din
(x,y) (x,y)]/ (x,y) [ (x,y)] 2 [
4 2
B B B sin = (14)
(x,y) (x,y)]/ (x,y) [ (x,y)] 2 [
3 1
B B B cos = (15)
Filtrele pentru detecia muchiilor i a liniilor se construiesc n domeniul frecven astfel:
) ( ) ( ) (
i i i
e e , E = (16)
) ( ) ( ) (
i i i
d d , D = (17)
] )

(
) (
2 4
[ ) ( ) (
2
c
2
i i
ln
B ln
ln
exp d e = = (18)
)] ( [ ) ( ) (
i i
2
i
= cos sign cos e (19)
) ( ) (
i
2
i
= cos d (20)


Fig.3.Filtrul pentru detecia muchiilor ) , ( E
i
, Fig.4.Filtrul pentru detecia liniilor ) , ( D
i
.
Odat construit imaginea de control (deci estimate direcia i mrimea muchiei n fiecare
punct), urmeaz construirea unui filtru anizotropic pentru operaia efectiv de mbuntire. Acest
filtru este suma a dou componente: un filtru izotropic trece-jos de netezire i unul de extragere
muchii, orientat n direcia dat de imaginea de control obinut din imagine. Proporia celor dou
componente este dat de amplitudinea punctual a imaginii de control.
Filtrul de netezire trebuie s fie izotropic, deci:

<
= =
9 . 0 , 0
9 . 0 ),
8 . 1
(
) ( ) , (
2
pentru
pentru


cos
H H (21)
2. Tehnici de mbuntire a imaginilor.
13

Fig. 5. Filtrul izotropic de netezire ) , ( H .

Filtrul de extragere de muchii se construiete astfel:
) ( ) ( ) , ( m m M = (22)
unde:

< +
<
<
=

9 . 0 )], 9 . 0 (
8 . 1
[
9 . 0 9 . 0 , 1
9 . 0 ), ( 1
) (
2
pentru
pentru
pentru
cos
H
m (23)
) ( ) (
2
cos m = (24)
Imaginea mbuntit, (x,y) G poate fi exprimat astfel:
(x,y))] (x,y, (x,y) (x,y)[ (x,y) (x,y) (x,y)
e s
M F B H F G + = (25)
Este posibil prelucrarea iterativ a imaginilor zgomotoase, aplicnd succesiv formula
anterioar.

Fig. 6. Filtrul de netezire echivalent dup patru iteraii.
Dei costisitoare din punctul de vedere al calculelor, aceast metod se dovedete a fi
deosebit de puternic.

2.2. mbuntirea contrastului.
2.2.1. mbuntirea contrastului prin operaii asupra histogramei.
Cele mai simple metode de mbuntire a contrastului unei imagini au la baz operaii
asupra histogramei.
Din studiul histogramei unei imagini cu contrast sczut de poate remarca utilizarea
neeficient a gamei dinamice posibile pentru nivelele de gri. Dac ntr-o imagine, cel mai
ntunecat nivel de gri al unui pixel este K, iar W este nivelul de gri al celui mai luminos pixel,
atunci transformarea punctual liniar numit scalare:
K] (x,y) [
K W
K W
(x,y)

= f
~ ~
f
~
(26)
2. Tehnici de mbuntire a imaginilor.
14
va fora noua gam dinamic a pixelilor din imagine la intervalul ] W , K [
~ ~
. (n cazul general
nivelele de gri K i W se aleg funcie de rezultatul dorit).
Alegnd 0 K
~
= i 1 L W
~
= , unde L este numrul maxim posibil de nivele de gri din
imagine, se obine o imagine cu contrast mbuntit.
Transformarea se poate generaliza prin construirea unei funcii de scalare, care s
transforme, dup o lege oarecare, luminozitatea pixelilor din imagine.
0 L-1 INTRARE
x
y
L-1
~
B
B
W
W
~
~
I
E

I
R
E

Fig. 7. Exemplu de funcie de scalare.
n literatur sunt citate o multitudine de asemenea funcii de scalare: ptratic, cubic,
radical, rdcina de ordinul trei, liniare pe poriuni, gaussian, invers, logaritmic, exponenial,
etc.
Egalizarea de histogram i propune s furnizeze la ieire o imagine avnd o utilizare
relativ uniform a nivelelor de gri, adic o histogram "aproximativ uniform":

S
MN
e(z) = H , (27)
unde M, N sunt dimensiunile imaginii.
H(z)
He(y)
0
0
y
z
k m n
p r q
Ho
L-1
S-1

Fig. 8. Principiul egalizrii de histogram.
2. Tehnici de mbuntire a imaginilor.
15
Se remarc practic dou situaii distincte:
1) Nivelele de gri "slab reprezentate" din histograma iniial (exist puini pixeli avnd
aceste nivele de gri), din intervalul [m,n] capt prin egalizare nivelul de gri unic "r" n
histograma egalizat;
2) Nivelul de gri "k", care este "bine reprezentat" n histograma iniial, va fi distribuit,
prin egalizare, n intervalul [p,q].
Pentru cazul 2) se poate adopta o strategie din mai multe posibile pentru a realiza
distribuirea nivelului de gri "k" ntr-un interval:
a) Pixelii din imaginea iniial avnd nivelul de gri "k" capt dup egalizare nivelul de gri
(p+q)/2; histograma nu rezult perfect plat, dar efortul de calcul este minim;
b) Pixelilor din imaginea iniial li se atribuie un nivel de gri aleator n intervalul [p,q];
efortul de calcul rmne destul de mic, histograma rezult aproximativ plat, dar apare un zgomot
care se suprapune peste imagine;
c) Nivelul de gri atribuit pixelilor din imaginea iniial se coreleaz cu nivelul de gri al
vecinilor lui, astfel:

>

<
=
M (x,y) q,
q M p M,
M (x,y) p,
(x,y)
f
f
f
~
pentru
pentru
pentru
(28)
unde:

= =
+ + =
1
1 m
1
1 n
n) m,y (x
9
1
M f (29)

Histograma imaginii iniiale Dup aplicarea algoritmului 1 de egalizare

Dup aplicarea algoritmului 2 de egalizare Dup aplicarea algoritmului 3 de egalizare
2. Tehnici de mbuntire a imaginilor.
16

Imaginea iniial Dup aplicarea algoritmului 2 de egalizare

n lucrarea (Pizer[82]) se propune o tehnic adaptiv de egalizare a histogramei, care se
bazeaz pe divizarea imaginii n careuri, pentru fiecare careu calculndu-se histograma i regula
de atribuire a noilor nivele de gri. Pentru fiecare pixel se obine regula de atribuire printr-o
combinaie liniar a nivelelor de gri furnizate de regulile de atribuire corespunztoare celor patru
careuri mai apropiate:
] )M
Cy
B
1 ( M
Cy
B
)[
Cx
A
1 ( ] )M
Cy
B
1 ( M
Cy
B
[
Cx
A
M
11 01 10 00
+ + + = (30)
unde M M M M
00 10 01 11
, , , sunt regulile de atribuire date de cele mai apropiate patru careuri,
iar restul elementelor rezult din figura urmtoare:
M
Cx
Cy
A
B
f(x,y)
M
M
M
00
01
10
11

Fig. 9. Principiul egalizrii adaptive de histogram.

2.2.2. Filtrarea homomorfic.
Se accept drept model simplificat al imaginii:
(x,y) (x,y) (x,y) r i f = (31)
unde (x,y) i este componenta numit "iluminare", dat de sursele de lumin aferente
imaginii, iar (x,y) r este "reflectana", dat de proprietile de reflexie local ale corpurilor din
imagine. Se remarc proprietile 0 (x,y) > i , 1 (x,y) 0 < < r , precum i faptul c iluminarea (x,y) i
variaz lent de la o zona la alta a imaginii, pe cnd reflectana, variind brusc de la o zona la alta a
imaginii, este cea care furnizeaz frecvenele mari din spectru.
Micornd ponderea iluminrii n raport cu reflectana se obine o mbuntire
semnificativ a contrastului, simultan cu eliminarea efectelor iluminrii neuniforme a imagini.
2. Tehnici de mbuntire a imaginilor.
17
Separarea celor dou componente se face logaritmnd imaginea iniial, urmnd ca, dup o
filtrare clasic, s se execute exponenierea imaginii filtrate. Deci paii care se urmeaz sunt
(Gonzales[42]):

1. (x,y)]; [ (x,y)] [ (x,y)] [ r log i log f log + = (32)
adic ); , ( r ) , ( i ) , ( f y x y x y x + =
2. (x,y)} { (x,y)} { (x,y)} { r F i F f F + = ; (33)
adic (u,v); (u,v) (u,v) R I F + =
3. (u,v); (u,v) (u,v) (u,v) (u,v) (u,v) (u,v) R H I H F H F + = = (34)
adic (u,v); (u,v) (u,v) R I F + =
4. (u,v)}; { (u,v)} { (u,v)} { R F I F F F
-1 -1 -1
+ = (35)
adic (x,y); (x,y) (x,y) r i f + =
5. (x,y)]; [ (x,y)] [ (x,y)] [ r exp i exp f exp = (36)
adic (x,y) (x,y) (x,y) r
~
i
~
f
~
=

Foarte important este alura filtrului bidimensional H, care va atenua frecvenele joase din
spectru i le va amplifica pe cele nalte:

Fig. 10. Filtru trece-sus pentru filtrarea homomorfic.

2.2.3. Difereniere statistic.
Aceast metod (Wallis[110]) i propune mrirea contrastului pentru acele zone din
imagine caracterizate prin varian mic. Practic, pentru fiecare pixel al imaginii se calculeaz
media i respectiv dispersia pixelilor din vecintatea ptratic (de obicei 9x9) ataat pixelului
curent.


= =
+ +
+
=
w
w i
w
w j
2
j) i,y (x
) 1 w 2 (
1
(x,y) f m ; (37)


= =
+ + + +
+
=
w
w i
2
w
w j
2
2
j)] i,y (x j) i,y (x [
) 1 w 2 (
1
(x,y) m f (38)
cu latura vecintii 1 w 2 + ;
Asimilnd nivelul de gri al pixelului curent cu o variabil aleatoare, expresia

(x,y)
(x,y) (x,y)
(x,y)

m f
f
~
= (39)
descrie o variabil aleatoare de medie nul i dispersie unitar.
Expresia urmtoare, propus de Wallis n [110] permite setarea mediei i a dispersiei la
valorile dorite
d
M ,
d
, funcie de parametrii "A" i "r":
2. Tehnici de mbuntire a imaginilor.
18
(x,y)] r) 1 ( [rM (x,y)] (x,y) [
(x,y) A
A
(x,y)
d
d
d
m m f

f
~
+ +
+
=

(40)
Folosind valori bine alese pentru parametrii formulei precedente, este posibil evidenierea
unor detalii fine dintr-o imagine cu contrast sczut.

2.3. Accentuarea muchiilor.
Principiul general al operaiei de accentuare de muchii se deduce din schema urmtoare,
care prezint cazul unidimensional. Operatorul este un operator oarecare de difereniere iar
2
= .

| F(t)|
t
t
t
t
F(t)
F(t)

F(t)- F(t)


Fig. 11. Principiul accenturii de muchii.

n cazul imaginilor continue, toat informaia privind variaiile locale de luminozitate este
concentrat n vectorul gradient:
j
y
(x,y)
i
x
(x,y)
(x,y)
2 2
r r

f f
f + = (41)
cu aproximaiile urmtoare pentru cazul discret:
(x,y) ,y) 1 (x (x,y)
x
f f f + = (42)
(x,y) ) 1 (x,y (x,y)
y
f f f + = (43)
Drept operator de difereniere de ordinul doi, pentru cazul continuu, se folosete
Laplacianul:

2 2
y
(x,y)
x
(x,y)
(x,y)

f f
f + = , (44)
cu aproximrile urmtoare pentru cazul discret:
,y) 1 (x (x,y) 2 ,y) 1 (x ,y) 1 (x (x,y) (x,y)
x x x
+ + = = f f f f f f
) 1 (x,y (x,y) 2 ) 1 (x,y ,y) 1 (x (x,y) (x,y)
y y y
+ + = = f f f f f f (45)
(x,y) 4 ) 1 (x,y ) 1 (x,y ,y) 1 (x ,y) 1 (x (x,y) (x,y) (x,y)
y y
f f f f f f f f + + + + + = + =
ceea ce se traduce printr-o convoluie cu masca
0
L (sau
1
L , sau
2
L ):
2. Tehnici de mbuntire a imaginilor.
19
(
(
(

=
0 1 0
1 4 1
0 1 0
0
L
(
(
(

=
1 1 1
1 8 1
1 1 1
1
L
(
(
(


=
1 2 1
2 4 2
1 2 1
2
L (46)
Accentuarea muchiilor se face deci cu:
) 1 (x,y ) 1 (x,y ,y) 1 (x ,y) 1 (x (x,y) 5 (x,y) (x,y) (x,y) + + = = f f f f f f f f
~
(47)
ceea ce se traduce printr-o convoluie cu masca
0
A (sau
1
A , sau
2
A ):
(
(
(

=
0 1 0
1 5 1
0 1 0
0
A
(
(
(




=
1 1 1
1 9 1
1 1 1
1
A
(
(
(

=
1 2 1
2 5 2
1 2 1
2
A (48)

2.4. mbuntirea imaginilor binare.
2.4.1. Eliminarea zgomotelor.
Primul pas n mbuntirea unei imagini deja binarizate const n eliminarea zgomotelor.
Pentru o imagine deja binarizat, zgomotul tip "sare i piper" este preponderent. Trebuiesc
efectuate dou tipuri de operaii de eliminare a pixelilor izolai: tergerea (forare la alb) pixelilor
negri pe fond alb i tergerea (setare la negru) pixelilor albi pe fond negru.

2.4.2. Netezirea contururilor.
Operaia de "netezire a contururilor" obiectelor din imagine n condiiile pstrrii
aspectului lor (OGorman[76]), are efecte benefice nu numai asupra ratei de recunoatere, ci i
asupra factorului de compresie posibil, dac se are n vedere stocarea imaginilor scanate.
Se lucreaz pe vecinti ptratice (kxk) . Notnd:
n = numrul de pixeli negri din vecintatea pixelului curent;
c = numrul de submulimi conectate de pixeli din vecintatea pixelului curent;
r = numrul de pixeli de col.
Condiia de modificare a valorii unui pixel este sintetizat de formula:

TRUE and or and )] 2 (r ) 4 k- 3 (n ) 4 k- 3 [(n ) 1 (c = = = > = (49)

Obs. Condiia ) 1 (c = asigur pstrarea topologiei imaginii, ntocmai ca la algoritmii de subiere.


Fig. 12. Netezirea contururilor n imaginile binare.

Algoritmul se aplic succesiv pentru pixelii negri, apoi pentru cei albi, pn cnd nu se
mai constat modificri pe imagine (sau, pentru a limita durata operrii, dup un numr
predeterminat de pai).
Alte operaii care pot fi folosite n mbuntirea imaginilor binare sunt prezentate n
capitolul 5, "Prelucrri morfologice ale imaginilor".


2.5. Detalii de implementare.
2. Tehnici de mbuntire a imaginilor.
20
Operaia de filtrare poate fi implementat n dou moduri, funcie de cerinele aplicaiei.
Dac imaginea surs i cea destinaie sunt diferite, atunci implementarea este simpl. Exemplul de
mai jos se refer la filtrul cu de masca
7
M , descris anterior. Pentru pixelii marginali, pentru care
masca corespunztoare nu mai este inclus n imaginea surs, se pot folosi cu succes filtre
unidimensionale, a cror masc coincide cu linia / coloana central a mtii de referin. Imaginile
folosite sunt vzute ca matrici de dimensiune M*N (ImgS, ImgD), indicii lor variind n gama
[0,M-1], respectiv[0,N-1].

procedure Average;
var
i,j : byte;
begin
(* prima linie *)
j:=0;
for i:=1 to M-2 do
begin
ImgD^[j,i]:=(ImgS^[j,i-1]+2*ImgS^[j,i]+ImgS^[j,i+1]) div 4;
end;
(* bucla principala *)
for j:=2 to N-2 do
begin
for i:=2 to M-2 do
begin
ImgD^[j,i]=(ImgS^[j-1,i-1]+2*ImgS^[j,i-1]+ImgS^[j+1,i-1]+
2*ImgS^[j-1,i]+4*ImgS^[j,i]+2*ImgS^[j+1,i]+
ImgS^[j-1,i+1]+2*ImgS^[j,i+1]+ImgS^[j+1,i+1]) div 16;
end;
(* prima coloana *)
i:=0;
ImgD^[j,i]:=(ImgS^[j-1,i]+2*ImgS^[j,i]+ImgS^[j+1,i]) div 4;
(* ultima coloana *)
i:=M-1;
ImgD^[j,i]:=(ImgS^[j-1,i]+2*ImgS^[j,i]+ImgS^[j+1,i]) div 4;
end;
(* ultima linie *)
j:=N-1;
for i:=1 to M-1 do
begin
ImgS^[j,i]:=(ImgS^[j,i-1]+2*ImgS^[j,i]+ImgS^[j,i+1]) div 4;
end;
end;

Dac operaia de filtrare trebuie fcut "pe loc", adic sursa coincide cu destinaia, codul
se complic, deoarece este necesar folosirea unor matrici temporare n care s se salveze linia
curent i cea precedent din imaginii surs. Deoarece la calculul liniei noii valori a unui pixel de
pe linia "i" trebuie folosit informaia de pe linia precedent a imaginii originale (deja
modificat), informaia dorit se regsete n matricea temporar.
n capitolul 21 este prezentat aplicaia PROImage, care include, printre altele, i
implementri ale multor filtre descrise n acest capitol. Pentru informaii suplimentare se poate
studia codul surs din fiierul "fil.pas".
Aceeai aplicaie include posibilitatea alterrii unei imagini prin adugarea de zgomot.
Aceast operaie este util n studiul comparativ al comportrii diferitelor filtre de netezire n
prezena zgomotelor. Utilizatorul poate specifica tipul i amplitudinea zgomotului ce se adaug
imaginii. n aplicaia PROImage sunt implementate generatoarele de zgomot gaussian, uniform i
aleator. Zgomotul aleator ("speckle noise") afecteaz brutal pixeli aflai n poziii aleatoare n
imagine.
2. Tehnici de mbuntire a imaginilor.
21
Sunt posibile i alte optimizri de vitez, inclusiv implementri hardware de timp real,
schema bloc a unui asemenea sistem fiind dat n figura urmtoare:

Fig. 13. Implementarea n timp real a filtrelor spaiale.

Registrele de deplasare au lungimea egal cu numrul de pixeli de pe o linie TV. Semnalul
de ieire se obine decalat n timp fa de cel de intrare.
O implementare simplificat n limbajul PASCAL a algoritmului de egalizare de
histogram este prezentat n continuare.

procedure HistEqu(Levels:integer; mode:integer);
var
i,j,k : byte;
HAvg : longint;
HInt : longint;
Tmp : integer;
Left : array [0..255] of word;
Right : array [0..255] of word;
begin
(*iniializeaz vectorii limit*)
for i:=0 to 255 do
Left[i]:=0;
for i:=0 to 255 do
Right[i]:=0;
(*calculeaz aria histogramei*)
HAvg:=0;
for i:=0 to 255 do
HAvg:=HAvg+Hist[i];
(*bucla de calcul a vectorilor limit*)
j:=0;
HInt:=0;
for i:=0 to 255 do
begin
Left[i]:=j;
HInt:=HInt+Hist[i]*Levels;
while HInt>=HAvg do
begin
HInt:=HInt-HAvg;
Inc(j);
end;
Right[i]:=j;
end;

(*prima strategie de egalizare*)
Convertor
Analog
Digital
Registru de deplasare
Masc
Registru de deplasare
Registru de deplasare



Bloc
De
Calcul
Convertor
Digital
Analogic
Semnal
Video
Complex
Semnal
Video
Complex
2. Tehnici de mbuntire a imaginilor.
22
if mode=1 then
begin
Randomize;
for j:=0 to N-1 do
for i:= 0 to M-1 do
ImD^[j,i]:=(Left[ImS^[j,i]]+Right[ImS^[j,i]]) div 2;
end;

(*a doua strategie de egalizare*)
if mode=2 then
begin
Randomize;
for j:=0 to N-1 do
for i:= 0 to M-1 do
ImD^[j,i]:=Left[ImS^[j,i]]
+Random(Right[ImS^[j,i]]-Left[ImS^[j,i]]);
end;

(*a treia strategie de egalizare*)
if mode=2 then
begin
for j:=1 to N-2 do
for i:= 1 to M-2 do
begin
// calculeaz valoarea medie n vecintate
Tmp:=0;
for n:=-1 to 1 do
for m:= -1 to 1 do
Tmp:=Tmp+Ims^[j+n,i+m];
// calculeaz valoarea pixelului la ieire
if Tmp < Left[ImS^[j,i]]*9 then
Tmp:=Left[ImS^[j,i]]*9;
if Tmp > Right[ImS^[j,i]]*9 then
Tmp:=Right[ImS^[j,i]]*9;
ImD^[j,i]:=Tmp;
end;
end;
end;

Parametrul "Levels" este numrul de nivele de gri al imaginii de ieire, iar "Mode"
specific strategia de egalizare dorit. Imaginile de intrare/ieire, "ImS" i "ImD" sunt matrici
MxN avnd un octet/pixel.
Diferenierea statistic realizeaz "controlului automat al luminozitii", pe baza
caracteristicilor statistice ale imaginii, la nivel local, pe vecinti de dimensiuni reduse.
Implementarea prezentat n continuare (limbajul PASCAL) folosete vecinti 9x9.

procedure Enhn();
var
i,j : shortint;
x,y,z : byte;
Med : real; (*media vecintii*)
Sum : real; (*dispersia vecintii*)
Dif : real; (*valoarea calculat a ieirii*)
begin
(*bucla principala*)
for y:= 4 to N-5 do
for x:= 4 to M-5 do
begin
(*calcul medie aritmetic n vecintate*)
2. Tehnici de mbuntire a imaginilor.
23
Med:=0.0;
for i:=-4 to 4 do
for j:=-4 to 4 do
Med:=Med+ImS^[y+j,x+i];
Med:=Med/81.0;
(* calcul dispersie n vecintate*)
Sum:=0;
for i:=-4 to 4 do
for j:=-4 to 4 do
Sum:=Sum+Sqr(ImS^[y+j,x+i]-Med);
Sum:=Sum/81.0;
(*calcul valoare pixel la ieire*)
(*Md este media dorit a fiecrei vecinti din imagine*)
(*Sd este dispersia dorit a fiecrei vecinti din imagine*)
(*A este factorul de amplificare*)
(*r este factorul de ponderare, cu valori n gama [0,1] *)
Dif:=(ImS^[y,x]-Med)*(Sd/(Sum+Sd/A))+r*Md+(1-r)*Med;
(*corecii*)
if Dif>255.0 then
Dif:=255.0;
if Dif<0.0 then
Dif:=0.0;
ImD^:=Dif;
end;
end;

3. Restaurarea imaginilor.
25





3. Restaurarea imaginilor.




3.1. Modele matematice ale imaginilor de restaurat.
3.2. Tehnici convolutive de restaurare a imaginilor.
3.2.1. Metoda filtrului invers.
3.2.2. Filtrul Wiener.
3.2.3. Metoda egalizrii spectrului de putere.
3.2.4. Filtrul - medie geometric.
3.2.5. Estimarea parametric a filtrului de restaurare.
3.2.6. Concluzii.
3.3. Tehnici adaptive de restaurare a imaginilor.
3.3.1. Filtrul Anderson-Netravali.
3.3.2. Filtrul Abramatic-Silverman.
3.4. Restaurarea imaginilor degradate cu varian la translaie.
3.5. Discuii asupra modelului discret al restaurrii.
3.6. Modificri geometrice ale imaginilor.
3.6.1. Translaia, scalarea i rotaia imaginilor.
3.6.2. Deformri geometrice polinomiale.
3.6.3. Proiecia paralel i proiecia perspectiv.
3.6.4. Modelul capturii unei imagini cu o camera de luat vederi.
3.6.5. Reeantionarea geometric a imaginilor.
3.7. Compensarea distorsiunilor de nelinearitate i a celor de spectru al luminii.




Restaurarea imaginilor are drept scop repararea imaginilor afectate de distorsiuni ale cror
caracteristici se cunosc sau se deduc.
Pentru modelarea proceselor care duc la degradarea imaginii se utilizeaz urmtoarea
schem bloc general (Jain[56]):
f(x,y)
sistem liniar
h(x,y,x',y')
w(x,y)
nelinearitate
punctual


1
(x,y) (x,y)
(x,y)
2
g(x,y)
nelinearitate
punctual
d(-)
s(-)

Fig. 1. Schema bloc de modelare a procesului de degradare a imaginilor.
3. Restaurarea imaginilor.
26
Semnalul iniial (x,y) f este mai nti trecut printr-un filtru avnd rspunsul la impuls
) y , x (x,y; h , obinndu-se semnalul (x,y) w (convoluie n domeniul spaial):


= y x x )d y , x ( ) y , x ((x,y; (x,y) f h w (1)
Funcia nelinear ) d( modeleaz nelinearitile introduse de blocul de detecie a
imaginii, iar peste rezultat se suprapune un zgomot (x,y) :
(x,y) [w(x,y)] (x,y) d g + = (2)
Acest zgomot conine dou componente: una dependent de semnal prin intermediul
nelinearitii ) ( s care modeleaz blocul de nregistrare a imaginii (x,y)
1
, i alta independent
de semnal (aditiv), notat (x,y)
2
. Deci:
(x,y) (x,y) (x,y))] ( [ (x,y)
2 1
w g s + = (3)
n concluzie, un model general al procesului de degradare a imaginii este:
(x,y) (x,y) (x,y))] ( [ y x x )d y , x ( ) y , x (x,y; (x,y)
2 1
w g s f h d g + +
(


(4)
Modelul descris sufer adesea numeroase simplificri, care faciliteaz analiza unor
distorsiuni tipice care apar n practic. Cel mai adesea distorsiunile sunt invariante la translaii
(shift invariant), deci se folosete
) y ,y x (x ) 0 , 0 ; y ,y x (x ) y , x (x,y;

= = h h h (5)
De asemenea, adeseori se presupune 0 ) ( = r .
Trecnd n domeniul frecven, unde analiza este mai facil, relaia anterioar se scrie:
) , ( ) , ( ) , ( ) , (
y x y x y x y x
N F H G + = (6)

3.1. Modele matematice ale imaginilor de restaurat.
n literatur sunt descrise cteva modele matematice care aproximeaz rspunsurile la
impuls ale ctorva sisteme reale care afecteaz calitatea imaginii.
Cele mai des ntlnite distorsiuni sunt cele datorate fenomenului de difracie n partea
optic a sistemului de captur a imaginii. n cazul difraciei pentru lumin coerent, rspunsurile
la impuls n domeniul spaial i respectiv frecven ale modelului sunt:

xy
(by) (ax)
(x,y)
sin sin
h =
(

=
b

,
a

) , (
y
x
y x
rect H (7)

Fig. 2. Modelarea distorsiunilor datorate difracei optice (lumin coerent).

Varianta pentru lumin incoerent este descris de:
3. Restaurarea imaginilor.
27

by
(by)
ax
(ax)
(x,y)
2 2
sin sin
h =
(

=
b

,
a

) , (
y
x
y x
tri H (8)

Fig. 3. Modelarea distorsiunilor datorate difracei optice (lumin incoerent).

Rspunsul n frecven pentru modelarea imaginilor obinute printr-un sistem optic
puternic defocalizat are aproximativ urmtoarea form:

Fig. 4. Modelarea distorsiunilor datorate defocalizrii puternice.

Un alt tip de distorsiune extrem de des ntlnit n practic este cazul imaginilor "micate",
adic, pe durata achiziiei imaginii are loc o deplasare relativ a detectorului optic fa de scen.
Rspunsul la impuls n domeniul timp, respectiv frecven sunt:
(y) )
2
1

x
(

1
(x,y)
0 0
rect h =
x 0
x 0
0 x y x

) (
) j ( ) , (
sin
exp H = (9)

Fig. 5. Modelarea distorsiunilor de tip "imagine micat".

Pentru imaginile satelitare (sau luate de la mare altitudine) intervine un alt gen de
distorsiune, datorat turbulenei atmosferice, descris de:
)] y (x [ (x,y)
2 2 2
+ = exp h
(
(

+
=
2
2
y
2
x
2
y x

) (

1
) , ( exp H (10)
3. Restaurarea imaginilor.
28

Fig. 6. Modelarea distorsiunilor datorate turbulenelor atmosferice.

La operaia de scanare apare fenomenul de apertur descris de:

|
|
.
|

\
|
=

y
,

x
(x,y) rect h
y
y
x
x
y x

) (

) (
) , (
sin
sin
H = (11)

Fig. 7. Modelarea distorsiunilor fenomenului de apertur (scanare).

n cazul matricilor CCD (Charge Coupled Devices) apare un alt gen de distorsiune, datorat
interaciunii ntre celulele vecine ale ariei de captur. Ea este descris de:

= =
=
1
1 m
1
1 n
m,n
) n ,y m (x (x,y) h ,

= =
+ =
1
1 m
1
1 n
y x m,n y x
)] n (m j 2 [ ) , ( exp H (12)
adic valoarea furnizat de fiecare celul este o combinaie liniar a valorilor ideale
corespunztoare unei vecinti 3x3 din matricea de captur a CCD.
Pentru caracterizarea zgomotului, cel mai adesea se utilizeaz modelul gaussian de
medie nul, descris deci de densitatea de repartiie:
)
2
z
(
2
1
(z)
2
2

= exp p (13)
O prim excepie citat n literatur este cazul unor tipuri de fotodetectoare lucrnd la
iluminri extrem de sczute, pentru care este mai potrivit distribuia Poisson (legea
evenimentelor rare):
) exp(
!

=
k
p
k
k
(14)
Jain descrie n [56] i un alt tip de zgomot ("speckle noise") care apare n cazul imaginilor
microscopice cu detalii avnd dimensiuni de acelai ordin de mrime cu lungimea de und a
radiaiei incidente. Este un zgomot multiplicativ, descris de o distribuie exponenial:

<

|
.
|

\
|
=
0 z , 0
0 z ,

1
(z)
2 2
pentru
pentru exp
p (15)
3. Restaurarea imaginilor.
29
Variantele discrete ale ecuaiilor care descriu modelul de degradare a unei imagini sunt
urmtoarele, foarte asemntoare cu cazul continuu:
(m,n) [w(m,n)] (m,n) d g + =


+
=
+
=
=
m n
) n , m ( ) n , m (m,n; (m,n) f h w (16)
(m,n) (m,n) (m,n))] ( [ (m,n)
2 1
w g s + =

3.2. Tehnici convolutive de restaurare a imaginilor.
Tehnicile de restaurare a imaginilor urmresc construcia unui filtru care, plecnd de la
imaginea distorsionat, s furnizeze la ieire o imagine ct mai apropiat de cea ideal (Pratt[84]).


+

+

= y d x )d y , x ( ) y , x (x,y; (x,y) g r f
~
(17)
sau n domeniul frecven:
) , ( ) , ( ) , (
y x y x y x
G R F
~
= (18)
innd cont de relaia de definiie a lui G rezult:
)] , ( ) , ( ) , ( )[ , ( ) , (
y x y x y x y x y x
N F H R F
~
+ = (19)

3.2.1. Metoda filtrului invers.
n absena zgomotului relaia anterioar devine:
) , ( ) , ( ) , ( ) , (
y x y x y x y x
F H R F
~
= (20)
Condiia ca ) , (
y x
F
~
s fie ct mai apropiat de ) , (
y x
F se traduce prin:

2
y x
y x
y x
y x
) , (
) , (
) , (
1
) , (
H
H
H
R

= = (21)
Filtrul invers furnizeaz cea mai simpl soluie de restaurare a imaginilor afectate de
distorsiuni, n schimb el prezint o serie de dezavantaje.
Realizarea practic a filtrului invers este dificil deoarece el este adesea instabil, i anume
n apropierea zerourilor lui ) , (
y x
H , pentru care ) , (
y x
R tinde ctre infinit. n plus, dac
zgomotul este prezent, estimarea obinut va fi slab.
) , (
) , (
) , (
) , ( ) , (
y x
2
y x
y x
y x y x
N
H
H
F F
~

+ = (22)
Filtrul pseudoinvers ncearc s evite instabilitatea prezent la filtrul invers.

=
0 ) , ( , 0
0 ) , ( ,
) , (
1
) , (
y x
y x
y x y x
H
H
H R
pentru
pentru
(23)
n practic condiia 0 ) , (
y x
= H se nlocuiete cel mai adesea cu o condiie de tipul
) , (
y x
< H . Efectul zgomotelor asupra calitii imaginii restaurate se reduce la acest tip de
filtru fa de precedentul.




3.2.2. Filtrul Wiener.
3. Restaurarea imaginilor.
30
Acest tip de filtru, larg utilizat n prelucrarea de semnale, folosete drept criteriu de
construcie condiia de minimizare a erorii medii ptratice ntre semnalul de intrare i cel de ieire
(restaurat), adic:
min f
~
f E = = } (x,y)] (x,y) {[
2 2
(24)
Filtrul Wiener ncorporeaz cunotine statistice apriorice despre semnalul util i zgomot.
Pentru ) y , x ( f , ) y , x ( g se face ipoteza c ele sunt procese aleatoare de medie nul.

degradare
h(x,y)
Filtru de
restaurare
r(x,y)
f(x,y)

(x,y)
g(x,y
)
spaial
f(x,y)
~

Fig. 8. Filtrul Wiener.

n ipoteza, nerestrictiv pentru nceput, a invarianei la deplasri spaiale, avem de
minimizat:
min g r f E = =

+

+

} ] y d x )d y , x ( ) y ,y x (x (x,y) {[
2 2
(25)
Aceast condiie este ndeplinit cnd:
0 ) y , x ( y d x )d y , x ( ) y ,y x (x (x,y) =



+

+

g g r f E (26)
valabil pentru orice pereche de puncte ) y , x ( i ) y , x ( din planul imaginii (condiia de
ortogonalitate).
Rezult condiia (egalitatea):


+

+

= y d x )}d y , x ( ) y , x ( { ) y ,y x (x )} y , x ( (x,y) { g g E r g f E (27)
valabil n aceleai condiii. Dar deoarece:
) y ,y x (x )} y , x ( (x,y) {
fg
K g f E = (28)
) y y , x x ( )} y , x ( ) y , x ( {
gg
K g g E = (29)
putem exprima relaia anterioar prin intermediul funciilor de corelaie:


+

+

= y d x )d y y , x x ( ) y ,y x (x ) y ,y x (x
gg fg
K r K (30)
Trecnd n domeniul transformatei Fourier, relaia anterioar devine:
) , ( ) , ( ) , (
y x gg y x y x fg
K R K = (31)
cu ) , (
y x gg
K spectrul de putere al funciei "g", de unde:
) , ( ) , ( ) , (
y x
1 -
gg y x fg y x
K K R = (32)
Dar deoarece:
) , ( ) , ( ) , ( ) , (
y x y x y x y x
N F H G + = (33)
Rezult:
) , ( ) , ( ) , (
y x y x y x fg ff
K H K

= (34)
) , ( ) , ( )| , ( | ) , (
y x y x ff
2
y x y x gg
K K H K + = (35)
3. Restaurarea imaginilor.
31
Ca urmare filtrul Wiener, n cazul prezenei zgomotului aditiv, poate fi exprimat funcie de
rspunsul la impuls n domeniul frecven i spectrele de putere ale imaginii iniiale i, respectiv,
zgomotului:

) , ( ) , ( )| , ( |
) , ( ) , (
) , (
y x y x ff
2
y x
y x ff y x
y x
K K H
K H
R
+
=

(36)
Pentru cazul discret al filtrului Wiener vezi Capitolul 2, paragraful 2.1.3.

3.2.3. Metoda egalizrii spectrului de putere.
Spectrul de putere al imaginii degradate este:
) , ( )| , ( | ) , (
y x gg
2
y x y x
f f
K R K ~ ~ = sau dezvoltnd ) , (
y x gg
K avem:
[ ] ) , ( ) , ( )| , ( | )| , ( | ) , (
y x y x ff
2
y x
2
y x y x
f f
K K H R K ~ ~ + = (37)
Fornd ca ) , ( ) , (
y x ff y x
f f
K K ~ ~ = rezult expresia filtrului de restaurare:

2
1
y x y x ff
2
y x
y x ff
y x
) , ( ) , ( )| , ( |
) , (
) , (
(
(

+
=
K K H
K
R (38)
Acest tip de filtru are proprieti interesante pentru cazul cnd nu sunt disponibile
informaii apriorice privind caracteristicile statistice ale semnalului de intrare i zgomotului. Are
o comportare intermediar ntre filtrul invers i filtrul Wiener.

3.2.4. Filtrul - medie geometric.
Acest tip de filtru realizeaz un compromis ntre ctigul n rezoluie i senzitivitatea la
zgomot. Filtrul invers are o rezoluie foarte bun, dar sensibilitate mare la zgomote, pe cnd filtrul
Wiener are imunitate ridicat la zgomot, dar introduce o pierdere a rezoluiei (fiind, n esen, un
filtru trece-jos). Stockham n [105] propune utilizarea urmtorului filtru:

1
y x y x ff
2
y x
y x ff

2
y x
y x
y x
) , ( ) , ( )| , ( |
) , (
)| , ( |
) , (
) , (

(
(

+
(
(

=
K K H
K
H
H
R (39)
unde parametrii i se aleg funcie de problema abordat. Pentru 5 . 0 = i 1 = se
obine filtrul anterior.

3.2.5. Estimarea parametric a filtrului de restaurare.
Fie filtrul obinut prin egalizarea spectrului de putere (Pratt[86]), care poate fi exprimat
prin:

2
1
y x gg
y x ff
y x
) , (
) , (
) , (
(
(

=
K
K
R 40)
Dac nu se cunosc aprioric nici un fel de informaii privind caracteristicile statistice ale
semnalului de restaurat i zgomotului, ele se pot estima din analiza imaginii observate.
Cannon n [28] propune divizarea imaginii iniiale n blocuri ptratice cu dimensiunea
suficient de mare n comparaie cu dimensiunea spaial a rspunsului la impuls (x,y) h . Pentru
fiecare bloc "j" poate fi calculat spectrul de putere ) , (
y x
(j)
gg
K . Spectrul de putere corespunztor
ntregii imagini se estimeaz prin medierea spectrelor de putere ale tuturor blocurilor.
Pentru estimarea lui s-ar putea folosi, dac este disponibil, o imagine nedegradat,
folosind o procedur identic cu cea descris anterior.
3. Restaurarea imaginilor.
32
O alt posibilitate ar fi construcia unei imagini de test care s permit determinarea lui
) , (
y x
H prin analiza semnturii lui. Estimnd printr-o tehnic convenabil spectrul de putere al
zgomotului, ) , (
y x
K , se poate deduce valoarea estimat a spectrului de putere al imaginii
iniiale prin:

2
y x
y x y x gg
y x ff
) , (
) , ( ) , (
) , (
H
K K
K

= (41)

3.2.6. Concluzii.
Toate metodele prezentate pn acum se refer la restaurarea imaginilor degradate cu
funcii distorsiune invariante la translaie, prin metode convolutive. Dei foarte utile ntr-o
multitudine de aplicaii, ele eueaz n unele situaii.
Mai puin filtrul invers, toate celelalte sunt n esen filtre trece-jos, atenund frecvenele
nalte, ceea ce duce la o pierdere a rezoluiei, care se manifest vizual prin atenuarea muchiilor
din imagine. De aici ideea de a adapta filtrul de restaurare la caracteristicile locale ale imaginii
(muchie, regiune uniform).

3.3. Tehnici adaptive de restaurare a imaginilor.
3.3.1. Filtrul Anderson-Netravali.
Cei doi autori studiaz n [04] cazul unei imagini discrete degradate doar prin prezena
unui zgomot aditiv i propun construirea unei "funcii de mascare":
[ ]


+
+ =
m n
(V) (H) ) n (n ) m (m
)| n , m ( | )| n , m ( | c (m,n)
2 2
d d M (42)
unde (m,n) (m,n),
(V) (H)
d d sunt gradienii imaginii n punctul de coordonate (m,n), n
direcie orizontal i respectiv vertical. n continuare este folosit o "funcie de vizibilitate"
(M) , construit pe baza unor msurtori psiho-fiziologice, astfel nct:
1 ) 0 ( = , adic vizibilitate total n absena muchiilor, i
0 ) ( = + , adic prezena muchiei "ascunde" zgomotul.
Experimentele au artat o relativ independen a rezultatelor de funcia de vizibilitate,
dei au fost construite experimente pshiho-fizice precise pentru msurarea funciei de vizibilitate
pentru diferite categorii de imagini.

3.3.2. Filtrul Abramatic-Silverman.
Abramatic i Silverman n [02] au extins studiul filtrului precedent, fcnd practic legtura
cu tehnicile convolutive descrise anterior. Situaia studiat de ei pentru nceput se refer tot la
cazul discret al unei imagini distorsionate doar de zgomot:
(m,n) (m,n) (m,n) v g + = (43)
unde v(x,y) este o imagine cu zgomot, dar care, pentru un observator uman, arat identic
cu cea ideal, iar (x,y) este zgomotul rezidual ce trebuie eliminat.
Zgomotul rezidual, evident, depinde de caracteristicile locale ale imaginii, adic:
n)] (m,n),m,n [ (m,n)
v m,n
f = (44)
unde indicele "v" semnific o vecintate a funciei " " f n jurul punctului ) y , x ( , deci
zgomotul rezidual depinde de valorile lui " " f din aceast vecintate.
Imaginea restaurat se obine prin:

=
i j
m,n
j) i,n (m (i,j) (m,n) g r f
~
(45)
3. Restaurarea imaginilor.
33
unde filtrul de reconstrucie (i,j)
n m,
r se construiete din condiia minimizrii erorii:
) , ( ) , (
2
m,n m,n ff m,n m,n
r N K r S + = (46)
Aceast eroare conine deci dou componente corespunztoare transformrii Wiener
discrete clasice, una "de rezoluie":


=
m n m n
ff
t
ff
]} ) n , m ( ) n , m ( )[ n ,n m (m (m,n)] (m,n) {[ ) (r,K h K h S (47)
i una datorat zgomotului:

=
x y
2 2
n
2
n
(x,y) ) (r, r N (48)
unde ) , ( n m este funcia delta-Kronecker bidimensional.
Autorii propun introducerea proprietii de adaptare prin intermediul lui N, adic:

=
i j
m,n
2
m,n
(i,j) (m,n)] [ r M N (49)
unde este funcia de vizibilitate definit anterior. Rezult filtrul de restaurare n
domeniul frecven:

2
y x ff
y x ff
y x m,n
(m,n)] [ ) , (
) , (
) , (
M K
K
R
+
= (50)
A doua soluie propus este adaptarea prin intermediul lui :
(m,n) (m,n)] [
m,n
M = (51)
caz n care se obine:

2
y x ff
y x ff
y x m,n
) , (
) , (
(m,n)] [ (m,n)]) [ 1 ( ) , (
K
K
M M R
+
+ = (52)
Abramatic i Silverman extind apoi studiul lor la cazul imaginilor alterate nu numai prin
zgomot, ci i printr-o convoluie cu funcia de degradare (m,n) h . Filtrele corespunztoare
obinute n acest caz sunt:

2
n y x ff
2
y x
y x ff y x
y x m,n
(m,n)] [ ) , ( )| , ( |
) , ( ) , (
) , (
M K H
K H
R
+
=

(53)
i respectiv:
2
y x
y x
2
n y x ff
2
y x
y x ff y x
y x kl
)| , ( |
) , (
(m,n)]) [ 1 (
) , ( )| , ( |
) , ( ) , (
(m,n)] [ ) , (
H
H
M
K H
K H
M R

+
+
= (54)

3.4. Restaurarea unor imagini degradate cu varian la translaie.
O prim clas de alterri ale imaginii (Wallis[110]) la care funcia punctual de degradare
este variant la translaie poate fi descompus n trei operaii distincte:
distorsiune
(x',y')=G (x,y
)
f(x,y)
geometric
g(x,y)
1
translaie
distorsiune
geometric
(x,y)=G (x',y'
) 2
h(x',y')
degradare
invariant la

distorsiune
f(x,y)
geometric
g(x,y
)
(x',y')=G (x,y)
2
-1
corecie
distorsiune
geometric
(x,y)=G (x',y')
1
-1
corecie
degradare
la translaie
restaurare
r(x',y'
)
invariant

Fig. 9. Modelul degradrilor cu varian la translaie.
3. Restaurarea imaginilor.
34
Primul i ultimul pas constau n distorsiuni geometrice, n timp ce n pasul al doilea
imaginea sufer o degradare invariant la translaie.
Ecuaia care descrie obinerea imaginii discrete degradate:
(m,n) ) n , m ( ) n , m (m,n; (m,n)
M
0 m
N
0 n
f h d g +
(

=

= =
(55)
poate fi scris sub form matriceal dac imaginea iniial, cea degradat i cea
corespunztoare zgomotului se exprim prin vectori de lungime MxN :
[ ] [ ][ ] { } [ ] n f H d g + = (56)
Pentru cazul n care nelinearitarea "d" se poate neglija, rezult un sistem liniar de ecuaii
avnd MxN necunoscute, de obicei mult prea mare pentru a fi rezolvat prin metodele clasice:
[ ] [ ][ ] [ ] [ ] [ ] [ ] [ ] ( ) n g H f n f H g = + =
1
(57)
De aceea, de obicei, soluia acestei probleme este una aproximativ, obinut prin metode
similare cu cazul invarianei la translaie.
Corespunztor filtrului invers, se utilizeaz criteriul:
[ ] [ ][ ] min f H g f
~
E = =
2
} { (58)
ceea ce duce la inversa generalizat:
[ ] [ ] [ ] [ ] [ ] g H H H f
~ t
1
t
) (

= (59)
Dac, corespunztor filtrului Wiener funcia de minimizat se alege:
[ ] { } [ ] [ ] [ ][ ]
2
2
2 1 2 1
ff
f H g f K K f
~
E
/ /
+ =

(60)
unde
ff
K i

K sunt matricile de covarian ale imaginii ideale i zgomotului, se obine


drept ecuaie de restaurare:
[ ] [ ] [ ] ( ) [ ] [ ] g H K K H H f
~ t
1
1
ff
t

+ =

(61)

3.5. Discuii asupra modelului discret al restaurrii.
Pentru studiul cazului discret, pentru simplitate, se consider (Gonzales[42]) mai nti
funcia (x,y) f unidimensional, eantionat uniform, astfel nct s se obin A eantioane.
Modelul matematic al degradrii ei presupune o convoluie cu (x) h , de asemenea o funcie
discret, dar avnd B valori. Evitarea depirii acestor domenii prin operaia de convoluie se face
definind extensiile lor:



=
1 M x A , 0
1 A x 0 (x),
(x)
e
pentru
pentru f
f (62)



=
1 M x C , 0
1 C x 0 (x),
(x)
e
pentru
pentru h
h (63)
periodice de perioad M. Atunci operaia de convoluie pentru cazul discret
unidimensional se scrie:

=
=
1 M
0 n
e e e
m) (x (m) (x) h f g (64)
Sau matriceal:
Hf g = (65)
adic:
3. Restaurarea imaginilor.
35

(
(
(
(
(
(

(
(
(
(
(
(


=
(
(
(
(
(
(

) 1 (M f
...
) 2 ( f
) 1 ( f
) 0 ( f
) 0 ( h ... ) 3 (M h ) 2 (M h ) 1 (M h
... ... ... ... ...
) 3 ( h ... ) 0 ( h ) 1 ( h ) 2 ( h
) 2 ( h ... ) 1 (M h ) 0 ( h ) 1 ( h
) 1 ( h ... ) 2 (M h ) 1 (M h ) 0 ( h
) 1 (M g
...
) 2 ( g
) 1 ( g
) 0 ( g
e
e
e
e
e e e e
e e e e
e e e e
e e e e
e
e
e
e
(66)
Matricea H avnd forma de mai sus se numete matrice circulant. Notnd:
(

+ +
(

+
(

+ )k 1 (M
M
j 2
) 1 ( h ... k 2
M
j 2
) 2 (M h k
M
j 2
) 1 (M h ) 0 ( h (k)
e e e e
exp exp exp i

T
)k 1 (M
M
j 2
... k 2
M
j 2
k
M
j 2
1 (k)
(

|
.
|

\
|

|
.
|

\
|
|
.
|

\
|
= exp exp exp w (67)
se poate demonstra relaia:
) k ( ) k ( ) k ( w Hw = (68)
care exprim faptul c (k) w sunt vectorii proprii ai matricii H, iar ) k ( sunt valorile ei
proprii. Construind matricea:
[ ] ) 1 (M ... ) 2 ( ) 1 ( ) 0 ( = w w w w W (69)
avnd elementele:

|
.
|

\
|
= ki
M
j 2
W(k,i) exp (70)
se poate arta c inversa ei are elementele date de:

|
.
|

\
|
=

ki
M
j 2
M
1
(k,i) W
1
exp (71)
Atunci matricea degradrii punctuale se poate exprima prin:

1
=WDW H (72)
cu D matrice diagonal, avnd:
(k) D(k,k) = (73)
i care se poate calcula prin:
HW W D
1
= (74)
Pentru cazul bidimensional extensiile funciei discrete (x,y) f care descrie imaginea i
respectiv (x,y) h care descrie degradarea punctual sunt:



=
1 N y B 1 M x A , 0
1 B y 0 1 A x 0 (x,y),
(x,y)
e
i pentru
i pentru f
f (75)



=
1 N y D 1 M x C , 0
1 D y 0 1 C x 0 (x,y),
(x,y)
e
i pentru
i pentru h
h (76)
Operaia de degradare a imaginii este modelat atunci de:
(x,y) n) m,y (x (m,n) (x,y)
e
1 M
0 m
1 N
0 n
e e e
n h f g + =

=
(77)
Relaia anterioar poate fi scris matriceal:
n + Hf g = (78)
unde:
3. Restaurarea imaginilor.
36

(
(
(
(
(
(


=
(0) H ... 3) (M H 2) (M H 1) (M H
... ... ... ... ...
(3) H ... (0) H (1) H (2) H
(2) H ... 1) (M H (0) H (1) H
(1) H ... 2) (M H 1) (M H (0) H
H
e e e e
e e e e
e e e e
e e e e
(79)
fiecare element al ei fiind o matrice circulant de forma:

(
(
(
(
(
(


=
) 0 (j, h ... ) 3 (j,N h ) 2 (j,N h ) 1 (j,N h
... ... ... ... ...
) 3 (j, h ... ) 0 (j, h ) 1 (j, h ) 2 (j, h
) 2 (j, h ... ) 1 (j,N h ) 0 (j, h ) 1 (j, h
) 1 (j, h ... ) 2 (j,N h ) 1 (j,N h ) 0 (j, h
e e e e
e e e e
e e e e
e e e e
k
H (80)
Matricea H este o matrice bloc-circulant. Notnd:

|
.
|

\
|
= im
M
j 2
(i,m) w
M
exp i
|
.
|

\
|
= kn
N
j 2
(k,n) w
N
exp (81)
se poate defini matricea de matrici:

(
(
(
(
(
(

=
) 1 ,M 1 (M ... ) 2 , 1 (M ) 1 , 1 (M ) 0 , 1 (M
... ... ... ... ...
) 1 ,M 2 ( ... ) 2 , 2 ( ) 1 , 2 ( ) 0 , 2 (
) 1 ,M 1 ( ... ) 2 , 1 ( ) 1 , 1 ( ) 0 , 1 (
) 1 ,M 0 ( ... ) 2 , 0 ( ) 1 , 0 ( ) 0 , 0 (
W W W W
W W W W
W W W W
W W W W
W (82)
unde:

N M
(i,m) w (i,m) W W = , cu (k,n) w (k,n)
N N
= W (83)
n continuare se poate demonstra c inversa matricii W se scrie sub forma:

(
(
(
(
(
(

) 1 ,M 1 (M ... ) 2 , 1 (M ) 1 , 1 (M ) 0 , 1 (M
... ... ... ... ...
) 1 ,M 2 ( ... ) 2 , 2 ( ) 1 , 2 ( ) 0 , 2 (
) 1 ,M 1 ( ... ) 2 , 1 ( ) 1 , 1 ( ) 0 , 1 (
) 1 ,M 0 ( ... ) 2 , 0 ( ) 1 , 0 ( ) 0 , 0 (
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1
W W W W
W W W W
W W W W
W W W W
W (84)
unde:

1
N
1
M
1
(i,m) w
M
1
(i,m)

= W W (85)
cu:

|
.
|

\
|
=

im
M
j 2
(i,m) w
1
M
exp (86)

|
.
|

\
|
= =

kn
N
j 2
N
1
(k,n) w
N
1
(k,n)
1
N
1
N
exp W (87)
Evident avem:

MN
1
I W W WW
1
= =

(88)
Ca urmare, se poate arta c matricea degradrii care afecteaz imaginea digital este:

1
= WDW H (89)
cu D matrice diagonal, ale crei elemente sunt valorile proprii ale matricii H. Rezult:
3. Restaurarea imaginilor.
37
HW W D
1
= (90)
n ipoteza absenei zgomotului, degradarea care afecteaz imaginea este descris de:
f WDW g
1
= (91)
de unde:
f DW g W
1 1
= (92)
Se remarc faptul c f W
1
este tocmai transformata Fourier discret a intrrii, iar g W
1

este transformata Fourier a semnalului imagine degradat, adic:

=
(

|
.
|

\
|
+ =
1 M
0 x
1 N
0 y
e
N
vy
M
ux
j 2 y x
MN
1
(u,v) exp ) , ( f F (93)

=
(

|
.
|

\
|
+ =
1 M
0 x
1 N
0 y
e
N
vy
M
ux
j 2 (x,y)
MN
1
(u,v) exp g G (94)
Notnd transformata Fourier discret bidimensional a zgomotului cu:

=
(

|
.
|

\
|
+ =
1 M
0 x
1 N
0 y
N
vy
M
ux
j 2 (x,y)
MN
1
(u,v) exp n N
e
(95)
iar
f W F
1
= i g W G
1
= (96)
rezult:
N DF G + = (97)
Importana expresiei de mai sus rezid n faptul c studiul degradrilor de "ntindere" mare
(descrise deci de sisteme de ecuaii de dimensiuni mari) se poate reduce la calculul ctorva
transformri Fourier discrete, pentru care algoritmul FFT furnizeaz o drastic reducere a
volumului de calcul.

3.6. Modificri geometrice ale imaginilor.
Printre cele mai des ntlnite operaii din imagistica computerizat se numr
transformrile geometrice.

3.6.1. Translaia, scalarea i rotaia imaginilor.
Operaia de translaie nseamn adugarea unui offset constant la coordonatele fiecrui
pixel din zona de interes. Ea poate fi exprimat fie sub forma unui sistem de ecuaii, fie (cel mai
adesea) sub form matriceal:

(

+
(

=
(

+ =
+ =
y
x
n
m
n
m
y n n
x m m
t
t
y
x
y
x
t y y
t x x
~
~
~
~
(98)
unde: -
n m
y , x sunt coordonatele punctului care se transleaz;
-
y x
t , t sunt offset-urile care definesc translaia;
-
n m
y
~
, x
~
sunt noile coordonate ale pixelului ) n , m ( .
Dac toate aceste valori sunt ntregi, operaia este reversibil. Pentru
y x
t , t nentregi este
necesar interpolarea lui ) y , x ( f pentru a obine imaginea translat.
Scalarea se realizeaz modificnd coordonatele pixelilor dup regula:

(

=
(

=
=
n
m
y
x
n
m
j y n
m x m
y
x
s 0
0 s
y
x
y s y
x s x
~
~
~
~
(99)
unde
y x
s , s sunt constantele de scalare. Dac avem 1 s , s
y x
> , se obine o mrire a
imaginii, n caz contrar ea se micoreaz. n ambele cazuri este necesar operaia de interpolare.
3. Restaurarea imaginilor.
38
Rotaia este descris de:

(


=
(

+ =
=
n
m
n
m
n m n
n m m
y
x
y
x
y x y
y x x




cos sin
sin cos
~
~
cos sin
~
sin cos
~
(100)
unde este unghiul cu care se face rotaia n jurul originii, n sens trigonometric i n
raport cu axa Ox.
Operaiile descrise pn acum se pot sintetiza ntr-o singur relaie matriceal, cnd este
cunoscut ordinea de aplicare a acestor transformri. Pentru cazul unei translaii urmat de o
rotaie, avem urmtoarea relaie liniar:

(


+
(


=
(

y
x
y
x
n
m
y
x
n
m
t
t
s 0
0 s
y
x
s 0
0 s
y
x




cos sin
sin cos
cos sin
sin cos
~
~
(101)
care traduce practic rotaia imaginii n jurul unui "pivot" dat de operaia de translaie.
Trecnd n spaiul extins al coordonatelor, rotaia n jurul "pivotului" ) ,y (x
p p
este:

(
(
(

(
(
(


+ +
=
(
(
(

1
y
x
1 0 0
y y x
x y x
1
y
x
n
m
p p p
p p p
n
m


cos sin cos sin
sin cos sin cos
~
~
(102)
i analog translaia i scalarea:

(
(
(

(
(
(

=
(
(
(

1
y
x
1 0 0
t 1 0
t 0 1
1
y
x
n
m
y
x
n
m
~
~

(
(
(

(
(
(

=
(
(
(

1
y
x
1 0 0
0 s 0
0 0 s
1
y
x
n
m
y
x
n
m
~
~
(103)
De remarcat c, n anumite condiii, operaia de rotaie a unei imagini poate fi aproximat
cu o transformare separabil, astfel:

+
(

+
=
=


cos sin
cos
sin
~
~
sin cos
~
n
n m
n
n m m
y
y x
y
y x x
(104)
n primul pas al transformrii se face calculul lui
m
x
~
, rezultnd o imagine independent de
m
x , dup care rotaia se completeaz cu a doua formul. Pentru unghiuri apropiate de /2,
operaia nu este recomandabil deoarece se produce o scdere considerabil a rezoluiei.
Transformarea este util, de exemplu, la "ndreptarea" paginilor scanate puin nclinate
(rotite cu cteva grade), tiut fiind faptul c, cel mai adesea, trsturile care se extrag din
imaginile textelor tiprite nu sunt invariante la rotaie.

3.6.2. Deformri geometrice polinomiale.
Deformrile geometrice ale imaginilor se utilizeaz fie pentru obinerea unor efecte
speciale, fie pentru compensarea unor distorsiuni geometrice cunoscute. Ele pot fi descrise
generic de:

=
=
) ,y (x y
) ,y (x x
n m n
n m m
Y
~
X
~
(105)
Foarte des utilizate sunt deformrile geometrice polinomiale de ordinul doi, descrise de
urmtoarele relaii:

+ + + + + =
+ + + + + =
2
n 5 n m 4
2
m 3 n 2 m 1 0 n
2
n 5 n m 4
2
m 3 n 2 m 1 0 m
y b y x b x b y b x b b y
y a y x a x a y a x a a x
~
~
(106)
care pot fi exprimate i matriceal prin:
3. Restaurarea imaginilor.
39
[ ]
t
2
n n m
2
m n m
5 4 3 2 1 0
5 4 3 2 1 0
n
m
y y x x y x 1
b b b b b b
a a a a a a
y
x
(

=
(

~
~
(107)
Constantele
5 4 3 2 1 0
a , a , a , a , a , a i respectiv
5 4 3 2 1 0
b , b , b , b , b , b se determin cunoscnd
coordonatele n imaginea transformat ale unui set de M pixeli.
Notnd:
[ ]
M 2 1
x x x ... x = [ ]
M 2 1
y y y ... y = (108)
[ ]
5 4 3 2 1
a a a a a = a [ ]
5 4 3 2 1
b b b b b = b

eroarea medie ptratic dintre imaginile transformate real i ideal este:
) ( ) ( ) ( ) (
t t 2
Ab y Ab y Aa x Aa x + = (109)
unde :

(
(
(
(

=
2
M M M
2
M M M
2
2 2 2
2
2 2 2
2
1 1 1
2
1 1 1
y y x x y x 1
y y x x y x 1
y y x x y x 1
... ... ... ... ... ...
A (110)
Se demonstreaz c eroarea este minim dac:
x A A A a
t 1 t
) (

= y A A A b
t 1 t
) (

= (111)
unde se remarc utilizarea inversei generalizate a matricii A:

t 1 t
) ( A A A A

= (112)
Cteva exemple de imagini distorsionate geometric sunt date n continuare:


3. Restaurarea imaginilor.
40
3.6.3. Proiecia paralel i proiecia perspectiv.
Pentru proiecia paralel caracteristic este faptul c toate razele de proiecie sunt paralele
ntre ele.
x
~


x
y
z
0
y
z
~
~
~
0

Fig. 10. Principiul proieciei paralele.
Din studiul schemei precedente se remarc faptul c proiecia paralel se poate reduce la o
simpl schimbare de coordonate i anume o rotaie n jurul axei Oz cu un unghi , urmat de o
rotaie cu unghiul n jurul noii axe Oy'.

(
(
(

(
(
(


(
(
(


=
(
(
(

z
y
x
1 0 0
0
0
0
0 1 0
0
z
y
x




cos sin
sin cos
cos sin
sin cos
~
~
~
(113)

(
(
(

(
(
(


=
(
(
(

z
y
x
0
z
y
x



cos sin sin sin cos
cos sin
sin cos sin cos cos
~
~
~
(114)

Exemple de proiecii paralele.

3. Restaurarea imaginilor.
41


n figurile anterioare sunt prezentate proieciile paralele pentru cteva suprafee: sfer, tor
i banda Moebius.
Trecnd la coordonate ecran avem:

(
(
(

=
(

z
y
x
0
y
x
x
s


cos sin sin sin cos
cos sin
(115)
Proiecia perspectiv este mult mai apropiat de cazul real al observrii realitii prin
intermediul unui sistem optic tipic. Geometria ei este descris n urmtoarea schem, n care
) z , y , x ( sunt coordonatele punctului curent din spaiu, ) y , x (
p p
sunt coordonatele proieciei lui
n planul imaginii, iar f este distana focal a sistemului de lentile:
(x ,y )
0
y ,y
x ,x
f
(x,y,z)
z
p p
p
p

Fig. 11. Principiul proieciei perspective.
3. Restaurarea imaginilor.
42
Se pot scrie imediat relaiile:
z f
fx
x
p

= i
z f
fy
y
p

= (116)
Trecnd la coordonate omogene Roberts n [91] deduce urmtoarea formul de proiecie
perspectiv:
[ ]
(


=
z f
fz
z f
fy
z f
fx
z y x
p p p
(117)
din care evident, intereseaz n marea majoritate a cazurilor doar ) y , x (
p p
.

3.6.4. Modelul capturii unei imagini cu o camera de luat vederi.
Modelul geometric clasic al utilizrii unei camere de luat vederi (Fu[41]) poate fi discutat
utiliznd figura urmtoare:

0
x
z
y
c
y
z
x
c
c



Fig. 12. Modelul geometric al camerei de luat vederi.

unde ) ,z ,y (x
c c c
sunt coordonatele centrului articulaiei cardanice pe care se sprijin
camera de luat vederi. Fa de aceste coordonate, centrul imaginii plane (planul de proiecie) se
obine adugnd offset-ul ) ,z ,y (x
0 0 0
, printr-o operaie de translaie. Fa de ) ,z ,y (x
c c c
, planul de
proiecie poate fi rotit, datorit articulaiei cardanice, cu unghiul n plan orizontal (raportat la
axa 0x) i cu unghiul n plan vertical. Adugnd la toate acestea proiecia perspectiv a
obiectelor vizualizate prin camer, se obin relaiile:

0 c c c
0 c c
p
z ) z (z ) y (y ) x (x f
]f x ) y (y ) x [(x
x
+

=
cos sin cos sin sin
sin cos


(118)

0 c c c
0 c c c
p
z ) z (z ) y (y ) x (x f
]f y ) z (z ) y (y ) x [(x
y
+
+
=
cos sin cos sin sin
sin cos cos cos sin


(119)

3.6.5. Reeantionarea geometric a imaginilor.
Dup cum s-a menionat la discuiile asupra operaiei de scalare, n cazul discret, de cele
mai multe ori este necesar o interpolare pentru reconstrucia imaginii scalate, ceea ce este
echivalent cu reeantionarea imaginii continue iniiale, pentru a obine noua imagine scalat.
Acest proces de reeantionare nseamn atribuirea unor noi valori pixelilor din noua gril de
eantionare, funcie de valorile pixelilor corespunztori din vechea gril:

3. Restaurarea imaginilor.
43
f(x,y) f(x+1,y)
f(x,y+1) f(x+1,y+1)
f(x,y)
~ ~
a
b

Fig. 13. Reeantionarea geometric a imaginilor.

Cea mai simpl soluie este folosirea unui interpolator bilinear, descris de urmtoarea
relaie:
] 1 ,q 1 (p b ,y) 1 (x b) 1 a[( )] 1 (p,q b (x,y) b) 1 a)[( 1 ( ) y , x ( + + + + + + + = f f f f
~ ~
f (120)
Ea poate fi generalizat folosind o funcie de interpolare ) x ( R i pixelii dintr-o vecintate
(de obicei maximum 4x4) a imaginii iniiale.


= =
+ + =
2
1 m
2
1 n
b) (n a) (m n) m,y (x ) y , x ( R R f
~ ~
f (121)
Pentru mrirea imaginilor cu un factor ntreg exist algoritmi care se bazeaz pe utilizarea
operaiei de convoluie. Imaginea iniial este adus mai nti la dimensiunea ZMxZN , unde Z
este factorul ntreg de mrire, astfel nct:

=
= =
=
Zy y Zx, x , 0
Zy y Zx, x (x,y),
) y , x (
~ ~
~ ~
f
~ ~
f
~
pentru
pentru
(122)
dup care este supus unei convoluii cu o masc convenabil aleas. Pentru 2 Z = se
poate folosi una din mtile:
(

=
1 1
1 1
M
1

(
(
(

=
1 2 1
2 4 2
1 2 1
4
1
M
2

(
(
(
(

=
1 3 3 1
3 9 9 3
3 9 9 3
1 3 3 1
16
1
M
3

(
(
(
(
(
(

=
1 4 6 4 1
4 16 24 16 4
6 24 36 24 6
4 16 24 16 4
1 4 6 4 1
64
1
M
4
(123)
Pentru cazul reeantionrii unei imagini cu un factor raional Q / P Z = , o transformare
original poate fi folosit (Bulea[21],[23]). Eficiena ei const n faptul c pentru efectuarea ei
sunt necesare doar operaii cu numere ntregi. Cu ct numerele P i Q sunt mai mici, cu att viteza
de operare este mai mare. n continuare sunt prezentate exemple de utilizare a acestui algoritm,
pentru cazul unei imagini 10x14 care se dorete adus la dimensiunile 4x5. Deci 4 / 10 Z(x) = , iar
5 / 14 Z(y) = . Modul de funcionare al algoritmului rezult din figurile urmtoare:

3. Restaurarea imaginilor.
44

Fig. 14. Reeantionarea geometric cu factor raional.

Deci se realizeaz transformarea: ==>

3.7. Compensarea distorsiunilor de nelinearitate i a celor de spectru al luminii.
Studiul modelului general al degradrii imaginii a dus la concluzia prezenei unor
nelineariti care nu au fost luate n consideraie pn acum. Modelul general al procesului de
degradare a imaginii fiind:
(x,y) (x,y) (x,y))] ( [ y x x )d y , x ( ) y , x (x,y; (x,y)
2 1
w g s f h d g + +
(


(124)
s-au fcut observaiile c funcia nelinear ) ( d modeleaz nelinearitile introduse de
blocul de detecie a imaginii, iar zgomotul conine dou componente dintre care una dependent
de semnal prin intermediul nelinearitii ) ( s , care modeleaz blocul de nregistrare a imaginii.
Condiia esenial pe care trebuie s o ndeplineasc nelinearitile menionate pentru a
putea fi compensate este ca ele s fie descrise de funcii bijective pe domeniul de definiie, caz n
care se poate defini inversa acestor funcii. Astfel dac:
(x,y)] [ (x,y) f d g = (125)
i funcia ) ( d este bijectiv, exist inversa ei ) (
1

d i avem:
(x,y)] [ (x,y)
1
g d f

= (126)
n practic, adesea mai trebuie adus o corecie de scar, dup cum rezult din figurile
urmtoare:
Pmin Pmax 0
p
q
Qmax
q=d(p)

Pmax-Pmin
0
p
q
Qmax
p=d (q)
-1
~

Fig. 15. Compensarea distorsiunilor de nelinearitate.
3. Restaurarea imaginilor.
45

max min d P p (p),P q = ==>
MIN
MIN MAX
MIN
1
P
P P
P (q)
p +

d
~
(127)
Pentru determinarea alurii acestor nelineariti se utilizeaz imagini de test construite
special, astfel nct, prin msurtori, s se poat deduce dependena intrare-ieire dorit.
Implementarea practic a dispozitivului de corecie se poate face analogic (mai rar), caz n
care este necesar proiectarea unui circuit nelinear cu rspunsul dat de inversa nelinearitii care
afecteaz imaginea. Implementarea digital a circuitului de corecie se traduce printr-un dispozitiv
de tip memorie LUT (Look Up Table) care s translateze codurile care i se aplic la intrare.

LUT(Look Up Table)
Tabel corecie
nelinearitate
g(x,y) f(x,y)
ncrcare
tabel

Fig. 15. Memoria LUT (Look Up Table).

Un alt tip de corecii se refer la coreciile nelinearitilor datorate rspunsului specific al
senzorilor de imagine la spectrul luminii incidente (OHandley[78]), respectiv al dispozitivelor de
afiare.
Astfel, pentru cazul senzorilor, luminana curent furnizat de acetia este descris de:

)d ( ) ( S C L (128)
unde: este lungimea de und a radiaiei luminoase incidente,
) ( C este energia spectral a luminii incidente, iar
) ( S este rspunsul spectral al senzorului.
Dac rspunsul dorit este:

)d ( ) ( S
~
C L
~
(129)
n ipoteza minimizrii erorii medii ptratice date de:

2
d )] ( ) ( [ L
~
L e (130)
se va cuta o dependen de forma:
) ( L f L
~
= (131)
Cel mai adesea, pentru simplitate, se caut parametrii unei dependene liniare:
b ) ( a ) ( + = S L
~
(132)
Compensarea distorsiunilor de spectru se rezolv la fel i pentru cazul afirii imaginii. n
cazul imaginilor color problema se complic, fiind necesare corecii pentru fiecare component de
culoare n parte.

4. Detecia muchiilor, liniilor i spoturilor.
47





4. Detecia muchiilor, liniilor i spoturilor.




4.1. Metode spaiale de detecie a muchiilor.
4.1.1. Metode bazate pe operatori de difereniere de ordinul unu.
4.1.2. Metode bazate pe operatori de difereniere de ordinul doi.
4.2. Metode regionale de detecie a muchiilor.
4.3. Metode statistice de detecie a muchiilor.
4.3.1. Clasificarea statistic a pixelilor.
4.3.2. Metode regionale de clasificare a pixelilor.
4.3.3. Tehnici relaxaionale.
4.4. Detecia muchiilor tridimensionale.
4.5. Alte metode de detecie a muchiilor.
4.6. Algoritmi de extragere a contururilor.
4.6.1. Algoritmi de urmrire de contur.
4.6.2. nlnuirea elementelor de contur.
4.6.3. Reprezentarea contururilor.
4.7. Detecia liniilor i a spoturilor.
4.8. Detalii de implementare.




4.1. Metode spaiale de detecie a muchiilor.
Principiul deteciei de muchii rezult destul de clar studiind cazul unidimensional
prezentat n figura urmtoare. Principial, detecia unei muchii se traduce prin localizarea
variaiilor brute n semnalul de intrare.
t
t

F(t)
| F(t)|

Fig. 1. Principiul deteciei de muchii.

4.1.1. Metode bazate pe operatori de difereniere de ordinul unu.
n cazul imaginilor continue, dup cum s-a artat deja la accentuarea de muchii, toat
informaia privind variaiile locale de luminozitate este concentrat n vectorul gradient:
4. Detecia muchiilor, liniilor i spoturilor.
48
j
y
(x,y)
i
x
(x,y)
(x,y)
2 2
r r

f f
f + = (1)
Operatorul de detecie de muchii trebuie s fie izotrop, pentru a rspunde similar n
prezena muchiilor avnd orientri diferite. Se poate demonstra uor c modulul gradientului este
izotrop.
Pentru cazul discret se folosesc aproximaiile urmtoare :
(x,y) ,y) 1 (x (x,y)
x
f f f + =
(x,y) ) 1 (x,y (x,y)
y
f f f + = (2)
sau uneori se apeleaz la forme simetrice ale diferenelor finite:
,y) 1 (x ,y) 1 (x (x,y)
x
+ = f f f
) 1 (x,y ) 1 (x,y (x,y)
y
+ = f f f (3)
Deci se poate folosi drept detector de muchii modulul gradientului discret:

2
y
2
x 1
(x,y)] [ (x,y)] [ f f G + = (4)
Se pot utiliza cu succes aproximri ale gradientului discret care nu mai sunt izotrope, n
schimb se calculeaz mult mai repede:
(x,y)| | (x,y)| |
y x 2
f f G + = (5)
(x,y)|) | (x,y)| (|
y x 3
f f max G + = (6)
} 1 , 0 , 1 { n)|), m,n m,y (x (x,y) (|
4
+ + = f f max G (7)
,y)|) 1 (x ) 1 (x,y )|,| 1 ,y 1 (x (x,y) (|
5
+ + + + = f f f f max G (8)
care este denumit gradientul Roberts, i care poate fi exprimat prin intermediul
convoluiilor cu mtile:

(

=
1 0
0 1
R
1

(


=
0 1
1 0
R
2
(9)
Modul de operare n cazul mtilor este cel cunoscut: se calculeaz cele dou rezultate ale
operaiilor cu mtile de mai sus, se afl modulul lor i se reine valoarea maxim.
Ali gradieni definii prin mti 3x3 sunt Prewitt, Sobel i Frei-Chen, dai prin mtile
corespunztoare muchiilor verticale descresctoare de la stnga la dreapta:

(
(
(

=
1 0 1
1 0 1
1 0 1
3
1
P
1

(
(
(

=
1 0 1
2 0 2
1 0 1
4
1
S
1

(
(
(

+
=
1 0 1
2 0 2
1 0 1
2 2
1
F
1
(10)
Frei i Chen n [40] propun descompunerea vecintii 3x3 care conine pixelul curent,
folosind urmtoarea baz ortogonal:
(
(
(

=
1 1 1
1 1 1
1 1 1
H
0

(
(
(

=
1 0 1
2 0 2
1 0 1
H
1
(
(
(

=
0 1 2
1 0 1
2 1 0
H
3
(
(
(

=
0 1 0
1 0 1
0 1 0
H
5
(
(
(

=
1 2 1
2 4 2
1 2 1
H
7

4. Detecia muchiilor, liniilor i spoturilor.
49
(
(
(


=
1 2 1
0 0 0
1 2 1
H
2
(
(
(

=
2 1 0
1 0 1
0 1 2
H
4
(
(
(

=
1 0 1
0 0 0
1 0 1
H
6
(
(
(



=
2 1 2
1 4 1
2 1 2
H
8
(11)
Descompunerea care rezult este de forma:

=
=
8
0 k
k k k
H / H f ) X f( (12)
unde: X - vecintatea 3x3 curent;

= =
i j
k j i k k
y x H ) , f( H ), X f( f (13)

k k k
H H H , = (14)
Se remarc din structura bazei faptul c, practic, informaii privind muchiile sunt coninute
doar n coeficienii unu i doi ai dezvoltrii, deci n:

=
=
2
1 k
2
k
E f (15)
Normalizarea valorii obinute se face cu valoarea:

=
=
8
1 k
2
k
S f (16)
ceea ce are ca efect minimizarea efectelor zgomotelor. Se obine o evaluare a "triei"
muchiei calculnd:
S E / cos = (17)
Stabilind pragul T, regula de decizie este n acest caz:


>
prezent muchie
absent muchie
T
T

(18)
n aceeai clas de operatori spaiali pentru detecie de muchii intr aa-numitele abloane
(prototipuri) pentru detecia de muchii. Ele se bazeaz pe calculul modulului gradientului discret
ntr-un numr mare de direcii, cu reinerea valorii maxime:
(x,y)|] ,| (x,y)|,... (x,y)|,| [| (x,y)
K 2 1
G G G max G = (19)
Astfel se construiete un alt set de detectori de muchii, dintre care mai cunoscui sunt
Kirsh i Compass, dai prin mtile de referin urmtoare:

(
(
(


=
3 3 5
3 0 5
3 3 5
15
1
K
1

(
(
(

=
1 1 1
1 2 1
1 1 1
5
1
C
1
(20)
Restul mtilor se obin prin rotirea elementelor mtii date n jurul elementului central.
Rezult astfel un numr de pn la 8 mti direcionale, fiecare responsabil de muchiile avnd o
anume direcie. Se pot defini analog mti de detecie muchii avnd dimensiuni mai mari: 5x5,
7x7, 9x9.
Tot mti de dimensiuni mai mari se pot construi astfel nct ele s includ practic, ntr-o
singur masc (masc compus), o operaie de netezire a imaginii urmat de o detecie de
muchii. Astfel, masca echivalent unei neteziri cu masca M
5
, urmat de un operator Prewitt
pentru muchii verticale rezult:
4. Detecia muchiilor, liniilor i spoturilor.
50

(
(
(
(
(
(

(
(
(

(
(
(

1 1 0 1 1
2 2 0 2 2
3 3 0 3 3
2 2 0 2 2
1 1 0 1 1
18
1
1 0 1
1 0 1
1 0 1
3
1
1 1 1
1 1 1
1 1 1
9
1
(21)
Evident, pot fi utilizate o multitudine de combinaii de asemenea operatori pentru netezire
i extragere de muchii.
Argyle [05] i Macleod [67] au propus utilizarea unor vecinti mari cu mti de netezire
construite dup o lege gaussian bidimensional, compuse cu operatori de detecie de muchii de
aceeai dimensiune.
DroG (Derivative of Gaussian) este denumirea unui alt operator compus, definit de
rspunsul la impuls:
) (y, ) (x,

x
x
)] (y, ) (x, [
(x,y)
y x
2
x
y x
0
g g
g g
h = =

(22)
unde:

|
|
.
|

\
|
=
2
x
2
x
x
2
x
2
1
) (x, exp g
|
|
.
|

\
|
=
2
y
2
y
y
2
y
2
1
) (x, exp g (23)
Muchiile se extrag cu:
(x,y) (x,y) (x,y)
0
h f f
~
= (24)
Canny [29] este cel care a dezvoltat o procedur sistematic de evaluare a performanelor
unui detector de muchii, lund n considerare pentru aceasta trei elemente: detecia propriu-zis a
muchiei, precizia localizrii ei i unicitatea rspunsului (pentru a evita cazurile de dublare a
muchiilor detectate).

4.1.2. Metode bazate pe operatori de difereniere de ordinul doi.
O alt categorie de metode are la baz folosirea operatorilor discrei de difereniere, de
ordinul doi, care aproximeaz Laplacianul:

2
2
2
2
y
(x,y)
x
(x,y)
(x,y)

f f
f + = (25)
Aproximrile discrete ale Laplacianului se traduc prin operaii cu una din mtile:

(
(
(

=
0 1 0
1 4 1
0 1 0
L
1

(
(
(




=
1 1 1
1 8 1
1 1 1
L
2

(
(
(



=
2 1 2
1 4 1
2 1 2
L
3
(26)
Trecerile prin zero ale operatorilor de difereniere de ordinul doi pot fi utilizate pentru
detecia muchiilor:
t
t

F ( t )
| F ( t ) |
t

F ( t )

Fig. 2. Operatori de difereniere de ordinul doi.
4. Detecia muchiilor, liniilor i spoturilor.
51
Marr i Hildrith n [68] au propus utilizarea operatorului LoG (Laplacian of Gaussian)
pentru estimarea Laplacianului discret, dup o procedur similar operatorului DroG, adic:
(x,y)} (x,y) { (x,y)
1
h f f
~
= (27)
) (y, ) (x, (x,y)
1
g g h = (28)
Din proprietile produsului de convoluie obinem:
(x,y) (x,y) )} (y, ) (x, { (x,y)* (x,y)
L y x
h f g g f f
~
= = (29)
Se obine n final rspunsul la impuls al filtrului de estimare a Laplacianului:

|
|
.
|

\
| +

+
=
2
2 2
2
2 2
4
L
2
y x
2
y x
1

1
(x,y) exp h (30)
a crui reprezentare grafic se numete "plria mexican":


Fig. 3. Rspunsul la impuls al filtrului de estimare a Laplacianului.

Detecia trecerilor prin zero ale Laplacianului se poate face folosind metoda sistematic
dezvoltat de Huertas i Medioni n [53]. Ei furnizeaz un catalog al situaiilor care constituie
"treceri prin zero" ale Laplacianului estimat anterior:

+
+
- +
+
+
-
+ +
+
+
+
+ -
+
+
+
+ +
-
+
-
- +
+
+
-
+ -
+
+
+
+ -
-
+
+
- +
-
+
-
- +
-
+
-
- -
+
+
-
+ -
-
+
+
- -
-
-
-
- +
-
-
-
- -
+
-
-
+ -
-
-
+
- -
-

Fig. 4. Detecia trecerilor prin zero ale Laplacianului.

4. Detecia muchiilor, liniilor i spoturilor.
52
unde pixelii notai "+" semnific valoare 0 pentru pixel, iar cei marcai cu "-" nseamn
valoare 0. Algoritmul furnizeaz i informaii privind direcia muchiilor detectate i poate fi
implementat eficient folosind operatori morfologici.
O alt soluie (Robinson[92]) const n estimarea iniial a direciei muchiei, urmat de
calculul derivatei unidimensionale de ordinul doi n lungul muchiei. Aceast derivat are
expresia:

y
(x,y)

y x
(x,y)

x
(x,y)
(x,y)
2
2
2 2
2
2
2
sin
f
cos sin
f
cos
f
f

+ + = (31)
unde este unghiul ntre direcia muchiei i abscis. Haralick n [44] utilizeaz pentru
determinarea lui i a derivatei de ordinul doi n aceast direcie o metod care are la baz
aproximarea lui (x,y) f cu un polinom cuadratic.

4.2. Metode regionale de detecie a muchiilor.
O muchie ideal poate fi asimilat cu cea din figura urmtoare, urmnd ca mai apoi s se
parcurg imaginea cu o fereastr circular de raz R, ncercnd s se determine parametrii
muchiei din condiia de "potrivire" optim a imaginii i modelului.



+ +
< +
=
) y (x h, b
) y (x b,
(x,y)
sin cos
sin cos
f
pentru
pentru
(32)




Modelul anterior se poate generaliza i pentru detecia liniilor din imagine, folosind:


+ <
+
< +
=
) y (x d,
) y (x c,
) y (x b,
(x,y)
2
2 1
1
sin cos
sin cos
sin cos
f
pentru
pentru
pentru
(33)




Modelul este caracterizat de nivelele de gri "b" i "b+h", de o parte i de alta a muchiei,
orientarea muchiei fiind dat de unghiul "" i distana "" fa de centrul ferestrei circulare.
"Potrivirea" se traduce prin minimizarea erorii medii ptratice:

=
C x,y
2 2
dx dy )] , (x,y,b,h, (x,y) [ e s f (34)
sau pentru cazul discret:

=
C x,y
2 2
dy dx )] , (x,y,b,h, (x,y) [ e s f (35)
din minimizarea creia ar urma s se deduc elementele necunoscute , , h , b .
4. Detecia muchiilor, liniilor i spoturilor.
53
Hueckel n [52] propune descompunerea lui (x,y) f i respectiv ) , (x,y,b,h, s ntr-o serie
folosind drept baz funciile ortogonale din setul urmtor:



+
H0 H1 H2 H3 H4 H5 H6 H7
+
+
+
+
+ +
+
+
+
+
+ +
- -
-
-
-
-
-
-
- -
-
H8
+
-

Fig. 5. Setul de funcii ortogonale Hueckel.

Coeficienii acestei descompuneri sunt:
y (x,y) dx d (x,y) F
i
C x,y
i
H f

= (36)

=
C x,y
i i
y (x,y) dx d (x,y) S H s (37)
i ca urmare minimizarea erorii medii ptratice este echivalent cu minimizarea lui:

2
i
i i
2
) S (F E

= (38)


4.3. Metode statistice de detecie a muchiilor.
4.3.1. Clasificarea statistic a pixelilor.
Fie
M
P probabilitatea aprioric ca un pixel oarecare al imaginii s aparin unei muchii,
iar
M U
P 1 P = probabilitatea ca un pixel al imaginii s nu fie pixel de muchie, deci s aparin
unei zone relativ uniforme.
Vom nota M) ) (x,y)/(x,y ( (x,y)] [
M
= G p G p probabilitatea ca un pixel avnd gradientul
(x,y) G s fie pixel de muchie, iar cu M) ) (x,y)/(x,y ( (x,y)] [
U
= G p G p probabilitatea ca un
pixel avnd gradientul (x,y) G s nu fie pixel de muchie. Ele au semnificaia unor densiti de
probabilitate.
Atunci (x,y)] [ P
M M
G p este probabilitatea ca un pixel oarecare al imaginii s aparin
unei muchii, iar (x,y)] [ P
U U
G p este probabilitatea ca aceai pixel s nu aparin unei muchii.
Probabilitatea global de clasificare eronat a pixelilor din imagine este:


+
+ =
T
0 T
U U M M E
(G)dG P (G)dG P p p P (39)
Alegnd pragul astfel nct probabilitatea global de eroare s fie minim rezult
(Rosenfeld[94]):
(T) P (T) P
U U M M
p p = (40)
Abdou i Pratt [01] au determinat valorile T,
M
P i
U
P pentru diferii gradieni i n
prezena zgomotelor avnd diferite caracteristici.



4.3.2. Metode regionale de clasificare statistic.
4. Detecia muchiilor, liniilor i spoturilor.
54
O prim metod a fost propus de Yakimovski n [113] i const n verificarea unor
ipoteze statistice la nivel regional.
Fie dou regiuni adiacente, de form oarecare. Din studiul caracteristicilor lor statistice, se
ia decizia c ele aparin unei aceleiai regiuni relativ uniforme sau exist o muchie la grania
dintre ele.

m
1
m
2
1
2


muchie prezent muchie absent Regiunea 1 Regiunea 2
M'
M


Reuniunea celor dou regiuni are M pixeli i este caracterizat de o medie i o dispersie
date de:
) ,y (x
M
1
m
i
M
1 i
i
=
= f

=
=
M
1 i
2
i i
2
m] ) ,y (x [
M
1
f (41)
Fiecare regiune n parte (avnd M' i respectiv M'' pixeli) este caracterizat de mediile:
) ,y (x
M
1
m
) 1 (
i
M
1 i
) 1 (
i 1

= f ) ,y (x
M
1
m
) 2 (
i
M
1 i
) 2 (
i 2

=

= f (42)
i de dispersiile:

=
M
1 i
2
1
) 1 (
i
) 1 (
i
2
1
] m ) ,y (x [
M
1
f


=
M
1 i
2
2
) 2 (
i
) 2 (
i
2
2
] m ) ,y (x [
M
1
f (43)
n ipoteza unei distribuii normale a nivelelor de gri n interiorul regiunilor, regula de
decizie care se obine este:


>


prezent) (muchie distincte regiuni
absent) (muchie regiune singur o
M M
2
M
1
M M
2
M
1


(44)
ceea ce constituie i regula de segmentare.

4.3.3. Tehnici relaxaionale.
Relaxarea este o metod iterativ care permite gruparea pe baze probabilistice a unui
numr de obiecte n clase (Rogers[93]). Clasificarea este mbuntit n fiecare pas prin
verificarea unor ipoteze de compatibilitate relative la rezultatele obinute n pasul anterior.
Fie ) ,...,A (A
S 1
un set de obiecte care trebuiesc clasificate probabilistic ntr-un numr de C
clase ) ,..., (
C 1
. Obiectele pot fi muchii, linii, curbe, regiuni, etc., n cazul prelucrrii de
imagini.
Fiecare obiect
j
A are un set de vecini } {A
j
. Vom ataa fiecrui obiect un vector
) ,...,P (P
jC 1 j
, astfel nct
jk
P s fie probabilitatea ca obiectul
j
A s aparin clasei
k
. Valoarea
iniial a acestor probabiliti poate fi obinut prin metode convenionale (o estimaie a
modulului gradientului pentru cazul deteciei de muchii).
Pentru fiecare pereche de obiecte ) ,A (A
j i
i pentru fiecare pereche de clase ) , (
n m

trebuie definit o msur a compatibilitii afirmaiilor (ipotezelor):

n j
m i
A
A
clasa n inclus obiectul
clasa n inclus obiectul
(45)
4. Detecia muchiilor, liniilor i spoturilor.
55
Aceast funcie de compatibilitate, notat ) , ;A , (A
n j m i
r , ia valori n domeniul [-1,+1] i
trebuie s respecte urmtoarele condiii:

+ =
=
=
e compatibil perfect ipoteze
irelevante ipoteze
ile incompatib total ipoteze
1 ) , ;A , (A
0 ) , ;A , (A
1 ) , ;A , (A
n j m i
n j m i
n j m i
r
r
r
(46)
Funcia de compatibilitate va fi folosit, alturi de probabilitile ataate obiectelor vecine,
pentru ajustarea probabilitilor corespunztoare obiectului curent.
Folosind notaiile:

im
P - probabilitatea ca obiectul
i
A s aparin clasei
m
;

jn
P - probabilitatea ca obiectul
j
A s aparin clasei
n
;
regulile de ajustare a probabilitilor pot fi scrise explicit astfel:
1. Dac
im
P este mare i ) , ;A , (A
n j m i
r este apropiat de "+1", atunci
jn
P trebuie mrit.
2. Dac
im
P este mic i ) , ;A , (A
n j m i
r este apropiat de "-1", atunci
jn
P trebuie
micorat.
3. Dac
im
P este mic i ) , ;A , (A
n j m i
r este apropiat de "0", atunci
jn
P nu trebuie
modificat semnificativ.
Aceste reguli pot fi sintetizate prin ajustarea (aditiv) a probabilitilor
jn
P proporional
cu:
) , ;A , (A P
n j m i im
r
Dar ajustarea efectiv a probabilitii
jn
P corespunztoare unui obiect se face innd cont
de toate ipotezele posibile pentru
im
P , adic toi vecinii obiectului curent
j
A i toate clasele la
care aceti vecini pot aparine. Deoarece se dorete cel mai adesea o ajustare multiplicativ
ajustarea se va face prin:

(

+ = +

= j i
C
n ,m 1 m
n j m i im i jn jn
) , ;A , (A P w 1 (t) P ) 1 (t P r (47)
Mai rmne de eliminat un singur neajuns care deriv din relaia 1 P
C
1 n
jn
=

=
, care trebuie
ndeplinit necondiionat. Ca urmare este necesar o renormalizare a lui
jn
P dup fiecare ajustare.
n concluzie avem:

[ ]
(
(
(
(

+
+ = +

=
C
1 n
jn
jn
jn jn
(t) 1
(t)
1 (t) P ) 1 (t P
Q
Q
, (48)
unde:


=
=
j i
C
n ,m 1 m
n j m i im i jn
) , ;A , (A P w (t) r Q (49)
n cazul practic al deteciei de muchii, obiectele ) ,...,A (A
S 1
care trebuiesc clasificate sunt
pixelii dintr-o imagine i exist doar dou clase:

absent muchie
prezent muchie
2
1
C
C
(50)
4. Detecia muchiilor, liniilor i spoturilor.
56
Pentru nceput, probabilitile
i
P ataate fiecrui pixel (
i 1 i 2 i
P 1 P 1 P = = ) se seteaz la
o valoare proporional cu amplitudinea furnizat de un gradient clasic:

(x,y)
(x,y)
) 0 ( P
x,y
i
g max
g
= (51)
Prin aceleai metode clasice se estimeaz de asemenea unghiul care d direcia muchiei n
punctul (pixelul) respectiv.
Probabilitile
i
P se ajusteaz funcie de probabilitile
j
P ale vecinilor i direciile ale
gradienilor ataai lor, pe baza funciilor de compatibilitate, care se definesc astfel:

=
=
=
=
+
D
1 D
D
D
2 / 1 ] ), y , x ( ; (x,y), [
2 )]/ 2 2 ( 1 [ ] ), y , x ( ; (x,y), [
] 2 )/ 2 2 ( , 0 [ ] ), y , x ( ; (x,y), [
2 )/ ( ) ( ] ), y , x ( ; (x,y), [
muchie muchie
muchie muchie
muchie muchie
muchie muchie
g g r
cos g g r
cos min g g r
cos cos g g r
(52)
unde:
|) y |,|y x (|x D = max ;
- panta muchiei n punctul de coordonate ) y , x ( ;
- panta muchiei n punctul de coordonate ) y , x (
- panta segmentului care unete punctele ) y , x ( i ) y , x ( .
Convergena procesului de relaxare a fost demonstrat de Zucker (doar condiii
suficiente).
O variant mai complex (Canny[29]) presupune existena a C+2 clase, C clase
corespunztoare muchiilor avnd "C" orientri, plus cele dou clase definite anterior.

4.4. Detecia muchiilor tridimensionale.
Detecia muchiilor tridimensionale se folosete, de exemplu, n cazul imaginilor
tridimensionale tomografice. Prin "reconstrucie 2D" se obin imagini bidimensionale din
"proieciile 1D" (realizate prin metode specifice tomografiei) ale corpului studiat. Prin
"reconstrucie 3D" se obin din mai multe "proiecii 2D" reprezentri tridimensionale ale corpului.
Msurtori asupra reprezentrilor tridimensionale ale corpurilor pot avea drept punct de
plecare extragerea muchiilor tridimensionale. Pentru corpuri, evident, se lucreaz cu o
generalizare a muchiilor, devenite suprafee, iar nivelul de gri nseamn, de obicei, densitate
local sau, n cazul tomografiei, factor de absorbie a razei incidente.
Toate informaiile privind variaiile locale de densitate sunt coninute n vectorul gradient:
k
z
(x,y,z)
j
y
(x,y,z)
i
x
(x,y,z)
(x,y,z)
r r r r

f f f
G + + = (53)
Analog cazului bidimensional, se demonstreaz c modulul gradientului, fiind izotrop,
poate fi folosit drept detector de muchii tridimensionale. Pentru cazul discret se construiesc
aproximaii ale modulului acestui gradient care, fr a mai fi izotrope, au avantajul unui volum
redus de calcule.

4.5. Alte metode de detecie a muchiilor.
O multitudine de noi algoritmi de detecie a muchiilor au fost propui de diferii autori. O
mare parte din aceti algoritmi au la baz construcia unor modele dedicate unor aplicaii
concrete.
Astfel Azzopardi n [07] utilizeaz o interesant metod de detecie a contururilor
celulelor componente ale unor muchi scheletali, metod bazat pe localizarea nucleelor acestor
4. Detecia muchiilor, liniilor i spoturilor.
57
celule, deci, din punct de vedere geometric, a centrelor lor. Pe direcii radiale fa de poziiile
acestor nuclee se efectueaz o detecie de muchii unidimensionale, estimarea final a conturului
celulelor fcndu-se prin interpolarea rezultatelor obinute n pasul precedent. Metoda poate fi
uor generalizat nu numai pentru alte tipuri de celule, ci i n metalografie, pentru analiza
componentelor unor aliaje.
Alte metode de detecie de muchii se refer la determinarea contururilor unor distribuii de
elemente de structur. Putnd fi interpretat i ca o metod de segmentare, metoda propus de H.
Tagachi [106] genereaz contururile limit ale unor distribuii (grupri, clusteri) de date, n cazul
general, pe baza unor reguli adaptive.
Utilizarea unor cunotine apriorice privind proprietile, poziia sau orientarea muchiilor
permit construirea unor detectori de muchii specializai, cu performane deosebite (Persoon[81]).
Aceste cunotine apriorice pot fi ncorporate, de exemplu, n algoritmul de detecie a muchiilor
folosind relaxarea, rezultnd un set de variante dedicate ale acestui algoritm (Canny[29]).

4.6. Algoritmi de extragere a contururilor.
Diferena ntre detecie de muchii i extragere de contur este, cel mai adesea, esenial. n
general, un detector de muchii furnizeaz la ieire tot o imagine n scar de gri, pe cnd un
extractor de contur furnizeaz la ieire o imagine binar, coninnd linii cu grosimea de un pixel
n poziiile n care se estimeaz prezena unei muchii sau grania ntre dou regiuni diferite.
Detectorii spaiali de muchii descrii n capitolul (4) realizeaz extragerea de contur dac
sunt urmai de alte operaii care s asigure obinerea imaginii binare coninnd linii cu grosimea
de un pixel. De exemplu, s-ar putea folosi una din urmtoarele combinaii de operaii:
segmentare cu prag urmrire contur
1 2 3
(binarizare)

detecie muchii extragere contur
1 1 3
(mersul gndacului)

detecie muchii segmentare cu prag
1 1 2
subiere contur
3

4. Detecia muchiilor, liniilor i spoturilor.
58
segmentare cu prag
1 2
subiere contur
3

Fig. 5. Algoritmi de extragere a contururilor.
Evident, exist o multitudine de ali algoritmi de extragere de muchii. Un algoritm de
extragere a contururilor din imagini binare a fost deja menionat n capitolul 3., el avnd la baz
operatorii morfologici de erodare i/sau dilatare cu diferite abloane.

4.6.1. Algoritmi de urmrire de contur.
Un prim algoritm ce va fi descris pe scurt n continuare (Hegron[48]) este denumit i
"mersul orbului". Plecnd de la o imagine binar se urmrete selecia pixelilor aparinnd
conturului.
1. Se alege un sens de parcurgere a conturului.
2. Se localizeaz un prim pixel al obiectului, de obicei prin baleiaj linie cu linie sau
coloan cu coloan. Acest pixel se marcheaz ca fiind pixelul de start. El devine
pixelul curent.
3. Se baleiaz vecinii pixelului curent, n sensul de parcurgere ales, plecnd de la
precedentul pixel curent, pn la gsirea unui nou pixel obiect, care se marcheaz i
devine pixel curent.
4. Se repet pasul 3 pn la nchiderea conturului, adic pn cnd pixelul de start
devine iar pixel curent.
5. Dac se dorete localizarea altor obiecte n imagine, se reia algoritmul cu pasul 2,
pentru gsirea altor obiecte..
Dac exist n imagine mai multe obiecte de localizat, pixelul de start de obine cutnd
perechi de pixeli de forma:
baleiaj linie cu linie, de la stnga la dreapta;
baleiaj linie cu linie, de la dreapta la stnga;
baleiaj coloan cu coloan, de sus n jos;
baleiaj coloan cu coloan, de jos n sus.
unde cu gri s-au marcat pixelii obiect, iar cu alb cei de fond.
Funcionarea acestui algoritm pentru cazul a dou imagini simple este ilustrat n figurile
urmtoare:

4. Detecia muchiilor, liniilor i spoturilor.
59

0
1
2
3
4
5
6
7

Fig. 6. Exemple de aplicare a algoritmilor de urmrire de contur.

Un alt algoritm de urmrire de contur, descris n (Pop[83]), utilizeaz pentru cutare o
fereastr mobil cu dimensiunile 2x2, creia i se ataeaz aa-numitul cod "C", astfel:

p q
r s
p q 2 r 4 s 8 C + + + =
Se definesc direciile de deplasare elementar a ferestrei:

0
1
2
3

Paii acestui algoritm sunt urmtorii:
1. Se alege un tip de conectivitate (contur tetra-conectat sau octo-conectat) i un sens de
parcurgere a conturului.
2. Se determin un prim punct al conturului, de obicei prin baleiaj linie cu linie sau coloan cu
coloan. Acesta este marcat drept pixel de start i se ncadreaz ntr-o fereastr ptratic 2x2.
3. Se calculeaz codul "C" corespunztor ferestrei curente i se extrage din tabelele urmtoare,
funcie de tipul de conectivitate i sensul de parcurs alese, direcia de deplasare elementar a
ferestrei.
4. Se repet pasul 3 pn cnd pixelul de start reintr n fereastr.
5. Pentru extragerea conturului altor obiecte din imagine, se reia algoritmul cu pasul 2.
Conturul tetra-conectat al obiectului conine toi pixelii care au intrat la un moment dat n
fereastra de cutare, mai puin pixelii marcai cu "o" din cazurile (tabelele) (A), (B), (C), (D).
Conturul octoconectat al obiectului conine toi pixelii care au intrat la un moment dat n
fereastra de cutare, mai puin pixelii marcai cu "X" din cazurile (7), (11), (13), (14).
4. Detecia muchiilor, liniilor i spoturilor.
60




n literatur sunt descrii o multitudine de ali algoritmi de urmrire de contur. Muli
dintre ei se bazeaz pe parcurgerea secvenial a liniilor matricii de imagine (Hegron[48]), ca n
desenul urmtor:
Tabelul principal
Model Cod "C" Direcie
deplasare
Model Cod "C"

Direcie
deplasare
zec hexa orar trig zec hexa orar trig

0 0000 -- -- 8 1000 0 3

1 0001 1 0 9 1001 1 3

2 0010 2 1 10 1010 (C) (D)

3 0011 2 0 11 1011 2 3

4 0100 3 2 12 1100 0 2

5 0101 (A) (B) 13 1101 1 2

6 0110 3 1 14 1110 0 1

7 0111 3 0 15 1111 -- --
Tabelul (A)
Direcia Noua direcie
anterioar tetra-conectat octo-conectat
model direcie model direcie
0

3

1
2

1

3
Tabelul (B)
Direcia Noua direcie
anterioar tetra-conectat octo-conectat
model direcie model direcie
1

2

0
3

0

2
Tabelul (C)
Direcia Noua direcie
anterioar tetra-conectat octo-conectat
model direcie model direcie
1

0

2
3

2

0
4. Detecia muchiilor, liniilor i spoturilor.
61


Fig. 7. Parcurgerea secvenial a liniilor matricii imagine.

Problemele care trebuiesc rezolvate la implementarea unor asemenea algoritmi (care se
mai folosesc i la umplerea contururilor), in de punctele critice ale conturului (poriunile
orizontale ale conturului, pixeli terminali, pixeli de ruptur, etc.).

4.6.2. nlnuirea elementelor de contur.
Cel mai adesea, contururile obinute prin detecie de muchii cu metodele descrise n
capitolul 4., prezint o serie de defecte: discontinuiti, ramificaii inutile de lungime mic, muchii
dublate, etc. Repararea lor se face cu un set de algoritmi specializai, dintre care o parte sunt
descrii n cele ce urmeaz.
Metode euristice.
Roberts [91] propune o metod euristic de nlnuire a muchiilor (elemente de contur)
care are la baz examinarea blocurilor de pixeli 4x4. n prima faz sunt reinui drept "candidai"
acei pixeli pentru care modulul gradientului depete un anumit prag. Apoi prin "potrivire"
(matching) liniile cu lungimea de patru uniti, avnd cele opt orientri de baz sunt cutate n
imaginea gradient. Dac raportul ntre cel mai bun scor de similitudine i cel mai slab depete
un al doilea prag, irul de pixeli de muchie este considerat drept o linie valid.
Dac dou asemenea linii se gsesc n blocuri adiacente i diferena direciilor lor este n
gama ) 23 , 23 (
0 0
+ , ele se concateneaz. Urmeaz apoi tratarea unor cazuri de tipul:


Fig. 8. nlnuirea euristic a muchiilor.

adic din triunghiuri se elimina laturile corespunztoare cii mai lungi, iar dreptunghiurile
se nlocuiesc cu diagonala corespunztoare cii. Ramificaiile de lungime mic se elimin, dup
care urmeaz completarea micilor spaii aprute n lungul muchiilor detectate.
Aceast metod poate fi utilizat pentru o gam larg de detectori de muchii. Nevatia
propune n [75] o metod similar pentru nlnuirea muchiilor furnizate de detectorul Hueckel.
Muchiile furnizate de un detector tip "compass" sunt declarate valide dac vecinii lui au o
direcie conform cu una din situaiile:


4. Detecia muchiilor, liniilor i spoturilor.
62

Fig. 9. nlnuirea euristic a muchiilor.

Metoda poate fi extins la vecinti mai mari, dar i numrul de teste necesare se mrete
foarte mult.
Parcurgerea euristic a grafurilor.
Aceast metod, datorat lui Martelli [69] pleac de la premisa c o muchie poate fi vzut
ca o cale ntr-un graf format de ansamblul elementelor de muchie detectate.


Fig. 10. Parcurgerea euristic a grafurilor.

Se asociaz cte un nod fiecrui pixel care are modulul gradientului semnificativ (peste un
anume prag). ntre dou noduri exist conexiune (arc) dac diferena orientrilor gradienilor este
n gama ( )
0 0
90 , 90 + .
O cale n graf se determin euristic, examinnd succesorii fiecrui pixel i calculnd
pentru fiecare cale posibil o "funcie de cost". Pentru fiecare nod parcurs se alege varianta care
minimizeaz funcia de cost. Acest algoritm nu furnizeaz calea optim ntre dou noduri ale
grafului, iar viteza lui depinde de alegerea funciei de cost.

Programarea dinamic.
Folosind programarea dinamic se poate gsi calea optim ntre dou noduri ale unui graf
orientat, adic calea care minimizeaz funcia de cost (sau, echivalent, maximizeaz o "funcie de
evaluare"). Montanari [73] propune urmtoarea funcie de evaluare pentru un graf cu N nivele:


=

=
=
N
2 k
1 k k
N
2 k
1 k k
N
1 k
k N 2 1
) x , x ( d ) x ( ) x ( ) x ( g ) N , x ,..., x , x ( S (54)
unde: N ,.., 1 k , x
k
= este un vector care indic nodurile de muchie de pe nivelul "k" al grafului;
) x ( g
k
este amplitudinea gradientului pentru nodul N ,.., 1 k , x
k
= ;
) x (
k
este orientarea gradientului;
) x , x ( d
1 k k
este distana ntre nodurile
k
x i
1 k
x

;
, sunt constante pozitive.
Utiliznd principiul optimalitii al lui Bellman, programarea dinamic furnizeaz o
procedur care gsete o cale n graf n condiiile minimizrii funciei de evaluare dat anterior.

4.6.3. Reprezentarea contururilor.
Odat determinat conturul, el poate fi reprezentat fie matriceal, ceea ce necesit ns o
mare cantitate de informaii, fie sub forma irului coordonatelor pixelilor care alctuiesc conturul,
fie folosind "codul-lan" (chain-code). Acesta din urm presupune reinerea coordonatelor
4. Detecia muchiilor, liniilor i spoturilor.
63
pixelului de start, alturi de irul direciilor care indic poziiile relative succesive ale pixelilor din
contur.
Pentru obiectele din figurile anterioare coninnd imaginile caracterelor "u" i "A",
codurile lan corespunztoare sunt:
U : [(x0,y0),0,0,6,6,6,6,6,7,0,1,2,2,2,2,2,0,0,6,6,6,6,6,6,6,3,5,4,4,4,3,3,2,2,2,2,2];
A : [(x0,y0),0,6,7,6,7,6,7,6,4,3,4,4,4,5,4,2,1,2,1,2,1,2].
unde direciile sunt date de:
0
1
2
3
4
5
6
7

Uneori se mai utilizeaz pentru reprezentarea contururilor "codul-lan diferenial"
(differential chain-code) care presupune pstrarea coordonatelor pixelului de start a conturului, a
primei direcii absolute i a irului diferenelor relative ntre dou direcii succesive.
Valorile posibile pentru codul-lan diferenial sunt: ( ) 4 , 3 , 2 , 1 , 0 .
Avantajul acestei metode devine clar dac se face observaia c, cel mai adesea, ntre
valorile posibile ale acestor diferene de direcii , probabilitatea cea mai mare de apariie o are
valoarea "0":
) 4 ( P ) 3 ( P ) 2 ( P ) 1 ( P ) 0 ( P (55)
Utiliznd o codare prin coduri de lungime variabil, se poate obine o reducere
substanial a volumului de date necesar pentru reprezentarea conturului.

4.7. Detecia liniilor i a spoturilor.
Metodele cele mai simple pentru detecia liniilor au la baz operatori spaiali construii
dup principii analoge obinerii mtilor de detecie de muchii i care se folosesc la fel, adic:

+ + =

= =
(i,j) j) i,y (x (x,y)
m
1
1 i
1
1 j
m
H f max f
~
(56)
unde H
m
sunt mti (matrici 3x3) pentru detecia liniilor avnd diferite orientri. Se poate
folosi setul de mti:
(
(
(




=
1 2 1
1 2 1
1 2 1
1
H
(
(
(



=
1 1 1
2 2 2
1 1 1
2
H
(
(
(




=
1 1 2
1 2 1
2 1 1
3
H
(
(
(




=
2 1 1
1 2 1
1 1 2
4
H (57)
sau mtile cu valori ponderate:
(
(
(




=
1 2 1
2 4 2
1 2 1
1
H
(
(
(



=
1 2 1
2 4 2
1 2 1
2
H
(
(
(




=
2 1 2
1 4 1
2 1 2
3
H
(
(
(




=
2 1 2
1 4 1
2 1 2
4
H (58)
Pentru detecia spoturilor, Prewitt [87] propune folosirea urmtoarei mti de rspuns la
impuls:

(
(
(

=
1 2 1
2 4 2
1 2 1
8
1
S (59)
Problema se mai poate aborda utiliznd mti de dimensiuni mai mari sau tehnici de
"potrivire" (image/template matching).

4.8. Detalii de implementare.
4. Detecia muchiilor, liniilor i spoturilor.
64
Observaiile din finalul capitolului precedent referitoare la implementarea filtrelor spaiale
de mbuntire a imaginilor se aplic direct i filtrelor spaiale folosite pentru detecia de muchii,
linii i spoturi.
Aplicaia PROImage, prezentat n capitolul 21 include, printre altele, i implementri ale
ctorva filtre de detecie a muchiilor descrise n acest capitol. Pentru informaii suplimentare se
poate studia codul surs din fiierul fil.pas.
Algoritmii de urmrire de contur sunt foarte des utilizai n prelucrarea de imagini. O
implementare a algoritmului de urmrire de contur denumit i mersul orbului, este descris n
continuare. Fie o imagine binar (matrice MxN) care conine un numr de obiecte albe pe fond
negru (negru=0, alb=255). Se baleiaz pentru nceput imaginea, de la stnga la dreapta i de sus
n jos, n cutarea primului pixel obiect. n xs,ys se pstreaz coordonatele pixelului de start al
conturului fiecrui obiect din imagine.

// caut primul obiect din imagine
for (i=0; i<M-1; i++)
for (j=0; j<N-1; j++)
if (Img[j][i] == 1) {
// pixelul de start al primului obiect
xs = i;
ys = j;
break;
}

n continuare, coordonatele gsite ale punctului de start al conturului sunt trecute funciei
de urmrire a conturului unui singur obiect:
// direcii relative de cutare
int nXDir[8] = {1, 1, 0,-1,-1,-1, 0, 1};
int nYDir[8] = {0, 1, 1, 1, 0,-1,-1,-1};
//////////////////////////////////////
// Funcia TrackContour() returneaz
// FALSE pentru pixeli izolai i contururile interioare
// TRUE pentru contururile exterioare
BOOL CProcessImage::TrackContour(int xs, int ys, CRect* rect)
{
int i,j,v,n
int dir=6; // direcia iniial de cautare
long Area = 0; // aria inclus n contur
BOOL bExit = FALSE;
rect->SetRect(M-1, N-1, 0, 0); // seteaz dreptunghiul de ncadrare
iniial
i = xs, j = ys;
do {
n=0;
do { // verific vecinii octoconectai ai pixelului curent
dir = (++dir) % 8;
v = Img[j+nYDir[dir]][i+nXDir[dir]];
// testul de pixel izolat
if (++n == 8) {
Img[j][i] = 2; // marcheaz pixelul izolat
return FALSE;
}
} while(v == 0);
switch (dir) { // incrementeaz aria obiectului
case 0: Area += -j - j; break;
case 1: Area += -j - j - 1; break;
case 2: Area += 0; break;
case 3: Area += j + j + 1; break;
case 4: Area += j + j; break;
4. Detecia muchiilor, liniilor i spoturilor.
65
case 5: Area += j + j - 1; break;
case 6: Area += 0; break;
case 7: Area += -j - j + 1; break;
}
i += nXDir[dir]; // afl noul pixel curent
j += nYDir[dir];
dir = (dir + 5) % 8; // afl noua direcie de cutare
// actualizeaz dreptunghiul de incadrare
if (i < rect->left) rect->left = i;
if (i > rect->right) rect->right = i;
if (j < rect->top) rect->top = j;
if (j > rect->bottom) rect->bottom = j;
Img[j][i] = 2; // marcheaz pixelul izolat
if (i == xs && j == ys) {
dir--;
do { // verific dac (xs, ys) este un pixel de ruptur
dir = (++dir) % 8;
v = Img[j + nYDir[dir]][i + nXDir[dir]];
} while(v == 0);
if (v == 2)
bExit = TRUE; // nu exist alte ramificaii
else
dir--; // (xs,ys) este pixel de ruptur
}
} while(bExit == FALSE);
return (Area > 0); // Area>0 pentru contururi exterioare
}
Urmtorul pixel de start poate aparine fie unui contur interior al aceluiai obiect, fie
conturului exterior al unui alt obiect. El se obine simplu, prin baleierea imaginii de la stnga la
dreapta i de sus n jos, plecnd de la precedentul pixel de start:

// caut urmtorul pixel de start (alt contur)
i = xs; j = ys;
while (i < M-1) {
while (j < N-1) {
if (Img[j][i] == 1 && Img[j-1][i] == 0) {
xs = i;
ys = j;
break;
}
j++;
}
j = 1; i++;
}

Odat cu operaia de parcurgere a contururilor pot fi efectuate i unele msurtori simple
asupra imaginii, cum ar fi calculul ariei i al perimetrului.
5. Prelucrri morfologice ale imaginilor.
67





5. Prelucrri morfologice ale imaginilor.




5.1. Operaii cu abloane.
5.2. Algoritmi de subiere.
5.3. Netezirea imaginilor binare.
5.4. Operatori morfologici pentru imagini n scar de gri.
5.5. Detalii de implementare.




5.1. Operaiile cu abloane fac parte din categoria operatorilor morfologici i permit
transformri ale imaginilor binare bazate pe relaiile geometrice de conectivitate ale pixelilor din
imagine. abloanele sunt vecinti ataate pixelului curent. Ele pot avea una din urmtoarele
forme:

5
B
13
B
9
B
25
B
Fig. 1. Exemple de abloane.

Principalele operaii cu abloane sunt erodarea, dilatarea, deschiderea i nchiderea.
Erodarea (contractarea, comprimarea) unei imagini se definete ca fiind mulimea pixelilor
aparinnd obiectului S care prezint proprietatea c ablonul ataat lor este inclus n obiectul S:
} (x,y) / {(x,y)
I I
S B S B S = ; (1)
Dilatarea (expandarea) unei imagini este format din mulimea pixelilor obiectului S la
care se adaug acei pixeli din fond al cror ablon intersecteaz obiectul:
} (x,y) / {(x,y} = S B S S B S ; (2)
Deschiderea unei imagini este o operaie de erodare urmat de o dilatare cu acelai
ablon:
B B S B S = ) ( < ; (3)
nchiderea unei imagini este obinut printr-o dilatare urmat de o erodare folosind
acelai ablon:
B B S B S ) ( = > (4)
5. Prelucrri morfologice ale imaginilor.
68
Figurile urmtoare prezint rezultatele aplicrii unor astfel de operatori asupra unei
imagini binare, folosind abloanele
5
B i
9
B .



Original Erodare Dilatare Deschidere nchidere

Operatorii nchidere i deschidere se aplic la concatenarea obiectelor fragmentate i
respectiv separarea obiectelor atinse. Fr a fi un panaceu, aceti operatori se dovedesc a fi utili n
multe situaii.



Original Deschidere nchidere

5.2. Algoritmi de subiere.
Subierea furnizeaz la ieire un graf care este rezultatul unor erodri succesive ale
imaginii, erodri fcute n condiia nemodificrii topologiei imaginii.
Algoritmii de subiere au la baz un set de reguli:
1. Se elimin doar pixeli aflai pe conturul obiectelor.
2. Pixelii terminali (care au un singur vecin octoconectat) nu se elimin.
3. Pixelii izolai nu se elimin (pentru c s-ar modifica topologia imaginii).
4. Pixelii de ruptur nu se elimin.
Uneori, regula 3 nu se aplic pentru iteraiile iniiale n scopul eliminrii pixelilor izolai a
cror apariie este datorat zgomotelor.
Pixelii de ruptur sunt acei pixeli (diferii de pixelii izolai i de cei terminali) a cror
eliminare modific topologia imaginii. Exist ase cazuri de pixeli de ruptur, care rezult din
figurile urmtoare:

5. Prelucrri morfologice ale imaginilor.
69
S1
S2
S1
S2 S1
S2

S1
S2 S2
S1
S2 S1

Fig. 2. Pixeli de ruptur.

unde: - pixel obiect (negru);
- pixel de fond (alb);
- cel puin un pixel din submulimea marcat este pixel obiect (negru).
Se remarc faptul c vecinii octoconectai ai unui pixel de ruptur formeaz cel puin dou
submulimi distincte.
Notnd { }
7 1 0
v v v ,..., , vecinii pixelului curent, situaiile de mai sus se pot sintetiza
matematic (Davies[33]), (Pop[83]) prin numrul de treceri dat de:

=
=
4
1 k
k
b T(x,y) (5)
unde:


=
+
rest n
pentru
, 0
} v {v } {v , 1
b
1 k 2 k 2 1 k 2
k
S S S U I
(6)
Exist o multitudine de algoritmi de subiere. Principala dificultate care apare la operaia
de subiere este datorat situaiei urmtoare:


Fig. 3. Caz de dubiu la operaia de subiere.

Conform regulilor anterioare, toi pixelii care aparin unor linii cu grosimea de doi pixeli
vor fi teri. Se adopt diferite soluii.
Astfel algoritmul clasic (Fainhurst[37]), (Pavlidis[79]) opereaz (verific condiiile de
tergere i apoi, eventual, terge) mai nti asupra tuturor pixelilor care au vecinul dinspre "nord"
aparinnd fondului, apoi pentru cei cu vecinul dinspre "vest" aparinnd fondului, apoi "sud",
apoi "est".

5. Prelucrri morfologice ale imaginilor.
70

Exemplu de subiere a unei imagini binare.

Algoritmii asincroni de subiere ncearc s utilizeze paralelismul evident existent la
operaiile de erodare. Principial, s-ar putea utiliza procesoare matriceale care s respecte
urmtoarele restricii:
- s poat modifica doar pixelul aferent;
- s poat "citi" valorile pixelilor din vecintatea pixelului aferent.
Se utilizeaz tehnica "marcrii" pixelilor, ceea ce presupune lucrul pe imagini cu numrul
de nivele (de gri) mai mare ca doi. Abia dup parcurgerea ntregii imagini, pixelii marcai vor
putea fi teri. Problema liniilor cu grosimea de doi pixeli se pstreaz i pentru soluionarea ei se
utilizeaz tot tehnica marcrii pixelilor.
Algoritmii rapizi de subiere ncearc s micoreze numrul de pai cerui de algoritmii
precedeni prin analiza grosimii locale (de-a lungul ctorva direcii) a obiectelor din imagine
pentru gsirea liniei mediane folosind criterii geometrice i nu prin erodri succesive. Parcurgerea
obiectelor se face folosind teoria grafurilor.

5.3. Netezirea imaginilor binare.
Acest subiect, abordat i n paragraful 2.4.2., deci n cadrul algoritmilor de mbuntire de
imagini, se refer la schimbarea valorii unor pixeli dintr-o imagine binar, astfel nct s se
mbunteasc aspectul de "netezime" al contururilor obiectelor, n condiiile pstrrii topologiei
imaginii.

5.4. Operatori morfologici pentru imagini n scar de gri.
Operatorii morfologici studiai pentru imagini binare pot fi generalizai, n anumite
condiii, pentru imagini n scar de gri. Astfel, pentru imagini n scar de gri coninnd obiecte
relativ distincte fa de fond, la care obiectele i fondul sunt relativ uniforme din punctul de
vedere al coninutului de nivele de gri, se preteaz la asemenea prelucrri morfologice care au
drept rezultat mbuntirea calitii rezultatului unei segmentri ulterioare.
Alegnd B
K
, unul din abloanele definite anterior, operaia de dilatare (expandare),
pentru imagini cu nivele de gri se definete prin:
j)] i,y (x [ (x,y)
K
B i,j
(D)
+ + =

f max f (7)
iar cea de comprimare (compactare, erodare) este dat de:
j)] i,y (x [ (x,y)
K
B i,j
(C)
+ + =

f min f (8)
Operaiile de nchidere i respectiv deschidere a unei imagini n scar de gri se definesc
la fel ca n cazul imaginilor binare.

5.5. Detalii de implementare.
Aplicaia PROImage, prezentat n capitolul 21 include, printre altele, i implementrile a
doi algoritmi de subiere de contur, precum i operaiile de erodare i dilatare asupra imaginilor
binare. (pentru informaii suplimentare se poate studia codul surs din fiierul thi.pas).
O implementare PASCAL a unui algoritm de subiere de contur este prezentat n
continuare.


5. Prelucrri morfologice ale imaginilor.
71
procedure Thinning();
type
Conv = array[0..7] of shortint;
const
xC : Conv = (1,1,0,-1,-1,-1,0,1); // direcii de cutare
yC : Conv = (0,-1,-1,-1,0,1,1,1);
var
i,j,x,y,r,s,t : byte;
k1,k2,k3 : byte;
begin
r:=0;
while r=0 do // repet pn cnd nu mai exist pixeli de eliminat
begin
r:=1;
for j:=0 to 3 do // repet pentru cele 4 direcii principale
begin
for x:=1 to M-2 do
for y:= 1 to N-2 do // baleiaz ntreaga imagine
begin
if (Img^[y,x]=255) and (Img^[y+yC[2*j],x+xC[2*j]]=0) then
begin
t:=0;
for i:=1 to 4 do
begin // calculeaz numrul de treceri
k1:=(2*i-2) mod 8; k1:=Img^[y+yC[k1],x+xC[k1]];
k2:=(2*i-1) mod 8; k2:=Img^[y+yC[k2],x+xC[k2]];
k3:=(2*i) mod 8; k3:=Img^[y+yC[k3],x+xC[k3]];
if (k1=0) and ((k2<>0) or (k3<>0)) then
Inc(t);
end;
if t=1 then // poate fi pixel terminal
begin
s:=0;
for i:=0 to 7 do
if Img^[y+yC[i],x+xC[i]]<>0 then
Inc(s); // calculeaz numrul de vecini
if s>1 then
s:=0; // nu este pixel terminal
end
else
s:=1; // pixel de ruptur
if s=1 then
Img^[y,x]:=254; // marcheaz pixel de ruptur
else
begin
r:=0; // s-au gasit pixeli de ters
Img^[y,x]:=100; // marcheaz pixel pentru tergere
end;
end;
end;
for x:= 1 to M-2 do
for y:=1 to N-2 do
if Img^[y,x]=100 then
Img^[y,x]:=0; // terge pixelii marcai
end;
end;
end;

5. Prelucrri morfologice ale imaginilor.
72
Numrul de pai ai algoritmului depinde de grosimea obiectului a crui subiere se
dorete. Pixelii aflai pe conturul obiectului sunt clasificai n trei categorii: pixeli terminali, pixeli
de ruptur i pixeli regulari, care pot fi teri.
6. Segmentarea imaginilor.
73





6. Segmentarea imaginilor.




6.1. Segmentarea cu prag.
6.1.1. Determinarea automat a pragului.
6.1.2. Segmentarea cu prag variabil.
6.1.3. Alte strategii de segmentare cu prag.
6.2. Metode regionale de segmentare.
6.3. Metode de segmentare/aproximare a curbelor.
6.3.1. Aproximarea prin segmente de dreapt.
6.3.2. Aproximarea polinomial.
6.3.3. Aproximarea prin funcii spline.
6.3.4. Aproximarea prin funcii Bezier.
6.3.5. Aproximarea prin funcii B-spline.
6.4. Segmentarea texturilor.
6.5. Detalii de implementare.




6.1. Segmentarea cu prag.
6.1.1. Determinarea automat a pragului.
Segmentarea cu prag poate fi realizat prin stabilirea interactiv sau automat a pragului.
Stabilirea automat a pragului are la baz minimizarea probabilistic a erorii de clasificare a
pixelilor n pixeli de fond i pixeli obiect.
Notnd:
=
1
P Probabilitatea apriori ca un pixel s fie pixel obiect;
=
2
P Probabilitatea apriori ca un pixel s fie pixel de fond;
= (z)
1
p densitatea de probabilitate a variabilei aleatoare ataat pixelilor obiect;
= (z)
2
p densitatea de probabilitate a variabilei aleatoare ataat pixelilor obiect.
Presupunnd o distribuie normal pentru pixelii de fond i cei de obiect, avem:

2
2
1
1

) m (z
2
1
(z)

= exp p (1)

2
2
2
2

) m (z
2
1
(z)

= exp p (2)
Variabilele
1
m ,
2
m , sunt mediile i respectiv dispersia celor dou variabile aleatoare, n
ipoteza c, deoarece zgomotul afecteaz n mod egal toi pixelii din imagine, dispersiile
corespunztoare fondului i obiectelor sunt egale.

6. Segmentarea imaginilor.
74
T z
H(z)
E2(T) E1(T)
P1p1(z)+P2p2(z)

Fig. 1. Principiul determinrii automate a pragului de segmentare.

n figura anterioar:
(z) dz P (T)
2
T
2 1
p E


= (3)
(z) dz P (T)
1
T
1 2
p E

+
= (4)
sunt respectiv eroarea de probabilitate ca un pixel fond s fie clasificat drept pixel obiect (negru),
i eroarea de probabilitate ca un pixel obiect s fie clasificat drept pixel fond (alb) prin
segmentare.
Eroarea total de clasificare a pixelilor prin segmentare este:
Minimizarea acestei erori n raport cu T duce la:
= 0
dT
d E

P
P
m m

2
m m
T
1
2
1 2
2
2 1
ln

+
+
= (5)
Determinarea valorilor (
1
m ,
2
m , ,
2 1
P P / ) necesare n calculul pragului T se poate face
grafic, prin msuratori pe histograma real, folosind elementele din figura urmtoare:
H(z)
Max1
Max2
m1 m2
(m1- )

(m1+ )

(m2- )

(m2+ )
0
Max1/0.606
Max2/0.606
P1/P2=Max1/Max2
z

Fig. 2. Determinarea grafic a pragului de segmentare.
6. Segmentarea imaginilor.
75

Dac ns pagina scanat conine text cu o densitate mic a caracterelor sau fonturi foarte
subiri, raportul
2 1
P P / devine foarte mic, lobul histogramei corespunztor caracterelor se
diminueaz foarte mult i metoda precedent poate da rezultate nesatisfctoare.

z
H(z)
HMax
HMax/0.606
0 m m- m+ (m-2.5 )


Fig. 3. Determinarea grafic a pragului de segmentare.

Criteriul alegerii pragului T la 2.5 fa de nivelul de gri pentru care se atinge valoarea
maxim n histogram poate rezolva aceast situaie mulumitor. Rezultate oarecum similare se
obin fixnd pragul T astfel nct proporia de pixeli negri i albi s fie ct mai apropiat de o
valoare aprioric stabilit (n jur de 90%).

6.1.2. Segmentarea cu prag variabil.
Alegerea unui prag unic pentru ntreaga imagine, de multe ori, nu este soluia optim.
Datorit iluminrii neuniforme, diferenelor de contrast ntre diferite zone ale paginii, nuanelor
diferite folosite pentru pentru unele obiecte (caractere, etc.) un prag unic poate furniza rezultate
nesatisfctoare. Soluia furnizat de Pizer [82] pentru aceast situaie este divizarea imaginii n
careuri de dimensiune 32x32 sau 64x64, suprapuse sau nu, i determinarea pragului de
segmentare t
C
doar pentru careurile avnd histogram bimodal, folosind una din metodele
anterioare. Rezult cte o valoare pentru fiecare careu, valoare care este folosit pentru
construcia unei funcii de prag continue, (x,y) T , astfel nct:

C C C
t ) ,y (x = T (6)
unde ) y , x (
C C
este centrul careului "c".
n continuare, se execut segmentarea dup formula clasic, adic:

<
=
(x,y) (x,y) alb,
(x,t) (x,y) negru,
(x,y)
t f
t f
f
pentru
pentru
(7)

6.1.3. Alte strategii de segmentare cu prag.
a) n loc de a minimiza eroarea de clasificare la determinarea pragului, se poate selecta
acel prag de segmentare pentru care se minimizeaz numrul de adiacene ntre pixelii aflai sub i
deasupra pragului (Rosenfeld[95]). Evident, soluiile care uniformizeaz imaginea se elimin.
6. Segmentarea imaginilor.
76
b) Dac se cunoate aprioric raportul ntre numrul de pixeli albi i negri din imaginea
binar, acesta poate fi ales drept criteriu de determinare a pragului de segmentare
(Rosenfeld[95]):


+

=
T
T
(z) dz (z) dz K H H (cazul continuu)


=

=
=
1 L
T z
1 T
0 z
(z) (z) K H H (cazul discret) (8)
c) Dac anumite dimensiuni / distane care caracterizeaz obiectele din imagine sunt
cunoscute, se poate alege acel prag care fixeaz respectiva dimensiune la valoarea dorit
(Rosenfeld[95]).

6.2. Metode regionale de segmentare. Creterea regiunilor.
Ideea de baz este urmtoarea: "pixelii vecini avnd amplitudini apropiate vor fi
considerai ca aparinnd aceleiai regiuni, deci vor fi grupai mpreun".
Brice i Fenema [13] au folosit un algoritm de segmentare prin creterea regiunilor bazat
pe reguli stabilite euristic.

Y
A
Y
Y
Y
B
C
D
Y
Y
Y
E
F
G
R
R
C
2
1

Fig. 4.Principiul creterii regiunilor.

Se noteaz cu
1
R i respectiv
2
R cele dou regiuni candidate la concatenare,
1
P i
respectiv
2
P perimetrele lor, iar C frontiera comun a celor dou regiuni. Fie D poriunea din C
pentru care amplitudinea diferenei ntre nivelele de gri de o parte i de alta a acestei frontiere este
mai mic dect un prag
1
.
1. n prima faz perechi de pixeli avnd nivele de gri apropiate sunt grupate mpreun
pentru a forma aa-numitele regiuni atomice.
2. Regiunile
1
R i
2
R se concateneaz dac:

2
2 P 1 P
D
>
) , min(
, (9)
ceea ce previne concatenarea regiunilor cu aproximativ aceeai dimensiune, dar permite
nglobarea regiunilor mai mici n cele mai mari.
3. Regiunile
1
R i
2
R se concateneaz dac:
3
C
D
> , cu 75 . 0
3
, regul care trateaz
cazul poriunilor de frontier rmase dup aplicarea primei reguli. Aplicarea doar a acestei reguli
tinde s "supra-concateneze" regiunile din imagine.

6.3. Metode de segmentare/aproximare a curbelor.
6.3.1. Aproximarea prin segmente de dreapt.
Interpolarea curbelor prin segmente de dreapt este cea mai simpl metod de segmentare
a curbelor. Ea se poate face (Jain[56]) prin aproximri succesive, plecnd de la segmentul de
dreapt care unete capetele curbei ce trebuie aproximate i care constituie practic o prim
6. Segmentarea imaginilor.
77
aproximare a curbei. Se caut punctul de pe curb cel mai deprtat de acest segment i se obine
urmtoarea aproximare a curbei nlocuind segmentul de dreapt iniial cu cele dou segmente ce
unesc capetele segmentului de curb cu punctul gsit. Operaia descris anterior se repet
succesiv pentru fiecare segment de curb obinut, pn la atingerea preciziei dorite.



Fig. 5. Aproximarea prin segmente de dreapt.

6.3.2. Aproximarea polinomial.
Reprezentarea polinomial, foarte des folosit, furnizeaz ecuaia unui polinom care
aproximeaz curba dat. Expresia polinomului de gradul ) 1 n ( care trece prin "n" puncte date,
este:


=

=
n
1 i i j j i
j
i n
) x (x
) x (x
y (x) P (10)
Cnd numrul de puncte este mare, gradul polinomului crete i el, ca urmare pot apare
oscilaii ale curbei aproximante. Eliminarea acestui dezavantaj se face folosind aproximrile pe
poriuni, adic pe segmente de curb. Pentru a obine curbe netede, se impun condiii
suplimentare care se refer la continuitatea curbei i a derivatelor sale n punctele de jonciune.
Astfel se obin curbele spline i curbele Bezier.

6.3.3. Aproximarea prin funcii spline.
Funciile spline (Rogers[93]) sunt funcii polinomiale pe subintervale adiacente, care se
racordeaz mpreun cu un anumit numr din derivatele sale. Fie ] [x(t),y(t) un segment de curb
descris parametric, unde
2 1
t t t . El poate fi reprezentat prin funcii spline cubice:

2 1
4
1 i
1 i
i
t t t , t B (t) =

unde S (11)
Constantele
4 3 2 1
B B B B , , , se determin specificnd patru condiii, care pot fi poziiile
capetelor segmentului de curb i orientrile curbei n aceste puncte (date prin vectori tangeni la
curb n aceleai puncte). Rezult o relaie de forma:
3
2
2
2 1
3
2
1 2 2
2
2 1
2
2
1 2
1 1
t
t
) (t ) (t
t
)] (t ) (t [ 2
t
t
) (t ) (t 2
t
)] (t ) (t [ 3
)t (t ) (t (t)
)
`

+
+

+
)
`

+ + =
S S S S S S S S
S S S
(12)
Metoda anterioar se poate extinde pentru cazul a mai multe segmente de curb. Astfel,
pentru cazul a dou segmente de curb trebuiesc determinate opt constante i aceasta se face
specificnd poziiile de nceput i sfrit ale capetelor celor dou segmente (patru condiii),
6. Segmentarea imaginilor.
78
orientrile curbei pentru nceputul primului segment i sfritul celui de-al doilea (dou condiii),
la care se adaug condiiile de egalitate a orientrii i curburii n punctul de jonciune a celor dou
segmente.
Acest mod de operare se poate extinde uor pentru un numr mare de segmente de curb.
Se poate remarca influena amplitudinii vectorilor ) (t
1
S i ) (t
2
S precum i a gamei de
valori a parametrilor "t" pentru fiecare segment asupra alurii curbei obinute. Se utilizeaz des
alegerea gamei de valori a parametrului "t" prin metoda coardei. Curbele spline cubice
normalizate se refer la situaia n care, pentru fiecare segment de curb se seteaz 1 t 0 .
n unele situaii se prefer pentru segmentele terminale utilizarea condiiei de curbur
nul, adic 0 ) (t
k
= S , iar pentru cazul curbelor nchise condiiile din punctele de jonciune ale
segmentelor sunt de acelai tip pentru toate segmentele.
O alt clas de funcii spline, utilizate mai ales pentru simplitatea lor, sunt funciile spline
parabolice (de ordinul doi, cuadratice), care sunt descrise de relaii de forma:
(s) t (r) t) 1 ( (t) q p S + = (13)
unde s r t , , sunt parametri, iar (r) p i (s) q sunt parabole descrise parametric.
Specificarea parabolelor se face analog, prin condiii impuse punctelor de jonciune ntre
segmentele de curb.

6.3.4. Aproximarea prin funcii Bezier.
Curbele Bezier (Rogers[93]) realizeaz operaia de aproximare a segmentelor de curb.
Curbele descrise anterior sunt astfel construite nct sunt constrnse s treac prin punctele de
jonciune ale segmentelor de curb. Ele sunt determinate definind mai nti un poligon cu colurile
3 2 1 0
,B ,B ,B B . Curba Bezier parametric asociat se scrie sub forma:

=
=
n
0 i
n,i i
1 t 0 (t), B (t) J P (14)
unde (t)
n,i
J este funcia Bernstein de baz de ordinul "n", dat de:

i n i
n,i
t) 1 ( t
i)! i!(n
n!
(t)

= J (15)
Pentru 9 ,.., 2 n = alura acestor funcii este urmtoarea:

0 1
1
J
J
J
2,0
2,1
2,2
0 1
1
J
J
J
3,0
3,1
3,3
J
3,2
0 1
1
J
J J
4,0
4,1 4,3 J
4,2
J
4,4
0 1
1
J
J
J
5,0
5,1
5,3
J
5,2
J
5,4
J
5,5

6. Segmentarea imaginilor.
79
0 1
1
J
J
J
6,0
6,1
6,3
J
6,2
J
6,4
J
6,5
J
6,6
0 1
1
J
J
J
7,0
7,1
7,3
J
7,2 J
7,4
J
7,5
7,6
J
7,7
J
0 1
1
J
J
J
8,0
8,1
8,3
J
8,2 J
8,4
J
8,5
8,6
J
8,7
J
8,8
J
0 1
1
J
J
J
9,0
9,1
9,3
J
9,2
J
9,4
J
9,6
9,7
J
9,8
J
9,9
J
J
9,5

Fig. 6. Funciile Bernstein de ordinul 2...9.
Foarte des expresiile anterioare se pun sub form matriceal. Pentru mrirea flexibilitii
metodei se poate mri numrul de puncte de definiie a poligonului. Exemple pentru 3 n = i
4 n = sunt date n continuare.

n=3 n=3 n=3 n=4

6.3.5. Aproximarea prin funcii B-spline.
Un alt caz de aproximare a curbelor depete limitrile constatate la curbele Bezier
(dependena direct a ordinului curbei de numrul de coluri ale poligonului de definiie i faptul
c (t)
n,i
J este nenul pentru 0 t < i 1 t > ). Schoenberg [100] sugereaz utilizarea unei noi baze de
funcii care include funciile de baz ale lui Bernstein drept caz particular. De remarcat este
proprietatea curbelor B-spline de a fi incluse n anvelopa convex generat de poligonul de
definiie.


Fig. 7. Anvelopa convex generat de poligonul de definiie a curbelor B-spline.

Fie ] [x(t),y(t) un segment de curb descris parametric, unde
2 1
t t t . Reprezentarea lui
prin funcii B-spline (Rogers[93]) este dat de:

=
=
n
0 i
i,k i
(t) (t) B p c (16)
unde:

(

=
(t)
(t)
(t)
y
x
c este vectorul cu coordonatele curbei,
6. Segmentarea imaginilor.
80

(

=
(t)
(t)
(t)
(y)
i
(x)
i
i
p
p
p sunt aa-numitele puncte de control, iar
,... 2 , 1 ,...,n, k 1 , 0 (t),i
i,k
= = B sunt funciile B-spline generalizate de ordinul "k".
Parametrul "k" indic gradul de continuitate al funciei spline folosite, adic (t)
i,k
B ,
mpreun cu primele sale 2 k derivate sunt continue i n punctele de jonciune.
Exist o relaie de recuren care furnizeaz expresiile funciilor B-spline de ordin superior
funcie de cele de ordin mai mic (formulele Cox-deBoor):


=
+
rest n , 0
t t , t 1
(t)
1 i i
1 i,
B (17)

) t (t
(t) t) (t
) t (t
(t) ) t (t
(t)
1 i k i
1 ,k 1 i k i
i 1 k i
1 i,k i
i,k
+ +
+ +
+

=
B B
B (18)
unde parametrii ,...,n 1 , 0 ,i t
i
= , sunt denumii noduri ("knots"). Funciile B-spline
normalizate de ordinul 1,2,3,4 sunt reprezentate schematic n cele ce urmeaz:
t
B (t)
i,1

t
B (t)
i,2

t
B (t)
i,3

t
B (t)
i,4

Fig. 8. Funciile B-spline normalizate de ordinul 1,2,3,4.

iar expresiile lor corespunztoare sunt:

<
=
rest n , 0
1 t 0 , 1
(t)
1 , 0
B

<
< +
<
=
rest n , 0
3 t 2 , t) 3 ( 5 . 0
2 t 1 , 5 . 1 t 3 t
1 t 0 , t 5 . 0
(t)
2
2
2
3 , 0
B

<
<
=
rest n , 0
2 t 1 t, 2
1 t 0 t,
(t)
2 , 0
B

<
< +
< + +
<
=
rest n , 0
4 t 3 , 6 / t) 4 (
3 t 2 , 6 )/ 44 t 60 t 24 t 3 (
2 t 1 , 6 )/ 4 t 12 t 12 t 3 (
1 t 0 , 6 / t
(t)
2
2 3
2 3
3
4 , 0
B (19)
Dac conturul de reprezentat este nchis, funciile B-spline folosite sunt denumite nchise
sau periodice. Dac punctele de control sunt uniform deprtate, adic:
i t, t t
i 1 i
=
+
(20)
avem funcii B-spline uniforme,cu proprietatea de periodicitate:
1 ,k,...,n-k 1 k- i i) (t (t)
,k 0 i,k
+ = = , B B , (21)
Odat construite aceste curbe, ele pot fi translate, scalate, mrite-micorate cu uurin i
deasemenea pot fi fcute msurtori ale unor parametri ce caracterizeaz curba.
6. Segmentarea imaginilor.
81
k=3; k=4
Dac curba este descris printr-un set de puncte discrete, adic
n 1 0
,...,s ,s s t = , avem:
,...,n 1 , 0 j ), (s ) (s
n
0 i
j i,k i j
= =

=
B p x (22)
de unde, n form matriceal:
x B P x P B
1
k k

= = (23)
Remarcabil este faptul c, dac se accept aproximarea prin curbe B-spline uniforme,
matricea
k
B devine o matrice circulant, pentru care exist algoritmi rapizi de inversare. Pentru
cazul n care numrul de puncte ale curbei de aproximat este m>n, se adopt o strategie bazat pe
minimizarea erorii medii ptratice de aproximare, care duce deasemenea la inversarea unei
matrici circulante.

6.4. Segmentarea texturilor.
Exist opt abordri statistice n ceea ce privete caracterizarea texturilor, i anume
folosind funcia de autocorelaie, transformrile optice, transformrile digitale, "cantitatea" de
muchii din textur ("textural edgeness"), studiul elementelor structurale, probabilitile de
coocuren a nivelelor de gri, continuitatea nivelelor de gri ("gray tone run lengths") i modelele
autoregresive.
Primele trei abordri se refer direct sau indirect la msurtori asupra frecvenelor spaiale.
A patra metod propune caracterizarea texturii prin cantitatea de muchii detectat n imagine.
Metoda elementelor structurale este n esen o metod de "potrivire" (matching) a imaginii
texturii cu anumite elemente de structur definite pentru fiecare textur. Coocurena nivelelor de
gri caracterizeaz interdependenele spaiale care exist ntre pixelii texturii, ca i metoda "gray
tone run length". Analiza seriilor de timp este principiul care st la baza modelului autoregresiv.
Fie (x,y) f imaginea (continu, coninnd textura de studiat), astfel nct:
) L y 0 (y ) L x 0 (x , 0 (x,y)
y x
> < > < = i sau i pentru f (24)
Funcia de autocorelaie este definit prin:



+

+

+

+

+ +

=
(u,v)dudv
L L
1
y)dudv x,y (u (u,v)
|y|) |x|)(L (L
1
(x,y)
2
y x
y x
f
f f
R (25)
unde
x
L |x| < i
y
L |y|< . Deoarece funcia de autocorelaie este transformata Fourier a
spectrului de putere, aceast metod, indirect, caracterizeaz textura prin analiza frecvenelor
spaiale. n acelai timp ea poate fi vzut ca o problema de "potrivire prin suprapunere"
(matching).
Printre primele metode de analiz a texturilor se numr transformrile optice, care
utilizau difracia Fraunhoffer pentru generarea unor trsturi care s caracterizeze texturile.
6. Segmentarea imaginilor.
82
Transformrile ortogonale discrete au fost i ele mult utilizate pentru analiza texturilor.
Gramenopolous utilizeaz n [43] Transformata Fourier Discret pentru blocuri de imagine de
32x32 n scopul caracterizrii unor texturi din imagini satelitare. Trecnd spectrul de putere al
imaginii n coordonate polare, Bajcsy i Lieberman [09] remarc proprietatea texturilor
direcionale de a furniza un maxim al acestui spectru ntr-o direcie perpendicular pe direcia
principal a texturii. Pot fi utilizate i alte tipuri de transformri ortogonale: Hadamard, Slant, etc.
Construind un filtru de decorelare, Pratt [84] folosete coeficienii acestui filtru mpreun
cu primele patru momente ale histogramei pentru a caracteriza textura.
Metoda propus de Rosenfeld i Troy [96] msoar "cantitatea" de muchii pe unitatea de
suprafa. Fiecrui pixel i este ataat o vecintate pentru care se calculeaz media estimrilor
gradientului, estimri obinute folosind una din metodele clasice.
Continuitatea nivelelor de gri ("gray tone run lengths") este o alt metod care
caracterizeaz textura folosind numrul de pixeli conectai avnd acelai nivel de gri.
Msurtorile care se fac vizeaz nu numai numrul efectiv de pixeli ci i diametrul minim/maxim
al gruprii de pixeli, nivelul de gri, precum i orientarea celor dou diametre.
n esen, ultimele dou metode realizeaz caracterizarea texturii prin calculul unei anume
msuri a ei. Pot fi utilizate ns i alte msuri, cum ar fi densitatea relativ de maxime-minime din
imagine.
Matricea de coocuren a nivelelor de gri (i,j) P conine n fiecare poziie (i,j) numrul
de perechi de pixeli vecini avnd respectiv nivelele de gri "i" i "j". De obicei ea se normalizeaz,
mprind fiecare element la numrul de pixeli ai imaginii, ea putnd astfel fi vzut ca o matrice
de probabiliti de apariie, condiionate de poziia relativ.
Metodele structurale aplicate la imagini binare se refer la construcia unui element de
structur ("ablon") care este apoi folosit ntr-o operaie de filtrare, de fapt o eroziune
morfologic, al crei rezultat:
} (x,y) / {(x,y) B S
I I
S B S = (26)
este tot o imagine binar n care densitatea pixelilor cu valoarea "1" poate fi folosit
pentru caracterizarea imaginii. Au fost definite o multitudine de tipuri de elemente structurale,
parametrizate sau nu.
Pentru cazul imaginilor n scar de gri, elementele de structur se numesc primitive i sunt
grupuri de pixeli conectai i care satisfac anumite condiii particulare referitoare la nivelul de gri
al pixelului curent, conjugat cu poziia lui relativ fa de ceilali. Numeroase asemenea corelaii
spaiale de descriere a primitivelor sunt citate n literatur.
Interdependena pixelilor apropiai din imagine poate fi caracterizat nu numai de funcia
de autocorelaie, dar i utiliznd modelul autoregresiv propus de McCormick i Jayaramamurthy
[71]. Acest model folosete metode care in de analiza seriilor de timp pentru extragerea
parametrilor de caracterizare a texturii. El poate fi deasemenea folosit pentru generarea texturilor.
Ashjari [6] propune caracterizarea texturilor prin intermediul valorilor proprii extrase din
blocurile de imagine (32x32). Distribuia acestor valori proprii, ordonate descresctor permite
diferenierea texturilor.
Metodele stochastice permit construcia unor modele foarte puternice pentru texturile
naturale (nisip, iarb, diferite tipuri de esturi, etc.), cu aplicaii n sinteza imaginilor realiste i n
investigarea sistemului vizual uman (Pratt[85]).
Principial, sinteza texturilor pleac de la un zgomot alb (cmp aleator), pentru a obine un
model al texturii prin intermediul unui filtru:

1/A(z ,z )
1
2
e(m,n)
zgomot alb
u(m,n)
textur

6. Segmentarea imaginilor.
83
Fig. 9. Schema bloc de sintez a texturilor.

6.5. Detalii de implementare.
O implementare C a unui algoritm de segmentare automat este prezentat n continuare.

int i,j,k; // contoare
int NMin, NMax; // numrul de maxime i minime din histogram
long Max1, Max2; // valorile primelor dou maxime gsite
long Hist[256], Hist1[256]; // vectori histogram
//calcul histogram
for(j=0;j<DY;j++)
for(i=0;i<DX;i++)
Hist[Img1[i][j]]++;
do {
// aplic filtrul nerecursiv de netezire asupra vectorului histogram
Hist1[0]=(Hist[0]+Hist[1])/3;
for(i=1;i<255;i++)
Hist1[i]=(Hist[i-1]+Hist[i]+Hist[i+1])/3;
Hist1[255]=(Hist[254]+Hist[255])/3;
for(i=0;i<256;i++)
Hist[i]=Hist1[i];
// calculeaz numrul i poziia maximelor din vectorul histogram
k=1; j=0; NMin=0; NMax=0; Max1=0; Max2=0;
for(i=0;i<256;i++) {
if(i!=0 && i!=255) {
if(Hist[i-1]==Hist[i] && Hist[i]==Hist[i+1]) //1=palier
;
if(Hist[i-1]==Hist[i] && Hist[i]< Hist[i+1]) //2=sfrit minim
if(k==2)
k=1, NMin++, Min1=Min2, Min2=(i+j)/2;
if(Hist[i-1]==Hist[i] && Hist[i]> Hist[i+1]) //3=sfrit maxim
if(k==1)
k=2, NMax++, Max1=Max2, Max2=(i+j)/2;
if(Hist[i-1]< Hist[i] && Hist[i]==Hist[i+1]) //4=nceput maxim
j=i;
if(Hist[i-1]< Hist[i] && Hist[i]< Hist[i+1]) //5=ramp cresctoare
;
if(Hist[i-1]< Hist[i] && Hist[i]> Hist[i+1]) //6=maxim clar
k=2, NMax++, Max1=Max2, Max2=i;
if(Hist[i-1]> Hist[i] && Hist[i]==Hist[i+1]) //7=nceput minim
j=i;
if(Hist[i-1]> Hist[i] && Hist[i]< Hist[i+1]) //8=minim clar
k=1, NMin++, Min1=Min2, Min2=i;
if(Hist[i-1]> Hist[i] && Hist[i]> Hist[i+1]) //9=ramp cztoare
;
} else
if(i==0) {
if(Hist[i]==Hist[i+1]) //1,4,7
;
if(Hist[i]< Hist[i+1]) //2,5,8
;
if(Hist[i]> Hist[i+1]) //3,6,9
;
} else {
if(Hist[i-1]==Hist[i]) //1,2,3
if(k==1) k=2, NMax++, Max1=Max2, Max2=(i+j)/2;
if(Hist[i-1]< Hist[i]) //4,5,6
k=2, NMax++, Max1=Max2, Max2=i;
if(Hist[i-1]> Hist[i]) //7,8,9
;
6. Segmentarea imaginilor.
84
}
}
} while(NMax>2); // repet pn se obin doar dou maxime
// calcul prag de segmentare
Th=(Max2*Hist[Max2]-Max1*Hist[Max1])/(Hist[Max2]-Hist[Max1]);

7. Transformata Hough.
85





7. Transformata Hough.




7.1. Detecia curbelor folosind transformata Hough.
7.2. Versiuni ale transformrii Hough.
7.3. Generalizarea transformrii Hough.
7.4. Optimizarea transformrii Hough.
7.5. Transformarea invers.
7.6. Calculul propriu-zis al transformrii Hough.
7.7. Rezultate comparative i concluzii.
7.8. Detalii de implementare.




7.1. Detecia curbelor folosind transformata Hough.
O metod de separare a liniilor i curbelor dintr-o imagine are la baz transformata Hough
(Ballard[10]), (Duda[36]), (Haralick[45], (Hough[50]), (Pratt[84]). Fie n mx y + = ecuaia unei
drepte n planul imaginii. Ei i corespunde n planul descris de coordonatele ) n , m ( un punct, i
reciproc, fiecrei drepte din planul ) n , m ( i corespunde o dreapt n planul imaginii (fig. 1 i 2).

0
y
x
(-n/m)
m
y=mx+n
0
n
m
(m,n)

Fig. 1. Fig. 2.

Ca urmare, unor puncte coliniare din planul (x,y) le corespunde un fascicol de drepte
concurente ntr-un punct unic din planul transformatei Hough (fig. 3 i 4).

7. Transformata Hough.
86
0
y
x
n
(-n/m)

0
n
m

Fig. 3. Fig. 4.
Deoarece pentru drepte verticale, valoarea parametrului "m" tinde ctre infinit, pentru a
limita domeniul valorilor parametrilor se prefer exprimarea dreptei din planul ) y , x ( prin:
y x = + cos sin (1)
unde "" este distana din origine i pn la dreapt, iar "" este unghiul ntre dreapt i
abscis (fig. 5 i fig. 6).
0
y
x


/cos

/sin

0

(,) (,) (,) (,)


Fig. 5. Fig. 6.
Ca urmare, unor puncte colineare din planul ) y , x ( , le corespunde un set de sinusoide (fig.
7 i fig. 8) care se intersecteaz ntr-un singur punct:

i i i
+y x ) ( cos sin = (2)
0
y
x


/ / / /cos
/ / / /sin
(0,0)


Fig. 7. Fig. 8.

7.2. Versiuni ale transformrii Hough.
Gama valorilor pe care le poate lua unghiul ntre normala la dreapt i abscis, la o
prima vedere, ar fi ] , [ . Analiznd aceast gam de valori a unghiului , Duda i Hart [36]
ajung la concluzia c este suficient s se limiteze analiza la gama ] , 2 / [ , deoarece gama
7. Transformata Hough.
87
unghiurilor formate de vectorii de poziie ai pixelilor din imagine este ] 2 / , 0 [ , iar fa de
acetia, dreptele posibile din imagine formeaz un unghi de ] 2 / , 2 / [ (fig. 9).

Xmax

x
y
0
Ymax

[0,/2]
[/2,/2]

Fig. 9.

O'Gorman i Clowes [77] propun modificarea transformrii Hough, pentru nlnuirea
punctelor de muchie dintr-o imagine. Unghiul este obinut din direcia gradientului calculat
pentru imagine, iar +y x () cos sin = . Matricea transformatei Hough, n aceast versiune, se
incrementeaz cu valoarea estimat a modulului gradientului n punctul curent, ceea ce permite
mrirea influenei muchiilor puternic accentuate.

7.3. Generalizarea transformrii Hough.
Dac n imaginea iniial trebuiesc localizate curbe (contururi) cunoscute, cu dimensiuni i
orientri stabilite, care nu au o expresie analitic, poate fi utilizat metoda propus de Ballard n
[10].
(x ,y )
c c
(x,y)


x


Fig. 10. Principiul generalizrii transformrii Hough.

Aceast metod pornete cu stabilirea unui punct de referin, notat ) ,y (x
c c
.
Unghiul fa de abscis format de segmentul care unete punctul de referin cu pixelul
curent, notat n figura precedent, poate fi msurat pentru toi pixelii formei model.
Fiecrui pixel curent al conturului formei i corespunde de asemenea o anumit orientare a
muchiei, notat n figur, i care se poate obine n imaginea iniial din studiul estimrii
discrete a vectorului gradient.
7. Transformata Hough.
88
Ballard propune n continuare construirea unui tabel ("R-table") care s conin, pentru
toate orientrile posibile ale vectorului gradient, informaiile necesare localizrii punctului de
referin. Pentru aceeai orientare a vectorului gradient, evident, sunt posibile mai multe variante
de localizare a punctului de referin, adic mai multe perechi ) , (
j j
.

(x ,y )
c c


( , ( , ( , ( ,
)
1 1
( , ) ( , ) ( , ) ( , )
2 2

Fig. 11. Metoda Ballard de generalizare a transformrii Hough.

Tabelul ce trebuie construit pentru forma de localizat are urmtoarea structur:

Unghiul fa de abscis al segmentului ce
unete punctul curent cu punctul de referin
Localizri posibile ale punctului
de referin
1
) , ),...,( , ),( , (
1
k
1
k
1
2
1
2
1
1
1
1
1 1

2
) , ),...,( , ),( , (
2
k
2
k
2
2
2
2
2
1
2
1
2 2

... ...
m
) , ),...,( , ),( , (
m
k
m
k
m
2
m
2
m
1
m
1
m m


Pentru fiecare pixel de muchie se extrag din tabel localizrile posibile pentru punctul de
referin, iar apoi, pentru fiecare pereche ) , (
n
j
n
j
se calculeaz:

+ =
+ =
n
j
n
j c
n
j
n
j c
y y
x x
sin
cos
(3)
n tabloul de acumulare se incrementeaz locaia ) ,y (x
c c
.
Metoda poate fi extins pentru cazul localizrii obiectelor indiferent de mrimea
(invariana la scalare) i orientarea (invariana la rotaie) lor (Illingworth[55]), dar volumul de
calcul crete extrem de mult.

7.4. Optimizarea transformatei Hough.
Pentru limitatea volumului mare de operaii necesare n calculul transformatei Hough,
Kimme [60] propune utilizarea informaiilor privind direcia muchiei, date de vectorul gradient.
Fie cazul cercului de raz fix R.

2 2
0
2
0
R ) y (y ) x (x = + (4)
Metoda clasic implic pentru fiecare punct (x,y) din planul imaginii incrementarea n
tabloul de acumulare a tuturor punctelor aflate, n spaiul parametrilor, pe cercul:
7. Transformata Hough.
89

2 2
0
2
0
R y) (y x) (x = + (5)
Ecuaia precedent se poate scrie parametric:

=
=

cos
sin
R y y
R x x
0
0
(6)
unde (x,y) = poate fi direcia muchiei fa de abscis, furnizat de un operator tip
gradient. n acest caz, pentru fiecare punct (x,y) din planul imaginii este incrementat n tabloul de
acumulare doar punctul cu coordonatele ) ,y (x
0 0
date de ecuaiile precedente.
Ideea transformrii Hough poate fi generalizat pentru diferite alte curbe care pot fi
descrise parametric prin:
0 ) , ( = A X f (7)
unde X este vectorul de poziie al punctului curent al curbei, iar A este vectorul de parametri, a
crui dimensiune depinde de tipul curbei.
Astfel, pentru detecia cercurilor dintr-o imagine avem o descriere cu trei parametri,
,r) ,y (x
0 0
:

2 2
0
2
0
r ) y (y ) x (x = + (8)
Pentru elipse sunt patru parametri, ,a,b) ,y (x
0 0
:
1
b
) y (y
a
) x (x
2
2
0
2
2
0
=

(9)
Problema principal care apare n asemenea cazuri este dimensiunea mare ocupat de
"matricea de acumulare", devenit un tablou cu trei dimensiuni pentru cazul cercului i unul cu
patru dimensiuni pentru elips.
Metoda lui Kimme poate fi folosit i n acest caz:
0
dx
dy
b
y y
a
x x
2
0
2
0
=

(10)
unde:
) ( dx/dy tg = (11)
iar
(x,y) = (12)
este nclinarea muchiei dat de un operator tip gradient.
Ballard i Brown [10] propun o metod pentru reducerea i mai drastic a volumului de
calcul necesar construirii transformrii Hough. Astfel pentru fiecare pereche de pixeli de muchie
) ,y (x
1 1
i ) ,y (x
2 2
se pot obine urmtoarele patru ecuaii (dou sunt ecuaiile elipsei, iar celelalte
se obin prin derivare, conform metodei lui Kimme) care permit aflarea punctului de coordonate
,a,b) ,y (x
0 0
din spaiul parametrilor pentru care se incrementeaz tabloul de acumulare:

0 ) ,y (x
b
y y
a
x x
0 ) ,y (x
b
y y
a
x x
1
b
) y (y
a
) x (x
1
b
) y (y
a
) x (x
2 2
2
0 2
2
0 2
1 1
2
0 1
2
0 1
2
2
0 2
2
2
0 2
2
2
0 1
2
2
0 1

tg
tg
(13)
unde ) ,y (x
1 1
i ) ,y (x
2 2
sunt pixeli de muchie. Volumul de calcul necesar n acest caz este
proporional cu ptratul numrului de pixeli de muchie.
7. Transformata Hough.
90

Este interesant de studiat gama valorilor pe care le poate lua distana de la origine la
dreapt (Bulea[14]), pentru diferite valori ale lui . Imaginea avnd originea n colul din stnga-
jos, vom nota cu
max
X i
max
Y dimensiunile ei, iar cu ) ( R
min
i ) ( R
max
valorile limit pentru ,
funcie de unghiul .
De exemplu, dac ] 0 , 2 / [ , se constat (fig. 12) c avem:
X ) ( R cos
max max
= (14)
Analog, studiind figurile care urmeaz, 13 i 14, corespunztoare cazurilor ] 2 / , 0 [ i
respectiv ] , 2 / [ , se pot sintetiza expresii pentru ) ( R
min
i ) ( R
max
.


Rmax
x
y
0
Xmax
Ymax

L( , )

L(Rmax, )

IMAGE
Rmin
/2<<0 /2<<0 /2<<0 /2<<0


Rmax
Xmax

x
y
0
Ymax

L(Rmax, )

L( , )

IMAGE
0<</2 0<</2 0<</2 0<</2


Fig. 12. Fig. 13.


Rmax
x
y
Xmax
Ymax

IMAGE
L(Rmax, )

L( , )

/2<< /2<< /2<< /2<<
Rmin
0


Fig. 14.
Rezult relaiile:
7. Transformata Hough.
91

=
]. , 2 / ( , X
]; 2 / , 0 ( , 0
]; 0 , 2 / [- , Y
) ( R


pentru
pentru
pentru
cos
sin
max
max
min
(15)

=
]. , 2 / ( , pentru Y
]; 2 / , 0 ( ], pentru ) X Y [arctg( Y X
]; 0 , 2 / [- , X
) ( R
2 2


sin
cos
cos
max
max max max max
max
max
pentru
(16)
n figurile urmtoare sunt reprezentate domeniile de valori posibile pentru transformarea
Hough n versiunea original (fig. 15) i respectiv n versiunile Duda & Hart i O'Gorman &
Clowes ) 0 ( > (fig 16).
0 00 0 /2 /2 /2 /2 /2 /2 /2 /2



1
2 3
1
2
3
0 00 0 /2 /2 /2 /2 /2 /2 /2 /2


2
3
1
2
3

Fig. 15. Fig. 16.

S-au marcat cu (1), (2), (3) regiunile din transformare care se repet prin simetrie. Aceast
se datoreaz faptului c linie definit de perechea ) , ( este identic cu cea dat de ) , ( + .
Urmtoarea transformare (fig. 17) pemite reducerea gamei dinamice pentru unghiul de la
] , 2 / [- la intervalul ] , 0 [ :

=
) 0 , 2 / [ ), (
] , 0 [ ), (
) (



pentru
pentru
(17)
0 00 0
/2 /2 /2 /2


3
1
2
0 00 0
/2 /2 /2 /2


3
1
2

Fig. 17. Fig. 18.
7. Transformata Hough.
92
Desigur, o transformare alternativ poate fi definit pentru a reduce aceeai gam
dinamic la ] 2 / , 2 / [ i ea este dat de:



=
] , 2 / ( ), (
] 2 / , 2 / [ ), (
) (



pentru
pentru
(18)
Mai departe se pot obine doar valori pozitive pentru ) ( prin transformarea (vezi fig.
18):



=
] , 2 / [ ), ( R ) (
); 2 / , 0 [ ), (
) (



pentru
pentru
min
(19)
iar gama dinamica a lui ) ( devine:
)] ( R ) ( ,R 0 [ ) (
min max
(20)
0 00 0 /2 /2 /2 /2


3
1
2
0 00 0 /2 /2 /2 /2


/2 /2 /2 /2
3
1
2

Fig. 19. Fig. 20.

Se remarc din figura precedent (fig. 19) c transformarea propus conserv toat
informaia existent n imaginea transformrii precedente, n timp ce gama de valori pentru
unghiul s-a redus cu o treime. O reprezentare grafic a transformrii alternate este dat n Fig.
20.
Dac se apeleaz i la normalizarea:

) ( R ) ( R
) (
) (



min max


= (21)
gama de valori posibile pentru ordonat devine independent de , adic:
] , 0 [ ], 1 , 0 [ ) ( (22)

7.5. Transformarea invers.
Efectund transformarea propus, dup gsirea maximelor ) (
k k
n matricea
transformrii, liniile se localizeaz n imaginea iniial folosind transformarea invers dat de:

)] ( R ) ( )[R ( ) (
k k k k k k

min max
= (23)

+

=
] , 2 / [ ), ( R ) (
); 2 / , 0 [ ), (
) (
k k k k
k k k
k k



pentru
pentru
min
(24)
deci:
7. Transformata Hough.
93

<


=
0 ) ( ] , 2 / ( ), (
0 ) ( ] , 2 / ( ), (
] 2 / , 0 [ ), (
) (
k k k k k
k k k k k
k k k
k k




i pentru
i pentru
pentru
(25)
de unde se obine ecuaia dreptei din imaginea iniial:
) ( +y x
k k k k
= cos sin ; (26)

7.6. Calculul propriu-zis al transformatei Hough.
Transformata Hough poate fi estimat prin trasarea curbelor sinusoidale n planul ) , ( i
apoi calculnd densitatea local de curbe n fiecare punct. Definind n prealabil matricea de
acumulare, aceste curbe sunt de obicei trasate prin incrementarea tuturor locaiilor
corespunztoare ale matricii.
Cea mai simpl soluie este de a calcula, pentru fiecare valoare discret a unghiului:

k k k k
+y x ) ( cos sin = (27)
incrementnd doar elementul ) , (
k k
al matricii de acumulare. n consecin, doar o
singur locaie este incrementat pentru fiecare valoare discret a unghiului i de aici rezult
principalul dezavantaj al acestei metode: pentru poriunile de sinusoid avnd panta mare, doar
puine elemente ale matricii de acumulare sunt modificate, dup cum se poate vedea din figura
urmtoare (21):
(0,0)


(0,0)


Fig. 21. Fig. 22.

O soluie puin mai bun este de a calcula perechile ) , (
k k
i ) , (
1 k 1 k + +
, i de a
incrementa toate elementele matricii de acumulare aflate pe linia care unete aceste puncte n
planul transformatei Hough, dar timpul de calcul necesar crete (Fig. 22).
O metod mai precisa de a efectua transformata Hough se obine dac o regiune
rectangular a planului Hough, localizat n jurul punctului ) , (
k k
este asociat fiecrei locaii a
acumulatorului, ca n figura 23.


0 0 3 0 1
numr de intersecii

Fig. 23. Fig. 24.

7. Transformata Hough.
94
O idee foarte bun este incrementarea fiecrei locaii a matricii de acumulare cu o valoare
proporional cu lungimea sinusoidei curente n careul corespunztor. Astfel se obine o
reprezentare mai neted i mai precis a transformatei Hough, permind localizarea mai facil a
punctelor de maxim. Calculul acestor lungimi se simplific considerabil dac curbele sinusoidale
se aproximeaz prin segmente n interiorul fiecrui asemenea careu.
Dei aceasta este cea mai bun metod prezentat pn acum, ea are un dezavantaj major,
prezentat n figura 24. Valorile corespunztoare calculate pentru fiecare careu elementar sunt
aproximativ egale (deoarece lungimile tuturor curbelor trasate sunt aproximativ egale), chiar dac
punctul de intersecie este foarte bine precizat. Aceast situaie afecteaz precizia de localizare a
maximelor n matricea de acumulare. Problema poate fi remediat prin numrarea punctelor de
intersecie n fiecare careu elementar.
Pentru fiecare pereche de curbe definit de ) ,y (x
k k
i ) ,y (x
j j
, punctul de intersecie este
dat de:
,... 1 , 0 , 1 ... , n n
y y
x x
j k
j k
kj
= +

= arctg i (28)

2
j k
2
j k
k j j k
kj
) y (y ) x (x
y x y x
+

= (29)
Alegnd valoarea unghiului care ndeplinete condiia ] 2 , 0 [
kj
atunci:
) ( ) (
kj kj kj kj
= (30)
i urmtoarele calcule trebuiesc efectuate:



=
] , 2 / [ ), ( R ) (
); 2 / , 0 [ ), (
) (
kj kj kj kj
kj kj kj
kj kj



pentru
pentru
min
(31)

) ( R ) ( R
) (
) (
kj kj
kj kj
kj kj



min max


= (32)
Numrul necesar de operaii este 2 )/ 1 (N N , unde N este numrul de curbe, i el este
mai mare ca numrul de operaii necesar efecturii transformatei Hough clasice dac
2 )/ 1 (N > , unde este numrul de valori discrete ale unghiului, pentru ) , 0 [
kj
.
Aceast metod poate fi dezvoltat innd cont de tria muchiilor, adic setnd
incrementul utilizat la o valoare dependent de valoarea estimat a modulului gradientului pentru
fiecare punct. Aceast idee deriv din metoda lui O Gorman i Clowes.
Ca urmare, incrementul utilizat pentru fiecare intersecie este:
0 )]|), ,y (x [ | )]| ,y (x [ (| 1 ) , (
j j k k kj kj
> + + = unde f grad f grad h (33)

7.7. Rezultate comparative i concluzii.
n continuare sunt prezentate rezultatele comparative obinute aplicnd cele trei versiuni
prezentate ale transformrii Hough. S-au utilizat dou imagini generate cu 256 nivele de gri (a
doua conine zgomot gaussian, 50
2
= ), i o imagine cu 256 nivele de gri, obinut de la o
camera TV.
Pentru transformata Hough original i pentru versiunea Duda & Hart a fost utilizat
operatorul Sobel pentru detecia muchiilor, iar pragul de segmentare folosit a fost ales la 128.
Rezultatele obinute pentru varianta propus sunt prezentate pentru cazul transformatei
calculate prin metoda trasrii cu numrarea interseciilor ) 255 / 1 ( = .

7. Transformata Hough.
95
0
y
x
0
y
x

Imaginea 1 (imagine generat,fr zgomot) Imaginea 2 (imagine generat, cu zgomot)
0
y
x
0
y
x

Imaginea 1 - Muchii extrase (Sobel) Imaginea 2 - Muchii extrase (Sobel)
0 00 0
/2 /2 /2 /2 3/2 3/2 3/2 3/2 2 2 2 2


0 00 0
/2 /2 /2 /2 3/2 3/2 3/2 3/2 2 2 2 2



Imaginea 1 - Transformata Hough Imaginea 2 - Transformata Hough
7. Transformata Hough.
96
0 00 0 /2 /2 /2 /2 /2 /2 /2 /2


0
/2 /2 /2 /2 /2 /2 /2 /2



Imaginea 1 - versiunea Duda & Hart Imaginea 2 - versiunea Duda & Hart
0 00 0 /2 /2 /2 /2 /2 /2 /2 /2


0
/2 /2 /2 /2 /2 /2 /2 /2



Imaginea 1- versiunea O'Gorman & Clowes Imaginea 2- versiunea O'Gorman & Clowes
0
y
x
0
y
x

Imaginea 3 (imagine achiziionat) Imaginea 3 Muchii extrase (Sobel)
7. Transformata Hough.
97
0 00 0
/2 /2 /2 /2 3/2 3/2 3/2 3/2 2 2 2 2


0 00 0 /2 /2 /2 /2 /2 /2 /2 /2



Imaginea 3 - Transformata Hough Imaginea 3 - versiunea Duda & Hart
0 00 0 /2 /2 /2 /2 /2 /2 /2 /2



0
/2 /2 /2 /2

Imaginea 3 - versiunea O'Gorman & Clowes Imaginea 1 Versiunea optimizat, trasare


0
/2 /2 /2 /2


0
/2 /2 /2 /2

Imaginea 2 - Versiunea optimizat, trasare Imaginea 3 - Versiunea optimizat, trasare
7. Transformata Hough.
98


0
/2 /2 /2 /2



0
/2 /2 /2 /2

Image 2 - Versiunea optimizat, numrare. Image 3 - Versiunea optimizat, numrare.
Imaginea 2:
Versiunea Duda & Hart, vedere 3D.

Imaginea 2:
Versiunea propus, trasare, vedere 3D.

7. Transformata Hough.
99
Imaginea 2:
Versiunea propus, numrare, vedere 3D.

Imaginea 3:
Versiunea Duda & Hart, vedere 3D.

Imaginea 3:
Versiunea propus, trasare, vedere 3D.



7. Transformata Hough.
100
Imaginea 3:
Versiunea propus, numrare, vedere 3D.


Dei transformata Hough necesit un mare volum de operaii i mult memorie, ea rmne
un instrument foarte puternic n analiza imaginilor.
Versiunea optimizat prezint o cretere semnificativ a rezoluiei pe ambele axe. Astfel,
domeniul pentru parametrul este redus de la ] , 2 / [ pentru versiunea Duda & Hart, la
] , 0 [ sau echivalent ] 2 / , 2 / [ pentru versiunea propus. Aceasta transformare nu are zone
neutilizate n matricea de acumulare, precum prezint versiunile clasice ale transformrii Hough
(versiunea Duda & Hart folosete doar 60% din locaiile matricii de acumulare). Transformata
invers descris n aceast lucrare trebuie utilizat pentru localizarea segmentelor de dreapt din
imaginea iniial, fiecare corespunznd unui maxim local n matricea de acumulare.
Cea mai bun soluie din cele analizate este de a calcula numrul de intersecii de
sinusoide n fiecare careu elementar corespunztor locaiilor matricii de acumulare, dar timpul de
calcul este n acest caz proporional cu 2 )/ 1 N(N , unde N este numrul de puncte de muchie din
imaginea iniial. Maximele locale obinute astfel sunt mai accentuate, iar precizia localizrii lor
este mai mare. Rezultatele se mbuntesc dac se mbin aceast metod cu ideea lui O'Gorman
& Clowes - creterea influenei muchiilor accentuate prin utilizarea unui increment dependent de
valoarea absolut a modulului gradientului estimat pentru fiecare pixel din imagine.

7.8. Detalii de implementare.
Aplicaia PROImage, prezentat n capitolul 21 include mai multe implementri ale
transformatei Hough i a variantelor sale (pentru informaii suplimentare se poate studia codul
surs din fiierul "hou.pas").

(*=========================================*)
(* Transformarea Hough, versiunea original*)
Procedure HHough(k,m : byte);
var
x,y,i,j,n : integer;
raza,teta,fi : real;
RMax,Hmax : real;
Sn,Cs : array [0..127] of real;
begin
for i:=0 to 127 do
begin
teta:=i/127.0*2*PI-PI;
Sn[i]:=sin(teta);
Cs[i]:=cos(teta);
7. Transformata Hough.
101
end;

New(Hc);
for x:=0 to 127do
for y:=0 to 119 do
Hc^[y,x]:=0.0;

fi:=arctan(240/256);
RMax:=Sqrt(Sqr(255.0)+Sqr(239.0));
for x:=0 to 255 do
begin
for y:=0 to 239 do
if Pc^[y,x]<>0 then
begin
for i:=0 to 127 do
begin
raza:=x*Cs[i]+y*Sn[i]-RMax/2.0*cos(i/127.0*2*PI-PI-fi);
j:=Round(raza/RMax*59.0)+60;
Hc^[j,i]:=Hc^[j,i]+1.0;
end;
end;
end;

HMax:=0.0;
for x:=0 to 127 do
for y:=0 to 119 do
if Hc^[y,x]>HMax then
HMax:=Hc^[y,x];

if HMax<>0 then
begin
XOff:=((m-1)-2*((m-1) div 2))*256;
YOff:=((m-1) div 2)*240;
for x:=0 to 127 do
begin
for y:=0 to 119 do
begin
n:=Round(255.0*Hc^[y,x]/HMax);
Pc^[y+y,x+x]:=n;
Pc^[y+y,x+x+1]:=n;
Pc^[y+y+1,x+x]:=n;
Pc^[y+y+1,x+x+1]:=n;
end;
end;
end;
...
end;

(*===========================================*)
(* Transformarea Hough, versiunea Duda & Hart*)
Procedure DHough(k,m : byte);
var
x,y,i,l,n : integer;
raza,teta,fi : real;
RMax,Hmax : real;
Sn,Cs : array [0..127] of real;
begin
for i:=0 to 127 do
begin
teta:=i/127.0*1.5*PI-PI/2.0;
Sn[i]:=sin(teta);
7. Transformata Hough.
102
Cs[i]:=cos(teta);
end;

New(Hc);
for x:=0 to 127do
for y:=0 to 119 do
Hc^[y,x]:=0.0;

RMax:=Sqrt(Sqr(255.0)+Sqr(239.0));
for x:=0 to 255 do
begin
for y:=0 to 239 do
if Pc^[y,x]<>0 then
begin
if x=0 then
fi:=0.0
else
fi:=arctan(y/x)-PI/2.0;
j:=Round(127.0*fi/PI/1.5+127.0/3.0);
n:=Round(127.0*(fi+PI)/PI/1.5+127.0/3.0);
for i:=j to n do
begin
raza:=x*Cs[i]+y*Sn[i];
l:=Round(raza/RMax*119.0);
Hc^[l,i]:=Hc^[l,i]+1.0;
end;
end;
end;

HMax:=0;
for x:=0 to 127 do
for y:=0 to 119 do
if Hc^[y,x]>HMax then
HMax:=Hc^[y,x];

if HMax<>0 then
begin
XOff:=((m-1)-2*((m-1) div 2))*256;
YOff:=((m-1) div 2)*240;
for x:=0 to 127 do
for y:=0 to 119 do
begin
n:=Round(255.0*Hc^[y,x]/HMax);
Pc^[y+y,x+x]:=n;
Pc^[y+y,x+x+1]:=n;
Pc^[y+y+1,x+x]:=n;
Pc^[y+y+1,x+x+1]:=n;
end;
end;
...
end;

(*================================================*)
(* Transformarea Hough, versiunea OGorman & Clove*)
Procedure GHough(k,m : byte);
var
x,y,i,n,p,q : integer;
k1,k2 : integer;
raza,teta,fi : real;
RMax,HMax : real;
Sn,Cs : array [0..127] of real;
7. Transformata Hough.
103
begin

New(Hc);
New(Rc);
New(Fc);

for x:=0 to 255 do
for y:=0 to 239 do
begin
Rc^[y,x]:=0;
Fc^[y,x]:=0;
end;

for i:=0 to 127 do
begin
teta:=i/127.0*1.5*PI-PI/2.0;
Sn[i]:=sin(teta);
Cs[i]:=cos(teta);
end;

for x:=1 to 254 do
for y:=1 to 238 do
begin
k1:=Pc^[y+1,x]-Pc^[y-1,x];
k2:=Pc^[y,x+1]-Pc^[y,x-1];
n:=Round(Sqrt(Sqr(k1+0.0)+Sqr(k2+0.0)));
if n>255 then n:=255;
Rc^[y,x]:=n;
if k2=0 then
fi:=pi/2
else
fi:=arctan(k1/k2);
if fi<-PI/2 then
fi:=fi+1.5*PI
else
if fi<PI/2 then
fi:=fi+PI/2.0
else
fi:=fi-PI/2.0;
n:=Round(fi/PI*255.0);
Fc^[y,x]:=n;
end;

for x:=0 to 127 do
for y:=0 to 119 do
Hc^[y,x]:=0.0;

RMax:=Sqrt(Sqr(255.0)+Sqr(239.0));
for x:=0 to 255 do
begin
for y:=0 to 239 do
if Rc^[y,x]>110 then
begin
if x=0 then
fi:=PI/2
else
fi:=arctan(y/x);
if Fc^[y,x]*PI/255.0<fi then
fi:=Fc^[y,x]*PI/255.0+PI/2.0
else
7. Transformata Hough.
104
fi:=Fc^[y,x]*PI/255.0-PI/2.0;
for i:=0 to 127 do
begin
raza:=x*Cs[i]+y*Sn[i];
n:=Round(raza/RMax*119.0);
if n>=0 then
Hc^[n,i]:=Hc^[n,i]+Fc^[y,x];
end;
end;
end;

HMax:=0;
for x:=0 to 127 do
for y:=0 to 119 do
if Hc^[y,x]>HMax then
HMax:=Hc^[y,x];

if (HMax<>0) then
begin
XOff:=((m-1)-2*((m-1) div 2))*256;
YOff:=((m-1) div 2)*240;
for x:=0 to 127 do
for y:=0 to 119 do
begin
n:=Round(255*Hc^[y,x]/HMax);
Pc^[y+y,x+x]:=n;
Pc^[y+y,x+x+1]:=n;
Pc^[y+y+1,x+x]:=n;
Pc^[y+y+1,x+x+1]:=n;
end;
end;
...
end;

(*============================================*)
(* Transformarea Hough, versiunea optimizat 1*)
Procedure NHough(k,m : byte);
var
x,y,i,j,n : integer;
raza,teta,fi : real;
HMaxim,RMaxim : real;
Sn,Cs,rmin,rmax : array [0..127] of real;
begin
New(Hc);
for x:=0 to 127do
for y:=0 to 119 do
Hc^[y,x]:=0.0;

fi:=arctan(240/256);
RMaxim:=Sqrt(Sqr(255.0)+Sqr(239.0));
for i:=0 to 127 do
begin
teta:=i/127.0*PI;
Sn[i]:=sin(teta);
Cs[i]:=cos(teta);
if teta<PI/2 then
rmax[i]:=RMaxim*cos(fi-teta)
else
rmax[i]:=239.0*sin(teta);
if teta<PI/2 then
rmin[i]:=0.0
7. Transformata Hough.
105
else
rmin[i]:=255.0*cos(teta);
end;

for x:=0 to 255 do
begin
for y:=0 to 239 do
if Pc^[y,x]>0 then
begin
for i:=0 to 127 do
begin
raza:=(x*Cs[i]+y*Sn[i]-rmin[i])/(rmax[i]-rmin[i]);
j:=119-Round(raza*119.0);
Hc^[j,i]:=Hc^[j,i]+1.0;
end;
end;
end;

HMaxim:=0.0;
for x:=0 to 127 do
for y:=0 to 119 do
if Hc^[y,x]>HMaxim then
HMaxim:=Hc^[y,x];

if HMaxim<>0 then
begin
XOff:=((m-1)-2*((m-1) div 2))*256;
YOff:=((m-1) div 2)*240;
for x:=0 to 127 do
begin
for y:=0 to 119 do
begin
n:=Round(255.0*Hc^[y,x]/HMaxim);
Pc^[y+y,x+x]:=n;
Pc^[y+y,x+x+1]:=n;
Pc^[y+y+1,x+x]:=n;
Pc^[y+y+1,x+x+1]:=n;
end;
end;
end;
...
end;

(*============================================*)
(* Transformarea Hough, versiunea optimizat 2*)
Procedure EHough(k,m : byte);
var
x,y,i,j,n,p,n1,n2 : integer;
raza,teta,fi : real;
Thr,Lmb : real;
HMaxim,RMaxim : real;
Sn,Cs,rmin,rmax : array [0..127] of real;
L,r,s : longint;
begin
New(Hc);
New(Cc);

Cc^[0,0]:=0;
Cc^[0,255]:=0;
Cc^[239,0]:=0;
Cc^[239,255]:=0;
7. Transformata Hough.
106
for x:=1 to 254 do
begin
n:=abs(integer(Pc^[0,x-1])-Pc^[0,x+1]);
if n>255 then n:=255;
Cc^[0,x]:=n;
end;
for x:=1 to 254 do
begin
n:=abs(integer(Pc^[239,x-1])-Pc^[239,x+1]);
if n>255 then n:=255;
Cc^[239,x]:=n;
end;
for y:=1 to 238 do
begin
n:=abs(integer(Pc^[y-1,0])-Pc^[y+1,0]);
if n>255 then n:=255;
Cc^[y,0]:=n;
end;
for y:=1 to 238 do
begin
n:=abs(integer(Pc^[y-1,255])-Pc^[y+1,255]);
if n>255 then n:=255;
Cc^[y,255]:=n;
end;
for x:=1 to 254 do
for y:=1 to 238 do
begin
n1:=integer(Pc^[y-1,x-1])-Pc^[y-1,x+1]+Pc^[y,x-1]-
Pc^[y,x+1]+Pc^[y+1,x-1]-Pc^[y+1,x+1];
n2:=integer(Pc^[y-1,x-1])-Pc^[y+1,x-1]+Pc^[y-1,x]-
Pc^[y+1,x]+Pc^[y-1,x+1]-Pc^[y+1,x+1];
n1:=abs(n1);n2:=abs(n2);
if n>n2 then n:=n1
else n:=n2;
if n>255 then n:=255;
Cc^[y,x]:=n;
end;

for i:=0 to 127 do
begin
teta:=i/127.0*1.5*PI-PI/2.0;
Sn[i]:=sin(teta);
Cs[i]:=cos(teta);
end;

fi:=arctan(240/256);
RMaxim:=Sqrt(Sqr(255.0)+Sqr(239.0));
for i:=0 to 127 do
begin
teta:=i/127.0*PI;
Sn[i]:=sin(teta);
Cs[i]:=cos(teta);
if teta<PI/2 then
rmax[i]:=RMaxim*cos(fi-teta)
else
rmax[i]:=239.0*sin(teta);
if teta<PI/2 then
rmin[i]:=0.0
else
rmin[i]:=255.0*cos(teta);
7. Transformata Hough.
107
end;

for x:=0 to 127 do
for y:=0 to 119 do
Hc^[y,x]:=0.0;

New(Vc);
L:=0;
Thr:=224;
for i:=0 to 255 do
for j:=0 to 239 do
if Cc^[j,i]>Thr then
begin
Vc^[L]:=i;
Vc^[L+1]:=j;
L:=L+2;
end;

Lmb:=1.0/255.0;
for r:=0 to (L div 2)-1 do
begin
x:=Vc^[r+r];
y:=Vc^[r+r+1];
for s:=0 to r-1 do
begin
n1:=Vc^[s+s];
n2:=Vc^[s+s+1];
(*pentru fiecare pereche valid*)
if y=n2 then
fi:=PI/2
else
fi:=-arctan((x-n1)/(y-n2));
if fi<0 then
fi:=fi+PI;
n:=round(fi/PI*127.0);
raza:=x*Cs[n]+y*Sn[n];
if fi>PI/2 then
raza:=raza-rmin[n];
raza:=raza/(rmax[n]-rmin[n]);
j:=119-Round(raza*119.0);
Hc^[j,n]:=Hc^[j,n]+1.0+Lmb*Cc^[y,x];
end;
end;

HMaxim:=0;
for x:=0 to 127 do
for y:=0 to 119 do
if Hc^[y,x]>HMaxim then
HMaxim:=Hc^[y,x];

if (HMaxim<>0) then
begin
XOff:=((m-1)-2*((m-1) div 2))*256;
YOff:=((m-1) div 2)*240;
for x:=0 to 127 do
for y:=0 to 119 do
n:=Round(255*Hc^[y,x]/HMaxim);
Pc^[y+y,x+x]:=n;
Pc^[y+y,x+x+1]:=n;
Pc^[y+y+1,x+x]:=n;
7. Transformata Hough.
108
Pc^[y+y+1,x+x+1]:=n;
end;
end;
...
end;

8. "Potrivirea" imaginilor (image matching).
109





8. "Potrivirea" imaginilor (image matching).




8.1. Principiul metodei.
8.2. Filtrul de "potrivire".
8.3. nregistrarea imaginilor translate (image registration).
8.4. "Potrivirea" imaginilor i estimatorul de micare MPEG.




8.1. Principiul metodei.
Una din cele mai importante clase de metode de localizare a obiectelor ntr-o imagine are
la baz aa-numita "potrivire" a coninutului unei imagini cu un model al obiectului cutat.
Aceasta este n esen o operaie de cutare a minimului unei msuri a diferenei ntre imagine i
model. "Potrivirea" ideal se obine arareori, datorit prezenei zgomotelor, efectelor digitizrii
imaginii, etc.
Dac se noteaz cu (m,n) f imaginea digital, unde M m M i N n N , iar cu
(j,k) T modelul cutat, o msur a distorsiunii dintre imagine i model poate fi scris:
[ ]
2
j k
n) m,k (j (j,k) (m,n)

= T f d (1)
"Potrivirea" se obine pentru valoarea minim a expresiei anterioare sau cnd ) n , m ( d
scade sub un anumit prag. Relaia anterioar se poate simplifica mult notnd:
(m,n) (m,n) 2 (m,n) (m,n)
3 2 1
d d d d + = (2)
unde

=
j k
2
1
(j,k)] [ (m,n) f d (3)

=
j k
2
n) m,k (j (j,k) (m,n) T f d (4)

=
j k
2
3
n)] m,k (j [ (m,n) T d (5)
Termenul (m,n)
3
d este constant i independent de coordonatele (m,n) . Energia imaginii
din fereastra de "potrivire" este reprezentat de (m,n)
1
d , n timp ce (m,n)
2
d este chiar corelaia
ntre imagine i model, n fereastra curent. Deoarece condiia de minim poate fi atins pentru
valori mari ale corelaiei (m,n)
2
d i ale energiei imaginii, (m,n)
1
d , chiar n condiii de
"nepotrivire", se utilizeaz intercorelaia normalizat drept msur a "potrivirii", adic:

(m,n)
(m,n)
(m,n)
1
2
FT
d
d
R
~
= (6)
8. "Potrivirea" imaginilor (image matching).
110
Decizia de "potrivire" se ia dac este ndeplinit condiia:
(m,n) (m,n)
R FT
L R
~
> (7)

8.2. Filtrul de "potrivire".
Operaia de gsire a extremului unei msuri a similitudinii ntre imagine i model poate fi
privit ca o filtrare a imaginii. Filtrul de "potrivire" furnizeaz la ieire o msur a acestei
similitudini, care poate fi chiar intercorelaia normalizat.
Fie imaginea (x,y) g , obinut din imaginea iniial (x,y) f afectat de zgomotul (x,y) n .
(x,y) (x,y) (x,y) n f g + = (8)
Operaia de filtrare furnizeaz la ieire:
(x,y) (x,y) (x,y)
0
h g g = (9)
unde (x,y) h este rspunsul la impuls al filtrului de "potrivire".
Corespunztor intercorelaiei normalizate, n acest caz avem raportul semnal-zgomot:

N
(x,y)| |
2
S
(10)
unde
2 2
(x,y)| (x,y) | (x,y)| | h g S = este energia instantanee la ieirea filtrului, iar
N este energia zgomotului la ieirea filtrului.
Notnd cu ) , (
y x N
W densitatea spectral de putere a zgomotului, rezult:



+

+

+

+

+
=
y x
2
y x y x N
y x y x y x y x
2
d d )| , ( )| , (
d )d jy (jx ) , ( ) , (
N
(x,y)| |
H W
exp H G
S
(11)
Expresia de mai sus este maximizat pentru:

) , (
) jy jx ( ) , (
) , (
y x N
y x y x
y x
W
exp G
H

=

(12)
Pentru zgomot alb, numitorul expresiei de mai sus este o constant. Pentru imagini
modelate stochastic, soluia cutat este dat de:

) , ( ) , (
) jy jx ( ) , (
) , (
y x N y x F
y x y x
y x
W W
exp G
H
+

=

(13)
Pentru cazul discret, fie g imaginea observat, format prin suprapunerea zgomotului n
peste imaginea ideal f:
n f g + = (14)
Dac m este matricea filtrului cutat, n urma acestei filtrri se obine:
) (
T
n f m g
~
+ = (15)
Se utilizeaz notaiile:

2 T
) ( S f m = - energia imaginii ideale (fr zgomot), i
m K m n m n m E
n
T T T T
} ) )( {( N = = , energia zgomotului trecut prin filtrul m, unde
n
K este matricea de covarian ataat zgomotului.
Raportul semnal zgomot este dat de:

m K m
f m
n
T
2 T
) (
N
S
= (16)
8. "Potrivirea" imaginilor (image matching).
111
Proiectarea filtrului se face n condiia maximizrii raportului semnal-zgomot, ceea ce
duce la:
f K m
1
n

= (17)
iar pentru semnale stochastice:
f K K m
1
n f

+ = ) ( (18)

8.3. nregistrarea imaginilor translate (image registration).
O clas larg de aplicaii ale "potrivirii" imaginilor se refer la realizarea unei
corespondene la nivel de pixel n cazul unor imagini provenite de la doi senzori diferii, imagini
ale aceleai scene, ns translate, rotite una fa de alta sau care prezint unele diferene de scar.
Operaia se numete nregistrarea imaginilor. n literatur se mai citeaz cazul nregistrrii
imaginilor unor scene vzute din perspective diferite.
Cazul nregistrrii imaginilor translate relativ una fa de alta este cel mai des ntlnit. Fie
dou imagini, (j,k)
1
f i (j,k)
2
f , unde J j 1 i K k 1 . O msur a gradului de potrivire a
celor dou imagini este funcia de intercorelaie dat de:

2 / 1
j k
2
2
2 / 1
j k
2
1
j k
2 1
)/)] 1 (N n ,k 2 )/ 1 (M m (j [ (j,k)] [
) 2 )/ 1 (N n ,k 2 )/ 1 (M m (j (j,k)
(m,n)

+ + + +

+ + + +
=

f f
f f
R
(19)
Studiind geometria operaiei de "potrivire", deci de calcul a funciei de intercorelaie pe
baza schemei urmtoare:
1 N
1
M
n
m
1 K
1
J
k
j
f(j,k)
f(j,k)
1
2
R(m,n)

Fig. 1. Geometria operaiei de "potrivire".

rezult limitele de sumare pentru expresia lui R(m,n):
] 2 )/ 1 (M m MIN[J,J j ] 2 )/ 1 (M ,m 1 [ + + max (20)
] 2 )/ 1 (N n MIN[K,K k ] 2 )/ 1 (N ,n 1 [ + + max (21)
Dezavantajele modului de operare descris principial pn acum constau n alura
maximumului funciei de intercorelaie (m,n) R , care este de obicei plat, ceea ce face
problematic detecia acestui maxim, mai ales n prezena zgomotelor care afecteaz ambele
imagini. De aceea se utilizeaz funcia de intercorelaie statistic, avnd o expresie asemntoare
celei precedente:
8. "Potrivirea" imaginilor (image matching).
112
2 / 1
j k
2
2
2 / 1
j k
2
1
j k
2 1
S
)/)] 1 (N n ,k 2 )/ 1 (M m (j [ (j,k)] [
) 2 )/ 1 (N n ,k 2 )/ 1 (M m (j (j,k)
(m,n)

+ + + +

+ + + +
=

g g
g g
R (22)
unde (j,k)
1
g i (j,k)
2
g se obin din imaginile (j,k)
1
f i (j,k)
2
f prin filtrrile:
(j,k) (j,k)] (j,k) [ (j,k)
1 1 1 1
d f f g = (23)
(j,k) (j,k)] (j,k) [ (j,k)
2 2 2 2
d f f g = (24)
S-au notat cu (j,k)
1
f i (j,k)
2
f mediile spaiale ale imaginilor n fereastra de corelaie.
Filtrele sunt descrise de rspunsul la impuls:

+
+ + +
+
+
=
2 2 2
2 2 2 2
2 2 2
2 2
i
) 1 (
) 1 ( ) 1 ( ) 1 (
) 1 (
) 1 (
1


d (25)
unde este o msur a corelaiei existente ntre pixelii adiaceni.
Aceast metod permite accentuarea semnificativ a maximelor funciei de intercorelaie,
pentru valori apropiate de 1 ale parametrului .
Volumul extrem de mare de calcule necesare pentru obinerea funciei de intercorelaie
poate fi diminuat aplicnd unele strategii, descrise sumar n continuare.
Astfel Rosenfeld i Vandenburg [97],[109] au propus reducerea ntr-o prim faz a
rezoluiei imaginilor ce se compar, fie prin subeantionare, fie prin simpla selecie a unui subset
de pixeli. Determinarea, folosind aceste imagini a maximumului funciei de intercorelaie, duce la
o localizare grosier a lui. Aceasta permite restrngerea semnificativ a dimensiunilor ferestrei de
corelaie pentru calculul functiei de autocorelaie a imaginilor iniiale, deci reducerea volumului
de calcul.
Alt metod, descris de Barnea i Silverman [11] propune calculul cumulativ al funciei
de eroare pentru cele dou imagini translate, oprindu-se calculul intercorelaiei dac eroarea
calculat, la un anumit pas, depete un anumit prag.
Metodele descrise pn acum pot fi extinse pentru compararea imaginilor rotite una fa
de alta, folosind n loc de (j,k)
2
f funcia ) (j,k;
2
f care reprezint replicile rotite/translate ale
celei de-a doua imagini. Generalizarea metodelor de mai sus const n nlocuirea funciilor de
imagine cu trsturi extrase din imagini, cum ar fi momentele invariante, coeficienii unor
transformri ortogonale, etc.

8.4. "Potrivirea" imaginilor i estimatorul de micare MPEG.
Probabil c cea mai rspndit implementare a "potrivirii" de imagini este cea care se
gsete deja implementat (prin software sau hardware) pe toate calculatoarele personale: este
vorba de codec-ul MPEG, care permite vizualizarea secvenelor video.
Codec-ul MPEG (codor i decodor) realizeaz compresia/decompresia secvenelor de
imagini n timp real. MPEG (Motion Pictures Expert Group) nu este singurul algoritm de acest
tip. Exist o multitudine de standarde de compresie a secvenelor video, cum ar fi CCITT H.261,
MPEG-1, MPEG-2, MPEG4.
Pentru a realiza o rat ridicat de compresie i a menine n acelai timp o calitate
satisfctoare a secvenei de imagini la decodare, se utilizeaz tehnici de codare intra-imagine i
inter-imagini (C-Cube[27]), (Jain[56])
Codarea intra-imagine este foarte apropiat principial de codarea JPEG: imaginea este
mprit n blocuri de 8x8 pixeli, fiecrui asemenea bloc i se aplic transformarea cosinus
discret. Din matricea 8x8 a transformarii se obine un vector n urma ordonrii Zig-Zag.
8. "Potrivirea" imaginilor (image matching).
113
Urmeaz apoi cuantizarea vectorului ZZ i n final o codare tip Huffman sau aritmetic. Acest tip
de codate elimin doar redundana spaial a secvenei de imagini.
O secven de imagini se caracterizeaz ns i printr-o redundan temporal:
coninuturile imaginilor succesive din secven sunt adesea foarte apropiate. Diferenele care apar
sunt datorate n cea mai mare parte micrii elementelor ce compun imaginea n cadru. Plecnd de
la aceast observaie se presupune c imaginea curent poate fi modelat ca fiind o translaie a
imaginii precedente.
Fig.2. Schema bloc codor MPEG-1.

Practic, imaginea se descompune n blocuri 8x8(CCITT) sau 16x16(MPEG-1) i ceea ce
se codeaz este, pentru fiecare bloc n parte, diferena ntre blocul curent i un bloc din imaginea
precedent (bloc de referin) pentru care diferena absolut (absolute difference - AE) este
minim:

=
15
0
15
0
) , ( ) , ( ) , (
y x y x
d j d i j i d d g f E (26)
Localizarea acestui bloc de referin se face deci prin metoda care face subiectul acestui
capitol, adic prin "potrivire de imagini".
Odat determinat, blocul de referin este reprezentat intern de un vector coninnd
coordonatele carteziene.
Desi conceptual foarte simpl, metoda necesit un numr foarte mare de operaii
elementare. Practic, pentru fiecare pixel din imagine se calculeaz diferena absolut iar toate
calculele trebuiesc terminate ntr-un interval de timp dat de perioada de cadre (intervalul de timp
dintre dou imagini succesive) pentru semnalul video, adic 20msec pentru PAL-SECAM.
Pentru a micora numrul de operaii, standardul MPEG-1 folosete algoritmul TSS
(Three-Step-Search = cutare n trei pai). Algoritmul evalueaz mai nti diferena absolut n
centrul zonei de cutare i n alte 8 locaii din zona de cutare aflate n jurul centrului. Locaia
care furnizeaz diferena absolut minim devine centrul zonei de cutare pentru pasul al doilea,
care de aceast dat are dimensiunea redus la jumtate. Cutarea se repet de trei ori.
Reordonare
imagini
ntreesute
Semnal
video
Estimator
de
micare
DCT Cuantizor Codare Buffer M
U
L
T
I
P
L
E
X
O
R
Semnal
video
Regulator
Decuantizor
IDCT
Memorie,
Predictor
9. Extragerea trsturilor imagistice.
115





9. Extragerea trsturilor imagistice.




9.1. Tipuri de trsturi i evaluarea lor.
9.2. Trsturi de amplitudine.
9.2.1. Trsturi ale histogramei.
9.2.2. Trsturi ale matricii de coocuren.
9.3. Trsturi n domeniul transformatelor.
9.3.1. Construcia unui selector optimal de trsturi.
9.4. Momente.
9.4.1. Momente invariante.
9.4.2. Momente ortogonale.
9.4.2. Momentele Zernike.
9.5. Trsturi geometrice.
9.6. Trsturi ale imaginilor de clas (3).
9.6.1. Segmentarea curbelor.
9.6.2. Descriptorii Fourier.
9.7. Caracterizarea texturilor.
9.8. Trsturi structurale-sintactice.
9.9. Detalii de implementare.




9.1. Tipuri de trsturi i evaluarea lor.
O multitudine de trsturi pot fi extrase din imaginile de diferite clase. Aceste trsturi
urmeaz a fi folosite n faza de recunoatere. n prezent nu exist nc o teorie general asupra
modului de selecie a celor mai semnificative trsturi. Criteriile de selecie a lor se bazeaz pe
importana lor n caracterizarea formei, pe performanele asigurate n recunoatere i nu n ultimul
rnd pe costul acestora (vitez de calcul, memorie ocupat, etc.).
Exist o strns interdependen ntre algoritmii de segmentare i cei de extragere a
trsturilor. Segmentarea n sine poate fi vzut ca o extragere de trsturi, n msura n care
pixelii zonelor de interes obtinui prin segmentare prezint drept trsturi proprietile impuse de
operaia de segmentare.
Cele mai simple trsturi care pot fi extrase dintr-o imagine sunt cele de amplitudine,
obinute din studiul histogramei i a matricii de coocuren.
Utiliznd o transformare ortogonal (Karhunen-Loeve discret, Fourier Discret, Cosinus
Discret, Hadamard, etc) i bazndu-ne pe proprietile de decorelare ale acestor transformri, se
pot folosi drept trsturi coeficienii acestor transformri.
Recunoaterea imagistic se refer cel mai des la recunoaterea obiectelor i regiunilor
care apar ntr-o imagine. Obiectele pot fi descrise fie prin contur, fie prin schelet, a cror
reprezentare a fost abordat deja n paragraful 6.3.3. Caracterizrile cele mai directe ale regiunilor
9. Extragerea trsturilor imagistice.
116
au la baz transformarea zonelor bidimensionale de imagine n vectori care se codeaz
corespunztor.
Des folosite sunt reprezentrile care au la baz arbori cuadratici, pentru care exist
dezvoltate o multitudine de algoritmi de parcurgere, cutare, stocare.


Fig. 1. Arbori cuadratici pentru reprezentarea imaginilor.

De asemenea, aceast reprezentare permite nu numai compresia imaginilor ci i extragerea
facil a unor trsturi.
Trsturile care se extrag n vederea caracterizrii obiectelor i regiunilor sunt
regenerative sau neregenerative, ultimele putnd fi caracterizate drept simple msurtori asupra
imaginilor.
O ntreag clas de trsturi mult folosite la analiza obiectelor i regiunilor are la baz
momentele. Teoria matematic a momentelor permite descrierea regenerativ a elementelor de
imagine, compararea prin "potrivirea" momentelor, etc. Exist momente ortogonale sau nu,
invariante sau nu la translaie, rotaie, scalare.
Foarte des folosite sunt trsturile geometrice (neregenerative), care se utilizeaz mult,
mai ales datorit simplitii lor.
Dac avem de analizat o imagine de clas (3), deci format din linii i curbe continue
formnd contururi nchise i/sau grafuri, o caracterizare a lor se poate face fie prin metode ce in
de segmentarea curbelor (vezi paragrafele 6.4.), fie utiliznd descriptorii Fourier.
Trsturile structurale/morfologice ncearc s realizeze o descriere a obiectelor pe baza
unui set de elemente de structur, numite primitive. Adugnd la acestea o sintax care s descrie
prin reguli interdependenele ntre primitive, se obine o descriere sintactic.
Evaluarea trsturilor are la baz cel mai adesea utilizarea unei msuri ntre diferitele
seturi de trsturi extrase pentru aceleai clase de obiecte (Pratt[84]). Cel mai des se utilizeaz n
acest scop distana Bhattacharyya (sau B-distana) care se definete, pentru vectorul de trsturi x
i perechea de clase
1
S i
2
S , prin:
{ }

= dx )] (x|S ) (x|S [ ) ,S (S
2 / 1
2 1 2 1
p p ln B (1)
unde cu ) p(x|S
1
s-au notat probabilitile condiionate.
Deoarece cel mai adesea densitile de probabilitate ale trsturilor extrase respect legea
normal, n acest caz B-distana se scrie:
9. Extragerea trsturilor imagistice.
117

)
`

+
+
+
(

+
=

2 / 1
2
2 / 1
1
2 1 2
1
2 1
1
2 1 T
2 1 2 1
| | | |
) (
2
1
) u (u
2

) u (u
8
1
) ,S (S ln B (2)
unde
i
u i
i

reprezint vectorul mediu de trsturi i respectiv matricea de covarian a


trsturilor ce caracterizeaz formele din clasa "i".
Nu n ultimul rnd trebuie menionat c, pentru fiecare trstur trebuiesc specificate
proprietile de invarian pe care aceasta le prezint, invariane care trebuiesc respectate de toate
trsturile aplicate la intrarea clasificatorului, n concordan cu cerinele aplicaiei.

9.2. Trsturi de amplitudine.
Dup cum s-a menionat deja, cele mai simple trsturi care se pot extrage dintr-o imagine
sunt trsturile de amplitudine. Orice imagine se poate caracteriza prin media nivelelor de gri ale
pixelilor afereni:


= =
+ +
+
=
w
w i
w
w j
2
j) i,y (x
) 1 w 2 (
1
(x,y) f M (3)
precum i prin deviaia lor standard, numit i dispersia imaginii:


= =
+ + + +
+
=
w
w i
2
w
w j
2
2
j)] i,y (x m j) i,y (x [
) 1 w 2 (
1
(x,y) f (4)
Valorile (x,y) M i (x,y)
2
se pot calcula fie pentru ntreaga imagine, fie pentru anumite
vecinti, eventual ataate unor anumii pixeli din imagine. n formulele anterioare, s-a notat
latura vecintii cu 1 w 2 + .

9.2.1. Trsturi ale histogramei.
Alte caracterizri extrem de simple ale imaginilor se pot obine direct din analiza
histogramei imaginii, care poate fi asimilat cu o statistic de ordinul unu asociat nivelelor de gri
ale pixelilor din imagine.
Alura histogramei furnizeaz foarte multe informaii privind structura imaginii. Astfel, o
histogram ngust indic o imagine cu contrast sczut, o histogram ngust i "deplasat" ctre
stnga corespunde unei imagini avnd i luminozitate sczut, iar o histogram bimodal
sugereaz prezena unor obiecte cu un anume nivel de gri preponderent, pe un fond de un alt nivel
de gri.
n continuare sunt enumerate principalele trsturi care se pot extrage din vectorul
histogram:
Media: z (z) z S
1 L
0 z
M
=

=
H (5)
Dispersia:
z
1 L
0 z
2
D
) z (z S
(

=
(6)
(Skewness):

=
=
1 L
0 z
3
3
z
S
(z) ) z (z
1
S H

(7)
(Kurtosis):

=
=
1 L
0 z
4
4
z
K
3 (z) ) z (z
1
S H

(8)
Energia:

=
=
1 L
0 z
2
N
(z)] [ S H (9)
9. Extragerea trsturilor imagistice.
118
Entropia:

=
=
1 L
0 z
2 E
(z)] [ (z) S H log H (10)
Toate aceste trsturi sunt n esen estimri de ordin statistic efectuate ns nu asupra
imaginii, ci doar asupra vectorului histogram. Se folosesc destul de mult n analiza texturilor.

9.2.2. Trsturi ale matricii de coocuren.
Alt caracterizare a imaginii are la baz matricea de coocuren, care este n esen o
estimare statistic de ordinul doi. Dac se noteaz cu (a,b) P probabilitatea (estimat din analiza
imaginii) ca pixelul cu coordonatele ) k , j ( s aib nivelul de gri "a" i pixelul cu coordonatele
) n , m ( s aib valoarea "b", deci:
b} (m,n) a; (j,k) { (a,b) = = = f f P P (11)
se pot extrage alte trsturi care s caracterizeze interdependena ntre perechile de pixeli
din imagine:
Autocorelaia:

=
=
1 L
0 a
1 L
0 b
A
(a,b) ab S P (12)
Covariana:

=
=
1 L
0 a
1 L
0 b
C
(a,b) ) b )(b a (a S P (13)
unde

=
=
1 L
0 a
1 L
0 b
(a,b) a a P i

=
=
1 L
0 a
1 L
0 b
(a,b) b b P (14)
Ineria:

=
=
1 L
0 a
1 L
0 b
2
I
(a,b) b) (a S P (15)
Modulul:

=
=
1 L
0 a
1 L
0 b
V
(a,b) b| |a S P (16)
Diferena invers:

=
+
=
1 L
0 a
1 L
0 b
2
F
b) (a 1
(a,b)
S
P
(17)
Energia:

=
=
1 L
0 a
1 L
0 b
2
G
(a,b)] [ S P (18)
Entropia:

=
=
1 L
0 a
1 L
0 b
2 T
(a,b)] [ (a,b) S P log P (19)
Ca i n cazul histogramei, alura matricii de coocuren poate furniza multe informaii
referitoare la imagine. Astfel, ntr-o imagine cu o puternic corelaie ntre pixeli, valorile
semnificative ale matricii de coocuren se grupeaz de-a lungul diagonalei principale.
Trsturile enumerate mai sus se folosesc mult pentru caracterizarea texturilor.

9.3. Trsturi n domeniul transformatelor.
Transformarea Fourier a fost i este foarte mult folosit n analiza imaginilor. Pentru cazul
continuu, ea este descris de:


+

+

= )dxdy jy jx ( (x,y) ) , (
y x y x
exp f F (20)
De remarcat faptul c exist metode optice pentru realizarea acestei transformri, un
senzor optic putnd furniza la ieire spectrul de putere sub forma:

2
y x y x
) , ( ) , ( F M = (21)
9. Extragerea trsturilor imagistice.
119
Aceste informaii sunt invariante la translaia originii lui (x,y) f , i pot fi folosite ca atare.
Dac se trece ) , (
y x
M n coordonate polare, o integrare unghiular n gama ] 2 , 0 [ , produce
un set de trsturi invariante la rotaie:

=
2
0
)d , ( ) ( M N (22)
unde
2
y
2
x
+ = i ) / (
x y
arctan = .
Oarecum similar, invariana la schimbarea scalei se obine tot printr-o integral, i anume:

+
=
0
d ) , ( ) P( M (23)
Alte trsturi pot fi obinute din ) , (
y x
M prin intermediul unei integrale de suprafa
pe domenii de diferite forme (band orizontal, band vertical, sector circular, sector unghiular),
rezultnd trsturile
4 3 2 1
,S ,S ,S S , ca funcii de parametrii regiunii de integrare.


+

+
=
) 1 (m
(m)
y x y x 1
y
y
d )d , ( (m) S M (24)


+ +

=
) 1 (m
(m)
y x y x 2
x
x
d )d , ( (m) S M (25)


+
=
) 1 (m
(m)
2
0
3
d )d , ( (m) S M (26)


+ +
=
0
) 1 (m
(m)
4
d )d , ( (m) S M (27)
Aceleai metode pot fi definite i n cazul altor transformri ortogonale discrete sau
continue.

9.3.1. Construcia unui selector optimal de trsturi.
Un selector optimal de trsturi se construiete astfel:

trsturi
reducere
T T
-1
X Y
(date)
YR XR

Fig. 2. Schema bloc a selectorului optimal de trsturi.

unde:
) ,...,x ,x (x
N 2 1
= X - vectorul de intrare;
) ,...,y ,y (y
N 2 1
= Y - vectorul transformat;
) ,...,c ,c ,c ,...,y ,y (y
N 2 k 1 k k 2 1 + +
= YR - vectorul de trsturi redus; el se obine din YR
nlocuind cu constante ultimele k) (N valori;
) ,...,xr ,xr (xr
N 2 1
= XR - estimaia vectorului de intrare.
9. Extragerea trsturilor imagistice.
120

T
T
N
T
2
T
1
u ,..., u , u T = , unde ) ,...,u ,u (u
jN 1 j 0 j
T
j
= u este matricea unei transformri
ortogonale unitare care se va determina n condiiile minimizrii erorii medii ptratice date de:
)} ( ) {( e
T
X X X X E = (28)
Notnd matricea de covarian a intrrii cu:
} ) )( {(
T
XX
X X X X E K = (29)
unde } {X E X = , se obine transformata Karhunen-Loeve discret (sau Hotelling) cu
proprietile:
Deoarece implementarea transformrii (KL) este dificil, modelnd intrarea } { X cu un
proces Markov de ordinul 1, cea mai bun aproximare a transformrii Karhunen-Loeve discrete
este DCT (Transformata Cosinus Discret). Aceast modelare nu este foarte restrictiv i se poate
folosi cu succes n multe aplicaii. Ahmed i Rao [03] constat c asemenea proprieti de
decorelare a datelor prezint multe transformri (Fourier, Hadamard, Walsh-Hadamard) dar ele
sunt cel mai pregnante la Transformata Cosinus Discret.
Pentru calculul DCT exist nu numai algoritmi rapizi de calcul, ci i circuite specializate
de mare vitez. Pentru cazul bidimensional se folosete:
)
N
v k
( )
N
u j
( (j,k)
N 2
1
(u,v)
1 N
0 j
1 N
0 i
cos cos f F

=
= (30)
rezultnd o matrice de aceeai dimensiune, cu valori reale, slab corelate. Valorile
semnificative ale acestei matrici sunt plasate n colul din stnga sus.

9.4. Momente.
Teoria general a momentelor constituie un instrument util n analiza i descrierea
obiectelor i regiunilor imagistice. Pentru o funcie mrginit real (x,y) f , definit pe o regiune
finit R, momentul (regulat) de ordinul q) (p + se definete prin:

=
R
q p
p,q
dxdy y (x,y)x m f (31)
Funcia caracteristic a lui (x,y) f se definete prin conjugata transformrii ei Fourier:

+ =

R
2 1

2 1
)}dxdy y j(x 2 { (x,y) ) , ( exp f F (32)
Funcia generatoare de momente pentru (x,y) f fiind definit de relaia:

+ =
R
2 1

2 1
)dxdy y (x (x,y) ) , ( exp f M (33)
pe baza ei se pot obine momentele de orice ordin cu expresia:

0
q
2
p
1
2 1
q p
p,q
2 1

) , (
m
= =
+
=

M
(34)
1. 0 ) (
j N j XX
= u I K - liniile matricii transformrii sunt valorile proprii ale matricii
de covarian a domeniului de intrare;
2. ) ,..., , (
N 2 1 YY
diag K = - transformarea furnizeaz la ieire coeficieni necorelai;
3.

+ =
=
N
1 k j
j
- expresia erorii.
9. Extragerea trsturilor imagistice.
121
Faptul c momentele sunt trsturi regenerative rezult din teorema de reprezentare prin
momente, care afirm c un set infinit de momente ,...} 1 , 0 ;p,q {m
p,q
= determin n mod unic
funcia (x,y) f i invers. Formula de reconstrucie a lui (x,y) f din momentele sale este:



+

+

+
=
+
=
+
(

+ =
2 1
0 p 0 q
q
2
p
1
q p
p,q 2 1
d d
p!q!
j) 2 (
m )] y j(x 2 [ (x,y) exp f (35)
n cazul discret momentele se calculeaz cu:

=
x y
q p
pq
(x,y) y x m f (36)
unde (x,y) f este funcia imagine. Dac, n plus, imaginea este binar, calculul
momentelor devine separabil:


=
y
q
x
p
p,q
y x m (37)

9.4.1. Momente invariante.
Pe baza momentelor regulate definite anterior se construiete momentul centrat de ordinul
q) (p + :


+

+

= (x,y)dxdy ) y (y ) x (x
q p
p,q
f (38)
iar pentru cazul discret avem:

=
x y
q p
p,q
(x,y) ) y (y ) x (x f (39)
Momentul centrat normalizat de ordinul q) (p + se definete prin:

] 1 2 q)/ [(p
0 , 0
p,q
p,q
+ +
=

(40)
Pe baza momentelor centrate normalizate de diferite ordine au fost definite un numr de
apte momente invariante la translaie, scalare i rotaie. Ele sunt date de (Gonzales[42]):
2 0 0 2 1 , ,
+ =
2
1 1
2
2 0 0 2 2
4 ) (
, , ,
+ + =
2
1 2 3 0
2
2 1 0 3 3
) 3 ( ) 3 (
, , , ,
+ =
2
1 2 3 0
2
2 1 0 3 4
) ( ) (
, , , ,
+ + + = (41)
+ + + + = ] ) ( 3 ) )[( )( 3 (
2
3 0 1 2
2
2 1 0 3 2 1 0 3 2 1 0 3 5 , , , , , , , ,


] ) ( 3 ) )[( )( 3 (
2
0 3 2 1
2
1 2 3 0 1 2 3 0 1 2 3 0 , , , , , , , ,
+ + + +
) )( ( 4 ] ) ( ) )[( (
1 2 0 3 2 1 0 3 1 1
2
3 0 1 2
2
2 1 0 3 2 0 0 2 6 , , , , , , , , , , ,
+ + + + + =
+ + + + = ] ) ( 3 ) )[( )( 3 (
2
3 0 1 2
2
2 1 0 3 2 1 0 3 3 0 1 2 7 , , , , , , , ,


] ) ( 3 ) )[( )( 3 (
2
0 3 2 1
2
1 2 3 0 3 0 1 2 1 2 0 3 , , , , , , , ,
+ + + +

De remarcat faptul c modulul momentului
7
prezint invarianele sus-menionate.




9. Extragerea trsturilor imagistice.
122
9.4.2. Momente ortogonale.
Momentele regulate
q p
m
,
descrise anterior sunt neortogonale, deoarece
p
x i
q
y sunt
neortogonale (momentele
q , p
m pot fi considerate ca fiind proieciile lui (x,y) f pe monoamele
p
x
i
q
y ). n locul lor pot fi folosite polinoamele Legendre care sunt ortogonale. Ele sunt definite
(Jain[56]) de relaiile:
1 (x)
0
= P (42)

n 2
n
n
n
n
) 1 (x
dx
d
2 n!
1
(x) = P (43)
n) (m
1 n 2
2
(x)dx (x)
1
1
m n

+
=

P P (44)
Aceste polinoame ortogonale permit reprezentarea funciei (x,y) f prin:

+
=
+
=
=
0 p 0 q
q p p,q
(y) (x) (x,y) P P f (45)
unde:


+

+ +
=
1
1
1
1
q p p,q
(y)dxdy (x) (x,y)
4
) 1 q 2 )( 1 p 2 (
P P f (46)
sunt tocmai momentele ortogonale cutate. n practic, aceste momente sunt calculate prin
intermediul momentelor neortogonale anterioare, folosind relaiile:

= =
+ +
=
p
0 j
q
0 k
j,k q,k p,j p,q
m c c
4
) 1 q 2 )( 1 p 2 (
(47)
unde
k , j
c reprezint coeficientul lui
k
x din expresia polinomului Legendre de ordinul "j".


9.4.3 Momentele Zernike.
Drept variant alternativ a momentelor descrise anterior se prezint n continuare
(Khotanzad[38],[39]) un tip special de momente ce prezint proprietatea de invarian la rotaie.
Momentele Zernike se definesc pe un domeniu egal cu interiorul cercului unitate:
1 y x
2 2
= + (48)
Pentru construcia lor se definete mai nti un set de polinoame ortogonale, notate:
n |m| |m| n (x,y)}, {
nm
i par cu V (49)
Expresia de definiie a lor este:
) (jm ) ( ) , ( (x,y)
nm nm nm
exp R V V = = (50)
unde:

[ ] [ ]

=
2 |m|)/ (n
0 s
s 2 n s
nm
! s 2 |m|)/ (n ! s 2 |m|)/ (n s!
s)! (n
) 1 ( ) ( R (51)
Se poate remarca faptul c:
) ( ) (
nm m n,
R R =

(52)
Aceste polinoame (x,y)} {
nm
V fiind ortogonale, satisfac condiiile de ortogonalitate:
[ ]
mq np
1 y x
pq nm
1 n
y (x,y) dx d (x,y)
2 2

+
=

V V (53)
unde:
9. Extragerea trsturilor imagistice.
123

=
=
b a , 0
b a , 1
ab
pentru
pentru

Momentele Zernike sunt proiecii ale funciei imagine pe aceast baz ortogonal.
Presupunnd c (x,y) f n afara cercului unitate, avem momentul Zernike de ordinul m) (n + :

+
=
1 y x
nm nm
2 2
) dx dy , ( (x,y)

1 n
V f A (54)
Pentru cazul discret, momentul Zernike de acelai ordin se scrie:
1 y , cu x ) , ( (x,y)

1 n
2 2
x y
nm nm
+
+
=


V f A (55)
Cunoscnd momentele Zernike, se poate efectua transformarea invers, care permite
reconstrucia imaginii iniiale cu precizie din ce n ce mai mare pe msur ce "n" crete:

=
=
max
V A f
~
n
0 n m
nm nm
) , ( (x,y) (56)
Descompunnd aceast expresie n:


= = <
+ =
max max
V A V A f
~
n
0 n 0 m
nm nm
n
0 n 0 m
nm nm
) , ( ) , ( (x,y) (57)
i folosind o proprietate enunat anterior, putem scrie:


= = >

+ =
max max
V A V A f
~
n
0 n 0 m
nm nm
n
0 n 0 m
m n, m n,
) , ( ) , ( (x,y) (58)
adic:


= = >

+ =
max max
V A V A f
~
n
0 n 0 m
nm nm
n
0 n 0 m
nm nm
) , ( ) , ( (x,y) (59)
Cele dou sume pot fi acum unificate scriind:
[ ]

= >

+ + =
max
V A V A V A f
~
n
0 n 0 m
nm nm nm nm 0 n 0 n
) , ( ) , ( ) , ( (x,y) (60)
Deoarece este mai uor de operat cu numere reale vom descompune numerele complexe
din formula anterioar:
[ ] + = ) , ( ) ( j ) ( (x,y)
0 n 0 n 0 n
V A Im A Re f
~

[ ] [

= >
+ +
max
sin cos R A Im A Re
n
0 n 0 m
nm nm nm
) m j m )( ( ) ( j ) (
[ ] ] ) m j m )( ( ) ( j ) (
nm nm nm
sin cos R A Im A Re + + + (61)
Efectund calculele rezult expresia:
[ ]

=
+ + =
max
R sin S cos C R C f
~
n
0 n m
nm nm nm 0 n 0 n
(x,y) m m (x,y)
2
1
(x,y) (62)
n care
) ( 2
nm nm
A Re C = <==>

+
=
x y
nm nm
m (x,y) (x,y)

2 n 2
cos R f C (63)
i:
) ( 2
nm nm
A Im S = <==>


=
x y
nm nm
m (x,y) (x,y)

2 n 2
sin R f S (64)
Se demonstreaz foarte uor c modulul momentelor Zernike este invariant la rotaie i ca
urmare ele pot fi folosite drept trsturi invariante la rotaie.
9. Extragerea trsturilor imagistice.
124
9.5. Trsturi geometrice.
Trsturile geometrice sunt practic msurtori geometrice care se efectueaz asupra
obiectelor. O parte dintre ele se calculeaz pe baza momentelor regulate de diferite ordine. Dei
se calculeaz de obicei destul de simplu, puterea lor de discriminare i utilitatea sunt
incontestabile.
Cele mai des utilizate trsturi geometrice sunt descrise n continuare.
Perimetrul unui obiect este definit de:

+ = dt (t) (t) P
2 2
y x (65)
El poate fi obinut din conturul obiectului, folosind, de exemplu, codul-lan. Uneori n loc
de perimetru se poate folosi i lungimea liniei de contur.
Aria unui obiect este dat de:

=
D
dxdy A (66)
Pentru cazul imaginilor discrete aria se obine fie prin simpla numrtoare a pixelilor
obiectului, fie din analiza codului-lan.
Razele minim i maxim, Rmin i Rmax reprezint distanele minim i respectiv
maxim a pixelilor obiectului fa de centrul lui de greutate. Obinerea lor se face limitnd testele
de distan doar la pixelii de contur exterior.
Numrul de goluri poate fi obinut pentru fiecare obiect, dup faza de extragere a
contururilor, (evident, se vor extrage toate contururile, interioare i exterioare), prin teste de
incluziune. Este o trstur morfologic.
Numrul lui Euler este dat de:
G R E = (67)
unde R este numrul de componente conectate ale obiectului, iar G este numrul de goluri.
Numrul de coluri se obine din studiul funciei de curbur, date de:

2
2
2
2
2
2
ds
y d
ds
x d
(s)
|
|
.
|

\
|
+
|
|
.
|

\
|
= k (68)
n practic, se presupune existena unui col n acele puncte ale conturului n care curbura
depete un anumit prag.
Energia curburii este definit prin:

=
S
0
2
ds (s)| |
T
1
E k (69)
Raportul de sveltee (roundness, compactness) este dat de raportul ntre ptratul
perimetrului i arie:

A 4
P
R
2

= (70)
Valoarea minim a acestui raport este 1 i se obine pentru disc.
Urmtoarele trsturi geometrice se obin pe baza momentelor regulare.
Centrul de greutate al unui obiect se obine cu formulele:

0 , 0
0 , 1
x y
x y
m
m
(x,y)
(x,y) x
x = =

f
f

0 , 0
1 , 0
x y
x y
m
m
(x,y)
(x,y) y
y = =

f
f
(71)
Orientarea indic unghiul fa de abscis al momentului minim de inerie, moment
descris de:
9. Extragerea trsturilor imagistice.
125

+ =
x y
2
] ) y (y ) x (x [ ) ( cos sin I (72)
Rezult, prin minimizarea lui ) I( n raport cu , orientarea:

(

=
2 0 0 2
1 1
2
2
1
, ,
,
arctan

(73)
Dreptunghiul de ncadrare este dreptunghiul de dimensiuni minime aliniat la orientarea
a obiectului i care include obiectul. Laturile acestui dreptunghi pot fi descrise de ecuaiile:

+ =
+ =


cos sin
sin cos
y x b
y x a
(74)
Dreptunghiul propriu-zis se obine determinnd, pentru toate punctele conturului, valorile
max min max min
, , , b b a a care caracterizeaz cele patru laturi ale dreptunghiului.
Elipsa de "potrivire" (best fit ellipse) este acea elips ale crei momente de inerie
maxim i respectiv minim sunt egale cu cele ale obiectului. Pentru o elips descris de:
1
b
y
a
x
2
2
2
2
= + (75)
momentele de inerie maxim i minim sunt date de:

3
MIN
ab
4
I

= i b a
4
I
3
MAX

= , pentru a>b.
Calculnd orientarea obinem momentele de inerie ale obiectului:

+ =
x y
2
MIN
] ) y (y ) x (x [ I cos sin (76)

+ =
x y
2
MAX
] ) y (y ) x [(x I sin cos (77)
Egalnd corespuztor momentele de inerie rezult elipsa descris de:

8 / 1
MIN
3
MAX
4 / 1
I
) I (

4
a
(

|
.
|

\
|
=
8 / 1
MAX
3
MIN
4 / 1
I
) I (

4
a
(

|
.
|

\
|
= (78)
Tot ntre trsturile geometrice pot fi ncadrate proieciile pe diferite direcii ale
obiectelor din imagine. n continuare se prezint principial geometria unei asemenea proiecii pe
o direcie dat de unghiul :


9. Extragerea trsturilor imagistice.
126
Fig. 3. Geometria proieciei pe o direcie dat.

O multitudine de alte trsturi pot fi folosite n diferite aplicaii, cum ar fi raza medie de
ncadrare, orientarea axei minime i respectiv maxime, aria dreptunghiului de ncadrare,
raportul ntre aria obiectului i aria dreptunghiului de ncadrare, raportul ntre perimetrul
obiectului i perimetrul dreptunghiului de ncadrare, etc.
Pentru fiecare din aceste trsturi de specific invarianele pe care le respect.

9.6. Trsturi ale imaginilor de clasa (3).
Imaginile de clas (3) sunt formate, dup cum s-a menionat deja, din linii i curbe
continue, avnd grosimea de un pixel. Caracterizarea lor se face fie diviznd liniile/curbele n
segmente pentru care se caut o descriere analitic (prin aproximare i/sau interpolare), fie la
nivel global, de exemplu prin descriptorii Fourier.

9.6.1. Segmentarea curbelor.
Operaia de segmentare a curbelor poate fi asimilat unei extrageri de trsturi dac se
adopt drept trsturi parametrii de descriere a acestor curbe. Astfel de parametri sunt constantele
de definiie pentru funciile spline exprimate parametric, sau poziiile colurilor poligoanelor de
definiie pentru funciile Bezier i B-spline.

9.6.2. Descriptorii Fourier.
Descriptorii Fourier (Gonzales[42]), (Jain[56]), (Pratt[84]) se utilizeaz pentru descrierea
contururilor nchise ale obiectelor, contururi obinute de obicei cu algoritmi de extragere contur.
Conturul este descris n aceast prim faz parametric, prin (s) x i (s) y , presupunnd, pentru
simplitate, cazul continuu.
Obinerea descriptorilor Fourier are la baz transportarea conturului descris parametric n
planul complex, rezultnd funcia complex:
(s) j (s) (s) y x z + = (79)
Unghiul tangent, definit ca unghiul format de normala la vectorul de poziie al punctului
curent cu tangenta la curb este dat de:

(

=
(s)/ds d
(s)/ds d
(s)
x
y
arctan (80)
n planul complex se definete curbura conturului nchis studiat prin:

ds
(s) d
(s)

k = (81)
Cunoscnd curbura i unghiul tangent n fiecare punct al conturului, acesta se poate
reconstrui cu formulele:

+ =

0
)]d ( [ ) ( ) 0 ( (s) cos k x x (82)

+ =

0
)]d ( [ ) ( ) 0 ( (s) sin k y y (83)
Evident, curbura (s) k este o funcie periodic de perioad P, unde P este cel mai des
lungimea perimetrului conturului. Ca urmare, (s) k poate fi dezvoltat n serii Fourier prin:

+
=
|
.
|

\
|
=
n
n
n
P
j 2
c (s) exp k (84)
unde coeficienii
n
c ai dezvoltrii au expresia:
9. Extragerea trsturilor imagistice.
127
ds n
P
j 2
(s)
P
1
P
0
n

|
.
|

\
|
= exp k c (85)
Coeficienii
n
c se numesc descriptorii Fourier ai conturului descris prin curbura (s) k . Un
alt set de descriptori se pot ataa direct conturului propriu-zis (s) z care este tot periodic de
perioad P, valorile obinute nemaifiind ns invariante la translaie.
n studiul curbelor nchise avnd coluri, funcia curbur este ns nedefinit. Aceasta
situaie poate fi evitat nlocuind curbura cu funcia propus de Zahn i Roskies [114]:

P
s 2
)d ( (s)
s
0

k (86)
Pentru cazul discret, conturul apare descris de irul coordonatelor pixelilor de contur.
Similar cazului continuu, se face trecerea n planul complex prin:
) (s j ) (s ) (s
i i i
y x z + = (87)
Unghiul tangent este dat de:

(

) (s ) (s
) (s ) (s
) (s
1 i i
1 i i
i
x x
y y
arctan (88)
iar curbura se obine prin:
) (s ) (s ) (s
1 i i i
= k (89)
Cunoscnd curbura pentru fiecare punct al conturului, coeficienii transformatei Fourier
discrete pot fi folosii drept trsturi pentru descrierea conturului. Aceste trsturi sunt invariante
la translaie.
(n) j (n) (n) y x z + = (90)

=
|
.
|

\
|
=
1 N
0 k
k
kn
N
j 2
N
1
(n) exp c z (91)

=
|
.
|

\
|
=
1 N
0 n
k
kn
N
j 2
(n)exp z c (92)
Se remarc faptul c descriptorii Fourier care se obin nu sunt invariani la poziia
punctului de start, rotaie, scalare, reflexie. Descriptorii Fourier ataai funciei de curbur sunt
invariani la translaia conturului.
Folosind unele proprieti ale descriptorilor Fourier se pot obine din acetia trsturi cu
proprietile de invarian dorite:


Ultima proprietate descrie cazul unui contur simetric fa de dreapta descris de ) , ( ,
unde este distana ntre originea axelor i dreapt, iar este unghiul ntre dreapt i abscis.
Se poate remarca faptul c valorile
k
c
~
sunt invariante la rotaie, reflexie i poziia
punctului de start, iar raportul | c
~
| / c
~
k k
este invariant la scalare, pentru orice k.
Translatie:
0
z (n) (n) + = z z
~
==>
k 0 k k
z + = c c
~

Scalare: (n) (n) z z
~
= ==>
k k
c c
~
=
Punct start: ) n (n (n)
0
= z z
~
==> k/N) jn 2 (
0 k k
= exp c c
~

Rotatie: ) (j (n) (n)
0
exp z z
~
= ==> ) (j
0 k k
exp c c
~
=
Reflexie: 2 ) j 2 ( (n) (n) + =

exp z z
~
==>
k k k
2 ) j 2 ( + =

exp c c
~

9. Extragerea trsturilor imagistice.
128
Avnd date dou contururi (n)
1
z i (n)
2
z , se poate aprecia dac ele sunt similare
indiferent de poziia, mrimea i orientarea lor, folosind distana:

)
`

+ =

=
1 N
0 n
2
0 0 0 2 1
, ,, z
0 0 0
z ) (j ) n (n (n) ) , ,n , (z
0 0 0
exp z z min D (93)
Parametrii
0 0 0
n z , , , se determin din condiia minimizrii distanei D anterioare. Fie
k
a i respectiv
k
b descriptorii Fourier calculai pentru cele dou contururi. Se folosesc notaiile:
) (j c b a
k k k k
exp =

, N n 2
0
/ = (94)
Dac (n) z
1
i ) n ( z
2
se normalizeaz astfel nct:

=
=
1 N
0 n
1
0 (n) z i

=
=
1 N
0 n
2
0 (n) z (95)
atunci distana ) , ,n , (z
0 0 0
D este minim pentru:
0 z
0
=

=
+ +
=
1 N
0 k
2
k
1 N
0 k
0 k k
b
) k (

cos c

(
(
(
(

+
+
=

=
1 N
0 k
k k
1 N
0 k
k k
0
) k ( c
) k ( c

cos
sin
arctan (96)
nlocuind expresiile obinute rezult:

(

+ =

=
1 N
0 k
2
0 k k

) j (jk b a exp min D (97)


Evalund expresia din paranteza ptrat pentru fiecare din cele N valori posibile pentru f,
se poate deduce valoarea minim cutat pentru distana D.
Utilizarea descriptorilor Fourier poate fi extins la descrierea liniilor i curbelor oarecare
din orice imagine de clas (3), considerndu-le contururi nchise ale unor obiecte cu grosimea de
un pixel.


Original 3 valori 5 valori


7 valori 9 valori 11 valori


13 valori 15 valori 17 valori

19 valori 21 valori 23 valori
9. Extragerea trsturilor imagistice.
129
9.7. Caracterizarea texturilor.
Schema bloc a unui sistem general de analiz a texturilor, propus de Jain [56] este dat n
continuare:

1 2
u(m,n
msurare
autocorelaie
msurtori
histogram
extragere
trsturi
filtru A(z ,z )
decorelare
e(m,n)
textur
trsturi

Fig. 4. Schema bloc a unui sistem general de analiz a texturilor.

Textura este mai nti decorelat de filtrul ) ,z (z
2 1
A care poate fi proiectat cunoscnd
funcia de autocorelaie corespunztoare texturii. Se obine e(m,n) care poate fi descris cel mai
bine de un cmp aleator necorelat, ale crui caracteristici se deduc din studiul histogramei. Restul
trsturilor se extrag din studiul funciei de autocorelaie.
Caracterizarea texturilor se poate face printr-o multitudine de metode de analiz
(Fainhurst[37]), unele deja abordate n paragraful 6.4. Bazndu-ne pe dualitatea care exist ntre
segmentare i extragere de trsturi, se pot sintetiza clasele de trsturi care pot fi extrase din
imaginea unei texturi folosind urmtoarea diagram (Jain[56]):
Trsturi ale texturii
Statistice Structurale Alte metode
Funcia de
autocorelaie
Transformri
ortogonale
Cantitate
muchii
Matrice
coocuren
Periodice Aleatoare
Cmpuri
aleatoare
Primitive Poziionale
Nivel de gri
Omogenitate
Regiuni Perioad
Adiacen
Distane
Densitate
muchii
Densitate
extreme
Continuitate
regiuni
Modele
mozaic

Fig. 5. Metode de analiz a texturilor.
Modelul mozaic se bazeaz pe cmpuri geometrice aleatoare (Cross[32]). Sunt mult
utilizate pentru analiza esturilor, a cror imagini se apropie cel mai mult de acest model.



9.8. Trsturi structural-sintactice.
9. Extragerea trsturilor imagistice.
130
Metodele structural-sintactice de recunoatere au la baz utilizarea primitivelor i a
relaiilor dintre ele pentru execuia procesului de recunoatere (Pavlidis[80]).
Exist o multitudine de primitive care pot fi extrase dintr-o imagine. Cele mai simple sunt
cele folosite pentru caracterizarea imaginilor de clas (3), deci formate din linii i curbe continue.
Un asemenea set de primitive este prezentat n continuare. El permite descrierea unui contur
oarecare printr-un ir de simboluri, fiecare corespunznd unei primitive.

a b c d e

a
b
c
d
e
a a
a
a
c
d
d d

abaddddacacae

Fig. 6. Exemple de primitive generice i utilizarea lor.

Un exemplu clasic de utilizare a descrierilor structurale n caracterizarea obiectelor este
datorat lui Ledley [64] i se refer la caracterizarea imaginilor microscopice coninnd
cromozomi. Pentru aceast aplicaie, primitivele folosite au fost cinci la numr, cele redate n
continuare, unde marcajele romboidale indic poziia interiorului obiectului (cromozomului):

a b c d e
a
a
a
a
b
b
b
b
b
b
b
b
c
c
d
d

abdbabcbabdbabcb babcbabe

Fig. 7. Descrierea sintactic a cromozomilor.

Adugarea la acest set de primitive a unei sintaxe care s descrie regulile de conectivitate
ntre primitive permite obinerea unei reprezentri sintactice unice pentru obiecte. Pentru cazul
imaginilor de clas (3) regulile de conectivitate sunt doar de tipul jonciune ntre primitive, ceea
ce permite descrieri simple sub form de iruri, ca n exemplele anterioare.
Dac relaiile de conectivitate sunt mai complexe ("dreapta-jos fa de"), ca n exemplul
urmtor al descrierii feei umane, reprezentarea sintactic obinut ia forma unui graf
(Ballard[10]). Se remarc i structura mult mai complex a primitivelor folosite("gur", "ochi",
"sprncene", etc.).

9. Extragerea trsturilor imagistice.
131


Gur
Limit pr
Sprncean Sprncean
Ochi Ochi
Nas (baz nas)
Limit
stnga
fa
Limit
dreapta
fa
Limit
jos
fa

Gur
Limit pr
Sprncean Sprncean
Ochi Ochi
Nas (baz nas)
Limit
stnga
fa
Limit
dreapta
fa
Limit
jos
fa
stnga-sus
stnga-sus
dreapta-sus
stnga-jos
dreapta-jos
dreapta-sus
dreapta-jos
stnga-jos
sus jos
stnga
dreapta
sus jos
stnga
dreapta dreapta
stnga
sus jos
sus jos

Fig. 8. Descriere sintactic pentru faa uman.

9.9. Detalii de implementare.
Aplicaia PROImage, prezentat n capitolul 21 include, printre altele, i implementarea
segmentrii cu prag. (pentru informaii suplimentare se poate studia codul surs din fiierul
"his.pas").
n continuare este prezentat un program PASCAL care extrage descriptorii Fourier dintr-o
imagine binar de clas (3) i apoi reconstruiete obiectele localizate n imagine pe baza unui
numr predeterminat din aceti descriptori.

program Descriptori;
uses Dos,Graph,Crt;
type
Image = array [0..239] of array [0..255] of byte;
const
9. Extragerea trsturilor imagistice.
132
var
i,j,m,n : integer;
Img1,Img2: ^Image;
Code : byte;
Text : string;

(*---------------- PROCEDURA D e s c r i p t ----------------------------*)
Procedure Descript;
type
Conv = array[0..7] of shortint;
vecb = array [0..0] of byte;
vecr = array [0..0] of real;
ivec = array [0..0] of integer;
pvec = array [0..0] of ^vecb;
rvec = array [0..0] of ^vecr;
const
Cx : Conv = (-1,-1,0,1,1,1,0,-1);
Cy : Conv = (0,-1,-1,-1,0,1,1,1);
var
i,j,k,s,x,y,xs,ys,xc,yc,nc : integer;
Pnc : ^ivec; {pointer la lista cu nr. de puncte/contur}
Px,Py : ^pvec; {pointer la lista de pointeri la listele coordonate}
Rp,Ip : ^rvec; {pointer la lista de pointeri la listele descriptori}
Fi,Rt,It : real;
begin
{inversez imagine}
setfillstyle(SOLIDFILL,15);
bar(256,0,511,239);
bar(0,240,255,479);
for x:=0 to 255 do
for y:=0 to 239 do
Img1^[y,x]:=255-Img1^[y,x];

{baleiez contur, aflu nc = numr contururi}
nc:=0;
for x:=1 to 254 do
for y:=1 to 238 do
begin
if (Img1^[y-1,x]=0) and (Img1^[y,x]=255) then
begin
nc:=nc+1;
xs:=x;
ys:=y;
xc:=x;
yc:=y;
Img1^[yc,xc]:=254;
j:=0;
while Img1^[yc+Cy[j],xc+Cx[j]]<>0 do
j:=(j+1) mod 8;
repeat
while Img1^[yc+Cy[j],xc+Cx[j]]=0 do
j:=(j+1) mod 8;
xc:=xc+Cx[j];
yc:=yc+Cy[j];
Img1^[yc,xc]:=254;
PutPixel(256+xc,yc,10);
j:=(j+5) mod 8;
until (xc=xs) and (yc=ys);
end;
end;

9. Extragerea trsturilor imagistice.
133
{aloc vector cu numr pixeli/contur}
GetMem(Pnc,nc*SizeOf(integer));

{completez vector Pnc}
i:=0; for x:=1 to 254 do
for y:=1 to 238 do
begin
if (Img1^[y-1,x]=0) and (Img1^[y,x]>=254) then
begin
Pnc^[i]:=0;
xs:=x;
ys:=y;
xc:=x;
yc:=y;
Img1^[yc,xc]:=253;
j:=0;
while Img1^[yc+Cy[j],xc+Cx[j]]<>0 do
j:=(j+1) mod 8;
repeat
while Img1^[yc+Cy[j],xc+Cx[j]]=0 do
j:=(j+1) mod 8;
xc:=xc+Cx[j];
yc:=yc+Cy[j];
Img1^[yc,xc]:=253;
PutPixel(256+xc,yc,5);
Pnc^[i]:=Pnc^[i]+1;
j:=(j+5) mod 8;
until (xc=xs) and (yc=ys);
i:=i+1;
end;
end;

GetMem(Px,nc*SizeOf(pointer));
GetMem(Py,nc*SizeOf(pointer));
GetMem(Rp,nc*SizeOf(pointer));
GetMem(Ip,nc*SizeOf(pointer));
for i:=0 to nc-1 do
begin
GetMem(Px^[i],Pnc^[i]);
GetMem(Py^[i],Pnc^[i]);
GetMem(rp^[i],Pnc^[i]*SizeOf(real));
GetMem(ip^[i],Pnc^[i]*SizeOf(real));
end;

{completez vectori Px , Py}
i:=0;
for x:=1 to 254 do
for y:=1 to 238 do
begin
if (Img1^[y-1,x]=0) and (Img1^[y,x]>=253) then
begin
xs:=x;
ys:=y;
xc:=x;
yc:=y;
Img1^[yc,xc]:=252;
j:=0;
while Img1^[yc+Cy[j],xc+Cx[j]]<>0 do
j:=(j+1) mod 8;
k:=0;
repeat
9. Extragerea trsturilor imagistice.
134
while Img1^[yc+Cy[j],xc+Cx[j]]=0 do
j:=(j+1) mod 8;
xc:=xc+Cx[j];
yc:=yc+Cy[j];
Img1^[yc,xc]:=252;
Px^[i]^[k]:=xc;
Py^[i]^[k]:=yc;
k:=k+1;
j:=(j+5) mod 8;
until (xc=xs) and (yc=ys);
i:=i+1;
end;
end;

for i:=0 to nc-1 do
for k:=0 to Pnc^[i]-1 do
putpixel(256+Px^[i]^[k],Py^[i]^[k],0);

{calcul descriptori Fourier}
for i:=0 to nc-1 do
begin
for j:=0 to Pnc^[i]-1 do
begin
Rp^[i]^[j]:=0.0;
Ip^[i]^[j]:=0.0;
for k:=0 to Pnc^[i]-1 do
begin
Fi:=-2*PI*k*j/Pnc^[i];
Rp^[i]^[j]:=Rp^[i]^[j]+Px^[i]^[k]*cos(Fi)-Py^[i]^[k]*sin(Fi);
Ip^[i]^[j]:=Ip^[i]^[j]+Px^[i]^[k]*sin(Fi)+Py^[i]^[k]*cos(Fi);
end;
end;
ErrSound;
end;

{reducere date}
s:=11;
for i:=0 to nc-1 do
for j:=s+1 to Pnc^[i]-1-s do
begin
Rp^[i]^[j]:=0.0;
Ip^[i]^[j]:=0.0;
end;

{transformarea invers}
for i:=0 to nc-1 do
begin
for j:=0 to Pnc^[i]-1 do
begin
Rt:=0.0;
It:=0.0;
for k:=0 to Pnc^[i]-1 do
begin
Fi:=2*PI*k*j/Pnc^[i];
Rt:=Rt+Rp^[i]^[k]*cos(Fi)-Ip^[i]^[k]*sin(Fi);
It:=It+Rp^[i]^[k]*sin(Fi)+Ip^[i]^[k]*cos(Fi);
end;
Px^[i]^[j]:=Round(Rt/Pnc^[i]);
Py^[i]^[j]:=Round(It/Pnc^[i]);
putpixel(Px^[i]^[j],240+Py^[i]^[j],0);
end;
9. Extragerea trsturilor imagistice.
135
ErrSound;
end;

for i:=0 to nc-1 do
begin
FreeMem(Px^[i],Pnc^[i]);
FreeMem(Py^[i],Pnc^[i]);
FreeMem(Rp^[i],Pnc^[i]*SizeOf(real));
FreeMem(Ip^[i],Pnc^[i]*SizeOf(real));
end;
FreeMem(Px,nc*SizeOf(pointer));
FreeMem(Py,nc*SizeOf(pointer));
FreeMem(Rp,nc*SizeOf(pointer));
FreeMem(Ip,nc*SizeOf(pointer));
end;
10. Clasificatori liniari.
137





10. Clasificatori liniari.




10.1. Clasificatorul de distan minim.
10.2. Formarea clasificatorului liniar.
10.3. Funcii discriminant liniare pe poriuni.
10.4. Formarea clasificatorului liniar pe poriuni.
10.5. Clasificatorul celor mai apropiai "k" vecini.
10.6. Clasificatorul celor mai mici ptrate.




Pentru cazul a dou clase i dou trsturi avem urmtoarea distribuie posibil a formelor
de intrare n spaiul formelor:

x
y
(A)
(B)

Fig. 1. Principiul clasificatorului liniar.

Limita de decizie n acest caz este de forma:
n mx u + = (1)
sau echivalent:
0 a y a x a
3 2 1
= + + (2)
unde b , a 1 m, a a
3 2 1
= = =
Funciile discriminant pentru cele dou clase pot fi construite de forma:

3 2 1 A
a y a x a (x,y) + + = D (3)

3 2 1 B
a y a x a (x,y) = D (4)
Generaliznd, o funcie discriminant liniar pentru spaiul n-dimensional al formelor este
dat de:
10. Clasificatori liniari.
138

=
+ +
+ = + + + + =
n
1 j
1 i,n j ij 1 i,n n in 2 2 i 1 1 i i
w x w w x w ... x w x w ) (X D (5)
sau, cu notaia 1 x
1 n
=
+
, avem:

+
=
=
1 n
1 j
j ij i
x w ) (X D (6)
care definete prin 0 ) (
i
= X D ecuaia unui hiperplan.
Matriceal, expresia de mai sus se scrie:
[ ] ...K 1 , pentru i w w ... w w ) (
1 i,n in 2 i 1 i i
= =
+
X X D (7)
Sintetiznd pentru toate valorile lui "i", obinem:
WX D X
X D
X D
X D
=
(
(
(
(

=
(
(
(
(

+
+
+
1 K,n Kn 2 K 1 K
1 ,n 2 n 2 22 21
1 ,n 1 n 1 12 11
K
2
1
w w ... w w
... ... ... ... ...
w w ... w w
w w ... w w
) (
...
) (
) (
(8)
Limitele de decizie dintre oricare dou clase se deduc din:

+
=
= =
1 n
1 m
m jm im j i
0 )x w (w 0 ) ( ) ( X D X D (9)
Folosind notaia:

jm im
ij
m
w w w =
) (
(10)
se obine ecuaia limitei de decizie ntre dou clase de forma:
0 x w
1 n
1 m
m
ij
m
=

+
=
) (
(11)
care reprezint ecuaia unui hiperplan care trece prin originea spaiului extins al
trsturilor, spaiu a crui utilizare simplific mult studiul clasificatorilor liniari.
Pentru cazul a doar dou clase, este suficient doar o singur funcie de decizie, ) (X D ,
astfel nct:

<
>
2
1
, pentru 0 ) (
, pentru 0 ) (
X X D
X X D
(12)
Cazul a mai multe clase se poate reduce la clasificarea cu dou clase, dac se adopt una
din urmtoarele strategii de construcie a clasificatorilor multicategoriali, strategii valabile pentru
orice tip de clasificator (nu numai pentru cei liniari).

Strategia (1). Se construiete, corespunztor fiecrei clase, un clasificator care s mpart
spaiul trsturilor n dou regiuni, astfel nct una s conin clasa respectiv, iar cealalt restul
claselor.
Decizia de clasificare se ia folosind regula:
...K 1 j, i i ), ( ) (
i j j
= > X D X D X (13)
Se remarc apariia unei regiuni de nedeterminare (gri) pentru care nu se poate lua o
decizie.
10. Clasificatori liniari.
139
1
2
3

1
2 3
4

Fig. 2. Clasificator liniar multicategorial, metoda 1.

Strategia (2). Se construiete, corespunztor fiecrei perechi de clase, un clasificator care
s mpart spaiul trsturilor n dou regiuni, astfel nct una s conin clasele respective, iar
cealalt restul claselor:
1
2 3
4

1
2
3
4
5

Fig. 3. Clasificator liniar multicategorial, metoda 2.

n acest caz se construiesc funcii de decizie de forma:
j , unde i 0 ) ( sau
ij j i
> X D X X (14)
Se ia decizia de apartenen la una din clase folosind regula:
...K 1 i,j , unde j 0 ) (
ij i
= > X D X (15)

Strategia (3). Fiecare funcie discriminant separ doar dou clase ntre ele, caz n care
zona de nedeterminare se reduce foarte mult.
n acest caz se construiesc funcii de decizie de forma:
) ( ) ( ) (
j i ij
X D X D X D = (16)
regula de decizie folosit n acest caz fiind de forma:
...K 1 i,j j , 0 ) (
ij i
= > unde X D X (17)
10. Clasificatori liniari.
140

1
2
3
1
2 3
4

1
2
3
4
5

Fig. 4. Clasificator liniar multicategorial, metoda 3.

Aceast strategie este cea mai puternic, reuind s separe liniar clase care nu pot fi
separate folosind primele dou metode:
1
2
3

Fig. 5. Exemplu de clasificare liniar multicategorial, metoda 3.

10.1. Clasificatorul de distan minim.
Pentru fiecare clas se definesc vectorii prototip prin:
K 1 i
M
1
i
M
1 j
j
i
i
... , X R = =

=
(18)
i care reprezint centrul de greutate (media) formelor care alctuiesc setul de antrenament
(nvare, formare) al clasei
i
, iar
i
M fiind numrul de asemenea vectori.
Funciile discriminant se construiesc n acest caz pe baza distanei de la un vector oarecare
de intrare (form) la vectorii prototip, distan notat ) , (
i
R X d . Decizia se ia conform regulii:
...K 1 i, j j ), , ( ) , (
j i i
= < R X d R X d X (19)
sau echivalent:
...K 1 i, j j ), , ( ) , (
j
2
i
2
i
= < R X d R X d X (20)
Dac se folosete distana euclidian, atunci:

=
=
n
1 m
2
im m i
) r (x ) , ( R X d (21)
Pe baza acestei distane se construiete funcia discriminant, punnd, mai nti, distana
precedent sub forma:
10. Clasificatori liniari.
141

2
i
T
i
2 2
i i
2 ) , ( R X R X R X R X d + = = (22)
n care se remarc faptul c primul termen este indepentent de clas, deci poate fi eliminat,
iar ultimul termen se calculeaz o singur dat, n faza de construcie a clasificatorului. Atunci
definirea funciei discriminant este imediat, folosind:
maxim minim = =
2
i
T
i i
2
i
2 ) , ( R X R R X d X (23)
rezult:

2
i
T
i i
2 R X R ) X ( D = (24)
Dei n acest caz s-a folosit distana euclidian, n general mai pot fi folosite i alte
distane, cum ar fi distana generalizat (Minkovski), distana Manhattan, distana Hamming
(pentru forme binare) sau distana Tanimoto (Hamming normalizat):
- distana Minkovski
/p 1
n
1 i
p
i i
) y (x ) , ( |
.
|

\
|
=

=
Y X d (25)
- distana Manhattan

=
=
n
1 i
i i
y x ) , ( Y X d (26)
- distana Hamming

=
=
n
1 i
i i
y x ) , ( Y X d (27)
- distana Tanimoto

= =
+ =
n
1 i
i i
n
1 i
i i
) y (x y x ) , ( Y X d (28)
Funcia de decizie dat de un clasificator liniar pentru clasa
i
, adic:

+
=
=
1 n
1 k
k ik i
x w ) (X D (29)
definete prin 0 ) (
i
= X D ecuaia unui hiperplan n spaiul ) 1 (n + dimensional (extins) al
trsturilor, hiperplan ce trece prin origine. Un asemenea plan este complet determinat de vectorul
normalei la plan, vector definit de:
[ ]
T
1 n i in 1 i i
w w w
+
=
,
... W (30)
i denumit vectorul de ponderi. Ca urmare se poate lucra direct cu aceti vectori, modul de
operare fiind:
0 0 ) (
i
T
i i i
> > = X , W X W X D X (31)
spaiul extins al trsturilor fiind echivalat n acest caz cu spaiul ponderilor.

10.2. Formarea clasificatorului liniar.
Fie
T
n 2 1
) x ... x x ( = X un vector de form,
n
R X , unde este spaiul
formelor, iar "n" este numrul de trsturi.
Pentru cazul clasificrii binare, funcia discriminant este dat de:
X W X D
T
1 n
1 i
i i
1 n
1 i

i
) 2 (
i
) 1 (
i
x w )x w (w ) ( = = =

+
=
+
=
(32)
care poate fi interpretat ca fiind ecuaia unui hiperplan n spaiul extins al trsturilor, sau
echivalent, ca produsul scalar dintre vectorul W i vectorul extins X. Vectorul W, numit vectorul
de ponderi, este normal la hiperplanul de decizie (care trece prin origine).
Ca urmare, n spaiul ponderilor, regula de decizie este:
0 s
T
1
> = X W X (33)
0 s
T
2
< = X W X
10. Clasificatori liniari.
142
Presupunnd c avem un set de vectori (de antrenament) a cror apartenen la clase este
cunoscut, formarea este un procedeu iterativ care permite construirea hiperplanului de decizie n
cazul n care cele dou clase sunt liniar separabile.

plan de decizie
noul plan de decizie


1
2
W
X
W'

X
plan de decizie
noul plan de decizie

1
2
W
X
W'

X

Fig. 6. Formarea clasificatorului liniar.

Dac
1
X i este clasificat greit ca aparinnd lui
2
, se poate corecta aceast situaie
construind un nou vector de ponderi prin adugarea unei fraciuni din X la vectorul de ponderi
precedent:
X W W + = (34)
Dac
2
X i este clasificat greit ca aparinnd lui
1
, se poate corecta aceast situaie
construind un nou vector de ponderi prin scderea unei fraciuni a lui X din vectorul de ponderi
precedent:
X W W = (35)
Valoarea factorului de corecie "" se poate obine din expresia produsului scalar:

2
T T T
) ( s X X W X X W X W + = + = = (36)
Rezult:

2
s s
X

= (37)
Dac se impune, de exemplu, s s = , atunci rezult:

2
T
2
X
X W
= (38)
n general ns, se pot utiliza diverse strategii pentru alegerea factorului de corecie:
(1). Metoda factorului de corecie constant:
0 > = const.,
(2). Metoda coreciei absolute:
[ ]
2
T
X / X W > = ntreg mic mai cel
(3). Metoda coreciei fracionare:
] 2 0 (
2
T
, ,
X
X W
=
Corecia n acest ultim caz se poate face direct funcie de "", adic:

X W
X W X W
X W WX X W X
X
X W
W W
T
T T
T
2
T

= + = + = (39)
10. Clasificatori liniari.
143
Ultima formul obinut d informaii despre semnificaia lui "", adic:
(1). Dac 1 < , atunci planul de decizie se deplaseaz ctre "X" (n jurul originii), fr a-l
atinge ns niciodat.
(2). Dac 1 = , atunci noul plan de decizie va trece prin "X".
(3). Dac 2 1 < < , planul de decizie trece de partea cealalt n raport cu "X",
clasificndu-l corect.
(4). Dac 2 = , vectorul de form "X" se va gsi de partea cealalt a noului plan, la
distan egal.
Dac clasele sunt separabile liniar, plecnd de la un hiperplan de decizie iniial arbitrar
ales, dup un numr de iteraii se reuete clasificarea corect a tuturor formelor din setul de
antrenament.
Dac clasele nu sunt separabile liniar, apar oscilaii ale limitelor de decizie. S-au elaborat
algoritmi care detecteaz aceste oscilaii i apoi adaug (genereaz) noi vectori prototip
subdiviznd subclasele, pn se realizeaz separabilitatea claselor.

10.3. Funcii discriminant liniare pe poriuni.
Fiecare clas este definit n acest caz de un set de vectori de referin:
{ }
k
M 1 m
k
m
k
k ...
) ( ) (
X R
=
= (40)
unde
k
M este numrul de vectori de referin pentru clasa
k
.
Pentru clasificatorul liniar pe poriuni se definete distan ntre un vector de form
oarecare X i clasa
k
prin:
) , ( ) , ( ) , (
(k)

(k)
m
...M 1 m
k
k
R X d X X d min X d = =
=
(41)
Deci, practic, se construiesc funcii discriminant de distan minim pentru fiecare vector
prototip ataat unei clase.
Regula de decizie este:
...K 1 k,j j ), , ( ) , (
j k k
= < X d X d X (42)
sau echivalent:
...K 1 k,j j ), , ( ) , (
j
...K 1 j
k k
= =
=
X d min X d X (43)
unde "K" este numrul de clase.
Expresia funciei discriminant corespunztoare se deduce n continuare prin:

2
(k)
m
(k)
m
T
2
2
(k)
m
(k)
m
2 ) , ( X X X X X X X X d + = = (44)
n continuare se procedeaz la fel ca la clasificatorul de distan minim, adic, folosind
remarca c primul termen al expresiei anterioare este redundant, avem:

2
(k)
m
(k)
m
T

(k)
m
2 ) , ( X X X X X D = (45)
Funcia discriminant pentru clasificatorul liniar pe poriuni se scrie atunci:
) ( ) , ( ) , (
2
(k)
m
(k)
m
T
...M 1 m
(k)
m
...M 1 m
k
k k
X X X max X X D max X D = =
= =
(46)
Regula de decizie pentru clasificatorul liniar pe poriuni devine:
) , ( ) , (
j
...K 1 j
k k
X D max X D X
=
= (47)
Acest clasificator poate fi vzut ca fiind obinut prin divizarea fiecrei clase n subclase,
fiecare caracterizate de cte un vector prototip, i construind cte un clasificator multicategorial
de distan minim pentru fiecare clas.

10. Clasificatori liniari.
144

Fig. 7. Clasificator liniar pe poriuni.

10.4. Formarea clasificatorului liniar pe poriuni.
n acest caz se procedeaz oarecum analog cazului clasificatorului de distan minim,
ns pentru fiecare vector prototip care definete o clas n parte.
Dac
1 k
X i este clasificat greit ca aparinnd lui
2 p
, se poate corecta
aceast situaie construind un nou vector de ponderi prin adugarea unei fraciuni din X la
vectorul de ponderi precedent:
0
k k
> + = , X W W (48)
Dac
2 p
X i este clasificat greit ca aparinnd lui
1 k
, se poate corecta
aceast situaie construind un nou vector de ponderi, adaugnd o fraciune din X la vectorul de
ponderi precedent:
0
p p
> = , X W W (49)
Metodele de alegere pentru factorul de corecie "" sunt aceleai:
(1). Metoda factorului de corecie constant.
(2). Metoda coreciei absolute.
(3). Metoda coreciei fracionare.
Singura condiie pe care trebuie s o ndeplineasc W este s fie perpendicular pe
hiperplanul de decizie. Totui, n aceste condiii, deoarece el intr n evaluarea funciilor de
decizie, procesul de decizie va favoriza funciile pentru care | W | este mai mare. De aceea se
prefer lucrul cu versorul de ponderi, adic cu:

X W
X W
W

+
+
=
k
k
k
, dac
k
X e clasificat greit n
p
i (50)

X W
X W
W

=
p
p
p
, dac
p
X e clasificat greit n
k
. (51)

10.5. Clasificatorul celor mai apropiai "k" vecini.
Clasificatorul liniar pe poriuni descris anterior este un clasificator de distan minim n
raport cu vectorii prototip i n acelai timp poate fi vzut ca un clasificator de tipul vecinului cel
mai apropiat (NN - Nearest Neighbor).
O generalizare a metodei vecinului cel mai apropiat este clasificatorul celor mai apropiai
"k" vecini. n acest caz apartenena unei forme la o clas este decis examinnd un numr de "k"
vecini (cei mai apropiai) ai formei respective, vecini a cror apartenen la clase este cunoscut.
Pentru gsirea celor mai apropiai "k" vecini se utilizeaz cel mai des distana euclidian.
Metoda se poate aplica cu succes i pentru forme neseparabile liniar, i pentru clasificri
multicategoriale.
Pentru clasificarea formelor binare se utilizeaz distanele Hamming sau Tanimoto.
Regula de decizie cea mai simpl folosit este cea a numrului maxim de voturi:

k
X , dac ntre cei "k" vecini, cei mai muli aparin clasei
k

Cazurile cu numr egal de voturi se elimin.
10. Clasificatori liniari.
145
Alteori, contribuia vecinilor la luarea deciziei se consider i funcie de distana ntre "X"
i cei "k" vecini, adic:

=
=
k
N
1 i i
(k)
) (
1
) (
X D
X V sau

=
=
k
N
1 i
2
i
(k)
) (
1
) (
X D
X V (52)
unde, ntre cei "k" vecini, exist
k
N aparinnd clasei
k
.
Regula de decizie se scrie n acest caz:

c
(i) (j)
j
...N 1 j, i i ), ( ) ( = > X V X V X (53)
Rezultate eronate pot apare dac clasele sunt definite prin vectori prototip n numr foarte
diferit de la o clas la alta, clasa definit prin mai puini vectori prototip fiind dezavantajat. n
acest caz se mrete numrul de voturi pentru fiecare vector prototip al clasei dezavantajate cu
raportul ntre numrul de vectori prototip ai clasei dezavantajate i numrul de vectori prototip
pentru cealalt clas.
Aceast metod este laborioas dac numrul de forme prototip este mare. O variant a
acestei metode duce la clasificarea cu ajutorul funciilor de potenial, n care potenialul unui
punct (unei forme) este estimat prin superpoziia potenialelor celor mai apropiai "k" vecini.

10.6. Clasificatorul celor mai mici ptrate.
Fie } {
ij
Z setul de forme de antrenament, unde
ij
Z este forma "j" a clasei
i
. Pe baza lor
se construiete clasificatorul, operaia de clasificare constnd n atribuirea (maparea), pentru
fiecare form din setul de antrenament a unui numr (de exemplu, indicele clasei). Generaliznd,
se poate considera clasificarea ca fiind o mapare a fiecrei forme din spaiul trsturilor n puncte
ataate fiecrei clase din spaiul de decizie (avnd aceeai dimensiune):

1
2
3
V (0,0,1)
3
V (0,1,0)
2
V (1,0,0)
1
x
x'
y y'
z z'
spaiul formelor
spaiul de decizie

Fig. 8. Principiul clasificatorului celor mai mici ptrate.

Deci n spaiul de decizie, fiecrei clase i va corespunde un punct
i
V . n cazul ideal,
tuturor formelor dintr-o clas ar trebui s le corespund un singur punct n spaiul de decizie. n
realitate, aceast mapare se face cu o eroare care va fi minimizat. Deci corespondena va fi de
forma:

ij ij
AZ Z (54)
unde "A" este matricea transformrii. Clasei
i
i atam n spaiul de decizie vectorul
(punctul)
i
V .
O msur a erorii de clasificare este distana (n spaiul de decizie) ntre punctul de mapare
a vectorului de intrare (
ij
AZ ) i punctul ataat clasei
i
(
i
V ).
Eroarea de clasificare poate fi estimat folosind vectorul de eroare:
10. Clasificatori liniari.
146

i ij ij
V AZ =
r
- pentru forma "j" a clasei
i
.
Eroarea de clasificare pentru toi vectorii (formele) din clasa
i
poate fi msurat prin:

=
=
i
N
1 j
2
ij
i
i
N
1

r
(55)
unde
i
N este numrul de forme de antrenament din clasa
i
.
Eroarea global de clasificare, pentru toate clasele se scrie atunci:

=
=
c
N
1 i
i
c
2
N
1
(56)
unde N
c
este numrul de clase. Relaia anterioar trebuie corectat dac probabilitile de
apariie ale simbolurilor din diferite clase nu sunt egale, adic:

=
=
c
N
1 i
i i
c
2
P
N
1
(57)
Se dorete determinarea transformrii "A" care s minimizeze eroarea de clasificare
stabilit anterior:

= = = = = =
= = =
c i c i c i
N
1 i
N
1 j
i ij
T
i ij
i
i
c
N
1 i
N
1 j
2
i ij
i
i
c
N
1 i
N
1 j
2
ij
i
i
c
) ( ) (
N
P
N
1
N
P
N
1
N
P
N
1
V AZ V AZ V AZ
r
(58)
Rezult:


= =
+ =
c i
N
1 i
N
1 j
i
T
i i
T T
ij ij
T T
ij
i
i
c
) 2 (
N
P
N
1
V V V A Z AZ A Z (59)
Condiia de minimizare este:
0 ) 2 2 (
N
P
N
1
0
c i
N
1 i
N
1 j
T
ij i
T
ij ij
i
i
c
= =

= =
Z V Z AZ
A
(60)
Rezult n final:

1
N
1 i
N
1 j
T
ij ij
i
i
N
1 i
N
1 j
T
ij i
i
i
c i c i
N
P
N
P

= = = =
(

=

Z Z Z V A (61)
Matricea

=
i
N
1 j
T
ij ij
Z Z are semnificaia unei matrici de autocorelaie, iar

=
i
N
1 j
T
ij i
Z V are
semnificaia unei matrici de crosscorelaie, adic:

=
=
i
N
1 j
T
ij i
T
ij i
) ( Z V Z V S

i

=
=
i
N
1 j
T
ij ij
T
ij ij
) ( Z Z Z Z S (62)
de unde rezult forma cel mai des utilizat pentru transformarea cutat:

1
N
1 i
T
ij ij
i
i
N
1 i
T
ij i
i
i
c c
) (
N
P
) (
N
P

= =
(

=

Z Z S Z V S A (63)
Matricea "A" se calculeaz cunoscnd matricile de autocorelaie i crosscorelaie definite
anterior sau estimndu-le plecnd de la setul de forme de antrenament. Calculul lui "A" necesit
inversarea unei matrici simetrice, pentru care exist metode numerice puternice.
Dac Z

este forma care trebuie clasificat, mai nti se face trecerea n spaiul de decizie
prin:
Z

A L = (64)
unde "A" a fost deja calculat n faza de formare. n spaiul de decizie se folosete un
clasificator de distan minim, deci ar trebui s calculm, pentru fiecare clas, distana:
10. Clasificatori liniari.
147

2
i
T
2 2
i
2
i
2 V V L L V L d + = = (65)
Primul termen al sumei este acelai pentru toate clasele, deci se poate renuna la calculul
lui, i ca urmare funcia discriminant poate fi definit sub forma:

2
i
T
i
2 V V L D = (66)
Regula de decizie se scrie atunci:

c j i i
N 1 j i j ... , , D D Z

= > (67)
Deoarece regula de mapare este construit, se poate alege, de exemplu, vectorul
i
V de
forma:
[ ]
T
i
0 1 0 0 ... ... V = , cu "1" pe poziia "i" a vectorului.
Ca urmare avem
c
2
i
N 1 i 1 ... , V = = i atunci funcia de decizie pentru clasa "i" este:

c
T
i
T
i i
T
i
N 1 i .. , Z

A V L V V L D = = = = pentru (68)
Cele
c
N relaii se pot grupa ntr-o singur relaie matriceal de forma:
Z

A D Z

A Z

A
...
... ... ... ...
...
...
...
= =
(
(
(
(

=
(
(
(
(

1 0 0
0 1 0
0 0 1
D
D
D
c
N
2
1
(69)
Deci n condiiile impuse lui
i
V , clasificarea nseamn calculul vectorului "D" i selecia
valorii maxime din el, reinndu-se indicele clasei.
11. Tehnici statistice de recunoatere.
149





11. Tehnici statistice de recunoatere.




11.1. Principiul metodei.
11.2. Metode parametrice de recunoatere statistic.
11.3. Metode neparametrice de recunoatere statistic.
11.4. Clasificatorul Bayes pentru forme codate binar.
11.5. Aproximarea densitilor de probabilitate.




11.1. Principiul metodei.
Presupunerea fundamental care se face este c exist pentru fiecare clas o funcie
densitate de probabilitate care s poat fi folosit pentru determinarea probabilitii ca o forma de
intrare s aparin unei clase. Aceste funcii definite pe spaiul formelor permit clasificarea prin
selecia clasei de probabilitate maxim.
Vom folosi urmtoarele notaii:
) (
j
P - probabilitatea aprioric a clasei
j
;
) / (
j
X P - probabilitatea ca clasa
j
s includ forma X;
) / (
j
X P - probabilitatea ca forma X s fie inclus n clasa
j
;
) , (
k j
F - funcia de pierdere, care descrie pierderea ce afecteaz procesul de
recunoatere cnd o form din clasa
j
este clasificat ca aparinnd clasei
k
.
Funcii de pierdere uzuale sunt:
a) Funcia de pierdere simetric, dat de:

=
=
k j , 1
k j 0
) / (
k j
pentru
pentru ,
F (1)
care mai poate fi scris:
(j,k) 1 ) / (
k j
F = (2)
unde (j,k) este funcia delta Kronecker.
b) Funcia de pierdere diagonal, descris de:

=
=
k j , 0
k j h
) / (
j
k j
pentru
pentru ,
F (3)
Pe baza funciei de pierdere se definete pierderea medie condiionat sau riscul
condiionat pentru fiecare clas prin:

=
=
C
N
1 j
j k j k
) / ( ) / ( ) , ( X P F X L (4)
11. Tehnici statistice de recunoatere.
150
Folosind formula lui Bayes (sau formula cauzei), avem:

) (
) ( ) / (
) / (
j j
j
X P
P X P
X P = (5)
rezult pentru riscul condiionat expresia:

=
=
C
N
1 j
j j k j k
) ( ) / ( ) / (
) (
1
) , ( P X P F
X P
X L (6)
Decizia de clasificare se ia pe baza riscului minim de eroare, deci conform regulii:
k ,j ...N 1 j ), , ( ) , (
C j k k
= < X L X L X (7)
Se remarc faptul c procesul de luare a deciziei impune calculul a
C
N funcii de risc
condiionat, unde
C
N este numrul de clase.
Trecerea la funcii discriminant se face imediat definindu-le prin:
) , ( ) (
k k
X L X D = (8)
adic:

=
=
C
N
1 j
j j k j k
) ( ) / ( ) / (
) (
1
(X) P X P F
X P
D (9)
care definete funcia de decizie pentru clasificatorul Bayes.
Deci regula de decizie devine:
k ,j ...N 1 j ), ( ) (
C j k k
= > X D X D X (10)
Pentru funcia de pierdere simetric, riscul condiionat are expresia:
[ ]

=
=
C
N
1 j
j j j j k
) ( ) / ( (j,k) ) ( ) / (
) (
1
) , ( P X P P X P
X P
X L (11)
Dar din formula probabilitii totale avem:

=
=
C
N
1 j
j j
) ( ) / ( ) ( P X P X P (12)
i ca urmare:
) ( ) / (
) (
1
1 ) , (
k k k
P X P
X P
X L + = (13)
Probabilitatea ) (X P este aceeai pentru toate funciile de risc condiionat, deci putem
folosi:
) ( ) / ( ) , (
k k

k
P X P X L = (14)
Rezult funcia de decizie a clasificatorului Bayes pentru funcia de pierdere simetric:
) ( ) / ( ) (
k k k
P X P X D = (15)
Pe baza ei se scrie regula de decizie:

) (
) (
) / (
) / (
) ( ) / ( ) ( ) / (
k
j
j
k
j j k k k
P
P
X P
X P
P X P P X P X > = > (16)
unde cu s-a notat raportul de verosimilitate.
Pentru funcia de pierdere diagonal, expresia riscului condiionat este
) ( ) / ( ) h (
) (
1
) , (
k k k k
P X P
X P
X L = (17)
i din aceleai considerente ca mai sus vom folosi:
) ( ) / ( h ) , (
k k k

k
P X P X L = (18)
Funcia de decizie a clasificatorului Bayes pentru funcia de pierdere diagonal este:
11. Tehnici statistice de recunoatere.
151
) ( ) / ( h ) (
k k k k
P X P X D = (19)
iar regula de decizie corespunztoare se scrie:

) ( h
) ( h
) / (
) / (
) ( ) / ( h ) ( ) / ( h
k k
j j
j
k
j j j k k k k
P
P
X P
X P
P X P P X P X > = > (20)
Probabilitatea global de eroare pentru clasificatorul Bayes este:


=
(
(

=
C
i
N
1 i

i i e
)d / ( ) ( P X X P P (21)

11.2. Metode parametrice de clasificare statistic.
n cazul metodelor parametrice se presupun cunoscute caracteristicile statistice ale
formelor de intrare, adic densitatea de probabilitate pentru fiecare clas i probabilitile
apriorice ale claselor.
Cel mai des, sistemele reale sunt descrise de legea normal. Pentru cazul unidimensional
avem:

(


=
2
2
2
m) (x
2
1
(x) exp (22)
unde "m" i "" sunt respectiv media i dispersia variabilei aleatoare cu distribuie
normal.
Pentru cazul multidimensional, mediei i corespunde:
} {X E M = (23)
iar dispersiei:
} ) )( {(
T
M X M X E = (24)
unde E este operatorul speran matematic, iar este matricea de covarian a variabilei
aleatoare multidimensionale ) ,...,x ,x (x
n 2 1
= X .
Densitatea de repartiie multidimensional este:

(

=

) ( ) (
2
1
) 2 ( | |
1
) (
1 T
2 n/ 2 1
M X M X exp

X
/
(25)
Deci:

(

=

) ( ) (
2
1
) 2 ( | |
1
) / (
k
1
k
T
k
2 n/ 2 / 1
k
k
M X M X exp

X P (26)
Pentru funcia discriminant se prefer folosirea logaritmului:
[ ] ) ( ) / ( ) (
k k

k
P X P log X D = (27)
Renunnd la termenii care sunt independeni de clas, rezult:
) (
2
1
2
1
| |
2
1
) (
k k
1
k
T
k
1
k
T
k
1
k
T
k k
P log M M X M X X log X D + + =

(28)
Sunt foarte utile unele propuneri simplificatoare:
1) Dac matricile de covarian sunt egale pentru toate clasele se obine binecunoscutul
clasificator liniar:
) (
2
1
) (
k k
1 T
k
1 T
k k
P log M M X M X D + =

(29)
2) Fcnd presupunerea suplimentar a clasificrii binare, funcia de decizie se scrie:
) ( )/ (
2
1
2
1
) ( ) (
2 1 2
1 T
2 1
1 T
1
1 T
2
T
1
P P log M M M M X M M X D + + =

(29)
11. Tehnici statistice de recunoatere.
152
3) Dac probabilitile apriorice ale claselor sunt egale, funcia de decizie multicategorial este:

k
1 T
k
1 T
k k
2
1
) ( M M X M X D

= (30)
4) Dac trsturile formei de intrare sunt necorelate, atunci este o matrice diagonal i avem:

k
T
k
T
k k
2
1
) ( M M X M X D = (31)
care este tocmai clasificatorul binar de distan minim. Trsturi necorelate se obin n
urma transformrii Hotteling (Karhunen-Loeve discret).

11.3. Metode neparametrice de recunoatere statistic.
Pierderea medie condiionat (riscul condiionat) pentru un clasificator bayesian este dat
de:

=
=
c
N
1 i
i i i k k
) ( ) / ( ) / (
) (
1
) , ( P X P F
X P
X L (32)
Riscul global de clasificare incorect, a crui minimizare se dorete, este dat de:

k
)d ( ) , ( r X X P X L (33)
unde integrala se calculeaz peste ntreg spaiul formelor, deoarece, evident:

=
U
c
N
1 k
k
(34)
nlocuind prima formul n cea precedent, se obine:



= =
(

=
(

=
c c
N
1 i

i i k i

N
1 i
i i i k
)d / ( ) / ( ) ( d ) ( ) / ( ) / ( r X X P F P X P X P F (35)
Deoarece orice clasificare multicategorial poate fi realizat folosind un set adecvat de
clasificatori binari, formula anterioar devine pentru cazul 2 N
c
= :
+ + =

2 1

1 2 1 1

1 1 1 1
)d / ( ) / ( ) ( )d / ( ) / ( ) ( r X X P F P X X P F P


+ +
2 1

2 2 2 2

2 1 2 2
)d / ( ) / ( ) ( )d / ( ) / ( ) ( X X P F P X X P F P (36)
n expresia de mai sus ) , (
i i
F este valoarea funciei de pierdere pentru cazul clasificrii
corecte, i ca urmare, pentru simplificarea calculelor, se poate impune 0 ) , (
i i
= F , de unde
obinem:


+ =
1 2

2 1 2 2

1 2 1 1
)d / ( ) / ( ) ( )d / ( ) / ( ) ( r X X P F P X X P F P (37)
Se urmrete construirea unui clasificator binar n condiiile minimizrii riscului global dat
de expresia anterioar. Dac clasificatorul dorit este unul linear, el este descris de vectorul de
ponderi W (care d normala la hiperplanul de decizie din spaiul extins al trsturilor), regula de
decizie fiind dat n acest caz de:

<
>
0
0
T
2
T
1
X W X
X W X

(38)
Condiia de linearitate impus clasificatorului nu este restrictiv. innd cont de
dependenele existente, trebuie fcut nlocuirea:
) W X F F , , / ( ) / (
2 1 2 1
(39)
i atunci avem:
11. Tehnici statistice de recunoatere.
153


+ =
1 2

2 1 2 2

1 2 1 1
)d / ( ) , , / ( ) ( )d / ( ) , , / ( ) ( X X P W X F P X X P W X F P r (40)
Planul de decizie, deci parametrii clasificatorului trebuiesc determinai din condiia
minimizrii riscului global, adic:
0 ) ( = W r , unde
|
|
.
|

\
|
=
+1 n 2 1
w w w

... (41)
Calculnd gradientul riscului global, rezult expresia:

=
2

1 2 1 1
)d / ( ) , , / ( ) ( ) ( X X P W X F P W r
) g X X P W X F P
1 2

2 1 2 2
, ( )d / ( ) , , / ( ) (
1
+ +

(42)
unde ultimul termen este datorat dependenei gradientului de limitele de separare a
claselor. Impunnd ca funcia de pierdere F s fie nul pe aceste limite de separare, ultimul termen
se anuleaz.
Funciile de pierdere care pot fi folosite n construcia neparametric a clasificatorilor
bayesieni sunt enumerate n continuare:
(1). Funcia de pierdere simetric:

=
=
k j 1
k j 0
) / (
j k
pentru
pentru
,
,
F (43)
(2). Funcia de pierdere diagonal:

=
=
k j 0
k j h
) / (
k
j k
pentru
pentru
,
,
F (44)
(3). Funcii de pierdere dependente de distana ntre forma clasificat incorect i clasa
corect:

Fig. 1. Funcii de pierdere dependente de distan.

Distana se msoar de la planul de decizie la forma clasificat incorect folosind:

2 1
1 n
1 i
2
i
T T
w
d
/
X W
W
X W
|
.
|

\
|
= =

+
=
(45)
Dac 0 d < , nseamn c forma a fost clasificat corect, deci n acest caz avem:
0 d 0 (d) < = pentru , F (46)
Pentru o funcie de pierdere dependent liniar de distana la planul de decizie, avem:

<

=
incorect e clasificar pentru
corect e clasificar pentru
, X , X W ,
W
X W
, X , X W ,
F
1
T
T
1
T
2 1
0
0 0
,d) / (

(47)
11. Tehnici statistice de recunoatere.
154

>

=
incorect e clasificar pentru
corect e clasificar pentru
, X , X W ,
W
X W
, X , X W ,
F
2
T
T
2
T
1 2
0
0 0
,d) / (

(48)
Se calculeaz:

( )
=

=

=
|
|
.
|

\
|

2
2 1
T T
2
T
T
W
W W X W W X
W
W X W W X
W
X W
/


( )
3
T
2
2
1
T
2
2 1
T T
W
W ) X W ( W X
W
W W X W W X
W
W W W X W W X
/

=

(49)
iar rezultatul se noteaz cu:

3
T
2

) (
) (X,
W
W X W W X
W f

= (50)
Ca urmare, gradientul riscului global poate fi exprimat cu:
) , ( )d / ( ) , ( ) ( )d / ( ) , ( ) ( ) (
1 2

2 2

1 1
1 2
g X X P W X f P X X P W X f P W r + + =

(51)
Aceste metode fiind neparametrice, caracteristicile statistice ale procesului sunt
necunoscute, deci ) (
i
P , ) / (
1
X P nu se cunosc. De aceea se adopt o procedur iterativ de
estimare a lui "W", riscul global estimndu-se i el plecnd de la formele din setul de
antrenament:

+
+ = +

= =
2 1
N
1 m
) 2 (
m 1 2
2
N
1 m
) 1 (
m 2 1
1
) , , / (
N
1
) , , / (
N
1
) (
(i) (i) ) 1 (i
W X F W X F W r
W W W
(52)
Metoda gradientului descresctor furnizeaz condiia ca ) i ( W s fie proporional cu
) (W r , deci s avem:
) ( (i) ) 1 (i W r W W = + (53)
i pe baza formulei precedente se poate utiliza drept estimaie a gradientului:



+
2 1
M m
) 2 (
m
2 M m
) 1 (
m
1
(i)) , (
N
1
(i)) , (
N
1
) ( W X f W X f W r (54)
unde cu
2 1
M , M s-au notat mulimile indicilor care, la iteraia "i" produc o clasificare
corect.
Generalizarea metodei precedente pentru cazul mai multor clase este imediat.

11.4. Clasificatorul Bayes pentru forme codate binar.
Dac forma X este codificat binar, trsturile n 1 i x
i
... , = pot lua deci doar dou valori.
Atunci ) / (
k
X P va fi definit de "n" probabiliti de forma ) / (x
k i
p , fiecare reprezentnd
probabilitatea ca trstura
i
x s fie "1" pentru toate formele din clasa
k
.
Fiind doar dou valori posibile, ) / (x 1
k i
p reprezint probabilitatea ca trstura
i
x s
fie "0" pentru toate formele din clasa
k
.
Presupunnd independena statistic a trsturilor, probabilitatea ca "X" s aparin clasei
k
se scrie:
11. Tehnici statistice de recunoatere.
155

=
n
1 i
x 1
k i
x
k i k
i i
)] / (x 1 [ )] / (x [ ) / ( p p X P (55)
nlocuind relaia anterioar n expresia funciei discriminant pentru un clasificator
bayesian cu funcie de pierdere simetric:
)] )P( / ( [ ) (
k k k
X P log X D = (56)
rezult succesiv:
) ( } )] / (x 1 [ )] / (x [ { ) (
k
n
1 i
x 1
k i
x
k i k
i i
P log p log p log X D + + =

=

(57)
) ( )] / (x 1 [ ) x 1 ( ) / (x x ) (
k
n
1 i
k i i
n
1 i
k i i k
P log p log p log X D + + =

= =
(58)
) ( )] / (x 1 [
) / (x 1
) / (x
x ) (
k
n
1 i
k i
n
1 i k i
k i
i k
P log p log
p
p
log X D + +

=

= =
(59)
Folosind notaiile:

) / (x 1
) / (x
w
k i
k i

(k)
i
p
p
log

= ) ( )] / (x 1 [ w
k
n
1 i
k i

(k)
1 n
P log p log + =

=
+
(60)
relaia obinut anterior se scrie:
X W X D
T
1 n
1 i
i i k
x w ) ( = =

+
=
(61)
unde 1 x
1 n
=
+
. Se obine deci, n ipoteza independenei statistice a trsturilor i pentru o
funcie de pierderi simetric, un clasificator liniar.
Pentru cazul clasificrii binare, funcia de decizie este:
) ( ) ( ) (
2 1
X D X D X D = (62)
i nlocuind:
) (
) (
) / (x 1
) / (x 1
) / (x 1
) / (x
) / (x 1
) / (x
x ) (
2
1
n
1 i 2 i
1 i
n
1 i 2 i
2 i
1 i
1 i
i
P
P
log
p
p
log
p
p
log
p
p
log X D +

+
(

=

= =
(63)
rezult n final:

) (
) (
) / (x 1
) / (x 1
)] / (x 1 )[ / (x
)] / (x 1 )[ / (x
x ) (
2
1
n
1 i 2 i
1 i
n
1 i 1 i 2 i
2 i 1 i
i
P
P
log
p
p
log
p p
p p
log X D +

=

= =
(64)
n cazurile n care nu se cunoate probabilitatea aprioric a claselor se aplic criteriul
verosimilitii maxime, care implic presupunerea c toate clasele sunt egal probabile, aceasta
pentru a evita estimrile eronate ale acestor probabiliti plecnd de la numrul de forme din setul
de antrenare.

11.5. Aproximarea densitilor de probabilitate.
Se disting dou situaii, cum ar fi:
(1). Se cunoate tipul distribuiei respectate de formele din setul de antrenament,
dar nu se cunosc parametrii acestei distribuii.
(2). Nu se cunoate tipul distribuiei.
n primul caz, cel mai adesea, parametrii care caracterizeaz distribuia sunt media, care se
estimeaz simplu prin:

=
=
k
N
1 i
k
i
k
k
N
1
) ( ) (
X M (65)
i dispersia, estimat prin:
11. Tehnici statistice de recunoatere.
156

=
=
k
N
1 i
2 (k) (k)
i
k
(k)
) (
N
1
M X (66)
Cazul secund poate fi rezolvat prin trei modaliti, primele dou necesitnd calculul
histogramei de distribuie pentru fiecare trstur n parte. Foarte util este asigurarea prealabil a
independenei statistice a trsturilor. De aceea se utilizeaz transformarea Karhunen-Loeve care
furnizeaz la ieire valori necorelate sau, dac vectorii de intrare pot fi modelai cu un proces
Markov de ordinul unu, se poate utiliza cu foarte bune rezultate Transformarea Cosinus Discret
(DCT), care aproximeaz foarte bine transformarea KL.

x
m
(k)
H(x )
(k)
m

Fig. 2. Construcia histogramei de distribuie.

O prim soluie este aproximarea acestei histograme de distribuie cu o funcie analitic,
aproximare pentru care exist instrumente matematice foarte bine puse la punct. Cealalt soluie,
mai economic din punct de vedere computaional, propune pstrarea acestor histograme de
distribuie sub forma tabelar, uzual reinndu-se 3-20 valori.
Ambele soluii furnizeaz deci o estimaie a densitii de probabilitate
) k (
i
pentru
trstura "m" i clasa "k". Independena statistic a trsturilor permite calculul unei estimri a
densitii de repartiie multidimensionale folosind relaia:

=
=
n
1 i
(k)
i
(k)
i
(k)
) (x ) ( X (67)
Ultima soluie are la baz aproximarea densitilor de repartiie multidimensionale pentru
fiecare clas n parte folosind metoda funciilor de potenial, metod ce va fi discutat n cadrul
capitolului urmtor.
12. Metoda funciilor de potenial.
157





12. Metoda funciilor de potenial.




12.1. Construcia clasificatorilor bazai pe funcii de potenial.
12.2. Aproximarea densitilor de probabilitate cu funcii de potenial.




12.1. Construcia clasificatorilor bazai pe funcii de potenial.
Aceast metod const n construirea unui "cmp potenial" n jurul fiecrui punct (form)
cunoscut din spaiul formelor. Apoi se calculeaz cmpul potenial global al fiecrei clase
folosind (dup metoda potenialelor electrice din electrotehnic) principiul superpoziiei.
O form de intrare necunoscut va fi atribuit acelei clase care exercit asupra ei cmpul
cel mai puternic.
Numim funcia de potenial corespunztoare unei forme cunoscute din clasa
k
, o funcie:
R ): , (
(k)
i
X X (1)
n general, pentru ca o funcie oarecare s poat fi funcie de potenial, ea trebuie s
ndeplineasc urmtoarele condiii:
(1). S admit maxime pentru:

c m
k
m
N 1 k N 1 m ... , ... , X X
) (
= = = (2)
(2). S fie neglijabil la distane mari de X
m
k ( )
:
) ( 0 ) (
k
i
k
i
) ( ) (
X , X d , X , X pentru (3)
(3). S fie continu i s scad monoton cu distana.
(4). Dac ) ( ) (
k
i 2
k
i 1
) ( ) (
X , X X , X = , atunci formele
1
X i
2
X trebuie s aib
aproximativ acelai grad de similaritate n raport cu
) k (
m
X .
Funcia de potenial poate fi diferit de la o form la alta n interiorul aceleiai clase,
funcie de influena fiecrei forme asupra procesului de recunoatere, dar i diferit de la o clas
la alta. Scderea funciei de potenial monoton cu distana dintre X i
) k (
m
X reflect scderea
influenei cmpului asupra formelor noi mai deprtate.
Cteva exemple de funcii de potenial simple sunt enumerate n continuare, pentru cazul
unidimensional:
(1). funcia de potenial dreptunghiular:

>

=
1 x 0
1 x 5 0
(x)
| | ,
| | , .
pentru
pentru
(4)
12. Metoda funciilor de potenial.
158

-1 1 0
0.5
x
(
x
)

(2). funcia de potenial triunghiular:

>

=
1 |x| , 0
1 |x| |x|, 1
(x)
pentru
pentru
(5)

-1 1 0
x
(
x
)
1

(3). funcia de potenial gaussian:
2
x
2
e
2
1
(x)

= (6)
(4). funcia de potenial tip descretere exponenial:
|x|
e
2
1
(x)

=
(7)
(5). funcia de potenial tip Cauchy:
) x 1 (
1
(x)
2
+
=

(8)
Se observ similitudinile care exist, ca expresie, ntre funcia de potenial i densitatea de
probabilitate. n practic, funciile de potenial se folosesc mult pentru estimarea densitii de
probabilitate.
Cunoscnd funciile de potenial ataate tuturor formelor prototip din fiecare clas, putem
construi o funcie discriminant ataat unei clase, prin calculul cmpului potenial global:

=
=
k
M
1 i
(k)
i
k
k
) , (
M
1
) ( X X X D (9)
Decizia se ia atunci dup regula cunoscut:

c j k k
...N 1 k, j j ), ( ) ( = > X D X D X (10)
Pentru cazul clasificrii binare (dou clase), funcia discriminant este de forma:


= =
=
2 1
M
1 i
) 2 (
i
2
M
1 i
) 1 (
i
1
) , (
M
1
) , (
M
1
) ( X X X X X D (11)
Planul de decizie fiind dat de punctele de potenial nul, regula de decizie n acest caz este
de forma:

<
>
0 ) (
0 ) (
2
1
X D X
X D X
(12)
Dac funcia de potenial folosit este cea gaussian multidimensional (foarte des
utilizat), atunci:
)] ( ) ( [ ) , (
(k)
i
T (k)
i
(k)
i
X X X X exp X X = (13)
Dezvoltnd expresia anterioar obinem:
] 2 [ ] [ ) , (
2
(k)
i
(k)
i
T
2
(k)
i
X X X exp X exp X X = (14)
primul factor fiind comun tuturor funciilor de potenial, se folosete:
] 2 [ ) , (
2
(k)
i
(k)
i
T (k)
i
X X X exp X X = (15)
12. Metoda funciilor de potenial.
159
Dup definirea funciilor de potenial pentru fiecare clas n parte, ele pot fi apoi
modificate aditiv sau multiplicativ, pentru a accentua sau diminua influena unui anume cmp.
O alt variant permite evaluarea funciilor discriminant dup metoda celor "k" vecini,
astfel:
(1). se determin cei mai apropiai "k" vecini ai formei de intrare n clasificator.
(2). se sorteaz pe clase aceti "k" vecini.
(3). se estimeaz potenialul global al fiecrei clase doar pe baza potenialului celor civa
vecini.
(4). se execut clasificarea dup regula descris anterior.

12.2. Aproximarea densitilor de probabilitate cu funcii de potenial.
Estimarea densitilor de probabilitate ale claselor poate fi fcut folosind metoda
funciilor de potenial, astfel:

=
=
k
M
1 m
(k)
m
k
k
) , (
M
1
) / ( X X X p (16)
Pentru ca ) / (
k
X p s fie o densitate de probabilitate, funcia ) , (
(k)
m
X X trebuie s
ndeplineasc urmtoarele condiii:
(1). + < ) (X sup (17)
(2). + <

+

X X d ) ( (18)
(3). 1 )d ( =

+

X X (19)
(4). 0 (x) x
x
=

lim (20)
Funciile de potenial descrise mai sus ndeplinesc aceste condiii.
Dac se folosete funcia potenial gaussian:

(


=
2
(k)
m
T (k)
m
n
(k)
m
2
) ( ) (
) 2 (
1
) , (


X X X X
exp X X (21)
unde parametrul "" este un factor de netezire, rezult:

=
(


=
k
M
1 m
2
(k)
m
T (k)
m
n
k
k
2
) ( ) (
) 2 ( M
1
) / (


X X X X
exp X p (22)

(
(

(
(

=

=
2
2
(k)
m
M
1 m
2
(k)
m
T
2
2
n
k
k
2 2
) 2 ( M
1
) / (
k

X
exp
X X
exp
X
exp X p (23)
Dezvoltnd n serii exponeniala a doua, obinem:


= =
|
|
.
|

\
|
(
(

(
(


k
M
1 m
p
1 h
h
2
(k)
m
T
2
2
(k)
m
2
2
n
k
k
h!
1
2 2
) 2 ( M
1
) / (

X X
X
exp
X
exp X p (24)
Parametrul de netezire are o influen foarte mare asupra operaiei de estimare a densitii
de probabilitate. Folosind formula anterioar, funcia discriminant pentru clasa
k
a unui
clasificator bayesian cu funcie de pierdere simetric poate fi construit cu:


= =
|
|
.
|

\
|
(
(

=
k
M
1 m
p
1 h
h
2
(k)
m
T
2
2
(k)
m
k
k
k
h!
1
2 M
) (
) (

X X
X
exp
P
X D (25)
12. Metoda funciilor de potenial.
160
unde primul raport i prima exponenial se calculeaz doar o singur dat, n faza de
construcie a clasificatorului.
13. Algoritmi de grupare
(clustering).
161





13. Algoritmi de grupare (clustering).




13.1. Modaliti de descriere a clusterilor.
13.2. Gruparea prin descompunerea densitilor de probabilitate.
13.3. Algoritmi neparametrici de grupare cu numr predeterminat de clase (IZODATA).
13.4. Algoritmul L.B.G. ( Linde-Buzo-Gray ) de cuantizare vectorial.
13.4.1. Cuantizarea vectorial.
13.4.2. Msuri ale distorsiunii.
13.4.3. Cuantizarea optimal.
13.4.4. Algoritmul L.B.G. pentru distribuie cunoscut.
13.4.5. Algoritmul L.B.G. pentru distribuie necunoscut.
13.4.6. Alegerea alfabetului de refacere iniial.
13.5. Detalii de implementare.




13.1. Modaliti de descriere a clusterilor.
Problemele de grupare a datelor intervin cnd se lucreaz cu date neetichetate n setul de
antrenament. Asemenea situaii apar fie cnd, n interiorul unei clase deja definite, se urmrete
structurarea informaiei existente n scopul construciei eficiente a funciei discriminant
corespunztoare, fie cnd, necunoscnd nimic despre structura intern a setului de date, se
studiaz gruprile naturale care apar n urma interdependenelor ntre aceste date.
Fiind dat setul de date de antrenament x
= ,...N 1 i i
} { , pe baza lui se urmrete construcia
gruprilor (clusterilor)
,...,R 1 i i
} {
=
X , astfel nct:
X ... X X =
R 2 1
i (1)
j i R 1 j i
j i
= = , ... , , X X
Descrierea regiunilor (clusterilor) se poate face n mai multe moduri:
(1). Printr-un numr de hiperplane i un numr de reguli logice care s localizeze clusterul
n interiorul unei zone limitate de hiperplane.
(2). Prin coordonatele centrului clusterului i o msur a distanei ntre formele aparinnd
clusterului i acest centru.
(3). Prin suprafee de proximitate descrise de ecuaii de forma 0 ) ( = x f , msura distanei
de la forma studiat la suprafa fiind dat de chiar ) (x f .
(4). Printr-un numr de forme prototip ataate fiecrui cluster i o msur a distanei ntre
forma de intrare i aceste forme prototip. Teoria funciilor de potenial poate fi utilizat cu succes
pentru deducerea msurii acestei distane i, evident, pentru construcia unei funcii discriminant
ntre clase.
(5). Prin funcii discriminant, regula de decizie rezultnd din evaluarea acestora:
13. Algoritmi de grupare (clustering).
162
...R 1 j,i i ), ( ) (
i j j
= > x D x D X x (2)
(6). Metode ierarhice, avnd de obicei la baz principiul dihotomiei, i care realizeaz
gruparea setului de forme de antrenament n dou grupri pentru nceput, urmnd ca apoi
succesiv, s se subdivid aceste grupri n subgrupri de dimensiuni din ce n ce mai mici, pn la
obinerea clusterilor dorii. Decizia de apartenen se ia n urma parcurgerii arborelui binar (de
obicei) care se obine astfel.

13.2. Gruparea prin descompunerea densitlor de probabilitate.
O mixtur este o funcie densitate de probabilitate complex care poate fi reprezentat
prin superpoziia unor densiti de probabilitate mai simple:

=
=
R
1 i
(i)
i
) ( P ) ( x p x p (3)
unde
i
P are semnificaia probabilitii apriorice a clusterului "i", iar ) (
(i)
x p este densitatea
de probabilitate elementar ataat clusterului "i".
Se ntlnesc urmtoarele situaii:
(1). Se cunoate legea de repartiie pentru clusterii a cror definire se dorete, i nici unul
(sau numai o parte) din parametrii ce caracterizeaz aceste distribuii.
(2). Nu se cunoate legea de repartiie pentru aceti clusteri.
De cele mai multe ori, fiecrui cluster i corespunde un maxim local n mixtur. Asimilnd
aceste maxime locale (moduri) cu mediile variabilelor aleatoare ce genereaz mixtura, se obine o
simplificare a problemei. Dac, n plus, densitile de probabilitate elementare se suprapun foarte
puin se poate scrie:

i
(i)
i
), ( P ) ( X x x p x p pentru (4)
Dac nu poate fi fcut ultima supoziie, se folosete soluia determinrii parametrilor
necunoscui prin minimizarea unei funcii de cost care evalueaz diferenele ntre densitatea de
probabilitate real i cea obinut prin superpoziia densitilor elementare. Aceast minimizare se
face de obicei iterativ. Problema poate fi abordat i din punctul de vedere al teoriei funciilor de
potenial, caz n care se estimeaz:

N
N
P
i
i
, iar

R
1 i
i i
) ,m ( N
N
1
) ( x x p (5)
unde
i
m este modul de ordinul "i", iar " " denot funcia de potenial utilizat, urmrindu-
se estimarea parametrilor intrinseci ai funciei de potenial.
Localizarea iterativ a clusterilor n cazul n care se cunosc modurile distribuiei de
probabilitate
) ( ) ( ) (
m ,..., m , m
0
R
0
2
0
1
i se dispune de o distan ) , ( y x d n spaiul formelor, poate fi
fcut folosind algoritmul de ajustare a centrelor ("center adjustment algorithm"):
(1). Atribuie succesiv fiecare form "y" din setul de antrenament clusterului al crui centru
este cel mai apropiat, folosind estimarea curent a centrului lui,
) k (
i
m ;
(2). Calculeaz noile centre ale fiecrui cluster, adic
) 1 k (
i
+
m care minimizeaz distana
medie ntre centru i elementele care alctuiesc clusterul:

=
(k)
i
C y
i
) , ( ) ( m y d m Q (6)
(3). Salt la pasul (1) pentru urmtoarea form din setul de antrenament i cu centrii ajustai
n pasul (2) pn cnd nu se mai schimb de la o iteraie la alta asignarea formelor la clase,
asignare efectuat in pasul (1).
13.3. Algoritmi neparametrici de grupare cu numr predeterminat de clase.
13. Algoritmi de grupare
(clustering).
163
Dac se consider clasificarea nesupervizat ca o metod de grupare a claselor n scopul
maximizrii separabilitii lor, atunci se pot construi diverse funcii de cost a cror
maximizare/minimizare permite formarea clusterilor. Funciile de cost se construiesc de obicei pe
baza urmtoarelor matrici:
} ) )( {(
T (i) (i) (i) (i)
i
x x x x E = - matricea de covarian a clasei "i";

=
=
M
1 i
i i
(in)
) ( P - matricea de dispersie intraclas;

=
=
M
1 i
T (i) (i) (i) (i)
i
(ic)
) )( )( ( x x x x P - matricea de dispersie interclas;

) ( ) ( ) (

ic in m
+ = - matricea de dispersie mixt.
Funciile de cost utilizate cel mai des i care se construiesc pe baza lor sunt:
] ) [(
(in) 1 (m)
1
tr C

= (minimizare) (7)
] ) [(
(m) 1 (in)
2
tr C

= (maximizare) (8)
|] |/| [|
(in) (m)
3
ln C = (maximizare) (9)
Minimizarea/maximizarea lor permite construcia unei transformri optimale din familia
transformrilor Karhunen-Loeve, transformri care realizeaz transpunerea datelor de intrare ntr-
un spaiu n care separabilitatea claselor (clusterilor) este optimizat.
Volumul mare de calcule necesar pentru transformarea precedent face ca, cel mai adesea,
pentru gruparea claselor ntr-un numr predeterminat de clase s fie preferat un algoritm iterativ
de construcie a clusterilor, numit algoritmul IZODATA:
(1). Se consider o partiie iniial a formelor de intrare,
) (

0
i pe baza ei se calculeaz
mediile celor M clase,
) 0 (
M
) 0 (
2
) 0 (
1
,..., , m m m , iar numrul iteraiei se iniializeaz cu 0 n = .
(2). Folosind mediile
) n (
M
) n (
2
) n (
1
,..., , m m m rezultate n urma iteraiei "n", se reclasific
vectorul de intrare curent n clusterul corespunztor celei mai apropiate medii.
(3) Dac exist cel puin o form de intrare din setul de antrenament a crei asignare este
schimbat, se calculeaz noile medii
) ( ) ( ) (
m ,..., m , m
1 n
M
1 n
2
1 n
1
+ + +
i se reia pasul (2). n caz contrar
algoritmul se oprete.
Se remarc faptul c ajustarea mediilor se face la algoritmul IZODATA pentru fiecare
eantion, n timp ce algoritmul ajustrii centrelor, descris anterior, realizeaz acest lucru dup
reclasificarea tuturor eantioanelor. Din aceeai clas de algoritmi mai face parte i metoda
minimizrii sumei erorilor medii ptratice care atribuie o form de intrare din setul de
antrenament unui alt cluster, doar dac scade eroarea medie ptratic dat de:

=
=
M
1 i
2
p
p

x
m x (10)
Algoritmul cuprinde urmtorii pai:

Algoritmul IZODATA.
(1). Se alege o partiionare iniial a celor N eantioane n clase (clusteri), calculndu-
se mediile corespunztoare fiecrui cluster precum i eroarea " ";
(2). Se iniializeaz iteraia cu 0 n = ;
(3). 1 n n + =
(4). Se extrage urmtoarea form din setul de antrenament
p i
x . Dac 1 N
p
= ,
adic
i
x este singura form asignat clasei
p
, se continu cu pasul (8);
(5). Se calculeaz:
13. Algoritmi de grupare (clustering).
164


+
=
p q
1 N
N
p q
1 N
N
2
p n
p
p
2
q n
q
q
k
pentru
pentru
, m x
, m x
(11)
(6). Se asigneaz
n
x clasei
k
dac
q k
, pentru toi "q";
(7). Se calculeaz "" i mediile
p
m i
q
m .
(8). Dac N n < , salt la pasul (3), n caz contrar salt la pasul (9).
(9). Stop dac "" nu s-a modificat dup ultima parcurgere a mulimii de N eantioane,
n caz contrar salt la pasul (2).

13.4. Algoritmul L.B.G. (Linde-Buzo-Gray) de cuantizare vectorial.
Un algoritm intuitiv i eficient pentru alegerea unui cuantizor vectorial (sau de bloc)
definit pe baza unor msuri de distorsiune relativ generale, a fost dezvoltat de Linde, Buzo i
Gray, el putnd fi utilizat att n descrieri de surse probabilistice cu caracteristici cunoscute, ct i
pentru studierea secvenelor lungi de date. Algoritmul este bazat pe o abordare datorat lui Lloyd,
nu este o tehnic variaional i nu implic diferenierea. Folosind tehnici variaionale comune,
algoritmul produce cuantizori ce ating condiii necesare dar nu i suficiente pentru optim. Cel
puin la nivel local, optimul este asigurat.

13.4.1. Cuantizarea vectorial.
Un cuantizor pe N nivele (clase), K-dimensional este o aplicaie q care atribuie fiecrui
vector de intrare x:
) , ... , x (x
1 K- 0
= x , (12)
un vector de refacere x :
) (x q x = , (13)
obinut dintr-un alfabet de refacere finit A

:
,...,N} 1 ;i {y
i
= = A

(14)
Cuantizorul q este complet descris de alfabetul de refacere (cartea de coduri) A

mpreun
cu partiia spaiului vectorial de intrare S:
,...,N}, 1 ;i {
i
= = S S (15)
n seturile:
} y ) ( ; {
i i
= = x q x S (16)
ale aplicaiei vectorilor de intrare n vectorul de refacere i (cuvntul de cod i). Asemenea
cuantizori mai sunt denumii i cuantizori de bloc, cuantizori vectoriali sau coduri surs de bloc.

13.4.2. Msuri ale distorsiunii.
Presupunem c distorsiunea cauzat de refacerea unui vector de intrare x de ctre un
vector de refacere x este dat de o msur nenegativ a distorsiunii ) , ( x x d . Multe asemenea
msuri ale distorsiunii au fost propuse n literatur. Cea mai uzual, din motive de compatibilitate
matematic, este eroarea medie ptratic a distorsiunii:
x x ) , (
1 K
0 i
2
i i

=
= x x d , (17)
Alte msuri comune ale distorsiunii sunt

l sau norma Holder:


13. Algoritmi de grupare
(clustering).
165
x x ) , (
/ 1

1 K
0 i
i i

x x x x d =

=
, (18)
i puterea a sa, distorsiunea de ordinul :

x x x x d = =

=
1 K
0 i
i i
x x ) , ( , (19)
Cum ambele msuri ale distorsiunii date prin relaiile anterioare depind de puterea a
erorilor n coordonate separate, msura din prima relaie este adeseori mai folositoare, deoarece
fiind o distan (sau metric) i satisfcnd inegalitatea triunghiului, permite limitarea distorsiunii
totale mai uor, ntr-un sistem cu mai muli pai, prin sumarea distorsiunilor individuale ntlnite
la fiecare treapt, n timp ce distorsiunea de ordinul din relaia a doua nu are aceast proprietate.
Alte msuri ale distorsiunii sunt

l , sau norma Minkowski:


x x ) , (
i i
1 K i 0
max x x d =

, (20)
distorsiunea ptratic ponderat:

2
1 K
0 i
i i i
x x w ) , (

=
= x x d , (21)
unde 1 K 0 i 0 w
i
= ,..., ,
i o distorsiune mai general, distorsiunea cuadratic:
) x )(x x (x B ) ( ) ( ) , (
j j
1 K
0 i
1 K
0 j
i i i,j
t
x x B x x x x d = =

=
, (22)
unde {i,j} B B = este o matrice KxK simetric, pozitiv definit.
Toate msurile descrise anterior pentru distorsiune au proprietatea c depind de vectorii x
i x numai prin vectorul de eroare x x . Asemenea msuri ale distorsiunii avnd forma:
) ( ) , ( x x L x x d = , (23)
sunt numite msuri diferen ale distorsiunii. Msuri ale distorsiunii care au aceast form,
dar depind de x i x ntr-un mod mai complicat, au fost propuse pentru sistemele de compresie de
date.
Interesant este msura distorsiunii propus de Itakura i Saito i de Chaffee care apare n
sistemele de compresie vocal i are forma:

t
) )( ( ) ( ) , ( x x x R x x x x d = , (24)
unde pentru fiecare x, matricea ) (x R cu dimensiunea KxK este simetric i pozitiv
definit.
Aceast distorsiune seamn cu distorsiunea ptratic anterioar, dar matricea de
ponderare depinde de vectorul de intrare x.
O msur a distorsiunii ) ( x , x d ntre x i o refacerea x , ar putea fi vzut ca o msur a
distorsiunii ntre dou filtre sau modele normalizate (cu ctig unitar). n acest caz o msur a
distorsiunii a fost propus de Itakura i Saito i de Chaffee, ea fiind exprimat prin relaia:
} 1 ,...,K 0 ;j 1 ,...,K 0 j);k (k { ) (
x
= = = r x R (25)
definit de:
2 d e e a (k)
i k
2

K
0 m
i m
i x
/ r


= , (26)
descris prin x, cnd intrarea are un spectru plat de amplitudine, unitar (sistemele LPC
standard i minimizeaz implicit aceast distorsiune, ceea ce sugereaz c este o msur potrivit
a acesteia, pentru cuantizarea urmtoare).
13. Algoritmi de grupare (clustering).
166
Fie ) ,...,X (X
1 k- 0
= X un vector real aleator descris de o funcie de distribuie cumulativ
avnd forma:
} 1 ,...,K 1 , 0 ;i x {X ) (
i i
= = P x F (27)
O msur a performanei cuantizorului q aplicat vectorului aleator X este dat de
distorsiunea ateptat:
))} ( , ( { ) ( X q X d E q D = (28)
unde E denot operatorul speran matematic aplicat distribuiei de mai sus F.
Aceast msur a performanei este semnificativ din punct de vedere fizic dac
cuantizorul q va fi folosit la cuantizarea unei secvene de vectori:
) , ... , X (X
1 nk+k- nk n
= X (29)
care sunt staionari i ergodici, de vreme ce distorsiunea medie temporar:

1 n
0 i
i i
1
)) (X , (X n q d (30)
converge cu probabilitatea "1" ctre ) ( q D pentru n (din teoria ergodic), de unde rezult
c ) ( q D descrie distorsiunea medie (temporal) pentru rularea pe durat mare.

13.4.3. Cuantizarea optimal.
Un cuantizor pe N nivele va fi numit optimal (sau optimal global), dac minimizeaz
distorsiunea ateptat, cu alte cuvinte,

q este optimal dac pentru toi ceilali cuantizori q avnd


N vectori de refacere avem:
) ( *) ( q D q D (31)
Un cuantizor va fi numit optim local dac ) ( q D este doar un minim local, altfel spus,
modificri uoare ale lui q duc la o cretere a distorsiunii. Scopul proiectrii cuantizorului de bloc
este de a obine un cuantizor optimal, dac este posibil, iar dac nu, un cuantizor optim local.
Civa asemenea algoritmi au fost propui n literatur pentru proiectarea asistat de calculator a
cuantizorilor local optimali.
n 1957, ntr-o lucrare nepublicat, S. Lloyd a propus dou metode de proiectare a
cuantizorului pentru cazul scalar ) 1 k ( = , cu un criteriu dat de distorsiunea eroare ptratic.
"Metoda II" era o abordare variaional direct, n care a luat derivatele n raport cu simbolurile
de refacere
i
y i cu punctele limit ce defineau
i
S , fcnd aceste derivate zero. Din aceasta
rezult n general doar un cuantizor "de punct staionar" (derivata zero multidimensional) care
satisface condiii necesare dar nu i suficiente pentru optimalitate. Folosind argumentele derivatei
a-II-a, este uor de stabilit c asemenea cuantizoare "de punct staionar" asigur mcar optime
locale pentru msuri folosind regula puterii . .. .
Lloyd a demonstrat optimalitatea global pentru anumite distribuii folosind tehnica
cutrii exhaustive a tuturor optimumurilor locale. n esen, aceeai tehnic a fost propus i
utilizat n problema paralel a analizei de grup de ctre Danelius n 1950, Fischer n 1953 i Cox
n 1957. Aceast tehnic a fost dezvoltat n mod independent de Max n 1960 iar cuantizorul
rezultat este n mod uzual cunoscut sub denumirea de cuantizorul Lloyd-Max.
De remarcat c n cteva situaii, abordarea variaional eueaz:
dac k nu este egal cu 1 sau 2, nevoile de calcul devin prea complexe.
dac sunt dorite n plus msuri ale distorsiunii mai complexe, puterea de calcul
cerut de ecuaiile variaionale poate deveni exorbitant.
dac distribuia de probabiliti n cauz are componente discrete, atunci
derivatele necesare nu exist, dnd natere la probleme de calcul.
13. Algoritmi de grupare
(clustering).
167
dac lipsete o descriere probabilistic precis a vectorului aleator X i ne
bazm proiectarea pe o secven lung studiat, atunci nu exist nici o
modalitate evident de a aplica metoda variaional.

Pentru a descrie "Metoda 1" a lui Lloyd n cazul general, presupunem mai nti c
distribuia este cunoscut.
Fiind dat un cuantizor q descris de un alfabet de refacere A

:
,...,N} 1 ;i= {y
i
= A

, (32)
i partiia S:
,...,N}, 1 ;i {S
i
= = S (33)
atunci distorsiunea ateptat de forma:
) ( }) , ({ q D S A

D = (34)
poate fi scris ca:

=
=
N
1 i
i i i
) ( } S )| ,y ( { ]} , ([ S X P X X d E S A

D (35)
unde } )| ,y ( {
i i
S X X d E este distorsiunea condiionat ateptat, fiind dat
i
S X , sau
echivalent, fiind dat
i
y ) ( = X q
Presupunem c avem dat un anume alfabet de refacere A

, dar nu este specificat nici o


partiie. O partiie optim pentru A

poate fi uor construit printr-o aplicaie de la fiecare x la


A

y
i
, minimiznd distorsiunea ) ,y (
i
x d , deci cu alte cuvinte, alegnd distorsiunea minim sau
cel mai apropiat cuvnt de cod pentru fiecare intrare.
O regul de departajare, cum ar fi alegerea refacerii cu cel mai mic index, este necesar n
cazul n care mai mult de un cuvnt de cod minimizeaz distorsiunea.
Partiia notat:
,...,N} 1 ;i { ) (
i
= = P A

P (36)
construit n aceast manier este astfel nct:

i
P x (sau echivalent
i
y ) ( = x q ) (37)
dac i numai dac:
) ,y ( ) ,y (
j i
x d x d (38)
oricare ar fi j i de aici avem:
))) , ( ( ( )]) ( , ([
A y
y X d min E A

P A

= (39)
care, la rndul ei, implic pentru orice partiie S ca:
)]) ( , ([ ]) , ([ A

P A

D S A

D (40)
Astfel, pentru un alfabet de refacere fixat A

, cea mai bun partiie posibil este ) (A

P .
Reciproc, s presupunem c avem o partiie ,...,N} 1 ;i {
i
= = S S descriind cuantizorul.
Pentru moment vom presupune c msura distorsiunii i distribuia sunt astfel nct pentru fiecare
set S cu probabilitatea diferit de zero ntr-un spaiu euclidian k-dimensional exist un vector de
minim distorsiune ) (S x pentru care:
) ) , ( ( )= )) ( , ( ( S X u X d E min S X S x X d E
u
(41)
Analog cazului msurii erorii ptratice a distorsiunii i a distribuiei de probabilitate
uniform, numim vectorul ) (S x centroidul sau centrul de greutate a setului S. Dac asemenea
puncte exist, atunci n mod clar pentru o partiie fixat S:
13. Algoritmi de grupare (clustering).
168
,...,N} 1 ;i {
i
= = S S (42)
nici un alfabet de refacere A

:
,...,N} 1 ;i {y
i
= = A

(43)
nu poate produce o distorsiune medie mai mic dect alfabetul de refacere ) (S x :
,...,N} 1 );i ( { ) (
i
= = S x S x (44)
coninnd centroizii seturilor din S, deoarece avem inegalitatea din relaia:
=

=
N
1 i
i i i
) ( ) ) ,y ( ( ]) , ([ S X Pr S X X d E S A

D
]) ), ( ([ ) ( ) ,y) ( (
i i
N
1 i
u
S S X

D S X Pr S X X d E min =

=
(45)
Centroizii din relaia anterioar exist pentru toate seturile S cu probabilitate nenul pentru
msuri ale distorsiunii relativ generale.
n particular, dac ) , ( y x d este convex n y, atunci centroizii pot fi calculai folosind
tehnicile de programare convexe standard. n anumite cazuri, pot fi gsii uor folosind tehnici
variaionale. Dac probabilitatea unui set S este zero, atunci centroidul poate fi definit ntr-o
manier arbitrar, din moment ce sperana matematic dat de S nu are o definiie unic.

13.4.4. Algoritmul L.B.G. pentru distribuie cunoscut.

(0) Iniializarea : fie dat N = numrul de clase, un prag de distorsiune 0 , un
alfabet de refacere iniial de clas N notat
0

A i o distribuie F.
Facem 0 m = i =
1
D .
(1) Fiind dat N} 1 i {
i m
,..., ; y A

= = , gsim partiia de distorsiune minim:


,...,N} 1 i { ) (
i m
= = ; S A

P cu
i
S x ,
dac ) ,y ( ) ,y (
j i
x d x d oricare ar fi j.
Calculm distorsiunea medie rezultant
m
D de forma:
)} , ( { )}) ( , ({ D
m
A j
m m m
y X d E A

P A

D

min

= = (46)
(2) Dac )/D D (D
m m 1 m

, oprire la
m

A i ) (
m
A

P ce descriu cuantizorul final.


Dac )/D D (D
m m 1 m
>

, continum cu pasul (3)


(3) Cutm alfabetul de refacere optimal de forma:
,...,N} 1 );i ( { )) ( (
i m
= = S x A

P x pentru ) (
m
A

P .
Facem )) ( (
m 1 m
A

P x A

=
+
.
nlocuim m cu 1 m + i relum de la pasul (1).

Dac ntr-un punct oarecare, partiia optimal ) (
m
A

P are o celul
i
S astfel nct
0 ) (
i
= S X Pr , atunci algoritmul asigneaz ca centroid un vector arbitrar i continu.
O alternativ mai simpl este aceea c dac cuantizorul final produs de algoritm are
probabilitatea zero pentru o celul, atunci vom rula din nou algoritmul cu alte condiii iniiale.
Deoarece avem
1 m m
D D

, de aici rezult c fiecare iteraie a algoritmului fie reduce
distorsiunea, fie o las neschimbat. Cum
m
D este necresctor i pozitiv, el trebuie s aib o
13. Algoritmi de grupare
(clustering).
169
limit inferioar, s zicem

D , pentru m . Dac un cuantizor limitat

exist n sensul
Euclidian uzual

m
cu m , atunci:


= D )}) ( , ({ A

P A

D (47)
i

are proprietatea c:
)) ( ( A

P x A

, (48)
cu alte cuvinte,

este exact centroidul propriei sale partiii optimale (cuantizorul limit, dac
exist, este numit cuantizor de punct fix).
O condiie necesar a unui cuantizor pentru a fi optimal, este aceea de a fi un cuantizor de
punct fix. n cazul lui Lloyd, dac un cuantizor de punct fix este astfel ales nct nu exist nici o
probabilitate pe frontiera celulelor de partiie, altfel spus, dac:
) ,y ( )] ,y ( [
j i
X d X d Pr = , pentru un j i , oricare ar fi 0 i , (49)
atunci cuantizorul este optim local.
O tehnic similar a fost propus n 1953 de Fischer n problema analizei de grup folosind
deciziile lui Bayes cu privire la costul erorii ptratice.
n 1965, Forgy a propus algoritmul pentru analiza de grup n cazul multidimensional al
erorii ptratice a distorsiunii i o distribuie de eantioane.
n 1977, Chen a propus n esen acelai algoritm pentru cazul multidimensional cu erorea
ptratic drept msur a distorsiunii i l-a folosit la proiectarea cuantizoarelor bidimensionale
pentru vectori uniform distribuii n cerc.
Deoarece algoritmul nu pune nici un fel de condiii de difereniabilitate, el este aplicabil
pentru distribuii discrete pure. Acest fapt are o aplicabilitate important atunci cnd nu se
cunoate dinainte o descriere probabilistic a sursei ce va fi comprimat, i din acest motiv
trebuie s ne bazm n proiectare pe studiul unei secvene lungi de date, ce urmeaz a fi
compresat.

13.4.5. Algoritmul L.B.G. pentru distribuie necunoscut.

(0) Iniializarea: fie dat N = numr de clase, pragul distorsiunii 0 , un alfabet de
refacere iniial de clas N, notat cu
0

A i o secven studiat
j
x de forma:
} 1 n ,..., 0 j ; x {
j
= .
Facem 0 m = i =
1
D . (50)
(1) Fie dat
} N ,..., 1 i ; {

i m
= = y A , (51)
cutm partiia de distorsiune minim
} N ,..., 1 i ; { )

( P
i m
= = S A (52)
pentru secvena studiat
i j
S x dac:
) , d( ) , d(
l j i j
y x y x , (53)
oricare ar fi l.
Calculm distorsiunea medie:
) , d( min n )})

( P ,

({ D D
j
1 n
0 j

1
m m m
m
y x A A
A y

= = (54)


13. Algoritmi de grupare (clustering).
170
(2) Dac avem
m m 1 m
D / ) D D ( , (55)
ne oprim la
m

A ca alfabet de refacere final.


Dac avem >
m m 1 m
D / ) D D ( , (56)
continum cu pasul (3).
(3) Cutm alfabetul de refacere optimal:
} N ,..., 1 i ); ( { ))

( P (
i m
= = S x A x pentru )

( P
m
A . (57)
Facem ))

( P (

m 1 m
A x A =
+
. (58)
nlocuim m cu 1 m + i relum de la pasul (1).

Dac secvena de vectori aleatori este staionar i ergodic, atunci se respect teorema
ergodic, conform creia cu probabilitatea unu,
n
G converge spre distribuia real de baz, notat
F, pentru n .
O tehnic similar folosit n analiza de grup cu funcii de cost tip eroare medie ptratic a
fost dezvoltat de McQueen n anul 1967, fiind numit metoda "K-means".
Alt tehnic, mult mai utilizat, folosind metoda "K-means" este metoda "IZODATA" a lui
Ball i Hall. Ideea principal, aceea de a gsi partiiile de distorsiune minim i centroizii este
aceeai, dar secvena de date studiat este folosit ntr-o manier diferit, iar cuantizorii rezultai
vor fi, n general, diferii. Tehnica lor este secvenial, ncorporeaz vectorii studiai unul cte
unul i se sfrete cnd ultimul vector este ncorporat. Aceasta este n contrast cu algoritmul
anterior, care consider toi vectorii studiai pentru fiecare iteraie.
Scopul metodei "K- means" este de a produce o partiie:
] [
1 N 0 0
= S , ... , S S (59)
a alfabetului studiat, cuprinznd toi vectorii din secvena de studiu.
} 1 ,...,n 0 ;i {
i
= = x A (60)
Alfabetul de refacere corespunztor A

va fi colecia centroizilor Euclidieni a seturilor


i
S ;
cu alte cuvinte, alfabetul de refacere final va fi optimal pentru partiia final, dar aceasta ar putea
s nu fie optimal pentru alfabetul de refacere final, cu excepia cazului cnd n .
Pentru a obine S, mai nti ne gndim la fiecare
i
S ca la o colecie de vectori n care
punem vectori din secvena studiat pn cnd toi vectorii sunt distribuii. Iniial vom ncepe prin
a pune primii N vectori n seturi separate, altfel spus
i i
S x .
La fiecare iteraie, un nou vector studiat
m
x este observat. Gsim setul
i
S pentru care
distorsiunea ntre
m
x i centroidul ) (
i
S x este minimizat i apoi includem
m
x n acel set. Altfel
la fiecare iteraie noul vector este adugat n setul cu cel mai apropiat centroid. La urmtoarea
iteraie, setul va avea un nou centroid. Operaia continu, pn cnd toi vectorii eantion sunt
ncorporai.
Dei similar ca filozofie, algoritmul "K-means" are cteva diferene eseniale. n
particular, este potrivit pentru cazul cnd doar secvena de studiu trebuie clasificat, deci acolo
unde o secven lung de vectori trebuie grupat ntr-o manier care s ofere o distorsiune
sczut.
Procedura secvenial este eficient din punct de vedere al calculului, dar un "cuantizor"
nu este determinat dect atunci cnd procedura se oprete.
Recent, Levenson i alii au folosit o variant a algoritmilor "K-means" i IZODATA cu o
msur a distorsiunii propus de Itakura, pentru a determina modelele de recunoatere a vorbirii
indiferent de vorbitor.

13. Algoritmi de grupare
(clustering).
171
13.4.6. Alegerea alfabetului de refacere iniial.
Exist cteva metode de a alege alfabetul de refacere iniial
0

A cerut de algoritm.
O metod ce poate fi folosit pe distribuii de eantioane este cea de la metoda "K-
means", cu alte cuvinte alegnd primii N vectori din secvena studiat.
Alt metod este de a utiliza un cuantizor uniform pentru ntregul alfabet al sursei sau
pentru cea mai mare parte a sa, dac acesta este limitat. De exemplu, dac este utilizat pe o
distribuie de eantioane, se poate folosi un cuantizor uniform k-dimensional pe un cub euclidian
k-dimensional, incluznd toate, sau cea mai mare parte a punctelor n secvena studiat.
A treia tehnic este util cnd se dorete proiectarea de cuantizoare de clase succesive mai
mari, pn se atinge un nivel acceptabil al distorsiunii.

Construcia succesiv de cuantizoare.
(0) Iniializarea : facem 1 M = i definim ) ( ) 1 (
0
A x A

= centroidul ntregului alfabet,


sau centroidul secvenei studiate, dac se folosete o distribuie de
eantioane.
(1) Fiind dat un alfabet de refacere (M)
0
A

coninnd M vectori:
,...,M} 1 ;i {
i
= y ,
"descompunem" fiecare vector
i
y n doi vectori alturai:
y +
i
i y
i
, M ,..., 1 i = .
unde este vectorul perturbaiei fixat. Colecia A
~
dat de:
,...,M} 1 ,i , {
i i
= + y y ,
are M 2 M M = + vectori.
nlocuim M cu 2M.

(2) Dac N M = facem (M)
0
A
~
A

= i ne oprim.
0

A este deci alfabetul de refacere


iniial pentru algoritmul de cuantizare de clas N.
Dac N M rulm algoritmul pentru un cuantizor de clasa (nivel) M cu ) M (
~
A ,
pentru a determina un alfabet de refacere bun (M)
0
A

i apoi ne ntoarcem
la pasul (1).

Aici considerm cuantizoare de clasa M cu ,... 1 , 0 R , 2 M
R
= = i continum pn obinem
un set de valori iniiale pentru un cuantizor de clas N.
Folosind algoritmul de descompunere pe o secven studiat se poate ncepe cu un
cuantizor de clasa (nivel) 1, constnd n centroidul secvenei studiate. Apoi acest vector este
descompus n doi vectori i algoritmul pentru cuantizori de clasa (nivel) 2 este rulat folosind
aceast pereche de vectori pentru a obine un cuantizor bun de punct fix de clas sau nivel 2.
Fiecare din aceti doi vectori este apoi descompus i algoritmul este rulat pentru a obine un
cuantizor bun de clas 4.
Se remarc c putem avea cuantizoare de punct fix pentru valorile N ,..., 8 , 3 , 2 , 1 .

13. Algoritmi de grupare (clustering).
172
-1 -0.71 -0.5 -0.13 0.5 1.0
x
f(x)
0.1
0.05
0.5
1.0
0.9
0.95
optimal
staionar
de punct
cuantizor
cuantizor

Fig. 1. Distribuia de test pentru cuantizarea vectorial.

n acest caz avem cuantizoare cu dou clase i cu dou optime locale. Unul are clasele de
ieire ) 383 . 0 ( , cellalt, care este optim global, are clasele de ieire de ) 71 . 0 ( i ) 13 . 0 ( , din
care rezult o eroare medie ptratic de ) 048 . 0 ( .
Algoritmul modificat este testat pe o secven de 2000 de eantioane alese n
conformitate cu densitatea de probabilitate artat. Zgomotul Gaussian a fost adugat pornind de
la o valoare unitar i reducnd valoarea cu aproximativ % 50 la fiecare rulare succesiv. Ipoteza
iniial a fost ) 5 . 0 ( + i ) 5 . 0 ( , ceea ce nseamn un optim local. Fiecare rulare a fost oprit cnd
distorsiunea s-a modificat cu mai puin de 0.1% fa de valoarea sa anterioar.

13.5. Detalii de implementare.
n continuare este prezentat o implementare simpl a algoritmului LBG de cuantizare
vectorial. Este vorba de un program C++ care reduce numrul de culori dintr-o imagine de la 256
la 8, 16, 32 sau 64 culori. Noile culori se determin din condiia de minimizare a erorii medii
ptratice de aproximare a vechilor culori. Att imaginea iniial ct i cea final sunt imagini de
tip .BMP (bitmap cu 256 culori indexate). O asemenea implementare poate fi folosit foarte
simplu la generarea modelelor de goblen plecnd de la orice imagine color.
Alegerea setului iniial de culori (alfabetul de refacere iniial) se face folosind metoda
descris n paragraful 13.4.6. Iniial, se consider c alfabetul de refacere iniial are doar o singur
clas (care coincide, evident, cu media aritmetic a setului de intrare) i apoi se dubleaz numrul
de clase prin divizarea fiecrei clase n dou, dup care se ruleaz algoritmul LBG. Operaiile
precedente se repet pn la atingerea numrului dorit de clase (culori).
Implementarea prezentat n continuare furnizeaz la ieire, pe lng imaginea bitmap cu
numr redus de culori i un alt fiier de acelai tip care conine paleta de culori n format grafic si
modul de etichetare a acestor culori. La acestea se adaug un numr de fiiere text coninnd
"harta" goblenului.

// Acest funcie realizeaz reducerea numrului de culori dintr-o
// imagine de la 256 la nColors folosind algoritmul LBG de cuantizare
// vectorial. Pentru claritate, nu au fost incluse optimizri evidente,
// cum ar fi utilizarea histogramei la calculul distorsiunii

BOOL CreateGoblenModel(CString* pstrFilePath, int nColors)
{
// ateapt numr colori
if (nColors == -1) {
do {
_tprintf(_T("Color Count (8,16,32 or 64): "));
_tscanf(_T("%d"), &nColors);
} while (nColors!=8 && nColors!=16 && nColors!=32 && nColors!=64);
}

// ateapt nume fiier
13. Algoritmi de grupare
(clustering).
173
if (pstrFilePath == NULL) {
pstrFilePath = new CString;
TCHAR c;
scanf(_T("%c"), &c);
do {
_tprintf(_T("Image File Path: "));
_getts(pstrFilePath->GetBuffer(MAX_PATH));
pstrFilePath->ReleaseBuffer();
} while (pstrFilePath->GetLength() == 0);
}

// deschide fiier BITMAP (256 culori neaprat!!)
BOOL bRet = Open_BMPFile(pstrFilePath);
if (bRet == FALSE)
return FALSE;

double dmin;
int p, q;
double* Red = (double*)malloc(nColors*sizeof(double));
double* Grn = (double*)malloc(nColors*sizeof(double));
double* Blu = (double*)malloc(nColors*sizeof(double));
Red[0]=0;
Grn[0]=0;
Blu[0]=0;
// calculeaz valoarea medie pentru cele 3 componente de culoare
// ele constituie coordonatele nodului iniial
for (q=0; q<BMIH.biHeight; q++) {
for (p=0, dmin=0.0; p<BMIH.biWidth; p++) {
Red[0] += RGBQ[SMatrix[p][q]].rgbRed;
Grn[0] += RGBQ[SMatrix[p][q]].rgbGreen;
Blu[0] += RGBQ[SMatrix[p][q]].rgbBlue;
}
}
Red[0] /= BMIH.biWidth * BMIH.biWidth;
Grn[0] /= BMIH.biWidth * BMIH.biWidth;
Blu[0] /= BMIH.biWidth * BMIH.biWidth;

int i, j, k, m, u, v;
double eps = 0.001, DC = 1000000.0, DP, d, R,G,B;
int NC = 1, s;

// Bucla principal a algoritmului LBG de cuantizare vectorial.
// Numrul initial de centroizi (culori) este 1, el se dubleaz la
// fiecare pas pn la atingerea numrului dorit
v=0, m=0;
while((1<<v) < nColors) {
// dubleaz numrul de centroizi
for (u=0; u<NC; u++) {
Red[u] += 0.005;
Grn[u] += 0.005;
Blu[u] += 0.005;
Red[u+NC] = Red[u] - 0.01;
Grn[u+NC] = Grn[u] - 0.01;
Blu[u+NC] = Blu[u] - 0.01;
}
NC = NC * 2;

// ajusteaz pozitie centroizi pn distorsiunea relativ scade sub prag
DC = 1000000.0;
_tprintf(_T("\n\nCOLORS=%3d\n"), NC);
do {
13. Algoritmi de grupare (clustering).
174
DP = DC;
DC = 0;
// calcul distorsiune
for (q=0; q<BMIH.biHeight; q++) {
for (p=0, dmin=0.0; p<BMIH.biWidth; p++) {
_tprintf(_T("\rx=%3d y=%3d"), q, p);
dmin = 256.0 * 256 * 3;
j = SMatrix[p][q];
for (i=0; i<NC; i++) {
d =(RGBQ[j].rgbRed-Red[i]) * (RGBQ[j].rgbRed-Red[i]);
d+=(RGBQ[j].rgbGreen-Grn[i]) * (RGBQ[j].rgbGreen-Grn[i]);
d+=(RGBQ[j].rgbBlue-Blu[i]) * (RGBQ[j].rgbBlue-Blu[i]);
if (d < dmin) {
dmin = d;
k = i;
}
}
DMatrix[p][q] = k;
DC += dmin;
}
}

k = 0;
DC = DC / BMIH.biWidth / BMIH.biHeight;
_tprintf(_T("\nEpoch%3d, Error=%f\n"), m, (DP-DC)/DC);
// recalculeaz poziie centroizi
if ((DP - DC) / DC > eps) {
for (i=0; i<NC; i++) {
_tprintf(_T("Recompute node=%3d\n"), i);
s=0; R=0.0; G=0.0; B=0.0;
for (q=0; q<BMIH.biHeight; q++) {
for (p=0; p<BMIH.biWidth; p++) {
if (DMatrix[p][q] == i) {
j = SMatrix[p][q];
R += (float)RGBQ[j].rgbRed;
G += (float)RGBQ[j].rgbGreen;
B += (float)RGBQ[j].rgbBlue;
s++;
}
}
}
if (s != 0) {
Red[i] = R / s;
Grn[i] = G / s;
Blu[i] = B / s;
}
}
} else
k = 1;
m++;
} while (k == 0);
v++;
}

// ordoneaz culorile din palet funcie de luminan
long Index[64];
for(i=0; i<nColors; i++)
Index[i] = i;
for(i=0; i<nColors; i++) {
for(j=0; j<nColors-1; j++) {
if ((Red[j]+Grn[j]+Blu[j]) > (Red[j+1]+Grn[j+1]+Blu[j+1])) {
13. Algoritmi de grupare
(clustering).
175
R = Red[j];
G = Grn[j];
B = Blu[j];
Red[j] = Red[j+1];
Grn[j] = Grn[j+1];
Blu[j] = Blu[j+1];
Red[j+1] = R;
Grn[j+1] = G;
Blu[j+1] = B;
k = Index[j];
Index[j] = Index[j+1];
Index[j+1] = k;
}
}
}

// reconstruiete noua imagine
for(q=0; q<BMIH.biHeight; q++) {
for(p=0; p<BMIH.biWidth; p++) {
for(i=0; i<nColors; i++) {
if (Index[i] == DMatrix[p][q])
break;
}
DMatrix[p][q] = i;
}
}

CString strModulePath = GetOutputPath();
_tprintf(_T("\nOutput to folder: %s\n"), strModulePath);

// imaginea generat va fi salvat n fiierul GOBLEN.BMP
CString strNewFile = strModulePath + _T("GOBLEN.bmp");
bRet = fBMP.Open(strNewFile, CFile::modeCreate | CFile::modeWrite);
if (bRet == FALSE) {
_tprintf(_T("Cannot Open Destination File!!!"));
return FALSE;
}
// construiete noua palet
for(i=0; i<nColors; i++) {
RGBQ[i].rgbRed = Red[i] + 0.5;
RGBQ[i].rgbGreen= Grn[i] + 0.5;
RGBQ[i].rgbBlue = Blu[i] + 0.5;
}
free(Red);
free(Grn);
free(Blu);
for(i=nColors; i<256; i++) {
RGBQ[i].rgbRed = 0;
RGBQ[i].rgbGreen= 0;
RGBQ[i].rgbBlue = 0;
}
// scrie antetul i apoi coninutul fiierului rezultat
fBMP.Write(&BMFH, sizeof(BITMAPFILEHEADER));
fBMP.Write(&BMIH, sizeof(BITMAPINFOHEADER));
for (i=0; i<256; i++)
fBMP.Write(&RGBQ[i], sizeof(RGBQUAD));
for(q=BMIH.biHeight-1; q>=0; q--) {
for(p=0; p<L; p++) {
i = DMatrix[p][q];
fBMP.Write(&i, 1);
}
13. Algoritmi de grupare (clustering).
176
}
fBMP.Close();

// ataeaz fiecrei colori din cele max 64 posibile un caracter
BYTE c;
char Cod[64] = {'0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F',
'G','H','J','K','L','M','N','P',
'R','S','T','U','V','X','Y','Z',
'a','b','c','d','e','f','g','h',
'j','k','m','n','o','p','q','r',
's','t','u','v','x','y','z','w',
'@','#','$','%','&','*','<','>'};
u = (BMIH.biWidth + PW - 1) / PW;
v = (BMIH.biHeight + PH - 1) / PH;
for(i=0; i<u; i++) {
for(j=0; j<v; j++) {
strNewFile.Format(_T("%sGOBL%02d%02d.TXT"), strModulePath, i, j);
// deschide fiier text
bRet = fTXT.Open(strNewFile, CFile::modeCreate | CFile::modeWrite);
if (bRet == FALSE) {
_tprintf(_T("Cannot Open Output Text File!!!"));
return FALSE;
}
// scrier fiier text
for(q=j*PH; q<j*PH+PH && q<BMIH.biHeight; q++) {
for(p=i*PW; p<i*PW+PW && p<BMIH.biWidth; p++) {
c = Cod[DMatrix[p][q]];
fTXT.Write(&c, 1);
if (p%10 == 9) {
c=0x20;
fTXT.Write(&c, 1);
}
}
c = 0x0d;
fTXT.Write(&c, 1);
c = 0x0a;
fTXT.Write(&c, 1);
if (q%10 == 9) {
c = 0x0d;
fTXT.Write(&c, 1);
c = 0x0a;
fTXT.Write(&c, 1);
}
if (q%PH == PH-1) {
c = 0x0c;
fTXT.Write(&c, 1);
}
}
fTXT.Close();
}
}
Free_BMatrix(SMatrix, BMIH.biWidth, BMIH.biHeight);
Free_BMatrix(DMatrix, BMIH.biWidth, BMIH.biHeight);

// creaz fiier palet
strNewFile = strModulePath + _T("PALLETE.BMP");
bRet = fPAL.Open(strNewFile, CFile::modeCreate | CFile::modeWrite);
if (bRet == FALSE) {
_tprintf(_T("Cannot Open Palette File!!!"));
return FALSE;
13. Algoritmi de grupare
(clustering).
177
}
BMIH.biWidth = nColors * 16;
BMIH.biHeight = 200;
BMIH.biSizeImage = BMIH.biWidth * BMIH.biHeight;
BMFH.bfSize = BMIH.biSizeImage + BMFH.bfOffBits;

fPAL.Write(&BMFH, sizeof(BITMAPFILEHEADER));
fPAL.Write(&BMIH, sizeof(BITMAPINFOHEADER));
for (i=0; i<256; i++)
fPAL.Write(&RGBQ[i], sizeof(RGBQUAD));
for(q=0; q<BMIH.biHeight-24; q++) {
for(p=0; p<BMIH.biWidth; p++) {
c = p / 16;
fPAL.Write(&c, 1);
}
}

HRSRC hResource = ::FindResource(NULL,
(LPCTSTR)IDR_BINARY_HEADER,
_T("BINARY"));
HGLOBAL hGlobal = ::LoadResource(NULL, hResource);
BYTE* pHeader = (BYTE*)::LockResource(hGlobal);

for(q=0; q<24; q++) {
for(p=0; p<BMIH.biWidth; p++) {
if (pHeader[q*1024+p] == 0)
c = 0;
else
c = nColors-1;
fPAL.Write(&c, 1);
}
}
fPAL.Close();
return TRUE;
}
14. Reele neurale folosite n recunoaterea de forme.
179





14. Reele neurale folosite n recunoaterea de forme.




14.1. Modele de neuroni.
14.2. Arhitecturi de reele neurale.
14.3. Algoritmi de antrenare a reelelor neurale.
14.4. Perceptronul cu un singur strat.
14.5. Perceptronul multistrat.
14.6. Alte tipuri de reele.
14.6.1. Reeaua Hopfield.
14.6.2. Reeaua Hamming.
14.6.3. Clasificatorul Carpenter-Grossberg.
14.6.4. Harta de trsturi Kohonen.
14.6.5. Reele RBF (Radial Basis Functions).
14.7. Detalii de implementare.




Reelele neurale (neuronale) artificiale (Haykin[47]), (Kohonen[62][63]), (Lipmann[66]),
(Rumelhart[98]) ncearc s se apropie de modelul creierului uman. Spre deosebire de mainile
Von--Neuman care se caracterizeaz prin existena unei uniti procesoare care execut
instruciuni stocate n memorie, ntr-o secven aflat sub controlul numrtorului de program,
alte arhitecturi propuse ncearc s exploateze ct mai eficient paralelismul care este de obicei
inerent. "Procesoarele" care formeaz reelele neuronale, sunt denumite neuroni artificiali.
Dac majoritatea calculatoarelor existente n momentul de fa dispun de o singur unitate
procesoare, extrem de puternic i de rapid, la cealalt extrem din punctul de vedere al structurii
interne se plaseaz aceste reele neurale artificiale, caracterizate printr-o simplificare extrem a
unitilor componente, alturi de o extindere ct mai larg a conexiunilor ntre aceste uniti
procesoare.
Orice reea neural este caracterizat de trei elemente: modelul neuronului, arhitectura
reelei i algoritmul de antrenare folosit.

14.1. Modele de neuroni.
n ceea ce privete modelele de neuroni, cel mai mult folosite n momentul de fa sunt
cele fr memorie, deci care implementeaz o relaie de forma:
) x w ( y
N
1 i
j i ij j
=
= f (1)
unde
j
y este ieirea neuronului "j",
i
x este intrarea "i" a neuronului,
ij
w este ponderea
conexiunii de la intrarea "i" la neuronul "j", iar
j
este pragul ataat neuronului "j". Deci n
14. Reele neurale folosite n recunoaterea de forme.
180
esen, sunt aplicate un set de intrri ) ,...,x ,x (x
n 2 1
, fiecare reprezentnd, de obicei, ieirile altor
neuroni. Fiecare intrare este multiplicat cu o pondere corespunztoare ) ,...,w ,w (w
in 2 i 1 i
, analog
puterii sinapsei, i apoi toate rezultatele sunt sumate pentru a determina nivelul de activare al
neuronului.

W
w
w
w
x
x
x
1
2
n
1
2
n
.
.
.
.

a
funcie
activare
f
y
ieire

Fig. 1. Structura neuronului artificial.

Funcia (a) f Y = este o funcie neliniar care poate fi de tipul limitare hardware, prag
logic, sigmoid simetric sau nu, sau chiar funcia identic.
Limitarea hardware se implementeaz n unul din urmtoarele dou moduri:


Y
0
1.0
a
-1.0

Y
0
1.0
a

+
<
=
0 a , 1
0 a , 1
(a)
pentru
pentru
Y

+
<
=
0 a , 1
0 a , 0
(a)
pentru
pentru
Y (2)

Pragul logic realizeaz limitarea domeniului de ieire la zero pentru valori de intrare
negative (sau uneori la -1) i la +1 pentru valori ce depesc un anumit prag pozitiv. Pentru
anumite aplicaii se prefer utilizarea neuronului liniar.

Y
0
0.5
1.0
a

Y
0 a

<
=
0 a a,
0 a , 0
(a)
pentru
pentru
Y a (a) = Y (3)

Funcia sigmoid, foarte des folosit, asigur limitarea domeniului de ieire al neuronului
la gama ) 1 , 0 ( pentru sigmoida asimetric i la ) 1 , 1 ( + pentru sigmoida simetric.
14. Reele neurale folosite n recunoaterea de forme.
181

Y
0
0.5
1.0
a

Y
0
1.0
-1.0
a


a) ( 1
1
(a)
+
=
exp
Y
a) ( 1
a) ( 1
(a)
+

=
exp
exp
Y (4)

Prin aceast funcie se obine un ctig neliniar pentru neuronul artificial. Acest ctig
variaz de la valori mici pentru excitaii negative mari (curba este aproape orizontal), la valori
mari pentru excitaii mari i pozitive. Grossberg (1973) a gsit c acest ctig neliniar
caracteristic rezolv dilema saturrii.
n ciuda diversitii de modele de neuroni, majoritatea sunt bazate pe aceast configuraie.
Modele mai sofisticate de neuroni introduc variabila timp, un astfel de model fiind descris
de urmtoarele relaii:

=
+ + =

=
) (u y
x w u
dt
du
j j
N
1 i
j i ij j
j
f
(5)
unde
j
u caracterizeaz starea curent a neuronului.

14.2. Arhitecturi de reele neurale.
Dei un singur neuron poate realiza funcii simple de detecie de modele, puterea calcului
neural provine din conectarea neuronilor n cadrul reelelor. O reea neural simpl este aranjarea
unui grup de neuroni pe un strat ca n figura urmtoare:

11
x
1
x
2
x
N
w
22
NK
y
1
y
2
y
K
N2
N1
2K
1K
21
12
w
w
w
w
w
w
w
w

Fig. 2. Reea neural cu un strat.

Setul de intrare X are fiecare element conectat cu fiecare neuron, cu cte o pondere
separat. Fiecare neuron scoate la ieire o sum a produsului ponderi-intrri corespunztoare.
Actualele reele artificiale i biologice au unele din conexiuni lips dar conectivitatea total a fost
artat aici din raiuni de generalitate.
Este convenabil s reprezentm ponderile ca fiind elementele unei matrici. Dimensiunile
matricii fiind N linii pe K coloane, unde N este numrul de intrri, iar K numrul de neuroni. n
acest fel putem calcula pentru setul de neuroni cele K funcii de activare ca simple nmuliri de
matrici:
) ( ) (
T T
X W f A f Y X W A = = = (6)
unde X, A, Y sunt vectori linie, W este o matrice NxK.
14. Reele neurale folosite n recunoaterea de forme.
182
Reelele cu mai multe straturi, mult mai generale i mai complexe, ofer n general, o
capacitate mare de calcul. Asemenea reele au fost construite n orice configuraie imaginabil,
aranjnd neuronii n straturi imitnd structura straturilor dintr-o anumit zon a creierului. Aceste
reele multistrat au capaciti sporite, dovedite relativ la reelele cu un singur strat, iar n ultimii
ani algoritmi performani s-au dezvoltat pentru antrenarea lor.
Reelele multistrat pot fi formate prin simpla cascadare de straturi, ieirile unui strat
devenind intrri pentru stratul urmtor.
Reelele multistrat nu furnizeaz nici o cretere a puterii de calcul n raport cu reelele
cu un singur strat dac nu este prezent o funcie de activare neliniar ntre straturi. Calculul
ieirii unui strat liniar const n nmulirea vectorului de intrare cu prima matrice de ponderi, apoi
(dac nu este prezent o funcie de activare neliniar) multiplicnd vectorul rezultat cu a doua
matrice de ponderi. Aceasta ar putea fi exprimat prin :
) ( X W W Y
T
1
T
2
= (7)
Avnd n vedere c nmulirea de matrici este asociativ, relaia poate fi rescris :
X W W X W W Y
T
2 1
T
1
T
2
) ( ) ( = = (8)
Aceasta arat c o reea liniar cu dou straturi este exact echivalent cu o reea cu un
singur strat ce are matricea ponderilor egal cu produsul celor dou matrici. De aici, se poate
trage concluzia c funcia de activare neliniar este vital pentru extinderea capacitilor reelelor
fa de cele cu un singur strat.
Reelele considerate pn acum nu au conexiuni cu rspunsuri spre napoi ("feedback"),
conexiuni care s aplice valorile de la ieirea unui strat spre intrarea aceluiai strat sau a altui
strat. Aceast clas special, numit reele nerecurente sau cu rspuns (propagare a fluxului de
date) spre nainte ("feed foreward") prezint un interes considerabil i sunt larg aplicate.
n general, reelele care conin conexiuni feedback sunt denumite reele recurente.
Reelele nerecurente nu au memorie, ieirile fiind determinate doar pe baza intrrilor curente i a
valorilor ponderilor.
n cteva configuraii, reelele recurente recirculeaz ieirile anterioare napoi spre intrare;
de aici ieirile lor sunt determinate pe baza intrrilor curente i ieirilor anterioare. Din acest
motiv reelele recurente pot etala proprieti similare cu memoria pe termen scurt a omului.

14.3. Algoritmi de antrenare a reelelor neurale.
Dintre toate caracteristicile interesante ale reelelor neurale, nici una nu capteaz atta
imaginaie ca abilitatea lor de a nva.
Antrenarea reelelor artificiale este ns limitat, multe probleme dificile rmnnd a fi
rezolvate. Oricum, impresionante demonstraii au fost deja fcute, cum ar fi NetTalk a lui
Sejnowski.
Algoritmii de antrenare sunt categorizai n supervizai i nesupervizai. O reea este
antrenat dac aplicarea unui set de intrri produce ieirea dorit sau una apropiat . Antrenarea
este realizat prin aplicarea secvenial de vectori de intrare, n timpul fiecrei asemenea operaii
ajustnd ponderile din reea n acord cu o procedur predeterminat. n timpul antrenrii,
ponderile din reea converg gradual spre valori pentru care fiecare vector de intrare produce
vectorul de ieire dorit.
Antrenarea supervizat cere pentru fiecare vector de antrenare perechea vector int care
este ieirea dorit. Acestea sunt denumite pereche de antrenare. Uzual, o reea este antrenat dup
un numr de astfel de perechi de antrenare.
Un vector de intrare este aplicat, ieirea reelei este calculat i comparat cu vectorul
int, iar diferena (eroarea) este trimis napoi, iar ponderile sunt schimbate n acord cu un
anumit algoritm care tinde s minimizeze eroarea la un nivel acceptabil.
14. Reele neurale folosite n recunoaterea de forme.
183
nvarea nesupervizat nu cere cunotine apriorice despre datele aplicate la intrarea
reelei, reelele se auto-organizeaz pentru a produce ieirile dorite. Antrenarea supervizat a fost
criticat ca fiind biologic neplauzibil. Antrenarea nesupervizat este un model mai plauzibil de
nvare n sistemele biologice.
Dezvoltat de Kohonen (1984) i nc de muli alii, antrenarea nesupervizat nu cere
vector int pentru ieiri, de aceea nu au loc comparaii cu rspunsul ideal. Setul de antrenare nu
cons dect n vectori de antrenare. Algoritmul de antrenare modific ponderile reelei pentru a
produce un vector de ieire consistent. Procesul de antrenare este deci extragerea de proprieti
statistice ale setului de antrenare i a vectorilor, dintr-un grup similar de vectori, n clase.
Aplicnd la intrare un vector, dintr-o clas dat, va produce la ieire un vector specific, dar aici nu
este nici o cale de a determina care model specific va fi gsit la ieire de un vector de intrare
dintr-o clas dat.
De aici, ieirea unei astfel de reele trebuie n general transformat ntr-o form ce s
poat fi neleas, ulterior procesului de antrenare.
Marea majoritate a algoritmilor utilizai n prezent au evoluat de la concepiile lui Hebb
(1961). El propunea un model pentru nvare nesupervizat unde "triile" sinapselor (ponderile)
sunt mrite dac att neuronul surs ct i neuronul destinaie sunt active. n acest fel modelele
utilizate n reele sunt puternice, iar fenomenul de folosire i nvare prin repetiie este explicat.
O reea neural artificial utiliznd algoritmul de nvare al lui Hebb va modifica
ponderile n acord cu produsul nivelelor de excitaie dintre neuronii surs i destinaie. Legea de
nvare este descris de ecuaia:

j i i,j i,j
Y Y (n) w ) 1 (n w + = + (9)
unde: (n) w
i,j
- valoarea ponderii de la neuronul "i" la neuronul "j" naintea ajustrii;
) 1 (n w
i,j
+ - valoarea ponderii de la neuronul "i" la neuronul "j" dup ajustare;
coeficientul de nvare;

i
Y

- ieirea neuronului "i" i intrarea neuronului "j";

j
Y

- ieirea neuronului "j".
Au fost construite reele pentru a folosi algoritmul de nvare al lui Hebb. Oricum,
algoritmi de antrenare mai buni au fost descoperii de Rosenblatt (1962), Widrow (1959),
Widrow, Hoff (1960), realiznd reele capabile s nvee o arie larg de modele de intrare, la o
rat de nvare ridicat, algoritmi care au perfecionat algoritmul de nvare al lui Hebb.

14.4. Perceptronul cu un singur strat.
Cutnd s descopere modele hardware/software ale neuronului biologic i a reelei sale
de interconectare McCulloch i Pitts (1943) au publicat primul studiu sistematic al reelelor
neurale artificiale. ntr-o lucrare ulterioar Pitts i McCulloch (1947) au explorat configuraii de
reele pentru recunoatere de modele cu invarian la rotaie i translaie.
S-a folosit cel mai mult modelul neuronului descris anterior, ns folosind nelinearitatea
prag logic:

>
=
0 a , 0
0 a , 1
(a)
pentru
pentru
f (10)
Aceste sisteme poart numele de perceptron. n general, acestea constau ntr-un singur
strat de neuroni artificiali conectai prin ponderi la un set de intrri.
Rosenblatt (1962) a demonstrat teorema nvrii perceptronilor, Widrow (Widrow
1961,1963, Widrow i Angell 1962, Widrow i Hoff 1960) au fcut un numr de demonstraii
convingtoare asupra perceptronilor ca sisteme. Minsky (Minsky i Papert 1969) au analizat
14. Reele neurale folosite n recunoaterea de forme.
184
aceste probleme cu o mare rigurozitate, dovedind c exist severe restricii n ceea ce poate
reprezenta perceptronul cu un singur strat.
n ciuda limitrilor pe care le prezint, studiul perceptronilor a fost extins (chiar dac nu
sunt folosii pe scar larg). Teoria lor reprezint o fundaie pentru multe alte forme de reele
neurale artificiale i au demonstrat c reprezint principii importante n acest domeniu. Pentru
aceste motive ei reprezint punctul logic de nceput n studiul teoriei reelelor neurale artificiale.
Valabilitatea teoremei nvrii perceptronilor a lui Rosenblatt (1962) demonstreaz c
perceptronii pot nva orice poate fi reprezentat. Este important de fcut distincia ntre
reprezentare i nvare. Reprezentarea se refer la abilitatea perceptronului (sau a altor reele) de
a simula o funcie specific. nvarea reclam existena unei proceduri sistematice de ajustare a
ponderilor din reea pentru a produce acea funcie.

14.5. Perceptronul multistrat.
n figura urmtoare este artat modelul neuronului folosit ca bloc de construcie
fundamental pentru reelele perceptron multistrat:
W
w
w
w
x
x
x
1
2
n
1
2
n
.
.
.
.

a
funcie
activare
f
y
ieire

Fig. 3. Structura unui neuron.

unde -"a" reprezint suma intrrilor ponderate pentru neuronul respectiv;
- ( ) a f funcia neliniar de ieire sigmoid simetric sau nu, sau chiar funcie
liniar.

11 22
MN
z
1
z
2
z
N
M2
M1
2N
1N
21
12
w
w
w
w
w
w
w
w
11
x
1
x
2
x
K
22
KM
y
1
y
2
y
M
K2
K1
2M
1M
21
12
w
w
w
w
w
w
w
w
11
u
1
u
2
u
L
22
LK
L2
L1
2K
1K
21
12
w
w
w
w
w
w
w
w
w
(z)
(z)
(z)
(z)
(z)
(z)
(z)
(z)
(z)
(y)
(y)
(y)
(y)
(y)
(y)
(y)
(y)
(y)
w
(x)
(x) (x)
(x)
(x)
(x)
(x)
(x)
(x)

Fig. 4. Arhitectura tipic a perceptronului cu trei straturi.
O arhitectur tipic pentru un perceptron cu trei straturi este prezentat n figura 4.
Capabilitatea perceptronului multistrat rezid n neliniaritatea folosit n nodurile sale.
Dac nodurile sunt elemente liniare, atunci un perceptron cu un singur strat avnd ponderi
apropiate poate realiza foarte bine aceleai calcule ca i reeaua multistrat.
14. Reele neurale folosite n recunoaterea de forme.
185
Algoritmul backpropagation este o metod sistematic de antrenare a reelelor neurale
artificiale. El are un fundament matematic puternic, dar care nu este ntotdeauna practic.
Pentru a antrena reeaua, un vector X este aplicat la intrare, iar ieirea Y este calculat.
Ponderile care conecteaz intrrile sunt modificate la o valoare care s minimizeze eroarea dintre
ieirea obinut i ieirea dorit. Dup un anumit numr de pai, reeaua va nva s diferenieze
vectorii cu care a fost antrenat de ali vectori de intare.
Fiecare neuron are intrrile conectate cu ieirile stratului precedent. Relaiile care descriu
funcionarea perceptronului multistrat sunt:

|
.
|

\
|
=
|
.
|

\
|
=
|
.
|

\
|
=

=
=
=
L
1 k
pk
x
kj pj
M
1 k
pk
y
kj pj
N
1 k
pk
z
kj pj
u w x
x w y
y w z
) (
) (
) (
f
f
f
(11)
unde: N - numrul de neuroni de pe stratul de ieire;
M - numrul de neuroni de pe stratul intermediar (ascuns);
K - numrul de neuroni de pe stratul de intrare (ascuns);
L - numrul de intrri n reea

pj
z - ieirea neuronului "j" de pe stratul de ieire pentru forma "p" de intrare;

pj
y - ieirea neuronului "j" de pe stratul intermediar pentru forma "p" de intrare;

pj
x - ieirea neuronului "j" de pe stratul de intrare pentru forma "p" de intrare;

pj
u - valoarea aplicat intrrii "j" n reea pentru forma "p" de intrare;

) z (
ij
w - ponderea conexiunii neuronului "i" de pe stratul intermediar cu neuronul "j"
de pe stratul de ieire;

) y (
ij
w - ponderea conexiunii neuronului "i" de pe stratul de intrare cu neuronul "j"
de pe stratul de intermediar;

) z (
ij
w - ponderea conexiunii intrrii "i" n reea cu neuronul "j" de pe stratul de
intrare.
Funcia de eroare corespunztoare formei de intrare "p" este dat de:

=
=
M
1 j
2
pj pj p
) z (d
2
1
E (12)
Toate ponderile reelei neurale se vor modifica n sensul minimizrii acestei erori,
folosind, de exemplu, metoda gradientului descresctor, adic:

=
=
=
(x)
ij
p (x)
ij
(y)
ij
p (y)
ij
(z)
ij
p (z)
ij
w
E
w
w
E
w
w
E
w

(13)
Pentru fiecare strat n parte, derivata parial a erorii medii ptratice n raport cu ponderea
curent poate fi exprimat prin:
14. Reele neurale folosite n recunoaterea de forme.
186

=
=
=
(x)
ij
(x)
pj
(x)
pj
p
(x)
ij
p
(y)
ij
(y)
pj
(y)
pj
p
(y)
ij
p
(z)
ij
(z)
pj
(z)
pj
p
(z)
ij
p
w
a
a
E
w
E
w
a
a
E
w
E
w
a
a
E
w
E

(14)
unde funcia de activare corespunztoare nodului "j" din fiecare strat este dat de:

=
=
=

=
=
=
M
1 i
pi
x
ij
x
pj
M
1 i
pi
y
ij
y
pj
M
1 i
pi
z
ij
z
pj
u w a
x w a
y w a
) ( ) (
) ( ) (
) ( ) (
(15)
Se poate evalua derivata parial a funciei de activare n raport cu ponderea curent:

= =
= =
= =

=
=
=
M
1 k
pi pi
(x)
ij
(x)
kj
(x)
ij
(x)
pj
M
1 k
pi pi
(y)
ij
(y)
kj
(y)
ij
(y)
pj
M
1 k
pi pi
(z)
ij
(z)
kj
(z)
ij
(z)
pj
u u
w
w
w
a
x x
w
w
w
a
y y
w
w
w
a

deoarece, evident i k pentru 0


w
w
ij
kj
= ,
(.)
(.)

(16)
Rezult:

=
=
=
pi
(x)
pj
p
(x)
ij
p
pi
(y)
pj
p
(y)
ij
p
pi
(z)
pj
p
(z)
ij
p
u
a
E
w
E
x
a
E
w
E
y
a
E
w
E

(17)
Se noteaz funcia de eroare pentru nodul "j" din fiecare strat i forma "p", cu:

=
=
=
(x)
pj
p

(x)
pj
(y)
pj
p

(y)
pj
(z)
pj
p

(z)
pj
a
E

a
E

a
E

(18)
i atunci rezult:

=
=
=
pi
(x)
pj
(x)
ij
pi
(y)
pj
(y)
ij
pi
(z)
pj
(z)
ij
u w
x w
y w
(19)
de unde se obine regula de ajustare a ponderilor:
14. Reele neurale folosite n recunoaterea de forme.
187

+ = +
+ = +
+ = +
(t) (t)u (t) w ) 1 (t w
(t) (t)x (t) w ) 1 (t w
(t) (t)y (t) w ) 1 (t w
pi
(x)
pj
(x)
ij
(x)
ij
pi
(y)
pj
(y)
ij
(y)
ij
pi
(z)
pj
(z)
ij
(z)
ij
(20)
Funcia de eroare poate fi evaluat folosind:

= =
= =
= =
(x)
pj
pj
pj
p
(x)
pj
p (x)
pj
(y)
pj
pj
pj
p
(y)
pj
p (y)
pj
(z)
pj
pj
pj
p
(z)
pj
p (z)
pj
a
x
x
E
a
E

a
y
y
E
a
E

a
z
z
E
a
E

(21)
unde:

=
=
=
) (a
a
x
) (a
a
y
) (a
a
z
(x)
pj
(x)
pj
pj
(y)
pj
(y)
pj
pj
(z)
pj
(z)
pj
pj
f
f
f

= =
= =
=
(

=



= =
= =
=
N
1 k
(y)
jk
(y)
pk
M
1 k pj
(y)
pk
(y)
pk
p
pj
p
N
1 k
(z)
jk
(z)
pk
N
1 k pj
(z)
pk
(z)
pk
p
pj
p
pj pj
N
1 k
2
pk pk
pj pj
p
w
x
a
a
E
x
E
w
y
a
a
E
y
E
) z (d ) z (d
2
1
z z
E

(22)

Rezult:

=
=
=

=
=
M
1 k
(y)
jk
(y)
pk
(x)
pj
(x)
pj
N
1 k
(z)
jk
(z)
pk
(y)
pj
(y)
pj
(z)
pj pj pj
(z)
pj
w ) (a
w ) (a
) (a ) z (d
f
f
f
(23)
Derivata funciei sigmoidale asimetrice n raport cu funcia de activare este dat de:

[ ]
[ ]
[ ]

=
+

=
(
(

+
=
=
+

=
(
(

+
=
=
+

=
(
(

+
=
) x 1 ( x
) a ( 1
) a (
) a ( 1
1
a
) (a
) y 1 ( y
) a ( 1
) a (
) a ( 1
1
a
) (a
) z 1 ( z
) a ( 1
) a (
) a ( 1
1
a
) (a
pj pj
2
(x)
pj
(x)
pj
(x)
pj
(x)
pj
(x)
pj
pj pj
2
(y)
pj
(y)
pj
(y)
pj
(y)
pj
(y)
pj
pj pj
2
(z)
pj
(z)
pj
(z)
pj
(z)
pj
(z)
pj
exp
exp
exp
f
exp
exp
exp
f
exp
exp
exp
f

(24)
n cazul n care se folosete sigmoida simetric drept nelinearitate de ieire, avem:
14. Reele neurale folosite n recunoaterea de forme.
188

[ ]
[ ]
[ ]

=
+

=
(
(

=
=
+

=
(
(

=
=
+

=
(
(

=
2
pj
2
(x)
pj
(x)
pj
(x)
pj
(z)
pj
(x)
pj
(x)
pj
2
pj
2
(y)
pj
(y)
pj
(y)
pj
(z)
pj
(y)
pj
(y)
pj
2
pj
2
(z)
pj
(z)
pj
(z)
pj
(z)
pj
(z)
pj
(z)
pj
) x 1 (
) a ( 1
) a ( 2
) a ( 1
) a (
a
) (a
) y 1 (
) a ( 1
) a ( 2
) a ( 1
) a (
a
) (a
) z 1 (
) a ( 1
) a ( 2
) a ( 1
) a (
a
) (a
exp
exp
exp
exp
f
exp
exp
exp
exp
f
exp
exp
exp
exp
f

(25)
n anumite aplicaii, pentru stratul de ieire se pot folosi neuroni lineari, caz n care aceste
derivate sunt date de:

=
=
=
) x 1 ( x ) (a
) y 1 ( y ) (a
1 ) (a
pj pj
(y)
pj
pj pj
(y)
pj
(z)
pj
f
f
f
sau

=
=
=
2
pj
(y)
pj
2
pj
(y)
pj
(z)
pj
) x 1 ( ) (a
) y 1 ( ) (a
1 ) (a
f
f
f
(26)
Obiectivul antrenrii reelei neurale este de a ajusta ponderile astfel nct aplicarea unui set
de intrri s produc ieirea dorit. Antrenarea asigneaza fiecrui vector de intrare un vector
pereche denumit vector int care reprezint ieirea dorit.
Algoritmul "backpropagation" include deci urmtorii pai:

Algoritmul "backpropagation"
Pasul 1: Iniializarea ponderilor i a offseturilor.
Se seteaz toate ponderile i offseturile nodurilor la valori aleatoare mici.
Pasul 2: Aplic intrarea i ieirea dorit.
Se prezint un vector continuu cu valorile de intrare
1 N 1 0
x ,..., x , x

i se specific
ieirile dorite
1 M 1 0
,...,d ,d d

. Dac reeaua este folosit drept clasificator,
atunci, de obicei, toate ieirile dorite sunt setate la zero, exceptnd cele
care corespund clasei valorilor de intrare, care sunt setate la "1". Intrarea
poate fi alta la fiecare ncercare sau eantioanele dintr-un set de antrenare
pot fi prezente ciclic pn cnd ponderile se stabilizeaz.
Pasul 3: Calcularea ieirilor actuale.
Folosind neliniaritatea sigmoidal anterioar, se calculeaz ieirile
1 M 1 0
,...,y ,y y

.
Pasul 4: Modificarea ponderilor
Pasul 5: Salt la Pasul 2.

Pentru Pasul 4 se folosete algoritmul recursiv descris anterior pornind de la nodurile de
ieire ctre napoi, spre primul strat ascuns. Ponderile se modific conform formulelor descrise
anterior. Funcia de eroare are expresii diferite pentru stratul de ieire:
) z (d ) z 1 ( z
j j j j j
= (27)
i straturile ascunse:
) w ( ) x 1 ( x
k
jk k j j j
= (28)
unde
j
d este ieirea dorit a nodului "j",
j
y este ieirea actual, iar "k" parcurge toate
nodurile din straturile de deasupra nodului j. Pragurile nodurilor interne sunt adaptate ntr-o
manier asemntoare, presupunnd c ele sunt ponderi conectate la intrri cu valori constante.
Rumelhart, Hinton, Williams (1966) descriu o metod de mbuntire a timpului de
antrenare a reelelor backpropagation, atta timp ct este respectat stabilitatea sistemului. Se
14. Reele neurale folosite n recunoaterea de forme.
189
numete "momentum" i aduce un termen n plus la ajustarea ponderilor, proporional cu
cantitatea schimbrii anterioare. Aceast ajustare este fcut "cu memorare" i servete la
modificarea ponderilor din subsecvenele urmtoare:
( ) ( ) )) 1 (t w (t) (w x t w 1 t w
ij ij
'
i j ij ij
+ + = + (29)
unde este coeficientul "momentum", setat de obicei n jurul valorii de 0.9 ) 1 0 ( < < .
Dup un numr suficient de repetri a acestor pasi, eroarea dintre ieirea actual i
vectorul int se va reduce ca valoare, iar reeaua se spune c este antrenat. Din acest punct,
reeaua este folosit pentru recunoatere i ponderile nu se mai schimb.
Condiia de stop poate fi una din urmtoarele:
1. Numr prestabilit de pai;
2. Eroarea medie ptratic global (pentru ntreg setul de antrenare) scade sub un anumit prag;
3. Numrul de erori de clasificare pentru setul de antrenare este zero.
O teorem interesant ce pune n eviden capabilitile perceptronului multinivel a fost
enunat de Kolmogorov. Aceast teorem spune c orice funcie continu de N variabile poate fi
calculat folosind numai sumri liniare i neliniare, dar variind cresctor continuu numai funcii
de o singur variabil. Aceasta implic c un perceptron cu 3 nivele cu ) 1 N 2 ( N + noduri
folosind neliniariti variind cresctor continuu, poate calcula orice funcie continu de o singur
variabil. Din pcate, teorema nu indic cum pot fi selectate ponderile i neliniaritile n reea
sau ct de sensibil este funcia de ieire la variaiile ponderilor i a funciilor interne.

14.6. Alte tipuri de reele neurale.
n continuare sunt prezentate foarte pe scurt cteva tipuri importante de reele neurale.
Pentru fiecare reea neural n parte se prezint tipul de neuron, arhitectura reelei i algoritmul de
antrenare. n ultimul paragraf al capitolului curent pot fi gsite implementri simple n limbajul C
ale acestor reele.

14.6.1. Reeaua Hopfield.
Acest tip de reea poate fi folosit ca memorie asociativ sau pentru rezolvarea unor
probleme de optimizare. Folosete neuroni cu intrri binare, a cror ieire conine nelineariti de
tipul limitare hardware (vezi primul paragraf al acestui capitol).
Arhitectura unei reele Hopfield cu N neuroni este prezentat n figura 5. Ieirea fiecrui
neuron este aplicat tuturor celorlalte noduri prin intermediul unor ponderi
ij
t . Hopfield a
demonstrat c aceast reea converge dac ponderile sunt simetrice (
ji ij
t t = )
Dei simplitatea ei o face atractiv, aceast reea prezint dou limitri majore cnd este
utilizat ca memorie adresabil prin coninut. n primul rnd, numrul de forme prototip care pot
fi stocate i apoi regsite corect n reea este limitat la aproximativ 15% din numrul de neuroni.
Dac se ncearc stocarea prea multor forme prototip, reeaua ar putea converge ctre un prototip
fictiv. A doua limitare prezent la reeaua Hopfield apare dac prototipurile memorate n reea
sunt foarte asemntoare (prezint un mare numr de bii identici), caz n care reeaua devine
instabil.
14. Reele neurale folosite n recunoaterea de forme.
190
Fig. 5. Arhitectura reelei Hopfield.

Dac reeaua Hopfield este folosit drept clasificator, ieirea reelei (dup convergen)
trebuie comparat cu fiecare form prototip, dup care se poate lua decizia de apartenen la una
din clasele ataate formelor prototip.

Algoritmul de antrenare a reelei Hopfield.
Pasul 1. Iniializeaz ponderile conexiunilor:

=
1 M j 0 1 M i 0 j i 0
j i x x
t
1 M
0 s
s
j
s
i
ij
, , ,
,

(30)
unde
ij
t este ponderea conexiunii de la nodul i la nodul j, iar
s
i
x (unde
} 1 , 1 { x
s
i
) este valoarea intrrii i pentru un vector din clasa s.
Pasul 2. Aplic un vector de intrare necunoscut.
N i 0 , x ) 0 (
i i
= (31)
unde este ieirea nodului i la momentul t.
Pasul 3. Itereaz pn la convergen.
1 M j 0 ] (t) t [ ) 1 (t
1 N
0 i
i ij h j
= +

=
, f (32)
unde funcia neliniar
h
f este de tipul limitare hardware, descris deja n primul
paragraf al acestui capitol. Operaia se repet pn cnd toate ieirile
neuronilor rmn neschimbate. n acest caz, configuraia ieirilor coincide
cu forma prototip cea mai apropiat de forma necunoscut de intrare.
Pasul 4. Repet paii 2-3 pentru orice alt form necunoscut de intrare.
O implementare simpl a acestei reele este prezentat n finalul capitolului.

14.6.2. Reeaua Hamming.
Arhitectura reelei Hamming este prezentat n figura 6.
Acest tip de reea poate fi folosit drept clasificator pentru forme binare afectate de zgomot.
Ea conine neuroni de tip prag logic. Se remarc n arhitectura reelei prezena a dou straturi,
primul (cel inferior) realizeaz o valoare proporional cu distana Hamming la un numr de M
forme prototip. Stratul superior selecteaz nodul cu ieirea maxim.

0
x
1
x
2 N
x

1 N
x

0

2 N

1 N

0
x
1
x
2 N
x

1 N
x

14. Reele neurale folosite n recunoaterea de forme.


191
Fig. 6. Arhitectura reelei Hamming.

Algoritmul de antrenare a reelei Hamming.
Pasul 1. Iniializeaz ponderile conexiunilor i offseturile:
n reeaua inferioar

=
1 M j 0 1 M i 0 j i 0
j i x x
t
1 M
0 s
s
j
s
i
ij
, , ,
,


(33)
unde
ij
t este ponderea conexiunii de la nodul i la nodul j, iar
s
i
x
(unde } 1 , 1 { x
s
i
) este valoarea intrrii i pentru un vector din clasa
s.
Pasul 2. Aplic un vector de intrare necunoscut.
N i 0 , x ) 0 (
i i
= (34)
unde este ieirea nodului i la momentul t.
Pasul 3. Itereaz pn la convergen.
1 M j 0 ] (t) t [ ) 1 (t
1 N
0 i
i ij h j
= +

=
, f (35)
unde funcia neliniar
h
f este de tipul limitare hardware, descris deja n
primul paragraf al acestui capitol. Operaia se repet pn cnd toate
ieirile neuronilor rmn neschimbate. n acest caz, configuraia ieirilor
coincide cu forma prototip cea mai apropiat de forma necunoscut de
intrare.
Pasul 4. Repet paii 2-3 pentru orice alt form necunoscut de intrare.
O implementare simpl a acestei reele este prezentat n finalul capitolului.

14.6.3. Clasificatorul Carpenter-Grossberg.
0

2 N

1 N

0
x
1
x
2 N
x

1 N
x

0
x
1
x
2 N
x
1 N
x

Calcul
scoruri de
coinciden
MAXNET
14. Reele neurale folosite n recunoaterea de forme.
192
Arhitectura unei reele Carpenter-Grossberg cu trei neuroni pe stratul de intrare i doi
neuroni pe cel de ieire este prezentat n figura urmtoare:
Fig. 7. Arhitectura reelei Carpenter-Grossberg.

Aceast reea implementeaz un clasificator nesupervizat, fr numr prestabilit de clase.
Principial, prima form de intrare din secven este selectat ca fiind prima form prototip. Apoi
urmtoarea intrare este comparat cu vectorii prototip i, funcie de distana dintre ei, fie este
atribuit primei clase, fie este selectat ca vector prototip al unei noi clase. Operaia de atribuire a
unei forme de intrare unei clase implic recalcularea prototipului asociat.

Algoritmul de antrenare a reelei Carpenter-Grossberg.
Pasul 1. Iniializri:
1 M j 0 , 1 N i 0 ), 1 /(N 1 ) 0 ( b , 1 ) 0 ( t
ij ij
+ = = (36)
Seteaz ] 1 , 0 [
unde
ij
b este ponderea conexiunii dintre nodul i de intrare i nodul j
de ieire, iar
ij
t este ponderea conexiunii de la nodul j de ieire la nodul
i de intrare. Ele definesc prototipul corespunztor nodului j de ieire.
Parametrul specific ct de apropiat trebuie s fie o intrare fa de un
prototip pentru a lua decizia de apartenen la aceeai clas.
Pasul 2. Aplic un vector de intrare necunoscut.
Pasul 3. Calculeaz scorurile de coinciden.
1 M j 0 (t)x b
1 N
0 i
i ij j
=

=
, (37)
unde
j
este ieirea nodului j iar
i
x este elementul i al intrrii (0 sau
1).
Pasul 4. Selecteaz cel mai apropiat prototip:
} {
j
j
j
max =

(38)
Aceasta se realizeaz folosind conexiunile inhibitorii laterale dintre
neuronii de ieire.



Pasul 5. Testul de vigilen:
0
x
1
x
2
x
1
y
0
y
14. Reele neurale folosite n recunoaterea de forme.
193

=
=
1 N
0 i
i
x X ,

=
1 N
0 i
i
ij
x t X T (39)
Dac > X X T / salt la Pasul 7, n caz contrar salt la Pasul 6.
Pasul 6. Inactiveaz cel mai apropiat prototip gsit n Pasul 4 prin forarea la zero a
nodului corespunztor. Ca urmare acest prototip nu mai este luat n
considerare la calculul maximului din Pasul 4.
Pasul 7. Adapteaz cel mai apropiat prototip:

i
ij ij
(t)x t ) 1 (t t

= + (40)
] x t 5 0 ]/[ (t)x [t ) 1 (t b
1 N
0 i
i
ij
i
ij ij

=

+ = + . (41)
Pasul 8. Salt la Pasul 2 pentru o nou intrare.
O implementare simpl a acestei reele este prezentat n finalul capitolului.

14.6.4. Harta de trsturi Kohonen.
Kohonen, plecnd de la presupunerea c, dei o parte a structurrii creierului uman este
predeterminat genetic, exist organizare determinat prin nvare, pe baza unor algoritmi
fiziologici care au la baz auto-organizarea n structurile "superioare" ale cortexului.
Folosind acest model el propune un tip de reea neural numit "harta de trsturi cu auto-
organizare" (Kohonen self-organizing feature map). mpreun cu algoritmul de antrenare
corespunztor acestei reele se realizeaz practic un cuantizor vectorial, n mod iterativ prin
ajustarea ponderilor conexiunilor ntre nodurile reelei i intrare.
Vectorii de intrare N-dimensionali (valori continue) sunt aplicai la intrare succesiv,
ajustarea ponderilor corespunztoare fcndu-se folosind interconexiunile extensive care unesc
nodurile reelei. Fiecare neuron este conectat cu fiecare ieire dar i cu neuronii vecini prin
conexiuni excitatorii/inhibitorii laterale. O remarc important este faptul c fiecare nod este
conectat cu neuronii din vecintatea ptratic aferent lui, dar dimensiunea acestei vecinti
scade n timp.

x x x
0 1 N-1
...

Fig. 8. Arhitectura reelei Kohonen.

Algoritmul de antrenare a reelei Kohonen este descris n caseta urmtoare:


Algoritmul de antrenare a reelei Kohonen
(1). Iniializeaz ponderile.
14. Reele neurale folosite n recunoaterea de forme.
194
Ponderile conexiunilor de la cele N intrri la cele M noduri se seteaz la valori
aleatoare mici. Raza iniial a vecintilor ataate fiecrui nod se seteaz la
valoarea maxim.
(2). Aplic o nou intrare.
(3). Calculeaz distan dintre vectorul de intrare i vectorul de ponderi pentru fiecare
nod.

=
=
1 N
0 i
2
ij i j
(t)] (t) [ D w x (42)
unde: - (t)
i
x este valoarea aplicat intrrii "i" la momentul "t";
- (t)
ij
w este ponderea conexiunii dintre intrarea "i" i nodul "j" la
momentul "t".
(4). Selecteaz nodul "k" de distan minim:

j
1 ,...,M 0 j
k
D D
=
= min (43)
(5). Actualizeaz ponderile pentru nodul "k" i toate nodurile din vecintatea aferent
nodului "k" la momentul "t". Regula de ajustare a ponderilor este:
1 ,...,N 0 (t)], i (t) (t)[ (t) ) 1 (t
ij i ij ij
= + = + w x w w (44)
Coeficientul ) 1 , 0 ( (t) este factorul de ctig, care descrete i el n timp.
(6). Salt la pasul (2).

Calculul distanei din pasul (3) poate fi redus la un simplu produs scalar, tipic pentru
neuronul liniar dac poate fi asigurat condiia normalizrii vectorilor de intrare i a vectorilor de
ponderi afereni dup fiecare ajustare. Selectarea nodului care furnizeaz distana minim poate fi
efectuat iterativ, dup modelul reelei MAXNET, care converge (furnizeaz la ieire) valoarea
maxim aplicat la intrare.
Dup antrenare, ponderile conexiunilor intrare-ieire tind s specifice clusterii detectai n
spaiul formelor de intrare prin centrele lor. Ca urmare, densitatea local a acestor clusteri tinde s
aproximeze densitatea de probabilitate calculat sau estimat pentru vectorii de form care
constituie setul de antrenament.
O implementare simpl a acestei reele este prezentat n finalul capitolului.

14.6.5. Reele RBF (Radial Basis Functions).
Reelele RBF sunt reele hibride cu dou straturi, care conin pe primul strat M neuroni ce
implementeaz funcia Gaussian normalizat de activare:

=
k
2
j
2
j
2
j
2
j j
) 2 ( ) 2 / | | ( z / | m x | exp / m x exp (45)
n timp ce cei N neuroni de pe stratul al doilea realizeaz suma ponderat a intrrilor, trecut
printr-o nelinearitate sigmoidal.
) z w ( y
k
M
1 j
j kj k
+ =

=
f (46)
n formulele anterioare x este vectorul de intrare,
j
m (media) i
j
(dispersia) descriu
formele prototip ataate gruprilor create n domeniul de intrare, iar
k
este valoarea pragului de
activare.
Primul strat al reelei realizeaz o partiionare a spaiului de intrare n grupri descrise prin
medie i dispersie, n timp ce stratul al doilea ia decizia de apartenen a formei de intrare la une
din clase (o clas poate include una sau mai multe grupri), funcie de configuraia de activare a
neuronilor de pe primul strat.
14. Reele neurale folosite n recunoaterea de forme.
195
Arhitectura tipic a unei reele RBF este prezentat n figura urmtoare:


Fig. 9. Arhitectura reelei RBF.

Antrenarea acestei reele se face de obicei nesupervizat pentru stratul de intrare i
supervizat pentru stratul de ieire, dar poate fi folosit i metoda backpropagation de antrenare
supervizat pentru ambele straturi.
Funcia de eroare corespunztoare formei de intrare "p" este dat de:

=
=
N
1 k
2 p
k
p
k
p
) y (d
2
1
E
) ( ) ( ) (
(47)
Toi parametrii reelei neurale se vor modifica n sensul minimizrii acestei erori, folosind,
de exemplu, metoda gradientului descresctor, adic:

(p)
jk
p
(p)
jk
w
E
w

) (
=
(p)
ij
p
(p)
ij
m
E
m

) (
=
(p)
j
p
(p)
j
E

) (
= (48)
Dac se noteaz funcia de activare a nodului k de ieire cu
) ( p
k
a , i se definete
) ( y
k
ca
fiind funcia de eroare corespunztoare aceluiai nod, atunci derivata parial a erorii medii
ptratice n raport cu ponderea curent se calculeaz cu:

) ( ) ( ) (
) (
) ( ) (
) ( ) ( ) (
p
j
y
k
p
j
(p)
k
p N
1 k
p
j
p
jk
(p)
jk
(p)
k
p
(p)
jk
(p)
k
(p)
k
p
(p)
jk
p
z z
a
E
z w
w a
E
w
a
a
E
w
E

=
(

= =

=

(49)
i atunci se obine regula de ajustare a ponderilor:
(t) (t)z (t) w ) 1 (t w
p
j
(y)
k
(p)
jk
(p)
jk
) (
+ = + (50)
Funcia de eroare poate fi evaluat folosind:
) (a ) z (d ) (a
y
E
a
y
y
E
a
E

(p)
k
p
k
p
k
(p)
k
p
k
p
(p)
k
p
k
p
k
p
(p)
k
p
(y)
k
f f
) ( ) (
) (
) ( ) (
) (
) ( ) (
= = = =

(51)
unde derivata funciei sigmoidale asimetrice n raport cu funcia de activare este dat de:
) z 1 ( z ) (a
p
j
p
j
(p)
k
) ( ) (
f = (52)
Oarecum similar se face adaptarea celorlali parametri ai reelei, media i dispersia. Dac
se definete
) ( z
j
ca fiind funcia de eroare corespunztoare nodului j de pe primul strat, atunci
0
z
1
z
j
z
2 M
z

0
y
k
y
1 N
y

0
x
i
x
1 L
x

1 M
z

j 1
w
kj
w
j 1 N
w
,
14. Reele neurale folosite n recunoaterea de forme.
196
derivata parial a erorii medii ptratice n raport cu media/dispersia ataat nodului curent se
calculeaz cu:
) z 1 ( z ) z 1 ( z
z
E
m
z
z
E
m
E
(p)
j
p
j
z
j
(p)
j
(p)
j
(p)
j
p
(p)
ij
(p)
j
(p)
j
p
(p)
ij
p
= =
) ( ) (
) ( ) ( ) (

(53)
) z 1 ( z ) z 1 ( z
z
E
z
z
E E
(p)
j
p
j
z
j
(p)
j
(p)
j
(p)
j
p
(p)
j
(p)
j
(p)
j
p
(p)
j
p
= =
) ( ) (
) ( ) ( ) (

(54)
i atunci se obine regula de ajustare a mediilor/dispersiilor:
(t)) z 1 (t)( (t)z (t) m ) 1 (t m
p
j
p
j
(z)
j
(p)
ij
(p)
ij
) ( ) (
+ = + (55)
(t)) z 1 (t)( (t)z (t) m ) 1 (t m
p
j
p
j
(z)
j
(p)
ij
(p)
ij
) ( ) (
+ = + (56)
Funcia de eroare poate fi evaluat folosind:

=
= =
N
1 k
p
jk
y
k
(p)
j
p
(z)
j
w
z
E

) ( ) (
) (

(57)
n afara unor formule de calcul diferite, algoritmul "backpropagation" pentru reeaua RBF
nu prezint diferene eseniale fa de cel pentru perceptronul multistrat.

14.7. Detalii de implementare.
Acest paragraf include implementri simple, n limbajul C, ale reelelor neurale de tip
Hopfield, Hamming, Carpenter-Grossberg, Kohonen i RBF, precum i a perceptronului
multistrat cu algoritmul backpropagation de antrenare. Dar pentru nceput iat un set de rutine (de
alocare i de generare numere aleatoare) utilizate n aceste implementri:
/*-------------------------------------------------------------------------*/
int *IVector(int N)
{
int* v;
v=(int *)malloc((unsigned)N*sizeof(int));
if (!v) {
printf("eroare de alocare 1");
exit(1);
}
return v;
}
/*-------------------------------------------------------------------------*/
void Free_IVector(int *v, int N)
{
free(v);
}
/*-------------------------------------------------------------------------*/
double *DVector(int N)
{
double *v;
v = (double *)malloc((unsigned)N*sizeof(double));
if (!v) {
printf("eroare de alocare 2");
exit(1);
}
return v;
}
/*-------------------------------------------------------------------------*/
void Free_DVector(double *v,int N)
{
free(v);
}
/*-------------------------------------------------------------------------*/
14. Reele neurale folosite n recunoaterea de forme.
197
byte **BMatrix(int M, int N)
{
byte** m;
m = (byte **)malloc((unsigned) M*sizeof(byte*));
if (!m) {
printf("eroare de alocare 3");
exit(1);
}
for (int i=0; i<M; i++) {
m[i] = (byte *)malloc((unsigned) N*sizeof(byte));
if (!m[i]) {
printf("eroare de alocare 4");
exit(1);
}
}
return m;
}
/*-------------------------------------------------------------------------*/
void Free_BMatrix(byte **m, int M, int N)
{
for (int i=0; i<M; i++)
free(m[i]);
free(m);
}
/*-------------------------------------------------------------------------*/
int **IMatrix(int M, int N)
{
int** m;
m = (int **)malloc((unsigned) M*sizeof(int*));
if (!m) {
printf("eroare de alocare 5");
exit(1);
}
for (int i=0; i<M; i++) {
m[i] = (int *)malloc((unsigned) N*sizeof(int));
if (!m[i]) {
printf("eroare de alocare 6");
exit(1);
}
}
return m;
}
/*-------------------------------------------------------------------------*/
void Free_IMatrix(int **m, int M, int N)
{
for (int i=0; i<M; i++)
free(m[i]);
free(m);
}
/*-------------------------------------------------------------------------*/
double **DMatrix(int M, int N)
{
double** m;
m = (double **)malloc((unsigned) M*sizeof(double *));
if (!m) {
printf("eroare de alocare 7");
exit(1);
}
for (int i=0; i<M; i++) {
m[i] = (double *)malloc((unsigned) N*sizeof(double));
if (!m[i]) {
14. Reele neurale folosite n recunoaterea de forme.
198
printf("eroare de alocare 8");
exit(1);
}
}
return m;
}
/*-------------------------------------------------------------------------*/
void Free_DMatrix(double **m, int M, int N)
{
for (int i=0; i<M; i++)
free(m[i]);
free(m);
}
/*-------------------------------------------------------------------------*/
double ***TMatrix(int L,int M,int N)
{
double*** m;
int i,j;
m=(double***)malloc((unsigned) L*sizeof(double**));
if (!m) {
printf("eroare de alocare 9");
exit(1);
}
for(i=0;i<L;i++) {
m[i]=(double**)malloc((unsigned) M*sizeof(double*));
if (!m[i]) {
printf("eroare de alocare 10");
exit(1);
}
}
for(i=0;i<L;i++) {
for(j=0;j<M;j++) {
m[i][j]=(double*)malloc((unsigned) N*sizeof(double));
if (!m[i][j]) {
printf("eroare de alocare 11");
exit(2);
}
}
}
return m;
}
/*-------------------------------------------------------------------------*/
void Free_TMatrix(double ***m,int L,int M,int N)
{
int i,j;
for(i=0;i<L;i++)
for(j=0;j<M;j++)
free(m[i][j]);
for(i=0;i<L;i++)
free(m[i]);
free(m);
}

Reeaua Hopfield

#include <alloc.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
14. Reele neurale folosite n recunoaterea de forme.
199

#define NN 80
#define NC 4

int **Class;
struct Hopfield
{
int *X;
int **W;
int *Y;
int *Z;
} H;

int **IMatrix(int M,int N);
int *IVector(int N);
void Free_IMatrix(int **m,int M,int N);
void Free_IVector(int *v,int N);

void Define_Net(void);
void Train_Net(void);
int Use_Net(void);
/*-------------------------------------------------------------------------*/
void Define_Net(void)
{
//alocri
H.X=IVector(NN);
H.W=IMatrix(NN,NN);
H.Y=IVector(NN);
H.Z=IVector(NN);
Class=IMatrix(NC,NN);
}
/*-------------------------------------------------------------------------*/
void Train_Net()
{
int i,j,k;

for(i=0;i<NN;i++)
for(j=0;j<NN;j++)
if(i!=j)
for(k=0,H.W[i][j]=0;k<NC;k++)
H.W[i][j]+=Class[k][i]*Class[k][j];
else
H.W[i][j]=0;
}
/*-------------------------------------------------------------------------*/
int Use_Net(void)
{
int i,j,k,m;
m=0;
do {
for(i=0;i<NN;i++) //salveaz ieiri
H.Z[i]=H.Y[i];
for(j=0;j<NN;j++) { //actualizeaz ieiri
for(i=0,k=0;i<NN;i++)
k+=H.W[i][j]*H.Z[i];
if(k<0)
H.Y[j]=-1;
else
H.Y[j]=1;
}
for(i=0,k=0;i<NN;i++) //test convergen
14. Reele neurale folosite n recunoaterea de forme.
200
if(H.Z[i]!=H.Y[i])
k++;
printf("%4d",m++);
}
while(k!=0 && m<100);

for(j=0;j<NC;j++) {
for(i=0,k=0;i<NN;i++)
if(H.Y[i]!=Class[j][i])
k++;
if(k==0)
break;
}
return(j);
}


/***************************************************************************/
main()
{
int i,j;

clrscr();
Define_Net();

//iniializare clase
printf("classes\n");
for(i=0;i<NC;i++)
for(j=0;j<NN;j++)
if(sin((i+1)*(j+1))>=0.0)
Class[i][j]=1,printf("X");
else
Class[i][j]=-1,printf("_");

Train_Net();

//aplic intrare
for(i=0;i<NN;i++)
H.Y[i]=Class[2][i];
H.Y[0]=-1;
H.Y[3]=1;
H.Y[33]=-1;
H.Y[66]=1;
printf("input\n");
for(i=0;i<NN;i++)
if(H.Y[i]==1)
printf("X");
else
printf("_");
printf("steps ");

//reitereaz pn la convergen
j=Use_Net();
printf("\nclass %d",j);

//dealocri
Free_IMatrix(Class,NC,NN);
Free_IVector(H.Z,NN);
Free_IVector(H.Y,NN);
Free_IMatrix(H.W,NN,NN);
Free_IVector(H.X,NN);
14. Reele neurale folosite n recunoaterea de forme.
201
getch();
return(0);
}

Reeaua Hamming

#include <alloc.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

#define NN 80
#define NC 4

int **Class;
struct Hamming
{
int *XI; //intrare *2 n subreeaua inferioar
int **WI; //ponderi *2 n subreeaua inferioar
int *TI; //praguri *2 n subreeaua inferioar
double **WS; //ponderi n subreeaua superioar
double *YS; //ieire curent n subreeaua superioar
double *ZS; //ieire precedent n subreeaua superioar
} H;

int **IMatrix(int M,int N);
int *IVector(int N);
void Free_IMatrix(int **m,int M,int N);
void Free_IVector(int *v,int N);
double **DMatrix(int M,int N);
double *DVector(int N);
void Free_DMatrix(double **m,int M,int N);
void Free_DVector(double *v,int N);

/***************************************************************************/

main()
{
int i,j,k,m;
double eps,sum;

clrscr();

//alocri
H.XI=IVector(NN);
H.WI=IMatrix(NC,NN);
H.TI=IVector(NC);
H.WS=DMatrix(NC,NC);
H.YS=DVector(NC);
H.ZS=DVector(NC);
Class=IMatrix(NC,NN);

//iniializare clase
printf("classes\n");
for(i=0;i<NC;i++)
for(j=0;j<NN;j++)
if(sin((i+1)*(j+1))>=0.0)
Class[i][j]=1,printf("X");
else
14. Reele neurale folosite n recunoaterea de forme.
202
Class[i][j]=-1,printf("_");

eps=0.8/NC;
//asignare ponderi i praguri
for(i=0;i<NC;i++)
for(j=0;j<NN;j++)
H.WI[i][j]=Class[i][j];
for(i=0;i<NC;i++)
H.TI[i]=NN;
for(i=0;i<NC;i++)
for(j=0;j<NC;j++)
if(i==j)
H.WS[i][j]=1.0;
else
H.WS[i][j]=-eps;

//aplic intrare
for(i=0;i<NN;i++)
H.XI[i]=Class[3][i];
H.XI[0]=-1, H.XI[3]=1, H.XI[33]=-1, H.XI[66]=1;
for(i=0;i<NC;i++) {
for(j=0,k=0;j<NN;j++)
k+=H.WI[i][j]*H.XI[j];
H.YS[i]=k-H.TI[i]/2.0;
if(H.YS[i]<0.0)
H.YS[i]=0.0;
}
printf("input\n");
for(i=0;i<NN;i++)
if(H.XI[i]==1)
printf("X");
else
printf("_");
printf("steps ");

//reitereaz pn la convergen
m=0;
do {
for(i=0;i<NC;i++) //salveaz ieiri
H.ZS[i]=H.YS[i];
for(j=0;j<NC;j++) { //actualizeaz ieiri
for(i=0,sum=0.0;i<NC;i++)
if(i!=j)
sum+=H.ZS[i];
H.YS[j]=H.ZS[j]-eps*sum;
if(H.YS[j]<0)
H.YS[j]=0;
}
//test convergen
for(i=0,k=0;i<NC;i++)
if(H.YS[i]>0.0)
k++;
printf("%4d",m++);
}
while(k!=1 && m<100);

//test apartenen
for(i=0;i<NC;i++)
if(H.YS[i]>0.0)
break;
printf("\nclass %d",i);
14. Reele neurale folosite n recunoaterea de forme.
203

//dealocri
Free_IMatrix(Class,NC,NN);
Free_DVector(H.ZS,NC);
Free_DVector(H.YS,NC);
Free_DMatrix(H.WS,NC,NC);
Free_IVector(H.TI,NC);
Free_IMatrix(H.WI,NC,NN);
Free_IVector(H.XI,NN);
getch();
return(0);
}

Reeaua Carpenter Grossberg

#include <alloc.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

#define NN 80
#define NC 4

int **Input;

struct CarpGros
{
int *X; /* intrare */
double **WB; /* ponderi conexiuni directe */
int **WT; /* ponderi conexiuni inverse */
double *Y; /* ieire */
double *Z; /* inhibri laterale */
} C;

int **IMatrix(int M,int N);
int *IVector(int N);
void Free_IMatrix(int **m,int M,int N);
void Free_IVector(int *v,int N);
double **DMatrix(int M,int N);
double *DVector(int N);
void Free_DMatrix(double **m,int M,int N);
void Free_DVector(double *v,int N);

/***************************************************************************/

main()
{
int i,j,k,m,X;
double p,Max,T;

clrscr();

//alocri
C.X=IVector(NN);
C.WB=DMatrix(NC,NN);
C.WT=IMatrix(NC,NN);
C.Y=DVector(NC);
C.Z=DVector(NC);
Input=IMatrix(NC+1,NN);
14. Reele neurale folosite n recunoaterea de forme.
204

//iniializare Input
printf("input string\n");
for(i=0;i<NC;i++)
for(j=0;j<NN;j++)
if(sin((i+1)*(j+1))>=0.0)
Input[i][j]=1,printf("X");
else
Input[i][j]=0,printf("_");
for(i=0;i<NN;i++)
Input[NC][i]=Input[1][i];
Input[NC][0]=0, Input[NC][3]=1, Input[NC][33]=0, Input[NC][66]=1;
for(i=0;i<NN;i++)
if(Input[NC][i]==1)
printf("X");
else
printf("_");

//asignare ponderi
p=0.9;
for(i=0;i<NC;i++)
for(j=0;j<NN;j++)
C.WT[i][j]=1;
for(i=0;i<NC;i++)
for(j=0;j<NN;j++)
C.WB[i][j]=1.0/(1.0+NN);
for(i=0;i<NC;i++)
C.Z[i]=1.0;

//aplic succesiv intrri
for(m=0;m<=NC;m++)
{
for(i=0;i<NN;i++) //aplic intrare
C.X[i]=Input[m][i];
for(j=0;j<NC;j++) //actualizeaz ieiri
for(i=0,C.Y[j]=0.0;i<NN;i++)
C.Y[j]+=C.WB[j][i]*C.X[i];
P3: Max=0.0;
for(j=0;j<NC;j++) //selecteaz forma tipic apropiat
if(C.Y[j]*C.Z[j]>Max)
k=j, Max=C.Y[j];
for(i=0,X=0;i<NN;i++) //test vigilen
X+=C.X[i];
for(i=0,T=0.0;i<NN;i++)
T+=C.WT[k][i]*C.X[i];
if(T/X > p) {
for(i=0;i<NN;i++) {
for(j=0,C.WB[k][i]=0.0;j<NN;j++)
C.WB[k][i]+=C.WT[k][j]*C.X[j];
C.WB[k][i]=C.WT[k][i]*C.X[i]/(0.5+C.WB[k][i]);
C.WT[k][i]*=C.X[i];
}
for(i=0;i<NC;i++)
C.Z[i]=1.0;
printf("%d",k);
}
else {
C.Z[k]=0.0;
goto P3;
}
}
14. Reele neurale folosite n recunoaterea de forme.
205

//dealocri
Free_IMatrix(Input,NC+1,NN);
Free_DVector(C.Z,NC);
Free_DVector(C.Y,NC);
Free_IMatrix(C.WT,NC,NN);
Free_DMatrix(C.WB,NC,NN);
Free_IVector(C.X,NN);
return(0);
}

Harta de trsturi Kohonen

#include <alloc.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

#define NC 4
#define NN 2
#define MM 10
#define STEPS 5000

struct KohonenMap
{
int Rad; /* raza iniial a vecintii */
double Eta; /* raza iniial a vecintii */
double *XI; /* intrare n reea */
double ***WC; /* ponderi intrare-ieire */
double ***WP; /* ponderi intrare-ieire */
} K;

double ***TMatrix(int L,int M,int N);
double *DVector(int N);
void Free_TMatrix(double ***m,int L,int M,int N);
void Free_DVector(double *v,int N);

/***************************************************************************/

main()
{
int i,j,k,m,n,s;
int GrDriver,GrMode;
char Text[10];
double d,Min;

clrscr();

//alocri
K.XI=DVector(NN);
K.WC=TMatrix(NN,MM,MM);
K.WP=TMatrix(NN,MM,MM);

//asignare ponderi iniiale
K.Rad=3;
K.Eta=0.7;
srand(1);
for(i=0;i<NN;i++)
14. Reele neurale folosite n recunoaterea de forme.
206
for(j=0;j<MM;j++)
for(k=0;k<MM;k++)
K.WC[i][j][k]=K.WP[i][j][k]=rand()/32767.0-0.5;

detectgraph(&GrDriver,&GrMode);
initgraph(&GrDriver,&GrMode,"C:\\bc31\\bgi");
settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
settextjustify(LEFT_TEXT,BOTTOM_TEXT);
setfillstyle(SOLID_FILL,0);
setcolor(15);
cleardevice();

//aplic succesiv intrri
for(s=0;s<STEPS;s++)
{
sprintf(Text,"%4d",s);
outtextxy(0,10,Text);
for(i=0;i<NN;i++)
K.XI[i]=rand()/327.67-50.0;

//calculeaz nodul de distan minim
Min=1000000.0;
for(j=0;j<MM;j++)
for(k=0;k<MM;k++) {
for(i=0,d=0.0;i<NN;i++)
d+=(K.XI[i]-K.WC[i][j][k])*(K.XI[i]-K.WC[i][j][k]);
if(d<Min)
Min=d, m=j, n=k;
}

//actualizeaz ponderi
for(i=0;i<NN;i++)
for(j=0;j<MM;j++)
for(k=0;k<MM;k++)
K.WP[i][j][k]=K.WC[i][j][k];
for(j=-K.Rad;j<=K.Rad;j++)
if(m+j>=0 && m+j<MM)
for(k=-K.Rad;k<=K.Rad;k++)
if(n+k>=0 && n+k<MM)
for(i=0;i<NN;i++)
K.WC[i][m+j][n+k]=K.WP[i][m+j][n+k]+K.Eta
*(K.XI[i]-K.WP[i][m+j][n+k]);

//afieaz poziie noduri
cleardevice();
for(j=0;j<MM;j++)
for(k=0;k<MM;k++)
putpixel(K.WC[0][j][k]+360,K.WC[1][j][k]+174,15);

//actualizeaz parametri
K.Rad=3.0*(STEPS-s)/STEPS+0.5;
K.Eta=0.1*(STEPS-s)/STEPS;
if(s==STEPS-1)
getch();
}
closegraph();

//dealocri
Free_TMatrix(K.WP,NN,MM,MM);
Free_TMatrix(K.WC,NN,MM,MM);
Free_DVector(K.XI,NN);
14. Reele neurale folosite n recunoaterea de forme.
207
return(0);
}

Perceptron multistrat antrenat cu algoritmul backpropagation

#include <alloc.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NN 80
#define N1 40
#define N2 20
#define NC 8
#define STEPS 200
#define ETA 0.35
#define ALPH 0.7

double **Input;
struct Perceptron
{
double *XI; /* intrare n reea */
double **WI1p; /* ponderi precedente intrare -> primul strat */
double **WI1c; /* ponderi curente intrare -> primul strat */
double *T1p; /* praguri precedente pentru primul strat */
double *T1c; /* praguri curente pentru primul strat */
double *X1; /* ieiri din primul strat */
double *S1; /* erori pentru primul strat */
double **W12p; /* ponderi precedente primul strat -> al 2-lea strat */
double **W12c; /* ponderi curente primul strat -> al 2-lea strat */
double *T2p; /* praguri precedente pentru al 2-lea strat */
double *T2c; /* praguri curente pentru al 2-lea strat */
double *X2; /* ieiri din al 2-lea strat */
double *S2; /* erori pentru stratul al 2-lea */
double **W2Yp; /* ponderi precedente al 2-lea strat -> ieire */
double **W2Yc; /* ponderi curente al 2-lea strat -> ieire */
double *TYp; /* praguri precedente pentru stratul de ieire */
double *TYc; /* praguri curente pentru stratul de ieire */
double *Y; /* ieire din reea */
double *SY; /* erori pentru stratul de ieire */
double *D; /* ieire dorit din reea */
} P;

double **DMatrix(int M,int N);
double *DVector(int N);
void Free_DMatrix(double **m,int M,int N);
void Free_DVector(double *v,int N);
void Alloc_Net(void);
void DeAll_Net(void);
/*-------------------------------------------------------------------------*/
void Alloc_Net(void)
{
P.XI=DVector(NN);
P.WI1p=DMatrix(NN,N1);
P.WI1c=DMatrix(NN,N1);
P.T1p=DVector(N1);
14. Reele neurale folosite n recunoaterea de forme.
208
P.T1c=DVector(N1);
P.X1=DVector(N1);
P.S1=DVector(N1);
P.W12p=DMatrix(N1,N2);
P.W12c=DMatrix(N1,N2);
P.T2p=DVector(N2);
P.T2c=DVector(N2);
P.X2=DVector(N2);
P.S2=DVector(N2);
P.W2Yp=DMatrix(N2,NC);
P.W2Yc=DMatrix(N2,NC);
P.TYp=DVector(NC);
P.TYc=DVector(NC);
P.Y=DVector(NC);
P.SY=DVector(NC);
P.D=DVector(NC);
}
/*-------------------------------------------------------------------------*/
void DeAll_Net(void)
{
Free_DVector(P.D,NC);
Free_DVector(P.SY,NC);
Free_DVector(P.Y,NC);
Free_DVector(P.TYc,NC);
Free_DVector(P.TYp,NC);
Free_DMatrix(P.W2Yc,N2,NC);
Free_DMatrix(P.W2Yp,N2,NC);
Free_DVector(P.S2,N2);
Free_DVector(P.X2,N2);
Free_DVector(P.T2c,N2);
Free_DVector(P.T2p,N2);
Free_DMatrix(P.W12c,N1,N2);
Free_DMatrix(P.W12p,N1,N2);
Free_DVector(P.S1,N1);
Free_DVector(P.X1,N1);
Free_DVector(P.T1c,N1);
Free_DVector(P.T1p,N1);
Free_DMatrix(P.WI1c,NN,N1);
Free_DMatrix(P.WI1p,NN,N1);
Free_DVector(P.XI,NN);
}

/***************************************************************************/

main()
{
int i,j,k,m;
int GrDriver,GrMode;
char Text[10];
double Save;

clrscr();

//alocri
Alloc_Net();
Input=DMatrix(4*NC+1,NN);

// initializare Input
printf("input string\n");
for(i=0;i<4*NC;i++)
for(j=0;j<NN;j++)
14. Reele neurale folosite n recunoaterea de forme.
209
if(sin((i+1)*(j+1))>=0.0)
Input[i][j]=1.0,printf("X");
else
Input[i][j]=-1.0,printf("_");
for(i=0;i<NN;i++)
Input[4*NC][i]=Input[2][i];
Input[4*NC][0]=-1.0;
Input[4*NC][3]=1.0;
Input[4*NC][31]=-1.0;
for(i=0;i<NN;i++)
if(Input[4*NC][i]==1.0)
printf("X");
else
printf("_");

//asignare ponderi i praguri iniiale
srand(1);
for(i=0;i<NN;i++)
for(j=0;j<N1;j++)
P.WI1p[i][j]=P.WI1c[i][j]=rand()/32767.0-0.5;
for(i=0;i<N1;i++)
P.T1p[i]=P.T1c[i]=rand()/32767.0-0.5;
for(i=0;i<N1;i++)
for(j=0;j<N2;j++)
P.W12p[i][j]=P.W12c[i][j]=rand()/32767.0-0.5;
for(i=0;i<N2;i++)
P.T2p[i]=P.T2c[i]=rand()/32767.0-0.5;
for(i=0;i<N2;i++)
for(j=0;j<NC;j++)
P.W2Yp[i][j]=P.W2Yc[i][j]=rand()/32767.0-0.5;
for(i=0;i<NC;i++)
P.TYp[i]=P.TYc[i]=rand()/32767.0-0.5;

detectgraph(&GrDriver,&GrMode);
initgraph(&GrDriver,&GrMode,"C:\\bc31\\bgi");
settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
settextjustify(LEFT_TEXT,BOTTOM_TEXT);
setfillstyle(SOLID_FILL,0);
setcolor(1);
cleardevice();

//aplic succesiv intrri i ieirile dorite
for(k=0;k<STEPS;k++)
for(m=0;m<4*NC;m++) {
sprintf(Text,"%4d %3d",k,m);
outtextxy(0,10,Text);

for(i=0;i<NN;i++) //aplic intrare
P.XI[i]=Input[m][i];
for(i=0;i<NC;i++) //aplic ieire dorit
P.D[i]=0.0;
P.D[m%8]=1.0;

//actualizeaz ieiri
for(j=0;j<N1;j++) {
for(i=0,P.X1[j]=0.0;i<NN;i++)
P.X1[j]+=P.WI1c[i][j]*P.XI[i];
P.X1[j]=1.0/(1.0+exp(-P.T1c[j]-P.X1[j]));
//line(5*j,300,5*j,300.5-50.0*P.X1[j]);
}
for(j=0;j<N2;j++) {
14. Reele neurale folosite n recunoaterea de forme.
210
for(i=0,P.X2[j]=0.0;i<N1;i++)
P.X2[j]+=P.W12c[i][j]*P.X1[i];
P.X2[j]=1.0/(1.0+exp(-P.T2c[j]-P.X2[j]));
//line(5*j,200,5*j,200.5-50.0*P.X2[j]);
}
for(j=0;j<NC;j++) {
for(i=0,P.Y[j]=0.0;i<N2;i++)
P.Y[j]+=P.W2Yc[i][j]*P.X2[i];
P.Y[j]=1.0/(1.0+exp(-P.TYc[j]-P.Y[j]));
//line(5*j,100,5*j,100.5-50.0*P.Y[j]);
}

//adapteaz ponderi i praguri
for(j=0;j<NC;j++) {
P.SY[j]=P.Y[j]*(1.0-P.Y[j])*(P.D[j]-P.Y[j]);
//line(5*j+400,100,5*j+400,100.5-50.0*P.SY[j]);
}
for(j=0;j<NC;j++) {
for(i=0;i<N2;i++) {
Save=P.W2Yc[i][j];
P.W2Yc[i][j]+=ETA*P.SY[j]*P.X2[i]+ALPH
*(P.W2Yc[i][j]-P.W2Yp[i][j]);
P.W2Yp[i][j]=Save;
}
Save=P.TYc[j];
P.TYc[j]+=ETA*P.SY[j]+ALPH*(P.TYc[j]-P.TYp[j]);
P.TYp[j]=Save;
}

for(i=0;i<N2;i++) {
for(j=0,P.S2[i]=0.0;j<NC;j++)
P.S2[i]+=P.W2Yp[i][j]*P.SY[j];
P.S2[i]*=P.X2[i]*(1.0-P.X2[i]);
//line(5*i+400,200,5*i+400,200.5-50.0*P.S2[i]);
}
for(j=0;j<N2;j++) {
for(i=0;i<N1;i++) {
Save=P.W12c[i][j];
P.W12c[i][j]+=ETA*P.S2[j]*P.X1[i]+ALPH
*(P.W12c[i][j]-P.W12p[i][j]);
P.W12p[i][j]=Save;
}
Save=P.T2c[j];
P.T2c[j]+=ETA*P.S2[j]+ALPH*(P.T2c[j]-P.T2p[j]);
P.T2p[j]=Save;
}

for(i=0;i<N1;i++) {
for(j=0,P.S1[i]=0.0;j<N2;j++)
P.S1[i]+=P.W12p[i][j]*P.S2[j];
P.S1[i]*=P.X1[i]*(1.0-P.X1[i]);
//line(5*i+400,300,5*i+400,300.5-50.0*P.S1[i]);
}
for(j=0;j<N1;j++) {
for(i=0;i<NN;i++) {
Save=P.WI1c[i][j];
P.WI1c[i][j]+=ETA*P.S1[j]*P.XI[i]+ALPH
*(P.WI1c[i][j]-P.WI1p[i][j]);
P.WI1p[i][j]=Save;
}
Save=P.T1c[j];
14. Reele neurale folosite n recunoaterea de forme.
211
P.T1c[j]+=ETA*P.S1[j]+ALPH*(P.T1c[j]-P.T1p[j]);
P.T1p[j]=Save;
}
if(k==STEPS-1)
getch();
cleardevice();
}
closegraph();
printf("\n antrenare terminat");

for(i=0;i<NN;i++) //aplic intrare
P.XI[i]=Input[4*NC][i];
for(j=0;j<N1;j++) { //calculeaz ieiri
for(i=0,P.X1[j]=0.0;i<NN;i++)
P.X1[j]+=P.WI1c[i][j]*P.XI[i];
P.X1[j]=1.0/(1.0+exp(-P.T1c[j]-P.X1[j]));
}
for(j=0;j<N2;j++) {
for(i=0,P.X2[j]=0.0;i<N1;i++)
P.X2[j]+=P.W12c[i][j]*P.X1[i];
P.X2[j]=1.0/(1.0+exp(-P.T2c[j]-P.X2[j]));
}
for(j=0;j<NC;j++) {
for(i=0,P.Y[j]=0.0;i<N2;i++)
P.Y[j]+=P.W2Yc[i][j]*P.X2[i];
P.Y[j]=1.0/(1.0+exp(-P.TYc[j]-P.Y[j]));
}
for(j=0;j<NC;j++)
printf("\n%12.6f ",P.Y[j]);

//dealocri
Free_DMatrix(Input,4*NC+1,NN);
DeAll_Net();
return(0);
}

Reea RBF cu antrenare hibrid.

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#define DBL_MAX 1.7976931348623158e+308
#define PI 3.1415926535
#define byte unsigned char

#define OFF 20 // ofset geometric pentru construcia claselor

#define NC 3 // numrul de clase
#define NC1 4 // numrul total de clase (inclusiv clasa de rejecie)
#define NZ 256 // numrul total de clusteri
#define NI 2 // numrul de intrri n reea (x,y)
#define NF 600 // numrul de forme per clas
#define NN (NC1*NF) // numrul total de forme de intrare

#define EPOCHS 200 // parametri antrenare
#define ETA 0.35
#define ALPH 0.7

double **Input; // matrice date de intrare
14. Reele neurale folosite n recunoaterea de forme.
212
byte **Image; // matrice imagine bitmap
int *Histo; // histograma distribuiei datelor de intrare

typedef struct tagBITMAPFILEHEADER { // antet fiier bitmap
unsigned short bfType;
unsigned long bfSize;
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned long bfOffBits;
} BITMAPFILEHEADER;

typedef struct tagBITMAPINFOHEADER { // antet bitmap
unsigned long biSize;
long biWidth;
long biHeight;
unsigned short biPlanes;
unsigned short biBitCount;
unsigned long biCompression;
unsigned long biSizeImage;
long biXPelsPerMeter;
long biYPelsPerMeter;
unsigned long biClrUsed;
unsigned long biClrImportant;
} BITMAPINFOHEADER;

typedef struct tagRGBQUAD { // paleta de culori
byte rgbBlue;
byte rgbGreen;
byte rgbRed;
byte rgbReserved;
} RGBQUAD;

struct RBFNet // reea RBF
{
double *XI; // intrare n reea
double **Mp; // medii precedente
double **Dp; // dispersii precedente
double **Mc; // medii curente
double **Dc; // dispersii curente
double *Z; // ieiri din primul strat

double **Wp; // ponderi precedente strat de ieire
double **Wc; // ponderi curente strat de ieire
double *Tp; // praguri precedente strat de ieire
double *Tc; // praguri curente strat de ieire
double *Ey; // funcia de eroare
double *Y; // ieire din reea
double *D; // ieire dorit din reea
} R;

double **DMatrix(int M,int N);
byte **BMatrix(int M,int N);
double *DVector(int N);
int *IVector(int N);
void Free_DMatrix(double **m,int M,int N);
void Free_BMatrix(byte **m,int M,int N);
void Free_DVector(double *v,int N);
void Free_IVector(int *v,int N);
void Alloc_Net(void);
void Free_Net(void);
14. Reele neurale folosite n recunoaterea de forme.
213
/*-------------------------------------------------------------------------*/
void Alloc_Net(void)
{
//aloc primul strat
R.XI=DVector(NI);
R.Mp=DMatrix(NI,NZ);
R.Dp=DMatrix(NI,NZ);
R.Mc=DMatrix(NI,NZ);
R.Dc=DMatrix(NI,NZ);
R.Z=DVector(NZ);
//aloc stratul secund
R.Wp=DMatrix(NZ,NC);
R.Wc=DMatrix(NZ,NC);
R.Tp=DVector(NC);
R.Tc=DVector(NC);
R.Ey=DVector(NC);
R.Y=DVector(NC);
R.D=DVector(NC);
}
/*-------------------------------------------------------------------------*/
void Free_Net(void)
{
//dealoc stratul secund
Free_DVector(R.D,NC);
Free_DVector(R.Y,NC);
Free_DVector(R.Ey,NC);
Free_DVector(R.Tc,NC);
Free_DVector(R.Tp,NC);
Free_DMatrix(R.Wc,NZ,NC);
Free_DMatrix(R.Wp,NZ,NC);
//dealoc primul strat
Free_DVector(R.Z,NZ);
Free_DMatrix(R.Dc,NI,NZ);
Free_DMatrix(R.Mc,NI,NZ);
Free_DMatrix(R.Dp,NI,NZ);
Free_DMatrix(R.Mp,NI,NZ);
Free_DVector(R.XI,NI);
}

/*-------------------------------------------------------------------------*/

main()
{
int idum, i, j, k, n, nEr;
long r, x1, y1, x2, y2, x3, y3;
double x, y, Sum, Save, Sgn, Err;

// definete intrare
r = (long)((480.0-OFF-OFF)/(2+sqrt(3.0)));
x1 = r+OFF;
y1 = r+OFF;
x2 = 2*r+OFF;
y2 = 479-r-OFF;
x3 = 3*r+OFF;
y3 = r+OFF;

// creaza reea
Alloc_Net();
// creeaz matrice date de intrare
Input = DMatrix(NN, NI);
// creeaz bitmap
14. Reele neurale folosite n recunoaterea de forme.
214
Image = BMatrix(480, 640);

idum = -1;
ran1(&idum);
i = 0;
// genereaz formele din prima clas
do {
x = (ran1(&idum)*2-1)*r;
y = (ran1(&idum)*2-1)*r;
if (x*x+y*y <= r*r) {
x += x1;
y += y1;
Input[i][0] = x/400.0;
Input[i][1] = y/400.0;
i++;
}
} while(i < NF);
// genereaz formele din clasa a doua
do {
x = (ran1(&idum)*2-1)*r;
y = (ran1(&idum)*2-1)*r;
if (x*x+y*y <= r*r) {
x += x2;
y += y2;
Input[i][0] = x/400.0;
Input[i][1] = y/400.0;
i++;
}
} while(i < 2*NF);
// genereaz formele din clasa a treia
do {
x = (ran1(&idum)*2-1)*r;
y = (ran1(&idum)*2-1)*r;
if (x*x+y*y <= r*r) {
x += x3;
y += y3;
Input[i][0] = x/400.0;
Input[i][1] = y/400.0;
i++;
}
} while(i < 3*NF);
// genereaz formele din clasa de rejecie
do {
x = ran1(&idum)*(4*r+2*OFF-2)+1;
y = ran1(&idum)*478+1;
if(((x-x1)*(x-x1)+(y-y1)*(y-y1) > r*r)
&& ((x-x2)*(x-x2)+(y-y2)*(y-y2) > r*r)
&& ((x-x3)*(x-x3)+(y-y3)*(y-y3) > r*r)) {
Input[i][0] = x/400.0;
Input[i][1] = y/400.0;
i++;
}
} while(i < NN);

// iniializeaz bitmap (fond alb)
for (j=0; j<480; j++) {
for (i=0; i<640; i++)
Image[j][i] = 0xff;
}
// traseaz limitele claselor (trei cercuri tangente)
for (k=0; k<360; k++) {
14. Reele neurale folosite n recunoaterea de forme.
215
i = (int)(x1 + r *sin(k*PI/180));
j = (int)(y1 + r *cos(k*PI/180));
Image[j][i] = 0x00;
i = (int)(x2 + r *sin(k*PI/180));
j = (int)(y2 + r *cos(k*PI/180));
Image[j][i] = 0x00;
i = (int)(x3 + r *sin(k*PI/180));
j = (int)(y3 + r *cos(k*PI/180));
Image[j][i] = 0x00;
}
// traseaz formele de intrare
for (k=0; k<NF; k++) { // prima clas: simbol x
i = (int)(400.0*Input[k][0]);
j = (int)(400.0*Input[k][1]);
Image[j][i] = 0xaa;
Image[j-1][i-1] = 0xaa; Image[j-1][i+1] = 0xaa;
Image[j+1][i-1] = 0xaa; Image[j+1][i+1] = 0xaa;
}
for (k=NF; k<NF*2; k++) { // a doua clas: simbol +
i = (int)(400.0*Input[k][0]);
j = (int)(400.0*Input[k][1]);
Image[j][i] = 0xaa;
Image[j][i-1] = 0xaa; Image[j][i+1] = 0xaa;
Image[j-1][i] = 0xaa; Image[j+1][i] = 0xaa;
}
for (k=NF*2; k<NF*3; k++) { // a treia clas: simbol o
i = (int)(400.0*Input[k][0]);
j = (int)(400.0*Input[k][1]);
Image[j-1][i-1] = 0xaa; Image[j-1][i] = 0xaa; Image[j-1][i+1] = 0xaa;
Image[j][i-1] = 0xaa; Image[j][i+1] = 0xaa;
Image[j+1][i-1] = 0xaa; Image[j+1][i] = 0xaa; Image[j+1][i+1] = 0xaa;
}
for (k=NF*3; k<NN; k++) { // clasa de rejecie: simbol I
i = (int)(400.0*Input[k][0]);
j = (int)(400.0*Input[k][1]);
Image[j-1][i-1] = 0xaa; Image[j-1][i] = 0xaa; Image[j-1][i+1] = 0xaa;
Image[j][i] = 0xaa;
Image[j+1][i-1] = 0xaa; Image[j+1][i] = 0xaa; Image[j+1][i+1] = 0xaa;
}

/////////////////////////////
// antrenare strat intrare //
/////////////////////////////
//construiete nesupervizat prototipuri pentru primul strat
int z = 1; // contor clase (una singur la nceput, clasa 0)
for (i=0; i<NI; i++) {
for (n=0, R.Mc[i][0]=0.0; n<NN; n++)
R.Mc[i][0] += Input[n][i];
R.Mc[i][0] /= NN; // medie
for (n=0, R.Dc[i][0]=0.0; n<NN; n++)
R.Dc[i][0] += (Input[n][i]-R.Mc[i][0])*(Input[n][i]-R.Mc[i][0]);
R.Dc[i][0] /= NN; // dispersie
}

int s = 1; // offset poziie neuron curent n stratul de intrare
do {
if(s*2 > NZ) break;
s = s*2;
} while(1);

double DP, DC, eps=0.001;
14. Reele neurale folosite n recunoaterea de forme.
216
do { //while z<NZ
srand(1);
if(z == s) {
// completeaz numrul de clase pn la NZ
for (j=0; j<NZ-z; j++) {
for (i=0; i<NI; i++) {
Sgn=(rand()/32767000.0-0.0005);
R.Mp[i][j*2] = R.Mc[i][j]+Sgn*R.Dc[i][j];
Sgn=(rand()/32767000.0-0.0005);
R.Mp[i][j*2+1] = R.Mc[i][j]+Sgn*R.Dc[i][j];
}
}
// pstreaz restul claselor
for (i=0; i<NI; i++) {
for (j=2*(NZ-z); j<NZ; j++)
R.Mp[i][j] = R.Mc[i][j];
}
z = NZ;
} else {
// dubleaz numrul de clase
for (j=0; j<z; j++) {
for (i=0; i<NI; i++) {
Sgn=(rand()/32767000.0-0.0005);
R.Mp[i][j*2] = R.Mc[i][j] + Sgn*R.Dc[i][j];
Sgn=(rand()/32767000.0-0.0005);
R.Mp[i][j*2+1] = R.Mc[i][j] - Sgn*R.Dc[i][j];
}
}
z = z*2;
}

// LBG: bucla de minimizare a erorii de aproximare pentru 'z' clase
DC=DBL_MAX;
do {
DP=DC;
DC=0;
// Iniializri
Histo = IVector(z);
for (j=0; j<z; j++) {
for (i=0; i<NI; i++) {
R.Mc[i][j] = 0.0;
R.Dc[i][j] = 0.0;
}
Histo[j] = 0;
}
// afl pentru fiecare vector de intrare partiia cea mai apropiat
for (n=0; n<NN; n++) {
double dMinDist2, dDist2;
int nMinClass=-1;
for (j=0, dMinDist2=DBL_MAX; j<z; j++) {
for (i=0, dDist2=0.0; i<NI; i++)
dDist2 += (Input[n][i]-R.Mp[i][j])*(Input[n][i]-R.Mp[i][j]);
if(dDist2 < dMinDist2) {
dMinDist2 = dDist2;
nMinClass = j;
}
}
if (nMinClass == -1)
exit(1);
Histo[nMinClass]++;
// actualizeaz eroarea medie ptratic de aproximare
14. Reele neurale folosite n recunoaterea de forme.
217
DC += dMinDist2;
// valoarea contribuiei la noua medie & dispersie
for (i=0; i<NI; i++) {
R.Mc[i][nMinClass] += Input[n][i];
R.Dc[i][nMinClass] += Input[n][i]*Input[n][i];
}
}
for (j=0; j<z; j++) {
for (i=0; i<NI; i++) {
R.Mc[i][j] = R.Mc[i][j]/Histo[j]; // calcul final medie
R.Dc[i][j] = R.Dc[i][j]/Histo[j];
R.Dc[i][j] -= R.Mc[i][j]*R.Mc[i][j];// calcul final dispersie
}
}
for (j=0; j<z; j++)
printf("%2d ", Histo[j]);
printf("\neroare absoluta = %f\n",DC);
Free_IVector(Histo, z);
} while ((DP-DC)/DC > eps);
printf("eroare relativa = %f\n",(DP-DC)/DC);
printf("partitionare %d clase terminata\n\n",z);
} while (z < NZ);
// marcheaz n imagine poziiile centrelor gruprilor
for (z=0; z<NZ; z++) {
i = (int)(R.Mc[0][z]*400.0);
j = (int)(R.Mc[1][z]*400.0);
Image[j][i] = 0x00;
}

////////////////////////////
// antrenare strat ieire //
////////////////////////////
// asignare ponderi i praguri iniiale (stratul de ieire)
srand(1);
for (k=0; k<NC; k++) {
for (j=0; j<NZ; j++)
R.Wp[j][k] = R.Wc[j][k] = rand()/32767.0 - 0.5;
R.Tp[k] = R.Tc[k] = rand()/32767.0 - 0.5;
}

// aplic succesiv intrri i ieirile dorite, adapteaz parametri reea
for (s=0; s<EPOCHS; s++) {
Err = 0.0; nEr = 0;
for (n=0; n<NN; n++) {
// aplic intrare n ordinea 0,1,2,rej,0,1,2,rej,...
for (i=0; i<NI; i++)
R.XI[i] = Input[(n%NC1)*NF+n/NC1][i];
// aplic ieire dorit
for (i=0; i<NC; i++)
R.D[i] = 0.0;
if (n%NC1 < 3) // ordinea 0,1,2,rej,0,1,2,rej,...
R.D[n%NC1] = 1.0;
// calculeaz ieiri din primul strat
for (j=0; j<NZ; j++) {
for(i=0, R.Z[j]=0.0; i<NI; i++) {
if (R.Dc[i][j] > 0)
R.Z[j] += (R.XI[i]-R.Mc[i][j])
*(R.XI[i]-R.Mc[i][j])/R.Dc[i][j];
}
R.Z[j] = exp(-R.Z[j]/2.0);
}
14. Reele neurale folosite n recunoaterea de forme.
218
// normalizare
for (j=0, Sum=0.0; j<NZ; j++)
Sum += R.Z[j];
for (j=0; j<NZ; j++)
R.Z[j] /= Sum;
// calculeaz ieiri strat de ieire
for (k=0; k<NC; k++) {
for (j=0, R.Y[k]=0.0; j<NZ; j++)
R.Y[k]+=R.Wc[j][k]*R.Z[j];
R.Y[k] = 1.0 / (1.0 + exp(-R.Tc[k]-R.Y[k]));
}
// calculeaz eroare
for (k=0; k<NC; k++)
Err += (R.Y[k]-R.D[k])*(R.Y[k]-R.D[k]);
// test clasificare corect
for (k=0; k<NC; k++) {
if (k == (n%NC1)) {
if (R.Y[k] < 0.5)
break;
} else {
if (R.Y[k] > 0.5)
break;
}
}
if (k != NC)
nEr++; // incrementeaza numrul de erori
// adapteaz ponderi i praguri (stratul de ieire)
for (k=0; k<NC; k++)
R.Ey[k] = R.Y[k] * (1.0-R.Y[k]) * (R.D[k]-R.Y[k]);
for (k=0; k<NC; k++) {
for (j=0; j<NZ; j++) {
Save = R.Wc[j][k];
R.Wc[j][k] += ETA*R.Ey[k]*R.Z[j]
+ ALPH*(R.Wc[j][k]-R.Wp[j][k]);
R.Wp[j][k] = Save;
}
Save = R.Tc[k];
R.Tc[k] += ETA*R.Ey[k] + ALPH*(R.Tc[k]-R.Tp[k]);
R.Tp[k] = Save;
}
printf("step=%4d\r", n);
}
printf("\repoch=%4d err=%12.6f ner=%d\n", s, Err, nEr);
}
printf("\n antrenare terminata\n");

// test final
nEr = 0;
for (n=0; n<NN; n++) {
// aplic intrare
for (i=0; i<NI; i++)
R.XI[i] = Input[n][i];
// calculeaz ieiri din primul strat
for (j=0; j<NZ; j++) {
for(i=0, R.Z[j]=0.0; i<NI; i++) {
if (R.Dc[i][j] > 0)
R.Z[j] += (R.XI[i]-R.Mc[i][j])*(R.XI[i]-R.Mc[i][j])/R.Dc[i][j];
}
R.Z[j] = exp(-R.Z[j]/2.0);
}
// normalizare
14. Reele neurale folosite n recunoaterea de forme.
219
for (j=0, Sum=0.0; j<NZ; j++)
Sum += R.Z[j];
for (j=0; j<NZ; j++)
R.Z[j] /= Sum;
// calculeaz ieiri strat de ieire
for (k=0; k<NC; k++) {
for (j=0, R.Y[k]=0.0; j<NZ; j++)
R.Y[k] += R.Wc[j][k] * R.Z[j];
R.Y[k] = 1.0/(1.0+exp(-R.Tc[k]-R.Y[k]));
}
// test clasificare corect
for (k=0; k<NC; k++) {
if (k == n/NF) {
if (R.Y[k] < 0.5)
break;
} else {
if (R.Y[k] > 0.5)
break;
}
}
if (k != NC)
nEr++; // incrementeaz numrul de erori
else {
// clasificare corect, marcheaz intrrile recunoscute corect
switch (n/NF) {
case 0: // prima clas
i = (int)(400.0*Input[n][0]);
j = (int)(400.0*Input[n][1]);
Image[j][i] = 0x55;
Image[j-1][i-1] = 0x55; Image[j-1][i+1] = 0x55;
Image[j+1][i-1] = 0x55; Image[j+1][i+1] = 0x55;
break;
case 1: // a doua clas
i = (int)(400.0*Input[n][0]);
j = (int)(400.0*Input[n][1]);
Image[j][i] = 0x55;
Image[j][i-1] = 0x55; Image[j][i+1] = 0x55;
Image[j-1][i] = 0x55; Image[j+1][i] = 0x55;
break;
case 2: // a treia clas
i = (int)(400.0*Input[n][0]);
j = (int)(400.0*Input[n][1]);
Image[j-1][i-1] = 0x55; Image[j-1][i] = 0x55;
Image[j-1][i+1] = 0x55; Image[j][i-1] = 0x55;
Image[j][i+1] = 0x55; Image[j+1][i-1] = 0x55;
Image[j+1][i] = 0x55; Image[j+1][i+1] = 0x55;
break;
case 3: // clasa de rejectie
i = (int)(400.0*Input[n][0]);
j = (int)(400.0*Input[n][1]);
Image[j-1][i-1] = 0x55; Image[j-1][i] = 0x55;
Image[j-1][i+1] = 0x55; Image[j][i] = 0x55;
Image[j+1][i-1] = 0x55; Image[j+1][i] = 0x55;
Image[j+1][i+1] = 0x55;
break;
}
}
}
printf("\nTotal %d erori din %d\n", nEr, NN);
// construcie fiier bitmap
// antet fiier
14. Reele neurale folosite n recunoaterea de forme.
220
BITMAPFILEHEADER bmfh;
bmfh.bfType = 0x4d42;
bmfh.bfSize = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)
+ 2*sizeof(RGBQUAD)+640*480;
bmfh.bfReserved1 = 0;
bmfh.bfReserved2 = 0;
bmfh.bfOffBits = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)
+ 256*sizeof(RGBQUAD);
// antet bitmap
BITMAPINFOHEADER bmih;
bmih.biSize = sizeof(BITMAPINFOHEADER);
bmih.biWidth = 640;
bmih.biHeight = 480;
bmih.biPlanes = 1;
bmih.biBitCount = 8;
bmih.biCompression = 0;
bmih.biSizeImage = 640*480/8;
bmih.biXPelsPerMeter = 0;
bmih.biYPelsPerMeter = 0;
bmih.biClrUsed = 0;
bmih.biClrImportant = 0;
// paleta de culori
RGBQUAD rgbq[256];
for (i=0; i<256; i++) {
rgbq[i].rgbBlue = rgbq[i].rgbGreen = rgbq[i].rgbRed = i;
rgbq[i].rgbReserved = 0;
}
// scrie fiier bitmap
FILE* pFile = fopen("c:\\rbf.bmp", "wb");
fwrite(&bmfh, sizeof(BITMAPFILEHEADER), 1, pFile);
fwrite(&bmih, sizeof(BITMAPINFOHEADER), 1, pFile);
for (i=0; i<256; i++)
fwrite(&rgbq[i], sizeof(RGBQUAD), 1, pFile);
for (j=0; j<480; j++) {
for (i=0; i<640; i++)
fwrite(&Image[j][i], 1, 1, pFile);
}
fclose(pFile);

// dealocri
Free_BMatrix(Image, 480, 640);
Free_DMatrix(Input, NN, NI);
Free_Net();
return(0);
}
14. Reele neurale folosite n recunoaterea de forme.
221

Fiier imagine (bitmap) generat de programul te test pentru reeaua RBF cu antrenare hibrid.

15. Selecia trsturilor.
221





15. Selecia trsturilor.




15.1. Metode bazate pe estimarea caracteristicilor statistice ale trsturilor.
15.2. Metode bazate pe densitatea de probabilitate.
15.3. Transformri diagonale pentru selecia trsturilor.
15.4. Selecia optimal a trsturilor.
15.5. Transformri rotaionale pentru selecia trsturilor.
15.6. Msuri ale calitii trsturilor.
15.7. Detalii de implementare.




Dintr-un proces oarecare se pot extrage un numr foarte mare de trsturi. Odat cu
creterea numrului de trsturi folosite, crete ns i complexitatea clasificatorului. De aceea se
pune problema seleciei acelor trsturi care sunt eseniale n procesul de recunoatere.

15.1. Metode bazate pe estimarea caracteristicilor statistice ale trsturilor.
Fie{ }
N j 1
j

X setul de N vectori de date folosii pentru antrenarea clasificatorului. Notnd
cu
ij
x trstura "j" a vectorului
i
X i cu
k
N numrul de forme prototip pentru clasa "k", avem:

=
=
C
N
1 k
k
N N (1)
i putem defini n continuare:
Media trsturii "j" pentru vectorii din setul de date:


= = =
= =
N
1 i
N
1 k
k
ij j
N
1 i
ij j
C
x
N
1
m x
N
1
m
) (
(2)
Variana trsturii "j" pentru setul de vectori de date:


= = =
= =
N
1 i
N
1 k
2
j
(k)
ij j
N
1 i
2
j ij j
C
) m (x
N
1
v ) m (x
N
1
v (3)
Dac v
j
are valori foarte mici (nesemnificative), trstura "j" poate fi eliminat din setul
de trsturi folosite pentru definirea formelor, ea nereuind s separe bine clasele.
Variabilitatea intraclas pentru trstura "j" se definete prin:

=
(k,l)
2
lj kj
(in)
j
) x (x
p
1
V (4)
unde suma se efecueaz pentru toate perechile de forme din setul de date aparinnd
aceleiai clase, "p" fiind numrul de astfel de perechi de forme.
15. Selecia trsturilor.
222
Variabilitatea interclas pentru trstura "j" este dat de:

=
(k,l)
2
lj kj
(ic)
j
) x (x
r
1
V (5)
unde suma se calculeaz pentru toate perechile posibile de forme aparinnd unor clase
diferite, "r" fiind numrul de astfel de perechi.
Cu ct
) ( in
j
V este mai mic, cu att gruparea valorilor trsturii n jurul mediei este mai
bun, deci clasificarea va fi mai facil, i cu ct
) ( ic
j
V este mai mare, cu att clasele sunt mai
deprtate, deci mai bine separate. Atunci, pentru fiecare trstura n parte se calculeaz raportul:

) (
) (
ic
j
in
j
j
V
V
g = (6)
reinndu-se acele trsturi pentru care valoarea
j
g este ct mai mic.
Se mai utilizeaz pentru problemele de clasificare binar raportul (ponderea) Fisher:

2 j 1 j
2
2 j 1 j
j
V V
) m (m
F

= (7)
sau raportul Coomans:

2 j 1 j
2 j 1 j
j
V V
m m
C
+

= (8)

15.2. Metode bazate pe densitatea de probabilitate.
Pentru un clasificator bayesian cu funcie de pierdere simetric, riscul condiionat este dat
de:
) ( ) / ( ) , (
k k k
p X p X L = (9)
Eroarea global de clasificare este dat de:

=
=
Nc
1 k

k
k
)d , ( X X L (10)
de unde se poate scrie:


=
=
Nc
1 k

k k
k
)d / ( ) ( X X p p (11)
O expresie asemntoare se poate scrie i pentru fiecare trstura n parte:


=
=
Nc
1 k

j k j k j
k(j)
)dx / (x ) ( p p (12)
Pentru fiecare trstur n parte se calculeaz
j
, cunoscnd aprioric sau estimnd ) (
k
p
i ) / (x
k j
p , iar apoi se rein acele trsturi pentru care
j
este minim i eliminndu-le pe
celelalte ca fiind nesemnificative.

15.3. Transformri diagonale pentru selecia trsturilor.
Aceste metode permit mrirea gradului de similaritate a formelor dintr-o clas prin
mbuntirea gradului de grupare a formelor din aceeai clas i prin accentuarea trsturilor
comune formelor din aceeai clas.
Fie X un vector de form oarecare:
) ,...,x ,x (x
n 2 1
= X (13)
Considerm transformarea diagonal:
15. Selecia trsturilor.
223

(
(
(

=
nn
11
w ... 0
... ... ...
0 ... w
, ) ( W diag X W diag X unde (14)
Ca msur a varianei vectorilor de forma din clasa
k
se poate folosi suma ptratelor
distanelor ntre perechile posibile de vectori de forma din clasa
k
, adic:

= =

=
k k
N
1 i
N
1 j
(k)
j
(k)
i
2
k k
2
k
) , (
) 1 (N N
1
D X X d (15)
Aceeai relaie n spaiul transformatei devine:

= =

=
k k
N
1 i
N
1 j
(k)
j
(k)
i
2
k k
2
k
) ) ,( ) ((
) 1 (N N
1
D X W diag X W diag d (16)
Dar:

=
=
n
1 c
2
c c
2
) y (x ) , ( Y X d (17)
unde "n" este numrul de trsturi folosite.
nlocuind, se obine:

= = =

=
k k
N
1 i
N
1 j
n
1 c
2 (k)
jc
(k)
ic
2
c
k k
2
k
) x (x w
) 1 (N N
1
D (18)
Transformarea diagonal optim pentru clasa "k" se poate obine din condiia de
minimizare a lui
2
k
D i folosind o condiie suplimentar de forma:

=
=
n
1 c
c
1 w sau 1 w
n
1 c
c
=

=
(19)
condiie necesar pentru a limita valorile ponderilor printr-o scalare aditiv sau
multiplicativ.
Deci vom deduce valorile ponderilor w
c
din condiia:
0
w
D
m
2
k
=

(20)
plus una din condiiile suplimentare precedente, folosind metoda multiplicatorilor lui
Lagrange.
Astfel, pentru prima variant (scalare aditiv a parametrilor), trebuie de minimizat funcia:


= = = =

=
k k
N
1 i
N
1 j
n
1 c
n
1 c
c
2 (k)
jc
(k)
ic
2
c
k k
) 1 w ( ) x (x w
) 1 (N N
1
f (21)
Se obine:
0 ) x (x w 2
) 1 (N N
1
0
w
k k
N
1 i
N
1 j
2 (k)
jc
(k)
ic m
k k m
=

=

= =

f
(22)
) x (x
) 1 (N N
1
w 2
k k
N
1 i
N
1 j
2 (k)
jc
(k)
ic
k k
m
=


= =
(23)
Remarcnd faptul c:

= =

=
k k
N
1 i
N
1 j
2 (k)
jc
(k)
ic
k k

2
m
) x (x
) 1 (N N
1
(24)
este tocmai variana trsturii "m" pentru clasa "k", rezult:
15. Selecia trsturilor.
224

2
m
m
2
m m
2
w w 2

= = (25)
i folosind condiia suplimentar de scalare aditiv, se obine prin nlocuire:

= =
n
1 m
2
m
n
1 m
2
m
1
2 1
2
1

(26)
Ca urmare rezult n final:

=
n
1 m
2
m
2
c
k
c
1
1
w

) (
(27)
Deoarece ponderile w
c
sunt proporionale cu
2
c
/ 1 , n urma acestei transformri,
trsturile cu varian mare vor fi ponderate cu valori mici, deci importana lor va scade.
Dac se utilizeaz condiia suplimentar de scalare multiplicativ a coeficienilor
transformrii diagonale, va trebui s minimizm funcia:


= = = =

=
k k
N
1 i
N
1 j
n
1 c
n
1 c
c
2 (k)
jc
(k)
ic
2
c
k k
) 1 w ( ) x (x w
) 1 (N N
1
f (28)
Efectund acelai ir de operaii se obine succesiv:
0
w

) x (x w 2
) 1 (N N
1
0
w
m
N
1 i
N
1 j
2 (k)
jc
(k)
ic m
k k m
k k
=

=

= =

f
(29)

2
m
2
m
2
m
2
m
N
1 i
N
1 j
2 (k)
jc
(k)
ic
k k
2
m
2

w w 2 ) x (x
) 1 (N N
w 2
k k
= = =


= =
(30)
nlocuind n condiia de scalare multiplicativ:

/n 1
n
1 m
2
m
n
1 m
2
m
n
n
) ( 2 1

1
2

=
=
= = (31)
Rezult n final:

c
n
1 m
/n 1
m
(k)
c

) (
w

=
= (32)
Cu formulele obinute se poate construi o transformare diagonal care s separe foarte
bine o clas de celelalte. Aceeai transformare permite, de asemenea, selectarea trsturilor
semnificative prin reinerea acelora pentru care ponderea
) ( k
c
w are valoare mare.
Pentru a selecta trsturile semnificative pentru toate clasele, se pot utiliza funcii de cost
de forma ) (w
(k)
c
f , dependente de ponderile transformrii diagonale obinute pentru fiecare clas.
Exist "n" asemenea funcii, corespunztoare fiecrei trsturi. Se pot reine acele trsturi pentru
care "f" ia valoarea cea mai mare pentru toate clasele.

15.4. Selecia optimal a trsturilor.
Selecia optimal a trsturilor se realizeaz construind o transformare ortogonal
(unitar) n urmtorul sistem de selecie a trsturilor:

15. Selecia trsturilor.
225
T
-1
T
selecie
trsturi
semnificative
X Y Y
~
X
~

Fig. 1. Selecia optimal a trsturilor.

unde:
X - vectorul de form de intrare,
T
n 2 1
) ,...,x ,x (x = X
Y - vectorul de form transformat,
T
n 2 1
) ,...,y ,y (y = Y
Y
~
- vectorul de form redus, ) ,...,c ,c ,...,y ,y (y
n 1 k k 2 1 +
= Y
~

X
~
- estimaia vectorului de form de intrare,
T
n 2 1
) x ,..., x , x (
~ ~ ~
X
~
=
Se remarc modul de efectuare a reducerii datelor prin forarea ultimelor " " k n valori
din vectorul transformat la constante.
Se urmrete determinarea matricii transformrii ortogonale unitare din condiia ca
eroarea medie ptratic de estimare a formei iniiale s fie minim. Se folosesc notaiile:

(
(
(
(

=
(
(
(
(

=
T
n
T
2
T
1
nn 2 n 1 n
n 2 22 21
n 1 12 11
u u u
u u u
u u u
u
...
u
u
...
... ... ... ...
...
...
T (33)
Deoarece transformarea T este unitar, avem:

T 1
T T =

(34)
i atunci:
[ ]
n 2 1
nn n 2 n 1
2 n 22 12
1 n 21 11
T
u u u
u u u
u u u
u ... u u
...
... ... ... ...
...
...
T =
(
(
(
(

= (35)
Din structura schemei bloc rezult:
TX Y = ==> [ ]
(
(
(
(

= =
n
2
1
n 2 1
T
y
y
y
...
u ... u u Y T X ==>

=
=
n
1 j
j j
y u X (36)
Eroarea medie ptratic de estimare a lui X este dat de:
)} ( ) {( } {
T
2
X
~
X X
~
X E X
~
X E = = (37)
Dar, deoarece:


+ = = =
= =
n
1 k j
j j j
n
1 j
n
1 j
j j j j
) c (y y y u
~
u u X
~
X (38)
Rezult pentru eroarea medie patratic expresia:

)
`

=
)
`

=

+ = + = + = + =
n
1 k i
n
1 k j
i i i
T
j j j
n
1 k j
j j j
n
1 k j
T
j j j
) c (y ) c (y ) c (y ) c (y u u E u u E (39)
i deoarece din condiia de ortogonalitate avem:
15. Selecia trsturilor.
226

=
=
j i 0
j i 1
i
T
j
pentru
pentru
,
,
u u (40)
se obine n final:

)
`

=

+ =
n
1 k j
2
j j
) c (y E (41)
Primul pas al optimizrii const n determinarea constantelor "c" din condiia de
minimizare a erorii medii ptratice:
{ } { }
j j j j j
j
y y c 0 ) c (y 2 0
c

= = = = E E

(42)
Atunci eroarea medie ptratic de estimare a intrrii devine:

)
`

=
)
`

=

+ = + =
n
1 k j
T
j j j j
n
1 k j
2
j j
) y )(y y (y ) y (y E E (43)
Deoarece:
X u
T
j j
y = i X u
T
j j
y = (44)
rezult dup nlocuiri:


+ = + =
=
)
`

=
n
1 k j
j
T
j j j j
T
j
n
1 k j
j
T
j j j j
T
j
} ) x )(x x {(x ) x )(x x (x u E u u u E (45)
Deci:

+ =
=
n
1 k j
j XX
T
j
u K u (46)
unde
XX
K este matricea de covarian asociat procesului aleator care descrie vectorii
formelor de intrare.
Pentru a determina
j
u din condiia de minimizare a erorii medii ptratice de estimare,
adic:
0
j
=
u
(47)
cu condiia suplimentar 1
j
T
j
= u u care exprim proprietatea de ortogonalitate a matricii
T, se folosete metoda multiplicatorilor lui Lagrange, adic se minimizeaz funcia:
0
j
= f
u
(48)
unde:
) 1 ( f
j
T
j j
n
1 k j
j XX
T
j
=

+ =
u u u K u (49)
Rezult n final:
0 ) (
j n j XX
= u I K (50)
care exprima faptul c n 1 j
j
.. , = sunt valorile proprii ale matricii de covarian a intrrii,
iar n 1 j
j
.. , u = sunt vectorii proprii ai aceleiai matrici
XX
K .
Deci matricea T a transformrii ortogonale cutate are drept linii, vectorii proprii ai
matricii de covarian a domeniului de intrare.
Mrimea erorii medii ptratice de estimare a intrrii este dat atunci de:


+ = + = + =
= = =
n
1 k j
j
T
j j
n
1 k j
j j
T
j
n
1 k j
j XX
T
j
u u u u u u K (51)
i folosind condiia de ortogonalitate obinem:
15. Selecia trsturilor.
227

+ =
=
n
1 k j
j
(52)
Aceast condiie permite alctuirea urmtorului algoritm de selecie optimal a
trsturilor:

(1). Se calculeaz sau se estimeaz matricea de covarian a formelor de intrare
XX
K .
(2). Se calculeaz valorile proprii ale matricii
XX
K .
(3). Se ordoneaz descresctor aceste valori proprii.
(4). Se construiete matricea T a transformrii unitare cutate din vectorii proprii ai
matricii
XX
K , conform ordinii gsite pentru valorile proprii.
(5). Numrul "k" de trsturi care se rein dup transformarea unitar se obine din
valoarea maxim admisibil a erorii medii ptratice de estimare.

Matricea de covarian a domeniului transformatei este dat de:

T
XX
T T T
YY
} ) )( ( { } ) )( {( T TK T X X X X T E Y Y Y Y E K = = = (53)
i deoarece:
n 1 j pentru
j j j XX
... , u u K = = (54)
rezult:
[ ] [ ]
n 2 1 n 2 1 n 2 1 XX
) ( u ... u u ... diag u ... u u K = (55)

T T
XX
T T K =
Atunci matricea de covarian a domeniului transformatei se scrie:
TT T K = = =
T T
YY
(56)
Deci prin aplicarea transformrii optimale se obin trsturi necorelate.

15.5. Transformri rotaionale pentru selecia trsturilor.
Considernd formele din spaiul formelor
n
R dezvoltate folosind o baz ortonormat
complet de vectori:
...m} 1 ,p { } {
p
= = b b
~
(57)
unde n m < , atunci orice form poate fi exprimat sub forma unei combinaii liniare a
vectorilor din aceast baz:

m jm 2 2 j 1 1 j
k
j
a a a b ... b b X
) (
+ + + = (58)
Eroarea indus de aceast dezvoltare are expresia:
} a { e
2
m
1 p
p jp
k
j
k
j
| b X | E
) ( ) (

=
= (59)
Dac se urmrete n continuare determinarea bazei ortonormate } {b
~
n condiiile
minimizrii erorii medii ptratice anterioare, se obine, aa cum s-a artat n paragraful precedent,
transformarea Karhunen-Loeve.
Volumul de calcule necesar implementrii acestei transformri este foarte mare i de
aceea, pentru anumite aplicaii care permit modelarea formelor de intrare cu un proces Markov de
ordinul unu, se folosete Transformata Cosinus Discret (DCT) care aproximeaz cel mai bine
transformarea optimal descris anterior, mai ales pentru valori mici ale numrului de trsturi
64 n . n plus, algoritmul transformarii DCT rapide (derivat din FFT) permite reducerea
substanial a numrului de calcule, de la
2
n la n log n 2
2
operaii (o operaie = o nmulire i o
adunare).
15. Selecia trsturilor.
228
Proprieti de decorelare a vectorilor aplicai la intrare prezint ns i alte transformri,
cum ar fi:
(1). Transformata Fourier, pentru calculul creia exist algoritmul FFT (Fast Fourier
Transform) care permite micorarea substanial a numrului de calcule, de la
2
n la n log n
2

operaii.
(2). Transformata Walsh-Hadamard care prezint avantajul c pentru calculul ei sunt
necesare doar n log n
2
adunri/scderi i nici o nmulire.
(3). Transformata Haar, care furnizeaz la ieire o combinaie liniar a tuturor valorilor din
vectorul de intrare doar prin intermediul primilor doi coeficieni, n timp ce restul coeficienilor
conin cte o combinaie liniar doar a valorilor de intrare adiacente. Pentru calculul ei sunt
necesare doar ) 1 (n 2 adunri/scderi.

15.6. Msuri ale calitii trsturilor.
Pe lng parametrii descrii n primul paragraf al acestui capitol pentru caracterizarea
calitii trsturilor, adic variana trsturilor, variabilitatea intraclas, variabilitatea interclas,
(ponderea) Fisher i raportul Coomans, exist un set ntreg de msuri de separabilitate a claselor,
cum ar fi:
(1) Divergena, care trebuie maximizat pentru o bun separabilitate a claselor:

(
(

=
j j
i i
j j i i 1
d
) / ( ) (
) / ( ) (
)] / ( ) ( ) / ( ) ( [ X
X p p
X p p
log X p p X p p Q (60)
(2) Distana Bhattacharyya (B-distana), al crui minim asigur o bun separabilitate a
claselor:

2 / 1
j i 2
d )] / ( ) / ( [ X X p X p log Q (61)
(3). Patrick i Fisher sugereaz folosirea coeficientului:

2
j i
2
3
d )] / ( ) / ( [ X X p X p log Q (62)
(4). Meisel propune varianta discret urmtoare, care este util mai ales n cazul formelor
cu numr mare de trsturi:

= =
+ =
2 1
M
1 k
2
j j i i
j
j
M
1 k
2
j j i i
i
i 2
4
)] / ( ) ( ) / ( ) ( [
M
p
)] / ( ) ( ) / ( ) ( [
M
p
X p p X p p X p p X p p Q (63)
(5). Msura urmtoare ine cont de eroarea de clasificare pentru un clasificator Bayes:

= =
+ =
2 1
M
1 k
2
j j i i
j
j
M
1 k
2
j j i i
i
i 2
5
)] / ( ) ( ) / ( ) ( [
M
p
)] / ( ) ( ) / ( ) ( [
M
p
X p p X p p X p p X p p Q (64)
unde:

<

=
0 x , 0
0 x , 1
(x)
pentru
pentru

Dac msurile precedente se refer la separabilitatea ntre clasele
i
i
j
, urmtoarele
msuri urmresc separabilitatea global, deci pentru toate cele
c
N clase.
(6). O variant continu pentru estimarea separabilitii globale a claselor este:

=
=

i i
...N 1 i
6
)d / ( ) (
c
X X p p max Q (65)
(7). Alt modalitate de apreciere are la baz riscul condiionat de clasificare eronat:
15. Selecia trsturilor.
229


= =

N
1 i
i i

2
N
1 i
i i 7
d )] / ( ) ( [ d ) / ( ) (
c
2
c
X X p p X X p p Q (66)
(8). Varianta discret a coeficientului precedent este dat de:


= = =

)

=
M
1 j
N
1 i
i i
2
N
1 i
i i 8
c c
) / ( ) ( ) / ( ) (
M
1
X p p X p p Q (67)
Alegerea criteriului optim de selecie a acelor trsturi care asigur cea mai bun
separabilitate a claselor este nc o problem deschis, ea depinznd de legea de distribuie care
guverneaz formele de intrare (pentru distribuia gaussian se recomand
1
Q i
2
Q ) i de volumul
de calcule necesar pentru determinarea lor.

15.7. Detalii de implementare.
Concret se urmrete proiectarea unui sistem bazat pe circuitul INMOS A100 - filtru
digital transversal cu 32 de nivele - care s rezolve problema calculului Transformatei Cosinus
Discret (DCT) i a ieirilor unei reele neuronale de tipul perceptron multistrat, ambele fiind mari
consumatoare de timp i ambele avnd la baz calculul unor sume ponderate.
)
N
v k
( )
N
u j
( (j,k)
N 2
1
(u,v)
1 N
0 j
1 N
0 i
cos cos f DCT

=
= (68)
iar pentru reea neuronal:
|
.
|

\
|
=

=
N
1 k
pk
(z)
kj pj
y w z f |
.
|

\
|
=

=
M
1 k
pk
y
kj pj
x w y
) (
f |
.
|

\
|
=

=
L
1 k
pk
x
kj pj
u w x
) (
f (69)
IMS A100 este un filtru transversal cu 32 de etaje, de precizie i vitez nalt. Arhitectura
sa flexibil face posibil utilizarea acestui circuit ca un element constitutiv ntr-o gam larg de
aplicaii pentru prelucrare de semnal (DSP = 'digital signal processing'). Cuvntul de date la
intrare este n lungime de 16 bii, iar mrimea coeficientului este programabil la 4, 8, 12, 16 bii.
Pentru ambii se folosete formatul n complement fa de doi. Coeficienii pot fi reactualizai
asincron fa de ceasul sistemului, permind ca circuitul s fie folosit n sisteme adaptive. IMS
A100 poate fi cascadat pentru a se construi filtre transversale de lungime mai mare, fr a folosi
circuite suplimentare. i n acest caz, se pstreaz precizia de lucru i domeniul dinamic.
Circuitul IMS A100 implementeaz o structur de filtru transversal modificat (Fig. 2).

Z
C(31) C(30) C(1) C(0)
Input(16)
Output(12+12)
Z

Fig. 2. Schema bloc a circuitului IMS A100.

Ieirea se calculeaz cu relaia:
)T) 1 x((k-N+ ) 1 N- )T)+...+C( 1 x((k- ) 1 x(kT)+C( ) 0 y(kT)=C( (70)
unde x(kT) reprezint eantionul de ordinul k, iar ) 1 ),..,C(N 0 C( sunt coeficienii pentru cele N
etaje.
IMS A100 este prevzut cu dou tipuri de interfee: una asincron ce se conecteaz la
microprocesorul "gazd", (pentru furnizarea datelor "brute" i pentru preluarea rezultatelor) i o
15. Selecia trsturilor.
230
interfa sincron (pentru cascadarea circuitelor i pentru realizarea de structuri de filtrare "on-
line", terminate cu convertoare analog/digitale i digital/analogice ). Rezultatul se calculeaz pe
36 de bii. Sub controlul programului, n funcie de aplicaie, se poate alege din acetia orice cmp
de 24 de bii. Puterea de calcul, pentru lungimea coeficientului 'Lc' i frecvena de ceas a
circuitului 'F', rezult din formula 2*F/Lc.
Deoarece scopul principal al demersului nostru este de a calcula rapid sume ponderate de
forma:

+
=
=
1 N
0 i
i i
x w Y (71)
iar coeficienii (ponderile)
i
w sunt deja cunoscute, ele pot fi ncrcate ntr-o memorie de tip
PROM/EPROM de capacitate convenabil aleas.
Astfel deoarece 32 N = pentru calculul Transformatei Cosinus Discrete (DCT), sunt
necesari 1024 de coeficieni a 16 bii fiecare pentru aplicaii de tipul celor descrise anterior (DCT
bidimensional pentru o matrice 32x32).
Proiectarea s-a axat pe o variant constructiv a crei schem bloc este prezentat n
continuare i a crei utilizare poate fi extins la o gam ntreag de aplicaii de aceeai natur.

A0-3
ADR ADR
DI/CI DI
(32K*8)
27256 27256
(32K*8)
ADR ADR
74163 74163 74163
74374 2 * 74245
74245 74245 74245
FIFO FIFO FIFO
8bit 8bit 8bit
3 * 74374
MUX
A-100 A-100
comenzi
OUT OUT
PC-BUS
SMI SMI

Fig. 3. Schema bloc a acceleratorului.

innd cont de complexitatea aplicaiilor studiate pn acum, s-a optat pentru o reea
neuronal avnd maximum 64 intrri, 64 neuroni pe primul strat, maximum 32 neuroni pe stratul
al doilea i maximum 32 neuroni pe stratul de ieire (ultimul strat). Pentru varianta maximal de
reea neuronal, numrul de ponderi ce trebuiesc stocate este:
Kword 7 Kword 1 Kword 2 Kword 4 32 * 32 32 * 64 64 * 64 = + + = + + (72)
15. Selecia trsturilor.
231
Se poate opta i pentru o variant mai complex, care necesit ns nc un circuit IMS
A100, variant care ar permite o reea neuronal avnd maximum 96 intrri, 96 neuroni pe primul
strat, maximum 64 neuroni pe stratul al doilea i maximum 32 neuroni pe stratul de ieire (ultimul
strat), capacitatea de stocare necesar fiind:
Kword 17 Kword 2 Kword 6 Kword 9 32 * 64 64 * 96 96 * 96 = + + = + + (73)
n toate cazurile capacitatea de stocare nu depete 32 Kword i de aceea se vor utiliza
pentru stocarea acestor coeficieni dou circuite EPROM 32KO. Adresele lor sunt furnizate n
parte de procesorul central (pentru selecia bancului de coeficieni/ponderi) iar restul de un
numrtor pe 12/14 bii.
Deoarece n unele cazuri este necesar calcularea sumei ponderate a 32 termeni (DCT,
stratul de ieire al reelei) iar n altele apare o sum de 64 termeni, ieirile celor dou circuite IMS
A100 sunt multiplexate (pentru selecia ieirii dorite) i apoi despachetate ntr-un buffer.
Circuitele FIFO permit stocarea temporar a rezultatelor (furnizate la rat foarte mare de
IMS A100), urmnd ca apoi, printr-un transfer DMA ele s fie mutate n memoria calculatorului
gazd.
O problem delicat este calculul funciilor sigmoidale caracteristice neuronilor. Ele ar
putea fi implementate tabelar n memorii PROM/EPROM avnd capacitatea de 128KO
(64Kword) intercalate n lanul de ieire dup multiplexor i buffere, dar s-a renunat n final la ele
pentru a nu complica excesiv schema, dar mai ales pentru c soluia software echivalent este
suficient de rapid.
Studiile i simulrile efectuate relev o remarcabil mrire a vitezei de calcul, n timp ce
precizia mai sczut a calculelor nu afecteaz semnificativ performanele globale ale sistemului,
iar preul de cost al circuitelor folosite rmne destul de modest. Gama de aplicaii a sistemului
poate fi extins i n multe alte domenii (ex. filtre digitale).
16. Algoritmi de gestiune a seturilor de forme de antrenament.
233





16. Algoritmi de gestiune a seturilor de
forme de antrenament.




16.1. Calculul scorurilor de conciden.
16.2. Strategii de adaptare a setului de forme de antrenament
16.3. Descrierea algoritmilor.
16.4. Detalii de implementare.




Structura setului de antrenare influeneaz direct performanele unui clasificator antrenat
cu respectivul set de forme.
Cu ct setul de antrenament este mai mare, cu att limitele de decizie sunt mai precis
pozitionate i eroarea de clasificare este mai mic. n schimb, timpul de antrenare este oarecum
proporional cu numrul de forme din setul de antrenament i de aceea este mai avantajos din
punctul de vedere al timpului consumat un set de antrenament de dimensiuni mici.
Exist multe aplicaii la care performanele clasificatorului se pot ameliora n timp prin
luarea n considerare a noi forme nerecunoscute sau recunoscute incorect, dar a cror apartenen
corect la clase este clar. Aceasta se ntlnete, de exemplu, n situaia cnd, dup o prim
antrenare a clasificatorului, verificarea comportrii lui pe setul de forme de test furnizeaz un
numr de simboluri nerecunoscute; la acestea se pot aduga simbolurile nerecunoscute rezultate
din exploatarea sistemului.
Practic, s-ar putea aduga aceste noi forme la setul de antrenament i apoi se reia
antrenarea clasificatorului, pentru includerea lor n clasele corespunzatoare. n schimb, n acest fel
dimensiunea setului de forme de antrenament poate crete nelimitat, depind capacitile de
stocare (memorie, disc) curent folosite.
Pentru a evita aceast situaie i a menine limitat dimensiunea setului de antrenament,
ideea studiat i apoi folosit este de a nlocui anumite forme din setul de antrenament, forme a
cror contribuie la construcia efectiv a clasificatorului este nesemnificativ sau mai puin
important cu forme noi, nerecunoscute, i a cror includere n setul de antrenare poate ameliora
performanele clasificatorului.
Problema care apare este care anume forme din setul de antrenament s se elimine n
scopul nlocuirii lor cu noile forme.

16.1. Calculul scorurilor de conciden.
Prima operaie care se impune este construirea matricii scorurilor de coincidena
(similitudine). Pot exista mai multe soluii, funcie de modul de extragere i selecie a trsturilor.
Deoarece n aplicaiile descrise n urmtoarele trei capitole se folosete o metod specific de
16. Algoritmi de gestiune a seturilor de forme de antrenament.
234
extragere a trsturilor, ea va fi descris sumar n continuare, urmnd ca pe baza lor s se discute
modalitile de construcie a matricii scorurilor de coinciden.
Pentru cazul recunoaterii unor simboluri tiprite (caractere, simboluri muzicale), faza de
extragere a trsturilor presupune parcurgerea urmtorilor pai:
a) Scalarea simbolurilor:

scalare

Se obine o matrice binar de dimensiune constant (32x32), coninnd imaginea scalat.
b) Transformata Cosinus Discret bidimensional:

DCT-2D

Aceast transformare se folosete pentru decorelarea informaiei existente n matricea
scalat, dup transformarea DCT bidimensional rezultnd o matrice de aceeai dimensiune, cu
valori reale, slab corelate. Valorile semnificative ale acestei matrici sunt plasate n colul din
stnga sus.
c) Ordonarea Zig - Zag.
Este o procedur de vectorizare a matricii DCT, dup regula din figura de mai jos:
0 1
2
3
4
5 6
7
8
9
10
11
12
13
14 15
16
17
18
19
20
21
22
23
24
25
63 62
26
27 28
29
30
31
32
33
34
35 36
37
38
39
40
41
42
43
61
60
59
58 57
56
55
54
53
52
51
50
49 48
47
46
45
44

Matrice 8x8 ===> Vector[64]; Matrice 32x32 ===> Vector[1024];
Deoarece DCT bidimensional concentreaz informaia din imaginea iniial n colul din
stnga sus al matricii rezultate, dup ordonarea Zig - Zag aceeai informaie va fi regsit n
primele elemente ale vectorului obinut.
d) Selecia trsturilor.
Se rein primele valori din vectorul obinut dup pasul precedent, aproximativ cele
marcate cu negru n figura de mai sus. Conform afirmaiilor anterioare, aceste elemente
concentreaz cea mai mare parte din informaia din imaginea iniial i ele vor fi folosite n faza
de recunoatere.
Dac N este mrimea setului de antrenament, scorurile de coinciden
KL
S reprezint o
matrice NxN simetric i cu elementele de pe diagonal nule, deci calculul ei nseamn calculul a
) 1 2 / N ( N valori semnificative. Pentru 120 N = rezult 7080 valori. Ele se calculeaz practic
o singur dat i doar se actualizeaz pe parcursul rulrii algoritmului (n pasul 5).
Pentru estimarea scorurilor de coinciden au fost testate mai multe msuri:
16. Algoritmi de gestiune a seturilor de forme de antrenament.
235
[I,J] [I,J]
(L)
32
1 I
32
1 J
(K)
KL
) 1 (
MS MS S =

= =
(1)
care reprezint distana Hamming ntre obiectele "K" i "L" (imagini binare scalate -
32x32). Este foarte uor de calculat, dar prezint un dezavantaj care rezult din urmtoarea figur:

Dei obiectele sunt foarte asemntoare, un mic zgomot poate afecta mult ncadrarea n
fereastr, deci i valoarea calculat pentru scorul de coinciden. O expresie mai corect este:
) N]) M,J [I [I,J] ( (
32
1 I
32
1 J
2 L K
N M
2

= =
+ + =
) ( ) (
,
) (
ME MS min S (2)
care calculeaz cel mai bun scor de coinciden ntre simbolul (K) i simbolul (L) translat
pe orizontal i vertical. Deoarece prelucrrile ulterioare asupra imaginii (DCT) nu sunt
invariante la translaii, (2) ar putea fi folosit n cazul utilizrii unui neocognitron n faza de
recunoatere.

2 (L)
32
1 I
32
1 J
(K)
KL
) 3 (
[I,J]) [I,J] ( DCT DCT S =

= =
(3)
reprezint distana euclidian ntre obiectele "K" i "L" descrise n spaiul transformatei
DCT. Este mai greu de calculat, deoarece setul de antrenament este memorat pe calculator sub
forma imaginilor binare scalate.

2 (L))
66
1 I
(K)
KL
) 4 (
[I]) [I] ( Z Z S =

=
(4)
reprezint distana euclidian ntre vectorii "K" i "L" rezultai n urma ordonrii Zig-Zag.
Implic de asemenea un volum mare de calcule, dar se refer exact la valorile care se aplic
intrrii n clasificator. Pe de alt parte pare mai corect o ponderare a valorilor [I]
[K]
Z , funcie de
contribuia lor la "forma" simbolului, dar nu se pot face dect presupuneri privind valorile acestor
ponderi.

16.2. Strategii de adaptare a setului de forme de antrenament
Pentru eliminarea din setul de antrenament a unor forme mai puin semnificative n scopul
nlocuirii lor, pot fi adoptate diferite strategii:
(1). Pentru fiecare clas
i
se caut perechea de forme ) , (
(i)
L
(i)
K
X X pentru care scorul de
coinciden
) (
S
i
KL
este minim. Regula de eliminare a simbolurilor este:
L, THEN K, M M , IF
(i)
LM
(i)
KM
< S S
elimin forma
(i)
K
X (5)
ELSE
elimin forma
(i)
L
X
n acest caz rezult o distribuie cvasiuniform a formelor din fiecare clas. Sunt eliminate
succesiv formele mai apropiate intre ele.
(2). Pentru fiecare clas
i
se caut perechea de forme ) , (
(i)
L
(i)
K
X X pentru care scorul de
coinciden
) (
S
i
KL
este minim. Se calculeaz apoi distana i j ), , (
(j)
M
(i)
K
X X d de la fiecare din
formele
) (
X
i
K
i
) (
X
i
L
la fiecare din formele aparinnd celorlalte clase. Regula de eliminare a
simbolurilor este:
), THEN , ( ) , ( IF
M
(i)
L
X
M
(i)
K
X
i M i M
X X d min X X d min

<
16. Algoritmi de gestiune a seturilor de forme de antrenament.
236
elimin forma
(i)
K
X (6)
ELSE
elimin forma
(i)
L
X
adic se pstreaz acele forme aflate mai aproape de vecinii din alte clase.
Formele din setul de antrenament, fr a fi eliminate din zona central a clasei curente,
capt o densitate local mai mare n apropierea limitelor de decizie.
(3). Pentru fiecare clas
i
i fiecare form
) (
X
i
K
se calculeaz distana pn la vecinul cel
mai apropiat aparinnd altei clase, adic cel pentru care avem:
) , (
M
(i)
K
X
i M
X X d min

(7)
Dintre toate formele clasei
i
se elimin acea form pentru care aceast distan este
maxim:
) , (
M
(i)
K
X K
i M
X X d min max

(8)
adic se elimin forma cea mai deprtat de vecinii cei mai apropiai din alte clase.
Ca urmare dispar din setul de antrenament acele forme dispuse ctre zona central a clasei
curente, rmnnd n setul de antrenament doar acele forme apropiate de limita de decizie ntre
clase.

16.3. Descrierea algoritmilor.
Algoritmul de actualizare a setului de antrenament utilizat ncepe dup o prim antrenare a
clasificatorului i include urmtorii pai:

Algoritmul de optimizare a setului de antrenament
1) Marcarea celor "n" simboluri nerecunoscute din setul de test;
2) Calculul scorurilor de coinciden
KL
S pentru perechile (KL) de simboluri din setul de
antrenament (metoda 1) sau a distanelor ) , (
M
(i)
K
X X d menionate mai sus (metodele
2,3).
3) Elimin din setul de antrenare "m" simboluri, maximum cte un simbol din fiecare
clas, cele corespunztoare regulilor de eliminare aferente strategiei alese;
4) nlocuiete simbolurile eliminate cu "m" din simbolurile nerecunoscute; setul de
antrenament include acum o parte din simbolurile nerecunoscute detectate;
5) Actualizeaz scorurile de coinciden
KL
S corespunztoare celor "n" simboluri nou
introduse n setul de antrenament.
6) Antreneaz clasificatorul (ex. reea neural), plecnd eventual de la ponderile deja
calculate.
7) Testare clasificator: dac numrul "n" de erori detectate devine acceptabil de mic,
algoritmul se termin; n caz contrar salt la pasul 3).

Dac, folosind o reea neural, dup un numr predeterminat de pai numrul de erori de
recunoatere detectate nu devine suficient de mic, rezult c reeaua neural folosit nu poate
"nva" un numr att de mare de simboluri, deci ar trebui adugai neuroni pe primele straturi
ale reelei.

16.4. Detalii de implementare.
Algoritmii descrii au fost testai pentru cazul existenei a trei clase plus o clas de
rejecie, folosindu-se pentru aceasta o reea neural (perceptron cu trei straturi) avnd doar 18
neuroni (10+5+3). Formele de intrare, cte 10 pentru fiecare clas i 30 pentru clasa de rejecie
16. Algoritmi de gestiune a seturilor de forme de antrenament.
237
au fost amplasate aleator n interiorul a trei cercuri tangente, cu raze egale, marcate n figurile
urmtoare. Forme de intrare generate la fel i nerecunoscute iniial au fost incluse n setul de
antrenare, dup eliminarea unor forme deja existente n set. Formele sunt generate cu distribuie
normal i dispersie 0.4 la o raz a claselor de 0.5.
Se remarc n figura urmtoare faptul c dup prima antrenare a reelei, limitele de decizie
obinute sunt total nesatisfctoare, datorit numrului mic de forme din setul de antrenament.
Dup ase i respectiv apte iteraii, structura obinut a claselor s-a ameliorat mult i se
mbuntete continuu.



16. Algoritmi de gestiune a seturilor de forme de antrenament.
238



17. Recunoaterea obiectelor imagistice cu invariane
specificate.
239





17. Recunoaterea obiectelor imagistice cu
invariane specificate.




17.1. Segmentarea.
17.2. Localizarea obiectelor n imagine.
17.3. Invariana la condiiile de iluminare.
17.4. Transformarea din coordonate carteziene n coordonate polare.
17.5. Transformarea invers: coordonate polare-coordonate carteziene.
17.6. Scalarea i invariana la rotaii.
17.7. Extragerea trsturilor din imagine.
17.8. Momentele Zernike.
17.9. Rezultate obinute, detalii de implementare.




Studiul de fa are drept scop final realizarea unor studii comparative privind unele
metode de recunoatere a obiectelor imagistice. O problem care apare destul de des este
recunoaterea obiectelor dintr-o imagine indiferent de mrimea (distana fa de observator) i
orientarea lor.
Imaginile luate cu o camer de luat vederi sunt prelucrate de un sistem software construit
n acest scop, urmrindu-se ntr-o prim faz extragerea unor trsturi invariante la translaie,
rotaie i scalare pentru fiecare obiect care a fost depistat n imagine. Se propun dou metode, una
bazat pe transformarea imaginii n coordonate polare, cealalt pe calculul momentelor Zernike.
Sunt luate n considerare i unele metode de realizare a invarianei la condiiile de
iluminare, utilizndu-se o transformare care furnizeaz o imagine cu luminozitate i contrast
aproximativ constante.
Pentru faza de recunoatere este utilizat un clasificator neural implementat cu un
perceptron multistrat. Construirea acestui clasificator se face prin program, definindu-se n
prealabil o baz de date de trsturi extrase din obiecte avnd diferite orientri, drept set de
antrenament. Pentru testarea clasificatorului se folosete un alt set de obiecte din care s-au extras
trsturile cu exact aceeai metod.
Metodele folosite pot fi folosite ntr-o gam larg de aplicaii i de aceea se are n vedere
continuarea studiilor pentru:
-perfecionarea algoritmilor de segmentare folosii;
-implementarea unor metode mai eficiente de localizare a obiectelor de form cunoscut
dintr-o imagine, folosind transformata Hough;
-optimizri de vitez;
-studiul numrului necesar de trsturi de extras raportat la complexitatea problemei.
17. Recunoaterea obiectelor imagistice cu invariane specificate.
240
] Sunt prezentate n acest studiu etapele parcurse pentru construcia unui sistem-test de
recunoatere a obiectelor imagistice n condiii de invarian la translaie, scalare i rotaie. Paii
de parcurs sunt explicai n detaliu, iar n finalul raportului este dat o prezentare a programului
de test care implementeaz algoritmii descrii.
Exemplele prezentate sunt extrase dintr-o aplicaie de recunoatere a numrului de serie
nscris pe anumite ceasuri de mn. Exemple de imagini analizate de aceast aplicaie sunt
prezentate n continuare:




Fig. 1. Imagini ale numrului serial al ceasurilor.

17.1. Segmentarea
Segmentarea este un proces de partiionare a imaginii digitizate n submulimi, prin
atribuirea pixelilor individuali la aceste submulimi (denumite i clase), rezultnd obiectele
distincte din scen.
Algoritmii de segmentare se bazeaz, n general, pe dou principii de baz:
- discontinuitate, avnd ca principal metod detecia conturului;
- similitudine, cu metoda pragului i metoda regiunilor, cele mai utilizate.
1) Detecia conturului.
Un operator de contur este un operator matematic, cu o extindere spaial mic, pentru a
putea determina existena unui contur local n funcia imagine. Exist diferite tipuri de operatori
de contur, n funcie de aplicaie, dar proprietatea care-i unete este faptul c determin direcia
schimbrii intensitii maxime a nivelului de gri i modulul, care d severitatea acestei schimbri.
Utilizarea mtilor de convoluie spaial care baleiaz ntreaga imagine pixel cu pixel,
calculnd o mrime proporional cu discontinuitatea existent n poriunea de imagine aflat sub
masc constituie cei mai simpli i rapizi asemenea operatori de detecie a contururilor.
2) Metoda pragului.
Pentru cele mai multe imagini sunt puine locuri unde modulul gradientului este zero,
datorit prezenei zgomotului n imagine. Din acest motiv se utilizeaz o metod mai expeditiv,
cea a pragului, care considera un element de contur n punctul de coordonate (i,j) dac funcia
f(i,j) este mai mare dect un prag. Obinerea unor bune rezultate cu aceast metod depinde de
alegerea pragului.
3) Metoda regiunilor.
Segmentarea iterativ sau segmentarea prin tehnici de relaxare este o metod care
folosete procedee probabilistice de clasificare n fiecare punct, n paralel la fiecare iteraie.
Procesul de relaxare este conceput pentru a aduce nivelele de gri spre capetele opuse ale scrii de
gri astfel nct pragul T s devin o problem banal. Acest tip de procesare este fundamental n
aria analizei automate de scene sau a recunoaterii de modele, unde una dintre dorine este de a
folosi maina pentru a extrage date detaliate despre coninutul imaginii la nivel de obiect.
Obiectivul tehnicii de segmentare este de a partiiona o imagine dat n regiuni sau componente.
17. Recunoaterea obiectelor imagistice cu invariane
specificate.
241
De exemplu, pentru o imagine derivat dintr-o scena tridimensional, obiectivul segmentrii poate
fi identificarea regiunilor corespunztoare obiectelor din scen.
Putem considera segmentarea ca o problem punctual sau regional, ambele legate de
procesul n cauz. n prima categorie intr metodele care se bazeaza pe examinarea imaginii pixel
cu pixel. n a doua categorie, aa cum implic i denumirea, intr metodele care se bazeaz pe
utilizarea informaiilor din imagine n prescrierea vecintilor. n ambele cazuri putem vedea
problema ca o luare de decizie n procesul de recunoatere a modelelor, ale crui obiective sunt
stabilite n limitele unor regiuni.
Segmentarea scenelor difer de celelalte probleme de recunoatere prin cteva proprieti.
Una din cele mai importante diferene este c dup ce am obinut soluia, regiunile dintr-o
imagine pot fi vizualizate, iar apoi verificate la un mare nivel de acuratee. n mod uzual este
oricnd posibil s suprapunem rezultatele segmentrii cu originalul pentru a putea determina
eficacitatea metodei. Prima operaie este de a localiza graniele sau marginile regiunilor. A doua
operaie este de a grupa punctele n regiuni similare, cu alte cuvinte chiar determinarea hotarelor.
Cele dou metode sunt similare i le-am putea defini ca exprimate n puncte sau ca intersectie a
dou suprafee.
n situaiile n care este cerut setarea automat a pragului, aceast problem revine la a
caracteriza o histogram dat ntr-un mod invariant.
Presupunem c este tiut aprioric c imaginea conine doua regiuni principale. Dac forma
densitilor de probabilitate este cunoscut atunci este posibil s determinm un prag optim (n
direcia unei erori minime) pentru segmentarea imaginii n dou regiuni diferite de strlucire.
Presupunem c imaginea conine dou valori combinate cu un zgomot aditiv Gaussian.
Funcia de densitate probabil a mixturii este dat de:
(x) P (x) P (x)
2 2 1 1
p p p + = (1)
i pentru cazul Gaussian :

2
2
2
2
2
2
2
1
2
1
1
1
2
) (x
2
P
2
) (x
2
P
(x)

+

= exp exp p (2)


unde:
1
i
2
sunt valorile medii ale celor dou nivele de strlucire,

1
i
2
sunt deviaiile standard de la medie,

1
P i
2
P sunt probabilitile nivelelor.
Avnd n vedere faptul c relaia urmtoare este satisfcut automat:
1 P P
2 1
= + (3)
n formul avem cinci parametri necunoscui. Deci dac toi parametrii ar fi cunoscui atunci
pragul optim ar fi uor de determinat.
Presupunem c regiunea ntunecat corespunde fondului iar regiunea mai stralucitoare
corespunde obiectelor. n acest caz
2 1
< i vom defini pragul T astfel nct s considerm c
toti pixelii cu nivelul de gri aflat sub pragul T fac parte din punctele fondului, iar toi pixelii care
au nivelul de gri peste pragul T fac parte din obiecte.
Probabilitatea clasificrii eronate a punctelor din cadrul unui obiect ca fiind puncte din
fond este:


=
T
2 1
(x)dx (T) p E (4)
Similar, probabilitatea clasificrii unui punct de fond ca fiind punct-obiect este:

=
T
1 2
(x)dx (T) p E (5)
De aici eroarea total probabil este:
(T) P (T) P (T)
2 1 1 2
E E E + = (6)
17. Recunoaterea obiectelor imagistice cu invariane specificate.
242
Pentru a gsi acea valoare a pragului pentru care aceast eroare este minim, va trebui s
difereniem (T) E relativ la T (folosind regula lui Leibnitz) i s egalm rezultatul cu zero:
(T) P (T) P
2 2 1 1
p p = (7)
Deoarece zgomotul afecteaz n mod egal att fondul ct i obiectele, avem

2 1
2 2 2
= = i atunci:

2
1
2 2
2 1
P
P
2
T
2
ln

+
+
= (8)
Dac probabilitile sunt egale
2 1
P P = , atunci pragul optim este chiar media. n capitolul
6 este prezentat o metod grafic de determinare a parametrilor formulei anterioare i depistare
automat a pragului optim.
n capitolul 18 este prezentat o implementare foarte robust, bazat pe prelucrarea
vectorului histogram folosind filtre nerecursive. Filtrul este aplicat succesiv de mai multe ori,
pn cnd histograma devine clar bimodal, dup care pragul se obine imediat folosind o formul
deviat din cea precedent.
n practic, dac aplicaia studiat permite obinerea unor informaii suplimentare, se pot
utiliza metode mai puin sofisticate. Astfel, dac se cunoate sau poate fi estimat raportul R ntre
aria obiectelor din imagine i aria fondului, atunci pragul de segmentare dorit este dat de primul
nivel de gri (ordine cresctoare) de la 0[negru] la N-1[alb, de obicei 256] pentru care este
ndeplinit urmtoarea inegalitate:
R H[j] H[j]
N
T j
1 T
1 j
>

=

=
(9)
O asemenea metod, foarte rapid, a fost folosit n implementarea aplicaiei de
recunoatere a numrului de serie a ceasurilor de mn.

17.2. Localizarea obiectelor ntr-o imagine.
Scopul acestei operaii este de a localiza obiectele dintr-o scen pentru a putea fi apoi
supuse ori altor prelucrri ori unor transformri de imagine (de exemplu scalri, invariane la
rotaii, translaii, etc.).
n principiu aceast metod se bazeaz pe gsirea zonelor de contact ntre fondul imaginii
i obiectul-imagine. n studiu s-a folosit aceast tehnic dup realizarea segmentrii, obinnd o
separare precis a fondului de obiecte.
Presupunem c asociem fondului codul 1, iar obiectului- imagine codul 0. Problema ar
reveni la a determina perechile de pixeli (1,0) i a marca pixelii de grani ai obiectului.
Algoritmul ce se poate folosi este urmtorul:

Algoritm de localizare obiecte.
(1). Se baleiaz imaginea linie cu linie pn se gsete perechea de pixeli ) 0 , 1 ( , n
care pixelul obiect este denumit pixel de start: (xs,ys) ;
(2). Se baleiaz pixelii vecini pn cnd se determin un alt pixel obiect, folosind
pentru aceasta urmtoarea matrice de cutare :
0 1
2
3 4 5
6
7
C

unde: C = este pixelul de cutare vechi;
1, ... , 7 = direciile corespunztoare dup care fac cutarea.
17. Recunoaterea obiectelor imagistice cu invariane
specificate.
243
Acestor direcii li se asociaz doi vectori de direcie care reprezint incremenii
pentru abscisa i ordonata pixelului curent.
Vectorul incremenilor coordonatei x pentru pixelul de cutare este:
] 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 [
X
= V
Vectorul incrementilor coordonatei y pentru pixelul de cutare este:
] 1 , 0 , 1 , 1 , 1 , 0 , 1 , 1 [
Y
= V
Noul pixel gsit devine pixel actual i este marcat. n acelai timp se rein valorile
actualizate pentru minimele i respectiv maximele lui y x, .
(3). Stop cnd pixelul curent coincide cu pixelul de start, adic:
ys yc , xs xc = =
n cazul existenei mai multor obiecte n scena respectiv, se caut un alt obiect,
aceasta revenind la gsirea unei alte perechi de pixeli de tipul ) 0 , 1 ( .

n program s-a folosit i testul de pixel izolat, care se bazeaz tot pe cutarea dup
matricea de direcii. n plus, tehnica standard de conturare este de a determina toate zonele de
grani (1,0), apoi se elimin acele zone din interiorul obiectelor mari. n studiu s-a folosit o
variant a acestei metode fr a mai cuta conturul interior al obiectelor deja localizate.
n multe cazuri, n lista obiectelor localizate apar i obiecte a cror analiz nu se dorete.
De aceea trebuie proiectat, cel mei adesea pe baze euristice, un selector de obiecte utile numit
adesea i filtru logic sau filtru euristic. Folosind cel mai adesea criterii dimensionale (lungime,
lime, arie, perimetru, raport de sveltee, etc.) se selecteaz din mulimea obiectelor localizate pe
acelea care vor face obiectul operaiei propriu-zise de recunoatere.
Un asemenea filtru logic va fi descris n capitolul 18, criterii asemntoare de selecie
fiind aplicate i n cazul aplicaiei de recunoatere a numrului serial marcat pe ceasuri de mn.

17.3. Invariana la condiiile de iluminare.
Urmnd modelul reglajului automat al amplificrii existent n orice camera TV (i nu
numai), se poate construi o transformare punctual care, aplicat tuturor pixelilor din zona de
interes (de obicei numai pixelilor obiectului de recunoscut, determinarea crora s-a fcut prin
segmentare i apoi parcurgerea contururilor lor) astfel nct s se asigure o luminozitate global
constant.
Problema se poate traduce matematic prin setarea mediei i dispersiei variabilei aleatoare
ataate nivelului de gri al pixelilor obiectului la valori prestabilite. Media i respectiv dispersia
sunt date de:

=
(x,y)

(x,y)
M
1
m f (10)

=
(x,y)
2

] m (x,y) [
M
1
f (11)
unde: - este mulimea pixelilor obiectului a crui invarian la iluminare se urmrete;
-

M este numrul pixelilor corespunztori acestui obiect .


Atunci variabila aleatoare:
= , (x,y) m (x,y) (x,y)

f f (12)
are media nul i dispersia neschimbat,

= , (x,y)

m (x,y)
(x,y)
2

f
f
~
(13)
este o variabil aleatoare cu media nul i dispersia unitar, iar:
17. Recunoaterea obiectelor imagistice cu invariane specificate.
244
+

= q, (x,y)

m (x,y)
(x,y)
2

f
f
~
(14)
reprezint o variabil aleatoare cu media "q" i dispersie unitar. Constanta "q" se alege de
obicei la mijlocul gamei dinamice a nivelelor de gri cu care se lucreaz (ex. q=128).


Fig. 2. Invariana la condiiile de iluminare.

O alt modalitate de asigurare a invarianei la condiiile de iluminare este egalizarea
histogramei nivelelor de gri corespunztoare pixelilor obiectului. Fiind mai complex dect
precedenta soluie, se folosete destul de rar.

17.4. Transformarea din coordonate carteziene n coordonate polare.
Dup ce s-a realizat localizarea ntr-un dreptunghi de arie minim a obiectelor din imagine
folosind imaginea binar, se localizeaz centrul de greutate al acestor obiecte i se determin raza
minim a cercului de ncadrare (circumscris), avnd centrul n centrul de greutate al obiectelor.
Coordonatele centrului de greutate sunt date de urmtoarele formule:



= =
= =

=
max
min
max
min
max
min
max
min
f
f
x
x i
y
y j
j i
x
x i
y
y j
j i i
G
) ,y (x
) ,y (x x
X ,


= =
= =

=
max
min
max
min
max
min
max
min
f
f
x
x i
y
y j
j i
x
x i
y
y j
j i i
G
) ,y (x
) ,y (x y
Y (15)
Raza de ncadrare se obine parcurgnd iari conturul i determinnd distana maxim
fa de centrul de greutate.
Realizarea adiional a acestei operaii asigur invariana la translaie, prin raportarea
ulterioar a tuturor coordonatelor la centrul de greutate al fiecrui obiect din imagine.
Aproape orice transformare geometric a unei imagini se realizeaz aplicnd n final o
interpolare liniar n dou dimensiuni. Prin aceasta dorim s gsim o estimare a lui
) , ... , x , x (x
n 2 1
G , pentru fiecare din varibilele independente
n 2 1
, ... , x , x x .
Pentru cazul particular al trecerii n coordonate polare avem:

=
+ =
(y/x)
y x r
2 2
arctg

=
=

sin
cos
r y
r x
(16)
Avnd o matrice (j,k) f , unde n 1 k m 1 j ... ; ... = = i funciile r i s, relaia dintre aceste
valori de intrare i funcia (r,s) f este:
(k)] (j), [ (j,k) s r f G = (17)
Scopul este s estimm prin interpolare valoarea funciei n cteva puncte (r,s) . Grila
ptratic de reprezentare a imaginii n coordonate carteziene face ca punctul (r,s) din matricea
polar s aib corespondent un punct localizat prin indeci nentregi, deci n afara grilei
carteziene. Totui, el este nconjurat de patru puncte ale acestei grile cunoscute. Deci mai precis,
dac:
) 1 (j (j) + r r r i ) 1 (k (k) + s s s (18)
i avnd k j , :
17. Recunoaterea obiectelor imagistice cu invariane
specificate.
245
(j,k) g
1
G ; ,k) 1 (j g
2
+ G ; (19)
) 1 (j,k g
3
+ G ; ) 1 ,k 1 (j g
4
+ + G ;
Interpolarea liniar se obine cu:
(j)] ) 1 (j (j)]/[ [ t r r r r + (20)
(k)] ) 1 (k (k)]/[ [ u s s s s +
cu t u, ntre 0 i 1:

4 3 2 1 2 1
tug t)ug 1 ( u)g 1 t( u)g 1 t)( 1 ( ) ,x (x + + + = G (21)
n prelucrarea de imagini aceasta are ca efect regsirea fiecrui sector din cercul de
ncadrare al imaginii-obiect n linia corespunztoare matricii transformatei polare.

17.5.Transformarea invers: coordonate polare-coordonate carteziene
Se procedeaz astfel: se pleac de la punctele din imaginea original i n funcie de
poziionarea acestora fa de centrul de greutate al obiectului-imagine, se gsete poziia valorii
corespondente n matricea transformrii polare. Ca i n cazul precedent, se poate aplica o
interpolare, de obicei liniar.

17.6. Scalarea i invariana la rotaii.
Scalarea este realizat dac n transformarea din coordonate carteziene n coordonate
polare este respectat condiia ca raza maxim (devenit ordonat maxim) a matricii
transformrii n coordonate polare s fie constant pentru toate obiectele. n programul realizat se
consider raza polar ca fiind egal cu 32, regsit n numrul de linii ale matricii polare.
Aceast matrice reprezint spaiul coordonatelor polare n care originea este n ) 0 , 0 ( , axa
unghiurilor este abscisa, iar axa razelor este ordonata. Avnd n vedere c raza este tot timpul 32
avem de-a face ntr-adevr cu o scalare.
Se folosesc valorile estimate pentru valorile discrete:

N
n
f
n
,
2
N
2
N
n , ... , = (22)
Urmtorul pas este de a calcula transformata Fourier discret a liniilor matricii
transformrii polare:

1 N
0 k
2
k n
e h H
n/N k j
(23)
Ultima sumare este transformata Fourier discret a N puncte
k
h .Transformata Fourier
opereaz asupra a N numere complexe (
k
h -urile) i furnizeaz N numere complexe (
n
H -urile).
Pentru a putea face transformata pentru un set de numere reale se mprte setul de date n
dou subseturi lund numerele cu index par
j
f pentru un set, iar numerele cu index impar f
j

pentru cellalt set. Puterea acestui artificiu consta n faptul c putem vedea vectorul real de
intrare ca o arie de numere complexe cu dimensiunea la jumtate. Cu alte cuvinte putem
considera:
i f f h
1 j+ 2 j 2 j
+ = , pentru j = 0, ... , N/2-1 (24)
Vom aplica asupra acestora algoritmul FFT, care returneaz un vector complex:
,
0
n
e
n n
jF F H + = n = 0, ... , N/2-1 (25)
cu:

=
=
1 2 N/
0 k
) 2 / j k n/(N 2
k 2
e
n
e f F i

=
+
=
1 2 N/
0 k
) 2 / j k n/(N 2
1 k 2
0
n
e f F (26)
17. Recunoaterea obiectelor imagistice cu invariane specificate.
246
Pentru a obine invariana la rotaie calculm modulul transformatei Fourier deoarece o
rotaie n spaiul cartezian (x,y) f se regsete n spaiul ) (r,f
i
, al transformrii polare ca o
translaie i atunci transformata Fourier a acestei micri este:

0
jx
0
e (x)} { )} x (x {

= f F
~
f F
~
(27)
Avnd n vedere c 1 e
0
jx
=

| | i aplicnd modulul obinem egalitate ntre modulul


translaiei n ) (r,f
i
i funcia netranslat.

17.7. Extragerea trsturilor din imagine.
n urma scalrii i a prelucrrilor pentru a realiza invariana la rotaie se obine o matrice
de dimensiune constant ) 32 32 ( , coninnd informaiile procesate din imaginea primar.
Paii ce urmeaz a fi fcui sunt urmtorii:
a) Transformata Cosinus Discret.
Deoarece implementarea transformrii optimale Karhunen-Loeve (KL) este dificil,
modelnd intrarea } {X cu un proces Markov de ordinul unu, cea mai bun aproximare a
transformrii KL discret este DCT (Transformata Cosinus Discret). Aceast modelare nu este
foarte restrictiv i se poate folosi cu succes n multe aplicaii.
Pentru calculul DCT exist nu numai algoritmi rapizi de calcul, ci i circuite specializate
de mare vitez. Pentru cazul bidimensional se folosete:
)
N
v k
( )
N
u j
( (j,k)
N 2
1
(u,v)
1 N
0 j
1 N
0 i
cos cos f F

=
= (28)
rezultnd o matrice de aceeai dimensiune, cu valori reale slab corelate. Valorile semnificative ale
acestei matrici sunt plasate n colul din stnga sus.

b) Ordonarea Zig - Zag modificat.
Este o procedur de vectorizare a matricii DCT dup regula de mai jos:
0 2
1
4
3
11 12
10
9
5
6
8
14
13
27 28
26
25
15
16
7
17
17
23
24
30
63 62
29
43 44
42
41
31
32
22
21
19 20
34
33
39
40
46
45
56
61
59
60
52 51
53
54
58
57
55
49
50
36 35
37
37
48
47

Mat [8][8] ===> Z[64] Mat [D][D] ===>Z[D*D]

Deoarece DCT bidimensional concentreaz informaia din imaginea iniial n colul din
stnga sus al matricii rezultate, dup ordonarea n Zig-Zag aceeai informaie va fi regasit n
primele elemente ale vectorului obinut. Forma specific a "colului" n care se concentreaz
informaiile semnificative se datoreaz transformrii Fourier (FFT) efectuate anterior asupra
liniilor matricii, transformare care prezint i ea proprieti de decorelare, ns mai slabe dect
DCT.
17. Recunoaterea obiectelor imagistice cu invariane
specificate.
247
c)Se rein primele F valori din vectorul [D*D] Z , adic doar o fraciune din valori, cele
marcate cu negru n figura de mai sus. Conform afirmaiilor anterioare, aceste elemente
concentreaz cea mai mare parte din informaia din imaginea iniial i ele vor fi folosite n faza
de recunoatere.
Acest bloc funcional elimin trsturile care sunt neimportante n faza de recunoatere.
Ieirile lui sunt aplicate la intrarea clasificatorului neural, descris mai amnunit n capitolul
precedent.
Obiectivul antrenrii reelei neurale este de a ajusta ponderile astfel nct aplicarea unui
set de intrri s produc ieirea dorit. Vom denumi seturile de intrri-ieiri vectori. Antrenarea
atribuie fiecrui vector de intrare un vector pereche denumit vector int i care reprezint ieirea
dorit. Acestea amndou sunt denumite "perechea de antrenare".
Uzual o reea este antrenat dup un anumit numr de perechi de antrenare, iar grupul
perechilor de antrenare este denumit "set de antrenare". nainte de a ncepe procesul de antrenare,
toate ponderile trebuie s fie iniializate la valori aleatoare mici. Aceasta ne asigur c reeaua nu
este saturat prin valori mari ale ponderilor, i ne asigur c nu mai apar i alte defecte de
antrenare (de exemplu dac toate ponderile de start au valori egale iar performanele dorite cer
valori neegale, atunci reeaua nu va nvaa).

17.8. Momentele Zernike.
Drept variant alternativ a algoritmului descris anterior se prezint n continuare un tip
special de momente ce prezinta proprietatea de invarian la rotaie. Momentele au fost utilizate
nca de la inceput drept trsturi ntr-un mare numr de aplicaii. Momentele regulate au fost cele
mai populare, ele fiind definite prin:


+

+

= y (x,y) dx d y x m
q p
pq
f (29)
unde "p" i "q" indic ordinul momentului respectiv. Pentru imagini digitale, momentul se
calculeaz prin:

=
x y
q p
pq
(x,y) y x m f (30)
Momentele Zernike se definesc pe un domeniu egal cu interiorul cercului unitate:
1 y x
2 2
= + (31)
Pentru construcia lor se definete mai nti un set de polinoame ortogonale, notate:
n |m| n-|m| (x,y),
nm
< i par cu V , (32)
Expresia de definiie a lor este:
) (jm ) ( ) , ( (x,y)
nm nm nm
exp R V V = = (33)
unde:

[ ] [ ]

=
2 |m|)/ (n
0 s
s 2 n s
nm

! s 2 |m|)/ (n ! s 2 |m|)/ (n s!
s)! (n
) 1 ( ) ( R (34)
Se poate remarca faptul c:
) ( ) (
nm m n,
R R =

(35)
Aceste polinoame (x,y)} {
nm
V fiind ortogonale, satisfac condiiile de ortogonalitate:
[ ]
mq np
1 y x
pq nm

1 n

y (x,y) dx d (x,y)
2 2
+
=

V V (36)
unde:
17. Recunoaterea obiectelor imagistice cu invariane specificate.
248

=
=
b a 0
b a 1
ab
pentru
pentru
,
,
(37)
Momentele Zernike sunt proiecii ale funciei imagine pe aceast baz ortogonal.
Presupunnd c 0 (x,y) = f n afara cercului unitate, avem momentul Zernike de ordinul m n + :

+
=
1 y x
nm nm
2 2
) dx dy , ( (x,y)

1 n
V f A (38)
Pentru cazul discret, momentul Zernike de acelai ordin se scrie:
1 y , cu x ) , ( (x,y)

1 n
2 2
x y
nm nm
+
+
=


V f A (39)
Cunoscnd momentele Zernike, se poate efectua transformarea invers, care permite
reconstrucia imaginii iniiale cu precizie din ce n ce mai mare pe masur ce "n" crete:

=
=
max
V A f
~
n
0 n m
nm nm
) , ( (x,y) (40)
Descompunnd aceast expresie n:


= = <
+ =
max max
V A V A f
~
n
0 n 0 m
nm nm
n
0 n 0 m
nm nm
) , ( ) , ( (x,y) (41)
i folosind o proprietate enunat anterior, putem scrie:


= = >

+ =
max max
V A V A f
~
n
0 n 0 m
nm nm
n
0 n 0 m
m n, m n,
) , ( ) , ( (x,y) (42)
adic:


= = >

+ =
max max
V A V A f
~
n
0 n 0 m
nm nm
n
0 n 0 m
nm nm
) , ( ) , ( (x,y) (43)
Cele dou sume pot fi acum unificate scriind:
[ ]

= >

+ + =
max
V A V A V A f
~
n
0 n 0 m
nm nm nm nm 0 n 0 n
) , ( ) , ( ) , ( (x,y) (44)
Deoarece este mai uor de operat cu numere reale vom descompune numerele complexe
din formula anterioar:
[ ] + = ) , ( ) ( j ) ( (x,y)
0 n 0 n 0 n
V A Im A Re f
~

[ ] [

= >
+ +
max
sin cos R A Im A Re
n
0 n 0 m
nm nm nm
) m j m )( ( ) ( j ) (
[ ] ] ) m j m )( ( ) ( j ) (
nm nm nm
sin cos R A Im A Re + + + (45)
Efectund calculele rezult expresia:
[ ]

=
+ + =
max
R sin cos C R C f
~
n
0 n m
nm nm nm 0 n 0 n
(x,y) m S m (x,y)
2
1
(x,y) (46)
n care
) ( 2
nm nm
A Re C = <==>

+
=
x y
nm nm
m (x,y) (x,y)

2 n 2
cos R f C (47)
i:
) ( 2
nm nm
A Im S = <==>


=
x y
nm nm
m (x,y) (x,y)

2 n 2
sin R f S (48)
Se demonstreaz foarte uor c modulul momentelor Zernike este invariant la rotaie i ca
urmare ele pot fi folosite drept trsturi invariante la rotaie.
17. Recunoaterea obiectelor imagistice cu invariane
specificate.
249
17.9. Rezultate obinute, detalii de implementare.
Programul elaborat recunoate cu precizie foarte bun toate obiectele din imagine pentru
care a fost antrenat. Erorile de recunoatere care mai apar se datoreaz reducerii masive de date
realizate n selectorul de trsturi (de ordinul a 60-70 ori), aceasta nsemnnd o limitare
considerabil a cantitii de informaie existente n imaginea iniial. Testele au fost fcute pe
imagini realizate n condiii de variaie a condiiilor de iluminare, a poziiei (rotaie) i a mrimii
(scalare). Adugnd la toate acestea dezvoltarea unor algoritmi mai performani de segmentare, se
poate face o idee asupra direciilor ulterioare de perfecionare a programului.
n ce privete sistemul de recunoatere automat a numrului serial al ceasurilor de mn ,
exte prezentat n figurile urmtoare ecranul principal al aplicaiei pentru dou imagini de test.
Imaginile au fost furnizate sub form de fiiere, urmnd ca ntr-o etap ulterioar s se conecteze
direct aplicaia la un sistem de achiziie de imagini.



Dup cum se poate deduce i din analiza imaginilor precedente, principalele operaii
efectuate de sistemul de recunoatere a numrului serial sunt:
Determinarea automat a pragului de segmentare prin analiza histogramei;
Segmentarea cu prag;
Localizarea obiectelor din imagine;
Filtrul euristic de selecie a cifrelor de recunoscut;
Scalarea obiectelor de interes;
Realizarea invarianei la condiiile de iluminare;
Aplicarea transformatei DCT bidimensionale;
Ordonarea Zig-Zag i reinerea trsturilor semnificative pentru fiecare obiect;
Recunoaterea propriu-zis folosind o reea neural tip perceptron cu trei straturi.
17. Recunoaterea obiectelor imagistice cu invariane specificate.
250
Aplicaia a fost scris n limbajul C (Borland C 3.1), iar codul surs i programul
executabil sunt incluse n CD-ul ataat crii de fa. Programul (numit DigitRecogn.exe) poate fi
rulat dup instalare.

18. Msurarea automat a sitelor textile.
251





18. Msurarea automat a sitelor textile.




18.1. Introducere.
18.2. Etapele metodei de msurare automat.
18.3. Segmentarea.
18.4. Etichetarea componentelor.
18.5. Aproximarea poligonal a ochiurilor sitei.
18.6. Msurtori asupra sitei.
18.7. Rezultate experimentale. Concluzii.




18.1. Introducere.
Standarde nalte in controlul calitii textilelor pot fi obinute doar prin dezvoltarea i
implementarea unor noi metode de testare, caracterizate prin acuratee nalt i vitez de rspuns
mare. Msurarea parametrilor produselor textile trebuie fcut cel mai adesea on-line, fr nici un
fel de pierderi n productivitate.
Pentru msurarea sitelor textile pot fi utilizate nu numai metode simple, cum ar fi cele
bazate pe msurtori regionale ale transparenei (folosind de obicei o pereche emitor-receptor-
de dispozitive opto-electronice), ci i metode mai sofisticate, cum ar fi cele bazate pe difracia
laser (Sodomka[103]), metodele bazate pe analiza Fourier (Ribolzi[89]), sau metodele bazate pe
analiza digital a imaginilor (Wolfrum[112]), (Baetens[08]).
Exist o multitudine de metode de analiz a produselor textile, multe dintre ele fiind
destinate unui anumit tip de material textil. n particular, sitele textile au o structur vizual foarte
simpl, ceea ce le face potrivite pentru analiza computerizat a imaginilor lor. n consecin, am
ncercat s mbuntim precizia evalurii lor printr-o metod bazat pe analiza digital a
imaginilor. Ea urmrete n primul rnd mbuntirea preciziei msurtorilor. Se folosete un nou
algoritm de aproximare poligonal pentru localizarea ochiurilor sitei, dup care o evaluare
statistic complet a parametrilor eantionului de sit textil studiat este furnizat.
Toate etapele metodei de msurare automat sunt descrise n amnunt. Metoda a fost
implementat i testat, i este dat o descriere amnunit a rezultatelor experimentale obinute.

18.2. Etapele metodei de msurare automat.
Lanul prelucrrilor folosite pentru a obine msurtorile dorite asupra unor eantioane de
site textile este descris n urmtoarea schem bloc (Fig. 1).

18. Msurarea automat a sitelor textile.
252
digitizare
histogram
segmentare
segmentare
calcul
prag de
calcul
(binarizare)
contour
urmrire
Imagine n scar de gri
componente
validare
etichetare
Filtre de
contururi
h
ochiuri
aproximare
poligonal
etichetare
ochiuri
parametri
sit
calcul
Afiare/tiprire
parametri
Imagine binar

Figura 1. Schema bloc a sistemului.

Primul pas ctre scopul propus este obinerea unor imagini de bun calitate (Ballard[10])
ale sitelor textile (iluminare uniform, claritate, contrast bun, fr zgomot). Folosind o camera TV
conectat la un microscop i o interfa specializat de calculator, aceste imagini sunt digitizate n
scar de gri (256 de nivele) i, dac este necesar, salvate ca fiiere pe unitatea de disc dur a
calculatorului (fig. 2).


Fig. 2. Imagini ale eantioanelor de sit textil.

18.3. Segmentarea.
Pentru fiecare imagine se calculeaz histograma nivelelor de gri (fig. 3) n scopul obinerii
unui prag (nivel de gri) de segmentare ct mai bun (Pavlidis[79]), (Haralick[45]), (Pratt[84]).
Dou strategii au fost testate pentru a realiza acest lucru:
1. Presupunnd c urmtorul raport este cunoscut:
ochiuri" re"/"arie R="arie fi (1)
sau poate fi estimat pentru un anume eantion de sit textil, pragul de segmentare dorit
este dat de primul nivel de gri (ordine cresctoare) de la 0[negru] la N-1[alb, de obicei 256]
pentru care este ndeplinit urmtoarea inegalitate:
R [j] [j]
N
T j
1 T
1 j
>

=

=
H H (2)
Aceast strategie este foarte rapid, dar valoarea raportului R trebuie cunoscut. Acest
raport depinde de densitatea sitei textile, grosimea firelor folosite, transparena lor, i deci el poate
varia foarte mult de la un eantion la altul.
18. Msurarea automat a sitelor textile.
253
2. Folosind un filtru digital liniar nerecursiv, vectorul histogram este filtrat pn
cnd mai rmn doar dou maxime locale (fig. 4). Dou soluii au fost ncercate pentru a construi
acest "filtru de netezire a histogramei ". Prima dintre ele este un filtru de ordinul trei:
( ) ] 1 [j [j] ] 1 [j
3
1
[j] + + + = x x x y (3)
care trebuie aplicat succesiv vectorului histogram pn acestuia i mai rmn doar dou
maxime locale. A doua soluie implic folosirea unui filtru de ordin superior:

+ =
=
+
=
k j i
k j i
[i]
1 k 2
1
[j] x y (4)
unde k crete de la 1 la acea valoare pentru care histogramei filtrate i mai rmn doar
dou maxime locale. Ordinul filtrului este 1 k 2 + .
Principalul dezavantaj al acestui din urm filtru este c, pentru imagini cu contrast sczut
(cele dou maxime locale sunt foarte apropiate unul de altul), i cnd ordinul filtrului de apropie
ca valoare de distana ntre aceste maxime, atunci precizia localizrii lor nu mai este aa de bun
comparativ cu primul filtru descris.


Fig. 3. Histograma iniial. Fig. 4. Histograma filtrat.

Pragul de segmentare poate fi stabilit ca fiind nivelul de gri corespunztor minimului local
aflat ntre cele dou maxime localizate anterior, dar dac cele dou maxime principale sunt foarte
bine separate, aa cum apar ele n figura 4, atunci precizia localizrii acestui minim local nu este
aa de bun. O variant mai bun calculeaz acest prag ca o funcie de poziiile maximelor gsite,
adic, dac
2 1
m , m sunt nivelele de gri pentru care vectorul histogram atinge cele dou maxime,
iar ] [m ], [m
2 1
H H sunt aceste valori maxime, atunci pragul de segmentare este dat de:

2
m m
T
2 1
+
= sau
] [m ] [m
] [m m ] [m m
T
1 2
1 1 2 2
H H
H H

= (5)
Aceast din urm strategie este mai lent, dar d rezultate mai bune pentru marea
majoritate a eantioanelor de site folosite. Ea poate localiza cu precizie cele dou maxime
principale din histogram i pragul de segmentare.
Dac timpul de rspuns al sistemului nu este critic, atunci este mai simplu de implementat
o procedur interactiv de segmentare.
Folosind pragul de segmentare gsit anterior, segmentarea prin binarizare a imaginii
originale (x,y) f este realizat (fig. 5) prin:
18. Msurarea automat a sitelor textile.
254

<
=
T f(x,y) , 1
T f(x,y) , 0
(x,y)
S
pentru
pentru
f (6)
Aceasta etap de prelucrare poate eua dac eantioanele de sit nu sunt iluminate
uniform, cel mai adesea ca urmare a plasrii incorecte a surselor de lumin. Aceast situaie poate
fo eliminat prin software, adic prin includerea urmtorilor pai de prelucrare:
Achiziionarea unei imagini (x,y) b a fondului folosit (fr eantion de sit pe el).
Eliminarea zgomotelor din imaginea (x,y) b prin aplicarea unui filtru (ex. median) clasic.
Aplicarea urmtoarei transformri punctuale pentru fiecare pixel al imaginilor de analiz:
(x,y)| (x,y) | (x,y) (x,y) (x,y)
x,y
C
b f max b f f + = (7)

18.4. Etichetarea componentelor.
Imaginile binare obinute n urma prelucrrilor anterioare, (x,y)
S
f sunt folosite pentru a
localiza cu precizie ochiurile sitei. Folosind un algoritm de urmrire/extragere de contur
(Pratt[84]), (Jain[55]) (fig. 6) toate componentele )obiectele din imagine sunt localizate i pentru
fiecare dintre ele se salveaz ntr-o list area ocupat ) (A
i
, coordonatele punctului de start
) ,y (x
S S
ale conturului, i coordonatele dreptunghiului de ncadrare, ) ,Y ,X ,Y (X
(i) (i) (i) (i)
max max min min
. Toate
aceste informaii vor fi utilizate n urmtoarele etape de prelucrare.


Figura 5. Imaginea segmentat. Figura 6. Contururi extrase.

Conform figurilor precedente, exist multe obiecte localizate care nu sunt ochiuri ale sitei,
i deci ele trebuiesc eliminate din lista de obiecte (Duda[36]). Pentru efectuarea acestor operaii se
definete un "filtru logic euristic " care verific succesiv urmtoarele reguli pentru fiecare obiect:
1. Conturul unui ochi de sit nu este inclus n nici un alt contur.
2. Conturul (complet) al unui ochi de sit nu atinge limitele imaginii (el ar putea fi
incomplet, deci trebuie ignorat).
3. Raportul laturilor orizontal i vertical ale dreptunghiului de ncadrare pentru fiecare
ochi de sit localizat trebuie s ndeplineasc urmtoarea condiie:

1 1
K x/y /K 1 < < (8)
4. Aria unui ochi de sit trebuie s fie peste un nivel minim (zgomotul tip "sare i piper"
ntr-o imagine poate da asemenea obiecte mici):

min
A A
i
> (9)
5. Raportul dintre aria unui ochi de sit i aria celui mai mare obiect din imagine trebuie s
fie peste un anumit nivel minim:
18. Msurarea automat a sitelor textile.
255

2 j
j
i
K ) (A / A > max (10)
Acele obiecte care nu ndeplinesc toate regulile anterioare vor fi terse din lista ochiurilor
sitei (fig. 7).


col[01]
col[12]
col[23]
col[30]
latura(0)
latura(1)
latura(2)
latura(3)
ochi "ij"

Fig. 7. Contururi de ochiuri selectate. Fig. 8. Notaii.

18.5 Aproximarea poligonal a ochiurilor sitei.
Pentru a efectua msurtorile dorite asupra eantionului de sit, trebuie s localizm ct
mai precis posibil cele patru coluri ale fiecrui ochi de sit. Laturile fiecrui ochi sunt apoximate
prin segmente de dreapt, aa nct avem de-a face cu o problem de aproximare poligonal
(fitting) (Jain[56]), (Pavlidis[80]) care trebuie rezolvat (fig. 8).
Soluia dezvoltat se bazeaz pe minimizarea iterativ a erorii de aproximare (eroarea
medie ptratic). Pentru c numrul laturilor poligonului de aproximare este stabilit la patru,
aproximarea iniial a ochiului sitei poate fi setat la dreptunghiul su de ncadrare.
Punctele de contur corespunztoare fiecrei laturi a poligonului (patrulaterului) se
stabilesc folosind un criteriu de distan minim, adic lista punctelor de contur este partiionat in
patru grupe, fiecare corespunztor unei laturi, fiecare punct al conturului fiind ataat celui mai
apropiat segment aproximant.
Dac exis n total N puncte de contur pentru un obiect (fig. 9) i partiiile punctelor de
contur conin respectiv
0
N ,
1
N ,
2
N i
3
N elemente, atunci, desigur:

3 2 1 0
N N N N N + + + = (11)
Ecuaia dreptei care trece prin punctul ) ,y (x
0 0
i are panta dat de
0
este:
0 ) y (y ) x (x
0 0 0 0
= cos sin (12)
Ecuaia dreptei care trece prin punctul ) ,y (x
k k
i este perpendicular pe dreapta (12) este:
0 ) y (y ) x (x
0 k 0 k
= + sin cos (13)
Atunci punctul de intersecie a acestor dou drepte are coordonatele urmtoare:

0 0 k 0 0
2
k 0
2
0
) y (y x x x cos sin cos sin + = (14)

0 0 k 0 0
2
k 0
2
0
) x (x y y y cos sin sin cos + = (15)
Distana de la punctul ) ,y (x
k k
la linia care trece prin punctul ) ,y (x
0 0
i are panta
0
este
dat de:

2
k
2
k
2
k
) y (y ) x (x d + = (16)
adic:
18. Msurarea automat a sitelor textile.
256
2
0 0 k 0 0
2
k 0
2
0 0 k 0 0
2
k 0
2
k
] ) x (x ) y [(y ] ) y (y ) x [(x d cos sin cos cos sin sin + =
(17)
Atunci eroarea medie ptratic corespunztoare fiecrei partiii a punctelor de contur este:

=
=
0
0
0
N
1 k
2
k
0
0
d
N
1
E

=
=
1
1
1
N
1 k
2
k
1
1
d
N
1
E

=
=
2
2
2
N
1 k
2
k
2
2
d
N
1
E

=
=
3
3
3
N
1 k
2
k
3
3
d
N
1
E (18)
Pentru prima partiie, eroarea medie ptratic poate fi exprimat prin:

=
+ =
0
0
0 0
N
1 k
2
0 0 k 0 0
2
k 0
0
0
] ) y (y ) x {[(x
N
1
E cos sin sin
} ] ) x (x ) y [(y
2
0 0 k 0 0
2
k 0
0 0
cos sin cos + (19)
i dac definim urmtoarele cantiti (tot pentru prima partiie):

=
=
0
0
0
N
1 k
k
0
) 0 (
x
N
1
x ;

=
=
0
0
0
N
1 k
k ) 0 (
y
N
1
y ;

=
=
0
0
0 0
N
1 k
k k
0
) 0 (
y x
N
1
xy ;

=
=
0
0
0
N
1 k
2
k
0
2
) 0 (
x
N
1
x ;

=
=
0
0
N
1 k
2
) 0 (
0
2
) 0 (
y
N
1
y
(20)
se obine urmtoarea expresie pentru eroarea medie ptratic
0
E :
+ + + =
0 0 ) 0 ( 0 ) 0 ( ) 0 ( 0 0 0 0
2 2
) 0 ( ) 0 ( 0
2
0 0
) xy y x y x y (x 2 ) x x x 2 (x E cos sin sin

0
2 2
) 0 ( ) 0 ( 0
2
0
) y y y 2 (y cos + + (21)
Prin minimizarea acestei erori valorile necunoscute
0
x ,
0
y i
0
pot fi aflate:

) 0 ( 0 0 ) 0 ( 0 0 ) 0 ( 0
0
x x 0 ) y (y ) x (x 0
x
E
= = =

cos sin (22)



) 0 ( 0 0 ) 0 ( 0 0 ) 0 ( 0
0
y y 0 ) y (y ) x (x 0
y
E
= = + =

cos sin (23)



2
) 0 (
2
) 0 (
2
) 0 (
2
) 0 (
) 0 ( ) 0 ( ) 0 (
0
0 ) y ( y ) x ( x
) y x xy ( 2
2
1
0
E
+

= = arctan

(24)
Formule similare pot fi scrise pentru toate partiiile ataate conturului ochiului sitei, astfel
nct toate seturile ] ), ,y [(x
0 0 0
, ] ), ,y [(x
1 1 1
, ] ), ,y [(x
2 2 2
, i ] ), ,y [(x
3 3 3
pot fi obinute.
Rezolvnd sistemul de ecuaii:

=
=
0 ) y (y ) x (x
0 ) y (y ) x (x
1 1 1 1
0 0 0 0


cos sin
cos sin
(25)
coordonatele primului col al ochiului se calculeaz cu:

) (
) y (x ) y (x
x
1 0
0 1 1 1 1 1 0 0 0 0
01


=
sin
cos cos sin cos cos sin
(26)

) (
) y (x ) y (x
y
1 0
0 1 1 1 1 1 0 0 0 0
01


=
sin
sin cos sin sin cos sin
(27)
i expresii similare pot fi gsite pentru celelalte trei coluri ale poligonului aproximant,
adic pentru ) ,y (x
12 12
, ) ,y (x
23 23
i ) ,y (x
30 30
.

18. Msurarea automat a sitelor textile.
257

poligonul
approximant
initial
approximant
final
poligonul
{
{

Fig. 9. Conturul iniial. Fig. 10. Procesul de aproximare.

Acest nou poligon este folosit mai departe pentru a construi alte patru partiii ale punctelor
de contur ale ochiului sitei, pe baza crora se va obine o mai bun aproximare a ochiului. Acest
proces continu (fig. 10) pn cnd eroarea global relativ de aproximare ndeplinete condiia:

0
t
1 t t
E
E E
<

=
+
) (
) ( ) (
(28)
unde
) ( ) ( ) ( ) ( ) ( t
3
t
2
t
1
t
0
t
E E E E E + + + = este eroarea global pentru iteraia "t".

18.6. Msurtori asupra sitei.
Dac orientrile corespunztoare firelor de urzeal i respectiv bttur se calculeaz cu:

+ =
i j
(ij)
2
(ij)
0 02
) (
M 2
1

+ =
i j
(ij)
3
(ij)
1 13
) (
M 2
1
(29)
atunci unghiul mediu ntre firele de urzeal i cele de bttur este:

=
i j
(ij)
M
1
(30)
unde
) (
2
1
(ij)
3
(ij)
1
(ij)
2
(ij)
0
(ij)
+ = (31)
Unghiurile
02
i
12
sunt apoi folosite pentru etichetarea matriceal a ochiurilor sitei,
folosind teste de poziie relativ n lungul acestor dou direcii (fig. 11).

(01)
(01)
(01)
(01)
(01)
(01)
(12)
(12)
(12)
(12)
(12)
(12)
(23)
(23)
(23)
(23)
(23)
(23)
(30)
(30)
(30)
(30)
(30)
(30)
(i,j)
(i-1,j)
(i-1,j+1)
(i+1,j)
(i,j+1)
(i+1,j+1)

Fig. 11. Direciile de cutare pentru etichetare. Fig. 12. Ochiuri etichetate.

18. Msurarea automat a sitelor textile.
258
Aceast etichetare (fig. 12) este utilizat mai departe pentru a stabili perechile valide de
ochiuri vecine n lungul ambelor direcii.

=90
0
C
D
C'
D'
A
B
B'
A'

(i,j)
(i+1,j)
(i,j+1)

Fig. 13. Principalele msurtori asupra eantionului de sit.

Valorile distanelor marcate n figura (13) se calculeaz folosind formulele urmtoare:
[ ]
2 (ij)
30
(ij)
23
2 (ij)
30
(ij)
23
2 (ij)
12
(ij)
01
2 (ij)
12
(ij)
01 (ij)
) y (y ) x (x ) y (y ) x (x
2
1
A + + + = (32)
[ ]
2 (ij)
23
(ij)
12
2 (ij)
23
(ij)
12
2 (ij)
30
(ij)
01
2 (ij)
30
(ij)
01 (ij)
) y (y ) x (x ) y (y ) x (x
2
1
B + + + = (33)
[ ]
2 ,j) 1 (i
30
(ij)
23
2 ,j) 1 (i
30
(ij)
23
2 ,j) 1 (i
01
(ij)
12
2 ,j) 1 (i
01
(ij)
12 (ij)
) y (y ) x (x ) y (y ) x (x
2
1
C
+ + + +
+ + + = (34)
[ ]
2 ) 1 (i,j
12
(ij)
23
2 ) 1 (i,j
12
(ij)
23
2 ) 1 (i,j
01
(ij)
30
2 ) 1 (i,j
01
(ij)
30 (ij)
) y (y ) x (x ) y (y ) x (x
2
1
D
+ + + +
+ + + = (35)
(ij)
(ij) (i,j)
A A sin =
(ij)
(ij) (i,j)
B B sin =
(ij)
(ij) (i,j)
C C sin =
(ij)
(ij) (i,j)
D D sin = (36)
unde:
A = lungimea laturii ochiului corespunztoare firelor de urzeal;
B = lungimea laturii ochiului corespunztoare firelor de bttur;
A' = distana ntre firele de urzeal;
B' = distana ntre firele de bttur;
C' = diametrul firelor de urzeal;
D' = diametrul firelor de bttur.
Valorile lor medii, corespunztoare tuturor ochiurilor de sit din imagine sau mai bine,
conform regulilor impuse de controlul de calitate, pentru un set de imagini ale aceluiai sortiment
de sit textil sunt:

=
i j
(i,j)
A
M
1
A

=
i j
j i
B
M
1
B
) , (

=
i j
j i
H
C
M
1
C
) , (

=
i j
j i
V
D
M
1
D
) , (

=
i j
j i
A
M
1
A
) , (

=
i j
j i
B
M
1
B
) , (

=
i j
j i
H
C
M
1
C
) , (

=
i j
j i
V
D
M
1
D
) , (
(37)
unde - M este numrul total de ochiuri;
-
H
M este numrul de ochiuri vecine n lungul direciei
13
.
-
V
M este numrul de ochiuri vecine n lungul direciei
02
.
O bun aproximare a ultimelor patru valori din (37) este dat de:
18. Msurarea automat a sitelor textile.
259
sin A A = ; sin
) ( ij
B B = ; sin C C = ; sin D D = (38)
O descriere statistic complet a acestor msurtori implic cel puin calculul dispersiilor
lor:

=
i j
2
(ij)
2
A
) A (A
M
1
, etc. (39)

18.7. Rezultate experimentale. Concluzii.
Un mediu software integrat a fost dezvoltat pentru a realiza o analiz complet a
eantioanelor de site textile. El include i opiuni software de calibrare, care pot fi folosite pentru
a converti toate distanele n milimetri, cu ajutorul imaginilor unor rigle de calibrare.
Toate valorile calculate (buletine de analiz) sunt afiate pe ecran i/sau pot fi salvate pe
unitile de disc ale calculatorului.
S-a folosit pentru aceast aplicaie un calculator cu o interfa de achiziie a imaginilor i o
camer TV standard conectat la un microscop. Toate programele au fost scrise n limbajul C++.



Acurateea msurtorilor este foarte bun i este afectat doar de erorile de digitizare i de
cele datorate aproximrii poligonale a ochiurilor sitei.
Pentru un prag de eroare de 01 . 0
0
= , numrul maxim de iteraii necesar pentru
aproximarea poligonal este de 5-7 i depinde de orientarea iniial a firelor. Dac laturile
ochiurilor sunt aproape orizontale/verticale, numrul necesar de iteraii scade la 2-3. Am folosit n
experimente urmtoarele valori pentru constantele descrise anterior:
4 K
1
= , 10 A
min
= i 2 . 0 K
2
= . (40)
18. Msurarea automat a sitelor textile.
260
Dei unele optimizri de vitez nc mai pot fi fcute, timpul de prelucrare obinut pentru
o imagine 256x240 n scar de gri este de 0.4sec pe un calculator Pentium 400Mhz i crete
pentru imagini mai mari (1sec pentru o imagine 640x480 n scar de gri).
Rezultatele obinute demonstreaz acurateea acestei metode de msurare, ca i
posibilitatea de a detecta multe din defectele de esere posibile. Echipamentul necesar pentru a
implementa aceast metod nu este foarte costisitor i poate fi adaptat cu uurin la o instalaie de
producie pentru testarea on-line a sitelor textile.
Aceeai metod a fost testat cu succes i pentru site metalice i poate fi extins la alte
sortimente de materiale esute.
Programul executabil (SitaApp.exe) se gsete mpreun cu codul surs pe CD-ul ataat i
poate fi rulat dup instalare.
19. Aplicaie de recunoatere a simbolurilor muzicale
tiprite.
261





19. Recunoaterea simbolurilor muzicale tiprite.




19.1. Descrierea aplicaiei generale.
19.2. Crearea setului de date de antrenament / test.
19.3. Sistemul de recunoatere.
19.4. Extragerea trsturilor.
19.5. Selecia trsturilor.
19.6. Reeaua neural.
19.7. Adaptarea setului de date de antrenament.
19.8. Rezultate obinute i concluzii.




Recunoaterea automat a simbolurilor crete spactaculos eficiena interfeelor om-
main. Dar nu ntotdeauna "simbol" nseamn caracter, el poate nsemna de asemenea simbol
muzical. Se constat un interes n cretere pentru recunoaterea simbolurilor muzicale, datorat n
mare msur multiplelor aplicaii posibile (Sicard[101]).
n continuare este prezentat o soluie robust adoptat pentru recunoaterea unor
simboluri muzicale tiprite, folosit n cadrul unei aplicaii de recunoatere a partiturilor
muzicale. Este descris modul de construcie a setului de simboluri de antrenament/test, algoritmul
de pregtire a datelor pentru recunoatere (extragerea trsturilor) i o procedur nou de adaptare
a setului de date de antrenament.

19.1. Descrierea aplicaiei generale.
S-a urmrit construcia unui sistem complet de recunoatere a partiturilor muzicale.
Partitura tiprit este digitizat folosind un scanner, dup care procedura general de
recunoatere parcurge urmtorii pai:
separare semiautomat portative, necesar deoarece exist simboluri mai
apropiate de un portativ, dar aparinnd logic altuia;
pentru fiecare portativ, extragere linii portativ, cu distorsionarea minima a
simbolurilor muzicale;
localizare obiecte prin ncadrare n fereastra dreptunghiular; algoritmi
dedicai trebuiesc utilizai pentru simbolurile fragmentate sau atinse.
Informaia din dreptunghiul de ncadrare este utilizat pentru recunoatere, ntr-un sistem
cu schema bloc din fig.1 :

19. Aplicaie de recunoatere a simbolurilor muzicale tiprite.
262
extragere
trsturi
selecie
trsturi
clasificator
extragere
trsturi
selecie
trsturi
extragere
trsturi
selecie
trsturi
clasificator
(neuronal)
decizie simboluri nerecunoscute
intrare
obiecte scalate
clasificator
nivel 1
nivel 2
nivel 3
decizie
decizie
decizie
rejecie nivel 2
rejectie nivel 1

Fig. 1: Schema bloc a sistemului de recunoatere a partiturilor.

Preclasificarea mparte obiectele n clase. Pentru fiecare clas se utilizeaz metode
specifice de clasificare, urmrindu-se, evident, mrirea ratei de recunoatere la un timp de
clasificare ct mai mic. A utiliza aceeai metod n toate nivelurile de clasificare de mai sus este o
soluie greit: sau obiectele pot fi separate prin metode specifice foarte simple, fie numai metode
sintactice duc la performanele dorite.
Deoarece aplicaia impune invariana la scalare se lucreaz n general cu mrimea
normalizat a obiectelor, adic (fig.2):

(dx/L,dy/L)
unde L - distana ntre liniile portativului

Fig. 2. Normalizarea obiectelor.

Capitolul curent prezint modul de implementare a unui clasificator (nivelul 3, fig.1)
pentru recunoaterea a ase simboluri muzicale: diez, bemol, becar, pauza 1/4, pauza 1/16 i
pauza 1/8, pentru care alte metode testate au dat rezultate mult mai slabe.
Aspectul obiectelor care urmeaz a fi recunoscute depinde de calitatea partiturii originale,
performanele scanner-ului utilizat n digitizare i de efectele algoritmului de eliminare a liniilor
portativului. Oricum, rezult o mare variabilitate a formei simbolurilor din aceeai clas (fig 3):

diez becar bemol pauza pauza pauza rejecie
1/4 1/16 1/8

Fig. 3. Clasele de simboluri ce trebuiesc recunoscute.
19. Aplicaie de recunoatere a simbolurilor muzicale
tiprite.
263
Se remarc utilizarea unei a 7-a clase de obiecte, "clasa de rejecie" (Pudil[88]), care
permite obinerea unor rezultate net superioare. Din punct de vedere teoretic, introducerea ei este
justificat de faptul c n lipsa clasei de rejecie, spaiul trsturilor este partiionat n ase clase,
astfel nct obiectele care nu aparin la nici una din cele ase clase pot fi uor atribuite lor.
Construind clasa de rejecie, care include cifrele, literele, fragmente de simboluri i
obiecte concatenate, limita de decizie ntre clasa de rejecie i cele 6 clase devine bine precizat.

19.2. Crearea setului de date de antrenament / test.
Pentru crearea seturilor de date de antrenament i test se folosesc partituri tipice din
punctul de vedere al fonturilor muzicale folosite. Simbolurile extrase sunt salvate sub form de
fiiere al cror nume indic apartenena la clasa corespunztoare.
Simbolurile care trec de preclasificator i sunt diferite de cele 6 simboluri studiate se
atribuie clasei de rejecie. Ele reprezint cifre, litere, alte simboluri muzicale, fragmente de
simboluri, simboluri concatenate.
Astfel s-au creat: - 337 forme de tipul "diez";
- 171 forme de tipul "bemol";
- 223 forme de tipul "becar";
- 360 forme de tipul "pauz 1/4";
- 239 forme de tipul "pauz 1/16";
- 351 forme de tipul "pauz 1/8";
- 191 forme de tipul "rejecie";
Deci s-au folosit 1872 simboluri: setul de antrenament conine primele 120 simboluri din
fiecare clas (plus clasa de rejecie), deci n total 840 simboluri de antrenament i 1032 simboluri
n setul de test. De menionat faptul c, deoarece simbolurile din setul de antrenament au fost
alese aleator, exist multe simboluri similare. Pentru selectarea n setul de antrenament a celor
mai semnificative simboluri (fr a crete dimensiunea acestui set) s-a dezvoltat un algoritm de
gestiune a seturilor de antrenament, descris n paragraful 7.

19.3. Sistemul de recunoatere.
Recunoaterea celor 6 simboluri muzicale a fost implementat (Duda[35]), (Meisel[72])
pe baza urmtoarei scheme bloc generale (fig.4):

extragere
trsturi
selecie
trsturi
clasificator
(reea
neuronal)
decizie

Fig. 4. Schema bloc a clasificatorului.

n proiectarea acestui clasificator s-a urmrit, pe lng optimizarea timpului de rspuns
(ct mai mic) i a ratei de recunoatere (ct mai mare), i posibilitatea unei implementri
hardware, ntr-o structur dedicat de mare vitez, care s poat rezolva probleme asemntoare
(dar nu identice).
Selectorul de trsturi poate reine cele mai semnificative caracteristici furnizate de
extractorul de trsturi. Decizia clasificatorului este asimilat cu activarea specific a ieirilor
reelei neurale.

19.4. Extragerea trsturilor.
Faza de extragere a trsturilor presupune parcurgerea urmtorilor pai:

19. Aplicaie de recunoatere a simbolurilor muzicale tiprite.
264
a) Scalarea simbolurilor:

scalare

Se obine o matrice binar de dimensiune constant (32x32), coninnd imaginea scalat.
Astfel este rezolvat invariana la scalare pe orizontal i vertical, impus de aplicaie.

b) Transformata Cosinus Discret (DCT) bidimensional:

DCT-2D

Se obine o matrice de valori reale de aceeai dimensiune ca cea iniial. Se folosete DCT
deoarece proprietile ei o fac util n selecia trsturilor (Rosenfeld[95]), (Ahmed[03]).
Un selector optimal de trsturi se construiete astfel (fig.5):

trsturi
reducere
T T
-1
X Y
(date)
YR XR

Fig. 5. Construcia selectorului optimal de trsturi.

unde:
) x ,..., x , x (
N 2 1
= X - vectorul de intrare;
) y ,..., y , y (
N 2 1
= Y - vectorul transformat;
) c ,..., c , c , y ,..., y , y (
N 2 k 1 k k 2 1 + +
= YR - vectorul de trsturi redus; el se obine din Y
nlocuind cu constante ultimele (N-K) valori;
) xr ,..., xr , xr (
N 2 1
= XR - estimaia vectorului de intrare.
T
T
N
T
2
T
1
,..., , u u u T = , cu ) u ,..., u , u (
jN 1 j 0 j
T
j
= u este matricea unei transformri
ortogonale unitare care se va determina n condiiile minimizrii erorii medii
ptratice date de:
{ } ) ( ) ( E e
T
X X X X =
Notnd:
} ) )( {( E
T
X X X X K
XX
= , matricea de covarian a intrrii, unde } { E X X = ,
se obine transformata Karhunen-Loeve discret (sau Hotelling) cu proprietile:
1. 0 ) (
j N j
= u I K
XX
- liniile matricii transformrii sunt valorile proprii ale
matricii de covarian a domeniului de intrare;
2. ) ,..., , (
N 2 1
diag =
YY
K - transformarea furnizeaz la ieire coeficieni
necorelai;
3.

+ =
=
N
1 k j
j
- expresia erorii.
Deoarece implementarea transformrii (KL) este dificil i n plus, modelnd intrarea {X}
cu un proces Markov de ordinul 1, cea mai bun aproximare a transformrii Karhunen-Loeve
19. Aplicaie de recunoatere a simbolurilor muzicale
tiprite.
265
discrete este DCT (Transformata Cosinus Discret). Aceast modelare nu este foarte restrictiva
i se poate folosi cu succes n multe aplicaii (Ahmed[03]).
Pentru calculul DCT exist nu numai algoritmi rapizi de calcul, ci i circuite specializate
de mare vitez..
Pentru cazul bidimensional se folosete:
)
N
v k
( cos )
N
u j
( cos f(j,k)
N 2
1
F(u,v)
1 N
0 j
1 N
0 i

=
=
rezultnd o matrice de aceeai dimensiune, cu valori reale, slab corelate. Valorile
semnificative ale acestei matrici sunt plasate n colul din stnga sus.

c) Ordonarea Zig - Zag.
Este o procedur de vectorizare a matricii DCT, dup regula din figura de mai jos:

0 1
2
3
4
5 6
7
8
9
10
11
12
13
14 15
16
17
18
19
20
21
22
23
24
25
63 62
26
27 28
29
30
31
32
33
34
35 36
37
38
39
40
41
42
43
61
60
59
58 57
56
55
54
53
52
51
50
49 48
47
46
45
44

Matrice[8][8] ==> Vector[64]; Matrice[32][32] ==> Vector[1024];

Deoarece DCT bidimensional concentreaz informaia din imaginea iniial n colul din
stnga sus al matricii rezultate, dup ordonarea Zig - Zag aceeai informaie va fi regsit n
primele elemente ale vectorului obinut.

19.5. Selecia trsturilor.
Pentru a minimiza timpul de clasificare/recunoatere, cea mai bun soluie este de a utiliza
doar cele mai semnificative dintre trsturile extrase. n cazul nostru, trsturile cele mai
semnificative se gsesc la nceputul vectorului de trsturi. Ca urmare se rein doar primele 66
valori din vectorul Z[1024], adic 6.5% din valori, cele marcate cu negru n figura anterioar.
Conform afirmaiilor anterioare, aceste elemente concentreaz cea mai mare parte din
informaia din imaginea iniial i ele vor fi folosite n faza de recunoatere. n plus, deoarece
restul vectorului Zig-Zag nu este folosit, valorile corespunztoare din matricea DCT nici nu mai
trebuiesc calculate, ceea ce reduce semnificativ timpul de calcul al DCT (doar 18.8% din
multiplicri sunt necesare).

19.6. Reeaua neural.
Primele 66 elemente ale vectorului Z se aplic la intrarea unei reele neurale de tipul
perceptron cu trei straturi i nelinearitate sigmoidal simetric (+/-1) la toi neuronii
(Lipmann[66]), (Rumelhart[98]).
Numr de neuroni folosii este de 80 neuroni pentru stratul de intrare, 20 neuroni pentru
stratul intermediar i 6 neuroni pentru stratul de ieire.
19. Aplicaie de recunoatere a simbolurilor muzicale tiprite.
266
Pentru antrenare s-a folosit evident algoritmul "backpropagation" cu factorul de ctig
3 . 0 = , factorul de inerie 7 . 0 = . Antrenarea s-a fcut prin aplicarea ciclic a trsturilor
obiectelor din fiecare clas la intrrile reelei neurale.
Fiecare neuron din stratul de ieire este asignat unei clase, ca urmare ieirea dorit pentru
fiecare clas nseamn activarea neuronului corespunztor clasei respective i inhibarea celorlali
neuroni de ieire. Pentru obiectele din clasa de rejecie reeaua neural trebuie s rspund cu
toate ieirile inactive.
Decizia de apartenen a unui obiect X la una din clase este de forma:

IF [y1>thr] and [y2<(-thr)] and [y3<(-thr)] and [y4<(-thr)] and [y5<(-thr] and [y6<(-thr)] THEN
Obiectul X aparine clasei (1)

unde pragul este 0<thr<1. Pentru cazul aplicaiei de fa se pot scrie 6 asemenea condiii, cte una
pentru fiecare clas. Pentru clasa de rejecie condiia este:

IF [y1<(-thr)] and [y2<(-thr)] and [y3<(-thr)] and [y4<(-thr)] and [y5<(-thr] and [y6<(-thr)]
THEN
Obiectul X aparine clasei de rejecie

Dac nici una din cele 6+1 condiii nu este adevrat, decizia este de "obiect
nerecunoscut". Un asemenea tip de condiie va furniza, evident i funcie de prag, mai multe
obiecte nerecunoscute dect greit recunoscute, n concordan cu cerinele aplicaiei. De notat
faptul c este mai avantajos cazul n care clasificatorul furnizeaz obiecte nerecunoscute dect
obiecte recunoscute greit deoarece corectarea interactiv a obiectelor recunoscute greit
implic o operaie n plus (tergerea simbolului greit recunoscut) pe lng nlocuirea lui.

19.7. Adaptarea setului de date de antrenament.
n exploatarea sistemului pot apare noi tipuri de fonturi ce trebuiesc recunoscute. De aceea
este necesar actualizarea setului de date de antrenament i reantrenarea periodic a reelei
neurale folosite. Am impus condiia de limitare a numrului de simboluri din setul de antrenament
pentru limitarea spaiului de memorie folosit i a timpului necesar pentru reantrenarea reelei.
Descrierea mai amnunit a acestui gen de algoritmi se poate gsi n capitolul 16.





Pentru estimarea scorurilor de coinciden pentru perechi de obiecte din setul de
antrenament, au fost testate mai multe msuri:
[I,J] [I,J]
(L)
32
1 I
32
1 J
(K)
KL
) 1 (
MS MS S =

= =
(1)
care reprezint distana Hamming ntre obiectele "K" i "L" (imagini binare scalate -
32x32). Este foarte uor de calculat, dar pentru obiecte foarte asemntoare, un mic zgomot poate
afecta mult ncadrarea n fereastr, deci i valoarea calculat pentru scorul de coinciden. O
expresie mai corect este:
) N]) M,J [I [I,J] ( (
32
1 I
32
1 J
2 L K
N M
2

= =
+ + =
) ( ) (
,
) (
ME MS min S (2)
care calculeaz cel mai bun scor de coinciden ntre simbolul (K) i simbolul (L) translat
pe orizontal i vertical. Deoarece prelucrrile ulterioare asupra imaginii (DCT) nu sunt
invariante la translaii, (2) ar putea fi folosit n cazul utilizrii unui neocognitron n faza de
recunoatere.
19. Aplicaie de recunoatere a simbolurilor muzicale
tiprite.
267

2 (L)
32
1 I
32
1 J
(K)
KL
) 3 (
[I,J]) [I,J] ( DCT DCT S =

= =
(3)
reprezint distana euclidian ntre obiectele "K" i "L" descrise n spaiul transformatei
DCT. Este mai greu de calculat, deoarece setul de antrenament este memorat pe calculator sub
forma imaginilor binare scalate.

2 (L))
66
1 I
(K)
KL
) 4 (
[I]) [I] ( Z Z S =

=
(4)
reprezint distana euclidian ntre vectorii "K" i "L" rezultai n urma ordonrii Zig-Zag.
Implic de asemenea un volum mare de calcule, dar se refer exact la valorile care se aplic
intrrii n clasificator. Pe de alt parte pare mai corect o ponderare a valorilor [I]
[K]
Z , funcie de
contribuia lor la "forma" simbolului, dar nu se pot face dect presupuneri privind valorile acestor
ponderi.
Testele efectuate au artat c distanele (1), (3), (4) dau rezultate similare, aa c distana
(1) a fost aleas datorit complexitii reduse a calculelor
Dup o prim antrenare a reelei, verificarea comportrii ei pe setul de test furnizeaz un
numr de simboluri nerecunoscute. La acestea se adaug simbolurile nerecunoscute rezultate din
exploatarea sistemului. Pe baza lor se schimb succesiv structura bazei de date, reantrennd de
fiecare dat reeaua neural folosit drept clasificator. Se mbuntete astfel rata de recunoatere
n condiiile meninerii dimensiunii setului de forme de antrenament.
Dac dup un numr predeterminat de pai numrul de erori de recunoatere detectate nu
devine suficient de mic, rezult c reeaua neural folosit nu poate "nva" un numr att de
mare de simboluri, deci ar trebui adaugai neuroni pe primele dou straturi ale reelei neurale.

19.8. Rezultate obinute i concluzii.
Timpul de recunoatere obinut (localizare, scalare, DCT, reea neural) pentru un
calculator Pentium 200MHz este sub 100msec/simbol.
Rata de recunoatere obinut iniial pentru setul de antrenament/setul de test (840 / 1032
simboluri) rezult din tabelul urmtor.

nainte de actualizare set antrenament: Dup adaptare set antrenament (3iteraii):
Erori/Prag 0.1 0.2 0.3 0.4 Erori/Prag 0.1 0.2 0.3 0.4
Diez 0 / 1 0 / 0 0 / 0 0 / 0 Diez 0 / 0 0 / 0 0 / 0 0 / 0
Becar 0 / 0 0 / 0 0 / 0 0 / 0 Becar 0 / 0 0 / 0 0 / 0 0 / 0
Bemol 0 / 1 0 / 1 0 / 0 0 / 0 Bemol 0 / 0 0 / 0 0 / 0 0 / 0
Pauz 2 / 6 1 / 4 0 / 3 0 / 1 Pauz 0 / 3 0 / 2 0 / 1 0 / 0
Pauz 1/16 0 / 0 0 / 0 0 / 0 0 / 0 Pauz 1/16 0 / 0 0 / 0 0 / 0 0 / 0
Pauz 1/8 1 / 4 1 / 3 0 / 2 0 / 1 Pauz 1/8 0 / 1 0 / 1 0 / 1 0 / 0
Rejecie 0 / 2 0 / 1 0 / 1 0 / 0 Rejecie 0 / 1 0 / 0 0 / 0 0 / 0
Total 3/ 14 2 / 9 0 / 6 0 / 2 Total 0 / 5 0 / 3 0 / 2 0 / 0
Antr(%) 0.36% 0.24% 0% 0% Antr(%) 0% 0% 0% 0%
Test(%) 1.36% 0.87% 0.58% 0.19% Test(%) 0.47% 0.28% 0.19% 0%

Rularea aplicaiei a furnizat ntr-o prim faz un numr de 42 simboluri nerecunoscute
provenite de la un stil nou de partituri. Ele au fost adugate setului de test (1072 simboluri) i a
fost rulat procedura descris anterior.
Cteva luni de utilizare a sistemului de recunoatere au confirmat robusteea lui i
eficacitatea algoritmului de adaptare a setului de antrenament. De asemenea a fost confirmat
19. Aplicaie de recunoatere a simbolurilor muzicale tiprite.
268
ideea supradimensionrii iniiale a reelei neurale, tocmai n scopul de a putea nva noi
simboluri pe durata exploatrii, folosind algoritmul de adaptare descris.
20. Recunoaterea automat a textelor tiprite.
269





20. Recunoaterea automat a textelor tiprite.




20.1. Scanarea.
20.2. Localizarea obiectelor din imagine.
20.3. Localizarea zonelor de text din imagine.
20.4. Definirea relaiilor ntre obiecte.
20.5. Algoritm de segmentare a textului prin analiz morfologic.
20.5.1. Conectarea obiectelor.
20.5.2. Tratarea conexiunilor convergente.
20.5.3. Tratarea conexiunilor divergente.
20.5.4. Tratarea conexiunilor multiple reziduale.
20.5.5. Ordonarea obiectelor din text.
20.6. Extragerea trsturilor.
20.7. Clasificarea propriu-zis.
20.8. Construcia setului de date de antrenament i test.
20.9. Adaptarea setului de date de antrenament.
20.10. Detalii de implementare, rezultate obinute i concluzii.




Studiile efectuate s-au concentrat n direcia recunoaterii caracterelor tiprite i a
caracterelor izolate scrise de mna, deoarece pentru ambele cazuri pot fi folosite metode oarecum
similare. Complexitatea mare a problemei e datorat nu att numrului de caractere, ct
variabilitii mari a fonturilor utilizate n tiprirea documentelor, respectiv variabilitii scrisului
de mna.
Scopul urmrit n aceast prim etap este recunoaterea textelor tiprite n condiiile unor
pagini de document suficient de bune calitativ, astfel nct s se evite, pe ct posibil, apariia n
text a caracterelor concatenate ("atinse") sau fragmentate ("sparte"). Dei exist soluii i pentru
astfel de cazuri, ele nu formeaz obiectul studiului de fa.


Fig. 1. Caractere concatenate i caractere fragmentate

Un sistem complet de recunoatere a documentelor tiprite ar trebui s execute
urmtoarele operaii:
20. Recunoaterea automat a textelor tiprite.
270
1. Scanarea (achiziia) imaginii documentului de recunoscut. De regul, se obine la ieire
un fiier, ntr-un format standard (PCX, BMP, TIFF, etc. n cazul conectrii scanner-ului la un
calculator compatibil IBM), care conine imaginea scanat.
2. Separarea zonelor de text de cele grafice din imagine. Paii urmtori se refer doar la
zonele de text astfel localizate. Unele implementri de sisteme de recunoatere descrise n
literatur propun strategii diferite de abordare, ceea ce se traduce prin realizarea separrii zonelor
de text dup sau chiar n cadrul operaiei de localizare a obiectelor (pasul 3).
3. Localizarea obiectelor din imagine (sau din zona de text determinat) prin ncadrarea
lor ntr-o fereastr dreptunghiular.
4. Ordonarea obiectelor, funcie de poziia lor relativ, de la stnga la dreapta i de sus n
jos, pentru a le furniza clasificatorului n ordinea natural a scrisului.
5. Se trateaz cazurile particulare ale punctului precedent, adic simbolurile compuse,
precum "i", "j", "!"(semnul exclamrii), "?"(semnul ntrebrii), ";"(punct i virgul), ":"(dou
puncte), """(ghilimele), "%"(procent), la care se adaug, n cazul limbii romne, caracterele "",
"", "", "", "", plus spaiile( caracterele "blank" i "tab). Funcie de poziia relativ a acestor
obiecte ele se concateneaz pentru a forma, n dreptunghiul de ncadrare, simbolul cutat.
Observaie. Se poate adopta i o alt strategie, mai puin eficient ns. Se renunt n aceast
faz la punctul 5, ncercndu-se recunoaterea obiectelor izolate: "i fr punct", "j fr
punct", "."(punct), ","(virgul), "/"(de la procent %), "0" (de la procent %), urmnd ca apoi
s se ia decizia definitiv dup reguli simple de forma:
"."(punct) deasupra unui "i fr punct" ==> caracterul "i";
"0" n stnga-sus fa de obiectul "/" i un alt "0" n dreapta-jos fa de acelai
obiect "/" ==> caracterul "%", etc.
Ca urmare, se poate utiliza o tehnic de preclasificare a obiectelor n "obiecte mici",
incluznd "."(punctul), ","(virgula), etc. i restul obiectelor. Cu reguli de genul celor de mai
sus se face apoi asamblarea obiectelor n caractere. Dezavantajul apare n cazul caracterelor
compuse, la care obiectele componente se ating (caz destul de des ntlnit), pentru care
aceast a doua metod nu mai funcioneaz.
6. Extragerea i selecia trsturilor are drept scop obinerea celor mai semnificative
trsturi ale fiecrui caracter. Ele trebuie s fie suficient de puine la numr pentru a scurta timpul
de clasificare, dar i suficient de multe pentru a caracteriza ct mai bine fiecare caracter.
7. Clasificarea propriu-zis furnizeaz la ieire decizia de apartenen a fiecrui obiect la
una din clasele posibile.
8. Pasul care urmeaz n mod natural este un analizor lexical care s valideze informaiile
furnizate de sistemul de recunoatere.

20.1. Scanarea.
Scanarea unei pagini de text (document) se face la o rezoluie care s permit separarea
corect a obiectelor din pagin (dimensiunea unui pixel s fie mai mic dect grosimea oricrui
obiect din pagin), fr s apar obiecte concatenate sau sparte din aceast cauz. Este de preferat
o rezoluie mai mare dect necesar pentru nceput (sunt posibile scalri ulterioare ale imaginii).
Dei majoritatea scanner-elor existente pot furniza la ieire imagini binare (deci gata
segmentate), pentru caliti mai slabe ale tipriturii, ele dau rezultate nesatisfctoare, fapt pentru
care este de preferat achiziia imaginii n scar de gri, urmat de o segmentare folosind algoritmi
mai performani.
Diferitele tipuri de scannere existente sunt livrate cu un software dedicat. Indiferent de
principiul lor de funcionare, pentru imaginile tip document, ele furnizeaz la ieire un fiier, ntr-
un format standard, coninnd o imagine binar (la 1 bit/pixel) sau cu mai multe nuane (de gri sau
culori).
20. Recunoaterea automat a textelor tiprite.
271
Formatele utilizate n mod curent sunt BMP, PCX i TIFF. Deoarece exist deja
programe de conversie dintr-un format ntr-altul (Picture Eze, Graphics Workshop, etc.), am optat
pentru lucrul cu formatul cel mai simplu, adic BMP.
Formatul PCX prezint avantajul unui spaiu-disc ocupat mai mic, datorit compresiei
RLL utilizate. Formatul TIFF, probabil cel mai complet format de descriere a fiierelor
imagistice, are un antet destul de complex, iar informaia propriu-zis poate fi necompresat sau
compresat (cel mai ades cu algoritmul LZW care asigur o rat de compresie deosebit de bun).
De notat faptul c informaia propriu-zis este scris n fiier linie cu linie; un octet
include deci 8 pixeli succesivi dintr-o linie, iar numrul de octei alocat unei linii este ntotdeauna
rotunjit la multiplu de 4 octei (32 bii). Prima linie din imagine corespunde ultimei linii din fiier.
Selectarea unui fiier de imagine pentru recunoatere corespunde deschiderii fiierului
.BMP respectiv i verificrii cmpurilor antetului corespunztor acestui format, astfel nct s fie
respectat condiia ca fiierul s conin o imagine (binar sau nu). Lungimea acestui fiier este:
8 / N y x L L
pixel / bit antet total
+ = (1)

20.2. Localizarea obiectelor din imagine.
Algoritmul de localizare a obiectelor din imagine este, n principiu, un algoritm de
urmrire de contur, adaptat la necesitile aplicaiei.
Paii urmai de acest algoritm sunt urmtorii:
(a). Prima i ultima linie, prima i ultima coloan din imagine sunt terse (forate la
alb=1), ceea ce asigur funcionarea rapid i corect a algoritmului. Nu se mai execut testele de
"depire limite imagine" pentru fiecare pixel, ceea ce mrete viteza de execuie a urmririi de
contur. De asemenea, aceast tergere nu poate produce nici un fel de pierdere de informaie,
deoarece nu pot exista informaii eseniale n zonele menionate.
(b). Se baleiaz imaginea linie cu linie, de sus n jos i de la stnga la dreapta, pn la
depistarea unui pixel obiect. (Prin obiect, n cele ce urmeaz, vom desemna caracterele nc
nerecunoscute, pri sau fragmente de caracter, caractere concatenate, alte "pete" negre pe fond
alb).
Se rein coordonatele
S
X i
S
Y ale acestui prim pixel aparinnd unui obiect din imagine.
El devine "pixelul curent", adic ) Y , X ( P
C C
.
(c). Plecnd de la coordonatele ) 1 Y , X (
S S
se baleiaz vecinii pixelului curent, (n sens
orar, de exemplu), n cutarea unui alt pixel obiect.
Dac nu se gsete aa ceva, avem de-a face cu un pixel izolat, care se terge, adic
) ( 1 ) , ( ) , ( alb Y X P Y X P
S S C C
= = . n caz contrar, pixelul nou gsit devine pixel curent, cu
coordonatele ) Y , X (
C C
. Astfel se elimin o parcurgere suplimentar a imaginii n scopul tergerii
pixelilor izolai.
Plecnd de la precedentul pixel curent, se baleiaz n acelai sens vecinii pixelului curent,
pn la depistarea unui nou pixel obiect, care va deveni pixel curent. Procedeul continu pn la
nchiderea conturului, adic pn cnd pixel curent devine ) Y , X ( P
S S
.
(d). Pacurgerea conturului unui obiect este nsoit de determinarea limitelor
dreptunghiului de ncadrare, adic vor fi determinate valorile
MAX MIN MAX MIN
Y , Y , X , X , astfel:

S MAX MIN S MAX MIN
X Y Y ; X X X = = = = ; (iniializare)
apoi, pentru fiecare pas al algoritmului (pixel curent) avem:
; X X ) X X (
C MIN MIN C
= < THEN IF (2)
; X X ) X X (
C MAX MAX C
= > THEN IF (3)
; Y ) Y Y (
C MIN MIN C
= < THEN Y IF (4)
20. Recunoaterea automat a textelor tiprite.
272
; Y ) X Y (
C MIN MAX C
= < THEN Y IF (5)
(e). Pacurgerea conturului unui obiect este nsoit de determinarea ariei mrginite de
conturul urmrit. Dac notm cu A variabila-acumulator folosit pentru calculul ariei, iniial avem
0 A = i pentru fiecare nou pixel de contur ea este incrementat cu o valoare dependent de
poziia relativ a pixelului curent fa de cel precedent, conform tabelelor urmtor:

Sens orar parcurgere contur Sens trigonometric parcurgere contur
Cod x y A Cod x y A
0 +1 0 +y 0 +1 0 -y
1 +1 +1 +y+0.5 1 +1 +1 -y-0.5
2 0 +1 0 2 0 +1 0
3 -1 +1 -y+0.5 3 -1 +1 +y+0.5
4 -1 0 -y 4 -1 0 +y
5 -1 -1 -y-0.5 5 -1 -1 +y-0.5
6 0 -1 0 6 0 -1 0
7 +1 -1 +y-0.5 7 +1 -1 -y+0.5

Dac valoarea final obinut pentru arie este negativ s-a parcurs un contur interior, deci
nu avem de-a face cu un obiect autentic. Aria calculat pote fi folosit nc din aceast etap
pentru selectarea obiectelor foarte mici n scopul eliminrii lor.
Odat localizat, obiectul ar putea fi salvat i ters din imagine. De notat c este mai
corect tergerea obiectelor din interiorul conturului nchis depistat dect tergerea tuturor
pixelilor din dreptunghiul de ncadrare, deoarece astfel se evit tergerea unor informaii utile ca
n exemplul urmtor:

terge
obiect
terge
obiect

Fig. 2. tergerea eronat a obiectelor localizate.

Apoi se reia baleiajul de la exact aceeai linie (Ys), n cutarea altor obiecte. Obiectele
prea mici sau prea mari se vor elimina (filtrul logic). Condiiile de eliminare folosite sunt
urmtoarele:

3 2 1
1 sau ) ( sau ) ( Th P(i,j)] [ Th Y Y Th -X X
MAX
MIN
MAX
MIN
X
X i
Y
Y j
MIN MAX MIN MAX
< < <

= =
(6)

6 5 4
1 sau ) ( sau ) ( Th P(i,j)] [ Th Y Y Th -X X
MAX
MIN
MAX
MIN
X
X i
Y
Y j
MIN MAX MIN MAX
< > >

= =
(7)

20.3. Localizarea zonelor de text din imagine.
O component important a procesului de pregtire a unui document pentru recunoatere
este separarea zonelor de text din documentul scanat. O pagin document obinuit poate conine
nu numai text ci i imagini, desene, grafice, etc.
Separarea zonelor de text dintr-o imagine scurteaz semnificativ timpul de operare, tiut
fiind faptul c operaiile de netezire obiecte, localizare obiecte, ordonare pe rnduri i coloane,
etc. dureaz destul de mult i aplicarea unor algoritmi specifici care s limiteze aria de interes
doar la zonele de text este n msur s micoreze timpul de rspuns al sistemului de recunoatere.
20. Recunoaterea automat a textelor tiprite.
273
Algoritmul RLSA (Run Length Smoothing Algorithm) conecteaz mpreun n aceeai
zon caractere care sunt separate de mai puin de un numr dat de pixeli. Acest algoritm se aplic
pe vertical i orizontal iar rezultatul final se obine printr-o intersecie logic ntre cele dou
imagini binare astfel obinute. Rezult astfel blocuri pentru fiecare rnd de text. Apoi blocurile
(deci rndurile de text) se concateneaz pentru a forma paragrafe.
Iniial obiectele din imagine pot fi clasificate n 6 tipuri (clase):
- Tip 1 : separator vertical. - Tip 4 : text;
- Tip 2 : text sau zgomot; - Tip 5 : tabel, diagram sau grafic;
- Tip 3 : separator orizontal; - Tip 6 : imagine "halftone";

Testele de mrime se refer la nlimea obiectelor i la raportul lime/nlime, iar testul
de "halftone" verific conectivitatea ntre liniile adiacente ale aceluiai bloc, prin studierea LAG
(Line Adjacency Graph) ataat blocului curent. Obiectele cu lime mare pot fi ncadrate ntr-unul
din tipurile (2), (3), sau (4); un obiect cu nlime mare dar cu lime foarte mic va fi un
separator vertical (6), etc.
Bloc
test mrime
test mrime, nalime/lime test "halftone"
test "halftone" test separator liniar
test separator liniar
Tip 1 Tip 2 Tip 3 Tip 4 Tip 5 Tip 6

Fig. 3. Clasificarea obiectelor din imagine funcie de dimensiuni.

Estimarea nclinrii liniei de baz a rndurilor de text se poate face de asemenea prin mai
multe metode. Se folosete curent o tehnic LMS de potrivire a unei linii care trece prin centrul
blocului ataat unui rnd de text. Pot apare erori de estimare din cauza nlimii diferite a
caracterelor n limbile ce folosesc caractere latine (ex.: "h" fa de "e"). Deoarece frecvena cea
mai mare de apariie o au caracterele cu nlime mic ("m","n","e","a","s", etc.), eliminndu-le
pe celelalte, se poate micora eroarea de estimare a acestui unghi.

20.4.Definirea relaiilor ntre obiecte.
Dou obiecte "i" i "j" se pot considera ca aparinnd aceluiai rnd din document dac:
)] j ( Y ), i ( Y min[ )] j ( Y ), i ( Y max[
MAX MAX MIN MIN
<
Dac ns avem de-a face cu o scanare relativ incorect, adic rndurile tiprite apar
nclinate n imaginea scanat, atunci regula anterioar nu mai este valabil.
Evident, pot fi utilizate tehnici mai performante de separare a rndurilor ntr-o imagine
scanat, cum ar fi algoritmul urmtor:
a) ordoneaz obiectele n ordinea cresctoare a lui
MIN
X ;
20. Recunoaterea automat a textelor tiprite.
274
b) pentru primul obiect din lista ordonat se selecteaz vecinul lui din dreapta, adic acel
obiect "i" pentru care:
)] i ( Y ), 1 ( Y min[ )] i ( Y ), 1 ( Y max[
MAX MAX MIN MIN
< i
)] K ( X [ min ) i ( X
MIN
,... 2 k
MIN
=
=
c) Se selecteaz succesiv obiectele din acelai rnd, folosind procedura de cutare
anterioar. Cutarea se oprete cnd nu mai exist obiecte care s ndeplineasc condiiile de
mai sus. Se obine o secven de obiecte aflat, n ordinea selectrii, pe acelai rnd, de la
stnga la dreapta.
d) Se elimin din irul ordonat obiectele marcate anterior ca aparinnd unui rnd. Se repet
paii b), c), d) ai algoritmului, plecnd de fiecare dat de la primul obiect din irul ordonat.
Obiectele din acelai rnd pentru care este ndeplinit condiia:
)] j ( X ), i ( X min[ )] j ( X ), i ( X max[
MAX MAX MIN MIN
<
aparin aceluiai caracter, deci ele vor fi concatenate prin plasarea lor ntr-o fereastr cu
coordonatele colurilor:
)]) j ( Y ), i ( Y min[ )], j ( X ), i ( X (min[
MIN MIN MIN MIN
i
)]) j ( Y ), i ( Y max[ )], j ( X ), i ( X (max[
MAX MAX MAX MAX

O alt procedur care ar putea fi folosit implic utilizarea unor ferestre mobile, i este
descris n continuare:
a) ordoneaz obiectele n ordinea cresctoare a lui
MIN
X ;
b) pentru primul obiect din lista ordonat, care implicit este plasat pe prima poziie din
stnga a unui rnd oarecare se construiete o fereastr avnd ordonatele date de:
[ ] + ) -Y Y ( k Y , ) -Y (Y -k Y
MIN MAX MIN MIN MAX MIN

cutarea fcndu-se n aceast fereastr, dup deplasarea ei pe orizontal, ctre dreapta.


Fig. 4. Fereastr mobil de cutare a caracterelor.

Avantajul acestei metode este evident n cazul n care apar caractere concatenate formate
din obiecte care se ating, caz n care strategia bazat pe recunoaterea obiectelor eueaz.

O alt variant determin, dup localizarea primului obiect, valoarea 2 / ) Y Y (
MAX MIN
+ ,
cutarea urmtoarelor obiecte facndu-se n stnga i n dreapta obiectului gsit, de-a lungul liniei
cu ecuaia:
. const 2 / ) Y Y ( y
MAX MIN
= + =
Se remarc posibilitatea funcionrii incorecte a acestei variante pentru anumite caractere
speciale, precum ":", ";", ".", ",", etc. Amplasarea corect n text a acestor simboluri se poate face
ulterior.
20. Recunoaterea automat a textelor tiprite.
275
Dac nu se execut n aceast faz operaia de asamblare a caracterelor compuse din mai
multe simboluri, asamblarea poate fi fcut mai trziu, pe baze logice. Ctre clasificator vor fi
trimise n acest caz nu caractere ci obiecte. Lista obiectelor ce pot rezulta n urma operaiei de
localizare (fr asamblare) este:
Cifrele(10): 01234567890;
Litere mici(23): abcdefghklmnpqrstuvwxyz;
Litere mari(25): ABCDEFGHIJKLMNPQRSTUWVXYZ;
Caractere speciale(18): ( ) [ ] { } @ # $ & * + / \ < > ^ ~
Alte caractere i fragmente de caractere(8):
- punct, virgul, bar orizontal, bar vertical;
- "i fr punct", "j fr punct";
- "semnul ntrebrii fr punct";
- "0 de la procent %".

Rezult un total de 84 simboluri la care, pentru cazul limbii romne, ar putea fi adugate
cciulia de la "" i "". Pot fi folosite n acest scop ns ultimele dou simboluri de la caractere
speciale (^ i ~), deoarece diferenierea ntre cele dou perechi de simboluri se face relativ uor
din studiul poziiilor relative ale obiectelor aflate pe acelai rnd i la aceeai abscis: "^" i "~"
apar izolate, pe cnd cciuliele apar deasupra unui "i fr punct", respectiv "a".
Caracterele "0"(zero), "o"(o mic) i "O"(O mare), datorit formei lor mult prea
asemntoare vor fi considerate ca reprezentnd un singur caracter. Diferenierea lor se va face
din analiza contextului, eventual din estimarea proporiilor.
Odat recunoscute aceste obiecte, recunoaterea caracterelor compuse se face dup
urmtorul ir de reguli:

"."(punct) deasupra unui "i fr punct" ==> caracterul "i";
"."(punct) deasupra unui "j fr punct" ==> caracterul "j";
"0" n stnga-sus fa de obiectul "/" i un alt "0" n dreapta-jos fa de acelai obiect "/"
==> caracterul "%";
"."(punct) deasupra unui "."(punct) ==> caracterul ":";
"."(punct) deasupra unui ","(virgula) ==> caracterul ";";
"." (punct) sub o bar vertical ==> caracterul "!";
"." (punct) sub "semnul ntrebrii fara punct" ==> caracterul "?";
n plus, pentru limba romna, apar regulile:
"~" deasupra unui obiect "a" ==> caracterul "a";
"^" deasupra unui obiect "a" ==> caracterul "a";
"^" deasupra unui "i fr punct" ==> caracterul "i";
"," (virgula) sub un obiect "s" ==> caracterul "s";
"," (virgula) sub un obiect "t" ==> caracterul "t";
"," (virgula) sub un obiect "S" ==> caracterul "S";
"," (virgula) sub un obiect "T" ==> caracterul "T";
"-" (minus) sub sau deasupra unui alt "-" ==> caracterul "=".

Un alt set de reguli suplimentare pot fi folosite pentru a elimin anumite tipuri de erori,
destul de frecvente, precum confuzia ntre "."(punct), ","(virgula),"^" i "~":
","(virgula) sub un "! fr punct" se transform n "." pentru a forma caracterul "!";
","(virgula) sub un "? fr punct" se transform n "." pentru a forma caracterul "?";
","(virgula) deasupra unui "i fr punct" se transform n "." pentru a forma caracterul
"i";
20. Recunoaterea automat a textelor tiprite.
276
","(virgula) deasupra unui "j fr punct" se transform n "." pentru a forma caracterul
"j";
"."(punct) sub un caracter "s", "S", "t", "T" se transform n obiectul "virgul" pentru a
forma caracterele din limba romn "s", "S", "t", "T";

20.5. Algoritm de segmentare a textului prin analiz morfologic.
n acest paragraf se descrie un algoritm original de segmentare a textului prin analiza
morfologic a obiectelor din imagine. El se bazeaz pe folosirea unor informaii apriorice
referitoare la structura oricrui text tiprit.

Orice text tiprit poate fi definit ca o mulime de obiecte (care pot fi caractere sau pri
din caractere cum ar fi punctul literei "i") a cror poziii relative permit gruparea lor n
caractere, a caracterelor n cuvinte, a cuvintelor n rnduri i, eventual, a rndurilor n
paragrafe i a paragrafelor n coloane.

Aceast definiie constituie cheia algoritmului care va fi descris n continuare.
Doar cteva caractere sunt compuse din mai multe obiecte. Pe lng "i", "j", "!"(semnul
exclamrii), "?"(semnul ntrebrii), ":"(dou puncte), ";"(punct i virgul), ""(ghilimele) i
"%"(procent) care se folosesc n mai toate limbile de origine european, s-au mai introdus n
studiu caracterele specifice limbii romne: "", "", "", "", "".
Propoziiile urmtoare definesc poziiile relative ale obiectelor din cadrul caracterelor
compuse:
Toate aceste caractere compuse sunt alctuite din cte dou obiecte, cu excepia
caracterului "%"(procent).
Toate caracterelor compuse se caracterizeaz prin amplasarea relativ a celor dou obiecte
componente "unul deasupra celuilalt", cu excepia caracterelor ""(ghilimele) i
"%"(procent).
Caracterul ""(ghilimele) este format din dou obiecte de dimensiuni aproximativ egale,
mai mici dect caracterele necompuse i amplasate pe aceeai linie
Caracterul "%"(procent) este compus din trei obiecte, un "0" n stnga-sus fa de obiectul
"/" i un alt "0" n dreapta-jos fa de acelai obiect "/".
Analiznd, pe baza propoziiilor precedente, obiectele localizate ntr-o imagine se
realizeaz gruparea obiectelor n caractere.
Un alt grup de reguli poate fi definit pentru gruparea caracterelor n cuvinte pentru
limbile de origine european.
n cadrul unui cuvnt, caracterele se poziioneaz pe aceeai linie, unul n stnga celuilalt.
Distanele dintre caractere sunt sensibil mai mici dect distanele dintre cuvinte.
Urmtorul grup de reguli poate fi definit pentru gruparea cuvintelor n rnduri pentru
limbile de origine european.
n cadrul unui rnd, cuvintele se poziioneaz pe aceeai linie, unul n stnga celuilalt.
Distanele dintre coloane sunt sensibil mai mari dect distanele dintre cuvinte.
Pentru gruparea rndurilor n paragrafe, funcie de stilul de tehnoredactare ales, poate fi
folosit una din regulile urmtoare (de obicei doar una din ele este adevrat).
Distana dintre dou paragrafe este mai mare ca distana dintre dou rnduri.
Rndul de nceput al unui paragraf are limita stng sensibil mai mare dect limita stnga
a urmtorului rnd din paragraf.
Pentru gruparea paragrafelor n coloane, poate fi folosit una din regulile urmtoare (de
obicei doar una din ele este adevrat).
20. Recunoaterea automat a textelor tiprite.
277
Paragrafele din aceeai coloan au aceeai limit stng i (aproximativ) aceeai limit
dreapt.
Distanele pe orizontal dintre coloane sunt sensibil mai mari dect distanele dintre
cuvinte.
Distanele pe vertical dintre coloane sunt sensibil mai mari dect distanele dintre
paragrafe.
Adesea segmente de linie suplimentare se folosesc ca separatori de coloane sau pentru
separarea articolelor ntre ele.
Relaiile dimensionale definite pn acum urmeaz a fi traduse n relaii matematice mai
departe. Folosind regulile descrise aici s-a dezvoltat un algoritm original de segmentare a textului
din imaginile digitale.

20.5.1. Conectarea obiectelor.
n aceast faz se urmrete construcia unui graf orientat care s descrie ct mai fidel
relaiile dintre obiectele localizate n imagine. Fiecare din nodurile acestui graf este aferent unuia
din obiectele detectate n imagine. Conexiunile dintre ele (arcele) se construiesc pe baza poziiilor
relative are obiectelor corespunztoare, folosind un set de reguli deduse folosind propoziiile
definite n paragraful urmtor.
n faza iniial se face o conectare preliminar a obiectelor, dup care se ncearc tratarea
conexiunilor multiple (conexiuni de la sau ctre un nod comun).
Regula folosit n aceast faz iniial este dat de:
Orice obiect se conecteaz cu cel mai apropiat obiect aflat n dreapta sa, pe aceeai linie.
Implementarea acestei reguli se realizeaz principial n doi pai:
Se conecteaz mai nti orice obiect cu toate obiectele aflate n stnga sa pe acelai rnd.
Pentru orice triplet de obiecte {A, B, C} aflate n aceast ordine pe acelai rnd, n
perechea de conexiuni [A->B] i [A->C] se nlocuiete ultima conexiune cu [B->C].
Graful orientat care se obine n aceast faz din imaginea unei zone de text va conine
conexiuni multiple doar pentru caracterele compuse. Prezena n imagine a altor zone diferite de
cele de text (linii, grafice, imagini) genereaz conexiuni multiple suplimentare. Dup tratarea
acelor conexiuni multiple datorate caracterelor multiple, se poate presupune cu un grad extrem de
mare de siguran, c toate conexiunile multiple rmase sunt aferente obiectelor de tip linie,
grafic, imagine, dar nu obiectelor de tip text.
Pentru fiecare obiect din imagine (nod n graf) se rein urmtoarele informaii:
Coordonatele punctului de start pentru parcurgerea conturului; ele sunt necesare n
acele cazuri n care dreptunghiurile de ncadrare ale caracterelor alturate se suprapun,
caz destul de des ntlnit dac caracterele din text sunt de tip italic. Coordonatele
acestui punct de start sunt necesare pentru selecia rapid a obiectului vizat din
dreptunghiul de ncadrare;
Coordonatele dreptunghiului de ncadrare;
Lista referinelor ctre obiectele int cu care acest obiect este conectat;
Lista referinelor ctre obiectele rdcin conectate cu acest obiect;
Indicator pentru cazul in care obiectul curent este ataat unui alt obiect mpreun cu
care formeaz un obiect compus;
Pentru accelerarea manipulrii informaiilor referitoare la obiectele din imagine i
conexiunile ntre ele se poate completa lista precedent cu:
Numrul obiectelor int cu care este conectat obiectul curent;
Numrul obiectelor rdcin conectate cu acest obiect;
Indicator pentru obiectele aflate la nceput de rnd de text.

20. Recunoaterea automat a textelor tiprite.
278
20.5.2. Tratarea conexiunilor convergente.
Plecnd de la ipoteza c unele din conexiunile multiple rmase sunt datorate caracterelor
compuse din mai multe obiecte, se verific poziiile relative ale acestor obiecte i dac ele satisfac
ipotezele corespunztoare descrise n paragraful 20.4, vor fi etichetate n mod corespunztor.
n figurile urmtoare este prezentat un caz tipic de evoluie a unei conexiuni convergente
datorate unui caracter compus (litera "i" n acest caz). Ambele obiecte componente ale acestui
caracter se afl pe acelai rnd cu caracterul "b", ceea ce duce la apariia conexiunii convergente.
Deoarece obiectele "punct" i "m" nu se afl n aceeai coloan, conexiunea de la obiectul
"punct" la obiectul "b" se nlocuiete cu conexiunea mai scurt de la obiectul "punct" la obiectul
"m". Se obine o conexiune multipl similar, care se trateaz folosind aceleai reguli. Situaia
obinut acum este diferit, deoarece obiectele rdcin ale conexiunii multiple se afl acum n
aceeai coloan, deci se poate presupune c ele aparin aceluiai caracter. Ca urmare, se va
eticheta ntr-un mod special obiectul rdcin mai mic ("punct") i va fi ataat de obiectul
rdcin mai mare "i fr punct".




Fig. 5. Tratarea conexiunilor convergente.

Generaliznd, o conexiune convergent se trateaz folosind urmtoarele dou reguli:
Dac obiectele rdcin ale unei conexiuni convergente se afl n coloane diferite,
conexiunea de la obiectul rdcin aflat mai la stnga capt ca destinaie cellalt obiect
rdcin.
Dac obiectele rdcin ale unei conexiuni convergente se afl n aceeai coloan, obiectul
rdcin mai mic se conecteaz la obiectul rdcin mai mare, conexiunea sa ctre
obiectul destinaie este distrus, el fiind etichetat ca obiect "ataat".

20.5.3. Tratarea conexiunilor divergente.
Se va folosi i n acest caz ipoteza c unele din conexiunile multiple rmase sunt datorate
caracterelor compuse din mai multe obiecte. Verificnd poziiile relative ale acestor obiecte pe
baza ipotezelor corespunztoare descrise n paragraful 20.4, ele pot fi tratate n mod asemntor
conexiunilor convergente.
n figurile urmtoare este prezentat un caz tipic de evoluie a unei conexiuni divergente
datorate unui caracter compus (litera "i"). Ambele obiecte componente ale acestui caracter se afl
pe acelai rnd cu caracterul "l", ceea ce duce la apariia conexiunii divergente.
Deoarece obiectele "punct" i "a" nu se afl n aceeai coloan, conexiunea de la obiectul
"l" la obiectul "punct" se nlocuiete cu conexiunea mai scurt de la obiectul "a" la obiectul
"punct". Se obine o conexiune divergent similar, care se trateaz folosind aceleai reguli.
20. Recunoaterea automat a textelor tiprite.
279
Situaia obinut dup trei pai este diferit, deoarece obiectele int ale conexiunii multiple se
afl acum n aceeai coloan, deci se poate presupune c ele aparin aceluiai caracter. Ca urmare,
se va eticheta ntr-un mod special obiectul rdcin mai mic ("punct") i va fi ataat de obiectul
rdcin mai mare "i fr punct".




Fig. 6. Tratarea conexiunilor divergente.

Generaliznd, o conexiune divergent se trateaz folosind urmtoarele dou reguli:
Dac obiectele int ale unei conexiuni convergente se afl n coloane diferite, conexiunea
ctre la obiectul int aflat mai la dreapta capt ca rdcin cellalt obiect int.
Dac obiectele int ale unei conexiuni divergente se afl n aceeai coloan, obiectul int
mai mic se conecteaz la obiectul int mai mare, conexiunea sa de la obiectul rdcin
este distrus, el fiind etichetat ca obiect "ataat".
Se poate remarca cu uurin simetria existent n modul de tratare a conexiunilor
convergente i a celor divergente.

20.5.4. Tratarea conexiunilor multiple reziduale.
Conexiunile multiple rmase n aceast faz a algoritmului pot fi datorate unor cauze
diferite:
Erori de scanare, de obicei sub forma caracterelor fragmentate, ceea ce duce la mai mult de
dou obiecte pentru un caracter. De asemenea prezena zgomotului poate avea acelai
efect.
Prezena n imaginea scanat a unor obiecte diferite de text: linii, desene, imagini
binarizate (halftone images).
Prezena n imaginea scanat, n zonele de text, a formulelor matematice.
Obiectele implicate n conexiunile multiple rmase se trateaz separat, ncercndu-se fie
concatenarea lor, fie eliminarea unor conexiuni inutile, fie chiar eliminarea unora din obiecte din
faza de recunoatere. Se apeleaz pentru aceasta la criterii dimensionale i la analiza poziiei lor
relative.
Apariia n text a caracterelor de tip italic duce adesea la suprapunerea drepunghiurilor
de ncadrare a caracterelor alturate.

20. Recunoaterea automat a textelor tiprite.
280

Fig. 7. Suprapunerea dreptunghiurilor de ncadrare.
Aceasta nu afecteaz cu nimic comportarea algoritmului de segmentare, atta timp ct
caracterele nu se ating ntre ele. n faza de recunoatere trebuie ns avut n vedere faptul c nu
trebuie analizat ntreg coninutul dreptunghiului de ncadrare, ci doar caracterul corespunztor.

20.5.5. Ordonarea obiectelor din text.
Folosind metoda descris pn acum, este foarte simplu de efectuat ordonarea obiectelor
din text, pentru a furniza la intrarea clasificatorului caracterele n ordinea natural a scrisului i a
stabili n acelai timp localizarea final a celorlalte componente ale documentului: cuvinte,
rnduri, paragrafe, eventual coloane, linii, desene, imagini.
Folosind informaia din structura de date care descrie graful orientat obinut pn acum se
realizeaz mai nti gruparea obiectelor n caractere, grupnd obiectele etichetate ca ataate
astfel nct ele vor fi considerate mai departe ca formnd mpreun un caracter.
Gruparea caracterelor n cuvinte este echivalent cu detectarea separatorilor (spaiilor)
dintre cuvinte. Este o operaie simpl care are ca efect etichetarea conexiunilor ntre acele
caractere care sunt suficient de deprtate ntre ele. Pragul peste care distana ntre dou caractere
se consider a fi un separator de cuvnt se determin foarte simplu, ca o fraciune din nlimea
caracterelor respective. Dup faza de recunotere ntre caracterele recunoscute corespunztoare se
vor nsera unul sau mai multe caractere spaiu, funcie de distana msurat.
O distan foarte mare ntre dou caractere aflate pe acelai rnd poate nsemna faptul c
ele aparin unor coloane de text diferite.

Coloana 1 Coloana 2 Coloana 3

Fig. 8. Ordonarea rndurilor i coloanelor de text.

n acest caz conexiunea ntre caracterele corespunztoare trebuie distrus, iar n aplicarea
algoritmului de ordonare a rndurilor de text trebuie analizat poziia relativ a rndurilor
depistate, nu doar ordonata nceputului de rnd.


20.6. Extragerea trsturilor.
Faza de extragere a trsturilor presupune parcurgerea urmtorilor pai:
a) Scalarea simbolurilor:
20. Recunoaterea automat a textelor tiprite.
281

Se obine o matrice binar de dimensiune constant, coninnd imaginea scalat. Astfel
este rezolvat invariana la scalare pe orizontal i vertical, impus de aplicaie.
b) Transformata Cosinus Discret bidimensional:

Deoarece implementarea transformrii optimale (Karhunen-Loeve) este dificil, modelnd
intrarea {X} cu un proces Markov de ordinul unu, cea mai bun aproximare a transformrii
Karhunen-Loeve discret este DCT (Transformata Cosinus Discret). Aceast modelare nu este
foarte restrictiv i se poate folosi cu succes n multe aplicaii.
Pentru calculul DCT exist nu numai algoritmi rapizi de calcul, ci i circuite specializate
de mare vitez.
Pentru cazul bidimensional se folosete:
)
N
v k
( cos )
N
u j
( cos f(j,k)
N 2
1
F(u,v)
1 N
0 j
1 N
0 i

=
=
rezultnd o matrice de aceeai dimensiune, cu valori reale, slab corelate. Valorile
semnificative ale acestei matrici sunt plasate n colul din stnga sus.
c) Ordonarea Zig - Zag.
Este o procedur de vectorizare a matricii DCT, dup regula din figura de mai jos:

Mat[8][8] ===> Z[64]; Mat[D][D] ===> Z[D*D];
0 1
2
3
4
5 6
7
8
9
10
11
12
13
14 15
16
17
18
19
20
21
22
23
24
25
63 62
26
27 28
29
30
31
32
33
34
35 36
37
38
39
40
41
42
43
61
60
59
58 57
56
55
54
53
52
51
50
49 48
47
46
45
44

Fig. 9. Ordonarea Zig-Zag.

Deoarece DCT bidimensional concentreaz informaia din imaginea iniial n colul din
stnga sus al matricii rezultate, dup ordonarea Zig - Zag aceeai informaie va fi regsit n
primele elemente ale vectorului obinut.
d) Selecia trsturilor.
Se rein primele F valori din vectorul Z[D*D], adic doar o fraciune din valori, cele
marcate cu negru n figura de mai sus. Conform afirmaiilor anterioare, aceste elemente
concentreaz cea mai mare parte din informaia din imaginea iniial i ele vor fi folosite n faza
de recunoatere.
20. Recunoaterea automat a textelor tiprite.
282
Acest bloc funcional elimin trsturile care sunt neimportante n faza de recunoatere.
Ieirile lui sunt aplicate la intrarea clasificatorului neural. Soluia prezentat de obinere a
trsturilor poate fi implementat pe un suport hardware dedicat de mare vitez, care poate fi
utilizat pentru a rezolva probleme similare.

20.7. Clasificarea propriu-zis.
La intrarea n sistemul de clasificare se aplic, pentru fiecare caracter, vectorul de trsturi
extrase n faza precedent, la care se adaug dimensiunile normalizate ale fiecrui caracter
(normalizarea se face prin raportare la nalimea estimat a rndului). De asemenea se utilizeaz i
raportul dimensiunilor dreptunghiului de ncadrare.
dX=Dx/R
dY=Dy/R
L=Dx/Dy

Se remarc faptul c aceste noi trsturi sunt i ele invariante la scalare, aa cum aplicaia
o cere.
Caracterele care trebuiesc recunoscute sunt 89 la numr:
Cifrele(10): 0123456789;
Litere mici(25): abcdefghijklmnpqrstuvwxyz;
Litere mari(25): ABCDEFGHIJKLMNPQRSTUWVXYZ;
Caractere speciale(29): ( ) [ ] { } @ # $ & * + / \ < > ^ ~
. ,(virgula, apostroafe) -(minus, underline) | ? ! % " ; : =
Pentru limba romn mai apar n plus i caracterele "", "", "", "", "".
Numrul lor poate fi redus la 78 dac se realizeaz recunoaterea unor caractere simple
nc din faza de localizare, utiliznd pentru aceasta doar msurtorile dimensionale (trsturi)
menionate mai sus: dimensiunile normalizate la nlimea estimat a rndului pentru fiecare
caracter i raportul dimensiunilor dreptunghiului de ncadrare. Pot fi astfel recunoscute
urmtoarele caractere: -(minus), _(underline), =(egal), !(semnul exclamrii), |(bara vertical),
.(punct), ,(virgula), ;(punct i virgul, :(dou puncte), "(ghilimele), ' i `(apostroafe).
Complexitatea problemei poate fi micorat mprind-o n mai multe sarcini mai mici, i
anume alctuind cteva grupe de caractere (fiecare caracter = o clas) i apoi construind cte un
clasificator pentru fiecare grup de caractere. Trsturile extrase se aplic simultan la intrrile
tuturor clasificatorilor i n mod normal unul singur va furniza decizia de recunoatere. Rolul
logicii de decizie este de a furniza o decizie corect n cazurile cu o oarecare doz de
incertitudine, utiliznd informaiile furnizate de toate clasificatoarele. Schema bloc a unui
asemenea sistem este prezentat n figura 10.
Pentru simbolurile nerecunoscute se mai face o ncercare n ipoteza c ele reprezint
caractere concatenate: se ncearc separarea lor cu metode specifice, apoi rezultatul este iari
aplicat la intrarea clasificatorului pentru o nou ncercare.
Avantajul unei asemenea scheme apare evident n cazul unei structuri de calcul paralel
care s implementeze reelele neurale componente ale clasificatorului. Dei aceast variant este
optim, se poate utiliza, pentru simplificarea problemei, un preclasificator care s specifice crei
grupri i aparine fiecare caracter de intrare i n consecin, care reea neural trebuie folosit
pentru recunoaterea efectiv.
Aceast variant este descris n schema bloc din figura 11:

20. Recunoaterea automat a textelor tiprite.
283
extragere
trsturi
selecie
trsturi
clasificator
neural grupa 1
clasificator
neural grupa 2
clasificator
neural grupa 3
clasificator
neural grupa G
decizie
rejecie forme nerecunoscute
atinse
intrare
L
o
g
i
c


d
e

d
e
c
i
z
i
e
tratare
caractere

Fig. 10. Sistem de recunoatere caractere, varianta 1.
extragere
trsturi
grupare
forme
clasificator
neural grupa 1
clasificator
neural grupa 2
clasificator
neural grupa 3
clasificator
neural grupa G
decizie
rejecie forme nerecunoscute
tratare
forme
nerecunoscute
intrare
i selecie
comutare
comutare
C
o
m
u
t
a
t
o
r
C
o
m
u
t
a
t
o
r
Fig. 11. Sistem de recunoatere caractere, varianta 2.

Folosind un algoritm de grupare, cum ar fi algoritmul LBG (Linde-Buzo-Gray) de
cuantizare vectorial, se construiesc prin antrenare nesupervizat un numr (predeterminat sau nu,
funcie de algoritmul ales) de G grupe, fiecreia atandu-i-se cte un clasificator. Trsturile
extrase se aplic modulului de grupare care indic crei grupe i aparine fiecare caracter ce
trebuie recunoscut. Odat aceast informaie cunoscut, se selecteaz, folosind comutatorul,
clasificatorul ataat grupei determinate. Ieirea lui va furniza decizia de apartenen a caracterului
de intrare la una din clasele posibile sau l va rejecta n cazul eurii operaiei de recunoatere.
20. Recunoaterea automat a textelor tiprite.
284
Schema simplificat a unui sistem de recunoatere este:

extrage
trsturi
selecie
trsturi
clasificator
reea
neural
decizie
intrare

Fig. 12. Schema simplificat a unui sistem de recunoatere.

n proiectarea acestui clasificator s-a urmrit, pe lng optimizarea timpului de rspuns
(ct mai mic) i a ratei de recunoatere (ct mai mare), i posibilitatea unei implementri
hardware, ntr-o structur dedicat de mare vitez, care s poat rezolva probleme asemntoare
(dar nu identice).
Selectorul de trsturi poate reine cele mai semnificative caracteristici furnizate de
extractorul de trsturi. O anume decizie a clasificatorului nseamn o configuraie particular de
activare a neuronilor de pe stratul de ieire a reelei.
Primele F elemente (F<L*L) ale vectorului Z se aplic la intrarea unei reele neurale de
tipul perceptron cu trei straturi i nelinearitate sigmoidal simetric (+/-1) la toi neuronii.
Numrul de neuroni folosii n primul din cele trei straturi depinde de numrul de trsturi
extrase. Stratul de ieire trebuie s aib un numr de neuroni dependent de numrul de clase din
grupa corespunztoare i de regula de decizie adoptat.
Dac numrul de neuroni este egal cu numrul de clase din grup, regula de decizie
adoptat este:
Caracterul
i
C aparine clasei "K" dac:
Yk>Prag i Yj<(1-Prag), oricare k j , unde 0<Prag<1.
Se remarc faptul c, pentru obiectele nerecunoscute, reeaua neural trebuie s rspund
n acest caz cu toate ieirile inactive sau cu mai mult de o ieire activ. Caracterele nerecunoscute
corespund fie caracterelor aparinnd altor grupri, fie caracterelor concatenate, caz n care toate
reelele neurale vor trebui s rspund identic.
Dac numrul de neuroni este mai mic dect numrul de clase din grup, regula de decizie
adoptat poate fi:
Caracterul
i
C aparine clasei "K" dac:
{ 0 ] 2 [K div
P
= i Yp<(1-Prag) } sau { 0 ] 2 [K div
P
= i Yp>Prag },
unde p este numrul de ordine al ieirii, cu Ng]] log [ 5 . 0 [ p
2
+ = , iar Ng - numrul de
clase din grupa "g".
n acest caz p este lungimea minim de reprezentare n binar a lui Ng, iar la ieirea reelei
vor trebui activai doar acei neuroni corespunztori lui "1" logic n reprezentarea binar a lui K.
Pentru obiectele nerecunoscute reeaua va rspunde activnd neuronii de ieire dup o
configuraie corespunztoare codului 1 K + .
Pentru antrenare s-a folosit evident algoritmul "backpropagation" cu factorul de ctig
3 . 0 = , factorul de inerie 7 . 0 = .

20.8. Construcia setului de date de antrenament i test.
Pentru obinerea unui set de antrenament i test reprezentativ trebuiesc selectate
documente tiprite caracteristice unei game ct mai largi de fonturi, mrimi de simboluri i caliti
ale tipriturii. Vor trebui incluse, pentru acelai font, variantele normal, bold, italics i bold-
italics.
20. Recunoaterea automat a textelor tiprite.
285
Setul de antrenament conine simboluri etichetate din toate clasele i se remarc n plus
utilizarea unei clase de obiecte, "clasa de rejecie", care include, pentru fiecare grupare,
caracterele care nu aparin acelei grupri, plus un set de caractere concatenate. Ea permite, pentru
fiecare grupare n parte, obinerea unor rezultate net superioare.
Pentru determinarea claselor care aparin de fiecare grupare, s-a optat pentru utilizarea
algoritmului LBG (Linde-Buzo-Gray) de cuantizare vectorial, care este n esen un algoritm de
grupare cu numr predeterminat de clase. El permite construirea unui numr predeterminat de
grupe, coninnd formele cele mai apropiate.
Analiznd componena fiecrei clase, se poate decide care anume caractere vor fi atribuite
fiecrui clasificator. Tot astfel se pot trage concluzii privind probabilitile de eroare de clasificare
pentru diferite clase: vor fi confundate mai uor obiecte aflate n aceeai grupare i nu n grupri
diferite.
Cu ct sunt mai multe grupri, cu att complexitatea clasificatorului neural este mai mic
(scade numrul de neuroni de pe stratul intermediar i cel de ieire), ceea ce diminueaz timpul de
antrenament i spaiul de memorie ocupat de fiecare clasificator. Pe de alt parte, mrirea
numrului de grupri crete att timpul global de antrenament, ct i spaiul total de memorie
ocupat. n concluzie, numrul de grupri ale caracterelor trebuie s satisfac un compromis n
ceea ce privete timpul de antrenament i spaiul de memorie ocupat.
De notat faptul c, pentru o implementare paralel prima variant optimizeaz timpul de
rspuns.
Construcia efectiv a bazei de date pentru fiecare clasificator n parte se face selectnd un
set semnificativ de caractere extrase din documente, toate aparinnd gruprii aferente, la care se
adaug simbolurile pentru clasa de rejecie, conform celor de mai sus. Pentru fiecare asemenea
caracter se parcurg etapele: scalare, DCT-2D, ordonare Zig-Zag i selecie de trsturi.
Rezultatul este un vector de date, care se va salva ntr-un fiier pe disc.
Este foarte important pentru funcionarea corect a algoritmilor de antrenare (LBG i
backpropagation) ordinea de aplicare a datelor de intrare. Studiile efectuate au artat c pentru
algoritmul LBG este de preferat selecia unei ordini aleatoare de aplicare a vectorilor de trsturi
corespunztori claselor.
Pentru algoritmul de antrenare a perceptronului multistrat s-a optat pentru o ordine
aleatoare de aplicare a vectorilor de date, dar intercalnd ntre oricare doi asemenea vectori un
vector de trsturi corespunztor unui caracter din clasa de rejecie. O asemenea construcie
reuete s elimine majoritatea erorilor de tipul "caracter recunoscut greit" (confuzie de
caractere), tiut fiind faptul c erorile de tipul "caracter nerecunoscut" pot fi semnalate i deci
corectate interactiv n faza de exploatare.

20.9. Adaptarea setului de date de antrenament.
n exploatarea sistemului pot apare noi tipuri de fonturi ce trebuiesc recunoscute. De aceea
este necesar actualizarea setului de date de antrenament i reantrenarea periodic a
clasificatorului (reelelor neurale) folosit.
A adauga noile simboluri la setul de antrenament nu este o soluie eficient deoarece astfel
crete necondiionat dimensiunea setului de antrenament. S-a impus condiia de limitare a
numrului de simboluri din setul de antrenament pentru limitarea spaiului de memorie folosit i a
timpului necesar pentru reantrenare.
Soluia utilizat este de a ncepe cu un numr fix de simboluri n setul de antrenament i
apoi s se nlocuiasc succesiv simboluri din acele perechi de simboluri avnd cele mai mari
scoruri de coinciden, cu noile simboluri ce trebuiesc nvate. Algoritmul a fost testat folosind
caractere nerecunoscute sau recunoscute greit din setul de test, iar apoi adugnd n setul de
antrenament "greelile" furnizate de exploatarea sistemului de recunoatere.
20. Recunoaterea automat a textelor tiprite.
286
Algoritmul de actualizare a setului de antrenament utilizat se ruleaz pentru fiecare grup
de clase n parte, ncepe dup o prim antrenare a reelei neurale i a fost descris amnunit n
paragraful precedent.
Se elimin doar un singur simbol din fiecare pereche de simboluri corespunztoare celor
mai bune scoruri de coinciden. Se utilizeaz pentru aceasta regula:
L" " simbol elimin THEN ) ( IF
) (
,
) (
,
C
I L
N I 1
C
I K
N I 1
D Min ) (D Min

>
K" " simbol elimin ELSE
Aceast strategie selecteaz cele mai reprezentative simboluri pentru setul de antrenament
prin eliminarea acelor simboluri care sunt mai apropiate de vecinii lor din aceeai clas.

20.10. Detalii de implementare, rezultate obinute i concluzii.
Implementarea metodelor descrise anterior o constituie un program scris n Visual C++
6.0, care este prezentat succint n continuare. El este un mediu integrat care permite ncrcarea
doar a imaginilor bitmap Windows(BMP), color, n scar de gri, sau binare.
Deoarece sistemul de recunoatere propriu-zis lucreaz doar cu imagini binare (alb-negru),
programul include instrumentele necesare conversiei imaginilor color i n scar de gri. Imaginile
color se convertesc mai nti n imagini n scar de gri, atribuind fiecrui pixel un nivel de gri egal
cu luminana sa. Conversia imaginilor n scar de gri la imagini binare, adic binarizarea
imaginilor, se face semiautomat, prin analiza histogramei. Programul furnizeaz automat un prag
de segmentare, dar utilizatorul l poate schimba i verifica n acelai timp rezultatul segmentrii
(folosind butonul Preview).


Fig. 12. Binarizarea automat/interactiv a imaginilor.

Dup obinerea imaginii binare este efectuat segmentarea automat a textului prin
analiza morfologic a obiectelor din imagine. Imaginea urmtoare prezint un eantion de text
care va fi folosit n continuare pentru demonstrarea etapelor algoritmului de segmentare.

20. Recunoaterea automat a textelor tiprite.
287

Fig. 13. Imagine de test.

Algoritmul de localizare a obiectelor aplicat imaginii precedente furnizeaz o list se
structuri de date coninnd informaia necesar localizrii obiectelor din imagine. Algoritmul de
urmrire de contur folosit permite n acelai timp separarea contururilor exterioare de cele
interioare, calculul ariei mrginite de aceste contururi i eliminarea obiectelor de dimensiune prea
mic, aprute de obicei datorit zgomotelor care au afectat imaginea original.


Fig. 14. Localizarea obiectelor din imaginea de test.

Imaginea urmtoare prezint rezultatul conectrii obiectelor localizate n imagine. Se
conecteaz acele obiecte a cror poziie relativ ndeplinete setul de condiii descrise anterior.
Aici se poate remarca avantajul esenial al acestei metode. Din imagine a fost extras n urma
localizrii toat informaia necesar efecturii segmentrii i astfel volumul de date de prelucrat s-
a redus dramatic. Segmentarea nu se mai face opernd asupra unei imagini ci doar asupra unei
liste cu informaii despre obiecte.
Conectarea obiectelor poate fi vzut ca fiind construcia unui graf orientat ale crui
noduri sunt obiectele localizate n imagine. Conexiunile dintre obiecte pot fi doar de trei tipuri:
Conexiuni regulare, ntre caracterele aceluiai cuvnt;
Conexiuni tip separator de cuvinte, ntre ultimul caracter al unui cuvnt i primul
caracter al cuvntului urmtor de pe acelai rnd
Conexiuni tip ataament, care unesc obiectele componente ale unui caracter.
Datorit structurii complexe a textului (caractere de diferite mrimi, formate din dou sau
mai multe obiecte, grupate n cuvinte, rnduri, paragrafe, coloane), ct i prezenei liniilor,
graficelor i imaginilor ntr-un document scanat, n urma conectrii obiectelor se pot obine multe
conexiuni multiple, care trebuiesc analizate i eliminate sau etichetate corespunztor.

20. Recunoaterea automat a textelor tiprite.
288

Fig. 15. Conectarea obiectelor din imaginea de test.

n faza urmtoare se trateaz conexiunile divergente, conform regulilor descrise anterior n
acest capitol. Ca urmare, dup cum se poate remarca n figura urmtoare, ele vor fi fie eliminate,
fie transformate n conexiuni de tip ataament.


Fig. 16. Tratarea conexiunilor divergente.

n faza final a algoritmului de segmentare se prelucreaz conexiunile convergente, care,
ca i n cazul precedent, fie se transform n conexiuni de tip ataament, fie se elimin.
Analiza distanelor dintre caracterele conectate pn acum permite determinarea
conexiunilor de tip separator de cuvinte i eliminarea conexiunilor prea lungi (conexiuni ntre
rnduri coliniare dar din coloane diferite, conexiuni ntre caractere i linii, grafice sau imagini
prezente n documentul scanat).
Conexiunile multiple rmase dup aceast faz final trebuiesc eliminate, deoarece ele pot
proveni doar de la:
Formule matematice incluse n text;
Grafice, linii, imagini incluse n documentul scanat, foarte apropiate de zonele de text.

20. Recunoaterea automat a textelor tiprite.
289

Fig. 17. Tratarea conexiunilor convergente.

Aplicaia a fost conceput s permit crearea i ntreinerea unei baze de date de
antrenament pentru clasificator. Ca urmare, selectnd opiunea corespunztoare, dup localizarea
obiectelor din imagine i conectarea lor, caracterele (ordonate n ordinea natural a scrisului) pot
fi vizualizate i apoi etichetate de ctre utilizator, pentru a forma setul de caractere de
antrenament.
Imaginea fiecrui caracter etichetat este salvat sub form de fiier BMP, eticheta atribuit
lui fiind inclus n numele fiierului. n acest fel utilizatorul poate vizualiza rapid coninutul bazei
de date de antrenament i l poate modifica n sensul optimizrii lui.
n acest fel fiecare din caracterele etichetate este atribuit unei clase. Unele din obiectele
localizate pot fi incluse n clasa de rejecie, care trebuie s includ orice fel de obiect (fragment de
caracter, obiecte formate din mai multe caractere care se ating, etc) a crui aplicare la intrarea
clasificatorului trebuie s dea furnizeze decizia de simbol nerecunoscut.


Fig. 18. Etichetarea caracterelor localizate.

Aplicaia a fost implementat pe un calculator PC486, 66MHz. Timpul de recunoatere
obinut n acest stadiu al implementrii (localizare, scalare, DCT, reea neural) pentru o pagin
tipic este de aproximativ 40 secunde.
20. Recunoaterea automat a textelor tiprite.
290
Este de ateptat ca noi optimizri s mbunteasc considerabil acest timp. Nu se vor
face estimri asupra ratei de recunoatere dect dup trecerea unui timp de exploatere a
sistemului, cunoscnd dependena acesteia de componena setului de antrenament. Se ateapt o
mbuntire progresiv a ratei de recunoatere pe msura rulrii algoritmului de adaptare a
setului de antrenament.
Se poate nota dependena ratei de recunoatere de pragul Th de decizie. Un prag mare d
un grad mare de ncredere n deciziile de recunoatere corect, dar mrete i probabilitatea
erorilor de tipul "caracter nerecunoscut". Un prag optim este n jurul valorii Th=0.6.
Pentru micorarea timpului de rspuns n faza de exploatare cnd se ruleaz i algoritmul
de gestiune a setului de antrenament, s-a utilizat urmtoarea structur ce folosete dou
calculatoare de acelai tip, astfel conectate.

scanner PC 486 PC 386
ponderi actualizate ale ANN
nerecunoscute
"recunoatere" de antrenament"
"adaptarea setului
simboluri
task-ul

Fig. 18. Utilizarea on-line a algoritmului de adaptare a setului de antrenament.

Rularea aplicaiei furnizeaz simboluri nerecunoscute provenite, de obicei, de la un stil
nou de documente (alte fonturi, alt calitate a tipririi). Ele se adaug setului de test i apoi se
ruleaz procedura descris anterior de adaptare a setului de antrenament. Rezultatele se
materializeaz n actualizarea ponderilor reelelor neurale care alctuiesc clasificatorul.


Imagine halftone, desen sau grafic Text


20. Recunoaterea automat a textelor tiprite.
291

Fig. 19. Imagini tipice de test, prezentate schematic.

n figurile precedente sunt prezentate schematic situaii tipice de amplasare a textului n
imagine, care au fost folosite pentru analiza performanelor sistemului de recunoatere, n special
ale implementrii algoritmului de segmentare a textului. Imaginile de test folosite includ linii
verticale i orizontale de separare a coloanelor de text, dreptunghiuri (casete) care includ coloane
de text, imagini/desene nserate n text n diferite poziii i zone de text rotite cu un unghi mic fa
de orizontal.
Rndurile de text rotite fa de orizontal pot apare adesea ca rezultat al amplasrii
imperfecte a paginilor de text originale la operaia de scanare. Algoritmul de segmentare a
textului prin metoda proieciilor eueaz la asemenea imagini, dac dou rnduri succesive nu
sunt separate de cel puin o linie de pixeli albi (altfel proieciile lor se suprapun i segmentarea nu
mai este posibil). n acest caz se folosesc n prealabil algoritmi de ndreptare a liniilor de text
(deskew), pentru a asigura funcionarea corect a metodei proieciilor.
Adesea este foarte important forma conturului exterior al imaginilor/desenelor nserate n
text. Unii algoritmi de segmentare a textului expandeaz, din motive de vitez, obiectele diferite
de text la zone rectangulare. Ca urmare, documente precum cel din ultimul desen (Fig. 19) sunt
segmentate incorect de majoritatea sistemelor recunoatere existente.

Parametru/Metod Metoda proieciilor Analiz de textur Analiz morfologic
Calitate segmentare Calitate slab Calitate medie Calitate foarte bun
Vitez de rspuns Foarte rapid (3sec) Foarte lent (40sec) Vitez medie (10sec)
Precizie segmentare Precizie foarte bun Precizie slab Precizie foarte bun
Rnduri nclinate ndreptare rnduri(3sec) ndreptare rnduri(3sec) Imunitate complet

Tabelul precedent prezint sintetic o comparaie a principalilor parametri (calitate, vitez,
precizie, comportare la rnduri de text nclinate) care caracterizeaz diferii algoritmi de
segmentare de text de referin nglobai n diferite produse comerciale sau profesionale de
recunoatere de texte OCR (Optical Character Recognition). Calitatea medie a segmentrii
realizate de algoritmul bazat pe analiza de textur se refer la incapacitatea algoritmului de a
detecta liniile din imagine, mai ales dac acestea sunt apropiate de zonele de text. n schimb
algoritmul se comport foarte bine la discriminarea diferitelor zone de text ntre ele (text scris cu
caractere regulare / bold / italic / bold italic de dimensiuni apropiate). Viteza medie realizat de
algoritmul de segmentare a textului prin analiz morfologic poate fi mbuntit sensibil printr-
o implementare optimizat (prezenta implementare se bazeaz pe utilizarea intensiv a clasei
CPtrList din Microsoft Foundation Classes, foarte lent).
Figura urmtoare (Fig. 20) prezint un caz tipic de document scanat un obiect nserat n
text, n aa fel nct practic textul nconjoar obiectul. Forma nerectangular (discoidal n acest
caz) a obiectului, constituie un test dificil pentru ali algoritmi de segmentare a textului,
majoritatea eund.
20. Recunoaterea automat a textelor tiprite.
292
Algoritmii de segmentare bazai pe metoda proieciilor, urmrind cel mai adesea o
implementare de mare vitez, nu realizeaz localizarea obiectelor din imagine i ca urmare, dei
obiectul precedent ar putea fi eliminat din imagine folosind criterii dimensionale, algoritmul
eticheteaz drept text doar primele dou i ultimele trei rnduri din imagine, restul documentului
fiind categorisit drept grafic.
Produsele OCR testate au fost Recognita (Caere), Omnipage, Corel. Fiecare din ele
prezint att variante comerciale ct i profesionale de produse. Nucleul sistemului de
recunoatere nglobat n aceste produse nu variaz esenial de la o variant la alta. Opiunile
suplimentare furnizate de variantele profesionale se refer la seturi extinse de caractere pentru
limbi diferite, gam extins de formate de fiiere de intrare (imagini), gam extins de fiiere de
ieire (compatibile cu diferite editoare de text), posibilitatea utilizrii ntr-un mediu de producie,
etc. Toate aceste produse de referin au euat n segmentarea imaginilor urmtoare.




Fig. 20. Imagine de test i rezultatul segmentrii ei cu metoda propus.
20. Recunoaterea automat a textelor tiprite.
293
De asemenea rezultate eronate au furnizat OCR-urile de referin pentru imaginile
urmtoare, n timp ce algoritmul propus a funcionat corect, confirmnd imunitatea algoritmului la
rotaia imaginii cu unghiuri mici. Imaginea de test reprezint un paragraf text avnd rndurile
nclinate cu un unghi de
0
5 n sens trigonometric.



Fig. 21. Imagine de test i rezultatul segmentrii ei cu metoda propus.

Testele au confirmat robusteea metodelor de segmentare i recunoatere prezentate i
eficacitatea algoritmului de adaptare a setului de antrenament. Algoritmul de segmentare a
textului se comport calitativ mult mai bine dect orice produs similar existent. El este la fel de
precis sau chiar mai precis dect algoritmii folosii drept referin. Dei timpul de rspuns este
mai mare, trebuie inut cont c metoda prezentat elimin necesitatea aplicrii algoritmului de
ndreptare a rndurilor de text, iar implementarea realizat nu este complet optimizat.
De asemenea a fost confirmat ideea supradimensionrii iniiale a reelei neurale, tocmai
n scopul de a putea nva noi simboluri pe durata exploatrii, folosind algoritmul de adaptare
descris. Trstura de baz a acestui algoritm este capacitatea lui de a mri rata de recunoatere
prin construirea unui set de antrenament reprezentativ.
Extensia metodei prezentate la alte aplicaii de recunoatere de obiecte n imagini binare
este posibil. n plus este posibil proiectarea unei structuri hardware dedicate care s rezolve
acest gen de probleme. O structur sistolic care s utilizeze un procesor dedicat fiecrui pas de
prelucrare (scalare, DCT-2D, ordonare Zig-Zag i clasificatori neurali) pare a fi o soluie bun i
foarte rapid.
Aplicaia dezvoltat pentru testare, dei funcional, nu este nc terminat. Este necesar
optimizarea vitezei implementrii curente a algoritmului de separare a zonelor de text din
imagine. mbuntirea performanelor clasificatorului se obine, n condiii de exploatare a
aplicaiei, prin rularea algoritmului de gestiune a setului de date de antrenament.
CD-ul ataat conine att codul surs ct i programul executabil. O descriere a modului de
utilizare a programului poate fi gsit n anexe.

You might also like