Artículos de Investigación

Estimación de la Distancia a un Objeto con Visión Computacional

Object Distance Estimation with Computational Vision

J. B. Magaña Z.
Instituto Tecnológico Superior de Motul, México
J. R. Atoche E.
Instituto Tecnológico de Mérida, México
J. C. Molina C.
Universidad Politécnica de Yucatán, México
M. Blanco V.
Instituto Tecnológico de Mérida, México
E. Pérez C.
Instituto Tecnológico de Mérida, México

Estimación de la Distancia a un Objeto con Visión Computacional

Ingeniería, vol. 21, núm. 2, pp. 31-40, 2017

Universidad Autónoma de Yucatán

Recepción: 30 Junio 2017

Aprobación: 19 Septiembre 2017

Resumen: En robots manipuladores, poder determinar la distancia exacta donde se encuentra el objeto a manipular, es una tarea de vital importancia. El presente artículo propone un nuevo algoritmo capaz de estimar la distancia de un robot manipulador a un objeto a manipular, utilizando una sola cámara. Se presentan los aspectos matemáticos utilizados para determinar el algoritmo, la descripción del experimento utilizado y las pruebas realizadas al algoritmo con 4 objetos de uso cotidiano. Para las pruebas se utilizó la imagen de cada uno de los objetos tomadas a 40.5cm como referencia y se emparejaron con las 26 imágenes de los mismos objetos tomadas a diferentes distancias en un entorno controlado. Los resultados muestran que el algoritmo propuesto puede ser utilizado para estimar la distancia de los cuatro objetos, logrando la estimación de la distancia en el 96.1% de las imágenes procesadas. Se concluye que es posible utilizar una sola cámara para estimar la distancia a un objeto con un error promedio de 0.99% y una desviación estándar de 0.1% de la distancia.

Palabras clave: visión computacional, algoritmo SURF, estimación de distancia.

Abstract: In manipulator robots, a vitally important task is to determine the exact distance of the object to be manipulated. The present article proposes a new algorithm, which is capable of estimating the distance from a manipulator robot to an object to be manipulated by means of a single camera. The concepts presented here are: the mathematical aspects used to determine the algorithm, the description of the experiment used and the tests carried out to the algorithm with 4 everyday objects. For the tests, we used the image of each of the objects taken at 40.5cm as a reference; and these images were paired to the 26 images of the same objects taken at different distances in a controlled environment. The results show that the proposed algorithm can be used to estimate the distance of the four objects, obtaining the distance estimation in a 96.1% precision of the processed images. As a conclusion, it is possible to use a single camera to estimate the distance to an object with an average error of 0.99% and a standard deviation of 0.1% of the distance.

Keywords: computational vision, SURF algorithm, distance estimation.

1. Introducción

Un parámetro vital para robot manipuladores autónomos es estimar la posición del objeto a manipular a través de coordenadas cartesianas o cilíndricas, con la cual se conoce la distancia a la que se encuentra el objeto. Dicho problema es conocido como estimación de la pose de la cámara y cuyas soluciones se basan en la correspondencia entre puntos del espacio 3D y su proyección 2D en una imagen. Está opción es interesante debido a su bajo coste, sin embargo, tiene como inconveniente fundamental su precisión que puede verse afectada debido a la presencia de ruido en la imagen (Mondéjar, 2016). El presente trabajo desarrolla un algoritmo capaz de estimar la distancia de una cámara a un objeto apoyado de un algoritmo capaz de detectar puntos característicos invariantes en imágenes.

1.1. Algoritmos de detección de puntos característicos en imágenes

Los algoritmos SIF, SURF, ORB entre otros, son capaces de detectar puntos característicos en imágenes, dichos puntos se emparejan con otras imágenes dando como resultado la detección de la primera imagen en la segunda (Lee, Ahn, Cho, & Lee, 2015). Estos algoritmos presentan un alto grado de confiabilidad al utilizarlos para detectar objetos (Reza & Farshad, 2012) (Hu, Wu, & Song, 2012) (Minglei & Shudong, 2014). El presente trabajo utiliza el algoritmo SURF ya que presenta mayor robustez al momento de generar puntos característicos y por consiguiente detectar el objeto (Romero Cortijo & Cazorla Quevedo, 2009 ) (García Barquero, Sánchez González, Luna Serrano, & Gómez Aguilera, 2012) (Bauer, Sünderhauf, & Protzel, 2007).

