localizaciÓn de objetos especÍficos en un ambiente …

45
LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE CONTROLADO AUTORA: María Camila Millán Toro DIRECTOR: Carlos Andrés Wilches PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA DEPARTAMENTO DE ELECTRÓNICA BOGOTÁ D.C. NOVIEMBRE 2018

Upload: others

Post on 21-Jul-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE CONTROLADO

AUTORA:

María Camila Millán Toro

DIRECTOR:

Carlos Andrés Wilches

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE ELECTRÓNICA

BOGOTÁ D.C. NOVIEMBRE 2018

Page 2: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

CONTENIDO

1. INTRODUCCIÓN 1

2. MARCO TEÓRICO 2

2.1 Elementos básicos de una imagen/vídeo digital 2

2.1.1 Píxel 2

2.1.2 Relación de aspecto 2

2.1.3 Resolución de la imagen 2

2.1.4 Campo de visión (FOV) 2

2.1.5 Resolución de vídeo 2

2.1.6 Fotogramas por segundo (FPS) 2

2.2 Distorsión en una imagen 2

2.2.1 Distorsión de perspectiva 2

2.2.2 Distorsión de lente o esférica/óptica 3

2.3 Cámara digital 3

2.3.1 Cámara GoPro 3

2.3.2 Calibración de la cámara 3

2.4 Estimación de distancia o profundidad 5

2.4.1 Similitud de triángulos 5

2.4.2 Modelo de regresión lineal 6

2.5 Generalidades de sistemas de reconocimiento y seguimiento de objetos 6

2.5.1 Terminología sistemas de reconocimiento y seguimiento de objetos 6

2.5.2 Algoritmos de detección y clasificación 7

2.5.3 Algoritmos de seguimiento en vídeo y/o en imagen (Video Tracking) 11

2.6 Medidas de evaluación 11

2.6.1 Error absoluto 11

2.6.2 Error relativo 11

2.6.3 Intersección sobre la Unión (IoU) 11

3. OBJETIVOS 13

3.1 Objetivo general 13

3.2 Objetivos específicos 13

3.3 Especificaciones 13

3.3.1 Especificaciones de la cámara GoPro Hero6 13

3.3.2 Especificaciones del equipo 13

3.3.3 Especificaciones banco de imágenes y vídeos 14

3.3.4 Especificaciones del ambiente controlado 14

3.3.5 Restricciones de la notificación del sistema 14

3.3.6 Especificaciones generales del sistema 14

4. DESARROLLO 16

4.1 Obtención de imágenes y vídeo 17

4.2 Calibración de la cámara GoPro 18

4.3 Corrección de la distorsión generada por el efecto de ojo de pez 19

4.4 Modelo de regresión lineal 19

4.5 Detección 23

4.6 Seguimiento 23

4.7 Estimación de distancia 24

4.8 Notificación al usuario 25

Page 3: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

4.9 Evaluación del desempeño final del sistema realizado 25

5. ANÁLISIS DE RESULTADOS 26

5.1 Calibración de la cámara 26

5.2 Corrección de la distorsión del vídeo o imagen entrante 26

5.3 Modelo de regresión lineal 27

5.4 Evaluación general del sistema 32

6. CONCLUSIONES Y RECOMENDACIONES 36

7. BIBLIOGRAFÍA 37

8. ANEXOS 39

Page 4: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

INDICE DE ILUSTRACIONES

Ilustración 1. Tipos de distorsión de lente [18]. ....................................................................................... 3

Ilustración 2. Modelo de la cámara Pinhole. ............................................................................................ 4

Ilustración 3. Matriz K de calibración de una cámara. ............................................................................. 4

Ilustración 4. Parámetro skew del modelo de la cámara Pinhole [17]. .................................................... 5

Ilustración 5. Elementos de un sistema de detección y clasificación. (Vídeo-Frames , Bounding Box-

Ground Truth, Label o etiqueta) ............................................................................................................... 7

Ilustración 6. Procesos básicos en el reconocimiento de objetos. ............................................................ 7

Ilustración 7. Sistema de detección YOLO. 1. Redimensiona la imagen de entrada a 448X448, ejecuta

una única red convolucional en la imagen y pone un umbral a las detecciones resultantes por la

confianza del modelo [36]. ....................................................................................................................... 8

Ilustración 8. Unified Detection Model [37]. ........................................................................................... 9

Ilustración 9. Arquitectura de YOLO [36]. .............................................................................................. 9

Ilustración 10. Comparación de AP de detectores [36]. ......................................................................... 10

Ilustración 11. Tiempos de inferencia de detectores [36]....................................................................... 10

Ilustración 12. Intersección sobre la Unión (Ground Truth-predicted bounding box). .......................... 11

Ilustración 13. Ejemplos de IoU. ............................................................................................................ 12

Ilustración 14. Configuraciones para vídeos [15]. ................................................................................. 13

Ilustración 15. Diagrama de bloques del sistema. .................................................................................. 16

Ilustración 16. Diagrama de flujo del algoritmo planteado para todo el sistema. .................................. 17

Ilustración 17. Patrón de calibración: Tablero de ajedrez. ..................................................................... 18

Ilustración 18. Imágenes para calibración de cámara. ............................................................................ 18

Ilustración 19. Silla centro a 1.7 metros. ................................................................................................ 20

Ilustración 20.Silla izquierda a 1.5 metros. ............................................................................................ 20

Ilustración 21.Silla derecha a 1.5 metros. .............................................................................................. 20

Ilustración 22. Sofá centro a 1.5 metros ................................................................................................. 21

Ilustración 23.Sofá derecha a 1.5 metros ............................................................................................... 21

Ilustración 24. Sofá izquierda a 1.5 metros. ........................................................................................... 21

Ilustración 25. Ejemplo de Ground Truth. ............................................................................................. 22

Ilustración 26. Ejemplo de modelo para la clase silla-derecha. ............................................................. 22

Ilustración 27. Adecuación del algoritmo YOLO. ................................................................................. 23

Ilustración 28. Clasificación y bounding boxes obtenidos por YOLO. ................................................. 23

Ilustración 29. Etiqueta de la clase, porcentaje de clasificación, coordenadas (izquierda, arriba,

derecha, abajo). ...................................................................................................................................... 23

Ilustración 30. División de la escena por rangos o zonas. ...................................................................... 24

Ilustración 31. Parámetros de calibración de la cámara GoProHero6. ................................................... 26

Ilustración 32.Algoritmo para calcular el error de re-proyección . ........................................................ 26

