Академический Документы
Профессиональный Документы
Культура Документы
Procesamiento de Imágenes y
Bioseñales I
06 - Segmentación de imágenes I
Jorge Jara
DCC, SCIAN-Lab
jjaraw@gmail.com
vvv Temario
1. Introducción
– Procesamiento y análisis de imágenes
– Imágenes digitales
– Segmentación
2. Segmentación - métodos (filtros) básicos
– Umbrales
– Basados en convolución matricial
– Morfológicos
– Filtros de Fourier
3. Segmentación - métodos avanzados
– Ajuste de formas (pattern matching)
– Modelos deformables o contornos activos
• Paramétricos
• Implícitos (sesión del sábado)
vvv Introducción
• ¿Qué “vemos”?
• ¿Qué información podemos extraer?
vvv Introducción
Representación simbólica de la
realidad, a partir de...
3. loops realimentados
Experiencia
Entrenamiento
Complemento
cognitivo, ...
Expectativa
Anticipación
Representación simbólica o
modelo del mundo real
vvv Introducción
• Criterios esenciales
Similaridad de colores
(regiones)
Transiciones de color
(gradientes)
vvv Introducción
vvv Introducción
x
y
vvv Introducción
Procesamiento de imágenes
• Análisis de imágenes
Adaptado de
Young I, Gerbrands J, van Vliet L (1995)
Fundamentals of Image Processing. Delft: PH
vvv Introducción
• La “contraparte” es el continuo
Ejemplo: el intervalo de números reales [0,1]
Su dibujo aquí…
y y
x x
continuo discreto
vvv Introducción
• No obstante, al desplegarse en
una pantalla de computador
(matriz de píxeles) se requiere
de un proceso de rasterización
http://en.wikipedia.org/wiki/SVG
vvv Introducción
Representaciones de
matriz o vectorial son
algunos ejemplos…
¿Otros?
vvv Introducción
– Escala de grises
– RGB (Red, Green, Blue)
– CMYK (Cyan, Magenta, Yellow, blacK)
– HSV (Hue, Saturation, Value)
Valor Valor
binario decimal
0000 0000 0 (negro)
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
I(290,267) = 220
0000 0101 5
0000 0110 6
0000 0111 7
0000 1000 8
… …
1111 1011 251
Imagen en escala de grises de 8 bits
1111 1100 252
1111 1101 253 Una imagen en escala de
1111 1110 254 grises de n bits permite
1111 1111 255 (blanco) codificar 2n valores de
intensidad
vvv Introducción
• Imagen RGB
– Combinación de tres canales con colores primarios
(Red, Green, Blue)
– CMYK es similar…
vvv Introducción
• Escala de rojos…
r g b
0 0 0
1 0 0
2 0 0
: : :
: : :
: : :
: : :
220 0 0
: : :
: : :
255 0 0
vvv Introducción
Blue Cyan
(0, 0, 255) (0, 255, 255)
White
(255, 255, 255)
Magenta
(255, 0, 255)
• Modelo HSV
http://en.wikipedia.org/wiki/HSV_color_space
En 3D surge un problema
de visualización…
vvv Introducción
[R, G, B, α]
Opacidad o
alpha-blending
vvv Introducción
• Segmentación
…etc…
Scale Invariant Feature Transformation (SIFT), D Lowe (2004). Image from J Clemons (2009)
vvv Introducción
• Problemas
1. Introducción
– Procesamiento y análisis de imágenes
– Imágenes digitales
– Segmentación
2. Segmentación - métodos (filtros) básicos
– Umbrales
– Basados en convolución matricial
– Morfológicos
– Filtros de Fourier
3. Segmentación - métodos avanzados
– Ajuste de formas (pattern matching)
– Modelos deformables o contornos activos
• Paramétricos
• Implícitos (sesión del sábado)
vvv Segmentación – métodos básicos
• Filtros
imagen
imagen filtro filtrada
Imágenes de Wikipedia
vvv Segmentación – métodos básicos
• Ejemplos de filtros
Umbrales
Otsu
Basados en convolución
Gradiente (Sobel, Roberts, …)
Laplace
Gausiano
Morfológicos
Morfología matemática
Tamaño
Adelgazamiento (thinning, skeletonization) *
Operaciones aritméticas-lógicas
AND, OR, XOR
Unión, intersección
Y un largo etc.
vvv Segmentación – métodos básicos
• Filtro de umbral
segmentación: ROIs (blanco) / fondo (negro)
Histogramas de intensidad
vvv Segmentación – métodos básicos
• Ecualización de histograma
http://en.wikipedia.org/wiki/Histogram_equalization
vvv Segmentación – métodos básicos
http://en.wikipedia.org/wiki/Histogram_equalization
vvv Segmentación – métodos básicos
• Umbral de Otsu
– Idea: separar los píxeles de una imagen en dos conjuntos, con la
varianza de intensidad mínima dentro de cada clase
min σ w2 (t ) = ω1 (t )σ 12 (t ) + ω 2 (t )σ 22 (t )
t : threshold, ωi : probabilit y of class i
N. Otsu (1979).
vvv Segmentación – métodos básicos
• Convolución
– Muchos filtros se basan en esta operación
http://en.wikipedia.org/wiki/Convolution
• La convolución matricial es una operación
entre dos matrices, en nuestro caso…
– la imagen, I
– un kernel, K ( K ⊗ I ) [xi, ji] = (-1 * 222)
+ ( 0 * 170)
+ ( 1 * 149)
+ (-2 * 173)
+ ( 0 * 147)
+ ( 2 * 205)
+ (-1 * 149)
K + ( 0 * 198)
I + ( 1 * 221) = 63
James Matthews, 2002
http://www.generation5.org/content/2002/convolution.asp
vvv Segmentación – métodos básicos
∂I
≈
∂x
∂I
≈
∂y
45
vvv I = I(x, y)
x 46
Iyx
vvv
x 47
vvv |▼I|=|Ix|+|Iy|
x 48
vvv Segmentación – métodos básicos
I = I ( x, y )
∂I I (x + ∆x, y) − I (x, y)
≈ = Kx ⊗ I
∂x ∆x
∆x = 1 pixel
∆x 0 0 0
Kx = 0 −1 1
0 0 0
0 +255 -255
vvv Segmentación – métodos básicos
• Kernels…
Laplace
∂ 2
I ∂ 2
I I = I ( x, y )
∇2 I = 2 + 2
∂x ∂y
f (x + ∆x, y) − 2 f (x, y) + f (x − ∆x, y) f ( x, y + ∆y) − 2 f (x, y) + f (x, y − ∆y)
∇I≈
2
+
(∆x) 2
(∆y)2
f (x + ∆x, y) + f (x, y + ∆y) − 4 f (x, y) + f (x − ∆x, y) + f (x, y − ∆y)
∇2 I ≈ = KL ⊗ I
(∆x) 2
Nota: se usa diferencia adelantada y luego atrasada, de modo que el kernel resultante sea centrado
∆ x = ∆ y = 1 pixel
0 1 0
KL = 1 − 4 1
0 1 0
vvv Segmentación – métodos básicos
• Kernels…
I = I ( x, y )
Un mapa de aristas o
bordes (edgemap)
considera transiciones de f = (Kx ⊗ I )2 + (Ky ⊗ I )2
intensidad como bordes
Filtro de Sobel
−1 0 1 1 2 1
(notar grosor en el
− 2 0 2 0 0 0
maps de bordes) f. −1
0 1 −1 − 2 −1
¿Cómo son…
Sx Sy
Sx ⊗ I ?
Sy ⊗ I ? f Sobel = (Sx ⊗ I )2 + (Sy ⊗ I )2
vvv Segmentación – métodos básicos
Y ->
H=
- introducción de
reglas adicionales.
X ->
Filtros de polinomios :
vvv Segmentación – métodos básicos
Operaciones de Minkowski
...opening :
...closing :
•A: imagen
•S: elemento estructurante
vvv Segmentación – métodos básicos
Morfología matemática
Adición dilatación :
Substracción erosión :
opening :
S closing :
A
vvv Segmentación – métodos básicos
Filtros locales:
- Lineales
- No lineales
Filtros globales:
- Análisis de Fourier 2 ≤
≤≤F
2193
410F≤F≤ FF
- Análisis de Wavelet
- ...
Filtros especiales:
- Análisis adaptativo
- ...
F
FFFF=
====1
2192
310 ≤≤F≤
1111≤
1 ≤≤F ≤≤192
FFF≤ 139
≤2
vvv Segmentación – métodos básicos
Filtros locales:
- Lineales
- No lineales
Filtros globales:
- Análisis de Fourier 2 ≤
≤≤F
2193
410F≤F≤ FF
- Análisis de Wavelet
- ...
Filtros especiales:
- Análisis adaptativo
- ...
F
FFFF=
====1
2192
310 ≤≤F≤
1111≤
1 ≤≤F ≤≤192
FFF≤ 139
≤2
vvv Segmentación – métodos básicos
1. Introducción
– Procesamiento y análisis de imágenes
– Imágenes digitales
– Segmentación
2. Segmentación - métodos (filtros) básicos
– Umbrales
– Basados en convolución matricial
– Morfológicos
– Filtros de Fourier
3. Segmentación - métodos avanzados
– Ajuste de formas (pattern matching)
– Modelos deformables o contornos activos
• Paramétricos
• Implícitos (sesión del sábado)
vvv Segmentación – métodos avanzados
• Idea optimization:
cost function to minimize / fit function to maximize
– Template matching
• Hough transform This can be a VERY
long list…
– Pixel clustering
• Statistics, probabilities
• Graph cuts
• Machine learning (support vector machine, neural networks…)
• Template matching
– “Classic model” Hough transform Hough P (1959)
A test is performed to
determine the circles
with “best fit”
• Variational methods
– Based on energy minimization, defining integral models
– Idea: to include desirable features on segmented images (like
homogeneus regions, short or smooth ROI boundaries)
– Optimum solutions found by partial differential equations
– Examples: Mumford-Shah, Ambrosio-Tortorelli, Chan-Vese
– Nodes or vertices
– Polygons
• Other models
– Polynomial surfaces
(splines, Bézier, NURBS, …)
– Primitives composition
vvv Segmentación – métodos avanzados
Contour model
Snakes [2D discrete point
curve]
Image
[2D: I = I(x, y)]
Resolution
Description
control
Interpolation Shape,
Approximation Adjusted contour topology
vvv Segmentación – métodos avanzados
– 2D parametric curve
C = C(s) = [x(s), y(s)]
s є [0, 1] (arbitrary length)
– 2D discretization
C = {[xi , yi]; i = 0..n}
vvv Segmentación – métodos avanzados
E = ∫ α +β + Eext [C ( s )]ds
2 ∂s ∂s 2
0
Internal energy,
energy, External energy,
contour dependant image dependant
Elasticity term Rigidity term
(coefficient α) (coefficient β)
Kass et al (1988)
Snakes: active contour models
Int. J. of Computer Vision 1(4): 321-331
Segmentation \ Active contour models
vvv
Elasticity - α
Segmentation \ Active contour models
vvv
Rigidity - β
Segmentation \ Active contour models
vvv
Resolution (f)
vvv Segmentación – métodos avanzados
Snakes – formulation
∂ 2C ( s ) ∂ 4C ( s )
α −β − ∇Eext [C ( s)] = 0
∂s 2
∂s 4
– Dynamic formulation
• C(s) … C(s, t)
• Time equilibrium leads to solution
y
∂C ( s, t ) x
=0 t
∂t
∂C ( s, t ) ∂ 2C ( s, t ) ∂ 4C ( s, t )
=α −β − ∇Eext [C ( s, t )]
∂t ∂s 2
∂s 4
• Parameters
– α (elasticity), β (rigidity) ∂C ( s, t )
=0
∂ 2C ∂ 4C ∂t
∂t
α 2 − βAn*n C − ∇Eext [C ] = 0
∂s ∂s 4
78
Segmentation \ Active contour models
vvv
Xu & Prince (1998) Active Contours and Gradient Vector Flow http://iacl.ece.jhu.edu/projects/gvf
Xu & Prince (1998) Generalized gradient vector flow external forces for active contours
Segmentation \ Active contour models
vvv
g
h
82
Campo
vvv deGVF
gradientes
V0=[Ix, Iy]
g(|▼I|) = µ µ = 0.05 > 0
h(|▼I|) = |▼I|2
83
Generalized GVF (GGVF)
g(|▼I|) = e
vvv (-|▼I|/µ) µ = 0.05
>0
h(|▼I|) = 1 - g(|▼I|)
84
vvv Segmentación – métodos avanzados
α=0
β = 0.01
γ=3
κ = 0.01
µ= 0.05
Iterations = 5
f = 0.15
Segmentation
vvv \ Active
Segmentación contour
– métodos models
avanzados
Segmentation
vvv \ Active
Segmentación contour
– métodos models
avanzados
α = 0.01
β = 0.5
γ = 0.6
κ=5
µ= 0.05
Iterations = 5
f = 0.15
vvv Segmentación – métodos avanzados
• Alternatives…
F Olmos (2009)
vvv Segmentación – métodos avanzados
Raw image
Treatment
vvv
• Sample 3D ROI
vvv Referencias
• John Russ
The image processing handbook
CRC press
• Nixon, Aguado
Feature extraction & image processing
• David Marr
Vision
MIT press
1982