Visio per Computador presentació · entre la imatge i la imatge de llindars • Residu...

Preview:

Citation preview

Segmentació

Felipe LumbrerasDept. Ciències de la Computació / Centre de Visió per Computador

Universitat Autònoma de Barcelonahttp://www.cvc.uab.es/shared/teach/a102784/

Segmentació

• Definició, exemples

• Mètodes– Binarització

• Global: Otsu

• Local: Niblack, morpho

– Regions: • Region-growing

• Split & merge

– Clustering• K-means

• Mean shift

– Watershed

– Snakes

• Etiquetatge

Segmentació

Subdivideix una imatge (o conjunt de imatges) en les “regions” u objectes constituents (contorns, regions, frames, ...)

Objectiu: simplificar o canviar de representació per obtenir quelcom amb més sentit i fàcil d’analitzar

Exemples

Resultat: els píxels d’una regió són similars respecte d’alguna característica: color, intensitat, textura, … i regions adjacents són diferents.

Motivacions:– Reconeixement d’objectes

– Detecció de profunditat (stereo matching, optical flow)

– Separació background – foreground (motion detection, BS)

– Seguiment d’objectes

– Compressió

– …

Mètodes

Alguns dels mètodes per arribar a una segmentació poden ser:

• llindars globals i locals

• clusterització (agrupament),

• contorns,

• regions,

• level sets,

• grafs,

• watershed,

• snakes,

• ...

Binarització global

Aquests mètodes es basen en la binarització dels nivells d’intensitat de la imatge. La binarització ja l’havíem vist i consisteix en aplicar la següent funció:

=

kyxI

