Transcript Document

Cap5. Descrierea si reprezentarea formelor
Segmentarea  construirea regiunilor omogene
 determinarea frontierelor regiunilor
Descrierea regiunilor
vector (numeric) al trasaturilor

descrierea sintactica
Caracterizeaza proprietatile regiunilor: forma
Forma  nu exista tehnici generale de descriere
Clase de forme:
forme generice ale obiectelor ce apartin acelorasi clase
Cap. 5. Descrierea si reprezentarea formelor
Forma (“shape”)  proprietatea unui obiect
- reprezentarea formelor
frontiere - extern
regiuni - intern
- abilitatea refacerii obiectelor
- posibilitatea de a recunoaste formele incomplete
- tehnici de reprezentare
matematice: TF
euristice : elongatia
- descrierea sintactica sau statistica
- robustetea descrierii la translatii, rotatii, scalari etc.
Descrierea formelor 
descriptori
globali
sau
de frontiera: descriere externa
de regiune: descriere interna
locali
Cap. 5. Descrierea si reprezentarea formelor
5.1. Identificarea regiunilor
Identificarea regiunilor: necesara pentru descrierea regiunilor
Identificarea = etichetarea (“colorarea”) unei regiuni (frontiere) cu un numar intreg
- eticheta cu numarul cel mai mare  numarul regiunilor
Imaginea R

segmentare
Ri regiuni disjuncte:
Ri = obiecte (i  b); Rb = fundal 
Etichetare:
i b
Rb  0, Ri  vi
m
c
 Ri  Rb
i 1i b
m
 Ri  R,
i 1
Ri  R j  
i j
Cap. 5. Descrierea si reprezentarea formelor
• Algoritm de etichetare
f (i-1, j)
f (i, j )
f (i, j -1)
V4
f (i-1, j -1)
f (i-1, j)
f (i, j -1)
f (i, j)
f (i-1, j +1)
V8
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
2
2
2
?
0
1. Cerceteaza linie cu linie R
pixelul R(i, j)  0  R(i, j) = v, v  0 : v in functie de pixelii vecini aflati in V4 sau V8
1.1
• vecinii  Rb  v = valoare noua (numar nou nefolosit)
1.2
• un vecin  0  v = valoare gasita  0
• mai multi vecini  0  se atribuie eticheta oricarui pixel  0 
coliziunea etichetelor  perechi echivalente in tabele de echivalente
2. Pixeli cu etichete incerte  tabelul de echivalente  se alege o valoare
(de ex. cea mai mica)
1.3
Etichetele se atribuie incremental in diferite etape ale algoritmului
0
0
0
0
0
0
Cap. 5. Descrierea si reprezentarea formelor
Exemplu
Identificarea regiunilor folosind V8
0
0
0
0
0
0
0
0
0 0
0 0
1 1
0 0
1 1
0 0
1 1
0 0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
a) pasul 1o : v = 1
0
0
0
0
0
0
0
0
0 0
0 0
2 2
0 0
2 2
0 0
3 3
0 0
0
0
2
0
2
0
0
0
0
0
2
2
2
2
0
0
0
2
2
0
2
2
0
0
0
2
2
2
2
2
2
0
0
0
0
0
2
2
0
0
0
0
0
0
2
2
2
0
c) pasul 2o
0
1
1
0
2
2
0
0
0
0
0
0
0
0
0
0
0 0
0 0
5 5
0 0
6 6
0 0
7 7
0 0
0
0
5
0
5
0
0
0
0
0
2
5
5
5
0
0
0
2
2
0
5
5
0
0
0
2
2
2
2
5
5
0
0
0
0
0
2
2
0
0
0
0
0
0
2
2
2
0
0
3
3
0
2
2
0
0
0
3
0
0
2
2
0
0
b) pasii 1.1 - 1.3
0
1
0
0
2
2
0
0
0
0
0
0
2
2
2
0
0
2
2
2
2
2
2
0
0
0
0
0
0
0
0
0
Tabelul de echivalente:
2-5
5-6
2-4
0
0
0
0
4
2
2
0
0
4
4
4
4
4
2
0
0
0
0
0
0
0
0
0
Cap. 5 Descrierea si reprezentarea formelor
• Algoritm
de identificare pentru o structura de tip arbore cvadripartit
1o Cauta nodurile incepand de la radacina: dir  NW, NE, SW, SE
• nod frunza  0 neetichetat  eticheta
• verifica nodurile frunza din vecinatate:
dir = E si S pt. (V4) + SE pt. (V8)  nodurile frunza  0
 fara eticheta  eticheta nodului de unde a inceput verificarea
 nod etichetat  coliziune
