Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria...

81
http:// imagelab.ing.unimo. it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dell’Informazione Università di Modena e Reggio Emilia, Italia a.a. 2009-2010 Cap. 3 Image Segmentation _1 (Edge e Labeling)

Transcript of Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria...

Page 1: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Visione Artificiale

Prof. Rita Cucchiara

Dipartimento di Ingegneria dell’Informazione

Università di Modena e Reggio Emilia, Italia

a.a. 2009-2010

Cap. 3 Image Segmentation _1 (Edge e Labeling)

Page 2: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

BINARIZZAZIONE E COMPONENTI CONNESSI

Mediante l’operazione di thresholding e’ possibile ottenere Immagini binarie contengono “oggetti” o regioni (o shape) nel senso di insiemi di pixel connessi tra loro.

Una volta definita una funzione (proprietà, predicato) di connessione , restano univocamente definiti i componenti connessi.

Concetti nell’immagine di connessione (adiacenza) distanza

Page 3: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

DISTANZA tra pixel

DISTANZA: dati due pixel p(i,j) e q(h,k) DISTANZA EUCLIDEA

DISTANZA (CITY BLOCK) il numero minimo di passi in una griglia per raggiungere un punto a partire da un altro

DISTANZA CHESSBOARD (il numero di mosse del re a scacchi)

22 )()(k)j)(h,(i, De kjhi

kjhi k)j)(h,(i, D4

kjhi ,maxk)j)(h,(i, D8

Page 4: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Adiacenza di pixel

Adiacenza di pixel: connessione Due pixel sono adiacenti se la loro distanza e uguale all’intervallo di

discretizzazione dell’immagine 2 pixel in una regione si dicono 4-connessi se la loro adiacenza si verifica solo tra i

vicini lungo gli assi principali (N,S,W,E) .I pixel sono 4 connessi se hanno D4=1 2 pixel in una regione si dicono 8-connessi se la loro adiacenza si verifica tra i

vicini lungo gli assi principali (N,S,W,E) e tra i vicini sulle diagonali (NW,NE,SW,SE); sono 8 connessi se hanno D8=1

4-connessione

8-connessione

Page 5: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Nei dettagli

Page 6: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Nei dettagli

Page 7: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

SEGMENTAZIONE

La segmentazione delle immagini e’ uno dei passi piu’ importanti dell’elaborazione di immagini ed e’ il processo indispensabile nella visione artificiale.

La segmentazione consiste nel partizionare l’immagine in insieme di punti omogenei rispetto ad una data caratteristica visuale

Una tipica applicazione e’ la separazione di oggetti dallo sfondo per distinguere oggetti tra loro in base a tali caratteristiche visuali

Page 8: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

SEGMENTAZIONE

Segmentazione sul valore dei pixel Del livelli di grigio Del colore Del movimento…

Segmentazione su feature calcolate Sugli edge Su feature spaziali ( sift, corner..) Su feature di movimento (optical flow…)

Segmentazione basate sui modelli Su template Su modelli strutturali (forma tesistura)

Processo botton-upDetectionGrouping

Processo top-downSearchSegmenation&Recognition

Page 9: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Segmentazione

Processo “semplice” in ambienti strutturati

O Molto complesso in immagini naturali

image human segmentation

1

2

3

4

5

6

7 8

910 11

Page 10: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Approcci alla segmentazione

Tecniche: Processo deterministico

con soglie automatiche Con parametri manuali

Processo statistico Tecniche di grouping (clustering) Modellazione statistica con pdf (learning parametrs EM…) Tecniche graph-based

Segmentazione come problema di Pattern Recognition

Segmentazione come problema di Image Processing

Page 11: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Segmentazione e rappresentazione

Immagini elaborate e segmentate..

Curve

LabelingConnettivita’

Edge detection, Thinning..

Regioni

Filling

Insieme di regioni

Vincoli, Relazioni spazialiTemporali..

Punti

Page 12: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Segmentazione (2D)

Gray levelThresholding

Labeling

Filling/merging

Color reductionor clustering

Motion detection

Edgedetection

morphology

Texturegrouping

Page 13: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Segmentazione di CONTORNI

Bordi e contorni di regioni (oggetti) Il REGION BORDER di una regione R

e’ l’insieme dei pixel di una regione che hanno uno o piu’ pixel adiacenti fuori dalla regione R (Inner region border per distinguerlo dall’ outer ossia il bordo dello sfondo)

Se esiste il concetto di foreground e backgroundnormalmente si considera l’oggetto Foreground 8-connesso ed background 4 connesso

* * * * *

* * * * * * *

* * * * * *

* * * * * *

* * * *

Page 14: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

EDGE

EDGE: e’ una proprieta’ locale di un pixel e del suo intorno: ossia e’ un VETTORE avente un valore assoluto ed una direzione. Dipende dalla variazione di luminosita’. Se e’ possibile calcolare tale variazione (gradiente) e se il gradiente ha una direzione verso la variazione crescente allora l’edge ha la direzione perpendicolare alla direzione del gradiente.

Il BORDER e’ un concetto globale di una regione mentre l’edge e’ una proprieta’ locale. Sono pero’ legati dal fatto che e’ possibile calcolare i bordi di una regione collegando gli edge salienti.

Quindi si usera’ edge nella accezione piu’ vasta di bordo.

Direzione delgradiente Direzione dell’edge

Page 15: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

EDGE DETECTION

Edge: insieme di punti dove si verificano rapide variazioni di luminosità.

Progfilo dell’edge lungo la direzione del gradiente

Calcolo dei contorni: segmentazione in regioni1) estrazione dei punti di edge (edge detection operators)2) determinazione di edge “forti” secondo determinati criteri.3) collegamento tra punti di edge (labeling)