kyxIyxIu

),( si1

),( si0)),((

Problema (escollir k)

Imatge original k massa petit

k massa gran k òptim Otsu

Otsu

El mètode d’Otsu dóna el nivell de llindar òptim en histogrames bimodals.

– Calculem la probabilitat dels nivells d’intensitat (histograma).

– recorrem l’histograma per buscar el nivell d’intensitat que minimitza la variància intraclasse .

Histograma del’exemple d’abans

Otsu

Otsu

• N. Otsu, “A Threshold Selection Method from Gray-LevelHistograms,” IEEE Transactions on Systems, Man, andCybernetics, vol. 9, no. 1, pp. 62-66, 1979

• Funció MatLab: graythresh(im)

• www.labbookpages.co.uk/software/imgProc/

otsuThreshold.html

Binarització local

Agafem un llindar diferent per cada punt de la imatge. Podem calcular per a cada punt aquest valor de llindar i fer la resta entre la imatge i la imatge de llindars

• Residu d’openings

• Mètode de Niblack

Keeps narrow peaks (bright points and bright thin lines)

Opening residue

Non-uniform lighting Background: opening Residue

Thresholding

Opening residue

Mètode de Niblack

T (x, y) = m( x, y) + k · s(x, y)

• on m(x, y) és la mitjana local i s(x, y) la desviació estàndard local. El veïnat ha de ser suficientment petit per preservar els detalls i suficientment gran per suprimir el soroll.

• El valor de k ajusta quina part de la frontera serà assignada a l’objecte segmentat.

Basats en unir/partir regions

• Aquests mètodes es basen en la unió de regions de la imatge que tenen valors “semblants” d’intensitat.

– Region-growing: píxels veïns amb valor d’intensitat semblant s’agrupen per formar les regions segmentades. Es basa en una sèrie de regles heurístiques per decidir la “semblança”.

– Split and Merge: Es basa en una representació en quad-tree. Es fa una partició de la imatge en quadrats, i s’ajunten o es divideixen els quadrats depenent dels seus valors d’intensitat. Normalment la mida inicial dels quadrats és una mida intermèdia.

Region-growing

Split and Merge

• Utilitza estructures de dades jeràrquiques

piràmide quadtree

Split and Merge

Descomposició Quadtree Mitjana dels blocs

Examinant blocs de 128 x 128

Split and Merge

Descomposició Quadtree Mitjana dels blocs

Examinant blocs de 64 x 64

Split and Merge

Descomposició Quadtree Mitjana dels blocs

Examinant blocs de 32 x 32

Split and Merge

Descomposició Quadtree Mitjana dels blocs

Examinant blocs de 16 x 16

Split and Merge

Descomposició Quadtree Mitjana dels blocs

Examinant blocs de 8 x 8

Split and Merge

Descomposició Quadtree Mitjana dels blocs

Examinant blocs de 4 x 4

Split and Merge

Descomposició Quadtree Mitjana dels blocs

Examinant blocs de 2 x 2

Agrupació (clustering)

• Exemple: punts de les regions de la imatge d’un color homogeni formen un agrupament a l’espai de color.

R

B

G

• K-means• Mean shift

K-means

• K-means: algorisme iteratiu que parteix una imatge en K

clústers (grups).

1. Agafa K centres de clúster, o de manera aleatòria o basada en

alguna heurística

2. Assigna cada píxel al clúster que tingui el centre més pròxim

3. Actualitza els centres fent la mitjana dels píxels del clúster

4. Repeteix 2 i 3 fins a convergència (els centres no canvien)

K-means

Amb 3 classes

Amb 4 classes →

Mean shift

• Mean Shift és un potent i versàtil algorisme no paramètric

iteratiu utilitzat per a trobar modes o agrupar.

• Va ser introduït per Fukunaga i Hostetler en el 1975.

• Idea: – Mean shift considera l’espai de característiques com a una funció de

probabilitat empírica.

– Si l’entrada és un conjunt de punts llavors Mean shift els considera com a mostres de la funció de probabilitat subjacent.

– Si n’hi ha regions denses (o clústers) en l’espai de característiques, llavors aquestes es correspondran amb el mode (o màxim local) de la densitat de probabilitat. Podrem assignar clústers de punts en aquests modes.

Mean shift

– Per a cada punt, Mean shift l’associa amb el pic “més proper” de la densitat de probabilitat des d’un punt de vista geodèsic, pujant als pics.

– Per a cada punt es defineix una finestra al voltant d’ells (amb un paràmetre d’amplada h) i es calcula la mitjana dels punts d’aquesta finestra.

– Després desplacem el centre de la finestra a aquesta mitjana i repetim l’algorisme fins a arribar a convergència. A cada iteració la finestra es desplaça cap a una regió més densa (màxim local).

• En resum podem especificar Mean shift com:1. Fixem una finestra al voltant de cada punt. 2. Computem la mitjana de les dades dins la finestra. 3. Movem la finestra cap a la mitjana i repetim fins a convergència.

Mean shift

Segmentem la imatge mitjançant mean shift

No totes les trajectòries arriben al mateix mode

Final clusters

Mean shift

L’efecte de l’amplada de

finestra h

Mean shift (exemples)

Mean shift (exemples)

Mean shift (exemples)

Altres segmentacions

• Watersheds

• Snakes

• Level sets

• Graph-cuts, N-Cuts

• Superpixels, turbopixels

• Semantic segmentation

Watersheds

• Una altra opció per segmentar és fer servir les línies de cresta de la imatge del gradient

• La línia de cresta és una noció topogràfica: punts d’una superfície que separen diferents conques. Gotes d’aigua que cauen a un costat van a una conca i gotes que cauen a l’altre costat cauen en una conca diferent.

Watersheds

• Segmentació d’objectes binaris:– Calcula el mapa de distàncies

– Fer la inversa del mapa de distàncies

– Troba les crestes amb l’algorisme de watersheds

– Eliminar les línies de cresta de la imatge original

Inversa del mapa de distàncies

Imatge amb crestes eliminades

Contorns actius (snakes)

• Concepte introduït al 1987

• Un contorn actiu és una corba o superfície flexible (oberta o tancada, spline) que es veu atreta per les fronteres dels objectes de la imatge.

• Consisteix en un conjunt de punts de control connectats per línies rectes o splines.

• La posició d’aquests punts evoluciona en el temps mitjançant un procés iteratiu que busca minimitzar l’energia total (externa més interna):

Esnake = Eint + Eext

Eint : elasticitat, doblegament de la corba

Eext : potencial d’atracció als contorns de la imatge (mapa de distàncies)

Contorns actius (snakes)

Snakes (exemples)

Level sets

• Level set és una eina per a l’estudi de superfícies i formes.

• Fa servir equacions en derivades parcials i mètodes numèrics con les diferències finites per obtenir les solucions

• La corba que representarà la segmentació és el tall per t=0 d’una superfície j(x,y,t)

𝜕𝜑

𝜕𝑡− 𝑣 𝛻𝜑 = 0

Avantatges: no necesita paràmetres, éspot resoldre a sobre del grid cartesiàsense reparametritzar, els canvistopologics s’expressen de forma natural.

Font: https://en.wikipedia.org/wiki/Level-set_method

Graph cuts, N-cuts

• S’extableix una estructura de graph (pixel a pixel o subregió a subregió). Els nodes 𝑉 seran punts d’un espai de característiques.

• Les conexions dels nodes, els pesos 𝑤, venen donades per una funció de similaritat.

• Una solució possible és fer servir “minumum cut”. El problema del min-cut és que afavoreix regions petites.

𝑐𝑢𝑡 𝐴, 𝐵 = σ𝑢∈𝐴,𝑣∈𝐵𝑤(𝑢, 𝑣)

• N-cut proposa una mesura de disociació

𝑁𝑐𝑢𝑡 𝐴, 𝐵 =𝑐𝑢𝑡(𝐴,𝐵)

𝑎𝑠𝑠𝑜𝑐(𝐴,𝑉)+

𝑐𝑢𝑡(𝐴,𝐵)

𝑎𝑠𝑠𝑜𝑐(𝐵,𝑉)

on 𝑎𝑠𝑠𝑜𝑐 𝐴, 𝑉 = σ𝑢∈𝐴,𝑡∈𝑉𝑤(𝑢, 𝑡)

font: https://github.com/AmarJ/Kaptur-GraphCut

Superpixels (turbopixels)

• Redueix la complexitat d’una imatge mitjançant la agrupació de píxels propers però evitant regions sense partir (undersegmentation).

• Algorismes fonamentats de vegades en graph-cuts, de vegades en level sets (geometric-flow problem)Superíxels:

1. place initial seeds;

2. iterate over the following basic steps

until no further evolution is possible, i.e.,

when the speed at all boundary pixels is

close to zero,

1. evolve this boundary for T times

2. estimate the skeleton of the

unassigned region;

3. update the speed of each pixel

on the boundary and of unassigned

pixels in the boundary's immediate

vicinity.

font: Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Süsstrunk, SLIC Superpixels, EPFL Technical Report 149300, June 2010

Semantic segmentation

• Dotar a la segmentació (extracció de regions) d’una capa de classificació.

• Reconèixer, comprendre que hi ha a la imatge a nivell de píxel.

• Com a sortida tenim regions amb un nombre limitat de classes.

• Aquest camp a anat evolucionat (com la resta) fins arribar a utilitzat tècniques de Deeplearning

Etiquetatge

Imatge Segmentació Etiquetatge

Etiquetatge

REGIÓ OBJECTE

Abans de poder reconèixer

• Conèixer la posició en la imatge

• Conèixer els píxels que formen part de cada regió

ETIQUETATGEAssignar a cada píxel una etiqueta que indiquil’objecte al que pertany.

• Imatges binàries:

• A les imatges binaries no tenim problema per saber exactament el nombre d’elements que hi ha en una escena.

• Convenció: fons = 0, objecte = 1

( ) ( )yxyx ,I,

0,1:I

• Quants objectes hi ha?

Depèn de la definició

de veïnatge

• a) 1 objecte b) 2 objectes

