Harrisov detektor oglišč

ROBOTSKI VID
6. Robustni detektorji
(robov, krivulj in oglišč)
Robustni detektor robov - Canny
Enega najbolj uporabljanih detektorjev robov je leta 1983
v okviru magistrske naloge na MIT razvil John Canny.
Pri razvoju detektorja robov je zasledoval 3 cilje:
• malo napak – detektor naj bi našel večino robnih točk in
malo točk, ki ne predstavljajo roba
• dobra lokalizacija – robne točke naj bi bile čim bližje
dejanskim robovom
• ena točka / rob – vsak rob naj bi bil predstavljen z (širok)
eno točko
Robustni detektor robov - Canny
Vzemimo 1D stopničastih rob, ki je degradiran z Gaussovim šumom:
f (x)
f ( x )
Kje je rob?
Robustni detektor robov - Canny
Rešitev: najprej zgladi sliko, potem pa odvajaj!
h f
d
dx
(h  f )
jedro
konvolucija
h
odvod
f
intenzitete
  50
Kje je rob? Tam, kjer so vrhovi funkcije:
d
dx
(h  f )
Robustni detektor robov - Canny
Lastnost konvolucije:

x
(h  f ) 
h
x
 f
prihrani eno operacijo
x
h
x
 f
odvod jedra
h
konvolucija
f
intenzitete
  50
Robustni detektor robov - Canny
Canny je prišel do ugotovitve, da je dobra aproksimacija
detektorja 1D stopničastih robov, ki so degradirani z Gaussovim
šumom, prvi odvod Gaussove funkcije

x

e
x
2
2
2

x

2

e
x
2
2
2
h(x)  G (x)  e

x
2
2
2
:
Robustni detektor robov - Canny
Razširitev na 2D:
G ( x, y)  e
2

x y
2
2
2
2D G auss
Is ( x, y)  G ( x, y)  I ( x, y)
originalna slika
σ=1
zglajeni sliki
σ=2
Robustni detektor robov - Canny
Razširitev na 2D:
gx 
I s
x
gy 
I s
y
 I (x, y)  M (x, y) 
original
( s f iltr i: R o b e r ts , P r e w itt, S o b e l, itd .)
gx  g
2
2
y
gy 
 ( x , y ) = a r c tg 

g
 x 
M(x,y)
Robustni detektor robov - Canny
Odstranjevanje nemaksimalnih vrednosti v smeri
značilni rob
M(x,y)
gy 
 ( x , y ) = a r c tg 

g
 x 
Robustni detektor robov - Canny
Odstranjevanje nemaksimalnih vrednosti v smeri
 ( x, y)
d4
d1
 ( x, y)
1. poišči smer dk , ki je najbližja smeri Φ(x,y)
 ( x, y)
d2
d3
2. če je vrednost M(x,y) manjša od najmanj ene sosednje
vrednosti v smeri dk , gN(x,y)=0, drugače gN(x,y)=M(x,y)
Robustni detektor robov - Canny
Odstranjevanje nemaksimalnih vrednosti v smeri
original
M(x,y)
 ( x, y)
gN (x,y)
Robustni detektor robov - Canny
Odstranjevanje napačnih robnih točk:
gN (x,y)
0
T
T
MAX gN (x,y)
Odstranili
Nismo odstranili
smo tudi
vseh
prave
napačnih
robne robnih
točke ! točk !
Robustni detektor robov - Canny
Odstranjevanje napačnih robnih točk – upragovljanje s histerezo
gN (x,y)
TL
0
Canny:
TL
TH