problema: il rumore sull’immagine crea punti di edge spuri, ossia in locazioni dove non ci sono bordi di oggetti e non trova edge dove invece esistono i bordi reali

Page 16: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CALCOLO DI CONTORNI

Moltissimi algoritmi proposti:

metodi basati sul calcolo delle derivate per verificare la variazione di luminosita’ metodi basati sul gradiente (Roberts, Sobel..)

tecniche di regolarizzazione con un pre-filtraggio simile all’operatore gaussiano o con definizione di maschere ottimali Marr-Hildreth Canny Sarkar-Bowyler

inseguimento di contorni: tecniche locali basate sull’inseguimento di punti etichettati come contorni

Page 17: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CRITERI DI SELEZIONE

Un operatore di edge detection deve rispondere ai seguenti criteri1) GOOD DETECTION Deve essere bassa la probabilità di errore nel riconoscere un vero punto di edge e la probabilità di

riconoscere punti non appartenenti ai bordi (falsi edge). Siccome entrambe le probabilità sono funzioni monotone decrescenti del rapporto segnale-rumore, questo criterio corrisponde alla massimizzazione del rapporto segnale-rumore.

2) GOOD LOCALIZATION I punti "marcati" come edge points dall'operatore devono essere il più vicino possibile al centro del vero

edge.

3) ONE RESPONSE TO SINGLE EDGEUna risposta unica ad un unico edge.Questo è implicitamente insito nel primo criterio e indica che quando ci sono 2 risposte allo stesso edge, uno di essi deve essere considerato falso.

La selezione dei contorni è un problema mal posto

Page 18: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

EDGE IDEALE

F(x) F

0

x

x (x)

x 0 F xx (x)

Luminosita’

variazione di luminosita’gradiente

derivata secondaLaplaciano

Direzione dell’edge

Direzione delgradiente

Page 19: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

GRADIENTE

Metodi basati sul gradiente: con un operatore differenziale si calcola il gradiente dell’immagine; se il modulo del gradiente supera un’opportuna soglia t, si ha un edge

valore assoluto e direzione del gradiente