2o Repata 1o pana se verifica tot arborele
3o Reeticheteaza nodurile frunza din tabelul de echivalente
Cap. 5 Descrierea si reprezentarea formelor
5.2. Descrierea formelor bazata pe contur
Reprezentarea matematica a frontierelor regiunilor
y
y
y
xn
yn
n
r
x

x

xn
Sistem de
 rectangular
polar
tangential
(r,  )
(n,  )
coordonate
(•) un element 
al frontierei
(xn,yn)
x
Cap. 5 Descrierea si reprezentarea formelor
5.2.1. Codurile Freeman (lant)
• Codul lant = descriere prin:
- coordonate punct start
- secventa de numere = sir segmente de lungime unitate cu directii predefinite
• Codul lant diferential mod 4 sau mod 8: secventa de directii relative masurate ca
variatii cu 90o sau 45o
- dir = dir(k+1) – dir(k)
• Codul lant normalizat  independent de pixelul de START
- se alege START  secventa  numar intreg de valoare minima
Cap. 5 Descrierea si reprezentarea formelor
Exemplu
1
2
0




3
V4

















START
•



START: (2, 4)
Codul lant:
300330000011221112223322
Codul diferential: 1 0 3 0 1 0 0 0 0 1 0 3 0 1 0 0 3 0 0 1 0 1 0 3
[0o-(-90o)] [0o-0o] [-90o-0o]
90o
0o
-90o
Cap. 5 Descrierea si reprezentarea formelor
5.2.2. Reprezentari geometrice ale frontierei
Descriptori sensibili la rezolutia imaginii
• Lungimea frontierei
Codul lant: 4 dir.  directii de lungime unitara;
8 dir.  directii de lungime 1 sau
2
Frontiera inchisa  lungime = perimetru [pixeli]
• Curbura
Cazul continuu: curbura = rata de variatie a pantei
Descriptorul curbura =
nr. total de pixeli ai frontierei (lungimea)
nr. de pixeli cu schimbari semnificative de directie
Evaluarea curburii 
detectia punctelor de curbura ridicata = colturi sau puncte dominante (•)
Cap. 5 Descrierea si reprezentarea formelor
•  puncte dominante: varfurile poligonului care aproximeaza conturul
y
C = x + jy
 x  x(t )
C
, a  t  b : reprezentarea parametrica
 y  y (t )
a curbei C
t  dx( )  2  dy ( )  2
x
lungimea unui
s (t )   

d

:
  d 
arc  t  [a, b]
d


 

a
y
T1 
M2
T2
Functia de curbura:
s
M1
Notatii:

s0 s
c(s)  lim
x
dx
d2x
x ; x
dt
dt 2
dy
y ;
dt
y
d2y
dt 2
 c(t ) 
xy  xy

x2  y 2

2
; pentru c  0  punct
de inflexiune
Cap. 5 Descrierea si reprezentarea formelor
Cazul discret: x (t ) 
x(t 1)  x(t 1)
x(t 1)  x(t 1)
2
  y (t 1)  y (t 1)
2
functia c = zgomotoasa
, x(t )  analog

t2
2
- Netezirea functiilor x(t) si y(t): operator gaussian g (t , )  e 2

x(t ,  )  x(t )  g (t ,  ) 


(t  )2
2
x( )e 2 d
 netezirea functiei x(t)

x(t ,  )   x(t )  g (t ,  )   x(t )  g (t ,  )
'
x(t ,  )   x(t )  g (t ,  )   x(t )  g (t ,  )
"
t2
t2
  2
1 t
g (t , )  
te
g (t ,  ) 
 1 e 2

2
2 2


 

x(t ,  ) y (t ,  )  x(t ,  ) y (t ,  )
c(t ,  ) 
 functia de curbura
3
/
2
 x 2 (t ,  )  y 2 (t ,  ) 


1

2 2 ;
2
Cap. 5 Descrierea si reprezentarea formelor
• Energia de indoire
Curbura: c(k)  dir(k+1)-dir(k)
0 0
Codul lant
c(k)
2
1
-1
k
45  1
 45  1
90  2
 90  2
EI 
1 L 1 2
 c (k )
L k 1
-2
4
c2(k)
EI 
2
1
k
1
8
16 
8 2 2
4 2
Cap. 5 Descrierea si reprezentarea formelor
y
• Semnatura
Semnatura = {distante normale la contor}
x
• Exemple
2r
r
Cerc
Semnatura unui cerc
h
h
Triunghi echilateral
Semnatura unui triunghi
Cap. 5 Descrierea si reprezentarea formelor
• Distributia corzii
Coarda = linia care uneste doua puncte ale conturului
y
r
b(x, y) = 1 pt. multimea punctelor ce alcatuiesc conturul