El algoritmo surf fue desarrollado por Herbert Bay en el año 2006, basado en el algoritmo SIFT pero más robusto y libre de patentes (Bay, Ess, Tuytelaars, & Gool, 2008). El algoritmo surf hace réplicas de la imagen para buscar puntos que estén en todas las réplicas asegurando la invariancia de escala. Utiliza determinantes Hessianas para la detección de los puntos de interés localizando a la vez su posición y su escala; utiliza filtros tipo caja para aproximar las derivadas parciales de segundo orden del filtro de Gauss y ser evaluadas de forma mucho más rápida usando imágenes integrales. Dicho algoritmo proporciona puntos característicos de una imagen, las cuales se pueden emparejar con puntos clave de otra imagen y cuyo resultado serán los puntos que corresponden en ambas imágenes (Magaña, Atoche, & Canche, 2015).

Las etapas del algoritmo SURF son: generación de imagen integral para realizar cálculos rápidos; creación del espacio-escala utilizando aproximaciones a la segunda derivada de la Gaussiana; localización de puntos clave; asignación de orientación (Andrade Moreira, 2015)

1.2. Estimación de la distancia de objetos con una simple cámara.

Actualmente existen técnicas de posicionamiento de sistemas robóticos con visión artificial, los cuales incluyen el uso de marcas de referencias fijadas a tierra, modelos de objetos, mapas, construcción de mapas basado en las características observadas (Gamero, 2007). Se ha logrado integrar brazos robóticos con sistemas de visión por computadora en tareas no repetitivas, así como en robots humanoides (Zavala, Hernández, & Freyre, 2012) (González, y otros, 2001) (Hernandéz, 2001) (Prietoa, Febresa, Cerrolazaa, & Miquelarenab, 2010).

Actualmente se han desarrollado algoritmos capaces de estimar la distancia de la cámara a un objeto relacionando el área de una imagen patrón (cuya distancia de captura de la cámara es conocida) con el área del objeto detectado (Akhlaq, Izhar, & Shahbaz, 2014) (Liaquat & Khan, 2015). El presente trabajo propone determinar la distancia del objeto a la cámara, tomando como referencia dos pixeles característicos que sean correspondientes en cada imagen y calcular la distancia euclidiana entre los puntos.

La distancia euclidiana se define como la distancia existente entre dos píxeles etiquetados como de acuerdo a:

(1)

Sabiendo que las distancias calculadas de ambas imágenes son similares porque son puntos clave del objeto a detectar en ambas imágenes, se puede estimar la distancia de la cámara relacionando ambas distancias euclidianas.

Por otra parte, el tamaño de una imagen está en función de la distancia focal de la cámara. Un objetivo de distancia focal corta produce una imagen más próxima, y más pequeña que uno de mayor distancia focal. El tamaño de la imagen está en función de la distancia focal (Luis, 2008). Por lo tanto, el tamaño del objeto en la imagen disminuye cuando se aleja de la cámara.

2. Desarrollo

2.1. Materiales

Para las pruebas experimentales realizadas, se utilizaron 4 objetos de uso cotidiano mostrados en la Figura 1, una cámara LG-P708g de 8.0M, 3264X2448 píxeles con una resolución de 72ppp.

Objetos utilizados a) Tijera (objeto 1), b) Llave (objeto 2), c) Desarmador (objeto 3), d) USB (objeto 4)
Figura 1
Objetos utilizados a) Tijera (objeto 1), b) Llave (objeto 2), c) Desarmador (objeto 3), d) USB (objeto 4)

Para el experimento se utilizó una estructura con una altura de 1metro, con una base móvil para la cámara. La Figura 2 muestra la estructura utilizada para el experimento, la altura máxima que alcanza la cámara es de 80.5cm y la base para el objeto prueba fue de color blanco y el objeto prueba siempre se ubicó en el centro de la estructura. La iluminación se realizó con dos lámparas fluorescentes ubicadas a los lados de la estructura.

Se utilizó el algoritmo SURF de la librería OpenCV y el software Python para determinar los descriptores de cada imagen que posteriormente se emparejaran con una imagen de referencia y lograr la detección del objeto de prueba.

2.2. Métodos

Los pasos que se siguieron para estimar la distancia del objeto a la cámara son:

  1. 1. Captura de fotos de los objetos de prueba a diferentes distancias.
  2. 2. Determinación de las imágenes de referencia para la detección de cada objeto de prueba.
  3. 3. Estimación de la distancia de los objetos de prueba.

2.2.1. Captura de fotos y determinación de las Iref para cada objeto de prueba

La captura de las fotos se realizó de manera vertical a la cámara y se tomaron 26 fotos por cada objeto de prueba a diferentes distancias de la cámara. Cada captura fue realizada a 2.5cm de diferencia una de otra, iniciando a una distancia de 18.0cm y hasta una altura de 80.5cm.

