Upload
others
View
0
Download
0
Embed Size (px)
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