x
b(x, y) = 0 celelalte puncte
Descriptori:
 b( x, y)b( x  x, y  y)dx dy
h(x, y)   b(i, j )b(i  x, j  y)
h(x, y) 
Imagini digitale 
i
j
Distributia radiala = invarianta la rotatii
 /2
hr ( r )   h( x, y ) rd
 / 2
r  2 x  2 y ;
Distributia unghiulara: ha ( ) 
max( r )
  arcsin
y
r
 h(x, y )dr : invarianta la scalare
0
Cap. 5 Descrierea si reprezentarea formelor
5.2.3. Descriptori Fourier
Curba C parcursa cu viteza constanta:
y
•
s
z(t )  x(t )  jy(t )
(x1(s), y1(s))
viteza  intregul contur parcurs in 2
C
z (t) = functie periodica
x
z (t ) 

n
1
Tn e jnt  Tn 
T
T

z (t )e  jnt dt
Tn = descriptori Fourier
0
L
s: distanta parcursa in t sec. : t 
2 s
1
; t  s  Tn 
z ( s )e
L
L

0
Descriptorii Tn depind de:
- forma curbei
- punctul de start
 jn
2
s
L ds
Cap. 5 Descrierea si reprezentarea formelor
Descriptori Fourier invarianti
forma
z ( s) 
 z (k )(V4 ) : z (k )  TFD  Tn
discreta
2

L

1

j
nm
a  1  x e L1
m
 n L 1
m1
Frontiera inchisa: ( x1, y1)  ( xL , yL )  
2
L

1

j
nm

1
L

1
 ym e
bn 
L 1 m1

rn
2
2
r

a

b
;
w

Descriptori invarianti la rotatii si translatii: n
n
n
n
r1
Descriptori invarianti la scalare:
r
wn  n
r1
Cap. 5 Descrierea si reprezentarea formelor
• Reprezentarea frontierelor: lk , k
4
y
2
1
(x1, y1)
3 4
lk  dist ( x1 , x k ); k : unghiul tangentei pentru x k
5
uk  2 lk L
l4
a (lk )   k  uk
: functie periodica
x
SF
1
Sn 
2
2

a (u )e  jnu du
0
k  capteaza frecventele ridicate  Sn descreste mai incet ca Tn
Descrierea formelor  cativa coeficienti Fourier de ordin inferior
Cap. 5 Descrierea si reprezentarea formelor
5.2.4. Reprezentarea poligonala a frontierei
Reprezentarea poligonala  regiunea ~ poligon  descriere prin varfuri
Frontiera  segmentare  secventa de
segmente de drepta
segmente de curbura constanta
Punctele extreme ale fragmentelor de frontiera  varfuri
Segmentare
- puncte de curbura ridicata = varfuri pentru fragmentele de frontiera
frontierei
- pixeli adiacenti ce pot fi aproximati prin drepte sau curbe
Cap. 5 Descrierea si reprezentarea formelor
•Determinarea segmentelor liniare de contur (metoda celor mai mici patrate)
Segmentarea frontierei  varfurile {x(i), y(i)}, i = 1 … N ; parametrii segmentelor
Fragmente (pixeli de la 1  n)  drepte: y = ax + b  a, b ?
n
Calculul parametrilor optimi:
f ( a, b) 
 ( yi  axi  b)2  min
i 1
f (a, b)
0 
a
f (a, b)
0 
b
Notatii:
n
 xi ( yi  axi  b)  0
i 1
n
 yi  axi  b  0
i 1
n

i 1
xi2
n
 mx 2 ;
 xi  mx ;
i 1
amx2  bmx  mxy
 
amx  b  m y
m 2 m y  mx m y
mxy  mx m y
a
;
b x
mx 2  mx2
mx 2  mx2
n
 yi  m y ;
i 1
n
 xi yi  mxy
i 1
Cap. 5 Descrierea si reprezentarea formelor
• Segmentarea frontierelor in domeniul  - s
Segmentarea frontierei  determinarea varfurilor in  - s:  = dir. tangentei la contur
s = lungimea arcului
b
•
y

•a
2
c
• d•

Punct de start x
s
a
(s) =
constant  portiuni liniare
liniar variabil  zone de curbura constante
b
c d
Cap. 5 Descrierea si reprezentarea formelor
• Determinarea valorilor lui  (s) intr-un punct (xp, yp)
- pixelii din vecinatatea (xp-k, yp-k)
 (xp+k, yp+k)