Ilustración 33. Imagen corregida (3 primeras e imagen con distorsión (3 últimas). .............................. 26

Ilustración 34. Silla centro a 0.10 metros. .............................................................................................. 27

Ilustración 35.Silla centro a 1.3 metros. ................................................................................................. 27

Ilustración 36. Silla centro a 1.5 metros ................................................................................................. 27

Ilustración 37. Silla centro a 4.7 metros ................................................................................................. 27

Ilustración 38. Modelo lineal para silla-posición izquierda. .................................................................. 28

Ilustración 39. Modelo lineal para silla-posición centro. ....................................................................... 29

Ilustración 40. Modelo lineal para sofá-posición izquierda. .................................................................. 31

Ilustración 41. Modelo lineal para sofá- posición centro. ...................................................................... 32

Ilustración 42. Demostración del funcionamiento del sistema (3 regiones) .......................................... 33

Ilustración 43. Demostración del sistema (Zona derecha,izquierda,centro) .......................................... 33

Ilustración 44. Demostración del sistema .............................................................................................. 33

Ilustración 45. Demostración del modelo de estimación de profundidad. ............................................. 34

Ilustración 46. Ejemplo donde YOLO no realiza la detección. .............................................................. 34

Ilustración 47. Ejemplo de falso negativo. ............................................................................................. 34

Page 5: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

INDICE DE TABLAS

Tabla 1. Opciones de FOV de la cámara GoPro. ..................................................................................... 2 Tabla 2. Objetos o clases de interés evaluados. ..................................................................................... 19 Tabla 3 . Datos silla izquierda ................................................................................................................ 28 Tabla 4. Datos silla centro. ..................................................................................................................... 29 Tabla 5. Datos modelo sofá izquierda. ................................................................................................... 30 Tabla 6. Datos sofá centro. ..................................................................................................................... 31

Page 6: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

INDICE DE ECUACIONES

Ecuación 1. Distancia focal de la cámara. ................................................................................................ 5 Ecuación 2. Distancia de un objeto con respecto a la cámara. ................................................................. 6 Ecuación 3. Error absoluto. .................................................................................................................... 11 Ecuación 4. Error relativo. ..................................................................................................................... 11 Ecuación 5. Intersección sobre la unión (IoU). ...................................................................................... 12 Ecuación 6. Ecuación lineal del modelo y promedio de error relativo. ................................................. 29 Ecuación 7.Ecuación lineal del modelo y promedio del error relativo. ................................................. 30 Ecuación 8.Ecuación lineal del modelo y promedio del error relativo. relativo. ................................... 31 Ecuación 9. Ecuación lineal del modelo y promedio del error relativo. relativo. .................................. 32

Page 7: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

1

1. INTRODUCCIÓN

La discapacidad es la restricción o imposibilidad de realizar una actividad dentro de lo calificado como

normal para el ser humano; la deficiencia visual es considerada como una discapacidad sensorial que

consiste en la pérdida total o parcial del sentido de la vista. Esto limita el desarrollo cotidiano de la

persona, ya que afecta su orientación y la dificultad para ubicar el entorno y sus características [1] .

En Colombia, según el DANE se registra una población de aproximadamente 1.143.992 personas en

condición de discapacidad visual, por lo cual se han desarrollado herramientas digitales para

garantizarles mayor inclusión social, educativa, económica, política y cultural; esto a través de entidades

como el CONPES, el INCI, entre otros [2]. Sin embargo, la seguridad de personas con VI/VD

(Impedimento/Discapacidad Visual respectivamente) [3] cuando son peatones o cuando están en

ambientes desconocidos es casi nula, lo que impide que tengan autonomía al trasladarse.

Se han implementado múltiples aplicaciones encaminadas al mejoramiento de la movilidad segura y

fácil de las personas en condición de discapacidad visual. Los diferentes instrumentos y técnicas se

basan en dar información a personas con VI/VD para aprovechar los sentidos que posee, tales como el

sentido del olfato (brinda información sobre diferenciación de espacios), el sentido del tacto (brinda

información térmica, sensación de orientación, etc.) y el sentido auditivo (brinda información espacial,

orientación, dirección) [4].

La mayoría de estos instrumentos se basan en el bastón tradicional, pero con mejoras, tales como, la

incorporación de un GPS [5], el uso de sensores de ultrasonido de proximidad o distancia [6], láseres,

transductores, vibraciones [7], alarmas sonoras, entre otras. Así mismo se han desarrollado dispositivos

o herramientas de asistencia que combinan la visión e inteligencia artificial [8], bioingeniería [9],

análisis acústico, procesamiento de imágenes, sonido binaural [10], entre otros. Con los dispositivos

nombrados anteriormente se hace una primera aproximación a la identificación y reconocimiento de

objetos existentes en el entorno sin necesidad de hacer contacto con los mismos, brindando mayor

libertad y comodidad en el movimiento al usuario, mejorando su interacción y autonomía.

Por lo anterior se proponer diseñar un sistema de reconocimiento visual, que, a partir de imágenes

capturadas con una cámara frontal, identifique y localice un conjunto de objetos de interés en el espacio

observado y entregue dicha información a través de audio 2D.

El presente documento se encuentra estructurado de la siguiente manera: Inicialmente, se presenta el

marco teórico, donde se exponen antecedentes e investigaciones que son considerados importantes para

el diseño del proyecto. Posteriormente, en el capítulo de desarrollo, se aclara el proceso de diseño e

implementación de cada etapa, mencionando los métodos y algoritmos utilizados. Seguido de esto, se

describen los protocolos de prueba definidos para evaluar el sistema y los respectivos análisis de la

información y los datos obtenidos al ejecutar los algoritmos planteados. Finalizando, se encuentran las

conclusiones y recomendaciones más importantes para tener en cuenta en futuros trabajos.

Page 8: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

2

2. MARCO TEÓRICO

2.1. Elementos básicos de una imagen/vídeo digital

2.1.1. Píxel

La palabra píxel proviene de la unión de las palabras inglesas picture y element (elemento de imagen).

Un píxel es la menor unidad de color que conforma una imagen digital, ya sea una fotografía, video o

fotograma [11].

2.1.2. Relación de aspecto

La relación de aspecto es la proporción entre el ancho y el alto de una imagen [12] .

2.1.3. Resolución de la imagen

La resolución expresa el número de píxeles que forman una imagen de mapa de bits. La calidad de una

imagen también depende de la resolución que tenga el dispositivo que la capta. La resolución de una

imagen digital se expresa multiplicando su anchura por la altura en pantalla. Por ejemplo, una imagen

tomada con la cámara GoPro Hero 6, tiene 4000 x 3000 píxeles = 12000000 píxeles, expresado en MP

megapíxel es igual a 12MP [12].

2.1.4. Campo de visión (FOV)

El campo de visión de la cámara termográfica describe el área representada y localizada por el detector.

La cantidad se expresa en ángulos, independientemente de la distancia. El campo de visión depende del

objetivo usado [13]. En la tabla 1, se muestran los FOV que tiene la cámara GoPro Hero 6 tanto en

imagen como en vídeo.

Tabla 1. Opciones de FOV de la cámara GoPro.

2.1.5. Resolución de vídeo

La resolución de vídeo es la relación entre el número de pixeles en los que se divide la pantalla en

vertical, y horizontal, indicada, por ejemplo, en 1920x1080 (horizontal por vertical) [14].

2.1.6. Fotogramas por segundo (FPS)

Los fotogramas por segundo (FPS) hacen referencia al número de fotogramas de vídeo que se capturan

cada segundo [15].

2.2. Distorsión en una imagen

La distorsión en fotografía son aquellas deformaciones ópticas de la imagen causadas por el objetivo

empleado o la perspectiva en la que es tomada la imagen y que diferencian la imagen capturada de lo

que realmente había delante de la cámara en el momento de disparar.

2.2.1. Distorsión de perspectiva

La perspectiva depende de la posición (distancia y dirección de observación) que ocupa la cámara frente

al sujeto fotografiado. La distorsión de perspectiva es la transformación que sufre un objeto y su entorno

circundante debido a la proximidad del mismo respecto al objetivo [16]. Se produce por la convergencia

natural de líneas cuando miramos algo que no está paralelo al plano de visión [17].

Page 9: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

3

2.2.2. Distorsión de lente o esférica/óptica

En pocas palabras, es cuando una lente produce líneas curvas donde deberían estar las líneas rectas. Los

dos tipos más comunes de distorsión de la lente son la distorsión de barril o también llamada barrel

distortion (curvan las líneas rectas hacia fuera) y la distorsión de cojín o pincushion distortion (curvan

las líneas rectas hacia dentro) [18].

Ilustración 1. Tipos de distorsión de lente [18].

En el presente documento, se habla siempre de la distorsión de barril, la cual se produce al usar lentes

angulares como los que tiene la cámara GoPro. Los objetivos gran angulares con más ángulo de visión

(hasta mayor a 180°) son conocidos como Ojos de Pez, cuya distorsión se asemeja a una imagen

reflejada en una esfera [19].

2.3. Cámara digital

Una cámara digital es un dispositivo electrónico usado para capturar y almacenar fotografías

electrónicamente en lugar de usar películas fotográficas como las cámaras convencionales [20].

2.3.1. Cámara GoPro

Son cámaras de acción, compactas, ligeras, resistentes, y que pueden colocarse en vehículos, manillares,

cascos, muñecas y otros soportes. Capturan fotografías y graban vídeos en alta definición a través de un

objetivo gran angular [21] . Una de las características principales de estas cámaras es que poseen un

gran ángulo de visión (FOV), pero a su vez este ángulo tiene efecto de ojo de pez o vista amplia, lo cual

distorsiona la realidad de la imagen. Para entender este concepto de ojo de pez, léase distorsión de lente

o esférica/óptica.

2.3.2. Calibración de la cámara

El proceso de calibración de una cámara es un paso necesario para obtener medidas de la escena a partir

de imágenes de esta. La exactitud de la calibración determinará posteriormente la precisión de las

medidas que se realicen a partir de las imágenes. Es por este motivo que es imprescindible realizar la

calibración de la cámara con plenas garantías de que los parámetros obtenidos son los más parecidos a

los reales [22]. En general, todos los métodos de calibración estiman los parámetros intrínsecos y

extrínsecos de la cámara, así como otras variables (como la distorsión de la lente) de manera opcional

[23].

Parámetros intrínsecos

Definen la geometría interna y la óptica de la cámara. Éstos determinan cómo la cámara proyecta

los puntos del mundo 3D al plano de la imagen en 2D, siendo constantes en tanto no varíen las

características y posiciones relativas entre la óptica y el sensor imagen. Los provee el fabricante de

la cámara, o bien se pueden estimar [24].

Parámetros extrínsecos

Éstos relacionan los sistemas de referencia del mundo real y la cámara, describiendo la posición y

orientación de la cámara en el sistema de coordenadas del mundo real [24].

Modelo cámara pinhole

Una cámara se puede modelar físicamente con el llamado modelo pinhole.

Page 10: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

4

Este modelo describe la relación matemática que existe entre las coordenadas de un punto en 3D y

su proyección en el plano de la imagen, donde la apertura de la cámara es descrita como un punto

y no se utiliza ningún tipo de lente para enfocar la luz. De esta manera, este modelo se usa con

frecuencia como una descripción razonable de cómo una cámara representa una escena en 3D,

como en el caso de visión por computadora [24].

Ilustración 2. Modelo de la cámara Pinhole.

Este modelo contiene lo siguiente:

P es un punto en el espacio 3D, el cual se va a proyectar en la imagen.

X1X2X3 definen el sistema de coordenadas de la cámara, el cual tiene su origen en O, que

es justo donde está la apertura de la cámara.

X3 coincide con la dirección de la cámara.

El plano de la imagen es paralelo a los ejes X1X2 y está desplazado a una distancia f en la

dirección negativa del eje X3.

R es el punto en que intersectan el eje –X3 y el plano de la imagen, que está desplazado f

unidades. R es también el centro óptico de la imagen.

Q es la intersección de la recta que parte de P y pasa por O en el plano de la imagen. Es decir,

la proyección del punto 3D en el plano de la imagen.

De esta forma, todos los puntos 3D del mundo real son proyectados en el plano de la imagen

con coordenadas 2D Y1Y2.

Por lo tanto, se tienen los siguientes parámetros intrínsecos:

Fx,Fy hacen referencia a la distancia o a la longitud focal (𝑓𝑥 = F · 𝑘, 𝑓𝑦 = F · 𝑙; 𝑘 y 𝑙 son

el ancho y alto de un píxel).

Rx o Cx,Ry o Cy hacen referencia a los centros ópticos o centros de la imagen.

𝐾 = [𝑓𝑥 𝑠 𝑅𝑥

0 𝑓𝑦 𝑅𝑦

0 0 1

]

Ilustración 3. Matriz K de calibración de una cámara.

El parámetro s es el factor skew, cuyo valor está relacionado con el ángulo que toma el eje Y del

sistema de coordenadas del plano de la imagen cuando los ejes no son perpendiculares. En los

modelos estándar los ejes siempre son perpendiculares por lo que este valor (casi) siempre es igual

a 0.

Page 11: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

5

𝑠 = −𝑓𝑥 ∙ cot (𝛼)

Ilustración 4. Parámetro skew del modelo de la cámara Pinhole [17].

Los parámetros extrínsecos corresponden a los vectores de rotación y traslación que traducen las

coordenadas de un punto 3D a un sistema de coordenadas [24].

Métodos de calibración de cámara.

Existen diversas técnicas de calibración de cámara. De acuerdo con la literatura estas pueden ser

clasificadas en dos grandes categorías: Calibración fotogramétrica y Auto-calibración [25]:

Calibración fotogramétrica. Se realiza mediante la observación de patrones cuya geometría

en el espacio 3D es conocida con un buen nivel de precisión. Los patrones de calibración

normalmente están posicionados en dos o tres planos ortogonales entre ellos. En algunos

casos, basta con un único plano, cuya traslación es perfectamente conocida [25]. Este tipo

de calibración requiere una configuración elaborada, pero sus resultados son eficientes.

Auto-calibración. Este método se basa en el movimiento de la cámara observando una

escena estática, a partir de sus desplazamientos y usando únicamente la información de la

imagen. La rigidez de la escena impone en general restricciones sobre los parámetros de

cámara. Tres imágenes tomadas por una misma cámara con parámetros intrínsecos fijos son

suficientes para obtener tanto los parámetros extrínsecos como intrínsecos. Aunque esta

técnica es muy flexible, aun no se encuentra madura [26].

Dos métodos comunes de calibración, en la categoría de calibración fotogramétrica, son

“Calibración directa de parámetros” y “Recuperación desde la homografía o matriz de proyección”.

A través de la “Calibración directa de parámetros” se obtienen los parámetros extrínsecos e

intrínsecos directamente, y a través de la “Recuperación desde la matriz de proyección” se obtienen

los parámetros como una solución de “manera cerrada”, es decir, no se obtienen directamente los

valores de los parámetros, sino que se calculan a partir de los valores de la homografía o matriz de

proyección [27].

A partir de estos procesos de calibración es posible obtener el modelo de la cámara y a su vez

extraer los valores y/o parámetros necesarios para realizar la corrección de la distorsión por lente

de las imágenes.

2.4. Estimación de distancia o profundidad

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. Hay muchos métodos para estimar la distancia o profundidad de objetos con

respecto a una cámara. A continuación, se mencionarán dos de los métodos más comunes:

2.4.1. Similitud de triángulos

Para determinar la distancia de la cámara a un objeto o marcador conocido, se utiliza la similitud de

triángulos. En primer lugar, se debe tener conocimiento a priori del ancho del objeto: W y de la distancia

D a la cual se ubica el objeto y después se toma una imagen del objeto con la cámara para conocer el

ancho aparente que tiene este en píxeles: P. Por lo tanto, se obtiene la ecuación 1, lo cual permite derivar

la distancia focal percibida de la cámara (F).

𝑭 =𝑷 ∗ 𝑫

𝒘

Ecuación 1. Distancia focal de la cámara.

Page 12: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

6

Por ejemplo, si se tiene una hoja de papel de 8.5 x 11 pulgadas, es decir, que W=11 pulgadas y se ubica

a una distancia D=24 pulgadas. Se observa en la imagen que el P= 248 píxeles. Entonces la longitud

focal sería igual a F= (248píxeles*24 pulgadas)/11 pulgadas.

Entonces si se desea conocer la distancia del objeto a la cámara basta con aplicar la ecuación 2, ya que

en los pasos anteriores se hizo “una calibración de la cámara y de la distancia”. Para este modelo es

utilizan algoritmos de la librería de Open Cv2 como FindContours, cvtcolor, GaussianLBur, Canny,

entre otros [28]. El algoritmo puede ser consultado en el Anexo 2. Algoritmo de similitud de

triángulos.

𝑫′ =𝑾 ∗ 𝑭

𝑷

Ecuación 2. Distancia de un objeto con respecto a la cámara.

2.4.2. Modelo de regresión lineal

Este método consiste en obtener un modelo de regresión lineal que relacione el tamaño en píxeles del

objeto ubicado en la imagen con la distancia real a la cual se encuentra el mismo (metros). Para realizar

esto, se asume una altura “predeterminada” (en metros) para cualquier clase en particular. Por ejemplo,

“silla” tiene una altura “predeterminada” de 0.77m y “persona” de 1.68m [29].

El primer paso consiste en obtener imágenes de los objetos de interés a distancias conocidas. Después

de esto obtener los bounding boxes y sacar la diferencia entre las coordenadas arriba (y-h/2) y abajo

(y+h/2) para así relacionarlo con cada distancia. Por ejemplo, a 1.8 metros se encuentran las coordenadas

abajo=1650 y arriba=2500 por lo que la diferencia sería igual a 850 píxeles, y a 2.5 metros se tiene una

diferencia en píxeles de altura de 632 píxeles. Esto quiere decir que a medida que el objeto se aleja de

la cámara (a medida que la distancia aumenta) se obtiene menor cantidad de píxeles de diferencia.

2.5. Generalidades de sistemas de reconocimiento y seguimiento de objetos.

Visión artificial es una rama de la inteligencia artificial que tiene por objetivo modelar matemáticamente

los procesos de percepción visual en los seres vivos y generar programas que permitan simular estas

capacidades visuales por computadora [30].

El reconocimiento de objetos es la tarea de encontrar e identificar un objeto o varios en una imagen o

en una secuencia de imágenes al mismo tiempo [31] y el seguimiento de objetos se refiere a el proceso

de estimar en el tiempo la ubicación de uno o más objetos móviles mediante el uso de una cámara .

2.5.1. Terminología de sistemas de reconocimiento y seguimiento de objetos.

A continuación, se definen algunos de los términos más relevantes que se utilizan en el documento para

describir los procesos de detección y localización de los objetos de interés.

Vídeo: Conjunto de imágenes mostradas de forma secuencial bajo un intervalo de tiempo

definido.

Frame o fotograma: Imagen correspondiente a una de las escenas de un vídeo.

Bounding Box: Fragmento conjunto de pixeles de objeto, cuyo tamaño es igual, mayor o menor

al tamaño de este. En español se denomina cuadro delimitador, aunque este término no es usado

comúnmente.

Ground Truth: Conjunto de etiquetas y de ventanas que corresponden a la categoría real del

objeto.

Label o etiqueta: Texto en donde se encuentra definida la categoría a la cual pertenece la

ventana. Para este caso, se tienen las etiquetas: “Chair” o “Sofa”.

Page 13: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

7

Ilustración 5. Elementos de un sistema de detección y clasificación. (Vídeo-Frames , Bounding Box-Ground Truth, Label o etiqueta)

2.5.2. Algoritmos de detección y de clasificación

Cuando se aborda un problema de reconocimiento de objetos comúnmente se sigue un proceso básico

de cinco pasos ilustrado en la siguiente figura:

Ilustración 6. Procesos básicos en el reconocimiento de objetos.

Page 14: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

8

Adquisición de la imagen: capturar la escena del mundo real a través de sensores y digitalizarla

para su procesamiento, almacenamiento y transmisión.

Preprocesamiento: aplicar técnicas de mejoramiento de contraste, reducción de ruido, realce de

características, etc., de modo que la imagen se adecúe para los siguientes pasos.

Segmentación: aislar los objetos de interés de la imagen.

Extracción de rasgos: describir numéricamente la naturaleza de los objetos segmentados como

su forma, color, textura, etc.

Clasificación: asignar una clase o categoría a cada objeto de la imagen basado en sus rasgos

[32].

Existe una gran variedad de algoritmos que se pueden aplicar para reconocer objetos en una imagen,

entre los más comunes se encuentran:

Sift(Scale-invariant feature transform)

Es un algoritmo de reconocimiento de objetos que es aplicado en el área de visión artificial, este

fue creado por David Iowe en 1999 que se encarga de extraer ciertas características de las

imágenes en escala de grises. Mediante estas, es posible luego reconocer dicha imagen dentro de

una base de datos o incluso dentro de otra imagen mayor con otra cantidad de elementos en

desorden. Estas características son invariantes a factores de escala, traslación, rotación y

parcialmente invariantes a cambios de iluminación y afinidades [33].

SURF (Speeded Up Robustus Features)

Es uno de los algoritmos más utilizados para extracción de puntos de interés en el reconocimiento

de imágenes (Valgren & Lilienthal, 2010). La extracción de los puntos la realiza detectando en

primer lugar los posibles puntos de interés y su localización dentro de la imagen [34].

MATCH TEMPLATE

El algoritmo match template (cvMatchTemplate) [2], usa una técnica que encuentra una muestra

de la imagen y la compara sobre una imagen más grande, El procedimiento de esta función es

que la imagen más pequeña hace un barrido por la imagen de base más grande, desde la esquina

superior izquierda hasta la esquina inferior derecha, usando uno de los métodos que se

mencionan más adelante. El algoritmo tiene varias aplicaciones, entre las cuales están el

reconocimiento de rostros, procesamiento de imágenes médicas, seguimiento de objetos, etc

[35].

YOU ONLY LOOK ONCE (YOLO)

Es uno de los algoritmos de menor complejidad en cuanto a uso y de mayor rapidez de detección

y clasificación. YOLO usa una sola red neural convolucional para predecir simultáneamente

múltiples cuadros delimitadores y probabilidades de clase para esos cuadros, entrena en

imágenes completas durante una evaluación.

Dado que toda la línea de detección es una sola red, puede optimizarse de extremo a extremo

directamente el rendimiento de detección. Por lo tanto, YOLO solo mira o analiza una vez la

imagen, para predecir qué objetos están presenten y dónde están, es decir, su ubicación en

píxeles.

Ilustración 7. Sistema de detección YOLO. 1. Redimensiona la imagen de entrada a 448X448, ejecuta una única red convolucional en la

imagen y pone un umbral a las detecciones resultantes por la confianza del modelo [36].

Page 15: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

9

Yolo tiene las siguientes etapas en su desarrollo:

Unified Detection: El sistema divide la imagen de entrada en una cuadrícula de SxS. Cada

celda de dicha cuadrícula predice B cuadros delimitadores y porcentajes de confianza (qué

tan seguro es el modelo de que el cuadro contiene un objeto y qué tan preciso es el cuadro

que predice) para esos cuadros.

Cada bounding box tiene 5 predicciones: x, y, w, h y el % de confianza. Las primeras

variables son el centro del cuadro en relación con los límites de la celda de la cuadrícula. El

ancho y la tura se predicen en relación con toda la imagen (variables w y h) y el porcentaje

se calcula con la intersección sobre la unión (Ver Intersección sobre la Unión (IoU)) entre

el bounding box predicho y el real.

Ilustración 8. Unified Detection Model [37].

Networking Design: Este modelo se implementa como una red neuronal convolucional donde

sus capas convolucionales extraen las características de la imagen y predicen las

probabilidades y coordenadas de salida. Tiene una red de detección de 24 capas

convolucionales seguidas de 2 capas completamente conectadas.

La alternancia de capas convolucionales 1 × 1 reduce el espacio de características de las

capas anteriores. Se entrenan las capas convolucionales en la tarea de clasificación de

ImageNet a la mitad de la resolución y luego se duplica la resolución para realizar la

detección.

Ilustración 9. Arquitectura de YOLO [36].

Page 16: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

10

Training: Primero se hace el entrenamiento con las primeras 20 capas, seguidas de una capa

de agrupamiento promedio y una capa totalmente conecta. Ya que YOLO predice múltiples

bounding boxes por cada celda de la cuadrícula, en el entrenamiento solo se requiere que un

predictor de dicho bounding box sea responsable de un objeto. Para realizar esto, se analiza

el IOU con el valor más alto [37]. Para entender el concepto de IoU, léase Intersección sobre

la Unión (IoU).

Inference: Al igual que en el entrenamiento, predecir las detecciones para una imagen de

prueba solo requiere una evaluación de red. En PASCAL VOC, la red predice 98 cuadros

delimitadores por imagen y probabilidades de clase para cada cuadro. YOLO es

extremadamente rápido en el momento de la prueba, ya que solo requiere una evaluación de

red única, a diferencia de los métodos basados en clasificadores. El diseño de la cuadrícula

impone la diversidad espacial en las predicciones del cuadro delimitador. A menudo está

claro en qué celda de la cuadrícula cae un objeto y la red solo predice un cuadro para cada

objeto [37].

Cuando se habla de detectores se utiliza mAP (mean Average Precision) o AP (Average

Precision) como métrica para evaluar la precisión de detección de los objetos. Este es el

promedio de las precisiones máximas en diferentes valores de recall (recuperación) o de

encontrar la cantidad de detecciones buenas comparadas con el total de detecciones realizadas

[38]. Según la literatura la métrica COCO AP de YOLOv3 está a la par con SSD (Single Shot

MultiBox Detector) pero es 3 veces más rápido. YOLO tiene un AP@IoU=0.75 lo que sugiere

que tiene un error de localización más alto comparado con otros detectores y en especial para

encontrar objetos que son muy pequeños.

Ilustración 10. Comparación de AP de detectores [36].

Además, YOLO se desempeña muy bien en la categoría de detector rápido cuando la velocidad

es un factor relevante tal como se muestra en la Ilustración 11[36].

Ilustración 11. Tiempos de inferencia de detectores [36].

YOLO fue implementado para obtener cada una de las detecciones y clasificaciones de los vídeos

de prueba en el presente trabajo de grado.

Page 17: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

11

2.5.3. Algoritmos de seguimiento en video y/o en imagen (Video Tracking)

Se entiende por Video Tracking al proceso de localización de un objeto en movimiento (o varios) y su

posterior seguimiento en el tiempo mediante el uso de cámaras de vídeo. Se utiliza en gran cantidad de

aplicaciones, por ejemplo: interacción hombre-máquina; seguridad y vigilancia; compresión y

comunicación de vídeo; realidad aumentada; control de tráfico, imágenes médicas y edición de vídeo.

Los sistemas visuales de seguimiento tienen dos principales componentes: representación y localización

del objetivo, y filtrado de la información asociada. El primero utiliza una gran variedad de algoritmos

para identificar el objeto en movimiento, por ejemplo: “Blob tracking”, “Kernel-based tracking”,

“Contour Tracking”, “Feature matching”. El segundo necesita conocer información a priori de la

escena o del objeto para poder hacer su seguimiento. Este algoritmo permite seguir objetos complejos

incrementado notablemente la complejidad computacional. Los algoritmos más comunes son: filtro de

Kalman y "Particle filter" [39].

En el presente documento se implementa uno de los Tracker que contiene la librería de Open Cv2, es

decir que se usa el algoritmo de CSRT (Discriminative Correlation Filter Tracker with Channel and

Spatial Reliability), el cual es más preciso, pero es más lento en su ejecución. Este algoritmo usa el mapa

de confiabilidad espacial para ajustar el soporte del filtro a la parte del objeto adecuado para el

seguimiento permitiendo ampliar la región de búsqueda y mejora el seguimiento de objetos no

rectangulares [40].

2.6. Medidas de evaluación.

2.6.1. Error absoluto.

Es la diferencia entre el valor de la medida (P’) y el valor tomado como exacto (P). Esta dado por la

siguiente ecuación [41]:

𝑬𝑨 = |𝑷 − 𝑷′| Ecuación 3. Error absoluto.

2.6.2. Error relativo.

Es el cociente entre el error absoluto y el valor exacto (P) multiplicado por 100, para expresarse en

porcentaje [41].

𝑬𝑹 =|𝑷 − 𝑷′|

𝑷∗ 𝟏𝟎𝟎

Ecuación 4. Error relativo.

2.6.3. Intersección sobre la unión (IoU).

Es una métrica de evaluación que se utiliza para medir la precisión de un detector de objetos en un

conjunto de datos en particular. Esta métrica de evaluación se utiliza en los desafíos de detección de

objetos, como el popular desafío PASCAL VOC. Para esto es necesario tener dos bounding boxes:

Del modelo, las cajas delimitadoras previstas por el modelo.

Ground Truth, las cajas delimitadoras etiquetadas a mano del conjunto de prueba que

especifican en qué parte de la imagen se encuentra realmente el objeto.

Ilustración 12. Intersección sobre la Unión (Ground Truth-predicted bounding box).

Page 18: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

12

Por lo tanto, la ecuación que describe la IoU se muestra en la Ecuación 5. En donde el numerador de la

fracción corresponde al cálculo del área de superposición entre el cuadro delimitador predicho y el

verdadero y en donde el denominador corresponde el área que abarca tanto el cuadro delimitador

predicho como el cuadro delimitador real del objeto.

𝑰𝒐𝑼 =á𝒓𝒆𝒂 𝒅𝒆 𝒔𝒐𝒃𝒓𝒆𝒍𝒂𝒑𝒆

á𝒓𝒆𝒂 𝒅𝒆 𝒊𝒏𝒕𝒆𝒓𝒔𝒆𝒄𝒄𝒊ó𝒏

Ecuación 5. Intersección sobre la unión (IoU).

Esta fracción en porcentaje determina que tan bueno fue el algoritmo de detección y según los

porcentajes obtenidos el modelo se puede clasificar en:

Ilustración 13. Ejemplos de IoU.

Es decir que si el porcentaje de la IoU es mayor al 70% se puede considerar que el sistema realizó bien

la detección y la ubicación de las coordenadas del bounding box, ya que por lo menos se detectan las

tres cuartas partes del objeto. Este porcentaje es variable ya que según el criterio de la aplicación en que

se use se puede considerar bueno o no cierto porcentaje.

Page 19: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

13

3. OBJETIVOS

3.1. Objetivo general

Diseñar e implementar un sistema de reconocimiento visual para la identificación, localización y

notificación de objetos de interés en un ambiente controlado.

3.2. Objetivos específicos

Obtener una base de datos de vídeo en escenas controladas que incluyan los objetos de interés

utilizando una cámara GoPro.

Acondicionar las imágenes capturadas para corregir su distorsión y modelar mediante una

regresión lineal el tamaño de los objetos.

Adecuar y utilizar el algoritmo YOLO como un sistema que realice la detección de los objetos

de interés en imágenes.

Desarrollar un algoritmo de localización, seguimiento y notificación de los objetos de interés

en vídeo.

Definir un protocolo de pruebas y evaluar el desempeño final del sistema realizado.

3.3. Especificaciones

Teniendo en cuenta los objetivos planteados para el presente proyecto y el desarrollo dado a cada uno

de ellos, se tienen las siguientes especificaciones y del resultado obtenido finalmente, entendiéndolas

como las limitaciones que el trabajo presenta a los usuarios directos e indirectos.

3.3.1. Especificaciones de la cámara GoPro Hero6

Al trabajar con la cámara GoPro es importante conocer las características y configuraciones intrínsecas

de la misma, por lo que es necesario consultar el manual de esta. Estas características se muestran a

continuación. Cada uno de los vídeos e imágenes capturados con la cámara tienen las características

mostradas en la Ilustración 12. Para vídeo

Ilustración 14. Configuraciones para vídeos [15].

Para imagen

Se selecciona la opción de FOV-Amplio debido a que tiene gran campo de visión. Además, todas

las fotos se capturaron a 12 MP.

3.3.2. Especificaciones del equipo.

Se trabaja con Ubuntu 18.004.1 LTS que tiene las siguientes características:

- Memoria: 7.7 GiB y un disco de 220.6 GB.

- Procesador: Intel Core i7-6700T CPU @ 2.80GHz x8 y tipo de SO de 64 bits.

Page 20: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

14

Además, se trabaja con el escritorio remoto del servidor 10.34.1.43 (para trabajar con GPU), el cual

tiene 48 núcleos y 8 tarjetas gráficas. Todos los algoritmos planteados se realizaron en la versión Python

3.5.2 con la versión de Open Cv 2.4.13.6.

3.3.3. Especificaciones del banco de imágenes y vídeos

El conjunto de imágenes y de vídeos utilizados en el presente proyecto de grado han sido tomados por

la autora de este, bajo las condiciones que se establecen a continuación.

Los vídeos de salida de la cámara GoPro Hero 6 son .MP4. Este tipo de formato no es reconocido

por los algoritmos y las librerías de Python/ Open Cv2 que se aplicaron a lo largo del desarrollo del

proyecto, por lo que es necesario realizar un paso intermedio para convertirlos a un formato

compatible, en este caso formato .AVI.

Se debe asegurar que el eje óptico de la cámara sea paralelo con el suelo y a la vez evitar cambios

bruscos de rotación al caminar. Aunque los vídeos y fotografías capturados con la cámara se

hicieron con esta ubicada a 0.98 metros, hay grado de libertad en dicha medida ya que las

oscilaciones al caminar no afectan el modelo de regresión lineal hallado.

3.3.4. Especificaciones del ambiente controlado

Se define ambiente controlado como un recinto o lugar en donde se incluyen los objetos de interés (silla,

sofá). Por lo tanto, se realizarán distintas escenas ubicando dichos objetos en diferentes distancias. La

iluminación es uno de los factores claves a la hora de lograr niveles confiables de detección, por esto, la

toma de vídeos y de imágenes se realiza en un recinto cerrado, evitando cambios drásticos de

iluminación.

3.3.5. Restricciones de la notificación del sistema

Para notificar al usuario se tendrá en cuenta lo siguiente:

Si hay un obstáculo el sistema lo notificará cada 60 frames (son 2 segundos en tiempo), que es el

tiempo en que se demora haciendo un anuncio.

Se escogen en total 6 zonas para realizar la notificación. Las primeras 3 zonas clasificadas como:

cercana (1.5 metros-2.5 metros), intermedia (2.6 metros-3.5 metros) y lejana (3.6 metros-4.7

metros) hacen referencia a la variación de la distancia a la cual el objeto está ubicado de la cámara

y las otras 3 zonas son izquierda, centro y derecha, las cuales hacen referencia a la ubicación

espacial del objeto en el eje x (dada por píxeles). Estas zonas con respecto al eje x se escogen ya

que se desea anunciar al usuario los objetos que están aledaños a su posición cuando camina.

Se da prioridades a los objetos más cercanos. Es decir, que, si en una escena se encuentran 3 objetos

y están en una zona cercana, intermedia y lejana, se dará prioridad de notificación al que esté en la

zona cercana. Por otro lado, si en la escena no hay ningún objeto en la zona cercana e intermedia

pero sí en la zona lejana, el sistema lo anunciará.

Si hay dos objetos que estén en la misma posición se dará prioridad de anuncio a aquellos que se

encuentren en el centro y a la derecha del usuario, en ese orden de relevancia. Se escogen estas

regiones debido a que usualmente un objeto ocupa la mayor parte del centro en una imagen. Por

otro lado, la prioridad de la derecha se anuncia ya que la orientación de ubicación de una persona

es caminar siempre por la derecha, por lo que anunciar previamente si hay un objeto en esta región

facilita el desplazamiento del usuario.

El audio no es posible reproducirlo en el algoritmo realizado. Léase en Especificaciones generales del sistema la explicación de este inconveniente.

3.3.6. Especificaciones generales del sistema

El inconveniente que se presentó es que el audio no puede ser reproducido debido a que todos los

algoritmos se realizaron desde la terminal de la GPU, por lo que se reemplazó la grabación de la

notificación por un mensaje en pantalla que dura el mismo tiempo de la grabación.

Page 21: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

15

Para realizar la detección correctamente, se trabajan rangos de distancia entre 1.5-4.7 metros, ya

que estos rangos fueron los establecidos para realizar el modelo de regresión lineal. Se trabaja desde

la distancia 1.5 metros porque se requiere que el objeto se vea de forma completa en la imagen,

para ver la explicación ir a la sección Modelo de regresión lineal).

