La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,

Presentazioni simili


Presentazione sul tema: "Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,"— Transcript della presentazione:

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

2 http://imagelab.ing.unimo.it BINARIZZAZIONE E COMPONENTI CONNESSI Mediante loperazione 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 nellimmagine di connessione (adiacenza) distanza

3 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)

4 http://imagelab.ing.unimo.it Adiacenza di pixel Adiacenza di pixel: connessione Due pixel sono adiacenti se la loro distanza e uguale allintervallo di discretizzazione dellimmagine 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

5 http://imagelab.ing.unimo.it Nei dettagli

6 http://imagelab.ing.unimo.it Nei dettagli

7 http://imagelab.ing.unimo.it SEGMENTAZIONE La segmentazione delle immagini e uno dei passi piu importanti dellelaborazione di immagini ed e il processo indispensabile nella visione artificiale. La segmentazione consiste nel partizionare limmagine 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

8 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-up Detection Grouping Processo top-down Search Segmenation&Recognition

9 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 9 1011

10 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

11 http://imagelab.ing.unimo.it Segmentazione e rappresentazione Immagini elaborate e segmentate.. Curve Labeling Connettivita Edge detection, Thinning.. Regioni Filling Insieme di regioni Vincoli, Relazioni spaziali Temporali.. Punti

12 http://imagelab.ing.unimo.it Segmentazione (2D) Gray level Thresholding Labeling Filling/merging Color reduction or clustering Motion detection Edge detection morphology Texture grouping

13 http://imagelab.ing.unimo.it Segmentazione di CONTORNI Bordi e contorni di regioni (oggetti) Il REGION BORDER di una regione R e linsieme 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 loggetto Foreground 8-connesso ed background 4 connesso

14 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 ledge ha la direzione perpendicolare alla direzione del gradiente. Il BORDER e un concetto globale di una regione mentre ledge 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 del gradiente Direzione delledge

15 http://imagelab.ing.unimo.it EDGE DETECTION Edge : insieme di punti dove si verificano rapide variazioni di luminosità. Progfilo delledge lungo la direzione del gradiente Calcolo dei contorni : segmentazione in regioni 1) 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 sullimmagine 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

16 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 alloperatore gaussiano o con definizione di maschere ottimali Marr-Hildreth Canny Sarkar-Bowyler inseguimento di contorni : tecniche locali basate sullinseguimento di punti etichettati come contorni

17 http://imagelab.ing.unimo.it CRITERI DI SELEZIONE Un operatore di edge detection deve rispondere ai seguenti criteri 1) 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 EDGE Una 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

18 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 seconda Laplaciano Direzione delledge Direzione del gradiente

19 http://imagelab.ing.unimo.it GRADIENTE Metodi basati sul gradiente : con un operatore differenziale si calcola il gradiente dellimmagine; se il modulo del gradiente supera unopportuna soglia t, si ha un edge valore assoluto e direzione del gradiente Dal gradiente alledge……. Nel caso piu semplice if G(x,y)> Th edge(x,y)=1 else edge(x,y)=0

20 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 0 0 0 0 -1 0 1 0 1 0 0 0 0 troppo sensibile al rumore; per questo sono state proposte maschere alternative

21 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 1 Frei 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

22 http://imagelab.ing.unimo.it Esempi OriginaleMaschera di Prewitt, Maschera di Roberts, Maschera di Roberts, Th = 100Th = 100Th = 50 Maschera di Sobel, Maschera di Frei and Chen Th = 100Th = 100

23 http://imagelab.ing.unimo.it CALCOLO DEGLI EDGE CON SOBEL SOBELx Sx SOBELy Sy Per ogni punto dellimmagine: G>Th ? Edge=1 Edge=0

24 http://imagelab.ing.unimo.it IMPIEGO DI SOGLIE Come trovare una soglia che mantenga il piu possibile gli edge per trovare curve chiuse di contorno?

25 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. Th piano di sezione soglia alta Tl piano di sezione soglia bassa c edge vero l falso edge

26 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é lintensità di questi punti deve essere sotto la soglia alta

27 http://imagelab.ing.unimo.it Esempio Esempio di applicazione: Impiego delloperatore 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 dellarea dei capelli Head detection

28 http://imagelab.ing.unimo.it LOG & ZERO CROSSING Se la derivata prima ha un estremo massimo locale in corrispondenza delledge, 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)

29 http://imagelab.ing.unimo.it Laplaciano della Gaussiana ( LOG, Marr & Hildreth, 1980): Operatore Laplaciano: 0 1 0 1 1 1 1 -4 1 1/3 1 -8 1 0 1 0 1 1 1 In generale: a b a b e b a b a con 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 2 la gaussiana sopprime linfluenza di pixel in un intorno maggiore di 2SIGMA ZERO-CROSSING EDGE DETECTION

30 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, o viceversa; t è una soglia limitata (ad esempio, 1, con filtraggi gaussiani con =1 2) 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 ledge a quello tra i due in modulo più piccolo. Limiti : Il comportamento delledge detector LOG non è buono in corrispondenza di punti angolosi Molto sensibile: tende a creare piccoli cicli di contorni chiusi.