Estructura para la captura de imágenes
Figura 2
Estructura para la captura de imágenes

Para determinar que imagen de referencia se utilizaría para la detección de cada objeto de prueba, se determinaron los vectores descriptores de cada imagen de los objetos y se emparejaron con los vectores descriptores de las imagenes capturadas a una distancia de 18.0cm, 40.5cm y 80.0cm del mismo objeto a analizar. La Figura 3 muestra los resultados de los emparejamientos de las 26 imagenes de cada objeto , con las imagenes capturadas a una distancia de 18.0cm, 40.5cm y 80.0cm del mismo objeto. Se observa que la mejor imagen a utilizar como , es la capturada a la mitad de la distancia máxima para la detección del objeto, esto aumenta la probabilidad de realizar el cálculo de la distancia del objeto a la cámara ya que al alejarnos o acercarnos de la distancia a la que se tomó la imagen de referencia, el número de puntos característicos encontrados por SURF disminuye.

2.2.2. Estimación de la distancia del objeto en la Ient a la cámara.

En la Figura 4 se puede observar el esquema de la estructura utilizada y la ejemplificación de cómo se realizaron las capturas de las y las , las distancias euclidianas de los pares de puntos característicos (kp) de las y las .

Considerando dos imágenes, una y una , y utilizando el algoritmo SURF se obtiene el conjunto de todos los puntos característicos emparejados de la , y la imagen del entorno .

Sea

(2)

(3)

Para , donde es el número total de puntos característicos emparejados .

De los conjuntos de y formamos todas las combinaciones posibles de tomados de dos en dos para cada conjunto. Formándose dos nuevos conjuntos, con un total de pares correspondientes.

Emparejamiento de las Iref con las Ient , a) objeto 1, b) objeto 2, c) objeto 3, d) objeto 4
Figura 3
Emparejamiento de las Iref con las Ient , a) objeto 1, b) objeto 2, c) objeto 3, d) objeto 4

(4)

Para cada combinación formada se calcula la distancia euclidiana, en la Figura 5 se observa a modo de ejemplo, una combinación de dos kp en la , y su respectivo par en la .

Donde es la distancia euclidiana del par de kp de la es la distancia euclidiana del par de kp de la . Por lo que, los conjuntos de todas las distancias euclidianas calculadas en ambas imágenes son:

(5)

(6)

En la Figura 4 se observa que donde:

dlref = Distancia euclidiana de los puntos característicos de la imagen de referencia.

dlent = Distancia euclidiana de los puntos característicos de la imagen del entorno.

dref = Distancia física de la cámara al objeto de prueba para la imagen de referencia.

decat = Distancia física calculada, de la cámara al objeto de prueba para la imagen del entorno.

Representación de la captura de: a) Iref    y b) Ient
Figura 4
Representación de la captura de: a) Iref y b) Ient

Par de puntos emparejados de la Iref y Ient .
Figura 5
Par de puntos emparejados de la Iref y Ient .

El valor de la pueden ser conocidas con la ecuación (1) y es conocida al realizar la captura de la . Para la dcal se calcula utilizando:

(7)

Con el conjunto de distancias se calcula la mediana cuyo valor será la distancia estimada del objeto.

(8)

3. Resultados

Para la estimación de la distancia de los objetos de prueba a la cámara se realizó el emparejamiento de 26 imágenes tomadas de manera vertical a 2.5cm de diferencia una de otra. Se utilizó como la imagen capturada a una distancia de 40.5cm de cada objeto de prueba. La Tabla I muestran los , el error en centímetros , la distancia estimada con la ec. (8) y la distancia física de la cámara al objeto .

En la Tabla 1, se puede observar que con el objeto uno se logró la estimación de la distancia con un error de máximo de +1.42cm y mínimo de -0.43cm, sin embargo, solo el 11.53% de las imágenes tomadas obtuvieron valores superiores a 1cm, siendo estas de las más alejadas de la

El objeto 2 muestra un error máximo de +1.78cm y mínimo de -0.40cm. Solo el 15.38% de las 26 imágenes se obtuvo un error superior a 1cm, siendo las imágenes más alejadas de la

De igual manera el objeto 3 muestra un error máximo de +0.97cm y mínimo de -0.72cm, solo en una imagen se obtuvo -0.72 y en una imagen +0.97cm siendo estas las más alejadas de la