Dal gradiente all’edge……. Nel caso piu’ semplice if G(x,y)>Th edge(x,y)=1 else edge(x,y)=0

),(

),(arctg

crg

crg

C

R

22 ),(),(),( crgcrgcrG CR

jcrgicrgjc

crfi

r

crfcrg CR ),(),(

),(),(),(

Page 20: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

GRADIENTE

discretizzando per calcolare il gradiente con le differenze centrali

Cio’ corrisponde alle maschere convolutive

0 -1 0 0 0 00 0 0 -1 0 10 1 0 0 0 0

troppo sensibile al rumore; per questo sono state proposte maschere alternative

crfcrfr

crf,1,1

),(

1,1,),(

crfcrfc

crf

Page 21: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Maschere di gradiente

Roberts 1965 molto sensibile al rumore, semplice-1 0 0 -1

0 1 1 0

Prewitt discretizzazione delle derivate-1 -1 -1 -1 0 1

0 0 0 -1 0 1

1 1 1 -1 0 1

Sobel-la piu’ usata

-1 -2 -1 -1 0 1 0 0 0 -2 0 2

1 2 1 -1 0 1Frei and Chen

-1 -2-1 -1 0 1

0 0 0 -2 0 2 1 2 1 -1 0 1

Perche’ viene usata la maschera di Sobel?

Provare le varie maschere di gradiente con openCV

Page 22: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Esempi

Originale Maschera di Prewitt, Maschera di Roberts, Maschera di Roberts, Th = 100 Th = 100 Th = 50

Maschera di Sobel, Maschera di Frei and Chen Th = 100 Th = 100

Page 23: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CALCOLO DEGLI EDGE CON SOBEL

SOBELxSx

SOBELySy

22 SySxG

Per ogni punto dell’immagine:

G>Th ?

Edge=1

Edge=0

Page 24: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

IMPIEGO DI SOGLIE

T1 piano di sezione soglia

edge vero l

edge determinato

Come trovare una soglia che mantenga il piu’ possibile gli edge per trovare curve chiuse di contorno?

Page 25: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

SOGLIA AD ISTERESI

soglia ad isteresi: Se una parte del contorno è sopra una soglia alta Th, i suoi punti componenti vengono

marcati come edge nella matrice di uscita e con essi l'intero bordo a loro connesso che contiene i pixel con valore superiore in ampiezza alla soglia bassa Tl.

LH TT 32

Th piano di sezione soglia alta Tl

piano di sezione soglia bassa

c

edge vero l falso edge

falso edge

Page 26: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

SOGLIA AD ISTERESI

punti maggiori della soglia alta sono “punti salienti” (edge molto probabili)

punti maggiori della soglia bassa sono potenziali edge accettabili se connessi a punti salienti

un bordo per essere "spezzato" deve fluttuare sopra la soglia TH e sotto TL.

Anche la probabilità di isolare falsi punti di edge è ridotta, perché l’intensità di questi punti deve essere sotto la soglia alta

altrimenti 0

T l) ,G(k | j)N(i, l) ,(k T j) , G(i se 1 j) , (iE HLTT LH

Page 27: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Esempio

Esempio di applicazione: • Impiego dell’operatore edge con sobel per il calcolo dei contorni• Selezione solo dei contorni chiusi e forti con soglia ad isteresi per la ricerca

della zona dei capelli• Selezione del bounding Box dell’area dei capelli• Head detection

Page 28: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

LOG & ZERO CROSSING

Se la derivata prima ha un estremo massimo locale in corrispondenza dell’edge, la derivata seconda ha un attraversamento per lo zero (zero crossing)..

Come calcolare la derivata seconda cercando un metodo robusto al rumore.

1) operazione di filtraggio (smoothing) che non delocalizzi gli edge. Ad esempio un filtro che elimini le componenti piu’ probabile di rumore

2) un operatore di discretizzazione 2D della derivata seconda

Laplaciano della Gaussiana (LOG, Marr & Hildreth, 1980)

Page 29: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Laplaciano della Gaussiana (LOG, Marr & Hildreth, 1980): Operatore Laplaciano:0 1 0 1 1 11 -4 1 1/3 1 -8 10 1 0 1 1 1

In generale:a b ab e ba b acon vincoli e = -(4a + 4b) e 2a + b = 1

Il Laplaciano viene preceduto dalla Gaussiana, oppure combinato in un unico operatore; esempio 3 x 3:

2 -1 2 -1 -4 -1 2 -1 2la gaussiana sopprime l’influenza di pixel in un intorno maggiore di 2SIGMA

ZERO-CROSSING EDGE DETECTION

2

2

2

22

yx

IG 2

Page 30: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

ZERO CROSSING

Una volta eseguita la convoluzione con il LOG, si individuano gli edge come punti di passaggio per lo zero: un pixel è zero crossing se è < -t e uno dei suoi otto vicini è > t, o viceversa; t è una

soglia limitata (ad esempio, 1, con filtraggi gaussiani con =12) oppure, si può guardare se tra il pixel e un suo vicino (anche soltanto i 4-connessi in

avanti) c’è un cambio di segno, e attribuire l’edge a quello tra i due in modulo più piccolo.Limiti:

Il comportamento dell’edge detector LOG non è buono in corrispondenza di punti angolosi Molto sensibile: tende a creare piccoli cicli di contorni chiusi.

Page 31: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CANNY

Edge detector di Canny (1986): Forse il più diffuso edge detector; rispetto al LOG, sostituisce l’operatore

differenziale Laplaciano con la derivata direzionale seconda.

Canny ha studiato analiticamente il problema in 1D e ha indicato l’approssimazione in 2D, cercando un filtro che rispondesse esattamente ai 3 criteri di bonta’ di un edge detector. Si soddisfano tali criteri individuando i massimi locali del risultato della convoluzione del segnale con la derivata prima di una gaussiana. Canny giustifica rigorosamente l’uso del filtro gaussiano come filtro di smoothing per una operazione di edge-detection.

L’estensione del risultato di Canny al caso bidimensionale consiste nel filtraggio con una gaussiana bidimensionale e nella ricerca dei massimi locali della derivata prima nella direzione del gradiente, procedura nota con il nome di Non Maxima Suppression.

Page 32: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CANNY

1) si convolve l’immagine con una Gaussiana