El límite de distancia final que se establece es de 4.7 metros porque al usuario le interesa conocer

si hay objetos en distancias cortas que puedan obstruirle su paso, por lo que para el sería

inapreciable e irrelevante que le notifiquen la existencia de un objeto a una distancia de 8 o 10

metros.

Page 22: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

16

4. DESARROLLO

En el siguiente diagrama de bloques se muestra cada una de las etapas desarrolladas a lo largo del

proyecto.

Ilustración 15. Diagrama de bloques del sistema.

A partir del diagrama de bloques anterior se fueron implementando varios algoritmos que cumplieran

las funciones de los bloques nombrados en la Ilustración 15. Por lo tanto, en la Ilustración 16 se muestra

el diagrama de flujo del algoritmo general que se planteó para llevar a cabalidad cada uno de los

objetivos propuestos para el trabajo de grado.

Los vídeos e imágenes que se usaron en el desarrollo del proyecto se pueden consultar en el siguiente

enlace:

https://drive.google.com/drive/folders/14uMjCDRJMEu_akvPxRBJ5Lx_xAfd4OBy?usp=sharing

Page 23: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

17

Ilustración 16. Diagrama de flujo del algoritmo planteado para todo el sistema.

4.1. Obtención de imágenes y vídeo

Se realizó la captura de vídeos e imágenes de escenas controladas, las cuales contienen los objetos de

