1
� Reconocimiento de objetos� Objetos etiquetados� Extracción de las características� Clasificación
� Etiquetamiento� Imagen binaria� Conectividad
Cap.VII: Interpretación de las imágenes
Ejemplo de etiquetamiento Resolución Matlab
>>imgEnt=imread('rice.png');imshow(imgEnt);pause;>>imgBWMask=im2BW(imgEnt);>>se = strel('disk',2);>>imgBWMarcador = imerode(imgBWMask,se);>>imgReconst=imreconstruct(imgBWMarcador,imgBWMask);>>imgBWElimBorde = imclearborder(imgReconst);>>imgEtiq=bwlabel(imgBWElimBorde);>>subplot(1,2,1);imshow(imgEnt);subplot(1,2,2);imshow(label2rgb(imgEtiq));
Extracción de las características
� Características de los objetos� Fronteras versus región� Invariante a escalado, traslación y rotación
� Descriptores� Área y peso:� Perímetro:� Compacidad:� Centro de gravedad:
( ) ( ) ( ) ( ) ( )∑∑∑∑= == =
⋅==N
x
M
y
i
N
x
M
y
i yxfyxgiWyxgiA1 11 1
,,,
( )( )iA
iP 2
( )
( )
( )
( )iA
yxgy
yiA
yxgx
x
N
x
M
y
i
i
N
x
M
y
i
i
∑∑∑∑= == =
⋅
=
⋅
=1 11 1
,
ˆ
,
ˆ
2
Extracción de las características(2/2)
� Teorema de unicidad de Papoulis� Momentos:� Invariantes a traslaciones (centrales):
� A escalas (centrales normalizados):
� Elipse que inscribe al objeto:� Excentricidad, orientación
( ) ( )∑∑= =
⋅⋅=N
x
M
y
i
qp
pq yxgyxim1 1
,
( ) ( ) ( ) ( )∑∑= =
⋅−⋅−=N
x
M
y
i
q
i
p
ipq yxgyyxximc1 1
,ˆˆ
00m
mc pqpq =µ
2
1
−=a
be
Descriptores topológicos
� Globales e invariantes a escala, rotación y traslación� Número de agujeros� Número de componentes conectados� Número de Euler
� Diferencia entre componentes y agujeros� A(0),B(-1),i(2)
Envolvente convexa
� Simplificar el objeto eliminado la concavidades� La envolvente convexa (convex hull), EC, de un
conjunto C se define como el conjunto convexo más pequeño que contiene a C.
� Matlab
3
Ejemplo:
0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 1 0 0 0 0 00 0 0 1 1 1 0 0 0 00 0 1 1 1 1 1 0 0 00 0 1 1 1 1 1 0 0 00 0 0 1 1 1 0 0 0 00 0 0 0 1 1 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
Area: 19Centroid: [5.0526 5.6316]BoundingBox: [2.5000 2.5000 5 6]MajorAxisLength: 5.5489MinorAxisLength: 4.6766Eccentricity: 0.5382Orientation: -76.7175FilledArea: 19EulerNumber: 1EquivDiameter: 4.9185ConvexArea: 20Solidity: 0.9500Extent: 0.6333Perimeter: 13.8995
[row,cols]=find(imgEnt>4);mean([row,cols])[V,D]=eig(cov([row,cols]))(D.^.5)*4
Ejemplo: detectar objetos redondos
>>RGB = imread('pillsetc.png');>>figure; imshow(RGB);
>>I = rgb2gray(RGB);>>threshold = graythresh(I);>>bw = im2bw(I,threshold);>>figure; imshow(bw)
>>bw = bwareaopen(bw,30);>>se = strel('disk',2);>>bw = imclose(bw,se);>>bw = imfill(bw,'holes');>>figure; imshow(bw)
Ejemplo: detectar objetos redondos>>[B,L] = bwboundaries(bw,'noholes');
>>figure; imshow(label2rgb(L, @jet, [.5 .5 .5]))>>hold on>>for k = 1:length(B)
boundary = B{k};plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)
>>end
>>stats = regionprops(L,'Area','Centroid');>>threshold = 0.94;>>for k = 1:length(B)
delta_sq = diff(boundary).^2; perimeter = sum(sqrt(sum(delta_sq,2)));area = stats(k).Area;metric = 4*pi*area/perimeter^2;
metric_string = sprintf('%2.2f',metric);if metric > thresholdcentroid = stats(k).Centroid;plot(centroid(1),centroid(2),'ko');
end
text(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','y',...'FontSize',14,'FontWeight','bold');
>>end
Metrics closer to 1 indicate that the object is approximately round
0.90
0.95
0.73
0.96
0.91
0.58
4
Descriptores texturales (1/5)� Textura asociada a propiedades de suavidad, regularidad,
granularidad ,…� Interacción entre la luz con la materia� Tacto y visión� Espacio de escalas (lejos y cerca)� Concepto de texel
� Primitiva de descripción del patrón textual� Invariante a posición, rotación y luminancia
Descriptores texturales(2/5)� No solo descriptivo sino también para la segmentación� El análisis textural consiste en la descripción de cómo son y cómo se
distribuyen los elementos de textura en una imagen� Los descriptores de texturas deben cuantificar ciertas propiedades
tales como suavidad, rugosidad y regularidad.� Técnicas
� Estructurales� Estadísticas� Frecuenciales
Descriptores texturales(3/5)
Aceptada Rechazada
� Estructurales� Supone que la textura está compuesta por combinaciones
espaciales de una “textura primitiva”, es decir, de un patrón que se repite.
� A partir del patrón se formarán patrones de estructuras más complejas por medio de reglas.
� Se basa en descripciones relacionales� Éxito en texturas muy regulares
5
Descriptores texturales(4/5)
� Frecuenciales� Transformadas de Fourier: global� No funciona con variaciones espaciales
� Filtros de Gabor, fija la orientación y escala del patrón� Función de Gauss modulada por un armónico con
orientación determinada
� La varianza y la frecuencia del armónico definen el espacio de escala
Descriptores texturales(5/5)� Filtros de Gabor
� Bancada de filtros de Gabor en función de la escala y la orientación
Descriptores estadísticos en textura� Orden del estadístico: depende de número de píxeles de
vecindad� Primer orden: histogramas locales
� Energía, entropía, momentos� No tiene en cuenta las relaciones espaciales
� Matlab� Analyzing the Texture of an Image
Calculates the local entropy of a grayscale image. Entropy is a statistical measure of randomness.
entropyfilt
Calculates the local standard deviation of an image.stdfilt
Calculates the local range of an image.rangefilt
DescriptionFunction
6
Ejemplo: estadísticos de primer ordenEntropía Contraste
Descriptores estadísticos en textura� Orden del estadístico: depende de número de píxeles de
vecindad� Primer orden: histogramas locales
� No tiene en cuenta las relaciones espaciales� Segundo orden: matriz de coocurencia
� Regla de vecindad� A (kxk), siendo k el número de grises.
� aij, representa el número de veces que un píxel con nivel de gris j, se encuentra a una distancia h, en dirección θ, de un píxel con nivel de gris
� Ejemplo: vecindad a -45º con h=1
h=píxel superior derecha
Ejemplo: I = imread('circuit.tif'); [GLCM2,SI] = graycomatrix(I,'Offset',[2 0;0 2]); stats = graycoprops(GLCM2,{'contrast','homogeneity'})
0
200
400
600
800
1000
0 50 100 150 200 250
0
0.5
1
1.5
2
2.5
3
x 104
0 0.2 0.4 0.6 0.8 1
3448 1861 3 0 0 0 0 0
1908 19450 4405 346 0 0 0 0
9 4505 10103 1692 28 0 0 0
0 583 1719 8584 1377 0 0 0
0 0 93 1534 11459 870 0 0
0 0 0 0 887 752 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
3251 2173 0 0 0 0 0 0
2039 19890 3890 646 7 0 0 0
7 3811 10426 1882 107 0 0 0
0 325 1864 8215 1748 0 0 0
0 0 88 1506 11229 863 0 0
0 0 0 0 857 776 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
stats =
Contrast: [0.3307 0.3358]Homogeneity: [0.8534 0.8531]
7
Descriptores de fronteras(1/4)� Códigos encadenados
� Segmentos de longitud y orientación determinada dependiente de la conectividad a 4 ó 8.
� Primer elemento� Información de su posición� Proceso de normalización
� El código de menor valor
Descriptores de fronteras(2/4)� Geométricos
� Perímetro: código encadenado(1 y )� Representación de la curva mediante una
función unidimensional� Signatura: distancia de un punto interior del objeto
(p.ej: centroide) a cada uno de los puntos fronteras.� Invarianza a la traslación
� Depende del punto inicial, se toma la distancia mayor� La invarianza a escala se consigue normalizando la
distancia
2
Descriptores de fronteras(3/4)� Signatura problemas
� Invariante a escala: normalización distancia [0 1]� Dependiente de la posición inicial: punto de máxima distancia� Sensible al punto interior� Curvas con concavidades
� Curvatura: variación de la tangente en el contorno� Histograma de la curvatura
� Invariante a traslación, rotación y escala
fdiv
fκ
∇= ∇
8
Descriptores de Fourier(4/4)� Curvas cerradas: descripción unidimensional
� Secuencia en coordenadas cartesianas convertidas a variable compleja
� K descriptores de Fourier� De grueso a detalle. Continuo = centroide
� Anti-transformada: � P<K
� Invariantes a traslaciones, rotaciones, escalado y de donde se empiece a tomar la secuencia.
( ) ( ) ( ) ( ){ }nnii yxyxyxyx ,,...,,...,,,, 2211 ( ) ii jyxiz +=
1,...,2,1,01
2
−==∑=
⋅−
KkezZn
i
iK
kj
nk
π
nieZK
zK
k
nK
kij
ki ,...,2,11 1
0
2
== ∑−
=
⋅⋅
� Disciplina relacionada con la Inteligencia Artificial� Asignar los objetos a una clase� Imágenes, señales o cualquier tipo de medida� Características + conocimiento a priori
� Enfoques� Estadístico� Métodos sintácticos� Alineamiento de plantillas� Redes neuronales
Reconocimiento de patrones
Alineamiento de plantillas� El objeto a ser reconocido es comparado con un
conjunto de plantillas, teniendo en cuenta que puede haber habido traslaciones, rotaciones o cambio de escala.
� Muy utilizado en análisis médicas� ITK( Insight Toolkit: Registration and segmentation)
9
Métodos sintácticos� En este caso un objeto es visto como una
composición de subformas simples. Las subformasmás simple a ser reconocidas son llamadas primitivas y una forma compleja es representada en términos de interrelaciones entre estas primitivas. Este método tiene analogía con la sintaxis de un lenguaje.
� Hay problemas para separar en sus primitivas una forma que tiene mucho ruido.
Redes neuronales� Consiste en una red cuyos nodos son neuronas artificiales que se
conectan mediante enlaces que tienen distintas ponderaciones. Las redes neuronales tienen la habilidad de aprender complejas relaciones no lineales de entrada-salida usando procedimientos secuenciales de entrenamiento.
� Clasificación � Supervisada: MLP (Multilayer perceptron) y las redes de
funciones de base radial (RBF). � No supervisada se usa las redes de Kohonen conocidas
como Self-Organizing Maps (SOM)
Selección de las características� Particionar el espacio de las características� Propiedades de las características
� Discriminación� Fiabilidad� Independencia� Menor número de características
10
Ejemplo de Fisher
4 4.5 5 5.5 6 6.5 7 7.5 82
2.5
3
3.5
4
4.5
longitud hoja
Anc
hura
hoj
a
setosaversicolorvirginica
4 4.5 5 5.5 6 6.5 7 7.5 82
2.5
3
3.5
4
4.5
longitud hoja
Anc
hur
a ho
ja
setosa
versicolorvirginica
4 4.5 5 5.5 6 6.5 7 7.5 82
2.5
3
3.5
4
4.5
x
y
versicolorsetosavirginica
Ejemplo: k-means con el colorH&E image
Image courtesy of Alan Partin, Johns Hopkins Univ ersity
ab = double(lab_he(:,:,2:3));nrows = size(ab,1);ncols = size(ab,2);ab = reshape(ab,nrows*ncols,2);
nColors = 3;% repeat the clustering 3 times to avoid local minima[cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...
'Replicates',3);
image labeled by cluster index120 130 140 150 160 170 180 190 200
60
70
80
90
100
110
120
130
Clasificadores estadísticos(1/5)
� Teoría de la probabilidad para clasificar
� Variables aleatorias
� Requiere del conocimiento previo de las funciones de densidad� Paramétricas o no paramétricas� Probabilidad a priori: p(x|ωi)
11
Clasificadores estadísticos(2/5)
� Teoría de Bayes� Minimizar el error de clasificación: se asigna a la
clase con mayor probabilidad a posteriori:
� Distancia a la clase i
( )( ) ( )
( )
||
i i
i
p X pp X
p X
ω ωω =
( ) ( ) ( )|i i id X p X pω ω=
Clasificadores estadísticos(3/5)
� Paramétrica� Modelizada por una densidad normal
� Función discriminante
( )( ) ( )1
1/ 22
1 1( | ) exp
22
T
i i i in
i
p X X M X Mωπ
− = − − Σ −
Σ
( ) ( ) ( )( ) ( ) ( ) ( ) ( )( )1
12
1ln | ln 2 ln ln
2 2
T
i i i i i i i i
nd X p X p X M X M pω ω π ω−
= = − + Σ − − Σ − +
Clasificadores estadísticos(4/5)
� Normal� Igualdad en la matriz de covarianza y todas las
clase equiprobables� Distancia de Mahalanobis
� Si además las características no están correladas y las varianzas son idénticas� Distancia euclídea
( ) ( ) ( )11
2
T
i i id X X M X M−
= − − Σ −
( ) ( ) ( )T
i i id X X M X M= − −
12
Ejemplo: clasificación de Bayes
-8 -6 -4 -2 0 2 4 6-8
-6
-4
-2
0
2
4
6Espacio de las características
-8 -6 -4 -2 0 2 4 6-8
-6
-4
-2
0
2
4
6
x
y
pdf(obj,[x,y])
Cluster 1Cluster 2
-8 -6 -4 -2 0 2 4 6
-8
-6
-4
-2
0
2
4
6
0
0.05
0.1
x
pdf(obj,[x,y])
y
-8 -6 -4 -2 0 2 4 6-8
-6
-4
-2
0
2
4
6
x
y
pdf(obj,[x,y])
obj = gmdistribution.fit(X,2);idx = cluster(obj,X);
Clasificadores estadísticos(5/5)
� No paramétricos� Ventana de Parzen
� A partir del histograma de las características� Número de muestras del conjunto total que cae dentro de
un hipercubo del espacio de características:
( )( )
/R
R
R
p X dXk n
p XVdX
= ≅∫
∫
( )1
/ 1 ni
diR
x xk np X
V n h hφ
=
− ≅ =
⋅ ∑
( )112
0 en caso contrario
ij
i
xxφ
<=
( )( )
2
1 22 21
1 1exp
22
ni
i
X Xp X
n hhπ=
−≅
∑
Top Related