2) si trovano i punti di massimo lungo la direzione n del gradiente:

3) Si calcola il gradiente (G*I):

IGn

0

IGn n GnGn

IGnIGnIGnIGn

njiGrad

jiGradji

jiGradjiGradjiGrad

x

y

yx

),(

),(arctg),(

),(),(),( 22

Page 33: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CANNY

4) NON MAXIMA SUPPRESSION: eliminazione dei punti di non massimo locale del

gradiente

Se P è un punto di edge valido

Questo metodo presuppone (semplificazione accettabile) che i punti nell’intorno di P

abbiano tutti la stessa direzione del gradiente

)()(

)()(

2

1

PGradPGrad

PGradPGrad

P1 P P2

Page 34: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Esempi

Dopo l’eliminazione dei non massimi è necessario effettuare un’operazione di sogliatura sul modulo del gradiente per selezionare solo gli edge contraddistinti da una determinata intensità.

Canny propose l’uso di una soglia ad isteresi Soglia ad isteresi

Canny con soppressione dei massimiE con soglia ad isteresi sul gradiente

Page 35: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Non maxima suppression

Il problema implementativo associato a tale procedura consiste nel fatto che la ricerca dovrebbe essere effettuata sempre rigorosamente in direzione normale all’edge, in modo da non far mai competere fra loro punti situati lungo il bordo. Il metodo più preciso per la eliminazione dei non massimi si basa sull’interpolazione dei valori del gradiente.

Page 36: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CANNY

4) NON MAXIMA SUPPRESSION

if Gradx(i,j)>Grady(i,j)

P(0,0)

P2(-1,y1)

P1(1,y2)

P(0,0)

P2(-1,y2)

P1(1,y1)

),(

),(

jiGrad

jiGradm

x

yy1 = - m

y2 = m

)1()0,1(

)1,1()(

)1()0,1(

)1,1()(

2

1

mGrad

mGradPGrad

mGrad

mGradPGrad

(-1,-1) (0,-1) (1,-1)

(1,0)

(1,1)(0,1)(-1,1)

(-1,0)

(-1,-1) (0,-1) (1,-1)

(1,0)

(1,1)(0,1)(-1,1)

(-1,0))1()0,1(

)1,1()(

)1()0,1(

)1,1()(

2

1

mGrad

mGradPGrad

mGrad

mGradPGrad

Page 37: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CANNY

4) NON MAXIMA SUPPRESSION

if Grady(i,j)>Gradx(i,j)

P(0,0)

P2(-1,y1)

P1(1,y2)

P(0,0)

P2(-1,y2)

P1(1,y1)

),(

),(

jiGrad

jiGradm

y

xy1 = m

y2 = - m

)1()1,0(

)1,1()(

)1()1,0(

)1,1()(

2

1

mGrad

mGradPGrad

mGrad

mGradPGrad

(-1,-1) (0,-1) (1,-1)

(1,0)

(1,1)(0,1)(-1,1)

(-1,0)

(-1,-1) (0,-1) (1,-1)

(1,0)

(1,1)(0,1)(-1,1)

(-1,0))1()1,0(

)1,1()(

)1()1,0(

)1,1()(

2

1

mGrad

mGradPGrad

mGrad

mGradPGrad

Page 38: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Esempi

CANNY

LoG

CANNYZero crossing

Soglia unica Soglia ad isteresi

Page 39: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Confronti

Sobel Canny

Normalemnte il filtro di Canny e’ il migliore per mantenere tutti i particolari ed i contorni chiusiMaschere piu’ approssimate come quelle di Sobel hanno invece edge non sottili ma molto forti

Provare Sobel e Canny con openCV

Page 40: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CONFRONTI TRA EDGE DETECTOR

Come confrontare Edge detector? non ci sono algoritmi assestati ne’ benchmark e nuovi operatori proposti su immagini

sintetiche

misure quantitative: conteggio degli errori (false alarm), probabilita’ di missed edges, errori di localizzazione errori nelle giunzioni o negli spigoli

misure qualitative basate sull’ analysis of variance (ANOVA) su giudizi di operatori umani confronto tra

a) Canny b) Nalva-Binford c) Sarkar-Bowyler d) Sobel

confronto sulla parametrizzazione (parametri fissi o variabili) confronti di efficacia

M. Heath et al. Comparison on Edge detectors Comp. Vision Image Underst. 69 n.1 Jan 1998 38-54 J. Canny A computational approach of edge detection IEEE trans on PAMI 8 1986 679-698 V.S. Nalwa, T.O. Bildford On detecting edges IEEE Trans on PAMI-8 1986 699-714

Page 41: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

ESEMPIO

a) Canny b)Nalva-Binford c) Sarkar-Bowylerd) Sobel

