Está en la página 1de 3

Visin Artificial Usando Kinect y OpenCV

Ing. Cesar Diaz


Ing. Cesar Romero
El dispositivo utilizado para la captura de imgenes RGB y las imgenes de
profundidad es el sensor Kinect de Microsoft, este consta de una cmara RGB, la cual posee
un ngulo mayor de vista en comparacin con el sensor de profundidad, cuenta con un
emisor de infrarrojos el cual proyecta un patrn irregular de ases infrarrojos con una
intensidad variable. El sensor de profundidad reconstruye una imagen de profundidad a partir
de la distorsin del patrn.
Una de las finalidades de la visin artificial es el reconocimiento de objetos, ya sea por
medio de patrones o identificacin de figuras y formas. En esta charla se presentan los
resultados del estudio de la visin artificial aplicada para el reconocimiento de objetos por su
color (canales primarios), la situacin estudiada consiste en un objeto de color definido en un
entorno parcialmente controlado (fondo de otro color uniforme), gracias a esto no se
requerir de la segmentacin (detectar distintos objetos del mismo color).
Para la comunicacin con el sensor Kinect, el procesamiento de las imgenes, el
control de los motores y el desarrollo de la aplicacin se utiliz el siguiente software y
libreras: gcc, Libfreenect, OpenCV, LnxComm ,CodeBlocks y Ubuntu 10.04.
Para el control de la navegacin del robot mvil se desarrollaron tres bloques con
funciones definidas las cuales son: adquisicin de la imagen de la escena utilizando el sensor
kinect, procesamiento de la imagen en procesador IA-32, comunicacin procesador IA-32 y
control del robot mvil, el prototipo usado es el que se observa en la FIG. 1 y el diagrama de
bloques de la aplicacin y del prototipo final en la FIG. 2.
Para el procesamiento de las imgenes obtenidas por el sensor Kinect se us la
librera OpenCV descrita en [2] para lo cual se desarrollaron seis funciones en lenguaje gcc
las instrucciones usadas se estudian en [1], [4] y las desarrolladas en el proyecto son:
procesarBGR
Esta funcin recibe una estructura bsica de OpenCV (IplImage) la cual contiene la
informacin capturada por el sensor; a la cual se le aplica un filtro gaussiano de 9x9 para
eliminar el ruido de la escena, este se detalla en [3], con base en esta estructura ya filtrada
se identifica un objeto de color especifico (rojo), para ello se recorren todos los pixeles que
forman la imagen, identificando los que pertenecen al objeto, esto se logra verificando el
canal (rojo) que es donde deben estar los niveles ms altos, para el caso de los otros
canales (verde y azul) se verifica que los niveles no sean ms altos que los del canal de
estudio (rojo), ya que si son muy cercanos al canal (rojo) estos valores podran corresponder
a otro color (ejemplo: morado o naranja).
Al verificar los pixeles validos se realiza un conteo para obtener el rea en pixeles,
tambin se realiza la sumatoria de las coordenadas (x,y) para obtener el centroide del objeto
y con base en este se calcula el radio, para obtener el contorno del objeto en anlisis.
DEPTH
Es la funcin original del driver de Libfreenect (vase: http://openkinect.org), la cual no
se modific.

procesarD
DEPTH
En esta
e
funcin
n se analiza
a la imagen
n de profun
ndidad que captura el Kinect, los pixeles
que se ten
ndrn en cu
uenta son los seleccionados en
n la funcin
n procesarB
BGR y los que se
encuentran
n en el rang
go de dista
ancia entre 40 y 100 centmetros, en esta misma fun
ncin se
acumula el valor de distancia
d
de
d cada pix
xel analizad
do, para lu
uego calcula
ar el promedio de
distancia segn
d
s
la im
magen de profundidad
p
d, tambin se calcula
a la distanccia tomando como
punto base
e el centro inferior
i
de la
l imagen con
c respectto al centro
oide del objjeto, luego de esto
sse calcula el
e rea del circulo utilizando la fu
uncin longiitud_radio.
La funcin
f
tien
ne impleme
entado dos
s modos q
que son: m
modo Kinecct y modo PDI, el
primero tra
abaja con los
l
datos que
q
se gen
neran con base a la imagen de
e profundid
dad y el
ssegundo co
on base al procesamie
ento digital de la imag en.

FIG. 1. PROTOT
TIPO ROBOT TERMINADO
O
Fuente: Au
utores del prroyecto

MA DE BLOQ
QUES DE LA
A
FIG. 2. DIAGRAM
APL
LICACIN Y D
DEL PROTOTIPO FINAL
Fuente: Au
utores del pro
oyecto

angulokine
ect
Esta
a funcin re
ecibe dos parmetros
s, el primero es la orrientacin del Kinect (arriba,
abajo, nivelar) y el otro el ngulo
o anterior en
n el que se encontraba
a el sensorr.
movimientto_motores
La fu
uncin recib
be como pa
armetro la
a direccin d
de movimie
ento de los motores (a
adelante
(i), atrs (k
k), derecha (l), izquierd
da (j), pararr (p)), el sig
guiente passo es abrir e
el puerto se
erie con
la configura
acin del mismo
m
para la transmis
sin de la orden a ejeccutar en el P
Pic.
radio
En esta
e
funcin
n se recorrre el objeto
o partiendo del centro
oide hacia ssus extremos para
o
obtener el dimetro de la circunfferencia, luego se hacce la diferencia y se d
divide para obtener
el radio.

TRABAJOS FUTUROS
Como trabajos futuros esta la implementacin de todo el procesamiento de imgenes
en un procesador ARM, como el que dispone la BeagleBoard XM o la PandaBoard, esto con
el fin de disear un prototipo de navegacin embebido y reducir los costos asociados al
hardware usado para el procesamiento.
Tambin la implementacin de soluciones de navegacin con visin artificial en
vehculos areos no tripulados UAV.
CONCLUSIONES
Una vez presentado los anteriores resultados se concluye que no es completamente eficiente
la navegacin del robot mvil usando solo visin estreo ya que las condiciones del entorno
(luminosidad, caractersticas de color del objeto, entre otros) hacen que el algoritmo de
navegacin deba ser ajustado permanentemente y es por esto que se decide implementar la
navegacin usando procesamiento digital de imgenes (modo PDI del carro) y dejar la
navegacin estreo como otra alternativa de navegacin, de igual forma la visin estreo es
una excelente herramienta para el clculo de la distancia al objeto y como complemento a la
navegacin.
El uso del kinect como sensor de visin estreo en el presente trabajo de investigacin
fue una herramienta de muy buenas caractersticas ya que nos entrega un mapa de la
imagen en profundidad o mapa distancia fcil de usar y aplicar al objetivo del proyecto el
cual fue la navegacin estreo olvidando los problemas tpicos o propios de la visin estero
como son la alineacin y sincronizacin de dos cmaras RGB independientes.
REFERENCIAS
[1] A. Grifith, The complete reference GCC, Ed. McGraw-Hill, 2002.
[2] G. Bradsky, A. Kaeblar, Learning OpenCV computer vision with the OpenCV library, Ed.
United States of Amrica, OReilly Books, 2008.
[3] J. Sobrino, Teledeteccin, Ed. Guada Impresores S.L., 2000, pp. 249.
[4] W. Hagen, The definitive guide to GCC, Ed. United States of Amrica, Apress, 2006.

También podría gustarte