interés a evaluar. Se escogieron los objetos “silla” y “sofá” ya que estos son los que con mayor frecuencia

se encuentran en la facultad y en recintos cerrados.

Page 24: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

18

Esta es la etapa más importante de desarrollo, debido a que sino se tienen en cuenta los parámetros

establecidos en Especificaciones del banco de imágenes, las imágenes no servirán para su posterior

procesamiento. Dependiendo de la actividad que realiza cada bloque cambió el protocolo de obtención

de las imágenes y/o vídeos.

4.2. Calibración de la cámara GoPro

Como ya se explicó en la sección 2.3.2. Calibración de la cámara, existen varios métodos para realizar

la calibración de una cámara. En este caso, se escogió la calibración fotogramétrica por calibración

directa, para obtener los parámetros intrínsecos y extrínsecos de la cámara de forma directa. Es decir,

que a partir de la toma de imágenes de un patrón de calibración de dimensiones conocidas se pueden

hallar las componentes que tiene la matriz de la cámara.

Existen múltiples imágenes de patrones que pueden usarse, pero por su simplicidad se utilizó el patrón

de calibración basado en el tablero de ajedrez. Dicho tablero es de 7 x 9 cuadros de 0.04m cada uno,

como se muestra en la Ilustración 15, es decir, que tiene 0.30m de ancho por 0.40m de largo. Los cuadros