M. Heath et al. Comparison on Edge detectors Comp. Vision Image Underst. 69 n.1 Jan 1998 38-54

Page 42: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

ESEMPIO

a) Canny b)Nalva-Binford c) Sarkar-Bowylerd) Sobel

Page 43: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Edges e border

Con i metodi di edge detection e selezione dei contorni si ottengono curve chiuse che spesso rappresentano i bordi di un oggetto.

La segmentazione si ottiene riempiendo i contorni chiusi (filling) i bordi possono essere anche identificati mediante segmentazione (ad es.

con soglia automatica) e ricerca dei punti connessi esterni

Come rappresentare i bordi 1) rappresentazione con maschera 2) rappresentazione simbolica (con lista) 3) rappresentazione matematica (funzione)

Curve

Regioni

Filling

Edge detection, Thinning..

Page 44: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

BORDER TRACING

Rappresentazione degli edge: chain code Una rappresentazione tipica del contorno è chiamata chain code : si segue il contorno in

senso orario o antiorario e si tiene traccia delle direzioni che permettono di andare da un pixel del contorno al successivo.

Per l’implementazione standard del chain code, si considera la regione 8-connessa di ogni punto del contorno. (Freeman code)

I codici associati alle otto possibili direzioni sono detti chain codes e sono generalmente definiti come in figura, dove p è il pixel nella posizione corrente del contorno. Gli otto pixels vicini di p sono stati numerati con dei valori da 0 a 7 partendo dal pixel in alto a sinistra e procedendo in senso antiorario.

i codici pari 0,2,4,6 corrispondono a spostamenti in diagonale; i codici dispari 1,3,5,7 corrispondono agli spostamenti in orizzontale e in verticale;

0 7 6

1 p 5

2 3 4

Page 45: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CHAIN CODE

- le coordinate assolute del primo pixel del contorno (ad esempio quello più in alto e a sinistra) assieme al chain code del contorno stesso, rappresentano una descrizione completa della regione discreta ‘contorno’.

Algoritmo di Freeman:- Data un’immagine a sfondo =0 e selezionato un punto sicuramente di bordo esterno pi. - Se il contorno è formato da almeno tre pixels, il punto p i avrà un pixel precedente ed uno seguente nel

contorno, indicati rispettivamente con p i-1 e pi+1. Osservando che pi-1 e pi+1 appartengono alla regione 8-connessa di pi, è possibile indicare la posizione relativa di p i-1 e pi+1 rispetto a pi specificando due numeri interi tra 0 e 7 che indicano la “provenienza” e la “direzione”.

- Ad esempio, dato pi provenienza=0 direzione=5.

pi-1

pi pi+1

0 7 6

1 p 5

2 3 4

Page 46: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CHAIN CODE

Sia dato pi di provenienza pi-1 (in questo caso provenienza=6). Per trovare il successivo punto del contorno si deve analizzare la regione 8-connessa del

pixel pi, che verrà esplorata partendo dal pixel indicato con 1° e procedendo in senso antiorario, fino ad arrivare al pixel indicato con 7°.

Posizione del 1° pixel da controllare = (provenienza + 1) mod 8

In questo modo si rimane nella posizione più esterna possibile, cioè sul contorno esterno, poiché quest’ultimo viene percorso in senso antiorario.

2° 1° pi-1

3° pi 7°

4° 5° 6°

0 7 6

1 p 5

2 3 4

Page 47: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CHAIN CODE

si possono verificare due situazioni:1) Almeno uno tra i pixels 1°7° fa parte del contorno. Supponiamo si tratti del 3°, che sarà il

pixel pi+1, a cui corrisponde un valore di direzione pari a 1. Il valore di provenienza per pi+1 in questo caso particolare assumerà il valore 5, mentre in generale sarà fornito dall’espressione:

provenienza(pi+1) = (direzione(pi) + 4) mod 8

Il passo successivo è quello di avanzare nel contorno, ovvero pi+1 sarà il nuovo pi, mentre quest’ultimo diventerà pi-1 e si ricomincia. Questo procedimento viene ripetuto finché non si ritorna al punto di partenza, dopo avere esplorato tutto il contorno.

pi-1

pi+1 pi

0 7 6

1 p 5

2 3 4

Page 48: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

CHAIN CODE

2) Nessuno tra i pixels 1°7° fa parte del contorno. A questo punto l’unica soluzione è tornare indietro nella direzione di provenienza cioè nel punto pi-1 che coinciderà con pi+1. Anche in questo caso è necessario calcolare opportunamente il valore di provenienza per pi+1; in questo caso assumerà il valore 2, mentre in generale sarà fornito dall’espressione:

provenienza (pi+1) = (provenienza(pi) + 4) mod 8

pi-1

