Title: Trasformata di Hough
1Trasformata di Hough
2Caratteristiche di immagini
- In Visione Computazionale il termine feature di
immagini si può riferire a due entità possibili - Una proprietà globale di unimmagine o una
regione (es. il livello di grigio medio, la
distribuzione di colore, ...) - Una parte dellimmagine con alcune proprietÃ
speciali (es. una linea, unellisse,...).
3Feature locali
- Un passo importante dellelaborazione visiva
consiste nellidentificare feature locali che
siano utili ad interpretare limmagine - Le feature locali sono parti dellimmagine
facilmente rilevabili, che possono
corrispondere o meno a parti della scena - Abbiamo già visto
- Edge
- Corner e SIFT
- Oggi parliamo della ricerca di feature per le
quali esiste una descrizione analitica, tramite
un semplice esempio - le linee
4Rilevamento di linee
- Le linee sono feature importanti perché
permettono di definire analiticamente o
approssimare molte forme - (in particolare di oggetti costruiti dalluomo)
- Le linee possono essere rilevate in (almeno) due
modi diversi - Tramite template matching, utilizzanto un insieme
di maschere che modellino landamento locale di
una retta - Tramite trasformata di Hough, ossia tramite un
sistema di voting che segue una fase di edge
detection
5Template matching (velocemente)
- IDEA cercare i picchi nella convoluzione tra
limmagine e un insieme di maschere che modellano
la struttura locale di rette. - Se una maschera M in un punto p ritorna una
risposta superiore ad una soglia, diciamo che in
quel punto passa un segmento di retta la cui
orientazione e spessore è modellato da M
-1 -1 -1
2 2 2
-1 -1 -1
Esempio di maschera che definisce un segmento di
rettacon orientazione 0
6Trasformata di Hough (HT)
- IDEA CHIAVE
- Mappare un problema difficile di riconoscimento
di forme nel seguente problema (più facile) - rilevare i picchi nello spazio dei parametri
della curva cercata (linee nel nostro caso)
7HT per il rilevamento di rette
- Una retta ymxnè identificata dalla coppia di
parametri (m,n) - Nel caso delle rette lo spazio dei parametri è un
piano (ho 2 soli parametri m e n) - Nello spazio dei parametri la retta è
rappresentata da un punto
8HT per il rilevamento di rette
n
y
.
m
x
9HT per il rilevamento di rette
- Al contrario, un punto nello spazio di partenza
(x,y)rappresenta una linea nx(-m)y
nello spazio dei parametri - Ogni punto di questa linea corrisponde ad una
linea nello spazio di partenza che passa per il
punto (x,y).
10HT per il rilevamento di rette
n
.
y
(m1,n1)
.
(m2,n2)
.
(x,y)
.
(m3,n3)
m
x
11HT per il rilevamento di rette
n
y
.
.
P2
Q
.
P1
m
x
Due punti appatenenti alla stessa retta r,
corrispondono nello spazio dei parametri a due
rette, la cui intersezione ci fornisce i
parametri (m,n) della retta r
12HT per il rilevamento di rette
- Quindi una retta nello spazio di partenza
definita da N punti P1, ..., PN viene
identificata come intersezione nello spazio dei
parametri di N rette, ognuna corrispondente ad un
Pi
n
.
y
P4
.
P3
Caso ideale...
.
.
Q
P2
.
P1
m
x
13HT per il rilevamento di rette
- In presenza di rumore non è detto che i Pi siano
esattamente collineari - Quindi lintersezione può non essere unica
.
n
y
P4
.
P3
.
.
?
.
.
.
P2
.
P1
m
x
14HT per il rilevamento di rette
- Se si hanno abbastanza punti nello spazio di
partenza, il problema può essere tradotto in un
problema di detezione di picchi nello spazio dei
parametri
n
.
y
P4
.
P3
.
!
.
P2
.
P1
m
x
15Nel caso di immagini...
- I punti dello spazio di partenza possono essere
punti di edge
16Un algoritmo semplice
- Assumiamo che unimmagine contenga solo 1 retta,
di parametri (m,n) costituita dai punti di edge
P1, ..., PN - Dividiamo lo spazio dei parametri (m,n) in una
griglia finita di celle e associamo ad ognuna di
esse un contatore C(m,n) - Per ogni punto Pi(xi,yi)
- calcoliamo la retta si nello spazio dei parametri
che abbia (xi,yi) come coefficienti - Incrementiamo tutti i contatori relativi alla
retta si nello spazio dei parametri - In assenza di rumore tutte le si passano per la
cella (m,n) quindi C(m.n)N e tutte le altre
celle hanno valori più piccoli (quali?) - La retta viene identificata trovando questo picco
17Un algoritmo semplice
- Due problemi
- In caso di rumore non è detto che tutte le rette
si incontrino nella stessa cella - Se ci sono più rette nellimmagine
- Per questi motivi si individuano i massimi locali
nello spazio dei parametri (fissando una
soglia...)
18Una piccola modifica
- Lo spazio dei parametri è infinito
- Nellimplementare lalgoritmo occorre fissare un
valore minimo e massimo per n ed m Come? - Una semplificazione si può ottenere scegliendo
una rappresentazione alternativa delle
rette x cos? y sin? r
19Una piccola modifica
- Una semplificazione si può ottenere scegliendo
una rappresentazione alternativa delle
rette x cos? y sin? r
?
y
??0,p
.
r
?
r
x
20Una piccola modifica
- Considerando anche il fatto che i punti nello
spazio di partenza appartengono ad unimmagine
anche r appartiene ad un intervallo finito
?
y
??0,p
M
.
r
?
r
N
x
21Schema algoritmo costruzione dello spazio dei
parametri
- max_rsqrt((M2)(N2))
- delta_rmax_r/(R-1)
- dromdro/2
- delta_tetapi/(T-1)
- r0delta_rmax_r
- teta0delta_tetapi
- Azeros(R,T)
- i,jfind(image1)
- for h1T
- r_h(icos(teta(h)))(jsin(teta(h)))
- for y1size(i,1)
- c,kmin(abs(r-r_h(y)))
- if (cltdelta_r)
- A(k,h)A(k,h)1
- end
- end
- end
221. Edge detection
Materiale tratto da CVonline
232. Lo spazio dei parametri
243. Stima dei picchi e riproiezione sullo spazio
di partenza
Al variare della sogliatura.....
25Generalizzazioni..
- Possiamo utilizzare la stessa procedura per
rilevare altre forme - Ad esempio nel caso delle circonferenze
- In questo caso lo spazio dei parametri è 3D
(a,b,r) - Per curve più complesse questo approccio diventa
sempre meno pratico