You are on page 1of 7

RAIOM.

Introduccin a los algoritmos de visin por


computador
Alejandro Mitaritonna 1, Lucas Pandolfo 1, Dario Yokhdar 1, Carlos Esteves 1
1

Instituto de Investigaciones Cientficas y Tcnicas para la Defensa, Villa Martelli, Buenos


Aires, Argentina
{amitaritonna, lpandolfo, dyokhdar, cesteves}@citedef.gob.ar

Abstract. En particular este trabajo presenta una recopilacin actualizada de los


algoritmos que se han implementado, hasta el momento, en el proyecto denominado RAIOM (Realidad Aumentada para la Identificacin de Objetivos Militares) como parte de las pruebas de conceptos que se estuvieron realizando.
Nuestro objetivo fue evaluar las caractersticas principales de los mismos, los
comportamientos y la performance con el objetivo de incorporarlos en el framework de software.
Keywords: procesamiento de imgenes reconocimiento gestual identificacin de objetos odometra visual extraccin de caractersticas SLAM
FREAK - FAST

Introduccin

Como parte del proyecto RAIOM se han realizado diversas pruebas de concepto
integrando programacin hecha en java y libreras de visin artificial como OpenCV
1
y FastCV2. Estas pruebas nos permitieron evaluar diferentes algoritmos ejecutndose
sobre el sistema operativo Android versin 4.4.3. Se utiliz la plataforma de desarrollo NDK 3 para implementar dichos algoritmos en cdigo nativo C++. El propsito
principal es obtener una mejor performance y tiempo de respuesta de los algoritmos al
ejecutarse en dispositivos mviles. Se han realizado pruebas de implementacin y
adaptacin de algoritmos para lograr los siguientes objetivos:
Reconocimiento gestual
Identificacin de landmarks y objetos
Calculo de la posicin y orientacin (pose) del usuario

1
2

OpenCV. http://opencv.org/
FastCV. https://developer.qualcomm.com/mobile-development/add-advancedfeatures/computer-vision-fastcv
NDK: Native Development Kit. https://developer.android.com/tools/sdk/ndk/index.html

Reconocimiento Gestual

El framework posee un componente de entrada que le permite al usuario ingresar


datos a travs del reconocimiento gestual y vocal. Con gestos simples se le puede
indicar al dispositivo que se quiere ejecutar uno de varios comandos posibles. Al colocar la palma de la mano abierta frente a la cmara se presentan hasta un mximo de
5 opciones de mens (una por cada dedo de la mano). Para elegir una opcin basta
con flexionar el dedo en cuestin, pasando a otro men o ejecutando una accin especfica. Existen varios mtodos de reconocimiento gestual. Todos presentan un paso de
segmentacin, y la mayor parte de ellos utiliza segmentacin por color. La segmentacin por color consiste en buscar en la imagen todas las regiones que contienen colores parecidos a la piel. Luego de encontradas las regiones se analizan con tcnicas que
varan desde reconocimiento por forma hasta reconocimiento por clasificador de imgenes utilizando caractersticas o PCA (Principal Component Analysis). El problema
central de casi todos los algoritmos en esta rea es que estn pensados o desarrollados
para ser utilizados en ambientes controlados. Cuando se utilizan en ambientes exteriores y/o con movimientos bruscos de cmara los resultados son pobres.
Para el reconocimiento gestual se utiliza una tcnica de segmentacin adaptativa
por color. Esta tcnica requiere una calibracin inicial con una imagen de la mano en
cuestin. La calibracin extrae un clster de colores de la mano. El procedimiento
incluye una conversin de la imagen al espacio de color HSV. Mediante esta conversin se obtienen los rangos de HS que nos interesan para la mano, admitiendo cambios en V que permite que el reconocimiento sea medianamente robusto ante cambios
de brillo. Para realizar la segmentacin de la mano se aplica la misma transformacin
a HSV y se buscan los sectores de la imagen con el rango HS adecuado. Se extraen los
sectores candidatos (blobs) y se analiza la forma del contorno obtenido. Si se puede
considerar que el sector corresponde a una mano se sigue con el procedimiento utilizando un algoritmo de convex hull y convexity defects que sirve para detectar la regin de los dedos.
En una etapa posterior se tiene planeado pasar a reconocimiento por forma utilizando Template Matching mediante una variacin de contornos activos.