pi+1

pi

Page 49: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

ESEMPIO

Esempio: partenza

arrivo

In questo modo il bordo di un oggetto puo’ essere rappresentatocon un tipo di dato simbolico, ossia come una lista di punti etichettati identificati dalla relativa posizione (i,j).

1 18 17 16

4 3 2 15

5 1412

13

6 7 9 11

8 10

1 1 1 1

1 1 1 x x 1

1 x x x x x 1 1

1 1 x 1 1

1 1

Provare Freeman chain code su openCV

Page 50: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Rappresentazione con Spline

Rappresentazione di una curva tramite formulazione matematica

Interpolazioni

B-spline vengono definiti punti di controllo per rappresentare una curva con un polinomio del terzo grado o superiore

Catmull Rom Spline viene cercata la curva che meglio interpola i punti con un polinomio del terzo grado

Page 51: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Esempio k=10,40,100

Vedi Cucchiara, Grana, Pellacani, Seidenari “Transactions on Medical Imaging”2003

Page 52: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Component connection labeling

E’ frequente la necessità di distinguere tra loro i componenti connessi attribuendo ai pixel di ciascuno una “etichetta” (label) univoca. Questo consente di eseguire successive operazioni trattando i componenti connessi in modo selettivo.

Esistono molti algoritmi di labeling, diversamente efficienti in tempo/memoria, o adatti per elaboratori sequenziali o paralleli.

Attraverso il labeling si ottiene una segmentazione dell’immagine in “oggetti” connessi.

Gli algoritmi di labeling sono deterministici e la bonta’ della segmentazione dipende dall’operazione di binarizzazione precedente.

Page 53: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Connected component Labeling

Per il riconoscimento di oggetti dallo sfondo si suppone Il Background 4 connesso; L’oggetto 8 connesso

connected component labeling: algoritmo per etichettare regioni 8-connesse

X X X X X

X X

X X

X X X X X

X X

X X

O X X

O X X

O

O O O

Page 54: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

LABELING

Labeling: algoritmo che permette di partizionare l’immagine in oggetti connessi associando ad ognuno una label diversa

Esistono vari metodi di labeling che dipendono dal compromesso efficienza-efficacia-disponibilità risorse (Ez-Ec-Ris) che si vuole ottenere:

algoritmo iterativo(Ez=Bassa, Ec=Buona, Ris=Ottima) algoritmo “classico” (basato su classi di equivalenza) (Ez=Buona, Ec=Buona,

Ris=Bassa) evoluzione 2 passi per algoritmo classico(Ez=Buona, Ec=Buona, Ris=Buona) algoritmo basato sul run-length (Ez=Buona, Ec=Buona, Ris=Ottima)

Labeling: supponendo un numero di oggetti tra 0 e 255 a partire da una immagine binarizzata con oggetti di valore 1 su sfondo di valore 0 dare ad ogni oggetto 8-connesso una label diversa

Page 55: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling: 50 anni di algoritmi

Grana 2010

Page 56: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

References

A. Rosenfeld and J. L. Pfaltz, “Sequential operations in digital picture processing,” Journal of ACM, vol. 13, no. 4, pp.471–494, 1966.

R. Haralick, “Some neighborhood operations,” in Real Time Parallel Computing: Image Analysis. New York: Plenum Press, 1981, pp. 11–35.

R. Lumia, L. G. Shapiro, and O. A. Zuniga, “A new connected components algorithm for virtual memory computers,” Computer Vision, Graphics, and Image Processing, vol. 22, no. 2, pp. 287–300, 1983.

J. Schwartz, M. Sharjr, and A. Siegel, “An efficient algorithm for finding connected components in a binary image,” Robotics Research Technical Report 38. New York Univ., Tech. Rep., 1985.

H. Samet and M. Tamminen, “An improved approach to connected component labeling of images,” in International Conference on Computer Vision and Pattern Recognition, 1986, pp. 312–318.

K. Suzuki, I. Horiba, and N. Sugie, “Linear-time connected-component labeling based on sequential local operations,” Computer Vision and Image Understanding, vol. 89, pp. 1–23, 2003. K. Wu, E. Otoo, and A. Shoshani, “Optimizing connected component labeling algorithms,” in SPIE Conference on

Medical Imaging, vol. 5747, 2005, pp. 1965–1976. L. He, Y. Chao, and K. Suzuki, “A run-based two-scan labeling algorithm,” IEEE Transactions on Image Processing, vol.

17, no. 5, pp. 749–756,2008. C. Grana, D. Borghesani, R. Cucchiara, "Optimized Block-based Connected Components Labeling with Decision

Trees" in press on IEEE Transactions on Image Processing, 2010

Page 57: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling i classici Rosenfeld

