Documente Academic
Documente Profesional
Documente Cultură
1. Introducere.
Imagine
Grafic computerizat
Recunoatere de forme
Descriere
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
1. Introducere.
1. Introducere.
Intrare
Translator
(extragere
trsturi)
Decizie
Selector
trsturi
Clasificator
(1)
(2)
(3)
(4)
(5)
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
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)
Intrri binare
Supervizat
Reea
Hopfield
Reea
Hamming
Clasificator
optimal
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
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
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
(3)
c) Filtre mediane.
O categorie aparte de filtre spaiale o constituie filtrele mediane la care pixelul central al
unei vecinti de forma:
este nlocuit cu medianul mulimii pixelilor din vecintate. Efectul aplicrii lor este c pixelii cu
valoarea mult diferit de a vecinilor dispar.
10
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
Unde:
(6)
K XX = E{ (X X )(X X )t } = E{XX t }
(7)
(8)
unde
i
sunt matricile de autocorelaie pentru semnalul util i respectiv zgomot, iar X = E{X} ,
11
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:
(12)
(13)
4 ln 2
ei () = d i () = exp [
(18)
( ln ) 2 ]
2
c
( ln B)
(19)
d i () = cos ( i )
(20)
cos (
), pentru < 0 .9
(21)
H (,) =H () =
1.8
0 ,
pentru 0 .9
12
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.
13
~ ~
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
14
(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
(29)
15
Imaginea iniial
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
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:
17
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) =
| F(t)|
t
F(t)
t
F(t)- F(t)
18
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)
(49)
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
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
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
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
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.
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)
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
26
3. Restaurarea imaginilor.
h(x,y) =
y
H (x , y ) = tri x ,
a b
(8)
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
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.
(11)
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
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 =
(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)
filtru fa de precedentul.
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.
++
r (x x ,y y ) g (x ,y )dx dy ]
} = min
(25)
E f (x,y) r (x x ,y y ) g (x ,y )dx dy g (x ,y ) = 0
(26)
++
r (x x ,y y ) E { g (x ,y ) g (x ,y )}dx dy
(27)
(28)
E { g (x ,y ) g (x ,y )} = K gg (x x ,y y )
(29)
++
r (x x ,y y ) K
gg
(x x ,y y )dx dy
(30)
(31)
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:
(37)
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.
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.
(46)
(48)
(49)
(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
33
3. Restaurarea imaginilor.
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)
[] (
[H ]t [g ]
(61)
g e (x) =
Sau matriceal:
g = Hf
adic:
34
M 1
f
n =0
(m) he (x m)
(64)
(65)
3. Restaurarea imaginilor.
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
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
(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
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
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) =
~ = +
y n y n t y
yn = yn + t y
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)
37
3. Restaurarea imaginilor.
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
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 ]
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.
~
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
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
x p ,x
(x,y,z)
z
0
f
(x ,y )
p
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)
y
zc
yc
x
xc
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
43
3. Restaurarea imaginilor.
==>
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
(129)
(130)
45
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
f (x,y) =
f (x,y) r f (x,y) r
i+
j
x 2
y 2
(1)
(2)
(3)
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)
(6)
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
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
(11)
f( X ) = f k H k / H k
(12)
k =0
(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
S = f k2
(16)
k =1
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
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
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)
50
hL (x,y) = 4 1
exp
2 2
2 2
(30)
+
+
+
+
+
+
-
- +
- -
- -
- -
+
+
+
+
+
+
+
+ -
+ -
- -
- -
+
+
+
+
+
+
-
+ +
+ +
+ -
+ -
+
+
+
+
+
+
+
-
51
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.
(32)
Modelul anterior se poate generaliza i pentru detecia liniilor din imagine, folosind:
(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
52
(35)
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
(36)
x,yC
Si =
s (x,y)
H i (x,y) dx dy
(37)
x,yC
(38)
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.
53
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
54
(45)
(46)
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
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
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
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
57
segmentare cu prag
1
subiere contur
58
4
5
1
0
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
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
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
60
61
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 ;
62
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.
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
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
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
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++;
}
65
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.
67
Figurile urmtoare prezint rezultatele aplicrii unor astfel de operatori asupra unei
imagini binare, folosind abloanele B5 i B9 .
Original
Erodare
Dilatare
Deschidere
nchidere
Original
Deschidere
nchidere
68
S1
S2
S1
S2
S2
S2
S1
S2
S1
S1
S2
S1
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:
69
(8)
70
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
72
6. Segmentarea imaginilor.
6. Segmentarea imaginilor.
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
(m2+ )
m2
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+
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
L 1
(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
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.
S (t) = Bi t i 1 , unde t1 t t 2
(11)
i =1
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
(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
n=3
n=3
n=3
n=4
(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
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
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.
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.
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.
86
7. Transformata Hough.
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)
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
...
...
( , ),( , 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)
(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.
Rmin() = 0 , pentru ( 0 ,/ 2 ];
X cos , pentru (/ 2 ,].
max
(15)
2
2
Rmax () = X max
+ Ymax
cos [arctg( Ymax X max ) ], pentru ( 0 ,/ 2 ];
Y sin, pentru (/ 2 ,].
max
(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.
(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)
(26)
(0,0)
(0,0)
Fig. 21.
Fig. 22.
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
xk y j x j yk
(x k x j ) 2 + (y k y j ) 2
(28)
(29)
kj ( kj ) = kj ( kj )
(30)
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
/2
3/2
2
Imaginea 2 - Transformata Hough
95
7. Transformata Hough.
/2
0
/2
/2
/2
0
/2
/2
Imaginea 1- versiunea O'Gorman & Clowes
y
y
96
0
/2
x
0
Imaginea 3 (imagine achiziionat)
0
/2
7. Transformata Hough.
/2
3/2
Imaginea 3 - Transformata Hough
/2
0
/2
/2
0
/2
/2
0
Imaginea 3 - versiunea O'Gorman & Clowes Imaginea 1 Versiunea optimizat, trasare
0
0
/2
/2
97
7. Transformata Hough.
0
/2
Imaginea 2:
Imaginea 2:
Versiunea propus, trasare, vedere 3D.
98
0
/2
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.
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
(1)
(4)
(5)
109
(7)
| S (x,y)|2
=
N
G ( ,
x
(11)
+ +
(x , y )| H (x , y )| dx d y
110
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
111
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 + )
112
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
15
(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
115
B (S 1 ,S 2 ) = ln [ p (x|S 1 ) p (x|S 2 )] 1 / 2 dx
(1)
116
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)
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
Entropia:
L 1
(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
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)
(19)
Entropia:
(17)
L 1 L 1
a =0 b =0
L 1 L 1
a =0 b =0
+ +
f (x,y) exp ( jx
jy y )dxdy
(20)
118
(21)
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
119
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:
(31)
(32)
(33)
120
(34)
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
(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
p,q =
++
(x x) (y y)
p
f (x,y)dxdy
(38)
(39)
p,q =
p,q
[(p + q)/ 2 +1 ]
0 ,0
(40)
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 ]
121
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) =
+ +
(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".
[V
nm
x 2 + y 2 1
unde:
122
(x,y)] V pq (x,y) dx dy =
n+1
np mq
(53)
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 =
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
(57)
(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
(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
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
(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
124
I () = [ (x x ) sin + (y y) cos ] 2
x
(72)
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
(76)
(77)
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
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:
(82)
(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
cn =
1
2j
k (s) exp
n ds
P0
P
(85)
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
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)
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)
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
extragere trsturi
trsturi textur
filtru A(z 1,z2 ) e(m,n) msurtori
decorelare
histogram
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
129
a
d
c
a
abaddddacacae
d
b c
b
c bb
a
d
b
abdbabcbabdbabcb
babcbabe
130
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
jos
dreapta
Ochi
stnga
fa stnga
stnga-sus
Sprncean
jos
sus
dreapta
Ochi
stnga
Limit
dreapta
stnga
fa
dreapta-jos
dreapta-sus
stnga-jos
Gur
sus
Gur
jos
Limit
jos
fa
sus
Limit
jos
fa
131
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}
132
133
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
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
Pentru cazul a dou clase i dou trsturi avem urmtoarea distribuie posibil a formelor
de intrare n spaiul formelor:
y
(A)
(B)
(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
(5)
j =1
Di (X) = wij x j
(6)
j =1
DK (X) wK 1 wK 2 ... wKn wK,n +1
Limitele de decizie dintre oricare dou clase se deduc din:
n +1
(7)
(8)
(9)
m =1
Folosind notaia:
wm( ij ) = wim w jm
(10)
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)
138
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)
(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
1
3
3 2
4
3
1
2
sau echivalent:
X i d 2 (X,Ri ) < d 2 (X,R j ), j i, j = 1...K
(20)
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
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)
Di (X) = wik x k
(29)
k =1
n +1
i =1
i =1
(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
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
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)
(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
142
(39)
(40)
(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
= X
2 X T X m(k) + X m(k)
(44)
(45)
m =1...M 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
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
(51)
144
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
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'
145
ij = AZ ij Vi
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
Ni
V Z
j =1
T
ij
are
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
146
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)
Vi = [0 0
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
(1)
(2)
L (X,k ) = F ( j /k ) P ( j /X)
(4)
j =1
149
(5)
(6)
(7)
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 )
(17)
L (X,k ) = hk P (X/k ) P (k )
(18)
Funcia de decizie a clasificatorului Bayes pentru funcia de pierdere diagonal este:
150
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
(19)
(20)
(21)
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
151
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)
(34)
k =1
Nc
i =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
(40)
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
(42)
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
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)
(51)
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
(55)
i =1
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
(60)
i =1
(61)
i =1
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
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)
(67)
i =1
156
157
(x)
0.5
x
-1
1
1 |x|, pentru |x| 1
pentru |x| > 1
0 ,
(x) =
(5)
(x)
x
-1
(x) =
1
2
x2
2
(6)
1
2
(x) = e |x|
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) =
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
(14)
158
(15)
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.
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)
(20)
2 2
( 2 )n
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
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
unde primul raport i prima exponenial se calculeaz doar o singur dat, n faza de
construcie a clasificatorului.
160
13.
Algoritmi
de
grupare
(clustering).
161
(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
(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).
(ic) = P (i )(x (i) x (i) )(x (i) x (i) )T - matricea de dispersie interclas;
i =1
= x mp
(10)
i =1 x p
163
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)
d (x,x) = xi x i
i =0
164
(17)
13.
Algoritmi
de
grupare
(clustering).
1 /
K 1
d (x,x) = xi x i = x x ,
i =0
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
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
(22)
i =0 j =0
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
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).
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
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
yA
(39)
(41)
167
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
(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
min
(46)
j A
m
Facem A = x( P (A )) .
m +1
168
13.
Algoritmi
de
grupare
(clustering).
exist n sensul
limit inferioar, s zicem D , pentru m . Dac un cuantizor limitat A
, 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
{ 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)
(52)
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
(55)
)) .
Facem A
= x ( P( A
(56)
m +1
(57)
(58)
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).
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
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
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
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
}
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
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
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
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
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 )
y2
w21
w11
x1
w12
w22
yK
w1K
w2K
wN1
x2
wN2
wNK
xN
181
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
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
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
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
184
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
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
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
186
(20)
(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)
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)
187
(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)
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.
(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
189
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
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
(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
191
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
j = bij(t)xi ,0 j M 1
(37)
i =0
1).
Pasul 4. Selecteaz cel mai apropiat prototip:
j = max { j }
j
(38)
192
N 1
X = xi ,
i =0
N 1
T X = tij xi
(39)
i =0
(41)
i =0
x0
x1 ... x N-1
Fig. 8. Arhitectura reelei Kohonen.
193
(42)
i =0
(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
194
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
(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)
195
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)
(55)
( p)
( p)
mij(p)(t + 1 ) = mij(p)(t) + (z)
j (t)z j (t)( 1 z j (t))
(56)
196
197
Reeaua Hopfield
#include
#include
#include
#include
#include
198
<alloc.h>
<conio.h>
<math.h>
<stdio.h>
<stdlib.h>
#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
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
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;
201
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
//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);
}
<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
*/
*/
*/
*/
*/
203
//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
//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);
}
<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;
/*
/*
/*
/*
/*
*/
*/
*/
*/
*/
205
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
return(0);
}
<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
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
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
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
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);
}
1.7976931348623158e+308
3.1415926535
unsigned char
#define OFF 20
#define
#define
#define
#define
#define
#define
//
//
//
//
//
//
NC
NC1
NZ
NI
NF
NN
3
4
256
2
600
(NC1*NF)
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
211
byte
int
// antet bitmap
// 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
//
//
//
//
//
//
//
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
/*-------------------------------------------------------------------------*/
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
214
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
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
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
// 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
219
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
Fiier imagine (bitmap) generat de programul te test pentru reeaua RBF cu antrenare hibrid.
221
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
=
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
= L (X,k )dX
(10)
k =1 k
= p (k ) p ( X /k )d X
k =1
(11)
j = p (k ) p (x j /k )dx j
k =1
(12)
k(j)
222
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
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
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
2 wm m2 = wm =
2 m2
(25)
m 1
2
m
m 1
(26)
(27)
m2
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
Y
selecie
trsturi
T
T -1
semnificative
Fig. 1. Selecia optimal a trsturilor.
~
X
unde:
(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 )
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
(38)
(39)
225
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
(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)
(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
226
T
j
uj
(51)
j = k +1
(52)
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)
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
(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)
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.
N
2 N j =0 i = 0
N
iar pentru reea neuronal:
N
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)
229
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
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
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
233
scalare
Se obine o matrice binar de dimensiune constant (32x32), coninnd imaginea scalat.
b) Transformata Cosinus Discret bidimensional:
DCT-2D
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
234
(1)
32 32
KL
(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
(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
(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
(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
(6)
ELSE
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:
236
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
238
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
]
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:
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)
E 2 (T) = p1 (x)dx
T
(5)
(6)
241
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
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.
243
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).
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
= 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.
H n hk e 2 j k n/N
(23)
k =0
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
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.
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
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
n +1
x 2 + y 2 1
(31)
(32)
(33)
(34)
(35)
(36)
unde:
247
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 =
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
(41)
(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
(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
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.
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
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.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
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
j =1
j =T
(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
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
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
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]
latura(3)
col[12]
latura(2)
col[23]
Fig. 8. Notaii.
255
N 0 k0 =1
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)
+ (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
poligonul
approximant
initial
{
{
poligonul
approximant
final
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)
257
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)
[
[
[
[
unde:
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
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)
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
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
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
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
(dx/L,dy/L)
unde L - distana ntre liniile portativului
diez
becar
bemol
pauza
1/4
pauza
1/16
pauza rejecie
1/8
262
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
263
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
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
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.
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
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
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.
(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
(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
(3)
32 32
KL
(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
(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.
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%
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%
267
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.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.
269
270
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
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
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)
272
test "halftone"
test "halftone"
Tip 1
Tip 2
Tip 3
Tip 4
Tip 5
Tip 6
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
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 ,...
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
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 "/"
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
"j";
"."(punct) sub un caracter "s", "S", "t", "T" se transform n obiectul "virgul" pentru a
276
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
278
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".
279
Coloana 2
Coloana 3
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
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];
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
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
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
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
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.
283
intrare
extrage
trsturi
selecie
trsturi
clasificator
reea
neural
decizie
284
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
1 I N
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
287
288
289
task-ul
"recunoatere"
scanner
simboluri
nerecunoscute
"adaptarea setului
de antrenament"
PC 486
PC 386
290
Text
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
291
292
293
RETELE NEURONALE
Curs 1: Introducere n calculul inteligent
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
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.
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
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
2.3
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
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
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
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
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
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
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.
+/
structur
a logica nu este
pe deplin lamurita.
4 Sunt sisteme adaptive (se pot
+
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
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
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
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).
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
4.1
4.2
Domenii de aplicabilitate
Principalele aplicatii ale calcului fuzzy sunt: recunoasterea formelor; aproximarea functiilor; controlul sistemelor; compresia imaginilor.
12
!"#
$&%'%(*)'()+,%-!.
0/'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.BET7BEKMPef 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 BOGDDB`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`hQMVaRTMQVPVrGPEDmMSX[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
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)
-g
@f
ih
kj
ml
h n
bo ?p ?q
-g
r\
e
x1
x2
Unitati
intrare
Nivel functional
si de iesire
sa
Grila patratica
Grila hexagonala
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
~ 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
Conectivitate
locala
Conectivitate
partiala
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[WEMVaRXPRK[BEDVPDTFB`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
|{
Y=F W (X)
X
date
intrare
Y
raspuns
%|
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
VXP_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 TByKMSRCV\ gIS VnnBEDHBEDKK}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(0)=X
(sistem dinamic )
starea initiala
Y=X( T)
starea stationara
}
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+yDGHDB`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^+VDdGFoX[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\ ISGD.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
` Mt
"!$#%'&()'+*,)- ./)0*213
C DFEGIHKJMLHKN.DO
P QSR TUQWVXQWVXQZY=QSQW[@\]Y_^`9acbd`9[feSghgikjlminogp` ilXqQWV[pQrg+ilXRbds R TUlKYtgie;R TUlX^oibVmQuj9givR e;^oi+j,RlXRglXR,Qr[+lmiw
xdy{z i|i+lXqQWVM[pQ~}gi+lXRbds R TUlM[pQ~livR,`9bd`9Q~eSbd`9be;R,QS`9lXWbdR,Q`lmiY=bd+RgVMeobhs `9QSR,`9bijlmRrj,QWibVmg+VQeSbd`Q;\V
+`9lmQWje y gb i[mi~e;^oij9lm[pQS`9bd`QjT lgilXRbdR,QWbe;RlXqbs gpRlmVmlXWbdRbs KQWivR,`9g^@[pQWVmbd`QWb0`9bdnog+VmglUvi+lXqQWVmgV
[QrlmivR,`bd`QZR,`9bij~lXR,QZqQWe;R,^`9gV=,FWSSS,KeSgh{ xdy
"y{z ihilmqQWV[pQ gilXRbds R T=lF[pQrlmQvjT lX`QZeSbd`9be;R,QS`9lmWbdR,Q0`lmiY=gi+e;R TUlml[pQZR,`9bijY_QS`w ( /jQWeSlXe;Q y
"y{z ibij9b+Vg[pQe;^oipQ;plmgil{miR,`QilmqQWVmgVu[pQlmiR,`9bd`QjT lZe;QWV0[pQlXQjT lm`Q3eSbd`9QmieSbdWgVre;QWV0bl
j9lm+Vmg`QWbVlXSQWbdvb~s ^e;^oipQWe;RlXq@lXRbdR,Q0R,^RbVb s y ^oipQ;@lgilmVX^`VXQ0jgiR bj,^"eSlbdR,Q0K^oi[pQS`lmVXQw r eSg
x SSSjT l SSS}oX`9QS`QSSQWiRb i[h`bdnogVgilXRbds R T=lml[QrlXQvjT lX`Q y
R,`ge;Rgp`9bgiQWlbj,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=QWVmQ3eSggiilXqQWV[pQulmivR,`bd`Q.tZ x gilmRbds R T=l=jT lgiilXqQWV[pQ
lXQjT lm`Qtg+ilXRbds R Ttl_ZjT lFe;^oiQWe;RlXq"lmRbdR,QR,^RbVmb0ivR,`Qri+lXqQWVmgVK[pQrlmiR,`9bd`Qj9T lFe;QWVF[pQrlXQj9T lX`Q y
N.LH G9.ODJ
gi+e;R T]lX^oibd`QWb{gipQWlobj,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,`9bijY_QS`0U] m , jT lK^obdR,QZf[pQWje;`lmjb.s `9liw
"! $ # m
,2,&%'+)d( _+*c^obdR,Q`QSR TtQWbgb, teSbd`9be;R,QS`9lmWbdRbs [pQ3^.bi"glmRb0s bd`9+lXR,QWe;Rgp`b@s pgibi"glXR
^"[[pQYtgie;R TtlX^oibd`QjT l[pQgibi"glXRrj,QSR[pQ+bd`bQSR,`9lml_Zjbhs bd`^@lQSSQ~Ytgie;R Ttlmb .- e;QWbjRb s
+`^+VXQWfbs QWjR,Q~lmK^`RbiRb~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`ZilmqQWVUKY=gi+e;R TUlmlVlmilmbd`Q
[QrlmivR,QSn`bd`QjT lYtgie;R T=lml[QZR,`9bij,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,QpR,QS^`QSRlmedKjb s
"! $# m 6
bd+`^WplmQSSQ7 Ytgi e;R Ttlmb y Q+giQ~`^VXQWb<; jbs j,Q[pQSR,QS`9lmiQ~qdbVX^`9lmVXQ+bd`9bQSR,`lmVX^``9QSR TUQWVXQWl
K^`9i+lmi[ [pQVmblmipY=^`9bdR T=lmlVXQheSgip^ojeSgR,Q[pQWj`Q tjQSRgV{[pQbivR,`9QWibd`Q~bj,R,Y_QWVmievbd Rbe;QWbj,Rb jb s
bd+`^WplmQSSQrQSY=QWe;RlXqKQ y
=" 'SI> ? %@d( = *0lXAQ ^`QSR T=QWbbiR,`QWibdRbks jbs bd`^@lmQSSQKQ y Q+giQ`^VXQWb6@ 5
"! $# m
# B 'bd`9^WplmQWbdvCb s KQ KQWiR,`9gk[bdR,Q[QrlmivR,`bd`QreSbd`Q0i"gYtbeZ+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[lmibe;QWbj,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+bVXQ0bd`RlXeSlmbVXQlm+VXQWQWivRbdR,Q yu j,R,Q.q^`b[pQWj`Q^`QSR T=QWbipQWg`^oibVb s
[pQWj,RlibdRbs `QWeSgip^ob+j,T R,QS`lmlg+ip^`3eSbd`be;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 bj,R,Y=QWV [pQ`QSR TUQWbQWjR,QheSbd+bd+lmVbs jbs `QSS^oVXqQf[p^obd`~`^p\
VXQWQVmlmi+lmbd`j,QS+bd`bd+lmVXQQS`lXR Tb i[`9lmibVXn^`9lXRgVc[pQivqbds Rbd`Qkj,KQWeSletbVXn^`9lXRgV
QS`e;QSR,`^oi"gVmgl_
[pQSR,QS`9~lmibd`QWbe;^"Q;eSlXQWipR TtlVX^` lXKQS`+VbipQWVX^`%eSbd`Qj,QS+bd`bs eSVmbj,QWVXQ y
ZI[]\
^`_Racbed+fbegihj_Pkmlonhpaqrah]loktsPaubeh]vxwdpfbyvkmao[Cz2d]{idpvk|wa_ivkmvnid]h}d+~>v~>ao[
M`9^+VXQWbdRlmeSbkeSVbjleobds `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`9lFbj,^@eSlmbdR,Q.gi"gl^+lXQWe;R.tig+lXRbs Y=^`9fb@s jT bd+VX^oi6jbghRlm+bd`ivR,`,\]^eSbdR,QSn^`9lXQ.[pQ
^+lXQWe;R,CQ B Xd,Si"glXRbhs < x ( y
z ikQ;@QW+Vmgkjl+Vmg[pQreSVmbj9leSbd`QZQWj,R,Q0e;QWVFbVFbj,^@eSlXQS`9lml[+lmivR,`9Q3^[pQWje;`9lXQS`9QZ`9lmibdR,`9le;Qr[pQr+l@QWVmlKb
gi"gl+eSbd`be;R,QS`t[pQQ;@QW+Vg~VmlXR,QS`,b 3jT lgi~li[lmeSbdR,^`%bVeSVbj,QWleobds `9QWlmbulbd+bd`9R TUlmipQt[QQ;@QW+Vmg~qbVm^obd`QWb
`QS+`QSSQWivRb+b i+[fi"gfbds `9gVK[pQZ^`[lmipQZbVFeSVmbjQWlFbj,^@eSlmbdR,Q0VmlmR,QS`QWol y
`^"e;QWj9gV[Q6eSVmbjlXeSbd`Q6[QS+lmi[pQ6[pQ^"[g+V [pQ[pQWje;`9lXQS`9Q6b^+lXQWe;RgVmg+l y plmj,Rbs [p^ogbs ^"[+bVmlXRbds R TUl
`9lieSlX+bVXQ3[pQ[pQWj9e;`9lXQS`QZb^+lmQWe;R,QWVX^`Ww
s giqQWe;R,^`eSg$qbVm^`9lri"gQS`9lme;Qbj,^"eSlbdR,Qgi"glZj,QSR[pQ
Stt` m ( *13+lXQWe;RgVglZlrj,Qbj,^"eSlbdvb
eSbd`be;R,QS`9lmj,RlmeSl%j,KQWeSle;Q y6 e;QWj,R,QWl^@[bVmlXRbds R T=lc[pQ[QWje;`9lXQS`Qmle;^`9QWj,+gi[jlmjR,QWQWVXQ[QeSVmbjlXeSbd`Q
[QWeSlXWlX^oibV\jRbdRlmj,Rlme;Q y
s jlm0K^oVmlmeobs ^`ilmi[[QuVb0gij,QSR[pQu`lmlXRlXqQ y
. t& ;W ;@, <m ( *13+lXQWe;Rg+V+QWj,R,Qr[QWje;`9lmjmiR,`,\]^bilXQS`b
lmj,R,QWQWVXQr[QreSVmbjleSbd`9Qrj,KQWeSle;QZbe;QWj,R,QWl[pQWje;`9lXQS`ljQr+bdSQWbdvbs KQZ^~bi+bVmlXvbs jlmiRbe;Rlmeob s y
Ii `QSS^oVXqdbd`QWbeSg`QSR TtQWVXQipQWgp`^oi+bVXQ0b`^VXQW QWVX^`u[pQ.eSVmbjleSbd`9Q.jQ0K^`9ipQjT R,Q[pQVmb[pQWje;`lXQS`QWbnQS^d\
QSR,`9leob s y ubeobs gVXR T=lmQWbY=^`9QWVX^`3QWj,R,Q$$ be;QWbj,RbK^obdR,Q0[pQWje;^o+gjb.s mivR,`\gifj,QSR3[pQ0eSVbj,Q
{@ 9fSS % y QS+bd`9bd`9QWbZikeSVmbj,QZQWj,R,Qrbjlmnogp`9bdRbs [pQuQ;plmj,R,QWipR Ttbgi^`Y=gi+e;R T=ll[Qr[pQWeSlXWlXQpW
d SSm+6+eSgf.w ' y
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
X W
c ;p; 'U
m{XeSgk`^`lXQSRbdR,QWbeob s
[beob6s j9T lFig+bl[beobs .,=R jT lFr=c KQWivR,`9g^`lme;Q{ x SSSo4
bdRg+ieSlFeSVmbj,QWVmQrj,Qi"gQWjeu+gR,QS`9ilmeuVmlmi+lmbd`j,QS+bd`9bd+lVXQ y
;4 B 'Ud S2@d, # B m< *ubeobs Q;plmj,Rbs Y=g+ie;R TUlmlKVmlmilbd`Q".=M =F ;c MSS
X W
m{XeSgk`^`lXQSRbdR,QWbeob s
[+beobfs jT lFi"gbl[beob~s .,= r=cKQWiR,`9gk^`9lme;Q{ x SSSo|
bdRg+ieSlFeSVmbj,QWVmQrj,Qi"gQWjeZjl+VmgVmlmi+lmbd`cjQS+bd`9bd+lmVmQ y
Vbj,QWVXQ+gpR,QS`9ile0Vmlilmbd`jQS+bd`9bd+lmVmQ0jgiRjT ljlmVmgfVmlilmbd`jQS+bd`9bd+lmVmQ y0 Vmbj,QWVXQ.eSbd`Qi"gjgiRuj9lm+Vmg
Vmlmi+lmbd`j,QS+bd`9bd+lVXQ j,Q{i"gQWjeiQWVmlmilmbd`j,QSbd`9bd+lmVXQ y Ii eSbdWgV+b eSVmbj,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^oibVbs bWqFb i[Ytgie;R T=lXQ[pQR,`9bi+j,Y_QS`klmibd`b/s t[pQRlX
3QWbWq@lmjlm[pQjbg+lm^oVbd`b s t[pQfRlXjlXnoi"g y j,R,Q6[QWj,RlmibdRb
s `9QSS^oVXqKbds `lml`^VXQWQWVX^`[pQeSVmbjleSbd`Qmi
[p^ogbs eSVbj,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
) mK tU
eSbd`Q3K^obdR,QklmiR,QS``QSRbdR%bj,R,Y=QWVUw[beob s x bdRgi+eSl+qQWe;R,^`9g+Vbdbd`R T]lmipQeSVmbj,QWxl {W"bVXR,Y=QWVQWVbd+bd`9R T]lmipQ
eSVmbj,QWl@ y
^`9QWj,K^oi[pQWipR T=b.[lmiR,`Q3qbVX^obd`9QWb.`^@[gjbs [pQ3`QSR TUQWbkjT leSVmbjb.bj,^@eSlmbdRbs j,QZj,RbdlmVXQj,T R,Q{miblivR,Qu[pQ
blmi+lXR T_lb.`^@e;QWjgV[pQmiqbds R TUbd`Qmmik^oQWivRgVe;^oij,R,`9glm`9lmlj,QSRgVmgl[QrbivR,`QWi+bd`Q y
z ij9lmj,R,QW(eSg ^bj,R,Y=QWV3[pQfYtgie;R T=lX^oibd`9QfQWj,R,Q[pQfYtbdRg+ieSVmbjleSbdR,^`+libd`~eSgY=gi+e;R T=lmQ6Vmlmi+lmbd`bs [pQ
[pQWeSlXWlmQve;^Q;eSlXQWipR TUlmlpbe;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[pQhbivR,`9QWibd`Qw = SSS= 9feSg x x 6`bs j,gijgV
e;^`QWe;Rke;^`QWj,gipvbds R,^`lmivR,`bds `9lml KQh+bdWbeobds `9glmbj,Q6b gj,R,QWbdvbs lXR,QS`9bdRlXq qQWe;R,^`gV{K^oi[QS`9lmVX^`
= d,uWSSSW,{u yc VXn^`9lmR0gV[QrbivR,`QWi+bd`Q0bKQS`9e;QS+R,`^oig+VmglKe;^oij,Rb@s eSb~b ,^`9lXRbdR,QWbbVXn^`9lXRlVX^` [pQ
biR,`QWibd`Qj9gpKQS`q"lmWbdRb@s mik[p^ogb.s QSRbdKQr`lmieSlX+bVmQw
IilXR T=lmbVlXWbd`QWb.qdbVX^`9lmVX^`K^oi[QS`9lmVX^` y
gj,Rbd`QWb lmR,QS`9bdRlXqbs bK^oi[pQS`9lmVm^`b ib%s QWj,R,Q
bjlmnogp`9bdRbs e;^oK^`Rbd`QWb{e;^`QWe;Rb{s KQj,QSRgVv[pQMbivR,`9QWibd`Q y
e;QWbj,RbrjQ
+bdSQWbdvbus KQ%lm[pQSQWb3[pQ%b3^"[lXeSb K^oi[pQS`lmVXQ[p^obd`[beob3s `bs j+gijg+V`QSR TUQWVXQWl"i"g0QWjR,Q%e;^`9QWe;RS
b gj,Rb i+[g@\VXQrbj,R,Y=QWVmi+evbd R`bs j,+gi+jgV`QSR TtQWVXQWlFjb
s j,Qbd`^lXQZ[pQre;QWVe;^`QWe;R y
R,`ge;Rgp`9b.nQWipQS`bVbs bbVXn^`9lmR0gVglQWj,R,Q`9QSSQWivRbdRb.s mi+n y y
C$ee }
&'+= U%d( +*
QrbVXQSn~qbVX^`lmVXQZlmilXR T_lmbVXQZKQWiR,`9gv. }
Qrlmi+lXR T_lbVmlXSQWbdvbs e;^oiR,^`9gVF[QlXR,QS`9bdR Ttlml]e x
I ;$;]d0=SItB 89) ( *
P
U
1u
P x L 1
K ;
x t v. }
x
z U VVbgVXRlmb+bd`eSgp`nQS`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`bs j,+g+ijgVe;^`QWe;R y P{QSnogVmb[pQbgj,Rbd`9QrbK^oi[pQS`9lmVm^`cK^obdR,QZf[QWje;`9lmjbfs j9T lK`9lmiw
[beob~s x x
[beob~s x x
j9bgk`9lmi
y
"y PbdRb~[pQre;^`9QWe;R TlXQ K^obdR,QZ6bVXQWbjb0s mik[lXY=QS`9lXR,QZ^@[gp`lUw
tbv ue;^oi+j,RbivR=Q;w x &
= = t ;y{ ];+ j,QhbVXQSnQfVb+QWeSbd`QflXR,QS`bdR TUlXQ|,jT l%KQWivR,`g+QWeSbd`QhQ;@QW+Vmg= ,
j9g@eSlXQWiR[pQbd`QKQWivR,`9g6bnobd`9biRbkeobs qQWe;R,^`9gV6qb~eSVmbjleSbdR3e;^`QWe;RZ[gpb~s b ,gjRbd`QWb
e;^"Q;eSlXQWiR TUlmVX^` y ubeobks + QWj,R,QqQWe;R,^`9gVK^oi[pQS`9lmVm^` e;^`QWj,+givbds R,^`ulmR,QS`9bdR TUlXQWl fbdRgieSl j,Q
bVmQSnQ0bj,R,Y=QWVmievbd R + x 2 b[leob s
] + F + L ]2
e;QSQWbe;QrQWj,R,Q0QWe9lXqdbVXQWiR eSg
+L]R +
3QrQ;@QW+Vghj,QZK^obdR,QbVXQSnQbjR,Y_QWVUw
+
L ] x
+
1bVXRb
s qdbd`9lmbiRbs ^`QS`9QSWlmivRbhs W tr@d; U <d( w
+ 6
+ L ]M
eS|g y
Y
"y{ XV QSnQS`QWbqdbVX^`9lmVm^`lmilXR T=lmbVmQ{KQWivR,`glmiegpQWipR TQWbdvbs q"lXR,QSWb[pQ3e;^oivqQS`nQWiR Tbs jT l+Y=^`9b0eSVmbjleSbdR,^`9g@\
Vgl y ubeobs QWj,R,Q{K^ojlXlmVoQWj,R,Q3lmi[leSbdReSb jb3s +Q lmilXR T=lmbVlXWbdR,QKQ+bdWbrgip^`MlipY_^`bdR Ttlmlp[pQWj,`9Q`^p\
VmQWfb s y 3Q{Q;@QW+Vmgj,Qe;^oij9lm[pQS`brs eobs [p^ol[lmiR,`Q qQWe;R,^`9lml[lmi~j,QSRgV+[QbiR,`QWibd`Q3K^RM`QS`QSSQWiRb@pVmb
^`9lmfbus bd`9^Wplmbd`Q`^R,^RlX+g`9l@bVXQ e;QWVX^`
[^ogbZs eSVmbj,Q y
^"Q;eSlXQWiR T=llplXKQS`+Vmbi"gVmg+lKQS`KQWi[lmeSgVbd`
KQr[p`9QWbdRb[pQSR,QS`9~lmibdRbs [pQre;QWVXQ0[p^ogb.s +gi+e;R,Qrj,Qe;^oijl[pQS`b.s b.fqdbVX^`9lmVmQulilXR T=lmbVXQrbVXQZK^oi[pQS`lmVX^` y
bd`lmbivRb0e;QWbbljlmVbus [pQ lmilXR T=lmbVlXWbd`Q^r`QS+`QSWlmiRbs mijbZs bdY=QWe;Rbd`QWb[pQ qdbVX^`9lpbVXQWbdR,^obd`9Q3eSgp+`9lmij,Q
i x jbg2 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,`9bi+j,Y_^`bd`QMVmlmi+lmbd`bcs w" ' 3 =M
mK =
eSg`9^`9lXQSRbdR,QWbkeoN
b s ~=u x [beob|s j9T lig~bl[+beobks = jT 9l ~=u x [beob s
j9T lMig+bl[beobhs =A QgipQ.`^+VmQWb[beobhs KQWiR,`9g^`9lme;QYtgie;R TtlXQK^"^oVXQWbibs eSg|be;QWbjRb s
+`^`9lXQSRbdR,Q%bVXn^`9lmR0gVKQS`9e;QSR,`^oi"gVmg+lY=g`9ilXSQWbdvbs ^3j^oVmgpR TUlXQ y P0bs j,gijgVoQWj,R,Qb+`9bdRlXqj9T leSgp+`9lmij
ikgp`9fbds R,^obd`QWb~R,QS^`QWfb s y
xm ? yj o>
. C 'e; tIo ]<* `^+VXQWb[pQeSVmbj9leSbd`Qlmi+[6Vmlilmbd`uj,QS+bd`9bd+lVb~s `9QSWgVXRbks eobs Q;plmj,Rbfs i bj,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,Qrbj,R,Y=QWVUw
ZI[
ak)bya_P~>kml@{9gPhjq"gPhp~mdp_ih}g
$
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 3bqQWe;R,^`9gVmg+l~w
m ,b
lbd` 3QWj,R,Qe;^oi+jlm[pQS`9bdR li[lmeSbdR,^`9g+VeSVbj,QWlFeobds `QWlmbmlbd+bd`R TtlmiQZqQWe;R,^`9gVF[pQ0lmivR,`bd`QZ y
?o
c` Ie
x
z U VVbgVXRlmb+bd`eSgp`nQS`Qri"ghjI\bQSY=QWe;RgbdR3ilmeSlK^~b gj,Rbd`Q<V01uP0.mi
QMK^obdR,QcVmge;`9b0j9T loeSgQS`9^obd`QWb bds R,`bdRlmeobs QW[lXQKQj,QSRgV[pQbiR,`QWibd`Qu=^R T]lmi"gpRb s [+lmi ] `9lmiumbds `R TlX`Q
VmCb % y 13lXQWe;RlXq@gVKbVXn^`9lXRgVmgl[Qmivqbds R T]bd`Q0[pQSq"lipQrbj,R,Y=QWVlmi+lmlXWbd`QWb.Vmg+l mi`bd^`9R{eSgk+bd`9bQSR,`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[+lmibVXnQS`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+lXqbVmQWivRbs 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`lmbivRbs [pQ[pQSR,QS`lmibd`Q0b~lmi+lm0g+VmglVmgl ] j,Q+bdSQWbdvbs KQ[pQSR,QS`9~lmibd`QWbgie;RgVmg+le;`9lXRlme
bVFVmg+l ~+b[lmeobs Qu`QSS^oVmqbd`QWbjlmj,R,QWgVmg+l mi`9bdK^`R eSg6 y
1bVXRb
s ^@[bVmlXRbdR,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{blj9lm+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` +bjg+VM[pQ
[pQWje;`9Qvj,T R,QS`Q+eSbd`Qumih[p^oQWi+lmgVKbVXn^`9lXR~lmVX^`[pQmiqKbds R Ttbd`9QrQWj,R,Q[pQWi"glmRc`bdRb~s [pQmiqbs bds R TUbd`Q y
^`9ili[[QVmbbe;QWbjRb s lm[pQSQbY=^oj,Rh[pQSSq^oVXRbdRfbVmn^`9lXRgV lm[`^a]\ 3^ mi/eSbd`Q6ijbs b ,gjRbd`QWb
j,QeSbVmeSg+VXQWbdvbks j,QS+bd`9bdRZKQWiR,`9g6+QWeSbd`QR,QS`9QWi^`ilmi[6[pQVmbqbVX^obd`9QWbQS`^`9lmle;^`QWj,gipvbds R,^obd`QQWeobds `9gl
Q;@QW+Vmg=]vtc[lmikj,QSRg+VF[pQrbiR,`QWibd`Qw
] x 9 x m t x m t K W
#"
"
%$&
('$
$&
('$
)
$+
C`<$ee }
xdy bVm^obd`QWb,
VbbivR,`QWi+bd`Q y
"y ubdR,^`9lmRb0s e;^oiqQ;@lmRbds R TlmlVgl ] QSR,^"[pQWVmQ[pQ{~lmilmlmWbd`Q[pQ{RlX~n`9b[lXQWiR
jg+ivRe;^oiqQS`nQWiR,Qt[bd`
i"g~miki"gfbds `%i+lXR[pQZ+b+jT lKeSbbVXn^`lXR0g+VKQS`e;QSR,`^oi"gVmgl_ y M`lmieSlX+bVbr`^VXQWfb.s eSbd`Qbd+bd`9QZQWj,R,Q
e;QWbfbkq"lmR,QSSQWl[pQe;^oivqQS`9nQWipR Tb@s eSbd`QK^obdR,Q|e;^oivR,`9^oVmbdRb@s ivR,`,\]^k^obd`9QWeSbd`Q~fbs jg`b@s F`9libVmQSnQS`QWb
`bdR,QWlM[pQmiqKbds R Ttbd`Q y 3Q`QSnogVbs j,Q.Y=^oVX^oj,Qj,T R,Q^k`bdRbks e;^oij,RbiRb@s w x x ]y~z ib[lmiR,`QqbVm^`9lmVXQ
e;QWVblKY=`QWe;qQWivRY_^oVm^ojlXR,QZQWj,R,Qw xdy
"y IilXR T=lmbVlXWbd`QWb3K^oi[pQS`9lmVm^`c] x ,j,Q%QSY=QWe;RgpQWbdvb@s "[Qc`9QSnogVb@s veSg.qdbVX^`9l@bVXQWbdR,^obd`Q[lmi x jbge9+lmbd`
2 x x y
E JH dJ9J LMN N.LH G9G FJ HDO
H WJMDL33HKGrN.J .JG9GODJ
ubeobfs gi+lXRbds R TUlmVXQ[pQlXQj9T lX`QbgYtgie;R Ttlml[QR,`9bij,Y=QS`ipQWVmlilmbd`Q.bdRgieSl`9QSR TtQWbgbhK^obdR,Q`QS+`QSSQWivRbjT lYtgie;R Ttlml
e;^oiRlmigQipQWVlmilmbd`Qft[+lmi|bs eSbdR,Qg+ijlipnogp`0i+lXqQWVMYtgie;R TtlX^oi+bVi"gK^obdR,QbjlXnogp`bh`QS`9QSSQWivRbd`QWb^`lmeobds `QWl
Ytgie;R TUlml_ y ulXY=QS`QWipR TtbYtbdR T9b|s [QfeSbdWgV3gilXRbds R T=lmVX^`Vmlmilmbd`9Qhj,QfbilmY_QWj,Rbs bdRbd Ri Y=g+ie;R TUlX^oibVmlmRbdR,Qfevbd RjT l%mi
bVXn^`9lmR0gV[Qmivqbds R TUbd`Q y
I[pQSQWbhbVXn^`lXR0g+Vmgl[pQ0miqKbds R Ttbd`9QQWj,R,QR,^Rlmilm~lXWbd`QWbQS`^`9lmlKQj,QSRgV[QbivR,`QWi+bd`Qb gj,Rbd`9QWbh[pQ
RlXkn`9b[+lXQWivR lmi[bd+VmleSbdRb.s QWiR,`9g+QWeSbd`9QrQ;"QW+Vmgh[lijQSRgVF[pQrbiR,`QWibd`Q0bjgp`9bVgl w
] M X t K ; ,
.-
32
0/
*
&'= U%d( *
QrbVmQSnqbVm^`9lmVXQZlmilmR T_lmbVmQZQWiR,`9g x v }
QrlilXR TtlmbVmlXSQWbdvbs e;^oiR,^`9gV[pQrlXR,QS`9bdR TtllU~ x
;]d0=SIot 8
m ( *
P
U
1u
P F x L 1
I ;$;]d.vt4
=oIoU '+ 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
K
lmbd`bgj,Rbd`QWbuK^oi[pQS`lmVX^`eSbZgp`9 bd`Q%bu`QSSQWiRbds `9lml"KQS`QWelmlK= QWj,R,Q{j9lmlmVmbd`b{s bVXn^`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`Qbe;QSQWb+jT lZj,R,`ge;Rgp`bs eSbbVXn^`lXR0g+V /lm[p`^a]\ 3{^
[lXY=QS`9lmi+[[p^obd`{`9lmi`QWVbdR TUlmb[pQreSbVmeSgVKKQWiR,`9tg y
8
$&
:
;
C$ee }
;<
eSg6 BM
x UBK, y
GO G,HJ O J DJH J9JD WJMJPF W{D /ODxF LMNNGTKJ
z ibu[lmiR,`Qce;QWVmQ%~bl"~bd`9l@VmlmlXR,QcbVXQ%`QSR TUQWVXQWVm^`eSg.gi.ilmqQWVQWjR,Q be;QSQWbreobus ig.K^R`QS`QSSQWiRbZg ipQWVXQcYtgie;R Ttlml
jlm+VXQKe;QWVbl[pQWjZeSlXRbdRZQ;@QW+Vmgflmi+[6e;QWVbVYtgie;R TtlmlVX^`K^"^oVXQWipQ.[pQ.+bd`9lXRbdR,Qw w x x
eSg ~= [+beobs e;^oiR T]lmipQZgiki"gfbds ` bd`{[pQre;^oK^oipQWiR,QrQSnobVXQeSg x jT lx~= x mikeSbde;^oivR,`bd` y
QWVbljl+VmgkQ;@QW+VgfQWj,R,Qe;QWVbVYtgie;R TUlXQWl /21uP t}' y 1`QSR T=QWbbd`Z+gR,QWb~`QS+`QSSQWivRb /21ZP
[beobs bd`9Q[p^ogbs gi+lXRbds R TUl[pQrlmiR,`9bd`QjT lgib.[pQlXQj9T lX`QZeSgk^Ytgie;R T=lXQr[pQZR,`bij,Y=QS`{eSbd`QrqQS`9lXeob@s w
=u W =uc = Wc
q@lm[pQWiR Ytgie;R Ttlmb~jlXnoi"gkYtgie;R Ttlmb~Vmlmilmbd`bs j9bg6elmbd`e;QWbjlXno^olm[bVbs i"ghK^R{j9bdRlmj,Ytbe;Qe;^oi[+lXR TtlmlmVXQr[pQbl
jgj y
Iije9l`9lmib[bs gpnobd`9QWbg+iglcilXqQWVclmiR,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;QWbj,Rb^RlXqQWbdvbs gRlmVmlXWbd`QWb`QSR TUQWVXQWVm^`
Y=QSQW[pY=^`acbd`[eSgblKgVXR,QuilXqQWVXQ3[pQ
gilmRbds R T=lYtgie;R T=lX^oibVmQ y Q3`QWbd`eSbdR eobs bdVmlmeSbd+lmVlXRbdR,QWbZ`QSR TtQWVmQWVX^`cgVXRlilXqQWV+eSgYtgie;R T=lml[pQ3R,`9bij,Y=QS`cVlmilmbd`Q
KQ R,^obdR,QZilXqQWVXQWVmQ ig~QWj,R,Q3jQWileSbdRlmqblVmbd`n+b0s [pQWevbd R
b0e;QWVX^`ceSggii+lXqQWVmmiY_^oi[Fv^`9QSR TtQWb0ipQWg`^oibVb s
eSgblgVXR,QilXqQWVXQbWqFb i[Y=g+ie;R TtlmlVmlilmbd`Qr[pQR,`9bijY_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,`9bij,Y=QS`bVXQgilXRbds R T=lmVm^`{[pQKQi+lXqQWVXQWVXQrbjeSg+ij,Q
jgiR ipQWVmlilmbd`Q y
=
>
.<
?2
!@A2
*B
xW
!"#" $
% &'(
)* !"+, $
-'%
*
.
/
0 $ /*
XOR 0 1
0
0 1
1 0
7 !0 1
65.
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
% ! 4 / $ 9 ! 9 9 ! * 0
9
$ * 9 !
9
9
$ *
% 8 % ! !
0 9
9 ! $ : )!*
.
/
/
/
/
/
)
% /
)
$
/*
; / /
) /
% / /
<= ' !""!> <(/' !"+">
<711 !"+">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
!
" $
* " $
* 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 )
. 9
$ * 9
$ * 9 !
* 9 ! ! 9 :
9
$ * 9
$
9 ! 9
9 !
* 0
" $
*
$" $
$
$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
.;%; H
75. % 9 ! # 5
9
$
*$! * 9 ! $ *
75. 9 ! ! 5 $
*
9
$
* 9 !
(%
"
%
"9:
75. % 9 ! # 5
75.I
" 9 " A !
" 9 "(#
.
9A!
J3H2 $" " * 5. $' ) ' *
4
0
.;%; H
K 9 : 9 ! 9 ! 9 :
75. % 9 ! # 5
!"#"$% 75.I . 9
&'#"$%
9
$
*$! * 9 ! $ *
75. 9 ! ! $
*
9
$
* 9 !
(%
"
%
"9:
75. % 9 ! # 5
75.I
" 9 " A !
" 9 "(#
.
9A!
J3H2 $" " * 5. $' ) ' *
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.
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
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
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
ij (p) =
aij (p 1)
ij (p 1)
bij (p 1)
if
if
if
>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
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
#
. #
'
'
#
#
6
!
#
#
)3)58
!
"
$
$
,
"
$
#
$
,
%
$
% ,
6$ 5
@
A/
#$
, 5
/
/
6 3
? 5
#
#
#
?
#
# &
*
;
"
#
;
#
#
#
'
;
"
#
4
(
4
4
'
" '
4
>
"
!
'
!
#
#
!
#
#
% ,
" 2
,
)3)58
0 ! % ,
#
,
%
<
.
8B): % - "
)1!)
$ % - ,
%
.
#
% - ,
"
" % " % 2
,C
9:8.1
"
?$ 5
'
#
;
#
;
;
0
'
$
% &
& D2E
,C
0
% ,6
-
0
'
5
'
&
'
5
#
&
F
/BG
9
#
.
&
$ 0
&
=0
!
"
#
$
"
%
15
10
5
0
-2
10
12
#
! (
!
&
! )
( ( %!
(
!
*
&
! ( + , ( + % !
( -
-
"
#
$
!
!
.
/ !
&
0
1
0
.
)
#
-
&
0
$
#
#
&
( !!0
%
%
)
/
!
+
(%
! ! ( %
5
!
#
$
7
7 143 # -
6
8
!
-
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
!
#
! )
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
!
<!
)
#
143 $
B #
#
)
*;D # *
;
D )
& !
!
#
!
&
143
3
& !
!
#
0 !
0
:
#
( %
& !
!0
(
:
( , ! ! (
:
( ! !
E
3
3
#
(
!!
?&
( %!
( +!
( ?!
F-
-
.E #
#
!
F-
%GH<
-
!
.
F-
#
=
!
-
!
x1
x2
Unitati
intrare
Nivel functional
si de iesire
" =& 2
F-
!
Grila patratica
Grila hexagonala
!
!
" I& 4
F-
&
%
( !!
&
$ ! ( $ ! ( % ! , % ! %! , %!
$ ! ( % ! ,% ! %! ,%! % %! % ,%! ,% %! ,% ,%!
J
!
( % # ! ( # ! (
2234
)
! !
( , ! !
$ !
(,%
$54* ! ! .
!
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
*
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 !
-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
"
% $ % $
$
'
"
$
6
75
8
'
/
'
/
*
: %
% $ % $
&
>
! #" $%&'&')(*+ ,-(/.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"SRJ: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#!3v9nw&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{R0653"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+ vh3nwmX9x&'&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 St8q0vnwm >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. =
Rh: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+
R3#.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#<:RO]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#O9q.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*eR3#.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)
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 YaT 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 t8q7vnBUv/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:139LR3#.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#<:2RO-*+8.-Y;] " .7+ .R3-.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
!
#"
$
%&
%'
%&
(
%&
*)
.-
"
,+ +
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
:1.7+ ZT Y*/(?*/(39"JRC.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
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#Fo 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 ]`'wx'`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[R3-.7= +8*/:\?:'C&:1(.039" :'E6 $ :.@E.0&',0+;:1:_dR3-.7= +8*:\?:C&.039" :'EQ]
uj
l
f
TB.>Y
TU~\Y
TB3XY
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.@= Rh6 *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.ZGJ#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(ARC.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
@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(RO] 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(RO] 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;] (RO-*/+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%
(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(RO-*+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 U4 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 rft8q0vnBus;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"
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.
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
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
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
Cuprins
1 INTRODUCERE
12
1.3.1
13
1.3.2
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
26
A IMAGINILOR
3 FILTRAREA LINIARA
31
34
36
38
4 TRANSFORMARI
INTEGRALE UNITARE DISCRETE
2
42
4.1 Generalit
ati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
4.2 Propriet
atile transformatelor unitare unidimensionale . . . . . . . . . . .
44
45
4.3.1
Propriet
atile fundamentale ale transformatei Fourier . . . . . . . .
46
4.3.2
49
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
62
65
5.3 L-filtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
66
71
72
6.1.1
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
88
6.2.3
88
89
92
93
7.1.1
Codarea entropic
a (Human) . . . . . . . . . . . . . . . . . . . .
93
7.1.2
95
99
7.2.1
Codarea predictiv
a . . . . . . . . . . . . . . . . . . . . . . . . . .
100
7.2.2
101
7.2.3
. . . . . . . . . . . . . . . . . . . .
102
7.2.4
Cuantizarea vectorial
a . . . . . . . . . . . . . . . . . . . . . . . .
105
8 SEGMENTAREA IMAGINILOR
110
111
8.1.1
Segmentarea bazat
a pe histogram
a . . . . . . . . . . . . . . . . .
111
8.1.2
119
123
8.2.1
Metode derivative . . . . . . . . . . . . . . . . . . . . . . . . . . .
123
8.2.2
Alte metode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
128
9 PARAMETRI DE FORMA
130
130
131
9.3 Semn
atura formei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
135
9.4.1
Skeletonul morfologic . . . . . . . . . . . . . . . . . . . . . . . . .
135
9.4.2
Skeletonul generalizat . . . . . . . . . . . . . . . . . . . . . . . . .
137
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
1.1
Imagini digitale
(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)
1.2
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):
Red Green Blue - Rosu, Verde, Albastru: sistemul primar de reprezentare a culorilor.
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
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
13
1.3.2
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
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
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
2.1
(2.1)
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
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).
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)).
v
T (u2 ) T (u1 )
dT (u)
=
=
= T (u)
u
u2 u1
du
(2.3)
, 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.
22
2.1.2
Modificarea neliniar
a a contrastului
L1
lg(1 + u)
lg L
(2.5)
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
(2.8)
(2.9)
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
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
h(i) =
1
MN
M1 N1
m=0 n=0
(2.10)
de normare
h(i) = 1.
i=0
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
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.
fX (t)dt. Tinnd
seama c
a valorile de
0
28
histograma cumulativ
a a imaginii; dac
a h este histograma imaginii, atunci
x
h(i)
g(x) = H(x) =
(2.11)
i=0
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
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)
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
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.
Imagine original
a
33
3.1
Filtrarea liniar
a de netezire
aleatoare y =
n
i=1
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)
NM
P SN R = 10 log
1
M AE =
NM
n,m
(3.5)
n=1 m=1
N
dB
2
n=1 m=1
1
M SE =
NM
max f (n, m)
(3.6)
(3.7)
n=1 m=1
34
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
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
3.2
Filtrarea liniar
a de contrastare
1.5
1
0.5
0
-0.5
0
50
100
150
200
250
50
100
150
200
250
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
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
Contrast mbun
at
atit
Imagine original
a
3.3
Filtrarea liniar
a adaptiv
a
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:
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
(3.12)
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
U(m, n) =
(4.2)
k=0 l=0
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
N 1 N1
(4.3)
m=0 n=0
m=0 n=0
(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
(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)
(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)
(4.11)
Ev = vT v = (Au)T Au = uT AT Au=uT u = Eu
(4.12)
(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)
4.3
v(k) =
n=0
kn
u(n)wN
, k = 0, N 1
45
(4.17)
N1
k=0
kn
v(k)wN
, n = 0, N 1
(4.18)
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)
4.3.1
Propriet
atile fundamentale ale transformatei Fourier
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.
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
(4.23)
48
Fig. 4.3: R
aspunsul n frecventa a unui nucleu 3 x 3 de mediere aritmetic
a.
4.3.2
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
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 =
50
+wNk
vpar(k)
vimpar(k)
-wNk
v(k)
v(N/2+k)
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
v(5)
v(6)
v(7)
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
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)
(4.32)
u2 (n) =
(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
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
(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
5.1
Filtrarea de ordine
(5.1)
(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)
adic
a
(5.5)
t x(k) t + dt
(5.6)
(5.7)
Aceast
a ipotez
a a mai fost f
acut
a si pentru deducerea transform
arii de egalizare a histogramei
imaginilor.
58
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)
(5.9)
5.1.1
Filtrul median
59
4
3
2
1
0
10
12
14
2
0
0
10
12
14
0
0
10
12
14
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.
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).
5.1.2
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
Este evident c
a multisetul de valori contine
maxime este
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
64
5.2
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
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]
Filtru
filtru de
filtru de
filtru de
filtru de
5.4
Aspecte de implementare
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
(5.16)
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
(6.1)
72
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
Fig. 6.3: Exemple de erodare a unor multimi discrete cu diferite elemente structurante,
ce si contin (sau nu) originea.
74
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 = }
bB
Ab =
Ab (6.7)
bB S
75
Fig. 6.5: Exemple de dilatare a unor multimi discrete cu diferite elemente structurante,
ce si contin (sau nu) originea.
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)
(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
(6.14)
(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)
(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)
(6.20)
(6.21)
(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:
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
aA
81
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)
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)
6.1.5
Aspecte de implementare
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
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)
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)
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
B=
Bx
(6.38)
Bx A
AB =
(6.39)
Bx
Bx A=
6.2.2
6.2.3
B) 2B)
2B) 3B)
...
(6.41)
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)
vrful lui A
+
+
+
+ +
+
+ +
+ + + +
+ + + +
+ + + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
multimea A
+ +
i
functia asociata multimii A
functia f
+
+
+
+
+
+
+
O +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
umbra lui f
i
umbra este nemarginita
g = T (U (f)
(6.48)
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
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
93
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
H(S)
2.366
=
= 1.493 bit
log D
log 3
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
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
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 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
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
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.
(7.5)
(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.
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)
7.2.2
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
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.4: Exemplu de reprezentare a unei imagini binare pe un arbore cuaternar complet
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).
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
pb
nb
(7.9)
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
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.
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)
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
111
h(i) =
1
MN
M1 N1
m=0 n=0
(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
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.
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
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)
(8.8)
(8.9)
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
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
0.3
0.2
0.1
0
-0.1
0
50
100
150
200
250
300
116
z(a) = ln
h(a)
, a = 1, L 1
h(a 1)
(8.12)
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
(8.15)
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
1
1
2
2
1 2
2T
1 2
21 22
21 22
21 22
2 ln
P1 2
=0
P2 1
1 + 2
2
P1
ln
2
1 2 P2
8.1.2
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
120
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
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 ) =
(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
8.2.1
Metode derivative
f
r
= fx sin + fy cos = 0
fy
fx
(8.18)
Pe aceast
a directie, modulul gradientului este:
f
r
fx2 + fy2
(8.19)
max
(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)
(8.21)
(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)
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)
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
Problema tras
arii figurilor geometrice oarecari (inclusiv a dreptelor) este rezolvat
a de grafica pe
126
Comparator
f2(m,n)
W2
max(gradk(f))
max(gradk(f))
fD(m,n)
WD
Harta de
contururi
k(m,n)
Harta de
orientari
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
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
9.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
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)
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)
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.
(9.17)
sup (dx () + dx ( + ))
inf (dx () + dx ( + ))
(9.19)
134
9.4
r=r
x=x
(9.21)
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
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)
Ak =
n=k
Sn (A) nB
(9.25)
136
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
0, dac
ax
/A
n, dac
a (Bn1 )x A si (Bn )x
(9.27)
BD(y)1
, x = y
(9.28)
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).
142
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