Cuantizarea directiei: 0o,  45o,  90o, …
• Valoarea unghiului  :


cos  p (k ) 
ATp (k )B p (k )
A p (k ) B p (k )
(xp+k , yp+k)
•
(xp , yp) • •
p(k) •
 x p k  x p 
A p (k )  

y

y
p

k
p


•
•
• •
• •
•
•
• (x , y )
p-k
p-k
 x p  x pk 
B p (k )  

y

y
pk 
 p
impusa apriori
Valoarea lui k
k opt. : cos p (m)  cos p (m 1) ...  cos p (kopt )  cos p (kopt 1)
m  N 10  N = lungimea fragmentului
Cap. 5 Descrierea si reprezentarea formelor
5.3. Descrierea formelor bazata pe regiuni
Regiuni
forme simple: descriptori euristici: aria, elongatia, compactitatea etc
forme complexe  descompunere in subregiuni simple  descriptori euristici
Obiect  graful subregiunilor
 - subtierea regiunilor  scheletul regiunii
- subregiune = nod; arcele = relatii de vecinatate ale subregiunilor
Reprezentari grafice ale regiunilor:
- invariante la translatii, rotatii si in raport cu magnitudinea
- robuste la mici schimbari ale formei
- potrivite pentru recunosterea sintactica
Cap. 5 Descrierea si reprezentarea formelor
5.3.1. Descritori scalari simpli
Proprietati globale  descriptori : vector de trasaturi  recunoasterea statistica
• Aria
A = nr. de pixeli  aria reala a unui pixel
Grila rectangulara: functie caracteristica a regiunii R
1 daca pixelul ( x, y )  R
g ( x, y )  
 AR   g (i, j )
0 in rest
i j
- R  poligon cu varfurile (ik , jk ) si (i0 , j0 ) = (in , jn )
1 n1
A   ik jk 1  ik 1 jk 
2 k 0
- R  codul lant cu 4 directii
1o A = 0, pozitia verticala PV = i (i  coordonata punctului de start)
2o Pentru directiile codului executa  0: A = A - PV
1: PV = PV + 1
2: A = A + PV
3: PV = PV - 1
3o Elementele frontierei parcurse  aria in A
Cap. 5 Descrierea si reprezentarea formelor
• Perimetrul
Pixelii care apartin frontierei C  (i, j )  R V4 (i, j )  R   
C  (i, j )  R V8 (i, j )  R   
C  (i0 , j0 ), (i1, j1),..., (in , jn ): ordonarea pixelilor vecini  fiecare pereche formata din vecini
P  Card(ik , jk ) C (ik , jk ) V4 (ik 1, jk 1)
 2 Card(ik , jk ) C (ik , jk ) V8 (ik 1, jk 1) V4 (ik , jk )
P2
• Compactitatea  
A
Cerc:
Elipsa:
Dreptunghi:
  4
d
2 (a 2  b2 )

 
ab
a
b
l
kl
cercul  cea mai compacta regiune

2l (k 1)2
kl2
2
2
2 (a 2  b2 )


ab
4(k 1) 2

k
Cap. 5 Descrierea si reprezentarea formelor
• Centrul de greutate
1
1
ic 
i
;
j


 j
c
A (i, j )R
A (i, j )R
• Elongatia
Gradul de excentritate
d (k )  d (ic , jc ), (ik , jk ) k  0,1,..., n 1
(ic , jc) - centrul de greutate
n = nr. de pixeli  frontierei
(ik , jk) - pixelii frontierei
Elongatia
d max
,
d min
d max  max d (k ); d min  min d (k )
d
,
d
n1
2 1
 d   d (k );  d   d (k )   d 
n k 0
n k 0
k
1 n1
k
Cap. 5 Descrierea si reprezentarea formelor
Laturile dreptunghiului:
• Punctele de extrem
y
sst
sd
sts
ds
stj
dj
s = sus
j = jos
d = dreapta
st = stanga
imin  min (i, j )  I (i, j )  R
i
imax  max (i, j )  I (i, j )  R
i
jmin  min (i, j )  I (i, j )  R
j
x
jst
jd
jmax  max (i, j )  I (i, j )  R
 Regiunea  incadrata intr-un dreptunghi
j
cu laturi paralele cu 0x si 0y



 Coordonatele punctelor de extrem: sd   imin , max (imin , j )   I (imin , j )  R 



j




d j   max (i, jmax )  (i, jmax )  R 

 i

