Está en la página 1de 6

Tarea 2

Reconocimiento de triangulos
Heriberto Cruz Hernandez
2 de octubre de 2015

1.

Descripci
on
Utilizando las im
agenes binarizadas de la tarea 1 se llevaron a cabo las siguientes actividades.

1. Se extrajeron los objetos presentes en la imagen.


2. Para cada objeto extraido:
a) Se les calcul
o su
area y los 7 momento invariantes de Hu [1].
3. Utilizando una imagen con tri
angulos y objetos que no lo eran (ruido). Se preparo un clasificador de mnima
distancia euclidiana para reconocer triangulos.
4. Se aplic
o el clasificador a distintas imagenes. Para cada triangulo detectado se realizo:
a) Se busc
o la caja envolvente del triangulo.
b) Se obtuvo el permetro del tri
angulo mediante la operacion morfologica de erosion.
c) Se identificaron los vertices del triangulo.
d ) Se ordenaron los vertices encontrados de acuerdo a la prueba del area con signo.
e) Se calcularon los
angulos y se identifico al angulo recto.
En las siguientes subsecciones se describe a mayor detalle la manera en como se resolvio cada paso mencionado.
Cada una de las actividades realizadas se describen de manera mas amplia en las siguientes secciones.

2.

Extracci
on de objetos

Utilizando las im
agenes binarizadas obtenidas en la tarea 1 (Vease figura 2) se aplico el programa extract object
en SCIMAGEN. Dicho programa implementa las funciones ligar y rellenar. Si definimos a un tramo como al
conjunto de puntos pertenecientes a un objeto que se encuentran en una misma linea. La funcion ligar encuentra
todos los tramos que se encuentran en las filas superiores e inferiores de un tramo especificado. La funci
on retorna
1

el tramo m
as a la izquierda y superior, as como el tramo mas a la derecha y abajo. Los tramos adicionales son
colocados en una pila que llega a almacenar todos los tramos que conforman a un objeto. La funcion rellenar hace
uso de la pila generada con la funci
on ligar y permite recorrer los tramos para procesarlos. inicia con una direcci
on
(arriba o abajo) y aprovecha la pila para poder rellenar los tramos intercalando la direccion a
un cuando el objeto
a rellenar no tenga una cubierta convexa. Del resultado de la extraccion se obtienen los objetos por separado y
pueden ser analizados o procesados de manera independiente.

Figura 1: Ejemplo de imagen de entrada (Resultado del proceso de binarizacion).

Figura 2: Ejemplo del resultado de la extraccion de objetos.

3.

C
alculo de caractersticas

Para poder llevar a cabo el reconocimiento de objetos mediante un clasificador se requiere definir las caractersticas a utilizar para poder discriminar a objetos de distintas clases. Las caractersticas usadas en este trabajo
fueron el
area del objeto en pxeles y los momentos invariantes de Hu.
Los momentos invariantes son aspectos que no cambian con las transformaciones de rotacion y traslaci
on. Se
definen como:
1
2
2
3
4

=
=
=
=
=

6
7

20 + 02
2
(20 + 02 )
2
2
(20 + 02 ) + 411
2
2
(30 + 312 ) + (321 03 )
2
2
(30 + 12 ) + (21 03 ) h

i
2
(30 + 312 ) (30 + 12 ) + (30 12 ) 3 (21 03 )
h
i ,
2
2
+ (321 03 ) (21 + 03 ) 3 (30 + 12 ) (21 + 03 )
i
h
2
2
= (20 + 02 ) (30 + 12 ) (21 03 )
+411 (30 + 12 ) (21 + 03 )
= (321 + 03 ) (30 12 )
h
i
2

(1)

+ (312 30 ) (21 + 03 ) 3 (30 + 12 ) (21 + 03 )

son conocidos como los momentos centrales que son una version centrada de los
donde los elementos pq = pq
r
00
denominados simplemente momentos y que se definen como:
X
pq =
up v q I[u, v]
(2)
[u,v]I

donde I corresponde a la imagen o regi


on y p + q corresponde al orden del momento.
La selecci
on de dichas caractersticas es intentar hacer robusto la deteccion de triangulos y en el caso del
area,
se busc
o aprovechar el hecho de que los elementos que no son triangulos regularmente suelen ser lneas u objetos
peque
nos.

4.

Entrenamiento del clasificador

Utilizando los elementos extraidos de la figura 2 calcularon los vectores prototipo como la media de los vectores
de caractersticas de los elementos que son triangulos y la media de los vectores de caractersticas que no lo son.
Se utilizaron diez ejemplos de tri
angulos y diez ejemplos de objetos que no lo eran para calcular los vectores
prototipos. Los vectores prototipos obtenidos son
votros = [7,0900e+01, 2,2388e01, 1,6340e01, 6,0400e03, 4,4220e03, 1,7100e04, 4,1859e031,2640e04]T ,
vtriangulos = [1,0877e+03, 4,0356e01, 1,3447e01, 2,5915e02, 1,6413e02, 5,1620e04, 6,9908e03, 3,3250e04]T ,