En el objeto 4, no se logró el emparejamiento de la con la capturada a 60.5, 63, 70.5 y 75.5cm, también se observó que en las imágenes capturadas a 65.5, 68 y 73cm presentaron un error muy elevado en la estimación de la distancia, esto debido a que solo se detectaron entre 3 y 2 kp, y no se realizó el emparejamiento de los kp de manera adecuada (Figura 6). Si dichas imágenes no se consideran para el objeto 4, se tendría un error máximo de +1.62cm y uno mínimo de -0.46cm.

Considerando el error relativo absoluto en promedio y omitiendo las imágenes del objeto 4 que no se emparejaron adecuadamente, el algoritmo presenta un error del 1.0% con una desviación estándar del 1.18%.

4. Conclusiones

Para la muestra de 26 imágenes tomadas de manera vertical con 2.5cm de diferencia entre ellas, se logró implementar el algoritmo SURF para estimar la distancia de los objetos en el 96.1% de las imágenes. Con el objeto uno se obtuvo un error relativo promedio de 0.95%, en el objeto dos un error relativo promedio de 0.80%, el objeto tres alcanzó un error relativo promedio de 0.96% y el objeto cuatro un error relativo promedio de 1.28% (omitiendo las imágenes que no se emparejaron adecuadamente). Con base a los errores obtenidos se tiene un error promedio de 1.00% y una desviación estándar de 1.18%. Con lo que se puede concluir que es posible utilizar el algoritmo SURF para aplicaciones robóticas en la detección de objetos y la estimación de la distancia del objeto al robot utilizando una sola cámara, con la cual se favorecerá en el costo de la construcción del robot, mayor simpleza de instalación de equipos, menor probabilidad de error por variables externas que perturben a las imágenes capturadas entre otros beneficios.

Se propone para trabajos futuros realizar pruebas en un ambiente fuera del laboratorio, así como encontrar el vector de posición aproximado del objeto en el espacio tridimensional, mejorar el algoritmo para disminuir el error del cálculo de la distancia y disminuir los falsos positivos al detectar la imagen utilizando estadística.

Tabla 1
Distancia estimada de los objetos a la cámara en las 26 lent
Objeto 1Objeto 2Objeto 3Objeto 4
182217.57-0.431217.74-0.26517.28-0.72417.54-0.46
20.52520.29-0.211320.44-0.061320.17-0.33320.32-0.18
231822.75-0.251322.60-0.401022.47-0.53822.69-0.31
25.52325.49-0.011325.47-0.031425.23-0.27825.34-0.16
282827.78-0.222528.000.001927.57-0.431127.71-0.29
30.53030.38-0.121830.39-0.111730.29-0.211330.600.10
332532.83-0.171632.99-0.012032.64-0.36932.69-0.31
35.52535.680.181335.770.271335.29-0.211935.680.18
382537.94-0.062638.130.132537.76-0.243237.90-0.10
40.519140.500.0024740.500.0031440.500.0017940.500.00
434043.450.452942.98-0.023043.000.001543.210.21
45.52345.870.371345.820.321946.050.55445.780.28
482148.610.611048.510.512148.010.01347.77-0.23
50.51551.150.651350.690.191350.930.43351.290.79
531953.620.621753.410.411053.300.30552.90-0.10
55.51856.330.831655.920.421156.120.62355.45-0.05
581158.410.411358.170.17758.590.59259.151.15
60.51260.550.051061.340.84361.030.53N/D60.500.00
631863.700.70964.081.08963.440.44N/D63.000.00
65.51566.390.89565.19-0.31866.200.703123.2057.70
681268.830.83768.580.58568.650.65357.28-10.72
70.51271.641.14971.591.09770.740.24N/D70.500.00
731574.041.041173.420.421273.290.29233.10-39.90
75.51176.921.42576.981.48575.680.18N/D75.500.00
781178.630.63778.650.651278.700.70279.621.62
80.51280.900.40982.281.78881.470.97481.631.13

Iref a la derecha y la  Ient a la izquierda capturadas a: a)65.5cm, b) 68cm, c) 73cm
Figura 6
Iref a la derecha y la Ient a la izquierda capturadas a: a)65.5cm, b) 68cm, c) 73cm

Agradecimientos

Agradecemos el apoyo otorgado por el TecNM al proyecto con clave 471.17-PD titulado “Sistemas de Visión por Computadora para el Control de un Robot Móvil con Sistema de Manipulación” el cual fue beneficiado en la convocatoria de “Apoyo a la Investigación Científica y Tecnológica 2017”.

REFERENCIAS

Akhlaq, M. U., Izhar, U., & Shahbaz, U. (2014). Depth estimation from a single camera image using power fit. In Robotics and Emerging Allied Technologies in Engineering (iCREATE), 2014 International Conference on. IEE, 221-227.