Fiecare pereche de puncte extreme (ex.: sd, dj)  axa: lungime, orientare  descriptori
Cap. 5 Descrierea si reprezentarea formelor
5.3.2. Descriptori bazati pe momente
• Functia imagine normalizata = densitate de probabilitate a unei variabile aleatoare 2D
 


Proprietatile variabilei aleatoare  caracteristici
momente
.
p q statistice = imag
m pq    x y f ( x, y )dxdy m pq    i p j q f (i, j )
digit .
Momentul de ordinul p + q:
i  i 
  

 pq  

 (i  xc ) p ( j  yc )q f (i, j )
- momente centrate (invariante la translatie):
i  i 
m
m
xc  10 , yc  01
m00
m00
Centrul de greutate (xc, yc):
Imagine binara:
m00  A
 f (i, j )  1
pt. (i, j )  R 
x'  x, y '  y
- momente centrate scalate:
 ' pq scalare  p  q
 pq
 pq 
cu :  
1,  ' pq 

2
 '00 
 ( p  q  2)
-
Cap. 5 Descrierea si reprezentarea formelor
- momente centrate normalizate nescalate:  pq 
 pq
(  00 )
 pq  i : invarianta la translatie, rotatie si scalare (pe baza teoriei invariantilor algebrici)
1  20  02 ;
2
 2   20  02 2  411
3   30  312 2  3 21  03 2 ;  4   30 12 2   21  03 2


3 21  03  21  03 3 30 12 2   21  03 2 
 6   20  02   30 12 2   21  03 2  411 30 12  21  03 
 7  3 21  03  30 12   30 12 2  3 21  03 2  
 30  312  21  03 3 30 12 2   21  03 2 
5   30  312  30 12  30 12 2  3 21  03 2 
Cap. 5 Descrierea si reprezentarea formelor
• Regiunea  frontiera: d (k )  d (ic , jc ), (ik , jk ) k  0,1,..., n 1
1 n
r
- momentul de ordinul r: mr   d (k ) ;
n k 1
1 n
- momentul de ordinul r centrat:  r   d (k )  m1r
n k 1
1 n
 d (k )r
mr
n k 1
- momentul normalizat: mr 

;
r/2
r
/
2
(2 )
1 n
2


d
(
k
)

m
 
1 
n
 k 1

1 n
 d (k )  m1r
r
n k 1
- momentul normalizat centrat:  r 

r/2
( 2 )r / 2  1 n

2
  d ( k )  m1  
 n k 1

- descriptori cu sensibilitate scazuta la zgomote
F1  (  2 )1/ 2 m1 ;
F2  3 (  2 )3 / 2 ; F3   4 (  2 ) 2
Cap. 5 Descrierea si reprezentarea formelor
5.3.3 Grafuri bazate pe scheletul regiunii
Graf: nod = punct de curbura ridicata
Subtierea regiunii  scheletul regiunii  graf
• Algoritm (grosimea maxima = 2 pixeli)
1o R: multimea pixelilor unei regiuni
Hi(R): frontiera interioara; H0(R): frontiera exterioara
S(R): pixeli din R cu toti vecinii octoconectati cu Hi(R) sau cu fundalul
Rold = R
2o Construieste regiunea Rnew prin subtiere
Rnew  S ( Rold )  Rold  H i ( Rold ) H 0 S ( Rold )  Rold 
3o Daca Rnew = Rold  STOP si treci la pasul 4o
Daca Rnew  Rold  Rold = Rnew si repeta pasul 2o
4o Rnew = multimea pixelilor ce formeaza scheletul regiunii R
Cap. 5 Descrierea si reprezentarea formelor
• Ilustrarea algoritmului de subtiere
Rnew  S ( Rold )  Rold  H i ( Rold ) H 0 S ( Rold )  Rold 
º º º
Pasul 1o
º   
º 

º 

º
º 
º 
º

Pasul 2o
º

º

º
º
º
º

º
      
º 
 º º º
º            
º º º º   º º º º º º º
º   º
º   º
º
º

º
  
   
 
º
+   +
+   +
+   +
+
+ +
   
+ + +
+ +

Hi(R)

º
H0(R)

Rold - Hi(Rold)

S(R)
+
H0( S(Rold))

H0( S(Rold))  Rold
S(Rold)
+
Cap. 5 Descrierea si reprezentarea formelor
• Subtierea regiunilor  axe mediane  scheletul
Axa mediana: scheletul = multimea punctelor  R care au aceeasi distanta minima de la
frontiera pentru cel putin doua puncte separate ale frontierei
• Exemple: Schelete ale unor regiuni
•
•
•