de las orillas se excluyen a la hora de hacer la detección del patrón en el algoritmo propuesto. Es decir

que las medidas nuevas resultantes del patrón son de 6 x 8 cuadros de 0.04m.

Ilustración 17. Patrón de calibración: Tablero de ajedrez.

Se tomaron varias fotografías de este patrón, pero moviéndolo libremente en diferentes posiciones, para

que la cámara tuviera diversas tomas de este (tanto en posición como en ángulo) y así realizar la

calibración de forma correcta. Tal como se muestra en la Ilustración 16.

Ilustración 18. Imágenes para calibración de cámara.

Después de esto se extrajeron las esquinas de los patrones en cada una de las imágenes y se obtuvieron

los puntos de objeto (3D del mundo real) y los puntos de imagen (son los lugares donde dos cuadrados

negros se tocan entre sí en el tablero de ajedrez) del patrón de calibración para tener como resultado las

dimensiones de la imagen, los valores de la matriz K de la cámara y los valores de los coeficientes de

distorsión que se almacenan en un arreglo de 4 posiciones [42].

Para esto se implementaron funciones de OpenCv como:cv2.fisheye.calibrate, cv2.findChessboard

Corners,cv2.cornerSubPix, entre otras (Anexo 1. Código de calibración de la cámara.)

Page 25: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

19

4.3. Corrección de la distorsión generada por el efecto de ojo de pez

A pesar de que la cámara escogida tiene un campo de visión amplio distorsiona las imágenes o los videos

que se capturen con ella debido a la distorsión del lente (objetivo de ojo de pez). Por esta razón, es

necesario siempre realizar este paso de corrección de distorsión antes de continuar con el procesamiento

de cualquier imagen o vídeo que se desee analizar.

Después de obtener las dimensiones de la imagen, la matriz K de calibración de cámara y los coeficientes

de distorsión se aplicó el concepto de remapping, se calcularon los mapas de no distorsión y de

rectificación para realizar la transformación de la imagen de distorsionada a no distorsionada. Este

concepto de remapping se describe como el proceso de tomar pixeles de un lugar de una imagen y

reubicarlos en una posición diferente, pero en una nueva imagen (Ver Anexo 3. Corrección de la

distorsión).

4.4. Modelo de regresión lineal

Tal como se explicó en la sección 2.4.2. Modelo de regresión lineal es necesario obtener las

coordenadas en píxeles de los objetos de interés para relacionarlos con la distancia real a la que se

encuentran. Para poder asumir esto, es necesario generalizar o promediar la altura real de un objeto a un

único valor.

Para realizar el modelo de regresión lineal, se efectúo el siguiente proceso:

Captura de imágenes

Se hizo la toma de fotografías con 3 sillas y sofás de diferentes alturas para después promediar sus

correspondientes alturas tal como se muestra en la Tabla 2. Objetos o clases de interés evaluados.

Subclase

Clase

Altura 1

(metros)

Altura 2

(metros)

Altura 3

(metros)

Promedio

alturas

(metros)

Sofá 0.71 0.66 0.69 0.6867

Silla 0.79 0.79 0.73 0.7700 Tabla 2. Objetos o clases de interés evaluados.

Como se tienen tres rangos de distancia (cercana: 1.5 metros-2.5 metros, intermedia:2.6 metros-3.5

metros y lejana:3.6 metros-4.7 metros) y de ubicación (derecha, centro e izquierda) se decidió tomar

33 fotos para cada rango de ubicación y para cada objeto de interés. Es decir que aproximadamente

se tomaron 800 fotos. Además, para realizar el modelo de regresión lineal se tuvieron en cuenta las

escenas en las cuales los objetos de interés (sofá, silla) no estaban de frente al plano de la cámara.

Un ejemplo del protocolo de obtención de fotos que se hizo en esta etapa de desarrollo es el

siguiente: Se ubicó una silla de Altura 1 a 1.5 metros de distancia de la cámara y se fue variando

dicha distancia hasta llegar a 4.7 metros, obteniendo así fotografías de la silla por cada 0.10 metros

de diferencia. Dependiendo del lado en que se tome una fotografía del objeto, puede variar la noción

de la distancia real que se tiene de este, por esta razón se resolvió tomar fotos de la misma silla,

pero ubicándola al centro, a la derecha y a la izquierda de la cámara.

A continuación, se muestran algunos ejemplos del banco de imágenes obtenido.

Page 26: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

20

Ilustración 19. Silla centro a 1.7 metros.

Ilustración 20.Silla izquierda a 1.5 metros.

Ilustración 21.Silla derecha a 1.5 metros.

Page 27: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

21

Ilustración 22. Sofá centro a 1.5 metros

Ilustración 23.Sofá derecha a 1.5 metros

Ilustración 24. Sofá izquierda a 1.5 metros.

Page 28: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

22

Ground Truth

Luego de obtener el banco de imágenes de esta etapa, se procedió a hallar de forma manual las

coordenadas en píxeles de cada uno de los objetos para tener cantidades verídicas. Para cumplir

este objetivo se realizó un algoritmo de “etiquetas” (Anexo 4. Ground Truth.) para extraer los

bounding boxes de cada objeto de interés. En la Ilustración 23, se muestra un ejemplo del Ground

Truth y cuya etiqueta en píxeles sería: [220,1545,868,2260].

Ilustración 25. Ejemplo de Ground Truth.

Obtención del modelo de regresión lineal

Una vez adquiridas las etiquetas del banco de imágenes de modelación, se calculó la diferencia

entre la coordenada de arriba y la coordenada de abajo del bounding box del objeto , ya que estas

coordenadas dan el valor de la altura del objeto en píxeles. Se realizó el modelo de regresión lineal

a partir de la relación existente entre la altura del objeto en píxeles y la distancia a la cual fueron

tomadas las fotografías de este. Como bien se dijo en la sección de Captura de imágenes,

dependiendo de la ubicación del objeto el modelo varía, por lo que se hizo un modelo para cuando

el objeto se encuentra ubicado en la región del centro, izquierda o derecha de la escena. En la

Ilustración 24, se expone un ejemplo del modelo.

Ecuación lineal

y=-0,005*x+5,795

r^2=0,917 Ilustración 26. Ejemplo de modelo para la clase silla-derecha.

AVERAGE DISTANCE

1024 927 1030 1085 1017 1,5

840 883 976 975 919 1,6

976 843 944 834 899 1,7

977 775 936 748 859 1,8

910 755 886 754 826 1,9

300 303 322 320 311 4,7

Page 29: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

23

4.5. Detección

En este bloque se realizó la detección y clasificación de las clases que estaban presentes en la escena.

Se modificó el algoritmo de YOLO para limitar las detecciones de todas las clases que este realiza a las

2 clases que son relevantes en este trabajo de grado. El diagrama de entrada y salida de esta etapa de

desarrollo se expone en la Ilustración 25.

Ilustración 27. Adecuación del algoritmo YOLO.

Como entrada tiene las imágenes de los frames de un vídeo o bien la lectura del video por frames

directamente, y como salida un archivo de tipo .txt con las coordenadas de las detecciones de los objetos

(bounding boxes) y con sus respectivas clasificaciones. Ver Anexo 5. Adecuación Algoritmo YOLO.

Ilustración 28. Clasificación y bounding boxes obtenidos por YOLO.

Ilustración 29. Etiqueta de la clase, porcentaje de clasificación, coordenadas (izquierda, arriba, derecha, abajo).

4.6. Seguimiento

En este bloque se implementó el Tracker CSRT , el cual ya es una función preestablecida en OpenCv.

Para integrar este algoritmo es necesario pasarle inicialmente las coordenadas generadas por el bloque

anterior de detección, es decir, el archivo .txt que genera YOLO para que a partir de este empiece a

hacer el seguimiento de los objetos. A la vez se modificó para que se borrara el cuadro del tracking en

caso de que por más de 15 frames no hubiese detección alguna.

Para ver el algoritmo propuesto, dirigirse al Anexo 6. Algoritmo de Tracking CSRT.

Aunque el seguimiento facilita la detección, ubicación y sobre todo la notificación de los objetos, este

se puede omitir si se establecen ciertos criterios. Por ejemplo, como en cada frame se está haciendo la

detección de los objetos presentes en la escena, se puede establecer que, si en ese frame hay un objeto

ubicado en cierta posición, su bounding box se compare con la posición del mismo en el siguiente frame

y si su IoU es mayor al 70% con respecto al anterior cuadro de vídeo, es el mismo objeto; esto facilitaría

el rendimiento del sistema ya que no se aplicaría un algoritmo prestablecido de seguimiento. Por lo

tanto, la diferencia que existe entre hacer seguimiento del objeto en vídeo y detectar en cada cuadro del

vídeo un objeto es que con el primero se sabría si es el mismo objeto del frame anterior o si el mismo

objeto salió o entró en la escena a diferencia del segundo en donde solo detectaría si hay un objeto

presente en la escena o no sin saber si es el mismo objeto que se anunció con anterioridad.

Page 30: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

24

4.7. Estimación de distancia

Después de obtener los algoritmos de detección, clasificación y de seguimiento, se planteó un algoritmo

para estimar una distancia por rangos a partir del modelo de regresión obtenido en la sección 4.4. Cabe

aclarar que, aunque el sistema es capaz de dar un valor estimado de distancia con cierto porcentaje de

error, el objetivo final de este bloque o etapa es el de anunciar rangos de distancia (cerca, intermedia y

lejos) y a su vez el de indicar en que parte de la escena se encuentran ubicado los objetos, pero no el de

dar medidas exactas.

Las imágenes de entrada tienen 3000*4000 píxeles, esto quiere decir, que lo importante es dividir los

4000 píxeles de tal forma que se obtenga tres zonas en la escena. Para esto se analizaron varias imágenes

para establecer qué criterios o características eran significativos para notificar de forma correcta cuando