Rosenfeld et al. in 1966 . This algorithm can be considered the most classical approach to labeling,

and it is based on a raster scan of the image. It produces an output image containing the labeling result, and it stores the “redundancies” (i.e. equivalences) of the labels in an equivalences table with all the neighborhood references. The redundancies are then solved processing the table by repeatedly using an unspecified sorting algorithm and removing redundant entries. Finally the resulting labels are updated to the output image with a further pass.

This method requires an adequate memory allocation for the final image and the equivalence table, and a high computational cost due to the repeated use of sorting algorithms.

Improved by Lumia in 1983

Page 58: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling Haralick

To tackle these limitations, in particular the memory requirements, an improvement was proposed by Haralick et al..1981

This algorithm does not use any equivalences table and no extra space, by iteratively performing forward and backward raster scan passes over the output image to solve the equivalences, exploiting only local neighborhood information.

This technique, although requiring very little memory, clearly turns out to be computationally very expensive when the size of the binary image to analyze increases.

Page 59: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Raster scan and union find

Schwartz et al. [10] further explored approaches in order to avoid the storage of the output image,which would have required too much memory. Thus they use a sort of run length based approach (without naming it as such), which produces a compact representation of the label equivalences. In this way, after a forward and a backward scan, they can output an auxiliary structure which can be used to infer a pixel label.

Samet et al. [11] were the first researchers who clearly named the equivalence resolution problem as the disjoint-set union problem, about twenty years ago. This is an important achievement, since a quasi linear solution for this problem is available: the so called Union-Find algorithm, from the name of the basic operations involved. Also this algorithm is executed in two passes. The first pass creates an intermediate file consisting of image elements and equivalence classes while the second pass processes this file in reverse order, and assigns final labels to each image element. keeping the equivalences in memory. Then in [12] a general definition of this.

Page 60: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Union find and multi scan

The Union-Find algorithm is the basis of most of the modern approaches for label resolution.

As a new pixel is computed, the equivalence label is resolved: while the previous approaches generally performed first a collection of labels and at the end the resolution and the Union of equivalence classes, this new approach guarantees that at each pixel the structure is up to date.

In 2003, Suzuki et al. resumed Haralick’s approach of the multiscan strategy over the image, but with the inclusion of a small equivalence array: they provided an appendix in the form of a LUT of all possible neighborhoods, which allows to reduce computational times and costs by avoiding unnecessary Union operations.

Improved by Wu 2005

Page 61: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Decision trees

In 2007, He (in collaboration with Suzuki) proposed another fast approach in the form of a two scan algorithm .

The data structure used to manage the label resolution is implemented using three arrays in order to link the sets of equivalent classes without the use of pointer. Adopting this data structure, two algorithms have then been proposed:

a run-based first scan is employed, wh a decision tree optimizes the neighborhood exploration to apply merging

only when needed.

Grana et al. 2010: decision tree and decision table.

Page 62: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

LABELING - Algoritmo Iterativo haralick

Passo 1) inizializzazione: numera con label diverse tutti i pixel della immagine da etichettare

(pixel valore =1)

inizio: dopo

inizializzazione:0 1 1 0 1 1 0 0 1 2 0 3 4 0

0 1 1 0 1 1 0 0 5 6 0 7 8 0 0 1 1 1 1 1 0 0 9 10 11 12 13 0

Passo 2) fase top_ down : scansione dall’alto verso il basso per aggregare label di pixel adiacenti

Passo 3) fase botton-up: scansione dal basso verso l’alto per aggregare label di pixel adiacenti

Passo 2) e 3) sono iterati fino a quando e’ possibile continuare una aggregazione

Page 63: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

LABELING - Algoritmo Iterativo

Si definiscono due funzioni min_topdown_neighborhood(i,j) e min_bottomup_neighborhood(i,j) restituiscono la label minima dei pixel vicini di (i,j) già attraversati dal passo corrente:top-down:

1 2 34 p 0 min_topdown_neighborhood(i,j) ritorna 10 0 0

bottom-up:0 0 00 p 4 min_bottomup_neighborhood(i,j) ritorna 13 2 1

Passo 2) passo 3) un solo oggetto con etichetta 1 top-down: bottom-up:0 1 1 0 3 3 0 0 1 1 0 1 1 00 1 1 0 3 3 0 0 1 1 0 1 1 00 1 1 1 1 1 0 0 1 1 1 1 1 0

Page 64: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

LABELING - Algoritmo Classico

Fa solo due passi di elaborazione Richiede maggiori risorse (spazio per tabella) Principio base : ogni volta che più di una label può essere assegnata ad

un pixel, la minore viene assegnata effettivamente al pixel e si “annota” l’equivalenza con tutte le altre. Dopo questo primo passo su tutta l’immagine, nel secondo passo si risolvono le equivalenze