donde el primer elemento de cada vector corresponde al area del objeto y los elementos restantes son los momentos
invariantes de Hu.
El clasificador implementado fue el clasificador de mnima distancia euclidiana, el cual es una versi
on simplificada el clasificador bayesiano
optimo [2] asumiendo funciones de densidad de probabilidad con matriz de
covarianza diagonal y con elementos iguales para todas las clases.
En el clasificador de mnima distancia, dado un patron p, se asignara la clase del vector prototipo cuya distancia
euclidiana menor.

5.

B
usqueda de los v
ertices

Para poder identificar los vertices de un triangulo se hizo uso de varios elementos. Primero se calcul
o la caja
envolvente.
Dicho elemento corresponde al rect
angulo de menor tama
no que puede contener al objeto en cuesti
on. Dicha
caja se obtiene buscando las menores coordenadas x y y en los pxeles que conforman al objeto; as como los
m
aximos. Dichos valores son denominados como pmin = [pmin .x, pmin .y]T y pmax = [pmax .x, pmax .y]T .
Posteriormente se obtuvo el permetro del objeto, esta operacion permite obtener los pxeles que forman en
la frontera del objeto y se obtuvieron por medio de la funcion de erosion la cual permite eliminar los pxeles del
permetro. Obteniendo la diferencia entre el objeto original y su version erosionada se obtienen los elementos que
forman por la erosi
on.
Para identificar los vertices, se recorrieron los puntos pertenecientes al permetro y se identificaron dos de ellos
que se encontraran sobre las lneas que conforman la caja envolvente. Este procedimiento permitio encontrar dos
de los vertices. El restante se obtuvo mediante el calculo del area con signo como se describe a continuaci
on:
Dados los vertices v1 , v2 y un punto prueba p sobre el permetro. Se busco el punto p que maximizaba el
area
formada por los v1 , v2 y p. Esto se logr
o mediante el producto cruz de los vectores u = v2 v1 y v = p v1. El
producto cruz permite obtener el doble del area del triangulo; as el pxel sobre el permetro que permite obtener
un
area m
axima en conjunto con dos de los vertices del triangulo corresponde al vertice restante.

6.

Identificaci
on del
angulo recto

Para identificar al
angulo recto. Se considero el hecho de que en los modelos originales el angulo recto es el
ngulo de mayor apertura. Se tiene la hipotesis de que en las imagenes resultado de aplicar transformaciones
a
proyectivas a los modelos originales, el
angulo recto sigue siendo el de mayor apertura. Bajo esta hip
otesis y
haciendo uso de los vertices localizados. Se calculo el angulo entre vectores, uno para cada vertice. De esta
manera, se eligi
o como
angulo recto al
angulo de mayor apertura en el objeto.

7.

Resultados

Se aplic
o el programa implementado a las imagenes binarias de la figura ??.
Los resultados obtenidos se muestran en la figura ??, donde en rojo se muestran los vertices detectados, en
verde se muestra el vertice detectado como el correspondiente al angulo recto y en con lneas rojas se muestran
las cajas envolventes de cada tri
angulo.
4

8.

Conclusiones

Se logr
o identificar los tri
angulos de las imagenes de prueba, sus vertices y el angulo recto en la mayora de
los casos. En algunos casos algunos tri
angulos no fueron detectados. Esto se puede deber a que los tri
angulos
son aparecen muy peque
os en las im
agenes incluso mas peque
nos que algunos objetos del fondo. Por otra parte
algunos elementos que se sabe no son tri
angulos fueron detectados como si lo fueran. Esto no es un comportamiento
anormal pues los objetos con los que ocurrio esto efectivamente parecen triangulos. Para mejorar los resultados
de la clasificaci
on se podra probar con otras caractersticas; sin embargo el desempe
no actual es aceptable pues
de 24 tri
angulos en total, se detectaron correctamente 21. El metodo usado para la deteccion de vertices basado
en el
area es efectivo. De los tri
angulos detectados permitio obtener en todos los casos correctamente al tercer
vertice. En algunos casos los dos primeros pxeles no fueron detectados de manera exacta, esto se debe a que
por la discretizaci
on de los puntos en pxeles y por la b
usqueda sobre las caja envolvente, puede ocurrir que m
as
de un punto este sobre dicha caja lo que provoca que se tenga una aproximacion al vertice. Dicho problema se
puede resolver calculando los vertices a nivel de subpixel mediante el ajuste de las aristas. Finalmente respecto a la
detecci
on del
angulo recto, la hip
otesis de pensar que el angulo recto es aquel de mayor apertura, permiti
o obtener
solo un error para todos los tri
angulos detectados. Esto permite observar que la hipotesis no es valida debido a
los efectos de la proyecci
on; sin embargo permite obtener buenos resultados.

9.

C
odigo
Los programas, im
agenes y c
odigo generado estan disponibles para su descarga en el siguiente link:
http://computacion.cs.cinvestav.mx/~hcruz/RA/tarea2/Tarea2.tar.gz

Referencias
[1] Ming-Kuei Hu. Visual pattern recognition by moment invariants. Information Theory, IRE Transactions on,
8(2):179187, 1962.
[2] Copyright. In Sergios Theodoridis, Aggelos Pikrakis, Konstantinos Koutroumbas, and Dionisis Cavouras,
editors, Introduction to Pattern Recognition, pages iv . Academic Press, Boston, 2010.

También podría gustarte