veïnatge

• Considerem un píxel (x,y) i la regió que l’envolta:

• Connectivitat a 4: considerarem com a veïns només

els horitzontals i els verticals, és a dir, els píxels 1,3,5 i 7.

• Connectivitat a 8: considerarem com a veïns d’un

píxel tots els píxels que l’envolten, és a dir, els píxels 1,2,3,4,5,6,7 i 8.

8(x-1,y-1)

1(x,y-1)

2(x+1,y-1)

7(x-1,y)

0(x,y)

3(x+1,y)

6(x-1,y+1)

5(x,y+1)

4(x+1,y+1)

regió connectada

• Llavors direm:

Una regió estarà connectada quan existeix un camí entre tots els punts que formen la regió. Associarem les regions connectades de la imatge als objectes que hem d’estudiar.

• Quants objectes hi ha?

• 2, si estan 4-connectats

• 1, si estan 8-connectats

exemples

2 regions ambconnectivitat a 4

2 regions ambconnectivitat a 8

Etiquetatge (algorisme)

• Algorisme per regions amb connectivitat a 4: consisteix en fer dos recorreguts de la imatge:

• Al primer recorregut posarem unes etiquetes preliminars aplicant l’algorisme que veurem a continuació .

• El segon recorregut és per corregir els píxels etiquetats com a diferents però que realment pertanyen a la mateixa regió.

Notació:

Xu

Xl Xc

Xc Píxel a ser tractat

Xu Veí superior a Xc

Xl Veí esquerre a Xc

Iin Imatge d’entrada

Iout Imatge de sortida amb les regions etiquetades

Etiquetatge (algorisme)Primer recorregut de l’algorisme

K=1 // Comptador d’etiquetesEscombrat de la imatge en sentit vídeo

if Iin(Xc) 0 then

if (Iout(Xu) 0 AND Iout (Xl) = 0) then Iout (Xc) = Iout (Xu)

if (Iout (Xu) = 0 AND Iout (Xl) 0) then Iout (Xc) = Iout (Xl)

if (Iout (Xu) 0 AND Iout (Xl) 0) then

Iout (Xc) = Iout (Xl)

// L’etiqueta I(Xu) i I(Xl) són equivalents

if (Iout (Xu) Iout (Xl) ) then

Posar Iout (Xu) i Iout (Xl) a la taula d’equivalències

if (Iout (Xu) = 0 AND Iout (Xl) = 0) then

Iout (Xc) = K

K++

Segon recorregut

Escombrat de la imatge en sentit vídeo aplicant la taula d’equivalències

Etiquetatge (algorisme)

1 1 1 11

1 11 1 1 11 1 1 1

2222 2 2

44

22

251

1 13

2 42 5Primer recorregut

taula d’equivalències

1 1 1 11

1 11 1 1 11 1 1 1

2222 2 2

22

22

221

1 13

Segon recorregut

Imatge inicial

Binaria: negre figura, blanc fons