Andrade Moreira, G. A. (2015). Correspondencia multiespectral en el espacio de Hough. GUAYAQUIL – ECUADOR.

Bauer, J., Sünderhauf, N., & Protzel, P. (2007). Comparing several implementations of two recently published feature detectors. In Proc. of the International Conference on Intelligent and Autonomous Systems.

Bay, H., Ess, A., Tuytelaars, T., & Gool, L. V. (2008). SURF: Speeded Up Robust Features. Computer Visión and Image Understanding (CVIU), 110(3), 346-359.

Gamero, M. (2007). Posicionamiento de Robots Basados en Visión. Universidad, Ciencia y Tecnologia,, 11(43), 98-101.

García Barquero, I., Sánchez González, P., Luna Serrano, M., & Gómez Aguilera, E. J. (2012). Comparación de algoritmos detectores de puntos singulares para reconocimiento de objetos en vídeo quirúrgico.

González, G., E. J., Cruz, R., Sergio, R., Durán, G., & Héctor, M. (2001). Aplicación de sensores múltiples para el posicionamiento tridimensional de robots usando visión. Interciencia, 11(26), 541-546.

Hernandéz, E. R. (2001). Desarrollo de un Sistema de Visión para la Localización y Navegación de Robots Humanoides. México.

Hu, S., Wu, N., & Song, H. (2012). Object Tracking Method Based on SURF. Conference on Modelling, Identification and Control, 351-356.

Lee, Y. H., Ahn, H., Cho, H. J., & Lee, J. H. (2015). Object Recognition and Tracking based on Object Feature Extracting., 5(3), 48-57. Journal of Internet Services and Information Security (JISIS), 5(3), 48-57.

Liaquat, S., & Khan, U. S. (2015). Object detection and depth estimation of real world objects using single camera. 2015 Fourth International Conference on (págs. 1-4). IEEE.

Luis, M. A. (2008). Introducción a la Fotografia Científica. Recuperado el 20 de Septiembre de 2016, de http://foto.difo.uah.es/curso/objetivo_e_imagenes.html

Magaña, J., Atoche, J., & Canche, R. (2015). Pruebas del algoritmo surf para la elección de imágenes de referencia. Revista Electrónica de Divulgación de la Investigación, 10.

Minglei, T., & Shudong, C. (Octubre de 2014). Efficient Surf Tracking by Nearest Neighbor Classifier. JOURNAL OF COMPUTERS,, 9(10), 2449-2454.

Mondéjar, G. V. (31 de mayo de 2016). Contribuciones a la estimaciónn de pose de cámara. Córdoba.

Prietoa, C. E., Febresa, J. E., Cerrolazaa, M., & Miquelarenab, R. (2010). Sistema de Visión Artificial para el Control de Movimiento de un Asistente Robótico Médico. Mecánica Computacional, 29, 6619-6629.

Reza, O., & Farshad, T. (septiembre de 2012). Full Object Boundary Detection By Applying Scale Invariant Features In A Region Merging Segmentation Algorithm. International Journal of Artificial Intelligence & Applications (IJAIA), 3(5), 41-50.

Romero Cortijo, A. M., & Cazorla Quevedo, M. Á. (2009 ). Comparativa de detectores de características visuales y su aplicación al SLAM. X WORKSHOP DE AGENTES FÍSICOS, 55-62.

Zavala, J. G., Hernández, J. A., & Freyre, J. P. (Octubre de 2012). Implementación de un sistema de visión para control de un brazo robótico. Actas de la II Conferencia de Desarrollo Profesional en Ingeniería Mecatrónica 2012. México. Recuperado el 30 de Noviembre de 2015, de http://pistaseducativas.itc.mx/wp-content/uploads/2012/10/7-ZAVALA-PE-99-87-101.pdf

Notas de autor

Nota: Este artículo de investigación es parte de Ingeniería–Revista Académica de la Facultad de Ingeniería, Universidad Autónoma de Yucatán, Vol. 21, No. 2, 2017, ISSN: 2448-8364.

jorge.magana@itsmotul.edu.mx

Información adicional

COMO CITAR: Jorge B. Magaña Z., José R. Atoche E., Julio C. Molina C., Magnolia Blanco V., Eunice Pérez C. (2017). Estimación de la Distancia a un Objeto con Visión Computacional. Ingeniería, Revista Académica de la FI-UADY, 21-2, pp. 31-40, ISSN 2448-8364.

HTML generado a partir de XML-JATS4R por