un objeto se ubica en el centro, a la derecha o a la izquierda. Después de varias pruebas, se dedujo que

la región del centro debía ser más grande que las otras dos, ya que generalmente era la que más espacio

ocupaban los objetos de interés. Es así como se establecieron los siguientes rangos:

- Izquierda

Si en la etiqueta de los objetos, el valor de izquierda del bounding box es mayor a 0 pero menor

a 1100, se dice que el objeto está ubicado a la izquierda de la cámara.

- Centro

Si en la etiqueta de los objetos, el valor de izquierda del bounding box es mayor a 1100 pero

menor a 2900, se dice que el objeto está ubicado en el centro de la zona.

- Derecha

Si en la etiqueta de los objetos, el valor de izquierda del bounding box es mayor a 2900 pero

menor a 4000, se dice que el objeto está ubicado a la derecha de la cámara.

En la Ilustración 28.se muestran los rangos establecidos para la ubicación del objeto de interés (sofá).

Ilustración 30. División de la escena por rangos o zonas.

Para ver el algoritmo implementado, diríjase al Anexo 7. Estimación de distancia y Modelo de

regresión lineal.

CENTRO DERECHA IZQUIERDA

Page 31: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

25

4.8. Notificación al usuario

Se buscó en cada frame del vídeo la distancia más pequeña de todos los objetos detectados, ya que esta

es la que se anuncia con prioridad. Lastimosamente el audio, no pudo ser reproducido con todos los

algoritmos propuestos por lo que se explica en la sección Restricciones de la notificación del sistema

pero se reemplazó por un mensaje como notificación que tiene la misma duración que el de un anuncio

sonoro.

4.9. Evaluación del desempeño final del sistema realizado

Se repitió el mismo procedimiento de la sección de Captura de imágenes pero en vez de realizar el

Ground Truth manualmente, se ingresaron estas imágenes al detector de YOLO para obtener los

bounding boxes. Es decir, que la evaluación del sistema se hizo a partir de las comparaciones de las

distancias estimadas (las que se obtienen por el modelo de regresión lineal) con el valor de las distancias

reales (se conocen a priori) a las cuales están ubicados los objetos de la cámara. Anexo 8. Algoritmo

del sistema completo.

Page 32: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

26

5. ANÁLISIS DE RESULTADOS

5.1. Calibración de la cámara

Después de aplicar el algoritmo del Anexo 1. Código de calibración de la cámara. se obtuvo la matriz

de calibración de la cámara y sus coeficientes de distorsión asociados.

Ilustración 31. Parámetros de calibración de la cámara GoProHero6.

Es importante aclarar que cada cámara tiene su propia matriz de calibración y coeficientes de distorsión,

es decir, que estas características son únicas para cada cámara.

Para comprobar que la calibración se hizo de forma correcta realiza el error de re-proyección, el cual da

una buena estimación de cuán exactos son los parámetros encontrados. Esto debería ser lo más cercano

a cero posible. Dadas las matrices intrínsecas, de distorsión, de rotación y de traducción, primero se

transforma el punto de objeto en punto de imagen usando cv2.projectPoints (). Luego se calcula la norma

absoluta entre lo que se obtuvo con esa transformación y el algoritmo de búsqueda de esquinas. Para

encontrar el error promedio, se calcula la media aritmética de los errores calculados para todas las

imágenes de calibración. A partir de todas las imágenes tomadas, el error promedio dio menor a 2

píxeles, lo cual es bueno porque quiere decir que la calibración se hizo correctamente [43].

Ilustración 32.Algoritmo para calcular el error de re-proyección .

5.2. Corrección de la distorsión de vídeo o imagen entrante

En la Ilustración 31 se muestran las imágenes originales y las corregidas del patrón de calibración del

tablero de ajedrez.