1
2
a li
TH
MAX gN (x,y)
1
3
g NH ( x, y )  g N ( x, y )  TH
g NL ( x, y )  g N ( x, y )  TL
g NL ( x, y )  g NL ( x, y )  g NH ( x, y )
Robustni detektor robov - Canny
Povezovanje robov :
g NH ( x, y )
g NL ( x, y )
Robustni detektor robov - Canny
Original
Canny σ = 1
Canny σ = 2
Večji σ → detekcija izrazitejših robov (manj robov)
Manjši σ → detekcija tudi manj izrazitih robov (več robov)
Robustni detektor robov - Canny
Kje je
metulj?
original
majhen σ ; visok prag TH
Kaj je na
sliki?
velik σ ; visok prag TH
velik σ ; nizek prag TH
Prostor ločljivosti – scale space (Witkin ‘83)
vrhovi 1. odvoda
večji
signal filtriran z Gaussom
Robustni detektor preprostih krivulj
Robustni detektor preprostih krivulj
Motivacija:
Umetni objekti – objekti, ki jih je naredil človek – so
ravni, okrogli, elipsasti, trikotni, kvadratni, …
Robustni detektor preprostih krivulj
V naravi redko najdemo ravne črte, krožnice, elipse, …
Robustni detektor preprostih krivulj
Original
Canny
Problem: kako na osnovi binarne slike robov poiskati objekte
določenih oblik?
Robustni detektor preprostih krivulj
Rešitev 1: lokalno zaporedno sledenje konture - izberi točko na
binarni sliki robov, preglej njeno soseščino in dodaj točke v soseščini.
Robustni detektor preprostih krivulj
y
k  tg 

d
x
k,d
Ali
Rešitev
obstaja
2: globalno
učinkovitejša
izčrpno
rešitev?
iskanje krivulj – npr. iščemo premice
y  k x  d  k , d , na katerih leži največ robnih točk.
Houghova preslikava
1962:
Paul Hough – US Patent 3,069,654
1972:
Richard Duda
Peter Hart
Houghova preslikava - premice
Parametrični prostor
Vsaka premica L
enačbo: L : y  k x

j
j
0
L j : y0  k j x0  d
j
0
k j,d
 d
j
, ki poteka skozi točko p
0
 ( x0 , y0 )
, je opisana z
j
j
d
y0
d j =  x0k j  y0
y0
k
j
in d
j
s ta s p re m e n ljiv k i, x 0 in y 0 p a k o n s ta n tn a p a ra m e tra
x0
k
Houghova preslikava - premice
Parametrični prostor
Splošno, za poljubno točko
p i  ( x i , y,i )
M i : d =  xik  yi
opisuje premico s parametroma x i , y i v parametričnem ali
Houghovem prostoru, ki ga določata koordinati k in d.
Parametrični prostor (k,d)
Prostor slike (x,y)
točka
premica
pi  ( xi , yi )
Lj : y  k jx  d
j
M i : d =  xik  yi
premica
q j  (k j , d j )
točka
Houghova preslikava - premice
Parametrični prostor
Prostor slike (x,y)
Parametrični prostor (k,d)
V parametričnem prostoru nas zanimajo točke, kjer se dve ali več premic seka!
Če se v neki točki (k*,d*) parametričnega prostora seka N premic, potem N
točk v prostoru slike leži na premici y=k*x+d* .
Houghova preslikava - premice
Diskretni parametrični prostor – polje akumulatorja
Prostor slike
Polje akumulatorja
Houghova preslikava - premice
Primernejša oblika enačbe premice
Ker je pri eksplicitni obliki enačbe premice y  k x  d , lahko
boljša normalna ali Hessejeva oblika enačbe premice:
k  
x . c o s (  )  y . s in (  )  r
Ta zapis omogoča tudi linearno kvantizacijo kota θ in polmera r.
, je
Houghova preslikava - premice
Algoritem
Houghova preslikava - premice
Zgled
Prostor slike
upragovljanje
Polje akumulatorja
Houghova preslikava – krožnice
Enačba krožnice v kartezičnih koordinatah:
y
(x  x )  ( y  y)
y
2
2
 
2
Houghova preslikava krožnic zahteva
tridimenzionalni parametrični prostor ( x , y ,  ) , v
katerem iščemo središče in polmer krožnice.
ρ
x
x
y
Problem: med koordinatami v parametričnem
prostoru ne obstaja preprosta funkcijska odvisnost
tako kot pri premici.
L j : y0  k j x0  d
j
d j =  x0k j  y0
x
Houghova preslikava – krožnice
i
y
p1
C1
x
(x  x )  ( y  y)
2
2
 