Identificacin de Landmarks y Objetos

El reconocimiento de objetos se lleva a cabo mediante tcnicas de emparejamiento


de caractersticas. Estas tcnicas consisten en extraer un conjunto de caractersticas de
una serie de imgenes de entrenamiento del objeto en cuestin. Cada conjunto de
caractersticas est asociada al objeto de cuya imagen fueron extradas. Una vez extradas todas las caractersticas se arma un modelo BoW (Bag of Words [10], [12]),
que es una tcnica de clasificacin de documentos aplicado a clasificacin de imgenes. Cada imagen es tratada como un documento, mientras que cada caracterstica
como una palabra. El conjunto de todas las caractersticas componen el vocabulario.
Con este vocabulario se arma un ndice invertido o un hash que permita la recuperacin de las imgenes a las que pertenece. Para realizar el reconocimiento se extraen

las caractersticas de la imagen en cuestin y se realiza la bsqueda en el ndice. La


tcnica entonces permite encontrar imgenes similares y adems clasificar imgenes
segn su parecido con otras. En la Fig. 1 se presenta, a modo ilustrativo, el modelo
utilizado. Las caractersticas (features o landmarks) son descripciones de vrtices,
esquinas o algn otro punto saliente de una imagen. En definitiva son una descripcin
de puntos particulares (puntos clave, keypoints o interest points) que pueden ser fcilmente distinguidos (estas descripciones en la prctica son vectores multidimensionales).

Fig. 1. Representacin del modelo Bag Of Words utilizado para clasificacin. (fuente: Evaluating Bag-ofVisual-Words Representations in Scene Classification, p. 2)

En general queremos que estas caractersticas sean reconocibles aun habiendo sufrido la imagen cambios en el punto de vista, rotaciones o cambios de iluminacin (es
decir, que sean invariantes ante tales cambios). Existen muchos algoritmos diferentes
tanto para bsqueda de puntos clave como para extraccin de caractersticas. Del lado
de la bsqueda de puntos clave se encuentran algoritmos como los detectores de esquinas de Harris y Shi-Tomasi, los detectores LoG (Laplacian of Gaussian), DoG
(Difference of Gaussians), DoH (Determinant of Hessian), FAST (Features from Accelerated Segment Test), PCBR (Principal Curvature-Based Region detector) o MSER
(Maximally Stable Extremal Regions) entre otros. Algunos de los algoritmos son ms
estables que otros ante cambios de brillo y orientacin, algunos son ms lentos que
otros, pero en definitiva ninguno es perfecto y el uso de cada uno depende en gran
parte de una eleccin personal y el compromiso que se pueda tomar entre velocidad y
precisin necesaria [11].

Por el lado de los descriptores de puntos clave se encuentran algoritmos como


SIFT, SURF, ORB, GLOH y LESH entre otros. Cada uno de los algoritmos realiza una
o varias operaciones en los puntos clave encontrados. SIFT [3] por ejemplo (el ms
popular y preciso, pero a la vez el ms lento y pesado) calcula histogramas orientados
en vecindades de 4x4 pixeles dentro de un parche de 16x16 pixeles en torno al punto
clave. En total calcula 16 histogramas con 8 posibles orientaciones cada uno, resultando en un vector de caractersticas de 128 elementos. Por otro lado, SURF utiliza
sumas de transformadas Wavelet Harr, resultando en un algoritmo mucho ms rpido.
En nuestro caso elegimos utilizar el detector FAST con el descriptor FREAK.
FAST [8] es ideal para aplicaciones de realidad aumentada en dispositivos mviles
gracias al escaso tiempo de procesamiento requerido. Es significativamente ms rpido que los detectores tradicionales como DoG o Harris. FREAK [7] es un descriptor
que intenta imitar el funcionamiento del ojo humano. Utiliza un patrn de muestreo
centrado en el punto clave que consiste en zonas circulares con un incremento en el
tamao y superposicin de las zonas a medida que se alejan del centro, similar a la
distribucin de clulas receptivas en el ojo: alta concentracin de conos (muy sensibles) en el centro y luego en disminucin hasta quedar solo bastones (menos sensibles). Esta forma de muestreo permite tener mejor resolucin en el centro (el punto de
inters) pero sin perder los detalles que lo rodean. Adicionalmente el algoritmo introduce una bsqueda rpida de correspondencia: bsqueda sacdica. Esta tcnica tambin intentando imitar la forma en la que funciona el ojo: el ojo no se queda generalmente fijo en un punto, si no que recorre la escena con movimientos rpidos (sacdicos). El algoritmo busca correspondencias primero comparando la parte del descriptor
correspondiente a la zona de menor resolucin, si esta zona presenta cierta similitud
dentro de mrgenes razonables el algoritmo contina la comparacin con los niveles
de mayor resolucin. Si la zona de menor resolucin no presenta parecido, pasa a otro
descriptor. De esta forma los descriptores sin correspondencias se descartan rpidamente. En contrapartida a todas las ventajas que presenta, FREAK tiene la desventaja
de no ser tan robusto ante cambios de escala para factores de 2.5 en adelante como lo
son otros descriptores como SIFT, SURF o BRIEF. En la Fig. 2 se muestra una prueba
de concepto implementada en un dispositivo mvil para la identificacin de objetos
utilizando los algoritmos antes mencionados (FAST + FREAK).