31 http://imagelab.ing.unimo.it CANNY Edge detector di Canny (1986): Forse il più diffuso edge detector; rispetto al LOG, sostituisce loperatore differenziale Laplaciano con la derivata direzionale seconda. Canny ha studiato analiticamente il problema in 1D e ha indicato lapprossimazione 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 luso del filtro gaussiano come filtro di smoothing per una operazione di edge-detection. Lestensione 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.

32 http://imagelab.ing.unimo.it CANNY 1) si convolve limmagine con una Gaussiana 2) si trovano i punti di massimo lungo la direzione n del gradiente: 3) Si calcola il gradiente (G*I):

33 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 nellintorno di P abbiano tutti la stessa direzione del gradiente P1 P P2

34 http://imagelab.ing.unimo.it Esempi Dopo leliminazione dei non massimi è necessario effettuare unoperazione di sogliatura sul modulo del gradiente per selezionare solo gli edge contraddistinti da una determinata intensità. Canny propose luso di una soglia ad isteresi Soglia ad isteresi Canny con soppressione dei massimi E con soglia ad isteresi sul gradiente

35 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 alledge, 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 sullinterpolazione dei valori del gradiente.

36 http://imagelab.ing.unimo.it CANNY 4) NON MAXIMA SUPPRESSION if Grad x (i,j)>Grad y (i,j) P(0,0) P 2 (-1,y 1 ) P 1 (1,y 2 ) P(0,0) P 2 (-1,y 2 ) P 1 (1,y 1 ) y 1 = - m y 2 = m (-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)

37 http://imagelab.ing.unimo.it CANNY 4) NON MAXIMA SUPPRESSION if Grad y (i,j)>Grad x (i,j) P(0,0) P 2 (-1,y 1 ) P 1 (1,y 2 ) P(0,0) P 2 (-1,y 2 ) P 1 (1,y 1 ) y 1 = m y 2 = - m (-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)

38 http://imagelab.ing.unimo.it Esempi CANNY LoG CANNY Zero crossing Soglia unica Soglia ad isteresi

39 http://imagelab.ing.unimo.it Confronti Sobel Canny Normalemnte il filtro di Canny e il migliore per mantenere tutti i particolari ed i contorni chiusi Maschere piu approssimate come quelle di Sobel hanno invece edge non sottili ma molto forti Provare Sobel e Canny con openCV

40 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

41 http://imagelab.ing.unimo.it ESEMPIO a) Canny b)Nalva-Binford c) Sarkar-Bowyler d) Sobel M. Heath et al. Comparison on Edge detectors Comp. Vision Image Underst. 69 n.1 Jan 1998 38-54

42 http://imagelab.ing.unimo.it ESEMPIO a) Canny b)Nalva-Binford c) Sarkar-Bowyler d) Sobel

43 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..

44 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 limplementazione 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;

45 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 unimmagine a sfondo =0 e selezionato un punto sicuramente di bordo esterno p i. 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 p i+1. Osservando che p i-1 e p i+1 appartengono alla regione 8- connessa di p i, è possibile indicare la posizione relativa di p i-1 e p i+1 rispetto a p i specificando due numeri interi tra 0 e 7 che indicano la provenienza e la direzione. Ad esempio, dato p i provenienza=0 direzione=5.

46 http://imagelab.ing.unimo.it CHAIN CODE Sia dato p i di provenienza p i-1 (in questo caso provenienza=6). Per trovare il successivo punto del contorno si deve analizzare la regione 8-connessa del pixel p i, 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é questultimo viene percorso in senso antiorario.

47 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 p i+1, a cui corrisponde un valore di direzione pari a 1. Il valore di provenienza per p i+1 in questo caso particolare assumerà il valore 5, mentre in generale sarà fornito dallespressione: provenienza(p i+1 ) = (direzione(p i ) + 4) mod 8 Il passo successivo è quello di avanzare nel contorno, ovvero p i+1 sarà il nuovo p i, mentre questultimo diventerà p i-1 e si ricomincia. Questo procedimento viene ripetuto finché non si ritorna al punto di partenza, dopo avere esplorato tutto il contorno.

48 http://imagelab.ing.unimo.it CHAIN CODE 2) Nessuno tra i pixels 1° 7° fa parte del contorno. A questo punto lunica soluzione è tornare indietro nella direzione di provenienza cioè nel punto p i-1 che coinciderà con p i+1. Anche in questo caso è necessario calcolare opportunamente il valore di provenienza per p i+1 ; in questo caso assumerà il valore 2, mentre in generale sarà fornito dallespressione: provenienza (p i+1 ) = (provenienza(p i ) + 4) mod 8

49 http://imagelab.ing.unimo.it ESEMPIO Esempio: partenza arrivo In questo modo il bordo di un oggetto puo essere rappresentato con un tipo di dato simbolico, ossia come una lista di punti etichettati identificati dalla relativa posizione (i,j). Provare Freeman chain code su openCV

