Sunteți pe pagina 1din 519

ELEMENTE DE INTELIGENTA ARTIFICIALA

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.
Prelucrare de imagini

Imagine

Grafic computerizat

Recunoatere de forme
Descriere

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.

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):

restaurare

PRELUCRARE

IMAGINI

mbuntire imagini
filtrri

subiere contur
reconstrucie

binarizare (segmentare)

2D

segmentare curbe

extragere contur

recunoatere

1D

2
refacere

proiecie 1D

3
aproximare

umplere contur
expandare contur

proiecie 2D

4
interpolare

reconstrucie 3D

GRAFIC

3D

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.

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.

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):

Intrare
Translator
(extragere
trsturi)

Decizie
Selector
trsturi

Clasificator

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:
X = (x1 ,x 2 ,...,x n )T

(1)

care poate fi vzut ca un vector n spaiul trsturilor (formelor), spaiu notat cu R .


Clasificarea este o partiionare a spaiului formelor n "K" regiuni (clase), notate { j } j =1...K
n

i care ndeplinesc condiiile:


1 2 ... k =
1 2 ... k = F
unde F este mulimea punctelor care alctuiesc frontierele ntre aceste clase.
Funcia discriminant ataat unei clase este o funcie D j (X): R , dat de:

X j D j (X) > Di (X), i j, i = 1...K

(2)
(3)

(4)

Limitele de decizie ntre clasele i i j vor fi definite prin ecuaia:


Di (X) D j (X) = 0

(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.

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:

Forme de
intrare
Metode
sintactice

Gramatici
utilizate

Metode
mixte

Descriere/
/extragere
primitive

Metode
parametrice

Metode
statistice

Metode
neparametrice

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.

incertitudine, utiliznd informaiile furnizate de toate clasificatoarele. Schemele bloc pentru dou
variante ale unui asemenea sistem sunt prezentate n continuare.
intrare
selecie
trsturi

clasificator
grupa 1
clasificator
grupa 2
clasificator
grupa 3

Logic de decizie

extragere
trsturi

decizie

clasificator
grupa G
rejecie forme nerecunoscute
tratare
erori
Fig. 6. Sistem de recunoatere pentru N clase, varianta 1.

clasificator
grupa 1
clasificator
grupa 2
clasificator
grupa 3
comutare

Comutator

grupare
forme

Comutator

intrare
extragere
i selecie
trsturi

decizie

comutare
clasificator
grupa G
tratare
forme
nerecunoscute
rejecie forme nerecunoscute
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.

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

y j = f ( wij xi j )

(6)

i =1

unde y j este ieirea neuronului "j", xi este intrarea "i" a neuronului, wij 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.

N
du j
= u j + wij xi + j

dt
i =1
y j = f (u j )

(7)

unde u j 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 aplicnduse 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 ntro 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

Supervizat

Reea
Hopfield

Reea
Hamming

Clasificator
optimal

Intrri cu valori continue

Nesupervizat

Clasificator
Carpenter-Grossberg

Algoritmul
"Leader"
de grupare

Supervizat

Perceptron

Clasificator
Gaussian

Nesupervizat

Perceptron
multistrat

Clasificatorul
celor mai
apropiai
"K" vecini

Harta de
trsturi cu
autoorganizare
Kohonen

Algoritmul
"K-means"
de grupare

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.

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 1
~
P (i,j)= M(m,n) P(i + m,j + n)
(1)
k m = 1 n = 1
unde masca M(m,n) poate fi:
0 1 0
0 1 0
0 1 0
1
1
1

M1 = 1 0 1
M2 = 1 1 1
M 3 = 1 2 1

4
5
6
0 1 0
0 1 0
0 1 0
1 1 1
1 1 1
1 1 1
1 2 1
1
1
1
1

(2)
1 2 1
2 4 2
M4 = 1 0 1
M5 = 1 1 1
M6 =
M7 =

8
9
10
16
1 1 1
1 1 1
1 1 1
1 2 1

2. Tehnici de mbuntire a imaginilor.

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 M 4 . Modificarea pixelului curent se face doar
dac este ndeplinit o condiie de prag.
8

i =1

i =1

IF [ f (x,y) 1/8 vi (x,y)] > THEN f (x,y) = 1/8 vi (x,y)

(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.

10

2. Tehnici de mbuntire a imaginilor.

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:
Z=X+W
T

-1

Fig. 2. Filtrul Wiener generalizat.

Unde:

Z = (z0 ,z1 ,...,z N 1 ) , X = (x0 ,x1 ,...,x N 1 ) ,


W = (w0 ,w1 ,...,wN 1 ) , Y = (y0 ,y1 ,...,y N 1 )
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.
= E{(Y X)t (Y X)}
(4)
n ipotezele:
1)
E {XW t } = E {WX t } = 0 , adic semnalul util i zgomotul sunt necorelate,
2)
T 1 = T t , adic transformarea T este unitar,
rezult:
A0 = TK XX (K XX + KWW ) 1T t
(5)

= trace [K XX K XX (K XX + KWW )1 KWW ]

(6)

K XX = E{ (X X )(X X )t } = E{XX t }

(7)

K WW = E{(W W )(W W )t } = E{WW t }

(8)

unde
i
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 A0 .
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 B(x,y) i o direcie
(x,y) . Deci F(x,y) fiind imaginea iniial, imaginea de control se obine astfel:
Si (x,y) = F(x,y) Ei (x,y), cu i = 1,2 ,3,4
(9)
C i (x,y) = F(x,y) Di (x,y) ,
(10)

11

2. Tehnici de mbuntire a imaginilor.

unde " " nseamn convoluie, iar Ei (x,y) i respectiv Di (x,y) sunt filtre spaiale pentru
detecia de muchii i respectiv linii, avnd direcia "i".
Amplitudinea imaginii de control n direcia "i" este dat de:
Bi (x,y) = Si2(x,y) + C i2(x,y) V(x,y) , i = 1,2 ,3,4 ,

(11)

unde:

V(x,y) = Si2(x,y) + C i2(x,y) , 0 < < 1


i =1

Amplitudinea global este dat de:


B(x,y) = [B1(x,y) B3(x,y)] 2 + [B2(x,y) B4 (x,y)] 2

(12)

(13)

iar direcia n punctul de coordonate ( x , y ) este ( x , y ) , care se deduce din


sin [ 2(x,y)] = [B2(x,y) B4 (x,y)]/ B(x,y)
(14)
cos [ 2(x,y)] = [B1(x,y) B3(x,y)]/ B(x,y)
(15)
Filtrele pentru detecia muchiilor i a liniilor se construiesc n domeniul frecven astfel:
E i ( ,) = e i () e i ()
(16)
Di ( ,) = d i () d i ()
(17)

4 ln 2
ei () = d i () = exp [
(18)
( ln ) 2 ]
2
c
( ln B)

ei () = cos 2 ( i ) sign [ cos ( i )]

(19)

d i () = cos ( i )

(20)

Fig.3.Filtrul pentru detecia muchiilor Ei ( , ) , Fig.4.Filtrul pentru detecia liniilor Di ( , ) .


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:
2

cos (
), pentru < 0 .9
(21)
H (,) =H () =
1.8
0 ,
pentru 0 .9

12

2. Tehnici de mbuntire a imaginilor.

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


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

pentru < 0 .9
1 H (),

(23)
m () = 1,
pentru 0 .9 < 0 .9
2
cos [ 1.8 ( + 0 .9 )], pentru 0 .9 <
m () = cos 2 ()
(24)
Imaginea mbuntit, G (x,y) poate fi exprimat astfel:
G (x,y) = s F (x,y) H (x,y) + e B (x,y)[ F (x,y) M (x,y, (x,y))]
(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:
~ ~
W K
~
f (x,y) =
[ f (x,y) K]
(26)
W K

13

2. Tehnici de mbuntire a imaginilor.

~ ~
va fora noua gam dinamic a pixelilor din imagine la intervalul [K,W] . (n cazul general
nivelele de gri K i W se aleg funcie de rezultatul dorit).
~
~
Alegnd K = 0 i W = L 1 , 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.
y
~
L-1

IEIRE

~
W

~
B
x
L-1

INTRARE
0
B
W
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":
MN
He(z) =
,
(27)
S
unde M, N sunt dimensiunile imaginii.
H(z)

z
0

L-1

He(y)
Ho

y
S-1

Fig. 8. Principiul egalizrii de histogram.

14

2. Tehnici de mbuntire a imaginilor.

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:
p, pentru f (x,y) < M
~

(28)
f (x,y) = M, pentru p M q
q, pentru f (x,y) > M

unde:

M=

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

Histograma imaginii iniiale

(29)

Dup aplicarea algoritmului 1 de egalizare

Dup aplicarea algoritmului 2 de egalizare Dup aplicarea algoritmului 3 de egalizare

15

2. Tehnici de mbuntire a imaginilor.

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:
A B
B
A
B
B
M=
[
M 00 + ( 1
)M 10 ] + ( 1
)[
M 01 + ( 1
)M 11 ]
(30)
Cx Cy
Cy
Cx Cy
Cy
unde M 00 , M10 , M 01 , M11 sunt regulile de atribuire date de cele mai apropiate patru careuri,
iar restul elementelor rezult din figura urmtoare:

M 00

M 10
Cy
B
f(x,y)

M 01

M 11

Cx
Fig. 9. Principiul egalizrii adaptive de histogram.
2.2.2. Filtrarea homomorfic.
Se accept drept model simplificat al imaginii:
f (x,y) = i (x,y) r (x,y)
(31)
unde i (x,y) este componenta numit "iluminare", dat de sursele de lumin aferente
imaginii, iar r (x,y) este "reflectana", dat de proprietile de reflexie local ale corpurilor din
imagine. Se remarc proprietile i (x,y) > 0 , 0 < r (x,y) < 1 , precum i faptul c iluminarea i (x,y)
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.

16

2. Tehnici de mbuntire a imaginilor.

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. log [ f (x,y)] = log [ i (x,y)] + log [ r (x,y)];
adic f ( x , y ) = i ( x , y ) + r ( x , y );
2. F { f (x,y)} = F { i (x,y)} + F { r (x,y)} ;
adic F (u,v) = I (u,v) + R (u,v);
3. F (u,v) = H (u,v) F (u,v) = H (u,v) I (u,v) + H (u,v) R (u,v);
adic F (u,v) = I (u,v) + R (u,v);
4. F -1 { F (u,v)} = F -1 { I (u,v)} + F -1 { R (u,v)};
adic f (x,y) = i (x,y) + r (x,y);
5. exp [ f (x,y)] = exp [ i (x,y)] exp [ r (x,y)];
~
~
r (x,y)
adic f (x,y) = i (x,y) ~

(32)
(33)
(34)
(35)
(36)

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
1
(37)
m (x,y) =
f (x + i,y + j) ;
( 2w + 1 )2 i = w j = w
w
w
1
[ f (x + i,y + j) m(x + i,y + j)] 2
(38)
2 (x,y) =
2
( 2w + 1 ) i = w j = w
cu latura vecintii 2 w + 1 ;
Asimilnd nivelul de gri al pixelului curent cu o variabil aleatoare, expresia
f (x,y) m (x,y)
~
(39)
f (x,y) =
(x,y)
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 M d , d , funcie de parametrii "A" i "r":

17

2. Tehnici de mbuntire a imaginilor.

A d
[ f (x,y) m (x,y)] + [rM d + ( 1 r) m (x,y)]
(40)
A (x,y) + d
Folosind valori bine alese pentru parametrii formulei precedente, este posibil evidenierea
unor detalii fine dintr-o imagine cu contrast sczut.

~
f (x,y) =

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

| F(t)|
t
F(t)
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:
f (x,y) r f (x,y) r
f (x,y) =
i+
j
(41)
x 2
y 2
cu aproximaiile urmtoare pentru cazul discret:
x f (x,y) = f (x + 1,y) f (x,y)
(42)
y f (x,y) = f (x,y + 1 ) f (x,y)
(43)
Drept operator de difereniere de ordinul doi, pentru cazul continuu, se folosete
Laplacianul:
f (x,y) f (x,y)
,
(44)
f (x,y) =
+
x 2
y 2
cu aproximrile urmtoare pentru cazul discret:
x f (x,y) = x f (x,y) x f (x 1,y) = f (x + 1,y) 2 f (x,y) + f (x 1,y)
y f (x,y) = y f (x,y) y f (x 1,y) = f (x,y + 1 ) 2 f (x,y) + f (x,y 1 )
(45)
f (x,y) = y f (x,y) + y f (x,y) = f (x + 1,y) + f (x 1,y) + f (x,y + 1 ) + f (x,y 1 ) 4 f (x,y)

ceea ce se traduce printr-o convoluie cu masca L0 (sau L1 , sau L2 ):

18

2. Tehnici de mbuntire a imaginilor.

0 1 0
1 1 1
1 2 1

L0 = 1 4 1
L1 = 1 8 1
L2 = 2 4 2

0 1 0
1 1 1
1 2 1
Accentuarea muchiilor se face deci cu:
~
f (x,y) = f (x,y) f (x,y) = 5 f (x,y) f (x + 1,y) f (x 1,y) f (x,y + 1 ) f (x,y 1 )
ceea ce se traduce printr-o convoluie cu masca A0 (sau A1 , sau A2 ):
0 1 0
1 1 1
1 2 1
A0 = 1 5 1 A1 = 1 9 1 A2 = 2 5 2

0 1 0
1 1 1
1 2 1

(46)

(47)

(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:

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

(49)

Obs. Condiia (c = 1 ) 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.

19

2. Tehnici de mbuntire a imaginilor.

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 M 7 , 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.

20

2. Tehnici de mbuntire a imaginilor.

Sunt posibile i alte optimizri de vitez, inclusiv implementri hardware de timp real,
schema bloc a unui asemenea sistem fiind dat n figura urmtoare:
Convertor
Analog
Semnal
Digital
Video
Complex

Registru de deplasare
Registru de deplasare

Bloc
De
Calcul

Registru de deplasare

Convertor
Digital
Analogic Semnal

Video
Complex

Masc
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*)

21

2. Tehnici de mbuntire a imaginilor.

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*)

22

2. Tehnici de mbuntire a imaginilor.

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;

23

3. Restaurarea imaginilor.

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 w(x,y) nelinearitate
punctual d(-)
h(x,y,x',y')

g(x,y)

(x,y)
nelinearitate
punctual s(-)

1(x,y) 2(x,y)
Fig. 1. Schema bloc de modelare a procesului de degradare a imaginilor.

25

3. Restaurarea imaginilor.

Semnalul iniial f (x,y) este mai nti trecut printr-un filtru avnd rspunsul la impuls
h(x,y;x ,y ) , obinndu-se semnalul w (x,y) (convoluie n domeniul spaial):
w (x,y) =

h((x,y;x ,y ) f (x ,y )dx xy

(1)

Funcia nelinear d( ) modeleaz nelinearitile introduse de blocul de detecie a


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

g (x,y) = d h(x,y;x ,y ) f (x ,y )dx xy + s [ g ( w (x,y))] 1 (x,y) + 2 (x,y)


(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

h(x,y;x ,y ) = h(x x ,y y ;0 ,0 ) = h(x x ,y y )


(5)
De asemenea, adeseori se presupune r ( ) = 0 .
Trecnd n domeniul frecven, unde analiza este mai facil, relaia anterioar se scrie:
G (x , y ) = H (x , y ) F (x , y ) + N (x , y )
(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:
y
sin (ax) sin (by)
(7)
h(x,y) =
H ( x , y ) = rect x ,
xy
a b

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

Varianta pentru lumin incoerent este descris de:

26

3. Restaurarea imaginilor.

h(x,y) =

sin 2 (ax) sin 2 (by)


ax
by

y
H (x , y ) = tri x ,
a b

(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:
sin(0 x )
1
x 1
h(x,y) = rect (
) (y)
(9)
H (x , y ) = exp ( j x 0 )
0
0 2
0 x

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:
(x2 + 2y )
1
H (x , y ) = 2 exp
h(x,y) = exp [ 2(x 2 + y 2 )]
(10)

27

3. Restaurarea imaginilor.

Fig. 6. Modelarea distorsiunilor datorate turbulenelor atmosferice.

La operaia de scanare apare fenomenul de apertur descris de:


sin ( x ) sin ( y )
x y
h(x,y) = rect ,
H (x , y ) =
x
y

(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:
h(x,y) =

m,n (x m,y n) ,

m = 1 n = 1

H (x , y ) =

m = 1 n = 1

m,n

exp [ 2j(mx + n y )] (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:
z2
1
)
(13)
p (z) =
exp (
2 2
2
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( )
(14)
k!
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:
1
z
2 exp 2 , pentru z 0
(15)
p (z) =

0 ,
pentru z < 0
pk =

28

3. Restaurarea imaginilor.

Variantele discrete ale ecuaiilor care descriu modelul de degradare a unei imagini sunt
urmtoarele, foarte asemntoare cu cazul continuu:
g (m,n) = d [w(m,n)] + (m,n)
+

w (m,n) =

h(m,n;m,n ) f (m,n )

(16)

m= n =

(m,n) = s [ g ( w (m,n))] 1 (m,n) + 2 (m,n)

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]).
++
~
(17)
f (x,y) = r (x,y;x ,y ) g (x ,y )dx dy

sau n domeniul frecven:


~
F (x , y ) = R (x , y ) G (x , y )
innd cont de relaia de definiie a lui G rezult:
~
F (x , y ) = R (x , y )[ H (x , y ) F (x , y ) + N (x , y )]
3.2.1. Metoda filtrului invers.
n absena zgomotului relaia anterioar devine:
~
F (x , y ) = R (x , y ) H (x , y ) F (x , y )
~
Condiia ca F (x , y ) s fie ct mai apropiat de F (x , y ) se traduce prin:
H (x , y )
1
R (x , y ) =
=
H (x , y ) H ( , ) 2
x
y

(18)
(19)

(20)

(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 H (x , y ) , pentru care R (x , y ) tinde ctre infinit. n plus, dac
zgomotul este prezent, estimarea obinut va fi slab.
H (x , y )
~
F (x , y ) = F (x , y ) +
N (x , y )
2
H (x , y )
Filtrul pseudoinvers ncearc s evite instabilitatea prezent la filtrul invers.
1

, pentru H (x , y ) 0

R (x , y ) = H (x , y )
0 ,
pentru H (x , y ) = 0

(22)

(23)

n practic condiia H (x , y ) = 0 se nlocuiete cel mai adesea cu o condiie de tipul


H (x , y ) < . Efectul zgomotelor asupra calitii imaginii restaurate se reduce la acest tip de

filtru fa de precedentul.

3.2.2. Filtrul Wiener.

29

3. Restaurarea imaginilor.

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:
~
2 = E {[ f (x,y) f (x,y)] 2 } = min
(24)
Filtrul Wiener ncorporeaz cunotine statistice apriorice despre semnalul util i zgomot.
Pentru f ( x , y ) , g( x , y ) se face ipoteza c ele sunt procese aleatoare de medie nul.
f(x,y) degradare
spaial
h(x,y)

g(x,y)

~
Filtru de f(x,y)
restaurare
r(x,y)

(x,y)
Fig. 8. Filtrul Wiener.

n ipoteza, nerestrictiv pentru nceput, a invarianei la deplasri spaiale, avem de


minimizat:
2 = E {[ f (x,y)

++

r (x x ,y y ) g (x ,y )dx dy ]

} = min

(25)

Aceast condiie este ndeplinit cnd:


++

E f (x,y) r (x x ,y y ) g (x ,y )dx dy g (x ,y ) = 0
(26)

valabil pentru orice pereche de puncte ( x , y ) i ( x , y ) din planul imaginii (condiia de


ortogonalitate).
Rezult condiia (egalitatea):
E { f (x,y) g (x ,y )} =

++

r (x x ,y y ) E { g (x ,y ) g (x ,y )}dx dy

(27)

valabil n aceleai condiii. Dar deoarece:


E { f (x,y) g (x ,y )} = K fg (x x ,y y)

(28)

E { g (x ,y ) g (x ,y )} = K gg (x x ,y y )

(29)

putem exprima relaia anterioar prin intermediul funciilor de corelaie:


K fg (x x ,y y ) =

++

r (x x ,y y ) K

gg

(x x ,y y )dx dy

(30)

Trecnd n domeniul transformatei Fourier, relaia anterioar devine:


K fg (x , y ) = R (x , y ) K gg (x , y )

(31)

cu K gg (x , y ) spectrul de putere al funciei "g", de unde:


-1
R (x , y ) = K fg (x , y ) K gg
(x , y )

Dar deoarece:
G (x , y ) = H (x , y ) F (x , y ) + N (x , y )

(33)

Rezult:
K fg (x , y ) = H (x , y ) K ff (x , y )

(34)

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

30

(32)

(35)

3. Restaurarea imaginilor.

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:
H (x , y ) K ff (x , y )
(36)
R (x , y ) =
| H (x , y )|2 K ff (x , y ) + K (x , y )
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:
K ~f~f (x , y ) = | R (x , y )|2 K gg (x , y ) sau dezvoltnd K gg (x , y ) avem:

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

(37)

Fornd ca K ~f~f (x , y ) = K ff (x , y ) rezult expresia filtrului de restaurare:


1

2
K ff (x , y )
R (x , y ) =
(38)

2
| H (x , y )| K ff (x , y ) + K (x , y )
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

H (x , y )

K ff (x , y )
R (x , y ) =
(39)

2
2
| H (x , y )| | H (x , y )| K ff (x , y ) + K (x , y )
unde parametrii i se aleg funcie de problema abordat. Pentru = 0.5 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:
1

K ff (x , y ) 2
R (x , y ) =
40)

K gg (x , y )
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 h(x,y) . Pentru
(j)
fiecare bloc "j" poate fi calculat spectrul de putere K gg
(x , y ) . 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.

31

3. Restaurarea imaginilor.

O alt posibilitate ar fi construcia unei imagini de test care s permit determinarea lui
H (x , y ) prin analiza semnturii lui. Estimnd printr-o tehnic convenabil spectrul de putere al
zgomotului, K (x , y ) , se poate deduce valoarea estimat a spectrului de putere al imaginii
iniiale prin:

K gg (x , y ) K (x , y )

K ff (x , y ) =

H (x , y )

(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 (m,n) = c
m n
(V)

(m m)2 +(n n )2

[|d

(H)

(m ,n )| + |d (V) (m ,n )|

(42)

unde d (H) (m,n), d (m,n) 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:
( 0 ) = 1 , 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:
g (m,n) = v (m,n) + (m,n)
(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:
(m,n) = m,n [ f v (m,n),m,nn)]
(44)
unde indicele "v" semnific o vecintate a funciei " f " n jurul punctului ( x , y ) , deci
zgomotul rezidual depinde de valorile lui " f " din aceast vecintate.
Imaginea restaurat se obine prin:
~
f (m,n) = rm,n (i,j) g (m i,n j)
(45)
i

32

3. Restaurarea imaginilor.

unde filtrul de reconstrucie rm ,n (i,j) se construiete din condiia minimizrii erorii:


= Sm,n ( rm,n , K ff ) + N m,n ( rm,n , 2 )

(46)

Aceast eroare conine deci dou componente corespunztoare transformrii Wiener


discrete clasice, una "de rezoluie":
S (r,K ff ) = {[ (m,n) h(m,n)] t K ff (m m ,n n )[ (m ,n ) h(m ,n )]} (47)
m

i una datorat zgomotului:


N (r, n2 ) = n2 r 2 (x,y)

(48)

unde ( m, n ) este funcia delta-Kronecker bidimensional.


Autorii propun introducerea proprietii de adaptare prin intermediul lui N, adic:
N m,n = [ M (m,n)] 2 rm,n (i,j)

(49)

unde este funcia de vizibilitate definit anterior. Rezult filtrul de restaurare n


domeniul frecven:
K ff (x , y )
(50)
Rm,n (x , y ) =
K ff (x , y ) + [ M (m,n)] 2
A doua soluie propus este adaptarea prin intermediul lui :
m,n = [ M (m,n)] (m,n)
(51)
caz n care se obine:
K ff (x , y )
(52)
Rm,n (x , y ) = ( 1 [ M (m,n)]) + [ M (m,n)]
K ff (x , y ) + 2
Abramatic i Silverman extind apoi studiul lor la cazul imaginilor alterate nu numai prin
zgomot, ci i printr-o convoluie cu funcia de degradare h(m,n) . Filtrele corespunztoare
obinute n acest caz sunt:
H (x , y ) K ff (x , y )
(53)
Rm,n (x , y ) =
| H (x , y )|2 K ff (x , y ) + [ M (m,n)] n2
i respectiv:
H (x , y ) K ff (x , y )
H (x , y )
+

(54)
Rkl (x , y ) = [ M (m,n)]
(
1
[
M
(m,n)])
| H (x , y )|2 K ff (x , y ) + n2
| H (x , y )|2
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:
f(x,y)

distorsiune
geometric
(x',y')=G1 (x,y)

corecie
g(x,y)
distorsiune
geometric
-1
(x',y')=G (x,y)
2

degradare
invariant la
translaie
h(x',y')

restaurare
degradare
invariant
la translaie
r(x',y')

distorsiune
geometric

g(x,y)

(x,y)=G2 (x',y')

corecie
f(x,y)
distorsiune
geometric
-1
(x,y)=G (x',y')
1

Fig. 9. Modelul degradrilor cu varian la translaie.

33

3. Restaurarea imaginilor.

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

g (m,n) = d h(m,n;m ,n ) f (m ,n ) + (m,n)


(55)
m =0 n =0

poate fi scris sub form matriceal dac imaginea iniial, cea degradat i cea
corespunztoare zgomotului se exprim prin vectori de lungime MxN :
[g ] = d {[H ][ f ]}+ [n]
(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:
[g ] = [H ][ f ] + [n] [ f ] = [H ]1 ([g ] [n])
(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:
2
~
E {f} = [g ] [H ][ f ] = min
(58)
ceea ce duce la inversa generalizat:
~
t
t
f = ( [H ] [H ] ) 1 [H ] [g ]
Dac, corespunztor filtrului Wiener funcia de minimizat se alege:
2
~
1/ 2
[ f ] + [g ] [H ][ f ] 2
E f = K ff1 / 2 K

[]

{[ ]}

(59)
(60)

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


drept ecuaie de restaurare:
~
t
f = [H ] [H ] + K ff1 K

[] (

[H ]t [g ]

(61)

3.5. Discuii asupra modelului discret al restaurrii.


Pentru studiul cazului discret, pentru simplitate, se consider (Gonzales[42]) mai nti
funcia f (x,y) unidimensional, eantionat uniform, astfel nct s se obin A eantioane.
Modelul matematic al degradrii ei presupune o convoluie cu h(x) , de asemenea o funcie
discret, dar avnd B valori. Evitarea depirii acestor domenii prin operaia de convoluie se face
definind extensiile lor:
f (x), pentru 0 x A 1
(62)
f e (x) =
0 , pentru A x M 1
h(x), pentru 0 x C 1
(63)
he (x) =
0 , pentru C x M 1
periodice de perioad M. Atunci operaia de convoluie pentru cazul discret
unidimensional se scrie:

g e (x) =

Sau matriceal:
g = Hf
adic:

34

M 1

f
n =0

(m) he (x m)

(64)
(65)

3. Restaurarea imaginilor.

he(M 1 ) he(M 2 ) ... he( 1 ) f e( 0 )

he( 0 )
g e( 0 )

h ( 1 )
g ( 1 )
he( 0 )
he(M 1 ) ... he( 2 ) f e( 1 )

e
e
(66)

= he( 2 )
g e( 2 )
he( 1 )
he( 0 )
... he( 3 ) f e( 2 )

...
...
... ...

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

k + he(M 2 ) exp
2k + ... + he( 1 ) exp
(M 1 )k i
(k) he( 0 ) + he(M 1 ) exp
M
M

2j
2j
2j

w(k) = 1 exp
k exp
2k ... exp
(M 1 )k
(67)
M
M

se poate demonstra relaia:


Hw( k ) = ( k )w( k )
(68)
care exprim faptul c w(k) sunt vectorii proprii ai matricii H, iar ( k ) sunt valorile ei
proprii. Construind matricea:
W = [w( 0 ) w( 1 ) w( 2 ) ... w(M 1 )]
(69)
avnd elementele:
2j
W(k,i) = exp
ki
(70)
M
se poate arta c inversa ei are elementele date de:
1
2j
W 1(k,i) =
exp
ki
(71)
M
M
Atunci matricea degradrii punctuale se poate exprima prin:
H = WDW 1
(72)
cu D matrice diagonal, avnd:
D(k,k) = (k)
(73)
i care se poate calcula prin:
D = W 1 HW
(74)
Pentru cazul bidimensional extensiile funciei discrete f(x,y) care descrie imaginea i
respectiv h(x,y) care descrie degradarea punctual sunt:
f (x,y), pentru 0 x A 1 i 0 y B 1
f e (x,y) =
(75)
pentru A x M 1 i B y N 1
0 ,

h(x,y), pentru 0 x C 1 i 0 y D 1
he (x,y) =
pentru C x M 1 i D y N 1
0 ,
Operaia de degradare a imaginii este modelat atunci de:

g e (x,y) =

M 1 N 1

m =0 n =0

(m,n) he (x m,y n) + ne (x,y)

Relaia anterioar poate fi scris matriceal:


g = Hf + n
unde:

(76)

(77)
(78)

35

3. Restaurarea imaginilor.

H e (M 1) H e (M 2) ... H e (1)
H e (0)
H (1)
H e (0)
H e (M 1) ... H e (2)

e
H = H e (2)
H e (1)
H e (0)
... H e (3)

...
...
... ...

...
H e (M 1) H e (M 2) H e (M 3) ... H e (0)
fiecare element al ei fiind o matrice circulant de forma:
he(j,N 1 ) he(j,N 2 ) ... he(j,1 )
he(j,0 )
h (j,1 )
he(j,0 )
he(j,N 1 ) ... he(j,2 )

e
H k = he(j,2 )
he(j,1 )
he(j,0 )
... he(j,3 )

...
...
... ...

...
he(j,N 1 ) he(j,N 2 ) he(j,N 3 ) ... he(j,0 )
Matricea H este o matrice bloc-circulant. Notnd:
2j
2j
wM (i,m) = exp
w N (k,n) = exp
im
i
kn
M

se poate defini matricea de matrici:


W( 0 ,1 )
W( 0 ,2 )
... W( 0 ,M 1 )

W( 0 ,0 )

W( 1,0 )
W( 1,1 )
W( 1,2 )
... W( 1,M 1 )

W = W( 2 ,0 )

W( 2 ,1 )
W( 2 ,2 )
... W( 2 ,M 1 )

...
...
... ...

...
W(M 1,0 ) W(M 1,1 ) W(M 1,2 ) ... W(M 1,M 1 )
unde:
W(i,m) = wM (i,m)WN ,
cu
WN (k,n) = w N (k,n)
n continuare se poate demonstra c inversa matricii W se scrie sub forma:

W 1( 0 ,0 )
... W 1( 0 ,M 1 )
W 1( 0 ,1 )
W 1( 0 ,2 )

1
1
1
1
... W ( 1,M 1 )
W ( 1,1 )
W ( 1,2 )

W ( 1,0 )

W 1 = W 1( 2 ,0 )
... W 1( 2 ,M 1 )
W 1( 2 ,1 )
W 1( 2 ,2 )

...
...
... ...

...
W 1(M 1,0 ) W 1(M 1,1 ) W 1(M 1,2 ) ... W 1(M 1,M 1 )

(79)

(80)

(81)

(82)

(83)

(84)

unde:
W 1(i,m) =

1 1
wM (i,m)WN1
M

(85)

cu:
2j
wM1(i,m) = exp
im
(86)
M

1
1
2j
WN1(k,n) = w N1(k,n) = exp
kn
(87)
N
N
N

Evident avem:
WW 1 = W 1W = I MN
(88)
Ca urmare, se poate arta c matricea degradrii care afecteaz imaginea digital este:
H = WDW 1
(89)
cu D matrice diagonal, ale crei elemente sunt valorile proprii ale matricii H. Rezult:

36

3. Restaurarea imaginilor.

D = W 1 HW
(90)
n ipoteza absenei zgomotului, degradarea care afecteaz imaginea este descris de:
g = WDW 1 f
(91)
de unde:
W 1 g = DW 1 f
(92)
1
Se remarc faptul c W f este tocmai transformata Fourier discret a intrrii, iar W 1 g
este transformata Fourier a semnalului imagine degradat, adic:

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

MN x =0 y =0
M N

1 M 1 N 1
ux vy
g e (x,y) exp 2j +
(94)

MN x =0 y =0
M N

Notnd transformata Fourier discret bidimensional a zgomotului cu:

1 M 1 N 1
ux vy
N (u,v) =
ne (x,y) exp 2j +
(95)

MN x =0 y =0
M N

iar
i
G = W 1 g
(96)
F = W 1 f
rezult:
G = DF + N
(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.

G (u,v) =

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:
xm = xm + t x
~
x m x m t x
~
(98)

~ = +
y n y n t y
yn = yn + t y

unde: - xm , y n sunt coordonatele punctului care se transleaz;


- t x ,t y sunt offset-urile care definesc translaia;
- ~
x , ~y sunt noile coordonate ale pixelului ( m , n ) .
m

Dac toate aceste valori sunt ntregi, operaia este reversibil. Pentru t x ,t y nentregi este
necesar interpolarea lui f ( x , y ) pentru a obine imaginea translat.
Scalarea se realizeaz modificnd coordonatele pixelilor dup regula:
xm = s x xm
~
x s x 0 xm
~
~m =
~

yn 0 s y yn
yn = s y y j

(99)

unde s x ,s y sunt constantele de scalare. Dac avem s x ,s y > 1 , se obine o mrire a


imaginii, n caz contrar ea se micoreaz. n ambele cazuri este necesar operaia de interpolare.

37

3. Restaurarea imaginilor.

Rotaia este descris de:


x m = x m cos y n sin
x cos sin x m
~
~
(100)
~m =
~

y n = x m sin + y n cos
y n sin cos y n
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:
x m cos sin s x 0 x m cos sin s x 0 t x
~
(101)

+
~
=

y n sin cos 0 s y y n sin cos 0 s y t y

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

1 0
1
0
1
i analog translaia i scalarea:
x m 1 0 t x x m
xm s x 0 0 xm
~
~
~

~
(103)
y = 0 1 t y yn
y = 0 s y 0 yn
n
n


1 0 0 1 1
1 0 0 1 1
De remarcat c, n anumite condiii, operaia de rotaie a unei imagini poate fi aproximat
cu o transformare separabil, astfel:
x = x m cos y n sin
~
m
x + y n sin
(104)
~
~
yn = m
sin + y n cos

cos

x , rezultnd o imagine independent de


n primul pas al transformrii se face calculul lui ~
m

xm , 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:
x m = X (x m ,y n )
~
(105)
~
y n = Y (x m ,y n )
Foarte des utilizate sunt deformrile geometrice polinomiale de ordinul doi, descrise de
urmtoarele relaii:
~
x m = a0 + a1 x m + a 2 y n + a 3 x m2 + a 4 x m y n + a 5 y n2
(106)
~
2
2
y n = b0 + b1 x m + b2 y n + b3 x m + b4 x m y n + b5 y n
care pot fi exprimate i matriceal prin:

38

3. Restaurarea imaginilor.

x m a0 a1 a 2 a 3 a 4 a 5
~
t
(107)
1 x m y n x m2 x m y n y n2
=

~
y n b0 b1 b2 b3 b4 b5
Constantele a0 , a1 , a 2 , a3 , a 4 , a5 i respectiv b0 ,b1 ,b2 ,b3 ,b4 ,b5 se determin cunoscnd
coordonatele n imaginea transformat ale unui set de M pixeli.
Notnd:
x = [x1 x 2 ... x M ]
y = [ y1 y 2 ... y M ]
(108)
a = [a1 a 2 a 3 a 4 a 5 ] b = [b1 b2 b3 b4 b5 ]

eroarea medie ptratic dintre imaginile transformate real i ideal este:


2 = (x Aa)t (x Aa) + (y Ab)t (y Ab)
unde :
1 x1 y1 x12
x1 y 1
y12

1 x 2 y 2 x 22
x2 y2
y 22

A=
... ... ... ...
...
...

2
2
1 xM yM xM xM yM yM
Se demonstreaz c eroarea este minim dac:
a = (At A)1 At x
b = (At A)1 At y
unde se remarc utilizarea inversei generalizate a matricii A:
A = (At A)1 At
Cteva exemple de imagini distorsionate geometric sunt date n continuare:

(109)

(110)

(111)
(112)

39

3. Restaurarea imaginilor.

3.6.3. Proiecia paralel i proiecia perspectiv.


Pentru proiecia paralel caracteristic este faptul c toate razele de proiecie sunt paralele
ntre ele.
~
z
z

~
y
~
0

~
x
y

x
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'.
x cos 0 sin cos sin 0 x
~
~
(113)
y = 0
1
0 sin cos 0 y


~
z sin 0 cos 0
0
1 z
x cos cos sin cos sin x
~
~
(114)
y = sin
0 y
cos


~
z cos sin sin sin cos z

Exemple de proiecii paralele.

40

3. Restaurarea imaginilor.

n figurile anterioare sunt prezentate proieciile paralele pentru cteva suprafee: sfer, tor
i banda Moebius.
Trecnd la coordonate ecran avem:
x
0
cos
x s sin
(115)
y = cos sin sin sin cos y
z
x

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
( x , y , z ) sunt coordonatele punctului curent din spaiu, ( x p , y p ) sunt coordonatele proieciei lui

n planul imaginii, iar f este distana focal a sistemului de lentile:


y ,y
p

x p ,x

(x,y,z)
z

0
f
(x ,y )
p

Fig. 11. Principiul proieciei perspective.

41

3. Restaurarea imaginilor.

fy
fx
i
(116)
yp =
f z
f z
Trecnd la coordonate omogene Roberts n [91] deduce urmtoarea formul de proiecie
perspectiv:
[x p y p z p ] = f fx z f fy z f fz z
(117)

din care evident, intereseaz n marea majoritate a cazurilor doar ( x p , y p ) .

Se pot scrie imediat relaiile: x 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:
z

y
zc

yc
x

xc

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

unde (x c ,y c ,z 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 (x0 ,y 0 ,z0 ) , printr-o operaie de translaie. Fa de (x c ,y c ,z 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:
[(x x c ) cos (y y c ) sin x0 ]f
(118)
xp =
f (x x c ) sin sin (y y c ) cos sin (z z c ) cos + z0
[(x x c ) sin cos + (y y c ) cos cos (z z c ) sin y 0 ]f
(119)
yp =
f (x x c ) sin sin (y y c ) cos sin (z z c ) cos + z0
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:

42

3. Restaurarea imaginilor.

f(x,y)

f(x+1,y)

b
a
~ ~
f(x,y)

f(x,y+1)
f(x+1,y+1)
Fig. 13. Reeantionarea geometric a imaginilor.

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

f (x + m,y + n) R (m a) R (n b)

(121)

m = 1 n = 1

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:
x = Zx,~
y = Zy
~ ~ ~ f (x,y), pentru ~
(122)
f (x ,y ) =
pentru ~
x Zx,~
y = Zy
0 ,
dup care este supus unei convoluii cu o masc convenabil aleas. Pentru Z = 2 se
poate folosi una din mtile:
4 1
1 4 6
1 3 3 1

4 16 24 16 4
1 2 1

1 1
1
M = 1 3 9 9 3 M = 1 6 24 36 24 6 (123)
M1 =
M
=
2
4
2
2
3
4

4
16 3 9 9 3
64

1 1
1 2 1
4 16 24 16 4

1 3 3 1
1 4 6
4 1

Pentru cazul reeantionrii unei imagini cu un factor raional Z = P / Q , 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 Z(x) = 10 / 4 , iar
Z(y) = 14 / 5 . Modul de funcionare al algoritmului rezult din figurile urmtoare:

43

3. Restaurarea imaginilor.

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:

g (x,y) = d h(x,y;x ,y ) f (x ,y )dx xy + s [ g ( w (x,y))] 1 (x,y) + 2 (x,y)


(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:
g (x,y) = d [ f (x,y)]
(125)
1
i funcia d ( ) este bijectiv, exist inversa ei d ( ) i avem:
f (x,y) = d 1 [ g (x,y)]
(126)
n practic, adesea mai trebuie adus o corecie de scar, dup cum rezult din figurile
urmtoare:
p
Pmax-Pmin
q
Qmax

q=d(p)

~ -1
p=d (q)

p
q
Qmax
0 Pmin
Pmax
0
Fig. 15. Compensarea distorsiunilor de nelinearitate.

44

3. Restaurarea imaginilor.

~
d 1 (q) PMIN
+ PMIN
(127)
PMAX PMIN
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.
q = d (p),P min p P max ==>

g(x,y)

p=

LUT(Look Up Table)
Tabel corecie
nelinearitate

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:
L = C () S ()d
(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:
~
~
L = C () S ()d

(129)

n ipoteza minimizrii erorii medii ptratice date de:


~
e = [ L () L ()] 2 d

(130)

se va cuta o dependen de forma:


~
L= f( L)
(131)
Cel mai adesea, pentru simplitate, se caut parametrii unei dependene liniare:
~
L () = a S () + b
(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.

45

4. Detecia muchiilor, liniilor i spoturilor.

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.
F(t)

t
|F(t)|

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:

47

4. Detecia muchiilor, liniilor i spoturilor.

f (x,y) =

f (x,y) r f (x,y) r
i+
j
x 2
y 2

(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 f (x,y) = f (x + 1,y) f (x,y)

y f (x,y) = f (x,y + 1 ) f (x,y)

(2)

sau uneori se apeleaz la forme simetrice ale diferenelor finite:


x f (x,y) = f (x + 1,y) f (x 1,y)
y f (x,y) = f (x,y + 1 ) f (x,y 1 )

(3)

Deci se poate folosi drept detector de muchii modulul gradientului discret:

G1 = [x f (x,y)] 2 + [y f (x,y)] 2

(4)

Se pot utiliza cu succes aproximri ale gradientului discret care nu mai sunt izotrope, n
schimb se calculeaz mult mai repede:
G2 = |x f (x,y)| + |y f (x,y)|
(5)

G3 = max (|x f (x,y)| + |y f (x,y)|)

(6)

G4 = max (| f (x,y) f (x + m,y + n)|), m,n { 1,0 ,1 }


(7)
G5 = max (| f (x,y) f (x + 1,y + 1 )|,| f (x,y + 1 ) f (x + 1,y)|)
(8)
care este denumit gradientul Roberts, i care poate fi exprimat prin intermediul
convoluiilor cu mtile:
1 0
0 1
R1 =
(9)
R2 =

0 1
1 0
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
1
1
1

S1 = 2 0 2
(10)
P1 = 1 0 1
F1 =
2 0 2

4
3
2+ 2
1 0 1
1 0 1
1 0 1
Frei i Chen n [40] propun descompunerea vecintii 3x3 care conine
folosind urmtoarea baz ortogonal:
1 1 1
H 0 = 1 1 1

1 1 1
0
1 2
1 0 1
0 1 0
1 2

1 H 5 = 1 0 1 H 7 = 2 4
H1 = 2 0
2 H3 = 1 0

2 1
1 0 1
0 1 0
1 2
0

48

pixelul curent,

1
2

4. Detecia muchiilor, liniilor i spoturilor.

1 2 1
2 1
0
1 0 1
2 1 2

H2 = 0
0
0 H4 = 1 0
1 H6 = 0 0 0 H8 = 1 4 1

1
0
1 0 1
2 1 2
2
1
1 2

Descompunerea care rezult este de forma:

(11)

f( X ) = f k H k / H k

(12)

k =0

unde: X - vecintatea 3x3 curent;


f k = f( X ), H k = f( xi , y j ) H k
i

(13)

Hk = Hk , Hk

(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

E = f k2

(15)

k =1

Normalizarea valorii obinute se face cu valoarea:


8

S = f k2

(16)

k =1

ceea ce are ca efect minimizarea efectelor zgomotelor. Se obine o evaluare a "triei"


muchiei calculnd:
cos = E / S
(17)
Stabilind pragul T, regula de decizie este n acest caz:
> T muchie absent
(18)

T muchie prezent
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:
G (x,y) = max [|G1 (x,y)|,|G 2 (x,y)|,...,|G K (x,y)|]
(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:
5 3 3
1 1 1
1
1

(20)
K1 =
C1 = 1 2 1
5 0 3

15
5
5 3 3
1 1 1
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:

49

4. Detecia muchiilor, liniilor i spoturilor.

1 1 0 1 1
2 2 0 2 2
1 1 1
1 0 1

1
1
1
(21)
1 1 1 1 0 1

3
3
0

3
3
18
9

1 1 1
1 0 1
2 2 0 2 2
1 1 0 1 1
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:
[ g (x, x ) g (y, y )] x
h0 (x,y) =
= 2 g (x, x ) g (y, y )
(22)
x
x
unde:
y2
x2
1
1
g (x, y ) =
exp 2
(23)
g (x, x ) =
exp 2
2
y 2
x 2
y
2 x

Muchiile se extrag cu:


~
f (x,y) = f (x,y) h0 (x,y)
(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 f (x,y) 2 f (x,y)
(25)
f (x,y) =
+
x 2
y 2
Aproximrile discrete ale Laplacianului se traduc prin operaii cu una din mtile:
0 1 0
1 1 1
2 1 2
(26)
L1 = 1 4 1 L2 = 1 8 1 L3 = 1 4 1

0 1 0
1 1 1
2 1 2
Trecerile prin zero ale operatorilor de difereniere de ordinul doi pot fi utilizate pentru
detecia muchiilor:
F(t)

|F(t)|

F(t)

Fig. 2. Operatori de difereniere de ordinul doi.

50

4. Detecia muchiilor, liniilor i spoturilor.

Marr i Hildrith n [68] au propus utilizarea operatorului LoG (Laplacian of Gaussian)


pentru estimarea Laplacianului discret, dup o procedur similar operatorului DroG, adic:
~
f (x,y) = { f (x,y) h1 (x,y)}
(27)
h1 (x,y) = g (x,) g (y,)
(28)
Din proprietile produsului de convoluie obinem:
~
f (x,y) = f (x,y)*{ g (x, x ) g (y, y )} = f (x,y) hL (x,y)
(29)
Se obine n final rspunsul la impuls al filtrului de estimare a Laplacianului:
x2 + y2
1 x2 + y2

hL (x,y) = 4 1
exp


2 2
2 2

a crui reprezentare grafic se numete "plria mexican":

(30)

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.

51

4. Detecia muchiilor, liniilor i spoturilor.

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:
2 f (x,y) 2
2 f (x,y)
2 f (x,y) 2
f (x,y) =
cos +
sin cos +
sin
(31)
x y
x 2
y 2
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 f (x,y) 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.

pentru (x cos + y sin ) <


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

(32)

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

b, pentru (x cos + y sin ) < 1

f (x,y) = c, pentru 1 (x cos + y sin ) 2


d, pentru < (x cos + y sin )
2

(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:
e 2 = [ f (x,y) s (x,y,b,h,,)] 2 dx dy
(34)
x,yC

sau pentru cazul discret:


e 2 = [ f (x,y) s (x,y,b,h,,)] 2 dx dy
x,yC

din minimizarea creia ar urma s se deduc elementele necunoscute b , h , , .

52

(35)

4. Detecia muchiilor, liniilor i spoturilor.

Hueckel n [52] propune descompunerea lui f (x,y) i respectiv s (x,y,b,h,,) ntr-o serie
folosind drept baz funciile ortogonale din setul urmtor:

+
H0

+ -

H1

H2

+ - +

-+
+

H4

H5

H6

H3

+
+

H7

+
+
H8

Fig. 5. Setul de funcii ortogonale Hueckel.


Coeficienii acestei descompuneri sunt:
Fi = f (x,y) H i (x,y) dx dy

(36)

x,yC

Si =

s (x,y)

H i (x,y) dx dy

(37)

x,yC

i ca urmare minimizarea erorii medii ptratice este echivalent cu minimizarea lui:


E 2 = (Fi S i ) 2

(38)

4.3. Metode statistice de detecie a muchiilor.


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

PE = PM p M (G)dG + PU pU (G)dG
0

(39)

Alegnd pragul astfel nct probabilitatea global de eroare s fie minim rezult
(Rosenfeld[94]):
PM pM (T) = PU pU (T)
(40)
Abdou i Pratt [01] au determinat valorile T, PM i PU pentru diferii gradieni i n
prezena zgomotelor avnd diferite caracteristici.

4.3.2. Metode regionale de clasificare statistic.

53

4. Detecia muchiilor, liniilor i spoturilor.

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'
m1

Regiunea 1

M
m
2

2
Regiunea 2

muchie absent

muchie prezent

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

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

m
]

=
(43)

[ f (xi( 2 ) ,yi( 2 ) ) m2 ] 2
i
i
1
2
M i =1
M i =1
n ipoteza unei distribuii normale a nivelelor de gri n interiorul regiunilor, regula de
decizie care se obine este:
1M 2M > M o singur regiune (muchie absent)
(44)
M M
M
1 2 regiuni distincte (muchie prezent)
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 (A1 ,...,AS ) un set de obiecte care trebuiesc clasificate probabilistic ntr-un numr de C
clase (1 ,...,C ) . Obiectele pot fi muchii, linii, curbe, regiuni, etc., n cazul prelucrrii de
imagini.
Fiecare obiect A j are un set de vecini {A j } . Vom ataa fiecrui obiect un vector

(Pj 1 ,...,PjC ) , astfel nct Pjk s fie probabilitatea ca obiectul A j 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 (Ai ,A j ) i pentru fiecare pereche de clase (m ,n )
trebuie definit o msur a compatibilitii afirmaiilor (ipotezelor):
obiectul Ai inclus n clasa m

obiectul A j inclus n clasa n

54

(45)

4. Detecia muchiilor, liniilor i spoturilor.

Aceast funcie de compatibilitate, notat r (Ai ,m ;A j ,n ) , ia valori n domeniul [-1,+1] i


trebuie s respecte urmtoarele condiii:
r (Ai ,m ;Aj ,n ) = 1 ipoteze total incompatibile

r (Ai ,m ;Aj ,n ) = 0 ipoteze irelevante


r (A , ;A , ) = +1 ipoteze perfect compatibile
i m j n

(46)

Funcia de compatibilitate va fi folosit, alturi de probabilitile ataate obiectelor vecine,


pentru ajustarea probabilitilor corespunztoare obiectului curent.
Folosind notaiile:
Pim - probabilitatea ca obiectul Ai s aparin clasei m ;
Pjn - probabilitatea ca obiectul A j s aparin clasei n ;
regulile de ajustare a probabilitilor pot fi scrise explicit astfel:
1. Dac Pim este mare i r (Ai ,m ;A j ,n ) este apropiat de "+1", atunci Pjn trebuie mrit.
2. Dac Pim este mic i r (Ai ,m ;A j ,n ) este apropiat de "-1", atunci Pjn trebuie
micorat.
3. Dac Pim este mic i r (Ai ,m ;A j ,n ) este apropiat de "0", atunci Pjn nu trebuie
modificat semnificativ.
Aceste reguli pot fi sintetizate prin ajustarea (aditiv) a probabilitilor Pjn proporional

cu:
Pim r (Ai ,m ;A j ,n )
Dar ajustarea efectiv a probabilitii Pjn corespunztoare unui obiect se face innd cont
de toate ipotezele posibile pentru Pim , adic toi vecinii obiectului curent A j i toate clasele la
care aceti vecini pot aparine. Deoarece se dorete cel mai adesea o ajustare multiplicativ
ajustarea se va face prin:
C

(47)
Pjn (t + 1 ) = Pjn (t)1 + wi Pim r (Ai ,m ;A j ,n )
i j m =1,m n

Mai rmne de eliminat un singur neajuns care deriv din relaia

P
n =1

jn

= 1 , care trebuie

ndeplinit necondiionat. Ca urmare este necesar o renormalizare a lui Pjn dup fiecare ajustare.
n concluzie avem:

Q jn (t)
,
Pjn(t + 1 ) = Pjn(t)1 + C

[1 + Q jn (t)]

n =1

(48)

unde:
Q jn (t) = wi
i j

im
m =1 ,m n

r (Ai ,m ;A j ,n )

(49)

n cazul practic al deteciei de muchii, obiectele (A1 ,...,AS ) care trebuiesc clasificate sunt
pixelii dintr-o imagine i exist doar dou clase:
C1 muchie prezent
(50)

C 2 muchie absent

55

4. Detecia muchiilor, liniilor i spoturilor.

Pentru nceput, probabilitile Pi ataate fiecrui pixel ( Pi 2 = 1 Pi 1 = 1 Pi ) se seteaz la


o valoare proporional cu amplitudinea furnizat de un gradient clasic:
g (x,y)
Pi ( 0 ) =
(51)
max g (x,y)
x,y

Prin aceleai metode clasice se estimeaz de asemenea unghiul care d direcia muchiei n
punctul (pixelul) respectiv.
Probabilitile Pi se ajusteaz funcie de probabilitile Pj ale vecinilor i direciile ale
gradienilor ataai lor, pe baza funciilor de compatibilitate, care se definesc astfel:
r [ g (x,y),muchie; g (x ,y ),muchie] = cos ( ) cos ( )/ 2 D

D
r [ g (x,y),muchie; g (x ,y ),muchie ] = min [ 0 , cos ( 2 2)/ 2 ]
(52)

D +1

r
[
g
(x,y),
muchie
;
g
(
x
,
y
),
muchie
]
[
1
cos
(
2

2
)]/
2

r [ g (x,y),muchie; g (x ,y ),muchie ] = 1 / 2 D
unde:
D = max (|x x |,|y y |) ;
- panta muchiei n punctul de coordonate ( x , y ) ;
- panta muchiei n punctul de coordonate ( x , y )
- panta segmentului care unete punctele ( x , y ) i ( x , y ) .
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:
r
f (x,y,z) r f (x,y,z) r f (x,y,z) r
i+
j+
k
(53)
G (x,y,z) =
x
y
z
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

56

4. Detecia muchiilor, liniilor i spoturilor.

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 (binarizare) 2

detecie muchii

extragere contur
1 (mersul gndacului) 3

detecie muchii
1

segmentare cu prag subiere contur


1

57

4. Detecia muchiilor, liniilor i spoturilor.

segmentare cu prag
1

subiere contur

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:

58

4. Detecia muchiilor, liniilor i spoturilor.

4
5

1
0

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
C = 8 s + 4 r + 2q + p
Se definesc direciile de deplasare elementar a ferestrei:
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).

59

4. Detecia muchiilor, liniilor i spoturilor.

Tabelul principal
Model

Cod "C"

Direcie
deplasare
orar trig

zec

hexa

0000

--

0001

Model

Cod "C"

Direcie
deplasare
orar
trig

zec

hexa

--

1000

1001

0010

10

1010 (C)

0011

11

1011

0100

12

1100

0101 (A) (B)

13

1101

0110

14

1110

0111

15

1111

--

--

Tabelul (A)
Direcia
anterioar

(D)

Tabelul (B)
Noua direcie
tetra-conectat
octo-conectat
model direcie model direcie

Direcia
anterioar

Noua direcie
tetra-conectat
octo-conectat
model direcie model direcie

Tabelul (C)
Direcia
anterioar

Noua direcie
tetra-conectat
octo-conectat
model direcie model direcie

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:

60

4. Detecia muchiilor, liniilor i spoturilor.

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 ( 230 ,+230 ) , 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:

61

4. Detecia muchiilor, liniilor i spoturilor.

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 ( 90 0 ,+90 0 ) .
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

k =1

k =2

k =2

S ( x1 , x 2 ,..., x N , N ) = g( x k ) ( x k ) ( x k 1 ) d ( x k , x k 1 )

(54)

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

, 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

62

4. Detecia muchiilor, liniilor i spoturilor.

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].
3 2 1
4

5 6 7
unde direciile sunt date de:
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: (0 ,1,2 ,3,4 ) .
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":
(55)
P( 0 ) P( 1 ) P( 2 ) P( 3 ) P( 4 )
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:

1 1
~
f (x,y) = max f (x + i,y + j) H m (i,j)
(56)
m

i
1
j
1
=

unde H m sunt mti (matrici 3x3) pentru detecia liniilor avnd diferite orientri. Se poate
folosi setul de mti:
1 1 2
1 2 1
1 1 1
2 1 1

(57)
2
2 H 3 = 1 2 1 H 4 = 1 2 1
H1 = 1 2 1 H 2 = 2

2 1 1
1 2 1
1 1 1
1 1 2

sau mtile cu valori ponderate:


1 2 1
2 1 2
2 1 2
1 2 1

4
2 H 3 = 1 4 1 H 4 = 1 4 1 (58)
H 1 = 2 4 2 H 2 = 2

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

8
1 2 1
Problema se mai poate aborda utiliznd mti de dimensiuni mai mari sau tehnici de
"potrivire" (image/template matching).
4.8. Detalii de implementare.

63

4. Detecia muchiilor, liniilor i spoturilor.

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;

64

4. Detecia muchiilor, liniilor i spoturilor.

case 5:
case 6:
case 7:

Area += j + j - 1;
Area += 0;
Area += -j - j + 1;

break;
break;
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.

65

5. Prelucrri morfologice ale imaginilor.

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:

B5

B13

B9
B25
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:
SBI = {(x,y) S/BI (x,y) 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:
S B = S {(x,y} S / B(x,y) S } ;
(2)
Deschiderea unei imagini este o operaie de erodare urmat de o dilatare cu acelai
ablon:
S < B = (SB) B ;
(3)
nchiderea unei imagini este obinut printr-o dilatare urmat de o erodare folosind
acelai ablon:
S > B = (S B)B
(4)

67

5. Prelucrri morfologice ale imaginilor.

Figurile urmtoare prezint rezultatele aplicrii unor astfel de operatori asupra unei
imagini binare, folosind abloanele B5 i B9 .

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:

68

5. Prelucrri morfologice ale imaginilor.

S1

S2

S1

S2
S2

S2

S1
S2

S1

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 {v0 , v1 ,..., v7 } vecinii pixelului curent, situaiile de mai sus se pot sintetiza
matematic (Davies[33]), (Pop[83]) prin numrul de treceri dat de:
4

T(x,y) = bk

(5)

k =1

unde:
1, pentru {v 2 k 1 S } I {v 2 k S U v 2 k +1 S}
(6)
bk =
0 , n rest
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".

69

5. Prelucrri morfologice ale imaginilor.

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 BK , unul din abloanele definite anterior, operaia de dilatare (expandare),
pentru imagini cu nivele de gri se definete prin:
f (D) (x,y) = max [ f (x + i,y + j)]
(7)
i,jBK

iar cea de comprimare (compactare, erodare) este dat de:


f (C) (x,y) = min [ f (x + i,y + j)]
i,jBK

(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.

70

5. Prelucrri morfologice ale imaginilor.

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;

71

5. Prelucrri morfologice ale imaginilor.

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.

72

6. Segmentarea imaginilor.

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:
P1 = Probabilitatea apriori ca un pixel s fie pixel obiect;
P2 = Probabilitatea apriori ca un pixel s fie pixel de fond;
p1 (z) = densitatea de probabilitate a variabilei aleatoare ataat pixelilor obiect;
p2 (z) = densitatea de probabilitate a variabilei aleatoare ataat pixelilor obiect.
Presupunnd o distribuie normal pentru pixelii de fond i cei de obiect, avem:
(z m1 ) 2
1
(1)
p1 (z) =
exp
2
2
(z m 2 ) 2
1
p2 (z) =
exp
(2)
2
2
Variabilele m1 , m 2 , 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.

73

6. Segmentarea imaginilor.

H(z)

P1p1(z)+P2p2(z)

E2(T)

E1(T)

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

n figura anterioar:
T

E1 (T) =

p2 (z) dz

(3)

p1 (z) dz

(4)

E 2 (T) =

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:
m + m2
P
dE
2
=0 T = 1
+
ln 2
(5)
dT
2
m 2 m1 P1
Determinarea valorilor ( m1 , m 2 , , P1 / P2 ) necesare n calculul pragului T se poate face
grafic, prin msuratori pe histograma real, folosind elementele din figura urmtoare:
H(z)
P1/P2=Max1/Max2
Max1

Max2
Max1/0.606
Max2/0.606

z
0

(m1- ) (m1+ )(m2- )


m1

(m2+ )

m2

Fig. 2. Determinarea grafic a pragului de segmentare.

74

6. Segmentarea imaginilor.

Dac ns pagina scanat conine text cu o densitate mic a caracterelor sau fonturi foarte
subiri, raportul P1 / P2 devine foarte mic, lobul histogramei corespunztor caracterelor se
diminueaz foarte mult i metoda precedent poate da rezultate nesatisfctoare.
H(z)
HMax

HMax/0.606

z
0

(m-2.5 )

m- m m+

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, T (x,y) , astfel nct:
T (x C ,y C ) = tC
(6)
unde ( x C , y C ) este centrul careului "c".
n continuare, se execut segmentarea dup formula clasic, adic:
negru, pentru f (x,y) < t (x,t)
(7)
f (x,y) =
alb, pentru f (x,y) t (x,y)
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.

75

6. Segmentarea imaginilor.

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

K=

H (z) dz

T 1

z =0

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

L 1

H (z) (cazul discret)

(8)

z =T

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.

R1
YD

YB

YG
C

YC
YA

YF

R2

YE

Fig. 4.Principiul creterii regiunilor.

Se noteaz cu R1 i respectiv R2 cele dou regiuni candidate la concatenare, P1 i


respectiv P2 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 R1 i R2 se concateneaz dac:
D
> 2 ,
(9)
min( P1, P 2 )
ceea ce previne concatenarea regiunilor cu aproximativ aceeai dimensiune, dar permite
nglobarea regiunilor mai mici n cele mai mari.
D
3. Regiunile R1 i R2 se concateneaz dac:
> 3 , cu 3 0.75 , regul care trateaz
C
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

76

6. Segmentarea imaginilor.

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 ( n 1 ) care trece prin "n" puncte date,
este:
n
(x x j )
Pn (x) = y i
(10)
i =1
j i (x i x j )
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 t1 t t 2 . El poate fi reprezentat prin funcii spline cubice:
4

S (t) = Bi t i 1 , unde t1 t t 2

(11)

i =1

Constantele B1 , B2 , B3 , B4 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[ S (t 2 ) S (t1 )] 2 S (t1 ) + S (t 2 ) 2 2[ S (t 2 ) S (t1 )] S (t1 ) + S (t 2 ) 3
+
S (t) = S (t1 ) + S (t1 )t +

t (12)
t +
2
3
2
t
t
t
t
2

2
2
2

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),

77

6. Segmentarea imaginilor.

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 S (t1 ) i S (t 2 ) 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 0 t 1 .
n unele situaii se prefer pentru segmentele terminale utilizarea condiiei de curbur
nul, adic S (t k ) = 0 , 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) = ( 1 t) p (r) + t q (s)
(13)
unde t , r , s sunt parametri, iar p (r) i q (s) 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
B0 ,B1 ,B2 ,B3 . Curba Bezier parametric asociat se scrie sub forma:
n

P (t) = Bi J n,i (t), 0 t 1

(14)

i =0

unde J n,i (t) este funcia Bernstein de baz de ordinul "n", dat de:
n!
J n,i (t) =
t i ( 1 t)n i
i!(n i)!
Pentru n = 2 ,..,9 alura acestor funcii este urmtoarea:
1

1
J2,2

J2,0

J2,1

78

J4,0

J3,3

J3,1

1 0

1
J3,0

J3,2

J4,4

J4,1

1 0

(15)

J4,2

J5,5

J5,0

J5,1

J4,3

1 0

J5,2

J5,3

J5,4

6. Segmentarea imaginilor.

1
J6,6

J6,0

J6,1

J6,2

J6,3

J6,4

J7,7

J7,0

J6,5

J7,1

J7,2 J
7,3

1 0

J7,4

J7,5

J8,0

J8,1

J7,6

J9,0

J8,8

J8,2 J
8,3

J8,4

J8,5

1 0

J8,6

J9,9

J9,1

J8,7

J9,2

J9,3 J J J9,6
9,4 9,5

1 0

J9,7

J9,8

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 n = 3 i
n = 4 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 J n,i (t) este nenul pentru t < 0 i t > 1 ). 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 t1 t t 2 . Reprezentarea lui
prin funcii B-spline (Rogers[93]) este dat de:
n

c (t) = pi Bi,k (t)

(16)

i =0

unde:
x (t)
c(t) =
este vectorul cu coordonatele curbei,
y (t)

79

6. Segmentarea imaginilor.

p (x) (t)
pi (t) = i(y) sunt aa-numitele puncte de control, iar
pi (t)
Bi,k (t),i = 0 ,1,...,n, k = 1,2 ,... sunt funciile B-spline generalizate de ordinul "k".

Parametrul "k" indic gradul de continuitate al funciei spline folosite, adic Bi,k (t) ,
mpreun cu primele sale k 2 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):
1, ti t ti +1
Bi,1 (t) =
(17)
0 , n rest
(t ti ) Bi,k 1 (t) (ti + k t) Bi +1,k 1 (t)
(18)
Bi,k (t) =
+
(t i + k 1 ti )
(ti + k ti +1 )
unde parametrii ti ,i = 0 ,1,...,n , sunt denumii noduri ("knots"). Funciile B-spline
normalizate de ordinul 1,2,3,4 sunt reprezentate schematic n cele ce urmeaz:
Bi,1(t)
Bi,2(t)

t
B

(t)

i,3

(t)

i,4

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


iar expresiile lor corespunztoare sunt:
0 .5t 2 ,
0t <1
2
1, 0 t < 1
t + 3t 1.5 , 1 t < 2
B0 ,1 (t) =
B0 ,3 (t) =
2
0 , n rest
0 .5( 3 t) , 2 t < 3
0 ,
n rest
t 3 / 6 ,
0t<1

3
2
0t <1
t,
( 3t + 12t 12t + 4 )/ 6 , 1 t < 2

(19)
B0 ,2 (t) = 2 t, 1 t < 2
B0 ,4 (t) = ( 3t 3 24t 2 + 60t 44 )/ 6 , 2 t < 3
2
0 ,

n rest
( 4 t) / 6 ,
3t<4

0 ,
n rest
Dac conturul de reprezentat este nchis, funciile B-spline folosite sunt denumite nchise
sau periodice. Dac punctele de control sunt uniform deprtate, adic:
ti +1 ti = t, i
(20)
avem funcii B-spline uniforme,cu proprietatea de periodicitate:
Bi,k (t) = B0 ,k (t i), i = k-1,k,...,n-k + 1 ,
(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.

80

6. Segmentarea imaginilor.

k=3;
k=4
Dac curba este descris printr-un set de puncte discrete, adic t = s0 ,s1 ,...,sn , avem:
n

x (s j ) = pi Bi,k (s j ), j = 0 ,1,...,n

(22)

i =0

de unde, n form matriceal:


Bk P = x P = Bk1 x
(23)
Remarcabil este faptul c, dac se accept aproximarea prin curbe B-spline uniforme,
matricea Bk 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 f (x,y) imaginea (continu, coninnd textura de studiat), astfel nct:
f (x,y) = 0 , pentru (x < 0 i x > Lx ) sau (y < 0 i y > L y )
(24)
Funcia de autocorelaie este definit prin:
++
1
f (u,v) f (u + x,y + y)dudv
(Lx |x|)(L y |y|)
R (x,y) =
+ +
1
f 2 (u,v)dudv

Lx L y

(25)

unde |x| < Lx i |y|< Ly . 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.

81

6. Segmentarea imaginilor.

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 P(i,j) 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:
SB I = {(x,y) S/BI (x,y) 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:
e(m,n)
zgomot alb

82

u(m,n)
1/A(z 1 ,z )
2

textur

6. Segmentarea imaginilor.

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
;

83

6. Segmentarea imaginilor.

}
}
} 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]);

84

7. Transformata Hough.

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 y = mx + n ecuaia unei
drepte n planul imaginii. Ei i corespunde n planul descris de coordonatele ( m ,n ) un punct, i
reciproc, fiecrei drepte din planul ( m ,n ) i corespunde o dreapt n planul imaginii (fig. 1 i 2).
n

y
m
y=mx+n

(m,n)

x
0

(-n/m)
Fig. 1.

0
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).

85

7. Transformata Hough.

y
n

x
0

(-n/m)
0
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 ( x , y ) prin:
x sin + y cos =
(1)
unde "" este distana din origine i pn la dreapt, iar "" este unghiul ntre dreapt i
abscis (fig. 5 i fig. 6).
y

/cos

(,)

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

y
/cos

(0,0)

/sin

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

86

7. Transformata Hough.

unghiurilor formate de vectorii de poziie ai pixelilor din imagine este [ 0 ,/ 2 ] , iar fa de


acetia, dreptele posibile din imagine formeaz un unghi de [ / 2 ,/ 2 ] (fig. 9).

y
Ymax

[/2,/2]

[0,/2]

Xmax

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 () = x sin +y cos . 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 c ,y c )

(x,y)

Fig. 10. Principiul generalizrii transformrii Hough.


Aceast metod pornete cu stabilirea unui punct de referin, notat (x c ,y 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.

87

7. Transformata Hough.

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 ) .

( , )
2

(x c ,y c )

( , )
1 1

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
(1 ,1 ),(21 , 21 ),...,(k11 , k11 )

(12 ,12 ),(22 , 22 ),...,(k22 , k22 )

...

...
( , ),( , 2m ),...,(kmm , kmm )

m
1

m
1

m
2

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

x c = x + nj cos nj
(3)

n
n
y c = y + j sin j
n tabloul de acumulare se incrementeaz locaia (x c ,y 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.
(x x0 )2 + (y y0 ) 2 = R 2
(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:

88

7. Transformata Hough.

(x0 x) 2 + (y0 y) 2 = R 2
Ecuaia precedent se poate scrie parametric:
x0 = x R sin

y0 = y R cos

(5)

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

(8)

(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 (x0 ,y0 ) date de ecuaiile precedente.
Ideea transformrii Hough poate fi generalizat pentru diferite alte curbe care pot fi
descrise parametric prin:
f (X,A) = 0
(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,
(x0 ,y0 ,r) :

(x x0 ) 2 (y y 0 ) 2
+
=1
(9)
a2
b2
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:
x x0 y y0 dy
+
=0
(10)
a2
b 2 dx
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
(x1 ,y 1 ) i (x 2 ,y 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
(x0 ,y 0 ,a,b) din spaiul parametrilor pentru care se incrementeaz tabloul de acumulare:
(x1 x0 ) 2 (y1 y0 ) 2
+
=1

2
b2
a
2
2
(x 2 x0 ) + (y 2 y0 ) = 1

a2
b2
(13)

x
x
y
y

1
0
1
0

+
tg (x1 ,y1 ) = 0
a2
b2
x 2 x0 y 2 y 0
a 2 + b 2 tg (x 2 ,y 2 ) = 0
unde (x1 ,y 1 ) i (x 2 ,y 2 ) sunt pixeli de muchie. Volumul de calcul necesar n acest caz este
proporional cu ptratul numrului de pixeli de muchie.

89

7. Transformata Hough.

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 stngajos, vom nota cu X max i Ymax dimensiunile ei, iar cu Rmin() i Rmax () valorile limit pentru ,
funcie de unghiul .
De exemplu, dac [ / 2 ,0 ] , se constat (fig. 12) c avem:
Rmax () = X max cos
(14)
Analog, studiind figurile care urmeaz, 13 i 14, corespunztoare cazurilor [ 0 ,/ 2 ] i
respectiv [/ 2 ,] , se pot sintetiza expresii pentru Rmin() i Rmax () .
/2<<0

y
Ymax

IMAGE

0<</2

y
Ymax

L(, )

L( , )

Rmin

L(Rmax, )

L(Rmax, )
Xmax

IMAGE

Rmax

Rmax

Xmax

Fig. 12.

Fig. 13.

/2<<

y
Ymax

L(Rmax, )

L( , )
Rmax

IMAGE

Xmax

Rmin

Fig. 14.
Rezult relaiile:

90

7. Transformata Hough.

Ymax sin, pentru [-/ 2 ,0 ];

Rmin() = 0 , pentru ( 0 ,/ 2 ];
X cos , pentru (/ 2 ,].
max

(15)

X max cos , pentru [-/ 2 ,0 ];

2
2
Rmax () = X max
+ Ymax
cos [arctg( Ymax X max ) ], pentru ( 0 ,/ 2 ];
Y sin, pentru (/ 2 ,].
max

(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).

/2

/2

/2

3
0

2
/2

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 ,] :
pentru [ 0 ,]
(),
(17)
() =
( + ), pentru [ / 2 ,0 )

2
0

/2

Fig. 17.

3
/2

Fig. 18.

91

7. Transformata Hough.

Desigur, o transformare alternativ poate fi definit pentru a reduce aceeai gam


dinamic la [ / 2 ,/ 2 ] i ea este dat de:
pentru [ / 2 ,/ 2 ]
(),
(18)
() =
( ), pentru (/ 2 ,]
Mai departe se pot obine doar valori pozitive pentru () prin transformarea (vezi fig.
18):
pentru [ 0 ,/ 2 );
(),
(19)
() =
() Rmin(), pentru [/ 2 ,]
iar gama dinamica a lui () devine:
() [ 0 ,Rmax () Rmin()]

(20)

1
3

/2
Fig. 19.

/2

0
Fig. 20.

/2

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:
()
() =
(21)
Rmax () Rmin()
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:

k( k ) = k( k )[Rmax ( k ) Rmin( k )]
pentru k [ 0 ,/ 2 );
k( k ),
k( k ) + Rmin( k ), pentru k [/ 2 ,]

k ( k ) =
deci:

92

(23)
(24)

7. Transformata Hough.

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

k ( k ) = k ( k ),
pentru k (/ 2 ,] i k ( k ) 0
( ), pentru (/ 2 ,] i ( ) < 0
k
k
k
k k

(25)

de unde se obine ecuaia dreptei din imaginea iniial:


x sin k +y cos k = k ( k ) ;

(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 ) = x sin k +y cos k
(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 ( k +1 , k +1 ) , 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.

Fig. 23.

numr de intersecii

Fig. 24.

93

7. Transformata Hough.

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 (x k ,y k ) i (x j ,y j ) , punctul de intersecie este
dat de:

kj = arctg
kj =

xk x j
yk y j

+ n, n = ... 1,0 ,1,... i

xk y j x j yk
(x k x j ) 2 + (y k y j ) 2

(28)
(29)

Alegnd valoarea unghiului care ndeplinete condiia kj [ 0 ,2] atunci:

kj ( kj ) = kj ( kj )

(30)

i urmtoarele calcule trebuiesc efectuate:


pentru kj [ 0 ,/ 2 );
kj ( kj ),
(31)
kj ( kj ) =
kj ( kj ) Rmin( kj ), pentru kj [/ 2 ,]
kj ( kj )
kj( kj ) =
(32)
Rmax ( kj ) Rmin( kj )
Numrul necesar de operaii este N (N 1 )/ 2 , unde N este numrul de curbe, i el este
mai mare ca numrul de operaii necesar efecturii transformatei Hough clasice dac
(N 1 )/ 2 > , unde este numrul de valori discrete ale unghiului, pentru kj [ 0 ,) .
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:
h( kj , kj ) = 1 + (| grad [ f (x k ,y k )]| + | grad [ f (x j ,y j )]|), unde > 0
(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, 2 = 50 ), 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 ( = 1 / 255 ) .

94

7. Transformata Hough.

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

x
0
Imaginea 1 - Muchii extrase (Sobel)

x
0

/2

3/2
Imaginea 1 - Transformata Hough

Imaginea 2 - Muchii extrase (Sobel)

/2

3/2
2
Imaginea 2 - Transformata Hough

95

7. Transformata Hough.

/2
0
/2

Imaginea 1 - versiunea Duda & Hart

/2

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

96

0
/2

Imaginea 2- versiunea O'Gorman & Clowes

x
0
Imaginea 3 (imagine achiziionat)

0
/2

Imaginea 2 - versiunea Duda & Hart

Imaginea 3 Muchii extrase (Sobel)

7. Transformata Hough.

/2

3/2
Imaginea 3 - Transformata Hough

/2
0
/2

Imaginea 3 - versiunea Duda & Hart

/2
0
/2

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

0
0
/2

/2

Imaginea 2 - Versiunea optimizat, trasare Imaginea 3 - Versiunea optimizat, trasare

97

7. Transformata Hough.

0
/2

Image 2 - Versiunea optimizat, numrare.

Imaginea 2:

Versiunea Duda & Hart, vedere 3D.

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

98

0
/2

Image 3 - Versiunea optimizat, numrare.

7. Transformata Hough.

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

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

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

99

7. Transformata Hough.

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 N(N 1 )/ 2 , 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);

100

7. Transformata Hough.

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);

101

7. Transformata Hough.

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;

102

7. Transformata Hough.

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

103

7. Transformata Hough.

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

104

7. Transformata Hough.

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;

105

7. Transformata Hough.

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);

106

7. Transformata Hough.

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;

107

7. Transformata Hough.

Pc^[y+y+1,x+x+1]:=n;
end;
end;
...
end;

108

8. "Potrivirea" imaginilor (image matching).

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 f (m,n) imaginea digital, unde M m M i N n N , iar cu
T (j,k) modelul cutat, o msur a distorsiunii dintre imagine i model poate fi scris:

d (m,n) = [ f (j,k) T (j m,k n)]

(1)

"Potrivirea" se obine pentru valoarea minim a expresiei anterioare sau cnd d ( m ,n )


scade sub un anumit prag. Relaia anterioar se poate simplifica mult notnd:
d (m,n) = d 1 (m,n) 2 d 2 (m,n) + d 3 (m,n)
(2)
unde
d1 (m,n) = [ f (j,k)] 2
(3)
j

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

(4)

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

(5)

Termenul d 3 (m,n) este constant i independent de coordonatele (m,n) . Energia imaginii


din fereastra de "potrivire" este reprezentat de d 1 (m,n) , n timp ce d 2 (m,n) este chiar corelaia
ntre imagine i model, n fereastra curent. Deoarece condiia de minim poate fi atins pentru
valori mari ale corelaiei d 2 (m,n) i ale energiei imaginii, d 1 (m,n) , chiar n condiii de
"nepotrivire", se utilizeaz intercorelaia normalizat drept msur a "potrivirii", adic:
d (m,n)
~
(6)
RFT (m,n) = 2
d 1 (m,n)

109

8. "Potrivirea" imaginilor (image matching).

Decizia de "potrivire" se ia dac este ndeplinit condiia:


~
RFT (m,n) > LR (m,n)

(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 g (x,y) , obinut din imaginea iniial f (x,y) afectat de zgomotul n (x,y) .
g (x,y) = f (x,y) + n (x,y)
(8)
Operaia de filtrare furnizeaz la ieire:
g0 (x,y) = g (x,y) h(x,y)
(9)
unde h(x,y) este rspunsul la impuls al filtrului de "potrivire".
Corespunztor intercorelaiei normalizate, n acest caz avem raportul semnal-zgomot:
| S (x,y)|2
(10)
N
unde | S (x,y)|2 = | g (x,y) h(x,y)|2 este energia instantanee la ieirea filtrului, iar
N este energia zgomotului la ieirea filtrului.
Notnd cu WN (x , y ) densitatea spectral de putere a zgomotului, rezult:
+ +

| S (x,y)|2
=
N

G ( ,
x

) H (x , y ) exp (jxx + jy y )dx d y

(11)

+ +

(x , y )| H (x , y )| dx d y

Expresia de mai sus este maximizat pentru:


G (x , y ) exp ( jxx jy y )
(12)
H (x , y ) =
WN (x , y )
Pentru zgomot alb, numitorul expresiei de mai sus este o constant. Pentru imagini
modelate stochastic, soluia cutat este dat de:
G (x , y ) exp ( jxx jy y )
(13)
H (x , y ) =
WF (x , y ) + WN (x , y )
Pentru cazul discret, fie g imaginea observat, format prin suprapunerea zgomotului n
peste imaginea ideal f:
g = f +n
(14)
Dac m este matricea filtrului cutat, n urma acestei filtrri se obine:
g~ = m T ( f + n )
(15)
Se utilizeaz notaiile:
S = (m T f ) 2 - energia imaginii ideale (fr zgomot), i
N = E {(m T n)(m T n)T } = m T K n m , energia zgomotului trecut prin filtrul m, unde
K n este matricea de covarian ataat zgomotului.
Raportul semnal zgomot este dat de:
S
(m T f) 2
= T
(16)
N m Knm

110

8. "Potrivirea" imaginilor (image matching).

Proiectarea filtrului se face n condiia maximizrii raportului semnal-zgomot, ceea ce


duce la:
m = K n1 f
(17)
iar pentru semnale stochastice:
m = ( K f + K n ) 1 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, f1 (j,k) i f 2 (j,k) , unde 1 j J i 1 k K . O msur a gradului de potrivire a
celor dou imagini este funcia de intercorelaie dat de:
f1 (j,k) f 2 (j m + (M + 1 )/ 2 ,k n + (N + 1 )/ 2 )

j
k
R (m,n) =
1/ 2
1/ 2

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

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

Fig. 1. Geometria operaiei de "potrivire".


rezult limitele de sumare pentru expresia lui R(m,n):
max [ 1,m (M 1 )/ 2 ] j MIN[J,J + m (M + 1 )/ 2 ]
(20)
max [ 1,n (N 1 )/ 2 ] k MIN[K,K + n (N + 1 )/ 2 ]
(21)
Dezavantajele modului de operare descris principial pn acum constau n alura
maximumului funciei de intercorelaie R (m,n) , 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:

111

8. "Potrivirea" imaginilor (image matching).

RS (m,n) =

g
j

(j,k) g 2 (j m + (M + 1 )/ 2 ,k n + (N + 1 )/ 2 )

(22)
1/ 2
1/ 2

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

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

( 1 + 2 )
2
2
1

( 1 + 2 ) ( 1 + 2 ) 2
( 1 + 2 )
di =
(25)
2 2
(1+ )
2
2
2

( 1 + )

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 f 2 (j,k) funcia f 2 (j,k;) 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.

112

8. "Potrivirea" imaginilor (image matching).

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.
Regulator
Semnal
video Reordonare
imagini
ntreesute

Estimator
de
micare

DCT

Cuantizor

Codare

Decuantizor
IDCT

M
U
L
T
I
P
L
E
X
O
R

Buffer
Semnal
video

Memorie,
Predictor

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

15

E(d x , d y ) = f (i, j ) g(i d x , j d y )

(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.

113

9. Extragerea trsturilor imagistice.

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

115

9. Extragerea trsturilor imagistice.

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 S 1 i S 2 , prin:

B (S 1 ,S 2 ) = ln [ p (x|S 1 ) p (x|S 2 )] 1 / 2 dx

(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:

116

9. Extragerea trsturilor imagistice.

1
1
1 12 ( 1 + 2 )
T 1 + 2
B (S 1 ,S 2 ) = (u1 u 2 )
(u
u
)
ln

1
2

8
2 | 1|1 / 2 + | 2|1 / 2
2

(2)

unde ui 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
1
(3)
M (x,y) =
f (x + i,y + j)
( 2w + 1 )2 i = w j = w
precum i prin deviaia lor standard, numit i dispersia imaginii:
w
w
1
[ f (x + i,y + j) m(x + i,y + j)] 2
(4)
2 (x,y) =

2
( 2w + 1 ) i = w j= w
Valorile M (x,y) i 2 (x,y) 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 2 w + 1 .
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:

L 1

S M = z H (z) z

(5)

z =0

Dispersia:
(Skewness):

L 1

S D = (z z ) 2 z
z =0

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

(7)

z =0

L 1

(z z)

(Kurtosis):

SK =

Energia:

S N = [ H (z)] 2

(6)

4
z z =0
L 1

H (z) 3

(8)
(9)

z =0

117

9. Extragerea trsturilor imagistice.

Entropia:

L 1

S E = H (z) log 2 [ H (z)]

(10)

z =0

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 P (a,b) probabilitatea (estimat din analiza
imaginii) ca pixelul cu coordonatele ( j ,k ) s aib nivelul de gri "a" i pixelul cu coordonatele
( m ,n ) s aib valoarea "b", deci:
P (a,b) = P { f (j,k) = a; f (m,n) = b}
(11)
se pot extrage alte trsturi care s caracterizeze interdependena ntre perechile de pixeli
din imagine:
L 1 L 1

Autocorelaia:

S A = ab P (a,b)

(12)

S C = (a a )(b b ) P (a,b)

(13)

a =0 b =0
L 1 L 1

Covariana:

a =0 b =0

L 1 L 1

L 1 L 1

a =0 b =0

a =0 b =0

unde a = a P (a,b) i b = b P (a,b)


L 1 L 1

Ineria:

S I = (a b) 2 P (a,b)

(15)

SV = |a b| P (a,b)

(16)

a =0 b =0
L 1 L 1

Modulul:

(14)

a =0 b =0
L 1 L 1

P (a,b)
2
a =0 b =0 1 + (a b)

Diferena invers:

S F =

Energia:

S G = [ P (a,b)] 2

(18)

S T = P (a,b) log 2 [ P (a,b)]

(19)

Entropia:

(17)

L 1 L 1

a =0 b =0
L 1 L 1
a =0 b =0

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:
F (x , y ) =

+ +

f (x,y) exp ( jx

jy y )dxdy

(20)

De remarcat faptul c exist metode optice pentru realizarea acestei transformri, un


senzor optic putnd furniza la ieire spectrul de putere sub forma:
M (x , y ) = F (x , y )

118

(21)

9. Extragerea trsturilor imagistice.

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

N () = M (,)d

(22)

unde = + y2 i = arctan ( y / x ) .
2
x

Oarecum similar, invariana la schimbarea scalei se obine tot printr-o integral, i anume:
P() =

M ( , ) d

(23)

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

S1(m) =

+ y(m +1 )

M ( ,
x

)dx d y

(24)

y(m)

S 2(m) =

x(m +1 ) +

M ( ,
x

)dx d y

(25)

x(m)
(m +1 ) 2

M (,)dd

S 3(m) =

(m)

S 4(m) =

(26)

+(m +1 )

M (,)dd

(27)

0 (m)

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:

Y
T

reducere
trsturi
(date)

YR

XR
T-1

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


unde:

X = (x1 ,x 2 ,...,x N ) - vectorul de intrare;


Y = (y1 ,y 2 ,...,y N ) - vectorul transformat;
YR = (y 1 ,y 2 ,...,y k ,c k +1 ,c k + 2 ,...,c N ) - vectorul de trsturi redus; el se obine din YR
nlocuind cu constante ultimele (N k) valori;
XR = (xr1 ,xr2 ,...,xrN ) - estimaia vectorului de intrare.

119

9. Extragerea trsturilor imagistice.

T = u1T , u2T ,..., uNT

, unde uTj = (u j 0 ,u j 1 ,...,u jN ) este matricea unei transformri

ortogonale unitare care se va determina n condiiile minimizrii erorii medii ptratice date de:
e = E {(X X )T (X X )}
(28)
Notnd matricea de covarian a intrrii cu:
K XX = E{(X X )(X X )T }
(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:
1 N 1 N 1
uj
vk
F (u,v) =
f (j,k) cos (
) cos (
)
(30)

2 N j =0 i =0
N
N
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
1. (K XX j I N ) u j = 0 - liniile matricii transformrii sunt valorile proprii ale matricii
de covarian a domeniului de intrare;
2. K YY = diag (1 ,2 ,...,N ) - transformarea furnizeaz la ieire coeficieni necorelai;
3. =

j = k +1

- expresia erorii.

obiectelor i regiunilor imagistice. Pentru o funcie mrginit real f (x,y) , definit pe o regiune
finit R, momentul (regulat) de ordinul (p + q) se definete prin:

m p,q = f (x,y)x p y q dxdy

(31)

Funcia caracteristic a lui f (x,y) se definete prin conjugata transformrii ei Fourier:

F ( 1 , 2 ) = f (x,y) exp { 2j(x 1 + y 2 )}dxdy

(32)

Funcia generatoare de momente pentru f (x,y) fiind definit de relaia:

M ( 1 , 2 ) = f (x,y) exp (x 1 + y 2 )dxdy

(33)

pe baza ei se pot obine momentele de orice ordin cu expresia:


p + q M ( 1 , 2 )
m p,q =
1p 2q
= =0
1

120

(34)

9. Extragerea trsturilor imagistice.

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

+ +
( 2j) p + q p q
exp
[

2
j(x
+
y
)]
m
1 2 d 1 d 2
p,q
1
2

p!q!
=
=
p
0
q
0

n cazul discret momentele se calculeaz cu:


m pq = x p y q f (x,y)
f (x,y) =

(35)
(36)

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

9.4.1. Momente invariante.


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

p,q =

++

(x x) (y y)
p

f (x,y)dxdy

(38)

iar pentru cazul discret avem:


p,q = (x x ) p (y y) q f (x,y)
x

(39)

Momentul centrat normalizat de ordinul (p + q) se definete prin:

p,q =

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

(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]):
1 = 2 ,0 + 0 ,2

2 = ( 2 ,0 + 0 ,2 ) 2 + 4 12,1
3 = ( 3 ,0 3 1 ,2 ) 2 + ( 0 ,3 3 2 ,1 ) 2
4 = ( 3 ,0 + 1 ,2 ) 2 + ( 0 ,3 + 2 ,1 ) 2

(41)

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

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

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


+ ( 3 ,0 3 2 ,1 )( 2 ,1 + 0 ,3 )[( 0 ,3 + 2 ,1 ) 2 3( 1 ,2 + 3 ,0 ) 2 ]
De remarcat faptul c modulul momentului 7 prezint invarianele sus-menionate.

121

9. Extragerea trsturilor imagistice.

9.4.2. Momente ortogonale.


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

1 dn 2
(x 1 ) n
n
n
n! 2 dx
+1
2
1 Pn (x) Pm (x)dx = 2n + 1 (m n)
Aceste polinoame ortogonale permit reprezentarea funciei f (x,y) prin:
Pn (x) =

+ +

f (x,y) = p,q Pp (x) Pq (y)

(43)
(44)

(45)

p =0 q =0

unde:
+1 +1

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

4
j =0 k =0
p,q =

unde c j ,k reprezint coeficientul lui x k 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:
x2 + y2 = 1
(48)
Pentru construcia lor se definete mai nti un set de polinoame ortogonale, notate:
{ Vnm (x,y)}, cu n |m| par i |m| n
(49)
Expresia de definiie a lor este:
Vnm (x,y) = Vnm (,) = Rnm () exp (jm)
(50)
unde:
(n |m|)/ 2
(n s)!
Rnm () = ( 1 ) s
n2 s
(51)
s![(n + |m|)/ 2 s ]![(n |m|)/ 2 s ]!
s =0
Se poate remarca faptul c:
Rn,m () = Rnm ()
(52)
Aceste polinoame { Vnm (x,y)} fiind ortogonale, satisfac condiiile de ortogonalitate:

[V

nm

x 2 + y 2 1

unde:

122

(x,y)] V pq (x,y) dx dy =

n+1

np mq

(53)

9. Extragerea trsturilor imagistice.

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

Anm =
f (x,y)Vnm
(,) dx dy
(54)

x 2 + y 2 1

ab =

Pentru cazul discret, momentul Zernike de acelai ordin se scrie:


n +1

Anm =
f (x,y)Vnm
(,), cu x 2 + y 2 1
(55)

x y
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:
nmax
~
f (x,y) = Anm Vnm (,)
(56)
n =0 m

Descompunnd aceast expresie n:


nmax
nmax
~
f (x,y) = Anm Vnm (,) + Anm Vnm (,)

(57)

i folosind o proprietate enunat anterior, putem scrie:


nmax
nmax
~
f (x,y) = An,m Vn,m (,) + Anm Vnm (,)

(58)

n =0 m <0

n =0 m 0

n =0 m >0

n =0 m 0

adic:
nmax
nmax
~

f (x,y) = Anm
Vnm
(,) + Anm Vnm (,)
n =0 m >0

(59)

n =0 m 0

Cele dou sume pot fi acum unificate scriind:


nmax
~

f (x,y) = An 0 Vn 0 (,) + Anm


Vnm
(,) + Anm Vnm (,)
n =0 m >0

(60)

Deoarece este mai uor de operat cu numere reale vom descompune numerele complexe
din formula anterioar:
~
f (x,y) = [Re ( An 0 ) j Im ( An 0 )]Vn 0 (,) +
nmax

+ [[Re ( Anm ) j Im ( Anm )] Rnm ()( cos m j sin m) +


n =0 m >0

+ [Re ( Anm ) + j Im ( Anm )] Rnm ()( cos m + j sin m)]


(61)
Efectund calculele rezult expresia:
nmax
1
~
f (x,y) = C n 0 Rn 0 (x,y) + [C nm cos m + Snm sin m ] Rnm (x,y)
(62)
2
n =0 m
n care
2n + 2
C nm = 2 Re ( Anm )
<==> C nm =
f (x,y) Rnm (x,y) cos m
(63)

x
y
i:
2n 2
Snm = 2 Im ( Anm ) <==> Snm =
f (x,y) Rnm (x,y) sin m
(64)

x
y
Se demonstreaz foarte uor c modulul momentelor Zernike este invariant la rotaie i ca
urmare ele pot fi folosite drept trsturi invariante la rotaie.

123

9. Extragerea trsturilor imagistice.

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:
P = x 2 (t) + y 2 (t)dt

(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:
A = dxdy
(66)
D

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:
E = RG
(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

d 2x d 2 y
k (s) = 2 + 2
(68)
ds ds
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
1
(69)
E = | k (s)|2 ds
T0
Raportul de sveltee (roundness, compactness) este dat de raportul ntre ptratul
perimetrului i arie:
P2
R=
(70)
4A
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:
x f (x,y)
y f (x,y)

m1,0
m
x
y
x
y
(71)
x=
=
y=
= 0 ,1
f (x,y) m0 ,0
f (x,y) m0 ,0
x

Orientarea indic unghiul fa de abscis al momentului minim de inerie, moment


descris de:

124

9. Extragerea trsturilor imagistice.

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

(72)

Rezult, prin minimizarea lui I() n raport cu , orientarea:

2 1 ,1

(73)

2 ,0 0 ,2
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:
a = x cos + y sin
(74)

b = x sin + y cos
Dreptunghiul propriu-zis se obine determinnd, pentru toate punctele conturului, valorile
a min , a max , bmin , bmax 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:
x2 y2
+
=1
(75)
a 2 b2
momentele de inerie maxim i minim sunt date de:

1
2

= arctan

I MIN =

ab 3 i

I MAX =

a 3b ,

pentru a>b.
4
4
Calculnd orientarea obinem momentele de inerie ale obiectului:
= [ (x x ) sin + (y y) cos ] 2
I MIN
x

= [(x x ) cos + (y y) sin] 2


I MAX

(76)
(77)

Egalnd corespuztor momentele de inerie rezult elipsa descris de:


1/ 4

1/ 8

1/ 4

1/ 8

3
3
4 (I )
4 (I )
a = MAX
a = MIN
(78)

I MIN
I MAX

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 :

125

9. Extragerea trsturilor imagistice.

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 x (s) i y (s) , presupunnd, pentru
simplitate, cazul continuu.
Obinerea descriptorilor Fourier are la baz transportarea conturului descris parametric n
planul complex, rezultnd funcia complex:
z (s) = x (s) + j y (s)
(79)
Unghiul tangent, definit ca unghiul format de normala la vectorul de poziie al punctului
curent cu tangenta la curb este dat de:
d y (s)/ds
(s) = arctan
(80)

d x (s)/ds
n planul complex se definete curbura conturului nchis studiat prin:
d (s)
k (s) =
(81)
ds
Cunoscnd curbura i unghiul tangent n fiecare punct al conturului, acesta se poate
reconstrui cu formulele:

x (s) = x ( 0 ) + k () cos [ ()]d

(82)

y (s) = y ( 0 ) + k () sin [()]d

(83)

Evident, curbura k (s) este o funcie periodic de perioad P, unde P este cel mai des
lungimea perimetrului conturului. Ca urmare, k (s) poate fi dezvoltat n serii Fourier prin:
+
2j
k (s) = cn exp
n
(84)
P
n =
unde coeficienii c n ai dezvoltrii au expresia:

126

9. Extragerea trsturilor imagistice.

cn =

1
2j
k (s) exp
n ds

P0
P

(85)

Coeficienii c n se numesc descriptorii Fourier ai conturului descris prin curbura k (s) . Un


alt set de descriptori se pot ataa direct conturului propriu-zis z (s) 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]:
s
2s
(86)
(s) = k ()d
P
0
Pentru cazul discret, conturul apare descris de irul coordonatelor pixelilor de contur.
Similar cazului continuu, se face trecerea n planul complex prin:
z (si ) = x (si ) + j y (si )
(87)
Unghiul tangent este dat de:
y (si ) y (si 1 )
(88)
(si ) = arctan

x (si ) x (si 1 )
iar curbura se obine prin:
k (si ) = (si ) (si 1 )
(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.
z (n) = x (n) + j y (n)
(90)
N 1
1
2j
z (n) = c k exp
kn
(91)
N k =0
N

N 1
2j
c k = z (n)exp
kn
(92)
N

n =0
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:
Translatie:
Scalare:
Punct start:
Rotatie:
Reflexie:

~
z (n) = z (n) + z0
~
z (n) = z (n)

~
z (n) = z (n n0 )
~
z (n) = z (n) exp (j 0 )
~
z (n) = z (n) exp ( 2 j) + 2

==>
==>
==>
==>
==>

c~k
c~k
c~k
c~k
c~
k

= c k + z0 k
= ck
= c k exp ( 2jn0 k/N)
= c k exp (j 0 )
= c k exp ( 2 j) + 2 k

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 c~k sunt invariante la rotaie, reflexie i poziia
punctului de start, iar raportul c~ / | c~ | este invariant la scalare, pentru orice k.
k

127

9. Extragerea trsturilor imagistice.

Avnd date dou contururi z1 (n) i z 2 (n) , se poate aprecia dac ele sunt similare
indiferent de poziia, mrimea i orientarea lor, folosind distana:
N 1
2
D (z0 ,,n0 , 0 ) = min z1 (n) z 2 (n + n0 ) exp (j 0 ) z0
(93)
z0 ,,0 ,0

n =0
Parametrii z0 , , n0 , 0 se determin din condiia minimizrii distanei D anterioare. Fie
ak i respectiv bk descriptorii Fourier calculai pentru cele dou contururi. Se folosesc notaiile:

a k bk = c k exp (j k ) , = 2n0 / N
Dac z1(n) i z 2 ( n ) se normalizeaz astfel nct:
N 1

z1 (n) = 0

N 1

n =0

n =0

(94)

(n) = 0

(95)

atunci distana D (z0 ,,n0 , 0 ) este minim pentru:


N 1

z0 = 0

ck cos ( k + k + 0 )
k =0

N 1

b
k =0

N 1

ck sin( k + k)

0 = arctan Nk =01

ck cos ( k + k)

k =0

(96)

nlocuind expresiile obinute rezult:


N 1
2
D = min a k bk exp (jk + j 0 )
(97)

k =0

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.

128

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.

9.7. Caracterizarea texturilor.


Schema bloc a unui sistem general de analiz a texturilor, propus de Jain [56] este dat n
continuare:
msurare
autocorelaie
u(m,n

extragere trsturi
trsturi textur
filtru A(z 1,z2 ) e(m,n) msurtori
decorelare
histogram

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


Textura este mai nti decorelat de filtrul A (z1 ,z 2 ) 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

Periodice

Alte metode

Aleatoare

Primitive

Poziionale

Funcia de
autocorelaie

Regiuni

Perioad

Densitate
muchii

Transformri
ortogonale

Nivel de gri

Adiacen

Densitate
extreme

Cantitate
muchii

Omogenitate

Distane

Continuitate
regiuni

Modele
mozaic

Matrice
coocuren
Cmpuri
aleatoare

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.

129

9. Extragerea trsturilor imagistice.

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
d

c
a

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):

d
b c
b

c bb
a

d
b

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.).

130

9. Extragerea trsturilor imagistice.

Limit pr

Limit pr

dreapta-sus

stnga-sus

dreapta-jos
stnga-jos

Sprncean
Limit
stnga
fa

Sprncean

Ochi

Ochi

Sprncean
Limit
dreapta
fa

sus
Limit dreapta

Nas (baz nas)

jos
dreapta

Ochi
stnga
fa stnga
stnga-sus

Sprncean

jos

sus
dreapta

Ochi
stnga

Limit
dreapta
stnga
fa

dreapta-jos
dreapta-sus
stnga-jos

Nas (baz nas)


jos

Gur

sus

Gur
jos

Limit
jos
fa

sus

Limit
jos
fa

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

131

9. Extragerea trsturilor imagistice.

var
i,j,m,n :
Img1,Img2:
Code
:
Text
:

integer;
^Image;
byte;
string;

(*---------------- PROCEDURA
D e s c r i p
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
Px,Py
: ^pvec;
{pointer la lista de
Rp,Ip
: ^rvec;
{pointer la lista de
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];

t ----------------------------*)

nr. de puncte/contur}
pointeri la listele coordonate}
pointeri la listele descriptori}

{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;

132

9. Extragerea trsturilor imagistice.

{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

133

9. Extragerea trsturilor imagistice.

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;

134

9. Extragerea trsturilor imagistice.

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;

135

10. Clasificatori liniari.

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:
y
(A)

(B)

Fig. 1. Principiul clasificatorului liniar.


Limita de decizie n acest caz este de forma:
u = mx + n
sau echivalent:
a1 x + a 2 y + a 3 = 0

(1)
(2)

unde a1 = m, a 2 = 1, a 3 = b
Funciile discriminant pentru cele dou clase pot fi construite de forma:
D A (x,y) = a1 x + a 2 y + a 3
(3)
DB (x,y) = a1 x a 2 y a 3
(4)
Generaliznd, o funcie discriminant liniar pentru spaiul n-dimensional al formelor este
dat de:

137

10. Clasificatori liniari.

Di (X) = wi 1 x1 + wi 2 x 2 + ... + win x n + wi,n +1 = wij x j + wi,n +1

(5)

j =1

sau, cu notaia x n +1 = 1 , avem:


n +1

Di (X) = wij x j

(6)

j =1

care definete prin Di (X) = 0 ecuaia unui hiperplan.


Matriceal, expresia de mai sus se scrie:
Di (X) = [wi 1 wi 2 ... win wi,n +1 ]X, pentru i = 1...K
Sintetiznd pentru toate valorile lui "i", obinem:
D1 (X) w11 w12 ... w1n w1,n +1
D (X) w
w22 ... w2 n w2 ,n +1
X D = WX
2
= 21
... ... ...
...
... ...


DK (X) wK 1 wK 2 ... wKn wK,n +1
Limitele de decizie dintre oricare dou clase se deduc din:
n +1

Di (X) D j (X) = 0 (wim w jm )x m = 0

(7)

(8)

(9)

m =1

Folosind notaia:
wm( ij ) = wim w jm

(10)

se obine ecuaia limitei de decizie ntre dou clase de forma:


n +1

m =1

( ij )
m

xm = 0

(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, D (X) ,
astfel nct:
D (X) > 0 , pentru X 1
(12)

D (X) < 0 , pentru X 2


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:
X j D j (X) > Di (X), i j, i = 1...K
(13)
Se remarc apariia unei regiuni de nedeterminare (gri) pentru care nu se poate lua o
decizie.

138

10. Clasificatori liniari.

1
2

3
4
2
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
1
2

2
3

4
Fig. 3. Clasificator liniar multicategorial, metoda 2.
n acest caz se construiesc funcii de decizie de forma:
X i sau X j Dij (X) > 0 , unde i j

(14)

Se ia decizia de apartenen la una din clase folosind regula:


X i Dij (X) > 0 , unde j i,j = 1...K

(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:
Dij (X) = Di (X) D j (X)
(16)
regula de decizie folosit n acest caz fiind de forma:
X i Dij (X) > 0 , unde j i,j = 1...K

(17)

139

10. Clasificatori liniari.

1
3

3 2

4
3

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

Fig. 5. Exemplu de clasificare liniar multicategorial, metoda 3.


10.1. Clasificatorul de distan minim.
Pentru fiecare clas se definesc vectorii prototip prin:
1 Mi
Ri =
(18)
X j , i = 1...K
M i j =1
i care reprezint centrul de greutate (media) formelor care alctuiesc setul de antrenament
(nvare, formare) al clasei i , iar M i 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 d (X,Ri ) . Decizia se ia conform regulii:
X i d (X,Ri ) < d (X,R j ), j i, j = 1...K
(19)

sau echivalent:
X i d 2 (X,Ri ) < d 2 (X,R j ), j i, j = 1...K

(20)

Dac se folosete distana euclidian, atunci:


n

d (X,Ri ) = (x m rim ) 2

(21)

m =1

Pe baza acestei distane se construiete funcia discriminant, punnd, mai nti, distana
precedent sub forma:

140

10. Clasificatori liniari.

d (X,Ri ) = X Ri

= X

2 RiT X + Ri

(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:
2
X i d 2 (X,Ri ) = minim 2 RiT X Ri = maxim
(23)
rezult:
Di ( X ) = 2 RiT X Ri

(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):
1 /p

- distana Minkovski

d (X,Y) = (xi y i ) p
i =1

- distana Manhattan

d (X,Y) = xi y i

(26)

d (X,Y) = xi y i

(27)

(25)

i =1
n

- distana Hamming

i =1
n

d (X,Y) = xi y i

- distana Tanimoto

i =1

(x
i =1

+ yi )

(28)

Funcia de decizie dat de un clasificator liniar pentru clasa i , adic:


n +1

Di (X) = wik x k

(29)

k =1

definete prin Di (X) = 0 ecuaia unui hiperplan n spaiul (n + 1 ) dimensional (extins) al


trsturilor, hiperplan ce trece prin origine. Un asemenea plan este complet determinat de vectorul
normalei la plan, vector definit de:
T
Wi = [wi 1 ... win wi ,n +1 ]
(30)
i denumit vectorul de ponderi. Ca urmare se poate lucra direct cu aceti vectori, modul de
operare fiind:
X i Di (X) = Wi T X > 0 Wi , X > 0
(31)
spaiul extins al trsturilor fiind echivalat n acest caz cu spaiul ponderilor.
10.2. Formarea clasificatorului liniar.
Fie X = ( x1 x 2 ... x n )T un vector de form, X R n , unde este spaiul
formelor, iar "n" este numrul de trsturi.
Pentru cazul clasificrii binare, funcia discriminant este dat de:
n +1

n +1

i =1

i =1

D (X) = (wi( 1 ) wi( 2 ) )xi = wi xi = W T X

(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:
X 1 s = W T X > 0
(33)
T
X 2 s = W X < 0

141

10. Clasificatori liniari.

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.

W'

W'

plan de decizie

plan de

1
decizie
2

noul plan de decizie


noul plan de decizie
Fig. 6. Formarea clasificatorului liniar.

Dac X 1 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:
W = W + X
(34)
Dac X 2 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:
W = W X
(35)
Valoarea factorului de corecie "" se poate obine din expresia produsului scalar:
2
s = W T X = (W + X)T X = W T X + X
(36)
Rezult:

s s
X

(37)

Dac se impune, de exemplu, s = s , atunci rezult:


WT X
= 2
2
X

(38)

n general ns, se pot utiliza diverse strategii pentru alegerea factorului de corecie:
(1). Metoda factorului de corecie constant:
= const ., > 0
(2). Metoda coreciei absolute:
2
= cel mai mic ntreg > W T X / X

(3). Metoda coreciei fracionare:


WT X
=
, ( 0 ,2 ]
2
X
Corecia n acest ultim caz se poate face direct funcie de "", adic:
WT X
W T X W T X
T
W =W +
X W X = WX + W X =
2
WT X
X

142

(39)

10. Clasificatori liniari.

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 1 < < 2 , 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 R ( k ) = X m( k ) m =1...M k

(40)

unde M k 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:

d (X,k ) = min d (X,X m(k) ) =d (X,R (k) )

(41)

m =1...M k

Deci, practic, se construiesc funcii discriminant de distan minim pentru fiecare vector
prototip ataat unei clase.
Regula de decizie este:
X k d (X,k ) < d (X, j ),j k,j = 1...K
(42)
sau echivalent:
X k d (X,k ) = min d (X, j ),j k,j = 1...K

(43)

j =1...K

unde "K" este numrul de clase.


Expresia funciei discriminant corespunztoare se deduce n continuare prin:
d (X,X m(k) ) = X X m(k)

= X

2 X T X m(k) + X m(k)

(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:

D (X,X m(k) ) = 2 X T X m(k) X m(k)

(45)

Funcia discriminant pentru clasificatorul liniar pe poriuni se scrie atunci:


2

D (X,k ) = max D (X,X m(k) ) = max (X T X m(k) X m(k) )


m =1...M k

m =1...M k

Regula de decizie pentru clasificatorul liniar pe poriuni devine:


X k D (X,k ) = max D (X, j )
j =1...K

(46)
(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.

143

10. Clasificatori liniari.

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 X k 1 i este clasificat greit ca aparinnd lui p 2 , se poate corecta

aceast situaie construind un nou vector de ponderi prin adugarea unei fraciuni din X la
vectorul de ponderi precedent:
Wk = Wk + X , > 0
(48)
Dac X p 2 i este clasificat greit ca aparinnd lui k 1 , se poate corecta
aceast situaie construind un nou vector de ponderi, adaugnd o fraciune din X la vectorul de
ponderi precedent:
W p = W p X , > 0
(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:
W + X
Wk = k
, dac X k e clasificat greit n p i
(50)
Wk + X
W p =

W p X
W p X

, dac X p 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:
X k , dac ntre cei "k" vecini, cei mai muli aparin clasei k
Cazurile cu numr egal de voturi se elimin.

144

10. Clasificatori liniari.

Alteori, contribuia vecinilor la luarea deciziei se consider i funcie de distana ntre "X"
i cei "k" vecini, adic:
Nk
Nk
1
1
(k)
(k)
sau
(52)
V (X) = 2
V (X) =
i =1 Di (X)
i =1 Di (X)
unde, ntre cei "k" vecini, exist N k aparinnd clasei k .
Regula de decizie se scrie n acest caz:
X j V (j) (X) > V (i) (X), i j, i = 1...N c
(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 {Z ij } setul de forme de antrenament, unde Z ij 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):
z

z'

spaiul formelor

V 3 (0,0,1)

spaiul de decizie

2
y

y'
V 2 (0,1,0)

3
x

V 1 (1,0,0)
x'

Fig. 8. Principiul clasificatorului celor mai mici ptrate.

Deci n spaiul de decizie, fiecrei clase i va corespunde un punct Vi . 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:
Z ij AZ ij
(54)
unde "A" este matricea transformrii. Clasei i i atam n spaiul de decizie vectorul
(punctul) Vi .
O msur a erorii de clasificare este distana (n spaiul de decizie) ntre punctul de mapare
a vectorului de intrare ( AZ ij ) i punctul ataat clasei i ( Vi ).
Eroarea de clasificare poate fi estimat folosind vectorul de eroare:

145

10. Clasificatori liniari.

ij = AZ ij Vi

- pentru forma "j" a clasei i .

Eroarea de clasificare pentru toi vectorii (formele) din clasa i poate fi msurat prin:
1 Ni r 2
(55)
ij
N i j =1
unde N i este numrul de forme de antrenament din clasa i .
Eroarea global de clasificare, pentru toate clasele se scrie atunci:
1 Nc
2 =
(56)
i
N c i =1
unde N c este numrul de clase. Relaia anterioar trebuie corectat dac probabilitile de
apariie ale simbolurilor din diferite clase nu sunt egale, adic:
1 Nc
2 =
(57)
Pi i
N c i =1
Se dorete determinarea transformrii "A" care s minimizeze eroarea de clasificare
stabilit anterior:
2
1 N c Pi N i r 2
1 N c Pi N i
1 N c Pi N i
=

=
AZ

V
=
(AZ ij Vi )T (AZ ij Vi )
(58)

ij
ij
i
N c i =1 N i j =1
N c i =1 N i j =1
N c i =1 N i j =1
Rezult:
1 N c Pi N i T T
=
(Z ij A AZ ij 2 Z ijT AT Vi + Vi T Vi )
(59)

N c i =1 N i j =1
Condiia de minimizare este:
1 N c Pi N i
A = 0
( 2 AZ ij Z ijT 2Vi Z ijT ) = 0
(60)

N c i =1 N i j =1
Rezult n final:

i =

Nc P
A = i
i =1 N i

Matricea

Nc P
Vi Z i

j =1
i =1 N i
Ni

T
ij

Z ij Z

j =1

Ni

T
ij

(61)

Ni

Z ij Z ijT are semnificaia unei matrici de autocorelaie, iar


j =1

Ni

V Z
j =1

T
ij

are

semnificaia unei matrici de crosscorelaie, adic:


Ni

S(Vi Z ) = Vi Z
T
ij

j =1

T
ij

Ni

S(Z ij Z ) = Z ij Z ijT
T
ij

(62)

j =1

de unde rezult forma cel mai des utilizat pentru transformarea cutat:
1

Nc P
Nc P

A = i S(Vi Z ijT ) i S(Z ij Z ijT )


(63)
i =1 N i
i =1 N i

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:
L = AZ
(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:

146

10. Clasificatori liniari.

d i2 = L Vi

= L 2 LT V + Vi

(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
Di = 2 LT V Vi
(66)
Regula de decizie se scrie atunci:
Z i Di > D j , j i , j = 1...N c

(67)

Deoarece regula de mapare este construit, se poate alege, de exemplu, vectorul Vi de


forma:

Vi = [0 0

... 1 ... 0 ] , cu "1" pe poziia "i" a vectorului.


T

= 1, i = 1...N c i atunci funcia de decizie pentru clasa "i" este:


Di = LT Vi = Vi T L = Vi T AZ , pentru i = 1..N c
(68)
Cele N c relaii se pot grupa ntr-o singur relaie matriceal de forma:

Ca urmare avem Vi

D1 1
D
2 = 0
... ...


DNc 0

0
0
AZ = AZ D = AZ
(69)
...

1
Deci n condiiile impuse lui Vi , clasificarea nseamn calculul vectorului "D" i selecia
valorii maxime din el, reinndu-se indicele clasei.
0
1
...
0

...
...
...
...

147

11. Tehnici statistice de recunoatere.

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:
P ( j ) - probabilitatea aprioric a clasei j ;

P ( j /X) - probabilitatea ca clasa j s includ forma X;


P (X/ j ) - probabilitatea ca forma X s fie inclus n clasa j ;
F ( j ,k ) - 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:
0 , pentru j = k
F ( j /k ) =
1, pentru j k
care mai poate fi scris:
F ( j /k ) = 1 (j,k)

(1)
(2)

unde (j,k) este funcia delta Kronecker.


b) Funcia de pierdere diagonal, descris de:
h , pentru j = k
(3)
F ( j /k ) = j
0 , pentru j k
Pe baza funciei de pierdere se definete pierderea medie condiionat sau riscul
condiionat pentru fiecare clas prin:
NC

L (X,k ) = F ( j /k ) P ( j /X)

(4)

j =1

149

11. Tehnici statistice de recunoatere.

Folosind formula lui Bayes (sau formula cauzei), avem:


P (X/ j ) P ( j )
P ( j /X) =
P (X)
rezult pentru riscul condiionat expresia:
1 NC
L (X,k ) =
F ( j /k ) P (X/ j ) P ( j )
P (X) j =1
Decizia de clasificare se ia pe baza riscului minim de eroare, deci conform regulii:
X k L (X,k ) < L (X, j ),j = 1...N C ,j k

(5)

(6)
(7)

Se remarc faptul c procesul de luare a deciziei impune calculul a N C funcii de risc


condiionat, unde N C este numrul de clase.
Trecerea la funcii discriminant se face imediat definindu-le prin:
Dk (X) = L (X,k )
(8)
adic:
1 NC
Dk (X) =
(9)
F ( j /k ) P (X/ j ) P ( j )
P (X) j =1
care definete funcia de decizie pentru clasificatorul Bayes.
Deci regula de decizie devine:
X k Dk (X) > D j (X),j = 1...N C ,j k
(10)
Pentru funcia de pierdere simetric, riscul condiionat are expresia:
1 NC
L (X,k ) =
[P (X/ j ) P ( j ) (j,k) P (X/ j ) P ( j )]
P (X) j =1
Dar din formula probabilitii totale avem:
NC

P (X) = P (X/ j ) P ( j )

(11)

(12)

j =1

i ca urmare:

1
P (X/k ) P (k )
(13)
P (X)
Probabilitatea P (X) este aceeai pentru toate funciile de risc condiionat, deci putem
L (X,k ) = 1 +

folosi:

L (X,k ) = P (X/k ) P (k )
(14)
Rezult funcia de decizie a clasificatorului Bayes pentru funcia de pierdere simetric:
Dk (X) = P (X/k ) P (k )
(15)
Pe baza ei se scrie regula de decizie:
P (X/k ) P ( j )
X k P (X/k ) P (k ) > P (X/ j ) P ( j ) =
>
(16)
P (X/ j ) P (k )

unde cu s-a notat raportul de verosimilitate.


Pentru funcia de pierdere diagonal, expresia riscului condiionat este
1
L (X,k ) =
( hk ) P ( X /k ) P (k )
P (X)
i din aceleai considerente ca mai sus vom folosi:

(17)

L (X,k ) = hk P (X/k ) P (k )
(18)
Funcia de decizie a clasificatorului Bayes pentru funcia de pierdere diagonal este:

150

11. Tehnici statistice de recunoatere.

Dk (X) = hk P (X/k ) P (k )
iar regula de decizie corespunztoare se scrie:

P (X/k ) h j P ( j )
>
P (X/ j ) hk P (k )
Probabilitatea global de eroare pentru clasificatorul Bayes este:
NC

Pe = P (i ) P (X/i )dX
i =1

X k hk P (X/k ) P (k ) > h j P (X/ j ) P ( j ) =

(19)
(20)

(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:
(x m) 2
1
(22)
(x) =
exp

2 2
2

unde "m" i "" sunt respectiv media i dispersia variabilei aleatoare cu distribuie
normal.
Pentru cazul multidimensional, mediei i corespunde:
M = E {X}
(23)
iar dispersiei:
= E {(X M)(X M)T }
(24)
unde E este operatorul speran matematic, iar este matricea de covarian a variabilei
aleatoare multidimensionale X = (x1 ,x 2 ,...,x n ) .
Densitatea de repartiie multidimensional este:
1
1

(X) =
exp (X M)T 1(X M)
(25)
1/ 2
n/ 2
|| ( 2)
2

Deci:
1
1

1
P (X/k ) =
exp (X M k )T k (X M k )
(26)
1/ 2
n/ 2
|k | ( 2)
2

Pentru funcia discriminant se prefer folosirea logaritmului:

Dk (X) = log [P (X/k ) P (k )]


(27)
Renunnd la termenii care sunt independeni de clas, rezult:
1
1
1
Dk (X) = log |k| X T k1 X + M kT k1 X M kT k1 M k + log P (k ) (28)
2
2
2
Sunt foarte utile unele propuneri simplificatoare:
1) Dac matricile de covarian sunt egale pentru toate clasele se obine binecunoscutul
clasificator liniar:
1
Dk (X) = M kT 1 X M kT 1 M k + log P (k )
(29)
2
2) Fcnd presupunerea suplimentar a clasificrii binare, funcia de decizie se scrie:
1
1
D (X) = (M 1T M 2T ) 1 X M 1T 1 M 1 + M 2T 1 M 2 + log P (1 )/ P (2 ) (29)
2
2

151

11. Tehnici statistice de recunoatere.

3) Dac probabilitile apriorice ale claselor sunt egale, funcia de decizie multicategorial este:
1
Dk (X) = M kT 1 X M kT 1 M k
(30)
2
4) Dac trsturile formei de intrare sunt necorelate, atunci este o matrice diagonal i avem:
1
Dk (X) = M kT X M kT M k
(31)
2
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:
1 Nc
L (X,k ) =
(32)
F (k /i ) P (X/i ) P (i )
P (X) i =1
Riscul global de clasificare incorect, a crui minimizare se dorete, este dat de:
r = L (X,k ) P (X)dX
(33)

unde integrala se calculeaz peste ntreg spaiul formelor, deoarece, evident:


Nc

(34)

k =1

nlocuind prima formul n cea precedent, se obine:


Nc

Nc

r = F (k /i ) P (X/i ) P (i )dX = P (i ) F (k /i ) P (X/i )dX


(35)
i =1

i =1

Deoarece orice clasificare multicategorial poate fi realizat folosind un set adecvat de


clasificatori binari, formula anterioar devine pentru cazul N c = 2 :
r = P (1 ) F (1 /1 ) P (X/1 )dX + P (1 ) F (1 /2 ) P (X/1 )dX +
1

+ P (2 ) F (2 /1 ) P (X/2 )dX + P (2 ) F (2 /2 ) P (X/2 )dX


1

(36)

n expresia de mai sus F (i ,i ) este valoarea funciei de pierdere pentru cazul clasificrii
corecte, i ca urmare, pentru simplificarea calculelor, se poate impune F(i ,i ) = 0 , de unde
obinem:
r = P (1 ) F (1 /2 ) P (X/1 )dX + P (2 ) F (2 /1 ) P (X/2 )dX
(37)
2

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:
X 1 W T X > 0
(38)

T
X 2 W X < 0
Condiia de linearitate impus clasificatorului nu este restrictiv. innd cont de
dependenele existente, trebuie fcut nlocuirea:
F (1 /2 ) F (1 /2 ,X,W )
(39)
i atunci avem:

152

11. Tehnici statistice de recunoatere.

r = P (1 ) F (1 /2 ,X,W) P (X/1 )dX + P (2 ) F (2 /1 ,X,W) P (X/2 )dX


2

(40)

Planul de decizie, deci parametrii clasificatorului trebuiesc determinai din condiia


minimizrii riscului global, adic:

r (W) = 0 , unde =
(41)
...
wn +1
w1 w2
Calculnd gradientul riscului global, rezult expresia:
r (W) = P (1 ) F (1 /2 ,X,W) P (X/1 )dX
2

+ P (2 ) F (2 /1 ,X,W) P (X/2 )dX + g (2 , 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:
0 , pentru j = k
(43)
F (k / j ) =
1, pentru j k
(2). Funcia de pierdere diagonal:
h , pentru j = k
F (k / j ) = k
(44)
0 , pentru j k
(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:
WT X
WT X
(45)
d=
=
1/ 2
n +1
W

wi2
i =1
Dac d < 0 , nseamn c forma a fost clasificat corect, deci n acest caz avem:
F (d) = 0 , pentru d < 0
(46)
Pentru o funcie de pierdere dependent liniar de distana la planul de decizie, avem:
0 ,
pentru W T X 0 , X 1 , clasificare corect

F (1 /2 ,d) = W T X
(47)
, pentru W T X < 0 , X 1 , clasificare incorect
W

153

11. Tehnici statistice de recunoatere.

0 ,
pentru W T X 0 , X 2 , clasificare corect
T
F (2 /1 ,d) = W X
, pentru W T X > 0 , X 2 , clasificare incorect
W

Se calculeaz:

W T X X W W T X W
X W W T X W T W

=
=
2
2
W
W
W

X W W T X W TW

1 / 2

X W W T X W
W

(48)

1/ 2

XW

( W T X )W
W

(49)
iar rezultatul se noteaz cu:

f (X,W) =

XW

(W T X)W
W

(50)

Ca urmare, gradientul riscului global poate fi exprimat cu:


r (W) = P (1 ) f (X,W) P (X/1 )dX + P (2 ) f (X,W) P (X/2 )dX + g (2 ,1 )
2

(51)

Aceste metode fiind neparametrice, caracteristicile statistice ale procesului sunt


necunoscute, deci P (i ) , P (X/1 ) 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:
W(i + 1 ) = W(i) + W(i)

N1
1 N2
(52)
(1)
r (W) 1
+
F
(
/
,
X
,
W
)
F (2 /1 ,X m( 2 ) ,W)

1
2
m

N 1 m =1
N 2 m =1
Metoda gradientului descresctor furnizeaz condiia ca W ( i ) s fie proporional cu
r (W) , deci s avem:
W(i + 1 ) = W(i) r (W)
(53)
i pe baza formulei precedente se poate utiliza drept estimaie a gradientului:
1
1
(54)
r (W)
f (X m( 1 ) ,W(i)) +
f (X m( 2 ) ,W(i))

N 1 mM 1
N 2 mM 2
unde cu M 1 , M 2 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 xi , i = 1...n pot lua deci doar dou valori.
Atunci P (X/k ) va fi definit de "n" probabiliti de forma p (xi /k ) , fiecare reprezentnd
probabilitatea ca trstura xi s fie "1" pentru toate formele din clasa k .
Fiind doar dou valori posibile, 1 p (x i /k ) reprezint probabilitatea ca trstura xi s
fie "0" pentru toate formele din clasa k .
Presupunnd independena statistic a trsturilor, probabilitatea ca "X" s aparin clasei
k se scrie:

154

11. Tehnici statistice de recunoatere.

P (X/k ) = [ p (xi /k )] xi [ 1 p (xi /k )] 1 xi

(55)

i =1

nlocuind relaia anterioar n expresia funciei discriminant pentru un clasificator


bayesian cu funcie de pierdere simetric:
Dk (X) = log [ P (X/k )P(k )]
(56)
rezult succesiv:
n

Dk (X) = { log [ p (xi /k )] xi + log [ 1 p (xi /k )] 1 xi } + log P (k )


i =1
n

Dk (X) = xi log p (xi /k ) + ( 1 xi ) log [ 1 p (xi /k )] + log P (k )


i =1
n

Dk (X) = xi log
i =1

(57)
(58)

i =1

n
p (xi /k )
+ log [ 1 p (x i /k )] + log P (k )
1 p (x i /k ) i =1

(59)

Folosind notaiile:
p (xi /k )
1 p (x i /k )
relaia obinut anterior se scrie:

wi(k) = log

n +1

Dk (X) = wi xi = W T X

wn(k)+1 = log [ 1 p (x i /k )] + log P (k )

(60)

i =1

(61)

i =1

unde x n +1 = 1 . 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:
D (X) = D1 (X) D2 (X)
(62)
i nlocuind:
n

p (x i /1 )
p (xi /2 ) n
1 p (x i /1 )
P (1 )
(63)
D (X) = xi log
+ log
+ log
log

1 p (xi /1 )
1 p (x i /2 ) i =1
1 p (xi /2 )
P (2 )
i =1

rezult n final:
n
p (xi /1 )[ 1 p (x i /2 )] n
1 p (x i /1 )
P (1 )
D (X) = xi log
+ log
+ log
(64)
p (xi /2 )[ 1 p (x i /1 )] i =1
1 p (xi /2 )
P (2 )
i =1
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:
1 Nk ( k )
M(k ) =
(65)
Xi
N k i =1
i dispersia, estimat prin:

155

11. Tehnici statistice de recunoatere.

1 N k (k)
(X i M (k) ) 2
(66)

N k i =1
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.
(k) =

H(x(k)
)
m

(k)

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 i( k ) pentru
trstura "m" i clasa "k". Independena statistic a trsturilor permite calculul unei estimri a
densitii de repartiie multidimensionale folosind relaia:
n

(k) (X) = i(k)(xi(k) )

(67)

i =1

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.

156

12. Metoda funciilor de potenial.

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:
(X,X i(k) ): R
(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:
X = X m( k ) , m = 1...N m , k = 1...N c
(2)
(k)
(2). S fie neglijabil la distane mari de Xm :
(X , X i( k ) ) 0 , pentru d (X , X i( k ) )
(3)
(3). S fie continu i s scad monoton cu distana.
(4). Dac (X 1 , X i( k ) ) = (X 2 , X i( k ) ) , atunci formele X 1 i X 2 trebuie s aib

aproximativ acelai grad de similaritate n raport cu X m( k ) .


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 X m( k ) reflect scderea
influenei cmpului asupra formelor noi mai deprtate.
Cteva exemple de funcii de potenial simple sunt enumerate n continuare, pentru cazul
unidimensional:
0.5 , pentru | x | 1
(x) =
(4)
(1). funcia de potenial dreptunghiular:
0 , pentru | x |> 1

157

12. Metoda funciilor de potenial.

(x)
0.5
x
-1

1
1 |x|, pentru |x| 1
pentru |x| > 1
0 ,

(x) =

(2). funcia de potenial triunghiular:


1

(5)

(x)

x
-1

(x) =

(3). funcia de potenial gaussian:

1
2

x2
2

(6)

1
2

(x) = e |x|

(4). funcia de potenial tip descretere exponenial:


(7)

1
(8)
( 1 + x 2 )
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:
1 Mk
Dk (X) =
(X,X i(k) )
(9)

M k i =1
Decizia se ia atunci dup regula cunoscut:
X k Dk (X) > D j (X), j k, j = 1...N c
(10)

(x) =

(5). funcia de potenial tip Cauchy:

Pentru cazul clasificrii binare (dou clase), funcia discriminant este de forma:
1 M1
1 M2
(1)
(
,
)
D (X) =

X
X

(X,X i( 2 ) )
(11)

i
M 1 i =1
M 2 i =1
Planul de decizie fiind dat de punctele de potenial nul, regula de decizie n acest caz este
de forma:
X 1 D (X) > 0
(12)

X 2 D (X) < 0
Dac funcia de potenial folosit este cea gaussian multidimensional (foarte des
utilizat), atunci:
(X,X i(k) ) = exp [ (X X i(k) )T (X X i(k) )]
(13)
Dezvoltnd expresia anterioar obinem:
(X,X i(k) ) = exp [ X

] exp [ 2 X T X i(k) X i(k) ]

(14)

primul factor fiind comun tuturor funciilor de potenial, se folosete:


2

(X,X i(k) ) = exp [ 2 X T X i(k) X i(k) ]

158

(15)

12. Metoda funciilor de potenial.

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:
1 Mk
p (X/k ) =
(X,X m(k) )
(16)

M k m =1
Pentru ca p (X/k ) s fie o densitate de probabilitate, funcia (X,X m(k) ) trebuie s
ndeplineasc urmtoarele condiii:
(1). sup (X) < +
(17)
+

(2).

(X) dX < +

(18)

(3).

(X)dX = 1

(19)

(4). lim x(x) = 0

(20)

Funciile de potenial descrise mai sus ndeplinesc aceste condiii.


Dac se folosete funcia potenial gaussian:
(X X m(k) )T (X X m(k) )
1
(X,X m(k) ) =
exp

2 2
( 2 )n

unde parametrul "" este un factor de netezire, rezult:


Mk
(X X m(k) )T (X X m(k) )
1
p (X/k ) =
exp

2 2
M k ( 2 )n m =1

(21)

(22)

X (k) 2
X 2 Mk
X T X m(k)
m

(23)

p (X/k ) =
exp
exp
exp

2
2
2

M k ( 2 ) n
2 m =1

Dezvoltnd n serii exponeniala a doua, obinem:


h
X (k) 2 p
T
(k)
X 2 Mk

X
X
1
1
m
m

exp
(24)
p (X/k )
exp
2
2 2
2
M k ( 2 ) n
2 m =1
h =1 h!

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:
h
X (k) 2 p
T
(k)

P (k ) M k
X
X
1
m
m

(25)
Dk (X) =
exp 2 2
M k m =1
2
h =1 h!

159

12. Metoda funciilor de potenial.

unde primul raport i prima exponenial se calculeaz doar o singur dat, n faza de
construcie a clasificatorului.

160

13.

Algoritmi

de

grupare

(clustering).

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 {xi }i =1,...N , pe baza lui se urmrete construcia
gruprilor (clusterilor) {X i }i =1,...,R , astfel nct:
X 1 X 2 ... X R =
i
(1)
X i X j = , i , j = 1...R , i j
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 f (x) = 0 , msura distanei
de la forma studiat la suprafa fiind dat de chiar f (x) .
(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:

161

13. Algoritmi de grupare (clustering).

x X j D j (x) > Di (x),i j,i = 1...R

(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

p (x) = Pi p (i) (x)

(3)

i =1

unde Pi are semnificaia probabilitii apriorice a clusterului "i", iar p (i) (x) 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:
p (x) Pi p (i) (x), pentru x X i
(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
1 R
p (x) N i (x,mi )
Pi i ,
iar
(5)
N i =1
N
unde mi este modul de ordinul "i", iar "" denot funcia de potenial utilizat, urmrinduse estimarea parametrilor intrinseci ai funciei de potenial.
Localizarea iterativ a clusterilor n cazul n care se cunosc modurile distribuiei de
(0 )
(0 )
(0 )
probabilitate m1 , m2 ,...,mR i se dispune de o distan d (x,y) 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, mi( k ) ;

(2). Calculeaz noile centre ale fiecrui cluster, adic mi( k +1 ) care minimizeaz distana
medie ntre centru i elementele care alctuiesc clusterul:
Qi (m) = d (y,m)
(6)
yCi(k)

(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.

162

13.

Algoritmi

de

grupare

(clustering).

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:
i = E {(x (i) x (i) )(x (i) x (i) )T } - matricea de covarian a clasei "i";
M

(in) = P (i )i - matricea de dispersie intraclas;


i =1
M

(ic) = P (i )(x (i) x (i) )(x (i) x (i) )T - matricea de dispersie interclas;
i =1

( m ) = ( in ) + ( ic ) - matricea de dispersie mixt.


Funciile de cost utilizate cel mai des i care se construiesc pe baza lor sunt:
C1 = tr [( (m) )1 (in) ]
(minimizare)
(7)
(in) 1
(m)
C 2 = tr [( ) ]
(maximizare)
(8)
C 3 = ln [| (m) |/| (in) |]
(maximizare)
(9)
Minimizarea/maximizarea lor permite construcia unei transformri optimale din familia
transformrilor Karhunen-Loeve, transformri care realizeaz transpunerea datelor de intrare ntrun 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, m1( 0 ) ,m2( 0 ) ,..., mM( 0 ) , iar numrul iteraiei se iniializeaz cu n = 0 .
(2). Folosind mediile m1( n ) , m2( n ) ,..., m M( n ) 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 m1( n +1 ) , m2( n +1 ) ,..., m M( 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

= x mp

(10)

i =1 x p

Algoritmul cuprinde urmtorii pai:


Algoritmul IZODATA.
(1). Se alege o partiionare iniial a celor N eantioane n clase (clusteri), calculnduse mediile corespunztoare fiecrui cluster precum i eroarea "";
(2). Se iniializeaz iteraia cu n = 0 ;
(3). n = n + 1
(4). Se extrage urmtoarea form din setul de antrenament xi p . Dac N p = 1 ,

adic x i este singura form asignat clasei p , se continu cu pasul (8);


(5). Se calculeaz:

163

13. Algoritmi de grupare (clustering).

2
Nq
x n mq , pentru q p

N +1
k = q
Np
2

x n m p , pentru q = p
N p 1
(6). Se asigneaz x n clasei k dac k q , pentru toi "q";

(11)

(7). Se calculeaz "" i mediile m p i mq .


(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 = (x0 , ... , x K-1 ) ,
(12)
un vector de refacere x :
x = q (x) ,
(13)
:
obinut dintr-un alfabet de refacere finit A
= {y ;i = 1,...,N}
A
(14)
i
mpreun
Cuantizorul q este complet descris de alfabetul de refacere (cartea de coduri) A
cu partiia spaiului vectorial de intrare S:
S = {Si ;i = 1,...,N},
(15)
n seturile:
Si = {x; q (x) = y i }
(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 d (x,x) . Multe asemenea
msuri ale distorsiunii au fost propuse n literatur. Cea mai uzual, din motive de compatibilitate
matematic, este eroarea medie ptratic a distorsiunii:
K 1

d (x,x) = xi x i

i =0

Alte msuri comune ale distorsiunii sunt l sau norma Holder:

164

(17)

13.

Algoritmi

de

grupare

(clustering).
1 /

K 1

d (x,x) = xi x i = x x ,
i =0

i puterea a sa, distorsiunea de ordinul :


K 1

d (x,x) = xi x i = x x ,

(18)

(19)

i =0

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:
(20)
d (x,x) = max xi x i ,
0 i K 1

distorsiunea ptratic ponderat:


2

K 1

d (x,x) = wi xi x i ,

(21)

i =0

unde wi 0 , i = 0 ,..., K 1
i o distorsiune mai general, distorsiunea cuadratic:
K 1 K 1

d (x,x) = (x x)B(x x)t = Bi,j (x i x i )(x j x j ) ,

(22)

i =0 j =0

unde B = B{i,j} 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:
d (x,x) = L (x x) ,
(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:
d (x,x) = (x x) R (x)(x x)t ,
(24)
unde pentru fiecare x, matricea R (x) 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 d (x , x) 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:
R (x) = { rx (k j);k = 0 ,...,K 1;j = 0 ,...,K 1 }
(25)
definit de:

rx (k) =

a e

m =0

2
i m

e i k d / 2 ,

(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).

165

13. Algoritmi de grupare (clustering).

Fie X = (X 0 ,...,X k-1 ) un vector real aleator descris de o funcie de distribuie cumulativ
avnd forma:
F (x) = P {X i x i ;i = 0 ,1,...,K 1 }
(27)
O msur a performanei cuantizorului q aplicat vectorului aleator X este dat de
distorsiunea ateptat:
D (q) = E { d (X,q (X))}
(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 n = (X nk , ... , X nk+k-1 )
(29)
care sunt staionari i ergodici, de vreme ce distorsiunea medie temporar:
n 1

n 1 d (X i , q (X i ))

(30)

i =0

converge cu probabilitatea "1" ctre D ( q ) pentru n (din teoria ergodic), de unde rezult
c D ( q ) 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:
D ( q*) D ( q )
(31)
Un cuantizor va fi numit optim local dac D ( q ) 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 ( k = 1 ) , 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 y i i cu punctele limit ce defineau S i , 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.

166

13.

Algoritmi

de

grupare

(clustering).

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
= {y ;i=1,...,N} ,
A
(32)
i
i partiia S:
S = {S i ;i = 1,...,N},
(33)
atunci distorsiunea ateptat de forma:
,S}) = D ( q )
D ({A
(34)
poate fi scris ca:
N

,S]} = E { d (X,y )|X S } P (X S )


D ([A

i
i
i

(35)

i =1

unde E { d (X,y i )|X Si } este distorsiunea condiionat ateptat, fiind dat X Si , sau
echivalent, fiind dat q (X) = y i
, dar nu este specificat nici o
Presupunem c avem dat un anume alfabet de refacere A
poate fi uor construit printr-o aplicaie de la fiecare x la
partiie. O partiie optim pentru A
, minimiznd distorsiunea d (x,y ) , deci cu alte cuvinte, alegnd distorsiunea minim sau
y A
i

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:
) = {P ;i = 1,...,N}
P (A
(36)
i
construit n aceast manier este astfel nct:
x Pi (sau echivalent q (x) = y i )
(37)
dac i numai dac:
d (x,y i ) d (x,y j )
(38)
oricare ar fi j i de aici avem:
, P (A
)]) = E ( min ( d (X,y)))
D ([A

yA

(39)

care, la rndul ei, implic pentru orice partiie S ca:


,S]) D ([A
, P (A
)])
D ([A
(40)
).
, cea mai bun partiie posibil este P (A
Astfel, pentru un alfabet de refacere fixat A
Reciproc, s presupunem c avem o partiie S = {Si ;i = 1,...,N} 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 x(S) pentru care:

E( d (X, x(S)) X S)= min E( d (X, u) X S)


u

(41)

Analog cazului msurii erorii ptratice a distorsiunii i a distribuiei de probabilitate


uniform, numim vectorul x (S) centroidul sau centrul de greutate a setului S. Dac asemenea
puncte exist, atunci n mod clar pentru o partiie fixat S:

167

13. Algoritmi de grupare (clustering).

S = {Si ;i = 1,...,N}
:
nici un alfabet de refacere A
= {y ;i = 1,...,N}
A

(42)
(43)

nu poate produce o distorsiune medie mai mic dect alfabetul de refacere x(S) :
x (S) = { x (Si );i = 1,...,N}
coninnd centroizii seturilor din S, deoarece avem inegalitatea din relaia:

(44)

,S]) = E ( d (X,y ) X S ) Pr (X S )
D ([A

i
i
i
i =1

min E ( d (X,y) X Si ) Pr (X Si ) = D ([X(S),S])


i =1

(45)

Centroizii din relaia anterioar exist pentru toate seturile S cu probabilitate nenul pentru
msuri ale distorsiunii relativ generale.
n particular, dac d (x,y) 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
i o distribuie F.
alfabet de refacere iniial de clas N notat A
0
Facem m = 0 i D1 = .
= {y ; i = 1,..., N} , gsim partiia de distorsiune minim:
(1) Fiind dat A
m

) = {S ; i = 1,...,N} cu x S ,
P (A
m
i
i

dac d (x,y i ) d (x,y j ) oricare ar fi j.


Calculm distorsiunea medie rezultant Dm de forma:
, P (A
)}) = E { d (X,y)}
D = D ({A
m

min

(46)

j A
m

) ce descriu cuantizorul final.


i P (A
(2) Dac (Dm 1 Dm )/Dm , oprire la A
m
m
Dac (Dm 1 Dm )/Dm > , continum cu pasul (3)
(3) Cutm alfabetul de refacere optimal de forma:
).
)) = {x(S );i = 1,...,N} pentru P (A
x( P (A
m
i
m

Facem A = x( P (A )) .
m +1

nlocuim m cu m + 1 i relum de la pasul (1).


) are o celul S astfel nct
Dac ntr-un punct oarecare, partiia optimal P (A
m
i
Pr (X Si ) = 0 , 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 Dm Dm 1 , de aici rezult c fiecare iteraie a algoritmului fie reduce
distorsiunea, fie o las neschimbat. Cum Dm este necresctor i pozitiv, el trebuie s aib o

168

13.

Algoritmi

de

grupare

(clustering).

exist n sensul
limit inferioar, s zicem D , pentru m . Dac un cuantizor limitat A

Euclidian uzual A A cu m , atunci:


m

, P (A
)}) = D
D ({A

(47)

are proprietatea c:
i A

= x( P (A
)) ,
A

(48)

este exact centroidul propriei sale partiii optimale (cuantizorul limit, dac
cu alte cuvinte, A

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:
Pr [ d (X,y i )] = d (X,y j ) , pentru un i j , oricare ar fi i 0 ,
(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
i o secven studiat x de forma:
refacere iniial de clas N, notat cu A
0
j

{ x j ; j = 0 ,..., n 1 } .
Facem m = 0 i D1 = .

(50)

= { y ; i = 1,..., N } ,
A
m
i
cutm partiia de distorsiune minim
) = { S ; i = 1,..., N }
P( A
m
i

(51)

(1) Fie dat

(52)

pentru secvena studiat x j Si dac:

d(x j , yi ) d(x j , yl ) ,

(53)

oricare ar fi l.
Calculm distorsiunea medie:
n 1

, P( A
)}) = n 1 min d(x , y)
Dm = D({ A
j
m
m
j =0

yAm

(54)

169

13. Algoritmi de grupare (clustering).

(2) Dac avem ( Dm 1 Dm ) / Dm ,


ca alfabet de refacere final.
ne oprim la A

(55)

Dac avem ( Dm 1 Dm ) / Dm > ,


continum cu pasul (3).
(3) Cutm alfabetul de refacere optimal:
)) = { x ( S ); i = 1,..., N } pentru P( A
).
x ( P( A
m
i
m

)) .
Facem A
= x ( P( A

(56)

m +1

(57)
(58)

nlocuim m cu m + 1 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, Gn 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:
S0 = [S0 , ... , S N 1 ]
(59)
a alfabetului studiat, cuprinznd toi vectorii din secvena de studiu.
A = {xi ;i = 0 ,...,n 1 }
(60)
va fi colecia centroizilor Euclidieni a seturilor S ;
Alfabetul de refacere corespunztor A
i

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 Si 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 xi Si .
La fiecare iteraie, un nou vector studiat x m este observat. Gsim setul Si pentru care
distorsiunea ntre x m i centroidul x(Si ) este minimizat i apoi includem x m 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.

170

13.

Algoritmi

de

grupare

(clustering).

13.4.6. Alegerea alfabetului de refacere iniial.


cerut de algoritm.
Exist cteva metode de a alege alfabetul de refacere iniial A
0
O metod ce poate fi folosit pe distribuii de eantioane este cea de la metoda "Kmeans", 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.


( 1 ) = x(A) centroidul ntregului alfabet,
(0) Iniializarea : facem M = 1 i definim A
0
sau centroidul secvenei studiate, dac se folosete o distribuie de
eantioane.
(M) coninnd M vectori:
(1) Fiind dat un alfabet de refacere A
0
{yi ;i = 1,...,M} ,
"descompunem" fiecare vector yi n doi vectori alturai:

yi + i yi ,

i = 1,..., M .

~
unde este vectorul perturbaiei fixat. Colecia A dat de:
{yi + ,yi ,i = 1,...,M} ,
are M + M = 2 M vectori.
nlocuim M cu 2M.
~
=A
este deci alfabetul de refacere
(2) Dac M = N facem A
(M) i ne oprim. A
0
0
iniial pentru algoritmul de cuantizare de clas N.
~
Dac M N rulm algoritmul pentru un cuantizor de clasa (nivel) M cu A( M ) ,
(M) i apoi ne ntoarcem
pentru a determina un alfabet de refacere bun A
0

la pasul (1).
Aici considerm cuantizoare de clasa M cu M = 2 R , R = 0 ,1,... 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 1,2 ,3,8 ,..., N .

171

13. Algoritmi de grupare (clustering).

f(x)
0.95

cuantizor
optimal

1.0
0.9

cuantizor
de punct
staionar

0.5
0.1
-1 -0.71 -0.5 -0.13

0.5

0.05
1.0

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 ( 0.383 ) , cellalt, care este optim global, are clasele de ieire de ( 0.71 ) i ( 0.13 ) , din
care rezult o eroare medie ptratic de ( 0.048 ) .
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 ( +0.5 ) i ( 0.5 ) , 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

172

13.

Algoritmi

de

grupare

(clustering).
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 {

173

13. Algoritmi de grupare (clustering).

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])) {

174

13.

Algoritmi

de

grupare

(clustering).
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);
}

175

13. Algoritmi de grupare (clustering).

}
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;

176

13.

Algoritmi

de

grupare

(clustering).
}
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;
}

177

14. Reele neurale folosite n recunoaterea de forme.

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:
N

y j = f ( wij xi j )

(1)

i =1

unde y j este ieirea neuronului "j", xi este intrarea "i" a neuronului, wij este ponderea
conexiunii de la intrarea "i" la neuronul "j", iar j este pragul ataat neuronului "j". Deci n

179

14. Reele neurale folosite n recunoaterea de forme.

esen, sunt aplicate un set de intrri (x1 ,x 2 ,...,x n ) , fiecare reprezentnd, de obicei, ieirile altor
neuroni. Fiecare intrare este multiplicat cu o pondere corespunztoare (wi1 ,wi 2 ,...,win ) , analog
puterii sinapsei, i apoi toate rezultatele sunt sumate pentru a determina nivelul de activare al
neuronului.

W
x1

w1

x2
.
.
..

w2

xn

a
funcie
activare

y
ieire

Fig. 1. Structura neuronului artificial.


Funcia Y = f (a) 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

1.0

1.0
a
0

-1.0

0
0 , pentru a < 0
Y (a) =
+ 1, pentru a 0

1, pentru a < 0
Y (a) =
+ 1, pentru a 0

(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

Y
1.0
0

0.5
0
0 , pentru a < 0
Y (a) =
a, pentru a 0

Y (a) = a

(3)

Funcia sigmoid, foarte des folosit, asigur limitarea domeniului de ieire al neuronului
la gama ( 0 ,1 ) pentru sigmoida asimetric i la ( 1, + 1 ) pentru sigmoida simetric.

180

14. Reele neurale folosite n recunoaterea de forme.

1.0

1.0

0.5

0
a

-1.0

Y (a) =

1
1 + exp ( a)

Y (a) =

1 exp ( a)
1 + exp ( a)

(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:
N
du j
= u j + wij xi + j

(5)
dt
i =1
y j = f (u j )

unde u j 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:
y1

y2
w21

w11
x1

w12

w22

yK
w1K

w2K

wN1

x2

wN2

wNK
xN

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:
A = W T X Y = f (A) = f (W T X)
(6)
unde X, A, Y sunt vectori linie, W este o matrice NxK.

181

14. Reele neurale folosite n recunoaterea de forme.

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 :
Y = W2T (W1T X)
(7)
Avnd n vedere c nmulirea de matrici este asociativ, relaia poate fi rescris :
Y = (W2T W1T )X = (W1W2 )T X
(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.

182

14. Reele neurale folosite n recunoaterea de forme.

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:
wi,j (n + 1 ) = wi,j (n) + YiY j
(9)
unde: wi,j (n) - valoarea ponderii de la neuronul "i" la neuronul "j" naintea ajustrii;
wi,j(n + 1) - valoarea ponderii de la neuronul "i" la neuronul "j" dup ajustare;

coeficientul de nvare;
Y i - ieirea neuronului "i" i intrarea neuronului "j";
Y j - 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:
1, pentru a > 0
f (a) =
(10)
0 , pentru a 0
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

183

14. Reele neurale folosite n recunoaterea de forme.

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
x1

w1

x2
.
.
..

w2

xn

a
funcie
activare

y
ieire

Fig. 3. Structura unui neuron.


unde

-"a" reprezint suma intrrilor ponderate pentru neuronul respectiv;


- f (a ) funcia neliniar de ieire sigmoid simetric sau nu, sau chiar funcie

liniar.
z1

z2

zN

(z)

w21
(z)

w11

(z)

w12

y1

(z)

w1N

(z)

w22
(y)y
w21 2

(y)

w11

(y)

w12

x1
11

u1

(x)

w12

(z)

(z)

wM1

wM2

wMN

yM

(y)

w1M

(y)

w22

(y)

(y)

(y)

w2M

(x)x
w21 2

(x)

(z)

(z)

w2N

(y)

wK1

wK2

wKM

xK

(x)

w1K

(x)

w22

u2

(x)

(x)

w2K

(x)

(x)

wL1

wL2

wLK
uL

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.

184

14. Reele neurale folosite n recunoaterea de forme.

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:

N (z)

z
f
=
wkj y pk
pj
k =1

(y)
(11)
y pj = f wkj x pk
k
=
1

L (x)
x
f
=
wkj u pk
pj

k =1

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
z pj - ieirea neuronului "j" de pe stratul de ieire pentru forma "p" de intrare;

y pj - ieirea neuronului "j" de pe stratul intermediar pentru forma "p" de intrare;


x pj - ieirea neuronului "j" de pe stratul de intrare pentru forma "p" de intrare;
u pj - valoarea aplicat intrrii "j" n reea pentru forma "p" de intrare;
wij( z ) - ponderea conexiunii neuronului "i" de pe stratul intermediar cu neuronul "j"

de pe stratul de ieire;
wij( y ) - ponderea conexiunii neuronului "i" de pe stratul de intrare cu neuronul "j"
de pe stratul de intermediar;
wij( z ) - 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:
1 M
(12)
E p = (d pj z pj ) 2
2 j =1
Toate ponderile reelei neurale se vor modifica n sensul minimizrii acestei erori,
folosind, de exemplu, metoda gradientului descresctor, adic:
(z)
E p
wij = (z)
wij

(y)
E p
(13)
wij = (y)

w
ij

E p
(x)
wij = (x)
wij

Pentru fiecare strat n parte, derivata parial a erorii medii ptratice n raport cu ponderea
curent poate fi exprimat prin:

185

14. Reele neurale folosite n recunoaterea de forme.

E p E p a (z)
pj
(z) = (z)
a pj wij(z)
wij
E p
E p a (y)
pj
(14)
(y) = (y)
(y)

w
a
w
pj
ij
ij
E p
E p a (x)
pj
(x) = (x)
a pj wij(x)
wij
unde funcia de activare corespunztoare nodului "j" din fiecare strat este dat de:
( z) M ( z)
a pj = wij y pi
i =1

( y) M ( y)
(15)
a pj = wij x pi
i
=
1

M
a ( x ) = w( x )u
ij
pi
pj
i =1
Se poate evalua derivata parial a funciei de activare n raport cu ponderea curent:
M w (z)
a (z)
kj
pj
=
(z) (z) y pi = y pi
k =1 wij
wij
(y)
M w (y)
a pj
wkj(.)
kj
deoarece,
evident
= 0 , pentru k i
(16)
x
x
=
=
(y) (y) pi
pi
(.)
w

w
w
=
k
1
ij
ij
ij
M w (x)
a (x)
kj
pj
(x) = (x) u pi = u pi
wij
k =1 wij
Rezult:
E p E p
(z) = (z) y pi
a pj
wij
E p
E p
(17)
(y) = (y) x pi
a pj
wij
E p
E p
(x) = (x) u pi
a pj
wij
Se noteaz funcia de eroare pentru nodul "j" din fiecare strat i forma "p", cu:
(z) E p
pj = (z)
a pj

(y)
E p
(18)
pj = (y)
a pj

(x) E p
pj = (x)
a pj

i atunci rezult:
wij(z) = (z)
pj y pi
(y)
(y)
(19)
wij = pj x pi
w (x) = (x) u
pj pi
ij

de unde se obine regula de ajustare a ponderilor:

186

14. Reele neurale folosite n recunoaterea de forme.

wij(z)(t + 1 ) = wij(z)(t) + (z)


pj (t)y pi (t)
(y)
(y)
(y)
wij (t + 1 ) = wij (t) + pj (t)x pi (t)
w(x)(t + 1 ) = w(x)(t) + (x)(t)u (t)
ij
pj
pi
ij

(20)

Funcia de eroare poate fi evaluat folosind:


(z)
E p
E p z pj
pj = (z) =
z pj a (z)
a pj
pj

(y)
E p
E p y pj
(21)
pj = (y) =
y pj a (y)
a pj
pj

E p
E p x pj
(x)
pj = (x) =
x pj a (x)
a pj
pj

unde:
E p
z pj

1 N
(z)
(d pk z pk ) 2 = (d pj z pj )
=

(z) = f (a pj )

z pj z pj 2 k =1
a pj
N E a (z)
N

y pj
E

p
p
pk
(z)
(y)
= (z)
= (z)
i
(22)

(y) = f (a pj )
pk w jk
y
y

a
k
1
k
1
=
=
pj
pk
pj
pj
M E a (y)
N
x pj

(x)
p
p
pk
(y)

f
=
(a
)
=
=

(y)
(x)

pj

pk w jk
(y)
x pj k =1 a pk x pj
k =1
a pj
Rezult:

(z)
= (d pj z pj ) f (a (z)
pj )
pj
N
(y)
(y)
(z) (z)
(23)
pj = f (a pj ) pk w jk
k =1

M
(x) = f (a (x) ) (y) w (y)

pj
pk
jk
pj
k =1
Derivata funciei sigmoidale asimetrice n raport cu funcia de activare este dat de:

exp ( a (z)

1
pj )
f (a (z)
=
= z pj ( 1 z pj )

pj ) =
2
(z)
a (z)

1 + exp ( a pj ) 1 + exp ( a (z)


pj
pj )

exp ( a (y)

1

pj )
(y)

f
(24)
=
= y pj ( 1 y pj )
=
(a
)

pj
(y)
(y)
(y) 2
exp

a
1
(
a
)

1 + exp ( a pj )
pj
pj

exp ( a (x)

1
pj )
f (a (x)
=
= x pj ( 1 x pj )
=
)
pj
2
(x)
(x)

a pj 1 + exp ( a pj ) 1 + exp ( a (x)


)
pj

n cazul n care se folosete sigmoida simetric drept nelinearitate de ieire, avem:

187

14. Reele neurale folosite n recunoaterea de forme.

(z)

2 exp ( a (z)
exp ( a pj )
pj )
(z)
f (a pj ) = (z)
= ( 1 z pj ) 2
=
2
(z)
(z)
a pj 1 + exp ( a pj ) 1 + exp ( a pj )

(z)
2 exp ( a (y)
exp ( a pj )

pj )
(y)
(25)
=
= ( 1 y pj ) 2
f (a pj ) = (y)
(y)
(y) 2

exp
a
1
(
a
)
+

exp
+

1
(
a
)
pj
pj

pj
(x)
(z)

exp ( a pj )
2 exp ( a pj )

f (a (x)
=
= ( 1 x pj ) 2
pj ) =
2
(x)
(x)

a pj 1 + exp ( a pj ) 1 + exp ( a (x)


pj )

n anumite aplicaii, pentru stratul de ieire se pot folosi neuroni lineari, caz n care aceste
derivate sunt date de:
f (a (z)
f (a (z)
pj ) = 1
pj ) = 1

(y)
2
(y)
sau
(26)
f (a pj ) = y pj ( 1 y pj )
f (a pj ) = ( 1 y pj )
f (a (y) ) = x ( 1 x )
f (a (y) ) = ( 1 x ) 2
pj
pj
pj
pj
pj

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 x0 , x1 ,..., x N 1 i se specific
ieirile dorite d 0 ,d 1 ,...,d M 1 . 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 y0 ,y1 ,...,y M 1 .
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:
j = z j ( 1 z j ) (d j z j )
(27)
i straturile ascunse:
j = x j ( 1 x j ) (k w jk )

(28)

unde d j este ieirea dorit a nodului "j", y j 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

188

14. Reele neurale folosite n recunoaterea de forme.

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:
'
wij (t + 1) = wij (t ) + j xi + (wij(t) wij (t 1 ))
(29)
unde este coeficientul "momentum", setat de obicei n jurul valorii de 0.9 ( 0 < < 1 ) .
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 N ( 2 N + 1 ) 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 tij . Hopfield a

demonstrat c aceast reea converge dac ponderile sunt simetrice ( tij = t ji )


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.

189

14. Reele neurale folosite n recunoaterea de forme.

Fig. 5. Arhitectura reelei Hopfield.

0
x0

x N 2

x1

x0

1
x1

N 2

x N 1

N 1

x N 2

x N 1
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:
M 1 s s
xi x j , i j
(30)
tij =
s =0
0 ,
i = j ,0 i M 1,0 j M 1
unde tij este ponderea conexiunii de la nodul i la nodul j, iar xis (unde
xis { 1,1 } ) este valoarea intrrii i pentru un vector din clasa s.
Pasul 2. Aplic un vector de intrare necunoscut.
i ( 0 ) = xi ,0 i N
(31)
unde este ieirea nodului i la momentul t.
Pasul 3. Itereaz pn la convergen.
N 1

j (t + 1 ) = f h [ tij i (t)] ,0 j M 1

(32)

i =0

unde funcia neliniar f h 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.

190

14. Reele neurale folosite n recunoaterea de forme.

x1

x0

x N 2

N 2

x N 1

N 1 MAXNET

Calcul
scoruri de
coinciden

x0

x1
x N 2
Fig. 6. Arhitectura reelei Hamming.

x N 1

Algoritmul de antrenare a reelei Hamming.


Pasul 1. Iniializeaz ponderile conexiunilor i offseturile:
n reeaua inferioar
M 1 s s
xi x j , i j
tij =
s =0
0 ,
i = j ,0 i M 1,0 j M 1
(33)
unde tij este ponderea conexiunii de la nodul i la nodul j, iar xis

(unde xis { 1,1 } ) este valoarea intrrii i pentru un vector din clasa
s.
Pasul 2. Aplic un vector de intrare necunoscut.
i ( 0 ) = xi ,0 i N
(34)
unde este ieirea nodului i la momentul t.
Pasul 3. Itereaz pn la convergen.
N 1

j (t + 1 ) = f h [ tij i (t)] ,0 j M 1

(35)

i =0

unde funcia neliniar f h 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.

191

14. Reele neurale folosite n recunoaterea de forme.

Arhitectura unei reele Carpenter-Grossberg cu trei neuroni pe stratul de intrare i doi


neuroni pe cel de ieire este prezentat n figura urmtoare:
y0
y1

x0
x1
x2
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:
tij ( 0 ) = 1, bij( 0 ) = 1 /(N + 1 ), 0 i N 1, 0 j M 1

(36)

Seteaz [ 0 ,1 ]
unde bij este ponderea conexiunii dintre nodul i de intrare i nodul j
de ieire, iar tij 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.
N 1

j = bij(t)xi ,0 j M 1

(37)

i =0

unde j este ieirea nodului j iar xi este elementul i al intrrii (0 sau

1).
Pasul 4. Selecteaz cel mai apropiat prototip:
j = max { j }
j

(38)

Aceasta se realizeaz folosind conexiunile inhibitorii laterale dintre


neuronii de ieire.

Pasul 5. Testul de vigilen:

192

14. Reele neurale folosite n recunoaterea de forme.

N 1

X = xi ,
i =0

N 1

T X = tij xi

(39)

i =0

Dac T X / X > 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:
tij (t + 1 ) = tij (t)xi
(40)
N 1

bij (t + 1 ) = [t ij (t)xi ]/[ 0.5 + tij xi ]

(41)

i =0

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 autoorganizare" (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.

x0
x1 ... x 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.

193

14. Reele neurale folosite n recunoaterea de forme.

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.
N 1

D j = [ xi (t) wij (t)] 2

(42)

i =0

unde: - xi (t) este valoarea aplicat intrrii "i" la momentul "t";


- wij (t) este ponderea conexiunii dintre intrarea "i" i nodul "j" la
momentul "t".
(4). Selecteaz nodul "k" de distan minim:
Dk = min D j
j =0 ,...,M 1

(43)

(5). Actualizeaz ponderile pentru nodul "k" i toate nodurile din vecintatea aferent
nodului "k" la momentul "t". Regula de ajustare a ponderilor este:
wij (t + 1 ) = wij (t) + (t)[ xi (t) wij (t)], i = 0 ,...,N 1
(44)
Coeficientul (t) ( 0 ,1 ) 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:
z j = exp ( |x m j |2 / 2 2j ) / exp ( | x m j |2 / 2 2j )
(45)
k

n timp ce cei N neuroni de pe stratul al doilea realizeaz suma ponderat a intrrilor, trecut
printr-o nelinearitate sigmoidal.
M

y k = f ( wkj z j + k )

(46)

j =1

n formulele anterioare x este vectorul de intrare, m j (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.

194

14. Reele neurale folosite n recunoaterea de forme.

Arhitectura tipic a unei reele RBF este prezentat n figura urmtoare:

y0

z0

yk

z1

x0

w1 j

wkj
zj

y N 1

wN 1 , j

xi
Fig. 9. Arhitectura reelei RBF.

z M 2

z M 1

x L 1

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:
1 N
E ( p ) = (d k( p ) y k( p ) ) 2
(47)
2 k =1
Toi parametrii reelei neurale se vor modifica n sensul minimizrii acestei erori, folosind,
de exemplu, metoda gradientului descresctor, adic:
E ( p )
E ( p )
E ( p )
(p)
(p)
w(p)

(48)
jk
ij
j
(p)
(p)
w (p)

jk
ij
j
Dac se noteaz funcia de activare a nodului k de ieire cu a k( p ) , i se definete k( y ) ca
fiind funcia de eroare corespunztoare aceluiai nod, atunci derivata parial a erorii medii
ptratice n raport cu ponderea curent se calculeaz cu:
E ( p ) E ( p ) a k(p) E ( p ) N ( p ) ( p ) E ( p ) ( p )
w jk z j =
=
=
z j k( y ) z (j p )
(49)
(p)
(p)
(p)
(p)
(p)
(p)
w jk
a k w jk
a k w jk k =1
a k
i atunci se obine regula de ajustare a ponderilor:
(p)
(y)
( p)
w(p)
jk (t + 1 ) = w jk (t) + k (t)z j (t)

(50)

Funcia de eroare poate fi evaluat folosind:


E ( p )
E ( p ) y ( p )
E ( p )
k(y) = (p) = ( p ) k(p) = ( p ) f (a k(p) ) = (d k( p ) z k( p ) ) f (a k(p) )
(51)
a k
y k a k
y k
unde derivata funciei sigmoidale asimetrice n raport cu funcia de activare este dat de:
f (a k(p) ) = z (j p )( 1 z (j p ) )
(52)
Oarecum similar se face adaptarea celorlali parametri ai reelei, media i dispersia. Dac
se definete (j z ) ca fiind funcia de eroare corespunztoare nodului j de pe primul strat, atunci

195

14. Reele neurale folosite n recunoaterea de forme.

derivata parial a erorii medii ptratice n raport cu media/dispersia ataat nodului curent se
calculeaz cu:
(p)
E ( p ) E ( p ) z j
E ( p ) (p)
(z) ( p)
(p)
(53)
=
=

z j ( 1 z (p)
j ) j zj (1 zj )
(p)
(p)
mij(p)
z (p)

z
j
ij
j
(p)
E ( p ) E ( p ) z j
E ( p ) (p)
(z) ( p)
(p)
=
=
z j ( 1 z (p)
j ) j zj (1 zj )
(p)
(p)
(p)
(p)
j
z j j
z j

(54)

i atunci se obine regula de ajustare a mediilor/dispersiilor:


( p)
( p)
mij(p)(t + 1 ) = mij(p)(t) + (z)
j (t)z j (t)( 1 z j (t))

(55)

( p)
( p)
mij(p)(t + 1 ) = mij(p)(t) + (z)
j (t)z j (t)( 1 z j (t))

(56)

Funcia de eroare poate fi evaluat folosind:


E ( p ) N ( y ) ( p )
(z)
j = (p) = k w jk
(57)
z j
k =1
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);
}
/*-------------------------------------------------------------------------*/

196

14. Reele neurale folosite n recunoaterea de forme.

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]) {

197

14. Reele neurale folosite n recunoaterea de forme.

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
#include
#include
#include
#include

198

<alloc.h>
<conio.h>
<math.h>
<stdio.h>
<stdlib.h>

14. Reele neurale folosite n recunoaterea de forme.

#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

199

14. Reele neurale folosite n recunoaterea de forme.

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);

200

14. Reele neurale folosite n recunoaterea de forme.

getch();
return(0);
}

Reeaua Hamming
#include
#include
#include
#include
#include

<alloc.h>
<conio.h>
<math.h>
<stdio.h>
<stdlib.h>

#define NN 80
#define NC 4
int **Class;
struct Hamming
{
int *XI;
int **WI;
int *TI;
double **WS;
double *YS;
double *ZS;
} H;

//intrare *2 n subreeaua inferioar


//ponderi *2 n subreeaua inferioar
//praguri *2 n subreeaua inferioar
//ponderi n subreeaua superioar
//ieire curent n subreeaua superioar
//ieire precedent n subreeaua superioar

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

201

14. Reele neurale folosite n recunoaterea de forme.

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);

202

14. Reele neurale folosite n recunoaterea de forme.

//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
#include
#include
#include
#include

<alloc.h>
<conio.h>
<math.h>
<stdio.h>
<stdlib.h>

#define NN 80
#define NC 4
int **Input;
struct CarpGros
{
int
*X;
double
**WB;
int
**WT;
double
*Y;
double
*Z;
} C;

/*
/*
/*
/*
/*

intrare
ponderi conexiuni directe
ponderi conexiuni inverse
ieire
inhibri laterale

*/
*/
*/
*/
*/

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);

203

14. Reele neurale folosite n recunoaterea de forme.

//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;
}
}

204

14. Reele neurale folosite n recunoaterea de forme.

//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
#include
#include
#include
#include
#include
#define
#define
#define
#define

<alloc.h>
<conio.h>
<graphics.h>
<math.h>
<stdio.h>
<stdlib.h>

NC 4
NN 2
MM 10
STEPS 5000

struct KohonenMap
{
int
Rad;
double
Eta;
double
*XI;
double
***WC;
double
***WP;
} K;

/*
/*
/*
/*
/*

raza iniial a vecintii


raza iniial a vecintii
intrare n reea
ponderi intrare-ieire
ponderi intrare-ieire

*/
*/
*/
*/
*/

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++)

205

14. Reele neurale folosite n recunoaterea de forme.

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);

206

14. Reele neurale folosite n recunoaterea de forme.

return(0);
}

Perceptron multistrat antrenat cu algoritmul backpropagation


#include
#include
#include
#include
#include
#include
#include
#include
#define
#define
#define
#define
#define
#define
#define

<alloc.h>
<conio.h>
<dos.h>
<graphics.h>
<math.h>
<stdio.h>
<stdlib.h>
<time.h>

NN 80
N1 40
N2 20
NC 8
STEPS 200
ETA 0.35
ALPH 0.7

double **Input;
struct Perceptron
{
double *XI;
double **WI1p;
double **WI1c;
double *T1p;
double *T1c;
double *X1;
double *S1;
double **W12p;
double **W12c;
double *T2p;
double *T2c;
double *X2;
double *S2;
double **W2Yp;
double **W2Yc;
double *TYp;
double *TYc;
double *Y;
double *SY;
double *D;
} P;

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

intrare n reea
ponderi precedente intrare -> primul strat
ponderi curente intrare -> primul strat
praguri precedente pentru primul strat
praguri curente pentru primul strat
ieiri din primul strat
erori pentru primul strat
ponderi precedente primul strat -> al 2-lea strat
ponderi curente primul strat -> al 2-lea strat
praguri precedente pentru al 2-lea strat
praguri curente pentru al 2-lea strat
ieiri din al 2-lea strat
erori pentru stratul al 2-lea
ponderi precedente al 2-lea strat -> ieire
ponderi curente al 2-lea strat -> ieire
praguri precedente pentru stratul de ieire
praguri curente pentru stratul de ieire
ieire din reea
erori pentru stratul de ieire
ieire dorit din reea

*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/

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);

207

14. Reele neurale folosite n recunoaterea de forme.

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++)

208

14. Reele neurale folosite n recunoaterea de forme.

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++) {

209

14. Reele neurale folosite n recunoaterea de forme.

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];

210

14. Reele neurale folosite n recunoaterea de forme.

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
#define PI
#define byte

1.7976931348623158e+308
3.1415926535
unsigned char

#define OFF 20

// ofset geometric pentru construcia claselor

#define
#define
#define
#define
#define
#define

//
//
//
//
//
//

NC
NC1
NZ
NI
NF
NN

3
4
256
2
600
(NC1*NF)

#define EPOCHS 200


#define ETA
0.35
#define ALPH
0.7
double

numrul
numrul
numrul
numrul
numrul
numrul

de clase
total de clase (inclusiv clasa de rejecie)
total de clusteri
de intrri n reea (x,y)
de forme per clas
total de forme de intrare

// parametri antrenare

**Input; // matrice date de intrare

211

14. Reele neurale folosite n recunoaterea de forme.

byte
int

**Image; // matrice imagine bitmap


*Histo; // histograma distribuiei datelor de intrare

typedef struct tagBITMAPFILEHEADER {


unsigned short bfType;
unsigned long bfSize;
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned long bfOffBits;
} BITMAPFILEHEADER;

// antet fiier bitmap

typedef struct tagBITMAPINFOHEADER {


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;

// antet bitmap

typedef struct tagRGBQUAD {


byte rgbBlue;
byte rgbGreen;
byte rgbRed;
byte rgbReserved;
} RGBQUAD;

// paleta de culori

struct RBFNet
{
double *XI;
double **Mp;
double **Dp;
double **Mc;
double **Dc;
double *Z;
double
double
double
double
double
double
double
} R;

**Wp;
**Wc;
*Tp;
*Tc;
*Ey;
*Y;
*D;

// reea RBF
//
//
//
//
//
//

intrare n reea
medii precedente
dispersii precedente
medii curente
dispersii curente
ieiri din primul strat

//
//
//
//
//
//
//

ponderi precedente strat


ponderi curente strat de
praguri precedente strat
praguri curente strat de
funcia de eroare
ieire din reea
ieire dorit din reea

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);

212

de ieire
ieire
de ieire
ieire

14. Reele neurale folosite n recunoaterea de forme.

/*-------------------------------------------------------------------------*/
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
long
double

idum, i, j, k, n, nEr;
r, x1, y1, x2, y2, x3, y3;
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

213

14. Reele neurale folosite n recunoaterea de forme.

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++) {

214

14. Reele neurale folosite n recunoaterea de forme.

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]
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]
}
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]
Image[j][i] = 0xaa;
Image[j+1][i-1] = 0xaa; Image[j+1][i] = 0xaa; Image[j+1][i+1]
}

= 0xaa;
= 0xaa;

= 0xaa;
= 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;

215

14. Reele neurale folosite n recunoaterea de forme.

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

216

14. Reele neurale folosite n recunoaterea de forme.

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);
}

217

14. Reele neurale folosite n recunoaterea de forme.

// 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

218

14. Reele neurale folosite n recunoaterea de forme.

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

219

14. Reele neurale folosite n recunoaterea de forme.

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);
}

220

14. Reele neurale folosite n recunoaterea de forme.

Fiier imagine (bitmap) generat de programul te test pentru reeaua RBF cu antrenare hibrid.

221

15. Selecia trsturilor.

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 {X j }1 j N setul de N vectori de date folosii pentru antrenarea clasificatorului. Notnd
cu xij trstura "j" a vectorului X i i cu N k numrul de forme prototip pentru clasa "k", avem:
NC

N = Nk

(1)

k =1

i putem defini n continuare:


Media trsturii "j" pentru vectorii din setul de date:
1 N NC ( k )
1 N
=

=
xij
(2)
mj
xij m j N
N i =1
i =1 k =1
Variana trsturii "j" pentru setul de vectori de date:
1 N NC
1 N
(3)
v j = (xij m j ) 2 v j = (xij(k) m j ) 2
N i =1 k =1
N i =1
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:
1
V j(in) = (x kj x lj ) 2
(4)
p (k,l)
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.

221

15. Selecia trsturilor.

Variabilitatea interclas pentru trstura "j" este dat de:


1
V j(ic) = (x kj x lj ) 2
(5)
r (k,l)
unde suma se calculeaz pentru toate perechile posibile de forme aparinnd unor clase
diferite, "r" fiind numrul de astfel de perechi.
Cu ct V j( in ) este mai mic, cu att gruparea valorilor trsturii n jurul mediei este mai
bun, deci clasificarea va fi mai facil, i cu ct V j( ic ) este mai mare, cu att clasele sunt mai
deprtate, deci mai bine separate. Atunci, pentru fiecare trstura n parte se calculeaz raportul:
V j( in )
(6)
g j = ( ic )
Vj
reinndu-se acele trsturi pentru care valoarea g j este ct mai mic.
Se mai utilizeaz pentru problemele de clasificare binar raportul (ponderea) Fisher:
(m j 1 m j 2 )2
(7)
Fj =
V j1 V j 2
sau raportul Coomans:
m j1 m j 2
Cj =
(8)
V j1 + V j 2
15.2. Metode bazate pe densitatea de probabilitate.
Pentru un clasificator bayesian cu funcie de pierdere simetric, riscul condiionat este dat
de:
L (X,k ) = p (X/k ) p (k )
(9)
Eroarea global de clasificare este dat de:
Nc

= L (X,k )dX

(10)

k =1 k

de unde se poate scrie:


Nc

= p (k ) p ( X /k )d X
k =1

(11)

O expresie asemntoare se poate scrie i pentru fiecare trstura n parte:


Nc

j = p (k ) p (x j /k )dx j
k =1

(12)

k(j)

Pentru fiecare trstur n parte se calculeaz j , cunoscnd aprioric sau estimnd p (k )


i p (x j /k ) , 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 = (x1 ,x 2 ,...,x n )
(13)
Considerm transformarea diagonal:

222

15. Selecia trsturilor.

w11 ... 0
(14)
X ( diag W)X, unde diag W = ... ... ...

0 ... wnn
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:


Nk Nk
1
D =
d 2 (X i(k) ,X (k)

j )
N k (N k 1 ) i =1 j =1
Aceeai relaie n spaiul transformatei devine:
Nk Nk
1
Dk2 =
d 2(( diag W)X i(k) ,( diag W)X (k)

j )
N k (N k 1 ) i =1 j =1
Dar:
2
k

(15)

(16)

d 2 (X,Y) = (x c y c ) 2

(17)

c =1

unde "n" este numrul de trsturi folosite.


nlocuind, se obine:
Nk Nk n
1
2
Dk2 =
wc2(xic(k) x (k)
(18)

jc )
N k (N k 1 ) i =1 j =1 c =1
Transformarea diagonal optim pentru clasa "k" se poate obine din condiia de
minimizare a lui Dk2 i folosind o condiie suplimentar de forma:
n

wc = 1
c =1

sau

w
c =1

=1

(19)

condiie necesar pentru a limita valorile ponderilor printr-o scalare aditiv sau
multiplicativ.
Deci vom deduce valorile ponderilor w c din condiia:
Dk2
=0
(20)
wm
plus una din condiiile suplimentare precedente, folosind metoda multiplicatorilor lui
Lagrange.
Astfel, pentru prima variant (scalare aditiv a parametrilor), trebuie de minimizat funcia:
Nk Nk n
n
1
2 (k)
(k) 2
f =
w
(x

x
)

(
wc 1 )
(21)
c ic jc

N k (N k 1 ) i =1 j =1 c =1
c =1
Se obine:
Nk Nk
1
f
2
=0
2 wm(xic(k) x (k)
(22)

jc ) = 0
wm
N k (N k 1 ) i =1 j =1
Nk Nk
1
2
(xic(k) x (k)

jc ) =
N k (N k 1 ) i =1 j =1
Remarcnd faptul c:
Nk Nk

1
2
m2 =
(xic(k) x (k)

jc )
N k (N k 1 ) i =1 j =1
este tocmai variana trsturii "m" pentru clasa "k", rezult:

2 wm

(23)

(24)

223

15. Selecia trsturilor.

2 wm m2 = wm =

2 m2

(25)

i folosind condiia suplimentar de scalare aditiv, se obine prin nlocuire:


n 1
2
1= 2 = n
1
2 m 1 m

m 1

2
m

Ca urmare rezult n final:


1
wc( k ) =
n
1
2

m 1

(26)

(27)

m2

Deoarece ponderile w c sunt proporionale cu 1 / c2 , 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:
Nk Nk n
n
1
2 (k)
(k) 2
f =
w
(x

x
)

(
wc 1 )
(28)
c ic jc

N k (N k 1 ) i =1 j =1 c =1
c =1
Efectund acelai ir de operaii se obine succesiv:
Nk Nk
1

f
2
=0
2 wm(xic(k) x (k)
=0
(29)

jc )
N k (N k 1 ) i =1 j =1
wm
w m
Nk Nk
2 wm2

2
2 2
2
(x ic(k) x (k)

jc ) = 2 wm m = wm =
N k (N k 1 ) i =1 j =1
2 m2
nlocuind n condiia de scalare multiplicativ:
n
n 1
=
1

=
2
(
m2 )1 /n

n
n
2
m =1
m2

(30)

(31)

m =1

Rezult n final:
n

wc(k) =

( m )1 /n
m =1

(32)
c
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 wc( k ) are valoare mare.
Pentru a selecta trsturile semnificative pentru toate clasele, se pot utiliza funcii de cost
de forma f (wc(k) ) , 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:

224

15. Selecia trsturilor.

Y
selecie
trsturi
T
T -1
semnificative
Fig. 1. Selecia optimal a trsturilor.

~
X

unde:

X - vectorul de form de intrare, X = (x1 ,x 2 ,...,x n )T


Y - vectorul de form transformat, Y = (y 1 ,y 2 ,...,y n )T
~
~
Y - vectorul de form redus, Y = (y 1 ,y 2 ,...,y k ,c k +1 ,...,c n )
~
~
X - estimaia vectorului de form de intrare, X = (~
x1 ,~
x 2 ,...,~
x n )T
Se remarc modul de efectuare a reducerii datelor prin forarea ultimelor " n k" 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:
u11 u12 ... u1n u1T

u
u 22 ... u 2 n u2T
21

(33)
=
T=
... ... ... ... ...

T
u n 1 u n 2 ... u nn un
Deoarece transformarea T este unitar, avem:
T 1 = T T
(34)
i atunci:
u11 u 21 ... u n 1
u
u 22 ... u n 2
= [u1 u2 ... un ]
(35)
T T = 12
... ... ... ...

u1n u 2 n ... u nn
Din structura schemei bloc rezult:
y1
y
n
Y = TX ==> X = T T Y = [u1 u2 ... un ] 2 ==> X = u j y j
(36)
...
j =1

yn
Eroarea medie ptratic de estimare a lui X este dat de:
~ 2
~
~
= E { X X } = E {(X X)T (X X)}
(37)
Dar, deoarece:
n
~ n
X X = uj y j uj ~
yj =
j =1

j =1

u (y

j = k +1

cj )

Rezult pentru eroarea medie patratic expresia:


n
n

n n

= E (y j c j )uTj u j (y j c j ) = E (y j c j )uTj ui (y i ci )
j = k +1
j = k +1

i = k + 1 j = k + 1

i deoarece din condiia de ortogonalitate avem:

(38)

(39)

225

15. Selecia trsturilor.

1, pentru i = j
(40)
uTj ui =
0 , pentru i j
se obine n final:
n

(41)
= E (y j c j ) 2
=
+
j
k
1

Primul pas al optimizrii const n determinarea constantelor "c" din condiia de


minimizare a erorii medii ptratice:

(42)
= 0 E { 2(y j c j )} = 0 c j = E {y j } = y j
c j
Atunci eroarea medie ptratic de estimare a intrrii devine:
n

(43)
= E (y j y j ) 2 = E (y j y j )(y j y j )T
j = k +1

j = k +1

Deoarece:
y j = uTj X
i
y j = uTj X
(44)
rezult dup nlocuiri:
n

= E uTj (x j x j )(x j x j )T u j =
j = k +1

Deci:

j = k +1

T
j

T
j

E {(x j x j )(x j x j )T }u j

(45)

j = k +1

(46)

K XX u j

unde K XX este matricea de covarian asociat procesului aleator care descrie vectorii
formelor de intrare.
Pentru a determina u j din condiia de minimizare a erorii medii ptratice de estimare,
adic:

uj = 0

(47)

cu condiia suplimentar uTj u j = 1 care exprim proprietatea de ortogonalitate a matricii

T, se folosete metoda multiplicatorilor lui Lagrange, adic se minimizeaz funcia:


uj f = 0

(48)

unde:
f =

j = k +1

T
j

K XX u j j (uTj u j 1 )

(49)

Rezult n final:
(K XX j I n )u j = 0

(50)

care exprima faptul c j , j = 1..n sunt valorile proprii ale matricii de covarian a intrrii,
iar u j , j = 1..n sunt vectorii proprii ai aceleiai matrici K XX .
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:

u Tj K XX u j =

j = k +1

u Tj j u j =

j = k +1

j = k +1

i folosind condiia de ortogonalitate obinem:

226

T
j

uj

(51)

15. Selecia trsturilor.

j = k +1

(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 K XX .
(2). Se calculeaz valorile proprii ale matricii K XX .
(3). Se ordoneaz descresctor aceste valori proprii.
(4). Se construiete matricea T a transformrii unitare cutate din vectorii proprii ai
matricii K XX , 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:
K YY = E {(Y Y )(Y Y )T } = E {T(X X)(X X)T T T } = TK XX T T
i deoarece:
K XX u j = j u j , pentru j = 1...n

rezult:

K XX [u1

... un ] = diag ( 1

u2

... n ) [u1

u2

... un ]

K XX T = T
Atunci matricea de covarian a domeniului transformatei se scrie:
K YY = T T = TT T =
Deci prin aplicarea transformrii optimale se obin trsturi necorelate.
T

(53)

(54)
(55)

(56)

15.5. Transformri rotaionale pentru selecia trsturilor.


Considernd formele din spaiul formelor R n dezvoltate folosind o baz ortonormat
complet de vectori:
~
{b } = {b p ,p = 1...m}
(57)

unde m < n , atunci orice form poate fi exprimat sub forma unei combinaii liniare a
vectorilor din aceast baz:
X (j k ) = a j 1 b1 + a j 2 b2 + ... + a jm bm
(58)
Eroarea indus de aceast dezvoltare are expresia:
m

e (j k ) = E { | X (j k ) a jp b p |2 }

(59)

p =1

~
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
n 64 . n plus, algoritmul transformarii DCT rapide (derivat din FFT) permite reducerea
substanial a numrului de calcule, de la n 2 la 2n log 2 n operaii (o operaie = o nmulire i o
adunare).

227

15. Selecia trsturilor.

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 n 2 la n log 2 n
operaii.
(2). Transformata Walsh-Hadamard care prezint avantajul c pentru calculul ei sunt
necesare doar n log 2 n 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 2(n 1 ) 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:
p (i ) p (X/i )
Q1 = [ p (i ) p (X/i ) p ( j ) p (X/ j )] log
(60)
dX
p ( j ) p (X/ j )

(2) Distana Bhattacharyya (B-distana), al crui minim asigur o bun separabilitate a


claselor:
Q2 = log [ p (X/i ) p (X/ j )] 1 / 2 dX
(61)

(3). Patrick i Fisher sugereaz folosirea coeficientului:


Q32 = log [ p (X/i ) p (X/ j )] 2 dX

(62)

(4). Meisel propune varianta discret urmtoare, care este util mai ales n cazul formelor
cu numr mare de trsturi:
p j M2
p M1
Q42 = i [ p (i ) p (X/i ) p ( j ) p (X/ j )] 2 +
[ p (i ) p (X/i ) p ( j ) p (X/ j )] 2 (63)
M i k =1
M j k =1
(5). Msura urmtoare ine cont de eroarea de clasificare pentru un clasificator Bayes:
p j M2
pi M1
2
2
Q5 =
[ p (i ) p (X/i ) p ( j ) p (X/ j )] +
[ p (i ) p (X/i ) p ( j ) p (X/ j )] 2 (64)

M j k =1
M i k =1
unde:
1, pentru x 0
(x) =
0 , pentru x < 0
Dac msurile precedente se refer la separabilitatea ntre clasele i i j , urmtoarele
msuri urmresc separabilitatea global, deci pentru toate cele N c clase.
(6). O variant continu pentru estimarea separabilitii globale a claselor este:
Q6 = max p (i ) p (X/i )dX

i =1...N c

(7). Alt modalitate de apreciere are la baz riscul condiionat de clasificare eronat:

228

(65)

15. Selecia trsturilor.

Nc
2
Nc

Q7 = p (i ) p (X/i ) dX [ p (i ) p (X/i )] dX
(66)

i =1
i =1
(8). Varianta discret a coeficientului precedent este dat de:
2
Nc

1 M N c
Q8 =
(67)
p (i ) p (X/i ) p (i ) p ( X /i )

M j =1 i =1
i =1

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 Q1 i Q2 ) 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.
1 N 1 N 1
uj
vk
DCT (u,v) =
f (j,k) cos (
) cos (
)
(68)

N
2 N j =0 i = 0
N
iar pentru reea neuronal:
N

z pj = f wkj(z) y pk y pj = f wkj( y ) x pk x pj = f wkj( x ) u pk


(69)
k =1

k =1

k =1

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).

Input(16)
C(31)

C(30)

C(1)

C(0)

Output(12+12)

Fig. 2. Schema bloc a circuitului IMS A100.

Ieirea se calculeaz cu relaia:


y(kT)=C( 0 ) x(kT)+C( 1 ) x((k-1 )T)+...+C(N-1 ) x((k-N+1 )T)
(70)
unde x(kT) reprezint eantionul de ordinul k, iar C( 0 ),..,C(N 1 ) 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

229

15. Selecia trsturilor.

interfa sincron (pentru cascadarea circuitelor i pentru realizarea de structuri de filtrare "online", 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:
N +1

Y = wi xi

(71)

i =0

iar coeficienii (ponderile) wi sunt deja cunoscute, ele pot fi ncrcate ntr-o memorie de tip
PROM/EPROM de capacitate convenabil aleas.
Astfel deoarece N = 32 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
27256 27256
(32K*8)

(32K*8)

ADR

ADR

74163

74163

DI

ADR

ADR

A-100

A-100

SMI OUT

DI/CI SMI OUT

74163

comenzi
74374

MUX
3 * 74374

2 * 74245

FIFO
8bit

FIFO
8bit

FIFO
8bit

74245

74245

74245

PC-BUS
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:
64*64 + 64*32 + 32*32 = 4 Kword + 2 Kword + 1Kword = 7 Kword
(72)

230

15. Selecia trsturilor.

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:
96* 96 + 96*64 + 64*32 = 9 Kword + 6 Kword + 2 Kword = 17 Kword
(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).

231

16. Algoritmi de gestiune a seturilor de forme de antrenament.

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

233

16. Algoritmi de gestiune a seturilor de forme de antrenament.

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

14

15

27

28

13

16

26

29

42

12

17

25

30

41

43

11

18

24

31

40

44

53

10

19

23

32

39

45

52

54

20

22

33

38

46

51

55

60

21

34

37

47

50

56

59

61

35

36

48

49

57

58

62

63

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 S KL reprezint o
matrice NxN simetric i cu elementele de pe diagonal nule, deci calculul ei nseamn calculul a
N ( N / 2 1 ) valori semnificative. Pentru N = 120 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:

234

16. Algoritmi de gestiune a seturilor de forme de antrenament.

(1)

32 32

KL

= MS [I,J] MS (L) [I,J]


(K)

(1)

I =1 J =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:
32 32

S ( 2 ) = min ( (MS ( K ) [I,J] ME ( L ) [I + M,J + N]) 2 )


M ,N

(2)

I =1 J =1

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.

(3)

32 32

KL

= ( DCT (K) [I,J] DCT (L) [I,J]) 2

(3)

I =1 J =1

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.

(4)

66

KL

= (Z (K) [I] Z (L)) [I]) 2

(4)

I =1

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 Z [K] [I] , 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 (X K(i) ,X L(i) ) pentru care scorul de
(i )
coinciden S KL
este minim. Regula de eliminare a simbolurilor este:
(i)
(i)
IF S KM
< S LM
, M K, M L, THEN
elimin forma X K(i)
(5)
ELSE
elimin forma X L(i)
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 (X K(i) ,X L(i) ) pentru care scorul de
(i )
coinciden S KL
este minim. Se calculeaz apoi distana d (X K(i) ,X M(j) ),j i de la fiecare din
formele X K( i ) i X L( i ) la fiecare din formele aparinnd celorlalte clase. Regula de eliminare a
simbolurilor este:
IF min d (X K(i) ,X M ) < min d (X L(i) ,X M ), THEN
X M i

X M i

235

16. Algoritmi de gestiune a seturilor de forme de antrenament.

elimin forma X K(i)

(6)

ELSE

elimin forma X L(i)


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 K( i ) se calculeaz distana pn la vecinul cel
mai apropiat aparinnd altei clase, adic cel pentru care avem:
min d (X K(i) ,X M )
(7)
X M i

Dintre toate formele clasei i se elimin acea form pentru care aceast distan este
maxim:
max min d (X K(i) ,X M )
(8)
K

X M i

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 S KL pentru perechile (KL) de simboluri din setul de
antrenament (metoda 1) sau a distanelor d (X K(i) ,X M ) 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 S KL 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

236

16. Algoritmi de gestiune a seturilor de forme de antrenament.

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.

237

16. Algoritmi de gestiune a seturilor de forme de antrenament.

238

17.

Recunoaterea

obiectelor

imagistice

cu

invariane

specificate.

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.

239

17. Recunoaterea obiectelor imagistice cu invariane specificate.

]
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.

240

17.

Recunoaterea

obiectelor

imagistice

cu

invariane

specificate.

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:
p (x) = P1 p1 (x) + P2 p2 (x)
(1)
i pentru cazul Gaussian :
P1
(x 1 ) 2
P2
(x 2 ) 2
(2)
p (x) =
exp
+
exp
2 12
2 22
2 1
2 2
unde: 1 i 2 sunt valorile medii ale celor dou nivele de strlucire,
1 i 2 sunt deviaiile standard de la medie,
P1 i P2 sunt probabilitile nivelelor.
Avnd n vedere faptul c relaia urmtoare este satisfcut automat:
P1 + P2 = 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 1 < 2 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

E1 (T) = p2 (x)dx

(4)

Similar, probabilitatea clasificrii unui punct de fond ca fiind punct-obiect este:

E 2 (T) = p1 (x)dx
T

De aici eroarea total probabil este:


E (T) = P2 E1 (T) + P1 E 2 (T)

(5)
(6)

241

17. Recunoaterea obiectelor imagistice cu invariane specificate.

Pentru a gsi acea valoare a pragului pentru care aceast eroare este minim, va trebui s
difereniem E (T) relativ la T (folosind regula lui Leibnitz) i s egalm rezultatul cu zero:
P1 p1 (T) = P2 p2 (T)
(7)
Deoarece zgomotul afecteaz n mod egal att fondul ct i obiectele, avem
2
= 12 = 22 i atunci:

1 + 2

P1
(8)
2
2 2 P2
Dac probabilitile sunt egale P1 = P2 , 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:
T=

T 1

H[j]
j =1

ln

H[j] > R

(9)

j =T

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 ( 1,0 ) , 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 :

7 0 1
6 C 2
5 4 3
unde: C = este pixelul de cutare vechi;
1, ... , 7 = direciile corespunztoare dup care fac cutarea.

242

17.

Recunoaterea

obiectelor

imagistice

cu

invariane

specificate.

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:
V X = [ 0 ,1,1,1,0 , 1, 1, 1 ]
Vectorul incrementilor coordonatei y pentru pixelul de cutare este:
VY = [ 1, 1,0 ,1,1,1,0 , 1 ]
Noul pixel gsit devine pixel actual i este marcat. n acelai timp se rein valorile
actualizate pentru minimele i respectiv maximele lui x, y .
(3). Stop cnd pixelul curent coincide cu pixelul de start, adic:
xc = xs , yc = ys
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 ( 1,0 ) .
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:
1
m =
(10)
f (x,y)
M (x,y)
1
2 =
(11)
[ f (x,y) m ] 2
M (x,y)
unde: - este mulimea pixelilor obiectului a crui invarian la iluminare se urmrete;
- M este numrul pixelilor corespunztori acestui obiect .
Atunci variabila aleatoare:
f (x,y) = f (x,y) m , (x,y)
(12)
are media nul i dispersia neschimbat,
f (x,y) m
~
, (x,y)
(13)
f (x,y) =
2
este o variabil aleatoare cu media nul i dispersia unitar, iar:

243

17. Recunoaterea obiectelor imagistice cu invariane specificate.

f (x,y) m
~
+ q, (x,y)
(14)
f (x,y) =
2
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:
xmax

XG =

y max

i = xmin j = y min
xmax

x max

xi f (xi ,y j )
,

y max

f (x ,y

i = x min j = y min

YG =

y max

i = xmin j = y min
xmax

f (xi ,y j )
(15)

y max

f (x ,y

i = x min j = y min

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
G (x1 , x 2 , ... , x n ) , pentru fiecare din varibilele independente x1 , x 2 , ... , x n .
Pentru cazul particular al trecerii n coordonate polare avem:
r = x 2 + y 2
x = r cos
(16)

= arctg (y/x)
y = r sin

Avnd o matrice f (j,k) , unde j = 1...m; k = 1...n i funciile r i s, relaia dintre aceste
valori de intrare i funcia f (r,s) este:
G (j,k) = f [ r (j), s (k)]
(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:
r (j) r r (j + 1 )
i
s (k) s s (k + 1 )
(18)
i avnd j, k :

244

17.

Recunoaterea

obiectelor

imagistice

cu

invariane

specificate.

g 1 G (j,k) ;
g 2 G (j + 1,k) ;
(19)
g 3 G (j,k + 1 ) ;
g 4 G (j + 1,k + 1 ) ;
Interpolarea liniar se obine cu:
t [ r r (j)]/[ r (j + 1 ) r (j)]
(20)
u [ s s (k)]/[ s (k + 1 ) s (k)]
cu u, t ntre 0 i 1:
G (x1 ,x 2 ) = ( 1 t)( 1 u)g 1 + t( 1 u)g 2 + ( 1 t)ug 3 + tug 4
(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
n
fn
(22)
, n = , ... ,
N
2
2
Urmtorul pas este de a calcula transformata Fourier discret a liniilor matricii
transformrii polare:
N 1

H n hk e 2 j k n/N

(23)

k =0

Ultima sumare este transformata Fourier discret a N puncte hk .Transformata Fourier


opereaz asupra a N numere complexe ( hk -urile) i furnizeaz N numere complexe ( H n -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 f j 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:
h j = f 2 j + i f 2 j+1 , pentru j = 0, ... , N/2-1
(24)
Vom aplica asupra acestora algoritmul FFT, care returneaz un vector complex:
H n = Fne + jFn0 , n = 0, ... , N/2-1
cu:
Fne =

N/ 2 1

f 2k e 2 j k n/(N/ 2 )
k =0

Fn0 =

N/ 2 1

f
k =0

2 k +1

e 2 j k n/(N/ 2 )

(25)
(26)

245

17. Recunoaterea obiectelor imagistice cu invariane specificate.

Pentru a obine invariana la rotaie calculm modulul transformatei Fourier deoarece o


rotaie n spaiul cartezian f (x,y) se regsete n spaiul (r,f i ) , al transformrii polare ca o
translaie i atunci transformata Fourier a acestei micri este:
~
~
F { f (x x0 )} = F { f (x)} e jx0
(27)
Avnd n vedere c | e jx0 |= 1 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:
1 N 1 N 1
uj
vk
F (u,v) =
f (j,k) cos (
) cos (
)
(28)

2 N j =0 i =0
N
N
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

11

12

27

28

43

44

10

13

26

29

42

45

14

25

30

41

46

56

15

24

31

40

47

57

16

23

32

39

48

55

58

17

22

33

37

49

54

59

17

21

34

37

50

53

60

61

19

20

35

36

51

52

62

63

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.

246

17.

Recunoaterea

obiectelor

imagistice

cu

invariane

specificate.

c)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.
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:
m pq =

+ +

y q f (x,y) dx dy

(29)

unde "p" i "q" indic ordinul momentului respectiv. Pentru imagini digitale, momentul se
calculeaz prin:
m pq = x p y q f (x,y)
(30)
x

Momentele Zernike se definesc pe un domeniu egal cu interiorul cercului unitate:


x2 + y2 = 1
Pentru construcia lor se definete mai nti un set de polinoame ortogonale, notate:
Vnm (x,y), cu n-|m| par i |m| < n ,
Expresia de definiie a lor este:
Vnm (x,y) = Vnm (,) = Rnm () exp (jm)
unde:
(n |m|)/ 2
(n s)!
Rnm () = ( 1 ) s
n2 s
s![(n + |m|)/ 2 s ]![(n |m|)/ 2 s ]!
s =0
Se poate remarca faptul c:
Rn,m () = Rnm ()
Aceste polinoame { Vnm (x,y)} fiind ortogonale, satisfac condiiile de ortogonalitate:
[Vnm(x,y)] V pq (x,y) dx dy = np mq

n +1
x 2 + y 2 1

(31)
(32)
(33)
(34)
(35)
(36)

unde:

247

17. Recunoaterea obiectelor imagistice cu invariane specificate.

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

Anm =
f (x,y)Vnm
(,) dx dy
(38)

x 2 + y 2 1

ab =

Pentru cazul discret, momentul Zernike de acelai ordin se scrie:


n +1

Anm =
f (x,y)Vnm
(,), cu x 2 + y 2 1
(39)

x y
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:
nmax
~
f (x,y) = Anm Vnm (,)
(40)
n =0 m

Descompunnd aceast expresie n:


nmax
nmax
~
f (x,y) = Anm Vnm (,) + AnmVnm (,)

(41)

i folosind o proprietate enunat anterior, putem scrie:


nmax
nmax
~
f (x,y) = An,m Vn,m (,) + Anm Vnm (,)

(42)

n =0 m < 0

n =0 m 0

n =0 m >0

n =0 m 0

adic:
nmax
nmax
~

f (x,y) = Anm
Vnm
(,) + Anm Vnm (,)
n =0 m >0

(43)

n =0 m 0

Cele dou sume pot fi acum unificate scriind:


nmax
~

f (x,y) = An 0 Vn 0 (,) + Anm


Vnm
(,) + Anm Vnm (,)
n =0 m >0

(44)

Deoarece este mai uor de operat cu numere reale vom descompune numerele complexe
din formula anterioar:
~
f (x,y) = [Re ( An 0 ) j Im ( An 0 )]Vn 0 (,) +
nmax

+ [[Re ( Anm ) j Im ( Anm )] Rnm ()( cos m j sin m) +


n =0 m >0

+ [Re ( Anm ) + j Im ( Anm )] Rnm ()( cos m + j sin m)]


(45)
Efectund calculele rezult expresia:
nmax
1
~
f (x,y) = C n 0 Rn 0 (x,y) + [C nm cos m + S nm sin m ] Rnm (x,y)
(46)
2
n =0 m
n care
2n + 2
C nm = 2 Re ( Anm )
<==> C nm =
f (x,y) Rnm (x,y) cos m
(47)

x
y
i:
2n 2
Snm = 2 Im ( Anm ) <==> S nm =
f (x,y) Rnm (x,y) sin m
(48)

x
y
Se demonstreaz foarte uor c modulul momentelor Zernike este invariant la rotaie i ca
urmare ele pot fi folosite drept trsturi invariante la rotaie.

248

17.

Recunoaterea

obiectelor

imagistice

cu

invariane

specificate.

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.

249

17. Recunoaterea obiectelor imagistice cu invariane specificate.

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.

250

18. Msurarea automat a sitelor textile.

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-receptorde 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).

251

18. Msurarea automat a sitelor textile.

Imagine n scar de gri


digitizare

calcul
histogram

Afiare/tiprire
parametri

segmentare
(binarizare)

Imagine binar

etichetare
componente

calcul
prag de
segmentare
calcul
parametri
sit

urmrire
contour

Filtre de
validare
etichetare
ochiuri

aproximare
poligonal

contururi
h
ochiuri

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:
R="arie fire"/"arie ochiuri"
(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:
T 1

j =1

j =T

H[j] H[j] > R

(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.

252

18. Msurarea automat a sitelor textile.

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
y[j] = ( x[j 1 ] + x[j] + x[j + 1 ] )
(3)
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:
1 i = j +k
y[j] =
(4)
x[i]
2k + 1 i = j k
unde k crete de la 1 la acea valoare pentru care histogramei filtrate i mai rmn doar
dou maxime locale. Ordinul filtrului este 2k + 1 .
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 m1 ,m 2 sunt nivelele de gri pentru care vectorul histogram atinge cele dou maxime,
iar H[m1 ], H[m 2 ] sunt aceste valori maxime, atunci pragul de segmentare este dat de:
m H[m 2 ] m1 H[m1 ]
m + m2
T= 1
sau
(5)
T= 2
2
H[m 2 ] H[m1 ]
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 f (x,y) este realizat (fig. 5) prin:

253

18. Msurarea automat a sitelor textile.

0 , pentru f(x,y) < T


f S (x,y) =
(6)
1, pentru f(x,y) T
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 b (x,y) a fondului folosit (fr eantion de sit pe el).
Eliminarea zgomotelor din imaginea b (x,y) prin aplicarea unui filtru (ex. median) clasic.
Aplicarea urmtoarei transformri punctuale pentru fiecare pixel al imaginilor de analiz:
fC (x,y) = f (x,y) b (x,y) + max | f (x,y) b (x,y)|
(7)
x,y

18.4. Etichetarea componentelor.


Imaginile binare obinute n urma prelucrrilor anterioare, f S (x,y) 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 (Ai ) , coordonatele punctului de start
(i)
(i)
(i)
(i)
(x S ,y S ) ale conturului, i coordonatele dreptunghiului de ncadrare, (X min
,Ymin
,X max
,Ymax
) . 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 /K 1 < 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):
Ai > Amin
(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:

254

18. Msurarea automat a sitelor textile.

Ai / max (A j ) > K 2

(10)

Acele obiecte care nu ndeplinesc toate regulile anterioare vor fi terse din lista ochiurilor
sitei (fig. 7).

latura(1)

col[01]

latura(0)

ochi "ij"

col[30]

Fig. 7. Contururi de ochiuri selectate.

latura(3)

col[12]

latura(2)

col[23]

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 N 0 , N 1 , N 2 i N 3 elemente, atunci, desigur:
N = N0 + N1 + N 2 + N3
(11)
Ecuaia dreptei care trece prin punctul (x0 ,y0 ) i are panta dat de 0 este:
(x x0 ) sin 0 (y y0 ) cos 0 = 0
(12)
Ecuaia dreptei care trece prin punctul (x k ,y k ) i este perpendicular pe dreapta (12) este:
(x x k ) cos 0 + (y y k ) sin 0 = 0
(13)
Atunci punctul de intersecie a acestor dou drepte are coordonatele urmtoare:
x = x0 sin 2 0 + x k cos 2 0 (y 0 y k ) sin 0 cos 0
(14)

y = y 0 cos 2 0 + y k sin 2 0 (x0 x k ) sin 0 cos 0


(15)
Distana de la punctul (x k ,y k ) la linia care trece prin punctul (x0 ,y0 ) i are panta 0 este
dat de:
d k2 = (x x k ) 2 + (y y k ) 2
(16)
adic:

255

18. Msurarea automat a sitelor textile.

d k2 = [(x0 x k ) sin 2 0 (y 0 y k ) sin 0 cos 0 ] 2 + [(y 0 y k ) cos 2 0 (x0 x k ) sin 0 cos 0 ] 2


(17)
Atunci eroarea medie ptratic corespunztoare fiecrei partiii a punctelor de contur este:
1 N0 2
1 N1 2
1 N2 2
1 N3 2
E0 =
d
E
=
d
E
=
d
E
=
(18)
k
k
k
dk
1
2
3
N 0 k0 =1 0
N 1 k 1 =1 1
N 2 k 2 =1 2
N 3 k3 =1 3
Pentru prima partiie, eroarea medie ptratic poate fi exprimat prin:
1 N0
E0 =
{[(x 0 x k0 ) sin 2 0 (y 0 y k0 ) sin 0 cos 0 ] 2 +

N 0 k0 =1

+ [(y 0 y k0 ) cos 2 0 (x 0 x k0 ) sin 0 cos 0 ] 2 }


x( 0 )

i dac definim urmtoarele cantiti (tot pentru prima partiie):


1 N0
1 N0
1 N0
1 N0 2
1
2
=
x
;
=
y
;
=
x
y
;
=
x k0 ; y(20 ) =
y
xy
x

k0
(0)
k0
(0)
(0 )
k 0 k0
N 0 k 0 =1
N k 0 =1
N 0 k0 =1
N 0 k 0 =1
N0
(20)
se obine urmtoarea expresie pentru eroarea medie ptratic E 0 :

(19)
N0

k 0 =1

2
(0)

E 0 = (x 02 2 x 0 x ( 0 ) + x (20 ) ) sin 2 0 2(x 0 y 0 x 0 y ( 0 ) x ( 0 ) y 0 + xy ( 0 ) ) sin 0 cos 0 +

+ (y 02 2 y 0 y ( 0 ) + y (20 ) ) cos 2 0
Prin minimizarea acestei erori valorile necunoscute x0 , y 0 i 0 pot fi aflate:
E
= 0 (x 0 x( 0 ) ) sin 0 (y 0 y( 0 ) ) cos 0 = 0 x0 = x( 0 )
x 0
E
= 0 (x0 x( 0 ) ) sin 0 + (y 0 y( 0 ) ) cos 0 = 0 y 0 = y( 0 )
y 0

2( xy( 0 ) x( 0 ) y( 0 ) )
E
1
= 0 0 = arctan
0
2
x(20 ) ( x( 0 ) ) 2 y(20 ) + ( y( 0 ) ) 2

(21)

(22)
(23)
(24)

Formule similare pot fi scrise pentru toate partiiile ataate conturului ochiului sitei, astfel
nct toate seturile [(x0 ,y 0 ), 0 ] , [(x 1 ,y1 ), 1 ] , [(x 2 ,y 2 ), 2 ] , i [(x 3 ,y 3 ), 3 ] pot fi obinute.
Rezolvnd sistemul de ecuaii:
(x x0 ) sin 0 (y y 0 ) cos 0 = 0
(25)

(x x1 ) sin 1 (y y 1 ) cos 1 = 0
coordonatele primului col al ochiului se calculeaz cu:
(x sin 0 y 0 cos 0 ) cos 1 (x1 sin 1 y1 cos 1 ) cos 0
(26)
x01 = 0
sin ( 0 1 )
(x sin 0 y 0 cos 0 ) sin 1 (x1 sin 1 y 1 cos 1 ) sin 0
(27)
y01 = 0
sin ( 0 1 )
i expresii similare pot fi gsite pentru celelalte trei coluri ale poligonului aproximant,
adic pentru (x12 ,y12 ) , (x 23 ,y 23 ) i (x 30 ,y 30 ) .

256

18. Msurarea automat a sitelor textile.

poligonul
approximant
initial

{
{

poligonul
approximant
final

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:
E ( t ) E ( t +1 )
=
< 0
(28)
E(t )
unde E ( t ) = E0( t ) + E1( t ) + E 2( t ) + E 3( t ) este eroarea global pentru iteraia "t".
18.6. Msurtori asupra sitei.
Dac orientrile corespunztoare firelor de urzeal i respectiv bttur se calculeaz cu:
1
1
02 =
( 0(ij) + 2(ij) )
13 =
( 1(ij) + 3(ij) )
(29)

2M i j
2M i j
atunci unghiul mediu ntre firele de urzeal i cele de bttur este:
1
= (ij)
(30)
M i j
unde
1
(ij) = ( 0(ij) + 2(ij) 1(ij) 3(ij) )
(31)
2
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).

(12) (01)

(01)

(12)

(12) (01)

(i+1,j)

(i-1,j)
(i,j)
(30)
(01)

(23)

(30)

(12) (01)

(23)

(30)

(12) (01)

(23)
(12)

(i+1,j+1)
(i,j+1)
(i-1,j+1)
(30)

(23)

(30)

(23)

(30)

(23)

Fig. 11. Direciile de cutare pentru etichetare.

Fig. 12. Ochiuri etichetate.

257

18. Msurarea automat a sitelor textile.

Aceast etichetare (fig. 12) este utilizat mai departe pentru a stabili perechile valide de
ochiuri vecine n lungul ambelor direcii.

C'
(i+1,j)

B'

B
A'
(i,j)

A
=90 0

D'

(i,j+1)

Fig. 13. Principalele msurtori asupra eantionului de sit.


Valorile distanelor marcate n figura (13) se calculeaz folosind formulele urmtoare:
1
(ij)
(ij) 2
(ij)
(ij) 2
(ij)
(ij) 2
(ij)
(ij) 2
A(ij) =
(x01
x12
) + (y01
y12
) + (x 23
x30
) + (y 23
y 30
)
(32)
2
1
(ij)
(ij) 2
(ij)
(ij) 2
(ij)
(ij) 2
(ij)
(ij) 2
B(ij) =
(x01
x 30
) + (y 01
y 30
) + (x12
x 23
) + (y 12
y 23
)
(33)
2
1
(ij)
(i +1 ,j) 2
(ij)
(i +1 ,j) 2
(ij)
(i +1 ,j) 2
(ij)
(i +1 ,j) 2
C(ij) =
(x12
x01
) + (y 12
y 01
) + (x 23
x 30
) + (y 23
y 30
)
(34)
2
1
(ij)
(i,j +1 ) 2
(ij)
(i,j +1 ) 2
(ij)
(i,j +1 ) 2
(ij)
(i,j +1 ) 2
D(ij) =
(x 30
x01
) + (y 30
y 01
) + (x 23
x12
) + (y 23
y 12
)
(35)
2
= A(ij) sin (ij)
= B(ij) sin (ij)
= C(ij) sin (ij)
= D(ij) sin (ij)
A(i,j)
B(i,j)
C(i,j)
D(i,j)
(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:
1
1
1
1
A=
B=
C=
A(i,j)
B( i , j )
C( i , j ) D =

D(i, j )
M i j
M i j
MH i j
MV i j
1
1
1
1
A =
B =
C=
A(i , j )
B(i , j )
C(i , j ) D =

D(i, j ) (37)
M i j
M i j
MH i j
MV i j
unde
- M este numrul total de ochiuri;
- M H este numrul de ochiuri vecine n lungul direciei 13 .
- M V este numrul de ochiuri vecine n lungul direciei 02 .
O bun aproximare a ultimelor patru valori din (37) este dat de:

258

18. Msurarea automat a sitelor textile.

A = A sin ;

B = B( ij ) sin ;

C = C sin ;

D = D sin

(38)

O descriere statistic complet a acestor msurtori implic cel puin calculul dispersiilor
lor:

A2 =

1
M

(A

(ij)

A ) 2 , 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 0 = 0.01 , 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:
K 1 = 4 , Amin = 10 i K 2 = 0.2 .
(40)

259

18. Msurarea automat a sitelor textile.

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.

260

19. Aplicaie de recunoatere a simbolurilor muzicale


tiprite.

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 ommain. 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 :

261

19. Aplicaie de recunoatere a simbolurilor muzicale tiprite.

intrare
obiecte scalate
extragere
trsturi

selecie
trsturi

clasificator
nivel 1

decizie

rejectie nivel 1

extragere
trsturi

selecie
trsturi

clasificator
nivel 2

decizie

rejecie nivel 2

extragere
trsturi

selecie
trsturi

clasificator
nivel 3
(neuronal)

decizie

decizie simboluri nerecunoscute

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
1/4

pauza
1/16

pauza rejecie
1/8

Fig. 3. Clasele de simboluri ce trebuiesc recunoscute.

262

19. Aplicaie de recunoatere a simbolurilor muzicale


tiprite.

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:

263

19. Aplicaie de recunoatere a simbolurilor muzicale tiprite.

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):

reducere
trsturi
(date)

YR

-1

XR

Fig. 5. Construcia selectorului optimal de trsturi.


unde:

X = ( x1 , x 2 ,..., x N ) - vectorul de intrare;


Y = ( y1 , y 2 ,..., y N ) - vectorul transformat;
YR = ( y1 , y 2 ,..., y k , ck +1 , ck + 2 ,..., c N ) - vectorul de trsturi redus; el se obine din Y
nlocuind cu constante ultimele (N-K) valori;
XR = ( xr1 , xr2 ,..., xrN ) - estimaia vectorului de intrare.
T = u1T , u2T ,..., uNT

, cu uTj = ( u j 0 , u j 1 ,..., u jN ) este matricea unei transformri

ortogonale unitare care se va determina n condiiile minimizrii erorii medii


ptratice date de:
e = E ( X X )T ( X X )
Notnd:
K XX = E{( X X )( X X )T } , matricea de covarian a intrrii, unde X = E{ X } ,
se obine transformata Karhunen-Loeve discret (sau Hotelling) cu proprietile:
1. ( K XX j I N ) u j = 0 - liniile matricii transformrii sunt valorile proprii ale

matricii de covarian a domeniului de intrare;


2. KYY = diag( 1 , 2 ,..., N ) - transformarea furnizeaz la ieire coeficieni
necorelai;
3. =

j= k +1

- 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

264

19. Aplicaie de recunoatere a simbolurilor muzicale


tiprite.

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:
vk
uj
1 N 1 N 1
)
) cos (
f(j,k) cos (
F(u,v) =

N
N
2 N j =0 i =0
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

14

15

27

28

13

16

26

29

42

12

17

25

30

41

43

11

18

24

31

40

44

53

10

19

23

32

39

45

52

54

20

22

33

38

46

51

55

60

21

34

37

47

50

56

59

61

35

36

48

49

57

58

62

63

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.

265

19. Aplicaie de recunoatere a simbolurilor muzicale tiprite.

Pentru antrenare s-a folosit evident algoritmul "backpropagation" cu factorul de ctig


= 0.3 , factorul de inerie = 0.7 . 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:
32 32

S ( 1 ) KL = MS [I,J] MS (L) [I,J]


(K)

(1)

I =1 J =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:
32 32

S ( 2 ) = min ( (MS ( K ) [I,J] ME ( L ) [I + M,J + N]) 2 )


M ,N

(2)

I =1 J =1

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.

266

19. Aplicaie de recunoatere a simbolurilor muzicale


tiprite.

(3)

32 32

KL

= ( DCT (K) [I,J] DCT (L) [I,J]) 2

(3)

I =1 J =1

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.
66

S ( 4 ) KL = (Z (K) [I] Z (L)) [I]) 2

(4)

I =1

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 Z [K] [I] , 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:


Erori/Prag
Diez
Becar
Bemol
Pauz
Pauz 1/16
Pauz 1/8
Rejecie
Total
Antr(%)
Test(%)

0.1
0/1
0/0
0/1
2/6
0/0
1/4
0/2
3/ 14
0.36%
1.36%

0.2
0/0
0/0
0/1
1/4
0/0
1/3
0/1
2/9
0.24%
0.87%

0.3
0/0
0/0
0/0
0/3
0/0
0/2
0/1
0/6
0%
0.58%

Dup adaptare set antrenament (3iteraii):


0.4
0/0
0/0
0/0
0/1
0/0
0/1
0/0
0/2
0%
0.19%

Erori/Prag
Diez
Becar
Bemol
Pauz
Pauz 1/16
Pauz 1/8
Rejecie
Total
Antr(%)
Test(%)

0.1
0/0
0/0
0/0
0/3
0/0
0/1
0/1
0/5
0%
0.47%

0.2
0/0
0/0
0/0
0/2
0/0
0/1
0/0
0/3
0%
0.28%

0.3
0/0
0/0
0/0
0/1
0/0
0/1
0/0
0/2
0%
0.19%

0.4
0/0
0/0
0/0
0/0
0/0
0/0
0/0
0/0
0%
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

267

19. Aplicaie de recunoatere a simbolurilor muzicale tiprite.

ideea supradimensionrii iniiale a reelei neurale, tocmai n scopul de a putea nva noi
simboluri pe durata exploatrii, folosind algoritmul de adaptare descris.

268

20. Recunoaterea automat a textelor tiprite.

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:

269

20. Recunoaterea automat a textelor tiprite.

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, ntrun format standard, coninnd o imagine binar (la 1 bit/pixel) sau cu mai multe nuane (de gri sau
culori).

270

20. Recunoaterea automat a textelor tiprite.

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:
Ltotal = Lantet + x y N bit / pixel / 8
(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 X S i YS ale acestui prim pixel aparinnd unui obiect din imagine.
El devine "pixelul curent", adic P( X C ,YC ) .
(c). Plecnd de la coordonatele ( X S ,YS 1 ) 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
P( X C , YC ) = P( X S , YS ) = 1(alb) . n caz contrar, pixelul nou gsit devine pixel curent, cu
coordonatele ( X C ,YC ) . 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 P( X S ,YS ) .
(d). Pacurgerea conturului unui obiect este nsoit de determinarea limitelor
dreptunghiului de ncadrare, adic vor fi determinate valorile X MIN , X MAX ,YMIN ,YMAX , astfel:
X MIN = X MAX = X S ;YMIN = YMAX = X S ; (iniializare)
apoi, pentru fiecare pas al algoritmului (pixel curent) avem:
IF ( X C < X MIN ) THEN X MIN = X C ;
(2)
IF ( X C > X MAX ) THEN X MAX = X C ;
(3)
IF ( YC < YMIN ) THEN YMIN = YC ;
(4)

271

20. Recunoaterea automat a textelor tiprite.

IF ( YC < X MAX ) THEN YMIN = YC ;


(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
A = 0 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
Cod x
y
A
0
+1
0
+y
1
+1
+1
+y+0.5
2
0
+1
0
3
-1
+1
-y+0.5
4
-1
0
-y
5
-1
-1
-y-0.5
6
0
-1
0
7
+1
-1
+y-0.5

Sens trigonometric parcurgere contur


Cod x
y
A
0
+1
0
-y
1
+1
+1
-y-0.5
2
0
+1
0
3
-1
+1
+y+0.5
4
-1
0
+y
5
-1
-1
+y-0.5
6
0
-1
0
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:
( X MAX -X MIN ) < Th1 sau (YMAX YMIN ) < Th2 sau
( X MAX -X MIN ) > Th4 sau (YMAX YMIN ) > Th5 sau

X MAX

YMAX

[ 1 P(i,j)] < Th

i = X MIN j =YMIN
X MAX

YMAX

[ 1 P(i,j)] < Th

i = X MIN j =YMIN

(6)
(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.

272

20. Recunoaterea automat a textelor tiprite.

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 4 : text;
- Tip 1 : separator vertical.
- Tip 5 : tabel, diagram sau grafic;
- Tip 2 : text sau zgomot;
- Tip 6 : imagine "halftone";
- Tip 3 : separator orizontal;
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 separator liniar

test "halftone"

test "halftone"

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:
max[ YMIN ( i ),YMIN ( j )] < min[ YMAX ( i ),YMAX ( j )]
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 X MIN ;

273

20. Recunoaterea automat a textelor tiprite.

b) pentru primul obiect din lista ordonat se selecteaz vecinul lui din dreapta, adic acel
obiect "i" pentru care:
max[ YMIN ( 1 ),YMIN ( i )] < min[ YMAX ( 1 ),YMAX ( i )] i
X MIN ( i ) = min [ X MIN ( K )]
k = 2 ,...

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:
max[ X MIN ( i ), X MIN ( j )] < min[ X MAX ( i ), X MAX ( j )]
aparin aceluiai caracter, deci ele vor fi concatenate prin plasarea lor ntr-o fereastr cu
coordonatele colurilor:
(min[ X MIN ( i ), X MIN ( j )], min[ YMIN ( i ),YMIN ( j )]) i
(max[ X MAX ( i ), X MAX ( j )], max[ YMAX ( i ),YMAX ( j )])
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 X MIN ;
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:
[YMIN -k (YMAX -YMIN ),YMIN + k ( YMAX -YMIN ) ]
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 ( YMIN + YMAX ) / 2 ,
cutarea urmtoarelor obiecte facndu-se n stnga i n dreapta obiectului gsit, de-a lungul liniei
cu ecuaia:
y = ( YMIN + YMAX ) / 2 = const .
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.

274

20. Recunoaterea automat a textelor tiprite.

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";

275

20. Recunoaterea automat a textelor tiprite.


","(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).

276

20. Recunoaterea automat a textelor tiprite.

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.

277

20. Recunoaterea automat a textelor tiprite.

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.

278

20. Recunoaterea automat a textelor tiprite.

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.

279

20. Recunoaterea automat a textelor tiprite.

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:

280

20. Recunoaterea automat a textelor tiprite.

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:
vk
uj
1 N 1 N 1
)
) cos (
f(j,k) cos (
F(u,v) =

N
N
2 N j =0 i =0
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];

14

15

27

28

13

16

26

29

42

12

17

25

30

41

43

11

18

24

31

40

44

53

10

19

23

32

39

45

52

54

20

22

33

38

46

51

55

60

21

34

37

47

50

56

59

61

35

36

48

49

57

58

62

63

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.

281

20. Recunoaterea automat a textelor tiprite.

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:

282

20. Recunoaterea automat a textelor tiprite.

intrare
selecie
trsturi

clasificator
neural grupa 1
clasificator
neural grupa 2
clasificator
neural grupa 3

Logic de decizie

extragere
trsturi

decizie

clasificator
neural grupa G
tratare
caractere
atinse

rejecie forme nerecunoscute

Fig. 10. Sistem de recunoatere caractere, varianta 1.

clasificator
neural grupa 1
clasificator
neural grupa 2
clasificator
neural grupa 3
comutare

Comutator

grupare
forme

Comutator

intrare
extragere
i selecie
trsturi

decizie

comutare
clasificator
neural grupa G
tratare
forme
nerecunoscute
rejecie forme nerecunoscute
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.

283

20. Recunoaterea automat a textelor tiprite.

Schema simplificat a unui sistem de recunoatere este:

intrare
extrage
trsturi

selecie
trsturi

clasificator
reea
neural

decizie

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 Ci aparine clasei "K" dac:
Yk>Prag i Yj<(1-Prag), oricare j k , 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 Ci aparine clasei "K" dac:

{ [K div 2 P ] = 0 i Yp<(1-Prag) } sau { [K div 2 P ] = 0 i Yp>Prag },


unde p este numrul de ordine al ieirii, cu p = [ 0 .5 + [ log 2 Ng]] , 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 K + 1 .
Pentru antrenare s-a folosit evident algoritmul "backpropagation" cu factorul de ctig
= 0.3 , factorul de inerie = 0.7 .
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 bolditalics.

284

20. Recunoaterea automat a textelor tiprite.

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.

285

20. Recunoaterea automat a textelor tiprite.

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:
IF Min (DK( C, I) ) > Min ( DL( C, I) ) THEN elimin simbol " L"
1 I N

1 I N

ELSE elimin simbol " K"


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.

286

20. Recunoaterea automat a textelor tiprite.

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 sa 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.

287

20. Recunoaterea automat a textelor tiprite.

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.

288

20. Recunoaterea automat a textelor tiprite.

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.

289

20. Recunoaterea automat a textelor tiprite.

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.

task-ul
"recunoatere"
scanner

simboluri
nerecunoscute

"adaptarea setului
de antrenament"

PC 486

PC 386

ponderi actualizate ale ANN

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

290

Text

20. Recunoaterea automat a textelor tiprite.

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

Calitate segmentare
Calitate slab
Calitate medie
Vitez de rspuns
Foarte rapid (3sec)
Foarte lent (40sec)
Precizie segmentare
Precizie foarte bun
Precizie slab
Rnduri nclinate
ndreptare rnduri(3sec) ndreptare rnduri(3sec)

Analiz morfologic
Calitate foarte bun
Vitez medie (10sec)
Precizie foarte bun
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 printro 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.

291

20. Recunoaterea automat a textelor tiprite.

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.

292

20. Recunoaterea automat a textelor tiprite.

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 5 0 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.

293

RETELE NEURONALE
Curs 1: Introducere n calculul inteligent

Calculul inteligent si rezolvarea problemelor

Din punctul de vedere al rezolvarii lor automate, problemele pot fi clasificate n doua categorii:
Probleme bine-puse: caracterizate prin faptul ca li se poate asocia un model formal (de
exemplu, un model matematic) pe baza caruia se poate dezvolta o metoda de rezolvare cu
caracter algoritmic. In aceasta categorie intra probleme clasice n informatica cum ar fi
problema caut
arii ntr-o baza de date cu informatii despre persoane folosind drept cheie de
cautare codul numeric personal.
Probleme r
au-puse: caracterizate prin faptul ca nu pot fi descrise complet printr-un model
formal, ci cel mult se cunosc exemple de rezolvare a problemei. O problema similara celei de
mai sus dar care poate fi considerata rau pusa este aceea a cautarii n baza de date folosind
drept indiciu o poza a persoanei cautate.
Rezolvarea unei probleme nseamn
a stabilirea unei asocieri ntre datele de intrare (valori initiale,
ipoteze etc.) si raspunsul corect. In cazul problemelor bine-puse aceasta asociere este o relatie
functionala explicita construita pe baza modelului asociat problemei.
In cazul problemelor rau-puse, ns
a, o astfel de relatie explicita nu poate fi pusa n evident
a,
rolul sistemului care rezolva problema fiind de a dezvolta o relatie de asociere ntrebare-raspuns
pe baza unor exemple. Procesul prin care sistemul si formeaza modelul propriu al problemei si pe
baza acestuia relatia de asociere se numeste adaptare sau chiar nv
atare.
Pe de alta parte, din punctul de vedere al complexitatii rezolvarii si al relevantei raspunsului
problemele pot fi clasificate n:
Probleme pentru care este esentiala obtinerea unui raspuns exact indiferent de resursele implicate. Acestea necesita utilizarea unor tehnici exacte.
Probleme pentru care este preferabil sa se obtina un raspuns aproximativ folosind resurse
rezonabile decat un raspuns exact dar folosind resurse foarte costisitoare.
Calculul inteligent este un domeniu al Inteligentei Artificiale care grupeaza tehnici de rezolvare
a problemelor rau-puse sau a celor pentru care modelele formale conduc la algoritmi foarte
costisitori.
Principalele directii ale calculului inteligent sunt:
Calcul neuronal. Este folosit n principal n rezolvarea problemelor de asociere (clasificare,
aproximare, predictie etc), bazandu-se pe extragerea, prin nvatare, a unui model pornind de
la exemple. Sursa de inspiratie o reprezinta structura si functionarea creierului.
1

Calcul evolutiv. Este folosit n principal n rezolvarea problemelor bazate pe cautarea solutiei
ntr-un spatiu mare de solutii potentiale (n particular n rezolvarea problemelor de optimizare). Sursa de inspiratie o reprezinta principiile evolutionismului de tip darwinist.
Calcul fuzzy. Este folosit atunci cand datele problemei (si relatiile dintre acestea) nu pot fi
descrise exact ci exista un grad de incertitudine (fuzziness). Ideea de baza este de a nlocui
valorile exacte (crisp) cu valori fuzzy descrise prin functii de apartenenta.
In fiecare dintre cele trei directii majoritatea prelucrarilor care se efectueaza au caracter numeric,
fiind necesara o codificare numeric
a adecvata a problemei. Aceasta motiveaza partial prezenta
cuvantului calcul n denumirea domeniului. Pe de alta parte n fiecare dintre directiile de mai
sus se ncearc
a simularea unor comportamente inteligente ceea ce motiveaza prezenta termenului
inteligent.
Principiul fundamental al calculului neuronal si al celui evolutiv este de a dezvolta sisteme
de calcul inteligent pornind de la implementarea unor reguli simple, comportamentul complex al
acestor sisteme derivand din aplicarea n paralel si n manier
a interactiv
a a acestor reguli. Aceasta
abordare de tip bottom-up este n contrast cu abordarea de tip top-down specifica altor abordari
din Inteligenta Artificiala.
Calculul neuronal si cel evolutiv fac parte din sfera mai larga a calculului natural al carui
principiu este de a prelua idei de rezolvare a problemelor din sistemele naturale (fizice, chimice, biologice, ecologice). Obiectivul principal al calculului natural este de a dezvolta metode de rezolvare
a problemelor rau-puse si a celor nerezolvabile prin metodele traditionale (de exemplu, rezolvarea
problemelor NP-complete n timp polinomial).
Pe langa componentele amintite deja, calculul natural mai include calculul molecular (DNA
Computing), calculul cu membrane (Membrane Computing) si calculul cuantic (Quantum Computing). Daca primele doua directii sunt deja traditionale, ultimele trei sunt nca in primele faze de
dezvoltare. O scurta trecere n revista a sursei de inspiratie coresponzatoare acestor domenii este
prezentata n tabelul urmator.
Sursa de
inspiratie
Creier
ADN
ADN
Celula
Sistem fizic

Model de calcul
(soft)
Calcul neuronal
Calcul evolutiv
Calcul molecular
Calcul membranar
Calcul cuantic

Implementare
(hard)
Electronica
Electronica
Biologica
Electronica, biologica
Nanoelectronica

Specificul calculului neuronal

Din punct de vedere functional o retea neuronala este un sistem ce primeste date de intrare (corespunzatoare datelor initiale ale unei probleme) si produce date de iesire (ce pot fi interpretate ca
raspunsuri ale problemei analizate). O caracteristica esentiala a retelelor neuronale este capacitatea
de a se adapta la mediul informational corespunzator unei probleme concrete printr-un proces de
nvatare. In felul acesta reteaua extrage modelul problemei pornind de la exemple.
Din punct de vedere structural o retea neuronala este un ansamblu de unitati interconectate
(neuroni) fiecare fiind caracterizata de o functionare simpla. Functionarea unitatilor este influentat
a
de o serie de parametri adaptabili. Astfel o retea neuronala este un sistem extrem de flexibil.

Structura unitatilor functionale, prezenta conexiunilor si a parametrilor adaptivi precum si


modul de functionare sunt inspirate de creierul uman. Fiecare unitate functionala primeste cateva
semnale de intrare pe care le prelucreaza si produce un semnal de iesire. Interactiunea multor unitati
cu functionare simpla conduce la un sistem care poate sa rezolve probleme complexe. Functionarea
sistemului este controlat
a de un set numeros de parametri ajustabili care permit acestuia sa se
adapteze cat mai fidel mediului informational n care este amplasat (specific problemei de rezolvat).
Una dintre cele mai importante caracteristici ale unui sistem neuronal este caracterul sau adaptiv,
faptul ca poate sa-si stabileasca parametrii de functionare printr-un proces de nvatare bazat pe
informatiile primite. Astfel de sisteme sunt adecvate, astfel, pentru problemele ce sunt dificil sau
chiar imposibil de formalizat pentru ele existand doar exemple de rezolvare.

2.1

Motivatia biologic
a

In ncercarea de a proiecta sisteme inteligente cel mai la ndemana model este chiar creierul uman.
Acesta este capabil sa prelucreze cantitati mari de date la un moment dat si surclaseaza n mod
cert calculatoarele (n special cele seriale) n probleme complexe de tipul ntelegerii scenelor (cum
ar fi recunoasterea unei imagini familiare ntr-un mediu necunoscut).
Din punct de vedere biologic creierul este constituit dintr-un numar mare de celule (neuronii,
cca 1010 1012 ) care efectueaza sarcini simple si la o viteza nu prea mare (timpul de raspuns la
un stimul este de aproximativ 103 s) dar care sunt puternic interconectate (exista cca 1014 1015
interconexiuni) si lucreaza n paralel. Avand n vedere faptul ca, componentele electronice care
stau la baza calculatoarelor actuale au timpi de raspuns mult mai mici (109 s) si totusi sunt
surclasate de catre creier n rezolvarea unor probleme complexe (vedere, decizii pe baza unor date
incomplete etc.), rezulta ca puterea computationala a creierului rezida n faptul ca bilioane de
neuroni opereaza simultan. Evident, ar fi de dorit realizarea de sisteme care sa lucreze cu viteza
componentelor electronice si sa fie caracterizate de conectivitatea creierului.
Dintre caracteristicile creierului care sunt de dorit si n sistemele artificiale pot fi enumerate: robustete si tolerant
a la erori (mor zilnic neuroni, fara ca aceasta sa afecteze semnificativ
performantele creierului), flexibilitate (fiintele sunt capabile sa se adapteze la un nou mediu prin
nvatare), capacitatea de a prelucra informatie incompleta, nedeterminista sau chiar inconsistent
a.
In ceea ce priveste robustetea si toleranta la erori ea este asigurata de faptul ca informatia este
reprezentat
a n mod distribuit si nu localizat. Astfel, din punct de vedere cibernetic creierul este
un sistem natural de prelucrare paralel-distribuit
a a informatiei.
Retelele neuronale pot fi vazute atat ca modele ale creierului cat si ca sisteme de prelucrare a
informatiei si rezolvare a problemelor. Acestea sunt doua directii distincte n domeniul retelelor
neuronale fiind diferite atat din punct de vedere al tehnicilor utilizate cat si din punct de vedere al
aplicatiilor.
In ceea ce urmeaza ne vom referi doar la retele neuronale artificiale destinate rezolvarii unor
probleme computationale.

2.2

Structura unei retele neuronale artificiale

O retea neuronala artificiala este un ansamblu de unitati functionale amplasate n nodurile unui
graf orientat. De-a lungul arcelor grafului circula semnale care permit unitatilor functionale sa
comunice ntre ele . Elementele definitorii ale unei retele neuronale sunt:
Arhitectura: specifica modul n care sunt amplasate si interconectate unitatile functionale.
Arhitectura determina si fluxul informational n cadrul retelei.
3

Functionarea: specifica modul n care fiecare unitate n parte si reteaua n ansamblul ei transforma semnalele de intrare n semnale de iesire. Functionarea este influentata de arhitectura,
n special de modul de interconectare a unitatilor.
Adaptarea (nv
atarea): specifica modul de stabilire a parametrilor ajustabili astfel nc
at

reteaua sa poate rezolva anumite probleme. In functie de natura informatiei de care se


dispune, nv
atarea poate fi supervizat
a sau nesupervizat
a.
Invatarea consta n modificarea functionalitatii retelei prin modificarea parametrilor si/sau a
structurii acesteia. Procesul de nv
atare bazat pe adaptarea parametrilor consta n existenta unor
reguli de modificare a parametrilor si a unui algoritm (de regula iterativ) de aplicare a acestor reguli.
Structura generala a unui algoritm de nvatare bazat pe modificarea parametrilor este:
// initializarea (aleatoare) a parametrilor retelei
init W(0)
// initializarea indicatorului de iteratie
t=0
// prelucrare repetitiva
repeat
W(t+1)=adjust(W(t),X(t)[,d(t)])
t=t+1
until <criteriu de stop>
unde W (t) reprezint
a valorile parametrilor la momentul t, X(t) reprezinta semnalul de intrare, iar
d(t) semnalul de nv
atare corespunzator (poate fi chiar raspunsul corespunzator intrarii X(t) sau
doar un indicator de corectitudine/eroare a raspunsului dat de retea). In cazul nvatarii nesupervizate d(t) poate lipsi din regula de nvatare.

2.3

Ce pot si ce nu pot face retelele neuronale

Ce pot face retelele neuronale ? In principiu, pot reprezenta orice functie calculabila. Ceea ce
este nsa mai important este ca pot nvata orice astfel de functie pornind de la exemple. Nu sunt
nsa eficiente pentru orice problema, ele fiind utile n rezolvarea problemelor pentru care se dispune
de un num
ar mare de exemple si pentru care nu pot fi gasite usor si rapid reguli de formalizare.
Abilitatea unei retele neuronale de a rezolva o anumita problema este influentata si de modul n
care sunt pregatite datele de intrare. Fara o preprocesare atenta a datelor de intrare demersul
rezolvarii problemei cu retele neuronale poate fi sortit esecului.

2.4

Clase de probleme ce pot fi rezolvate cu retele neuronale

In continuare sunt prezentate cateva dintre categoriile de probleme pentru care retelele neuronale
au fost aplicate cu succes.
Clasificare si recunoastere.
Date de intrare. Descriere sintetic
a a unui obiect (de exemplu descrierea grafica a unei litere sau
ansamblul caracteristicilor acesteia). In majoritatea situatiilor descrierea este un vector de valori
numerice obtinute printr-o prelucrare prealabila (preprocesare) a informatiilor brute.
Date de iesire. Indicator al clasei careia i apartine obiectul (de exemplu numarul de ordine al
literei n cadrul alfabetului).
Abilitatea de clasificare a retelei este rezultatul unui proces de nvatare pornind de la exemple de
clasificare corecta.
4

Pe lang
a exemplul de mai sus, de recunoastere a caracterelor, alte probleme concrete de clasificare sunt: recunoasterea vorbirii, clasificarea semnalelor (de exemplu separarea electrocardiogramelor n normale si anormale), clasificarea celulelor n normale si anormale, recunoasterea unor
fete ntr-o imagine, clasificarea texturilor etc.
Gruparea si categorizarea datelor. Este similara problemei de clasificare cu diferenta ca
antrenarea retelei se realizeaza pornind doar de la date de intrare, fara a specifica clasele carora le
apartin. Clasele sunt construite pornind doar de la similaritatile existente n datele de intrare pe
care reteaua este capabila sa le identifice. In felul acesta reteaua neuronala descopera criteriul de
grupare. Probleme concrete din aceasta categorie intervin n analiza datelor (n special n domeniul
cunoscut sub denumirea de data mining) si n compresia datelor.
Aproximare si estimare. Se refera la la extragerea dependentei functionale dintre doua marimi
pornind de la un set de valori ale celor doua marimi. De regula valorile din set sunt alterate de
zgomot (afectate de erori de masurare sau de alta natura). Folosind acest set reteaua este antrenata pentru a determina dependent
a dintre cele doua marimi. O data reteaua antrenata, pentru
orice valoare a argumentului ea furnizeaza aproximarea valorii asociate. O problema concreta din
aceasta clasa este reprezentat
a de determinarea dependentei functionale ntre marimi masurate
experimental. In aceeasi clasa se ncadreaza determinarea parametrilor unor modele din inginerie
sau orice alta problema de asociere. In acest context retelele neuronale pot fi vazute ca modele de
regresie neliniara caracterizate printr-un numar mare de parametri.
Predictie.
Date de intrare. O succesiune de valori (numita serie temporal
a) pentru care nu este cunoscuta o
relatie formala care sa le genereze.
Dat
a de iesire. Aproximarea urmatoarei valori din serie.
Antrenarea retelei se realizeaza pornind de la valorile cunoscute din serie. Probleme concrete din
aceasta clasa sunt predictia evolutiei stocurilor, predictia n meteorologie, predictie n evolutia
vanzarilor etc.
Optimizare. Diferite probleme din stiinta, inginerie si economie pot fi formulate ca probleme
de optimizare constand n necesitatea determinarii unei valori care satisface anumite restrictii si
optimizeaza o functie obiectiv. Retelele neuronale sunt adecvate pentru rezolvarea problemelor de
optimizare dificile pentru care este suficient sa se obtina solutii suboptimale. Probleme concrete din
aceasta categorie sunt cele ce intervin n proiectarea circuitelor electronice, n alocarea resurselor,
n rezolvarea problemelor de rutare n retele etc.
Stocarea si reg
asirea informatiei dup
a continut. Retelele neuronale permit stocarea informatiei
astfel ncat aceasta sa fie ulterior regasita pornind de la indicii legate de continut (indiciile pot fi
portiuni din informatia stocata). Astfel de sisteme de stocare sunt mai tolerante la erori n raport
cu memoriile bazate pe adrese. Aplicatii concrete sunt n proiectarea bazelor de date multi-media.
Modelare si control adaptiv. Controlul unui sistem dinamic se refera la a determina un semnal
de control, u(t), care asigura producerea unui semnal de iesire dorit y(t). Reteaua neuronala este
antrenata pornind de la un model de referinta.
Prelucrarea si analiza semnalelor.
Date de intrare. Un semnal, care poate fi o imagine sau un semnal sonor.
Date de iesire. Semnalul transformat (de exemplu prin eliminarea zgomotului) sau o informatie
extrasa din cadrul lui.

2.5

Descriere a unor aplicatii clasice

In continuare sunt enumerate cateva dintre problmele pentru care retelele neuronale au fost aplicate

cu succes nc
a din primii ani de dezvoltare.
2.5.1

Eliminarea adaptiv
a a zgomotului - adaptive noise canceling

La transmiterea unui semnal (sonor sau de alta natura) printr-un canal de comunicatie (de exemplu
o linie telefonica) intervine un zgomot care afecteaza calitatea transferului. Pentru oameni a separa
un sunet dintr-un anumit context sonor (de exemplu a ntelege ceea ce spune o persoana ntr-o
ncapere n care se aude si muzic
a) nu este o problema dificila. Aceasta este o abilitate de a elimina
zgomotul pe care o utilizam far
a sa ne gandim explicit la ceea ce facem. In mod analog daca
n timpul unei convorbiri telefonice intervine un zgomot pe linie l putem ignora desi zgomotul
respectiv nu are o anumit
a caracterizare. Tocmai datorita acestui fapt este foarte dificil daca nu
imposibil sa separam prin metodele clasice zgomotul de sunetul util. Oamenii sunt capabili sa ignore
acest zgomot deoarece au nv
atat aceasta abilitate din experienta. Acesta este motivul pentru care
aceasta problema a fost rezolvat
a utilizand retele neuronale nca din primii ani ai dezvoltarii lor
(1950-1960, reteaua ADALINE proiectata de B. Widrow).
2.5.2

Evaluarea riscului creditului ipotecar

Unul dintre cele mai importante aspecte pe care o banca trebuie sa le ia n considerare naintea
aprobarii unui credit unei persoane este evaluarea riscului ca persoana sa nu fie capabila sa returneze
mprumutul. O retea antrenat
a pe baza a catorva mii de informatii privind cererile acceptate sau
respinse a obtinut o rata de succes de 98% (n timp ce rata de succes a functionarilor este n jur de
85%).
2.5.3

Cititor de coduri postale

Serviciul postal din SUA manevreaza volume mari de corespondenta. Una dintre sarcinile angajatilor
este clasificarea corespondentei pe baza codului postal. Un sistem care asigura clasificarea pe baza
codului postal rezolva urmatoarele subprobleme:
identificarea zonei n care este scris codul;
mpartirea acestei zone n subzone mai mici care se suprapun pentru izolarea cifrelor.
recunoasterea cifrelor;
A doua etapa este repetata n paralel cu recunoasterea cifrelor pana cand sunt recunoscute toate
cifrele. Retelele neuronale sunt folosite de regula n etapa de recunoastere propriu-zisa. Rata
de succes a acestei aplicatii este de 95%. Ea a reprezentat punctul de pornire pentru aplicatiile
destinate recunoasterii scrisului de mana (desi rata de succes a acestor aplicatii este mult mai mica).
2.5.4

Recunoasterea vorbirii

Pentru oameni, recunoasterea vorbirii pare ceva intuitiv dar a realiza o aplicatie care sa faca acest
lucru nu mai este deloc un lucru simplu. La nceputul anilor 1980, Intel a proiectat o aplicatie bazata
pe o retea neuronala artificiala care putea sa identifice vocea unei persoane pe baza unui vocabular
limitat. Acest sistem, cunoscut sub numele de sistem de recunoastere automata a vorbirii, poate
identifica vocea unei persoane ce foloseste un vocabular limitat pe baza caruia a fost antrenat
a
reteaua de catre acea persoana. Aceasta aplicatie este utilizata n liniile de asamblare unde un
inspector poate comunica cu calculatorul printr-o interfata vocala pentru a controla procesul de
asamblare.
6

2.5.5

Clasificarea semnalelor produse de sonar

Sonar-ul este un echipament care permite detectarea obstacolelor submarine. Utilizarea echipamentului necesita un operator experimentat care sa recunoasca adevaratele obstacole n raport cu
cele false. A fost realizata o aplicatie bazata pe o retea neuronala antrenata pe baza unor date ale
sonarului nregistrate din cat mai multe directii posibile. Sistemul a reusit sa identifice 98% dintre
obstacolele din setul de antrenare si 90% din datele noi.

2.6

Calculul neuronal n comparatie cu calculul clasic

Intre abordarea problemelor cu ajutorul retelelor neuronale artificiale si cea clasica bazata pe implementarea unui algoritm pornind de la un model formal exista o serie de diferente. Cateva sunt
marcate n continuare.

1
2

Prelucrare neuronal
a
Foarte multe procesoare fiecare
execut
and un program simplu.
Robustete la erori.

+/
+
+

Prelucrare algoritmic
a
Unul sau cateva procesoare
executand programe complicate.
Un singur bit eronat poate compromite un program.
Este necesara buna cunoastere
a problemei pentru a o descompune n unitati logice.
Sunt entitati nghetate destinate
rezolvarii unei clase bine
precizate de probleme.

+/

Pot rezolva probleme a caror


+

structur
a logica nu este
pe deplin lamurita.
4 Sunt sisteme adaptive (se pot
+

adapta la mediul informational, pot nv


ata din experient
a).
5 Nu ofera garantia corectitu
Un algoritm corect asigura
+
dinii raspunsului pe care-l dau.
corectitudinea raspunsului.
6 Nu furnizeaza explicatia

Exista metode de testare a al+


raspunsului pe care-l dau si
goritmilor si programelor.
sunt dificil de testat.
7 Produc solutii aproximative.

Produc solutii exacte.


+
Pe de alta parte pot fi puse n evidenta, n aceeasi maniera diferentele care exista ntre retelele
neuronale si sistemele expert:

Retele neuronale
Imit
a structura si functionarea
creierului.
Prelucrare paralela a informatiei.
Cunostintele sunt reprezentate
implicit.
Implementeaz
a rationamente de tip
inductiv
Prelucrare preponderent numerica
a informatiei.
Reguli deduse prin nv
atare.

Far
a capacitate explicativa

1
2
3
4
1

Sisteme expert
Imita rationamentul uman.
Prelucrare secventiala a informatiei.
Cunostintele sunt reprezentate
explicit.
Implementeaza rationamente de tip
deductiv
Prelucrare preponderent simbolica
a informatiei.
Reguli ncorporate aprioric n
sistem.
Poseda modul explicativ.
7

2.7

Motivatii pentru studiul retelelor neuronale

Exista mai multe motive de a studia retelele neuronale. Dintre acestea amintim:
1. Sunt o alternativ
a la paradigma computationala clasica bazata pe utilizarea unui model formal
si pe proiectarea unor algoritmi a caror comportare nu se modifica pe parcursul utilizarii.
2. Integreaz
a rezultate din discipline variate n scopul obtinerii unor arhitecturi simple de calcul.
Reformularea unitara, n cadrul teoriei retelelor neuronale, a unor tehnici deja clasice dar
apartin
and unor diverse domenii asigura acoperirea unor zone de granita, fapt important n
conditiile n care interdisciplinaritatea castiga tot mai mult teren.
3. Modeleaza inteligenta umana, putand contribui la o mai buna ntelegere a modului cum
functioneaz
a creierul uman.

2.8

Scurt istoric

In continuare sunt enumerate cateva dintre principalele etape parcurse n evolutia retelelor neuronale artificiale:
[McCullough and Pitts, 1943] Au propus primul model formal al neuronului punand n evident
a
abilitatea de calcul a acestuia si posibilitatea de a imita functionarea acestuia prin circuite
electrice.
[Hebb, 1949] A enuntat principiul adaptarii permeabilitatii sinaptice conform caruia de fiecare
data cand o conexiune sinaptica este folosita permeabilitatea ei creste. Acest principiu sta
la baza adaptarii prin modificarea ponderilor sinaptice.
[Rosenblatt, 1957] A dezvoltat o retea implementata hard, numita perceptron, pentru clasificarea
caracterelor tiparite.
[Widrow si Hoff, 1950-1960] Au dezvoltat algoritmi de nvatare bazati pe minimizarea erorii pe
setul de antrenare pentru retele cu un nivel de unitati functionale (ADALINE - ADaptive
LINear Element si MADALINE - Multiple ADaptive LINear Element).
[Minsky si Papert, 1969] Au publicat cartea Perceptrons n care se pun n evidenta limitele
retelelor cu un singur nivel de unitati functionale. Reprezinta finalul primei etape de dezvoltare a retelelor neuronale dupa care a urmat o perioada de circa 10 ani n care cercetarile
n domeniu au fost reduse considerabil.
[Hopfield, 1982] Propune o abordare a analizei retelelor neuronale folosind formalismul fizicii statistice prin punerea n evident
a a analogiei ntre retelele recurente (destinate memorarii asociative) si sistemele de spini magnetici . Marcheaza nceputul unei noi perioade de interes in
domeniu caracterizata prin extinderea domeniilor de aplicabilitate si volumul mare de implementari soft si hard folosite n aplicatii practice.
[Rumelhart, Parker, 1985] Este descris, ntr-o maniera accesibila, algoritmul de nvatare al retelelor
cu mai multe nivele bazat pe ideea minimizarii unei functii de eroare calculata pornind de
la un set de antrenare (ideea a fost formulata anterior de Werbos nsa a devenit cunoscuta
abia dupa prezentarea ntr-o manieraa explicita a lui Rumelhart si Parker). Algoritmul este
cunoscut sub denumirea de backpropagation provenita de la faptul ca pentru determinarea
ajustarilor ce vor fi aplicate ponderilor se propaga prin retea n sens invers (de la nivelul de
iesire catre cel de intrare) un semnal de eroare.
8

[Carpenter, Grosberg, 1983] Dezvolt


a teoria rezonantei adaptive ce conduce la algoritmi de
nvatare nesupervizata bazata pe procese de compettie.
[Kohonen, 1980] Dezvolt
a retele cu auto-organizare care modeleaza procese neuronale dar pot fi
folosite si pentru prelucrarea datelor.

Specificul calculului evolutiv

Calculul evolutiv ofera mecanisme de cautare n spatiul solutiilor bazate pe principiile evolutiei naturale (de tip darwinist). Pentru gasirea solutiei se utilizeaza o populatie de c
aut
atori. Elementele
populatiei reprezint
a solutii potentiale ale problemei. Pentru a ghida cautarea catre solutia problemei asupra populatiei se transformari specifice evolutiei naturale:
Selectie. Elementele populatiei care se apropie de solutia problemei sunt considerate adecvate
si sunt favorizate n sensul ca au mai multe sanse de a supravietui n generatie urmatoare
precum si de a participa la generarea de urmasi.

Incruci
sare. La fel ca n nmultirea din natura pornind de la doua sau mai multe elemente ale
populatiei (numite parinti) se genereaza noi elemente (numite urmasi). In functie de calitatea
acestora (apropierea de solutia problemei) urmasii si pot nlocui parintii.
Mutatie. Pentru a asigura variabilitatea populatiei se aplica, la fel ca n natura, transformari
cu caracter aleator asupra elementelor populatiei permitand aparitia unor trasaturi (gene)
care doar prin ncrucisare si selectie nu ar fi aparut n cadrul populatiei.
In functie de modul n care este construita populatia si de modul n care este implementat
a
evolutia, sistemele de calcul evolutiv se ncadreaza n una dintre urmatoarele categorii:
Algoritmi genetici. Se folosesc n special pentru rezolvarea unor probleme de optimizare
discret
a (combinatorial
a). Populatia este reprezentata de stari din spatiul problemei codificate binar (un element al populatiei este un sir de biti) iar principalii operatori sunt cei de
ncrucisare si selectie, cel de mutatie avand probabilitate mica de aplicare. Algoritmii genetici au fost propusi de catre Holland n perioada anilor 1960, initial ca modele ale evolutiei
si adaptarii la mediu a sistemelor naturale. Ulterior s-a observat ca algoritmii genetici pot fi
utilizati si ca instrumente eficace n rezolvarea problemelor de optimizare.
Programare genetic
a. Este o directie mai recenta a calculului evolutiv, dezvoltata n jurul
anilor 1990 de catre Koza. Scopul programarii genetice este dezvoltarea unor modele de
calcul (programe simple).Astfel, populatia este reprezentata de programe care candideaza la
rezolvarea problemei. Exista diferite reprezentari ale elementelor populatiei, una dintre cele
mai clasice fiind aceea n care se utilizeaza o structura arborescenta pentru reprezentarea programelor. In anumite aplicatii, cum este regresia simbolica, programele sunt de fapt expresii.
De exemplu, programul-expresie a+b*c poate fi descris prin (+ a (* b c)). O astfel de
structur
a este poate fi usor codificata n Lisp, astfel ca primele implementari din programarea genetica foloseau acest limbaj. Intr-o astfel de reprezentare ncrucisarea este realizata
select
and aleator subarbori din arborele asociat programelor parinte si interschimbandu-le.
Ca si n cazul algoritmilor genetici mutatia are pondere mica.
Strategii evolutive. Au fost concepute initial pentru a rezolva probleme de optimizare n
tehnic
a fiind destinate rezolvarii problemelor de optimizare continua. Populatia este constituita din elemente din domeniul de definitie al functiei obiectiv. Operatorul principal este cel
9

de mutatie dar si recombinarea este folosita. Pentru strategiile evolutive au fost dezvoltate
scheme de adaptare a parametrilor de control (auto-adaptare). La dezvoltarea strategiilor
evolutive contributii importante au adus Rechenberg si Schwefel.
Programare evolutiv
a. Initial programarea evolutiva a avut ca obiectiv dezvoltarea unor
structuri de calcul (automate) printr-un proces de evolutia n care operatorul principal este
cel de mutatie. Bazele domeniului au fost puse de catre Fogel. Ulterior programarea evolutiv
a
a fost orientat
a catre rezolvarea problemelor de optimizare avand aceeasi sfera de aplicabilitate
ca si strategiile evolutive.
Toate aceste metode se bazeaza pe faptul ca simuleaz
a evolutia unei multimi (populatie) de
structuri informationale (configuratii sau indivizi) sub actiunea unor procese similare celor din
evolutia naturala si anume: selectie, mutatie si ncrucisare.
Actiunea acestor procese este controlata prin intermediul unei functii de performant
a (fitness)
care masoar
a gradul de adecvare a fiecarui individ la mediul din care face parte. De exemplu, n cazul
rezolvarii unei probleme de optimizare (maximizare) functia fitness este chiar functia obiectiv a
problemei.

3.1

Structura unui algoritm evolutiv

Majoritatea algoritmilor evolutivi au un caracter iterativ. Structura generala a unui astfel de


algoritm (algoritm genetic, strategie evolutiva etc.) este:
// initializarea indicatorului de iteratie
t := 0;
// initializarea (aleatoare) a populatiei (multime de configuratii
// a caror structura depinde de problema)
init P(t);
// calculul functiei "fitness" pentru fiecare individ al populatiei
evaluate P(t);
// proces iterativ de evolut
ie
repeat
// incrementarea indicatorului de iteratie\\
t = t + 1
// selectarea unei sub-populatii in scopul reproduceri(parinti)
P1(t) = select P(t)
// incrucisarea "genelor" parintilor avand ca rezultat obtinerea unei noi populatii
P2(t) = recombine P1(t)
// perturbarea aleatoare a noii populatii (mutatie)
P3(t) = mutate P2(t)
// evaluarea noii populatii(calculul functiei "fitness" pentru noua populatie)
evaluate P3(t)
// selectia supravietuitorilor din cele doua populatii
// (pe baza valorii functiei fitness)
P(t+1) = survive (P(t),P3(t))
until <conditie de stop>
Contia de oprire se poate referi la numarul de iteratii (generatii) sau la proprietatile populatiei
curente (de exemplu, ntreaga populatie converge catre o singura valoare).
10

3.2

Domenii de aplicabilitate

La fel ca si retelele neuronale, algoritmii evolutivi se utilizeaza atunci cand nu exista alta strategie
de rezolvare a problemei si este acceptat un raspuns aproximativ. Se utilizeaza n special atunci
cand problema poate fi formulat
a ca una de optimizare. Cateva dintre domeniile de aplicabilitate
sunt:
Planificare. Majoritatea problemelor de planificare (alegerea traseelor optime ale unor vehicule, rutarea mesajelor ntr-o retea de telecomunicatii, planificarea unor activitati etc.) pot
fi formulate ca probleme de optimizare cu sau fara restrictii. Multe dintre acestea sunt probleme din clasa NP-hard necunoscandu-se algoritmi de rezolvare care sa aiba complexitate
polinomiala. Pentru astfel de probleme algoritmii evolutivi ofera posibilitatea obtinerii n
timp rezonabil a unor solutii sub-optimale de calitate acceptabila.
Proiectare. Algoritmii evolutivi au fost aplicati cu succes n proiectarea circuitelor digitale, a
filtrelor dar si a unor structuri de calcul cum sunt retelele neuronale. Ca metode de estimare
a parametrilor unor sisteme care optimizeaza anumite criterii se aplica n diverse domenii
din inginerie cum ar fi: proiectarea avioanelor, proiectarea reactoarelor chimice, proiectarea
structurilor n constructii etc.
Simulare si identificare. Simularea presupune sa se determine modul de comportare a unui
sistem pornind de la un model al acestuia. Identificarea este sarcina inversa a identific
arii
sutructurii sistemului pornind de la modul de comportare. Algoritmii evolutivi sunt utilizati
atat n simularea unor sisteme din inginerie dar si din economie (de exemplu pentru modelarea
proceselor de competitie in marketing). Identificarea unui model este utila n special n
efectuarea de predictii n diverse domenii (economie, finante, medicina, stiintele mediului
etc.)
Control. Asemenea retelelor neuronale algoritmii evolutivi pot fi utilizati pentru a implementa
controllere on-line asociate sistemelor dinamice (de exemplu pentru a controla robotii mobili).
Clasificare. Se poate considera ca din domeniul calculului evolutiv fac parte si sistemele de
clasificare. Un sistem de clasificare se bazeaza pe o populatie de reguli de asociere (reguli
de productie) care evolueaz
a pentru a se adapta problemei de rezolvat (calitatea unei reguli
se stabileste pe baza unor exemple). Evolutia regulilor are acelasi scop ca si nvatarea n
retelele neuronale. Algoritmii evolutivi au fost utilizati cu succes n clasificarea imaginilor,
n biologie (pentru determinarea structurii proteinelor) sau n medicina (pentru clasificarea
electrocardiogramelor).

Specificul calculului fuzzy

Calculul fuzzy se caracterizeaza prin faptul ca permite manipularea conceptelor vagi care nu pot fi
modelate prin concepte matematice exacte (numere, multimi sau functii clasice). Probleme n care
intervin concepte vagi apar n teoria controlului cand sistemele au caracter neliniar iar starile lor nu
pot fi descrise n mod exact ci doar prin enunturi care au un grad de ambiguitate. Sa consideram
spre exemplu un sistem de control a temperaturii si umiditatii aerului ntr-o ncapere. Regulile pe
care trebuie sa le respecte un astfel de sistem ar putea fi:
Daca temperatura si umiditatea sunt sc
azute atunci mareste viteza ventilatorului (pentru aer cald si umed).
11

Daca temperatura si umiditatea sunt ridicate atunci micsoreaza viteza ventilatorului


(pentru aer cald si umed).
Regulile de mai sus sunt exemple de reguli fuzzy de inferenta. Prelucrarile efectuate de un
sistem expert care prelucreaza cunostinte vagi se bazeaza pe teoria multimilor fuzzy si logica fuzzy.
Variabilelor lingvistice sc
azut sau ridicat li se pot asocia cuantificari prin asa numitele functii de
apartenent
a.

4.1

Structura unui sistem fuzzy

Un sistem fuzzy este constituit din:


un subsistem de extragere a regulilor fuzzy pornind de la datele problemei (etapa de fuzzificare);
un subsistem de efectuare a inferentelor fuzzy (etapa de rationament)
un subsistem de transformare a cunostintelor fuzzy n date efective (etapa de defuzzificare).

4.2

Domenii de aplicabilitate

Principalele aplicatii ale calcului fuzzy sunt: recunoasterea formelor; aproximarea functiilor; controlul sistemelor; compresia imaginilor.

12


    !"# $&%'%(*)'()+,%-!. 0/'1,%

CA BEDFHGHDI9JLKMONPMQKMSRM(TUJUR7GHI9JGR7VPW?XYRMSJ Z;MQVYDMQGRX[DVPW]V\ MQTUJUM(GD=VPDHTVP^


_WEGKMGDB`J$Va\ J ZbB?cbGDI9J Z;B`X[DVPWEMOT7BE^=FHW`M
BEDdJUMSR7I9X[DMQI9JVaJUMPe(fR7BEI9MYR7MSJ ZbMQV+DMQGRX[DHVPW]V\ MQTUJUM
ISVaR7VPI9JUMSRgB`hQVaJ$Vi\ FHR7BEDj
kml FMQISB`nISGWoGDB`J$Va\ J Z;BEWEXPRc;GDHI9J ZpB`X[DVPW`MYI9X[^=FoX[DMQDdJUMPe
krq R7sBEJUMQI9JGR7Vt,^=X?KGWoKMuVaRgVPDwvUVaR7MxTZ BBEDdJUMSR7I9X[DMQI9JVaRMV+GDBEJ$Va\ J Z;ByW`XPRc;GHDI9J ZpB`X[DVPW`MPe
krKz MuGDBEDI9JJUZ{RgB`X[VaDHRMuVaRVPMCW`Mut|FFR7RXPX?_HI9MQW`MQT^=GWMQFBoRgKBEMuD}R7ISMSVahSRX[MuW`NwRVaMSJgJ Z;|MQVPEGHD}V+TUMQJU^+R7VPDDVPTWEc~MuXPR7K^4MuV=\ B`MdTUTZ MQB`^+R7M=D;VPRwW`VP\ MQTUWEMCFHGKDM
T7GBEDdWJURR7MSVaJ ZbRMQMiW`MQbB~KgMYe M9?MQ^=FHWEGKVaJUMQW`M
k 0 DdNoVa\ J ZpVaR7MYt"FRX?I9MQTGWoFRgBEDISVaRMuRMSJ ZbMQVPGHV+TUMuVPKVaFJUMQVahV\ WEV=TUFoMQISBnISGWFRXP_HW`MQ^+MQBpe
=0, P$= a7 (7
 DB`JVaJUMQV+cbGDI9J ZbBEX[DVPW]V\ MQTUJUMI9X[^=FoX[DMQDJViMQW`MQ^=MQDdJVaRVi\ KMuFRMQWEGHI9R7VaRMuV+BEDc~XPR7^iVaJ Z;BEMQBEDISVPKRgGW GDMQB RMSJ ZbMQW`M
DMQGR7X[DVPW`MPe GDI9J ZpB`X[DVaR7MQV(VPI9MQTUJUXPRLGDB`J$Va\ J Z;BMQTUJUM,BEDHTUFHB`R7VaJ$VO\ KM,^=X.KHGWPKM"cbGDI9J ZbB`X[DHVaRM|V(DMQGRX[DBEW`XPR_B`X[W`XP[BEISB
cUVa\ RV\ VJ ZbBEDMOEz DTV
\ I9X[DdJOKMJUX[VaJUMYFHVaR7JBEISGWEVaR7BEJ$Va\ J Z;ByW`MVPI9MQTUJUXPRgV?e 0 DiRMSJ ZpMQW`MQW`MVaR7JBnISBEVPW`MTGDdJ,c;X[W`X[TBEJUMTZ Bo^=X?KMQW`M
KMuGDHB`J$Va\ J ZpBoc;GHDI9J ZpB`X[DVPW`MYISVaRMDdG}VPGRMQW`MSNaVPDJ ZUV=\ _HB`X[WEXP[BEI[V?\ e
] L"]|C|H"[',],!{&] &
MQWEGHWEVDMSRNPX[VPT$V\ bDMQGRX[D.GW~,MQTUJUM
I9X[DHTUJB`JGB`J$V=\ KHBEDj
k*ga]9?Uaa. I9X[DHTUJB`JGB`JSdyDFR7BEDISBEFHVPWpdKHBED}^=MQ^_R7VPD&V\ TZ BPT7G_HTUJVPDJ ZUVP\ iBEDJURgVPI9MQWEGWEVaRV?\
k*$ai FRMQWyGD[B`RMV+I9XPRFHGHWEGBoDMQGRX[DHVPWISG}RX[W KMuISVPDHVPW KM
B`MdT7Z B`RMP
k*d9a1b]O FHRMQWEGD[BER7BVPWEMuI9XPRFHGWEGHBDMQGRX[DVPWISG}R7X[W KMuISVPDVPW`MKMuBEDdJUR7VaRMPe
'V DHB`NPMQWEGWI9MQWEGW`MQBDMSRNPX[VPTMVPG*W`X.IFR7X.I9MQTUMKMDVaJGRV\ nHhQBEI9Xat]I7sHBE^+BEI[Vr\ KMQTUJGHWKMI9X[^=FW`M9.MPe l M
I9X[DTByKMSRV\ I[V4\ DMQGRX[D.GWLFRgBE^=MdTUZ JUMiByDc~XPRg^+VaJ ZbB`M4;FR7ByDBEDdJUMSR7^=MQKBEGHWLKMQDKR7BEJUMQW`XPR1TG_c~XPR7^4V\ KM ;?1?g
VPKSBEgI[aV\ Qw^=S X?KKBMnI[DHVa\ VaR7BHJGVPRW`MYV\ KMQBEW`c~MQMSI9RJUMQR7DBEI[J Z~V?MQ\ Boe KMCq FoI9MQXPTUJUJUMQMDJ ZbBEBE^=VPWoFHKGHByWEDTGJURR7MCBOBEFHDdRJUX$MSNPR7X[B`XPVPR7I[GHV\ WTKZ BMSM9Fo?X[JUWEMSVaR7RgB`B`XPhR7Va\ GR7WBI9VPMQWEWEMGWE^=MQBpMQeL^'_XPR7JUVPMQDDJMQZ{BEBVPW`DMQMQW`MCGRW`X[X?DISVPVPW`W`MM
PMQDMSR7VaJUMFoM(TGFR7VacbVaJ ZbVu^=MQ^_R7VPDMQBTM$EDTGH^=MQVahVP\ uTUFHVaJ ZbByVPW TZ BJUMQ^=FoXPR7VPWpdBEVaR"KVPI[Vu\ FoXPJUMQDJ ZbByVPWEGW.RMShQGW`JVPDdJ
KMSF'VH\ TZ MTUZ JUM|XVPDdG^iB`J$V(\ NaVPW`X[VaRM 0$ [VaJGDISBdTUM|PMQDMSRMQVahV\ GHDuFoXPJUMQDJ ZpBEVPWdKM|VPI9J Z{BEGHDMb q &ISVaRMOTUM"JUR7VPDT7^+B`JUM
KM9t]V+WyGD[GWoVw?X[DdGWyGBpe
MSRgI9MSJ$Va\ R7BEW`MKBED4_HB`X[W`XP[BEMVPGI9X[DKGTCWEVI9X[DISWEGhQBEViI[V\ FoXPJUMQDJ ZbBEVPWEMQW`MKMVPI9J Z{BEGHDMVPGVP^=FHWyB`JGKBEDMuI9X[D?t
TUJVPDdJ$V\ TZ BLI[V\ VPI9MQVPTUJVD.GKMSFHBEDHKMKM=BEDdJUMQDTBEJVaJUMQV}TUJBE^GWEBEW`XPRTUX[TB`J ZbBFoMDMQGRX[De
DdJUMQDTB`JVaJUMQVT7Z BKHGR7VaJV

TUJBE^GWEByW`XPR(KMByDJUR7VaR7MBED?GMQDJ Z~MQVahVx\ KX[VaRCc;RMQI9NPMQDJ ZbVxFoXPJUMQDJ ZpBEVPW`MQW`XPRKMVPI9J Z{BEGDM+EDdJUR7GIVa JGHDTUJBE^GW'TG?nt


ISB`MQDdJuKM+BEDdJUMQDTiTZ BLKM+WyGDFRX$NPX[VPI[V\ D.GGD q TByD[GWEVaR+bISVaRMiD.GFoX[VaRJ$V}\ TG?nISB`MQDJ$V}\ ByDc~XPRg^+VaJ ZbB`MISBLX
TUMQI9NPMQDJ Z7V+\ KMYFoXPJUMQDJ ZpBEVPW`MuKMuVPI9J Z]BEGDM= b9;?1?g ge
'V4DBENPMQWEGW"DMQGRX[DdGHWEGB"TUMFoX[VaJUMI9X[DHTBEKMSR7V4I[V\ BEDc;XPR7^+VaJ ZbBEVI9X?KBnISVaJ$V4\ TG_c;XPR7^+VBEDJUMQDHTB`J$Va\ J ZpBEB,GDXPR
TUJBE^GWEBbKMQISBVPDVPW`XP[BEI$MQTJUM"JUR7VPDTUc;XPR7^+VaJ$V|\ yDJURUt{XBEDc;XPR7^+VaJ ZbB`ML_HBEDHVaRVY\ ;FRMShSMQDJ ZpVT7VPGuVa_HTUMQDJ ZbV(FXPJUMQDJ ZpBEVPW`MQW`XPR
KMuVPI9J ZpByGDM!TVPG}MSNPMQDdJGVPW'KBETI9RMSJ$V\ ;c;RMQI9NPMQDJ Z{V=FoXPJUMQDJ ZpBEVPW`MQW`XPR(KMuVPI9J Z]BEGDMuge
ACBEDFHGDHI9JKM NPMQKMSRM_HB`X[W`XP[ByIWEGHI9R7GR7BEWEMTGDdJ^GWEJ^+VPB=I9X[^+FHWEBEISVaJUMPFHGDVP DKG?t]TUMEDMSN.ByKMQDJ ZV \
c;MQDX[^=MQDMISV?jM9BETUJUMQDJ ZbVGHDMQBFoMSR7B`X[VPKMRMSc;R7VPI9JVaRMKGF'V\ VPI9JBENwVaRMQVGD.GBDMQGRX[D !I9RMdTZ JUMSRMQVFRgVa[GWEGB
KMVPI9JBENwVaRMbaXP_X[TMQVPWEVP
DMQGRX[DdGHWEGB~gaFRMShSMQDJ Z{VuGDXPR"KMQTI[Va\ R7I[Va\ R7B;PMQDMSR7VaRMFXPJUMQDJ ZpBEVPWKMVPI9J ZpByGDMTUFoX[D?t
JVPDMxEyD}Va_HTUMQDJ ZpV=TJBE^GHWEGWEGB;ge
0Dc;XPR7^+VaJ ZpBEVFoMISVaR7M4XFR7BE^=MdTZ JUMGDmDMQGRX[DKByDFHVaRJUMQVVPW`JUXPR7VMQTUJUM4I9X?KBnISVaJ$V \ aa`[b KHVaJUXPR7B`J$V \
cbVaFJGWEGBI[V}\ TUMQ^+DHVPW`MQW`M=KBETI9R7MSJUMMQ^iBETUM=KM=VPI9MQB"DMQGR7X[DB'VPGc;X[TUJYJUR7VPDHTUc~XPRg^+VaJUM=FR7BEDdJURUt]GD4FRX?I9MQTYI7sHBE^+BEI
I9X[^=FHWEM9ISVaRMxTUMKMQTUcUV\ TUZ X[VaRV\ WEVDHB`NPMQWEGW 1~1HSS bTUFHVaJ ZpByGWLKBEDdJURM+JUMSR7^iBEDVaJ ZpBEV4Vw.X[D.GWEGB|GDdGHB"DMQGRX[DTZ B
KMQDKR7B`JUMQW`MCVPW`JGBEVge
ByDVaFHTV=FoX[VaJUMnKM9nDB`J$Vx\ ISViX
v0X[DHI9J Z{BEGDM
c;GDHI9J Z;BEX[DVPW]V\ yD4TUFVaJ ZpBEGW KByDJURMKX[G&Vx\ I9MQWEGW`MM9?ISB`JVa_BEW`MPe 0 D
l
^=X[^=MQDdJGWPEDuISVaRM!JURMQD.GWKM,BE^=FGWETGRgB$FR7XPFHVa[VaJKM9t]VWEGHD[GWPVw?X[DdGWyGB[VVvUGDHT&WEVJUMSRg^+BEDVaJ ZbBEVVPI9MQTUJGBEVMQW
FRXNPX[VPI[V\ PKMQTI7sHBEKMSRMQVPGDXPR|NPMShQByISGW`MTZ BHMQWEB`_oMSR7VaRMQVYGHDXPR,TG_HTUJVPDJ Z~MIgsBE^+ByI9M(FHGRJ$Va\ JUX[VaR7MKMBEDc;XPR7^+VaJ ZbB`M
bDMQGR7XPJUR7VPDT^+BEJ Z0Va\ JUXPRgB~"EDTFHVaJ ZpBEGWTByDVaFJBEIae VPDJB`JVaJUMQVKM
DMQGRXPJUR7VPDT7^+B`J Z0Va\ JUXPR7B&KMSFBEDKMYKM
D.G^Va\ RgGWKM
BE^=FGWETGRgBHKBEDISVPKRgGWaJURMQD.GWEGBEKVaRTZ B KMuVPW`J ZbB c;VPI9JUXPR7B,bGDBEBoKBEDdJURMYMQB DMQBEKMQDdJBnISVaJ ZbB~ge
M
^=MQ^_R7VPDHVFoX[TUJT7BEDVaFJBEI[V\ TGHDJOFRMShSMQDdJUMuc;XPR7^+VaJ ZpByGDBISVaRM
aRMQI9MSFJ Z{B`X[DMQVahVP\ +DMQGRXPJUR7VPDT^iB`J ZUVa\ JUXPR7BEB
FRXNPX.IVP DHK^=X?KBnI[Va\ RgBVPWEMYFMSRg^=MQVa_HBEWEBEJ$Va\ J Z~BEBBEX[DBEI9MuV=^=MQ^_R7VPDMQB{KMQISB KMSFoX[WEVaR7BEhVa\ R7Bpe
ACGF'V\ MSc;MQI9JGW?FoM!ISVaRM9t]W.FR7X$NPX[VPI[V?\ ?TBEDVaFHTMQW`M,TGHDJSj 7Q;{P{$aU ;FRXNPX[VPI[Vu\ KMSFoX[WEVaR7BEhQVaRM|FoXPhQB`JB`NV\ &TVPG
;FHRX$NPX[VPI[V\ KMSFoX[WEVaR7B`hQVaR7MDMS[VaJB`NoV\ ge t]V}XP_HTUMSR7NwVaJuI[V\ TJBE^GHW]Va\ R7BTGISI9MQTBENPMiVPW`M+GDMQBFoMSRMQIgsB
K;M
D{9MQbG{QRX[aD B I9X[DHKGI
WyV+I9RMdTUZ JUMSRMQVxFoMSR7^=MQVa_HByWEB`J$Va\ J Z;BEB l TBEDHVaFHTUMQB I9XPRMQTFHGDhVa\ JUX[VaRM}bKMM9.MQ^=FWEG}FR7ByD}TUFoXPR7B`RMQV
D.G^Va\ R7GWyGBKMCRMQI9MSFJUXPRgB~ge"MCVPI9MQVPTJ$V=\ XP_HTUMSRNaVaJ Z{B`M_HB`X[WEXP[BEI[V\ TM_HVahSMQVahVi\ BEKMSMQVI[V
\ EDNVa\ J ZpVaRMQV}bVPKVaFJVaR7MQV
FoX[VaJUMYnRMQVPWyB`hQVaJ$V=\ FR7ByD^+X.KB`nI[Va\ R7BoVPW`MYFoMSR7^=MQVa_HByWEB`J$Va\ J Z;BEBTBEDVaFHJBEI9MPe
~ L"]|C|H"[',],0 d
fGDB`JVaJUM!cbGDI9J ZpB`X[DVPWV\ FRgBE^=MdTUZ JUM!TUMQ^+DVPW`MOKBEDFHVaRJUMQVCVPW`JUXPR"GHDB`J$Va\ J ZbBTZ BFHRX.KHGI9M!GHDTUMQ^iDVPW?KM!BEMTZ B`RMPe JVa J
TUMQ^+DHVPW`MQW`MCKMYBEDJURgVaRMIVa JT7Z BI9MQWKMCBEMTZ B`RMCTGDdJ!I9X?KBnISVaJUMCD.G^=MSRgBEIByVaROGHDB`JVaJUMQVMSc~MQI9JGMQVahVi\ GR7^4Va\ JUX[Vaq RMQW`M
FRMQWyGI9RVa\ R7Bpj
e ;H]]P$' bKM}M9?MQ^=FHWyGEDT7G^=MQVahV\ TUMQ^+DVPWEMQW`M}KMBEDdJUR7VaRMJ ZbBED'VP DKrI9X[DdJiKM ?P9a9QQbP
nMQI[Va\ R7GBEV?
e b Ua;9Pg TUMQ^+DHVPWEGWOPBEDdJUMSPR7VaJFHR7BEDrVaFHWEBEISVaR7MQVGDMQBOcbGDI9J ZpBEBp!DdGH^+B`J$V \ g?$ p4bUa;SS TVPG
1?Q {[$b~aaU XP_J ZbByD'VP DKVPTUJUc;MQW&GD}D.G^Va\ RISVaR7MuRMSFRMShQByDJ$V=\ TUMQ^iDVPWEGWoKM
BEMTZ B`RMPe
X[DKMSRgBEW`M=VPTUX?ISBEVaJUMxI9X[DM9BEGDHBEW`XPRYTGDdJYFHVaR7VP^=MSJURgB"VPBLcbGDI9J ZbB`MQB"KM+ByDJUMSPR7VaR7MP'ISVaRMxFMQDdJUR7GGDNPMQI9JUXPR
KMuTUMQ^iDVPW`MuKMuBEDdJUR7VaRMPuuKMSJUMSR7^+ByD&V\ X=NwVPWEX[VaRMPHD.G^+B`J$V=\ TJVaRMQV+DMQGR7X[DdGWyGBpe
GHDI9J Z{BEVxKMVaPRMS[VaR7MbBEDJUMSPRgVaRM(VPTX.ISBEVaJ$V\ GD.GB'DMQGRX[D4!ISVaR7MFHR7BE^=MdTUZ JUMTUMQ^+DVPW`MKMWEViDMQGRX[DB
MQTUJUMYz KMc~XPRg^+V+u(j-GDKMY&RMSFRMShQBEDdJ$V\ ^GWEJ Z;By^=MQV
FoX[DKMSR7BEW`XPR!I9X[DM9?ByGDBEW`XPR,I[Va\ JURMuDMQGRX[D.GW
e X[^=FoX[DMQDJV RMSFRMShQBEDdJ$V=\ FoX[DKMSR7MQVI9X[DM9?BEGHDBEBoKBEDdJURMYGDB`JVaJUMQVTZ BGHDB`JVaJUMQV=e
".MQ^=FW`MuTBE^=FW`MKMYc;GDHI9J ZpBEBKMuVaPRMS[VaRMTGDdJSj
eWyBEDBEVaRV?\ j|
(Ub+L 1 ' 9$a
e(FVa\ JUR7VaJBEI[V?\ jO } b=" 1 ' '

 








x1
w1
x2

w2

.
.

G f
wn

xn

z `B [GR7V j|".MQ^+FHWEG}KMuGDHB`JVaJUMYc;GHDI9JB`X[DVPWEV
eKHBETUJVPDJ ZbVMQGISWyBEKBEVPD&V?\ j| ( b=L  1 ' ; g
MQ^iDVPWEGW.KMOB`MTZ B`RM!FoM!ISVaR7M"yWdFHRX.KHGI9M|XuGDHB`JVaJUM,cbGDI9J ZbBEX[DVPW]V\ TUMKMSJUMSR7^+BED'V\ FRgBED
P w0{+b+ {
l
GDKM !RMSFRMShQByDJ$V}\ FHR7Va[GW"KMxVPI9JB`NwVaR7MiVGDBEJ$Va\ J ZpBEBLBEVaR wOcbGDI9J ZbBEVKMxVPI9JB`NwVaR7M4;JUR7VPDTUc;MSR1ge"R7ByDISB`FHVPW`MQWEM
JB`FHGR7BoKMYc;GHDI9J ZpBEBoKM
VPI9JB`NaVaRM
T7GDJSj
e z GDI9J Z{BEBo_BEDVaRMYKMSJUMSR7^iBEDBETUJUM+b^=X?KMQWEGHW I GWyW`X[G[s?t],B`JUJTggj j[ ISG BEVaR
L;oL KKVPVPI[I[V=V=\\
VPKHBEI[V\ c;GDHI9J ZpBEV MQV$N.BET7BEKMPe f VPW`J$V\ NaVaR7BEVPDdJ$V\ MQTUJUMI9MQVISG Oc;GDHI9J Z;ByV mnBEDHKKMcbVaFJ
cbGDI9J ZbByV=TB`[D.G^}e
e z GDI9J Z{BEBo_BEDVaRMYTUJUX[sVPTJBEI9MxbISG}RMSFVaRJB`J ZpB`MuKMYJBEF CWEVPG_oMSR1gj j[ ISG
i L;oL |
x L;o" |
lVPI9MiMQTFoJUX[XPVaRJUMicbGc;DX[I9W`JX[ZbBETBoBKTZ M
B"JUNaR7VaVPR7DBEVPTUc;DdMSJR(VMQETUDJUMuISFHVaRRMMQWEGVaJ$ V=\ KByDi nhQ BEISLV+FTRBETXPJU_HMQVa^=_MQBEWEW`XPB`J$R(Va\ JKZ~BEMuW`MiTUFV$NBEDVP BoDH^+KVaVP[I9DMSMQMSJVHBETZ ISB!B{e c;XPR7^V?\ e0KMSMQV
e z GDI9J Z{BEBI9X[DdJBED.GMP 4j j
bV L;, m;FR7ByDISB`FHVPWEGHWV$NwVPDdJVvCVPW'c;GHDI9J ZbBEBEW`XPRWyBEDBEVaRMYMQTJUMTBy^=FHWEB`JVaJUMQV=TJGKBEGWyGBoVPDVPWEB`JBEIaBEVaR
FHR7BEDISB`FVPWEGWHKMShQVQNaVPDJVvMQTJUM
DMQ^Va\ R[ByDB`RMQVg
;_AMShQV$NwVPDdJVvUGHW,KM+^iVPB"TGTCFoX[VaJUM=nMQWyBE^+BEDVaJFR7ByD4c;X[W`X[TBERMQV}GDXPRYcbGDI9J ZbBEBL^4Va\ R[BEDB`JUMP WyBEDBEVaRM
FoMFoXPRJ ZbBEGDB;c;GHDI9J ZpBEBOKMJB`FaR7VP^=F'VP\ KVaR+ISVaR7MVPGKMShQVQNaVPDJVvGWKM}VD.GnDMSJUMQKMPeD
M9?MQ^=FHWyG}TBE^=FHWyGKMuVPTUJUc~MQW&KMucbGDI9J ZbB`MYMQTUJUMPj
KVPI[V=\
L;L KVPI[V \
KVPI[V=\
bI$MQDdJUR7GV=nMQWEBE^+BEDHVaJOKMShQVQNaVPDJVvGW&DMQDMSJUMShQBE^+BEBTM
GJBEWEBEhSMQVahV\ c;GDHI9J Z;ByBTB`[^=X[BEKHVPW`MPj












,3

157698;:

=

2! 

>! 





#

@

F.


CE

FI

HG

0

15<8(:

% ('

D
BAC

% ('



?

"!$#&% ('

,.-#

1



,+-#

*)

0/



"!$#&% ('



pB e
bWEXP[BETUJBEISV L;L  M9.F' og ?
BEB{eY;JVPDPMQDJVsB`FoMSR_oX[WEBEI[V\ L;oLJVPDHs& o| M9M9..FF oo ?
VaR7VP^+MSJUR7GW FoMSR7^+B`JUM,I9X[DJURX[WyGW[FHVPDdJUMQB[cbGDI9J ZbByBEW`XPR TB`[^+X[BEKVPW`MPe VP DK JBEDKM|I[Va\ JURMOBED?nDBEJ
cbGDI9J ZbByVW`XP[BETUJByI[V\ KMSN.ByDMKBEDI9M}EDmI9M^+VPB(VaFRXPFBEVaJ$V\ KMcbGDI9J ZbByV MQV$N.ByTBEKMByVaR+JVPDPMQDdJV
sHB`FoMSR_oX[WEBEI[Vu\ JByDKMuI[Va\ JURMucbGDI9J ZbByV=TB`[D.G^}e
bKACBEDdJURMucbGDI9J Z;BEByW`MYDMQ^=X[DXPJUX[DMPI9MQW`M
^+VPB KMQT(GJBEWEBEhQVaJUMCT7GDJ(I9MQWEM
KMYJB`F[VPGHTTBEVPDj
L;LM9.F
?
=0 o
q  R7sB`JUMQI9JGRgVT7Z B GWEDV=MQ^=BLR7X?MSKJUGMQW`WMiED}DMQISGVaR7RX[MDTVPGW`M+DdJ(TUMxBEDJURMSMSRgc~MSI9RwX[V\ DMQWEI9VJVa^=JUMX?K GW&yDISVaRMxT7GgDe JVP^=FHWEVPTVaJUMGDB`J$Va\ J Z;BEWEM=c;GDHI9J ZpB`X[DVPW`M
{g?ACPBED[pFH GHDI9J"KMNPMQKMSRMVPWVaR7sB`JUMQI9JGRgBEB.XuRMSJ ZbMQVuDMQGRX[DgaVPW]V\ 7QFobX[;$VabJU{MP]ni c;XPR7^+VPWEBEhQVaJ$VC\ FR7BEDdJURUt]GDPR7VacXPR7B`MQDdJVaJ
MSJBEIgsMSJVaJEDDX.KHGR7BEW`MI[Va\ R7GBEVT7GDJ VP^+FHWEVPTVaJUM|GHDB`J$Va\ J ZpBEW`McbGDI9J ZbB`X[DHVPW`M(TZ B[VPW`M"I[Va\ R7GHB[VaR7I9M|TUFoMQISBnI[V\ I9X[DM9?ByGDBEW`M
TZ BpBy^=FHWEBEISBEJS[G?GWoBEDc;XPR7^+VaJ Z;B`X[DHVPWpe
ACBEDFHGHDI9JGWKMNPMQKMSRM+VPWRX[WEGHWEGB'FMISVaRMEWVPGGHDB`J$Va\ J ZbBEW`Mc;GHDI9J ZpB`X[DVPW`MuEDISVPKRgGWRMSJ ZbMQW`MQBpMQW`MFoXPJn
KMQTI9X[^+FHGTUMEDJUR7MQB ISVaJUMSPXPR7BEB&FR7BEDISBEFHVPW`MPj
k KX[VabRCP KH (BED}M9i?;JUHMSbR70B`PXPURY DdG|VPR7GBE^=VPMQW`T7JIRX[TUMQW^iKDMQIVPVa W`M+JYKKMBEDViFHRVaMSR7JUJURgMQVPV}DT^=^+MQB`KJUBEMGTUWyGMQ^+Bpe D0 VPDWyGISWVaFhQGR7ByW'^+EDB`J(ISI[VaVa\ RJUMiRM=FVPR7BEW`^=JUMMQGT7IDB`TUJ$MQVa\ ^iJ Z;BDKVPBEW`D M
R7MSJ ZpMQV?e 0 DVPI9MQVPTUJ$V}\ TB`JGVaJ ZbBEMD.GT7GDJGDB`J$Va\ J Z;B'c;GHDI9J ZpB`X[DVPW`MFRXPFRgBEG?t{hQBETUMyDJUR7GHIVa JD.GR7MQVPWEB`hSMQVahV\ DBEISB
XiFRMQWEGI9RgVaRMYVPTGFR7V=TMQ^+DVPWEGWyGBHFHR7BE^+B`JSe
k ^+MQKbBEPG WYM9w.9JUQMS?RgDSe (mX[lWEGHGWDdWEJXPR!I9X[MQDTJUMQMuI9JKVaMYJUMVKI9X[X[WEVaMQR+I9JISV+GTUMQVP^+W`JUMDVPGWEDHMP?B`J$KVa\ MCJ ZbBVVPW`W`MCMFRR7MSMQJ ZbWEMQGW`MQI9B!R7Vc0Va\ TZ RwBV\ KMYVVI9X[K^BETUGJUR7DBEBy_HISGVBKTUMQB`R^iMQI9DJVPWEISGG W
KMuB`MTZ B`RMuI[Va\ JUR7M
VPW`JUM
GDHB`J$Va\ J ZbBpe
k FoMubISVaP R MCEWo+XP_p J ZpgBE;D}U ^=MQ KHX[BEGW`MQWEGI9JUBMQM9Va?hJUV\ MSR7TUDMQe^+DHVPW`M=KM=WEVxVPWEJUMGHDB`J$Va\ J ZpBpW`MFRMQWEGHI9RMQVahV\ TZ BJUR7VPDT^+BEJTUMQ^iDVPWEGW
0 DGDMQW`MYRMSJ ZbMQW`M
I9MQWEM
JURMQB ISVaJUMSPXPRgBEB'KM
GDB`J$Va\ J Z;B&c~XPR7^+MQVahVi\ ^GW`J ZbBE^+B KHBETUJBEDI9JUMPe VahQGW I9MQW'^+VPB c;RMQI9NPMQDdJ
EDdJVP WEDB`J,MQTUJUMYI9MQWVPWRMSJ ZpMQW`MQW`XPROXPR[VPDHB`hQVaJUMCFMCDB`NPMQWEMPjGHDDHB`NPMQWKMCGHDB`J$Va\ J ZbBoKMByDJUR7VaR7MP?GHDdGWTVPG^+VPBo^GW`JUM
DB`NPMQWEMKMGDBEJ$Va\ J ZpB!VPT7ISGDTUMTZ BOGD DB`NPMQWOKMB`MTZ B`RMPef TBEJGVaJ ZbB`MFHVaRJBEISGWyVaRV\ XRMSFR7MShQBEDJ$V\ RMSJ Z;MQWEMQW`MI9MD.G
I9X[DJ Zp ByD}GDB`JVaJ Z;B VPTISGHDTUMuISB KX[VaRGDDB`NPMQWKMuGDB`J$Va\ J Z;B KMuByDJUR7VaR7MiTZ B GD}DBENPMQWKMuGDB`J$Va\ J ZbBKMuB`MTZ B`RMPe
0D}VPW`JUMYRMSJ Z;MQW`MuD.G}TUMCcbVPI9M
KBETUJByDI9J Z~BEMCDMSJ$V
\ EDJUR7MCGHDB`J$Va\ J ZpBEW`MCKMYBEDdJUR7VaRMiTZ BI9MQW`MuKMCBEMTZ B`RMPjJUX[VaJUMGHDB`J$Va\ J ZbBEW`M
FRMQByVPGTUMQ^iDVPW`M4KHBED^=MQKHBEG(W`M4FRMQWEGI9R7MQVahV\ TZ BJUR7VPDT7^+B`JiR7MShQGW`JVaJGWVaJVa JGDB`J$Va\ J Z;BEWEXPRKByDmRMSJ Z;MQVrIVa JTZ B
^=MQKByGWEGBpe
4X.KHGWKM
VP^=FWEVPTVaRMuV+GHDB`J$Va\ J ZbBEW`XPR(KMSJUMSRg^+BED&V \ {ga7Pp RMSJ ZbMQW`MQBpe"ACBED}FGDI9JGWKMYNPMQKMSRM
VPW VPI9MQTUJUMQByV
M9BETUJ$V?\ j
k yDMSNJ ZpVa\ MQJ ZpW`VaM'REMD
'ISFoVaXPRhQM|B`JD.ZpBEGuVVaPRMSM|X[^=BE^+MSFJUR7XPByR7I[JVu\ VPDVCJ ZUGV
\ DbB`KJ$BEVa\ DCJ ZbBEFHWEXPGHRQDe I9JGTUWaJUc;KMQM"WNPKMQMOKJUMSXPR7FM|X[VPWEW[XPVP[W`BEPB?XPTGR7BEDdJJ^+VPBEW`TXPX.R ISBEKVaMLJUMcbGRDMSI9J ZbJMQZbBEW`X[MQDW`XPVaRLRMXPRTZ [B wVPT7DHVPB`hQGuVaKJUMM
FoMDB`NPMQW`Mr~nHe TZ BR7MSJ ZbMQW`MQW`XPR XPFnMQWEK ~nHq e ge 0 DmR7MSFRMShSMQDdJ$Va\ R7BEW`MTI7sMQ^iVaJBEI9MVPW`MRMSJ ZpMQW`MQW`XPR
XPR7[VPDB`hQVaJUMFoMDB`NPMQWEM
GDB`J$Va\ J ZbByW`M
VPI9MQWEGByVTZ B&DBENPMQW&TGDdJR7MSFRMShSMQDdJVaJUMPRgGFHVaJKMTZ B&FoXPhQB`J Z;BEVxW`XPRCDdGVaRM
TMQ^+DBnISVaJ ZbBEMYFMQDdJUR7GFR7X.I9MQTGHWKMYc;GHDI9J ZbB`X[DVaRMxTZ B&I9MQW KMEDdNoVa\ J ZbVaR7MPe
J

$K

ML

I-#

IN#

O 5<PRQ

S/

L

UWVYX

IN#

V

[Z

[Z

$\

$\

]

[Z

$\

^

_/

k ByDMSUJ JMSZpMQRW`NPMMQDHEDBEDKISVaERDMVPMQW`TUPJUXPMRgB`MQJTU^MQDGHJ ZpWOBEVPc;GW]V\ DHI9XPJ ZpRB`X[[DVPDVaRB`hQMVaRTMQVPVrG PEDmMSX[I9^+MQMSW(JUKR7BEMI[V?\ ECDNRVa\MQJ WEZpVaVaJRZbBEMPByeW`M4KTUMJUc;NPMQMQWISKBED'M}Va\ JJUVaXPJUFoMX[W`KXPBE[DdByJUBRTMGDdGHJiDB`I9J$MQVa\ W`J ZpM B
VPTX.ISBEVaJUMRMSJ ZpMQW`MQWEXPR YX[sX[DMQD~nHe HnHe [(TVPGR7MSJ ZbMQW`MQW`XPRI9MQWyGWEVaRMi~q nHe [geO|TUMQDJ ZbByVPWED}VPI9MQTUJCISVah
MQTJUMKM9nDHB`RMQVGDMQBoRMQWyVaJ ZpBEBoKMuNPMQISBED&Va\ J ZbVaJUMYEDdJURMuGDB`J$Va\ J Z;Bpe
]

Ma

b`

x1

xj

dc

Je

.
.

x N0

.
.

.
.
.

y1

yi

.
.

.
.

N0

W1
(w 1 kj)

N1

W2
(w 2 ik )

y N2

N2

z B`[GR7V j,".MQ^+FHWEGKMYRMSJ ZbMQViISGGD}DB`NPMQW&VPTISGDT


y 1 (T)

y 2 (T)

w1j

w2j

x 1 (0)

y i(T)

. . .

wij

x 2 (0)

y N (T)

. . .

wNj

x i(0)

x N (0)

z B`[GRgV j|L?MQ^=FHWEG}KMYRMSJ ZbMQV+ISGI9X[DMQI9JB`N.BEJVaJUMuJUXPJVPW]V4\ ;R7MSJ ZpMQV+KMYJB`F XPFnMQWEK


4X.KHGW(KMBEDJUMSRgI9X[DMQI9JVaRMVGDHB`J$Va\ J ZbBEW`XPRiKMSJUMSRg^+BED&V \ [P?dS9P` FRgBEDRMSJ Z;MQVnBEDKGHDmcbVPI9JUXPR
MQTUMQDJ Z{BEVPWEDTUJVa_HBEWEBERMQVVPWEPXPR7B`J^GWEGBKMCc;GHDI9J ZpB`X[DVaRMPe"ACBEDFoMSR7TUFoMQI9JB`NaVFRMShSMQDJ Z;MQBI9X[DM9?BEGHDBEW`XPROBEDdNPMSR7TUMED
PR7VacbGWVPTUX?ISBEVaJSHR7MSJ ZbMQW`MQW`MYFoXPJOn4ISWEVPTB`nISVaJUMEDj
k KHBESD TUSF`OR7MCTMSbJGW ~GQ7D7BE J$Va\ 9J Z;aByW` XP|R(aKUM
BEe DdJUR7GYVaRM9MuI[BETUVa\ J$JUV\ R7MI9X[I9DMQM9W&VPBEW&GGDHDBPBEB`DJ$Va\NPJ Z;MSBERgW`XPTUMPRQKMuG?B`MdGTZ WaB`R7BEDMPec~XP R7^iX[DVaMQJ Z;I9BEX[JB`DN?VPB`WaJVanJUBEMQDHVKyGHDDJURBEKMB`R7DMQB`I9NPJ ZyMQB`W`X[M DVPW
FoX[VaJUMYn4JUXPJVPW]Vi\ TVPGW`X.ISVPWV?\ e"L?MQ^=FHW`MuKMuVPTJUc~MQW KMuRMSJ ZbMQW`MuTGHDJ(BEWyGTUJUR7VaJUMuBEDne d . .e
k ISGHSB` JUSM`g=e|UL7S??MQU^=SHFH]WEMu KMYCR7RMSVaJc;ZbGHMQW`WM
VPISTGX.ISI9BEX[VaDJYM9I9?X[ByDGJ Z{DBEBoDMBEDdNPI9X[MSR7DTUM9M
?ByTGGHDDBJ(BEBEDWyGNPMSTUJURgR7TUVaMJUKHMB`ERDMQI9nHJUMe ;_HGnHISW`eMTZ TBoVPnGBEe DH K}B`Re MQI9JUMbISB`RUt
F/

-g

@f

ih

kj

ml

h n

bo ?p ?q

-g

r\

e

x1

x2
Unitati
intrare

Nivel functional
si de iesire

z B`[GR7V j|L?MQ^=FHWyG}KMYRMSJ ZbMQV+ISGXPR[VPDB`hQVaRM


PMSX[^=MSJUR7BEI[V+\ ViDB`NPMQWEGWyGBKMuB`MTZ B`RM+;RMSJ ZpMQV YX[sX[DMQD
`

sa

Grila patratica

Grila hexagonala

z BE[GR7V .j (BEFHGR7BKMYPR7BEWEM_BEKBE^=MQDHTB`X[DVPW`MGJBEWEBEhQVaJUMCByDVPW`PXPR7B`J^iBEBoKMEDdNoVa\ J ZbVaRMKMuWEVRMSJ Z;MQW`MQWEM YX[sX[DMQD


]  &] &]
"RgBEDISB`FHVPWEMQW`MJB`FGR7BoKMYJUXPFoX[W`XP[BEB T7GDJSj
k VPCI9SMQST;JCbUISaVa h= D.GVaMRM^BEGH^=W`J ZpFoBE^=XPRMQJVVPDGJ Z0DV\ BEJ$DVa\ BEJ Z;ISByB&W`XPW`RX.ISc;GHGW!DHTZI9BJ Z;BEDX[BEDISVPB W`KHM}BETUDdJG VPDMQJ Z;TUMQJUW`M4MKKM9BEDdnJUDRB`M
J$V\ GDHDB`BEJ$ISVa\ B,J ZpBpXeRMQD4WEVaJ Zb^+BEMX.KKMQMW'XPISRgGKBEXDMPVPeTUJUc;0 MQD W
KMYJUXPFX[WEXP[B`MYMQTUJUMu^=X?KMQWEGW XPFnHMQWEK eAMYRMS[GHW]V?\ VPI9MQTUJUMQB JUXPFoX[W`XP[ByByBI9XPRMQTUFHGDHKMX+I9X[DMQI9JB`N.BEJVaJUM
JUXPJVPWV?\ e
k DHB`NPMQW|;aD.SG` VaR7MDBE^+B`J$FVa\ JXPZbByR7W`JMVPTDGHJ ZUDV\ J(^=E^=X?KF'GVa\ R7W,J Z;KBEJUMxMuVayD4R7VP^+DavUVPVaBRM^V4GW`GHJUMDB`TJ$GVa\ _HJ ZpBE^W`XPGR$W`e J Z;BE^iDBpVPD.I9MQGVP^+TUJ$B`VJU\ MISDVaB`JUNPMSMQPWEXPMPR7e B`M}DBEDdISJUVPRKV\ R7R7GHMSW'J ZbGMQW`D.MQGW`M B
c;MSMQKc;XPR OVaR7KISGGD.GWTVPG^+VPB ^GW`JUMuDB`NPMQWEMPe
k _BErKBE^=9bgMQDH$TbB`X[.D VP W`M(.T7aVPiG}QI7bsgBEpVa'RO JUR7ByKDBE^=BEJ$MQVa\ DJ Z{BET7W`B`MX[DTVPGW`DdMPJe VPD^+VPFHI9WEMQVPTUTJ(VaJUISMxVahuEDrTUMCDFoX?X[KVaGJURgMYBEW`KMiM9GnDDMQBB,XPc;RgGHBEW`DMI9JGZpB`DMCBEKKBEByTU^=JVPMQDDJTZ0VuB`\ X[EDHDdVPJUW`RMPM
GHDB`J$Va\ J ZpBpe 0 D}VPI9MQVPTUJ$V\ ISVaJUMSPXPR7B`MByDJURV\ R7MSJ ZbMQW`MQW`MuKMuJBEF YX[sX[DMQDT7Z BI9MQW`M
I9MQWEGWyVaRMPe
0 D+FRgVPI9JBEI[V
\ TUMGJBEWEB`hSMQVahVx\ TZ BHVaR7sHB`JUMQI9JGR7B^iB.JUM,yDiISVaRMnHMQISVaRMDHB`NPMQWFoX[VaJUMV$NPMQVXVPDdG^iB`J$Vu\ TUJUR7GHI9JGRV \
PMSX[^=MSJUR7ByI[V?\ e
sc t

a

Yv

-w

x\

y/

-z

$\

|{

~}

x\

z B`[GRgV .j|L?MQ^=FHW`MYKM
RMSJ ZbMQW`MuI9MQWEGWyVaRM
se

-1

Conectivitate
totala

W
X0

Y0 =
X0

X =WY

Y1 =
F(X 1 )

Y1

(M)

(N)

Nivel de intrare
(cu unitate fictiva )

Nivel de iesire

zB`MdB`TZ [BERGM+R7V  dj GH(DMSB`FHJ$Va\ RJMSZbB~hSYMQDTZ B JVaI9R7X[MCDMQT7I9I7sJB`MQN.^+BEJVaVaJJUByM


I[V=\JUXPVJVPGW]VD\ MQyBHDRJUMSRJMuZ;MQDHWEMB`NPISMQGWEGGWoDKMuDB`BENPDdMQJUWR7VaKRMCMxBEDT7Z B JURgI9VaMQRW MK MuB`MdT7Z B`RMPGe DBEJ$Va\ J Z;B;TZ BGDDB`NPMQWKM
o ]

~ x&| "],|
"RgBEDISB`FHVPWEMQW`MJB`FGR7BoKMuI9X[DM9BEGDBT7GDJSj
k hQ VaX[JUDMM9Fo?MuByGDDB`BNPEMQDdW`MPJURe MYMQW`MQ^=MQDdJUMQW`MViKX[G&V=\ DB`NPMQWEMuKBETUJBEDHI9JUMPe l GDdJc~X[W`X[T7B`JUMEDTUFoMQISBEVPWWyVRMSJ ZpMQW`MQW`MYXPR7[VPDBt
k J GX[RDV\ M9P?MSByGX[D^=BMSEJUDdR7JUBERI[M(V?\ e MQW`MQ^+MQDJUMQW`MVPI9MQWEGBEVHT7Z BDB`NPMQW&bI9X[DM9?BEGHDBWEVaJUMSR7VPWEMge l M(c;X[W`X[TUMQTIWEVYRMSJ ZbMQWEMQW`MISGiTJUR7GI1t
k J BEFHX[DGM9R7BE?WEByMGKDMYBJUBEDdXPNPFoMSX[R7W`TUXPM4[ByFBpe R7BEDISVaRM4XGDHB`JVaJUMMQTUJUMI9X[DMQI9JVaJ$V\ ISGmMQVEDT$VH\ TZ B{eXPJinc~X[WEX[TB`JUMWEVJUX[VaJUM

Y] "0 7]&"
WEG?GWBEDc;XPR7^+VaJ Z;B`X[DVPWR7MSFRMShQBEDdJ$V}\ ^=X?KGW EDISVaRMiPISGRPMQBEDc~XPR7^iVaJ Z;ByVFR7BEDRMSJ Z;MQVbKMiWEV}GDBEJ$Va\ J Z;ByW`M=ISVaRM
Fz RMQByVPGKVaJUMQW`MKMBEDdJUR7VaRMISVaJURMGDB`J$Va\ J Z;BEW`M4ISVaRM4FHRX.KHGI}TUMQ^+DVPWyGW(KMB`MTZ B`RM 0 Dc;GDHI9J Z;BEM4KM^+X.KGHW(KM
BEDdJUMSR7I9X[DMQI9JVaRMV+GDBEJ$Va\ J Z;ByW`XPRQ.G?GWoBEDc;XPR7^+VaJ Z;B`X[DVPW FX[VaJUMunKM
GDVKByDJURMuISVaJUMSPXPRgBEBEW`MPj


-1

Y0 =
X0

Conectivitate
totala
W1

Wk

k+1
Yk = W
F k (X k )

...
X 1 =W 1 Y0

Conectivitate
totala

-1

X k =W k Yk-1

WK

YK =
F k (X K )
(N K )

Nivel ascuns k
(cu unitate fictiva )

Nivel de iesire

B`[GR7V .j MSFRMShSMQDdJVaRM
TIgsMQ^+VaJBEI[V+\ VGDMQBR7MSJ ZpMQW`MYISG
UJz XPJVPW]V\ EDJUR7MuDB`NPMQW`MQW`MYI9X[DTMQISGJB`NPMPe
p ]

Conectivitate
totala

DHB`NPMQW`MYKMYGDB`J$Va\ J Z;BocbGDI9J Z;B`X[DVPWEM+T7Z BI9X[DMQI9JB`N.BEJVaJUM

Conectivitate
locala

Conectivitate
partiala

z B`[GR7V .j "VaR7BEVPDdJUMKMuI9X[DMQI9JVaR7MV+GDHB`J$Va\ J ZbBEW`XPR(KMYFoMuKX[G&V=\ DHB`NPMQW`M


sq

Conexiuni peste nivele

YK

X k+1 =W k+ 1 Yk X K =W K YK-1
(N k )

(N 0 )

Nivel de intrare
(cu unitate fictiva )

...

Conexiuni
bidirectionale

R etea hibrida
(conexiuni uni si
bidirectionale )

z B`[GR7V ?j "VaR7BEVPDdJUM
KM
I9X[DMQI9JVaRMCEDdJURMuKX[G'V=\ TVPG^+VPB ^GW`JUMuDHB`NPMQW`M
# b

k y'D7UT 7F0R9MP I9|MQWaUVP WHGDG?B`J$Va\ J Z;GHBEW`DXPBER"KKB`R7M(MQI9B`MJ Z~TB`Z X[B`RDHMVPgWeb|ByDTJUc~XPM,RgE^+DJVaVP J ZpWyBEDVB`JLISB`WER7VCISGRMSWVJ\Z;MQKW`MQX[WEMVaRXPRKEDVPDTFB`hQRVaMJUDHM(B`FoNPMQM(WEGDWoBENPGMQDW`M,BEJ$EVa\ DJ Z;ByISW`VaXPRR(MKD.MYG=BEDdM9JUR7BEVaTUJ$RVM\
I9X[DM9?BEGHDBBEDdNPMSR7TUMPe
k GH'D77B`JVaJU[MQ VRMQTUGFoMQI9^JB`NGV\W`JBEnHKHM=B`RKMQI9B`R7J Z;MQB`X[I9DJSVPW(nHM=bGFDR7ByTD4MQ^+BEDdDJUMSVPR7WL^=FMQR7KHX.KBEGGHWTVPKW`JUM+XPR
XGGDDBEBEJ$JVa\ VaJ ZpJUB~M=geF,X[VaTUJUJUMMxET$DdV\ JVPVWEvDGBEDJHWEV\VKRMSByDJ ZpMQW`DMQX[W`M=GISWEG V
XPR7[VPDB`hQVaRMuX[VaR7MQISVaRMTZ B&WEV=I9MQW`MEDISVaR7M
TGDdJFRMShSMQDdJUM
I9X[DM9BEGDByW`MWyVaJUMSR7VPW`M
TVPGBEDNPMSRgTUMPe
== w7
zKM
GDHBEMI9TJZZ{B`B`RX[MPDVaxRMQe,VY,TM(V+RKMSMSc;MSFHRBEVuDH\ KWEVYMY^=VaJX?Va KJGKW[M
EDi^+ISX.VaKRGHM(WHRMSED}J ZbMQISVPVaGHRVYM
JUcbR7GVPDDI9TUJ Zbc;BEXPX[R7D^MQVaVY\ hGHV+\ D+GTUDMQBE^+J$Va\ DJ ZpVPBEW`WHMuKIM(Va JBEDdTZJUB'R7VaKRMuMP ^=X?KaGEDdWHJUERUDt]GISD=VaRTM
MQ^+TGDDdVPJ W
BEDdJUMSR7I9X[DMQI9JVaJUMPe
DdGHW!KHBEDJUR7MFVaR7VP^=MSJUR7BEBOI9MQB^+VPBBy^=FoXPRJVPDJ ZbBOVPBOc;GDHI9J ZpB`X[D&Va\ R7BEB,MQTUJUMVPDT7VP^
_HWyGW|FoX[DKMSR7BEW`XPRVPTUX?ISBEVaJUM
JGJGR7XPRI9X[DM9BEGDByW`XPRi{ ge'VFR7By^+VNPMQKMSRMPXR7MSJ ZbMQVDMQGR7X[DVPW]V}\ FoX[VaJUM+nNoVa\ hQGJ$V\ ISVXISGJB`MiDMQVaPRV \
ISVaRMuFHR7BE^=MdTUZ JUMuKHVaJUM
KMuBEDdJUR7VaRMxTZ BoFHRX.KHGI9MYGD}RMShQGWEJVaJ
~nH[GR7V P ge

<k

X
date
intrare

Y
raspuns

zB`MdB`TZ [BERGMPR7e V P j MSJ ZpMQVPGVDMQGR7X[DVPW]V\ ISVTBETUJUMQ^ KMJURgVPDTUc;XPR7^+VaRMVTUMQ^iDVPW`MQW`XPR=KMBEDdJUR7VaRMiEDrTUMQ^iDVPW`M}KM


0 D}cbGDI9J ZbB`MuKMuTUFoMQISBnISGW G?GWEGBBEDc;XPR7^+VaJ Z;B`X[DVPW M9?BETJ$V=\ KX[G&V=\ ^=X?KGR7BFRgBEDISB`FHVPWEMKMYcbGDI9J ZbBEX[DVaRMPj
oTUMQ?^+DH$ VPbWEPGW aKMB`MTSZ B`;R]MPS0Pib;TU M
Fo0X[DVaJUISMVahQXPGH_W(J ZpBERDMSM
J ZbMQFWEMQR7BEW`DXPRVaEFDWEBEISISVaVaRRMQMV+GHG?D?MQGHB WcbGBEDDc;I9XPJ Z;R7BEBp^+ VaJ Zb B`X[DbVPISWVaRMQMTUJUKMMSFHKBEMDKJMuB`FKc;MuMSMQFHKVac;R7XPVPR ^+OMSVaJUR7R7KBEB
RMSJ Z;MQW`MQB;HVPTGFRgV=TUMQ^+DVPWEGHWEGBKMuBEDdJUR7VaRMP ~nH[GR7V Q ge
]

|{

Y=F W (X)

X
date
intrare

Y
raspuns

z B`[GR7V Q j z GDHI9J Z{B`X[DVaRMQV=GHDMQBoRMSJ ZpMQW`MuISG}G?}KMYJB`F}c;MSMQKc~XPR !VaR7K


DM9.MQ^+FHWEGTBE^=FHWyGiKMCcbGDI9J ZpB`X[DVaR7MDMQBEJUMSR7VaJB`NV\ bKHB`RMQI9J$V\ |MQTUJUMuI9MQWVPWGDMQBRMSJ ZbMQWEMI9X[DTJB`JGB`J$V\ KBEDdJURUt
GDDB`NPMQW.KMOGDB`J$Va\ J ZbB.KMOBEDJURgVaRMCTZ B.GDDB`NPMQW.KM GDB`J$Va\ J Z;B?KM!B`MTZ B`RMPeACVPI[V \ ;& SSS U RMSFRMShQBEDdJ$V \
NPMQI9JUXPR7GW'TUMQ^+DVPWEMQW`XPR(KMuBEDdJUR7VaRMEDR7MSJ ZpMQV?NPMQI9JUXPR7GW'TUMQ^+DVPWEMQW`XPR(KMuB`MdTZ BERMCNwV+V$NPMQVxI9X[^+FX[DMQ DJUMQW`MPj
P wU 1'  S. {
{





%|

r%

r%

BEGDHB'BEDdNPMSR7TUMD.GMQTUJUM=TG?nISB`MQDdJ$V \
oX?TBED$ [bGPRV\ aa+JUR7bMQ]9I9UMSPRbMQ;m Vr0TUDMQ^+ISDVahQVPGWyGWWERGMSBJ Z;MQKW`MMQWEXPByDR(JUyR7DVaR7ISMPVa R7M+TGFDdR7JByDFR7RMSMShSJ Z;MQMQDVrJUM+FoI9MQX[DdDJUM9R7G
V XP_J ZpBEDMTUMQ^+DVPWyGWKMBEMTZ B`RMPe
ACBE^=FoXPJUR7B`NV?\ &EDVPI9MQTJ+ISVahcbGDI9J ZbBEX[DVaRMQVTUMKMQTUc0VH\ TZ X[VaRV\ yDJBE^+F FHGJVP DKnrKMQTI9R7BET$V4\ FR7ByDJURUt]GHDFRX?I9MQT
B`JUMSR7VaJBEN~nHe OKMuc;XPR7^+V?j
 "
r "   U
?
lWEBEMQ^i^+B`JDHV=VPWETUGMWOVaKFMRXQB`MdBETZ ^=BERMQM}VaTUhMVx\ I9FX[R7DByD TByK MSRCV\ gIS VnnBEDHBEDK K}WyBE^+^+X[B`^=JVMQDWEGJBGHWorED4 ISVaRM4MQTUJU MXPWEBEFH^ R7B`J(FR7X.rI9MQ TUGHgW&e B`JU MSDmR7VaByJ^=BENFHe W`MQ ^=VPMQWyB`DdJJ$VaVa\JUMQR7BpV
VPI9MQTUJUMQB'VaFRXQBE^Va\ RgB KMSFHBEDHKMVaJVa JKMYFRXPFHR7B`MSJ$Va\ J ZpBEW`MYWEGHB IVa JTZ BKM r ge

x\

r

F%

+N#

X( t+1)= F w (X( t))

X(0)=X

(sistem dinamic )

starea initiala

Y=X( T)
starea stationara

z B`[GRgV j z GDHI9J ZpB`X[DVaRMQV+GHDMQBoRMSJ ZbMQW`MuR7MQISGRMQDdJUM


r

}
0 DNVa\ J Z{VaRMQV}FoX[VaJUMinNoVa\ hQGJ$V\ ISVnByDKGDFRX?I9MQTuFHR7BEDISVaRMxGHDTBETUJUMQ^ ]TZ B&E^_HGD&Va\ J$Va\ J Z~MdTUZ JUMxFoMSRc~XPRg^+VPDJ Z;MQW`M
FR7ByDVPIgsB`hQB`J ZbBEMuKMuISGDX[VHTUZ JUMSR7MPe
MQDdJUR7GRMSJ ZbMQW`MQW`MDMQGRX[DHVPW`MEDdNoVa\ J ZbVaR7MQVTM
RMSc;MSRV\ WEViXPRgBEI9M^=X?KBnISVaRMV^GHW`J ZbBE^+BEBFVaR7VP^=MSJUR7BEWEXPR;FoX[D?t
KMSR7ByW`M}VPTUX.ISByVaJUMI9X[DM9BEGDBEWEXPR}TZ B(FR7Va[GR7ByW`MVPTX.ISBEVaJUMGDB`J$Va\ J Z;BEWEXPR1ISVaRMVPTB`[GRV\ X^+VPB_HGHD&V\ VPKMQI9NwVaR7M4V
I9X[^=FoXPRJ$Va\ R7ByBoRMSJ ZbMQW`MQB WEVFHRXP_HW`MQ^+VFoMQDdJUR7G}ISVaRMVc;X[TUJ(FHRX[B`MQI9JVaJ$V?\ e
VaFVPISB`JVaJUMQVKMV=EDdNoVa\ J ZbVxMQTUJUMGDViKHBEDJUR7M
I9MQW`M^+VPB'By^=FoXPRJVPDJUMISVPWEB`J$Va\ J ZbBVPW`MGHDMQB RMSJ Z;MQWEMDMQGRX[DVPW`MP
FR7ByD=ISVaRMVPI9MQVPTUJVMQTUJUMTGFoMSR7B`X[VaRVC\ VPW`JUXPR!^=MSJUX?KMPe"X[TB`_HBEWyB`JVaJUMQVEDdNoVa\ J ZUVa\ R7ByBKBEDM9?MQ^=FHW`MFoMSR7^iB`JUMMSN.BEJVaRMQV
c;XPR7^+VPWEB`hVa\ RgBEB.EDKMSJVPWyBEGxVFR7XP_HW`MQ^=MQBKMCRMShSX[W`NaVaJSGDVQNaVPDJVvBE^+FXPR7JVPDJO^+VPBoVPW`MQT"EDISVahQGWoFRXP_W`MQ^=MQW`XPR
FoMQDJURgGISVaR7M=XVPTUJUc~MQW|KMc~XPR7^iVPWEB`hQVaRM=D.G4M9BETUJ$V?\ e"RgBEDFRX?I9MQTGWKM
EDdNoVa\ J ZbVaRMyD4FVaR7VP^=MSJUR7BEBRMSJ Z;MQWEMQBMQTUJUM
ED[WEXP_HVaJ$V=\ BE^=FHWyBEISB`J|Xic~XPR7^iVPWEB`hQVaRMuV=FHRXP_HW`MQ^=MQB{.VPI9MQVPTUJVxFHGJVP DHKn4GJBEWEBEhQVaJ$VY\ yD}c;VahQViKMYc;GHDI9J ZpB`X[DVaRMPe
D
VPW`JVPTUFoMQI9J'BE^+FXPR7JVPDJ&VPWRMSJ ZbMQW`MQW`XPRDMQGRX[DHVPW`M"MQTUJUM
VPKByI[V\ KM|VFRX?KGI9M
RVP\ TUFGDTGRgBTZ BoFoMQDdJUR7GKVaJUM
FMQDdJUR7G}ISVaRMDdGVc;X[TUJVPDdJURMQD7VagJ$?V?\ e Sb{P]|d9o9Ua EQPU
|RX.I9MQT7GWKMEDdNoVa\ J Z{VaRMuTUMu_HVahSMQVahVi\ FoMuKX[G&V\ MQW`MQ^=MQDdJUMPj
k Xx^GWEJ Z;By^=MuKMuBEDc;XPR7^+VaJ Z;BEB"bD.G^+BEJ$V\ TZ B SQ,PHbUSa
k FGHVaDR7VPVP^=W`PMSXPJUR7R7B`JBEWE^ XPRQe KMVPKHVaFJVaRMWEVBEDc~XPR7^iVaJ Z;ByBEW`MFR7BE^+BEJUMISVaRM4TUM}_HVahSMQVahV\ FoMXRMS[GWV\ KM}VvUGTJVaRMV
0 D}cbGDI9J ZbB`MuKMuDVaJGR7V+BEDc;XPR7^+VaJ Z;BEByW`XPROFR7BE^+BEJUMP[yDNVa\ J ZpVaRMQV=FoX[VaJUMYn4KMuGDV=KBEDdJURMYISVaJUMSPXPR7BEByW`MPj
e 1191$EQP a{ UapaH`$aU l BETUJUMQ^GWFRgBE^=MdTUZ JUMKX[VaROTMQ^+DVPW`MKMBEDdJUR7VaRMKBEDiFHVaRJUMQV^=MQKBt
GHWEGBT7Z B?FM!_HVahQVYVPI9MQTUJUXPRgVuKMQTI9XPFoMSRV\ JURVP\ T$Va\ JGR7BEW`M!TUJVaJBETUJBEI9M(VPWEM!FoXPFHGHWEVaJ Z~BEMQB.TJBE^GHWEBEW`XPRI9X[DTUJUR7GByDKG?t1TZ B
XRMSFRMShSMQDdJVaRMOI9X.KHBnISVaJ$V!\ yDuFoX[DKMSR7BPV^=MQKBEGHWEGBpe q I9MQVPTUJ$V\ RMSFRMShSMQDdJVaRM!FX[VaJUM|nGHW`JUMSR7B`XPR&GJBEWEB`hQVaJ$V \
FoMQDdJUR7GVPWEJ ZpB TUJBE^GWEBISVaRMFRXN.ByDKBEDFHVaR7JUMQVxVPI9MQWEGHBEVTZ B ^=MQKHBEGe,ACBEDFHGDI9J(KM
NPMQKMSRMVPW`PXPR7B`J^iBEIYX
VPTMQ^=MQDMQV^=MSJUX.K'Vx\ KMVPKVaFJVaRMI9X[DTUJ$V\ EDJURt]GDVPW`PXPRgB`J^ KMI9X[DTUJUR7GHB`RM
ViFX[DHKMSR7BEW`XPR(ISVaR7M
FoX[VaJUM

kj

Rk\

n}B`JUMSR7VaJBEN+TVPGxD.Ge (MS[GHWEV
KMVvUGHTUJVaRMVFoX[DKMSR7ByW`XPR"VaRMc~XPR7^iVuPMQDMSR7VPWV?\ j =  ;$ UH]g?I9MSMQV
I9MTGPMSR7MQVahV\ I[V=\ ED4FRX?I9MQTGW KMVPKVaFHJVaRMViFoX[DKMSR7BEB&I9X[DM9?ByGDBEB KHBEDJUR7M
GDB`JVaJUMQVTZ BGDB`JVaJUMQVx
ByDJUMSRN?BEDKX[VaR
TMQ^+DVPW`MQW`M=KM=B`MdT7Z B`RMRMQTUFoMQI9JB`NKM=BEDJURgVaRM+VPW`M+I9MQW`XPRuKX[G'V}\ GDB`J$Va\ J Z;Bpe q I9MQTJUMx^=MSJUX?KM
T7GDJOGJBEWyB`hQVaJUMFoMQDdJUR7GxVaFWEBEISVaJ ZpBEBKM^+MQ^=XPR7VaRMCVPTUX?ISBEVaJB`NV?\ .PRgGFHVaRMCVKHVaJUMQW`XPRubISWEGTUJUMSR7ByDdg.VPDHVPWEB`hQV
I9X[^+FX[DMQDJUMQW`XPRFR7BEDHISB`FHVPW`MPe
e $91$EQP l MCKBETFHGDM(KMGD SS"duaHb9aU b^GHW`J ZbBE^=MKMM9?MQ^=FHW`M|ISVaRMCI9X[DJ Z{BEDMFoMSRMQI7sBKM
c;XPR7^+V }"ISG RMSFRMShSMQDdJVP DKTUMQ^+DVPWyGWKMByDJUR7VaR7MP.BEVaR RVP\ TUFHGDHTGWI9XPRMQI9JuEEDxISVahQGW.EDdNVa\ J ZVa\ R7BEB
T7GFoMSRN.BEhQVaJUMFRXPFHR7BEG?t{hQBETMTVPGGDiByDKBEISVaJUXPROKMCI9XPRMQI9JB`JGKByDMEEDISVahQGWoI9MQW`MQBKMJB`FxR7MQI9X[^=FoMQDT$V \
FoMQDVPWyB`hQVaRMgeM_HVahQV4TMSJGWEGB,KMxVPDdJURMQDVaRMFoX[DKMSR7ByW`M+TUMI9X[DTUJUR7GBEMQTIiB`JUMSRgVaJB`NGR7^Va\ RgBEDK^+VwBt
^iB`hQVaRMQVGDdGHBBEDKHBEI9M"KM!FMSR7c~XPR7^iVPDJ ZUV\ TVPG^+BEDHBE^+B`hQVaRMQVGHDMQB[cbGDI9J ZbBEBdKM|MSR7X[VaRMPe DVPI9MQTUJLISVah,R7MS[GWEV
KMVvGTUJVaRMV+FoX[DKMSR7ByW`XPRVaRM
c;XPR7^+ViPMQDMSR7VPW]V \  ;$ UH 1w(GDKM 1
MQTUJUMGHDTUMQ^+DVPW'KM
VPDdJURMQDVaR7M
KMSJUMSR7^+ByDVaJFoMY_HVahQV+TUMSJGWyGBKMuVPDdJURMQDVaRMT7Z BV+^=MSJUX?KMQB KMYXPFJBy^+B`hQVaRMYc;X[W`X[TB`JUMPe
MQWEVaJB`NWEV
EDdNoVa\ J ZbVaR7MQV+TGFoMSRN?B`hQVaJ$V=\ VaFHVaRT7Z B GR7^Va\ JUX[VaR7MQW`MYFRXP_HWEMQ^=MPj
bV a p[a RMSJ ZpMQW`MQB'PVPDJURMQDHVaJUMQj(TUMcbVPI9M=KM
R7MS[GW]V+\ FHR7BEDR7MSJ ZpBEDMSRMQVxKBEDTMSJGW'KMVPDdJURMQDVaRM=V
GHDdGBT7G_HTUMSJ(KMYNaVPWEBEKHVaRM+bISVaRMD.GMQTUJUMGJBEWEB`hQVaJ|ED}KMSJUMSRg^+BEDVaRMQVFoX[DKMSR7BEW`XPR1ge
;_ q TB`[GR7VaRMQVuGDMQB?_HGDMISVaFHVPISB`J$Va\ J Z]BKM .9S0a EQa j|TM(^=MQDJ Z{BEDMOGHD+DB`NPMQW [gg{9; KMMSR7X[VaRM
FoM|TMSJGW[KM|VPDdJURMQDVaR7MEDuTI9XPFGWPMSN?B`J$Va\ R7BEB 10 ~LP P g; EEDNVa\ J Z{VaRMQVKMSJVPWEBEByW`XPRDMQTUMQ^+DB`nISVaJB`NPM
KHBED}ISVPKR7GWoM9?MQ^=FHWEMQW`XPR1ge
" =   Q o7 |7  (
(MShSX[WENwVaRMQVrISWEVPT7BEI[V\ bISGVPW`PXPR7BEJ^+B(_HByDMFRMQISBEhQVaJ Z{B(FoMQDdJUR7GmnMQISVaRMISWyVPT$V\ KMFRXP_W`MQ^=M=VFRXP_W`MQ^=MQW`XPR
DMQI9MQTBEJ$V\ ISGDX[VHTUZ JUMSRMQVVTG?nISB`MQDdJUMKVaJUMKMQTFRMFRXP_HWEMQ^V\ FoMQDdJUR7GVXFHGJUMQVKMQTI9X[^=FHGDM+yD GHDB`J$Va\ J ZpB
W`XP[BEI9M4MQW`MQ^=MQDdJVaRMTZ B(FoMQDdJUR7GmVMQWEVa_oXPR7VGDVPW`PXPR7B`J^ISVaRM4NaVRwVP\ ^4VP DM4ED[sMSJ ZbVaJEDmTJUR7GI9JGR7VWEGBp
^=X?KBnIVP DHKG?t]TUMCKX[VaRKHVaJUMQW`MYFoMuISVaRM
W`MYFR7MQWEGI9RMQVahV?\ e
ACVPI[Vm\ KVaJUMQWEMKMQTUFRMFRXP_HWEMQ^V\ D.GTGDdJ}TG?nISB`MQDdJUMVaJGDISBCFRXP_W`MQ^+V DdGFoX[VaJUMnc~XPR7^iVPWEB`hQVaJ$V*\ TZ B
^=MSJUX?KViKM^+VPB'TGTDdGFX[VaJUMnVaFWEBEISVaJ$V?\ e 0 D4VPI9MQTUJUMTB`JGHVaJ ZpBEB FoXPJnGJBEWEBEhQVaJUMuRMSJ ZbMQW`MDMQGRX[DVPWEMPHMSJVaFoMQW`M
KMYRMShSX[WENwVaRMunBEDKj
e l JVa_HBEWEB`R7MQVGHDMQB(VaR7sBEJUMQI9JGR7BBEDBEJ Z;ByVPW`MISVaRM4TV\ nHMI9X[^=FVaJB`_HBEW]V\ ISGFRXP_HW`MQ^iVmbKMM9?MQ^=FHWEGmTJUR7GI1t
JGR7VDBENPMQWEGWEGBLKMiBEDdJUR7VaRMyDRMSJ Z;MQV4JURMS_HGBEMiT$V}\ nMxI9X[^=FHVaJBE_HBEW]V\ ISG D.G^Va\ R7GW|KMxKVaJUMBEDB`J Z;BEVPWEMiVPW`M
FHRXP_HW`MQ^=MQB;TZ BLVPWEMSPMSRMQVJB`FGWEGB'KM+GDB`J$Va\ J Z;BcbGDI9J Z;B`X[DVPWEMPe l JVa_HBEWEB`R7MQViPR7VPKHGWEGBKM=^+VPW`MQVa_HByWEB`JVaJUM=VPW
R7MSJ ZpMQW`MQB'FR7BEDTUFoMQISBnISVaRMQVxFHVaR7VP^+MSJUR7BEW`XPRCVvUGHTUJVa_HBEWEBO;XRMSJ ZbMQVNaVinISGVaJVa Ju^+VPBPMQDMSR7VPWV\ ISGIVa JYNaV
V$NPMQV^+VPB|^GW`J Z;B,FHVaR7VP^=MSJURgB|VvGTUJVa_HBEWyB~ge}'MQDdJUR7GnHMQISVaRMBEDTUJVPDJ ZpB`MSRMiV4FHVaR7VP^=MSJURgBEW`XPRTMiXP_J ZbBEDMiX
VPD.G^+BEJ$V=\ c;GHDI9J ZpB`M
VPTUX?ISBEVaJ$Vi\ RMSJ ZbMQW`MQB,bKX[G&V=\ RMSJ ZbMQWEM
VQN VP DK VPI9MSMQVTZ B'VaRgsB`JUMQI9JGRVi\ KVaRNaVPW`XPR7B KHB`c~MSRgB`JUMuVPW`M
FVaR7VP^=MSJUR7BEWEXPRFoXPJR7MShSX[W`NwVKX[G&Vx\ FRXP_W`MQ^=MKHB`c~MSRgB`JUMge 0D4VPD.G^+B`JUMISVahQGR7BI7sHBEVaR=T7Z B'VaR7sHB`JUMQI9JGR7VbKM
M9?MQ^=FHWyG}DdG^4Va\ R7GWKMuGDHB`J$Va\ J ZbB~,MQTUJUM^iVPW`MQVa_HBEW]V\ MQVnBEDKTUJVa_HBEWyB`J$V\ FR7BEDFRX?I9MQTGWKMEDNVa\ J ZpVaRMPe
e q W`MSPMSRMQVGD.GBVPWEPXPR7B`J^ KMEDdNoVa\ J ZbVaR7M,FoXPJUR7B`N?B`J ISGVaR7sB`JUMQI9JGR7V(RMSJ Z;MQWEMQBTZ B.ISGISVPDdJB`JVaJUMQVCKM!BEDc;XPR7^+VaJ ZbB`M
KM+ISVaRM+TUM+KBETFHGDMKMQTUFRMFR7XP_HW`MQ^V?\ e DVPW`MSPMSR7MQVVPW`PXPR7B`J^GWEGHB'KM
EDdNVa\ J ZpVaRM=JURMS_HGBEMTV}\ TUMJ ZpBED&V \
I9X[DdJKMPj
bVcbGDI9J ZbByVFMuISVaR7MuX=FoX[VaJUMuRMQVPWEB`hQV+RMSJ ZbMQVPGVbKMQISB&KM
VaR7sBEJUMQI9JGRV\ g
;_TFMQISB`nISGW!P^=MQKBEGWyGB"BEDc;XPR7^+VaJ Z;B`X[DHVPWE4VPWOFHRXP_HW`MQ^=MQBbKMNPX[WEG^GWCTZ BODVaJGR7VKVaJUMQW`XPR+KMQTUFRM
FHRXP_HW`MQ^V\ ge
]

k%

x\

9%|

x%

V

V

V

e q dD JURMQDVaRMQV=R7MSJ ZpMQW`MQBoFoMQDJURgG}V=RMShSX[W`NaVXiVPD.G^+B`J$V\ FR7XP_HW`MQ^V?\ e q DJURMQDHVaRMQV+TUMuR7MQVPWEB`hSMQVahV=\ FRgBEDPVP^t


FWEVPTVaRMQVPRMSJ ZpMQW`MQBEDP^=MQKBEGWBEDc;XPR7^+VaJ Z;B`X[DVPWyTUFoMQISBnIFRXP_HWEMQ^=MQBTZ BVPI9JB`NaVaRMQVrVPW`PXPR7B`J^GWEGHB(KM
yDNVa\ J ZpVaRMPe
e 'MQTUJVaRMQV;NwVPWEByKVaRMQV
RMSJ ZpMQW`MQB!FR7MQTGFHGDMiNPMSR7BnISVaRMQVI9XPRMQI9JB`JGKHBEDBEB,RVP\ TUFHGHDTGR7ByW`XPRuFoM}ISVaRMW`M}K&V \
R7MSJ ZpMQVPGVIVP DKiFHR7BE^=MdTUZ JUMKVaJUMCKMByDJUR7VaR7MISVaRMYD.GxVaFHVaR7J ZpBEDiTUMSJGHWEGBHKMVPDdJURMQDVaRMYKVaR!FoMQDJUR7GxISVaRMYTUM
ISGHDX[VTUZ JUM
RwVP\ TUFHGDT7GWI9XPR7MQI9JSe
.eJBEWEBEhQVaRMQVFRXPFRgBEG?t{hQBET$V\ V=RMSJ Z;MQWEMQBpe
|R7BE^=MQW`M4KX[G&V\ MSJVaFoMTUMRMSc~MSRwV\ WEVFRX[B`MQI9JVaRMQVRMSJ ZbMQWEMQBBEVaRI9MQW`MQWEVPW`JUMWEVVPKHVaFJVaRMQV*bVPDJUR7MQDVaRMQVTZ B
GJBEWyB`hQVaRMQVMQBpe q KMQTUMSXPR7BXMSJVaFHV FRMQ^+MSRHVa\ JUX[VaRMXRMSFHRMShQBEDdJ$V\ FR7MSFRX?I9MQTVaRMQVKHVaJUMQW`XPRQe AMM9.MQ^+FHWEG
KVPI[Vx\ KVaJUMQW`MKMBEDdJUR7VaRM
TMI9X[DTUJBEJGB`MEDNPMQI9JUXPR7BKM
NaVPW`XPR7B D.G^=MSRgBEI9MuXiJURgVPDTUc;XPR7^+VaRMGJBEW]V\ XxRMSFRMShQBEDdJ$V \
DXPR7^iVPWEB`hQVaRMQV=VPI9MQTUJUXPRgV?e


` Mt


   "!$#%'&()'+*,)- ./)0*213

C DFEGIHKJMLHKN.DO

P QSR TUQWVXQWVXQZY=QSQW[@\]Y_^ `9acbd`9[feSghgikjlminogp` ilXq QWV[pQrg+ilXRbds R TUlKYtgie;R TUlX^oib VmQuj9givR e;^oi+j,RlXRglXR,Qr[+lmiw
xdy{z i|i+lXq QWVM[pQ~}gi+lXRbds R TUlM[pQ~livR,`9bd`9Q~eSbd`9b e;R,QS`9lXWbdR,Q`lmiY=bd+RgVMeobhs `9QSR,`9b ijlmRrj,QWib Vmg+VQeSbd`Q;\V
+`9lmQWje y gb i[mi~e;^oij9lm[pQS`9bd`QjT lgilXRbdR,QWbe;RlXqbs gpRlmVmlXWbdRbs KQWivR,`9g^@[pQWVmbd`QWb0`9bdnog+VmglUvi+lXq QWVmgV
[QrlmivR,`bd`QZR,`9b ij~lXR,QZq QWe;R,^ `9gV=,FWSSS,KeSgh{ xdy
"y{z ihilmq QWV[pQ gilXRbds R T=lF[pQrlmQvjT lX`QZeSbd`9b e;R,QS`9lmWbdR,Q0`lmiY=gi+e;R TUlml[pQZR,`9b ijY_QS`w ( /jQWeSlXe;Q y
"y{z ib ij9b +Vg[pQe;^oipQ;plmgil{miR,`Qilmq QWVmgVu[pQlmiR,`9bd`QjT lZe;QWV0[pQlXQjT lm`Q 3eSbd`9QmieSbdWgVre;QWV0b l
j9lm+Vmg`QWb VlXSQWbdvb~s ^e;^oipQWe;RlXq@lXRbdR,Q0R,^ Rb Vb s y ^oipQ;@lgilmVX^ `VXQ0jgiR b j,^"eSlbdR,Q0K^oi[pQS`lmVXQ w r eSg
x SSSjT l  SSS}oX`9QS`QSSQWiRb i[h`bdnogVgilXRbds R T=lml[QrlXQvjT lX`Q y
R,`ge;Rgp`9bgiQWlb j,R,Y_QWV[pQZ`QSR TUQWVXQZQWjR,QlmVmgjR,`9bdRbs je9QWbdRlmeminogp`9b xdy
-1

Conectivitate
totala

W
X0

Y0 =
X0

X 1 =WY 0

Y1 =
F(X 1 )

Y1

(M)

(N)

Nivel de intrare
(cu unitate fictiva )

Nivel de iesire

lXnogp`9b x wMP QS+`QSSQWivRbd`9Quj9e9pQWbdRleobs b0giQWl+`QSR T=QWVmQ3eSggiilXq QWV[pQulmivR,`bd`Q.tZ x gilmRbds R T=l=jT lgiilXq QWV[pQ
lXQjT lm`Qtg+ilXRbds R Ttl_ZjT lFe;^oiQWe;RlXq"lmRbdR,QR,^ Rb Vmb0ivR,`Qri+lXq QWVmgVK[pQrlmiR,`9bd`Qj9T lFe;QWVF[pQrlXQj9T lX`Q y

N.LH G9.ODJ
 gi+e;R T]lX^oibd`QWb{gipQWlob j,R,Y=QWVv[QM`QSR TUQWVXQ
[pQS+lmi[Q[QbdR,`9lme;QWb{K^oi[pQS`9lmVm^ `Fe;^oipQ;@lgilmVX^ `= m ,
jT l[pQY=gi+e;R T=llmVXQZ[pQZR,`9b ijY_QS`0U] m , jT lK^obdR,QZf[pQWje;`lmjb.s `9liw

F, K W" x SSSo


`9lmieSlXb VmbZ`^ VXQWfb0s `b s 6b ipQZ[pQSR,QS`9~lmibd`QWbqdb VX^ `9lmVX^ `cueSbd`Qrb jlXnog`bs `9QSS^oVXqbd`9QWb[pQZeobds R,`QZ`QSR TtQWbb
gipQWlb ig~ lXR,Qr `^ VXQWQ [QrQ;"QW+VmgkQSY=QWe;Rg bd`QWbgip^ `b j,^"eSlmQS`9l[livR,`Qq QWe;R,^ `9l[Q0lmiR,`9bd`Qj9T lFq QWe;R,^ `9l[pQ
lXQjT lm`Q w SSS,6kfeSgk jT lF y
C9G9LO G99G,HOcHKJ
P QSR TUQWVXQWVXQY=QSQW[pY=^ `a%bd`9[mi n QWipQS`b VU igig+b le;QWVmQceSg gijlmipnogp`ilXq QWV_KQS`lXRF`QWb VlXWbd`QWb3[pQcb j^"eSlXQS`ldmiR,`Q
[bdR,Q[pQlmivR,`bd `Q0 jT l[bdR,Q[pQlmQvjT lX`Q y3 e;QWj,R,Qb j,^@eSlXQS`9lK^ R{Y=^ `9b VmlXWbdR,Q`9lihYtgie;R Ttlml
wc %[pQWeSl`QSR TtQWVmQWVXQkK^ R`QS`QSSQWiRbYtgie;R Ttlml%q QWe;R,^ `lmb VXQ y M`^ +VmQWbdRlmeSbbd`^@lfbds `9lml
Ytgie;R TUlmlmVm^ `cK^obdR,QZf[QWje;`9lmjb@s ik^"[fjlm+VleSbdRS@b j,R,Y_QWV]w
`QWjgpgipQWeobs j,QheSgip^ojeqdb VX^ `9lmVmQYtgie;R TtlX QWl [p ^obd`KQWivR,`g^gVXR T=lmQ[Qqdb VX^ `9l%b VXQkbd`,\
nog+QWivR,QWVm^ `~t[pQ.Q;"QWVmgj,QeSgip^ojedw = = ,SSS= = ,9 y Q[p^ `Qj,T R,QQWj,RlX\
~bd`QWbqdb VX^ `9lmVX^ ` Vgl QWiR,`9g^ `9le;Qrbd`nogQWiR [lmi[p^oQWilgVKjb s gh[pQ[Q;ilXR T_lXQ y
3QWj,`9QZ^Y=g+ie;R TtlXQZw j,QrK^obdR,Qrj,+g+ipQZeobs bd`^@lmQWbdvbs KQ eSgh`QWeSlXWlm b{[b eobs bd`QrVX^@ed
[pQZQ;@QW+VmgF =u=uKQWiR,`9g^ `9lme;QrMpli[^ip^ `9fbs [Q;ilXRb.s KQ y
ulXY=QS`9lXR,Qc`^ +VmQWQ
e;^oie;`9QSR,Q^ RY_^ `b VmlXWbdR,Q%eSbu`^ +VmQWQ
[pQ%bd`^@lbd`Q%[pQ
Ytgie;R Ttll y 3Q%Q;"QW+Vmgw
xdy 3QSR,QS`9~lmibd`QWbgipQWl`9QWVmbdR TUlmlYtgie;R TtlX^oi+b VXQmiR,`Qf[p^ogb|s fbds `9llK^ `9ilmi+[[Q6Vmb[+bdR,Q6^ R TtligpR,Qf`9lmi
6b s jgp`bds R,^ `9l
]d[bdR,QWVX^ ` Q;@KQS`9lmQWiRb VXQ y
"y{ Y_QWe;Rg+bd`QWbkgipQWldUW _mi6eSb [`9gVgipQWlj,QS`9lmlR,QWK^ `9b VXQh=qdb VX^ `9lb VXQ.gipQWlfbds `9lle;Q.QSq ^oVmgQWbdvb s
iRlm
K^ `9ili[[QrVmbgikj,QSR [pQqb VX^ `lb ivR,QS`9lm^obd`Q y Iihb e;QWj,R{eSbdj,Qmie;QWbd`9eob~s bd`^Wplmbd`9QWbgipQWl
Ytgie;R Ttll wo  Z' /eSbd`Qjbs jgp``lmi[b0s VXQSn+bds Rgp`9b[+lmivR,`9Q qdb VX^ `9lb iR,QS`9lX^obd`9Q[lmij,QS`9lmQ p W
 FSSmp   jT lFqb VX^obd`9QWbeSgp`QWiRb@s   y
" y
d c9d   , Uho   y Q0eSb gpRb~s ^~ Ytgie;R TUlXQ {wp /} =Y=^oVX^ojlXRbs KQWiR,`9g
QSRbdb[Qe;^@[leSbd`9QfjT l3^Y=gi+e;R T=lmQ  w3 =Y_^oVm^ojlXRbs QWiR,`9gQSRbd+b[pQ6[QWe;^"[lXeSbd`Q
b jR,Y_QWV ievbd RZe; ^o+gjbkVm^ `W  0wK jbs +Qevbd Rb lbd`^ lmbdRbks [pQ.Y=g+ie;R TUlmblm[pQWiRlmeob@s
w '  =/ y
 y3 Vmb jleS bd`9QWb6gi^ `q QWe;R,^ `l [lmi mi eSVb j,QkK^obdR,Qqbds WgpRb
s eSb^b j,^@eSlXQS`Q~miR,`QQWVXQWQWiRgV
jT lgiq QWe;R,^ `%lmi[+lmeSbdR,^ `Mb V+eSVmb jQWl y 3QQ;"QWVmgoeSVmb jb K^obdR,Q ~`9QS`QSSQWiRbdRbs [pQ q QWe;R,^ `gV
SSS x SSS jlmipnog`9bqb VX^obd`9Q x b b i[gp\j,QZKQZ^ WlmR T=lb y
Ii `^olXQWe;Rbd`QWbgiQWl`QSR TUQWVXQiQWgp`^oib VXQ  6K[QWj,RlmibdR,Q.`QSS^oVXqbds `9lmlgipQWl`^ VXQWQ0[Q.b j^"eSlXQS`9Qkt[Q0Q;"\
QW+Vgpbd`^Wplmbd`9QWbY=g+ie;R TtlXQWl cR,`QS+glmQZ`QSS^oVXqdbdR,Qgp`9fbds R,^obd`9QWVXQr`^ VXQWQ w

"! $ # m 

,2,&%'+)d( _+*c^obdR,Q`QSR TtQWb gb, teSbd`9b e;R,QS`9lmWbdRbs [pQ3^.b i"glmRb0s bd`9+lXR,QWe;Rgp`b@s pgib i"glXR
^"[[pQYtgie;R TtlX^oibd`QjT l[pQgib i"glXRrj,QSR[pQ+bd`b QSR,`9lml_Zjbhs bd`^@lQSSQ~Ytgie;R Ttlmb .- e;QWb jRb s
+`^ +VXQWfbs QWjR,Q~lmK^ `Rb iRb~s miR,`9gevbd Rri"g^ `9lme;Q`9QSR TtQWbhK^obdR,Q~jbks bd`9^WplmQSSQ^ `9le;QY=g+ie;R TUlXQft[pQQ;"\
QW+VmgY=g+ie;R Ttlm0b /21uPi"gK^obdR,Q.bd+`^WplmbdRbs `lmivR,`\]^`QSR TUQWbkeSggijlmipnogp`Zilmq QWVUKY=gi+e;R TUlmlVlmilmbd`Q
[QrlmivR,QSn `bd`QjT lYtgie;R T=lml[QZR,`9b ij,Y=QS`{[pQZRlX4 3{QWbq"lmj9lm[pQ y
5 '89 ( ( = *{M`QWj9gp+gipQW eo:b s  QWjR,Q^`QSR TUQWb~beobds `QWlbd`9lXR,QWe;Rg`9lmlKQS`9~lXR,Q pR,QS^ `QSRlmedKjb s
"! $# m  6
bd+`^WplmQSSQ7 Ytgi e;R Ttlmb y Q+giQ~`^ VXQWb<;  jbs j,Q[pQSR,QS`9lmiQ~qdb VX^ `9lmVXQ+bd`9b QSR,`lmVX^ ``9QSR TUQWVXQWl
K^ `9i+lmi[ [pQVmblmipY=^ `9bdR T=lmlVXQheSgip^ojeSgR,Q[pQWj`Q tjQSRgV{[pQb ivR,`9QWibd`Q~b j,R,Y_QWVmievbd Rb e;QWb j,Rb jb s
bd+`^WplmQSSQrQSY=QWe;RlXqKQ y
=" 'SI>  ? %@d( = *0lXAQ ^`QSR T=QWbb iR,`QWibdRbks jbs bd`^@lmQSSQKQ y Q+giQ`^ VXQWb6@ 5
"! $# m 
# B 'bd`9^WplmQWbdvCb s  KQ KQWiR,`9gk[bdR,Q[QrlmivR,`bd`QreSbd`Q0i"gYtb eZ+bd`R,Q[+lmikj,QSRgV[pQZQWiR,`QWibd`9Q y
D
E JH dJ9G
J FIJ H+HKG.OcHJ DIJ JL KNOM DFG9G.D9PJ OJ
{Q
D FJ LMRO HKTG SLODJ
P QSR TUQWVXQWVXQ[lmib e;QWb j,Rbs eSbdR,QSn ^ `9lmQfjgiR[pQWig+lXR,QQS`e;QSR,`^oil 6y U QS`9QWi"gV VdKQS`9e;QSR,`^oi V6+`^q@lmipQ[pQkVmb
gib[lmiR,`Q+`9lmQWVXQ0`QSR TtQWVXQ.ipQWgp`^oi+b VXQ0bd`RlXeSlmb VXQlm+VXQWQWivRbdR,Q yu j,R,Q.q ^ `b[pQWj`Q^`QSR T=QWbipQWg`^oib Vb s
[pQWj,RlibdRbs `QWeSgip^ob+j,T R,QS`lmlg+ip^ `3eSbd`b e;R,QS`QjT leSbd`QbY_^oj,RZlm+VXQWQWiRbdRb.s i6KQS`9lm^ob [b <x W>X \ <x W>Y [pQeobds R,`Q
^QWe9+lXbs e;^"^ `9[p^oibdRbs [Qheobds R,`QfP ^ojQWiv+VbdR,R y 1 b j,R,Y=QWV [pQ`QSR TUQWbQWjR,QheSbd+bd+lmVbs jbs `QSS^oVXq Qf[p^obd`~`^ p\
VXQWQVmlmi+lmbd`j,QS+bd`bd+lmVXQQS`lXR Tb i[`9lmib VXn ^ `9lXRgVc[pQivqbds Rbd`Qkj,KQWeSletb VXn ^ `9lXRgV
QS`e;QSR,`^oi"gVmgl_
[pQSR,QS`9~lmibd`QWbe;^"Q;eSlXQWipR TtlVX^ ` lXKQS`+Vb ipQWVX^ `%eSbd`Qj,QS+bd`bs eSVmb j,QWVXQ y
ZI[]\

^`_Racbed+fbegihj_Pkmlonhpaqrah]loktsPaubeh]vxwdpfbyvkmao[Cz2d]{idpvk|wa_ivkmvnid]h}d+~>v~>ao[
M`9^ +VXQWbdRlmeSbkeSVb jleobds `9llUF[pQWi"glXRbs jT l`9QWeSgip^ob+j,T R,QS`QWbfY_^ `QWVX^ `~dV +bdR,R,QS`9i`QWe;^ noilmRlX^oiVvjQ`QSY=QS`bks Vmb

mieSb [`9bd`QWbgiQWl[pQWje;`lXQS`9lFb j,^@eSlmbdR,Q.gi"gl^ +lXQWe;R.tig+lXRbs Y=^ `9fb@s jT bd+VX^oi6jb ghRlm+bd`ivR,`,\]^eSbdR,QSn ^ `9lXQ.[pQ
^ +lXQWe;R,CQ   B Xd,Si"glXRbhs <  x ( y
z ikQ;@QW+Vmgkjl+Vmg[pQreSVmb j9leSbd`QZQWj,R,Q0e;QWVFb VFb j,^@eSlXQS`9lml[+lmivR,`9Q3^[pQWje;`9lXQS`9QZ`9lmibdR,`9le;Qr[pQr+l@QWVmlKb
gi"gl+eSbd`b e;R,QS`t[pQQ;@QW+Vg~VmlXR,QS`,b 3jT lgi~li[lmeSbdR,^ `%b VeSVb j,QWleobds `9QWlmbulbd+bd`9R TUlmipQt[QQ;@QW+Vmg~qb Vm^obd`QWb
`QS+`QSSQWivRb+b i+[fi"gfbds `9gVK[pQZ^ `[lmipQZb VFeSVmb jQWlFb j,^@eSlmbdR,Q0VmlmR,QS`QWol  y
`^"e;QWj9gV[Q6eSVmb jlXeSbd`Q6[QS+lmi[pQ6[pQ^"[g+V [pQ[pQWje;`9lXQS`9Q6b^ +lXQWe;RgVmg+l y plmj,Rbs [p^ogbs ^"[+b VmlXRbds R TUl
`9lieSlX+b VXQ3[pQ[pQWj9e;`9lXQS`QZb^ +lmQWe;R,QWVX^ `Ww
s giq QWe;R,^ `eSg$qb Vm^ `9lri"gQS`9lme;Qb j,^"eSlbdR,Qgi"glZj,QSR[pQ
 Stt` m ( *13+lXQWe;RgVglZlrj,Qb j,^"eSlbdvb
eSbd`b e;R,QS`9lmj,RlmeSl%j,KQWeSle;Q y6 e;QWj,R,QWl^@[b VmlXRbds R T=lc[pQ[QWje;`9lXQS`Qmle;^ `9QWj,+gi[jlmjR,QWQWVXQ[QeSVmb jlXeSbd`Q
[QWeSlXWlX^oib V\jRbdRlmj,Rlme;Q y
s jlm0K^oVmlmeobs ^ `ilmi[[QuVb0gij,QSR[pQu`lmlXRlXq Q y
. t& ;W ;@, <m ( *13+lXQWe;Rg+V+QWj,R,Qr[QWje;`9lmjmiR,`,\]^b ilXQS`b
lmj,R,QWQWVXQr[QreSVmb jleSbd`9Qrj,KQWeSle;QZb e;QWj,R,QWl[pQWje;`9lXQS`ljQr+bdSQWbdvbs KQZ^~b i+b VmlXvbs jlmiRb e;Rlmeob s y
Ii `QSS^oVXqdbd`QWbeSg`QSR TtQWVXQipQWgp`^oi+b VXQ0b`^ VXQW QWVX^ `u[pQ.eSVmb jleSbd`9Q.jQ0K^ `9ipQjT R,Q[pQVmb[pQWje;`lXQS`QWbn QS^d\
QSR,`9leob s y ub eobs gVXR T=lmQWbY=^ `9QWVX^ `3QWj,R,Q$$ b e;QWb j,RbK^obdR,Q0[pQWje;^o+gjb.s mivR,`\gifj,QSR3[pQ0eSVb j,Q

{@  9fSS % y QS+bd`9bd`9QWbZikeSVmb j,QZQWj,R,Qrb jlmnogp`9bdRbs [pQuQ;plmj,R,QWipR Ttbgi^ `Y=gi+e;R T=ll[Qr[pQWeSlXWlXQ pW
d SSm+6+eSgf.w ' y

IieSbdWgVb[p^ogbs eSVmb j,Q {jT Il  QWjR,Q.j9g@eSlXQWiRbs ^j9lmipnogp`b~s Y=g+ie;R TUlXQ.[pQ[pQWeSlXWlXQ.=3eSbd`Q.KQS`9lXR,Q


eSVmb jlXeSbd`QWbmi^"[+gVgp`fbds R,^ `Ww{ {Z[b eobs jT lig~b l[b eobks = Flmbd`u  [b eobs jT li"gb l
[b eobs =% Iy QWe;R,^ `9lmleSgh`^ `9lmQSRbdR,QWbeobs =M j,Qrb bs elmbd` KQrjgp+`9bdY=bdR T=b[Qr[pQWeSlXWlXQ y

u b eobs Ytgie;R T=lmb.[pQZ[pQWeSlXWlmQQWj,R,QrVlmilmbd`b@s "=M u  SSS|{ 6 dpbdRgi+eSle;QWVXQZ[p^ogb s


eSVmb j,Qj,Q0i"gQWj9e B'UdASpdI # BXSKlbd`jgp+`9bdY=bdR Ttb[pQ[pQWeSlmWlXQrQWj,R,Q.gihlmQS`9+Vmb i y ub eobs i"ghQ;plmj,Rb~s i+lmeSl^
Ytgie;R TUlXQ[pQ[QWeSlXWlXQ0Vlmilmbd`bs eSbd`9Q.jbs j,QSbd`Qe;QWVmQ[p^ogbs eSVmb jQbdRgi+eSlQWVXQ.jgiRi"glmR,Q:' B'Ud,SpdI # BX y
QWivR,`gheSbdWgVFbd`RlmeSgVmbd` } Vmlilmbd`j,QS+bd`9bdlmVmlXRbdR,QWb.QWj,R,Q0lmVmgj,R,`bdRbs mi+n y"y
x2

x2
C1
*
*

C2

C2
+

C1

*
x1

x1

D( x 1 ,x 2 )= w 1 x 1 2 +w 2 x 2 2 +w 12 x 1 x 2 -w 0 =0

D( x 1 ,x 2 )= w 1 x 1 +w 2 x 2 -w 0 =0
Clase liniar separabile

Clase neliniar separabile

lXnogp`9b w lmilbd`%jQS+bd`9bd+lmVlXRbdR,QjT lFipQWVmlilmbd`j,QS+bd`9bdlmVmlXRbdR,Q{mikeSbdWgVb[p^ogbs eSVmb jQt +}


^ R T]lmgiQWbf[pQVmlmilbd`j,QS+bd`9bdlmVmlXRbdR,QK^obdR,QQ;"Rlmi+jbfs VmbeSbdWgV% migi"gV[+lmivR,`9Qgp`96bds R,^obd`QWVXQ
^@[gp`9l]w
 'Ud SpdI # B X *
ub eob0s Q;@lj,Rbrs Ytgie;R TtlmlVmlilmbd`Q o.,=M/_@h  SS,

X W
c ;p; 'U
m{XeSgk`^ `lXQSRbdR,QWbeob s

[b eob6s j9T lFig+b l[b eobs .,=R jT lFr=c KQWivR,`9g^ `lme;Q{ x SSSo4
bdRg+ieSlFeSVmb j,QWVmQrj,Qi"gQWjeu+gR,QS`9ilmeuVmlmi+lmbd`j,QS+bd`9bd+lVXQ y
   ;4 B 'Ud S2@d, # B m< *ub eobs Q;plmj,Rbs Y=g+ie;R TUlmlKVmlmilbd`Q ".=M =F ;c MSS

X W
m{XeSgk`^ `lXQSRbdR,QWbeob s

[+b eobfs jT lFi"gb l[b eob~s .,= r=cKQWiR,`9gk^ `9lme;Q{ x SSSo|
bdRg+ieSlFeSVmb j,QWVmQrj,Qi"gQWjeZjl+VmgVmlmi+lmbd`cjQS+bd`9bd+lmVmQ y
Vb j,QWVXQ+gpR,QS`9ile0Vmlilmbd`jQS+bd`9bd+lmVmQ0jgiRjT ljlmVmgfVmlilmbd`jQS+bd`9bd+lmVmQ y0 Vmb j,QWVXQ.eSbd`Qi"gjgiRuj9lm+Vmg
Vmlmi+lmbd`j,QS+bd`9bd+lVXQ j,Q{i"gQWjeiQWVmlmilmbd`j,QSbd`9bd+lmVXQ y Ii eSbdWgV+b eSVmb j,QVmlmilmbd`j,QSbd`9bd+lmVmlmRbdR,QWbuQWj,R,QlmVgj,R,`9bdRb s
mi+n yc"y
ZI[

ak)bya_P~>kml@{9gPhjwd]qr_ih}g

j R,Q^`9QSR TtQWb e;Qe;^oipR T]lmipQ^jlminogp`b|s g+ilXRbdR,QY=g+ie;R TUlX^oib Vbs bWqFb i[Ytgie;R T=lXQ[pQR,`9b i+j,Y_QS`klmibd`b/s t[pQRlX
3QWbWq@lmjlm[pQjb g+lm^oVbd`b s t[pQfRlXjlXnoi"g y j,R,Q6[QWj,RlmibdRb
s `9QSS^oVXqKbds `lml`^ VXQWQWVX^ `[pQeSVmb jleSbd`Qmi
[p^ogbs eSVb j,Q {jT l@ y


x2

x2
C1
*
*

C2
+

D 1 (x 1 ,x 2 )= D 2 (x 1 ,x 2 )
D 3 (x 1 ,x 2 )= 0

C1
*

C2 +

x1

+
+

o
C3

o
C3

D 1 (x 1 ,x 2 )= D 3 (x 1 ,x 2 )

*
*

x1

o
o

D 2 (x 1 ,x 2 )= D 3 (x 1 ,x 2 )

D 1 (x 1 ,x 2 )= 0
D 2 (x 1 ,x 2 )= 0
Clase puternic liniar separabile

Clase simplu liniar separabile

lXnogp`b w lmi+lmbd` j,QS+bd`9bdlmVmlXRbdR,Q{mikeSbdWgVb eSVmb j,Qt }


`9^oQSi+R TUQWjb lm[pgQSb`b i+`9[^"[Ytgg+ie;Que;R TtjlmQWb3[piQb R,Vm`9gb VKi+[pj,Y_Q0QS`lXQv[pjT lXQ%`Q RlXw j9lXnoig+kdQWiR,`9g.giq QWe;R,^ `
[Q%livR,`9bd`9Qc=WSSSW,u

) mK tU

eSbd`Q3K^obdR,QklmiR,QS``QSRbdR%b j,R,Y=QWVUw[b eob s x bdRgi+eSl+q QWe;R,^ `9g+Vbdbd`R T]lmipQeSVmb j,QWxl {W"b VXR,Y=QWVQWVbd+bd`9R T]lmipQ
eSVmb j,QWl@ y
^ `9QWj,K^oi[pQWipR T=b.[lmiR,`Q3qb VX^obd`9QWb.`^@[gjbs [pQ3`QSR TUQWbkjT leSVmb jb.b j,^@eSlmbdRbs j,QZj,RbdlmVXQj,T R,Q{mib livR,Qu[pQ
blmi+lXR T_lb.`^@e;QWjgV[pQmiqbds R TUbd`Qmmik^oQWivRgVe;^oij,R,`9glm`9lmlj,QSRgVmgl[Qrb ivR,`QWi+bd`Q y
z ij9lmj,R,QW(eSg ^b j,R,Y=QWV3[pQfYtgie;R T=lX^oibd`9QfQWj,R,Q[pQfYtbdRg+ieSVmb jleSbdR,^ `+libd`~eSgY=gi+e;R T=lmQ6Vmlmi+lmbd`bs [pQ
[pQWeSlXWlmQ ve;^Q;eSlXQWipR TUlmlpb e;QWj,R,QWlbZlmi+[= d,uWSSS,{ y QWiR,`9g[pQSR,QS`9~lmibd`QWbZe;^"Q;eSlXQWipR T]lmVX^ `Ytgie;R TtlXQWl
[pQk[pQWeSlXWlmQhj,QkgpRlmVmlXSQWbdvbs g+ijQSR[pQhb ivR,`9QWibd`Q w = SSS=  9feSg x x 6`b s j,gijgV
e;^ `QWe;Rke;^ `QWj,gipvbds R,^ `lmivR,`bds `9lml KQh+bdWbeobds `9glmbj,Q6b gj,R,QWbdvbs lXR,QS`9bdRlXq q QWe;R,^ `gV{K^oi[QS`9lmVX^ `
= d,uWSSSW,{u yc VXn ^ `9lmR0gV[Qrb ivR,`QWi+bd`Q0bKQS`9e;QS+R,`^oig+VmglKe;^oij,Rb@s eSb~b ,^ `9lXRbdR,QWbb VXn ^ `9lXRlVX^ ` [pQ
b iR,`QWibd`Qj9gpKQS`q"lmWbdRb@s mik[p^ogb.s QSRbdKQr`lmieSlX+b VmQ w
IilXR T=lmb VlXWbd`QWb.qdb VX^ `9lmVX^ `K^oi[QS`9lmVX^ ` y
gj,Rbd`QWb lmR,QS`9bdRlXqbs bK^oi[pQS`9lmVm^ `b ib%s QWj,R,Q
b jlmnogp`9bdRbs e;^oK^ `Rbd`QWb{e;^ `QWe;Rb{s KQj,QSRgVv[pQMb ivR,`9QWibd`Q y
e;QWb j,RbrjQ
+bdSQWbdvbus KQ%lm[pQSQWb3[pQ%b3^"[lXeSb K^oi[pQS`lmVXQ[p^obd`[b eob3s `b s j+gijg+V `QSR TUQWVXQWl"i"g0QWjR,Q%e;^ `9QWe;RS
b gj,Rb i+[g@\VXQrb j,R,Y=QWVmi+evbd R`b s j,+gi+jgV`QSR TtQWVXQWlFjb
s j,Qbd`^ lXQZ[pQre;QWVe;^ `QWe;R y
R,`ge;Rgp`9b.n QWipQS`b Vbs bb VXn ^ `9lmR0gVglQWj,R,Q`9QSSQWivRbdRb.s mi+n y  y
C$ee }

xdy P{QSnogVmb.[pQub,g+j,Rbd`QZ[lmib VXn ^ `9lXRgV[pQ{miqKbds R Ttbd`QZb VKQS`9e;QSR,`^oi"gVmg+l+jlm+Vmgj,Qu+bdSQWbdvbs Qu^@[l\


eSbd`9QWbK^oi[pQS`9lVX^ `[p^obd`{[b eobs `b s j,+gij9gVY=gp`ilXWbdR[pQZ`QSR TtQWb@ KQWivR,`9ghq QWe;R,^ `9gV[QrlmivR,`bd`QZ QWj,R,Q
X

&'+= U%d( +*
Qrb VXQSn~qb VX^ `lmVXQZlmilXR T_lmb VXQZKQWiR,`9g v. }
Qrlmi+lXR T_lb VmlXSQWbdvbs e;^oiR,^ `9gVF[QlXR,QS`9bdR Ttlml]e x
I ;$;]d0=SI tB 89) ( *
P
U
1u
P  x L  1
K ;
x t v. }

 x
z U V VbgVXRlmb+bd`eSgp`n QS`Qri"ghjI\bQSY=QWe;RgbdR3ilmeSlK^~bgj,Rbd`Q<V01uP0.mi
lXnog`9bpw VXn ^ `9lXRgV[pQmiqbds R TUbd`QrKQWivR,`gQS`e;QSR,`^oi"gVjlmVmg
[+lXY_QS`lXR[pQZ`b s j,+g+ijgVe;^ `QWe;R y P{QSnogVmb[pQbgj,Rbd`9QrbK^oi[pQS`9lmVm^ `cK^obdR,QZf[QWje;`9lmjbfs j9T lK`9lmiw
[b eob~s x x

[b eob~s x x
j9b gk`9lmi
y
"y PbdRb~[pQre;^ `9QWe;R TlXQ K^obdR,QZ6b VXQWb jb0s mik[lXY=QS`9lXR,QZ^@[gp`lUw
tbv ue;^oi+j,Rb ivR=Q;w x &
=  = t  ;y{  ];+ j,Qhb VXQSn QfVb+QWeSbd`QflXR,QS`bdR TUlXQ|,jT l%KQWivR,`g+QWeSbd`QhQ;@QW+Vmg=  ,
j9g@eSlXQWiR[pQbd`QKQWivR,`9g6bnobd`9b iRbkeobs q QWe;R,^ `9gV6qb~eSVmb jleSbdR3e;^ `QWe;RZ[gpb~s b ,gjRbd`QWb
e;^"Q;eSlXQWiR TUlmVX^ ` y ub eobks +  QWj,R,Qq QWe;R,^ `9gVK^oi[pQS`9lmVm^ ` e;^ `QWj,+givbds R,^ `ulmR,QS`9bdR TUlXQWl fbdRgieSl j,Q
b VmQSn Q0b j,R,Y=QWVmievbd R +  x 2 b [leob s
] + F + L ]2
e;QSQWbe;QrQWj,R,Q0QWe9lXqdb VXQWiR eSg
+L]R +  
3QrQ;@QW+Vghj,QZK^obdR,Qb VXQSn Qb jR,Y_QWVUw
+ 
L ] x
+

1b VXRb
s qdbd`9lmb iRbs ^`QS`9QSWlmivRbhs W tr@d; U <d( w
+  6
+ L ]M
eS|g y
Y

"y{ XV QSn QS`QWbqdb VX^ `9lmVm^ `lmilXR T=lmb VmQ{KQWivR,`glmiegpQWipR TQWbdvbs q"lXR,QSWb[pQ3e;^oivq QS`n QWiR Tbs jT l+Y=^ `9b0eSVmb jleSbdR,^ `9g@\
Vgl y ub eobs QWj,R,Q{K^ojlXlmVoQWj,R,Q3lmi[leSbdReSb jb3s +Q lmilXR T=lmb VlXWbdR,QKQ+bdWbrgip^ `MlipY_^ `bdR Ttlmlp[pQWj,`9Q`^ p\
VmQWfb s y 3Q{Q;@QW+Vmgj,Qe;^oij9lm[pQS`brs eobs [p^ol[lmiR,`Q q QWe;R,^ `9lml[lmi~j,QSRgV+[Qb iR,`QWibd`Q3K^ RM`QS`QSSQWiRb@pVmb
^`9lmfbus bd`9^Wplmbd`Q `^ R,^ RlX+g`9l@b VXQ e;QWVX^ `
[^ogbZs eSVmb j,Q y
^"Q;eSlXQWiR T=llplXKQS`+Vmb i"gVmg+l KQS`KQWi[lmeSgVbd`
KQr[p`9QWbdRb[pQSR,QS`9~lmibdRbs [pQre;QWVXQ0[p^ogb.s +gi+e;R,Qrj,Qe;^oijl[pQS`b.s b.fqdb VX^ `9lmVmQulilXR T=lmb VXQrb VXQZK^oi[pQS`lmVX^ ` y
bd`lmb ivRb0e;QWbb ljlmVbus [pQ lmilXR T=lmb VlXWbd`Q^r`QS+`QSWlmiRbs mijbZs bdY=QWe;Rbd`QWb[pQ qdb VX^ `9lpb VXQWbdR,^obd`9Q3eSgp+`9lmij,Q
i x jb g2 x x y
 y QS`9e;QS+R,`^oig+Vjl+VmgkK^obdR,Q`QS`QSSQWiRbY=gi+e;R TUlmlFK^"^oVXQSQWip
Q w x x   x x [bd`3i"g6^obd`Q;\
eSbd`9 QeSlo[lmiR,`QMe;QWVXQMeSgr`^ `9lmQSRbdR,QWb eobs Q;plmj,Rb%s ^ R,`9b i+j,Y_^ `bd`QMVmlmi+lmbd`bcs w" ' 3 =M
mK =
eSg`9^ `9lXQSRbdR,QWbkeoN
b s ~=u x [b eob|s j9T lig~b l[+b eobks = jT 9l ~=u x [b eob s
j9T lMig+b l[b eobhs =A QgipQ.`^ +VmQWb[b eobhs KQWiR,`9g^ `9lme;QYtgie;R TtlXQK^"^oVXQWb ibs eSg|b e;QWb jRb s
+`^ `9lXQSRbdR,Q%b VXn ^ `9lmR0gVKQS`9e;QSR,`^oi"gVmg+l Y=g`9ilXSQWbdvbs ^3j^oVmgpR TUlXQ y P0b s j,gijgVoQWj,R,Qb+`9bdRlXqj9T leSgp+`9lmij
ikgp`9fbds R,^obd`QWb~R,QS^ `QWfb s y

$cyo I:jym ?? i& >?, p+>e & >]mo< >N>


y2p]&  &xo ?`mc>x @ee<:yx &  mc>x 9ec

xm ? yj o>

. C 'e; tIo ]<* `^ +VXQWb[pQeSVmb j9leSbd`Qlmi+[6Vmlilmbd`uj,QS+bd`9bd+lVb~s `9QSWgVXRbks eobs Q;plmj,Rbfs i b j,R,Y=QWV
mievbd R =]W jbs QrY=g+ie;R TtlXQr[pQr[pQWeSlXWlmQ y
g+ x x 0`QSWg+VXRbs eobs `QWVmbdR TtllmVXQu[pQrb, g+j,Rbd`Qre;^ `QWj,gipvbds R,^obd`QlXR,QS`9bdR TUlXQWlo K^ R%fje;`lmj,Qrb j,R,Y=QWVUw

+r x M +%[b eob~s +


+0 x M + [+b eobs +
q"lm[QWivR]S 6_ [pQWeSl+gpR,QW e;^oijlm[pQS`beobs Q;@lj,Rb:s A eSg ]W o. y
3QWeSlUw
+r x + ] +
M`lmiklmi[g+e;R T_lXQZ`9QSWgVXRbs lmQW[+lmbdR eob@s wc + r x x e y
Q[pQrb VmRbs +bd`R,Q +[+b eobs + r x j + %bd`Q0VX^"edw
+  x  +  +  
+   +  
M`lmili[ge;R T_lXQ`QSWgVXRbs lmQW[+lmbdR0eob@s w + ~ x  x 
@ y {^ Rb i+[ eSg%+ x g+ipnolmgV
Y=^ `9bdR{[pQ0 + r x rjT l j,QZ^ +j,QS`qbs eob@s w
e;^oj %+ 0 x ,M ++ 0r x x  x x  e" @
ub eobs `9QWjgp+giQW eob~s igkQ;plmj,RCb s eub jR,Y_QWVKmievbd R + eM x M + eS%bdRgi+eSlUw
Vmlm e;^oj c+ 0 x ,


b j,R,Y=QWVmi+evbd R. + e x  + eWrb [lmeob6s b VXn ^ `9lXRgV
+jgp`9[Feob s eSl%e;^ojB KC xdy QWeSlcQ;plmj,R|b s e
e;^oiq QS`n Qumifig6bds `%ilXR[pQZ+b+j9T l y

ZI[

ak)bya_P~>kml@{9gPhjq"gPhp~mdp_ih}g

QS`9e;QSR,`^oi"gVgVXRlX+VgkKQS`9lXR,QeSVb jleSbd`QWbmib l0gVmR3[pQ.[p^ogbs eSVmb j,QeSge;^oi[lXR T=lmbeSbb e;QWj,R,QWbkjb~s +Q


Vmlmi+lmbd`j,QS+bd`bd+lmVXQ y 3li+g+ie;RQ
q QW[pQS`Qb V"bd`9lXR,QWe;Rgp`lmlUQS`e;QSR,`^oi"gVvgVXRlXVmgZQWj,R,Qc^u`QSR TtQWbueSbd`Qce;^oiR T]lmipQ
gikilmq QWV[pQ gilXRbds R TtlKYtgie;R TtlX^oi+b VXQuR,^ Rb Ve;^oipQWe;RbdR,Q.eSgfe;QWVXQr} x g+ilXRbds Rl[pQrlmiR,`9bd`Q y
^oi[pQS`lmVXQZe;^oipQ;plmgilmVm^ `c[livR,`QZgi+lXRbds R TUlmVXQu[pQrlmiR,`9bd`Q~jT lFe;QWVmQZY=gi+e;R TUlX^oib VXQteSbd`Qj9givRR,^ R,^@[bdRbs g+ilXRbds R TUl
[pQ~lmQvjT lX`Q3K^ RZ^ `nob ilXWbdR,QmiR,`,\]^fbdR,`9le;Q MeSg| Vmlmi+lml%j9T l} x e;^oVX^ob ipQ=QWiR,`9gb6eSgp`9li[pQhjT l
gilmRbdR,QWb.e;RlXqbs b j,^@eSlmbdRbs `9bdnog+VmglKgilXRbds R TtlVX^ `%Y=gi+e;R TUlX^oib VXQ y
ulmi+gi+e;R[p Qq QW[pQS`Qb VYtgie;R TtlX^oibds `9llU+KQWiR,`9g6g+ijQWib V[pQlmivR,`bd`Q0 j,Q^ R TUlipQ0j,QW~ib VmgV
[pQrlXQj9T lX`QZ b j,R,Y_QWV]w

$
b [leob s  K S@{ 6 x 
lmi+[ Vmlmi+lmb [lmi bdR,`9le;QWb y P{QSWgVXRbdRgV3^ R Ttlmi"gpR[pQeobds R,`Q`QSR TtQWbj,QlmiR,QS``QSR,QWbdvb|s mi ^@[gV
gp`96bds R,^ `Ww
Qr[pQSR,QS`9lmibs e;^oK^oipQWivRb~b@lfb s 3bq QWe;R,^ `9gVmg+l~w
m ,b
lbd` 3QWj,R,Qe;^oi+jlm[pQS`9bdR li[lmeSbdR,^ `9g+VeSVb j,QWlFeobds `QWlmbmlbd+bd`R TtlmiQZq QWe;R,^ `9gVF[pQ0lmivR,`bd`QZ y
?o

c` Ie 

lXQ0jQSRgV[pQb ivR,`9QWibd`Q =  SSS=  9.g+i[pQr x SSS.QWj,R,Qli[lmeSbdR,^ `9g+VeSVmb j,QWleobds `9QWlmb


ml3bd+bd`R TtlmiQ6 y VXn ^ `9lXRgV3[pQb iR,`QWibd`9Qb VuKQS`9e;QS+R,`^oig+Vmgl gVXRlXVmgQWj,R,Q^Q;@Rlmi[pQS`Qbe;QWVmgl3b V
KQS`9e;QS`^oi"gVmg+lojlmVmgr+bdb i+[g@\j,QcKQcbgj,Rbd`QWb3K^oi[pQS`lmVX^ `[p^obd`mieSbdWgVomi.eSbd`Q%`QSR T=QWb gbui"gY=gp`ilXSQWbdvb s
`b s j,gijgVe;^ `QWe;R y R,`9ge;Rg`9b.b VXn ^ `9lXRgVmglQWj,R,Q0[pQWje;`9lmjbs mi+n iy X"y
&'+= U%d( +*
Qrb VXQSn~qb VX^ `lmVXQZlmilXR T_lmb VXQZKQWiR,`9g x  v }
Qrlmi+lXR T_lb VmlXSQWbdvbs e;^oiR,^ `9gVF[QlXR,QS`9bdR Ttlml]w  x
I ;$;]d0=SI tB 89) ( *
P
U
1u
P  x L  1
K ; x 
[pQSR,QS`lmib s 3 x SSS0eSgh`9^ `9lXQSRbdR,QWbeob s 2 x 
I / U 3
U U  }
  }


 x
z U V VbgVXRlmb+bd`eSgp`n QS`Qri"ghjI\bQSY=QWe;RgbdR3ilmeSlK^~b gj,Rbd`Q<V01uP0.mi


lXnogp`b X w Vmn ^ `9lXRgV[pQmiqKbds R Ttbd`9QrKQWivR,`9gKQS`9e;QS+R,`^oig+V0gVmRlX+Vmg




13j,QS`qdbdR TUlmlmVXQ`QSY_QS`lXR,^obd`QuVmb.b VXQSn QS`QWb`9bdR,QWl[pQ

miqKbds R Ttbd`QuKQWiR,`9gQS`e;QSR,`^oi"gVj9lm+Vmg`b s 6b iqb Vbd+lmVXQ


jT lmieSbdWg+VMKQS`9e;QSR,`^oi"gVmg+lgVXRlXVmg y M`9lmi+eSlX+b VmgV`QSWgVXRbdRZ`9QSY_QS`9lmR,^ `Vmbke;^oiq QS`n QWipR Tbfb e;QWj,RglMb VXn ^ `lXR
QWj,R,Q w
$cyo c  &>c2L?o]?? & > L> p+> < >




> piy L  &x@ ? >c


 &}x c& ] 

J H dJ9JGFJIH+HKG.OcHJ DJIJLKNOM DFG9G.D9JPOJ


{DQFJ O .D .GOODJ
M`lmieSlX+b VmQWVXQ6[lmY_QS`QWiR T_QmivR,`9Qb e;QWjR,Q|`QSR TtQWVmQ jT luKQS`9e;QSR,`^oilZj9givRhVmQSnobdR,Q|[pQ^@[gVu[pQlmiR,QS``9QSRbd`Q|b
`b s j,gijgVgljT l[pQZ`9lmi+eSlX+lmgV+b VXn ^ `9lXRgVmglK[pQivqbds Rbd`Q y
QS`9e;QSR,`9^oilml{j9givRe;^oijlm[QS`9bdR Ttl{`QSR T=QWVmQ6[pQWj,RlibdR,Qf`QSS^oVmqKbds `9ll gip^ ``^ +VXQWQf[pQ6[QWeSlXWlXQteSg jgiR
`^ VXQWQWVXQ[pQeSVmb jleSbd`9Q{[QWeSlbdbd`QipQWe;QWjbd`bks [pQSR,QS`lmibd`QWbgilmRbds R TUlmleSbd`9Q`^@[ge;Q0lmQvjT lX`QWbbplmfb@s
KQevb i[`QSR TtQWVmQWVXQ[lmib e;QWb j,Rb0s eSbdR,QSn ^ `9lXQj9givRM[QWj,RlmibdR,Q
mijQWeSlb V`9QSS^oVXqKbds `lml@`^ +VmQWQWVX^ `[pQ bd`^@lbd`Q
b j,R,Y=QWVFeobs `b s j,+gij9gV+`9QSR TtQWVXQWlQWj,R,Qelmbd`{jQWib VmgV[QrlXQvjT lX`Qu`9^"[g+j y
QWVmQb l`QS`QSSQWiRbdRlXq Q`QSR TtQWVXQ0g+ilmilXq QWVj9givRe;QWVXQ0eSgfY=gi+e;R TUlmlF[pQ0R,`9b ij,Y=QS`Vmlilmbd`Q y 2i 6b e;QWb j,Rbs eSbdR,Q;\
n ^ `9lXQZj,Q{mi+eSb [p`QWbdvb.s `QSR T=QWVXQWVmQ 3 I Rlmq Q I{QWbd` VXQWQWiRpeSg^jlmipnogp`bs gilmRbdR,Qu[QulmQvjT lX`Q
`QWj,KQWe;RlXq. 3 I tgVXRlXVXQ RlXq Q I{QWbd` VXQWQWiReSg~~b lp0gVmR,Q gilXRbds R Ttlp[pQlXQvjT lX`Q y e;QWjR,Q
`QSR T=QWVXQb gY=^oj,RlmiR,`^@[gj,Q0iKQS`9lX^ob [bkb ilVX^ ` <x W>Y [pQ~eobds R,`Q lm[`^a j9T Pl 3^ y `9Q[pQS^oj,QS+lX`9Q~[pQKQS`,\
e;QSR,`^oih^~b j,R,Y=QWVF[pQr`QSR T=QWb^obdR,Qr6gpRlmVmlmWbdRb0s KQWiR,`9gkb`QS+`QSSQWivRbY=gi+e;R TUlmlKVmlmilmbd`9Q3e;^oiRlmi"gpQ `9lieSlX+b VXQWVmQ
bd+VmleSbdR TUlmllmi[mik`9QSn `QWjlmbVmlilmbd`bs jT l+miVXR,`9bd`QWb.Vmlmi+lmbd`b.s bj,QWib VmQWVX^ ` y
VXn ^ `9lXRgV%`9^ +gj.[pQ l[p`^a j9T l 3{^ /KQWivR,`g [pQSR,QS`9lmi+bd`QWb+bd`9b QSR,`9lVX^ ` QWjR,QhR,^ R~gi"gV%eSg
eSbd`9b e;R,QS`jgpKQS`q@lXWbdR[+bd`+bdWbdRcKQ{b VXRbs l[pQSQjT lb igQb e;QSQWb.blilmlXvbds `lml@gig+le;`9lXR,QS`9lg[pQ QS`^obd`9Q yc QWV
b lY=`QWe;q QWiR{ gpR lmVlXWbdR e;`9lXR,QS`9lgQWjR,QQS`^obd`QWbbds R,`9bdRlmeobs eSb VeSgVmbdRbs KQrj,QSRgV[pQrb ivR,`9QWibd`Q y
lXQ =  SSS=6vK9j,QSRgV[Qrb ivR,`QWi+bd`Q y
`^obd`QWbbds R,`bdRlmeobs KQrj,QSRgVF[Qrb ivR,`QWi+bd`QrQWj,R,Q w
] M x  |

QMK^obdR,QcVmge;`9b0j9T loeSgQS`9^obd`QWb bds R,`bdRlmeobs QW[lXQKQj,QSRgV[pQb iR,`QWibd`Qu=^ R T]lmi"gpRb s [+lmi ] `9lmiumbds `R TlX`Q
VmCb % y 13lXQWe;RlXq@gVKb VXn ^ `9lXRgVmgl[Qmivqbds R T]bd`Q0[pQSq"lipQrb j,R,Y=QWVlmi+lmlXWbd`QWb.Vmg+l mi`bd^ `9R{eSgk+bd`9b QSR,`9lml
n `9gp bdR TUl+mif y
IifeSbdWgV`QSR TtQWVmQWVX^ `Vmlilmbd`Q QWj,R,QY=g+ie;R TUlXQrbds R,`bdRlmeobs eSg6lmil gilme y QWi R,`9g6[QSR,QS`9lmibd`9QWbVmgl

eSbd`QhlilmlXSQWbdvb6 s KQ j,QK^ RgpRlmVmlXWblmi jR,`9g QWiR,Q[+lmib VXn QS`9bVmlmi+lmbd`b s y Ii eSbdWgVmieSbd`Qh x
jT leSg+ i"g6[QS+lmi[pQr[Q. `9QSWgVXRb~s eobs lmi+lmlXWbd`QWb~Vmgl ] QWj,R,Q.QWe9+lXqb VmQWivRbs eSg
lmi+lmlXWbd`QWbVmgl]w
] M x  ,]

x  =  x

gi[Q  = /jT l  y
Q.^ +jQS`qKbs eobks bdR,`lme;QWb QWj,R,QjlmQSR,`lmeobs j9T lK^ WlXRlmqf[pQ;ilmRb@s K[QWeSl ] 3bd`Qgilmil gi+lme y 1
`9lfb.s qbd`lmb ivRbs [pQ[pQSR,QS`lmibd`Q0b~lmi+lm0g+VmglVmgl ] j,Q+bdSQWbdvbs KQ[pQSR,QS`9~lmibd`QWbgie;RgVmg+le;`9lXRlme
b VFVmg+l ~+b [lmeobs Qu`QSS^oVmqbd`QWbjlmj,R,QWgVmg+l mi`9bdK^ `R eSg6 y
































1b VXRb
s ^@[b VmlXRbdR,Q0[pQr[pQSR,QS`9libd`Qrb~VglF+eSbd`9QK^obdR,Qr6bdVmlmeSbdRbfs jT lQWiR,`9gkeSbdWgVKmiheSbd`Q!

"i g
QWj,R,QY=gi+e;R T=lmQbds R,`9bdRlmeob@s "QWj,R,Q{[pQbZY_^oVm^ojl@^QSR,^@[brs lXR,QS`bdRlXqKbs [pQ lmillXWbd`Q yz ibZ[+lmivR,`9Q e;QWVXQ{b lj9lm+VXQ
QWj,R,QQSR,^"[bn `9b [lXQWiRgVmglKeSbd`Q0e;^oi[ge;QVbgp`9fbds R,^obd`QWb`QSnogVbs lXR,QS`bdRlXqKbs [Qb,g+j,Rbd`QrbK^oi[pQS`lmVX^ `Ww
+r x M + ] +,
eSg ] r ] uSSS ] +{uu`QS`QSSQWiRb i[n `9b [lXQWiRgVMVmg+l lbd` +b jg+VM[pQ
[pQWje;`9Qvj,T R,QS`Q +eSbd`Qumih[p^oQWi+lmgVKb VXn ^ `9lXR~lmVX^ `[pQmiqKbds R Ttbd`9QrQWj,R,Q[pQWi"glmRc`bdRb~s [pQmiqbs bds R TUbd`Q y
^ `9ili[[QVmbb e;QWb jRb s lm[pQSQbY=^oj,Rh[pQSSq ^oVXRbdRfb Vmn ^ `9lXRgV lm[`^a]\ 3^ mi/eSbd`Q6ijbs b ,gjRbd`QWb
j,QeSb VmeSg+VXQWbdvbks j,QS+bd`9bdRZKQWiR,`9g6+QWeSbd`QR,QS`9QWi^ `ilmi[6[pQVmbqb VX^obd`9QWbQS`^ `9lmle;^ `QWj,gipvbds R,^obd`QQWeobds `9gl
Q;@QW+Vmg=]vtc[lmikj,QSRg+VF[pQrb iR,`QWibd`Q w

] x 9 x m t x m t K W
#"

"

%$&

('$

$&

('$



)



, gjRbd`QWb.+QWeobds `QWlF^oi+[pQS`9lZQWj,R,Q[pQSR,QS`9lmi+bdRbs [pQr[pQS`9lXqdbdRb.+bd`R Ttlb Vbs bVmgl ] w


+ ] 0t
VXn ^ `9lXRgV[pQmiqbds R TUbd`Qkqb|e;^oij,Rb6mibd`9eSgp`n QS`QWb`QSKQSRbdR bs bj,QSRgVgl%[pQhb ivR,`9QWibd`QjT li b,gjRbd`QWb
K^oi[pQS`9lVX^ `rb ibs Vmbmi[pQSVmlmilX`9QWbkgipQWlce;^oi[lXR T=lmlc[pQ^ `9lX`Q y Iib e;QWjR,Qhe;^oi[lXR Ttlmlcj,R,`9g+e;Rgp`9bfb Vmn ^ `9lXRgVmgl
QWj,R,Q[QWje;`9lmjbs i+n iy Y"y
*

$+

C`<$ee }
xdy b Vm^obd`QWb,

`QS`QSWlmiRbs QS`^obd`QWbubplmfb3s b [lmjbs miY=bdWbu[pQ%b ivR,`9QWibd`QZjT lvQWjR,Q%[QWig~lXRb s R,^oVXQS`b ipR T]b

Vbb ivR,`QWi+bd`Q y
"y ubdR,^ `9lmRb0s e;^oiq Q;@lmRbds R TlmlVgl ] QSR,^"[pQWVmQ[pQ{~lmilmlmWbd`Q[pQ{RlX~n `9b [lXQWiR
jg+ivRe;^oiq QS`n QWiR,Qt[bd`
i"g~miki"gfbds `%i+lXR[pQZ+b+jT lKeSbb VXn ^ `lXR0g+VKQS`e;QSR,`^oi"gVmgl_ y M`lmieSlX+b Vbr`^ VXQWfb.s eSbd`Qbd+bd`9QZQWj,R,Q
e;QWbfbkq"lmR,QSSQWl[pQe;^oivq QS`9n QWipR Tb@s eSbd`QK^obdR,Q|e;^oivR,`9^oVmbdRb@s ivR,`,\]^k^obd`9QWeSbd`Q~fb s jg`b@s F`9lib VmQSn QS`QWb
`bdR,QWlM[pQmiqKbds R Ttbd`Q y 3Q`QSnogVbs j,Q.Y=^oVX^oj,Qj,T R,Q^k`bdRbks e;^oij,Rb iRb@s w x x ]y~z ib[lmiR,`Qqb Vm^ `9lmVXQ
e;QWVb lKY=`QWe;q QWivRY_^oVm^ojlXR,QZQWj,R,Q w xdy
"y IilXR T=lmb VlXWbd`QWb3K^oi[pQS`9lmVm^ `c] x ,j,Q%QSY=QWe;RgpQWbdvb@s "[Qc`9QSnogVb@s veSg.qdb VX^ `9l@b VXQWbdR,^obd`Q[lmi x jb ge9+lmbd`
2 x x y
E JH dJ9J LMN N.LH G9G FJ HDO
H WJMDL33HKGrN.J .JG9GODJ
ub eobfs gi+lXRbds R TUlmVXQ[pQlXQj9T lX`Qb gYtgie;R Ttlml[QR,`9b ij,Y=QS`ipQWVmlilmbd`Q.bdRgieSl`9QSR TtQWb gbhK^obdR,Q`QS+`QSSQWivRbjT lYtgie;R Ttlml
e;^oiRlmigQipQWVlmilmbd`Qft[+lmi|b s eSbdR,Qg+ijlipnogp`0i+lXq QWVMYtgie;R TtlX^oi+b Vi"gK^obdR,Qb jlXnogp`bh`QS`9QSSQWivRbd`QWb^ `lmeobds `QWl
Ytgie;R TUlml_ y ulXY=QS`QWipR TtbYtbdR T9b|s [QfeSbdWgV3gilXRbds R T=lmVX^ `Vmlmilmbd`9Qhj,Qfb ilmY_QWj,Rbs bdRbd Ri Y=g+ie;R TUlX^oib VmlmRbdR,Qfevbd RjT l%mi
b VXn ^ `9lmR0gV[Qmivqbds R TUbd`Q y
I[pQSQWbhb VXn ^ `lXR0g+Vmgl[pQ0miqKbds R Ttbd`9QQWj,R,QR,^ Rlmilm~lXWbd`QWbQS`^ `9lmlKQj,QSRgV[Qb ivR,`QWi+bd`Q b gj,Rbd`9QWbh[pQ
RlXkn `9b [+lXQWivR lmi[bd+VmleSbdRb.s QWiR,`9g+QWeSbd`9QrQ;"QW+Vmgh[lijQSRgVF[pQrb iR,`QWibd`Q0b jgp`9bVgl w

] M X t K ; ,


.-

32

0/

*

&'= U%d( *
Qrb VmQSnqb Vm^ `9lmVXQZlmilmR T_lmb VmQZQWiR,`9g x  v }
QrlilXR Ttlmb VmlXSQWbdvbs e;^oiR,^ `9gVQrlXR,QS`9bdR TtllU~ x
;]d0=SIot 8 m ( *
P
U
1u
P F x L  1
I ;$;]d.vt4
=oIo U '+ 7 5 ', ; ;

K x 
 x 
x   }
99 X ;yXdN 8d  = cS =p WS ;yv. 't,'d

1u
P F x L  1
K x 
/ m  t
d
~
r x
P r i
z U  1u
4



65

7

lXnogp`b Y w Vmn ^ `9lXRgV[pQmiqKbds R Ttbd`9Q l[p`^a \]3{^


eSgb,gR,^ `9gVcgipQWlcQSR,^"[Q[QRlXn `9b [lmQWivR y Ii b e;QWjR.eSbdhe;^o^oiQWivR,QWVXQn `9b [lmQWivRgVglVmg+l jg+ivR.[pQ
Y=^ `9b@w
= ; ;t
+]

K
lmbd`bgj,Rbd`QWbuK^oi[pQS`lmVX^ `eSbZgp`9 bd`Q%bu`QSSQWiRbds `9lml"KQS`QWelmlK=  QWj,R,Q{j9lmlmVmbd`b{s b VXn ^ `9lmR0gVgl /lm[p`^a\
3^ eSgf[lXY=QS`QWipR Ttbeo:
b s  K ;t y
VXn ^ `9lXRgV{`^ `9lg@\]WlmjS%ig+lX:R V [pQWVmRb\]`9gVX<Q V@ bd`Qb e;QSQWb+jT lZj,R,`ge;Rgp`bs eSbb VXn ^ `lXR0g+V /lm[p`^a]\ 3{^
[lXY=QS`9lmi+[[p^obd`{`9lmi`QWVbdR TUlmb[pQreSb VmeSgVKKQWiR,`9tg y




8

$&

:



;

C$ee }



xdy u bdR,^ `9lmRbs ipQWVmlmilbd`9lXRbds R TllYtgie;R T=lmlmVm^ `0[pQR,`9b ij,Y=QS`.Y=g+ipR Ttlmb6[Q~QS`^obd`Qki"gb l


[QSR,QS`9lmib6s ^jgp`9bdYtbdR Tb s
bd`9bdK^oVX^olm[b Vb@s "[pQWeSl ] K^obdR,Q3bq QWbb l0gVmR,Q3lilmQ y ulmib e;QWjR ^ RlXq~i"g~b lQWjR,Q3nobd`b i@\
RbdRb0s bdRlmipn QS`QWbu+`9lmi.b VXn ^ `9lXR~l"[QRlX.n `9b [lXQWiRMbZlmil0gVgl noVX^ +b VpeSl+b VXn ^ `9lXRgV@j,QK^obdR,QVd+VX^@eSb>V
ivR,`,\g+iklmilm VX^@eSb V y
"y{ eSlXQWipR Ttbkb Vmn ^ `9lXRgVmgl[pQS+lmi+[pQ0b lgVXRZ[pQ^@[gV[pQb VXQSn QS`9Q~bK^oi[pQS`9lmVm^ `lmilmR T=lb VXQkj9T lb`9bdR,QWl
[Qmivqbds R T]bd`Qr[QWevbd R%mikeSbdWgVVmlmilmbd` y
"y3 QWVXQrb lF[pQWj{gpRlmVmlXWbdR,QZYtgie;R T=lmliQWVmlmilmbd`9Q3[pQZR,`b ij,Y=QS`{jgiRSw
tbv+gie;R T]lmbVm^ nolmj,Rlmeob@s w
B x Q;@x 2 @K
x x
*

;<

Se g6 BM B; x BK, y


=+gie;R T]lmb.Rb i+w
.<

BK ;Q;Q "" @@KKF xx


<
<

eSg6 BM
x UBK, y
GO G,HJ O J DJH J9JD WJMJPF W{D /ODxF LMNNGTKJ

z ibu[lmiR,`Qce;QWVmQ%~b l"~bd`9l@VmlmlXR,Qcb VXQ%`QSR TUQWVXQWVm^ `eSg.gi.ilmq QWVQWjR,Q b e;QSQWbreobus ig.K^ R`QS`QSSQWiRbZg ipQWVXQcYtgie;R Ttlml
jlm+VXQ Ke;QWVb l[pQWjZeSlXRbdRZQ;@QW+Vmgflmi+[6e;QWVb VYtgie;R TtlmlVX^ `K^"^oVXQWipQ.[pQ.+bd`9lXRbdR,Q w w  x  x
eSg ~= [+b eobs e;^oiR T]lmipQZgiki"gfbds ` bd`{[pQre;^oK^oipQWiR,QrQSnob VXQeSg x jT lx~= x mikeSbde;^oivR,`bd` y
QWVb ljl+VmgkQ;@QW+VgfQWj,R,Qe;QWVb VYtgie;R TUlXQWl /21uP t}' y 1`QSR T=QWbbd`Z+gR,QWb~`QS+`QSSQWivRb /21ZP
[b eobs bd`9Q[p^ogbs gi+lXRbds R TUl[pQrlmiR,`9bd`QjT lgib.[pQlXQj9T lX`QZeSgk^Ytgie;R T=lXQr[pQZR,`b ij,Y=QS`{eSbd`Qrq QS`9lXeob@s w
=u W =uc = Wc
q@lm[pQWiR Ytgie;R Ttlmb~jlXnoi"gkYtgie;R Ttlmb~Vmlmilmbd`bs j9b g6elmbd`e;QWbjlXno^olm[b Vbs i"ghK^ R{j9bdRlmj,Ytb e;Qe;^oi[+lXR TtlmlmVXQr[pQb l
jgj y
Iije9l`9lmib [b s gpnobd`9QWbg+iglcilXq QWVclmiR,QS`9QW[lbd`ZmiR,`Qe;QWV%[pQlivR,`9bd`9QjT l%e;QWV%[pQklXQjT lm`Qj,QK^obdR,Q
`QS`9QSSQWivRbYtgie;R TUlmAb /21uP yp e;QWb j,Rb^ RlXq QWbdvbs gRlmVmlXWbd`QWb`QSR TUQWVXQWVm^ `
Y=QSQW[pY=^ `acbd`[eSgb lKgVXR,QuilXq QWVXQ3[pQ
gilmRbds R T=lYtgie;R T=lX^oib VmQ y Q3`QWbd`eSbdR eobs bdVmlmeSbd+lmVlXRbdR,QWbZ`QSR TtQWVmQWVX^ `cgVXRlilXq QWV+eSgYtgie;R T=lml[pQ3R,`9b ij,Y=QS`cVlmilmbd`Q
KQ R,^obdR,QZilXq QWVXQWVmQ ig~QWj,R,Q3jQWileSbdRlmqb lVmbd`n+b0s [pQWevbd R
b0e;QWVX^ `ceSggii+lXq QWVmmiY_^oi[Fv^`9QSR TtQWb0ipQWg`^oib Vb s
eSgb lgVXR,QilXq QWVXQbWqFb i[Y=g+ie;R TtlmlVmlilmbd`Qr[pQR,`9b ijY_QS`3K^obdR,Q0`QS+`QSSQWivRb[p^obd`uYtgie;R TtlmlVlmilmbd`Q y j,R,Y=QWV
j,Q0Q;"+Vlmeobs [pQe;QZmihb ,^ `9lXRbdR,QWb^@[pQWVXQWVX^ `{Y=gi+e;R TUlmlmVXQr[pQR,`9b ij,Y=QS`b VXQgilXRbds R T=lmVm^ `{[pQKQi+lXq QWVXQWVXQrb jeSg+ij,Q
jgiR ipQWVmlilmbd`Q y
=

>

.<

?2

!@A2

*B

xW

 
   

   
                   

                           
                       
                            
              
        
                       
                       
 
        
    !"#" $     %    & '(     
   ) *   !"+, $       -'%   
   
     *      
.                
   /   
      0    $           /*      

 

   /    


       1         
       0                          
                            
    /    / 
     /          
 2 /     $*             0
 3             /  /    
           
 
                      
  
      0     

            
      
 3         /                
 
  /            4/         
 /

   
          
   $ 
 * 
     1        $          

                     0
       
 *   1           /  

   1       /            /   
   1      
   5  1       
           /      
 
 %    
     65.       1    $  !*
!

XOR 0 1
0

0 1

1 0

7  !0 1      
     65.




&       


                  
             %           $  
    !     *      $  *     
     $
  8*                         0
  9   $    $     $


  $    *


***
    $ * 9 $!  $*


  $**     9 !   !    $ * 9 $  $*


 $** 
5        
             
   
  $       *          
-1

Y=
X0

Conectivitate
totala
W1

Wk

k+1
Yk = W
F k (X k )

...
X 1 =W 1 Y0

(N 0 )

Nivel de intrare
(cu unitate fictiva )

Conectivitate
totala

-1

X k =W k Yk-1

...

WK

YK =
F k (X K )

YK

X k+1 =W k+ 1 Yk X K =W K YK-1
(N k )

(N K )

Nivel ascuns k
(cu unitate fictiva )

Nivel de iesire

7  80 4       


                        
                )     0
8

 
  
% ! 4 /       $ 9 !   9      9 !  *      0
      9 $ *     9 ! 
 9 
 

          9   $  *
% 8 %        !    !  
0   9  
  

    9 !  $         :        )!*
.
 /                /   
  
 /       
            / 
/  )                     




   


% /    
           
    )  
      
 
 
              $  
  /*                    
  
;   /      /
  
           
 

           )          /  
%  /    /

     
   <= ' !""!> <(/ ' !"+">
<7 1 1 !"+">0

 
    0         
        
    
        
       
  
      
  

    
    

      
 
 
        $ * 9    
 
    0
  $ *        
       $* 9 
  $* 9 
  
  
                       

                         
      
 /             ? ?  <!",@>   
   
         /              /0

       
 


    $ *        

   0       
    0      ! 
$


 * 9



$  $ * A


A 

 



  $ **

%       
 =1)3  <!"+">    0

 
    0 <: !>        " 
  
    
  
     $8 A !* 
   
  

B

 #
   
       
  $ * 9



 $

 

 A  * A 

  
     $* 9    !


8 A !
 $
     
                     

 
 #
  
  
    
  $ * 9



 $ *

 



  
    $* 9    !




  
 



 
    

  
  

                    
             
/ /    
  
 C              
 %          /              
     /                
     
               

  

    
            /  
   
       
        / 4            0


 
    
 ;            4       1 

        /       


     %   
   C 
               
             %        
   
$           *    $       *   /
 
  
     1 
   C /            )  
  )     D              )      
;    E/               
       
 
           1    

 /                    0 $  ! *


$
!
*
 
    
         !  
             
                          
    
    
       0

!
" $ 


 *   " $ 


 * 9
" $


 * 9
# 



!
$
!    *
8 

$!*

           
      
4                  

       $!*
 
                   /       
         

  " 
     
      
   
      
               /  $      
  /*    
   /   
            
&C         
 /
   
         
                           0
 
             C          
   
                            
                     ;   /
     - ?%.5% G H53                

x1

xj

.
.

x N0

.
.

.
.
.

y1

.
.

.
.

N0
1

yi

N1

W
(w 1 kj)

N2

y N2

W
(w 2 ik )

7  B0 4       


%       C                $ B*
                         
                         
       %       C           
     
" $   *           
      






        .    9 $ * 9 $    *  9 !  
   *     9 !    !     9 :      
 9 $ * 9 $ 
  
                     9 !    9     
 9 !  
  *     0
          " $

  *
$" $


$

 $ * 9  $ *$!   * 9  


9 $!    * $$
   
 





$8*

  
9  $ *$!    *
  *
$" $


$

9

 $ $ *


 $!   * 9    $ *


$

 
$ * $!    * 9
 







9   $ *  $ *$!    * 9  $ *   9  
$B*


  9  $ *    
&       
                 

     $ *              
       

    /
     0 $  * /'  9     $   *
% /
  $8*   $B*     C     
   %   
     $ ! *     / "   /           "  C    )

            ) /          
   
   
            C            
              -'  0
 

 $ F* 2                     C    )
 
         3            
      
   C    /   C        

   
 $ ,* 2                    

 C         %           
 
       "  % 
   C     /       
         

      
 4  

0

               $    


  $)!!**
     &$:*
       " 
           '
     ' 9 :

   
 
  


.;%; H
75. % 9 ! # 5

  !"#"$%     75.I .      9 


  &'#"$%


 9  $
 *$!   *  9 !  $         *
75.  9   ! ! 5 $         *
  
 9  $
 *      9 ! 

   


( %


9  A &$'*   9 !    9 :    9 ! 

" 
 

%

"9:
75. % 9 ! # 5

          75.I
" 9 " A !    
" 9 "(#

.

9A!
J3H2 $" "  * 5. $' ) ' *

7  F0   /'       

      
 4  

0

               $    


  $)!!**
     &$:*
       " 
           '
     ' 9 :

   
 
  


.;%; H
K 9 :     9 !    9 !    9 : 
75. % 9 ! # 5
  !"#"$%     75.I .      9 
  &'#"$%


 9  $
 *$!   *  9 !  $              *
75.  9   ! ! $         *
  
 9  $
 *      9 ! 


  


K 9 K A     9 !    9 :    9 ! 

   


( %


9  A &$'*K   9 !    9 :    9 ! 

" 
 

%

"9:
75. % 9 ! # 5

          75.I
" 9 " A !    
" 9 "(#

.

9A!
J3H2 $" "  * 5. $' ) ' *

7  ,0   /'       / 

Variante ale algoritmului Backpropagation

Pornind de la algoritmul BackPropagation standard pot fi dezvoltate diferite variante care difera
ntre ele prin:
modul de alegere a ratei de nv
atare: constanta sau adaptiva;
relatiile de ajustare (determinate de algoritmul de minimizare utilizat, ce poate fi diferit de
algoritmul gradientului simplu: algoritmi de tip gradient conjugat, algoritmi de tip Newton,
algoritmi aleatori de descrestere, algoritmi genetici etc.);
modul de initializare a parametrilor: initializare aleatoare sau bazata pe un algoritm de
cautare.
parcurgerea setului de antrenare (influenteaza doar varianta seriala a algoritmului): secvential
a
sau aleatoare;
functia de eroare: pe lang
a eroarea medie patratica se pot folosi si masuri ale erorii specifice
problemei de rezolvat (de exemplu n cazul problemelor de clasificare se poate folosi si eroarea
bazata pe entropie);
criteriul de oprire: pe lang
a criteriul bazat pe numarul maxim de epoci si pe eroarea corespunzatoare setului de antrenare se pot folosi si criterii legate de eroarea pe setul de validare
si de marimea ajustarilor din cadrul ultimei epoci.
Motivatia dezvolt
arii unor variante ale algoritmului standard o reprezinta faptul ca acesta
prezinta o serie de inconveniente:
Convergenta lent
a: necesita multe epoci pentru a atinge o valoare suficient de mica pentru
eroarea pe setul de antrenare.
Blocarea n minime locale: o data ce algoritmul ajunge ntr-un minim local al functiei de
eroare, algoritmul nu permite evadarea din acest minim pentru a atinge optimul global.
Stagnarea (paralizarea): algoritmul stagneaza ntr-o regiune care nu este neaparat n vecin
atatea
unui minim local ca urmare a faptului ca ajustarile aplicate parametrilor sunt foarte mici.
Supraantrenarea: reteaua asigura o buna aproximare pe setul de antrenare nsa poseda o
capacitate de generalizare redusa.

Problema convergentei lente.

1.1

Cauze.

Algoritmul BackPropagation standard, fiind bazat pe metoda gradientului simplu, necesita utilizarea unei rate mici de nv
atare pentru a asigura convergenta. Aceasta alegere conduce la necesitatea unui num
ar mare de epoci.

1.2

Solutii.

Exista solutii euristice (modificarea ratei de nvatare n functie de evolutia valorii erorii si varianta
momentului) si solutii bazate pe utilizarea unei alte metode de minimizare.
Adaptarea ratei de nv
atare. Propriet
atile metodei gradientului sugereaza ca pentru a se asigura
convergenta algoritmului BackPropagation este necesara folosirea unei rate mici de nvatare. Aceasta
conduce ns
a la o durata mare a procesului de nvatare. In cazul unei functii patratice de eroare
1
E(W ) = 2 W T AW + bT W + c (retelele liniare) se poate determina valoarea maxima a ratei de
nv
atare care nu provoac
a oscilatii, = 2/max (A) (max (A) este valoarea proprie maxima a a
matricii A). O buna viteza de convergenta poate fi atinsa folosind o valoare a ratei apropiata de
cea maxima.
In cazul general nu mai exista o singura valoare critica pentru deoarece functia de eroare
nu mai este patratic
a. Din acest motiv pare natural sa se adapteze valoarea lui n functie de
caracteristicile suprafetei de eroare.
Rata de inv
atare influenteaz
a comportarea algoritmului de nvatare n modul urmator: valori
mici ale ratei pot conduce la convergenta lenta iar valori mari pot conduce la oscilatii n procesul
de cautare a minimului functiei de eroare.
Notam cu (p) rata corespunzatoare epocii p iar cu E(p) si E(p 1) valorile erorii corespunzatoare epocii p respectiv epocii anterioare. La sfarsitul fiecarei epoci, dupa calcularea erorii
se efectueaza urmatoarea analiza:
Daca E(p) > (1 + )E(p 1) atunci se ignora ajustarile efectuate n cadrul epocii p si se
modifica rata: (p) = a(p 1), 0 < a < 1;
Daca E(p) < (1 )E(p 1) atunci se accepta ajustarile efectuate n cadrul epocii p si se
modifica rata: (p) = b(p 1), 1 < b < 2;
Daca (1 )E(p 1) E(p) (1 + )E(p 1) atunci se accepta ajustarile efectuate n cadrul
epocii p si rata se pastreaz
a nemodificata.
Valoarea utilizat
a n regulile de mai sus se alege mica (de exemplu, = 0.05).
In afara variantelor euristice de alegere a ratei de nvatare se pot folosi si metode de minimizare
unidimensional
a pentru a alege la fiecare epoca rata care asigura descresterea maxima.
Varianta cu moment. O alta tehnica euristica de accelerare a convergentei algoritmului Backpropagation consta n utilizarea ca ajustari n epoca curenta a unei combinatii convexe dintre ajustarile
aplicate la epoca anterioar
a si ajustarile calculate la epoca curenta pe baza semnalelor de eroare.
Intuitiv, utilizarea ajustarilor de la epoca anterioara joaca rolul unei inertii aplicate n procesul
de cautare a minimului functiei de eroare. Tehnica momentului poate fi aplicata atat variantei
seriale cat si celei batch a algoritmului. Pentru a ilustra tehnica o vom exemplifica pe structura
generala a variantei batch a algoritmului (figura ??. Pentru a simplifica notatiile atat ponderile
cat si ajustarile si valorile momentului vor fi desemnate prin matricile generice: W , respectiv
2

Etapa 1. Initializ
ari. W = rand(1, 1), M = 0
Etapa 2. Proces iterativ de ajustare.
REPEAT
:= 0
FOR l := 1, L DO
Etapa FORWARD
Etapa BACKWARD
Cumularea ajust
arilor
k
k
ij := ij + ik,l yjk1 , i = 1, Nk , j = 0, Nk1 , k = 1, K
Etapa ajust
arii propriu-zise:
W := W + (1 ) + M (ajustarea ponderilor)
M := (1 ) + M (retinerea momentelor pentru epoca urmatoare)
1
Recalcularea erorii: E(W ) = 2L
p=p+1
UNTIL (E E ) OR (p > pmax ).

PL

l=1

Pn

l
i=1 (di

yil )2

Figura 1: Structura generala a variantei cu moment


M . Prelucrarile corespunzatoare etapelor FORWARD si BACKWARD sunt cele de la algoritmul
BackPropagation standard. Valoarea parametrului asociat termenului moment () se alege ntre
0.2 si 0.9.
Utilizarea altei metode de minimizare. Metoda gradientului simplu utilizata n deducerea ajustarilor
din cadrul algoritmului Backpropagation standard are viteza mica de convergenta. Metode de minimizare caracterizate prin viteza mai mare de convergenta sunt metodele de tip gradient conjugat
si cele de tip Newton.

2
2.1

Problema bloc
arii n minime locale
Cauze.

Principala cauza a blocarii ntr-un minim local este faptul ca metodele de tip gradient sunt metode
de optimizare locala, permit
and determinarea punctului de minim aflat n vecinatatea aproximatiei
initiale (valorile initiale ale ponderilor).

2.2

Solutii.

Pentru a evita blocarea n minime locale se pot utiliza metode euristice sau poate fi nlocuita
metoda de minimizare locala cu una de minimizare globala.
Metode euristice. Se bazeaza pe ideea ca introducerea unor perturbatii aleatoare n algoritmul de
nvatare permite evadarea dintr-un minim local. Cea mai simpla tehnica (care nu implica modificarea algoritmului) este de a relua algoritmul de antrenare de la valori diferite ale ponderilor
initiale. O alta varianta consta n perturbarea aleatoare, pe parcursul antrenarii, a valorilor ponderilor (wij := wij + ij .

Etapa 1. Initializ
ari. W = rand(1, 1)
Etapa 2. Proces iterativ de ajustare.
Calcul eroare E(W ) pe setul de antrenare
REPEAT
Generare ajustari aleatoare (ij = rand(1, 1))
Calcul ponderi modificate: W 0 = W +
Recalculare eroare E(W 0 )
IF E(W 0 ) < E(W ) THEN se accepta ajustarile (W = W 0 )
ELSE ponderile ram
an nemodificate
p=p+1
UNTIL (E(W ) E ) OR (p > pmax ).
Figura 2: Algoritm de cautare aleatoare
Metode de optimizare global
a. Utiliz
and metode de optimizare globala pentru determinarea punctului de minim a functiei de eroare este posibila evitarea blocarii n minime locale. Metodele cel
mai frecvent utilizate sunt:
algoritmi de cautare aleatoare;
algoritmi de tip simulated annealing (calire simulata);
algoritmi genetici.
Consider
am ca exemplu un algoritm simplu de cautare aleatoare (fig 2). Aceasta varianta simpla
de algoritm aleator nu este eficient
a ns
a poate fi utilizata ca tehnica de alegere a valorilor initiale ale
ponderilor n Backpropagation. Rolul cautarii aleatoare este sa plaseze valorile ponderilor n zona
minimului global pe cand rolul algoritmului Backpropagation este sa rafineze valorile ponderilor.

Problema stagn
arii

Stagnarea algoritmului de nv
atare nseamna stoparea procesului de mbunatatire a ponderilor ca
urmare a unor valori prea mici ale termenilor de ajustare. Situatia este ntalnita cand se ajunge
ntr-o portiune plata a suprafetei de eroare.

3.1

Cauze

Principala cauza a stagnarii o reprezint


a valorile mari ale semnalelor de intrare n unitatile functionale
bazate pe functii de transfer de tip sigmoidal. Derivatele functiilor sigmoidale de transfer devin
foarte mici pentru valori mari n modul ale argumentului (de exemplu, pentru argumente mai
mari n modul decat 10 derivata tangentei hiperbolice este mai mica decat 108 ) . Cum valorile
derivatelor intervin in termenul de ajustare a ponderilor rezulta ca ponderile nu vor fi modificate
semnificativ. Valori mari ale semnalelor de intrare n unitatile functionale de pe nivelele ascunse
pot fi produse de valori mari ale ponderilor sau ale semnalelor de intrare n retea.

3.2

Solutii

Stagnarea poate fi evitata prin penalizarea valorilor mari ale ponderilor sau prin eliminarea derivatelor
din termenii de ajustare.
Prima varianta poate fi aplicata prin adaugarea unui termen suplimentar functiei de eroare
prin care se penalizeaza valorile mari ale ponderilor. Astfel n locul erorii medii patratice, E
P
2 , al doilea termen cuprinz
se foloseste Em (W ) = E(W ) + i,j wij
and suma patratelor tuturor
ponderilor retelei. Parametrul > 0 reflecta importanta care se acorda penalizarii valorilor mari
ale ponderilor.
A doua tehnica poate fi implementata prin nlocuirea derivatelor partiale din ajustari cu valori
calculate pe baza unei relatii de recurenta. Pe aceasta idee se bazeaza algoritmul RPROP (Resilient BackPropagation) n care ajustarea corespunzatoare parametrului wij la epoca p, wij (p)
se stabileste n functie de semnul derivatei partiale a functiei de eroare:

wij (p) =

ij (p)

if

if

ij (p)

if

E(W (p))
wij
E(W (p))
wij
E(W (p))
wij

>0
=0
<0

unde termenii de ajustare sunt determinati pe baza regulii:

ij (p) =

aij (p 1)

ij (p 1)

bij (p 1)

if
if
if

E(W (p1)) E(W (p))


wij
wij
E(W (p1)) E(W (p))
wij
wij
E(W (p1)) E(W (p))
wij
wij

>0
=0
<0

cu parametrii 0 < b < 1 < a (de exemplu, b = 0.5, a = 1.2). Valorile initiale ale termenilor de
ajustare, (0) se aleg relativ mici (de exemplu 0.1). In RPROP, se impune o limita superioara
pentru ij astfel ca toate valorile ajustarilor sunt trunchiate la o valoare prestabilita max (de
exemplu max = 5.0).

Problema supraantren
arii

Supraantrenarea este situatia n care eroarea retelei este mica pe setul de antrenare nsa mare
pentru date de intrare ce nu apartin acestui set. Aceasta nseamna ca reteaua nu are putere de
generalizare.

4.1

Cauze

Cauzele supraantren
arii pot fi mai multe: numar prea mare de unitati ascunse, volum mic al
setului de antrenare, tolerant
a prea mica la antrenare, numar mare de epoci etc. Acestea fac
ca reteaua sa modeleze inclusiv zgomotele din setul de antrenare reducand abilitatea retelei de a
generaliza pornind de la exemple. Nu pentru orice problema oricare dintre elementele enumerate
mai sus provoca supraantrenare. Experimente numerice au aratat ca un numar prea mare de epoci
genereaza mai frecvent supraantrenare decat un numar mare de unitati ascunse.

4.2

Solutii

Atunci cand cauza supraantren


arii o reprezinta numarul prea mare de epoci, o solutie simpla o
reprezinta controlul num
arului de epoci prin modificarea conditiei de oprire. Aceasta se poate
5

realiza prin a calcula atat eroarea pe setul de antrenare cat si eroarea pe un set de validare disjunct
de cel de antrenare si de a opri antrenarea n momentul n care eroarea pe setul de validare ncepe
sa creasca. Pentru a construi setul de validare, setul de informatii cunoscute se divide n doua
seturi disjuncte. O tehnica clasica este cea a validarii ncrucisate (cross-validation) caracterizata
prin faptul ca se construieste succesiv cate un set de validare prin extragerea a k elemente din setul
de antrenare. La fiecare noua construire a setului de antrenare se aleg alte k elemente. In felul
acesta se evita prezenta sistematica a acelorasi elemente n setul de antrenare, respectiv n cel de
validare.
In cazul n care se presupune ca numarul de unitati ascunse este cauza supraantrenarii solutia
este de a aplica tehnici de adaptare a numarului de unitati ascunse. Exista doua categorii principale:
(i) constructive: se porneste cu un numar mic de unitati si daca reteaua nu are suficienta capacitatea
de reprezentare (de exemplu nv
atarea nu progreseaza) se mai adauga unitati; (ii) destructive: se
porneste cu un num
ar mare de unitati si daca reteaua nu are suficienta capacitate de generalizare
atunci se elimina unitati (pentru eliminare sunt selectate unitatile a caror contributie la semnalul
de iesire este relativ mica).

   

  


 
    

   

  
 
 
  
  
  
  
 
   


 
 

   
 
  
 
 


 
  

      

 
      

 
  
   



  !      
   "  
     # 
 
  
    $
 %      
    %  

      
  &

    
     
 

     
 
 
 

  


 
    ' # # 
   

 
    
 

     #  
   
  


 

      %        

        


  




   

  
  
 &


 ( 
  

     
#  



     
    
    
 

 
      


  


   #    #  


 )&     

    
    % &     
 ( *+

   % ,  -   
   % ,   -  
.
             
           
  $


 %         
 % ,



   %        


  
  &


 
   
 



   #
   

  .  
           
   
     
  %       !   

 
   
#   
      #     # $

 %    




(     
    

        
       



 
       
   
       #  
 

 
 

     
  #      

#     
  #  /

   
 0 '     
 '
  
  
  

   
 
  
 
   
 
   
 
 

       #   0         
 
 
     


       
 
       
   
,

      

1   
      

    
 


 
 
   &
 

  
$

 

 







   
   

$   
  

  

2


  



  





 





 
      


   

  
   


  


    

( 
   &



     
 
  
    

  
   

 
        
  
# #   &
  ' 

    &
       
    

  

 
 
 
#  
        #  &
  
            

 
  
 
  
# 
      
   "
   

   #   

 
     #   ' #     
 

 
      
  
     
 
 

 
  .      
             #    
   
     #   '   
    &
  

    

  

 


  
 

3 

4 '


 
   $       
 
    
  &
/

   
 

  
 

      #  

  
 

.  
         
  

  # 


  

 /
 # 




 &
   



   

$     
  

         

. ' 
 

        


#  
 ' # #       $
 
 


 



  
       

5       ' # # 
 
         

   
   


#   

  
 

        
 $

 

  % ,

  

 
















  % ,6 
            

3   
     
 
     


#  
  '
    
 
 
$


 

  %   





  %  
 

 


6





  %  , 


         




  %  , 

 

         



   
 
 

 73   
  '
  

 
      
 
 , 

  #  
  

 73 /
 
           

  
   '    
  

3 

          
 
   #



         
 

)3)58
0 ! % ,
$

 %   " 


 
 % ,

 % 2



 %   "  

 
 % ,

# % ,


 %   " 


 
 % ,


    

9:8.1   
   

  


 ,$ 5    
  
  
  73   




       

;  
          
 

       
    
$
  
          % ,
 <
  
 


  
 
    % ,
 <
  
  
  &


 
   
 

    % ,
 
 % 2
 



  

(    #
 
 
  


  
   ' #   
 
# #  

  


   



 
 
   
 

  '
  
    
.  #               
    
   
 
 #    
    5  %  
  %           ,

  9
& 
    
 
   #
  '  &


 

'  =0 .
  #  
    

$ 2
2 2
, ,
2 
,
,
   
  
 
> 
 
    
  #   



            
            
  
          
    0 
 
      #

?


        
 
    #
 
   

 
   

3 ' 
  

     $    
 
 

 
    '
 

           
      "   /     

 
        "    

 :
    
    '
 

 

     ' #  

 9   

     # 
  

 
. #   
 '     
 
 
 

$        


  
   
9 
 
     ' #        
     
  

  ' #  
 
    
  
     #    



   

   
            


 



  6
!



# #     
 

   
 
 
    
)3)58
! 
   "    
    
$   

$



  
 
   
   ,

  

  


    "       
$    #   $

,
  %  $

 % ,

 


9:8.1  



  

  



 6$ 5
     @ A/


#$ 

, 5
  
    
        /  
    /   
    
 


6 3
 
      


     



 
  
? 5
 

     
   
  


# #
 


  

 

              


 
 ' #   


 



#
 ?        



#       
 

  
 
  #  &    
 
         
 

 

 

 
   
    
       
 *

   
 
;     

"  #     

  

 
 
; 


 
 
# #  

  


    #     



 
    '

 

    ;   "    # 

4

 
   ( 
  
   
  4   
4 '
 


       
"  '
           
 



 4

 
   
 
>






"

!  '
  


      
!



# #  
          
    
!



# #

   
 
  % , 
      "  2
,
)3)58
0 ! % ,
   #
  
    ,

   
    % 
 
   <
. 
     8B):   %   - "
   
)1!)     
    $  %  - , 
   % 

.    #

   
 
  %  - ,
 
     " 
     " % "  %  2
,C
9:8.1      "  

 ?$ 5
   
  
 ' #       





 




  


;    
     #        

  
  
 
; 
  

 
     

 


     
     

   


 
  
 ; 
  
 
    

 
 
       

              
  
0      

   
  
        '
  
 
         $

 % & 
  

         
 
   

&  D2 E
,C

0  

    
 % ,6  
  -  
  



    
     



 

  


  
  

 

 



0      
    
 

  
      
   

  
   
      
 
 
   '
 5   
 
   '
  
  
  &

 
  
   

 

 


 
       '

 
  5      
#   

  
      
   

  &  
 F
/BG
9  #  
              
    .
 


   
  &


  
     

 

  
       
 
$   0               

 &


 

=0



 
 
 
 
   




 




 
 


    


   


 
  
   


 

 

   


 





 









 
 





     



 

      








 


      
 
   

 


 

 
  
  
  
  

  
 

!    
  
 







 

 

 

 


    


 



 
 "

 
 
 
  # 





    

 $

    
 
 




  

    " 
%

15
10
5
0
-2

10

12

"  %& ' 



  

  
  



  
  
    
 


 #

 
 

     






 
      
 


   ! (
    !

   
  
 
  
  

&


 
 


 
  
! ) 
  

  
 
    (   ( %!         
  
   
   (       

 
   


 
!

*
  
 

     
 
 
&

   ! (    +   ,   ( + %     !
     (        -  
   
      
  

 
 
 
   

   -   

  
 
"

 
 
 
  # 





    

 $  
 
 
 
   
 
  
 



 
! 

  




     



     

  
 





!
.  
 


   
    




  
  
 
 

 

  
  
  

/    !


   

   
 
  & 

  
 


     
 



 0 

    
   


1
0  
   



 

  


   




      
 

 

 
 

. 
 

 


  
  
 
 

 
 

 
)


        
 



         

  


 
  


 


 

 




   
 

 


   

 



   



  
  


   
 
 

   
  
  
  

#
 
 -
  
  
&




 
 
0
 
  
 


 

 
 

    


   



        


  

 



     


 

 '

 


  





 


     
 #  
   

 *
   
 


 
    
  )  


  

 


   

  

 

    
 

  
 

 



   

 

 
 
 '    
 
 





 

 

 


 $
 





  #  





#

     
 

 
 
     



  
       


  

    
     
 
 

    
  
 


 

 


  



&

 

        (    !!0



   %     

    
  
 %  


    


 

  
 
 
    
 

 
 )
 
   
  

/  

     
   
 




 





 



 




 



  


  !
+

   
       

 (  % %! ( %   ( %

(%

               


2234
".  ( %  ).
)


     

 

 (  ,  !     !
(,%
$54*  !  ! .   
!

    !      ! ( %

"  +& 3    


 143
)
  #  


6



 
 



  
 
  


  -    






    #


 

 
  

-   
  

 




 

  


 

  








  
  

  




 



  
 
  

 

 


 

2 
  
  
 



&

  


5   
  
!


 
 #

   
 
$

  
  


 
 
 
 



 
   7 
  7 143 # -
6
8
!

5     




 
   
  

 3 
 
  
 




7
 

  
7 34 #  



-
 9!

  




 



  
  

 


 
  


   

 

  




    
 
#
          
          

     
  


 $  
  




     +


 

  : 
 


   
  
 
 
 



  

     
 
 
 
 
  

  

     



  
 




  ! ; 
   
 


 

 
   ,%!   !!  
 
  
 

: 
 

  
 

 

 
       ! 
 
   

 
&

  ! ( <




 ! ( 





  !  



%!

$

  

 



 
 

%! &

 ! (  <!    < = %>  <!  <


'- 
   

 

 %!
 
 
 
?

+!

 ! (  <!   , %!

 

  
 

 

 


 
   ( %!    
 


 
        
 
  

    : 
 
 




 
 ,  !     !
 ( 
 ,  !     !
$  

:

  
 143 


    

    


   

 
 
 3 
 
   
7 
7 
 

      



: 
    


 
   




 

  
   
 


  


  
  %<    ! . 



    
  


     
    
 3


 


       

 


  

      

 
 
    

    3 




 
  





  
  ! 
&

   !       !   




  %  

    
  
 

 
  
    

 

    

 
 


 

 

       $  
:      143

       




 2     

  
   

   
 



  

 #      

  

    
  



! 


 

 
 

   

  &

    


  
   
        
 
   


    
  
   
 
    
 



   


  
 
   
  
 
 
    #  -
 
  

  

  
 
 


  
 
 
 

  
# 
   
 

'

 
@  
 
     
   



 

  
     




 







 


 


 
     #
 




   
   
  
 34
    
 
  

  
  

    #  
 

 
 
   


  
      

 

   
  





 
     



 
 
    
 

 
 
 

  

    
     

    

 
 




 
 
   




 




 





  
 
 
 

     
       



  
   ?
 
    <

  

    


      


 
 

 2 

  7 7    

           !






  


 

 
  
 

3   34



          34+  
'


  @  
   

 
    



A"
 


 

  
 

 
: 

$  
 


:


     


   



 
 


 
  






 

B

 
 ! 



 
 
   

  
  



 
  
 



 




 
  



(%
2234
".  ( % 











   %         ! (       !0



"      !   . ( 
4C25  (   ,     !! % ,    !!
   !

  
  




     !
2*2
 
   
 
   & ( , %     (  




   


  (  , %
$54*   

"  ?& 3  


 34
  


  



 
  
 

   
   

 ! 
 



    
  


 

  !  #  


  
   
 

       7
8

 7    
      !    

  
  
 
#
   
 
 

  


  
 #       

 
 3 
 


  
  
 
 

        

 
    

 !  
  


    

 
 

 
   #  
 





    



  
 





 
 



 
    

 
 

 

 

   
 

 

 
 





 


 
 
  

   

    
 
 
 
! )


   

 

 
 
 
 





 
  
 
 

 
     
3 

      
 
 



 
   
 

1

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.2

0.4

0.6

0.8

0.2

!

0.4

0.6

0.8

!

"  B& ' 



       143 %<<
  <! ( < %  ! (
( %<! ! )


 
 
   
0 ! 
 
  

 <!

)
  
  



   
 

  

   #
   
 143 $

  
 

 
  
 

   
 B  #  
 
  

 


  # 

    
 




  

 
   
 
 



 
 
 

)


 

 
  
 






 
 


 

  

  

 

 

  

   

 
         
 
 
*;D # *
  ;
 D  )

 
   

  




  


  

  
   

 


  

 
 
  
 
  





 &      !     !   

 
#
   

 
 !  

      





&







 
        
 143   
 


 

      
  


 3
 
  
  

    
 


 
 
 


 



 
  
  

 
& !



   
   
 
! 
    
  


 


 #



 
  0 !    

   



   
 


  

0 
         



: 
 
 
#      
  ( % 
 
 

 
  



 
& !
  



   
    

 

 
 


      
 

 !0 
  (   









: 
 ( ,  !   !    (   

: 

 (    !     !   






     
 
  




 
 

 


  
   
 

  

E 
  

   
 

 
  

   


 



 
  
 
 
 3
    

 
 
  
  

 
 
     
 
 
 



 
 
 
  

  


 3 
  

   

 



   
 


 
  
    #
 
   
  


  

 (    !!     
  

 

 



   
 
 


 
  ?& 
 
   ( %! 
 
 ( +!   
   ( ?! 



  
 
 
 
   
  

    
  





F-
  -     
.E #
# 
 !      


F-
  
   %GH< 



 
 
 
 

          




 
 -   

  



   
     -
    


    -   




    - 
 
 
   !
.

 F-


  
  #  
 
 
   
 


 
   

  
  =
     
   
 ! 
    
 
  

   
  

  
- 
!

    


 

   
  

  

 
 I !! -


 I !!  - 



 


  

x1

x2
Unitati
intrare

Nivel functional
si de iesire

"  =& 2
  


   


   
   

 


 F-
!

Grila patratica

Grila hexagonala

!

!

"  I& 4  
 

 

   






F-


    . 


  
 
   
 

    
   

 





 
  
 
 
 
  

   
 

( %       


 
( %  ! %  ! ( !! '
 

 


   
&

    ! (     !  


!0
    ! (       E-!0
    ! (     



   
   


 
  

 
 

 " 
$   
 
 

  
  



  #      
$ ! ( "     !  # )


     
  

 
 




  % 
   (   !! 



 
  
&
$   ! ( $   ! (   %  ! , %  !    %!   , %!
$   ! (   %  ! ,%  !    %!   ,%!  %   %!  %  ,%! ,%   %! ,%  ,%!
J

   
 ! 

 (  % %! ( %   ( %

 ( % # ! ( #  ! ( 

         

2234

  
 


)


    

    !     !
 (  ,  !   !
  
  $   !
(,%
$54*  !  ! .   
!



"  J& 3  





 

 F-


 
  


    



F-


    
: 

 


 
   



  

 


3: 
 
 


7 
7   
 
   
 




 





  


 ' 
 

 

 

 

 
  #
     




  
   J
3
 
  
 

 
    



 
 
  

 
  
 
 
    
 


 

   


 



&

 "     

'


  

  
 




 
 



  :
 
  : 
 
  
!  
 
  


 


 


 
   


 "     #!

'


 
  






 
-   


      
  
 143!   
  : 


  
 
 

 
 
 




 


 


  






 

  
  : 
 

    #
    $
 
 
 . 
  

 

 




: 


 
        


E
 
 


   
   
  '
  


 

   


    143 
  

 : 
    




  
 
  





 
: 
   



   



K  " !  

 


 
 
 



 
: 


 
 &

 (  ,  !K   !   !

 )
   





&
K

 "! (

%
<

 "



 $ !

 



  
: 
 .   
  

 
 : 
  



  
 

 


&

     ! 
 
K  " ! (
 
+#

@ 


   



  H

Hp,qL
1
0.8
0.6
0.4
0.2
1

dHp,qL

"  H& "  





* 
         
 143  
 
 
 
   
  

   

: 

 

 
  


E   


 F-

  
  
 



  
 
 

 
 

     
 

 

 

( +!  

 


 
  
 

 
    
 ; 
   





 


      
 
    

   
 
 



 

   
     



 
 

 

  %   , %     
  
   !


 
 

 %  ! , %  !    %!   , %! 2
 

   
 
  
 
  


  G
    


 



 

    
!     %<
    
   
!

-1

0.5

0.5

-0.5

0.5

-1

-0.5

0.5

-0.5

-0.5

-1

-1

!

!

"  G& E 
 
 



  
    
 !

 
 0 !


 
 


         





F-
     
 

  



       


 
  
 
#  1
 1
.E!

 



 
 
'    
 
 "


         
  


 

-1

0.5

0.5

-0.5

0.5

-1

-0.5

-0.5

0.5

-0.5

-1

-1

!

!

"  %<& E 
 
 



  #       !

 
 0 !


 
 

-   
  



 




     .

 F-

 
 
 
 
  

 




  
  
- 



 
      

  
   
 





3
   




  
 

    

 

 

  

 
 
  


   
!  

   

    


 
  
 
  



 #
  

 :   




  
   

 


  
        $      
  #:   4 # 4 
 

 
!

 
  
 
 

    
  
  
  



 

    
   :  
 
 
 
      

 
 # 

 )

 
   

 



 
  
   

 
    %     %

       % % ! 


 
 

 


    #

 
 F-
 
 
 

  
       ! 
 

  
 %  
 !  


.  
 





   


  


 


  


  


 
  

 
   
 
 
 
   

   






 
     

 
  
 
  

  
 ' 
  

    



      
 
 

 
 


   
 
 4 
   


   
       
 
  3 


- 
 








    

%<

!

!

!
"  %%& 


   +<< 
  !


 

  #:  
=<  


!! !   0 !   %<<< 
0 !   +<<< 


%%

  
 


     


  
 
 

 

      
       
      

    
          
        

  

         
    
    

                      
  

   

!        
  
     "  
     
   
   
   "   
   
     



    

     " "   
   #  $ 
     % & #  
           



  '
"     
       ( ( 
  
        


 
  
 
    


                       
           
    
            



 
  
 
#   (     (   
    "      
                

     
    
!    

  
              

  
 
    
     
        
    
 
x2
y

y1

x1

# 

  
   
$

!       
  
" 
     
  
 '
  

     
 
    
  
(    (    

         



  
   
  
  
     % ) '  
"     
 (  *    (     
      (
*    (      
 
(  %
  (    
 
   
    + 
( (
"  
       
 

 
   
                 
  
#   
      *    %  ( 
   
 

  #              
  

 
  %   
"    
 
    
  ( %    (

  
 
    
 
 #    
      
 
   
 
  
 
    
  !  
 
 


     
*                    
 


  
   + 
       
           
  
 
   
,
  
"   
  
  "    
   - 
.
           


  
     *
 !       
      
  
   
   
  
 #    "  
  
  
 (  

 
          
   
    


"     


 !     

 
    

 

  
       

    
     
#            
     /     
    
  
        

  
   
   
                 
   
 



  

0       
 
" 
      

  
    
 

  *
     1
    
 ( 

      (       
#  
        %          
"     
%             *

%      %

  

 

 % $ 

'  2
2
   (  %           

   *

 %      %
&

 


 % $ 

! 
"    
   "  2  2      
"    
 

                     
 


     

3      


      
  4/ ! 
 

 
     
    5 ""(

   / 
  
 "   


  
   
      
   6
75
8
    
     
        
      
  
                       
      
 
 0   / 
 
  *

 %  9    

 % $   % $ 

$
'
"       $          6
75
8     

                     
'
 
   /            


    
    
       
 
      
 
   
 
 

     

         
  
  
  '     
 /  *

 %  9    : 

: %

 



 % $   % $ 

&

'      


 (    4/     ' (  
  $
'    
 % )    
    
0;;,
/ 
 
     (  ( 

 $  &
%9$
     
 
     
3<,#.       

  


= $* '      
 
 4/  ' 

>

  
 


! #" $%&'&')(*+ ,-(/.0&12+ 3#*+ (4"56 )3#.7+8.039"5#+;:'<#.7<>.@= ?/+8:1(A?/+ #<#(" $B.39,-(9C:1*/(/:1&1,0+D:1(>E0#+;650F6 GA(/.0&1*/&/?/+ ,7H
I */6 I J3-.7= "5+ ,K* (/:'" .7"5L.NM */(OQ.0P ( I FR I :'+ 39"SR J:1( I :'+839"LTU?/+8:1(V:W(>"5#+8GA I :1*/&.0&'"5,0+)*/(/:'"X.7= " $B:UY;F &1.Z* (/:'" .7"5.
I 2&1.[3#.7+8!.[?\,0+8(/:'"#]_^)+8.7`B*/&.065,3#:1.7"a*/(/:+ #" $%&'S+ 3#*/+ (>"539,-(" $b:1(S3#:13#&W*+8:%F0:1.7+a.0396 "c&1*/39+;*GA, I :'RQ3-.d= .7"N.7P "
Ge, I */& I [`B*/(/39" $B:',-(/.7+ [.0&\+ #" $%&':\3>.7P "L6 $ :\?\,0"5(" $%:1.0&1*/&6X.0= *f.7? &W:13#.7" :'E]Dg):W(K?Q*/(/39" I dE0 I #+ h.0&\O0+8. I */&1*/: I
39,-(39" :'E:'" .7"5J9C:16 "X.= i
jl39k!,-m#(/o n 3m#9p'm)" .7nb"Xq0.L= nbr03#p*@s m "5t,-u.7s5"5m#!3v 9nw&m'xc&Wy .0&'39"56h$ "56 .:%F-J*/65(3#,#0.7+;+8:%F-.03839|/"5#+:W.78:'+D<#3#.*e7<>6 .= :1(?/}:+8:W1(e(/6X39. = ,-68$ (:{Y;3]9" !:'E#":'$%" &.7'&"5"' 5I ,0:1" (@.0&z.0.K= 39.T{R 0653"X#.h=.7+ 3#)*.7"5/#O(/0:',0" +;.7:'"5!6! 6*/5(4"5 "
3#* (/65,3#*"5e$68: 6 *~ I (*/GA:'+8. I )+ #" $B&'d!,0?RQ& I TB6 .0*Ge, I &1* &/!,0?/R & I Y!6 $ :Q.0*K`U,-65" I #<#E0,-&'" .7"5h3#*
6839,0? */& I h.Z:1Ge? &'GA(>" . m q7s{}r9qXt#%r0nB{0m 68$ : I h.e+ #<#,-&1E.@?/+8,0~ &'Ge I [,0? " :1GA:'<.7+ 0]
jlIk!,-m#.7o n m#+)p'm@3#*r7,As9o? n %.7r7+ pS"5 s m I t#u:1(4s "5m9+ v h3nwmX9x&'&y 1.039&'6"55*"5./(/:'65"XV3.7= " $U#:\.7P1+8(/.06X39.= "5F #+6 8?/:'<#+ .7<>I .= #,-?/65#~+8:1Q(:'+ `B.7I?/L+" */ &S#" $%3-&.= '&,'L`* {#(/:'" I .7Hb"5`U,0+ }65.7"5+ 3I 9F/,-9C(3:1659"X" .=.7"X6 $ . = :
39,-(/9C:1* (/::W(>E0#+86 0]hg):W(.039.065"X.= 3#.7"5#O0,0+8:'e`B.03J?Q.7+ "5 s5mo n m9p1m9p1mAtuuv/Bn>r0 o n St8q0v nwm >nBur0p'm *" :1&1:'<.7"5[P1(
6 ?3#:W.0&\P1(?/+ &W*/39+8.7+ .K65#+8:1:1&1,0+!"5Ge?\,0+8.0&'V$6 : s5mo n m9p1m9p1mAtm9pupr7s m */" :1&1:'<.7"5[P1(6 ?3#:W.0&\P1(?/+ &W*/39+8.7+ .
:WGA.7O-:1(/:1&1,0+]
DC:16 "5(" $%.239,-(9C:1*/(/:W&',0+:1(>E0#+;65_`U.0393#.2+ #" $U&1&'_+ 3#*+ (4"5a6X.!= 65a39,-Ge?\,0+ "5a3#.(/:z65$ "5D68:165"5Ge I :W(/.0GA:1390]
6y 5"5`{&\65GZ(/.0&1*/& I ):16zP'+ )(4*GA.0:65"5d,0~/" $%:1(*"a? +8:1(Z3#.0&W3#*/& I :'+ 39"?,0+;(/:1( IAI )&1.65GA( .0&1*/& I ):1(4"5+8.7+ )3#:
65"5L(/#E0,-:' I h*/(V?/+ ,3962:'"5#+8.7" :'E?/+8:W(3#.7+8L65h65" :WGe.7<>.A= 65" .7+ .K65" .7" $b:',-( .7+N.e= 3-.7= "5+ L3#.7+ L" :1( I [+ #" $U.0* .]
gd:1(? */( 39" I E0 I #+ f.0&}Ge, I */&1* : I `U* (/39" $B:',-(/.7+ 0FD+8#" $B&'&'? .7+ " $%:1.0&+ 3#*+8(>"5?\,0"LRE.7= <*"5V3#.6 $ :
3#.7<*+8:? .7+8" :13#*/&1.7+ @.0&'@+ #" $B&1&',0+d"5,0" .0&+ 3#*+ (4"50F.065"5`U&_3-.= 65"5A6 *R3#:'(>"d3#.?/+8:W(/3#:'? :1* &Q`B*/(/39" $B:1,-(.7= +8:1:6X. =
R h:1&W*/65"5+8.7"}?\(>"5+;*f.03965"5. I :1(f*+8G.= ]
_ 7a8\S2DD@ad! Lea8eAa8V
_,-G:W&1*/65"5+8.@Ge, I */& I [`B*/(/39" $B:1,-(/.7+ h.A*/(/:Q+8#" $%&'[+ 3#*+8(>"5h?\(4"5+8*f3#.7<*/&Ge, I &1*/&1*/:Q!,0?/R & I ]
{X0NNS , I &1*/& ,0?R & I 65"5d,@+ #" $B.@39,-(/65" :'" * :'"X. = I :1(Z* (/:'"X.7= " $B:"5,0" .0&:W(>"5#+839,-(/39" .7"50FP1(3#.7+
R 3#.7+ J*/(/:'" .7"5M5,-.03-.Z= 6 :WGJ*/&1" .0(+ ,-& I L*/( :'" .7"5 I h:1(4"5+8.7+ K$6 : I L:'4$6 :'+8eTUE0#<:R O]2XY;]
c&?,-.7"5}R*" :1&1:'<.7".7"N.7P "D?\(4"5+8*e6 :1G*/&1.7+ .
TB6 :16 "5Ge I :1(/.0GZ:13939!?#+;GA:'"65"5,7H
3#.7+ .K:1(`U,0+8GA.7" $B:1:1&',0+S? +8:1(f:1(4"5#+8Ge I :W*/&? .7+8.0Ge#"5+8:W&'m ,0+2q7&',0sU+{p'6 $q7:s)+ r7#O9 q.0= t6 B:'r0+ .nBUK7m .03965"5,0+8.Z?,0+;(/:1( II L&W.@9CGe?Q&1.7+
:1(/39,-GA? &'#"5d6 .0*f.7`{39" .7"5 I d<#O0,-Ge,0";Y}3>.7P "68$ :Q?\(4"5+8*+ #<#,-&'E7.7+ .@?/+ ,0~Q&'Ge&',0+ I [,0?/" :1GZ:'<.7+ d39,-GL~ :W(/.7"5,7H
+8:1.0&z.= ]d */(/39" $%:1:1&1 I @.039" :'E7.7+ e65e.0&'#OePW(39,-(/`{,0+8GZ:'" .7"5e3#*? + ,0~ &'GA.K39@"5+ #~ */:'+ #<#,-&'E7.7"X.= T I @9CGA? &1*F
&1.e:1GA? &'Ge(4" .7+ .eGeGe,0+;:1:1&',0+S.065,3#:1.7" :'E0L6 L*" :1&1:1<#.7<>.L= P1(f65?\3#:1.0&\`B*/(/39" $B:1.e6 :'O-(*/GKY;]
0 8UQ/ S +8#<#(" $b.@39,-(9C:1*/(/:1&1,0+c:1(4E0#+865d`B.039d3#.hP1( I I */39#+ .J+ &1.7" $b:1:W&',0+c39 I 6 39+;:1*Z`B*/(/39" $B:1,-(/.7+ .
+ #" $U&':6X.K= 65J" $B:W(.A= 39,-(4" I L#E0,-&1*" $B:W.P1(" :1Ge?.3#.7+8.039"5#+8:W65" :13#:1&',0++ #" $B&':}TB65GA(/.0&1 I :1(>"5+;.7+ $6 : I J:1>$6 :'+
I :1(Z*/(/:'"X.7= " $U:1&'S`B*/(/39" $B:1,-(/.0&'NY;] (>"5+8*K. I 6839+8:'2+ &W.7" $%:1:1&' I `U*/( 39" $U:1,-(/.7+ !.0&'+ #" $B&':%F4?\(>"5+8*eR 3#.7+ (/*+ ,-(
E0,-G`{,-&1,-6 :*+8G.7= "5,-.7+8&'L(,0" .7" $%:W:%i

y 1 (T)

y 2 (T)

w1j
x 1 (0)

w2j
x 2 (0)

y i(T)

. . .

wij
x i(0)

y N (T)

. . .

wNj
x N (0)

 :'O-*+;.f7i y +;|/:'"539" *+8.eGA, I &W*/&1*/:Q!,0?RQ& I


jQ39& 1TU& 1Y).0&'H"5L*?,0/"5( (:'/"X".7$%= :1" $B.0:{&1Y;*/ &_(*/+ ,-(4* &1*/:&1.fGe,-Ge(4" */&a@TB6 * GA.f?\,-( I #+8.7"X.= .V65GA(/.0&1&',0+h?/+ ,NE0(/:'"5 I Z&1.
j0 TU YD T Q TU5Y5YcH65GA(/.0&1* & I h:'>$6 :'+ d?/+8, I * 6 I h(*+ ,-(T% 65"5J`U*/( 39" $U:W. I L.039" :'E7.7+ NY;
j9 TU YcHc65GA( .0& I L:1(4"5+8.7+ [?/+;:1GA:'" I :1(? .7+ "5.ZGe I :1*/&W*/:%
j`U,0+8 GeHZ.7?\<>,-.Z= ( ,ZI #+GA ..7"5+839:W39,-[?(9C.7= :1"5*/+8(/.7" :W: :13-I.K= :1(>"5+8* T (/:'" .7Y "5.6 $ :[*/(/] :'" .7"5. ] y ( 6 .0GL~Q&1*/&)" *" *+ ,0+?,-( I #+8:1&',0+
S ' 5 2 5
P (>"5+;*/3>.7P "@P1(GA.NM5,0+8:'" .7"5..7? &1:13#.7" $B:1:W&',0+e"5,-.7"5*/(/:'"X.7= " $U:1&'.0*.039&1. 68$ :!" :'? I `B*/(/39" $B:' I .039" :'E7.7+ E0,-G
39,-(/6 : I #+8.3-.l= ?\(>"5+;* 7 ] + #<#(/" $b.39,-(9C:1*/(/:1&1,0+:1(4E0#+865`B.0393#.65GA( .0&1*/&)?/+ , I */6
I f3-.7= "5+ V,*/( :'" .7"5V6X.= + #E:1(. = I :'+ 39"fTU?/+8:W(~Q*/3#&'NYJ6 .0*:1( I :'+ 39"TU"5+;.0(/65`U,0+8GA.7"e?/+8:W(:1(4"5#+8Ge I :1*/&.0&'"5,0+
*/(/:1"X.7= " $U:UYd&1.V*/( :'" .7"5. I K&1.V3#.7+ .V?\,0+8(/:'"#]Kg):W(.03965"Ge,0" :'E`U* (/39" $%:',-(/.7+ .39,-(/65"X. = I Z`B.7?/")P1(#E0,-&W*" $%:1.
+ #"n>r0$U &s;'U: U+ Y;#"]$U)&'+8::139?d+.0P (#".J=$U.PWA(+ Ge3#,-*Ge+ ((44"X" .e= */?\&,-.7.7" :1"5(dRO0#+8Ge:1:, */I (&:1.7"X65.@"X= .7= ?/+;:+;:165(>" "5.7+ " $bHw:'*/,-( (/.7+ KTB3#.7+8JE7.e R:1(>.A"5#+3-8.7=?/+8+ */#":\ .7#E"X0.Z= ,-&W3#*.K" $%:'+N[?.0= \65?Q,-*/.7(/"5dR6 */&
I 6 39+;:16X.[= P1(" :1Ge? I :16839+ #"dTU? +8:1(:1(4"5#+8Ge I :1* & */(*/:\6 :165"5G I [3#;* {.7"nw$bm:1:3#* {I v:'r `U#+ (Bt" $WdH_+ &1.7" $b:1: I d+ 3#*+8(" $ .>= Y
6 .0*KPW(" :1Ge?V39,-(4" :1(4* *TU?/+8:1(f:W(>"5#+8GA I :1*/&*/(*/:6 :165"5G I [3#*/.7" $b:1: I :'`{#+8(" ${:W.0&'NY;]


a65"5h. I 39E.7"X.= 6 :'" */.7" $U:': PW(f3#.7+ h+ #" $U.0*/.AE.@R68:1GJ* &1.7"X.e= 65,0`U"#].e= 39,-(/6 : I #+N.0= G
3-.Z= 7q7&W.Zpu*/o n b(VmGA{ v,-nBGe (> " I W#.7t#"#s Fm#;nbFx 65" .7+ .A+8#" $%&':65"5 I #"5#+8GZ:1(/.7"X. = I L3-.7= "5+ E039"5,0+8*/&TU Ya T  TU5Y;###N > TU Y5Y
.0&65GZ(/.0&'&',0+S?\h3#.7+ L&1[?/+ , I */3d*/(/:'"X.7= " $U:1&10]D_C:165"X. = I ,-*.e= 6 "5+8.7"5#O-:1: I hGe, I :RQ3#.7+ [.A65"X.7= +;:1:\+ #" $B&':%i
jl6 ["X.7;= U+8vQ:1:\ts+ q7#"vd$B&r- 1x:\ ?.,-.7*/"5(hR GeI ,-6Ge 39(+84:W" 6X. = I I.7"L0i ,6 :1(O-*+.V= */(/:'" .7"5T z YPw6 $ :a6838|/:1GJ~.= 65" .7+ .Fa.065"5`U&}3-.= #E0,-&W*" $%:1.
0 TUXYDV9  S#X TU Y 9 TU5Y
TXY
2
0 TUXYD 0 TU5Y
y* (4&'#O*/0:#+:1 ( .I :139* (/I :'"X:W(V.7= " $B:1>: 7z# ##65K? \,-.7Y"568f.0*e#`U3PW(>9"5" +5*/Hb.V,eP1GA(4"5.0+5( Hb,:'#+NGA.= .065(/39:'#+E0N(.= " $b.0:1&'.0.&z7.= "5,-TU? .7+8+ :1TGAU. ? +8I :1.7("X.e= 65&65'[6395" $%&:''`395"5.7= .+N7.= <>.A+8= #E* 0((//:'" :'.7+ f."5.
7F I *?.e= .039#.K*/(/:'" .7"5.ZV6$ ].]Gf] I Y;]
jQ{vQtsq0v)r- x} (/:'"X.7= " $%:1&'!Pz68$ :6 38|/:WGL~.e= 68:1GJ* &'" .0(f65" .7+ .i


T%-Y
0 TUXYa  SX TU Y 9 TU5Yz 7
.065"5`{& I [#E0,-&1*" $B:1[?,-.7"5hR:1Ge? &1Ge(>" .7"X.e= 3#**6 $ *+;:1(" $z.= P1(? .7+8.0&'&b]
(4"5+8*.J?Q*"5.J:WGe? &'Ge(4" .J`U*/( 39" $U:1,-(/.7+ .J+ #" $%&':%F+ &1.7" $B:W:1&'JTXYd6 $ :_T%-Ya"5+ #~ */:139,-Ge? &1#" .7"5h3#*6 " .7+ .
:1(/:1" ${:1.0&z.= TBT > Y[ XY@6 $ :D3#*,39,-( I :'" $B:' I A,0? +8:'+ I e" :'?Q*/& 8TUXY TU5Y KT L+8#?/+ #<:1(4"X.f= ,
(,0+8G.d= P1( :1.7+ 65"5[,eG.0= 6 *+N.= .#+ ,0+8:1:.7?/+8:1,0+8:Q.03#39#? " .7"X.e= ?\(>"5+8*.7?/+8,C:1GA.7+ . QuvQtnBupu .0&
?/+ ,396 */&W*/:\:'"5#+8.7" :'E/Y;]
7q7puo n bmfU vnB t8q7v nBUv/uu/x a6 "5. I 39E7.7"X.= ?\(>"5+8*.Ge, I &1.e`B*/(/39" $%:',-(/.7+8.K:1GA? &'Ge(4"X.7= +8:1&',0+2| .7+ I ] P (
:1Ge?Q&'Ge(4" .7+ .e?/+8:W(V3#:'+83#*/:1"5h&'39"5+8:139LR 3#.7+ @*/(/:'" .7"5J65"5+ .0&1:'<.7"X. = I :1(4"5+5Hw*/(V3#:'+;3#*/:'"!3#.7+ 39,-(" $b:1(/L*/(
.0Ge? &W:RQ3#.7"5,0+fTBGe, I &'.7<>.= `B*/(/39" $B:W. I .039" :'E7.7+ 0FaY[? + 3#*/G 68$ :c*/(+ #<:16 "5,0+fT YL39,-(39" .7"JP1(? .7+8.0&'&c3#*
*/(39,-( I (/6 .7"5,0+T YfTUE0#<:2R O-*+8.-Y;] " .7+ .R 3-.7= + :!*/(/:'"X.7= " $U:%F Fa+ #? + #<:1(4"X.= "5(/6 :1* (. I V:1(4"5+8.7+ 0F
:1.7+ 0 + #?/+ #<:W(>"X.Z= "5(/6 :1*/(/. I J:1>$6 :'+ I :1(.0Ge?Q&1:RQ3#.7"5,0+] (/:'" .7"5. 65"5e39,-(39" .7"X.f= 3#**/(/:'" .7"5.?/+8:1(
:1(4"5#+8Ge I :W*/&\*/(4* :Q+8#<:165"5,0+F .e3-.7= +;*/:+ #<:16 "5(" $ .= F F I #"5#+8GZ:1(.@= ?\,-( I #+ .@39,-(9C:1*/( :1:%]












 









R ij
yj

xi

yi
yk
R ik
ri

Ci

 :'O-*+;.Ai }:'+83#* :'"c?\(4"5+8*f:1Ge?Q&'Ge(4" .7+ .e*/(:*/( :'"X.7= " $%:D6 $ :.e39,-(9C:1*/( :1:\3#*V.0&'"5L*/( :'"X.7= " $%:
}*.03965"5J(,0" .7" $b:1:\3#*/.7" $b:1:W&')3#:1+83#*/:'" */&W*/: ?\,0"}R6839+8:1650i

T -Y
TU5Y TU Y ;  S _T  TU Y5Y 9 TU5Y; 7

*/( I F 6 $ : S ] (4"5+8*.K6 :1Ge?Q&1:RQ3#.J+ &1.7" $B:1:W&'[65J39,-(/68: I #+N. =


'
3-. = P 7]
(.0GJ~&1eE.7+8:W.0(>"50F?(4"5+8*.f?Q*"5. I #"5#+8GA:W(/.+N.0= 65? * (/6 */&+ #" $%&':2TB.06 "5`{&P1(/3>.7P "[+ #" $B.0* .V6X.= ?\,-.7"X. =
+ #<#,-&'E7.A,K6 .7+83#:1(.Z= 39,-Ge? *" .7" $%:1,-(/.0&w.>= Y65"5(396 .7+d3#.A?/+8,396 * & I h#E0,-&1*/" $b:'L6X.Z= 65 9nbr 9Up Xm Xm P1(4"5+5Hb, 9nbr7s5m
nbr-o n Bq0vQr7sr F T ###N  Y;F 3#.7+ hE0#+8:'RQ3-. =


!

#"

$

%&

%'

%&

(

%&

*)

.-

"

,+ +


T 4Y
Q ;  S _T  Y 9 7
gd.03-.!= 65D39,-( 6 : I #+N.S= 3#.!65" .7+ .S+ #" $%&':765"5a+8#?/+ #<#(4" .7"X. = I _E039"5,0+8* &-65GA(/.0&1&',0+ I D:'4$68:'+ 0FXT  ### > Y
.7" */(/3#:65" .7+ .A65" .7" $b:',-(/.7+N.@= E0#+8:'RQ3-. =

T -Y
0 _T ;  S9X 9 Y; 7
+8,0~ &'GA.V3#.7+8K.7? .7+ 65"5 I K.65" .7~ :1&1:PW(39K39,-( I :'" $%:1:_P +8#" $B.0*/.#E0,-&W*.7<>.= 3-.7= "5+8K,65" .7+ K6 " .7" $w:',-(/.7+.= 6 $ :
3#*/G 65"5f:1( Q*/(" ${.7"e.03965"e&1* 39+8* I 65" .7+ .:1(/:1" $U:W.0&w.= ] ( I ,-Ge(/:1*/&a6 :165"5Ge&1,0+ I :W(/.0GA:139A? + ,0~ &'Ge I
.03965"" :'?V6 */(4"2.7~\,0+ I .7"5L*" :W&1:'<4.0P ( I Ge#"5, I . :W.7? */(,NEQ]
U4  ; #X  BWNXX z0 8B U  _ },-Ge?\,0+ " .7+ .V*/(/:+ #" $%&'A+83#*+ (4"50F I 6839+8:16X. =
?/+8:W(K#E0,-&W*" $b:1.e65"X.7= +;:1:6 .0&'ZT I L9CGe?Q&1* TU Y5Y}65h?\,-.7"5)PW(/3#. I +8.hP1(4"5+5Hw*/(/. I :1(>"5+8d68:'" */.7" $%:1:1&10i
j TU5YS" :1( I [3-.7= "5+ L,Z65" .7+ L6 " .7" $b:',-(/.7+N. = TB(4* GA:'"X.= 6 $ : uvtn  .0& I :1(/.0GA:13#:W: + #" $%&':{Y;]
j TU5YS,-6 3#:1&'.7<>.A= ?#+;GA.0((4"cP1(>"5+8 I ,-*.e= 6 .0*VGZ.0:GJ* &'"5h65"X.7= +8:\?\,-6 :'~Q:1&'eTB39,-Ge?\,0+ " .7+ m#s;%q %tr Y;]
j TU5Y I #E:1( I :1(39)PW(V39LGA.0:GA.7+8h?\hG.0= 6 *+N.e= 39L39+ 4$6 "50]
j TU5Y2.7+ [,Z39,-Ge?\,0+ " .7+8L|/.7,0" :13-.= ]
,-GA?,0+8" .7+ .f39.fGA.0:_*" :1&z.= F\.7"N.7P " I :1(?#+;65?\39" :'E.*" :1&W:'<>.7= +8:1:3#.fGeGe,0+8:1:.065,3#:1.7" :'E0A3>.7P "68$ :?\(4"5+8*
.+ #<#,-&'E7.? + ,0~ &'Ge I K,0? " :1GA:'<.7+ K65"5f39.39,0+ 65? */(/<>.7= "5,-.7+ ?/+8:1Ge:c6 :'" */.7" $B:W:%]gd:1(? */(/39" I ZE0 I #+
?/+8.039" :W3@,f?/+ ,0?/+8:1#" .7"5A*" :1&w.= .f65"X.7= +8:W:_65" .7" $b:',-(/.7+8 65"5Z39. I r; nbq0nB%tnbr #{pBnbr0nwm ]Zgd:1(?Q*/(/39" I
E0 I #+ }:1(4" */:'" :'EF?/+ ,0?/+8:1#" .7"5. I 65" .7~ :1&W:'" .7"5a?\,-.7"5R@:W&1*/65"5+8.7"X.!= ?/+8:1(L65" .7+ . I 38|/:1&W:'~/+8*[.)*/(:4~ :1&'c. Q.7"X. =
?\},h6 *?/+8.7`B.7" $ .[= 39,-(4E09C.Z= TB6 " .7+ !.06 :1GA?/"5,0" :13}65" .7~ :1&z.>= Y;F-,0+8:'<#,-(4" .0&w.A= TB65" .7+ 26 " .7~ :1&w.>= Y+ 65?\39" :'E39,-(/3#.E.K= TB6 " .7+
:1(/6 " .7~ :1&w.>= Y)TUE0#<:RQO-*+8. -Y;]
/

#0

21

4

*5

76

98

.:

;

8 =<

7>

.4

?

-

@-

A

B-

C-

*)

&1

"

Asimptotic stabil

Stabil

Instabil

 :'O-*+8. i + ,0?/+8:1#" .7"5. I h65" .7~ :W&1:'" .7"5h.A*/(*/:\? * (/39" I [38|/:W&1:'~/+8*


(4"5+8*. I 9R(/:\`{,0+;GA.0&.03965"5@(,0" $%:1*/(/:\6X.e= 39,-( 6 : I #+N.0= G*/(f6 :165"5G I 6 39+8:16}? +8:1(
TU Y KT TU Y5Y;
T -Y

:1.7+ ZT Y*/(? */( 39"JR C.0&2.03965" * :1.] (4"5+8*l68:165"5G*/&hT -Y@39,-Ge? &1#" .7"A3#*,39,-( I :'" $B:1:W(/:'" $B:1.0&w. =
T >Y} E0,-G(/,0" .A?/+8:W( TU Y2*/(/:13#.Z65,-&1*" $U:'39J39,0+ 65?Q*/( I L39,-( I :'" $%:':%] y 6 :1Ge? "5,0" :13h65" .7~ :W&1:'" .7"5.
39,-(/65"X. = I :1( I ,-*.@= ? + ,0?/+8:'#"X.7= " $B:bi
Qnbr #{pBnbr0nwm
65"5@65" .7~ :W&w. = I .03-.Z= ?(4"5+8*,0+8:139 A9C:165"X. = 4T Y K.065"5`U&\P1( 3>.7P "!?\(>"5+;*f,0+8:139 3#*
.7+ L&',3 TU 7Y S?\(>"5+;*,0+8:139[ ]
"

ED

C

ID

*)

J-

-

GF

-

K-

L-

#H

#H

NM

O (

B-TUV-


WP

QB-

L-X YV-

QP # RS

R
E

-



dnBs5r-tnBUXBnbr0nwm

&1:WG TU YD
*/&'" $B:1GA. fT Ya &1:WG TU Y_ !65!(*/Ge4$6 "5

.L&1*/: ]_gd.03-. =
fT YA .7" */(/3#: 6 "5 0p'q r0p!r0nBsr>tnBUr T I .03-.= .7+ $6 :}?/+8,0?/s5+8m :'0#" Uu.7"5v\.m I mdf6r0nB5s5" r-.7t~Qo n :1b&1m :'" .7"565"5 -pq r7p

Y[.0&'"5`{&6 "5
TU+ 6 ?39" :1E

Y;]Z^d&',0~Q.0&_.06 :1Ge?\,0" :13


65r" .7 ~ :W&1:'nb" q0.7nB"5%.tK6nbr 5"59f,Up#r ? + ,0?/+8:'#" .7"5f*pqXt8" r7:Wpc&w.= r-nBP1s(r-tX3#nB.7{<_*/r &?/+ ,0~Q&'Ge&',0p'q+ t8r7I p},r0;?/ " :1GAnbq0:'<nB.7%tK+8K?nb\r K3#{>pr .0P ( I &',3#.0&.06 :1GA?/"5,0" :13
65" .7~ :W&1:'" .7"5.@65"5*" :1&w.h= P1(fGe, I &1.7+8.@?/+8:1(+ #" $U&'L+ 3#*+ (4"5L.AGeGA,0+8:1:1&',0+S.065,3#:1.7" :'E00]
_#+8:'RQ3#.7+ .K?/+ ,0?/+8:1#"X.7= " $U:W&',0+ I .06 :1Ge? "5,0" :13L65" .7~Q:1&1:'" .7"5J?L~ .7<. I 9RQ(/:'" $U:1:1&1,0+265"5 I :RQ3#:1&z.e= 3>.0P ( I 6 ,-&1*" $B:1.
(*A65"5d3#*/(,-6 3#*/"X.h= 9C? &1:13#:'"!TB3#* G 65"5d3#.7<*/&/+8#" $%&'&',0+(*+ ,-(/.0&1NY;] P (A.03965"}3#.7<d*/(Z:1( 65"5+8*/Ge(4"D*" :1&/65"5
Ge#"5, I .A&1* : :1.7? */(/,XEK&W.@~ .7<.A3-.7= + :1.Z65"X.A= *+8G.7= "5,-.7+ .A"5#,0+ G.= ]
G.7= + O-:1( :'"X. =
m q0s5m r mZnbr #{pBnbr0nwmVrT puTU Y5Y %r;QuvQq77x gd.03-.= 9C:165"X.V= ,`B*/(/39" $B:' i
:W(`{#+;:',0+J.065"5`U&_P1(/3>.7P "
V?\(4"5+8*,0+8:139Z .7" */(/3#:c,0+8:139K6 ,-&1*" $%:'65" .7" $b:',-(/.7+.= F
F .e&1*/:DT -Y}65"5J.06 :WGe?/"5,0" :13[65" .7~Q:1&w.= ]
/* (/39" $b:1. 652(*/Ge4$65"5!`U*/( 39" $%:' :1.7?Q*/(,XE6 $ :65"5}P1(>"5+ Hw*/(@`{& .0(/.0&',-.7O .L= (/,0" $b:1*/(/:W: I S(/#+ O-:' I :W(R <:13-.= F
P1(f65( 6 */&\3-. = 65"5J*/(? */(/39" I hGZ:1(/:1G .0&&1*/: :1.7+S,A?\,0<:'" $B:' I d38| :1&1:'~/+;*K65" .7~Q:1&DTUE0#<:R O-*/+8. -Y}.7+
.065,3#:1.7"X.A= ,e(/#+ O-:'LGA:W(/:1G.= ]
!#<*/&'" .7"5&' I hGA.0:6 */6!.0*V39,0+ 65?\,-( I (4"J6 $ :?\(4"5+8*f6 :16 "5Ge&' I :16839+ #"5 I [`U,0+8GA.i
TUXYa TU Y KT TU Y5Y
I :'`U#+ (" $U.@?/+;:1(/3#:'? .0&z.[= RQ:1( II .7"X. = I [`U.7? " */&3-. = I #+8:'E7.7" .@`B*/(/39" $%:': :W.7? */(,NEZ65"5)PW(/&',3#*/:'"X.= 3#*, I :'`U#+ (" $. =
I [`U,0+8GA.i KT TUXY5Y KT TU Y5Y;]
+8:1(/3#:'?Q.0&'&')+ #<*/&'" .7"5h? +8:'E:1( I 9C:16 "5(" $%.@`U* (/39" $%:1:1&',0+ :1.7? */(,NEZ?\(4"5+8*f+ #" $U&'h(/*+ ,-(/.0&'h68*/(>"#i

gd.03-. =
?\(u4vQ"5t+8o n *bm ,0_+8:1B39rQLuvQ q7Z/F  m9v nBs ulZs m#?\o n m#(p'4m"5+8t#*u ,0+8U:1vQ39 r F\%tr 65"5W#@`t#Us * m#n>(/r 39" $Br:1.Z;UvQ6 :1tO-s(4q7*/vdG r TB3#7*x E.0&1,0+8:P1(S L7a8Y
68.0*!.XE:168: I TB3#*E.0&1,0+8:DP1( Y;F}:W.7+A65GA(/.0&1* & I f:1(4"5+8.7+ 65"5V39,-(/6 " .0(>"T 9 TU YA 9 Y
.7" * (/3#:

T 0Y
ZT  ###X > YD S90UX 0B9
{ 
'
6 "5`B*/(/39" $B:' :1.7? * (,XE?\(>"5+;* TXY;F@6 :1(O-*+8&'65,-&1*" $U:1:J.06 :1Ge? "5,0" :1365" .7~Q:1&'RQ:W( I ? */(/39"5&1
6 " .7" $b:',-(/.7+ 0]
u vQto nF bm  %r;dQu?\vQ(4q7)"5+8/*m9,0v +8nB:1s39us m#F o n m#p'm65t"5uL`U */U( vQ39r " $U :1 BtI rf :'`{t8#+q78(vQnB{" $Bv/:1.7u!~ r :1&w.= 765"5x +8gd:W39"}.03-39. = +86S 3- .7= "5 ,-.7a+ 0F8\:1?.7(+2465"5G+8A*(/,0.0+8:W&W39*/&
I h:1(>"5+;.7 + [65"5J39,-( 65" .0(>"T 9 TU YD 9 Y.7" */(/3#:

ZT ###X YD _T Y_T Y _T Y
T 4Y T -Y
U 
1
1
6 "5e`U*/( 39" $%:' :1.7? */(/,XEV?\(4"5+8*T -Y;F:1.7+[6 :1(/O-*+ &'65,-&1*" $B:1:.06 :1GA?/"5,0" :13@65" .7~ :1&16 * (>")? */(/39"5&1
6 " .7" $b:',-(/.7+ 0]
M

y{z}|~

P

[Z \N]^Z=_2]`_ba ]#c^df_K
e g_baA_h
e Zjikc,\N]l_ e

ox2a

-

L-

-

S-

N-

_m\N]#n#Z q
o ,r p s aA_2
p ]utvZ s ]`'w x'`jc#a Z

-X

a'w

@y{z[|~-

*

G-

L-

S-


WP

_&` Z

b-

*)

b)

*)

*)

-

B-TGV-

m

#H

C

@-

-

~

C"

!-

9D

-

-

l

!

T^

!

v

 &N


#"

b)

! QL 
GeGe,0+8:'.065,3#:1.7" :'E.= 65"5f*/(6 :16 "5G I 65"5,3#.7+ f.:1(/`{,0+8GZ.7" $U:1:c3#.7+ ?\#+8GA:'"5Z+ #O .0= 6 :'+ ..03965"5:1.?\
~ .7<.39,-(" $b:1(*" */&W*/:%] ?/+ I #,-65#~ :'+8 I GeGe,0+8:1:W&'V. I + 6 .7~Q:1&'3#&1.068:139*/( I :1(/`{,0+8GZ.7" $U:W.65"565"5,3#.7"X. =
&',3#.0&1:'<.7"[6 $ :+ #O .0= 6 :'+8.J65d~ .7<#.7<>.@= ?\d3#*/(,-. 65$ "5#+8.e. I + 65:\*/( I .`{,-6 "}6 "5,3#.7"X.= F4P1(GeGA,0+8:1:1&'.065,3#:W.7" :'E0
:1(`U,0+8GA.7" $U:1.65"5f65"5,3#.7"X.f= PW(GA.0(/:1#+N. = I :W65"5+8:'~ * :'"X.= :1.7+J+8#O .0= 6 :'+ .65~ .7<#.7<>.= ?:1( I :W3#:1:+ #?/+ #<#(4" .7"5 I
?\,0+ " $B:1*/(/: I :1(:1(`U,0+8GA.7" $U:'K6 .0*E7.7+8:1.0(4"5K.7`U39" .7"5 I Z<#O0,-Ge,0"@.0&'Z.03965"5:W.] Ge,0+;:1:1&'A.065,3#:1.7" :'E0K?\,0"[R
*" :1&W:'<.7"5[?\(>"5+8*V+ #O .0= 6 :'+ .K:1(`U,0+8GA.7" $U:':?\h~Q.7<.Z39,-(" $%:W(4*" * &1*/:%] (V9CGe? &1*V68:1Ge? &1*6 "5J39&.0&65"5,3-.7= +8:1:
*/(,0+6 $ .7~ &',-.0(/T I K9CGe?Q&1*+ #? + #<#(>"X.7= +;:c.0&'*/(,0+3#.7+8.039"5#+ NY6 $ :c.0&a+ #O .0= 68:'+8:1:D.0396 "5,0+8.?,0+;(/:1( II &1.
E7.7+8:1.0(4"5!.0&'"5#+8.7"5).0&'!.03965"5,0+8.] +8:1( 3#:'? :1*/&4GeGe,0+8:W:1&',0+D.065,3#:1.7" :'E026 "5GA.0:/.7? + ,0? :1.7" I 39& .0&/GeGA,0+8:':
*/GA.0(/ I 3>.7P "!Ge, I */& I [`B*/(/39" $U:',-( .7+ h.AGeGe,0+;:1:1&',0+S. I + 68.7~ :1&'0]
Ge,0+8:1:W&'h.065,3#:1.7" :'E0L?\,0"SR:1Ge? &1Ge(>" .7"5PW(V|/.7+ I }.7+ KTB:WGe? &'Ge(4"X.7= +8: I L(/.7" *+N.A= &'39"5+ ,-(/:13-.Z= 6 .0*
,0?/" :13-.>= Y68.0*?\,0"JR68:1GJ* &1.7"5f65,0`{"#]g)>$6 :S?/+;:1GA.E.7+8:W.0(>" .65"5V39.3#*lGA.0:SGA.7+ ?\,0"5(" $B:1.0&}? +8.039" :13AP1(
39,-(4" :1(4* .7+ hE0,-G.0( .0&1:'<.e6 :1G*/&1.7+8.6 ,0`{"!.ZGeGe,0+8:1:W&',0+S.065,3#:W.7" :'E0L*" :1&W:'<4.0P ( I Ge, I &1*/&\,0?R & I ]
_,-G39,-(/6 : I #+;.S3-. = I .7"5&'D3#.7+ c"5+ #~ */:16 "5,3#.7"56 */(4"39, I :'RQ3#.7"5D6 *~[`U,0+8GA.S*/(/,0+E039"5,0+8:>H I :1GA(/6 :',-(/.0&W:
.0&'A3-.7= + ,0+J&'Ge(4"5Z.7? .7+ " $B:W(GJ*/&1" $U:WGA:1:a L7-]Kgd.03-. = I .7"5&' I A65"5,3#.7"h+ #?/+8#<:1(>"X.= ?Q.7"5"5#+8(Hw*+8:O0+;.RQ39
+ #?/+8#<#(>" .7"5S?/+;:1(LGA.7"5+;:13#: I ?Q:C&W:-.7" */(/3#:E039"5,0+8*/&H I :1GA(/6 :',-(/.0&>65},0~/" $%:1(c?/+8:1(&1:1(/:W.7+8:'<.7+ .2GZ.7"5+8:13#:1:
6 $ :\?/+;:1(f.065,3#:'#+ .eE7.0&',0+8:1: L[R 3-.7= +8*/:\? :'C&:1( .039" :'E6 $ :.@E.0&',0+;:1:_dR 3-.7= +8* :\? :C&.039" :'EQ]

uj

l

f

TB.>Y

TU~\Y

TB3XY

 :'O-*/+8. ia_CGe? &1 I A$6 .7~ &',-.0(


P (:'O-*+8. 68*/(>"h:W&1*/65"5+8.7"5e3>.7P "5#E7.6 $ .7~Q&',-.0(e+ #?/+8#<#(>" .7"5K?AGZ.7"5+8:13#: ] y 396 "5,0+6 $ .7~ &1,-.0(A&'
39,0+ 65?Q*/( I E039"5,0+8:D3#* 39,-Ge?\,-((>"50]Jg@9CGe? &1*FQ?\(4"5+8*68$ .7~ &',-(*/&TB.>YE039"5,0+;*/&_.065,3#:1.7"d65"5
T L7 L777 J7 L7 L7 L777 L7 L7 L7 J777 L7 L7 L7 L777 L7 J7 J7 L777 L7 L7
L7 L777 J7 LXY
}.LPW(,0+8:139hGeGe,0+;:'Z$6 : P1(fGeGA,0+8:1:1&'d.065,3#:1.7" :'E0h"5+8#~ */:'h.06 :1O-*+8.7"5 I ,-*.e= GA3#.0(/:16 Ge0i I h65"5,3#.7+8J.
:1(`U,0+8GA.7" $U:1:W&',0+h6 $ : I [+ #O .0= 68:'+ h.A.03965"5,0+;.]
\X-/4B z  5B U 4 gd.03-.= 6 I ,0+ 4$65"5V65"5,3#.7+ .* (,0+eE039"5P,0+8:2H I :1Ge( 6 :',-(/.0&1:.7" */(/3#:}"5+8#~ */:'
*" :1&W:'<.7"X.[= ,+ #" $B.L"5,0" .0&\:1(4"5#+839,-(39" .7"X.e= 39,-( 65" :'" */:'"X. = I :1(A (/*+ ,-(/:%] (K.03965"}3#.7<d?\,-( I #+8:1&1}39,-(/9C:1* (/:1&',0+
?\,0"eR,0+8O-.0(/:'<.7"5PW(>"5+5Hb,GA.7"5+8:139?.7= "5+8.7" :13-.= F) T S Y 1 5 S 5 ] "5,3#.7+ .*/(*/:26 #" I VE039"5,0+;:%F
###N  L7A65"5@38| :'E.0&1(>"X.= 3#*.0&'#O0#+ .?\,-( I #+8:W&',0+2.065"5`U&PW(/3>.7P ").0394$6 " :E039"5,0+8:_6X.= 39,0+ 9H
65? * ( I .= */(,0+h65"X.7= +;:D65" .7" $b:',-( .7+ A.0&' I :1( .0GA:13#:1:+ #" $B&':%]A!#<*/&'" .7"5&' I :1(6539" $b:1* (.f.0(>"5#+;:',-.7+N.V= .R +;G.f= 3-. =
I .03-.e= GA.7"5+;:139.@?\,-( I #+8:1&1,0+a65"5h6 :WGe#"5+8:13-.= 6 $ :\65[&1*/39+ .7<>.e= 3#*, I :W(/.0GA:13-.= .06 :1(/39+8,-(.J= .7" * (/3#:\? */(/39"5&1!R/C
6 */(4".068:1Ge?/"5,0" :1365" .7~ :W&'0] y 39.065" .dE7.!?\#+8GA:1"5c3#.?,0+;(/:1( IhI :1(L39,-(RQO-*+8.7" $%:1:4. Q.7"5_PW(J+8#O-:1*/(. I .7"5+;.039" $b:'
.e? * (/39"5&',0+}R/Ch6X.A= 65h.NM */(O .Z= &1.e.03965"5.K?/+8:1( I :1( .0GA:13#.@(/.7" *+8.0&z.e= .@+ #" $%&':%]
&1ZGA.0:a3#* (,-6 3#*"5Ge#"5, I I I #"5#+;GA:1(/.7+ K.V?\,-( I #+8:W&',0+[6 */(4"#iL+ #O-*/&W.V!#~ ~6 $ :a+ #O-*/&1.? 6 * I ,7H
:1(4E0#+865:aTB3#*VE.7+8:W.0(>" .A68.e:'"5#+8.7" :'E.e= + #?/+8#<#(>" .7"X. = I h.0&'O0,0+8:'" G*/&gd:' I #+;:138|Hd?/?\#+Y;]
k2m 0upr Jm x a65"5!39.JGA.0: 68:1Ge? &w.)= + #O-* &w. = I !6 "5,3#.7+ $6 : 65!~ .7<#.7<>.L= ?\2? +8:1(/3#:'?Q:1*/&>&W*/:!#~ ~Z3#.7+ .RQ+8G. =
@/

Q/

HQH

"H

2

2

2

<

N-

L-X

;

l

&1

') )



3-.[= "X.7= +8:W.h6 :1(/.7?Q65: I :1(4"5+ I ,-:/(*/+ ,-(/:.039" :'E7.7" $b:/6 :WGJ*/&1" .0(e39+ >$65"50] , I .0&W:'" .7"5. I !3#.0&W3#*/&.[?\,-( I #+8:W&',0+65"5
P1(f.03965")3#.7<0i
T -Y
S  7 w@ 7
gd.03-.V= 65 I ,0+ 4$6 "5A3#.+ #" $%.0*/.f6X.= (*39,-(" $%:1(e.0*"5,39,-(9C:1*/(/:.7" */( 3#:&1Ge(>"5&1 I :1.7O0,-(/.0&':?/+;:1(/3#:'? .0&1J.
GA.7"5+8:W3#:1: I [?\,-( I #+8:\65h6 #"5.7<>.Z= 9C? &1:13#:1"?\ VT S >Y
?\,-.7"5}E0#+8:RQ3#.?/+8:1(L3#.0&13#*/& I :'+ 39"3-. = I .03-.!= E039"5,0+;:1: I 6 "5,3#.7"D6 * (>",0+ "5,0O0,-(/.0&1: I ,-:3>.7P "5 I ,-:\T5T -Y
Z?\(>"5+8*V,0+8:139 bY}.7" */(/3#:&'Ge(4"5&'J6 #" */&1*/: ###X LE0,0+R? */( 39"5[R/CL.0&' I :W(/.0GA:13#:1:
6 :16 "5GJ*/&W*/:%] ,-( I :'" $B:1. I ,0+ "5,0O0,-(/.0&W:'" .7"565GA(/:'RQ3-.= F I :1(? */(/39" I E0 I #+8? +8.039" :137F!3-.= E039"5,0+8:1:d6 */(4"
(39,0+ &W.7" $b:%F I 3#:68*RQ3#:'(4" I I :'`U#+8:'" ${:P1(>"5+8J:%]dg)@9CGe?Q&1*VE039"5,0+8:W:39,0+865? */(<>.7= "5,0+;:S68$ .7~ &',-.0(&',0+eTB.>Y6 $ :
TU~Y I :1(:1O-*+8. 6 * (>"[,0+ "5,0O0,-( .0&1:!TB(*/G.7= +8*/&?\,0<:'" $B:W:1&',0+!P1(3#.7+ I :'`{#+.f= 39,-:1(/3#: I e3#*(*/G.7= +;*/&?\,0<:'" $B:1:1&',0+
P1(3#.7+ 39,-:W(/3#: I Y;] P(6 38|/:WGL~P 6 $ .7~ &',-.0(/&'TB.>YJ6 $ :}TB3XY2(*?\,0"R39,-( 6 : I #+8.7"5(39,0+ &1.7"5LP1(4"5+8*/3>.7P ")*/(/.Z65"5
39,-Ge? &1Ge(>" .7+;.A39&':1&1.0&1"50] (V.0396 "3#.7<h?/+8, I * 6 */&6 3#.0&1.7+!6 "5 !]
gd.03-.= 65"5Z:1GA? .7+[39,-( I :'" $B:1. I e,0+8"5,0O0,-(/.0&1:'" .7"5(4*?\,-.7"5@R6 .7" :W65`.0= 3#*/"X.= 9C.039"#] P (.03965"L3#.7<Z65"5
6 *R3#:'(>"23#.A?/+ , I */6 */&6 3#.0&1.7+6X.@= R h6 *RQ3#:'(4" I LGA:13eT I h9CGe? &W*XY;]
#+;GA:'"5J6 "5,3#.7+ .3#.K? */(/39"5hR/C(4*(4* GA.0:.ZE039"5,0+8:1&',0+),0+ "5,0O0,-(/.0&1: I ,-:3>.7P "5

Ik2,-m :0u3#:pr.Z GJ#m#*/u &1" $%:1q GAzU:1v/&',00+ m9s;I #hEm9%0x 39"5,0+;:&1:1( :1.7+S:1( I #?\( I (/" $W:%] , I */& I h3#.0&13#*/&.0&?,-( I #+8:1&',0+}65"5dP1(f.03965"3#.7<0i
T >Y
T Y 7 w@ 7
*/( I @T Y 65"5[&1Ge(>" * & I )?\d&1:1(/:1 39,-&1,-.0(/. .:W(>E0#+86 :GZ.7"5+8:13#:1: .0&'[3-.7= + :\&'GA(>"5h6 * (>" I
`U,0+8GA.i


T0XY
1
I
d?\,-.7"5dE0#+8:RQ3#.@3-. = .03-.e= GA.7"5+;:139. 65"5h:1(4E0#+86 .7~ :W&w.L= .7" */( 3#:Q"5,-.7"5L&'Ge(4"5&'h65#" */&1* : ###X
6 */(4"S? */( 39"5dR/Ch.0&1 I :1(/.0GZ:13#:1:Q+ #" $B&':%]
(4"5+8*@.2#E:'" .3#.0&W3#*/&1*/&-GZ.7"5+8:13#:1:4:1(>E0#+;65c6Hw. I #<#E0,-&'" .7"_*/(.0&'O0,0+8:1" G :'"5#+8.7" :1Eh39c?\#+8GA:1"5c.7?/+ ,XC:WGA.7+ .
.03965"5:1.6 $ :.A3-.7= +8* :65"5+8*/39" */+N.@= 65"5L.7?/+8,0? :1.7"X. = I h39.K.A.0&'O0,0+8:'" G*/&1* : : I +8,XSHw, ]

[

S

-X ^R

(

N-

L-

/

O

N-

}i
L:1( :'" ${:W.0&1:'<#.7<>.A= GA.7"5+;:139.K T >Y`U,-&',-6 :1( I + #O-* &1.e!#~ ~
! y
d i 7 gh
i TU ;XY i TU Y TU 5YF T 7 Y F 7 F 7
S
ci S
TU Y TU XY
:'O-*+;. i y &1O0,0+8:'" G*/&\g):1 I #+8:13;|H)?/?\#+
XUNB wQ  Uz 2#O .0= 6 :1+ .L:1(/`{,0+8GZ.7" $U:1:/65"5).06 :'O-*+8.7"X.L= ?/+8:1(@#E0,-&W*" $b:1.h( .7" *+8.0&w.h= .L+ #" $B&':Q3-.7= "5+
*/(*/& I :1(4"5+ Z? * (/39"5&'6 .0&'KR/CTU?/+;:1(>"5+8K3#.7+ V65. .l= 6 $ :E039"5,0+8:1:S6 "5,3#.7" $%:UYP1(39,-( I :1" $%:1:1&'PWP (3#.7+86 " .7+ .
:1(/:1" ${:1.0&z.= .+ #" $U&':)65"565#" .7"X.= ?\:1( I :W3#:1*/&}?\,0+8(/:1( II &1.3#.7+ 65 I ,0+ 4$65"5+ #O .0= 6 :1+ .] ( 3#.7<*/&[*/(*/:
6 :1G*/&1.7"5,0+ I dGeGe,0+;:'[.065,3#:W.7" :'E\.= + #O .0= 68:'+ .E.@39,-(/6 " .LP1(AR C.7+ .@65"X.7= +;:1:\:1(/:'" ${:1.0&'0i 0 T >YD T 7 Y;F
RQ:1( I E039"5,0+;*/&39,0+ 65?Q*/(<>.7= "5,0+:W( I :13#:1* &1*/:%FQ6 $ :P1(#`{39" * .7+ .A?/+8,396 * &1*/:\:'"5#+8.7" :'Ei
S



f

Y

R
W

@0

b
5 8

Y<

&

&1



L-


0 TUXYD65O-( ;  S#X TU Yz 7
?.0P (.@= 3>.0P ( I 6 d.7" :W(O0[65" .7+ .e65" .7" $%:1,-(/.7+N.f= TBTU\lXYDTU Yc6 .0* I :165" .0(/" $U. I :1(>"5+8).0394$65" :W.@65"5h6 *RQ3#:1(>" I
GA:13-.>P = Y;]
(>"5+;*/3>.7P "J+8#O-*/&1:1&' I 6 "5,3#.7+ ?/+ #<#(4" .7"5VGA.0:6 */639,-( I */3K"5,-.7"5f&1.GA.7"5+8:13#:c6 :1Ge#"5+8:W39 I ?\,-( I #+8:%F
I .03-.= 65Z&1* 39+ .7<>.= 3#* I :1(/.0GZ:13-.V= .06 :1( 39+ ,-(.f= + #<* &'" .7"5&'Z"5#,0+8#" :139K+8#`{#+8:1"5,-.7+ K&1..06 :1Ge? "5,0" :13A65" .7~ :W&1:'" .7"5.
65"X.7= +8:W&',0+265" .7" $b:',-( .7+ [O-.7+8.0(4"5.7<>.Z= `B.7?/" */&3-.Z= 65[E.Z.NM5*/(/O0h&1.@,Z65" .7+ J65" .7" $b:',-(/.7+.= ]

TB.>Y

TU~\Y

TB3XY

 :'O-*+8. iDD.7+;:1.0(>"5:1(/39,-Ge?Q&'#"5[6 .0*V.7`U39" .7"5 I L<#O0,-Ge,0"


(ARQO-*+8. L6 * (>"}:1&1*/6 "5+8.7"5!"5+ :Q9CGe? &' I d:1( I :13#:W: I )&W.L3#.7+ .e65)?\,-.7"5):W(/:'" $B:1.h+8#O .0= 6 :'+ .V6 $ .7~ &1,-.0(&',0+
65"5,3#.7"50] y 3965"5.f6 */(4"),0~/" $b:1(*"5?/+8:1(Ge, I :RQ3#.7+ ..0&'.7"5,-.7+ A.*/(,0+)?\,0<:'" $%:1: I :1(6 $ .7~ &',-(*/&}TB.>Y@T{R O] 4Y;i
E7.7+8:1.0(4" .TB.>Y}65"5L,0~/" $b:1(*"X.@= ?/+8:W(GA, I :'RQ3#.7+ .e.AGA.C:1G I :1(4"5+ [?\,0<:'" $B:1:%FE7.7+8:1.0(4" .TU~Y6 "5h,0~/" $%:1(*"X. =
I :1(4"5+ c?\,0<:'" $U:1::1.7+E.7+;:1.0(>" .eTB3XY65"5},0~/" $B:W(4*"X.= ?/+8:W(LGe, I :RQ3#.7+8..dGA.C:1G
?/+8:W(LGe, I :RQ3#.7+8..dGA.C:1G
I :1(>"5+8[?,0<:1" $%:1:%] (>"5+;*V,Z+8#" $B.Z.0&'h3-.7= + :?\,-( I #+8:.0*`{,-65"65" .7~ :1&1:1"5)?\[~ .7<.6 $ .7~ &',-.0(/&',0+JTB.>YL68$ :aTU~Y
I :1(eR O-*+8. F?\,0+8(/:1( II !&1.h:1( I :13#:1*/&TB.>YD6 .0* I !&1.h:1( I :13#:1*/&TU~Y2T{R O] -Y_65).NM5* (O0P1(4"5+5Hb,J68:1(O-*+8.[:1"5#+8.7" $%:'
&1.6 $ .7~ &',-(*/&\65"5,3#.7"LTB.>Y;] ,0+8(/:W( IKI d&W.:W( I :13#:1* &TB3XY}65[.NM5* (O0!P1(/6X.= &1.@39,-Ge? &'GA(>" .7+8* &Q? +8:1G*/&1*/:68$ .7~ &',-(
65"5,3#.7"TUE0#<:R O] TB3XY5Y;]
J />{X/X4 #X- NQ }.0(>" :1" .7"5. I ):1(`U,0+8GA.7" $U:'!3#.7+8?\,-.7"52R65"5,3#.7"X.= 6 $ :Q+ #O .0= 6 :1"X.h= 65"5 I (*/GA:'"X. =
3#.7? .03#:'" .7"5 I 65"5,3#.7+ 0] (4"5+8*GAGe,0+8:1:1&1h.065,3#:W.7" :'E0 I L" :'?!,0?RQ& I 3#.7? .03#:'" .7"5. I J65"5,3#.7+ ?,-.7"5LR
I 9RQ( :'"X.2= P1(L`B*/(/39" $B:1 I #+8,-.7+ .h.03#39#?/" .7"X.2= P1(Z`U.7<. I +8#O .0= 6 :'+ 0]_gd.03-.h= 65 I ,0+ 4$6 "523#.h:1(`U,0+8GA.7" $U:1.d6X.)= ?\,-.7"X.)= R
+ #O .0= 6 :1"X.J= 9C.039"2.7" */(/3#:\3#.7? .03#:1" .7"5. I [65"5,3#.7+ [.7+ d,0+ I :1(*/& ZTB T D&1(!Y5Y;]agd.03-.L= P1(K`U.7<. I + #O .0= 68:'+ [65
.03#39#?/"X.J= ?/+ #<#(" $B.J3#*e,J.0(*/GA:1"X.[= ?/+ ,0~ .7~Q:1&1:'" .7"5hT I 29CGe? &W* S  -Ya.L*/(,0+a39,-Ge?\,-((4"5!#+8,-(/.7"5
TUE7.0&',0+8:DZ6 $ : L[:1(4E0#+86 .7"5NYS3#.7?Q.03#:'" .7"5. I J65"5,3#.7+8h65"5 I L,0+ I :1(*/& 1 7]
@X/0N 7 / >{ 8z (*/& I :1(4"5+ }?/+8:1( 3#:'? .0&'&' I #<.E7.0(4" .NMd.0&'2GeGe,0+;:1:1&',0+_.065,3#:1.7" :'E0 I S" :'?A!,0?/R & I
65"5`U.7? " */&D3-.= ?K&z.0P (O . = I .7"5&'K3#.7+ 65 I ,0+ 6 3K.fR9C? &1:W3#:'"h65"5,3#.7"56 K65"5,38|.7<>.V= P1(Ge, I :1Ge? &W:13#:'"A6 $ :
.0&'"5&'0]g9CGe? &1*65L,0~ 6 #+ E\.= *65$ ,0+)3-.K= .7?Q&1:13>. P I +8#O-*/&1.Z#~/~?/+8:1(65"5,3#.7+8.K*/(*/:E039"5,0+d6 65"5,38|/.7<>. =
:1Ge?Q&1:13#:'"J6 $ :39,-Ge?Q&'Ge(4" .7+8*/&6X.0= *lT I 9CGe?Q&1*&1.K6 "5,3#.7+ .T7 J7XYd65@65"5,3;|.7<>.= 6 $ :ST L77 JXY5Y;]
&z.0P (O .e= .0394$6 " :E039"5,0+8:39,-Ge?Q&'Ge(4" .7+8:65hGA.0:\?\,0"S65"5,3#.e:1Ge? &1:W3#:'"d6 $ :\39,-GJ~ :1(/.7" $B:W:&W:1(/:1.7+ d.0&'dE039"5,0+8:1&1,0+ I :1(
65#" */& I }GeGe,0+8.7"#] (4"5+8*#E:'" .7+8.).7"5+;.039"5,0+8:1&',0+_? .7+;.7<:'" $%:-RQ65}Ge, I :RQ3-.!= + #O-*/&1. I 65"5,3#.7+8}R I :W(/.0GA:13#.
I e+ #O .0= 68:'+ 0]Z E.7+;:1.0(>"X. = I eGe, I :RQ3#.7+ e.f.03965"5:1. I :1(*+8G.K= 6 "5Z.039#.KP1(3#.7+ K65A*" :1&1:1<#.7<>.= * (/:'"X.7= " $%:
`B*/(/39" $%:',-(/.0&1d3#*39,-Ge?\,0+ " .7+ L.0&'.7"5,-.7+80i
ZT 0 TUXYa fTU5Y5YD c9C?T  ; S#X TU Y5Y
ZT 0 TUXYD J TU Y5YD c9C?T  S#X TU Y5Y
H

@H

=/

0l

0m*

m0l

=/

qH

.4

K6

8

h% /

( l0



N0

!



" :1&1:'<.7+8.A*/(/:'"X.7= " $B:W&',0+2`B*/(/39" $%:',-(/.0&1h.0&'.7"5,-.7+ @?\#+8GA:'"5[#E7. I .7+ . I :1(f+8#O-:1*/(/:1&1 I J.7"5+8.039" $%:1J.0&'L.7"5+;.03H

"5,0+8:1&1,0+2( I ,0+8:'" $U:aTB.Z3-.7= + ,0+ I :WGe(/6 :1* ( I [6 "5 I [+ #O-* &w.e= GA.0:+ I */6X.>= Y;]
_ 7a8De _)\ h@2 ! c8@_SD D 8   !28!
65#+8:'V"5GA?,0+;.0&w.= 65"5,6 #+8:' I I .7"5VP1(+ #O-:W65"5+8.7"5&1.Ge,-Ge(4"568*/3#396 :'E0 I V" :1GA?3#.7+ ?\#+8GA:'"5
I 6 39+;:'#+ .*/(: G.7= +8:1GA:Q39#E0,-&1*/.7<>.[= PW(Z" :1GA?T I 9CGA? &1*K?/+ #" $%*/&Q*/(4* :/" :'? I .039" $w:1*/(/:bF-+8.7" . I )6838|/:1GJ~
E7.0&1*" .7+F_"5Ge?\#+8.7" */+8..7" Ge,-65`U#+8:13-.= #" 37] Y;]c&'Ge(4"5&'65#+8:':?\,0"LRE7.0&',0+8:}6 3#.0&1.7+868.0*E039"5,0+;:1.0&'0] P (
39,-(4" :1(4* .7+ E0,-G .0(/.0&1:'<.3#.7<*/&!GZ.0:!6 :1GA? &1*.0&2E7.0&',0+8:W&',0+Z6 3#.0&1.7+8P1(/6N.= 3#.7<*/&2E039"5,0+;:1.0&!6 "5?/+;:1(/3#:'? :W.0&
6 :1GZ:1&1.7+]
(/. I :W(>"5+ ?/+;:1(/3#:'? .0&1&'Z?/+8&1*/39+N.7= P +8:}39:W(>"5#+ E:1(P1(? + &1*/39+8.7+8.65#+8:1:1&1,0+"5GA?,0+;.0&'f65"5V?/+8 I :139" $B:1.

E7.0&',0+8:1:TUE7.0&',0+8:1&1,0+YE:W:'"5,-.7+ I :W(e65#+8:'0] (A6 39,0? */&/#`{39" *.7= +;:1:/*/(:/?/+ I :139" $U:1:6 "5*" :1&z.d= ? */(#+ .!PW(e#E: I (" $ . =
.2*/(*/:0Ge, I &-3#.7+8c6 *+8?/+8:1( I I #?\( I (/" $U.P1(>"5+8DE.0&1,-.7+ .SE:1:'"5,-.7+ a.!65#+8:':Q68$ :0E.0&1,-.7+ .!3#*+8(>"X.J= 68$ :0#E0(>" * .0&
39&'L.0(4"5#+8:',-.7+80] (>"5+8*,Z65#+8:1d683#.0&1.7+N. = TU5Y}* (fGe, I &65"5h,A`B*/(/39" $U:' i
39J6 .7" :165`B.0390i
TUXYD ZT TU Y; TU lXY;### TU XY; 0###X Y
3#* ? .7+8.0Ge#"5+8:392GA, I &1.7<>.[= `U.039"5,0+;:1:9C"5#+;(/:392:1( Q*/(" $W.7<>.L= E.0&1,-.7+ .dE:W:'"5,-.7+ 2.[65#+8:1:%] P (@`U* (/39" $%:' I
?/+ ,0? +8:'#"X.7= " $B:1&')`U* (/39" $%:': Ge, I &'&'d6 */(4"#i&W:1(/:1.7+ )6 .0*f(&1:W(/:1.7+ 0F I #"5#+8GA:1(/:W65"5)68.0*(/ I #"5#+8GA:1( :165"5eTB39,-G@H
?\P ,-((4"5&'e.0&'.7"5,-.7+ Z65A:W(>"5+ , I */3L?\(>"5+8*.fGe, I &1.`B.039"5,0+8:1:(3#*/(/,-6 3#*" $%:!6 $ : 68.0*#+8,0+8:1&' I eG.0= 6 */+8.7+ NY;]
(f65" .7" :165" :13-.Z= 6 */(4"2*" :1&1:'<.7"5 I :1E0#+865[Ge, I &'0] (4*/& I :1(>"5+8d.0396 "5.F3#*/(/,-6 3#*"23#.AGe, I &.0*"5,0+8#O0+ 6 :'E I
,0+ I :W(?F AT Y65h~ .7<#.7<>.Z= ?[+8&1.7" $%:1.i

T-Y
TUXYD 1 { TU Y
*/( I 265"5L,ZE.7+8:W.7~ :1&w.= .0&'.7"5,-.7+ 3#*f+ #? .7+ " :1" $%:'h(,0+8GA.0&z.f= 68$ :Ge I :'h(*/&w.= ]
!#" $%&'&'(*+ ,-(/.0&1D?\#+8GA:'"GA, I &W.7+ .!*/(/,0+ I #?\( I (/" ${}(&1:W(/:1.7+ 0] " */( 3#:43>.0P ( I ,0+ I :W(4*/&>Ge, I &1*/&1*/:bF
F/6 "5J3#*/(,-683#*"265L?\,0"2*" :W&1:'<.+ #" $%&'L`.7= +N.A= + 3#*+ (" ${ I .7+P1(V3#.7<* &QP1(V3#y .7+ (*f65"5J3#* (,-6 3#*"2+8#" $B&'&'
+ 3#*+8(>"5L68*/(>"2GZ.0:. I 39E7.7"50]
> 5 U z4 w @/ > w #NNX DQN {Q #+8GA:1"#`U39" */.7+ . I ?/+ I :139" $U:1:DP1(3#.7<* &aP1(3#.7+
65Z3#* (,-./65$ "5Z(*/G.7= +8* & I eE.0&1,0+8:D.0(4"5#+8:',-.7+ Z3#.7+8K:1( *(" ${.7<>.V= E7.0&',-.7+ .fE:1:'"5,-.7+ 0] +8| :'"539" *+8.f.03965"5,0+
+ #" $U&'0F):1&1*/6 "5+8.7"X.= P1(R O] TB.>Y;F[653#.7+8.039"5#+8:1<#.7<>.= ?/+8:1(`U.7? " */&3-.= (/:1E0&1*/& I :1(4"5+8.7+ y 39,-(" $%:W(?\&z.0P (O . =
*/(/:1" .7"5.f39A?/+8:1GA>$65"5e65GA(/.0&1* &3#*/+ (>"#F TU Y;F.0&'"5 e*/(/:1"X.7= " $%:_3#.7+ e"5+8.0(/6 GZ:'"h65GA(/.0&1&'e.0(>"5#+8:1,-.7+ 0i
TU XY;Fc##{F TU XY;]Ve?\,-.7"5K39,-( 6 : I #+8.f3-.= .03965"5* (/:'"X.7= " $B:D(*39,-GJ* (/:13-. = I :1+ 39"h3#*Ge I :1*/&3#:
Pz6 $ :"5+8.0(/6 GZ:'"!6 */ 3#3968:'EV65GA(/.0&1&'L?/+;:1GA:'"5 I &1.A? +8:1GA.A* (/:'" .7"50] P (V`U&1*/&.03965" . I #?\( I (" ${.K"5Ge?\,0+8.0&w. =
65?\3#:RQ3-.e= 6 #+8:':\65"5h"5+;.0(/65`U,0+8GA.7"X.J= P1(4"5+5Hw*/( .6 ? .7" $%:1.0&w.= ]
gd.03-.K= ?h( :'E0&1*/&.06 3#* (/6S9C:165"X. = */( :'"X.7= " $%:.E.0P ( I `U*/( 39" $%:1. I h"5+8.0( 65`{#+dF/65GA(/.0&W*/&\?/+ , I */6 I L+ #" $B.
TB.7?/+ ,XC:WGA.7+ .A*+;G.7= "5,-.7+ :E7.0&',0+8:.A6 #+8:':{Yc65"50i

_T TU 4Y5Y

PP (>"5+8* 3>.7P "+ #" $%.0*/.d(4*39,-(" $b:1(/c39,-(9C:1*/(/:4:1(4E0#+865`U*/( 39" $%:',-(/.7+ .65"5S39.d65?\3#:RQ3-.!= * (:>+8#" $B&'c`U# I `U,0+ }.7+ I ]
(39#.39?/+8:'E04$65"5.0(>"5+8(/.7+ .F!.039.065" .?\,-.7"5R.068:'O-*+8.7"X.= .7? &1:13>.0P ( I .0&'O0,0+8:'" G*/& .03 + ,0? .7O-.7" :',-(
3#*39,-( I :1" $U:W.3#.65#" * & I .0(4"5+ (/.7+8V6X.= R ?/+ #O .7= " :'"e. I 39E7.7"#]/,-&',-6 :1( I 65#" * & I E7.0&',0+8:}3#*/(/,-6 3#*"5f.0&'
65#+8:1:%i TXY;F T%-Y;F']']']'F T Y;F T XY;F]']'] TU5Y!&'GA(>"5&' I :1(65#" */& I J.0(4"5+ (/.7+ E0,0+)R?\#+ 3;|/: I L`U,0+8GA.
T5T T bY; T XY;###X T @XY5Y; T QXY5Y?\(4"5+8* 5]

[D

(D

vK

u

*U

jf

21

.

v

u

2; W<

6f<

'

'6

<

b8

24

A;

21

=K

T

v



K

> 5 U a +8:1(/3#:1? .0&1*/& I #<.XE.0(4" .NMZ.0&+ #" $B&'&',0+e3#*`U#+ 65"5+ "5Ge?\,0+8.0&'65"5f`B.7?/" */&3-. =
(396 :1"X.= 3#*/(,-. 65$ "5#+ .?Q.7+8.0Ge#"5+8*/&W*/: ]2#" $B&1&'fa&1GA.0(?\#+8GA:1"JGe, I &1.7+ .:1GA? &1:13#:'"X.= . I #?\( I (" $W:
"5Ge?\,0+8.0&'?/+8:1(*" :1&1:'<.7+8.*/(,0+*/(/:'"X.7= " $U:39,-(>"59C" */.0&'39ZM,-.03-.= + ,-&1* & I GAGe,0+8:' I 6 3#*/+ "X. = I *+8.7"X.= ]
y65#"3965I "h?" /:'? + ,0I ?\e+,0<8:'#"" $U$%:1.:fO0.f(`U#+,-865.7" "5.I #<0#&1E0.,-7&'"5" ,0.7+V"X.= ?\P~1( .7<.F_* :1(4(/*/:'":${:1.0E0&,3#?\.7(~ >*/"5+;&1.7*+f.Z&1:1P1GZ(>E:'" .7= .7" $%"#.V] 65"5+;39*/,039? " **/+8&).+ #"O0$U+8&.0'GA:).7#+" 8:W3#..0&w?/.V= +8 .VI */:139(" $B*/:1. :
*+8G.7= "5,0+8*/&1*/:\3#*E.0P (4" I :1(+ #" $U.Z?d~ .7<.Z39&1*/:3#*+8(>"#]
+8|/:'"539" */+8.+ #" $U&':JT I 6 39+8:16N.= P1(R O] TU~Y5YA39,-(/65"X. = I :1(4"5+5Hb,+ #" $B.`U# I `U,0+ }.7+ I 3#** (l(/:'E0&S.06 3#* (/6
39,-Gey ? &1#" .7"X.= 3#**/((/:1E0& I K* (/:'"X.7= " $B:a39,-(4"59C" * .0&'3#.7+839,-G*/(/:13-. = I ,-.7+3#**/(/:1"X.7= " $U:W&'A.06 3#*/(/6 0]V:13-.7= + :
*/(/:1"X.7= " $U:.06 3#*/(/6 P1:39,0+ 65? */( I V,* (/:'" .7"539,-(4"59C" */.0&w.= 3939,-(" $B:W(&1.Ge,-Ge(4" */&2eE7.0&',-.7+ .?/+ , I */6X. =
I e*/(/:1" .7"5.f.06 3#*/(/6X.f= 39,0+865? */(<>.7= "5,-.7+8Z&1.Ge,-Ge(4" */& 7]Z:1(O-*/+ &'J39,-(/9C:1* (/::1(>E0#+;65A6 */(4"[39&' I
&1.*/(/:'"X.7= " $B:W&'J.06 3#* (/65e3-.7= "5+ e*/(/:'"X.7= " $B:W&'J39,-(4"59C" * .0&'A39,0+ 65? * (<>.7= "5,-.7+ 0] ,-( I #+8:1&'.03965"5,0+L39,-(9C:1*/(/:6 */(4"
R/C.7"5?\7F2+ .0&1:'<4.0P ( I *Hw65 I `B.7?/"Z,39,0? :'#+8.65GA(/.0&W*/&1*/: I :'4$6 :'+8.( :'E0&1*/&1* :S.06 3#*/(/6eP1(( :'E0&1*/&
39,-(4"59C" */.0&b] ,0"N.0P ( I 3#* TU Yd65GA(/.0&W*/&?/+ , I */6[&1.fGA,-Ge(>" * &D I Z3-.7= "5+ */(/:'" .7"5.V.0683#*/(/6X. = F3#*
E039"5,0+8*/&\3#*K?\,-( I #+8:1&1239,-(9C :W*/(/:1&',0+ I :1(/65? + 2*/(/:'" .7"5. I ):1(>"5+;.7+ 3-.7= "5+ [(/:1E0&1*/&/.06 3#* (/6#F43#*V DGA.7"5+;:139.
?\,-( I #+8:W&',0+39,-(/9C:1* (/:1&',0+ I :'+ 39"5 I :W(>"5+ f*/( :'"X.7= " $B:1&'f39,-(>"59C" */.0&'$68:S39&'V.06 3#*/(/6 $68:S3#* E039"5,0+8* &23#*
?\,-( I #+8:c.0&'39,-(9C:W*/(/:1&',0+3-.7= "5+ f(/:'E0&1* & I :'4$6 :'+80F6 GA(/.0&1*/& I :'>$6 :'+ 0FD39,0+865? */(<>.7= "5,0+e:1(4"5+N.7= +8:W: TU YJ65
3#.0&13#*/&1.7<>.e= ?/+8:1(i
 TU Y
TU YD TU Y TU XY

39,-(/6 : I #+N.= 3-. = T >Y@ ]g4$68:68*/(>"?/+ #<#(4"5f39,-(9C:1*/(/::1(4E0#+865`U*/( 39" $U:1,-(/.7+ .(4*65"5 I " :'? I :H
(/.0GA:W37]Dd+ I :1(*/&Ge, I &1*/&W*/:(4*K.7? .7+ )9C?Q&1:13#:'"P1(K.7+8|/:'"539" */+8.h+ #" $%&':P1( 6X.h= .7~ :1&W:'" .7"5.h: I !? + I :139" $U:'65"5
:1( *P (" $U.7"X. = I h(*/G.7= +8* & I h*/(/:'"X.7= " $B:.06 3#* (/650]
(>"5+;*/3>.7P "Z?\,-( I #+;:1&'39,-(9C:W*/(/:1&',0+A:W(>E0#+86 6 */(4"@R/C.7"5.0(4"5+ (/.7+ .65"568:1GA:1&1.7+.= 3#*39. I :W(3#.7<*/&
+ #" $U&'&1,0+!`U# I `{,0+8.7+ I ]}#" */& I h.0(4"5+ (/.7+ 39,-(" $b:1([?\#+ 3;|/: I L`{,0+8GZ.T T bY; T QXY5Y;F  75 l0] }.
.0&'O0,0+8:1" G I P1(4E\.7= " $B.7+8L65[?\,-.7"5h`U,-&',-6 : }.03 +8,0? .7O-.7" :',-(]
2; 6

4=;

Nm





f

21

v



x( t)

x( t)

Wx
1

x( t-1)

1
x( t-2)

x( t+1)
W

x( t+1)

W2

W2
1
x( t-p+1)

W1

TB.>Y

TU~Y

 :'O-*+8. 4i y +8|/:'"539" *+;:c65?\3#:R39Z?/+ &W*/39+N.7= +8:1:_6 #+8:1:1&',0+J"5Ge?\,0+8.0&'0]TB.>YJ2#" $B.`{# I `{,0+ }.7+ I 3#*`{#+ .06 "5+N. =
"5Ge?\,0+8.0&w.= TU~\Y}2#" $B. I [" :'?Va&WGA.0(]

_ 7a8_a;e S!

2#" $%&'&'[39&1*/&1.7+8d6 d3#.7+;.039"5#+8:'<#.7<>.K= ?/+8:1(K`U.7? " */&3-.e= */(/:'"X.7= " $U:1&1)`B*/(/39" $U:',-( .0&'ATB3#.7+ 0F &1.`U&3#.JP1(3#.7<*/&Ge, I H
&1*/&W*/:!,0?RQ& I F-6 */(4"P1(e.039&1. 68$ :/" :1Ge?A* (/:'"X.7= " $%: I !:W(>"5+8.7+8L$6 : I !:'4$68:'+ NY6 */(4"D? &1.068.7"5cP1(e(, I *+8:1&1*/(/:O0+8:1&'
O0#,-Ge#"5+8:W39TB6 :WGA:1&1.7+2(/:1E0&1*/&1*/: I J*/(/:'"X.7= " $U:`B*/(/39" $B:1,-(/.0&'h.0&'J+ #" $B&'&',0+ I h" :'? [,-|,-((QY[68$ :6 */(4"!39,-(39" .7"5
I ,-.7+@3#**/(/:'"X.7= " $U:1&' I :1(E03#:W(.7= " .7"5.&',0+] 39.065" .39,-(39" :'E:'" .7"5f&',3#.0&w.V= `B.039f3#..0396 "5+8#" $B&'6N.V= ?\,-.7"5
Rl*65$ ,0+e:1Ge?Q&'Ge(4" .7"5? +8:1(3#:'+83#*/:'"5&'39"5y + ,-( :1390] y 39.065" .?\#+8GA:'"5+ .0&1:1<.7+ .*/(,0+@38|/:'?/Hw*+8:3#.7+ f+ 9H
<#,-&'E.L= +;.7? : I .0(*/GA:1"5!?/+ ,0~Q&'GeJT I 9CGA? &1*F4?/+ &1*/39+.7= +8: I d:1GA.7O-:1( :{Y;] I .0&1"X.L= ? .7+8"50F6 :WGJ*/&W.7+ .L65,0`U"
..03965"5,0+@+ #" $B&'?#+;GA:'"5ZGe, I &1.7+8.V*/(,0+`{(/,-Ge(K(/&1:1(/:1.7+80F.* (,0+ I :W(/.0GA:13#:D| .7,0" :13968.0*.*/(,0+
6 :16 "5GedR <:1390]
{X0NN }.6 $ :P1(3#.7<*/&+ #" $%&'&1,0+ I J" :'? [,-|/,-((39&GZ.0:`U+ 39E0(4"hGe, I &6 "5A39&~Q.7<.7"[?,
O0+8:1&z.A= ~ : I :1Ge(/6 :1,-(/.0&w.L= P1((, I *+8:1&1h3-.7= + :1.6 */(4"?Q&1.06 .7"5@*/(/:'"X.7= " $U:1&'J`U* (/39" $%:',-(/.0&'0][:'3#.7+ e*/( :'" .7"5J?\,-.7"5JR
.065"5`U&}: I (4" :RQ3#.7"X.V= ? +8:1(?\,0<:'" $U:1.:_P1(3#. I +8*/&DO0+;:1&':%i T wY >7###N  >7###N V 6 $ :}.7+
.065,3#:1.7"a*/(Z65#" I SE03#:1( :%]_3#:W(.7= " .7"5. I 2,0+ I :1( .h*/(/:1"X.7= " $%:1: K65 I 9R(>$65"5!*" :W&1:'<4.0P ( I ,[`B*/(/39" $%:' I :W65" .0(" $5.= i
T \Yc
T  -Y 0-]2h?\,-.7"5J*/" :1&1:'<. I :16 " .0(" $%.e*/P 3#&1: I :1.0(.@= 6 .0* I :165" .0(" $B. .0(/| .7"5" .0(]S:13#.7+
*/(/:1" .7"5 65"5V39,-(/39" .7"X.= 3#*"5,-.7"5*/(/:1"X.7= " $U:W&' I :1( T \Y;] (R O-*/+8. 65"5V:W&1*/65"5+8.7"X.= .7+8|/:1"539" *+N.= */(:
+ #" $U&'J3#* I h*/( :'"X.7= " $%:\~ .7<.7"X.A= ?\[,AO0+;:1&w.= ?.7= "5+8.7" :13-.= 6 $ :E03#:1(.7= "X.7= " $b: I [,0+ I :W(7]

CT

&

B US

:'O-*+8. i2#" $U.A39&W*/&1.7+N.e= 3#*fO0+;:1&w.@= ?.7= "5+8.7" :W3-.V= 6 $ :E03#:1(.7= "X.7= " $w: I [,0+ I :W(e]
0 8UQ/ /*/( 39" $b:1. I K"5+;.0(/65`U#+@39&}GA.0:`U+ 39E0(4"A*" :1&1:'<.7"X.= &1.+ #" $B&'&'39&1*/&W.7+ K6 "539.+;.0Ge?.= i
_T \Y_ T d Y 7] (4"5+8*. I 6 39+8:'+ &1.7" $%:1:1&1 I !`B*/(/39" $B:1,-(/.7+ .0&1+ #" $U&1: `U,-&',-6 :1G *+8G.7= "5,-.7+ &'
(,0" .7" $%:W:%i
j TU5Yc TU Y !L+ #? + #<:1(4"X.e= .0(/6 .0GJ~ &1*/&\65GA( .0&'&',0+ I h:W(>"5+8.7+8P1(f*/(/:'"X.7= " $U:1&1)`B*/(/39" $B:1,-(/.0&'0
j TU YD TU Y !L+ #?/+ #<:W(>"X.e= .0(/68.0GL~ &W*/&\65GA(/.0&'&1,0+ I h:'4$6 :1+ 0F TU YD_T TU5Y5Y;
j TU5Ya TU Y !h+ #?/+8#<:1(>"X.Z= .0(/6 .0GJ~ &1*/&\65GA( .0&'&',0+ I h39,-(4"5+ ,-&"5+;.0(/6 GA:16 d* (/:'"X.7= " $%:1&',0+X
j TU5Ya TU Y !L+ #?/+8#<:1(>"X.e= .0( 6 .0GL~Q&1*/&?/+8.7O-*+;:1&',0+S39,0+ 65? * (<>.7= "5,-.7+ J* (/:'"X.7= " $B:1&',0+
j 65"5L?\,-( I #+ .@39,-(9C:W*/(/:1: I :1(4"5+ [*/(/:1" .7"5. f6 $ :*/(/:1" .7"5. 
j  65"5D?\,-( I #+ .S39,-(9C:1*/(/:1: I D&W.S39,-Ge?\,-((>" . .S6 GA(/.0&1*/&W*/: I D39,-(>"5+ ,-&4&1.S*/(/:1" .7"5.}`U*/( 39" $%:',-(/.0&w. =
0



9 N
N

L%

}*.03965"5J(,0" .7" $b:1:\`U* (/39" $B:',-(/.7+ .e+8#" $B&':?\,-.7"5[R I 6 39+;:16X.@= ?/+8:W(i


TU Y TU Y
TU5Y TU Y;
T -Y
TU5Y

(4"5+8** (/:'"X.7= " $B:1&'. .7"5?\V`U+ ,-(>" :1#+N.= 65?,-.7"539,-(/6 : I #+8.3-.= &'V?/+8:WGe6 3f65GA( .0&'$6 : I &1.(/:z65$ "5
*/(/:1"X.7= " $U:aRQ39" :'E0TBGA.7+83#.7"5ZP1(R O-*+8. V?/+8:1(?.7= "5+8.7"5NY;]GA(/.0&1*/&D?K3#.7+ * (/:'" .7"5. I K?K`{+8,-(>" :'#+.K= P1&
?/+8:WGe>$65"5 I K&1.*/(/:'" .7"5.RQ39" :'E.= 39,0+865? */(<>.7= "5,-.7+8E7.R(/,0" .7"@3#* ] y &'#O0#+ .E.0&1,0+8:1:D?\(4"5+8*.0396 "5
65GA( .0&' I #? :1( I I S?/+ ,0~ &1GA.d?\(>"5+8*e3#.7+8652? + ,-:'39"5.7<>.h= +8#" $B.0*/.)P1( 6X.2= P1(AG*/&'"52.7? &1:W3#.7" $%:1:65!39,-(/68: I #+N. =
3-. = @ ]
!&1.7" $b:1.T -Y2?\,-.7"5LR6 :1Ge?Q&1:RQ3#.7"X. = I .03-.K= ?\,-( I #+8:1&1d39,-(/9C:1* (/:1&',0+ I :W(>"5+ J*/(/:'"X.7= " $U:1&'LE03#:1(J(* I #? :1( I
I [?\,0<:'" $U:1.@.03965"5,0+8.] y 39.065" .P1( 65.0GA(.@= 3-.@= ?\(>"5+;*,A*/(/:'" .7"5 T w4Y}?\,-( I #+ .@39,-(9C:W*/(/:1: I :1(4"5+ d.
6 $ :*/(/:1" .7"5.KE03#:W(. = ZT 7wY)65"5A.039#. 6 $ :D3#*?\,-( I #+8.K39,-(9C:1*/( :1: I :W(>"5+ @*/(/:1" .7"5. T Bw WY6 $ :
*/(/:1" .7"5.  T 7w {Y;] y 65"5`U&?\,-( I #+ .*/(/:39,-(/9C:1* (/: I #? :1( I I ,-.7+ I e?,0<:1" $U:W.+ &1.7" :'E.= .f39&',0+
I ,-*.K= */(/:'"X.7= " $B:E03#:1(f$6 :(* I L?\,0<:'" $B:1.K&',0+.7~Q65,-&1*"X.@= P1(3#. I +;*/&+ #" $%&':%i   ]!D.0&',-.7+8.39,-G*/(.= .
39&',0+ I ,-*.e= ?\,-( I #+8:\65h(/,0"5.7<>.K= 3#* 5 ]
65"5`U& I c+8#" $B&'S65S(4*/GA6 3a+8#" $%&'}39&1*/&1.7+ }3#*f6 $ .7~ &',-.0(/}:W( I #?\( I (4"5 I }?\,0<:'" $U:'[T03#&',-(/:1(/O)"5GA? &1.7"5
39&1&1* y &1.7+S(*+8.0&(#"zc,0+ >Y;]
gd.03-.Z= 6 L&1*/39+ .7<>.Z= 3#*fE03#:1(.7= "X.7= " $%: I [,0+ I :1(*/&7F I [`U,0+8GA.i
T w4Y4T 7w XY;XT J7wY;NT 0weXYXT w JXY;NT wY;XT wAXYXT e7z JXY;T e-wY;NT e0wAXY;
? .7+8.0GA#"5+8:1:&',0+!68*/(>"S+8#?/+ #<#(4" .7" $b: I I ,-*.e= GA.7"5+8:13#:a6 $ .7~Q&',-(i




  
T 4Y
/5 /5 /5
X5 X5 5
+86 *? */(.0P ( I 3-.= "5,-.7"5}* (/:'"X.7= " $%:1&'c.0*J.065,3#:1.7"X.d= .039#. 6 $ :E7.0&',-.7+ }.!?/+;.7O-*/&1*/:%F F0(*/G.7= +8*/&-"5,0" .0& I c? .7+;.0Ge#"5+8:
.0:+ #" $U&1:65"5Z A`U.7?/"239L`U.03#:1&W:'"5.7<>.e= ?/+ ,396 */& I I #"5#+8GA:1( .7+ [.A.03965"5,0+8.]
}*.03965"5J(,0" .7" $b:1:6 :165"5G*/& I [3#* .7" $b:1:DT -Y}?\,-.7"5[R+ 6 39+8:16aPW(>"5+5Hb,e`U,0+8G.Z= GA.0:6 :1Ge?Q&w.= i
Q{ TU5Y U TU Y
TU Y
TU Y w >7###N  T -Y



3#*
4T L7 LXY;XT L7 >Y;XT J7XY;XT  LNY;XT  >Y;NT XYXT57 JNY;XT57 >Y;NT-XY;
T >Y.[ 6 :1G*/F&1.7+ .d65,0`U"a6 K+.[ .0#<39#6,-5&1"5E\,0.=++ (#"*/$BGe&'26#+8 :1:W365"5TBG*J" :1* &1:'&<4T.0P ( -IY6 I .0*A9C6 :W65G"5AGJ? &1* *&\GAT -#"5YD, 39I ,-.Gea? &'* #"&' #+.7J"c9C3#*e? ,h&1:W3#39:',-"X(.>= IY;] :'" $B:1P }:(W(/.0:'39" $B6:1.0 "5&w. =
39,-( I :1" $U:W:\+N .0= 65? */( 6 */&+ #" $B&':6 [,0~/" $%:1([#`U39" *.0P ( I ?/+ ,396 */&\:'"5#+8.7" :'Ei
TU Y TU Y5Y;
TUXYD T QY TU5Y T
TU5Y
+ 65?\39" :'E
TUQXYDT Y TU Y T
TU Y
TU5Y Y; w >7### 


.7+8.0Ge#"5+8* & I :1(+ &1.7" $%:1:1&1 I hGA.0:6 */6}+8#?/+ #<:1(4"X.e= ? .06 * & I L:1(4"5#O0+8.7+ L*" :W&1:'<.7" I hGe#"5, I .A(*/Ge#+8:W3-.= ]



!

m

&1

N"

S

N"

K'

A

}A

.

A

 

A

 

N"

B

# 



N"



N0

# 

j

N0

 (E

U

m

T

m

N B -/4B N B>N/V U U 4 2#" $%&'&'S39&1*/&1.7+8}3#*68$ .7~ &',-.0(2:1( I #?\( I (4"5 I }?\,0<:'" $B:'}?\,0"
R*/" :1&1:'<.7"5h?\(4"5+8*:WGe? &'Ge(4" .7+ .A* (,0+2RQ&1"5+ I :1(V?/+ &1*/39+;.7+ .A:1GA.7O-:W(/:1&',0+2.0&'~/Hw(#O0+8*] +86 *? */(/G 3-. =
:1GA.7O-:W(.J3#.7+8["5+ #~ */:'?/+ &1* 39+8.7"X.L= 6 "5h39,-(/65" :'" */:1"X. = I :W( ? :C&1:68$ :Q6 "5d39, I :R3#.7"X.J= ? +8:1(4"5+5Hb,GZ.7"5+8:139
.0&1L3-.7= + :&'GA(>"5L39,0+865? */( I ?Q:C&W:1&',0+hT{H8[?\(>"5+;*f*/(? :C&.0&'~6 $ :Dh?(4"5+8*f*/(?Q:C&(/#O0+8*QY;]
&'#OQ.0P ( I . I 39E.7"68$ .7~ &',-.0(&' 6 $ : F65GZ(/.0&1*/& I A39,-(4"5+ ,-& F?/+8.7O-* & FE7.0&',0+8:1&1 I ?\e`U+ ,-(4" :'#+N.= F
6 $ :ay 65" .7+8.:1( :'" $B:1.0&w.V= .+ #" $%&':a?,0"LR:1GA ? &'Ge(4" .7"5 I :1E0#+865AR&'"5+ I :W(?/+ &1* 39+8.7+ .V:1GZ.7O-:1(/:1&',0+X] (4"5+8*
*/(&1?/+8&1*/39+N.7= +8:?\,0"9C:16 " .GA.0:[GJ* &'"5E.7+8:W.0(>"5 I I #"5#+;GA:1(/.7+ .? .7+8.0GA#"5+8:1&',0+] .?/+ &W*/39+N.7= +8:1&1
6 :1GA? &'0F I #"5#+8GA:1(/.7+8.S? .7+8.0Ge#"5+;:1&',0+6 a~ .7<#.7<>.= ?\a+ #O-*/&W:1&'_&',3#.0&' I a"5+8.0(/65`U,0+8GA.7+ .2? :'C&1:W&',0+39c.06 :1O-*+N. =
"5+8.0(/6 `{,0+8GZ.7+ . I ,0+8:'"X.= .:1GA.7O-:1( :1:T I 9CGe? &W*&W.K&W:1GA:1(/.7+8.A<#O0,-Ge,0" */&W*/:39.VGA.0:6 :1Ge?Q&w.A= + #O-P * &w.= 65"5
39..AGA.NM5,0+8:'"X.7= " $b:1:bia*/(f? :'C&.0&1~P1(/39,M *+8.7" I h? :C&1:(#O0+8:65h"5+8.0( 65`{,0+;G.J= P1((#O0+8*6 $ ::1(4E0#+86;Y;] (3#.7<*/&
*/(,0+d?/+8&1*/39+N.7= +8:39,-Ge? &'9C I #"5#+8GA:1( .7+ .Z?Q.7+8.0Ge#"5+8:1&1,0+d6 J+ .0&W:'<#.7<>.= ?/+8:1(P1(4E\.7= " $B.7+ VT1P1(3#.7<*/&+ #" $%&'&',0+
39&1*/&W.7+ !P1(>E.7= " $b.7+ .Z65[~ .7<#.7<>.K= ? I :'E0#+865[Ge#"5, I I [,0? " :1GA:'<.7+ 0F/3#* G .7+2R.0&'O0,0+;:'" GA:1:\#E0,-&1*/" :'E:UY;]
h.7P "5#E7. I :1(4"5+ c39&1}GZ.0:46 :WGe? &'D? + &1*/39+N.7= +;: I :1GA.7O-:1(/:6 $ :4? .7+8.0Ge#"5+8:W:>+ #" $U&1:439&1* &1.7+ }39,0+ 65? */(/<>.7= " .7,0+
6 */(4"S?/+ #<#(4" .7" $b:QPW(f39,-(>" :1(*/.7+ 0]
 m#nwm#s UvQr7s m rft8q0v nBus;us{p'q7s#x h.0&'#OZ*/+8G.7= "5,0+8:1:? .7+;.0Ge#"5+8:%i


 L
L L

  L
L
T -Y
L L L
:1(/:1" ${:1.0L&z.e=7F .e@+ #" $B&']a:?\GA,-.7(/"5.0[R&1* & .0I &'23.096X,-.A= (>"5.7+ + ,-~Q& :'"56+85.7"5!++] 8#?/+ #<#(4" .7" I 2:1GZ.7O-:1(. I S?/+8&1*/39+8.7"2T TU Ya LY:1.7+a6 " .7+ .
p UvQr7s m r >q q0nBupu m9pD Xq7p'r0o n 7x h.0&'#OZ*/+8G.7= "5,0+8:1:\?Q.7+8.0Ge#"5+8:%i




  
T 0Y

65" .7+ .T ZJ:17(/:'X" $UY;:1.0F &wK.e= .@+8#"]L$%&':GA65[R(/.0 &1C* .& 7I <>3.e= 9?\,-(>"5+ ,-T &6 "5TU+5Ya8 #?/e+ #<?\#((4>" "5.7+;*" I ,0+8::1391GZ.7O-68$ :1:/(4.Y;] I J?/+8&1*/39+8.7"@T TU YS LY!:1.7+
QU


; 

V4

2;

;

hT

NH

S

+j

!

[

S

N"

SISTEM DE RECUNOATERE AUTOMAT


A VORBIRII BAZAT PE
REELE NEURONALE FUZZY

n aceast lucrare este prezentat un system de recunoatere automat a vorbirii bazat


pe reele neuronale fuzzy, ca elemente de clasificare i recunoatere a eantioanelor vocale
prezentate sistemului. Sistemul prezentat este capabil s realizeze recunoaterea frazelor
discrete, independent de vorbitor, pe baza unor serii de timp ale rapoartelor de formani.
Sistemul a fost implementat pe un PC cu soundcard i microfon, iar aplicaiile software
utilizate au fost programul GoldWave, pentru nregistrarea on-line a eantioanelor vocale i
mediul de programare MatLab, pentru prelucrarea semnalelor i simularea reelei neuronale.

1 Introducere
Interesul actual generat de reelele neuronale fuzzy este determinat n mare parte de sperana
c aceste tehnologii, bazate pe modelul creierului uman, vor fi capabile s rezolve categorii de
probleme aflate acum mult dincolo de capacitile de rezolvare ale calculatoarelor din ziua de
azi [1] (funcii extrem de complexe, din punct de vedere al posibilitilor de calcul, pentru
calculatoarele numerice convenionale, cum sunt nelegerea vorbirii sau a stimulilor vizuali,
sunt mult mai eficient realizate de sistemele neurologice ale organismelor biologice). Studiul
reelelor neuronale a determinat apariia unor categorii de arhitecturi de reele care s modeleze
capabilitile creierului uman.
Recunoaterea automat a vorbirii reprezint un element important n sistemele de nelegere
a vorbirii, care tinde s mbunteasc uurina cu care oamenii interacioneaz cu calculatorul.
Astfel, comunicaia cu calculatorul prin vorbire permite utilizatorilor accesarea de la distan a
serviciilor furnizate de calculator chiar i prin linii telefonice standard. Cerinele pentru aceste
tehnologii sunt determinate n principal de raiuni economice, dar i de dezvoltarea de noi
tehnologii n domeniul telefoniei.
Astfel recunoaterea automat a vorbirii se refer la utilizarea unor instrumente pentru a
realiza identificarea unor elemente lingvistice prezente n exprimarea limbajului uman.
Sistemele de recunoatere automat a vorbirii reprezint primul pas n dezvoltarea unui sistem
care recunoate cuvintele unei persoane, interpreteaz sensul i furnizeaz un rspuns adecvat.
Actualmente att din raiuni economice, ct i financiare se dorete realizarea unor sisteme
de recunoatere automat a vorbirii capabile s nvee rapid noi seturi de eantioane vocale,
independent de vorbitor sau de limbaj. Ideal, eantioanele vocale trebuie memorate ntr-o
manier modular astfel nct aceste submulimi de informaii s poat fi combinate n pachete
adaptate fiecrei noi aplicaii, fr necesitatea unei reinstruiri pentru extinderea sistemului.
2 Etapele procesului de recunoatere automat a vorbirii
Procesul de recunoatere automat a vorbirii poate fi descris ca un proces n patru etape i
anume: nregistrarea eantioanelor vocale, prelucrarea semnalelor, extragerea caracteristicilor i
clasificarea exprimrilor [2].

Prima etapa este cea a nregistrrii eantioanelor vocale, n care este extreme de important
recepia eficient i conversia semnalului acustic provenit de la vorbitor ntr-un echivalent
electronic care poate fi memorat pentru prelucrri ulterioare.
A doua etap este etapa de prelucrare a semnalelor i const n principal n analiza spectral
a semnalului electronic pentru a obine o reprezentare parametrizat care codific informaia
spectral.
Etapa a treia este etapa de extragere a caracteristicilor i se refer n principal la eliminarea
informaiilor nerelevante sau redundante din prezentarea parametrizat obinut n etapa a doua.
Se obine astfel o compresie a datelor i o reducere a ncrcrii pentru prelucrrile ulterioare.
Ultima etap este etapa de clasificare a exprimrii i const n identificarea cuvintelor
rostite. Aceast etap implic recunoaterea fonemelor, grupelor de foneme, cuvinte sau fraze,
cu ajutorul reelelor neuronale, a modelrii Markov ascunse [3].
3 Sistem de recunoatere automat a vorbirii bazat pe reele neuronale fuzzy
Sistemul de recunoatere automat a vorbirii bazat pe reele neuronale fuzzy a fost
implementat pe un PC cu soundcard i microfon, iar aplicaiile software utilizate au fost
programul GoldWave, pentru nregistrarea on-line a eantioanelor vocale i mediul de
programare MatLAB, pentru prelucrarea semnalelor i simularea reelei neuronale.
Prezentarea sistemului de recunoatere automat (ASR Automatic Speeck Recognition) se
face pe baza celor patru etape ale procesului de recunoatere automat a vorbirii, descrise
anterior.
3.1 nregistrarea eantioanelor vocale
Necesitatea efecturii unor teste ct mai apropiate de realitate exclud utilizarea unor
eantioane vocale nregistrate ntr-un interval restrns de timp. Este necesar deci o baz de
date de eantioane vocale nregistrate pe o perioad mare de timp, pentru a ngloba astfel
variaiile zilnice care apar n vocea unui vorbitor. Pentru optimizare, s-a utilizat un set de mai
multe fraze, nregistrate ntr-un interval larg de timp i memorate n fiiere pe calculator.
Pentru a obine un sistem robust este important s se in cont de diveri factori implicai n
metodele utilizate privind mediul acustic, sistemul de microfoane, sistemul de transmitere i
variabilitatea specific vorbirii, astfel nct eantionarea i memorarea semnalelor s se
realizeze cu minimum de distorsiuni.
Toate eantioanele vocale au fost numerizate utiliznd placa de sunet a calculatorului.
Semnalele audio au fost numerizate utiliznd o rat de eantionare de 22050 Hz cu o rezoluie
de 16 bii.
3.2 Prelucrarea semnalelor
n prima etap, semnalele vocale au fost eantionate i convertite ntr-un format digital, cu o
rat de eantionare de 22050 Hz i o rezoluie de 16 bii pe eantion. nregistrrile cu ajutorul
telefonului au fost eantionate cu o rat de 8000 Hz, de o rezoluie de 16 bii pe eantion.
n etapa a doua s-a realizat analiza spectral a semnalelor eantionate, cu ajutorul unui
program elaborat n limbajul MatLAB, care utilizeaz o fereastr Hamming de 512 puncte de
eantionare. Amplitudinea semnalului n domeniul timp a fost normalizat nainte de calcularea
spectrogramei. Pragul relativ al zgomotului de fond variaz puternic ntre eantioanele vocale,
astfel nct utilizarea unui prag fix al zgomotului de fond poate constitui o surs de erori.

Eantioanele vocale au fost mprite n segmente de lungime fixat (1 s), s-a calculat
spectograma pentru fiecare segment, iar spectograma final a fost obinut concatennd
spectogramele rezultate pentru fiecare segment n parte.
Pentru ndeplinirea cerinelor de memorare, s-au memorat n fiierul de ieire doar prile din
spectogram care reprezentau frecvenele mai mici de 5000 Hz.
Spectrograma final obinut cu ajutorul programului elaborat n limbajul MatLAB este
reprezentat n figura 1.

Fig. 1: Spectrograma total a semnalului.

3.3 Extragerea caracteristicilor


Etapa a treia se refer la izolarea caracteristicilor lingvistice din spectogramele eantioanelor
vocale, dup eliminarea datelor nerelevante, pentru a reduce ncrcarea n etapele de calcul
ulterioare.
Pentru filtrarea zgomotelor de fond care apar evident n esantioanele vocale s-a construit o masc
de zgomot, utiliznd eantioane cu zgomot de fond prelevate la diferite intervale de timp. Pentru
construcia acestei mti, s-a calculat o spectogram pe o secund a zgomotului de fond eantionat,
s-a identificat amplitudinea maxim pentru fiecare band de frecven din spectogram zgomotului,
obinndu-se astfel un vector-masc. Acest spectru de valori maxime ale amplitudinii zgomotului a
fost sczut din fiecare secvena de timp a spectogramelor calculate mai sus, eliminndu-se astfel
orice contribuie posibil a zgomotului de fond. Valorile negative obinute n urma calculelor au
fost considerate nule. Utilizarea acestei metode de mascare a zgomotului a mbuntit identificarea
frecvenelor formanilor. Vectorii de mascare obinui sunt prezentai n fig. 2, iar spectrograma
semnalului dup mascarea zgomotului de fond este indicat n fig. 3.

Fig. 2: Masca de zgomot n cazul nregistrrii


cu ajutorul microfonului/telefonului.

Fig. 3: Spectrograma semnalului dup mascarea zgomotului.

Eliminarea perioadelor de pauz din eantionul vocal s-a realizat pe baza unei curbe de energie
pe termen scurt, obinut din spectograma eantionului. Fiecare punct al curbei corespunde sumei
amplitudinilor n frecven pentru o secven de timp dat. Deoarece formanii apar doar n
poriunile de eantion n care se vorbete, este important izolarea acestor poriuni pentru a obine
mbuntirea nregistrrii formanilor.
ntruct aceste poriuni au energie relativ mai mare n comparaie cu perioadele de pauz, toate
secvenele de timp n care curba de energie scade sub un anumit prag (fixat la un procent din
maximul de energie din curb) sunt eliminate.
Pentru fiecare band de frecven dintr-o secven de timp dat dintr-o spectogram, se compar
amplitudinea frecvenei cu cele ale frecvenelor nvecinate ntr-o fereastr de dimensiuni fixe, i n
care banda de frecven respectiv este poziionat la mijlocul ferestrei. Dup ce au fost identificate
toate maximale locale, se memoreaz doar acelea cu amplitudinea cea mai mare ca fiind valori utile
pentru localizarea frecvenelor formanilor.
Prin procesul de separare se elimin secvenele de timp din spectogram care au estimri eronate
ale frecvenelor formalilor. Dac prima frecven este estimat la mai mult de 1200 HZ, sau dac
nu exist trei estimri pentru o secven dat, atunci secvena respectiv este eliminat. Rezultatul
obinut reprezint o serie de estimri considerate corespunztoare, care sunt apoi memorate ntr-un
vector formant.
3.4 Clasificarea exprimrilor
n aceast etap, reeaua neuronal fuzzy este utilizat pentru a clasifica vectorii reprezentnd
esantioanele vocale obinui n etapa a treia. Reelele neuronale fuzzy bazate pe teoria rezonanei
adaptive combin logica fuzzy i procesele bazate pe teoria rezonanei adaptive de instruire,
rezonan, selectarea clasei. Valorile de intrare variaz continuu ntre zero i unu, astfel c intrrile
pot fi att analogice ct i binare, sistemul fiind capabil s realizeze o instruire nesupervizat la
prezentarea la intrare a unor modele arbitrare n timp ce se menin stabilitatea i plasticitatea,
utiliznd complet capacitile de memorie. Astfel arhitectura reelelelor neuronale fuzzy bazate pe
teoria rezonanei adaptive difer de cea a reelelor neuronale obinuite, avantajul principal fiind
acela c sistemul este proiectat s funcioneze corect i autonom, s nvee ntr-o manier ct mai
stabil i ntr-un mediu care variaz continuu cnd este expus unei secvene arbitrare de modele la
intrare, pn la utilizarea complet a capacitilor de memorie [4].
Figura 4 prezint procesul de clasificare prin trei grafice. n primul grafic se afl reprezentarea ca
vector raport tri-format (TRFV Tri Formant Ratio Vector) a eantionului vocal prezentat reelei.
Cel de-al doilea grafic indic vectorul regsit de reeaua propus ca rspuns la intrarea reelei, iar
ultimul grafic indic o comparaie ntre cei doi vectori.
4

Fig. 4: Recunoaterea formelor cu ajutorul reelei neuronale


pentru un semnal obinut prin microfon.

4 Concluzii
Lucrarea demonstreaz aplicabilitatea reelelor neuronale fuzzy n cazul procesului de
recunoatere automat a vorbirii prin implementarea unui sistem care utilizeaz reeaua fuzzy ca
element de recunoatere. Sistemul de recunoatere automat a vorbirii prezentat este capabil s
realizeze recunoaterea frazelor discrete, independent de vorbitor, pe baza unor serii de timp ale
rapoartelor de formani.
Procesul de conversie a semnalului acustic ntr-o reprezentare corespunztoare pentru intrarea n
blocul de recunoatere a fost descris ca un proces de recunoatere automat a vorbirii n patru
etape, care include nregistrarea eantioanelor vocale, prelucrarea semnalelor, extragerea
caracteristicilor i clasificarea exprimrilor.
Au fost utilizate att microfonul ct i telefonul n etapa de nregistrare a sunetelor pentru a
msura i compara performanele sistemului n ambele cazuri de transmitere a semnalului.
Semnalele acustice au fost numerizate i convertite ntr-o spectrogram. Pentru obinerea primilor
trei formani s-a realizat reducerea zgomotelor, a perioadelor de pauz i o normalizare a
amplitudinii n frecven. Formanii au fost apoi combinai secvenial ntr-o reprezentare vector
raport tri-format, care reduce puternic diferenele ntre diverse reprezentri ale frazelor rostite,
diferene datorate vrstei i sexului vorbitorului. Reprezentarea a fost apoi normalizat n gama de
valori fuzzy i s-a realizat apoi o limitare a vectorului raport tri-format la dimensiunea stratului de
intrare al reelei neuronale.
Cercetri ulterioare pot fi realizate pentru a mbunti analiza erorilor, pentru dezvoltarea unor
tehnici de normalizare a amplitudinii n frecven care s adapteze atenuarea spectral a unei
conexiuni telefonice. Pot fi obinute mbuntiri majore prin utilizarea unui sistem de testare online, pentru a profita de avantajul mtii de zgomot adaptat pentru fiecare eantion vocal, i prin
mbuntirea rezoluiei temporale pentru detecta schimbrile rapide n semnalul vocal prin
utilizarea unei rate de eantionare mai mari. n final, sistemul poate fi fcut mai rapid prin
compilarea sa ca un program executabil.
Sistemele de recunoatere automat a vorbirii reprezint primul pas n dezvoltarea unui sistem
care recunoate cuvintele unei persoane, interpreteaz sensul i furnizeaz un rspuns adecvat.
Cercetrile efectuate n acest domeniu sunt importante deoarece dezvoltrile ulterioare vor permite
5

interaciunea cu calculatorul cu ajutorul vorbirii, uurnd astfel accesul persoanelor neinstruite n


domeniul informaticii la resurse controlate de calculator. Aceste noi tehnologii permit executarea
de tranzacii on-line, creare de documente i trimitere de faxuri prin simple dictri ctre un
microfon ataat calculatorului, posibilitatea realizrii de traduceri bi-direcionale pentru o gam
larg de limbi de circulaie internaional.
Referine
[1]
[2]
[3]
[4]

D. Dumitrescu, H. Costing. Reele neuronale Teorie i aplicaiii, Editura Teora, Bucureti, 1996
N. Dixon, T. Martin. Automatic Speeck & Speaker Recognition, IEEE Press, New York, 1999.
W. A. Ainsworth, Speech Recognition by Machine, Peter Peregrinus Ltd., London, 1988.
G. Carpenter, S. Grossberg, The ART of Adaptive Pattern Recognition by a Self-Organizing Neural
Network, IEEE Computer, March, 1991.

PRELUCRAREA S
I ANALIZA IMAGINILOR

dr. dipl. ing. Catalin DUMITRESCU

Cuprins

1 INTRODUCERE

1.1 Imagini digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Structura unui sistem de prelucrarea si analiza imaginilor . . . . . . . . .

1.3 Stocarea imaginilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.3.1

Stocarea imaginilor n memorie . . . . . . . . . . . . . . . . . . .

13

1.3.2

Stocarea imaginilor n fisiere . . . . . . . . . . . . . . . . . . . . .

14

A
TIRE A IMAGINILOR
2 TEHNICI DE MBUNAT
2.1 Operatii punctuale de modificare a contrastului . . . . . . . . . . . . . .

17
18

2.1.1

Modificarea liniar
a a contrastului . . . . . . . . . . . . . . . . . .

19

2.1.2

Modificarea neliniar
a a contrastului . . . . . . . . . . . . . . . . .

23

2.2 Pseudocolorarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

2.3 Operatii de contrastare bazate pe histograma imaginii . . . . . . . . . . .

26

A IMAGINILOR
3 FILTRAREA LINIARA

31

3.1 Filtrarea liniar


a de netezire . . . . . . . . . . . . . . . . . . . . . . . . .

34

3.2 Filtrarea liniar


a de contrastare . . . . . . . . . . . . . . . . . . . . . . . .

36

3.3 Filtrarea liniar


a adaptiv
a. . . . . . . . . . . . . . . . . . . . . . . . . . .

38

4 TRANSFORMARI
INTEGRALE UNITARE DISCRETE
2

42

4.1 Generalit
ati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

4.2 Propriet
atile transformatelor unitare unidimensionale . . . . . . . . . . .

44

4.3 Transformata Fourier discret


a . . . . . . . . . . . . . . . . . . . . . . . .

45

4.3.1

Propriet
atile fundamentale ale transformatei Fourier . . . . . . . .

46

4.3.2

Transformata Fourier rapid


a . . . . . . . . . . . . . . . . . . . . .

49

4.4 Alte transform


ari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

4.4.1

Transformata cosinus . . . . . . . . . . . . . . . . . . . . . . . . .

53

4.4.2

Transformata sinus . . . . . . . . . . . . . . . . . . . . . . . . . .

54

A IMAGINILOR
5 FILTRAREA NELINIARA
5.1 Filtrarea de ordine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56
57

5.1.1

Filtrul median . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

5.1.2

Filtrele de ordine ponderate si structurile multietaj . . . . . . . .

62

5.2 Filtre de ordine de domeniu . . . . . . . . . . . . . . . . . . . . . . . . .

65

5.3 L-filtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

5.4 Aspecte de implementare . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

6 ELEMENTE DE MORFOLOGIE MATEMATICA


6.1 Transform
ari morfologice de baz
a . . . . . . . . . . . . . . . . . . . . . .

71
72

6.1.1

Transformarea Hit or Miss . . . . . . . . . . . . . . . . . . . . . .

72

6.1.2

Erodarea morfologic
a . . . . . . . . . . . . . . . . . . . . . . . . .

74

6.1.3

Dilatarea morfologic
a. . . . . . . . . . . . . . . . . . . . . . . . .

75

6.1.4

Propriet
atile erod
arii si dilat
arii . . . . . . . . . . . . . . . . . . .

77

6.1.5

Aspecte de implementare . . . . . . . . . . . . . . . . . . . . . . .

84

6.2 Transform
ari morfologice derivate . . . . . . . . . . . . . . . . . . . . . .

85

6.2.1

Deschiderea si nchiderea . . . . . . . . . . . . . . . . . . . . . . .
3

85

6.2.2

Filtrele alternate secvential . . . . . . . . . . . . . . . . . . . . .

88

6.2.3

Operatori morfologici de contur . . . . . . . . . . . . . . . . . . .

88

6.3 Extinderea morfologiei matematice la nivele de gri . . . . . . . . . . . . .

89

7 METODE DE COMPRESIE A IMAGINILOR


7.1 Compresia imaginilor binare . . . . . . . . . . . . . . . . . . . . . . . . .

92
93

7.1.1

Codarea entropic
a (Human) . . . . . . . . . . . . . . . . . . . .

93

7.1.2

Codarea pe flux de biti . . . . . . . . . . . . . . . . . . . . . . . .

95

7.2 Compresia imaginilor cu nivele de gri . . . . . . . . . . . . . . . . . . . .

99

7.2.1

Codarea predictiv
a . . . . . . . . . . . . . . . . . . . . . . . . . .

100

7.2.2

Compresia imaginilor cu transformate . . . . . . . . . . . . . . . .

101

7.2.3

Codarea cu arbori cuaternari

. . . . . . . . . . . . . . . . . . . .

102

7.2.4

Cuantizarea vectorial
a . . . . . . . . . . . . . . . . . . . . . . . .

105

8 SEGMENTAREA IMAGINILOR

110

8.1 Segmentarea orientat


a pe regiuni . . . . . . . . . . . . . . . . . . . . . .

111

8.1.1

Segmentarea bazat
a pe histogram
a . . . . . . . . . . . . . . . . .

111

8.1.2

Cresterea si fuziunea regiunilor . . . . . . . . . . . . . . . . . . .

119

8.2 Segmentarea orientat


a pe contururi . . . . . . . . . . . . . . . . . . . . .

123

8.2.1

Metode derivative . . . . . . . . . . . . . . . . . . . . . . . . . . .

123

8.2.2

Alte metode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

128

9 PARAMETRI DE FORMA

130

9.1 Parametri geometrici . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

130

9.2 Momente statistice si invarianti . . . . . . . . . . . . . . . . . . . . . . .

131

9.3 Semn
atura formei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

133

9.4 Skeletoane morfologice si generalizate . . . . . . . . . . . . . . . . . . . .

135

9.4.1

Skeletonul morfologic . . . . . . . . . . . . . . . . . . . . . . . . .

135

9.4.2

Skeletonul generalizat . . . . . . . . . . . . . . . . . . . . . . . . .

137

10 PRINCIPII DE IMPLEMENTARE SOFTWARE S


I HARDWARE

139

Capitolul 1
INTRODUCERE
Prelucrarea si analiza imaginilor (numit
a adeseori prescurtat doar prelucrarea imaginilor)
s-a n
ascut datorit
a ideii si necesit
atii de a nlocui observatorul uman printr-o masin
a. Este
important de precizat c
a analiza imaginilor a mers mai departe dect simpla nlocuire
a observatorului uman, deoarece au ap
arut solutii novatoare pentru probleme cu care
acesta nu mai fusese confruntat - ca n cazul imaginilor non-vizibile (imagini acustice,
ultrasonore, radar). Dup
a cum se remarc
a n [9], prelucrarea imaginilor nglobeaz
a posibilitatea de a dezvolta masina total
a de viziune, capabil
a s
a realizeze functiile vizuale ale
oric
arei vietuitoare (desigur, dup
a realizarea a importante dezvolt
ari teoretice si tehnologice).
Image processing holds the possibility of developing the ultimate machine
that could perform the visual functions of all living beings.
Trebuie remarcat
a terminologia anglo-saxon
a (original
a), n care disciplina este denumit
a
Digital Image Processing, deci prelucrarea digital
a a imaginilor. Prin prelucrarea digital
a
a imaginilor se ntelege prelucrarea pe un calculator digital a unor date bidimensionale
(imagini). Termenul cheie este cuvntul digital, nlocuit adesea n mod eronat n multe
traduceri romnesti cu termenul de numeric. Dup
a cum o arat
a dictionarul limbii romne
moderne, definitia cuvntului numeric este aceea de
care apartine numerelor, privitor la numere, exprimat prin numere.
Rezultatul oric
arui calcul este numeric. Termenul digital nseamn
a ns
a
ceea ce este referitor la reprezentarea informatiei discrete n calculatoare
6

Deci atta vreme ct accept


am ideea c
a unealta de lucru n prelucrarea imaginilor este
calculatorul, si acesta la rndul s
au este digital, atunci si prelucrarea este la rndul ei
digital
a, ca un caz particular al oric
arei prelucr
ari numerice. Desigur c
a exist
a ns
a si
prelucr
ari de imagini care sunt analogice - asa cum sunt toate prelucr
arile ce au loc n
cadrul lantului de transmisie si receptie a imaginii standard de televiziune.

1.1

Imagini digitale

La nceput, imaginile sunt semnale, dar nu functii temporale, ci functii definite pe un


domeniu spatial. Orice imagine este o structur
a bidimensional
a (tablou, matrice) de date.
Un element al imagini se numeste pixel (cuvnt preluat din englez
a, unde provine de la
picture element). Aceste date pot fi numere naturale, reale sau complexe, reprezentate
ns
a pe un num
ar finit de biti. Dup
a tipul datelor din acest
a structur
a bidimensional
a,
imaginile prelucrate pot fi mp
artite n mai multe categorii:
imagini scalare, n care fiecare component
a este un scalar (un unic num
ar); ca
exemple de astfel de imagini se pot da imaginile monocrome (n care punctele au
doar dou
a valori posibile, ce corespund unui continut binar al imaginii, n general
alb-negru) si imaginile cu nivele de gri (de tipul imaginii de luminanta de pe ecranele
televizoarelor alb-negru).
imagini vectoriale, n care fiecare component
a este un vector de numere; cazul
particular cel mai de interes este acela al imaginilor color, n care vectorul are trei
elemente (ce corespund celor trei constituente de baz
a ale oric
arei culori); n general,
pentru imaginile multicomponent
a, vectorul asociat fiec
arui punct din imagine are
mai multe elemente (caz ce corespunde imaginilor preluate n mai multe benzi
de frecventa, asa cum sunt imaginile de teledetectie ale satelitilor, imaginile de
termodetectie n benzile de infrarosu,...). Tot n categoria imaginilor vectoriale
intr
a ns
a si imaginile stereo (o pereche de imagini ale aceleiasi scene, luate din
unghiuri diferite) si secventele de imagini.
Conform datelor prezentate n [11], dintre imaginile prelucrate n aplicatii functionale,
20 % sunt alb-negru, 32 % sunt cu nivele de gri, 20 % sunt color, 10 % sunt imagini
stereoscopice si 18 % sunt secvente de imagini.
n mod clasic, valoarea unui element al unei imagini este o m
asur
a a intensit
atii luminoase
n punctul considerat; acesta nu este ns
a dect un caz particular. Dup
a natura lor,
imaginile pot fi clasificate ca imagini abstracte, imagini non-vizibile si imagini vizibile [2].
Imaginile abstracte sau modelele sunt de fapt functii [matematice], continue sau discrete,
de dou
a variabile. Imaginile non-vizibile, care, evident, nu pot fi percepute n mod direct
de ochiul uman, sunt de fapt achizitii ale unor cmpuri bidimensionale de parametri fizici
7

(presiune, temperatur
a, presiune, densitate, ...). n fine, imaginile ce pot fi percepute
n mod direct de c
atre ochiul uman (deci imaginile vizibile) sunt la rndul lor imagini
optice, generate ca distributii de intensitate luminoas
a (asa ca hologramele, imaginile
de interferenta si difractie) sau imagini propriu-zise (de luminanta - n sensul curent al
termenului, ce se refer
a la fotografii, desene, picturi, schite, scheme si altele din aceeasi
categorie).
O alt
a mp
artire a imaginilor scalare se poate face dup
a semnificatia ce se d
a valorii
numerice a pixelilor. Vom distinge astfel imagini de intensitate si imagini indexate. O
imagine de intensitate este o imagine n care valoarea fiec
arui pixel este o m
asur
a direct
a
a intensit
atii luminoase sau a m
arimii fizice preluate de senzor, ca de exemplu n imaginile
cu nivele de gri. Pixelii unei imagini de intensitate pot avea orice fel de valori: reale sau
naturale (depinznd dac
a imaginea este sau nu cuantizat
a).
O imagine indexat
a este acea imagine n care valoarea fiec
arui pixel este un indice prin care
se reg
aseste informatia de culoare asociat
a pixelului respectiv. Deci, pentru afisarea sau
reprezentarea unei imagini indexate este necesar
a o informatie suplimentar
a, de asociere
ntre indici si culori. Aceast
a asociere se face prin intermediul tabelei de culoare. Tabela
de culoare este o matrice n care fiecare linie contine descrierea unei culori (deci cele
trei componente ce definesc culoarea - n mod tipic intensit
atile relative de rosu, verde
si albastru ce compun culoarea dat
a printr-un amestec aditiv). Deci tabela de culoare
are trei coloane; num
arul de linii al tabelei de culoare este egal cu num
arul de culori
din imaginea reprezentat
a si este n mod tipic o putere a lui doi (16, 256, ...). Indicele
(valoarea pixelului) va fi num
arul de ordine al liniei din tabela de culoare pe care se
g
aseste descrierea culorii. Este evident c
a valorile pixelilor unei imagini indexate nu pot
fi dect numere naturale (deoarece sunt indici ntr-o matrice).
Aceast
a tehnic
a este folosit
a si n grafica pe calculator. Afisarea imaginilor pe ecranul
monitorului se face corespunz
ator unui anumit mod grafic, determinat din placa video
a calculatorului. Un mod video defineste num
arul maxim de culori ce pot fi utilizate
simultan si dimensiunile ecranului (n pixeli de afisaj). Culorile utilizate la un moment
dat sunt grupate ntr-o palet
a de culori de afisare. Paleta de afisare este o structur
a logic
a
1
definit
a n BGI (Borland Graphics Interface), pentru programare n sesiuni de tip DOS,
ca:
struct palettetype {
unsigned char size;
int colors[MAXCOLORS+1]; }
Modificarea unei culori din palet
a (o intrare a tabelului) se face cu:
void far setpalette(int index_culoare, int culoare);
1

Exemplele de cod C prezentate n lucrare corespund mediilor integrate Borland (Borland C++ 3.1,
Turbo C 2.0)

Afisarea unui pixel cu o anumit


a culoare se face cu:
putpixel(int pozx, int pozy, int index_culoare);
Sub Windows, este suportat
a si specificarea direct
a a culorii de afisat (sub forma unui
2
triplet RGB ), sistemul de operare aproximnd culoarea respectiv
a cu cea mai apropiat
a
culoare disponibil
a din paleta de lucru curent
a (n acest fel, utilizatorul poate neglija
existenta acesteia).
Pentru o imagine cu nivele de gri, componentele de rosu, verde si albastru ale fiec
arei
culori din paleta de culoare sunt identice. Dac
a specificarea componentelor de culoare se
face prin numere de 8 biti (deci ntre 0 si 255, adic
a cazul cel mai des folosit), tabela de
culoare va avea 256 de culori (tonuri de gri) diferite. Specificarea acestora se va face cu
indecsi ntre 0 si 255, alocati conform conventiei 0 - negru, 255 - alb. n acest fel, pentru
o imagine indexat
a cu nivele de gri, nu mai este necesar
a specificarea tabelei de culoare;
culorii reprezentate de indexul i i corespunde nivelul de gri i, adic
a tripletul RGB (i, i, i).
Modelul imagini indexate este un caz particular de folosire a tehnicii dictionar (sau
tehnicii tabelului de echivalenta - Look Up Table - LUT): o tehnic
a de reg
asire a unei
cantit
ati de informatie folosind asocierea unei chei de c
autare mult mai mici.

1.2

Structura unui sistem de prelucrarea si analiza


imaginilor

Structura tipic
a a unui sistem de prelucrarea (evident digital
a) si analiza imaginilor este
alc
atuit
a din punct de vedere functional dintr-un num
ar mic de blocuri (vezi figura 1.1):

sistemul de formare a imaginii (de exemplu sistemul de lentile al camerelor de


luat vederi): strnge radiatia electromagnetic
a a obiectului studiat pentru a forma
imaginea tr
as
aturilor de interes
convertorul de raditie: converteste radiatia electromagnetic
a din planul imaginii
ntr-un semnal electric.
Sistemul de formare a imaginii si convertorul de radiatie formeaz
a senzorul; acesta realizeaz
a o proiectie plan
a (bidimensional
a) a scenei reale (care este n general tridimensional
a). Un studiu realizat n Germania n anul 1996 [11] prin inventarierea sistemelor de
2

Red Green Blue - Rosu, Verde, Albastru: sistemul primar de reprezentare a culorilor.

Fig. 1.1: Schema general


a a unui sistem de analiza si prelucrarea imaginilor
preluare a imaginilor folosite n industrie indic
a o distributie a tipurilor de senzori dup
a
gama de radiatie captat
a conform tabelului 1.1:
Domeniu
Infrarosu Infrarosu Vizibil Ultraviolet
Radar
Radiatie
electromagnetic dep
artat apropiat
(microunde)
X
Procent
5%
25 %
40 %
10 %
10 %
10 %
Tabel 1.1: Tipuri de senzori folositi n prelucrarea imaginilor

sistemul de achizitie (echivalent unui frame-grabber sau video-blaster): converteste


semnalul electric al senzorului ntr-o imagine digital
a, pe care o stochez
a; acesta nu
este altceva dect un dispozitiv de esantionare (discretizare a suportului imaginii)
si cuantizare (discretizare a domeniului de valori a imaginii).
sistemul de prelucrare (n mod tipic un calculator, fie el PC sau statie de lucru); n
aceast
a categorie se ncadreaz
a ns
a si masinile specializate de calcul, calculatoarele
de proces, ...
software-ul specializat: implementeaz
a algoritmii de prelucrare si analiz
a
n [11] se arat
a c
a unitatea de prelucrarea hardware (deci calculatorul) folosit
a la aplicatiile de prelucrarea imaginilor functionale la acea dat
a este n cea mai mare majoritate
a cazurilor un PC obisnuit, cu performante standard; datele sunt sintetizate n tabelul
1.2:

10

Platform
a hardware
Procent din piata
PC standard, bus ISA, Windows 3.1, 95, NT
40 %
Calculatoare industriale (procesoare Intel), bus VME
15 %
PC standard cu acceleratoare specializate, bus VLB, PCI
15 %
Statii de lucru (workstations)
10 %
Masini specializate
10 %
Calculatoare Macintosh, calculatoare paralele (transputere), altele
10 %
Tabel 1.2: Unit
ati de calcul folosite n prelucrarea imaginilor
Sistemul software specializat care este responsabil cu realizarea efectiv
a a unei sarcini concrete poate fi descompus n mai multe module, nu neap
arat bine separate si nu neap
arat
prezente mpreun
a: mbun
at
atirea, restaurarea, compresia, segmentarea si analiza [9].
Blocul de mbun
at
atire a imaginilor are ca scop accentuarea anumitor tr
as
aturi [ale
obiectelor continute n imagine] pentru usurarea unor sarcini ulterioare de analiz
a automat
a sau interpretare prin afisare. Asemenea metode pot fi utile la extragerea tr
as
aturilor caracteristice ale obiectelor, eliminarea zgomotelor suprapuse imaginii, m
arirea
confortului vizual. Acesti algoritmi nu m
aresc continutul informational al imaginii si
sunt n general interactivi si puternic dependenti de aplicatie.
Restaurarea imaginilor se refer
a la eliminarea sau minimizarea efectelor unor perturbatii
si a unor degrad
ari. Perturbatiile reprezint
a n general zgomotele (modelate ca procese
aleatoare) ce se suprapun n cursul achizitiei imaginii (din cauza senzorului si a lantului
de transmisiune si captare); degrad
arile sunt cauzate de imperfectiunile si limit
arile deterministe ale senzorului (efecte de apertur
a, timp de expunere, deficiente geometrice ale
sistemului de lentile, ...).
Compresia imaginilor se refer
a la reducerea volumului de date (num
arului de biti) cu
care este reprezentat
a imaginea, printr-o transformare reversibil
a - imaginea trebuie s
a
poat
a s
a fie recuperat
a integral (sau cu diferente foarte mici, controlabile) din versiunea
sa comprimat
a.
Segmentarea este procesul de descompunere a unei imagini (sau scene) n elementele
(obiectele) sale constituente. Adeseori, segmentarea este strns legat
a de algoritmii de
analiz
a, al c
aror scop este de a realiza m
asur
atori cantitative sau evalu
ari calitative asupra
unor anumite categorii de obiecte, prezente n imaginea dat
a.
Sfera de aplicabilitate a tehnicilor de prelucrarea si analiza imaginilor este deosebit de
larg
a; practic, n orice domeniu de activitate se pot g
asi numeroase aplicatii. Aceast
a clas
a
de aplicatii extrem de specifice a fost caracterizat
a drept consumul imaginii [1] (imaginea folosit
a n vederea analizei, deci a lu
arii unor decizii). Imaginile preluate de c
atre
sateliti pot fi folosite la descoperirea resurselor terestre, cartografiere geografic
a, predictia
recoltelor, urm
arirea dezvolt
arii urbane, urm
arirea vremii, controlul si prevenirea incendi-

11

ilor si inundatiilor, precum si alte aplicatii ecologice si militare. Aplicatiile transmisiei


si compresiei imaginilor se reg
asesc n televiziunea digital
a, sistemele de teleconferinta,
transmisiile fax, birotic
a, comunicatia pe retele distribuite, sisteme de securitate cu circuit nchis, aplicatii militare. n aplicatiile medicale sunt prelucrate radiografiile cu raze
X, angiogramele, echografiile, tomografiile, imaginile de rezonanta magnetic
a nuclear
a.
Acestea pot fi utilizate pentru monitorizarea pacientilor si pentru descoperirea si identificarea de boli si tumori.
O larg
a clas
a de aplicatii sunt cele industriale, n care componentele de prelucrarea si
analiza imaginilor sunt folosite n sisteme mai mari de asigurare a calit
atii produselor
(metrologie, controlul calit
atii - inclusiv defectoscopie nedistructiv
a). Solutiile sunt extrem de specifice, puternic legate de procesul de fabricatie urm
arit si tind s
a devin
a din
ce n ce mai utilizate odat
a cu impunerea normelor de calitate total
a ale standardului
ISO9000 (se poate urm
ari [10] pentru aplicatii specifice ale diferitelor firme germane).
Din acest punct de vedere este interesant
a comparatia ntre cteva caracteristici ale sistemului vizual si de prelucrare uman si un sistem de prelucrarea si analiza imaginilor [8],
folosite pentru aplicatii industriale, prezentat
a n tabelul 1.3.
Criterii
Om
Sistem de prelucrarea imaginilor
Obiectivitate
NU
DA
Control 100%
NU
DA

Rat
a de eroare
MARE
MICA

Rat
a de lucru
MICA
MARE

Rezistenta la oboseal
a
MICA
MARE
Iluzie optic
a
DA
NU
Prelucrare statistic
a
Greu realizabil
DA
Reproductibilitate
Greu realizabil
DA
M
asurare geometric
a
Cu instrumente auxiliare
DA
Recunoastere de forme
DA
DA
Tabel 1.3: Comparatia ntre caracteristici esentiale ale sistemului vizual uman si sistemele
de prelucrarea si analiza imaginilor

1.3

Stocarea imaginilor

Se poate considera c
a exist
a dou
a moduri de stocare a imaginilor: stocarea n memoria
de lucru a unit
atii de prelucrare a imaginii de lucru (care este o stocare de scurt
a durat
a
- doar pe durata prelucr
arii efective) si stocarea de lung
a durat
a imaginilor, n fisiere, pe
suporturi externe de memorie (benzi, discuri, etc.). Diferenta esential
a ntre cele dou
a
tipuri de stocare este aceea c
a n memorie imaginea va fi reprezentat
a complet, n form
a
necomprimat
a, pentru a permite accesul rapid direct la informatia fiec
arui pixel.
12

1.3.1

Stocarea imaginilor n memorie

Principalul limbaj de programare utilizat pentru aplicatii cu calcule intensive r


amne nc
a
limbajul C (C++). Stocarea imaginilor se va face, evident, prin intermediul unor variabile
ce implementeaz
a structuri de date bidimensionale. Ceea ce este deosebit este modul de
declarare a acestora: declararea static
a nu este convenabil
a din cauza dimensiunilor n
general mari ale imaginilor, si deci este necesar
a o declarare dinamic
a. Particularitatea
este dat
a de memorarea separat
a a fiec
arei linii (sau coloane) a matricii ntr-un vector
alocat dinamic, si gruparea adreselor de nceput a acestora ntr-un vector de pointeri, la
care se va retine adresa de nceput (deci un alt pointer). Dac
a consider
am un tip generic
de date pentru componentele matricii (caracter, sau ntreg, sau real), atunci o secventa
C de declarare a unui imagini poate fi:
tip ** imagine;
unsigned int contor;
imagine=(tip**) malloc(nr_linii*sizeof(tip*));
for (contor=0;contor<nr_linii;contor++)
imagine[contor]=(tip*) malloc(nr_coloane*sizeof(tip));
Se remarc
a folosirea constantelor nr_linii si nr_coloane (cu semnificatie evident
a) si a
tipului generic tip pentru valoarea pixelilor. Linia a 3-a aloc
a spatiul pentru un masiv de
pointeri la date de tip pointer; spatiul de memorie necesar (argumentul functiei malloc)
este dat de num
arul de pointeri la liniile imaginii ce nmulteste dimensiunea unui astfel
de pointer (sizeof(tip*)). Valoarea imagine[contor] este adresa de nceput a spatiului
de memorie la care ncep valorile pixelilor de pe linia contor; acestia sunt stocati ntrun vector declarat de malloc(nr_coloane*sizeof(tip)). Trebuie remarcat
a conversia de
tip (cast) obligatorie ce nsoteste fiecare alocare de memorie (se stie c
a functia malloc
ntoarce un pointer la void). De asemenea se observ
a c
a secventa anterioar
a nu face nici
un fel de verificare a succesului operatiei de alocare de memorie (verificarea faptului c
a
valoarea returnat
a de functia malloc nu este NULL). n mod implicit, la compilare, toti
pixelii (toate valorile matricii imagine) sunt initializati cu 0.
Spre deosebire de C, limbajul Matlab3 aduce mari simplific
ari. Exist
a un singur tip de
date, reprezentate pe 8 octeti (caracteristic
a ce se schimb
a ncepnd cu versiunea 5.0, ce
admite valori reale, ntregi sau caracter, declarate explicit). Orice variabil
a Matlab este
creat
a n momentul folosirii sale n membrul stng al unei expresii (deci nu este necesar
a
declararea prealabil
a folosirii); orice variabil
a este o matrice (scalarul este o matrice de o
linie si o coloan
a). Functiile returneaz
a matrici. Secventa C anterioar
a este echivalent
a
cu:
imagine=zeros(nr_linii,nr_coloane);
3

Codurile Matlab prezentate n lucrare corespund versiunii Matlab 4.2c.

13

1.3.2

Stocarea imaginilor n fisiere

Un fisier este entitatea logic


a de organizare a informatiei nscrise pe mediile magnetice
de stocare si se compune dintr-un sir de octeti. Pentru stocarea imaginii este necesar
ca acesti octeti s
a contin
a informatia aferent
a pixelilor precum si informatie despre tipul
imaginii: dimensiunile acesteia, dac
a este sau nu indexat
a, dac
a are sau nu o tabel
a de
culoare atasat
a, dac
a este sau nu comprimat
a si dup
a ce metod
a. Anumite structuri
de fisiere au fost impuse de-a lungul timpului de firme produc
atoare de software sau
de organisme de standardizare, c
ap
atnd denumirea de formate de imagini. Formatele
de imagini s-au f
acut cunoscute mai ales dup
a extensia standard a fisierelor ce contin
imaginile stocate dup
a formatul respectiv: BMP, TIF, GIF, PCX, JPG ... . n cele
ce urmeaz
a ne vom referi la formatele RAW(cunoscut si ca IMG), unul dintre cele mai
rudimentare formate de fisiere imagine, si Windows Bitmap -BMP al firmei Microsoft,
care este unul dintre cele mai larg recunoscute formate de fisiere.
Un fisier RAW contine imagini indexate cu nivele de gri, de form
a p
atrat
a. Fisierul nu
are antet (dimensiunile imaginii fiind deduse din dimensiunea fisierului ce o contine) si
nu contine nici tabel de culoare (acesta are toate componentele liniei i egale ntre ele,
reprezentnd griuri). Fiecare pixel al imaginii este codat cu num
arul corespunz
ator de
biti (4, 8, etc.); imaginea este baleiat
a n ordinea normal
a (ncepnd cu prima linie a
imaginii, de la stnga la dreapta).
Un fisier BMP4 are trei componente consecutive: un antet de fisier (BITMAPFILEHEADER), o structur
a de informatie a imaginii(BITMAPINFO) si codarea pixelilor.
Antetul de fisier (BITMAPFILEHEADER) contine informatii asupra tipului, dimensiunii si reprezent
arii fisierului Bitmap independent de dispozitiv (DIB - Device Independent
Bitmap); semnificatiile componentelor sunt date n tabelul 1.4.
typedef struct tagBITMAPFILEHEADER{
WORD bfType;
DWORD bfType;
WORD bfReserved1;
WORD bfReserved2;
DW bfOffBits;
}BITMAPFILEHEADER;

Structura de informatie a imaginii (BITMAPINFO) contine informatii asupra dimensiunilor si culorilor unui DIB, si este alc
atuit
a din dou
a componente: antetul structurii de
informatii (BITMAPINFOHEADER), a c
arui componente sunt descrise n tabelul 1.5 si
tabelul de culoare, format din structuri RGBQUAD.
4

Denumirile componentelor logice ale fisierului sunt cele standardizate de Microsoft.

14

Cmp
bfType
bfSize
bfReserved1
bfReserved2
bfOBits

Descriere
Specific
a tipul de fisier; trebuie s
a contin
a caracterele BM
Specific
a lungimea fisierului n DWORD
Cmp rezervat, valoare 0
Cmp rezervat, valoare 0
Specific
a deplasamentul n octeti de la sfrstul structurii
BITMAPFILEHEADER pn
a la zona din fisier ce contine pixelii codati

Tabel 1.4: Descrierea cmpurilor structurii BITMAPFILEHEADER


Cmp
biSize
biWidth
biHeight
biPlanes
biBitCount
biCompression

Descriere
Num
arul de octeti ai structurii BITMAPINFOHEADER
L
atimea imaginii, n pixeli
n
altimea imaginii, n pixeli
Num
arul de plane de culoare ale dispozitivului de afisaj (1)
Num
arul de biti cu care se codeaz
a un pixel; poate fi 1, 4, 8 sau 24
Tipul de compresie utilizat
a: BI_RGB f
ar
a compresie, BI_RLE8
sau BI_RLE4 pentru compresie de tip RLE cu cuvinte de respectiv
8 sau 4 biti
biSizeImage
Dimensiunea imaginii n octeti
biXPelsPerMeter Rezolutia pe orizontal
a a dispozitivului tint
a (n pixeli pe metru)
biYPelsPerMeter Rezolutia pe vertical
a a dispozitivului tint
a (n pixeli pe metru)
biClrUsed
Num
arul de culori utilizate n imagine; dac
a este 0, imaginea
foloseste toate culorile disponibile ale paletei
biClrImportant
Num
arul de culori considerate importante; dac
a este 0, toate
culorile sunt luate n considerare
Tabel 1.5: Descrierea cmpurilor structurii BITMAPINFOHEADER
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
DWORD biWidth;
DWORD biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
DWORD biXPelsPerMeter;
DWORD biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;

15

Structura RGBQUAD descrie o culoare prin componentele sale de rosu, verde si albastru,
si un cmp rezervat avnd valoarea 0.
typedef struct tagRGBQUAD{
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
}RGBQUAD;
Codarea pixelilor se face dup
a cteva reguli. Fiecare pixel va fi codat pe biBitCount biti;
dac
a biBitCount este 1, 4 sau 8, imaginea va fi indexat
a si fisierul contine tabela de culoare
asociat
a imaginii. Codurile pixelilor se grupeaz
a pe octeti (deci pentru o codare de 4 biti
per pixel, fiecare octet de cod va corespunde la doi pixeli al
aturati). Dac
a biBitCount
este 24, pentru fiecare pixel se asociaz
a direct trei octeti, ce reprezint
a componentele de
rosu, verde si albastru ale culorii respective; aceast
a imagine se numeste True Color si
nu mai are un tabel de culoare asociat. Denumirea de True Color (culoare adev
arat
a)
24
provine din faptul c
a num
arul total de culori ce se pot astfel reprezenta (2 ) dep
aseste
limita sensibilit
atii umane de discernere a culorilor.
Codarea se face independent pe fiecare linie orizontal
a a imaginii. Codurile (indexurile)
tuturor pixelilor unei linii sunt concatenate; sirul rezultat trebuie s
a fie multiplu de 32
de biti (sau de 4 octeti, sau s
a contin
a un num
ar ntreg de DWORDs). Dac
a acest
a
constrngere nu este respectat
a, linia respectiv
a se completeaz
a cu num
arul necesar de
biti (care, n mod evident, nu vor fi utilizati la citirea imaginii din fisier). Codarea
imaginii ncepe cu ultima linie, si pentru fiecare linie baleiajul este normal (de la stnga
la dreapta).

16

Capitolul 2
A
TIRE A
TEHNICI DE MBUNAT
IMAGINILOR
mbun
at
atirea imaginilor este o sintagm
a general
a ce se refer
a la o clas
a larg
a de operatii
al c
aror scop este m
arirea detectabilit
atii componentelor imaginii. Detectabilitatea componentelor este legat
a mai mult de perceptia vizual
a a unui observator uman dect de o
analiz
a automat
a cantitativ
a. Perceptia vizual
a de referinta este cea a unui expert uman
n domeniul aplicatiei din care provine imaginea.
Asadar criteriile de evaluare ale calit
atii unei imagini sunt subiective si specifice aplicatiei.
n [2] se face analogia operatiilor de mbun
at
atire a imaginilor cu reglajul tonalit
atii
muzicii ascultate; n functie de ascult
ator, se vor favoriza componentele nalte sau joase,
sau nici unele. Ca o consecinta, procesul de mbun
at
atire va fi interactiv, transform
arile
efectuate trebuind s
a fie validate (cel putin n etapa de proiectare sau prob
a) de c
atre un
utilizator uman.
Principiul (aproape unanim acceptat) este c
a mbun
at
atirea calit
atii unei imagini se face
f
ar
a a lua n considerare nici o informatie asupra imaginii originale sau asupra procesului
de degradare (prin care imaginea nu este suficient de bun
a). Conform acestui punct
de vedere chiar si o imagine original
a (nedegradat
a) poate fi mbun
at
atit
a, obtinnd o
imagine falsificat
a, dar subiectiv preferabil
a [18]. n general, calitatea subiectiv
a a unei
imagini poate fi apreciat
a pe baza contrastului sau accentu
arii elementelor de contur
(muchii, frontiere, linii, margini) si pe baza netezimii n regiunile uniforme.
Cresterea uniformit
atii regiunilor este ns
a asimilat
a elimin
arii unui eventual zgomot
suprapus imaginii, operatie denumit
a n mod clasic filtrare. Filtrarea ce are ca scop
eliminarea zgomotului va fi studiat
a n urm
atoarele capitole.
Din punctul de vedere al metodelor utilizate, putem distinge mai multe tipuri de operatii
de mbun
at
atire:
17

operatii punctuale, prin care se realizeaz


a o corespondenta de tip unu la unu ntre
vechea valoare a nivelului de gri si noua valoare a acestuia, pentru fiecare pixel al
imaginii. Tot n acest
a categorie vom include si operatiile de pseudocolorare, care
se refer
a la afisarea imaginii folosind o palet
a de culoare modificat
a.
operatii locale (sau de vecin
atate), prin care noua valoare a nivelului de gri ntr-un
pixel este obtinut
a din vechea valoare a pixelului repectiv si din valorile unor pixeli
vecini pixelului considerat.
operatii integrale, n care noua valoare a unui pixel este dependent
a de valorile
tuturor pixelilor imaginii
n acest capitol vom studia doar operatiile punctuale si de pseudocolorare.
Prin mbun
at
atire, unei imagini nu i se adaug
a nici o informatie nou
a fata de cea ce exista
initial [9] (deci nu se adaug
a nimic imaginii), ci doar este prezentat altfel continutul initial
al acesteia. Desi la o examinare superficial
a afirmatia este corect
a, putem g
asi m
acar dou
a
obiectii (sau contraexemple) la aceast
a formulare:
din punctul de vedere al utilizatorului, informatia, chiar dac
a exist
a, nu poate fi
folosit
a, deci este asimilabil nul
a. Acesta este cazul imaginilor obtinute n conditii
extreme de iluminare, ce prezint
a un contrast foarte slab (imagini subexpuse sau
supraexpuse) [5].
din punctul de vedere al teoriei informatiei, informatia din imagine poate fi asimilat
a
entropiei procesului aleator ale c
arui realiz
ari particulare sunt valorile de gri ale
pixelilor. Entropia se modific
a ns
a la orice transformare ce afecteaz
a distributia
nivelelor de gri din imagine.

2.1

Operatii punctuale de modificare a contrastului

Operatiile punctuale de modificare a contrastului (numite si transform


ari ale nivelului de
gri) sunt asocieri (mapping, n englez
a) ce leag
a nivelul de gri original de noua sa valoare.
O asemenea asociere nu este altceva dect o functie:
v = T (u), u [0; L 1]

(2.1)

n [5] se stabilesc ca necesare conditiile ca:


transformarea T s
a p
astreze gama admisibil
a de valori ale imaginii (dac
a nivelele
de gri au fost reprezentate pe L nivele de cuantizare, atunci 0  T (u)  L 1,
u [0; L 1])
18

transformarea T s
a fie monoton
a (cresc
atoare sau descresc
atoare) pentru a p
astra
ordinea ntre nivelele de gri

2.1.1

Modificarea liniar
a a contrastului

Cea mai des folosit


a tehnic
a de modificare liniar
a a contrastului este o transformare liniar
a
pe portiuni, dat
a de:

T1 u, 0 u < T1
+ T
(u T1 ) , T1 u < T2
v=
(2.2)
2 T1

L1
+ L1T2 (u T2 ) , T2 u < L

n formula anterioar
a, parametrii de control sunt T1 , T2 , si ; acestia sunt grupati
cte doi, definind punctele (T1 ,) si (T2 ,). Aceste dou
a puncte de control, mpreun
a cu
punctele fixe (0, 0) si (L 1, L 1) vor defini cele trei segmente de dreapt
a ce apar n
formula (2.2). Rezultatul aplic
arii unei asemenea operatii punctuale se obtine modificnd
valoarea (nivelul de gri) fiec
arui pixel al imaginii initiale, u, conform (2.2), obtinnd noul
nivel de gri v. Transformarea poate fi f
acut
a n dou
a moduri: fie se repet
a calculele de la
(2.2) pentru fiecare pixel, baleind imaginea, fie noile valori ale contrastului se calculeaz
a
de la nceput pentru toate nivelele de gri posibile (ntre 0 si L1) si apoi aceste modific
ari
se aplic
a imaginii. Codul C urm
ator implementeaz
a a doua variant
a de calcul, care este
mai rapid
a (calculele nivelelor de gri au fost separate de ciclul de baleiere al imaginii si
au fost eliminate structurile conditionale if - impuse de definitia de tip acolad
a - prin
separarea domeniilor de calcul n trei cicluri). Trebuie remarcat
a de asemenea definirea
nivelului de gri ca unsigned int, ceea ce creaz
a posibilitatea folosirii unui num
ar de nivele
de gri mai mare de 256 (pentru care ar fi fost suficient un unsigned char).

unsigned int T1,T2,alfa,beta,gri_vechi,i,j;


gri_nou=(unsigned int *) malloc (L*sizeof(unsigned int));
for (gri_vechi=0;gri_vechi<T1;gri_vechi++)
gri_nou[gri_vechi]=alfa*gri_vechi/T1;
for (gri_vechi=T1;gri_vechi<T2;gri_vechi++)
gri_nou[gri_vechi]=alfa+(beta-alfa)*(gri_vechi-T2)/(T2-T1);
for (gri_vechi=T2;gri_vechi<L;gri_vechi++)
gri_nou[gri_vechi]=beta+(L-1-beta)*(gri_vechi-T1)/(L-1-T2);
for (i=0;i<NRLIN;i++)
for (j=0;j<NRCOL;j++)
imagine_noua[i][j]=gri_nou[imagine_veche[i][j]];
Vom prezenta n cele ce urmeaz
a un exemplu; n figura 2.1 este prezentat
a pe de o parte
imaginea original
a lena (una dintre fotografiile impuse ca standard de fapt n raportarea
rezultatelor obtinute), iar al
aturat imaginea obtinut
a cu o modificare liniar
a pe portiuni
19

a contrastului, determinat
a de parametrii T1 = 30, T2 = 100, = 20, = 200. n figura
2.2 este prezentat
a functia de transformare a nivelelor de gri (T (u)).

Fig. 2.1: Imagine original


a si imagine cu contrastul modificat

Fig. 2.2: mbun


at
atire liniar
a pe portiuni, definit
a de punctele (0,0), (30,20), (100,200),
(255,255)
Vizibilitatea componentelor scenei este n general determinat
a n cea mai mare parte de
contrastul zonei din imagine; contrastul este o m
asur
a proportional
a cu diferenta dintre
luminozitatea anumitor pixeli (nivelul lor de gri). Pentru a putea prevedea deci efectele
unei operatii de mbun
at
atire de tipul prezentat asupra contrastului este deci suficient
a
studierea diferentelor de nivele de gri ntre o aceeasi pereche de pixeli nainte si dup
a
efectuarea transform
arii. La limit
a, este posibil ca pixelii s
a aib
a nivelul de gri original
diferit cu doar o unitate (cuanta minim
a), si atunci modificarea contrastului va fi dat
a
20

de diferenta valorilor transformate, adic


a de derivata functiei de transformare:
C=

v
T (u2 ) T (u1 )
dT (u)
=
=
= T (u)
u
u2 u1
du

(2.3)

Pentru functia liniar


a pe portiuni este evident c
a derivata va fi constant
a pe aceleasi
intervale, avnd valoarea egal
a cu panta segmentului de dreapt
a.

, dac
a u [0; T1 ]

T1

,dac
a u [T1 ; T2 ]
(2.4)
C=
T2 T1
L1
, dac
a u [T2 ; L 1]
L1T2

Dac
a pe un interval aceast
a pant
a este subunitar
a, atunci diferenta ntre nivelele al
aturate de gri se micsoreaz
a si deci contrastul scade; dac
a din contr
a, panta dreptei este
supraunitar
a, diferenta dintre nivelele de gri al
aturate se m
areste si contrastul va creste.
Spre exemplu, n transformarea din figura 2.2, pe intervalul [30,100] contrastul creste, iar
pe intervalele [0,30] si [100,255] contrastul scade. Aceste efecte sunt usor vizibile pe imaginile din figura 2.1: de exemplu sc
aderea contrastului pentru nivelele de gri de la cap
atul
superior al gamei admise (dinspre alb) se observ
a prin disparitia detaliilor luminoase din
imagine (panglica lat
a de la p
al
arie); cresterea contrastului pe intervalul [30,100] (deci
griuri nchise) este vizibil n zona penei de p
al
arie, ale c
arei detalii sunt acum mult mai
sesizabile.
n functie de alegerea celor patru parametri, se pot obtine cteva cazuri particulare de
interes ce poart
a denumiri specifice.

Fig. 2.3: Imagine original


a si imagine binarizat
a cu pragul 125
Dac
a T 1 = T 2 si = 0, = L 1, se obtine pr
aguirea sau binarizarea (thresholding)
(vezi figura 2.4); n imaginea rezultat
a nu exist
a dect alb si negru (figura 2.3); toate
21

nivelele de gri initiale a c


aror valoare era mai mic
a dect T1 fiind negre si toate nivelele
de gri initiale mai mari ca T1 devenind albe. Dup
a cum se va vedea la capitolul de
segmentare orientat
a pe regiuni (capitolul 8), aceasta este si una dintre tehnicile cele mai
simple de segmentare. n urma acestei transform
ari, contrastul este maximizat la nivelul
ntregii imagini.

Fig. 2.4: Transformarea de binarizare


Dac
a = 0 si = L 1 se obtine operatia de ntindere maxim
a a contrastului (contrast
streching) (vezi figura 2.5) pentru intervalul [T1 ; T2 ]. Nivelele de gri care se g
asesc n afara
acestui interval vor fi nlocuite fie cu alb, fie cu negru.

Fig. 2.5: Transformarea de ntindere maxim


a a contrastului

22

2.1.2

Modificarea neliniar
a a contrastului

Principalul dezavantaj al tehnicii liniare pe portiuni prezentate este faptul c


a modificarea
contrastului este aceeasi pe un ntreg interval de nivele de gri, si nu este posibil
a o
modificare neuniform
a a contrastului pe ntregul interval de nivele de gri sau n jurul
unui anume nivel de gri. Tehnicile neliniare au aceste propriet
ati.
O prim
a variant
a este compandarea domeniului [9], definit
a de o curb
a logaritmic
a si cu
punctele fixe (0, 0) si (L 1, L 1):
v = T (u) =

L1
lg(1 + u)
lg L

(2.5)

Contrastul va varia neuniform de-a lungul scalei de gri, m


arindu-se la cap
atul inferior
(negru) si micsorndu-se la cap
atul superior (alb). n mod reciproc se poate defini expandarea domeniului, ca transformare invers
a celei de compandare, si deci avnd o alur
a
exponential
a:
eu 1
v = T (u) = (L 1) L1
(2.6)
e
1
Contrastul va varia neuniform de-a lungul scalei de gri, m
arindu-se la cap
atul superior (alb) si micsorndu-se la cap
atul inferior (negru). Termenii de compandare si de
expandare au fost dati prin asem
anare cu transform
arile folosite n teoria cod
arii si cuantiz
arii (ce intervin n metodele de cuantizare a semnalului vocal pentru telefonia digital
a,
cunoscute sub numele de legea A n Europa si legea n America). Trebuie ns
a subliniat
c
a n prelucrarea imaginilor aceste transform
ari nu afecteaz
a domeniul de valori, care
r
amne [0, L 1].
Alte transform
ari neliniare pot fi obtinute prin folosirea unor functii de tip putere; si
acestea au nivelele de gri extreme ca puncte fixe ((0, 0) si (L 1, L 1)). O prim
a
variant
a este functia putere:
v = T (u) = (L 1)

u
L1

(2.7)

Dup
a valorile parametrului-putere r se pot obtine dou
a comport
ari diferite: pentru r < 1
comportarea este de acelasi tip cu al functiei de compandare logaritmice, iar pentru r > 1
comportarea este de tipul functiei de expandare. Trebuie remarcat c
a legile de variatie
ale contrastului vor fi ns
a diferite.
Exist
a ns
a si o variant
a la care se mai adaug
a un punct fix (T, T ), functia devenind cu
dou
a intervale de definitie:
r

v = T (u) =

T Tu , dac
a u [0; T ]
L1u r
a u [T, L 1]
L 1 (L 1 T ) L1T , dac

Functia are o alur


a de tipul celei prezentate n figura 2.6.
23

(2.8)

Fig. 2.6: Modificare neliniar


a a contrastului, cu trei puncte fixe
n [9], n cadrul operatiilor punctuale de mbun
at
atire a imaginilor sunt prezentate si
operatii aritmetice simple, ca de exemplu negativarea. Negativarea este descris
a de:
v = T (u) = L 1 u

(2.9)

Efectul acesteia de modificare a contrastului se bazeaz


a doar pe caracteristicile sistemului vizual uman, pentru care contrastul depinde de diferenta de luminozitate ntre pixeli
apartinnd unui obiect, respectiv fundalului, raportat
a la luminanta medie a fundalului.
O categorie aparte de aplicatii n care sunt utile asemenea inversiuni este analiza imaginilor medicale, care pentru o analiz
a automat
a trebuiesc inversate; un astfel de exemplu
este imaginea angiografic
a din figura 2.7.

Fig. 2.7: Imagine original


a si negativat
a (dintr-o aplicatie medical
a)
Alte operatii posibile (tratate n [9], dar de mai mic
a semnificatie practic
a) sunt repre24

zentarea planelor de bit (pentru fiecare pixel al imaginii, fiecare bit al reprezent
arii binare
a nivelului de gri este considerat ca valoarea unui pixel al unei imagini binare), transformarea de lipire clipping (care p
astreaz
a nemodificate nivelele de gri dintr-un anumit
interval si le anuleaz
a pe celelalte - imaginea rezultat
a continnd obiectele de interes pe
fond negru) si transformarea de t
aiere slicing (care transform
a nivelele de gri dintr-un
interval fixat n alb si tot restul n negru; nu este altceva dect un alt tip de binarizare).

2.2

Pseudocolorarea

Pseudocolorarea este o tehnic


a de mbun
at
atire a vizibilit
atii anumitor componente ale
imaginii (sau a imaginii n ansamblu) prin modificarea paletei de culoare cu care imaginea
este afisat
a (reprezentat
a). Aceasta nseamn
a c
a pentru anumite nivele de gri, afisarea
nu se va mai face cu culoarea a c
arei componente sunt toate egale cu indexul (nivelul de
gri), ci cu o alt
a culoare. Acest
a definitie acoper
a ns
a si cazul operatiilor de modificare
a contrastului prezentate anterior; functia v = T (u) nu este altceva dect o functie de
constructie a unei noi palete de culoare pentru aceeasi imagine. Spre exemplu, codul
modific
arii neliniare de contrast devine:
unsigned int T1,T2,alfa,beta,gri_vechi;
gri_nou=(unsigned int *) malloc (L*sizeof(unsigned int));
for (gri_vechi=0;gri_vechi<T1;gri_vechi++)
gri_nou[gri_vechi]=alfa*gri_vechi/T1;
for (gri_vechi=T1;gri_vechi<T2;gri_vechi++)
gri_nou[gri_vechi]=alfa+(beta-alfa)*(gri_vechi-T2)/(T2-T1);
for (gri_vechi=T2;gri_vechi<L;gri_vechi++)
gri_nou[gri_vechi]=beta+(L-1-beta)*(gri_vechi-T1)/(L-1-T2);
for (gri_vechi=0;gri_vechi<L;gri_vechi++)
setpalette(gri_vechi,(color) gri_nou[gri_vechi]);
Ultima bucl
a for a codului modific
a paleta de culoare pentru fiecare index (intrare) a
acesteia, conform noilor valori calculate. Remarcati cast-ul (schimbarea de tip) la tipul
color; acesta este inserat mai mult ca o m
asur
a de atentionare: culoarea (deci variabila de
tip color) trebuie obtinut
a din scalarul nivel de gri n conformitate cu regulile de descriere
a culorilor valabile n respectivul mod grafic.
Ideea de baz
a n pseudocolorare este de a folosi culori pentru a pune n evidenta zone
de interes din imagini cu nivele de gri (exist
a si varianta color
arii false - false coloring,
care transform
a o imagine color ntr-o alt
a imagine color, dar cu un contrast mult mai
pronuntat si artificial ntre elementele sale). Acest
a idee este normal
a dac
a se are n
vedere faptul c
a ochiul (sistemul vizual) uman distinge ceva mai putin de 256 nuante de
gri, desi diferentiaz
a cteva milioane de culori [9].
25

O aplicatie interesant
a a pseudocolor
arii este prezentat
a n [2]. La NASA, la nceputurile
erei digitale n tehnicile de achizitie a imaginilor, era necesar
a digitizarea unor imagini de
microscopie, pentru care iluminarea era reglat
a manual, pn
a la o vizibilitate maxim
aa
tuturor detaliilor. Pentru c
a operatorul nu putea distinge clar si precis care era iluminarea
cea mai potrivit
a (care nici nu producea suprailuminare si nici nu l
asa umbre mai mari
dect era necesar), la afisarea n timp real a imaginii achizitionate pe monitoarele de
control, paleta de griuri a fost modificat
a pe ultima pozitie (alb), unde s-a inserat rosu.
Atunci instructiunile pentru operator erau: creste curentul prin lamp
a (iluminarea) pn
a
cnd n imagine apare rosu, dup
a care redu curentul pn
a cnd culoarea rosie dispare.
Rezultatul acestei tehnici simple au fost mii de imagini digitizate corect.
n final merit
a poate amintit
a remarca (destul de acid
a) din [2]:
Desi prin natura sa este un detaliu al tehnicilor de afisare, pseudocolorarea
a fost adesea glorificat
a prin termeni ca prelucrare prin pseudocolorare sau
analiz
a prin pseudocolorare. Pseudocolorarea r
amne un accesoriu favorit al
vnz
atorilor, care o utilizeaz
a adesea n demonstratiile produselor [software],
deoarece poate strni interesul n ochii clientilor mult mai repede dect orice
alt
a metod
a de afisare cunoscut
a. Cercet
arile mele au adus la lumin
a o list
a
dureros de scurt
a a aplicatiilor demonstabil productive a pseudocolor
arii

2.3

Operatii de contrastare bazate pe histograma imaginii

Pentru o imagine f de M N pixeli si L nivele de gri, histograma este definit


a (2.10)
ca probabilitatea (frecventa relativ
a) de aparitie n imagine a diferitelor nivele de gri
posibile.

h(i) =

1
MN

M1 N1
m=0 n=0

(i f(m, n)) , i = 0, 1, ...L 1

(2.10)

Din punct de vedere statistic, putem considera valoarea fiec


arui pixel al imaginii ca o
realizare particular
a a unei variabile aleatoare asociat
a nivelelor de gri, caz n care histograma (2.10) este functia de densitate de probabilitate a acestei variabile aleatoare.
Fiind o functie de densitate de probabilitate, histograma oric
arei imagini verific
a conditia
L1

de normare

h(i) = 1.
i=0

Din punct de vedere practic, calculul histogramei unei imagini nseamn


a parcurgerea
punct cu punct a imaginii si contorizarea num
arului de nivele de gri ntlnite. Presupunnd L nivele de gri posibile n imaginea de dimensiuni NRLIN si NRCOL, codul
26

urm
ator aloc
a pentru fiecare nivel de gri posibil cte un unsigned int, ce va contoriza
num
arul de aparitii ale nivelului de gri respectiv. Pentru fiecare punct al imaginii se
incrementeaz
a pozitia din histogram
a ce corespunde valorii de gri din acel pixel. Ceea
ce rezult
a n final difer
a de histograma descris
a de (2.10) prin constanta de normare
num
arul total de puncte ale imaginii (deci M N sau NRLIN*NRCOL); este evident c
a
valorile obtinute pot fi normate pentru a obtine o functie de densitate de probabilitate
prin mp
artirea cu NRLIN*NRCOL si definirea histogramei ca fiind format
a din real sau
float.
histo=(unsigned int*)malloc(L*sizeof (unsigned int));
for (i=0;i<L;i++)
histo[i]=0;
for (i=0;i<NRLIN;i++)
for (j=0;j<NRCOL;j++)
histo[imagine[i][j]]++;
n Matlab, implementarea oric
arei functii este cu att mai eficient
a (din punctul de vedere
al timpului de rulare) cu ct sunt evitate structurile repetitive (n particular buclele for).
Cum, pentru calculul histogramei, ciclarea nu poate fi evitat
a (deci trebuie parcurse fie
toate punctele imaginii, fie toate nivelele de gri), se alege varianta care implic
a repetarea
minim
a a cicl
arii:
histo=zeros(1,L);
for i=1:L
p=find(imagine==i);
histo(i)=length(p);
% histo(i)=length(p)/prod(size(imagine));
end
Functia find (functie standard a pachetului Matlab) returneaz
a pozitiile (indicii) la care
este g
asit
a valoarea i n matricea imagine (adic
a ntoarce pozitiile punctelor ce au valoarea
i); num
arnd aceste puncte (deci calculnd lungimea vectorului n care sunt stocate) se
g
aseste num
arul de puncte ce au respectivul nivel de gri. Normarea histogramei se poate
face f
ar
a a modifica declaratiile de definire a structurilor (pentru Matlab este indiferent
dac
a se stocheaz
a ntregi sau numere cu parte zecimal
a). Acest
a structur
a este mai rapid
a
dect cea prin care se parcurgea toat
a imaginea deoarece se foloseste o singur
a bucl
a de
lungime L (si nu dou
a bucle imbricate, de lungime total
a NRLIN*NRCOL), iar functia
find este rapid
a, fiind o functie precompilat
a.
Histograma imaginii ofer
a informatii asupra plasamentului n nuanta a continutului
imaginii (vezi figura 2.8). La majoritatea imaginilor exist
a o distributie neuniform
a a
nivelelor de gri; exist
a nivele de gri predominante si exist
a nivele de gri folosite putin sau
27

deloc. Operatiile de mbun


at
atire a imaginilor (pentru mbun
at
atirea perceptiei vizuale)
au ca scop redistribuirea nivelelor de gri, astfel ca acestea s
a ocupe ntreaga gam
a de
variatie disponibil
a, n mod uniform: aceasta este egalizarea de histogram
a [9], [18].

Fig. 2.8: Imagine cu nivele de gri si histograma acesteia

Scopul egaliz
arii de histogram
a este deci obtinerea unei distributii uniforme a nivelelor de
gri; imaginea rezultat
a va prezenta cea mai mare mbun
at
atire a contrastului, distribuit
regulat n ntreaga gam
a dinamic
a a nivelelor de gri. Din punct de vedere matematic,
egalizarea de histogram
a nseamn
a transformarea unei distributii oarecari (descris
a de histograma imaginii initiale) ntr-o distributie uniform
a. Considernd variabilele aleatoare
X(, x) si Y (, y) legate prin Y = g(X), atunci ntre functiile de densitate de probabilitate
a celor dou
a variabile aleatoare exist
a relatia [16]:
fY (y) = fX (x)

1
|x=g1 (y)
(g 1 (y))

Dac
a dorim ca functia de densitate de probabilitate fY (y) s
a fie uniform
a (n conditiile
n care functia de densitate de probabilitate fX (x) este dat
a), atunci nseamn
a c
a vom
avea (g 1 (y)) = k1 fX (g 1 (y)). Rezolvarea acestei ecuatii produce solutia y = g(x) =
x

fX (t)dt.

Pentru cazul particular al imaginilor, variabila aleatoare X ia valori naturale - nivelele


de gri. Functia de densitate de probabilitate fX (x) este histograma [normat
a] a imaginii
x

iar functia de transformare devine y = g(x) =

fX (t)dt. Tinnd

seama c
a valorile de
0

gri sunt discrete, integrala se transform


a n sum
a si acest
a form
a nu este altceva dect

28

histograma cumulativ
a a imaginii; dac
a h este histograma imaginii, atunci
x

h(i)

g(x) = H(x) =

(2.11)

i=0

Valorile functiei trebuie ns


a redistribuite n intervalul permis de valori de gri, ceea ce
duce la deducerea formulei care exprim
a noile valori de gri:
v=

H(u) H(0)
(L 1) + 0.5
M N H(0)

(2.12)

O variant
a de cod care realizeaz
a egalizarea de histogram
a este prezentat
a n continuare. Trebuie remarcat c
a modul de calcul al histogramei cumulative este de tip iterativ,
bazndu-se pe formula H(x) = H(x 1) + h(x), ce se poate deduce imediat din (2.11).
Mai trebuie de asemenea remarcat c
a se foloseste o histogram
a nenormat
a.
gri_nou=(unsigned int *) malloc (L*sizeof(unsigned int));
histo_cum=(unsigned int *) malloc (L*sizeof(unsigned int));
tot=NRLIN*NRCOL;
histo_cum[0]=histo[0];
for (i=1;i<L;i++)
histo_cum[i]=histo_cum[i-1]+histo[i];
for (i=0;i<L;i++)
gri_nou[i]=round((histo_cum[i]-histo_cum[0])*(L-1)/(tot-histo_cum[0]));
Figurile urm
atoare prezint
a o imagine original
a (lena) si rezultatul egaliz
arii de histogram
a, precum si histogramele originale si egalizate (figura 2.9). Ceea ce se remarc
a
cu usurinta este diferenta dintre histograma obtinut
a si histograma perfect uniform
a
dorit
a. Unul dintre efectele secundare notabile este introducerea de nivele de gri lips
a n
histograma egalizat
a (aspectul n pieptene al acesteia).

Imagine original
a

Imagine dup
a egalizarea de histogram
a
29

800

600

400
200

50

100

150

200

250

300

Fig. 2.9: Histograma imaginii lena, nainte si dup


a egalizare
Alte variante de egalizare a histogramei [18] folosesc histograme modificate ale imaginii
(prin contabilizarea doar a anumitor pixeli) sau limiteaz
a amplitudinea vrfurilor histogramei, redistribuind uniform pixelii n exces.
Tehnica de egalizare a histogramei poate fi extins
a prin realizarea unei histograme de
form
a impus
a (dar oarecare) a imaginii rezultat; aceast
a metod
a este denumit
a specificare
de histogram
a [9], [5].
O ultim
a remarc
a se poate referi la validitatea introducerii tehnicilor de mbun
at
atire a
histogramei n categoria de operatii punctuale. Majoritatea autorilor consider
a c
a orice
operatie care este echivalent
a cu modificarea paletei de culoare a imaginii este o operatie
punctual
a. n acelasi timp ns
a, noile valori de gri ale fiec
arui punct sunt calculate pe
baza histogramei imaginii, deci pe baza unei m
asuri ce ia n calcul valorile din ntreaga
imagine; din acest punct de vedere, egalizarea de histogram
a poate fi inclus
a n categoria
operatiilor integrale.

30

Capitolul 3
A
FILTRAREA LINIARA
IMAGINILOR
Odat
a cu operatiile de filtrare liniar
a, se ncepe studiul operatorilor de vecin
atate: operatorii al c
aror rezultat depinde att de valoarea punctului n care au fost aplicati, ct
si de valorile unui num
ar de alte puncte vecine (nu neap
arat topologic) punctului curent
de calcul. Filtrarea se cheam
a liniar
a pentru c
a operatia verific
a principiul superpozitiei
(liniarit
atii): pentru dou
a imagini f1 si f2 , doi scalari a1 si a2 si operatorul liniar L avem
L(a1 f1 + a2 f2 ) = a1 L(f1 ) + a2 L(f2 )

(3.1)

Operatia de filtrarea liniar


a calculeaz
a noua valoare a unui pixel al imaginii (din pozitia
(m, n)) ca o combinatie liniar
a (medie ponderat
a) a unui num
ar de valori din imaginea
original
a:
wkl f (m k, n l)
(3.2)
v(m, n) =
(k,l)W

W este vecin
atatea punctului curent n care se face calculul; W este numit
a masc
a sau
fereastr
a de filtrare si este o form
a plan
a, descris
a ca o multime de puncte din spatiul
cartezian, n coordonate relative (deci n alt sistem de coordonate dect sistemul de
coordonate a imaginii). Scalarii wkl sunt atasati pozitiilor (k, l) din fereastra de filtrare
si poart
a numele de coeficienti ai filtrului. Spre exemplu, o masc
a simpl
a de mediere este
media aritmetic
a a valorilor dintr-o vecin
atate p
atrat
a de 3 x 3 pixeli, centrat
a n pixelul
curent; pentru acest caz, toti coeficientii vor avea valoarea 1/9 si masca de filtrare W
va fi: W = {(0, 0), (1, 0), (1, 0), (0, 1), (1, 1), (1, 1), (0, 1), (1, 1), (1, 1)}. Pentru
acest caz particular, expresia (3.2) devine:
1

v(m, n) =

f (m k, n l)
9
k=1 l=1
31

(3.3)

adic
a, desf
asurat, v(m, n) = f (m+1,n1)
+ f (m+1,n)
+ f (m+1,n+1)
+ f (m,n)
+ f (m,n1)
+ f (m,n+1)
+
9
9
9
9
9
9
f (m+1,n1)
f (m+1,n)
f (m+1,n+1)
+
+
. Acelasi lucru se poate exprima si prin specificarea
9
9
9

1/9 1/9 1/9


matricial
a a m
astii de filtrare si marcarea originii acesteia, ca W = 1/9 1/9 1/9 .
1/9 1/9 1/9

Formula de definitie (3.2) nu este altceva dect suma produselor punct cu punct a coeficientilor m
astii si a valorilor pixelilor imaginii din zon
a de imagine peste care a fost
suprapus
a masca. Aceast
a sum
a de produse se calculeaz
a pentru fiecare punct al imaginii,
deplasnd masca. Descrierea algoritmului nu este ns
a altceva dect descrierea plastic
a
a unei operatii de convolutie bidimensional
a, n care, prin conventie, masca de filtrare
este considerat
a nucleul de convolutie. Deplasarea m
astii (ferestrei de filtrare) a condus
la adoptarea denumirii de tehnic
a a ferestrei glisante; aplicarea acesteia se poate descrie
simplu:
se plaseaz
a originea ferestrei de filtrare (pe rnd) n fiecare punct al imaginii si se
selecteaz
a punctele imaginii situate n interiorul ferestrei (putem imagina fereastra
de filtrare ca fiind o apertur
a ntr-o plac
a opac
a; ntr-o anumit
a pozitie a acesteia
valorile selectate din imagine sunt valorile punctelor ce se v
ad prin apertur
a).
pentru fiecare pozitie se face suma produselor punct cu punct coeficient masc
avaloare pixel.
Fereastra de filtrare este deci definit
a de form
a (multimea W ) si valori (coeficientii wkl ).
Cele mai simple ferestre de filtrare sunt cele de form
a p
atrat
a, avnd originea n centru
(deci fiind p
atrate de dimensiuni impare: 3 x 3, 5 x 5, etc.) - de tipul celei prezentate
n exemplul anterior. Fereastra de filtrare are n general o dimensiune mult mai mic
a
dect dimensiunile imaginii (mai sunt numite si nuclee mici, f
acnd referinta la operatia
de convolutie). Codul care urmeaz
a exemplific
a aceast
a cea mai simpl
a filtrare, cu un
nucleu de dimensiune 3 x 3. Se remarc
a alocarea static
a a coeficientilor w ai filtrului
(numere reale) si alocarea dinamic
a a imaginii rezultat (considerat
a aici ca avnd valori
ntregi). Calculul valorilor pixelilor din imaginea filtrat
a s-a f
acut decupnd cte un rnd
si o coloan
a de la extremit
atile imaginii originale (pentru a evita efectele de margine, n
care masca debordeaz
a n afara imaginii), acestea fiind completate n imaginea rezultat
prin copierea valorilor originale. O alt
a variant
a de evitare a efectelor de margine este
bordarea (completarea) imaginii la capete cu cte o linie si o coloan
a cu valori nule. De
asemenea, se poate constata c
a n expresia de calcul efectiv indicii tabelului de coeficienti
ai m
astii au fost deplasati, astfel nct indicele minim s
a fie 0, si nu negativ.
real w[3][3];
img_out=(int**)malloc(NRLIN*sizeof(int*));
for (i=0;i<NRLIN;i++)
32

img_out[i]=(int*)malloc(NRCOL*sizeof(int));
for (i=0;i<NRCOL;i++)
{ img_out[0][i]=img[0][i];
img_out[NRLIN-1][i]=img[NRLIN-1][i];}
for (i=0;i<NRLIN;i++)
{ img_out[i][0]=img[i][0];
img_out[i][NRCOL-1]=img[i][NRCOL-1];}
for (i=1;i<NRLIN-1;i++)
for (j=1;j<NRCOL-1;j++)
img_out[i][j]=round(w[1][1]*img[i][j]+w[1][0]*img[i][j-1]+
w[1][2]*img[i][j+1]+w[0][1]*img[i-1][j]+w[0][0]*img[i-1][j-1]+
w[0][2]*img[i-1][j+1]+w[2][1]*img[i+1][j]+w[2][0]*img[i+1][j-1]+
w[2][2]*img[i+1][j+1]);
Pentru o imagine p
atrat
a de dimensiune N si o masc
a de filtrare p
atrat
a de dimensiune
n, num
arul de operatii necesare unei filtr
ari liniare este de N 2 n2 nmultiri si N 2 (n2 1)
adun
ari, adic
a complexitatea de calcul este O[N 2 ], att fata de dimensiunile imaginii ct
si fata de dimensiunile ferestrei de filtrare. Aceasta duce la constrngerea practic
a de a
folosi ferestre de filtrare ct mai mici (si de a ncerca descompunerea ferestrelor mari de
filtrare ntr-o succesiune de ferestre mai mici - spre exemplu o filtrare cu un nucleu de 5 x
5, care ar necesita 25 de operatii pentru fiecare pixel, poate fi echivalat
a cu dou
a filtr
ari
succesive cu nuclee de 3 x 3 pixeli, care necesit
a doar 18 operatii pentru fiecare pixel). n
figurile urm
atoare se prezint
a efectul unei operatii de mediere cu un nucleu de 7 x 7: se
remarc
a faptul c
a imaginea rezultat este mai neclar
a si cetoas
a (efect de blur) si c
a toate
contururile au devenit mai vagi.

Rezultatul unei filtr


ari de mediere

Imagine original
a

33

3.1

Filtrarea liniar
a de netezire

Efectul de ncetosare a unei imagini poate fi considerat si ca un efect de mbun


at
atire
a uniformit
atii regiunilor [18]. Aceasta nseamn
a c
a se elimin
a micile diferente dintre
valorile pixelilor apartinnd unei aceleiasi regiuni (zone cu intensitate luminoas
a relativ
constant
a). Acesta este fundamentul metodelor de reducere a zgomotului alb aditiv
gaussian (normal) suprapus imaginii: un asemenea zgomot ce afecteaz
a o regiune absolut
uniform
a (n care toti pixelii ce o formeaz
a au aceeasi valoare) produce variatia valorilor
din interiorul acesteia, deci micsoreaz
a uniformitatea. Variatiile introduse sunt cu att
mai mari cu ct puterea zgomotului este mai mare; pentru un zgomot de medie nul
a
(asa cum este zgomotul alb gaussian aditiv) puterea este identic
a cu varianta. Teoria
proceselor aleatoare [16] arat
a c
a, pentru o combinatie liniar
a de realiz
ari ale unei variabile
n

aleatoare y =

ai xi , varianta noii variabile aleatoare este proportional


a cu varianta
i=1

variabilei aleatoare din care au provenit realiz


arile particulare: 2y =

n
i=1

a2i 2x . Deci, prin

medierea a n realiz
ari ale unei variabile aleatoare, varianta este redus
a de n ori (ai = n1 ).
M
asurile de calitate folosite pentru a caracteriza n mod obiectiv calitatea unei imagini
(sau rezultatul unei prelucr
ari) sunt extensii bidimensionale ale m
asurilor de calitate
folosite pentru caracterizarea semnalelor unidimensionale. Dac
a consider
am f imaginea
original
a (corect
a) si g imaginea a c
arei calitate trebuie determinat
a (g este considerat
a
c
a provine din f prin suprapunerea unui zgomot aditiv), rapoartele de calitate cele mai
utilizate sunt: raportul semnal zgomot (Signal to Noise Ratio - SNR) (3.4), raportul
semnal de vrf zgomot (Peak Signal to Noise Ratio - PSNR) (3.5), eroare p
atratic
a medie
(Mean Squared Error - MSE) (3.6) si eroarea medie absolut
a (Mean Absolute Error MAE) (3.7).
N

SN R = 10 log

f 2 (n, m)

n=1 m=1
M

n=1 m=1

dB

(3.4)

(g(m, n) f (n, m))


2

NM
P SN R = 10 log

1
M AE =
NM

n,m

(3.5)

(g(m, n) f(n, m))

n=1 m=1
N

dB
2

n=1 m=1

1
M SE =
NM

max f (n, m)

(g(m, n) f (n, m))2

(3.6)

|g(m, n) f (n, m)|

(3.7)

n=1 m=1

34

Fig. 3.1: Imagine degradat


a de un zgomot aditiv gaussian

Fig. 3.2: Reducerea zgomotului prin filtrarea de mediere


Figurile urm
atoare prezint
a o imagine degradat
a cu un zgomot aditiv, alb, gaussian,
de medie nul
a (figura 3.1 SNR=16.97 dB, PSNR=22.43 dB, MAE=15.22) si imaginea
filtrat
a cu un filtru liniar de mediere aritmetic
a, cu fereastr
a 3 x 3 (figura 3.2 SNR=19.33
dB, PSNR=24.79 dB, MAE=9.31). Se poate observa att o calitate vizual
a mai bun
a
(regiuni mai uniforme) ct si factori de calitate mai buni (SNR si PSNR mai mari, MAE
mai mic).

Un caz particular de interes este considerarea regiunilor constante (absolut uniforme) ale
imaginii; n aceste regiuni toti pixelii vor avea aceeasi valore, si deci uniformitatea nu mai
poate fi mbun
at
atit
a. n acelasi timp, operatia de filtrare de netezire trebuie s
a p
astreze
aceast
a valoare constant
a a pixelilor (pe care o vom nota cu ); nlocuind n formula de
35

definitie a filtr
arii liniare (3.2), vom obtine c
a
wkl

=
(k,l)W

adic
a:
wkl = 1

(3.8)

(k,l)W

Aceast
a conditie (suma coeficientilor m
astii de filtrare s
a fie unitar
a) se numeste conditia
de normare a nucleelor de filtrare de netezire si defineste un astfel de nucleu.
Nucleele de filtrare folosite nu trebuie limitate strict la nucleele ce realizeaz
a media aritmetic
a ntr-o vecin
atate p
atrat
a, centrat
a n punctul considerat.
M
atoare rea

astile urm

1/16 1/16 1/16


0
1/5
0
lizeaz
a medieri ponderate: W1 = 1/16 1/2 1/16 , W2 = 1/5 1/5 1/5 ,
1/16 1/16 1/16
0
1/5
0

0
1/8
0
1/2 1/6

W3 =
1/8 1/4 1/8 , W4 =
. Nucleul de filtrare poate avea orice
1/6 1/6
0
1/8
0
form
a (deci exist
a o libertate total
a n definirea multimii W (3.2)); n acelasi timp ns
a,
practica a demonstrat suficienta consider
arii unor forme regulate (p
atrate, centrate) pentru masc
a. Orice masc
a poate fi extins
a cu puncte ce au atasat un coeficient nul, pentru a rezulta
o
masc
a
p
a
trat
a
centrat
a
; spre exemplu, masca W4 poate fi scris
a si ca

0
0
0

0 1/2 1/6 ; la fel s-a procedat si cu m


W4 =
astile W2 si W3 . Trebuie remarcat
0 1/6 1/6
c
a toate aceste m
asti respect
a conditia de normare a unui nucleu de netezire (3.8).

3.2

Filtrarea liniar
a de contrastare

Contrastarea unei imagini are ca obiectiv mbun


at
atirea perceperii vizuale a contururilor
obiectelor (mbun
at
atirea detectabilit
atii componentelor scenei de-a lungul frontierelor
acestora). n principiu, acest deziderat se poate realiza prin modificarea valorilor pixelilor
aflati de o parte si de alta a unei frontiere comune.
O experienta de perceptie vizual
a subiectiv
a (benzile lui Mach) a pus n evidenta faptul
c
a sistemul vizual uman are tendinta de a adnci profilul zonelor de tranzitie dintre regiuni
uniforme. Studiul fiziologiei sistemului vizual a demonstrat c
a acesta se realizeaz
a prin
prelucr
ari de tip derivativ ce apar n diferitele etape pe care le parcurge informatia vizual
a;
efectul global poate fi descris ca sc
aderea din semnalul original a unei derivate secunde
a acestuia, ponderat
a corespunz
ator (asa cum prezint
a figurile 3.3 si 3.4, pentru cazul
unidimensional - sectiunea unei frontiere ntre regiunile imaginii).
36

1.5
1
0.5
0
-0.5
0

50

100

150

200

250

Fig. 3.3: Profilul original de tranzitie si profilul adncit prin sc


aderea derivatei secunde
0.1
0.05
0
-0.05
-0.1
0

50

100

150

200

250

Fig. 3.4: Derivata secund


a a profilului original prezentat anterior
Implementarea unei derivate secunde pentru cazul discret va trebui s
a ia n considerare
existenta a dou
a directii de derivare de baz
a si modul de definire a derivatei n cazul discret
(de exemplu prima derivat
a pe directia orizontal
a poate fi f (m, n) = f (m, n+1)f(m, n)
sau f (m, n) = f(m, n) f(m, n 1) sau f (m, n) = f (m, n + 1) f (m, n 1)). M
asti
obisnuite de implementare
a unei derivate secundebidirectionale
(operator
Laplacian)

0
1/4
0
1/4 1/2 1/4
pot fi [9], [19], [5]: W5 = 1/4
1
1/4 , W6 = 1/2
1
1/2 ,
0
1/4
0
1/4 1/2 1/4

1/8 1/8 1/8

W7 =
1/8
1
1/8 .
1/8 1/8 1/8
Pentru un astfel de operator de derivare este esential ca r
aspunsul s
au pentru pixeli din
interiorul unei regiuni absolut uniforme (de valoare ) s
a fie nul (derivata unei constante
este nul
a); pentru aceasta, din formula de definitie a filtr
arii liniare (3.2) avem c
a0=

37

wkl , adic
a:
(k,l)W

(3.9)

wkl = 0
(k,l)W

Aceasta este conditia de normare a unui nucleu de filtrare derivativ


a, pentru care suma
coeficientilor m
astii trebuie deci s
a fie nul
a. Se remarc
a faptul c
a nucleele de derivat
a
secund
a (operatori laplacieni) prezentate anterior verific
a acest
a conditie de normare
(3.9). Figurile urm
atoare prezint
a o imagine slab contrastat
a si varianta sa mbun
at
atit
a
prin contrastare cu nucleul laplacian W5 .

Contrast mbun
at
atit

Imagine original
a

3.3

Filtrarea liniar
a adaptiv
a

Termenul de adaptiv se refer


a la capacitatea filtrului de a-si ajusta comportarea (care este
determinat
a de caracteristicile sale de definitie) n functie de anumite criterii, urm
arind
optimizarea unor m
asuri de calitate. n mod curent, optimizarea m
asurilor de calitate
se traduce n prelucrarea semnalelor unidimensionale prin minimizarea erorii p
atratice
medii (sau, corespunz
ator, maximizarea raportului semnal zgomot). Pe lng
a m
asurile
obiective de calitate, prelucrarea imaginilor adaug
a si o m
asur
a subiectiv
a: confortul
vizual al unui observator, pentru care imaginea dat
a arat
a bine, sau mai bine dect o
alta. Prin procesul de adaptare, n fiecare nou punct prelucrat structura filtrului este
alta, lund n considerare caracteristicile locale pixelului curent prelucrat.
Atta timp ct (cel putin teoretic) n fiecare punct al imaginii operatia este diferit
a
(deoarece se face cu un filtru diferit), filtrarea global
a nu mai este liniar
a (nu mai respect
a
principiul superpozitiei (3.1)).
Adaptarea filtrelor liniare nu poate urm
ari dect dou
a variante: modificarea formei ferestrei de filtrare, sau modificarea coeficientilor unei ferestre de filtrare de form
a fixat
a.
38

Exemplul cel mai folosit de modificare a modificare a formei ferestrei de filtrare este filtrul
de netezire directional
a adaptiv
a [9]. Termenul de filtrare directional
a se refer
a la forma
puternic orientat
a a ferestrei de filtrare (deci fereastra de filtrare nu mai este p
atrat
a, ci va
avea o form
a liniar
a, orientat
a dup
a o anumit
a directie). Pentru fiecare punct al imaginii
se pot considera mai multe orient
ari (deci mai multe directii) posibile pentru masca de
mediere. Pentru fiecare dintre directiile alese se obtine n urma filtr
arii o valoare. n mod
ideal, dorim ca valoarea obtinut
a prin filtrare s
a nu difere n mod semnificativ de valoarea
initial
a din pixelul considerat. O diferenta semnificativ
a poate nsemna c
a punctul curent
este situat pe un contur, si acceptarea acestei valori mult diferite de cea initial
a produce
efectul de ncetosare a imaginii (caracteristic oric
arei filtr
ari de netezire). Solutia adus
a
de filtrul adaptiv este de a alege din setul de valori obtinute pentru diferitele ferestre
de filtrare pe aceea care este cea mai apropiat
a de valoarea initial
a din punctul curent.
Fragmentul de cod urm
ator prezint
a un caz particular de filtrare directional
a adaptiv
a:
ferestrele directionale au trei puncte si sunt alese dup
a cele patru directii principale
(orizontal, vertical si cele dou
a diagonale, adic
a directiile orientate la 0 , 45 , 90 si 135
fata de orizontal
a).
int val_temp1,val_temp2,out0,out45,out90,out135;
for (i=1;i<NRLIN-1;i++)
for (j=1;j<NRCOL-1;j++) {
out0=round((img[i][j]+img[i][j-1]+img[i][j+1])/3);
out90=round((img[i][j]+img[i-1][j]+img[i+1][j])/3);
out45=round((img[i][j]+img[i-1][j+1]+img[i+1][j-1])/3);
out135=round((img[i][j]+img[i-1][j-1]+img[i+1][j+1])/3);
if (abs(out0-img[i][j])>abs(out90-img[i][j]))
val_temp1=out90;
else
val_temp1=out0;
if (abs(out45-img[i][j])>abs(out135-img[i][j]))
val_temp2=out135;
else
val_temp2=out45;
if (abs(val_temp1-img[i][j])>abs(val_temp2-img[i][j]))
img_out[i][j]=val_temp2;
else
img_out[i][j]=val_temp1; }
n cod nu a mai fost inclus
a alocarea de memorie pentru imaginea de iesire img_out si
nici partea de copiere a valorii marginilor imaginii; se remarc
a folosirea a patru variabile
suplimentare out0, out45, out90, out135 care primesc valorile obtinute prin filtrarea directional
a cu masca orientat
a la 0 , 45 , 90 si 135 . Variabilele val_temp1 si val_temp2
sunt folosite apoi pentru a calculul valorii celei mai apropiate de valoarea original
a.
Ideea de a accepta valoarea produs
a de medierea valorilor selectate de fereastra filtrului
39

numai dac
a acest
a valoare este suficient de apropiat
a de valoarea original
a se poate aplica
si pentru filtrarea de netezire cu fereastr
a si coeficienti ficsi [5]. n acest caz rezultatul
netezirii ntr-un punct va fi acceptat doar dac
a diferenta fata de valoarea original
a este
mai mic
a dect un prag impus:

wkl f (m k, n l), dac


a f(m, n)
wkl f (m k, n l) < T
g(n, m) =
(k,l)W
(k,l)W

f (m, n), n rest

O variant
a clasic
a de filtrare liniar
a adaptiv
a, realizat
a prin recalcularea coeficientilor
m
astii de filtrare n fiecare punct al imaginii este prezentat
a n [18]. Acest filtru este
o combinatie liniar
a convex
a a imaginii zgomotoase si a imaginii obtinute din aceasta
printr-o filtrare liniar
a de mediere (cu fereastr
a constant
a), adic
a: f = f + f. O
combinatie liniar
a convex
a se obtine doar dac
a + = 1. Deci
f = f + (1 )f

(3.10)

Imaginea zgomotoas
a f provine dintr-o imagine corect
a g, la care s-a ad
augat un zgomot
alb aditiv de medie nul
a n (n = 0) si necorelat cu imaginea (ng = ng = 0): f = g + n.
Atunci
(3.11)
f = (g + n) + (1 )(g + n) = g + n + (1 )g
Ceea ce defineste filtrul adaptiv este coeficientul ; acesta este calculat local impunnd
optimizarea unei m
asuri de calitate obiective - eroarea p
atratic
a medie ntre imaginea
original
a g si rezultatul filtr
arii f.
2 = f g

= (n + ( 1)(g g))2 = 2 n2 +2(1)ng2(1)ng+(1)2 (gg)2

2 = 2 n2 + 2( 1)ng 2( 1)ng + ( 1)2 (g g)2 = 2 n2 + ( 1)2 (g g)2


2 = 2 2n + ( 1)2 2g

(3.12)

Formula (3.12) arat


a c
a eroarea p
atratic
a medie este suma ponderat
a dintre varianta
2
2
(puterea) zgomotului n si varianta imaginii originale g . G
asirea coeficientului optim
2
nseamn
a g
asirea minimului lui , deci anularea derivatei acestuia.
d2
= 2 2n + 2( 1) 2g = 0
d
=

2g
2n
=
1

2g + 2n
2f

(3.13)

De aici rezult
a expresia final
a a filtrului:
f=

2n
2f
40

f+

2n
f
2f

(3.14)

Se observ
a c
a trebuiesc cunoscute puterea de zgomot si varianta local
a (n fiecare punct)
al imaginii zgomotoase. Adaptarea se face ntre dou
a cazuri limit
a: dac
a puterea de
2
zgomot este mult mai mare dect varianta valorilor imaginii originale ( n
2g ) atunci,
din prima parte a formulei (3.13) rezult
a = 0 si deci filtrul optim este un simplu filtru
de mediere; dac
a varianta valorilor din imagine este mult mai mare dect puterea de
2n , deci este de presupus c
a punctul curent considerat este situat pe un
zgomot ( 2f
contur) atunci = 1 si filtrul optim este un filtru identitate (trece tot). Prezent
am n
continuare codul Matlab ce implementeaz
a acest
a filtrare adaptiv
a:
[NRLIN,NRCOL]=size(img);
for i=2:NRLIN-1
for j=2:NRCOL-1
temp=img(i-1:i+1,j-1:j+1);
temp=temp(:);
varianta_img=std(temp);
alfa=1-varianta_zg/varianta_img;
img_out(i,j)=alfa*img(i,j)+(1-alfa)mean(temp);
end
end
Se folosesc functiile Matlab mean (pentru a calcula media valorilor selectate de fereastra
de filtrare p
atrat
a de 3 x 3) si std (pentru a calcula varianta local
a a imaginii). Se
presupune c
a puterea de zgomot varianta_zg este un parametru cunoscut.
n capitolul urm
ator se va introduce o nou
a posibilitate de caracterizare a efectelor filtr
arii
liniare a imaginilor: reprezentarea n domeniul frecventelor spatiale (o extensie direct
a
a spectrului semnalelor unidimensionale). De asemenea vom ar
ata c
a r
amne valabil
a
teorema convolutiei, prin care vom introduce si o nou
a modalitate de implementare a
filtrelor liniare: filtrarea n domeniul de frecventa.

41

Capitolul 4

TRANSFORMARI
INTEGRALE
UNITARE DISCRETE
4.1

Generalit
ati

Aceast
a categorie de prelucr
ari include operatii de tip integral totalitatea pixelilor
imaginii initiale contribuie la obtinerea valorii fiec
arui pixel din imaginea rezultat. n
[9] se consider
a c
a termenul de transform
ari de imagine se refer
a n mod uzual la o
clas
a de matrici unitare folosite pentru reprezentarea imaginilor. Orice imagine poate fi
reprezentat
a ca o serie de matrici de baz
a ortonormale. Pentru o imagine p
atrat
a U1 de
dimensiune N, o dezvoltare n serie este
N1 N1

Akl V (k, l)

U=

(4.1)

m=0 n=0

a2 (de dimensiuni N N) iar V (k, l) sunt coeficientii


unde Akl sunt matricile de baz
dezvolt
arii n serie. Exprimnd relatia (4.1) la nivelul fiec
arui pixel al imaginii U obtinem
N1 N1

akl (m, n)V (k, l)

U(m, n) =

(4.2)

k=0 l=0

Calculul coeficientilor V (k, l) ai transform


arii se poate face n conditiile impuse de orto1

n acest capitol vom folosi notatiile matriciale si vectoriale clasice: litere mari, drepte si groase pentru
matrici (A este o matrice), litere mici, drepte si groase pentru vectori (v este un vector) si litere nclinate
pentru elementele vectorilor si matricilor (A(i, j), v(m)).
2
Numite uneori si imagini de baz
a.

42

gonalitate si completitudine a matricilor de baz


a Akl prin:
V (k, l) =

N 1 N1

akl (m, n)U (m, n)

(4.3)

m=0 n=0

Multimea coeficientilor transform


arii V (k, l) formeaz
a matricea V, transformata imaginii.
Atunci relatia (4.2) este transformarea direct
a a imaginii, iar relatia (4.3), prin care se
obtine imaginea din transformata sa, este transformata invers
a. Se poate remarca faptul
c
a ambele transform
ari (direct
a si invers
a) necesit
a N 4 operatii de nmultire, si deci o
complexitate O(N 4 ).
Conditia de ortonormalitate a matricilor de baz
a se exprim
a ca
N1 N1

m=0 n=0

akl (m, n)ak l (m, n) = (k k , l l ), k, l, k , l

(4.4)

si asigur
a faptul c
a orice dezvoltare n serie truncheat
a minimizeaz
a eroarea p
atratic
a de
aproximare.
Conditia de completitudine a matricilor de baz
a se exprim
a ca
N1 N 1
k=0 l=0

akl (m, n)akl (m , n ) = (m m , n n ), m, n, m , n

(4.5)

si asigur
a faptul c
a baza de matrici folosit
a este complet
a.
O transformare de tip (4.2) este deci caracterizat
a de cei N 4 coeficienti akl (m, n), ce pot fi
interpretati ca valori ai unei functii de patru variabile (k, l, m, n), cte dou
a pentru fiecare
imagine (initial
a si transformat
a). Aceast
a functie se numeste nucleul transform
arii. Prin
definitie, o transfomare se zice separabil
a dac
a nucleul ei este separabil dup
a perechi de
variabile corespondente:
akl (m, n) = ak (m)bl (n) = a(k, m)b(l, n)

(4.6)

Impunnd conditiile (4.4) si (4.5) acestei noi forme a coeficientilor transform


arii, rezult
a
c
a matricile A = {a(k, m)} si B = {b(l, n)} trebuie s
a fie matrici unitare:
AAT = AT A = IN

(4.7)

BBT = BT B = IN
Pentru o transformare separabil
a, relatiile de definitie (4.2) si (4.3) pot fi rescrise sub
form
a matricial
a ca:
V = AUBT
(4.8)
U = AT VB
43

(4.9)

Num
arul de nmultiri necesare pentru a realiza oricare dintre transform
arile (4.8) sau
3
3
(4.9) este doar N (deci o complexitate O(N )). Proprietatea de separabilitate conduce
deci la reducerea complexit
atii calculelor cu un ordin de m
arime; n practic
a se folosesc
numai transform
ari separabile, pentru care, n plus, A = B. n acest caz particular,
relatia (4.8) se poate scrie ca
V = AUAT = A(AUT )T = (UT AT )T AT
ceea ce nseamn
a c
a se poate face o transformare unidimensional
a pe fiecare linie sau
coloan
a a lui U urmat
a de aceeasi transformare pe fiecare coloan
a sau linie a rezultatului. Astfel, transform
arile practic utilizate n prelucrarea imaginilor (matricilor) sunt
(paradoxal ?) unidimensionale.
Aceste observatii ne conduc la concluzia c
a pentru acoperirea cazurilor utilizate n mod
curent este suficient
a studierea propriet
atilor transformatelor integrale unitare unidimensionale.

4.2

Propriet
atile transformatelor unitare unidimensionale

n cele ce urmeaz
a vom considera semnalul de intrare u = (u(0), u(1), ..., u(N 1)) si
transformata sa v, obtinut
a prin folosirea matricii unitare A. Relatiile de transformare
(direct
a si invers
a) sunt v = Au si u = AT v.
1. Energia semnalului se conserv
a printr-o transformare unitar
a.
Ev = v

= vT v = (Au)T Au = uT AT Au = uT u = u

= Eu

(4.10)

Energia vectorului semnal este de fapt lungimea (Euclidian


a) a acestuia n spatiul
N-dimensional de reprezentare. Conservarea energiei este deci echivalent
a cu conservarea lungimii vectorului, deci transformarea unitar
a este o rotatie n spatiul
semnalului. Aceasta nseamn
a c
a baza de reprezentare a lui u este rotit
a, iar v este
proiectia lui u pe noua baz
a.
2. Energia medie a semnalului se conserv
a printr-o transformare unitar
a.
v=Au= Au

(4.11)

Ev = vT v = (Au)T Au = uT AT Au=uT u = Eu

(4.12)

Corelatiei componentelor semnalului se modific


a; dac
a not
am cu C matricea de
covariatie atunci:
Cu = (u u)(u u)T
(4.13)
44

= (v v)(v v)T = A(u u)(u u)T AT = ACu AT

(4.14)

Majoritatea transform
arilor unitare au tendinta de a aglomera o mare parte a
energiei medii a semnalului n relativ putini coeficienti ai transform
arii. Deoarece
energia total
a se conserv
a prin transfomare, multi coeficienti ai transform
arii vor
contine foarte putin
a energie. Energia medie a coeficientilor transform
arii va avea
o distributie neuniform
a, chiar dac
a n secventa de intrare aceasta era uniform
distribuit
a.
Dac
a componentele lui u sunt puternic corelate, coeficientii transform
arii vor fi
decorelati (termenii matricii de covariatie care nu sunt pe dioagonala principal
a vor
avea valori mici comparativ cu valorile de pe diagonal
a).
3. Entropia unui vector cu componente aleatoare se conserv
a printr-o transformare
unitar
a
H(u) =

N
N
log2 (2e |Cu |1/N ) =
log2 (2e |Cv |1/N ) = H(v)
2
2

(4.15)

Deoarece entropia este o m


asur
a a cantit
atii de informatie (informatia medie)
nseamn
a ca transform
arile unitare p
astreaz
a informatia continut
a n semnal.

4.3

Transformata Fourier discret


a

Transformata Fourier este poate cea mai important


a transformare integral
a unitar
a, ce
asigur
a trecerea ntre spatiul semnalului si spatiul de frecvente ale semnalului. Dup
a
cum semnalul este clasic (temporal, si deci unidimensional) sau cu suport spatial bidimensional (imagine), spatiul de frecventa marcheaz
a frecvente propriu-zise sau frecvente
spatiale.
Transformata Fourier discret
a bidimensional
a este o transformare separabil
a, n care nucleul se poate descompune n termeni identici A = B = F. Matricea F a transform
arii
este o matrice unitar
a, ce verific
a (4.7). Elementele matricii transform
arii sunt exponentialele complexe:
2
1
1 kn
F (k, n) = ej N kn = wN
(4.16)
N
N
Separabilitatea ne permite deci s
a studiem majoritatea propriet
atilor transform
arii pe
cazul unidimensional, urmnd ca rezultatele s
a fie usor extinse pentru cazul bidimensional. Folosind notatiile introduse n sectiunea 4.2, putem scrie deci transformata Fourier
unidimensional
a direct
a ca:
N1

v(k) =
n=0

kn
u(n)wN
, k = 0, N 1

45

(4.17)

iar transformarea invers


a ca
1
u(n) =
N

N1

k=0

kn
v(k)wN
, n = 0, N 1

(4.18)

Relatiile se extind imediat la cazul bidimensional:


N1 N1

v(k, l) =
m=0 n=0

u(m, n) =

1
N2

kn+ml
u(m, n)wN
, k, l = 0, N 1

(4.19)

N1 N1
(kn+ml)

v(k, l)wN
k=0 l=0

, m, n = 0, N 1

(4.20)

Trebuie totusi remarcat c


a formele prezentate ale transform
arilor nu mai sunt unitare
(apare o asimetrie ntre transformarea direct
a si cea invers
a prin factorul de scalare de
tip 1/N). Matematic, definitia (4.16) este corect
a, dar n practic
a se folosesc formele
neunitare prezentate n (4.17), (4.18) si (4.19), (4.20).

4.3.1

Propriet
atile fundamentale ale transformatei Fourier

Dintre numeroasele propriet


ati ale transformatei Fourier [9], [19] ne vom referi doar
la dou
a propriet
ati fundamentale: simetria central
a a spectrului de frecventa (avnd
drept consecinta important
a faptul c
a este necesar acelasi spatiu de memorie pentru a
reprezenta fie spectrul unei imagini, fie imaginea propriu-zis
a) si teorema convolutiei circulare (care face leg
atura ntre filtrarea n domeniul spatial si n domeniul de frecventa).
Transformata Fourier a unei secvente (matrici) reale este complex conjugat
a fata de
mijlocul s
au [9]. Aceasta nseamn
a c
a
v(

N
N
N
k) = v ( + k), k = 0,
2
2
2

(4.21)

N
N
N
N
N
k, l) = v ( + k, + l), k, l = 0,
2
2
2
2
2
Relatiile arat
a c
a exist
a o simetrie central
a a spectrelor de frecventa, n centru aflndu-se
o valoare real
a. Dar singura valoare real
a din spectre este cea ce corespunde componentei
de fecventa nul
a (componenta medie), si deci este necesar
a o interschimbare a jum
at
atilor
de spectru (n cazul secventelor unidimensionale) sau a sferturilor de spectru (n cazul
imaginilor), astfel nct componenta de frecventa nul
a s
a fie n centru. n figura 4.1 este
reprezentat modulul spectrului de frecventa al imaginii lena, reprezentat cu 256 nivele
de gri (valorile au fost scalate dup
a o reprezentare logaritmic
a) astfel nct valorile mai
mari corspund unei nuante mai deschise. Se observ
a n partea dreapt
a spectrul central simetrizat, n care valorile maxime (corespunzd frecventelor cele mai mici, inclusiv
v(

46

Fig. 4.1: Spectrele de frecventa (Fourier) ale imaginii lena, nainte si dup
a aranjarea
cu simetrie central
a.
zero) se g
asesc n centrul imaginii, iar n partea stng
a spectrul original obtinut n urma
transform
arii Fourier, n care maximele se g
asesc pe cele patru colturi.
Ca si n cazul unidimensional, si pentru imagini leg
atura dintre frecventele spatiale si
obiectele din domeniul spatial (imagine) se p
astreaz
a: frecventele spatiale ridicate corespund detaliilor, obiectelor mici, contururilor, zgomotului. n figura 4.2 este prezentat
spectrul de frecventa al imaginii lena degradat
a de zgomot impulsiv de tip sare si piper
(figura 5.1); zgomotul impulsiv corespunde aparitiei a numeroase detalii (obiecte mici
punctele de zgomot) si variatii ale nivelului de gri. Efectul evident este acela de m
arire
a valorilor din spectru corespunz
atoare frecventelor nalte si, corespunz
ator, diminuarea
importantei relative a frecventelor joase.

Fig. 4.2: Spectrul de frecventa al imaginii lena degradat


a de zgomot impulsiv.
47

Prelucrarea imaginilor (fie ele scalare sau vectoriale) presupune executarea, prin intermediul unui bloc functional ce poate fi presupus initial de tip cutie neagr
a, a unei
operatii de tip Image In, Image Out [2] (spre deosebire de tehnicile de analiz
a ce pot fi
caracterizate ca operatii Image In, Description Out). Transformarea imaginii de intrare
n imaginea rezultat de iesire (ce prezint
a aceleasi caracteristici majore, simbolice si perceptuale3 ) se numeste n mod generic filtrare4 . Functia unui filtru este de a transforma
un semnal dat ntr-un alt semnal, mai potrivit unei anume aplicatii date.
Definitiile filtr
arii (sau ale dispozitivului care o realizeaz
a, filtrul) ce se reg
asesc n dictionarele lingvistice de uz general fac apel la notiunea de semnal electric si de frecvente
asociate componentelor acestuia. Descrierea actiunii filtrului este descrierea unei operatii
liniare efectuate n domeniul frecventelor. Extinderea acestor definitii la cazul imaginilor
presupune n primul rnd definirea spectrului de frecventa asociat unui semnal cu suport
[spatial] multidimensional si, implicit, introducerea notiunii de frecventa spatial
a. Utilizarea unei prelucr
ari n domeniul frecventelor presupune apoi identificarea benzilor de
frecventa corepunz
atoare entit
atilor ce se doresc p
astrate, respectiv eliminate, asociere
ce nu este ntotdeauna simpl
a. n practic
a, aceasta nseamn
a determinarea unui spectru
de frecvente transformat, care apoi este transformat prin transformata Fourier invers
a n
imaginea filtrat
a aceasta este filtrarea n domeniul frecventa.
Filtrarea liniar
a a imaginilor se bazeaz
a pe convolutia [circular
a] ntre imaginea de prelucrat si un nucleu de filtrare (a se vedea capitolul 3); teoria transformatelor unitare
[9] arat
a c
a o asemenea operatie este echivalent
a unui produs ntre spectrul Fourier al
imaginii si spectrul Fourier al nucleului de filtrare; aceasta este teorma convolutiei. n
cazul unidimensional, dac
a secventele x si y au aceeasi lungime, si U este operatorul de
convolutie circular
a (definit n (4.23)) atunci:
Fourier(x U y) = Fourier(x) Fourier(y)

(4.22)

N1

x U y(n) =
k=0

x ((n k) mod N ) y(k), n = 0, N 1

(4.23)

Teorema convolutiei ofer


a deci instrumentul prin care se pot echivala operatiile de filtrare
realizate n domeniile spatial (filtrarea liniar
a, prezentat
a n capitolul 3) si de frecventa.
Aceasta nseamn
a c
a un nucleu mic de convolutie (masc
a de filtrare) este bordat cu zerouri pn
a la obtinerea dimensiunii imaginii (teorema convolutiei circulare se refer
a la
3

Prin prisma acestei definitii, transfom


arile unitare ale imaginilor (deci reprezentarea ntr-un spatiu
spectral) nu sunt filtr
ari; spectrul unei imagini, desi este echivalent acesteia din punct de vedere informational, nu are aceleasi caracteristici perceptuale.
4
Filtrul este un sistem de circuite electrice, sonore, etc. cu care se selecteaz
a dintr-un complex
de oscilatii cu frecvente diferite, oscilatiile cu frecventele cuprinse ntre anumite limite. (Dictionarul
Explicativ al Limbii Romne, 1995)
Filtrul este un dispozitiv ce amortizeaz
a selectiv oscilatiile cu anumite frecvente si nu afecteaz
a oscilatiile avnd alte frecvente. (Webster Encyclopedic Unabridged Dictionary, 1995)
Filtrul este un dispozitiv destinat favoriz
arii sau inhib
arii trecerii anumitor componente de frecventa
a unui semnal electric. (Larousse, 1994)

48

secvente de aceeasi lungime) si apoi transformat Fourier; ceea ce se obtine este r


aspunsul
n frecventa al filtrului. Figura 4.3 prezint
a r
aspunsul n frecventa a filtrului de mediere
aritmetic
a realizat cu un nucleu p
atrat, centrat de 3 x 3; se remarc
a comportamentul de
tip filtru trece jos. Acest comportament este leagt de efectul de blur al filtrului de mediere, pus n evidenta prin reducerea vizibilit
atii contururilor imaginii, si deci nl
aturarea
frecventelor nalte ce le sunt asociate.

Fig. 4.3: R
aspunsul n frecventa a unui nucleu 3 x 3 de mediere aritmetic
a.

4.3.2

Transformata Fourier rapid


a

Implementarea direct
a a relatiei de definitie a transform
arii Fourier discrete unidimen2
sionale (4.17) necesit
a evident N nmultiri complexe si N(N 1) adun
ari, ceea ce duce la
o complexitate O(N 2 ). Realizarea unei implement
ari mai rapide a transform
arii Fourier
(FFT - Fast Fourier Transform) a constituit unul dintre momentele cele mai importante
pentru domeniul prelucr
arii digitale a semnalelor. Tehnica initial
a a fost divizarea n
timp: cele N esantioane ale secventei se mpart n dou
a, dup
a indicii pari si respectiv
impari:
N1
2
u(n) exp(j kn) =
v(k) =
N
n=0
N/21

u(2n) exp(j
n=0

N/21

=
n=0

2
k 2n) +
N

N/21

u(2n + 1) exp(j
n=0

2k
2k
2k
u(2n) exp(j
2n) exp(j
2n)+exp(j
)
N/2
N
N

49

2
k(2n + 1)) =
N

N/21

u(2n+1) exp(j
n=0

2k
2n) =
N/2

N/21

=
n=0

2k
2k
upar (n) exp(j
n) + exp(j
)
N/2
N

N/21

uimpar (n) exp(j


n=0

2k
n) =
N/2

2k
)vimpar (k)
(4.24)
N
n (4.24) am notat cu upar secventa obtinut
a din toate valorile pare ale secventei initiale,
iar cu uimpar secventa obtinut
a din toate valorile impare ale secventei initiale. Aceast
a
relatie exprim
a posibilitatea construirii transform
arii Fourier a secventei u de lungime
N prin transform
arile Fourier ale unor jum
at
ati de secventa (de lungime N/2) vpar si
vimpar .
= vpar (k) + exp(j

Dac
a not
am cu T (N) timpul de calcul al transformatei Fourier a secventei de lungime
N , atunci avem:
N
T (N) = 2T
+N
(4.25)
2
n mod evident T (1) = 1 (transformata Fourier a secventei de lungime 1 este identic
a cu
secventa); dezvoltnd ecuatia recurent
a din (4.25) obtinem:
T (N ) = 2T

N
2

+ N = 2 2T

N
4

= ... = 2i T

+
N
2i

N
2

+ N = 4T

N
4

+ 2N =
(4.26)

+ iN

La limit
a, cnd i este ales astfel ca N = 2i vom avea:
T (N ) = NT (1) + N log2 N = N log2 N + N
ceea ce este echivalent cu o complexitate de O(N log N ). Sporul de vitez
a obtinut prin
FFT fata de implementarea clasic
a este deci proportional cu N/ log2 N (deci aproape un
ordin de m
arime pentru o lungime tipic
a de secventa N = 256).
Relatia de implementare de baz
a (4.24) mai poate fi scris
a si ca:
k
v(k) = vpar (k) + wN
vimpar (k), k = 0, ...,

N
1
2

(4.27)

N
, ..., N 1
2
ceea ce semnific
a faptul c
a dou
a valori ale transform
arilor Fourier ale secventelor pe
jum
atate sunt combinate liniar pentru a genera dou
a valori, simetrice fata de centru, ale
secventei originale. Blocul ce realizeaz
a aceste prelucr
ari este numit celul
a butterfly,
5
caracterizat de o operatie de nmultire-adunare (figura 4.4).
k
v(k) = vpar (k) wN
vimpar (k), k =

Operatia de multire-adunarte este una dintre operatiile de baz


a (cablate) din setul de instructiuni
al procesoarelor de semnal (DSP).

50

+wNk

vpar(k)

vimpar(k)

-wNk

v(k)
v(N/2+k)

Fig. 4.4: Celula de baz


a butterfly
Construind etapele succesive de njum
at
atire a lungimii secventei, pentru o secventa de
lungime N = 8 se ajunge la schema din figura 4.5. Se remarc
a reordonarea esantioanelor
secventei de intrare dup
a ordinea de bit invers
a bit-reverse (forma binar
a a noului indice
este forma binar
a a vechiului indice reflectat
a).
v(0)

u(0)
u(4)

w80

w80

w80

v(1)
v(2)

u(2)
u(6)

w80

u(1)
u(5)

w84

w81

v(4)

w80
w80

w82

u(3)
u(7)

w80

v(3)

w84

w83

Fig. 4.5: Schema FFT pentru o secventa de lungime 8.


Implement
arile clasice ale FFT folosesc o reordonare in-place a secventei de intrare (n
acelasi spatiu de memorie, prin interschimb
ari) pentru numere complexe (scrise n ordinea
parte real
a, parte imaginar
a). Acelasi cod este folosit att pentru transformata direct
a
ct si pentru transformata invers
a, doar prin modificarea unui parametru de semn ce
intervine la calculul coeficientilor Fourier wN . Rezultatul (transformata) ia locul datelor
51

v(5)
v(6)
v(7)

de intrare, n acelasi spatiu de memorie (deci din nou o implementare in-place). n


continuare prezent
am codul C din [13].
void fft(float data,integer nn,isign)
integer m,n,mmax,i,j,step;
n=nn<<1;
j=1;
for (i=1;i<n;i+=2){
if (j>i) {
swap(data[j],[data[i]);
swap(data[j+1],[data[i+1]);}}
m=n>>1;
while (m>=2 && j>m) {
j-=m;
m>>=1;}
j+=m;}
mmax=2;
while (n>mmax) {
step=2*mmax;
teta=2*PI/(isign*mmax);
wtemp=sin(teta/2);
wpr=-2*wtemp*wtemp;
wpi=sin(teta);
wr=1;
wi=0;
for (m=1;m<mm1x;m+=2) {
for (i=m;i<=n;i+=step) {
j=i+mmax;
tempr=wr*data[j]-wi*data[j+1];
tempi=wr*data[j+1]+wi*data[j];
data[j]=data[i]-tempr;
data[j+1]=data[i+1]-tempi;
data[i]+=tempr;
data[i+1]+=tempi;}
wr=(wtemp=wr)*wpr-wi*wpi+wr;
wi=wi*wpr+wtemp*wpi+wi;}
mmax=step;}
Prima parte a codului realizeaz
a reordonarea seceventei n ordinea invers
a de bit. n
partea a doua a codului se realizeaz
a calculul efectiv al celulelor butterfly, corespunznd
transform
arilor unor secvente de dimensiune mmax, si deci prelu
arii unor date situate la
52

distanta mmax ntre indici (vizibil si n schema din figura 4.5).


Transformata rapid
a bidimensional
a implic
a realizarea cte unei transform
ari unidimensionale pentru fiecare linie si coloan
a a imaginii (conform principiului separabilit
atii);
2
aceasta conduce la o complexitate O(N log N).

4.4

Alte transform
ari

n cele ce urmeaz
a vom prezenta pe scurt alte transform
ari unitare folosite n prelucrarea
imaginilor; aparitia acestora s-a datorat adapt
arii mai bune dect transformata Fourier
la compactarea energiei si decorelarea spectral
a a anumitor clase de semnale.

4.4.1

Transformata cosinus

Transformata cosinus este o transformat


a unitar
a separabil
a, caracterizat
a de A = B =
C. Elementele matricii C sunt date de
1
C(k, n) =
N

1, dac
ak=0

, n = 0, N 1
2 cos (2n+1)k
, dac
a k = 1, N 1
2N

(4.28)

Transform
arile direct
a si invers
a a unei secvente u sunt definite ca:
N1

u(n) cos

(2n + 1)k
, k = 0, N 1
2N

(4.29)

(k)v(k) cos

(2n + 1)k
, n = 0, N 1
2N

(4.30)

v(k) = (k)
n=0
N1

u(n) =
k=0

unde

1
(k) =
N

1,
k=0
2, k = 0

(4.31)

Una dintre propriet


atile importante ale transformatei cosinus se refer
a la leg
atura acesteia
cu transformata Fourier: transformata cosinus a unei secvente nu este partea real
a a
transformatei Fourier a aceleiasi secvente. Transformata cosinus se poate obtine prin
transformarea Fourier a unei secvente rearanjate sau a unei secvente dublate si simetrizate
central. Fie N par; si definim
N
u1 (n) = u(2n)
, n = 0, 1
u1 (N n 1) = u(2n + 1)
2
53

(4.32)

u2 (n) =

u(N n 1), 0  n < N


u(n N ), N  n < 2N

(4.33)

Aceasta nseamn
a c
a secventa u1 este u(0), u(2), u(4), ..., u(N 2), u(N 1), u(n 3), ...,
u(3), u(1), iar secventa u2 este u(N 1), u(N 2), ..., u(1), u(0), u(0), u(1), ..., u(N
2), u(n 1). Atunci:
COS(u) = Re (k) exp(

jk
) Fourier(u1 )
2N

(4.34)

k
), k = 0, ..., N 1
(4.35)
2N
O consecinta imediat
a a acestor relatii este posibilitatea realiz
arii unei transform
ari cosinus rapide (de complexitate O(N log N )) folosind transformata Fourier rapid
a.
COS(u) = Fourier(u2 ) exp(

O alt
a proprietate important
a a transformatei cosinus este accea c
a vectorii bazei cosinus
(coloanele matricii C) sunt vectori proprii pentru orice matrice simetric
a tridiagonal
a de
forma:

1
0
... ...
0

1
0
...
0

...
0

Q=
(4.36)
...

...
...
...
...
...

0
...
0
1
0
...
...
0

1
Dac
a not
am cu ck coloana k a matricii transform
arii cosinus, atunci:
Qck = k ck
Aceast
a proprietate revel
a faptul c
a transfomata cosinus se comport
a precum transformata Karhunen-Loeve pentru orice clas
a de semnale a c
aror matrice de covariatie este de
forma (4.36). Dar aceast
a form
a este tipic
a secventelor stationar Markov de ordinul 1,
cu parametru de corelatie mare ( 1), model adeseori folosit n cazul imaginilor. Deci
transformata cosinus este similar
a transform
arii optime de decorelare Karhunen-Loeve
pentru o clas
a larg
a de imagini naturale (alte comentarii referitoare la aceast
a proprietate si la aplicatiile ei practice se g
asesc n sectiunea 7.2.2, referitoare la compresia
imaginilor cu transformate).

4.4.2

Transformata sinus

Transformata sinus este o transformat


a unitar
a separabil
a, caracterizat
a de A = B = S.
Elementele matricii S sunt date de
S(k, n) =

2
(k + 1)(n + 1)
sin
, k, n = 0, N 1
N +1
N +1
54

(4.37)

Transform
arile direct
a si invers
a a unei secevente u sunt definite ca:
v(k) =

u(n) =

2
N +1
2
N +1

N1

u(n) sin

(k + 1)(n + 1)
, k = 0, N 1
N +1

(4.38)

v(k) sin

(k + 1)(n + 1)
, n = 0, N 1
N +1

(4.39)

n=0
N1

k=0

Una dintre propriet


atile importante ale transformatei sinus se refer
a la leg
atura acesteia
cu transformata Fourier: transformata sinus a unei secvente nu este partea imaginar
a
a transformatei Fourier a aceleiasi secvente. Transformata sinus se poate obtine prin
transformarea Fourier a extensiei antisimetrice a secventei. Fie N par; si definim
u(0) = u(N + 1) = 0
u(n) = u(N n) , n = 1, N
u(N + 2 + n) = u(n)

(4.40)

Aceasta nseamn
a c
a secventa u este 0, u(N1), u(N 2), ..., u(1), u(0), 0, u(0), u(1), ...,
u(N 1). Atunci
SIN(u) = Im j(1)k Fourier(u)
(4.41)
O consecinta imediat
a a acestei relatii este posibilitatea realiz
arii unei transform
ari sinus
rapide (de complexitate O(N log N)) folosind transformata Fourier rapid
a.
O alt
a proprietate important
a a transformatei sinus este aceea c
a vectorii bazei sinus
(coloanele matricii S) sunt vectori proprii pentru orice matrice simetric
a tridiagonal
a de
forma:

1
0 ... 0
1
0 ... 0

Q=
(4.42)
... ... ... ... ...
0

... 0 1

0
... 0 1
arii sinus, atunci:
Dac
a not
am cu sk coloana k a matricii transform
Qsk = k sk
Aceast
a proprietate revel
a faptul c
a transfomata sinus se comport
a precum transformata
Karhunen-Loeve pentru orice clas
a de semnale a c
aror matrice de covariatie este de forma
(4.42). Dar aceast
a form
a este tipic
a secventelor stationar Markov de ordinul 1, cu
parametru de corelatie [0.5; 0.5].

55

Capitolul 5
A
FILTRAREA NELINIARA
IMAGINILOR
Operatiile de filtrare studiate pn
a n prezent au fost caracterizate esential (din punct de
vedere matematic) de c
atre principiul liniarit
atii (sau superpozitiei). Istoric, acestea au
fost primele operatii utilizate, avnd un suport teoretic solid si desigur, avnd mai multe
caracteristici utile. O mare parte a aplicatiilor curente de prelucrare a imaginilor probabil
c
a se pot rezolva suficient de precis folosind doar operatii liniare. Limit
arile operatiilor
liniare de filtrare apar ns
a n momentul n care se consider
a zgomote ce nu au distributie
normal
a, si, mai mult, nu mai sunt aditive.
Exemplul cel mai simplu de astfel de zgomot este zgomotul impulsiv, caracterizat de impulsuri pozitive si negative de amplitudine maxim posibil
a (relativ la num
arul de nivele de
cuantizare ale imaginii) care afecteaz
a prin nlocuire o parte din pixelii imaginii. Aceasta
nseamn
a c
a imaginea va fi uniform acoperit
a de puncte foarte nchise (negre) si foarte
deschise (albe), rezultatul fiind ceea ce se numeste zgomot de tip sare si piper (vezi
figura 5.1). Asemenea erori apar n portiunile de achizitie si transmisiune ale sistemului de prelucrarea si analiza imaginilor (din cauza erorilor n convertorul analog-digital,
din cauza erorilor de nregistrare pe mediile magnetice de stocare sau de pe canalul de
transmisiune); este posibil ca asemenea valori s
a apar
a si ca urmare a unui zgomot aditiv
caracterizat de o distributie cu coad
a lung
a - deci care asigur
a probabilit
ati nenule de
aparitie a unor valori mult diferite de medie. Aceste valori aberante (mult mai mari sau
mai mici dect valorile normale ale regiunii n care apar) sunt numite outlier: valori
extreme sau erori grosiere.
Dac
a o asemena imagine ar fi filtrat
a liniar (cu un filtru de mediere sau poate cu un filtru
de reliefare) rezultatul ar fi o accentuare a punctelor de zgomot si o corupere a punctelor
cu valori corecte din jurul lor.
Zgomotul impulsiv nu este singurul model de degradare neliniar
a: exist
a zgomote de56

Fig. 5.1: Imagine afectat


a de zgomot impulsiv; 10% dintre pixeli au valorile modificate
pendente de valoarea imaginii din pixelul afectat, precum si compuneri neaditive ale
zgomotului cu imaginea original
a (multiplicativ
a, convolutiv
a) [9].
Este deci evident c
a se impune considerarea si a altor metode de filtrare, care nu mai
respect
a principiul superpozitiei, si deci sunt neliniare. O clas
a esential
a de astfel de
metode de filtrare sunt cele bazate pe ordonare - rank order filtering [12]. Ideea esential
a
este aceea c
a operatia de ordonare plaseaz
a valorile aberante (extremale) la capetele
sirului de valori (deci ntr-o zon
a bine definit
a), permitnd astfel identificarea si eliminarea
acestora.

5.1

Filtrarea de ordine

Filtrele de ordine sunt operatori locali: filtrul este definit de o fereastr


a (masc
a), care
selecteaz
a din imaginea de prelucrat un num
ar de vecini ai pixelului curent (se respect
a
deci acelasi model de prelucrare al ferestrei glisante, ntlnit si la filtr
arile liniare n
domeniul spatial). Valorile selectate de fereastra de filtrare sunt apoi ordonate cresc
ator;
dac
a valorile selectate de o fereastr
a cu n pozitii sunt {x1 , x2 , ..., xn }, atunci acelasi set
de valori, ordonate cresc
ator este {x(1) , x(2) , ..., x(n) }. Valorile x(i) se numesc statistici de
ordine de ordinul i si au proprietatea
x(1)  x(2)  ...  x(n)

(5.1)

n mod evident statistica de ordinul 1, x(1) , este valoarea minim


a, iar statistica de ordinul
a.
n, x(n) , este valoarea maxim
Iesirea filtrului de ordine de ordin k este statistica de ordinul k, cu k [1; n]:
rankk {x1 , x2 , ..., xn } = x(k)
57

(5.2)

n acest fel, iesirea unui filtru de ordine este una dintre valorile selectate de fereastra de
filtrare, si deci nu se creaz
a la iesire valori noi (asa cum se ntmpl
a la filtrarea liniar
a);
acesta este un avantaj att n ceea ce priveste p
astrarea valorilor originale din imagine,
ct si din punctul de vedere al simplific
arii calculelor (nu mai sunt necesare operatii cu
numere reale, ce trebuie apoi rotunjite sau truncheate la numere naturale).
Filtrele de ordine nu sunt liniare din cauza operatiei de ordonare (ce nu respect
a principiul
superpozitiei); n general putem scrie:
rankk {x1 + y1 , x2 + y2 , ..., xn + yn } = rankk {x1 , x2 , ..., xn } + rankk {y1 , y2 , ..., yn } (5.3)
Filtrele de ordine comut
a ns
a cu operatiile de modificare liniar
a a valorilor:
rankk {x1 + , x2 + , ..., xn + } = rankk {x1 , x2 , ..., xn } +

(5.4)

Din punct de vedere statistic, intereseaz


a functiile de distributie ale iesirii filtrului (functie
de densitate de probabilitate, functie de repartitie) atunci cnd functiile de distributie
ale valorilor de intrare sunt presupuse cunoscute. Modelul folosit n general se bazeaz
a pe
ipoteza de independenta si distributie identic
a a valorilor selectate de fereastra filtrului
(ceea ce conduce, implicit, la ipoteza c
a valorile pixelilor imaginii sunt variabile aleatoare
independente, identic distribuite1 ). Dac
a not
am cu f (x) si F (x) functiile de densitate
de probabilitate si respectiv repartitie a valorilor pixelilor din imaginea ce se filtreaz
a cu
un filtru de ordine de ordin k cu fereastr
a de n elemente, atunci ceea ce intereseaz
a este
functia de densitate de probabilitate a iesirii filtrului de ordine, fk (x).
Fie t o valoare oarecare din domeniul de variatie al variabilelor aleatoare; atunci probabilitatea evenimentului ca iesirea filtrului de ordine s
a se g
aseasc
a n intervalul [t; t + dt]
este fk (t)dt. Evenimentul de interes este deci

adic
a

t  rankk {x1 , x2 , ..., xn }  t + dt

(5.5)

t  x(k)  t + dt

(5.6)

Statisticile de ordine sunt obtinute prin ordonarea cresc


atoare a valorilor xi , ordonare
cresc
atoare care poate fi interpretat
a ca o permutare oarecare a indicilor valorilor ({1, 2, ..., n}
{i1 , i2 , ..., in }). n acest caz, evenimentul de interes exprimat de (5.6) este realizat
prin mai multe evenimente elementare de tipul:
xi1 , xi2 , ..., xik1  t  xik  t + dt  xik+1 , ..., xin

(5.7)

Probabilitatea evenimentului elementar din (5.7) este dat


a de probabilitatea ca k 1
k1
valori s
a fie mai mici dect t (deci F (t)), probabilitatea ca n k valori s
a fie mai mari
1

Aceast
a ipotez
a a mai fost f
acut
a si pentru deducerea transform
arii de egalizare a histogramei
imaginilor.

58

ca t + dt (deci (1 F (t))nk ) si probabilitatea ca o valoare s


a fie cuprins
a n intervalul
[t; t + dt] (deci f (t)dt), adic
a:
P = F k1 (t)(1 F (t))nk f (t)dt

k1
(n moduri de alege o valoare din
Num
arul total de evenimente de tipul (5.7) este nCn1
k1
cele n, la fiecare dintre aceste alegeri corespunznd Cn1
moduri de a alege din cele n 1
valori r
amase k 1 valori care s
a fie mai mici ca t). Atunci:
k1 k1
Pr t  x(k)  t + dt = nCn1
F (t)(1 F (t))nk f (t)dt

(5.8)

si deci functia de densitate de probabilitate a iesirii filtrului de ordine de ordin k este:


k1 k1
fk (x) = nCn1
F (x)(1 F (x))nk f(x)

(5.9)

n [12] sunt prezentate diferite utiliz


ari ale functiei de densitate de probabilitate a iesirii
filtrelor de ordine, mai ales pentru determinarea comport
arii asimptotice (n ) a
filtrelor.
Propriet
atile deterministe ale filtrelor de ordine se refer
a la comportamentul acestora
n zonele tipice ale unei imagini: portiuni netede si contururi. Filtrele de ordine nu
afecteaz
a contururile (zonele de pant
a abrupt
a) si p
asteaz
a valoarea zonelor uniforme.
Aceste comport
ari au fost extinse la investigarea clasei mai generale de semnale r
ad
acin
a
- semnale ce nu sunt modificate prin filtrare.
Orice secventa {xi } monoton
a (cresc
atoare sau descresc
atoare) este un semnal r
ad
acin
a
pentru filtrele de ordine. n plus, filtrele de ordine comut
a cu orice functie monoton
a g:
rankk (g(xi )) = g(rankk (xi ))
Pe lng
a metodele analitice de construire a semnalelor r
ad
acin
a [12], n practic
a, semnalele
r
ad
acin
a se obtin prin filtrarea repetat
a a unui semnal oarecare, pn
a la obtinerea invariantei. S
a consider
am spre exemplu secventa unidimensional
a x = {0, 1, 1, 3, 1, 3, 2, 3, 3, 2,
1, 1} pe care o vom filtra cu o fereastr
a de filtrare de dimensiune 3, centrat
a, cu un filtru de
ordine de ordin 2. Dup
a prima filtrare se obtine secventa x1 = {0, 1, 1, 1, 3, 2, 3, 3, 3, 2, 1, 1, 0},
iar dup
a a doua filtrare se obtine secventa x2 = {0, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 1, 0}. Aceast
a
secventa este invariant
a la filtr
arile urm
atoare si este deci un semnal r
ad
acin
a. Figura
5.4 prezint
a secventele x, x1, x2.

5.1.1

Filtrul median

Filtrul median este un filtru de ordine a c


arui iesire este statistica de ordine de ordin
central a setului de valori selectate de fereastra de filtrare.
x( n+1 ) dac
a n este impar
2
median{x1 , x2 , ..., xn } =
(5.10)
1
1
x
+ 2 x( n +1) dac
a n este par
2 (n)
2

59

4
3
2
1
0

10

12

14

Fig. 5.2: Semnal initial oarecare; prin filtr


ari de ordine repetate acesta se va transforma
ntr-un semnal r
ad
acin
a.

2
0
0

10

12

14

Fig. 5.3: Rezultatul primei filtr


ari a secventei initiale.

0
0

10

12

14

Fig. 5.4: Semnal r


ad
acin
a al filtrului de ordine considerat, obtinut dup
a dou
a iteratii ale
filtr
arii.

60

Iesirea filtrului median este deci valoarea din centrul secventei ordonate; n cazul secventelor
(ferestrelor de filtrare) de dimensiune par
a, aceast
a pozitie central
a nu exist
a, si atunci
este definit
a ca media aritmetic
a a valorilor vecine centrului imaginar. n practic
a, filtrul
median se foloseste doar cu ferestre de filtrare de dimensiune impar
a, ceea ce conduce la
posibilitatea de a scrie:
median{x1 , x2 , ..., xn } = rank n+1 {x1 , x2 , ..., xn }
2

(5.11)

Aceasta nseamn
a c
a dac
a fereastra de filtrare are 3 puncte, medianul este statistica de
2
ordinul 2 , pentru o fereastr
a filtrare cu 9 puncte, medianul este statistica de ordinul 5,
iar pentru o fereastr
a de filtrare de 25 de puncte, medianul este statistica de ordinul 13.
Figura 5.5 prezint
a rezultatul filtr
arii cu un filtru median cu fereastr
a p
atrat
a de 3 x 3
puncte a imaginii degradate cu zgomot impulsiv din figura 5.1.

Fig. 5.5: Imagine filtrat


a cu filtru median cu fereastr
a de 3 x 3.
Efectele de filtrare a zgomotului impulsiv (de tip sare si piper) sunt evidente; valorile
punctelor de zgomot sunt 0 sau 255 si deci, dup
a ordonare se vor afla la capetele sirului
de valori; iesirea filtrului median, fiind statistica de ordin central, este situat
a departe
de valorile extreme. n imaginea filtrat
a median (figura 5.5) se observ
a totusi existenta
unor puncte albe si negre (puncte de zgomot) ce nu au putut fi eliminate prin filtrare;
spunem c
a n acele pozitii filtrul a fost str
apuns de impulsuri (care deci au ajuns la
iesirea filtrului). Probabilitatea de str
apungere a unui filtru median este dependent
a de
procentul de puncte de zgomot din imagine si de dimensiunea ferestrei de filtrare folosite.
Str
apungerea filtrului median se produce atunci cnd n fereastra de filtrare avem m
acar
n+1
impulsuri
de
zgomot
de
aceea
s
i
valoare.
2
O variant
a a filtrului median cu fereastr
a de filtrare p
atrat
a este filtrul median separabil.
Separabilitatea semnific
a (ca si n cazul transform
arilor unitare) realizarea operatiei nti
2

Aceasta nseamn
a deci c
a exemplul de construire a semnalului r
ad
acin
a prezentat anterior este realizat pentru un filtru median.

61

pe linii, si apoi pe coloanele imaginii, pe baza unor ferestre de filtrare liniare. Este
evident c
a rezultatul acestei operatii de filtrare nu coincide cu rezultatul filtr
arii mediane
3
cu fereastr
a p
atrat
a (figura 5.6 prezint
a rezultatul filtr
arii mediane separabile cu ferestre
de dimensiune 3 a imaginii cu zgomot impulsiv din figura 5.1; rezultatul filtr
arii mediane
cu fereastr
a p
atrat
a 3 x 3 este prezentat n figura 5.5).

Fig. 5.6: Rezultatul filtr


arii cu un filtru median separabil.
Se remarc
a faptul c
a aceast
a structur
a de filtrare, desi prezint
a avantaje din punctul
de vedere al timpului de calcul necesar, se str
apunge mai usor dect filtrul median cu
fereastr
a p
atrat
a din care a derivat.

5.1.2

Filtrele de ordine ponderate si structurile multietaj

Att filtrele liniare ct si filtrele de ordine se bazeaz


a pe acelasi principiu al ferestrei
glisante. Prelucr
arile realizate asupra valorilor selectate de aceast
a fereastr
a de filtrare
sunt evident diferite, dar se poate totusi remarca faptul c
a structura de filtrare liniar
a
permite o flexibilitate mai mare (se pot realiza un num
ar infinit de filtre liniare pentru o
aceeasi fereastr
a de filtrare, prin varierea coeficientilor de ponderare). Singurul factor de
reglaj al filtrelor de ordine este ordinul statisticii selectate la iesire4 .
Este evident c
a ponderarea filtrelor de ordine nu se poate face prin multiplicarea valorilor selectate de fereastra de filtrare cu diferiti coeficienti, asa ca n cazul filtrelor liniare.
3

Filtrul de minim (filtrul de ordine de ordin 1) si filtrul de maxim (filtrul de ordine de ordin n) sunt
singurele filtre de ordine separabile.
4
Zamperoni a propus adaptarea ordinului statisticii folosite ca iesire a filtrului de ordine prin k =
1
2

+
i=1

x(i) x(1)
x(n) x(1)

62

Ponderarea are ca scop nt


arirea influentei anumitor pixeli din fereastra de filtrare (de
exemplu pixelul central - curent prelucrat - care ar fi de asteptat ca s
a aib
a o influenta
mai puternic
a asupra rezultatului filtr
arii dect vecinii s
ai). Avnd n vedere c
a rezultatul filtr
arii (deci valoarea unei anumite statistici) este determinat
a n urma ordon
arii,
modalitatea de a nt
ari influenta unei anume valori este de a o repeta de mai multe ori,
crescnd astfel probabilitatea de a o reg
asi ca statistica de ordin dorit. Asadar, ponderarea filtrelor de ordine se refer
a la repetarea de un num
ar fixat de ori a valorilor selectate
de fereastra de filtrare. Multimea de valori ce rezult
a se numeste multiset. Ponderile wi
atasate fiec
arei pozitii de filtrare vor fi numere naturale nenule, ce exprim
a num
arul de
repetitii al valorii corespunz
atoare n multiset.
Spre exemplu s
a consider
am portiunea de
selectat
a de o fereastr
a de filtrare de
imagine
1 3 3
dimensiune 3 x 3, ale c
arei valori sunt 2 2 1 ; statistica median
a ce corespunde
4 3 5
acestei situatii este 3 (setul ordonat de valori fiind
3, 3, 3, 4, 5). Dac
a consider
am
1, 1, 2, 2,
1 2 1
acum filtrul median ponderat cu masca W = 2 3 2 , multisetul rezultant este 1,
1 2 1
3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 4, 3, 3, 5 (sau ordonat 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 5)
ceea ce face ca medianul s
a fie 2 (si deci o valoare mai apropiat
a de valoarea original
a din
punctul curent prelucrat). Masca de ponderare W semnific
a faptul c
a valoarea central
a
este repetat
a de 3 ori, valorile de pe pozitiile vecinilor imediati (orizontali si verticali)
sunt repetate de cte 2 ori, iar valorile de pe pozitiile vecinilor de pe diagonal
a sunt
considerate o singur
a dat
a. Filtrul de ordine rezultat se poate scrie ca:
rankk (xi wi ) = x(k)
n

Este evident c
a multisetul de valori contine

wi termeni, si deci ordinul statisticii


j=1

maxime este

wi , iar ordinul statisticii mediane este


j=1

1
2

wi + 1

(presupunnd un

j=1

num
ar impar de valori n multiset). Un caz particular destul de des utilizat este acela al
filtrelor de ordine central ponderate, n care toti coeficientii de ponderare (repetitie) sunt
1, cu exceptia coeficientului ce corespunde pixelului curent prelucrat, ce are o valoare mai
mare ca 1.
Structurile multietaj grupeaz
a cteva filtre de ordine (median, minim, maxim) aplicate
succesiv, cu ferestre de filtrare diferite. Cele mai r
aspndite structuri sunt cele de tip
median multietaj (median din median pe orizontal
a, median pe vertical
a si valoarea
curent
a), reprezentat n figura 5.8 si max/min-median (maxim sau minim din medianele
pe vertical
a, orizontal
a si cele dou
a diagonale ale ferestrei de filtrare p
atrate centrate n
punctul curent prelucrat), reprezentat n figura 5.7.
63

Fig. 5.7: Structr


a multietaj de tip max / min - median, bazat
a pe o fereastr
a de filtrare
de dimensiune 3.

Fig. 5.8: Structur


a de filtrare de tip median - median, bazat
a pe o fereastr
a de filtrare
p
atrat
a de dimensiune 3.

64

5.2

Filtre de ordine de domeniu

Filtrele de ordine de domeniu (filtre LUM Lower-Upper-Middle [18]) introduc o posibilitate de adaptare si reglare a filtrelor de ordine.
Valoarea y de iesire a filtrului LUM de netezire este definit
a ca:

a x < x(k)
x(k) , dac
x
, dac
a x > x(nk+1)
y=
(nk+1)
x , n rest

(5.12)

unde x este valoarea ce corespunde originii ferestrei de filtrare cu n pozitii, iar k este
parametrul de reglaj al filtrului. Valoarea k este un ntreg din intervalul [0; n+1
]; dac
a
2
n+1

k = 0 filtrul de comport
a ca un filtru trece tot (y = x ), iar dac
a k = 2 , filtrul este un
filtru median (y = x( n+1 ) ).
2

Valoarea y de iesire a filtrului LUM de conturare este definit


a ca:

x +x
a x(l) < x < (l) 2(nl+1)
x(l) , dac
x +x
y=
x
, dac
a (l) 2(nl+1) < x < x(nl+1)
(nl+1)
x , n rest

(5.13)

unde x este valoarea ce corespunde originii ferestrei de filtrare cu n pozitii, iar l este
parametrul de reglaj al filtrului. Valoarea k este un ntreg din intervalul [0; n+1
]; dac
a
2
l = 0 filtrul de comport
a ca un filtru de reliefare extrem
a, iar dac
a l = n+1
,
filtrul
este
2
un filtru trece tot (y = x ).

5.3

L-filtre

L-filtrele [12] au fost introduse din dorinta de a oferi o mai mare flexibilitate operatiilor
de filtrare neliniar
a bazate pe ordonare; pasul firesc de dezvoltare a fost combinarea
tuturor statisticilor de ordine n valoarea de la iesirea filtrului. Iesirea unui L-filtru este
o combinatie liniar
a a statisticilor de ordine:
n

L({x1 , x2 , ..., xn }) =

wi x(i)

(5.14)

i=1

Este evident c
a prin varierea coeficientilor wi se pot obtine diferite filtre, inclusiv filtrele
de ordine (un singur coeficient egal cu 1, iar restul nuli). Coeficientii celor mai uzuale
L-filtre sunt prezentati n tabelul 5.1

65

Filtru
Filtru de ordine de ordin k, rankk
Filtru de mediere aritmetic
a
Filtru de mijloc
Filtru de cvasi-mijloc
Medie -reglabil
a

Coeficienti
ak = 1, ai = 0, i = k
ai = 1/n
a1 = an = 0.5, ai = 0, i
/ {1, n}
ak = an+1k = 0.5, ai = 0, i
/ {k, n + 1 k}
ak = 1/n(1 2), i [n + 1; n n]
ai = 0, i
/ [n + 1; n n]

Tabel 5.1: Coeficientii celor mai uzuale L-filtre.


Se poate demonstra cu usurinta c
a coeficientii L-filtrelor trebuie s
a ndeplineasc
a aceleasi
conditii de normare ca si coeficientii filtrelor liniare: s
a aib
a suma 1 pentru un filtru de
netezire (conform (3.8)) si suma 0 pentru un filtru de reliefare (conform (3.9)). Toate
filtrele prezentate n tabelul 5.1 sunt deci filtre de netezire, al c
aror scop este m
arirea
uniformit
atii regiunilor imaginii prin eliminarea diferitelor zgomote suprapuse acesteia.
Tabelul 5.2 prezint
a filtrele cele mai potrivite pentru eliminarea diferitelor tipuri de zgomote.
Tip zgomot
impulsiv (sare si piper)
gaussian
impulsiv + gaussian
uniform

Filtru
filtru de
filtru de
filtru de
filtru de

ordine (median, maxim, minim)


mediere aritmetic
a
tip medie -reglabil
a
mijloc

Tabel 5.2: L-filtre utilizate pentru reducerea diferitelor tipuri de zgomote.

Un exemplu de filtru de reliefare (cu comportare derivativ


a, care s
a satisfac
a deci (3.9))
este gradientul morfologic diferenta ntre valoarea maxim
a si minim
a din fereastra de
filtrare curent
a:
grad{x1 , x2 , ..., xn } = x(n) x(1)
Folosirea unui asemenea operator produce o imagine n care valoarea fiec
arui pixel este
invers proportional
a cu gradul de uniformitate (netezime) al vecin
at
atii acestuia (vezi
figura 5.9).

5.4

Aspecte de implementare

Implementarea filtrelor neliniare de ordine sau a L-filtrelor urmeaz


a aceleasi principii
ca si oricare tehnic
a de tip fereastr
a glisant
a (ca filtrarea liniar
a) n ceea ce priveste
66

Fig. 5.9: Operatorul gradient morfologic aplicat imaginii filtrate din figura 5.5.
problemele legate de realizarea formei ferestrei de filtrare si efectele de margine. Ceea ce
este particular filtrelor din aceast
a categorie este etapa de ordonare a valorilor selectate
de fereastra de filtrare n fiecare pozitie.
n teoria algoritmilor au fost dezvoltati numerosi algoritmi de sortare (ordonare cresc
atoare), a c
aror complexitate de calcul variaz
a de la O(n2 ) (bubble sort, sortare prin determinare succesiv
a de extreme), O(n log n) (sortare prin interclasare sau insertie) pn
a la
O(n) (pentru determinare doar a extremelor si a statisticii mediane). Trebuie ns
a remarcat c
a o metod
a de sortare de complexitate O(n2 ) nu este neap
arat mai neeficient
a dect
o metod
a de sortare O(n): complexitatea unui algoritm exprim
a comportarea asimptotic
a a num
arului de operatii necesare, n conditiile n care dimensiunea caracteristic
ana
setului de date ce se prelucreaz
a este foarte mare (la limit
a n ). Sort
arile folosite n
implementarea filtrelor neliniare de ordine prelucreaz
a seturi mici de date (s
a nu uit
am c
a
rareori o fereastr
a de filtrare dep
aseste dimensiunea de 25 de pixeli), si deci complexitatea
O() nu este un criteriu valid de alegere a unui algoritm de sortare.
Codul Matlab ce urmeaz
a implementeaz
a un L-filtru cu o fereastr
a p
atrat
a de dimensiune
3 x 3, centrat
a; ponderile filtrului sunt stocate n vectorul w (1 linie, 9 coloane, prima
pozitie corespunznd coeficientului statisticii minime). L-filtrul este aplicat imaginii in
(de dimensiuni nrlin si nrcol); efectele de margine sunt evitate prin neprelucrarea primei
si ultimei linii, respectiv coloane a imaginii. Rezultatul este nscris n imaginea out.
[nrlin,nrcol]=size(in);
out=in;
for i=2:nrlin-1
for j=2:nrcol-1
temp=in(i-1:i+1,j-1:j+1);
temp=sort(temp(:));
67

out(i,j)=fix(w*temp);
end
end
Se remarc
a folosirea functiei standard sort ce realizeaz
a operatia de ordonare cresc
atoare
a valorilor; iesirea L-filtrului este produsul scalar al vectorului de coeficienti ai filtrului
cu vectorul statisticilor de ordine.
n cele ce urmeaz
a vom considera un exemplu de implementare a unui filtru cu ordonare
dup
a rang relizat cu o fereastr
a centrat
a de 3 x 3 pixeli, pentru filtrarea unei imagini
cu NRLIN linii si NRCOL coloane; prima si ultima linie si coloan
a sunt identice cu cele
din imaginea ce se filtreaz
a (remarcati buclele for de alocare a spatiului pentru imaginea
filtrat
a si initializarea valorilor acesteia).
unsigned char temp[9],dummy;
boolean sortat;
img_out=(int**)malloc(NRLIN*sizeof(int*));
for (i=0;i<NRLIN;i++)
img_out[i]=(int*)malloc(NRCOL*sizeof(int));
for (i=0;i<NRCOL;i++)
{ img_out[0][i]=img[0][i];
img_out[NRLIN-1][i]=img[NRLIN-1][i];}
for (i=0;i<NRLIN;i++)
{ img_out[i][0]=img[i][0];
img_out[i][NRCOL-1]=img[i][NRCOL-1];}
for (i=1;i<NRLIN-1;i++)
for (j=1;j<NRCOL-1;j++)
{ for (k=0;k<9;k++)
temp[k]=img[i-1+k/3][j-1+k%3];
sortat=false;
while (! sortat) do
{ sortat=true;
for (k=0;k<8;k++)
if (temp[k]>temp[k+1])then
{ dummy=temp[k+1];
temp[k+1]=temp[k];
temp[k]=dummy;
sortat=false;
}
}
img_out[i][j]=temp[5];
}

68

Valorile selectate de fereastra de filtrare sunt stocate n vectorul de 9 pozitii temp. Citirea
acestor valori se face printr-un ciclu, bazndu-se pe introducerea unei relatii de echivalenta
ntre ordinea de baleiaj a ferestrei si pozitia valorilor n vector (economia nu este de timp
de executie ci de timp de scriere a codului). Aceast
a alocare este echivalent
a cu liniile de
cod:
temp[0]=img[i-1][j-1];temp[1]=img[i-1][j];
temp[2]=img[i-1][j+1];temp[3]=img[i][j-1];
temp[4]=img[i][j];temp[5]=img[i][j+1];
temp[6]=img[i+1][j-1];temp[7]=img[i+1][j];
temp[8]=img[i+1][j+1];
Sortarea implementat
a este de tip bubble sort; fiecare pozitie a vectorului ce contine
valorile extrase de fereastra de filtrare este comparat
a cu pozitia urm
atoare, iar dac
a
ordinea cresc
atoare nu este respectat
a, cele dou
a valori sunt interschimbate; indicatorul
sortat indic
a efectuarea a m
acar unei interschimb
ari, si deci necesitatea relu
arii verific
arii
ordinii. Filtrul de ordine folosit este medianul (se preia n imaginea rezultat statistica de
ordine cu num
arul 5, deci statistica median
a).
Structura de program folosit
a anterior realizeaz
a ordonarea vectorului de valori pentru
fiecare pozitie a ferestrei de filtrare; o serioas
a economie de timp se poate realiza dac
a se
tine seama c
a la mutarea ferestrei de filtrare de la un pixel al imaginii la un pixel vecin
acestuia, se modific
a un num
ar relativ mic de valori (restul r
amnnd neschimbate).
Aceasta poate conduce la ideea p
astr
arii unei p
arti a setului de valori ordonate, n care
s
a se intercaleze valorile noi.
O alt
a variant
a de determinare a statisticilor de ordine se bazeaz
a pe folosirea histogramei
valorilor din fereastra de filtrare. Histograma (2.10) reprezint
a num
arul de puncte ce au
o anumit
a valoare si este echivalent
a cu functia de densitate de probabilitate a unei
variabile aleatoare. Pentru aceeasi varibil
a aleatoare exist
a ns
a si functia de repartitie
primitiva functiei de densitate de probabilitate; asadar putem asocia oric
arei histograme
h o histogram
a cumulativ
a (5.15):
i

H(i) =
j=0

h(j), cu i = 0, 1, ..., L 1

(5.15)

Histograma cumulativ
a n punctul i va reprezenta deci num
arul de puncte (pixeli) a
c
aror valoare (nivel de gri) este mai mic
a dect i. Determinarea valorii statisticilor de
ordine pentru un set de valori pe baza histogramei acestora este imediat
a. S
a consider
am
urm
atorul exemplu: setul de valori selectate de fereastra de filtrare este {1, 2, 3, 3,
4, 0, 1, 1, 2, 1, 1, 0, 0, 1, 2, 7, 7, 6, 0, 1, 6, 6, 5, 5, 0}(valori din intervalul 07).
Histograma acestui set este h = 5 7 3 2 1 2 3 2 iar histograma cumulativ
a
este H = 5 12 15 17 18 20 23 25 . Atunci statisticile de ordine de ordin 15
69

(H(0)) au valoarea 0, statisticile de ordine de ordin 6 (H(0) + 1) 12 (H(1)) au valoarea


1, statisticile de ordine de ordin 13 (H(1) + 1) 15 (H(2)) au valoarea 2, statisticile de
ordine de ordin 16 (H(2) + 1) 17 (H(3)) au valoarea 3, statistica de ordine de ordin 18
(H(3) +1 = H(4)) are valoarea 4, statisticile de ordine de ordin 19 (H(4) +1) 20 (H(5))
au valoarea 5, statisticile de ordine de ordin 21 (H(5) + 1) 23 (H(6)) au valoarea 6,
statisticile de ordine de ordin 24 (H(6) + 1) 25 (H(7)) au valoarea 7. Regula de decizie
general
a este: statisticile de ordine de ordin H(j 1) + 1 pn
a la H(j) au valoarea j, cu
j = 0, 1, 2, ..., L 1 si H(1) = 0.
Deci, pentru o statistic
a oarecare de ordin r, trebuie identificat num
arul j astfel ca:
H(j 1) + 1  r  H(j)

(5.16)

Problemele ce apar la o asemenea implementare sunt legate n primul rnd de timpul de


determinare a num
arului j ce satisface (5.16), timp ce este direct proportional cu num
arul
de nivele de gri din imagine (si deci lungimea vectorului histogram
a sau histogram
a
cumulativ
a). Se poate ns
a observa c
a histograma ntr-o fereastr
a de filtrarea va selecta
relativ putine valori diferite, si atunci histograma va fi un vector rar (sparse), cu multe
intr
ari nule, iar histograma cumulativ
a va avea, corespunz
ator, multe portiuni constante.
n aceste conditii, o reprezentare mai eficient
a (att ca memorie ocupat
a, ct si ca timp de
c
autare) este memorarea doar a tranzitiilor (pozitie, valoare) din histograma cumulativ
a,
adic
a doar memorarea histogramei.

70

Capitolul 6
ELEMENTE DE MORFOLOGIE

MATEMATICA
n mod traditional, prelucrarea semnalelor multidimensionale (si a imaginilor n particular) a fost bazat
a pe exploatarea conceptelor si teoriei sistemelor liniare si a transformatei
Fourier ([9], [2]). Desi aceste abord
ari clasice sunt justificate si dau rezultate n multe
cazuri, aplicarea lor este limitat
a de problema fundamental
a impus
a de semnalele de
tip imagine: modul de reprezentare a formei sau structurii geometrice existente ntr-un
semnal.
Morfologia matematic
a, dupa cum indic
a si numele (morphos form
a, logos stiinta, deci
stiinta formelor), realizeaz
a o abordare axat
a pe form
a a prelucr
arii imaginilor. Folosit
a
corespunz
ator, morfologia matematic
a conduce la prelucr
ari ce simplific
a structura imaginii, p
astrnd caracteristicile esentiale de form
a si eliminnd irelevantele.
Ideea de baz
a a oric
arei prelucr
ari morfologice este considerarea imaginii ca un ansamblu
(multime, reuniune de p
arti) asupra c
aruia se aplic
a transform
ari a c
aror esenta este
comparatia cu multimi (ansambluri) mai simple, numite elemente structurante. Scopul
acestor transform
ari este extragerea de forme mai simple din formele initiale (complexe)
ale imaginii.
Morfologia matematic
a este utilizat
a ca o abordare natural
a a proceselor de vedere artificial
a, deoarece tr
as
aturile si respectiv identificarea obiectelor sunt corelate cu forma.
Principalele aplicatii sunt n domeniile roboticii, microscopiei electronice, imagisticii biomedicale, telemetriei, inspectiei automate a produselor, analizei de scen
a. Aplicatiile
industriale sunt impulsionate si de continua dezvoltare si mbunatatire a arhitecturilor
de calcul ce implementeaz
a transform
ari morfologice.

71

6.1
6.1.1

Transform
ari morfologice de baz
a
Transformarea Hit or Miss

Transformarea Hit or Miss a fost introdus


a n [14] si reprezint
a poate cea mai primar
a
si evident
a exemplificare a conceptului de studiu al formei. Orice form
a poate fi considerat
a ca o reuniune de componente (blocuri, regiuni, scheme) individuale independente,
plasate n diverse pozitii; a recunoaste forma implic
a identificarea local
a a p
artilor sale
componente si deci o operatie simpl
a de potrivire de m
asti (pattern matching).
Rezultatul aplic
arii acestei transform
ari de identificare (numit
a uneori si transformarea
totul sau nimic) este o multime ale c
arei puncte satisfac criteriul de identificare a unei
vecin
at
ati cu masca aplicat
a.
Transformarea Hit or Miss se defineste pe baza unei partitii (B1 , B2 ) a elementului
structurant B: B = B1 B2 si B1 B2 = ca:
A U B = {x|(B1 )x A} {x|(B2 )x AC }

(6.1)

n (6.1) A este multimea c


areia i se aplic
a transformarea, AC este complementara multimii
A, B este elementul structurant si (Bi )x este multimea Bi translatat
a cu vectorul x.
Trebuie remarcat faptul c
a oric
arui element structurant trebuie s
a i se ataseze o origine.
Figura 6.1 prezint
a o exemplificare a transform
arii Hit or Miss.
Se poate observa c
a aceast
a transformare produce ca rezultat o multime de puncte ce
satisfac concomitent un set de conditii de tipul (Bi )x Ai , unde {Ai } formeaz
a o partitie
a spatiului.
Este evident c
a {A, AC } formeaz
a o partitie, dar aceasta nu este singura posibil
a. Anumite aplicatii practice pot impune ns
a situatii mai complexe, a c
aror rezolvare dep
aseste
cadrul morfologiei binare [14]. Astfel se pot cita asa numitele cazuri: cazul petrografic
(provenit din analiza hidrocarburilor si a mineralelor), n care p componente mpart exact
spatiul (f
ar
a a l
asa locuri libere) si cazul geografic, n care p componente nu ocup
a ntreg spatiul si se pot ntrep
atrunde (cazul zonelor de p
adure cu diferite specii de copaci).
Figura 6.2 prezint
a o astfel de transformare.
Transformarea Hit or Miss, n forma prezentat
a, prezint
a un interes mai mult teoretic,
datorit
a situ
arii sale la baza constructiei morfologiei matematice. Se va ar
ata ns
a c
a este
posibil
a exprimarea acesteia si n functie de transform
arile morfologice fundamentale larg
utilizate (erodarea si dilatarea).

72

Fig. 6.1: Exemplificare a transform


arii de identificare a configuratiilor locale (Hit or
Miss); n particular exemplul prezint
a determinarea punctelor de tip colt dreapta-jos.

Fig. 6.2: Exemplu de transformare Hit or Miss extins


a pentru o partitie cu trei multimi
a spatiului imaginii.
73

6.1.2

Erodarea morfologic
a

Erodarea morfologic
a a multimii A prin elementul structurant B se defineste ca multimea
punctelor (elementelor) cu care se poate translata elementul structurant astfel nct acesta
s
a fie inclus n multimea de prelucrat A:
A  B = {x|Bx A}

(6.2)

Erodare morfologic
a a multimii A este transformata Hit or Miss a multimii cu un element
structurant B = B1 (B2 = ):
A  B = {x|(B1 )x A} {x|()x AC } = {x|(B)x A}
Aceast
a relatie de definitie se mai poate exprima ca:
A  B = {x|Bx A} = {x|b B, a A astfel nct b + x = a} =
= {x|b B, a A astfel nct x = a b} =

bB

Ab =

(6.3)
Ab (6.4)

bB S

Figura 6.3 prezint


a rezultatul erod
arii unor multimi discrete, iar figura 6.4 prezint
a rezultatul erod
arii unor multimi continue.

Fig. 6.3: Exemple de erodare a unor multimi discrete cu diferite elemente structurante,
ce si contin (sau nu) originea.

74

Fig. 6.4: Rezultatul erod


arii unor multimi continue cu un element structurant de tip disc
(originea elementului structurant este centrul discului).

6.1.3

Dilatarea morfologic
a

Dilatarea morfologic
a a multimii A cu elementul structurant B se defineste ca multimea
punctelor (elementelor) cu care se poate translata elementul structurant astfel nct acesta
s
a aib
a puncte comune cu multimea de prelucrat A:
A B = {x|Bx A = }

(6.5)

Erodare morfologic
a a multimii A este complementara transformatei Hit or Miss a multimii
cu un element structurant B = B2 (B1 = ):
(AB)C = {x|(B1 )x A}{x|(B2 )x AC } = {x|()x A}{x|(B2 )x AC } = {x|(B)x AC }
A B = {x|(B)x AC }C = {x|(B)x

AC } = {x|Bx A = }

Relatia de definitie mai poate fi exprimat


a si ca:
A B = {x|Bx A = } = {x|b B, a A astfel nct b + x = a} = (6.6)
= {x|b B, a A astfel nct x = a b} =

bB

Ab =

Ab (6.7)

bB S

Figura 6.5 prezint


a rezultatul erod
arii unor multimi discrete, iar figura 6.6 prezint
a rezultatul dilat
arii unor multimi continue.

75

Fig. 6.5: Exemple de dilatare a unor multimi discrete cu diferite elemente structurante,
ce si contin (sau nu) originea.

Fig. 6.6: Rezultatul dilat


arii unor multimi continue cu un element structurant de tip disc
(originea elementului structurant este centrul discului).

76

6.1.4

Propriet
atile erod
arii si dilat
arii

Se observ
a c
a, n general, efectul operatiei de dilatare este de a m
ari obiectul; acesta creste,
se umfl
a, corespunz
ator formei si dimensiunii elementului structurant. Efectul erod
arii
este, dup
a cum am v
azut, o micsorare a obiectului. Modificarea dimensiunii obiectului este strict determinat
a de forma elementului structurant: un element structurant
simetric (disc, segment de dreapt
a centrat n origine) provoac
a o modificare simetric
a
a dimensiunilor; dac
a elementul structurant nu este simetric, efectele se vor manifesta
asupra obiectului pe directia elementului structurant si n sens contrar acestuia. Efectele
erod
arii si dilat
arii vor fi discutate n continuare, pe baza propriet
atilor matematice ale
acestora.
Dilatarea si erodarea formeaz
a o pereche de operatii duale:
(A B)C = AC  B si (A  B)C = AC B

(6.8)

Demonstratia este imediat


a:
A B = {x|Bx A = }, de unde rezult
a
(AC B)C = {x|Bx AC = }C = {x|Bx AC = } = {x|Bx A} = A  B

(6.9)

a
si A  B = {x|Bx A} de unde rezult
(AC  B)C = {x|Bx AC }C = {x|Bx

AC } = {x|Bx A = } = A B

(6.10)

Interpretarea dualit
atii ca obtinerea acelorasi efecte, dar asupra unor multimi complementare, este corect
a: dac
a dilatarea va m
ari obiectul (multimea), aceasta nseamn
a c
a
va micsora n acelasi timp fundalul (complementara multimii), deci va fi echivalent
a cu o
erodare a fundalului. Dac
a erodarea micsoreaz
a obiectul (multimea), aceasta nseamn
a
o m
arire simultan
a a fundalului (complementara multimii), deci o dilatare a acestuia.
Un caz particular ce poate apare este acela al elementelor structurante ce nu contin
originea. Folosind un asemenea element structurant, rezultatele operatiilor morfologice
vor fi translatate fata de pozitia la care ar fi fost de asteptat s
a apar
a.
Leg
atura ntre translatia elementului structurant (faptul c
a acesta nu contine originea
poate fi interpretat ca o deplasare) sau a multimii (obiectului) care se prelucreaz
a si
deplasarea rezultatului operatiilor morfologice este dat de propriet
atile de invarianta la
translatie:
(6.11)
At B = (A B)t si At  B = (A  B)t
A Bt = (A B)t si A  Bt = (A  B)t
77

(6.12)

Aceste propriet
ati de invarianta la translatie (translatia obiectului si translatia elementului structurant) pot avea mai multe interpret
ari. n primul rnd, invarianta la translatie
asigur
a faptul c
a forma rezultat
a prin dilatarea sau erodarea unei multimi este aceeasi,
indiferent de pozitia multimii prelucrate. n al doilea rnd, relatiile enuntate asigur
a suficienta consider
arii doar a elementelor structurante ce contin originea; un element structurant ce nu contine originea poate fi obtinut prin translatie dintr-un element structurant
ce contine originea; multimea (forma) rezultat
a n urma prelucr
arii va trebui translatat
a
n sens opus elementului structurant.
n acelasi grup de propriet
ati de invarianta a operatiilor morfologice se ncadreaz
a si
invarianta la scalare (omotetie). Dac
a este parametrul nenul de scalare, atunci:
1
1
1
1
(A B) = A B si (A  B) = A  B

(6.13)

ntr-adev
ar,
1
1
1
1
(AB) = (A+B S ) = {x|x = ab, a A, b B} = {x|x = a b, a A, b B} =

1
1
= A + BS = A B

1
1
1
1
1
(A  B) = (AC B)C = ( (AC B))C = (AC B)C = A  B

Relatiile de invarianta la scalare afirm


a c
a rezultatul unei transform
ari morfologice aplicate unei versiuni scalate a formei A este identic cu aceeasi scalare aplicat
a rezultatului
transform
arii morfologice a formei A prin acelasi element structurant scalat invers.
Propriet
atile de monotonie a unei transform
ari nu pot fi neglijate la descrierea acesteia.
Att dilatarea ct si erodarea sunt cresc
atoare fata de multimea ce se prelucreaz
a (forma):
dac
a A1 A2 , atunci
A1 B A2 B si A1  B A2  B

(6.14)

Monotonia fata de elementul structurant folosit este diferit


a: dilatarea este cresc
atoare,
iar erodarea este descresc
atoare: dac
a B1 B2 , atunci:
A B1 A B2 si A  B2 A  B1

(6.15)

Aceste propriet
ati subliniaz
a corectitudinea interpret
arii dilat
arii ca o ad
augare, ca o
ngrosare, iar a erod
arii ca o subtiere; grosimea stratului ad
augat sau ndep
artat este
78

dat
a de elementul structurant. Deci cu ct elementul structurant este mai mare, cu att
corpul se va m
ari mai mult n urma dilat
arii sau se va micsora mai mult n urma erod
arii.
n general, dilatarea este extensiv
a, adic
a:
A A B.

(6.16)

O conditie suficient
a pentru ca aceast
a proprietate s
a fie adev
arat
a este ca elementul
structurant s
a contin
a originea, {0n } B. Atunci
AB =

bB S

Ab = A (

bB S {0n }

Ab ) A

(6.17)

Conditia ca elementul structurant s


a contin
a originea nu este ns
a si o conditie necesar
a
(a se vedea figura 6.7).

Fig. 6.7: Desi elementul structurant nu si contine originea, rezultatul dilat


arii include
forma original
a.
n general erodarea este antiextensiv
a, adic
a:
AB A

(6.18)

O conditie suficient
a pentru ca aceast
a proprietate s
a fie adev
arat
a este ca elementul
structurant s
a contin
a originea, {0n } B. Atunci
AB =
bB S

Ab = A (

bB S {0

n}

Ab ) A

(6.19)

Conditia ca elementul structurant s


a contin
a originea nu este ns
a si o conditie necesar
a
(a se vedea figura 6.8).
79

Fig. 6.8: Desi elementul structurant nu si contine originea, rezultatul erod


arii este inclus
n multimea initial
a.
Dilatarea este pseudocomutativ
a, proprietate care se exprim
a ca
A B = (B A)S

(6.20)

A B = A + B S = (AS + B)S = (B + AS ) = (B A)S

(6.21)

Proprietatea de asociativitate a dilat


arii se scrie ca
A (B C) = (A B) C S

(6.22)

ntr-adev
ar:
A(B C) = A+(B C)S = A+(B +C S )S = A+B S +C = (AB)+C = (AB)C S
(6.23)
Erodarea nu este nici comutativ
a (sau pseudocomutativ
a) si nici asociativ
a. Mai mult,
asociativitatea erod
arii se scrie ca:
(A  B)  C = A  (B C)

(6.24)

ntr-adev
ar:

(AB)C = ((AB)C C)C = ((AC B)C)C = (AC (BC))C = A(BC) (6.25)


Propriet
atile de asociativitate ale dilat
arii si erod
arii pot fi interpretate si ca o descompunere a elementului structurant; dac
a un element structurant poate fi considerat
ca descompus prin dilatare n X = B C, atunci operatia morfologic
a efectuat
a prin
elementul structurant respectiv este echivalent
a cu operatiile morfologice prin p
artile
descompunerii elementului structurant, efectuate succesiv, adic
a:
80

A X = (A B) C S si A  X = (A  B)  C
Dilatarea si erodarea sunt transform
ari (operatii) ce nu p
astreaz
a num
arul de conexit
ati
(num
arul de obiecte). Rezultatul unei erod
ari poate fi o multime vid
a (dac
a elementul
structurant nu poate fi inclus n form
a pentru nici o pozitie) sau mai multe forme (componente conexe). Rezultatul dilat
arii unei multimi formate din mai multe componente
conexe poate fi o singur
a component
a conex
a; g
aurile continute ntr-o form
a pot fi
umplute.
Aceste propriet
ati ale erod
arii si dilat
arii sunt fundamentul folosirii practice a acestora:
prin erodare se pot elimina dintr-o multime componentele conexe ce sunt mai mici dect
elementul structurant folosit (sau sunt mult diferite de acesta din punctul de vedere al
formei) - aplicatiile ce ar putea folosi o asemenea comportare sunt separarea obiectelor
dup
a form
a si dimensiune si eliminarea zgomotului suprapus scenei. Prin dilatare se
pot grupa ntr-o singur
a entitate obiecte apropiate si se pot umple golurile nglobate n
obiecte.
Dilatarea si erodarea nu sunt operatii inversabile (nu admit o transformare invers
a). Cu
att mai mult, dilatarea nu este inversa erod
arii si erodarea nu este inversa dilat
arii;
exemplele prezentate n figurile 6.9 si 6.10 ilustreaz
a aceast
a afirmatie.
(A  B) B = A si (A B)  B = A

(6.26)

O alt
a categorie de propriet
ati se refer
a la distributivitatea operatiilor morfologice fata
de operatiile cu multimi. Pentru dilatare avem:

(A B) C = (A C) (B C)
(A C) (B C) = (

Ac ) (

cC S

Bc ) = (
cC S

cC S

Ac Bc ) =

cC S

(6.27)
(A B)c = (A B) C

A (B C) = (A B) (A C)
(A B) (A C) = (A + B S ) (A + C S ) = (B S + A) (C S + A) = (
=

(BaS CaS ) =

aA

(6.28)

aA

BaS ) (

CaS ) =
aA

(B C)Sa = (B C)S + A = A + (B C)S = A (B C)

aA

81

Fig. 6.9: Dilatarea si erodarea nu sunt transform


ari inverse una alteia; ilustrare pentru
multimi discrete.

Fig. 6.10: Dilatarea si erodarea nu sunt transform


ari inverse una alteia; ilustrare pentru
multimi continue.

82

Aceast
a din urm
a relatie poate fi interpretat
a si ca o descompunere prin reuniune a
elementului structurant X = B C, caz n care operatia morfologic
a efectuat
a prin
elementul structurant respectiv este echivalent
a cu operatiile morfologice prin p
artile
descompunerii elementului structurant, efectuate succesiv, adic
a:

A X = (A B) (A C)

(6.29)

Erodarea are propriet


ati asem
an
atoare dilat
arii fata de intersectia multimilor:

A  (B C) = (A  B) (A  C)
(A  B) (A  C) = (

tB S

At ) (

At ) =
tC S

(6.30)

At =
tB S C S

t(BC)S

At = A  (B C)

(A B)  C = (A  C) (B  C)
(A  C) (B  C) = (

cC S

Ac ) (

Bc ) =
cC S

cC S

(Ac Bc ) =

cC S

(A B)c = (A B)  C

nrudite cu propriet
atile de distributivitate deja enuntate, exist
a o serie de inegalit
ati
(relatii de incluziune) de aceeasi natur
a:
A (B C) (A B) (A C) si (B C) A (B A) (C A)
A  (B C) (A  B) (A  C) si (B C)  A (B  A) (C  A)
Aceast
a tratare [aproape] exhaustiv
a a propriet
atilor operatiilor morfologice de baz
a (dilatare, erodare) se reg
aseste n majoritatea monografiilor de morfologie matematic
a, ca de
exemplu n [14], [7]. Desi, n esenta, propriet
atile tratate sunt aceleasi, se impun cteva
preciz
ari.
Notatiile introduse n acest text sunt diferite pentru operatiile Minkowski (adunare + si
sc
adere ) si pentru operatiile morfologice (dilatare si erodare ). Leg
atura dintre
aceste operatii este dat
a de:
A B = A + B S si A  B = A B S
83

(6.31)

n majoritatea lucr
arilor de morfologie ns
a, nu se face nici o distinctie de notatie ntre
aceste operatii, ceea ce poate genera confuzii. Chiar n conditiile p
astr
arii acelorasi notatii, exist
a abord
ari diferite privind definirea operatiilor morfologice. n [7] dilatarea si
erodarea sunt identice cu adunarea, respectiv sc
aderea Minkowski (deci f
ar
a simetrizarea
elementului structurant). Avantajul unei asemenea formaliz
ari este existenta propriet
atilor de comutativitate si asociativitate a dilat
arii (determinate direct de comutativitatea si asociativitatea adun
arii Minkowski). n plus, rezultatul dilat
arii este o crestere
a formei pe directia si n sensul elementului structurant folosit.
Dezavantajul acestei abord
ari este acela c
a trebuie redefinit conceptul de dualitate 6.8
(dac
a se doreste p
astrarea propriet
atii fundamentale de dualitate a dilat
arii si erod
arii),
dup
a cum urmeaz
a:
Dual(Op(A, B))|B parametru = (Op(AC , B S ))C

(6.32)

n [14] este preferat


a definirea dilat
arii unei multimi ca adunarea Minkowski a multimii
cu elementul structurant simetrizat.

6.1.5

Aspecte de implementare

Din punct de vedere practic (al implement


arii), elementul structurant poate fi interpretat
analog suportului ferestrei de filtrare folosit
a pentru orice operatie bazat
a pe principiul
ferestrei glisante: cu valorile selectate din imagine se face ceva. Va trebui ns
a introdus
un mecanism de specificare a formei ferestrei de filtrare (elementului structurant) care
s
a permit
a modificarea relativ simpl
a a acesteia (puterea morfologiei matematice const
a
n alegerea a diferite tipuri de elemente structurante optime unei anumite prelucr
ari).
Conventia de reprezentare a imaginilor binare este de a avea asociate valori nule punctelor
de fundal si valori pozitive (1 sau 255) punctelor obiect1 . n aceste conditii, putem g
asi
o echivalenta intuitiv
a simpl
a operatiilor morfologice de erodare si dilatare. Rezultatul
operatiei de erodare ntr-un pixel este nenul dac
a si numai dac
a elementul structurant
plasat cu originea n acel punct este inclus n forma de prelucrat, si deci, dac
a si numai
dac
a toate valorile selectate de elementul structurant sunt nenule; aceasta nseamn
a c
a
putem implementa operatia de erodare printr-o operatie de minim. Rezultatul operatiei
de dilatare ntr-un pixel este nul dac
a si numai dac
a elementul structurant plasat cu
originea n acel punct nu are nici un punct comun cu forma de prelucrat, si deci, dac
a si
numai dac
a toate valorile selectate de elementul structurant sunt nule; aceasta nseamn
a
c
a putem implementa operatia de dilatare printr-o operatie de maxim. n cele ce urmeaz
a
prezent
am codul pentru operatia de erodare.
# define SIZE_MAX_ES=16;
1

Reprezentarea grafic
a a acestei imagini, realizat
a cu tabela de nivele de gri normal
a va afisa deci
obiecte albe pe un fundal negru.

84

int min,min_i,max_i,min_j,max_j;
integer es[SIZE_MAX_ES][2];
min_i=0;max_i=0,min_j=0,max_j=0;
for (k=0;k<dim_es;k++) {
if (min_i > es[k][1])
min_i=es[k][1];
if (max_i < es[k][1])
max_i=es[k][1];
if (min_j > es[k][2])
min_j=es[k][2];
if (max_j < es[k][2])
max_j=es[k][2]; }
for (i=-min_i;i<NRLIN-max_i;i++)
for (j=-min_j;j<NRCOL-max_j;j++) {
min=MAXINT;
for (k=0;k<dim_es;k++)
if (min > img[i+es[k][1]][j+es[k][2]]) then
min=img[i+es[k][1]][j+es[k][2]];
img_out[i][j]=min; }
Elementul structurant folosit este reprezentat prin matricea de ntregi es, avnd cel mult
16 linii si 2 coloane. Fiecare linie a matricii corespunde unui punct din elementul structurant, reprezentat prin coordonatele fata de originea elementului structurant: es[k][1]
si es[k][2]. De exemplu, elementul structurant orizontal, centrat, avnd trei puncte este
reprezentat prin es = [0 1; 0 0; 0 1]T . Num
arul de puncte ce compun elementul structurant este dim_es. Prima bucl
a for determin
a dimensiunile dreptunghiului de ncadrare
a elementului structurant, pentru a putea evita efectele de margine la prelucrarea imaginii.

6.2

Transform
ari morfologice derivate

Vom numi operatie (transformare) morfologic


a derivat
a operatia morfologic
a construit
a
ca o combinatie de transform
ari de baz
a: erod
ari, dilat
ari si operatii clasice ansambliste.

6.2.1

Deschiderea si nchiderea

Dup
a cum s-a ar
atat, erodarea si dilatarea nu sunt transform
ari inverse una alteia (deci
alternarea lor va produce un rezultat diferit de multimea original
a ce a fost prelucrat
a).
Aceast
a observatie conduce la ideea utiliz
arii unor iter
ari ale operatiilor morfologice de

85

baz
a, obtinnd astfel operatii mai complexe, ale c
aror propriet
ati le fac mai adecvate
utiliz
arii n scopuri practice.
Deschiderea morfologic
a a multimii A prin elementul structurant B se defineste ca erodarea multimii cu elementul structurant respectiv, urmat
a de dilatarea cu elementul
structurant simetrizat:
B = (A  B) B S

(6.33)

nchiderea morfologic
a a multimii A prin elementul structurant B se defineste ca dilatarea
multimii cu elementul structurant respectiv, urmat
a de erodarea cu elementul structurant
simetrizat:
A B = (A B)  B S

(6.34)

Proprietatea de baz
a a deschiderii si nchiderii morfologice este aceea c
a sunt transform
ari
duale una alteia (proprietate ce deriv
a din dualitatea blocurilor constituente de baz
a,
dilatarea si erodarea). Aceast
a proprietate permite interpretarea rezultatelor unei operatii
si deducerea propriet
atilor acesteia pe baza caracteristicilor dualei sale.
(A

B)C = AC B si (A B)C = AC

(6.35)

Demonstratia acestor propriet


ati este imediat
a:
(AC

B)C = ((AC  B) B S )C = ((A B)C B S )C = (A B)  B S = A B

(AC B)C = ((AC B)  B S )C = ((A  B)C  B S )C = (A  B) B S = A

n mod evident, rezultatul unei deschideri sau al unei nchideri este diferit de multimea
ce a fost prelucrat
a. Relatia dintre rezultatul prelucr
arii si multimea initial
a este dat
a de
propriet
atile de extensivitate ale transform
arilor.
Deschiderea morfologic
a este antiextensiv
a, adic
aA

BA

nchiderea morfologic
a este extensiv
a, adic
a AAB
Deci, pentru a sintetiza, putem afirma c
a:
A

B A AB
86

(6.36)

Relatiile pot fi interpretate ca o modificare sigur


a a multimii: prin deschidere se vor
elimina o parte dintre elementele multimii ce se prelucreaz
a, iar prin nchidere se adaug
a
elemente noi multimii.
Proprietatea de idempotenta a operatiilor introduce o limitare a modific
arilor: multimea
obtinut
a dup
a o deschidere sau nchidere este invariant
a la repetarea operatiei:
(A B) B = A B si (A

B)

B=A

(6.37)

Relatiile se demonstreaz
a folosind propriet
atile deja enuntate ale deschiderii si nchiderii
(extensivitate) si propriet
atile de monotonie ale operatiilor morfologice de baz
a.
nchiderea si deschiderea mostenesc o parte dintre propriet
atile operatiilor morfologice de
baz
a: invarianta la translatie si la scalare, monotonia fata de multimea prelucrat
a si fata
de elementul structurant folosit. Din punctul de vedere al acestor propriet
ati, deschiderea
se comport
a analog erod
arii iar nchiderea are o comportare analoag
a dilat
arii.
At

B = (A

1
(A

B) = A

B)t si At B = (A B)t
1
B

si 1 (A B) = A 1 B

Dac
a A1 A2 : A1

B A2

B si A1 B A2 B.

Dac
a B1 B2 : A

B2 A

B1 si A B1 A B2

n ceea ce priveste propriet


atile legate de comportarea fata de translatie a operatorilor
de deschidere si nchidere, merit
a subliniat faptul c
a proprietatea este identic
a cu cea
a erod
arii si dilat
arii doar la translatia multimii prelucrate (rezultatul unei deschideri
sau nchideri a unei multimi este acelasi, indiferent de pozitia spatial
a a multimii). n
cazul translat
arii elementului structurant, rezultatul operatiei este acelasi, invariant la
translatie (ca rezultat a iter
arii erod
arii si dilat
arii cu elemente structurante simetrice).
Pentru realizarea efectiv
a a operatiilor de deschidere si nchidere este important
a exprimarea acestora ca operatii la nivelul elementelor multimilor ce se prelucreaz
a (si nu ca
o iterare de operatii morfologice de baz
a). Deschiderea mai poate fi exprimat
a si ca
multimea elementelor structurante translatate ce sunt incluse n multimea de prelucrat:
A

B=

Bx

(6.38)

Bx A

nchiderea mai poate fi exprimat


a si ca multimea punctelor pentru care toate elementele
structurante translatate ce le contin au puncte comune cu multimea de prelucrat:
87

AB =

(6.39)

Bx
Bx A=

Pe baza acestor exprim


ari se pot deduce si efectele practice ale deschiderii si nchiderii
asupra formelor (multimilor). Prin deschidere, formele mai mici ca elementul structurant folosit vor fi eliminate, se l
argesc golurile nglobate n obiecte, contururile sunt
netezite prin tesirea convexit
atilor iar obiectele unite prin istmuri sunt separate. Datorit
a propriet
atii de dualitate, nchiderea va avea aceleasi efecte asupra fundalului (complementarei obiectelor) pe care le are deschiderea asupra multimilor. nchiderea umple
golurile nglobate n obiecte (dac
a aceste g
auri sunt mai mici dect elementul structurant
folosit), netezeste contururile formelor prin umplerea concavit
atilor si uneste obiectele
foarte apropiate (umple strmtorile).
Efectele operatiilor de deschidere si nchidere pot fi considerate ca analoage efectelor unei
filtr
ari de netezire a formelor si eliminare a zgomotului (zgomot interpretat ca obiecte si
g
auri de mici dimensiuni). n [14], n cadrul teoriei algebrice a morfologiei matematice, un
filtru este definit ca o operatie cresc
atoare si idempotent
a. Trebuie f
acut
a deci distinctia
ntre filtrul algebric si filtrul obisnuit, n sensul teoriei prelucr
arii semnalelor.

6.2.2

Filtrele alternate secvential

Filtrele morfologice sunt transformari neliniare ale semnalului, care modific


a local caracteristici geometrice (de form
a). Teoria algebric
a general
a a filtrelor [14] defineste o
transformare ca filtru dac
a aceasta este cresc
atoare si idempotent
a, ceea ce nseamn
a
deci c
a deschiderea si nchiderea sunt filtre, n timp ce erodarea si dilatarea nu sunt filtre.
Dac
a o imagine (multime) este filtrat
a prin deschideri dup
a elemente structurante (discuri
de raz
a r) cresc
atoare, aceasta este echivalent cu a aplica deschiderea dup
a elementul
structurant cu raza cea mai mare. Totusi, se pot construi filtre ce actioneaz
a asupra
obiectelor si detaliilor n mod gradat, pe masura iter
arii: aceste sunt filtrele alternate
secvential, ce alterneaz
a deschideri si nchideri dup
a elemente structurante de dimensiune
cresc
atoare:
F AS(A) = (((((A B) B) 2B) 2B) 3B) ...
(6.40)
sau
F AS(A) = (((((A B)

6.2.3

B) 2B)

2B) 3B)

...

(6.41)

Operatori morfologici de contur

O problema curent
a a prelucr
arilor de imagini este extragerea punctelor de contur. Cazul
n care imaginea este binar
a constituie o simplificare a metodelor si calculelor. P
astrnd
88

interpretarea pixelilor ca fiind puncte ale obiectului sau ale fundalului, punctele de contur sunt acele puncte de obiect ce au cel putin un punct de fundal vecin. n general,
vecin
atatea folosit
a este cea de tip disc unitar, a c
arei form
a va depinde puternic de tipul
de metric
a folosit
a.
Exist
a trei extractoare morfologice de contur: conturul interior (6.42), conturul exterior
(6.43) si gradientul morfologic (6.44).
A = A A  B

(6.42)

A = A B A

(6.43)

grad A = A B A  B

6.3

(6.44)

Extinderea morfologiei matematice la nivele de


gri

Pna n acest moment s-au prezentat operatiile morfologice clasice, adic


a aplicate asupra
unor seturi (multimi). Acestea prezint
a limitarea implicit
a n aplicarea numai asupra unei
categorii particulare de imagini, si anume cele a c
aror structur
a poate fi usor si imediat
asociat
a unor multimi, adic
a imaginile binare. Pentru extinderea operatiilor morfologice
la functii se vor construi transform
ari ce permit trecerea de la o reprezentare de tip functie
la o reprezentare de tip multime.
n cele ce urmeaz
a ne vom referi la o submultime A a spatiului discret n-dimensional, adic
a
n
A Z . Elementele multimii A sunt puncte, reprezentate prin vectorul n-dimensional al
coordonatelor, x A, cu x = (x1 , x2 , ..., xn ). Ordinea coordonatelor este arbitrar
a.
Vom numi primele n 1 coordonate ale unui punct x domeniu spatial al multimii si
cea de-a n-a coordonat
a, suprafata multimii. Vom nota aceste p
arti ale multimii A cu
A(1,n1) si respectiv A(n,n) . Putem avea n moduri diferite de a alege aceste partitii ale
coordonatelor (corespunznd modului n care se poate alege o coordonat
a dintr-un total
de n).
Vrful (top) sau suprafata de vrf a unei multimi A este functia T (A) : A(1,n1) A(n,n)
definit
a de:
T (A)(z) = max{y | (z, y) A, z A(1,n1) }
(6.45)
n acest mod se introduce o functie, pornind de la o multime; functia este cu valori
ntregi (functie scalar
a) de argument vectorial n 1-dimensional. Pentru exemplificare
consider
am cazul n care n = 2, deci fiecare punct al multimii A este un vector bidimensional, x = (i, j). Consider
am coordonata i ca fiind domeniul spatial si coordonata j ca
89

vrful lui A

+
+
+
+ +
+
+ +
+ + + +
+ + + +
+ + + +
+ +

+
+
+
+
+
+
+

+
+
+
+

+
+
+
+

+
+
+
+
+

+ +

multimea A

+ +

i
functia asociata multimii A

Fig. 6.11: Exemplificare pentru functia vrf a unei multimi.


fiind suprafata multimii. Atunci, prin transformarea vrf, asociem multimii A o functie
definit
a pe domeniul s
au spatial si cu valori n suprafata sa.
Umbra unei functii oarecare f este definit
a ca transformarea f : B Zn1 C Z
dat
a de:
U (f ) = {(z, y) | z B, y Z, y  f (z)}
(6.46)

n acest mod, plecnd de la o functie de variabil


a vectorial
a n 1-dimensional
a, cu valori
scalare, se obtine o multime ale c
arei elemente sunt vectori n-dimensionali. Multimea
obtinut
a este semideschis
a (nemarginit
a).
j

functia f
+
+
+
+
+
+
+
O +
+
+
+
+

+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+

umbra lui f
i
umbra este nemarginita

Fig. 6.12: Determinarea umbrei unei multimi.


n mod evident, vom avea urm
atoarele relatii ntre cele dou
a transform
ari multime-functie
(vrful si umbra):
T (U(F )) = f si A U (T (A))
(6.47)
90

Operatiile morfologice pentru functii se definesc prin intermediul transform


arii acestora
n multimi (reducnd astfel operatiile pe functii la operatii pe multimi, asa cum au fost
prezentate la morfologia binar
a):
f

g = T (U (f)

U (g)) si f g = T (U (f) U (g))

(6.48)

Ca si n cazul morfologiei pe multimi, g se numeste element structurant (functie structurant


a). Se numeste element structurant flat, elementul structurant pentru care g(y) =
0, y Supp(g). Aceste elemente structurante de tip flat sunt echivalente cu cele folosite
n morfologia clasic
a pe multimi.
Forma echivalent
a a definitiilor erod
arii si dilat
arii (folosite n mod efectiv n practic
a)
este, pentru x Supp(f ) :
f

g=

min

ySupp(g)

{f (x y) g(y)} , f g =

max {f (x y) + g(y)}

ySupp(g)

(6.49)

Dac
a se utilizeaz
a elemente structurante plate (deci caracterizate doar de forma suportului, si nu si de valori asociate acestora), cele dou
a relatii de definitie devin identice cu
filtr
arile de ordine de rang minim si respectiv maxim:
f

g=

min

ySupp(g)

{f(x y)} , f g =

91

max {f (x y)}

ySupp(g)

(6.50)

Capitolul 7
METODE DE COMPRESIE A
IMAGINILOR
Termenul de compresie a imaginilor (uneori numit si codare a imaginilor) se refer
a la o
clas
a larg
a de tehnici si metode al c
aror scop este reprezentarea unui imagini date cu
un num
ar ct mai mic de biti (mai mic dect num
arul de biti al reprezent
arii initiale).
Necesitatea reducerii cantit
atii de informatie necesar
a reprezent
arii este evident
a dac
a
consider
am cazul memor
arii imaginilor radiografice (4000 x 2500 pixeli, cu 4096 nivele
de gri, deci 14,3 MB) sau al transmisiei de televizune alb-negru (625 x 625 pixeli cu 256
nivele de gri, de 50 de ori pe secund
a, deci un flux de 18.6 MB/ secund
a) [9]. Procesul de
recompunere a imaginii initiale din reprezentarea restrns
a se numeste decompresie sau
decodare; este evident c
a prin decodare trebuie s
a se obtin
a o imagine ct mai apropiat
a de imaginea orginal
a. Exist
a dou
a categorii fundamentale de tehnici de compresie
(codare): codarea f
ar
a pierderi (n care imaginea decodat
a este identic
a cu imaginea initial
a) si codarea cu pierderi, n care se admit mici diferente fata de original. Calitatea
unui procedeu de compresie (pentru o imagine dat
a) se m
asoar
a prin factorul de calitate
(raportul semnal zgomot (3.4) dintre imaginea original
a f si imaginea decodat
a g) si
factorul (raportul) de compresie. Factorul de compresie C este raportul dintre cantitatea
de informatie necesar
a reprezent
arii imaginii initiale si cantitatea de informatie necesar
a
reprezent
arii imaginii codate; evident compresia are loc dac
a factorul de compresie este
supraunitar (C > 1). Uneori, factorului de compresie i se asociaz
a (sau este nlocuit de)
rata de compresie: cantitatea de informatie necesar
a reprezent
arii comprimate a fiec
arui
pixel al imaginii; rata de compresie se m
asoar
a n biti per pixel (bpp).
O alt
a clasificare posibil
a a tehnicilor de compresie se poate face dup
a tipul imaginii
c
areia i se aplic
a: vom face astfel distinctia ntre compresia imaginilor binare si compresia
imaginilor cu nivele de gri. Se impune totusi o observatie: metodele de codare ce se vor
prezenta n cadrul tehnicilor speifice imaginilor binare pot fi folosite pentru compresia
oric
arei succesiuni de valori binare, indiferent de semnificatia acestora (ceea ce nseamn
a
c
a ar putea fi folosite si pentru compresia imaginilor cu nivele de gri) si sunt metode de
92

compresie f
ar
a pierderi.

7.1

Compresia imaginilor binare

Putem considera c
a singura categorie de imagini binare de interes sunt imaginile n albnegru (sau monocrome); valorile punctelor acestora sunt fie 0 (reprezentnd fundalul de
culoare alb
a), fie 1 (reprezentnd punctele de interes, de culoare neagr
a)1 . Cele dou
a clase
de metode de codare pe care le avem n vedere sunt codarea entropic
a (metoda de codare
Human) si metodele de codare on-line (pe flux de biti); deosebirea dintre aceste metode
(la un nivel al implement
arii) este c
a pentru codarea entropic
a este necesar
a parcurgerea
si stocarea intermediar
a a ntregii imagini.

7.1.1

Codarea entropic
a (Human)

Codarea entropic
a (Human) este metoda optimal
a de codare a unei surse de informatie.
Codarea sursei de informatie S ale c
arei mesaje sunt {s1 , s2 , ..., sN }, de probabilit
ati
{p(s1 ), p(s2 ), ..., p(sN )} prin alfabetul X cu D simboluri nseamn
a a asocia fiec
arui mesaj
si al sursei primare de informatie un sir de simboluri din alfabetul codului. Lungimea
medie a cuvintelor de cod este dat
a de raportul dintre entropia sursei primare si entropia
alfabetului codului:
H(S)
l=
(7.1)
H(X)
Se doreste obtinerea unei lungimi medii minime a cuvintelor de cod, si deci, echivalent, m
arirea entropiei alfabetului codului; la limit
a, lungimea media minim
a posibil
a de
obtinut este:
H(S)
(7.2)
lmin =
log D
Procedeul practic prin care se realizeaz
a alocarea simbolurilor din alfabetul codului astfel
nct entropia acestuia s
a fie maximizat
a (metoda Human) se bazeaz
a pe reducerea
iterativ
a a num
arului de simboluri ale sursei de codat si construirea unei surse restrnse.
La fiecare etap
a cele D simboluri cele mai putin probabile ale sursei de informatie sunt
reunite ntr-un nou simbol; procedeul de restrngere continu
a pn
a cnd se obtine o
surs
a redus
a cu exact D simboluri. Apoi, pentru fiecare reunire de simboluri, fiecare
mesaj individual va primi codul cuvntului reunit ca prefix, urmat de cte un simbol din
alfabetul codului. Vom considera urm
atorul exemplu.
O sursa S genereaza 6 simboluri, de probabilitati descrise de vectorul P = [0.3; 0.25; 0.2; 0.1;
0.1; 0.05]. Sursa este codata optimal, simbol cu simbol, cu cuvinte de cod generate cu
1

Deci conventia de reprezentare prin culori este modificat


a fata de conventia general
a utilizat
a 0 nu
mai este negru, ci alb.

93

simboluri dintr-un alfabet ternar. Sa se calculeze cuvintele de cod, arborele de codare si


eficienta codarii.
Codarea optimal
a a unei surse se realizeaz
a conform algoritmului Human. Se stie c
a
num
arul de simboluri ale sursei ce se codeaz
a trebuie s
a ndeplineasc
a o anume relatie
ND
N ; n acest caz, N = 6, D = 3 si deci
D1
N D
63
3
=
=
/N
D1
31
2
Completarea se face ad
augnd sursei simboluri de probabilitate nul
a; n acest caz, cu un
singur astfel de simbol ad
augat obtinem N = 7 si
73
4
N D
=
= N
D1
31
2
Entropia sursei extinse S este dat
a de:
7

H(S) =

i=1

p(si ) log p(si ) = (0.3 log 0.3 + 0.25 log 0.25 + 0.2 log 0.2 + 2 0.1 log 0.1)
0.05 log 0.05 0 log 0 = 2.366 bit/simbol

Atunci, conform (7.2), lungimea medie minim


a a unui cuvnt de cod este:
lmin =

H(S)
2.366
=
= 1.493 bit
log D
log 3

Codarea Human este realizat


a conform tabelului 7.1.
Surs
a
p(si ) Cod Surs
a
p(rji ) Cod Surs
a
primar
a
restrns
a
restrns
a
r21
s1
0.3
r11
0.3
r22
s2
0.25
r12
0.25
r23
s3
0.2
r13
0.2
00
r14
0.15
01
s4
0.1
r15
0.1
02
s5
0.1
010
s6
0.05 011
s7
0
012
Tabel 7.1: Codare Human

94

p(rji ) Cod
0.45
0.3
0.25

0
1
2

Cuvintele de cod sunt grupate n tabelul 7.2; pe baza lor putem calcula lungimea medie
a cuvintelor de cod:
7

l=
i=1

li p(si ) = 1 0.3 + 1 0.25 + 2 0.2 + 2 0.1 + 3 0.1 + 3 0.05 + 3 0 = 1.6

Surs
a
primar
a
s1
s2
s3
s4
s5
s6
s7

p(si )

Cod Lungime

0.3
0.25
0.2
0.1
0.1
0.05
0

1
2
00
02
010
011
012

1
1
2
2
3
3
3

Tabel 7.2: Coduri asociate simbolurilor sursei si lungimile lor

n cazul imaginilor (sau al sirurilor binare) mesajele sursei primare sunt formate din
grupuri de cte B biti succesivi (astfel, sursa primar
a are 2B mesaje, ale c
aror probabilit
ati
de aparitie sunt specifice imaginii considerate). Cu ct B este mai mare, cu att mai
mare va fi eficienta cod
arii. Tabelul de codare (echivalenta ntre mesajele sursei primare
si sirurile de simboluri de cod) este specific fiec
arei imagini si trebuie s
a nsoteasc
a codul.
Codarea clasic
a este binar
a (D = 2, X = {0, 1}).

7.1.2

Codarea pe flux de biti

Metodele de codare pe flux de biti (on-line) se reg


asesc la primul nivel de codare al
transmisiilor de fax (RLE, WBS) sau ca tehnici generale de compresie a datelor, nglobate
att n formate de fisiere grafice (TIFF) ct si n arhivatoare uzuale (ZIP) metoda ZivLempel. Aplicarea cod
arii la imagini presupune n primul rnd transformarea imaginii
(structurii de matrice a acesteia) ntr-un vector (sir) prin concatenarea liniilor acesteia.

Codarea RLE
Principiul cod
arii RLE (Run Length Encoding) este acela de a memora num
arul de simboluri succesive ale sirului binar ce au aceeasi valoare. Odat
a ce o secventa de simboluri
succesive de aceeasi valoare (run length) se ncheie, simbolul urm
ator nu poate avea dect
95

valoarea complementar
a celei initiale, prin alternanta. S
irul codat trebuie s
a nceap
a cu
valoarea primului simbol.
Conform acestei cod
ari, sirul de valori binare 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1 este
codat RLE ca 0, 4, 3, 1, 1, 3, 1, 3, iar sirul binar 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0 este codat
RLE ca 1, 7, 1, 1, 5. S
irul cuvintelor de cod trebuie deci s
a fie compus din codurile ce corespund lungimilor secventelor de valori identice succesive; aceasta nseamn
a c
a num
arul
de biti al reprezent
arii binare al cuvintelor de cod trebuie s
a permit
a reprezentarea
lungimii celei mai mari secvente. Cum determinarea de fiecare dat
a a acestei lungimi
maximale si varierea lungimii cuvntului de cod nu este o solutie corespunz
atoare, se
prefer
a fixarea unei lungimi maximale admise a secventelor. Orice secventa mai lung
a
dect secventa maxim
a este desp
artit
a prin intercalarea fictiv
a a unor simboluri complementare. S
a consider
am o codare RLE cu lungimea cuvntului de cod de 2 biti; aceasta
nseamn
a c
a lungimea secventei maxime este 3 (codul 0 trebui rezervat pentru secventa
de lungime nul
a). Dac
a sirul binar este 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0 atunci sirul codat
va fi 1, 3, 0, 3, 0, 1, 1, 1, 3, 0, 2 (unde fiecare cifr
a va fi reprezentat
a pe 2 biti).
O codare mai bun
a se obtine dac
a lungimile secventelor de simboluri identice succesive
sunt codate (ntr-o faz
a ulterioar
a) entropic, cu un algoritm de tip Human. Standardul
CCITT de transmisie fax recomand
a folosirea unor cod
ari Human truncheate: astfel,
dac
a o lungime de secventa este mai mic
a dect 64 este codat
a direct, cuvntul de cod
respectiv numindu-se terminator; dac
a o lungime de secventa este cuprins
a n gama
[64;1791] se codeaz
a separat num
arul de pixeli ce formeaz
a un multiplu de 64 (formnd
un cod masc
a, make-up code) si restul mp
artirii lungimii secventei la 64, cu un cod
terminator. n plus, exist
a un cod special de sfrsit de linie (EOL). Tabelele de codare
sunt standardizate (se pot g
asi de exemplu n [9, pp. 544-545]). Pe lng
a transmisia de
fax, codarea RLE mai este utilizat
a n diferite formate de fisiere imagine (BMP, PCX,
TGA).
Portiunea urm
atoare de program C realizeaz
a codarea RLE a sirul de intrare in, de
dimensiune DIM_IN, cu cuvinte de cod ce pot reprezenta cel mult MAX_RUN simboluri identice succesive; cuvintele de cod sunt scrise n sirul out. Pozitiile curente din
sirurile de intrare si iesire sunt determinate de variabilele pos_in si respectiv pos_out.
Implementarea presupune c
a tipul de date al sirului in permite aplicarea operatorului de
negatie (! ).
pos_in=0;
out[0]=in[0];
pos_out=1;
crt_value=in[0];
while (pos_in<DIM_IN) {
if (in[pos_in]==crt_value) then
if (run_length<MAX_RUN) then
run_length++;
96

else {
out[pos_out]=MAX_RUN;
pos_out++;
out[pos_out]=0;
run_length=1; }
else {
out[pos_out]=run_length;
pos_out++;
run_length=1;
crt_value=!crt_value; }
pos_in++; }

Codarea WBS
Prima etap
a a cod
arii WBS (White Block Skipping) presupune mp
artirea sirului binar
n grupe de cte D simboluri succesive. Principiul cod
arii este simplu: un bloc nul
este nlocuit cu un singur simbol de 0, un bloc nenul este prefixat de un simbol de
1 si copiat. Conform acestei cod
ari (cu grupe de D = 3 simboluri), sirul de valori
binare 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0 este mp
artit n grupele (0, 0, 0), (0, 1, 0), (0, 0, 1),
(1, 1, 0), (0, 0, 0) si codat ca (0), (1, 0, 1, 0), (1, 0, 0, 1), (1, 1, 1, 0), (0), transformndu-se
n sirul 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0.
Dac
a sirul dat binar de n grupe de simboluri contine n0 grupe nule, n urma compresiei
mai r
amn (n n0 )(D + 1) + n0 simboluri si factorul de compresie este atunci:
C=

nD
(n n0 )(D + 1) + n0

(7.3)

Pentru ca s
a existe compresie trebuie ca C > 1 si deci atunci
n0
1
>
(7.4)
n
D
adic
a proportia de grupe nule din sir trebuie s
a fie mai mare dect inversul num
arului de
simboluri dintr-o grup
a.
n0 D > n

Pentru o larg
a categorie de imagini, lungimea blocului de codare D = 10 poate fi folosit
a
cu rezultate bune [9]. O mbun
at
atire a performantei se poate obtine dac
a se introduce
o adaptare a cod
arii, prin detectia liniilor albe (reprezentate doar cu valori 0) si codarea
unei linii ntregi cu un singur 0 (desigur c
a n acest caz la codurile tuturor blocurilor
se mai adaug
a un prefix de valoare 1). O alt
a variant
a a metodei exploateaz
a structura
bidimensional
a a imaginii, codnd blocuri p
atrate din imagine (deci imaginea nu mai este
vectorizat
a).
Portiunea urm
atoare de program C realizeaz
a o variant
a de codare WBS cu blocuri de
dimensiune D a sirului de intrare in (ale c
arui valori sunt 0 si 1) de dimensiune DIM_IN ;
97

codul WBS este scris n sirul de iesire out. Verificarea dac


a blocul curent este nul se face
prin sumarea valorilor acestuia. Pozitiile curente n sirul de intrare si sirul de iesire sunt
memorate n pos_in si respectiv pos_out.
pos_in=0;
pos_out=0;
while (pos_in<DIM_IN){
s=0;
for (i=0;i<D;i++)
s=s+in[pos_in+i];
if (s>0) then {
out[pos_out]=1;
pos_out++;
for (i=0;i<D;i++)
out[pos_out+i]=in[pos_out+i];
pos_out=pos_out+D; }
else {
out[pos_out]=0;
pos_out++; }
pos_in=pos_in+D; }

Codarea Ziv-Lempel
Codarea Ziv-Lempel nu are ca origine ideea explicit
a de a m
ari entropia alfabetului codului (precum codarea Human), ci se bazeaz
a pe tehnica dictionar LUT (folosit
a si la
reprezentarea imaginilor indexate): cuvintele de cod asociate unor siruri de simboluri
ale sursei de intrare sunt indicii (numerele de ordine) pozitiilor la care se g
asesc respectivele siruri de simboluri n dictionarul codului (tabela de codare). Tabela de codare
(dictionarul) este creat
a pe m
asura parcurgerii sirului de simboluri de intrare, si, pentru
decodare, tabela se creaz
a din cuvintele de cod deja transmise (ceea ce nseamn
a c
a nu
2
este necesar
a memorarea sau transmiterea explicit
a a tabelului de codare ).
Dictionarul initial are dou
a cuvinte: cuvntul 0, avnd indicele 0 si cuvntul 1, avnd
indicele 1. Din sirul de intrare (presupus binar) se extrage cte un bit si se verific
a
dac
a sirul de biti deja extras se reg
aseste sau nu n dictionar. Dac
a sirul se reg
aseste
n dictionar, se mai adaug
a un bit din sirul de intrare. Dac
a sirul nu se reg
aseste n
dictionar, atunci sirul este trecut n dictionar, n sirul codat se scrie codul (indicele)
prefixului sirului nou ad
augat (deci pozitia la care se g
aseste n dictionar cuvntul la care
2

Aceast
a caracteristic
a este probabil unic
a codului Ziv-Lempel; pentru toate celelalte aplic
ari ale
tehnicii LUT, tabela de codare este transmis
a sau memorat
a mpreun
a cu cuvintele de cod sau se presupune existenta unei tabele de codare implicite, cunoscute (ca de exemplu tabela de culoare cu nivele
de gri).

98

ad
augnd ultimul bit al sirului de intrare se obtine un cuvnt nou) si ultimul bit din sir
devine primul bit al urm
atorului sir de intrare. Procedeul continu
a pn
a cnd sirul de
intrare nu mai are simboluri necodate. Dac
a, naintea termin
arii simbolurilor din sirul
de codat, tabela de codare (cu num
ar fixat de intr
ari) se umple, exist
a dou
a variante de
continuare: fie restul sirului de intrare se codeaz
a conform tabelei de codare existente prin
c
autarea celor mai lungi cuvinte de cod, fie tabela de codare este golit
a si se continu
a
cu procedeul initial.
S
a consider
am sirul de intrare 1, 0, 0, 0, 0, 1, 0, 1, 1, 1; dictionarul cuvintelor de cod
contine cuvntul 0 (cu indice 0) si cuvntul 1 cu indice 1. Simbolul curent este 1 (pe
prima pozitie a sirului de intrare) si formeaz
a sirul de biti extras; acest sir se reg
aseste n
dictionar (cu indicele 1) si atunci se mai extrage un bit din sir; sirul de biti extrasi devine
10. Cuvntul 10 nu exist
a n dictionar, si atunci: n sirul de iesire se scrie indicele celui
mai lung cuvnt din dictionar la care ad
augnd un bit obtinem noul cuvnt (noul cuvnt
este 10, cuvntul prefix este 1, iar indicele scris la iesire este 1), n dictionar se adaug
a
cuvntul 10 (care va avea indicele 2), iar noua pozitie curent
a din sirul de intrare este
ultimul bit al sirului deja extras, deci pozitia 2, bitul 0. Simbolul curent este 0; acest sir
se reg
aseste n dictionar (cu indicele 0) si atunci se mai extrage un bit din sir; sirul de biti
extrasi devine 00. Cuvntul 00 nu exist
a n dictionar, si atunci: n sirul de iesire se scrie
indicele prefixului noului cuvnt (deci 0), n dictionar se adaug
a cuvntul 00 (care va avea
indicele 2), iar noua pozitie curent
a din sirul de intrare este ultimul bit al sirului deja
extras, deci pozitia 3, bitul 0. Simbolul curent este 0; acest sir se reg
aseste n dictionar
(cu indicele 0) si atunci se mai extrage un bit din sir; sirul de biti extrasi devine 00. S
irul
00 se reg
aseste n dictionar (indicele 3) si atunci se mai extrage un bit din sir; sirul de
biti extrasi devine 000. Cuvntul 000 nu exist
a n dictionar, si atunci: n sirul de iesire se
scrie indicele prefixului noului cuvnt (deci 3), n dictionar se adaug
a cuvntul 000 (care
va avea indicele 4), iar noua pozitie curent
a din sirul de intrare este ultimul bit al sirului
deja extras, deci pozitia 5, bitul 0. Procedeul continu
a n mod analog.
Pentru decodare, fiecare nou cuvnt de cod implic
a scrierea unei noi intr
ari n tabelul
de codare (dictionar) n care sirul de simboluri este format din prefix (sirul de simboluri
care se g
aseste n dictionar la intrarea precizat
a de cuvntul de cod) si o terminatie de 1
bit, a c
arei valoare rezult
a la primirea cuvntului de cod urm
ator (s
a nu uit
am c
a sirurile
succesive de simboluri ce se codeaz
a au n comun ultimul, respectiv primul bit).
Metoda Ziv-Lempel a pus bazele unei clase mai largi de metode de compresie, incluznd
printre altele si varianta LZW (Lempel-Ziv-Walsh) folosit
a de utilitarul de compresie ZIP.

7.2

Compresia imaginilor cu nivele de gri

Cea mai imediat


a metod
a de codare a unei imagini cu nivele de gri este de a o considera ca un sir de biti si de aplica metodele de codare pentru imagini binare: fie pentru
99

fiecare plan de bit al reprezent


arii binare a nivelor de gri, fie pentru succesiunea de biti
a reprezent
arilor nivelelor de gri. Asemenea abord
ari produc cod
ari f
ar
a pierderi a imaginilor si nu produc ntotdeauna rezultate spectaculoase. O mult mai mare amploare a
c
ap
atat clasa de metode de compresie cu pierderi [controlabile].

7.2.1

Codarea predictiv
a

Codarea predictiv
a se bazeaz
a pe existenta unei importante corelatii spatiale ntre valorile
pixelilor unei imagini (deci valorile pixelilor vecini sunt asem
an
atoare). Aceast
a corelatie
poate implica, de exemplu, c
a valoarea unui pixel poate fi aproximat
a cu o combinatie
a valorilor unora dintre vecinii s
ai. Dac
a se stabileste o ordine de parcurgere a pixelilor
ce formeaz
a imaginea (deci dac
a se stabileste o ordine de baleiere a imaginii) si pentru
aproximarea valorii pixelului curent se folosesc pixeli vecini spatial lui, parcursi anterior,
spunem c
a prezicem valoarea pixelului curent. Predictia se realizeaz
a printr-o functie,
care, cunoscut
a la nivelul ntregii imagini permite determinarea unei variante aproximative a imaginii date cunoscnd doar un num
ar mic de pixeli de start. Pentru a avea o
codare ct mai precis
a, se folosesc si erorile dintre valorile prezise si cele reale; codarea
asociat
a imaginii initiale va contine deci functia de predictie, valorile de start si erorile
de aproximare ale fiec
arui punct. Dac
a predictorul este determinat n mod corect, atunci
eroarea de predictie e(n) este mic
a si reprezentarea ei necesit
a mult mai putini biti dect
reprezentarea valorii originale u(n). Schema de codare cu predictie este reprezentat
a n
figura 7.1.

Fig. 7.1: Schema de codare cu predictie.


Ecuatiile ce descriu procesul sunt ecuatia erorii (7.5) (care exprim
a eroarea de aproximare e(n) ca diferenta ntre valoarea corect
a u(n) si valoarea prezis
a u(n)) si ecuatia de
predictie (7.6) (ce exprim
a modul n care se determin
a valoarea aproximativ
a u(n) din
valorile anterioare u(n k1 ), u(n k2 ), ... pe baza predictorului pred):
e(n) = u(n) u(n)
100

(7.5)

u(n) = pred (u(n k1 ), u(n k2 ), ...)

(7.6)

Procesul de decodare este reprezentat schematic n figura 7.2. Eroarea de predictie eq (n)
(cuantizat
a) este adunat
a la valoarea aproximativ
a u (n), determinat
a cu acelasi predictor
pred din valorile u (n) deja calculate.

Fig. 7.2: Schema de decodare cu predictie.


Predictorii cei mai simpli sunt liniari si sunt invariati la schimbarea punctului curent.
Predictorii pe linii sau coloan
a calculeaz
a aproximarea n punctul curent u(m, n) al imaginii ca valoarea anterioar
a de pe aceeasi linie u(m, n) = u(m, n 1) sau de pe aceeasi
coloan
a u(m, n) = u(m 1, n) (dac
a ordinea de baleiaj este cea uzual
a). Se mai pot folosi
predictori de tip valoare medie:
u(m, n) =
u(m, n) =

1
(u(m 1, n) + u(m, n 1))
2

1
(u(m 1, n) + u(m, n 1) + u(m 1, n 1) + u(m 1, n + 1))
4

(7.7)
(7.8)

Un caz particular de codare cu predictie este modulatia delta, caracterizat


a de cuantizarea
erorii de predictie (aproximare) e(n) cu un singur bit (bit de semn).

7.2.2

Compresia imaginilor cu transformate

Principiul compresiei cu transformate a imaginilor se bazeaz


a pe propriet
atile de compactare a energiei si decorelare a componentelor spectrale pe care le prezint
a majoritatea
transform
arilor integrale unitare (discutate n sectiunea 4.2). Atta vreme ct cea mai
mare parte a energiei este distribuit
a n cteva componente spectrale (de joas
a frecventa),
toate celelalte pot fi ignorate; astfel memoria necesar
a reprezent
arii este mult mai mic
a.
Este evident c
a o asemenea metod
a de compresie este cu pierderi.

101

Aplicarea practic
a a compresiei cu transformate trebuie s
a aib
a n vedere trei aspecte:
alegerea transformatei, stabilirea frecventei limit
a de la care ncepe ignorarea valorilor si,
n fine, cuantizarea componentelor spectrale p
astrate.
Transformarea optimal
a trebuie s
a decoreleze complet componentele spectrale (asigurnd
astfel si compactarea maxim
a a energiei si cea mai bun
a eroare de aproximare prin
truncherea frecventelor nalte). Decorelarea complet
a este dependent
a de propriet
atile
statistice ale imaginii (matrice de covariatie), deci, teoretic, pentru fiecare imagine n
parte, trebuie g
asit
a transformarea optimal
a. Aceast
a transformare este transformata
Karhunen-Loeve: transformare integral
a unitar
a a c
arei matrice de transformare are pe
coloane vectorii proprii normati ai matricii de covariatie a imaginii. Cum aceast
a transformare este evident unic
a pentru o clas
a de imagini, n practic
a se ncearc
a g
asirea unei
aproximatii. n conditiile n care majoritatea imaginilor naturale pot fi aproximate printrun model Markov puternic corelat (exprimnd dependenta puternic
a a valorii pixelilor
de valorile vecinilor lor imediati), transformata cosinus s-a dovedit o foarte bun
a alegere.
Cuantizarea componentelor spectrale poate integra si selectia componentelor cel mai
importante: componentele de frecventa joas
a sunt cuantizate o precizie mai mare, iar
componentele de frecventa nalt
a sunt cuantizate grosier (echivalent chiar cu eliminarea acestora). Num
arul de nivele de cuantizare si distributia acestora (diferentele dintre
nivelele vecine) este adaptate statisticii semnalului (cuantizarea optim
a este cuantizarea
Loyd-Max [9], [16]).
Exemplul cel mai des folosit de compresie cu transformate este standardul de compresie
JPEG (fisiere imagine cu extensia .jpg). Imaginea este divizat
a n blocuri de 8 x 8 pixeli,
care nu se suprapun. Fiec
arui bloc i se aplic
a o transformat
a cosinus bidimensional
a,
iar cei 64 de coeficienti ai transform
arii sunt copiati ntr-un vector prin baleierea pe diagonal
a a blocului de 8 x 8 pixeli. Coeficientii sunt cuantizati n conformitate cu un
num
ar prestabilit de nivele de cuantizare (stabilit prin standard, si proportional cu factorul de calitate dorit pentru imaginea ref
acut
a). Coeficientii corespunznd frecventelor
nule (valorile medii ale blocurilor) sunt codate predictiv printr-o tehnic
a de tip DPCM
(Dierential Pulse Code Modulation). Valorile celorlalti coeficienti sunt codati entropic
(Human). Factorii de compresie ce rezult
a sunt cuprinsi n mod tipic ntre 10 si 100.
Aspectul de compresie cu pierderi (diferentele fata de imaginea original
a) se manifest
a
prin efectul de blocking: sublinierea frontierelor de separatie a blocurilor de baz
a (efect
observabil si n figura 7.3).

7.2.3

Codarea cu arbori cuaternari

Un arbore cuaternar (numit n engleza quadtree) este un arbore n care fiecare nod neterminal are exact patru descendenti.
Orice imagine p
atrat
a, de dimensiune putere a lui 2 (N = 2K ) poate fi reprezentat
a
102

Fig. 7.3: Imagine decodat


a n urma unei compresii JPEG cu raport de compresie 23
(factor de calitate 90)
(ntr-o reprezentare de tip ierarhic) pe o structur
a de arbore cuaternar. Nodurile de pe
fiecare nivel al arborelui corespund unei mp
artiri a unei zone p
atrate din imagine n patru
sferturi. R
ad
acina arborelui este asociat
a ntregii imagini (imaginii initiale), nodurile
de pe primul nivel al arborelui corespund celor patru sferturi ale imaginii, nodurile de
pe nivelul doi corespund sferturilor fiec
arui sfert anterior determinat al imaginii, si asa
mai departe. mp
artirea imaginii poate continua pn
a cnd nodurile nivelului curent al
arborelui corespund unor zone p
atrate a c
aror dimensiune este de un pixel. Adncimea
arborelui astfel obtinut este K, si fiecare pixel al imagini va corespunde unui nod terminal
(frunz
a) de pe ultimul nivel al arborelui. Fiecare nod terminal contine informatia de
valoare a pixelului la care este asociat.
Structura arborelui anterior poate fi simplificat
a prin introducerea n etapa de constructie
a unui test de uniformitate a regiunilor reprezentate de fiecare nod: dac
a regiunea p
atrat
a
considerat
a nu este uniform
a, atunci aceasta va fi descompus
a prin t
aiere n patru p
arti
egale si nodul corespunz
ator va deveni neterminal (va c
ap
ata cei patru descendenti).
Dac
a regiunea p
atrat
a considerat
a este uniform
a (deci este compus
a din pixeli de acelasi
fel), nodul respectiv devine un nod frunz
a (terminal) al arborelui (deci nu mai are descendenti). Fiecare nod terminal contine informatia de valoare a zonei de imagine la care
este asociat (vezi figura 7.4). O zon
a este considerat
a uniform
a dac
a diferenta maxim
a
de nivel de gri a pixelilor ce o formeaz
a nu dep
aseste un anumit prag impus; valoarea
zonei uniforme este media nivelelor de gri a pixelilor ce o compun.
Pentru refacerea imaginii intiale din reprezentarea arborescent
a este suficient
a alegerea
nodurilor terminale a c
aror valoare corespunde pixelilor de obiect. Adncimea la care
este plasat
a n arbore o frunz
a contine informatia de dimensiune a zonei p
atrate corespunz
atoare din imagine (o frunz
a situat
a la adncimea h corespunde unei zone p
atrate
de latur
a 2Kh pixeli). Pozitia frunzei fata de nodurile de pe acelasi nivel ce au acelasi
103

predecesor este direct determinat


a de regula de alocare a sferturilor unei zone la nodurile
descendente ale arborelui (regula de alocare trebuie s
a se p
astreze pentru ntregul arbore)
(vezi figura 7.5).
Codarea imaginii (sau a arborelui cuaternar asociat) se face prin memorarea pozitiei
n arbore a nodurilor terminale si a valorilor acestora. Pozitia n arbore a unui nod se
specific
a prin descrierea c
aii prin care se ajunge la acesta, pornind de la r
ad
acina arborelui;
aceast
a cale va contine codurile de alocare a descendentilor ce corespund avansului n
adncime n arbore.

Fig. 7.4: Exemplu de reprezentare a unei imagini binare pe un arbore cuaternar complet

Fig. 7.5: Regula de alocare a descendentilor

Principalul inconvenient al metodei de etichetare folosind arborele cuaternar este legat


de complexitatea construirii acestuia prin abordarea ierarhic
a top-down (de sus n jos)
prezentat
a; n particular, testul de uniformitate la nivelul fiec
arui bloc presupune testarea
valorilor tuturor pixelilor care compun blocul. Pe ansamblu, aceasta duce la parcurgerea
fiec
arui pixel din imagine de un num
ar de ori egal cu adncimea n arborele cuaternar al
blocului p
atrat din care face parte.
Pentru a nl
atura acest incovenient este suficient ca pixelii imaginii s
a nu mai fie parcursi
n ordinea traditional
a de baleiaj (pe linii, de la stnga la dreapta si de sus n jos), ci
104

ntr-o alt
a ordine, care s
a i prearanjaze pe grupuri ce corespund p
atratelor de diviziune
a imaginii. Un asemenea baleiaj este reprezentat de o curb
a de umplere a spatiului: un
parcurs ce trece o singur
a dat
a prin fiecare pixel al imaginii, nu se autointersecteaz
a si n
care oricare doi pixeli parcursi consecutiv sunt vecini spatial n imagine (ntr-o vecin
atate
de tip V4 sau V8 ). Curbele de umplere a spatiului sunt structuri fractale, definite prin
repetarea la diferite nivele ierarhice a unei aceleiasi structuri. Pentru baleiajul imaginilor
s-au retinut dou
a astfel de curbe: curba Peano-Hilbert (numit
a si curba Peano n U, dup
a
forma celulei sale de baz
a) (vezi figura 7.6) si curba Morton (sau curba Peano n Z) (vezi
figura 7.7).

Fig. 7.6: Ordinea de parcurgere a pixelilor pentru curba Peano n U, la dou


a nivele de
rezolutie
Dispunnd de o astfel de ordine de baleiere, este evident c
a dac
a se parcurge imaginea
n acest
a ordine, zonele p
atrate uniforme (cu pixelii de aceeasi valoare) sunt detectate
ntr-o singur
a trecere si astfel arborele cuaternar poate fi creat direct prin nodurile sale
terminale. Pentru o implementare eficient
a este ns
a necesar
a si deducerea rapid
a a
indicelui pe curba de baleiere a pixelilor, pornind de la coordonatele lor n imagine. Doar
curba Peano n Z are o asemenea relatie rapid
a de calcul, prin ntreteserea bitilor ce
dau coordonatele n imagine a punctului. Cuvntul binar ce exprim
a indicele pe curb
a
a oric
arui punct este format din bitii din coordonata vertical
a, ce vor ocupa pozitiile de
ordin par si din bitii din coordonata orizontal
a ce vor ocupa pozitiile de ordin impar
(p
astrndu-si aceeasi ordine de rang).

7.2.4

Cuantizarea vectorial
a

Cuantizarea vectorial
a este un algoritm de compresie a imaginilor ce se aplic
a asupra
unor date vectoriale si nu scalare, putnd fi interpretat ca o extensie a conceptului de
cuantizare scalar
a. Cuantizarea scalar
a asociaz
a unei multimi mari de valori numere
dintr-o multime mai mic
a (n mod tipic acestea din urm
a fiind numere naturale); asocierea
include (chiar dac
a nu explicit) operatii de tipul rotunjirii la cel mai apropiat ntreg.
Cuantizarea vectorial
a aproximeaz
a (sau rotunjeste) un grup de numere deodat
a, nu
doar unul singur. Asadar, pentru a realiza o cuantizare vectorial
a sunt necesare un set
105

Fig. 7.7: Ordinea de parcurgere a pixelilor pentru curba Peano n Z, la dou


a nivele de
rezolutie
de vectori de aproximare (inclusiv metoda prin care acestea pot fi deduse) si o regul
a de
asociere a vectorilor de intrare cu vectorii de aproximare.
S
a not
am cu xi al i-lea vector de intrare si cu j al j-lea vector de aproximare. Operatia
de cuantizare presupune nlocuirea vectorilor de intrare xi cu vectori de aproximare j ,
introducnd deci erori; pentru ca erorile (m
asurate de eroarea p
atratic
a medie) s
a fie
ct mai mici, este necesar ca pentru fiecare vector de intrare, aproximarea s
a se fac
a cu
vectorul de aproximare cel mai apropiat (n sensul distantei euclidiene). Aceasta este
regula de asociere. Dac
a exist
a n vectori de aproximare ce pot fi folositi, acestia se pot
grupa ntr-un tabel de codare (existent si la codare si la decodare), iar fiecare vector de
aproximare j va fi reprezentat doar prin indicele j (deci o alt
a aplicare a tehnicii LUT).
Dac
a vectorii de intrare au p componente, codate fiecare cu cte b biti, iar num
arul de
vectori de aproximare poate fi reprezentat pe nb biti, atunci factorul de compresie realizat
de cuantizarea vectorial
a este dat de3 :
C=

pb
nb

(7.9)

Pentru cazul imaginilor, vectorii de intrare se aleg ca blocuri p


atrate, nesuprapuse ntre
ele, din imagine. Dimensiuni uzuale ale acestor blocuri sunt 4 x 4 si 8 x 8 (rezultnd deci
vectori de intrare cu 16, respectiv 64 de componente). Dac
a consider
am cazul imaginilor
cu nivele de gri uzuale, reprezentate cu 256 nivele de gri (b = 8) si dimensiuni ale tabelei
de codare n = 256 (256 vectori de aproximare), atunci raportul de compresie este de 16,
respectiv 64.
Construirea tabelei de codare (determinarea vectorilor de aproximare) se realizeaz
a n
mod clasic prin algoritmi de clustering iterativ. n original (adic
a n limba englez
a) termenul de cluster defineste un grup, ciorchine, snop sau o clas
a de unit
ati, asem
an
atoare. Asem
anarea unit
atilor este determinat
a n mod uzual prin asociere, similaritate
sau distanta ntre unit
ati (vectori). Algoritmul de clustering este procesul prin care unei
3

Acest mod de calcul al raportului de compresie nu tine seama de necesitatea transmiterii sau memor
arii si a tabelului de codare, de dimensiune npb biti.

106

multimi de unit
ati (entit
ati) i se asociaz
a, element cu element, o informatie de apartenenta la un anumit grup. Mai general, putem interpreta procesul de clustering ca un
proces de partitionare a unui set de unit
ati ntr-un num
ar de submultimi (numite clase
sau clustere), pe baza unui anumit criteriu. Indiferent de criteriul folosit, se doreste
obtinerea unor clustere distincte, omogene si bine separate. Num
arul de clustere n care
se face mp
artirea setului de unit
ati nu este n mod obligatoriu cunoscut apriori.
Metodele de clustering iterativ distribuie obiectele (vectorii) ntr-un num
ar predefinit
de clase, repetnd testarea unor conditii pentru fiecare obiect al multimii; n functie de
ndeplinirea sau nu a respectivelor conditii, partitia existent
a la un moment dat este
declarat
a corespunz
atoare sau, n urma modific
arii aloc
arii unor unit
ati, procedeul de verificare se reia. Se poate considera c
a algoritmii iterativi fac mai multe treceri prin setul
de obiecte de partitionat, pn
a la obtinerea stabiliz
arii (convergentei) valorii criteriului
ce caracterizeaz
a calitatea partitiei.
Calitatea partitiei (a clasific
arii) este m
asurat
a de suma variantelor clusterelor (adic
a
suma distantelor de la fiecare vector la centrul clasei n care apartine, ceea ce poate fi
interpretat si ca o eroare de aproximare a vectorilor din clase prin centrul respectivei
clase). Deci functia criteriu ce trebuie minimizat
a este
n

J=

j=1

xi j

Jj =
j=1 xi j

=
j=1 i=1

uij xi j

(7.10)

n urma minimiz
arii lui J trebuie determinate valorile j (centrele claselor) si valorile
binare uij , coeficientii de apartenenta ai vectorilor i la clasele j, definiti de:
1, dac
a xi j
0, dac
a xi
/ j

uij =

(7.11)

Determinarea centrelor claselor se poate face simplu, prin anularea derivatei n raport cu
j a functiei criteriu J
J
=2
j

i=1

uij j xi = 0

(7.12)

de unde rezult
a c
a centrele claselor sunt mediile vectorilor ce apartin acestora:
N

uij xi
j =

i=1
N

(7.13)
uij

i=1

Determinarea coeficientilor de apartenenta uij este ns


a o problem
a de optimizare combinatorial
a, care nu poate fi rezolvat
a analitic. Pentru rezolvarea acestei probleme sunt
107

necesare metode iterative. Metoda imediat


a urm
areste s
a determine, pentru fiecare vector al setului, dac
a acesta poate fi mutat dintr-o clas
a n alta, astfel ca suma variantelor
claselor s
a scad
a. Dup
a fiecare asemenea mutare, este necesar
a actualizarea mediilor
claselor ntre care s-a f
acut schimbul. Iteratiile se repet
a pn
a cnd nici un vector nu mai
poate fi mutat. Algoritmul poate fi descris n etapele urm
atoare:
1. se alege o partitie aleatoare a setului de obiecte (vectori)
2. pentru fiecare vector xi din set, dac
a nu este unic n clasa sa j , se calculeaz
a costul
mut
arii n alt
a clas
a, k , k = j; acest cost este
ck =

nk
xi k
nk + 1

nj
xi j
nj 1

(7.14)

3. vectorul xi este mutat n clasa pentru care costul ck este minim; se recalculeaz
a
mediile claselor implicate n schimbare ( j si k )
4. dac
a cel putin un vector a fost mutat ntre dou
a clase, algoritmul se reia de la pasul
2.
Principalul dezavantaj al acestei abord
ari este faptul c
a mediile claselor sunt recalculate
dup
a fiecare schimbare ce implic
a fiecare vector al multimii considerate, ceea ce are ca
efect un volum mare de calcule. O simplificare a metodei provine din observatia intuitiv
a
c
a este normal ca un obiect s
a fie alocat (s
a apartin
a) clasei de care este cel mai apropiat
(n sensul distantei la media acesteia). Folosind acest
a observatie, realocarea se poate
face pentru toate obiectele considerate f
ar
a a fi nevoie de recalcularea mediilor claselor
pentru fiecare obiect; recalcularea mediilor se va face dup
a fiecare parcurgere complet
a
4
a multimii de obiecte de partitionat. Acest algoritm este algoritmul Basic ISODATA
(cunoscut si sub numele de k-means - cele k medii). Algoritmul poate fi descris de
urm
atoarele etape:
1. se alege o partitie aleatoare a setului de obiecte (vectori)
2. pentru fiecare vector xi din set, se caluleaz
a distantele sale la mediile tuturor
claselor,
dk = xi k 2
(7.15)
3. n iteratia urm
atoare, vectorul xi va fi mutat n clasa la care distanta dk este minim
a
4. dup
a parcurgerea complet
a a setului de vectori, se reactualizeaz
a mediile claselor
4

ISODATA este acronimul de la Iterative Self Organizing Data Analysis Technique - tehnic
a iterativ
a cu auto-organizare de analiz
a a datelor, ap
arut prin 1965.

108

5. dac
a (fata de iteratia anterioar
a) nici un vector nu a fost mutat n alt
a clas
a (sau
media nici unei clase nu s-a modificat), algoritmul se ncheie; dac
a nu, se reia
algoritmul de la pasul 2.
Pentru nici unul dintre algoritmii iterativi prezentati nu se poate preciza num
arul de
parcurgeri ale setului de vectori (obiecte) de partitionat. Num
arul de iteratii este puternic
dependent de alegerea partitiei initiale a vectorilor, precum si de organizarea intrinsec
a
a acestora.
Figura 7.8 prezint
a o imagine ref
acut
a dup
a o compresie prin cuantizare vectorial
a, cu
raport mare de compresie (128). Se remarc
a slaba calitate a imaginii ref
acute, cauza fiind
num
arul mic (16) de vectori de cod folositi. n imagine sunt foarte vizibile frontierele
dintre blocurile de 8 x 8 folosite.

Fig. 7.8: Imagine ref


acut
a dup
a codarea prin cuantizare vectorial
a; codarea a fost realizat
a cu blocuri de 8 x 8 pixeli; tabelul vectorilor de cod are 16 intr
ari, deci se obtine o
compresie de 128.

109

Capitolul 8
SEGMENTAREA IMAGINILOR
Segmentarea imaginilor se refer
a la descompunerea unei scene (imagini) n componentele
sale [9]. n urma procesului de segmentare vor fi extrase din imagine obiecte distincte,
regiuni ce satisfac anumite criterii de uniformitate, sau alte elemente.
n [19] se propune o definitie matematizat
a a procesului de segmentare, si anume segmentarea unei imagini f este definit
a ca partitionarea [complet
a] a lui f (8.1) ntr-un
ansamblu de multimi disjuncte nevide si conexe (8.2), ce satisfac fiecare un anumit criteriu  (8.3), criteriu ce nu mai este respectat pentru reuniunea oric
aror dou
a elemente
ale partitiei.
C

fi , fi conexe

(8.1)

a, i
fj = , i = j si fi este conex

(8.2)

f=
i=1

fi

 (fi ) = T RUE, i si  fi

fj = F ALSE, i = j

(8.3)

Alegerea unei tehnici specifice de segmentare (partitionare a imaginii) este legat


a de mai
multe aspecte caracteristice imaginii de analizat si cerintelor utilizatorului. Dup
a natura
si continutul imaginii, tehnicile de segmentare trebuie s
a tin
a cont de prezenta n imagine
a diverse categorii de artefacte:
reflexii, iluminare neomogen
a
zgomot suprapus infomatiei utile
110

zone texturate
Dup
a primitivele de extras, tehnicile de segmentare se mpart n dou
a categorii fundamentale: tehnicile de segmentare orientate pe regiuni si tehnicile de segmentare orientate
pe contur. Primitivele extrase din imagine sunt regiuni (forme) si zone texturate pentru
tehnicile orientate pe regiuni, sau entit
ati de tip discontinuitate (frontiere, segmente de
dreapt
a, unghiuri) pentru tehnicile orientate pe contur. n cadrul segment
arii orientate
pe regiuni se disting cteva categorii principale de tehnici:
etichetarea imaginilor binare
segmentarea pe histogram
a
cresterea si fuziunea regiunilor
segmentarea texturilor
segmentarea prin metode de clustering
Tehnicile principale de segmentare orientat
a pe contururi sunt:
extragerea contururilor prin metode de gradient si derivative
extragerea contururilor prin metode neliniare
extragerea contururilor prin metode liniare optimale
extragerea contururilor prin modelare matematic
a
n cele ce urmeaz
a se prezint
a doar o parte dintre aceste tehnici, pe care le consider
am
cele mai semnificative.

8.1
8.1.1

Segmentarea orientat
a pe regiuni
Segmentarea bazat
a pe histogram
a

n general, operatia de segmentare orientat


a pe regiuni urm
areste extragerea din imagine a
zonelor (regiunilor) ocupate de diferitele obiecte prezente n scen
a. Un obiect se defineste
ca o entitate caracterizat
a de un set de parametri ale c
aror valori nu se modific
a n

111

diferitele puncte ce apartin entit


atii considerate. Mai simplu, putem spune c
a obiectul
are proprietatea de uniformitate a parametrilor de definitie.
Unul dintre cei mai simpli parametri de definitie este nivelul de gri al punctului. Nivelul
de gri corespunde n scen
a unei propriet
ati fizice [9] (reflectanta, transmitivitate, valoare
tristimulus, etc.) ce este preluat de senzorul de imagine si asociat luminantei imaginii. n
acest caz, histograma imaginii (functia de densitate de probabilitate a variabilei aleatoare
discrete ale c
arei realiz
ari sunt nivelele de gri din imagine) reflect
a distributia n scen
a
a propriet
atii fizice nregistrate. Pentru o imagine f de M N pixeli si L nivele de gri,
histograma este definit
a (8.4) ca probabilitatea de aparitie n imagine a diferitelor nivele
de gri posibile.

h(i) =

1
MN

M1 N1
m=0 n=0

(i f(m, n)) , i = 0, 1, ...L 1

(8.4)

Dac
a nivelul de gri (respectiv proprietatea fizic
a pe care acesta o reprezint
a) caracterizeaz
a n mod suficient obiectele din scen
a, histograma imaginii va prezenta o structur
a de
moduri dominante - intervale de nivele de gri ce apar cu probabilitate mai mare. Fiecare
asemenea mod (maxim al histogramei) va reprezenta o anumit
a categorie de obiecte.
Ca exemplu imediat se poate cita cazul imaginilor obtinute prin scanarea documentelor
scrise si a tip
ariturilor sau imaginile n infrarosu (temperatura punctelor este asociat
a
nivelelor de gri astfel nct mai fierbinte nsemn
a mai alb). Pentru toate aceste tipuri de
imagini histograma este de tipul celei prezentate n figura 8.1.
0.015
0.01
0.005
0
0

50

100

150

200

250

300

Fig. 8.1: Histogram


a bimodal
a

Tehnici de pr
aguire (thresholding)
Separarea modurilor histogramei (si deci identificarea obiectelor din imagine, respectiv
caractere scrise / pagini albe si obiecte fierbinti / obiecte reci) se face prin alegerea unui
112

nivel de gri T , numit prag de segmentare. Acest prag de segmentare se alege pe minimul
global al histogramei. Din imaginea initial
a f de nivele de gri se construieste o imagine
de etichete (imagine etichetat
a) g, conform transform
arii descrise de (8.5) (vezi figura
8.2).

g(m, n) =

E0 , 0 f (m, n) < T
E1 , T f(m, n) < L

(8.5)

aror nivel de
Imaginea etichetat
a va fi descris
a de dou
a etichete: E0 pentru punctele al c
gri este mai mic dect pragul T si E1 pentru punctele al c
aror nivel de gri este mai mare
dect pragul T . Etichetele E0 si E1 pot fi valori numerice (0 si 1, sau 0 si 255) sau pot fi
siruri de simboluri sau alti identificatori.

Fig. 8.2: Transform


ari punctuale de binarizare.
Transformarea (8.5) este o transformare punctual
a (noua valoare din punctul (m, n) depinde doar de valoarea anterioar
a din punctul (m, n)) si poart
a numele de binarizare.
Aceast
a denumire provine din faptul c
a rezultatul transform
arii (imaginea etichetat
a)
este o imagine binar
a - deci o imagine caracterizat
a doar de dou
a valori. Se poate remarca
de asemenea faptul c
a binarizarea este un caz particular al transform
arii de modificare
liniar
a a contrastului (2.2), n care limitele domeniilor de contrastare sunt egale (T1 = T2 )
si contrastarea se face la valorile limit
a ale nivelelor de gri ( = 0, = L 1)1 .
Segmentarea pe histogram
a (numit
a si pr
aguire sau thresholding) semnific
a determinarea
unor nivele de gri ce separ
a modurile histogramei. Tuturor punctelor din imagine al c
aror
nivel de gri corespunde unui acelasi mod, li se asociaz
a o aceeasi etichet
a (num
ar, sir de
simboluri), rezultnd o imagine etichetat
a, ce pune n evidenta diferitele obiecte ale scenei
initiale.
1

Exist
a ns
a si o variant
a de binarizare cu dou
a praguri (transformare punctual
a numit
a decupare slicing), (figura 8.2) definit
a de ecuatia urm
atoare:
g(m, n) =

E0 , dac
a f(m, n) < T1 sau f (m, n) > T2
E1 , n rest

113

n cazul general al existentei a mai multe praguri de segmentare Tk , transformarea de


segmentare pe histogram
a este descris
a de (8.6)
g(m, n) = Ek

dac
a Tk f (m, n) < Tk+1

(8.6)

unde T0 = 0 , TC = L , k = 0, 1, ..., C 1.
Pragurile Tk se aleg prin inspectia histogramei, n minimele locale ale acesteia. Acest tip
de segmentare multinivel este mai putin eficient dect binarizarea, din cauza dificult
atii
de stabilire a pragurilor care s
a izoleze eficient intervalele de interes din histogram
a, mai
ales atunci cnd num
arul modurilor este mare. Trebuie de asemenea remarcat faptul c
a
este necesar
a cunoasterea num
arului de tipuri de obiecte din imagine, pentru alegerea
corespunz
atoare a num
arului de praguri de segmentare. n marea majoritate a cazurilor,
segmentarea obtinut
a nu este corect
a (exist
a regiuni prost etichetate); ca o regul
a general
a de mbun
at
atire a performantelor, se recomand
a aplicarea, naintea segment
arii, a
unor operatii de filtrare (eliminare a zgomotului), contrastare, mbun
at
atire, netezire a
histogramei - numite preproces
ari.
n general, se admite clasificarea metodelor de segmentare pe histogram
a [5] dup
a atributele global, local si dinamic. Aceste atribute se refer
a la modul de calcul al pragurilor de
segmentare Tk n functie de nivelul de gri din fiecare punct al imaginii f (m, n), coordonatele punctelor din imagine (m, n) si o anumit
a proprietate local
a p(m, n) a punctului
(m, n), conform (8.7):
Tk = Tk (f(m, n), p(m, n), (m, n))

(8.7)

Segmentarea se numeste global


a dac
a pragurile depind doar de nivelele de gri ale punctelor
imaginii:
Tk = Tk (f (m, n))

(8.8)

Segmentarea multinivel descris


a de (8.6) este n mod evident o metod
a de tip global.
Segmentarea se numeste local
a dac
a pragurile depind de nivelul de gri si de anumite
atribute locale calculate pentru vecin
at
ati ale fiec
arui punct:
Tk = Tk (f (m, n), p(m, n))

(8.9)

Segmentarea se numeste dinamic


a dac
a pragurile depind de pozitionarea punctelor n
imagine (forma cea mai general
a a modului de deducere pragurilor) (8.7).
114

Determinarea automat
a a pragurilor: metoda Bhattacharya
Metoda Bhattacharyya se bazeaz
a pe descompunerea histogramei n moduri individuale
Gaussiene, adic
a se ncearc
a exprimarea histogramei imaginii ca o sum
a ponderat
a de
functii de densitate de probabilitate de tip normal (Gaussian). Modelarea modurilor
histogramei imaginilor prin distributii normale este o presupunere ce se ntlneste n
multe tehnici de prelucrare si analiz
a si pare a fi justificat
a de considerarea imaginii ca
provenind dintr-o imagine ideal
a, n care fiecare tip de obiect este reprezentat de un unic
nivel de gri, peste care s-a suprapus un zgomot alb, aditiv, gaussian. n acest mod, mediile
modurilor din histogram
a corespund nivelelor de gri ce caracterizeaz
a obiectele scenei, iar
variantele acestor moduri sunt determinate de zgomotul suprapus imaginii (care nu este
obligatoriu s
a afecteze n acelasi mod toate nivelele de gri).
Pentru segmentarea dup
a metoda Bhattacharyya nu este necesar
a precizarea unui num
ar
de clase (praguri de segmentare), acesta urmnd a fi determinat n mod automat. Ideea de
plecare a metodei este de a determina parametrii caracteristici ai unei distributii normale.
Pentru o distributie normal
a
2

(xk )

1
2
N(k , k )(x) = e 2k
k 2

derivata logaritmului este:

ln N(k , k )(x)
x
= 2 + k2 = mk x + nk
x
k k

(8.10)

Se observ
a prin examinarea expresiei (8.10) c
a derivata logaritmului distributiei normale
este o dreapt
a de pant
a negativ
a, din ai c
arei parametri se pot deduce media si varianta
distributiei. Parametrii statistici ai distributiei sunt dati de ecuatiile (8.11).

k =

1
nk
, si k =
|mk |
|mk |

(8.11)

Aceast
a observatie poate fi aplicat
a si pentru o mixtur
a de distributii normale. S
a consider
am c
a histograma h a imaginii este compus
a prin superpozitia aditiv
a a C moduri
gaussiene N (k , k ) , adic
a:
C

h(x) =

wk N(k , k )(x)
k=1

Din parametrii dreptei se pot determina deci conform (8.11) parametrii statistici ai distributiei locale.
115

0.01
0.008
0.006
0.004
0.002
0
0

50

100

150

200

250

300

Fig. 8.3: Histogram


a cu trei moduri normale

0.3
0.2
0.1
0
-0.1
0

50

100

150

200

250

300

Fig. 8.4: Aplicarea metodei Bhattacharyya pentru histograma trimodal


a prezentat
a anterior; se pot observa intervalele pe care functia este liniar
a si descresc
atoare, ce corespund
modurilor.

116

Asadar, pentru aplicarea metodei la segmentarea pe histogram


a a imaginilor, se va studia
comportamentul derivatei logaritmului histogramei, adic
a a functiei z(a):

z(a) = ln

h(a)
, a = 1, L 1
h(a 1)

(8.12)

Pentru functia astfel construit


a, se determin
a intervalele pe care acesta este descresc
atoare
(vezi figura 8.4); limitele superioare ale acestor intervale sunt pragurile Tk de segmentare
pe histogram
a. Suplimentar, pe fiecare dintre aceste intervale se poate face o aproximare
liniar
a a punctelor si pe baza parametrilor dedusi pentru dreapta de aproximare se pot
calcula, conform (8.11) parametrii statistici locali.
Principalele inconveniente ale metodei deriv
a din faptul c
a presupunerea alc
atuirii histogramei imaginii numai din moduri gaussiene nu este ntotdeauna adev
arat
a. Ca rezultat, metoda Bhattacharrya va identifica un num
ar mai mare de praguri dect este necesar,
producnd fenomenul de suprasegmentare.

Segmentarea cu prag optim


Metoda de segmentare cu prag optim [5], [3], [19] face apel la teoria deciziilor (criteriul
de decizie Bayes) pentru stabilirea valorii pragurilor de segmentare ce optimizeaz
a un
anumit criteriu de eroare. Informatiile apriori necesare pentru aplicarea unei asemenea
tehnici sunt num
arul de tipuri de obiecte din imagine, C, procentele de ocupare a imaginii
de c
atre fiecare tip de obiecte, Pi si distributia nivelelor de gri ce caracterizeaz
a fiecare tip
de obiect, pi (x). Atunci histograma imaginii va fi determinat
a de mixtura distributiilor
tipurilor de obiecte:
C

Pi pi (x),

h(x) =
i=1

Pi = 1

(8.13)

i=1

Cazul cel mai simplu si mai des folosit este cel al binariz
arii (8.5), n care trebuie determinat un unic prag T ce separ
a distributiile celor dou
a tipuri de obiecte din imagine
(n mod tipic, obiecte utile si fundal). Criteriul ce se urm
areste optimizat este eroarea
de segmentare (clasificare) a punctelor din imagine, adic
a este dat de num
arul de pixeli
ce apartin primului tip de obiect, dar au nivelul de gri mai mare ca pragul T (fiind deci
alocati gresit celui de-al doilea tip de obiect) si num
arul de pixeli ce apartin celui de-al
doilea tip de obiect, dar au nivelul de gri mai mic dect pragul de segmentare T (fiind
deci alocati gresit primului tip de obiect). Asadar, eroarea de segmentare va fi dat
a de
(8.14):

117

E(T ) = P1

p1 (x)dx + P2

(8.14)

p2 (x)dx

Pragul optim va minimiza eroarea de segmentare a pixelilor. Minimizarea erorii (8.14)


conduce la rezolvarea ecuatiei (8.15), n necunoscuta T .
E(T )
=0
T

(8.15)

Derivnd (8.14) se obtine forma echivalent


a a ecuatiei (8.15):
(8.16)

P1 p1 (T ) = P2 p2 (T )

Dup
a cum am mentionat si n sectiunea dedicat
a tehnicilor de segmentare ce nu folosesc
informatii apriori despre imagine (metoda Bhattacharyya), presupunerea c
a distributia
nivelelor de gri a diferitelor tipuri de obiecte este de tip normal (Gaussian) este relativ
des ntlnit
a. n aceste conditii, distributiile p1 (x) si p2 (x) sunt distributii normale,
N1 (1 , 1 )(x) si N2 (2 , 2 )(x), iar ecuatia (8.16) devine:
2

(T 1 )
(T 2 )

1
1
2
2
P1 e 21 = P2 e 22
1 2
2 2

Prin logaritmare, se obtine urmatoarea ecuatie de gradul 2 n necunoscuta T :


T2

1
1
2
2
1 2

2T

1 2

21 22

21 22

21 22

2 ln

P1 2
=0
P2 1

Una dintre simplific


arile uzuale este presupunerea c
a 1 = 2 = ; aceast
a presupunere
implic
a modelarea imaginii n nivele de gri ca o imagine cu doar dou
a nivele de gri 1 si
2 , afectat
a de un zgomot Gaussian aditiv, avnd varianta 2 . n aceste conditii, ecuatia
de gradul 2 devine o ecuatie liniar
a, a carei solutie este:
T =

1 + 2
2
P1

ln
2
1 2 P2

Metoda se poate extinde si pentru imagini ce contin mai mult de dou


a tipuri de obiecte;
n acest caz este ns
a necesar
a presupunerea suplimentar
a de localizare a modurilor, astfel
nct s
a se poat
a considera, ca si n cazul metodei Bhattacharyya, c
a influenta fiec
arui
mod este limitat
a la intervale nesuprapuse de nivele de gri.
118

8.1.2

Cresterea si fuziunea regiunilor

Pentru aplicarea cu succes a tehnicilor de segmentare pe histogram


a prezentate anterior
trebuiesc ndeplinite neap
arat cteva conditii (deja enuntate). Aplicarea tehnicilor de
segmentare pe histogram
a este conditionat
a n primul rnd de reprezentarea diferitelor
clase de obiecte din imagine pe intervale de nivele de gri diferite care nu se suprapun (sau
se suprapun partial pe portiuni foarte mici); apoi este necesar
a cunoasterea num
arului
de tipuri de obiecte diferite. n fine, se presupune c
a valorile prag corespunz
atoare se pot
determina cu o precizie corespunz
atoare.
Chiar n cazurile n care toate aceste conditii enuntate sunt ndeplinite, nu se poate
garanta conditia de conexitate a regiunilor obtinute n urma segment
arii (8.2). Acest lucru
este evident, att timp ct dou
a obiecte de acelasi tip, neconexe, primesc prin segmentarea
pe histogram
a o aceeasi etichet
a, si formeaz
a n imaginea de etichete o regiune neconex
a.
O metod
a care respect
a toate conditiile impuse de definitia metematic
a a segment
arii, si
anume (8.1), (8.2) si (8.3), este cresterea regiunilor.

Cresterea regiunilor
Principiul pe care se bazeaz
a cresterea regiunilor este simplu: se aleg n imagine puncte
reprezentative pentru fiecare obiect individual si categorie de obiecte, pe baza c
arora
are loc un proces de aglomerare a pixelilor vecini acestora, ce au aceleasi propriet
ati
(n particular acelasi nivel de gri). n urma acestui proces de aglomerare (ad
augare de
puncte) se obtin zone (regiuni) de pixeli cu aceleasi caracteristici, deci obiecte individuale.
Procesul se opreste n momentul n care fiecare punct al imaginii a fost alocat unei regiuni.
Evident, metoda astfel descris
a pe scurt, are dou
a etape esentiale: alegerea punctelor de
start (puncte initiale), numite germeni sau seminte, si cresterea propriu-zis
a a regiunilor
[19], [2].
Num
arul final de regiuni rezultate este egal cu num
arul de germeni alesi initial pentru
crestere. n principiu, este de dorit ca fiecare obiect individual aflat n imagine s
a fie
marcat de cte un germene. Dac
a n interiorul unui aceluiasi obiect se g
asesc mai multi
germeni, pentru fiecare dintre ei va fi crescut
a o regiune; acesta face ca obiectul initial
s
a fie mp
artit artificial prin segmentare n mai multe regiuni. Partial, acest neajuns se
poate corecta printr-o etap
a ce urmeaz
a cresterii regiunilor, si anume fuziunea regiunilor
adiacente ce au propriet
ati asem
an
atoare. Dac
a n interiorul unui obiect nu este ales nici
un germene, obiectul respectiv va fi nglobat de regiunile ce cresc pornind de la germeni
din vecin
atatea sa spatial
a; astfel, respectivul obiect nu apare ca o regiune distinct
a si
este pierdut, rezultnd o eroare grav
a de segmentare.
Pentru a preveni efectul unor neuniformit
ati de iluminare pe suprafata imaginii, acesta
este mp
artit
a n ferestre nesuprapuse; n fiecare astfel de fereastr
a se alege un num
ar
de germeni, al c
aror plasament spatial este aleator (germenii se distribuie uniform pe
119

suprafata imaginii). Germenii se aleg astfel nct nivelul lor de gri s


a fie reprezentativ
pentru obiectele prezente local (deci nivelul de gri al germenilor trebuie s
a corespund
a
unor maxime ale histogramei locale). n plus, trebuie verificat ca plasamentul spatial
al germenilor s
a se fac
a n interiorul regiunilor si nu pe frontiera acestora. Verificarea
se poate face simplu pe baza calculului unui operator derivativ local, ca de exemplu
laplacianul (37); dac
a valoarea acestuia nu dep
aseste un anumit procent prestabilit (10%
- 20%) din diferenta maxim
a de nivele de gri a ferestrei, punctul ales este considerat ca
plasat corect.
O verificare suplimentar
a ncearc
a s
a previn
a o eventual
a suprasegmentare2 (mp
artirea
artificial
a a unui acelasi obiect n mai multe regiuni), eliminnd germenii plasati n interiorul aceluiasi obiect. Verificarea se face pe baza calculului variatiei nivelelor de gri de-a
a exist
a o cale ce uneste
lungul drumurilor3 arbitrare ce unesc perechi de germeni. Dac
doi germeni de-a lungul c
areia nivelul de gri nu variaz
a cu mai mult de 20% - 30% din
diferenta maxim
a a nivelelor de gri din ferestr
a, cei doi germeni sunt plasati n interiorul unei zone de nivele de gri uniforme, deci n interiorul unui acelasi obiect. n aceste
conditii unul dintre cei doi germeni ai perechii este eliminat, deoarece este redundant.
Dac
a de-a lungul tuturor c
ailor ce unesc perechea de germeni nivelul de gri variaz
a mai
mult dect pragul ales, atunci se consider
a c
a cei doi germeni sunt plasati n interiorul
unor obiecte diferite (deoarece c
aile ce unesc germenii traverseaz
a regiuni de frontier
a).
n practic
a, examinarea tuturor drumurilor (c
ailor) ce unesc perechi de germeni este extrem de costisitoare din punctul de vedere al timpului de calcul. De aceea se verific
a doar
c
aile formate din segmente verticale si orizontale, si eventual, dreapta ce uneste cele dou
a
puncte (dac
a aceast
a dreapt
a poate fi reprezentat
a de o secventa de puncte conexe) (vezi
figura 8.5).
Valorile procentuale ale pragurilor de comparatie, precum si num
arul de germeni distincti
ce r
amn dup
a procesul de reducere, nu trebuie considerate ca fixe; nu exist
a valori standardizate si alegerea acestora se face pe baza conditiilor particulare (legate de continutul
imaginii) si a experientei utilizatorului.
Pornind de la germenii alesi, regiunile sunt obtinute printr-un proces de crestere aproape
simultan
a, nceput de la acestia, pn
a cnd toti pixelii imaginii sunt repartizati unei
regiuni. Cvasi-simultaneitatea cresterii poate fi realizat
a cu un algoritm serial, prin alocarea pixelilor ce sunt adiacenti (vecini) zonelor deja segmentate. Acest
a alocare trebuie
s
a tin
a seama de criteriul ca regiunile crescute s
a fie uniforme: nivelul de gri al pixelului
ce se adaug
a nu trebuie s
a difere cu mai mult de un prag prestabilit fata de nivelul de gri
al germenului regiunii la care se aloc
a. n acelasi timp, la o singur
a trecere, num
arul de
puncte ce se adaug
a unei regiuni nu poate dep
asi un num
ar prestabilit (conditia ncearc
a
2

n general, prin suprasegmentare se ntelege partitionarea imaginii ntr-un num


ar de regiuni mai
mare dect num
arul de obiecte. Exist
a si notiunea reciproc
a de subsegmentare: mp
artirea imaginii
ntr-un num
ar de regiuni mai mic ca num
arul de obiecte.
3
Un drum ntre dou
a puncte ale imaginii este o secventa ordonat
a de puncte ale imaginii, vecine dou
a
cte dou
a (relativ la un anumit tip de conexitate, V4 sau V8 ), care are drept capete punctele considerate.

120

Fig. 8.5: Reducerea num


arului de germeni: germenii 1 si 2 sunt uniti de o cale cu segmente
paralele cu orizontala si verticala de intensitate constant
a, deci sunt redundanti; germenii
3 si 4 sunt uniti de o cale dreapt
a de aceesi intensitate, deci sunt redundanti; orice cale
ce uneste germenii 1 si 3 are o diferenta mare de intensitate.
s
a asigure cresterea relativ uniform
a si izotrop
a a tuturor regiunilor).
Dac
a ad
augarea de noi pixeli se blocheaz
a (criteriul de uniformitate nu mai este respectat),
diferenta maxim admis
a pentru nivelul de gri poate fi crescut
a n etape, pn
a la epuizarea
pixelilor imaginii.
Avantajele pe care le are o asemenea tehnic
a de crestere a regiunilor sunt acelea c
a nu
mai este necesar
a nici o informatie privind continutul imaginii, regiunile crescute sunt
conexe si nu exist
a puncte neetichetate (nealocate vreunei regiuni) si pozitia frontierelor
dintre diferitele regiuni corespunde pozitiei frontierelor percepute subiectiv n imagine.

Fuziunea regiunilor
O extindere a principiului utilizat n cresterea regiunilor, si anume ad
augarea la o regiune
a unor entit
ati (pixeli n acest caz) a c
aror propriet
ati sunt similare cu cele ale unui obiectului de baz
a (regiunea), se afl
a la baza tehnicilor de fuziune a regiunilor [9]. Fuziunea
regiunilor const
a n reunirea iterativ
a a regiunilor adiacente (ncepnd de la nivelul unor
entit
ati atomice ale imaginii - deci pixelii) pn
a cnd regiunile adiacente devin suficient
de diferite. Procesul de fuziune a regiunilor poate fi aplicat si n urma unei cresteri a
regiunilor, pentru a nl
atura efectele unei eventuale suprasegment
ari. Exist
a mai multe
criterii de fuziune a regiunilor adiacente, a c
aror actiune de verificare a deosebirii ntre
regiuni se face fie prin inspectia frontierei comune, fie prin caracterizarea interiorului
regiunii.
Pentru dou
a regiuni adiacente Ri si Rj , al c
aror perimetru este P erim(Ri ) si P erim(Rj ),
putem determina Pm = min (P erim(Ri ), P erim(Rj )) si P lungimea frontierei comune4 .
4

Lungimea frontierei comune poate fi m


asurat
a fie ca perimetru, fie ca num
ar de puncte ce o compun.

121

Pe aceast
a frontier
a comun
a se disting puncte slabe (n num
ar de ns ) si puncte tari (n
num
ar de nt ). Un punct slab este acel punct pentru care diferenta nivelelor de gri ntre
vecinii din regiunile adiacente este foarte mic
a (mai mic
a dect un anumit prag fixat). Un
punct tare este acel punct pentru care diferenta de nivele de gri ntre vecinii din regiunile
adiacente este foarte mare (mai mare ca un anumit prag fixat). Cu aceste notatii, criteriile
de fuziune a regiunilor Ri si Rj sunt:
dac
a num
arul de puncte slabe raportat la perimetrul minim este important,
dac
a num
arul de puncte slabe de pe frontiera comun
a este mare,
dac
a num
arul de puncte tari de pe frontiera comun
a este mic,

nt
P

ns
P

ns
Pm

> 1

> 2

< 3 .

Parametrul 1 controleaz
a dimensiunea regiunilor ce se unesc si se alege n general cu
valoarea 0.5 (de exemplu o valoare apropiat
a de 1 implic
a unirea a dou
a regiuni numai
dac
a una dintre ele este aproape nconjurat
a de cealalt
a). Valori tipice pentru parametrii
2 si 3 sunt 0.75 si 0.2.
Abordarea fuziunii pe baza caracteriz
arii interiorului regiunilor necesit
a definirea a dou
a
componente: o modalitate de caracterizare a propriet
atilor regiunilor si o modalitate de
a defini apropierea sau similaritatea dintre tr
as
aturi n termeni numerici.
Vectorul de tr
as
aturi ce caracterizeaz
a o regiune se compune din momente statistice ale
variabilei aleatoare ale c
arei realiz
ari particulare sunt nivelele de gri din regiune repectiv
a;
nu pot lipsi din acest vector nivelul de gri mediu al regiunii si varianta acestuia.
n [9] se propun patru functii de m
asur
a a asem
an
arii ntre perechi de vectori; pentru doi
vectori xi si xj , avnd aceeasi dimensiune, acestea se definesc ca:
F1 (xi , xj ) = xi , xj (produsul scalar dintre vectori)
xi , xj
(similaritatea dintre vectori)
xi , xi + xj , xj xi , xj
xi , xj
F3 (xi , xj ) =
(corelatia normalizat
a dintre vectori)
xi , xi xj , xj

F2 (xi , xj ) =

F4 (xi , xj ) = (xi xj ) A (xi xj )T

(distanta generalizat
a dintre vectori, unde A este o matrice pozitiv definit
a)
Pentru primele trei functii, o valoare mai mare corespunde unei asem
an
ari mai mari
ntre vectori (valorile maxime pentru F2 (xi , xj ) si F3 (xi , xj ) sunt 1). Pentru functia de
similaritate bazat
a pe distanta generalizat
a, o valoare mai mic
a corepunde unei asem
an
ari
mai puternice ntre vectori. Prin particularizarea matricii A se pot obtine diferite distante,
ca distanta Euclidian
a obisnuit
a (A fiind matricea unitate, A = I), distante Euclidiene
ponderate (dac
a A este o matrice diagonal
a), sau distanta Mahalanobis (dac
a A este o
matrice de covariatie a componentelor).
122

8.2

Segmentarea orientat
a pe contururi

ntr-o imagine, variatiile de valoare ale pixelilor reprezint


a schimb
ari ale propriet
atilor
fizice sau geometrice ale scenei sau ale obiectului observat. Aceste schimb
ari pot corespunde fizic la variatiile ilumin
arii, schimb
arile de orientare sau de distanta fata de
observator, schimb
ari de reflectanta ale suprafetelor, variatii de absorbtie a radiatiei.
ntr-un num
ar mare de cazuri, aceste variatii de intensitate sunt informatii importante
pentru operatiile ce urmeaz
a segment
arii, informatii ce corespund frontierelor regiunilor
determinate de obiectele scenei.

8.2.1

Metode derivative

Principiul acestei metode const


a n definirea punctelor de contur ca fiind acei pixeli ai
imaginii n care apar schimb
ari importante (abrupte) ale nivelului de gri. Deci, m
asurarea
acestei variatii se va face prin operatori derivativi de tip gradient.
Pentru o imagine cu suport spatial continuu, pe directia unei muchii, derivata va fi
maxim
a. Derivata imaginii pe directia r, ce face unghiul cu orizontala, este dat
a
de combinatia liniar
a a derivatelor partiale pe directiile orizontal
a si vertical
a (8.17):
f
f x f y
f
f
=
+
=
cos +
sin
r
x r
y r
x
y
f
= fx cos + fy sin
(8.17)
r
Valoarea maxim
a a acestei derivate, calculate dup
a unghiul este determinat
a de ecuatia

f
r

= fx sin + fy cos = 0

ce are solutia evident


a:
0 = arctan

fy
fx

(8.18)

Pe aceast
a directie, modulul gradientului este:
f
r

fx2 + fy2

(8.19)

max

Din punct de vedere practic, implementarea acestei metode implic


a atunci calcularea,
pentru fiecare punct al imaginii, a derivatelor partiale fx si fy , calcularea modulului
gradientului maxim (8.19) si a directiei acestuia (8.18). Valoarea gradientului maxim din
fiecare punct al imaginii este apoi comparat
a cu un prag fixat: dac
a pragul este dep
asit
123

(deci gradientul maxim n pixelul respectiv este suficient de important) atunci pixelul
testat este pixel de contur.
Realizarea derivatelor partiale dup
a directiile orizontal
a si vertical
a implic
a translatia n
discret a lui fx si fy :
f (m, n)
f
fx =
=
x
m
f
f (m, n)
fy =
=
y
n
Aceste derivate partiale discrete pot avea mai multe implement
ari:
fx = f (m, n) f(m + 1, n), fy = f (m, n) f (m, n + 1)

(8.20)

fx = f (m 1, n) f(m, n), fy = f (m, n 1) f(m, n)

(8.21)

fx = f (m 1, n) f(m + 1, n), fy = f (m, n 1) f(m, n + 1)

(8.22)

Toate expresiile date de (8.20), (8.21), (8.22) sunt combinatii liniare ale valorilor unor
pixeli din imagine, situati n vecin
atatea pixelului curent din pozitia (m, n). Deci toate
aceste operatii se pot realiza prin filtr
ari liniare cu m
asti potrivite: (8.23) pentru (8.20),
(8.24) pentru (8.21), (8.25) pentru (8.22).
Wx =
Wx =

Wx =

1 1

, Wy =

1 -1

, Wy =

1 0 1

1
1

1
-1

1
, Wy = 0
1

(8.23)

(8.24)

(8.25)

Schema bloc a extragerii de contururi este reprezentat


a n figura 8.6.
Harta de orient
ari este o imagine care contine, pentru fiecare pixel, orientarea gradientului
de modul maxim n punctul respectiv, si este n general folosit
a la prelucrarea suplimentar
a a contururilor (conectare de contururi, extragere directional
a de contururi). Harta
de contururi este o imagine binar
a n care punctele marcate (puncte-obiect) corespund
pozitiei punctelor de contur (puncte cu gradient de modul mare). O simplificare uzual
a
practicat
a este nlocuirea normei L2 din calculul modulului maxim al gradientului (8.19)
cu norma L1, ceea ce conduce la aproximarea:
f
r

max

|fx | + |fy |

124

fx(m,n)
grad(f)max

Wx

fy(m,n)

Comparator

Harta de
contururi

grad(f)max(m,n)
Harta de
orientari

Wy
(m,n)

Fig. 8.6: Schema bloc a extractorului de contururi bazat pe metoda de gradient.


Folosirea m
astilor de derivare pe vertical
a si orizontal
a prezentate are ns
a serioase neajunsuri: dimensiunea lor mic
a face ca rezultatele s
a fie extrem de sensibile n prezenta
zgomotului. n aceste conditii a ap
arut natural
a ideea de a combina filtrarea de derivare
cu o filtrare de netezire, care s
a mai reduc
a efectele zgomotului. Considernd zgomotul
de tip gaussian, aditiv, filtrarea de netezire are ca efect secundar micsorarea contrastului
frontierelor obiectelor din imagine (efectul de ncetosare, sau blur). Pentru ca n aceste
conditii detectia contururilor s
a nu fie afectat
a, trebuie ca operatia de mediere prin care se
realizeaz
a netezirea s
a se fac
a pe o directie perpendicular
a directiei contururilor c
autate
[3]. Atunci derivarea pe vertical
a se combin
a cu o operatie de netezire cu masc
a orizontal
a 1/3 1/3 1/3 si derivarea pe orizontal
a se combin
a cu o operatie de netezire

1/3

1/3 . Dac
a folosim pentru derivare masca Wy din (8.23), masca
cu masc
a vertical
a
1/3
1/3
1/3
1/3
de filtrare rezultant
a va fi
. n cazul general se pot folosi ns
a
1/3 1/3 1/3
pentru netezire medieri ponderate (si nu neap
arat medieri aritmetice), care s
a acorde
1
o mai mare importanta pixelului curent prelucrat, ca de exemplu c+2 1 c 1 si se
prefer
a folosirea operatorilor de derivare simetrici, de tipul (8.25). Ceea ce rezult
a pentru
operatorii de derivare orizontal
a si vertical
a sunt m
astile:

1 0 1
1
c
1
0
0
Wx = c 0 c , Wy = 0
(8.26)
1 0 1
1 c 1
Prin particularizarea valorilor constantei de ponderare c se pot obtine diferite
tipuri
de operatori de extragere de contur clasici: Prewitt (c = 1), Izotrop (c = 2), Sobel
(c = 2) [9]. Se remarc
a faptul c
a constanta de ponderare global
a a m
astii de filtare este
neesential
a, ntruct conditia de normare ce trebuie ndeplinit
a este cea pentru filtre de
contrastare (derivare) (3.9): suma coeficientilor m
astii s
a fie nul
a. Figura 8.7 prezint
a
125

harta de intensitate a tranzitiilor (modulul maxim al gradientului, f


) iar figura 8.8
r max
prezint
a harta binar
a de contururi extras
a prin compararea h
artii de intensit
atii cu un
prag fixat (binarizarea h
artii de intensitate).

Fig. 8.7: Harta de intensitate a contururilor (modulul maxim al gradientului) calculat


cu m
asti Prewitt pentru imaginea lena.

Fig. 8.8: Harta binar


a de contururi extras
a din harta de intensit
ati precedent
a.
Informatia de orientare este n general folosit
a n etape urm
atoare ale prelucr
arii; unghiurile determinate dup
a (8.18) ofer
a un unghi exact al directiei conturului n punctul
curent, calculat cu un efort semnificativ de calcul (mp
artire si calcul de arctangent
a).
n practic
a, aceast
a informatie este prea exact
a: pe grila p
atrat
a de esantionare nu se
pot reprezenta cu usurinta drepte continue dup
a orice directie5 ; cteva directii sunt fa5

Problema tras
arii figurilor geometrice oarecari (inclusiv a dreptelor) este rezolvat
a de grafica pe

126

vorizate si usor de utilizat (vertical, orizontal, cele dou


a diagonale). n acest caz se poate
m
asura n fiecare modulul gradientului dup
a aceste cteva directii importante, si apoi se
poate alege directia dup
a care acest modul este maxim. Acesta este principul operatorilor
compas.
Un operator compas este definit de un num
ar de m
asti de derivare (corespunz
atoare
n continuare unor filtr
ari liniare) pe directiile principale (vertical, orizontal, cele dou
a
diagonale), n cele dou
a sensuri. Compasul clasic are D = 8 m
asti de filtrare (identice
dou
a cte dou
a, mai putin semnul), fiecare dintre ele realiznd o derivare dup
a o directie
multiplu de 45 . Schema bloc a unui operator compas este prezentat
a n figura 8.9; se
remarc
a faptul c
a, odat
a determinat
a valoarea maxim
a a modulului gradientului n pixelul
curent (m, n), obtinerea h
artii de contururi se face ca si la un operator de gradient clasic.
f1(m,n)
W1
f(m,n)

Comparator

f2(m,n)
W2

max(gradk(f))

max(gradk(f))

fD(m,n)
WD

Harta de
contururi

k(m,n)

Harta de
orientari

Fig. 8.9: Schema bloc a unui operator compas de extragere a contururilor.


Un exemplu de m
asti de derivare directional
a sunt m
astile
atoare (indexate
dup
a
urm

1 1 1

0
0
0 , WNV =
directia geografic
a pe care calculeaz
a derivata): WN =
1 1
1

1 1 0
1 0 1
0
1
1
1
1
1
1 0
1 , WV = 1 0 1 , WSV = 1 0
1 , WS = 0
0
0 ,
0
1 1
1 0 1
1 1 0
1 1 1
1 1
0
1 0 1
0 1 1

1 0
1 , WE =
1 0 1 , WNE =
1 0
1 . Dup
a cum
WSE =
0 1 1
1 0 1
1 1
0
calculator, prin algoritmi de rendering.

127

se remarc
a, familia de m
asti se poate genera pornind de la una dintre m
astile Prewitt,
prin translatii circulare cu o pozitie a frontierei m
astii n jurul centrului ei; n mod analog
se pot obtine operatori
compasbazati pe masca Sobel sau pe gradientul izotrop sau pe

5
5
5

3 0
3 . Precizia unghiular
masca Kirsch
a a operatorilor compas este deci
3 3 3
determinat
a de num
arul de orient
ari diferite pe care se calculeaz
a derivatele, si deci de
num
arul de translatii ale frontierei m
astii; pentru o masc
a p
atrat
a de baz
a de dimensiune

N , precizia unghiular
a a operatorului compas este de 90 /(N 1).
Unul dintre principalele dezavantaje ale metodelor de gradient este precizia slab
a de localizare a conturului (a centrului tranzitiei) n conditiile unei pante putin abrupte a acestuia (tranzitii slabe, graduale). Derivata a doua poate fi ns
a folosit
a pentru a determina
capetele tranzitiei (cele dou
a extreme), sau pentru a marca centrul tranzitiei (trecerea sa
prin zero); figura 8.10 ilustreaz
a aceast
a comportare pentru cazul unidimensional.
Operatorul bazat pe trecerea prin zero a derivatei secunde este operatorul zero-crossing
[9]. n cazul imaginilor (semnale cu suport bidimensional) trebuie luat
a n considerare
derivata secund
a dup
a ambele directii, combinate n laplacian:
f =

2f
2f
+
x2 y 2

n cazul discret, m
asti ce implementeaz
a laplacianul sunt m
astile W5 W7 , prezentate
la capitolul de mbun
at
atire a contrastului imaginilor (pag. 37). Precizia sporit
a a
operatorilor laplacieni conduce ns
a la o sensibilitate crescut
a n prezenta zgomotelor (mai
mare dect a operatorilor de gradient). Mai mult, laplacianul nu mai contine informatie
relativ
a la directia tranzitiei.

8.2.2

Alte metode

O clas
a important
a de operatii neliniare de extragere a contururilor sunt cele bazate
pe morfologia matematic
a. n sectiunea 6.2.3 am prezentat operatori morfologici de
extragere a contururilor. Principiul acestora este de a m
asura diferentele dintre valorile
extreme (minim si maxim) ale vecin
at
atii punctului curent; dac
a diferenta dintre aceste
valori este suficient de mare nseamn
a c
a punctul curent este un punct de contur, aflnduse ntr-o zon
a de tranzitie a valorilor pixelilor. Variante ale acestei tehnici de baz
a se
pot obtine prin considerarea a mai multe elemente structurante, avnd diferite forme si
dimensiuni.

128

Fig. 8.10: Profil de tranzitie gradual


a; maximul primei derivate nu poate marca cu
precizie centrul tranzitiei; derivata secund
a trece prin zero la mijlocul conturului.

129

Capitolul 9

PARAMETRI DE FORMA
Prin parametri de form
a ntelegem n general orice scalar sau functie (cu suport unidimensional sau bidimensional) asociate unei forme plane pe care o caracterizeaz
a; forme
asem
an
atoare sunt caracterizate de parametri de form
a de valori apropiate; formele
diferite prezint
a diferente mari ntre parametrii de form
a ce le sunt asociati. Parametrii
de form
a compun un fel de fisa de identitate a formei respective, pe baza c
arei aceast
a
form
a poate fi recunoscut
a n mod unic. n mod ideal, acesti parametri trebuie s
a fie
invarianti la translatie, rotatie si scalare. Tehnicile de recunoastere a formelor sau de
clasificare sunt precedate ntotdeauna de o etap
a de extragere a parametrilor de form
a
(sau a caracteristicilor formei).
Pentru analiza imaginilor, o form
a este o functie de dou
a variabile, cu suport compact
f (x, y) : K R; n general valorile acestei functii sunt binare (0 sau 1), descriind
deci o parte a unei imagini binare (zona din imagine n care se afl
a obiectul de interes).
Atunci functia poate fi v
azut
a ca o functie caracteristic
a a formei, asem
an
atoare functiei
caracteristice a unei multimi.
n cele ce urmeaz
a vom prezenta ctiva parametri de form
a clasici.

9.1

Parametri geometrici

Aceast
a categorie de parametri se bazeaz
a pe m
asura unor atribute geometrice simple:
arie (S), perimetru (P ), num
ar de g
auri, num
arul lui Euler (num
arul de regiuni conexe
num
arul de g
auri). Cum nu toate aceste numere sunt invariante si caracteristice unic
unei anume forme, au ap
arut combinatii de tip raport.
Raportul de compacitate (numit si factor de form
a [19]) este raportul dintre p
atratul

130

perimetrului si suprafata formei:


P2
(9.1)
4S
Pentru o form
a circular
a raportul este unitar; cu ct num
arul este mai apropiat de
aceast
a valoare, cu att mai mult forma seam
an
a cu un disc (p
atratul are un raport de
compacitate = 1.273). Exist
a ns
a forme diferite caracterizate de aceeasi valoarea a
parametrului dat de (9.1).
=

Excentricitatea sau circularitatea formei (m


asura n care forma dat
a se deosebeste de
disc) poate fi definit
a si ca un raport al razelor cercurilor circumscrise (R) si nscrise (r)
formei:
R
c=
(9.2)
r
Acest raport este evident unitar n cazul discului; pentru p
atrat valoarea sa este de
c = 1.412.

9.2

Momente statistice si invarianti

Interpretnd functia caracteristic


a a formei ca pe o functie de densitate de probabilitate
bidimensional
a, putem defini momentele statistice asociate celor dou
a variabile aleatoare
(ce sunt coordonatele punctelor formei) [17]:
f (x, y)xp y q dxdy, p, q = 0, 1, 2, ...

mpq =

(9.3)

Scalarul mpq (momentul de ordin p, q sau p + q) este proiectia functiei f (x, y) pe poliarii cu momente
noamele xp si y q ale bazei complete de polinoame. Teorema reprezent
afirm
a c
a multimea infinit
a de momente mpq determin
a n mod unic f (x, y) si reciproc.
n cazul imaginilor binare, coordonatele sunt discrete si functia este o functie caracteristic
a; formula momentelor (9.3) devine
xp y q

mpq =

(9.4)

f (x,y)=0

Cum caracterizarea unei forme printr-o serie infinit


a de numere (asa cum cere teorema
reprezent
arii cu momente) nu este posibil
a, n practic
a se folosesc serii de momente
truncheate pn
a la un ordin maxim fixat N (p + q  N ). Acestea ns
a caracterizeaz
a
o alt
a functie, g(x, y), o aproximare a lui f (x, y). Aceast
a aproximare este dat
a de o
combinatie liniar
a a polinoamelor bazei, ponderate cu scalarii necunoascuti gpq :
gpq xp y q

g(x, y) =
p+qN

131

(9.5)

G
asirea acestor scalari se face prin egalarea momentelor cunoscute ale lui f (x, y) cu
momentele lui g(x, y) dat
a de expresia (9.5). Rezolvnd sistemul de ecuatii cuplate ce
se formeaz
a (a se vedea [9]), se pot obtine relatiile c
autate; calculul trebuie ns
a ref
acut,
din cauza cupl
arii ecuatiilor, ori de cte ori se doreste trecerea la o aproximare mai bun
a
a formei f , m
arind valoarea lui N. Aceast
a cuplare provine din cauza folosirii unei
baze neortogonale (asa cum este familia de polinoame xp y q ) pentru calculul momentelor;
problema a fost rezolvat
a prin folosirea proiectiilor pe baza de polinoame Legendre [9].
Trebuie ns
a remarcat c
a folosirea momentelor statistice pentru caracterizarea unei forme
nu asigur
a ndeplinirea a nici unuia dintre principiile de invarianta c
autate; de aceea au
fost introduse momente statistice invariante [19], [9].
Momentele statistice invariante la translatie sunt momentele statistice centrate:
pq =
f (x,y)=0

(x x)p (y y)q

(9.6)

Momentele statistice invariante la translatie si scalare sunt definite de:


pq =

pq
p+q
, = 1+
00
2

(9.7)

Invariantii la translatie, scalare si rotatie ai unei forme, obtinuti n conditiile folosirii unor
momente statistice de ordin cel mult 3 (N = 3), sunt n num
ar de 7 si sunt exprimati de:
1 = 20 + 02

(9.8)

2 = ( 20 02 )2 + 4 211

(9.9)

3 = ( 30 3 12 )2 + ( 03 3 21 )2

(9.10)

4 = ( 30 + 12 )2 + ( 03 + 21 )2

(9.11)

5 = ( 30 3 12 )( 30 + 12 ) ( 30 + 12 )2 3( 03 + 21 )2 +

(9.12)

+(03 321 )( 03 + 21 ) ( 03 + 21 )2 3( 30 + 12 )2

6 = ( 20 02 ) ( 30 + 12 )2 ( 03 + 21 )2 + 4 11 ( 30 + 12 )( 03 + 21 )
7 = ( 30 3 21 )(03 + 21 ) (03 + 21 )2 3( 30 + 12 )2

(9.13)
(9.14)

(03 321 )( 30 + 12 ) (30 + 12 )2 3(03 + 21 )2

Initial (mijlocul anilor 60) acesti invarianti au fost folositi pentru recunoasterea caracterelor mari de tipar, cu rezultate modeste. Eficienta lor const
a ns
a n modul rapid de
calcul si posibilitatea de a le utiliza cu succes pentru recunoasterea formelor geometrice
convexe.

132

Folosind momentele invariante, se mai pot deduce alte atribute: excentricitatea suprafetei
(9.15), care m
asoar
a gradul de uniformitate al distributiei punctelor formei n jurul centrului de greutate si orientarea suprafetei, caracterizat
a de unghiul fata de orizontal
a
al axei fata de care momentul inertie al formei este minim (9.16).
2
00

(9.15)

1
211
arctan
2
20 02

(9.16)

=
=

9.3

Semn
atura formei

Semn
atura unei forme este o functie scalar
a de o variabil
a, asociat
a unei forma plane.
Semn
atura este definit
a de distanta de la un punct de referinta fixat x (n general centrul
de greutate al formei) la fiecare punct de pe conturul (frontiera) formei. Aceast
a distanta
este exprimat
a (sau m
asurat
a) n functie de unghiul la centru realizat de punctul curent
de pe contur cu axa orizontal
a de referinta, dx () sau n functie de abscisa curbilinie
(lungimea conturului cuprins ntre punctul curent si punctul n care axa de referinta intersecteaz
a conturul), dx (). Semn
atura formei este o reprezentare reversibil
a (cunoscnd
semn
atura se poate reconstrui conturul obiectului). Figurile 9.1 si 9.2 prezint
a semn
aturile unor forme poligonale.

Fig. 9.1: Semn


atura unui p
atrat ca functie de unghiul la centru; punctul de referinta este
centrul de greutate, axa de referinta este orizontala.
Este posibil ca, pentru formele concave, semn
atura n functie de unghiul la centru s
a nu
poat
a fi calculat
a, deoarce, pentru anumite unghiuri , intersectia dreptei de directie
cu conturul s
a fie format
a din mai multe puncte. Aceast
a problem
a nu apare n cazul
semn
aturii n functie de abscisa curbilinie. Ca o restrictie general
a, n cazul folosirii
semn
aturii bazate pe unghi, trebuie ca punctul de referinta x s
a apartin
a nucleului formei.
Nucleul formei K, Ker(K) este definit prin:
Ker(K) = {x|y K, [xy] K}
133

(9.17)

Fig. 9.2: Semn


atura unei forme poligonale n functie de abscisa curbilinie; punctul de
referinta este centrul de greutate, axa de referinta este orizontala.
unde [xy] semnific
a segmentul de dreapt
a definit de punctele x si y. n cazul formelor
concave, nucleul formei este o multime vid
a.
Folosind semn
atura formei, se pot defini parametri de tip geometric. Raportul de simetrie
este definit ca
dx ()
Y (K) = sup inf
(9.18)
xK [0;] dx ( + )
Se observ
a c
a nu s-a f
acut nici o presupunere privind convexitatea formei K, dar unicitatea
distantelor dx () si dx ( + ) implic
a calcularea raportului de simetrie dup
a punctele ce
apartin nucleului formei.
Raportul de circularitate este definit ca:
C(K) =

sup (dx () + dx ( + ))
inf (dx () + dx ( + ))

(9.19)

Functia hK () = dx () + dx ( + ) se numeste suportul formei, si este diametrul formei


pe directia .
n [5] s-a propus aproximarea formelor prin dezvoltarea n serie Fourier a semn
aturii acestora si truncherea reprezent
arii (tehnic
a utilizat
a si ntr-o aplicatie clasic
a de recunoastere
a conturului unor tipuri de avioane). O alt
a posibil
a aplicatie a semn
aturii pleac
a de la
observatia c
a, pentru o form
a poligonal
a, n semn
atur
a, pozitia vrfurilor este marcat
a
de puncte unghiulare (a se urm
ari figurile 9.1 si 9.2). Atunci aceasta poate fi o metod
a de
aproximare poligonal
a a unei forme oarecari (g
asirea vrfurilor unui poligon ce o aproximeaz
a ct mai bine).

134

9.4

Skeletoane morfologice si generalizate

Skeletonul este o reprezentare bidimensional


a simplificat
a, echivalent
a, a unei forme. Pentru o form
a A oarecare se defineste discul maximal n A, de centru x si raz
a r, Bx (r) ca
fiind discul caracterizat de:
Bx (r) A
(9.20)
Bx (r) Bx (r ) A

r=r
x=x

(9.21)

Deci discul maximal trebuie s


a fie inclus n form
a (9.20) si nici un alt disc inclus n form
a
s
a nu l includ
a, sau, dac
a l include, s
a fie identic cu acesta (9.21). O form
a poate avea
mai multe discuri maximale.
Skeletonul unei forme este multimea centrelor discurilor maximale ale formei. Ca exemple simple, skeletonul unui disc este centrul s
au, skeletonul unui p
atrat este reuniunea
diagonalelor sale (figura 9.3).

Fig. 9.3: Exemple de skeletoane ale unor forme continue simple.

9.4.1

Skeletonul morfologic

Calculul skeletonului unei forme reprezentate n spatiul discret se poate face prin formula
Lantuejoul [15]; skeletonul formei A, SK(A), este format din reuniunea unui num
ar finit
de seturi skeleton:
Nmax

SK(A) =

Sn (A)

(9.22)

n=0

Sn (A) = (A

nB) (A

nB) B

(9.23)

Ordinul Nmax corespunde momentului n care toate seturile skeleton succesive devin nule,
moment marcat de A Nmax B = ; elementul structurant nB este iterarea de n ori a
elementului structurant B, nB = B ... B (de n ori). Elementul structurant folosit
135

este n general o expresie discret


a a discului unitar (deci element structurant V4 sau V8 ).
Figura 9.4 prezint
a skeletonul unei forme discrete oarecare.

Fig. 9.4: Skeleton al unei forme discrete, reprezentat prin reuniunea seturilor skeleton si
informatia de apartenenta a fiec
arui punct la un anumit set skeleton.
Reconstructia formei din skeleton se face dup
a formula
Nmax

A=
n=0

Sn (A) nB

(9.24)

Se pot realiza si reconstructii partiale (aproxim


ari ale multimii A) prin neglijarea seturilor
skeleton ce reprezint
a detaliile (acestea sunt seturile skeleton de ordin mic); aproximarea
de ordin k a formei nseamn
a deci ignorarea primelor k seturi skeleton din reconstructie:
Nmax

Ak =
n=k

Sn (A) nB

(9.25)

Skeletonul este invariant la translatie, nu este conex (chiar dac


a forma A este conex
a; a se
vedea figura 9.5), nu este comutativ cu operatia de reuniune a formelor (a se vedea figura
9.6). Transformarea skeleton este idempotent
a (SK(SK(A)) = SK(A)) si antiextensiv
a
(SK(A) A). Seturile skeleton sunt disjuncte dou
a cte dou
a (Si (A) Sj (A) = , i =
j).
Folosirea skeletonului morfologic pentru recunoasterea fomelor este restrictionat
a de puternica sa sensibilitate la zgomote (o mic
a schimbare a formei duce la o modificare semniari
ficativ
a a skeletonului1 ), si de variatia la rotatia si scalarea obiectelor (pentru reprezent
n spatiul discret). n acelasi timp, folosirea elementului structurant de tip disc unitar
aduce o puternic
a dependenta de metrica folosit
a n definirea sa (s
a nu uit
am c
a ntr-un
1

Exemplul clasic este de a considera un disc f


ar
a centru; n acest caz skeletonul este o coroan
a circular
a
situat
a la jum
atatea razei.

136

Fig. 9.5: Skeletonul nu este conex.

Fig. 9.6: Transformata skeleton nu este comutativ


a cu reuniunea.
spatiu discret, metrica Euclidian
a nu este cea mai favorabil
a) si produce elemente structurante p
atrate (V8 ) sau n cruce (V4 ), ce pot fi cu greu interpretate ca discuri. Aceasta
a dus la folosirea unei clase de elemente structurante care s
a nu provin
a din notiunea de
metric
a - elementele structurante generalizate.

9.4.2

Skeletonul generalizat

Fie {Gi } un set de multimi, numit set generator. Elementele structurante generalizate
sunt definite recurent prin:
Bi = Bi1 Gi , i = 1, 2, ...

(9.26)

B0 = 0n
n general se folosesc seturi generatoare avnd o anumit
a periodicitate T (Gi+kT =
a constructia setului de elemente strucGi , i, k Z). De exemplu, figura 9.7 prezint
turante generalizate rezultat dintr-un set generator cu perioad
a 1 (deci compus dintr-o
singur
a multime), E1 = {(1, 1), (1, 0), (0, 1), (0, 0)}.
Fiec
arui punct al formei A i se va asocia ordinul (indicele) elementului structurant generalizat maximal centrat cu originea n punctul respectiv, construind astfel o hart
a de

137

Fig. 9.7: Constructia unui set de elemente structurante generalizate.


distante (a se vedea si figura 9.8):
D(x) =

0, dac
ax
/A
n, dac
a (Bn1 )x A si (Bn )x

(9.27)

Fig. 9.8: Harta de distante a unui obiect construit


a pe baza setului de elemente structurante generalizate prezentat anterior si skeletonul generalizat corespunz
ator.

Skeletonul generalizat al unei forme este multimea originilor elementelor structurante


generalizate maximale n form
a2 :
GSK(A) = x A| BD(x)1

BD(y)1

, x = y

(9.28)

Folosind harta de distanta anterioar


a, skeletonul generalizat obtinut este prezentat n
figura 9.8.
2

Se poate remarca similitudinea cu definitia skeletonului, n care s-au nlocuit notiunile: centru al
discului cu origine a elementului structurant, disc cu element structurant generalizat, raz
a a discului cu
indice (ordin) al elementului structurant generalizat.

138

Capitolul 10
PRINCIPII DE IMPLEMENTARE
SOFTWARE S
I HARDWARE
Principiile esentiale legate de implement
arile practice ale sistemelor de prelucrarea si analiza imaginilor urm
aresc dou
a directii, cu dezvoltare corelat
a: implement
arile software si
dispozitivele hardware (de accelerare). Dup
a cum am ar
atat n capitolul introductiv,
la descrierea structurii tipice a unui sistem de prelucrarea si analiza imaginilor, marea
majoritate a implement
arilor folosesc ca suport fizic pentru unitatea central
a de prelucrare un calculator obisnuit (compatibil PC); ceea ce l particularizeaz
a este pachetul
de programe rulate. Putem distinge dou
a categorii fundamentale de astfel de programe:
programe strict dependente de aplicatie si programe de uz general.
Un program dependent de aplicatie realizeaz
a doar algoritmii specifici operatiei pe care o
execut
a sau supravegheaz
a. Interactiunea cu operatorul uman este minim
a si calificarea
acestuia nu este necesar s
a o dep
aseasc
a pe cea a unui tehnician [11]. Adeseori programul
trebuie s
a fie de timp real. Aceste variante de implementare sunt potrivite pentru procese
caracterizate de parametri stabili si care se desf
asoar
a n conditii ambiante (iluminare,
poluare vizibil
a particule, fum) relativ constante si nu sunt portabile (fiind n general
optimizate pentru o anumit
a structur
a hardware).
Programele de uz general permit efectuarea unui mare num
ar de operatii de prelucrarea
si analiza imaginilor, cu numerosi parametri reglabili. Interactiunea cu operatorul uman
este mare si acesta trebuie s
a aib
a o calificare superioar
a. Programele de acest tip nu
sunt de timp real si n general sunt cuplate o-line cu instalatiile tehnologice propriuzise, f
acnd parte mai ales din dotarea laboratoarelor de cercetare si de analiza calit
atii
si conformit
atii. Interfata utilizator este cea care creaz
a diferenta ntre dou
a categorii
de programe, n ceea ce priveste modalitatea n care operatorul specific
a succesiunea de
operatii de executat. Din acest punct de vedere vom face distinctia ntre menu-driven si
flow-chart driven (deci programe controlate prin meniu sau prin graf de flux).

139

Implement
arile de tip menu-driven aplic
a cte un unic pas de prelucrare asupra imaginii
din fereastra activ
a; rezultatul va fi prezentat ntr-o nou
a fereastr
a de afisare. Tipurile
de operatii se aleg din meniuri sau bara de butoane. Asemenea solutii corespund majorit
atii sistemelor software comerciale de grafic
a si imaging (de tipul Adobe Photoshop,
Corel Draw, Paint Shop Pro). Operatiile realizate sunt orientate mai ales c
atre aspectul
grafic (publicistic) al imaginilor, referindu-se n special la operatii de filtrare, modificare a
contrastului, pseudocolorare, decupare de regiuni. Programele cu comand
a menu-driven,
cu rezultatele intermediare parcurgnd etapele operatiilor din fereastr
a n fereastr
a, sunt
direct derivate din proiectarea obiectelor de interfata n sistemele de tip Windows.
Implement
arile de tip flow-chart permit construirea grafic
a interactiv
a a unui lant de
operatii aplicate unei imagini initiale. Fiecare operatie este un bloc functional caracterizat de intr
ari, iesiri si parametri de control; blocurile functionale sunt interconectate,
implementnd fluxul de operatii pe care l va parcurge imaginea. Procesul de comand
a
nseamn
a selectarea imaginii initiale si actionarea unui buton de start. Asemenea programe sunt tipice sistemelor de calcul mari (statii de lucru), pentru care produsul Khoros
este un standard de fapt; un produs similar pentru PC este programul AdOculos (figura
10.1).

Fig. 10.1: Specificarea fluxului de operatii n fereastra de comand


a a programului AdOculos.
Ca o categorie intermediar
a ntre comenzile meniu si diagrama de flux, putem considera
programele cu comand
a de tip macro (sau batch); programul (sau limbajul) Matlab poate
fi ncadrat ntr-o asemenea categorie.
Multe dintre opertiile initial realizate prin software-ul de aplicatie au migrat c
atre nivelul
hardware. Exemplul cel mai tipic de asemenea comportament este dat de rezolvare
problemei de dithering (aproximarea culorilor reale dintr-o imagine. folosind un num
ar
mic de culori disponibile la dispozitivul de afisaj). Dup
a ce, initial, problema era rezolvat
a
140

de programele aplicatie, gestiunea culorilor a trecut n grija sistemului de operare, pentru


ca, recent, s
a apar
a pl
acile grafice inteligente. Aceasta este de altfel una dintre tendintele
actuale: evolutia accesoriilor (pl
aci specializate, dispozitive de achizitie) inteligente, deci
cu facilit
ati de prelucrare integrate. Senzorii de imagine CCD sunt una dintre tintele
predilecte ale acestei dezvolt
ari, nglobnd cipuri de compresie si transmisie a imaginilor,
comand
a de urm
arire automat
a a tintei, operatii de recunoastere.
Desi programarea orientat
a pe obiecte este un concept destul de nou, evolutia sa a fost
deosebit de spectaculoas
a. Probabil c
a principalul atu al acestei evolutii a fost aparitia
sistemului de operare Windows (cu toate derivatele sale 3.1, 3.11, 95, 98, etc.) a c
arui
structur
a este n ntregime bazat
a pe conceptul de obiecte. Programarea unei aplicatii
Windows va face n mod clar apel la structuri predefinite - clasele de baz
a aplicatie,
fereastr
a, buton, s.a.m.d. Atunci devine destul de normal s
a fie proiectate si datele
specifice ale aplicatiei particulare tot ca structuri de tip obiecte.
Alegerea unui limbaj specific de programare nu mai este totusi o problem
a esential
a;
majoritatea limbajelor de uz general ingineresc (tehnic) provin din trunchiul comun C /
Pascal. Desigur c
a exist
a nenum
arate variante ale acestor limbaje de baz
a (C++ Builder,
Visual C++, Delphi, Borland C++ si Borland Pascal cu obiecte) si chiar apar limbaje noi
(Java, care, desi se revendic
a ca o aplicatie pur distribuit
a pentru folosirea retelelor si n
special a Internetului, nu este cu mult diferit
a ca structur
a de un C cu clase). Principala
evolutie a mediilor de programare nu a fost ns
a legat
a de modificarea limbajului n sine
(si deci a caracteristicilor de compilare a codului) ci modificarea stilului n care se creaz
a
aplicatia specific
a, si mai precis, aspectul de interfata.
Proiectarea unei interfete pentru Windows nseamn
a definirea unor actiuni asociate evenimentelor produse n sistem (clicuri de mouse, ap
as
ari de taste) si construirea elementelor
grafice specifice (ferestre de afisare si de dialog, meniuri, introducere date, etc.). Acest
a
activitate a fost simplificat
a la maximum prin aparitia constructoarelor vizuale de aplicatii, n care interfata grafic
a este construit
a prin alipirea unor elemente de baz
a (butoane,
ferestre, zone de text) pe cadre fixe (fereastr
a), numai cu mouse-ul (prin tehnic
a drag and
drop). Compilatorul genereaz
a automat codul surs
a aferent constructiei; tot ceea ce trebuie s
a fac
a programatorul este s
a lege sursa ce descrie aplicatia si actiunea specific
a la
codul care interpreteaz
a evenimentul de apel.
Ceea ce trebuie subliniat (spre a evita anumite interpret
ari uzuale, dar eronate) este c
a
aceste medii de programare avansate (gen Builder, Visual, etc..) nu preiau si atributia de
a scrie algoritmii specifici; usurinta constructiei vizuale este legat
a strict de constructia
interfetei aplicatiei, deci aspect grafic si eventual partea de preluare a datelor. Programatorul va dezvolta restul aplicatiei ca pentru un compilator clasic.
Concluzia ce rezult
a din aceast
a scurt
a discutie este aceea c
a, pentru orice aplicatie,
trebuie separata partea de interfata de partea de calcul specific. n cazul unui program de
prelucrarea si analiza imaginilor acesta nsemn
a c
a trebuie f
acut
a o proiectare la nivelul
structurii de date (matricea ce contine valorile pixelilor din imagine si prelucr
arile specifice
141

asupra acestora) si o proiectare la nivelul interfetei (care s


a specifice cum se va face afisarea
imaginilor pe ecran, cum vor fi scrise pe disc, cum se va face un eventual transfer dinamic
al datelor de la sau c
atre alte aplicatii). Majoritatea covrsitoare a sarcinilor legate
de interfata pot fi rezolvate f
ar
a a cunoaste nimic despre operatiile specifice prelucr
arii
imaginilor si despre modul n care o imagine este reprezentat
a n memoria de lucru a
calculatorului. S
a consider
am de exemplu problema afisarii unei imagini ntr-o fereastr
a.
F
ar
a ndoial
a c
a cel mai simplu mod de afisare este folosirea imaginii ca un canvas,
nglobat n obiectul de tip fereastr
a, si de a c
arui afisare se ocup
a sistemul Windows.
Aceast
a abordare exclude ns
a accesul la continutul imaginii; aceasta trebuie deci separat
a
de fereastra de afisare. Este poate deci preferabil
a memorarea imaginii ca o matrice
si transformarea acesteia ntr-o structur
a bitmap atasat
a ferestrei, la fiecare cerere de
reafisare a acesteia.
Cuvntul de ordine actual n implement
arile software este orientarea-obiect (limbajele
C++, Delphi, Java), insistnd mai ales pe aspectele de polimorfism si mostenire pe care le
aduce acest stil de programare. Mostenirea corespunde cazului unor imagini cu structur
a
din ce n ce mai elaborat
a, pentru care se pot face tot mai multe operatii (de tip analiz
a
de form
a si clasificare, de exemplu). Polimorfismul corespunde realiz
arii unor operatii cu
nume (sau metode de implementare) identice care s
a aib
a comport
ari diferite, n functie
de tipul datelor c
arora li se aplic
a (functia de histogram
a poate produce, de exemplu,
functia de densitate de probabilitate a cmpului aleator imagine, n cazul imaginilor cu
nivele de gri, aria obiectelor, n cazul imaginilor binare si num
arul de componente conexe,
n cazul imaginilor binare etichetate). De asemenea, aspectul legat de refolosirea codului
nu este neglijabil (s
a nu uit
am, c
a, de exemplu, pentru filtrarea n domeniul spatial, un
numitor comun al diverselor tipuri de filtre este tehnica de tip fereastr
a glisant
a).
Tehnologia Java, aduce, pa lng
a orientarea obiect, ideea de folosire a resurselor distribuite (fie pe Internet, fie ca resurse de multiprocesare). Astfel a devenit posibil
a crearea
de depozite de software specializat, universal executabil (prin mecanismul de applet) pe
orice masin
a pe care este disponibil un browser Internet. Marile avantaje anuntate pentru Java (cod portabil, executie paralel
a, protectie la manipularea defectuoas
a a zonelor
de memorie, protectia datelor) sunt contrabalansate de codul executabil relativ lent si de
dimensiunile mari ale codului surs
a.
Java este ns
a interesant
a pentru prelucrarea si analiza imaginilor prin perspectiva deschis
a de multi-threding existenta si gestionarea de c
atre o aplicatie oarecare a mai
multe fire de executie ce ruleaz
a concomitent din punct de vedere logic (sau aproape
concomitent din punctul de vedere fizic al calculatorului cu unic procesor); astfel devine
posibil
a rularea paralel
a de aplicatii pe sisteme cu unic procesor, f
ar
a sisteme de operare
multi-tasking. De altfel, putine sisteme fizice multiprocesor au fost realizate pentru prelucrarea de imagini; sistemele de prelucrarea si analiza imaginilor au utilizat n general
masini cu paralelism masiv (SIMD/ SPMD, transputer farm) sau grupuri de calculatoare
(cluster processing).

142

Exploatarea paralelismului este un merit pe care prelucrarea imaginilor si l-a arogat nc


a
de la nceputuri; operatiile tipice de prelucrarea imaginilor sunt operatii relativ simple,
cu un num
ar mare de instante (pentru fiecare pixel al imaginii se face ceva), folosind
date putin redundante (suprapunerea ntre pozitiile al
aturate ale ferestrelor de filtrare
este n general mic
a) si, uneori, informatie global
a (cazul histogramei sau a filtr
arilor n
domeniul de frecventa). Se pot distinge astfel dou
a nivele de paralelism: un paralelism
masiv, intrinsec structurii imaginii, legat de nivelul pixel, si un paralelism ascuns, specific
operatiilor de prelucrare (ca de exemplu realizarea operatiilor morfologice prin (6.3) si
(6.6) sau implementarea paralel
a a FFT).
n concluzie, putem afirma c
a prelucrarea si analiza imaginilor a reusit s
a cstige teren ca
urmare a realiz
arilor spectaculoase ale tehnologiei electronice si informaticii. Cresterea
continu
a a puterii de calcul disponibile n unit
atile de prelucrare ale calculatoarelor va
transforma probabil n viiitorul apropiat prelucrarea si analiza imaginilor dintr-o anex
a
nebuloas
a si exotic
a a aplicatiilor speciale ntr-o solutie fiabil
a de larg consum industrial.

143

Bibliografie
[1] Buzuloiu, V.: Prelucrarea imaginilor: note de curs, Universitatea Politehnica Bucuresti, 1998
[2] Castleman, K. R.: Digital Image Processing, Prentice Hall, Englewood Clis, NJ,
1996
[3] Cocquerez, J. P., Philipp, S. (coord.): Analyse dimages: filtrage et segmentation,
Masson, Paris, 1995
[4] Dougherty E. R., Giardina, C. R.: Image Processing - Continous to Discrete, vol. 1,
Geometric, Transform and Statistical Methods, Prentice Hall Inc., Englewood Clis,
1987
[5] Gonzales, R. C., Woods, R. E.: Digital Image Processing, Addison Wesley, Reading
MA, 1992
[6] Haralick, R. M., Shapiro, L. G.: Glossary of Computer Vision Terms, n Pattern
Recognition, vol. 24, no. 1, pag. 69-93, 1991
[7] Haralick, R. M., Sternberg, S. R., Zhuang, X.: Image Analysis using Mathematical
Morphology, n IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 9,
no. 4, Iulie 1987, pag. 532-549
[8] Jhne, B.: Practical Handbook on Image Processing for Scientific Applications, CRC
Press, 1997
[9] Jain, A. K.: Fundamentals of Digital Image Processing, Prentice Hall, Englewood
Clis NJ, 1989
[10] Ministerium fr Wirtschaft, Mittelstand und Technologie des Landes NordrheinWestfalen: Stand und Trends der Bidverarbeitung in NRW, Dsseldorf, 1995
[11] Ministerium fr Wirtschaft, Mittelstand und Technologie des Landes NordrheinWestfalen: Produkte und Dienstleitungen fr die Bildverarbeitung. Stand und Trends,
Dsseldorf, 1996

144

[12] Pitas, I., Venetsanopoulos, A. N.: Nonlinear Digital Filters Principles and Applications, Kluwer Academic Publ., Norwell MA, 1990
[13] Press, W. H., Flannery, B. P., Teukolsky, W. T., Vetterling, W. T.: Numerical
Recipes in C. The art of scientific computing, Cambridge University Press, 1988
[14] Serra, J.: Image Analysis and Mathematical Morphology, Academic Press, London,
1982
[15] Schmitt, M., Mattioli, J.: Reconnaissance de formes planaires par morphologie
mathematique et reseaux de neurones, n Revue Technique Thomson CSF, vol. 22,
no. 4, Decembrie 1990, pag. 573-609, Ed. Gauthiers-Villars: Paris
[16] Sp
ataru, A.: Teoria Transmisiunii Informatiei, Ed. Didactic
a si Pedagogic
a, Bucuresti, 1984
[17] Vertan, C., Gav
at, I., Stoian, R.: Variabile aleatoare: principii si aplicatii, Editura
Printech, Bucuresti, 1999
[18] Zamperoni, P.: Image Enhancement, Advances in Imaging and Electron Physics,
vol. 92, pp. 1-77, Academic Press, 1995
[19] Wahl, F. M.: Digital Image Signal Processing, Artech House, Boston, 1987

145

S-ar putea să vă placă și