Fig. 2. Prueba de concepto para la identificacin de objetos implementado en el proyecto RAIOM

Odometra Visual y Mapeo Monocular

En robtica, la odometra visual consiste en estimar la posicin y orientacin de


un robot mediante el uso secuencia de imgenes [6]. Teniendo el conocimiento de la
pose de la cmara se puede realizar un mapeo de la zona recorrida. El algoritmo ms
utilizado para esta tarea es el conocido como SLAM (Monocular simultaneous localization and mapping) en sus dos variantes: Monocular (la versin clsica, utilizando
una sola cmara) o Binocular (que utiliza dos cmaras o un mapa de profundidad). La
tcnica predominante, hoy en da, es la Binocular o con mapa de profundidad. El tener
un mapa de profundidad facilita mucho las mediciones/estimaciones de posiciones
relativas haciendo que se puedan realizar mapeos ms exactos de forma ms sencilla a
expensas de un equipamiento ms especfico (pero no tan difcil de conseguir hoy en
da). El mapa de profundidad puede ser obtenido ya sea utilizando geometra epipolar
aplicada a las imgenes obtenidas de una cmara estereoscpica o bien puede ser
provisto directamente por la cmara, como es en el caso de las cmaras RGB-D (como Kinect de Microsoft o el Xtion de Asus). Sin embargo SLAM monocular tiene sus
ventajas, siendo la principal la aplicabilidad a secuencias de video tomadas con cmaras convencionales. Esto implica la posibilidad de aplicar la tcnica no slo de forma

on-line (en el momento), si no de forma off-line (con secuencias ya capturadas anteriormente).


El uso de odometra visual on-line en el framework permite mantener actualizada
la ubicacin y orientacin del usuario sin tener que depender de otros tipos de sensores (principalmente GPS y brjula digital). En una etapa ms avanzada del proyecto,
se espera que la odometra visual off-line pueda ser utilizada en el puesto de control
(centro de mando) para analizar secuencias de video obtenidas por los UAV's o de
misiones de reconocimiento terrestre, haciendo posible aplicar tcnicas de reconstruccin de escenas para su posterior uso estratgico. Por el momento el proyecto se centra en el uso on-line.
En su versin ms popular, FastSLAM, se utiliza un filtro de partculas donde cada
partcula representa un posible camino recorrido [5]. Cada partcula guarda el estado
de los N landmarks (los puntos de inters) con un estimador de posicin de cada uno.
Los pasos del algoritmo son:
1. Realizar una observacin.
2. Actualizar el filtro de partculas de los landmarks correspondientes a la observacin.
3. Asignar un peso a cada partcula.
4. Remuestrear las partculas segn su peso.
Los landmarks son los que se obtienen de los sensores (ya sean imgenes o datos
obtenidos de otros sensores). Para buscar landmarks se pueden utilizar algoritmos de
bsqueda de puntos de inters como el operador Shi Tomassi [9] o algn otro detector
repetible (en nuestro caso FAST). Una vez localizados los puntos de inters, se almacenan, ya sea slo sus caractersticas o un parche completo de la imagen como textura
[1].
Para mejorar los resultados lo ms comn es utilizar algn IMU (Inertial measurement unit) que ayuda a estimar el desplazamiento de la cmara [4] [2].