Ilustración 33. Imagen corregida (3 primeras e imagen con distorsión (3 últimas).

Page 33: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

27

5.3. Modelo de regresión lineal

Inicialmente se habían tomado fotografías de los objetos de interés a distancias menores a 1.5 metros,

pero esto no cumplía con el requerimiento del modelo de la regresión lineal, ya que el objeto siempre

tenía que verse completo en cuanto a su altura y al estar muy cerca el objeto de la cámara no es posible

ni detectar que es una silla o sofá ni obtener la diferencia de altura completa en pixeles, tal como lo

muestra la Ilustración 34 y la Ilustración 35. Las Ilustraciones 36 y 37 muestras una muestra correcta de

las imágenes que se usaron para realizar el modelo de regresión lineal.

Ilustración 34. Silla centro a 0.10 metros.

Ilustración 35.Silla centro a 1.3 metros.

Ilustración 36. Silla centro a 1.5 metros

Ilustración 37. Silla centro a 4.7 metros

Page 34: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

28

A continuación, se muestran los modelos de regresión lineal obtenidos para los dos objetos de interés. Las Tablas 3-6 muestran los datos utilizados para obtener el modelo de regresión lineal a partir de la

relación existente entre las diferencias de alturas en píxeles y sus respectivas distancias. Para obtener las

diferencias de alturas se hizo un promedio las diferencias existentes entre las coordenadas top y bottom

de cada uno de los objetos de interés a distancias entre 1.5 metros y 4.7 metros con variación de 1 metro.

Las diferencias en píxeles de estas coordenadas se hicieron para los objetos (sofá y silla) ubicados en el

centro y en la derecha/izquierda.

Modelo silla

IZQUIERDA

Tabla 3 . Datos silla izquierda

Ilustración 38. Modelo lineal para silla-posición izquierda.

AVERAGE DISTANCE Distance aprox. Error %

1 1024 927 1030 1085 1017 1,5 1,41 5,83

2 840 883 976 975 919 1,6 1,50 6,09

3 976 843 944 834 899 1,7 1,60 5,96

4 977 775 936 748 859 1,8 1,80 0,00

5 910 755 886 754 826 1,9 1,96 3,36

6 913 717 797 789 804 2,0 1,78 11,25

7 870 727 740 715 763 2,1 1,98 5,71

8 790 665 852 745 763 2,2 1,98 10,00

9 727 640 683 665 679 2,3 2,40 4,40

10 686 607 643 617 638 2,4 2,60 8,49

11 666 591 657 615 632 2,5 2,63 5,35

12 600 563 615 597 594 2,6 2,83 8,70

13 560 554 593 606 578 2,7 2,90 7,55

14 565 500 520 525 528 2,8 3,16 12,77

15 520 508 495 510 508 2,9 3,25 12,20

16 489 462 540 493 496 3,0 3,32 10,50

17 498 468 517 506 497 3,1 3,31 6,73

18 492 457 510 478 484 3,2 3,37 5,43

19 472 446 503 480 475 3,3 3,42 3,60

20 491 430 460 432 453 3,4 3,53 3,79

21 425 403 423 443 424 3,5 3,68 5,07

22 410 403 448 448 427 3,6 3,66 1,63

23 425 394 393 398 403 3,7 3,78 2,23

24 412 391 400 417 405 3,8 3,77 0,79

25 405 355 372 386 380 3,9 3,90 0,06

26 363 365 362 375 366 4,0 3,96 0,91

27 349 348 351 372 355 4,1 4,02 1,95

28 348 343 348 383 356 4,2 4,02 4,35

29 338 337 336 360 343 4,3 4,08 5,09

30 328 327 323 332 328 4,4 4,16 5,51

31 318 322 322 345 327 4,5 4,16 7,53

32 317 317 308 327 317 4,6 4,21 8,51

33 300 303 322 320 311 4,7 4,24 9,81

Diferencias de alturas

Page 35: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

29

Ecuación 6. Ecuación lineal del modelo y promedio de error relativo.

CENTRO

Tabla 4. Datos silla centro.

Ilustración 39. Modelo lineal para silla-posición centro.

Promedio de error

relativo (%)

5,79

ecuación lineal

y=-0,005*x+5,795

r^2=0,917

AVERAGE DISTANCE Distance aprox. Error %

1 1000 1112 1084 1073 1067 1,5 0,84 44,18

2 943 977 970 990 970 1,6 1,27 20,93

3 874 903 1000 923 925 1,7 1,46 13,93

4 837 894 876 823 858 1,8 1,76 2,21

5 800 787 817 769 793 1,9 2,04 7,52

6 740 808 793 710 763 2,0 2,18 8,85

7 720 767 807 673 742 2,1 2,27 8,07

8 683 743 743 674 711 2,2 2,41 9,36

9 635 677 710 647 667 2,3 2,60 12,93

10 638 648 673 595 639 2,4 2,72 13,49

11 590 602 650 583 606 2,5 2,87 14,63

12 572 586 615 527 575 2,6 3,00 15,51

13 560 565 606 551 571 2,7 3,02 11,96

14 518 574 552 498 536 2,8 3,18 13,46

15 495 527 523 491 509 2,9 3,29 13,57

16 497 497 488 467 487 3,0 3,39 12,98

17 503 480 480 452 479 3,1 3,43 10,54

18 460 503 491 430 471 3,2 3,46 8,15

19 455 472 472 417 454 3,3 3,54 7,14

20 449 453 463 408 443 3,4 3,58 5,38

21 430 437 443 420 433 3,5 3,63 3,72

22 405 425 440 387 414 3,6 3,71 3,07

23 395 408 427 372 401 3,7 3,77 1,92

24 395 409 403 370 394 3,8 3,80 0,04

25 384 420 390 360 389 3,9 3,82 1,95

26 375 378 380 350 371 4,0 3,90 2,45

27 356 383 375 344 365 4,1 3,93 4,16

28 354 380 377 334 361 4,2 3,94 6,10

29 344 372 350 322 347 4,3 4,01 6,83

30 330 353 343 318 336 4,4 4,05 7,85

31 335 340 353 302 333 4,5 4,07 9,55

32 333 340 335 302 328 4,6 4,09 11,04

33 312 335 325 298 318 4,7 4,14 12,00

Diferencias de alturas

(píxeles)

Page 36: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

30

Ecuación 7.Ecuación lineal del modelo y promedio del error relativo.

A partir de los modelos de regresión lineal obtenidos anteriormente, se puede evidenciar que el modelo

para silla en posición derecha e izquierda es el mismo, esto se debe a que la silla en posición izquierda

es como una reflexión de la silla en la posición derecha, esto afectaría el modelo solo sí para desarrollarlo

se tuviera en cuenta el ancho del objeto pero como la única variable de relevancia en el modelo es la

altura, esto hace que no tenga un cambio significativo en el modelamiento. Por lo tanto, para cada uno

de los objetos de interés, es decir, para sofá y silla se usaron dos modelos derecha/izquierda y centro

para estimar la distancia.

Si se desean ver los modelos de regresión lineal para derecha, izquierda y centro de cada objeto de

interés se puede consultar el Anexo 10. Modelos de regresión lineal para cada región y para cada

objeto de interés.

Modelo sofá

IZQUIERDA

Tabla 5. Datos modelo sofá izquierda.

Promedio de error

relativo (%)

9,86

ecuación lineal

y=-0,0044*x+5,5332

r^2=0,8907

AVERAGE DISTANCE Distance aprox. Error %

1 873 926 675 825 1,5 1,48 1,39

2 847 928 732 836 1,6 1,52 5,01

3 783 928 736 816 1,7 1,63 4,25

4 740 800 700 747 1,8 1,75 2,76

5 727 733 800 753 1,9 1,71 9,77

6 740 680 744 721 2,0 1,89 5,64

7 644 710 692 682 2,1 2,10 0,02

8 626 629 752 669 2,2 2,17 1,37

9 563 640 612 605 2,3 2,52 9,37

10 540 597 600 579 2,4 2,66 10,66

11 517 563 532 537 2,5 2,88 15,23

12 497 530 536 521 2,6 2,97 14,19

13 473 487 564 508 2,7 3,04 12,56

14 477 471 520 489 2,8 3,14 12,14

15 472 477 488 479 2,9 3,20 10,20

16 431 455 515 467 3,0 3,26 8,69

17 418 462 452 444 3,1 3,38 9,19

18 407 413 457 426 3,2 3,48 8,87

19 405 394 470 423 3,3 3,50 6,01

20 415 390 430 412 3,4 3,56 4,69

21 392 374 434 400 3,5 3,62 3,50

22 373 367 383 374 3,6 3,76 4,47

23 362 372 380 371 3,7 3,78 2,09

24 365 362 395 374 3,8 3,76 0,98

25 334 328 383 348 3,9 3,90 0,04

26 338 330 366 345 4,0 3,92 1,97

27 320 307 302 310 4,1 4,11 0,25

28 317 330 370 339 4,2 3,95 5,91

29 292 337 370 333 4,3 4,38 1,96

30 307 300 360 322 4,4 4,44 0,95

31 295 275 332 301 4,5 4,56 1,31

32 285 271 320 292 4,6 4,61 0,12

33 271 297 337 302 4,7 4,55 3,12

Diferencia de

altura (píxeles)

Page 37: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

31

Ilustración 40. Modelo lineal para sofá-posición izquierda.

Ecuación 8.Ecuación lineal del modelo y promedio del error relativo. relativo.

CENTRO

Tabla 6. Datos sofá centro.

Promedio de error

relativo (%)

5,76

ecuación lineal

y=-0,0054*x+5,7824

r^2=0,9261

AVERAGE DISTANCE Distance aprox. Error %

1 987 940 960 962 1,5 1,42 5,05

2 976 884 950 937 1,6 1,54 3,45

3 940 790 884 871 1,7 1,65 2,83

4 870 794 860 841 1,8 1,79 0,39

5 813 720 837 790 1,9 1,78 6,09

6 776 692 747 738 2,0 2,03 1,35

7 674 640 686 667 2,1 2,36 12,57

8 684 610 643 646 2,2 2,46 11,93

9 650 593 637 627 2,3 2,55 10,95

10 574 545 593 571 2,4 2,82 17,29

11 577 550 583 570 2,5 2,82 12,73

12 587 517 550 551 2,6 2,91 11,77

13 580 477 523 527 2,7 3,02 11,92

14 520 469 500 496 2,8 3,16 13,02

15 517 457 522 499 2,9 3,15 8,74

16 480 442 494 472 3,0 3,28 9,29

17 458 432 495 462 3,1 3,33 7,33

18 437 420 474 444 3,2 3,41 6,62

19 426 411 452 430 3,3 3,48 5,39

20 431 380 431 414 3,4 3,55 4,45

21 413 377 407 399 3,5 3,62 3,48

22 408 373 383 388 3,6 3,67 2,04

23 391 360 373 375 3,7 3,74 0,98

24 385 358 387 377 3,8 3,73 1,92

25 357 357 368 361 3,9 3,80 2,51

26 360 325 345 343 4,0 3,88 2,91

27 346 318 342 335 4,1 3,92 4,36

28 325 327 328 327 4,2 3,96 5,67

29 330 315 320 322 4,3 4,39 1,99

30 330 283 311 308 4,4 4,45 1,13

31 300 300 308 303 4,5 4,47 0,56

32 318 286 298 301 4,6 4,48 2,52

33 297 277 278 284 4,7 4,56 2,93

Diferencia de

distancias (píxeles)

Page 38: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

32

Ilustración 41. Modelo lineal para sofá- posición centro.

Ecuación 9. Ecuación lineal del modelo y promedio del error relativo. relativo.

Luego de obtener las ecuaciones que rigen el comportamiento de estos datos (Ver Ecuación 6. Ecuación

lineal del modelo y promedio de error relativo.) se evidencia que el r^2 o el coeficiente de correlación

de Pearson [44] es mayor a 0.8 o al 80% que, de acuerdo a la literatura, este es un valor que indica una

aproximación o ajuste lineal que describe de forma correcta la variación total de la variable Y con

respecto a los datos entrantes. Este coeficiente es negativo ya que la relación entre los datos es negativa,

es decir, que a medida que los valores de la variable X disminuyen los valores de la variable Y aumentan,

esto se debe a que a medida que el objeto de interés se aleja de la cámara se obtienen menores valores

de alturas en píxeles en la imagen.

Los cuadros rojos en cada una de las tablas anteriormente presentadas representan los rangos de distancia

en donde se concentras los valores mayores de error relativo existentes entre la distancia estimada por

el modelo y la distancia real. Esto se debe a que en estos rangos los objetos tienen diferencias poco

significativas por cada metro de diferencia lo que hace que el modelo de regresión lineal obtenido no

describa correctamente sus variaciones en píxeles.

Comparando la altura real entre el sofá y la silla, la diferencia en metros no supera los 9 centímetros,

esto no afecta la obtención del modelo de regresión lineal ya que se hizo a partir de la variación por 1

metro de distancia, por lo que el comportamiento de variación de la variable Y o distancia para las dos

clases se podría regir por solo un modelo para el centro y otro para la derecha/izquierda, lo cual

aumentaría el rendimiento del sistema al no tener que evaluar otros dos modelos.

A partir del promedio de los errores relativos, se pude afirmar que el sistema tiene un error de hasta

máximo 9.86% por cada 0.1 metros, lo cual es bueno, ya que no se busca tener gran precisión en la

medida de una distancia exacta sino en la medida de los rangos establecidos (cerca, intermedia, lejana).

5.4. Evaluación general del sistema

Para verificar el funcionamiento del sistema, se generaron los anuncios de forma visual para cada uno

de los frames del vídeo de entrada para asegurar que el modelo de estimación de distancia/profundidad

funcionara correctamente. En las Ilustraciones 42, 43, 44 y 45 se muestran algunos ejemplos de dichos

frames.

y = -0.0047x + 5.4972R² = 0.9035

0.0

1.0

2.0

3.0

4.0

5.0

0 200 400 600 800 1000 1200Dis

tan

cia

[me

tro

s]

Diferencia de altura [píxeles]

Modelo Lineal para sofá- posición Centro

Promedio de error

relativo (%)

5,94

ecuación lineal

y=-0,0047*x+5,4972

r^2=0,9035

Page 39: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

33

Ilustración 42. Demostración del funcionamiento del sistema (3 regiones)

Ilustración 43. Demostración del sistema (Zona derecha,izquierda,centro)

Ilustración 44. Demostración del sistema

Page 40: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

34

Ilustración 45. Demostración del modelo de estimación de profundidad.

A partir de los resultados obtenidos con anterioridad, se pudo notar que el rendimiento óptimo del

sistema completo depende de la precisión con la cual YOLO hace las detecciones ya que a partir

de esta información se aplican los respectivos modelos de distancia obtenidos. A continuación, se

muestran los errores que se presentaron al momento de hacer las respectivas detecciones:

La ilustración 46, muestra un ejemplo en donde YOLO solo detecta una clase de dos que se ven en

la imagen, aunque este es un error muy poco común se puede dar debido a los cambios bruscos de

iluminación del escenario en donde se hacen la toma de fotografías.

Ilustración 46. Ejemplo donde YOLO no realiza la detección.

Ilustración 47. Ejemplo de falso negativo.

Page 41: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

35

La ilustración anterior muestra un ejemplo de falso negativo, lo que quiere decir, es que YOLO

detecta una clase como si fuera otra, por lo tanto, si en la escena hay dos objetos que corresponden

a las clases “pottedplant” y “chair” respectivamente YOLO lo detecta como si fueran solo de una

clase, en este caso “pottedplant”.

En la carpeta de Drive se encuentran dos vídeos que cumplen con el protocolo de pruebas

establecido en el ítem 4.9.Evaluación del desempeño final del sistema realizado. En estos vídeos

(Multimedia 1 y Multimedia 2) se encuentra la evaluación del algoritmo y la muestra del

funcionamiento del sistema implementado el seguimiento de los objetos.

Page 42: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

36

6. CONCLUSIONES Y RECOMENDACIONES

- Una vez evaluado el sistema, se evidenció que si hay muy pocas imágenes o si el número FPS

es muy grande habrá problemas para comprobar la notificación del audio o en este caso los

mensajes equivalentes al anuncio, esto se debe a que la duración del vídeo sería corta,

impidiéndole al sistema que alerte de forma correcta, sin sobrelapamiento de información.

- Es importante identificar que cada cámara es diferente incluso si es de la misma referencia, ya

que cada una tiene parámetros inherentes y propios de calibración y de distorsión.

- Aunque el modelo de regresión lineal se hizo con solo dos clases (sofá y silla), este modelo de

estimación de distancia se puede aplicar a objetos cuya altura real estén entre los rangos de

68.67cm y 77 cm sin importar el tipo de objeto, pero asegurando que este se encuentre como

una clase establecida en el algoritmo de YOLO.

- Aunque se asumió una altura “predeterminada” para las dos clases evaluadas, es importante

tener en cuenta que estos modelos pueden cambiar según las dimensiones de los objetos, es

decir, que para un mismo objeto podría necesitarse más de 1 modelo.

- Aunque se propuso realizar un algoritmo de tracking para optimizar el rendimiento del sistema

final, no se cree necesario ya que el usuario no desea saber si el objeto que estaba enfrente de el

era el mismo objeto que estaba hacia su derecha en un tiempo anterior. Al usuario solo le interesa

conocer si hay algún obstáculo que afecte su tránsito.

- Para distancias menores a 1.5 metros se es posible realizar un modelo que relacione la distancia

con la posición en píxeles, pero antes se debería hacer una transformación o conversión ya que

el objeto no se ve completamente (no se ve la altura total del objeto) lo que cambia el parámetro

de referencia del modelo actual que se elaboró.

- El proceso de estimación de distancia hallado en el presente trabajo de grado es bueno, pero está

muy limitado ya que, si se incluyen otros objetos de interés a evaluar, se deberían considerar

todas las posibilidades de alturas.

- El modelo es aplicable para objetos ubicados entre 1.5 metros y 4.7 metros. Para distancias

mayores al rango nombrado con anterioridad, el sistema no es capaz de detectar la distancia a

la cual se encuentra el objeto de la cámara. Esto se debe a que se necesitaría realizar un modelo

de regresión lineal que contuviera con anterioridad muestras de diferencias de alturas en píxeles

para distancias mayores a 4.7 metros.

- A pesar de que algoritmos y el modelo de regresión lineal planteado se pueden ejecutar a partir

de la lectura de los frames de un vídeo o a partir de la lectura de varias imágenes, no se puede

implementar el sistema en tiempo real o en línea ya que el tiempo de procesamiento promedio

es de 1-1:30 minutos. El tiempo de procesamiento del ciclo completo en este proyecto es

imprescindible ya que se requiere la mayor agilidad para anuncio de los objetos que son

obstáculos del usuario para evitar choques con los mismos.

- Como se comentó en la sección 3.3.6.Especificaciones generales del sistema el audio no fue

posible reproducirlo en los algoritmos desarrollados, por lo que fueron reemplazados por

mensajes en pantalla que tenían la misma duración de un audio de notificación. Evidentemente

esto sería una limitación para una persona invidente ya que la persona necesita percibir la

información con los sentidos sensoriales que tiene. Se plantean dos posibles soluciones a este

inconveniente: la primera es trabajar todos los algoritmos fuera del servidor para que el audio

pueda ser reproducido, pero traería como consecuencia retardación en el sistema y la segunda

opción es anunciarle al usuario a través de vibraciones o transductores, por ejemplo, si el objeto

está muy cerca que la vibración dure más que cuando está lejos de la cámara.

Page 43: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

37

7. BIBLIOGRAFÍA

1] J. Camilo Suárez Escudero, “Discapacidad visual y ceguera en el adulto: Revisión de tema Adult