2
prerez skozi 3D akumulator pri radiju
i
Houghova preslikava – krožnice
Houghova preslikava – elipse
b
a
Ker je elipsa v 2D podana s 5 parametri:
x , y , a, b, 
je Houghov parametrični prostor 5dimenzionalen in je zato problem iskanja
elips težji od iskanja premic in krožnic.
y
y
α
x
x
Robustni detektor oglišč
Oglišča – so piksli, katerih intenziteta se
močno razlikuje od intenzitet sosednjih
pikslov v več kot eni smeri.
Oglišča so „robustne“ značilnice (oslonilne
točke), katere uporabljamo za:
• sledenje objektov,
• poravnavo slik,
• geometrijska merjenja,
• kalibracijo sistemov za vizualno kontrolo
kakovosti, itd.
Oglišča hitro zaznamo, avtomatsko
iskanje oglišč pa ni enostavno.
Detektor oglišč
Iz gradienta v točki (u,v):
2
 I (u , v ) 
 I

 I

(
u
,
v
)

(u , v ) 



 u

 v

2
ne moremo sklepati, ali je točka (x,y)
oglišče ali ne. Potrebujemo statistiko
gradientov znotraj majhnega okna.
Razvrstitev:
• konstanta – majhne spremembe
intenzitet
• rob – velike spremembe intenzitet v
eni smeri
• oglišče – velike spremembe intenzitet
v dveh ortogonalnih smereh
Harrisov detektor oglišč
Po intuiciji bosta oba parcialna ulomka
I x (u , v ) 
I
x
( u , v ) in I y ( u , v ) 
I
y
(u , v )
v oknu, kjer je oglišče, velika.
Za vsako točko (u,v) na sliki izračunamo vrednosti A(u,v), B(u,v) in
C(u,v):
A (u , v )  I x (u , v )
2
B (u , v )  I y (u , v )
2
C ( u , v )  I x ( u , v ). I y ( u , v )
ki so elementi matrike M(u,v):
 Ix
M  
I I
 x y
2
IxIy   A
 
2 

Iy
 C
C 

B
Harrisov detektor oglišč
Vsako izmed funkcij A(u,v), B(u,v) in C(u,v) zgladimo z linearnim
Gaussovim filtrom HG,σ:
 AH
M  
C  H
G ,
C H
G ,
G ,
BH
G ,
  A
  
 C
C 

B 
Določimo lastni vrednosti matrike M:
g ( )  M   I 
 1,2 
(A  B) 
A 
C
C
B 
(A  B)  C
2
2
   ( A  B )  C
2
2
2
 0
Harrisov detektor oglišč
 1,2 
(A  B) 
(A  B)  C
2
2
2
1,  2  0
h o m o g e n o p o d ro č
 1  0 in  2  0
v e r ik a ln i a li h o r iz o n ta ln i r o b
 1  0 in  2  0
o g liš č e
Ker je operacija korenjenja potratna, je Harris predlagal funkcijo Q(u,v):
Q (u , v )  ( A B  C )   ( A  B )
2
2
  0, 04  0, 06 
za merjenje “izrazitosti” oglišča. Večji je α, manj občutljiv je detektor in manj
oglišč bo odkril.
Q (u , v )  t H
t H  1 0 .0 0 0  1 .0 0 0 .0 0 0 
Harrisov detektor oglišč
Harrisov detektor oglišč
Harrisov detektor oglišč
Harrisov detektor oglišč
Q(u,v)
Harrisov detektor oglišč
Q (u , v )  t H
Harrisov detektor oglišč
Lokalne maksimalne vrednosti Q(u,v)
Harrisov detektor oglišč
Likarjev detektor oglišč
R
r
r
R
r
r
Likarjev detektor oglišč
Likarjev detektor oglišč
Likarjev detektor oglišč
Likarjev detektor oglišč