50 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

51 http://imagelab.ing.unimo.it Esempio k=10,40,100 Vedi Cucchiara, Grana, Pellacani, Seidenari Transactions on Medical Imaging2003

52 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 dellimmagine in oggetti connessi. Gli algoritmi di labeling sono deterministici e la bonta della segmentazione dipende dalloperazione di binarizzazione precedente.

53 http://imagelab.ing.unimo.it Connected component Labeling Per il riconoscimento di oggetti dallo sfondo si suppone Il Background 4 connesso; Loggetto 8 connesso connected component labeling: algoritmo per etichettare regioni 8-connesse XXXXX XX XX XXXXX XX XX O XX O XX O OOO

54 http://imagelab.ing.unimo.it LABELING Labeling : algoritmo che permette di partizionare limmagine 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

55 http://imagelab.ing.unimo.it Labeling: 50 anni di algoritmi Grana 2010

56 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

57 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

58 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.

59 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.

60 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 Haralicks 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

61 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.

62 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 00 5 6 0 7 8 0 0 1 1 1 1 1 00 9 10 11 12 13 0 Passo 2) fase top_ down : scansione dallalto verso il basso per aggregare label di pixel adiacenti Passo 3) fase botton-up: scansione dal basso verso lalto per aggregare label di pixel adiacenti Passo 2) e 3) sono iterati fino a quando e possibile continuare una aggregazione

63 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 3 4 p 0 min_topdown_neighborhood(i,j) ritorna 1 0 0 0 bottom-up : 0 0 0 0 p 4 min_bottomup_neighborhood(i,j) ritorna 1 3 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 0 0 1 1 1 1 1 0

64 http://imagelab.ing.unimo.it LABELING - Algoritmo Classico u Fa solo due passi di elaborazione u Richiede maggiori risorse (spazio per tabella) u 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 lequivalenza con tutte le altre. Dopo questo primo passo su tutta limmagine, nel secondo passo si risolvono le equivalenze Immagine Primo passo 0 1 1 0 1 1 0 0 1 1 0 2 2 0 0 1 1 1 1 1 00 1 1 1 1 1 0 u Secondo passo 0 1 1 0 1 1 0 0 1 1 1 1 1 0 Si memorizza lequivalenza 1=2

65 http://imagelab.ing.unimo.it LABELING - Basato su Run-Length u La codifica run-length di unimmagine binaria è una lista di run o linee (o sequenze di colonne) contigue di pixel con valore 1 u Lalgoritmo sfrutta un primo passo per assegnare ad ogni run una label permanente e per memorizzare in unaltra lista le equivalenze tra le label. u Con una terza lista si costruiscono delle classi di equivalenza che vengono risolte in un secondo passo u Per saperne di piu u http://www.rasip.fer.hr/research/compress/algorithms/fund/rl/index.html

66 http://imagelab.ing.unimo.it LABELING - Basato su Run-Length 1111111 11111111111111 111 1111 111111111 111111111111111 Poi si risolvono le equivalenze nella tabella

67 http://imagelab.ing.unimo.it Esempi 1 2 3 4 5 6 7 8 9 1011 Labeling di regioni connesse Labeling di curve connesse

68 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

69 http://imagelab.ing.unimo.it Whats really new 69 1.Model the neighborhood exploration problem with decision tables 2.Convert decision tables to optimal decision trees 3.Automatic code generation from the decision tree Optimized Block-based Connected Components Labeling with Decision Trees

70 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)

71 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

72 http://imagelab.ing.unimo.it Labeling as a decision problem 72

73 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

74 http://imagelab.ing.unimo.it Labeling as a decision problem 74

75 http://imagelab.ing.unimo.it Labeling as a decision problem 75

76 http://imagelab.ing.unimo.it Labeling as a decision problem 76

77 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…

78 http://imagelab.ing.unimo.it Going even faster… 78 For each pixel x, we need to analyze a neighborhood of 16 pixels Conditions: 16 pixels are foreground (a total of 65536 rules) Actions: no action, assignment and merges of 2 or more labels (up to 4 equivalences)

79 http://imagelab.ing.unimo.it Going even faster… 79 Number of nodes: 136 Number of leaves: 137 Maximum number of levels: 14

80 http://imagelab.ing.unimo.it Results 80

81 http://imagelab.ing.unimo.it Esercizi in OpenCV scrivere un programma in opencv che esegua le seguenti operazioni 1) filtraggio dellimmagine (Gauss,media, mediana) 2) binarizzazione con soglia (automatica di Otsu) 3) labeling (da sviluppare) 4) calcolo dei controni sullimmagine originale e sullimmagine etichettata 5) stampa di ogni oggetto separatamente nella propria ROI


Scaricare ppt "Visione Artificiale Prof. Rita Cucchiara Dipartimento di Ingegneria dellInformazione Università di Modena e Reggio Emilia,"

Presentazioni simili


Annunci Google