Conclusiones y trabajos futuros

El proyecto RAIOM es nuestra propuesta de framework que nos ayude a construir


sistemas de realidad aumentada. Despus de haber realizado varias pruebas de concepto pudimos comprender las limitaciones de los dispositivos mviles. Este tipo de
dispositivos nos forzaron a elegir algoritmos especficamente diseados como FAST y
versiones simplificadas de FastSLAM, que si bien dan buenos resultados, no son suficientemente precisos pero, en contrapartida, son relativamente rpidos para calcular.
Adicionalmente, para mejorar el rendimiento, estamos analizando la posibilidad de
implementar en las partes ms intensivas de clculo de los algoritmos, el uso del GPU
para liberar un poco la carga del CPU y lograr un renderizado ms fluido. Por ltimo
tambin consideramos la posibilidad de reescribir porciones del cdigo que en su
mayor parte utiliza OpenCV (que si bien es especial para este tipo de aplicaciones, no
est completamente optimizado para mviles) utilizando FastCV que es una biblioteca de algoritmos grficos altamente optimizada para estos dispositivos.

Referencias
1. Davison, A., Reid, I., Molton, N., Stasse, O.: Monoslam: Real-time single camera slam.
Pattern Analysis and Machine Intelligence, IEEE Transactions on 29(6), 1052-1067 (June
2007)
2. Kneip, L., Chli, M., Siegwart, R.: Robust real-time visual odometry using a single camera
and an IMU. In: Proceedings of the British Machine Vision Conference (BMVC) (2011)
3. Lowe, D.: Object recognition from local scale-invariant features. In: Computer Vision,
1999. The Proceedings of the Seventh IEEE International Conference on. vol. 2, pp. 11501157 vol.2 (1999)
4. Maimone, M., Cheng, Y., Matthies, L.: Two years of visual odometry on the mars exploration rovers. Journal of Field Robotics, Special Issue on Space Robotics 24, 2007 (2007)
5. Montemerlo, M., Thrun, S.: Simultaneous localization and mapping with unknown data
association using fastslam. pp. 1985-1991 (2003)
6. Munguia, R., Grau, A.: Monocular slam for visual odometry. In: Intelligent Signal Processing, 2007. WISP 2007. IEEE International Symposium on. pp. 1-6 (Oct 2007)
7. Ortiz, R.: Freak: Fast retina keypoint. In: Proceedings of the 2012 IEEE Conference on
Computer Vision and Pattern Recognition (CVPR). pp. 510-517. CVPR '12, IEEE Computer
Society,
Washington,
DC,
USA
(2012),
http://dl.acm.org/citation.cfm?id=2354409.2354903
8. Rosten, E., Porter, R., Drummond, T.: Faster and better: A machine learning approach to
corner detection. Pattern Analysis and Machine Intelligence, IEEE Transactions on 32(1),
105-119 (Jan 2010)
9. Shi, J., Tomasi, C.: Good features to track. In: Computer Vision and Pattern Recognition,
1994. Proceedings CVPR '94, 1994 IEEE Computer Society Conference on. pp. 593-600
(Jun 1994)
10. Sivic, J., Russell, B.C., Efros, A.A., Zisserman, A., Freeman, W.T.: Discovering object
categories in image collections. In: IN: PROCEEDINGS OF THE TENTH
INTERNATIONAL CONFERENCE ON COMPUTER VISION (2005)
11. Tuytelaars, T., Mikolajczyk, K.: Local invariant feature detectors: A survey. Found.
Trends.
Comput.
Graph.
Vis.
3(3),
177-280
(Jul
2008),
http://dx.doi.org/10.1561/0600000017
12. Yang, Jun and Jiang, Yu-Gang and Hauptmann, Alexander G. and Ngo, Chong-Wah.
Evaluating Bag-of-visual-words Representations in Scene Classification. Proceedings of
the International Workshop on Workshop on Multimedia Information Retrieval (2007)

You might also like