Immagine Primo passo

0 1 1 0 1 1 0 0 1 1 0 2 2 00 1 1 0 1 1 0 0 1 1 0 2 2 00 1 1 1 1 1 0 0 1 1 1 1 1 0 Secondo passo

0 1 1 0 1 1 0 0 1 1 0 1 1 00 1 1 1 1 1 0

Si memorizza l’equivalenza 1=2

Page 65: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

LABELING - Basato su Run-Length

La codifica run-length di un’immagine binaria è una lista di run o linee (o

sequenze di colonne) contigue di pixel con valore 1

L’algoritmo sfrutta un primo passo per assegnare ad ogni run una label

permanente e per memorizzare in un’altra lista le equivalenze tra le label.

Con una terza lista si costruiscono delle classi di equivalenza che

vengono risolte in un secondo passo

Per saperne di piu’

http://www.rasip.fer.hr/research/compress/algorithms/fund/rl/index.html

Page 66: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

LABELING - Basato su Run-Length

1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1

ROW START_COL END_COL PERM_LABEL

1 1 4 10 1

2 1 20 24 2

3 1 30 38 3

4 2 7 35 1

1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Poi si risolvono le equivalenze nella tabella

Page 67: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Esempi

1

2

3

4

5

6

7 8

910 11

Labeling di regioni connesse

Labeling di curve connesse

Page 68: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Grana et al. 2010 decision table

68

• Back to the segmentation: we need a (very) fast connected components

labeling algorithm in the preprocessing

Page 69: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

What’s really new

69

1. Model the neighborhood exploration problem with decision tables

2. Convert decision tables to optimal decision trees3. Automatic code generation from the decision tree

Optimized Block-based Connected Components Labeling with Decision Trees

Page 70: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling as a decision problem

70

• AND decision tables: you need to perform ALL actions

• OR decision tables: you can perform ANY of the equivalent actions

• Automatic selection of the optimal choice among all alternatives at each steps

• A (single entry) decision tables can now be converted in optimal decision trees (i.e. decision trees with the minimum amount of condition checking)

Page 71: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling as a decision problem

71

• For each pixel x, we need to analyze a neighborhood of 4 pixels: p,q,r,s• Conditions: x,p,q,r,s are foreground• Actions: no action, assignment and merges of 2 or more labels

Page 72: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling as a decision problem

72

Page 73: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling as a decision problem

73

Some actions are useless: previous operations have already solved equivalences between connected pixels

Saved 2-merge: Saved 3-merge:

No need to merge p+q : assign p or q

No need to merge p+r+s :merge p+r or s+r

Page 74: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling as a decision problem

74

Page 75: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling as a decision problem

75

Page 76: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Labeling as a decision problem

76

190

136

0

20

40

60

80

100

120

140

160

180

200

Standard Decision Tree

ms

Bible (10.4Mpixels)

23,2

19,4

17

18

19

20

21

22

23

24

Standard Decision Tree

ms

Gutenberg project (1.3Mpixels)

3,6

2,6

0

1

1

2

2

3

3

4

4

Standard Decision Tree

ms

MIRFlickr (0.17Mpixels)

Page 77: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Going even faster…

77

Can the analysis made on labeling scale with larger block sizes?

2x2 blocks are in fact always 8 connected. We extend the idea to blocks…

Page 78: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Going even faster…

78

For each pixel x, we need to analyze a neighborhood of 16 pixelsConditions: 16 pixels are foreground (a total of 65536 rules)Actions: no action, assignment and merges of 2 or more labels

(up to 4 equivalences)

Page 79: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Going even faster…

79

Number of nodes: 136Number of leaves: 137

Maximum number of levels: 14

Page 80: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Results

80

190

144136

94

0

20

40

60

80

100

120

140

160

180

200

Standard BB DT BBDT

ms

Bible (10.4Mpixels)

23,2

17,2

19,4

13,2

0

5

10

15

20

25

Standard BB DT BBDT

ms

Gutenberg project (1.3Mpixels)

3,6

3,1

2,6

2,1

0

1

1

2

2

3

3

4

4

Standard BB DT BBDT

ms

MIRFlickr (0.17Mpixels)

Page 81: Http://imagelab.ing.unimo.it Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

http://imagelab.ing.unimo.it

Esercizi in OpenCV

scrivere un programma in opencv che esegua le seguenti operazioni 1) filtraggio dell’immagine (Gauss,media, mediana) 2) binarizzazione con soglia (automatica di Otsu) 3) labeling (da sviluppare) 4) calcolo dei controni sull’immagine originale e sull’immagine etichettata 5) stampa di ogni oggetto separatamente nella propria ROI