visual impairment and blindness: Review article.”

[2] EL TIEMPO-Nación*, “Población en condición de discapacidad y sus necesidades en Colombia

- Otras Ciudades - Colombia - ELTIEMPO.COM,” 22 de Mayo, 2017. .

[3] E. Auditivo, U. Administrativa, P. A. Adecuado, J. D. S. Cooperativos, P. A. Central, and T. De

Conducta, “Acrónimos de Educación Especial.”

[4] E. B. Goldstein, M. J. Blanco, and L. Sampedro Suarez, Sensacion y percepcion. Thomson, 2006.

[5] J. Borenstein and I. Ulrich, “The GuideCane-A Computerized Travel Aid for the Active

Guidance of Blind Pedestrians.”

[6] and S. P. S. A. K. Shrivastava, A. Verma, “Distance Measurement of an Object or Obstacle by

Ultrasound Sensors using P89C51RD2.”

[7] “Long Laser Cane.” [Online]. Available:

https://data.dlf.org.uk/product.php?product_id=0106676.

[8] Sujith B and Safeeda V, “Computer Vision-Based Aid for the Visually Impaired Persons-A

Survey And Proposing New Framework,” Int. J. Innov. Res. Comput. Commun. Eng. (An ISO,

vol. 3297, no. 5, 2007.

[9] S. A. K. DEBNATH N., HAILANI, Z.A., JAMALUDIN, S. y ALJUNID, “An electronically

guided walking stick.,” Eng. Med. Biol. Soc. Annu. Int. Conf. IEEE, 2001.

[10] Kay, “Binaural Sensory Aid-Sonic Guide,” 1996.

[11] “¿Qué es un pixel? - Red Gráfica Latinoamérica.” [Online]. Available:

http://redgrafica.com/Que-es-un-pixel. [Accessed: 20-Nov-2018].

[12] “Elementos basicos de la imagen digital | sergioleonn.” [Online]. Available:

https://sergioleonn.wordpress.com/2013/01/24/elementos-basicos-de-la-imagen-digital/.

[Accessed: 20-Nov-2018].

[13] “FOV | Academia Testo.” [Online]. Available: http://www.academiatesto.com.ar/cms/fov.

[Accessed: 20-Nov-2018].

[14] “Definición de Resolución de Vídeo » Concepto en Definición ABC.” [Online]. Available:

https://www.definicionabc.com/tecnologia/resolucion-video.php. [Accessed: 21-Nov-2018].

[15] T. Com and / Gopro, “Manual GOPROHero6.”

[16] “Distorsión de lente vs Distorsión de la perspectiva.” [Online]. Available:

https://www.xatakafoto.com/guias/distorsion-de-lente-vs-distorsion-de-la-perspectiva.

[Accessed: 20-Nov-2018].

[17] “Distorsion de perspectiva - Glosario de Fotografia Digital | DeCamaras.” [Online]. Available:

https://www.decamaras.com/CMS/component/option,com_glossary/Itemid,255/func,term/term,

distorsion+de+perspectiva. [Accessed: 20-Nov-2018].

[18] “Lens Distortion: What Every Photographer Should Know.” [Online]. Available:

https://clickitupanotch.com/lens-distortion/. [Accessed: 20-Nov-2018].

[19] “Objetivos Ojo de Pez, Todo lo que Necesitas Saber y Cuál Comprar.” [Online]. Available:

https://www.dzoom.org.es/ojo-de-pez/. [Accessed: 10-Dec-2018].

[20] “Definición de Cámara Fotográfica » Concepto en Definición ABC.” [Online]. Available:

https://www.definicionabc.com/tecnologia/camara-fotografica.php. [Accessed: 10-Dec-2018].

[21] “¿Qué es una GoPro? Características, modelos, precios y soportes - Rankia.” [Online].

Available: https://www.rankia.com/blog/adsl/2451971-que-gopro-caracteristicas-modelos-

precios-soportes. [Accessed: 10-Dec-2018].

[22] A. J. S. S. Carlos Ricolfe Viala, “PROCEDIMIENTO COMPLETO PARA EL CALIBRADO

DE CÁMARAS UTILIZANDO UNA PLANTILLA PLANA.”

[23] J. C. Laura Cabrera, Campos Rafael, “Pasos críticos en la estimación de pose en cámara: una

evaluación usando la biblioteca LTI-LIB2.” [Online]. Available:

https://www.researchgate.net/publication/290501100_Pasos_criticos_en_la_estimacion_de_pos

e_en_camara_una_evaluacion_usando_la_biblioteca_LTI-LIB2 [accessed Nov 20 2018].

[24] “Sistemas de Percepción Tema 2: Calibración de Cámaras.”

[25] A. Zhang, “A flexible New Technique for Camera Calibration,” 1999.

[26] F. D. R.Chung, “An Algebraic Approach to Camera Self Calibration,” Comput. Vis. Image

Underst., vol. 83, pp. 195–215, 2001.

Page 44: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

38

[27] D. A. Pizarro, P. Campos, and C. L. Tozzi, “COMPARACIÓN DE TÉCNICAS DE

CALIBRACIÓN DE CÁMARAS DIGITALES,” 2005.

[28] “Find distance from camera to object using Python and OpenCV.” [Online]. Available:

https://www.pyimagesearch.com/2015/01/19/find-distance-camera-objectmarker-using-python-

opencv/. [Accessed: 20-Nov-2018].

[29] R. F. Jiang, E. Science, Q. Lin, A. Physics, and E. Engineering, “Let Blind People See : Real-

Time Visual Recognition with Results Converted to 3D Audio.”

[30] Carlos Platero Dueñas, “Introducción a la Visión Artificial,” Introducción a la Visión Artificial,

p. p.28, 2009.

[31] Dpto.de Ciencia de la Computación e Inteligencia Artificial, “Visión artificial y Robótica.”

[Online]. Available: https://moodle2015-

16.ua.es/moodle/pluginfile.php/105463/mod_page/content/43/5-Reconocimiento de

objetos.pdf. [Accessed: 20-Nov-2018].

[32] “(PDF) Algoritmo de seguimiento de objetos en imágenes mediante reconstrucción iterativa de

histograma en tiempo real.” [Online]. Available:

https://www.researchgate.net/publication/269994370_Algoritmo_de_seguimiento_de_objetos_

en_imagenes_mediante_reconstruccion_iterativa_de_histograma_en_tiempo_real. [Accessed:

10-Dec-2018].

[33] “Explanation Needed: What Is A Frame Rate Or FPS (Frames Per Second) — Tekspecz.com.”

[Online]. Available: http://www.tekspecz.com/tekspecz/2014/05/12/explanation-needed-what-

is-a-frame-rate-or-fps-frames-per-second. [Accessed: 21-Nov-2018].

[34] Adrian Rosebrock, “Intersection over Union (IoU) for object detection - PyImageSearch,”

Machine Learning, Object Detection, Tutorials, 2016. [Online]. Available:

https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/.

[Accessed: 21-Nov-2018].

[35] W. Gómez Flores, “Reconocimiento de objetos en fotografías.”

[36] J. B. Pablo Flores, “Algoritmo SIFT: fundamento teórico,” pp. 1–5, 2011.

[37] David G. Lowe, “Distinctive Image Features from Scale-Invariant Keypoints.”

[38] J. Adolfo and P. Sánchez, “SISTEMA DE RECONOCIMIENTO DE OBJETOS REMOVIDOS

DE UNA ESCENA, UTILIZANDO VISIÓN POR COMPUTADOR.”

[39] J. Redmon, A. Farhadi, and C. Ap, “YOLOv3 : An Incremental Improvement.”

[40] J. Redmon, S. Divvala, R. Girshick, and A. Farhadi, “You Only Look Once: Unified, Real-Time

Object Detection,” 2015.

[41] " Detección and Y. S. De, “Universidad Autónoma de Madrid Proyecto fin de carrera.”

[42] “1.2 Tipos de errores: Error absoluto, error relativo, error porcentual, errores de redondeo y

truncamiento. - METODOS NUMERICOS.” [Online]. Available:

https://sites.google.com/site/metalnumericos/home/unidad-1/1-2-tipos-de-errores-error-

absoluto-error-relativo-error-porcentual-errores-de-redondeo-y-truncamiento. [Accessed: 21-

Nov-2018].

[43] “¿Qué es el error cuadrático medio RMSE? | El blog de franz.” [Online]. Available:

https://acolita.com/que-es-el-error-cuadratico-medio-rmse/. [Accessed: 22-Nov-2018].

[44] “Matriz de Confusión ~ Pirámide de la Calidad.” [Online]. Available:

http://calidadcliente.blogspot.com/2018/03/matriz-de-confusion.html. [Accessed: 20-Nov-

2018].

[45] “Intersection over Union (IoU) for object detection - PyImageSearch.” [Online]. Available:

https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/.

[Accessed: 20-Nov-2018].

[46] “Calibración de la cámara Opencv - ▷ Cursos Python y más desde 0 a Experto garantizados.”

[Online]. Available: https://www.aprenderpython.net/calibracion-la-camara-opencv/.

[Accessed: 22-Nov-2018].

Page 45: LOCALIZACIÓN DE OBJETOS ESPECÍFICOS EN UN AMBIENTE …

39

8. ANEXOS

En el siguiente enlace se encuentran los códigos pertinentes a cada anexo.

https://drive.google.com/drive/folders/14uMjCDRJMEu_akvPxRBJ5Lx_xAfd4OBy?usp=sharing

Anexo 1. Código de calibración de la cámara.

Anexo 2. Algoritmo de similitud de triángulos.

Anexo 3. Corrección de la distorsión.

Anexo 4. Ground Truth.

Anexo 5. Adecuación Algoritmo YOLO.

Anexo 6. Algoritmo de Tracking CSRT.

Anexo 7. Estimación de distancia y Modelo de regresión lineal.

Anexo 8. Algoritmo del sistema completo.

Anexo 9. Algoritmo del sistema completo con tracking.

Anexo 10. Modelos de regresión lineal para cada región y para cada objeto de interés.