desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería...

67
Escuela Politécnica Superior Desarrollo de un sistema de detección y predicción de la pose 3D de objetos en la escena mediante técnicas de deep learning Grado en Ingeniería Robótica Trabajo Fin de Grado Autor: Alejandro Delgado Marti Tutor/es: Sergio Orts Escolano Ester Martinez Martin Diciembre 2019

Upload: others

Post on 13-Aug-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Escuela

Politécnica

Superior

Desarrollo de un sistemade detección y predicciónde la pose 3D de objetosen la escena mediantetécnicas de deep learning

Grado en Ingeniería Robótica

Trabajo Fin de Grado

Autor:Alejandro Delgado MartiTutor/es:Sergio Orts EscolanoEster Martinez Martin

Diciembre 2019

Page 2: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 3: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Desarrollo de un sistema de detección ypredicción de la pose 3D de objetos en la

escena mediante técnicas de deeplearning

Basado en deep learning y redes convolucionales

AutorAlejandro Delgado Marti

Tutor/esSergio Orts Escolano

Departamento de ciencia de la computación e inteligencia artificialEster Martinez Martin

Departamento de ciencia de la computación e inteligencia artificial

Grado en Ingeniería Robótica

Escuela

Politécnica

Superior

ALICANTE, Diciembre 2019

Page 4: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 5: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

AbstractThe detection of real-time objects and the estimation of the 6D pose is crucial for augmented

reality, virtual reality and robotics either for the grip or manipulation of objects. In this workwe propose the implementation of an algorithm for the simultaneous detection and predictionof the 3D pose of objects in a scene. The algorithm to be implemented is inspired by the well-known architecture based on deep learning and convolutional networks for the detection of2D objects: YOLO. The technique to be implemented is able to detect and predict the 3Dpose of multiple objects in a scene without the need for post-processing techniques.

Page 6: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 7: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

ResumenLa detección de objetos en tiempo real y la estimación de la pose 6D es crucial para la

realidad aumentada, la realidad virtual y la robótica ya sea para el agarre o manipulación deobjetos. En este trabajo se propone la implementación de un algoritmo para la detección ypredicción simultánea de la pose 3D de objetos en una escena. El algoritmo a implementar estáinspirado en la conocida arquitectura basada en deep learning y redes convolucionales para ladetección de objetos 2D: YOLO. La técnica a implementar es capaz de detectar y predecir lapose 3D de múltiples objetos en una escena sin necesidad de técnicas de post-procesamiento.

Page 8: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 9: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Agradecimientos

En primer lugar, me gustaría agradecer a mis dos tutores que me han ayudado en larealización de este proyecto. A Sergio por proponerme este trabajo y por su ayuda desde elextranjero y a Ester por ayudarme tanto incluso cuando las cosas parecían que no funcionabany enseñarme más sobre el mundo del Deep Learning.

También debo agradecer a mis padres la confianza y apoyo que me han dado siempre sinel cual no habría podido llegar donde estoy ahora.

Por último quiero agradecer a los compañeros y amigos que he ganado en estos duros añosde estudios, con los que he compartido grandes momentos inolvidables tanto dentro comofuera de las aulas.

Page 10: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 11: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Nuestra recompensa se encuentraen el esfuerzo y no en el resultado.

Un esfuerzo total es una victoria completa

Mahatma Gandhi

xi

Page 12: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 13: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Índice general1 Introducción 1

1.1 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5 Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Estado del arte 32.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Métodos actuales para la predicción y estimación de la pose 6D . . . . . . . . 42.3 Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 Convolutional Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5 Variantes en la estimación de la pose 6D . . . . . . . . . . . . . . . . . . . . . 8

3 Metodología 113.1 Tecnologías empleadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.1.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.1.2.1 Pytorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.1.2.2 RobotriX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2 Bases de datos empleadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Desarrollo 194.1 El modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.2 Procedimiento para el entrenamiento . . . . . . . . . . . . . . . . . . . . . . . 234.3 Predicción de la pose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.3.1 Algoritmo PnP empleado . . . . . . . . . . . . . . . . . . . . . . . . . 25

5 Resultados 275.1 Entrenamiento y validación del conjunto de datos LINEMOD . . . . . . . . . 275.2 Entrenamiento y validación del conjunto de datos sintéticos . . . . . . . . . . 34

5.2.1 Validación con imágenes sintéticas . . . . . . . . . . . . . . . . . . . . 395.2.2 Validación con imágenes reales . . . . . . . . . . . . . . . . . . . . . . 41

6 Conclusiones 436.1 Aspectos destacados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.2 Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Bibliografía 45

xiii

Page 14: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 15: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Índice de figuras

1.1 Predicción de la pose 6D de un objeto . . . . . . . . . . . . . . . . . . . . . . 1

2.1 Arriba a la izquierda: imagen de prueba RGB-D, la mitad superior muestra laprofundidad y la mitad inferior la imagen RGB. La posición 6D estimada delobjeto de consulta (cámara) es ilustrada con un cuadro delimitador azul, y laverdad fundamental respectiva con un cuadro delimitador de color verde Arribaa la derecha: Visualización de la búsqueda de algoritmos para la pose óptima,donde la entrada es un zoom del área central. El algoritmo optimiza de formasimilar a RANSAC en un espacio de postura 6D grande y continuo. (a) Mapade probabilidad para el objeto de consulta, (b) coordenadas de objetos 3Dpredichos de un solo árbol mapeado al cubo RGB, (c) coordenadas del objetoreal 3D correspondientes, (d) superposición del modelo 3D en azul sobre laimagen de prueba (renderizado de acuerdo con la postura estimada) . . . . . 5

2.2 Representación de la arquitectura de una red neuronal tradicional vs DeepLearning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3 Ejemplo de la aplicación de un filtro Kernel . . . . . . . . . . . . . . . . . . . 82.4 Fuente de la imagen: http://cmp.felk.cvut.cz/sixd/workshop_2018/data/

hodan_r6d_eccv18_talk.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.5 Fuente de la imagen: http://cmp.felk.cvut.cz/sixd/workshop_2018/data/

hodan_r6d_eccv18_talk.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.6 Fuente de la imagen: http://cmp.felk.cvut.cz/sixd/workshop_2018/data/

hodan_r6d_eccv18_talk.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.7 Fuente de la imagen: http://cmp.felk.cvut.cz/sixd/workshop_2018/data/

hodan_r6d_eccv18_talk.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.1 Librería para Deep Learning empleada en este proyecto. . . . . . . . . . . . . 133.2 Vista general de la secuencia de grabación (online). . . . . . . . . . . . . . . . 143.3 Vista general de la descarga de datos (offline). . . . . . . . . . . . . . . . . . . 143.4 Imagen de los objetos del conjunto de datos LINEMOD. . . . . . . . . . . . . 153.5 Representación 3D de un objeto(cam) del conjunto de datos LINEMOD. . . . 163.6 Imagen que muestra el conjunto de los objetos sintéticos generados con Robotrix. 17

4.1 El sistema de detección YOLO. . . . . . . . . . . . . . . . . . . . . . . . . . . 19

xv

Page 16: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

xvi Índice de figuras

4.2 (a) Arquitectura CNN utilizada. (b) Ejemplo de una imagen de entrada con4 objetos. (c) la cuadricula de S × S celdas responsables de la detección delos 4 objetos. (d) Cada celda predice la localización 2D de las esquinas de laproyección 3D de las bounding boxes en la imagen.(e) Tensor de salida 3D dela red, que representa para cada celda un vector con las localizaciones de lasesquinas 2D, la probabilidad de pertenencia a una clase y un valor asociadocon la predicción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.3 Confianza c(x) como una función de la distancia DT (x) entre el punto predichoy el punto objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.4 Proyección del objeto teniendo en cuenta las coordenadas de la cámara . . . . 25

5.1 Función de loss del objeto ape en la etapa de entrenamiento. . . . . . . . . . 275.2 Función de loss del objeto bench en la etapa de entrenamiento. . . . . . . . . 285.3 Función de loss del objeto cam en la etapa de entrenamiento. . . . . . . . . . 285.4 Función de loss del objeto can en la etapa de entrenamiento. . . . . . . . . . . 295.5 Función de loss del objeto cat en la etapa de entrenamiento. . . . . . . . . . . 295.6 Función de loss del objeto driller en la etapa de entrenamiento. . . . . . . . . 305.7 Función de loss del objeto duck en la etapa de entrenamiento. . . . . . . . . . 305.8 Función de loss del objeto egg en la etapa de entrenamiento. . . . . . . . . . . 315.9 Función de loss del objeto glue en la etapa de entrenamiento. . . . . . . . . . 315.10 Función de loss del objeto hole en la etapa de entrenamiento. . . . . . . . . . 325.11 Función de loss del objeto iron en la etapa de entrenamiento. . . . . . . . . . 325.12 Función de loss del objeto lamp en la etapa de entrenamiento. . . . . . . . . . 335.13 Gráfica que muestra la función de loss durante la etapa de entrenamiento en

función del número de épocas del objeto mustard en un de los primeros intentos. 355.14 Gráfica que muestra el error en traslación del objeto mustard en la etapa de

entrenamiento en función del número de iteraciones. . . . . . . . . . . . . . . 355.15 Gráfica que muestra el error en rotación del objeto mustard en la etapa de

entrenamiento en función del número de iteraciones. . . . . . . . . . . . . . . 365.16 Gráfica que muestra el error de la posición de los vértices del objeto mustard

en la etapa de entrenamiento en función del número de iteraciones. . . . . . . 365.17 Gráfica que muestra la función de loss durante la etapa de entrenamiento en

función del número de épocas del objeto mustard en el entrenamiento final. . 375.18 Gráfica que muestra el error en traslación del objeto mustard en la etapa de

entrenamiento en función del número de iteraciones. . . . . . . . . . . . . . . 385.19 Gráfica que muestra el error en rotación del objeto mustard en la etapa de

entrenamiento en función del número de iteraciones. . . . . . . . . . . . . . . 385.20 Gráfica que muestra el error de la posición de los vértices del objeto mustard

en la etapa de entrenamiento en función del número de iteraciones. . . . . . . 395.21 Detección y predicción de la pose del objeto mustard en entorno simulado con

resultado correcto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.22 Detección y predicción de la pose del objeto mustard en entorno simulado con

resultado fallido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.23 Detección y predicción de la pose del objeto banana en entorno simulado con

resultado correcto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Page 17: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Índice de figuras xvii

5.24 Detección y predicción de la pose del objeto banana en entorno simulado conresultado fallido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.25 Detección y predicción de la pose del objeto mustard en entorno real conresultado fallido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Page 18: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 19: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Índice de tablas3.1 Características de Jackson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.1 Comparación de YOLO v1 vs v2 . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.1 Tabla comparativa entre los resultados obtenidos por la aplicación de la que seha partido [1] y los modelos obtenidos con nuestro equipo teniendo en cuentael error en la proyección 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.2 Tabla que muestra los porcentajes de los tres errores a tener en cuenta en lavalidación de los modelos obtenidos con los datos sintéticos . . . . . . . . . . 41

xix

Page 20: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 21: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

1 Introducción

1.1 Outline

En este trabajo de fin de grado se ha investigado y desarrollado una solución orientada adetectar y obtener la pose 6D de un objeto a partir de una imagen RGB y una ConvolutionalNeuronal Network (CNN) que sigue la arquitectura propuesta por [1]. El objetivo principaldel proyecto es obtener la mejor predicción posible de la pose con el fin de poder integrar elsistema a bordo de una plataforma robótica móvil como podría ser el robot Pepper [2] paradotarlo de la capacidad de conocer esta pose y poder manipular el objeto. El proyecto sedesarrolló durante el período de enero a julio de 2019 en colaboración con el Departamentode Ciencia de la Computación e Inteligencia Artificial de la Universidad de Alicante.

1.2 Motivación

En este documento resumimos los resultados del trabajo realizado durante el Grado deIngeniería Robótica, cursado entre los años 2015-2019 en la Universidad de Alicante. Estetrabajo ha sido motivado por la colaboración del Departamento de Ciencia de la Computacióne Inteligencia Artificial en tareas de investigación relacionadas con la Visión por computador,Deep Learning y la computación de alto rendimiento.

El objetivo principal es el desarrollo de un sistema que permita obtener la pose de unobjeto 3D a partir de una imagen RGB obtenida de cualquier cámara convencional(ver Figura1.1), con la que no sería posible con las técnicas convencionales debido a que no obtieneninformación 3D de la escena, y utilizar esta pose para poder manipular el objeto.

Figura 1.1: Predicción de la pose 6D de un objeto

1

Page 22: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

2 Introducción

1.3 PropuestaEn este trabajo se propone la implementación de un algoritmo para la detección y predicción

simultánea de la pose 3D de objetos en una escena. El algoritmo utilizado del cual se parteestá inspirado en la conocida arquitectura basada en deep learning y redes convolucionalespara la detección de objetos 2D: YOLO. La técnica a implementar es capaz de detectar ypredecir la pose 3D de múltiples objetos en una escena sin necesidad de técnicas de post-procesamiento. Esta técnica está pensada para dotar a un robot de la capacidad de detectarobjetos en su entorno, y lo más importante, predecir su pose 3D para su posterior interacción.El algoritmo utilizará como entrada información RGB.

1.4 ObjetivosEl objetivo principal de este proyecto es desarrollar una implementación basada en redes

convolucionales para la detección y predicción de la pose 3D de múltiples objetos en unaescena. Para esto se va a aprender sobre técnicas de deep learning y redes neuronales convo-lucionales para inferir información 3D a partir de una imagen RGB, evitando así el uso decámaras 3D y evitando así el tiempo de procesamiento requerido para trabajar con el tipo dedatos generado por estas cámaras.

1.5 EstructuraEste documento está estructurado de la siguiente manera: el Capítulo 1 presenta y describe

el proyecto, plantea la motivación del trabajo y sus objetivos generales y específicos. Elcapítulo 2 presenta un investigación sobre las técnicas existentes para la detección y predicciónde objetos. Esta investigación comprenderá conjuntos de datos relacionados, una introduccióndel Deep Learning, y de las CNNs. El Capítulo 3 presenta la metodología seguida durante eldesarrollo de este proyecto y expone las diferentes tecnologías y conjuntos de datos empleadospara llevar a cabo este trabajo. El Capítulo 4 presenta nuestra arquitectura propuesta la cualparte de [1]. El Capitulo 5 presenta los experimentos realizados empleando el modelo obtenido.Finalmente, el Capítulo 6 detalla las conclusiones extraídas de este proyecto, el trabajo futuroy direcciones de investigación.

Page 23: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

2 Estado del arte

2.1 Introducción

El término pose del objeto se puede definir como una orientación que caracteriza a undeterminado objeto, y que parte de un punto de referencia ubicado en un punto estratégicodentro de dicho objeto, ya sea el centro del objeto o una zona característica. La detección deobjetos en tiempo real y la estimación de la pose 6D es crucial para la realidad aumentada,la realidad virtual y la robótica ya sea para el agarre o manipulación de objetos. Actual-mente, los métodos basados en datos de profundidad adquiridos por cámaras RGB-D sonbastante robustos. La disponibilidad de sensores RGB-D es mucho menor que el acceso auna cámara RGB que podemos encontrar en cualquier dispositivo hoy en día, por ejemplo ensmartphones., lo que hace a los métodos de detección y estimación de la pose 6D de objetoscon imágenes RGB más atractivos. Para cámaras RGB existen muchos keypoints rápidos deobtener y métodos basados en bordes que son muy efectivos para objetos texturizados. Sinembargo, tienen dificultad con la manipulación y procesamiento de objetos con poca o sintextura.

En cámaras de vídeo y dispositivos portátiles de baja resolución las técnicas de aprendi-zaje profundo se han utilizado recientemente para abordar estas limitaciones. Algunas delas técnicas que existen actualmente son por ejemplo BB8 [3] que emplea un pipeline pa-ra la detección del objeto 6D hecha con una Convolutional Neuronal Network (CNN) quesegmenta el objeto y otro pipeline para predecir las ubicaciones 2D de las proyecciones delcuadro delimitador 3D del objeto dada la segmentación, las cuales se utilizan para calcular lapostura 6D utilizando un algoritmo Perspectiva-n-Point PnP [4] siendo este método efectivopero lento debido a su carácter multi-etapa. El objetivo del problema PnP es determinarla posición y orientación de una cámara dados sus parámetros intrínsecos y un conjunto deN correspondencias entre los puntos 3D y sus proyecciones 2D. En particular, aplicacionescomo el seguimiento de cámara basado en puntos de característica requieren tratar con cien-tos de puntos con características ruidosas en tiempo real, lo que requiere la utilización demétodos computacionalmente eficientes. Otro ejemplo es SSD-6D [5], el cual emplea pipelinediferente que se basa en la arquitectura SSD [6] para predecir una rejilla de delimitación 2Dy una estimación muy aproximada de la orientación del objeto en un solo paso. A esto lesigue una aproximación para predecir la profundidad del objeto a partir del tamaño de sucuadro delimitador 2D en la imagen, para elevar las detecciones 2D a 6D. Tanto BB8 comoSSD-6D requieren un paso de refinamiento de la pose adicional para mejorar la precisión, loque aumenta su coste linealmente con el número de objetos detectados.

3

Page 24: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

4 Estado del arte

2.2 Métodos actuales para la predicción y estimación de la pose6D

Actualmente nos encontramos con diferentes métodos para estimar la pose 6D de un objeto,entre los que encontramos:

Métodos clásicos : estos métodos tradicionales están basados en características y puedenconsiderarse la solución más extendida para abordar el problema de reconocimientode objetos utilizando datos tridimensionales. Normalmente se dividen en dos grupos:métodos locales y globales. Los métodos locales están basados en características y endescriptores coincidentes de las características de la superficie local, que generalmen-te se extraen alrededor de puntos clave seleccionados por razones de eficiencia. Estosmétodos fueron diseñados para que fueran invariantes a cambios de escala, rotación, ilu-minación y diferentes puntos de vista como [7, 8]. Estos métodos son a menudo rápidosy robustos frente a la oclusión y al desorden de la escena. Sin embargo, solo manejande manera fiable objetos que son texturizados en imágenes de alta resolución. Por otrolado, los métodos globales basados en características siguen una canalización diferentepara la cual toda la superficie del objeto se describe mediante un conjunto único opequeño de descriptores. Para la mayoría de los enfoques, cada característica globaldescribe cada una de las vistas del objeto, denominadas descriptores dependientes delpunto de vista. La naturaleza global de estos descriptores implica la separación de lasuperficie descrita de su entorno, lo que introduce un paso de segmentación en la tu-bería de reconocimiento de características globales común. Otros métodos relacionadosincluyen un registro basado en modelos 3D, los cuales permiten un conocimiento previode la forma y apariencia de un objeto específico para ser utilizado durante el proceso deinterpretación visual. Este reconocimiento basado en modelos es un componente esen-cial de la mayoría de las aplicaciones potenciales de la visión. Muchos de estos sistemasproponen construir formas complejas de primitivas más simples, como poliedros, cilin-dros generalizados y super-cuadráticos. Con estas primitivas, los objetos individuales,así como escenas completas son representadas. Desafortunadamente, mientras que estosmodelos proporcionan buenos descriptores de objetos y escenas que son robustamentecoincidentes, para imágenes del mundo real demostraron ser muy difíciles de calcularen el momento.Con la llegada de las poderosas computadoras y avances en el aprendizaje automático,se vuelve factible revisar algunas de las ideas clásicas de modelado de objetos 3D. En elcontexto de comprensión de una escena indoor existen diferentes métodos para inferiren la disposición 3D de las paredes y la segmentación de los objetos y muestra quedicho modelado 3D no solo proporciona una mejor interpretación de la escena, sino quetambién mejora el rendimiento de la detección de objetos 2D.

Métodos RGB-D : Estos métodos emplean la información adicional de profundidad propor-cionada por cámaras RGB-D con las cuales combinando información de color y profun-didad se mejora sustancialmente la calidad de los resultados. Basados en estos métodos,nos encontramos con Hinterstoisser [9] el cual propuso una técnica de coincidencia deplantilla extendida a los datos RGB-D obtenidos con una Kinect utilizando las normasde superficie cuantificadas como una indicación de profundidad. Funciona en tiempo

Page 25: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

2.2. Métodos actuales para la predicción y estimación de la pose 6D 5

real, con mucho desorden, no requiere una etapa de entrenamiento que requiera muchotiempo y puede manejar objetos sin texturas. Se basa en una representación eficientede plantillas que capturan las diferentes modalidades, y en muchos experimentos conhardware de productos básicos se muestra que este enfoque supera significativamen-te los métodos más avanzados en las modalidades individuales. Otro ejemplo es el deRios [10] el cual extendió el trabajo de Hin utilizando aprendizaje discriminativo y encascada, detectando con mayor precisión y eficiencia.

Las técnicas basadas en el aprendizaje automático supervisado también se han utilizadopara el reconocimiento de objetos y la estimación de poses en datos RGB-D. Un ejemplode esto es el propuesto por Brachmann [11], método que podemos ver en la Figura 2.1,el cual presenta un enfoque flexible que puede tratar con objetos genéricos, tanto contextura como sin textura. El nuevo concepto clave que introdujo fue una representaciónintermedia aprendida en forma de una etiqueta de coordenadas de un objeto 3D densoemparejado con un etiquetado de clase. Con este método muestra que para un conjuntode datos común con objetos sin textura, donde las técnicas basadas en plantillas sonadecuadas y de vanguardia, su enfoque es ligeramente superior en términos de precisióny robustez a condiciones de iluminación variables. Para ello emplea bosques de regresiónpara predecir coordenadas de objetos densos, segmentar el objeto y recuperar su posede correspondencias.

Figura 2.1: Arriba a la izquierda: imagen de prueba RGB-D, la mitad superior muestra la profundi-dad y la mitad inferior la imagen RGB. La posición 6D estimada del objeto de consulta(cámara) es ilustrada con un cuadro delimitador azul, y la verdad fundamental respectivacon un cuadro delimitador de color verde Arriba a la derecha: Visualización de la bús-queda de algoritmos para la pose óptima, donde la entrada es un zoom del área central.El algoritmo optimiza de forma similar a RANSAC en un espacio de postura 6D grandey continuo. (a) Mapa de probabilidad para el objeto de consulta, (b) coordenadas deobjetos 3D predichos de un solo árbol mapeado al cubo RGB, (c) coordenadas del objetoreal 3D correspondientes, (d) superposición del modelo 3D en azul sobre la imagen deprueba (renderizado de acuerdo con la postura estimada)

Page 26: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

6 Estado del arte

Zach [12] exploró la programación dinámica rápida basada en algoritmos para imágenesRGB-D. También tenemos a Kehl [13] el cual presentó un método basado en una CNNutilizando parches RGB-D empleando un método basado en características de pares depuntos como una solución comprometida entre los enfoques local y global. Siguiendoel canal tradicional de emparejamiento local mientras usaba un modelo global. Esteenfoque mostró un compromiso prometedor entre las tasas de reconocimiento y la velo-cidad. Basado en la idea de los pares de volantes, el método se basa en características decuatro dimensiones definidas entre pares de puntos orientados para describir la super-ficie del objeto. Estas características se utilizan para encontrar correspondencias entrelos pares de puntos de la escena y el modelo, que se agrupan para cada punto de laescena, generando un conjunto de candidatos de pose. Las correspondencias se determi-nan mediante la cuantificación del espacio de características, agrupando efectivamentepares similares. Luego, para cada punto de la escena, se genera una pose candidataagrupando todos los pares correspondientes relacionados en un espacio bidimensionaldefinido por los puntos correspondientes del modelo y los ángulos de rotación alrededorde los puntos normales. Al final, las poses de los candidatos se agrupan y clasifican paraobtener una hipótesis final.

Métodos basados en CNNs para imágenes RGB : La estimación del punto de vista del ob-jeto a partir de imágenes 2D es una tarea esencial en la visión por computador. Sinembargo, dos cuestiones obstaculizan su progreso: la escasez de datos de formación depuntos de vista con anotaciones, y la falta de características de gran alcance. En los últi-mos años, la investigación en la mayoría de las tareas de estimación de la pose han sidodominadas por las CNNs. Técnicas como keypoints y viewpoints [14], las cuales demues-tran que aprovechar las estimaciones de puntos de vista puede mejorar sustancialmentelas predicciones de puntos clave locales, y otras como Render para CNNs [15] que me-diante la clasificación de objetos y la estimación de la pose 3D en tareas de clasificación,específicamente mediante la discretización del espacio de la pose. En contraste, PoseNet[16] propone usar una CNN para inferir directamente desde una imagen RGB a una po-se 6D, aunque para la estimación de la pose de la cámara, utiliza una tarea ligeramentediferente, dado que PoseNet produce un componente traslacional y rotacional, los dostérminos de pérdida asociados deben ser equilibrados cuidadosamente sintonizando unhiper-parámetro durante el entrenamiento. Para evitar este problema, la arquitecturamás nueva de PoseCNN [17] está entrenada para predecir la pose del objeto 6D desdeuna sola imagen RGB en múltiples etapas, mediante el desacoplamiento de la traduc-ción y la predicción de la rotación. El uso de una función de pérdida geodésica, la cualse encuentra definida como la diferencia entre dos matrices de rotación, es más adecua-do para optimizar las rotaciones 3D, como la sugerida por Mahendran [18], medianteun marco de regresión CNN con una función adecuada de representación, el aumentode datos y la pérdida en obtención de la geometría del espacio de la pose. Otra formade abordar este problema ha surgido recientemente como el SSD-6D [5], las CNNs nopredicen directamente la pose del objeto, en su lugar, dan como salida las coordenadas2D, las máscaras 2D, o la predicción de la orientación discreta, a partir de las cualesla postura 6D se puede inferir. Ya que todas las predicciones están en la imagen 2D, elentrenamiento se vuelve numéricamente más estable, dando como resultado un mejorrendimiento en el conjunto de datos LINEMOD [9]. En paralelo a estos desarrollos, en

Page 27: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

2.3. Deep Learning 7

la tarea de detección de objetos 2D, existe una tendencia progresiva hacia el disparo demarcos en CNN como una alternativa a los métodos de dos etapas como Faster-RCNN[19] que primero encuentra las ubicaciones de algunos candidatos en la imagen y luegolas clasifica como objetos o fondo. Recientemente, las arquitecturas one shot, las cualesutilizan una única imagen y no tiene en cuenta información temporal y ningún otrocontexto, como YOLO [20] y SSD [6] han demostrado ser rápidas y precisas. SSD se haextendido para predecir la identidad del objeto, su cuadro delimitador 2D en la imageny una estimación discreta de la orientación del objeto.

2.3 Deep Learning

El término Deep Learning[21] significa un método de aprendizaje basado en un conceptoabstracto de una red similar a nuestro cerebro. La idea clave es que esta red está compuestapor nodos individuales o neuronas, que están conectadas entre ellas, pudiendo enviar infor-mación entre ellas. Mientras que los algoritmos tradicionales de aprendizaje automático sonlineales, el Deep Learning se apila en una jerarquía de creciente complejidad y abstraccióncomo se puede ver en la Figura 2.2, permite que los modelos computacionales compuestos demúltiples capas de procesamiento aprendan representaciones de datos con múltiples niveles deabstracción. Estos métodos han mejorado dramáticamente el estado del arte en reconocimien-to de voz, reconocimiento visual de objetos, detección de objetos y muchos otros dominioscomo el descubrimiento de fármacos y la genómica.

Figura 2.2: Representación de la arquitectura de una red neuronal tradicional vs Deep Learning

El Deep Learning descubre una estructura compleja en grandes conjuntos de datos utili-zando un algoritmo de propagación hacia atrás para indicar cómo una máquina debe cambiarsus parámetros internos que se utilizan para calcular la representación en cada capa a partirde la representación en la capa anterior, siendo capaz de procesar datos en bruto y automá-ticamente aprender las características necesarias para realizar determinadas tareas.

Page 28: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

8 Estado del arte

2.4 Convolutional Neural Network

Las CNNs son un tipo de red neuronal diseñada para procesar datos que vienen en formade matrices múltiples. Esto es útil para procesar cosas como el lenguaje natural, audio,vídeo e imágenes. Inspiradas en la organización animal de la corteza visual, se desarrollanen torno a cuatro conceptos: conexiones locales, pesos compartidos, agrupación y el uso demúltiples capas. Gracias a la reducción del tiempo de computo y uso de memoria de estoscuatro conceptos, las CNNs han sido ampliamente utilizadas en imágenes. Esta reducción esprincipalmente lograda gracias al reemplazo de toda la multiplicación de matrices en las redesneuronales estándar. Éstas conectan todos y cada uno de los elementos de la entrada con cadaelemento oculto, generando enormes cantidades de parámetros sin ningún tipo de concienciaespacial. En cambio, en las CNNs, cada elemento de la capa oculta se asigna a un áreaespecífica de la entrada, generando un número más pequeño pero suficiente de parámetrosque también tienen conciencia espacial. Lo que una CNN hace, en un sentido amplio, es reducirla información mirando las regiones individuales de los datos y recuperando las característicasimportantes para ello emplean filtros denominados kernels como se puede ver en la Figura2.3.

Figura 2.3: Ejemplo de la aplicación de un filtro Kernel

Además, las capas de agrupación se aplican para reducir la dependencia espacial de lacaracterística detectada, o, en otras palabras, hacer que la red aprenda nuevas característicassin necesidad de estar en una parte específica de una imagen.

2.5 Variantes en la estimación de la pose 6D

Existen 4 variantes en la localización 6D de objetos. Estas son SiSo, SiMo, MiSo y MiMo.

• SiSo: una sola instancia para un solo objeto (ver Figura 2.4).

Page 29: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

2.5. Variantes en la estimación de la pose 6D 9

Figura 2.4: Fuente de la imagen: http://cmp.felk.cvut.cz/sixd/workshop_2018/data/hodan_r6d_eccv18_talk.pdf

• SiMo: una sola instancia para múltiples objetos (ver Figura 2.5).

Figura 2.5: Fuente de la imagen: http://cmp.felk.cvut.cz/sixd/workshop_2018/data/hodan_r6d_eccv18_talk.pdf

• MiSo: múltiples instancias para un solo objeto (ver Figura 2.6).

Figura 2.6: Fuente de la imagen: http://cmp.felk.cvut.cz/sixd/workshop_2018/data/hodan_r6d_eccv18_talk.pdf

• MiMo: múltiples instancias para múltiples objetos (ver Figura 2.7).

Figura 2.7: Fuente de la imagen: http://cmp.felk.cvut.cz/sixd/workshop_2018/data/hodan_r6d_eccv18_talk.pdf

Page 30: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

10 Estado del arte

Para este trabajo nos hemos basado en la variante mas común, SiSo, en la cual tenemosuna instancia para cada uno de los objetos a detectar.

Page 31: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

3 Metodología

Este proyecto tiene como objetivo lograr una red neuronal convolucional (CNN) funcionalcapaz de detectar y predecir la pose 6D de un objeto a partir de una imagen RGB. Para llevara cabo este proyecto, se han planteado diferentes tecnologías que fueron utilizadas duranteel desarrollo de este proyecto. Por una parte se va a especificar el hardware utilizado pararealizar los entrenamientos y la validación de la red y posteriormente el software empleado.Para desarrollar la aplicación se requiere de una metodología compuesta de diferentes pasosque son comunes a la mayoría de aplicaciones Deep Learning. Estos pasos son:

• Obtención y clasificación de los datos

• Extracción de funciones

• Entrenamiento de la red

• Validación y evaluación del modelo

3.1 Tecnologías empleadasEn esta sección se van a hablar de las diferentes tecnologías empleadas para desarrollar

este proyecto, tanto hardware como software.

3.1.1 HardwarePara la realización de este proyecto se ha empleado el servidor de Jackson proporcionado

por el departamento de Ciencia de la Computación e Inteligencia Artificial de la Universidadde Alicante. Debido a que los algoritmos de deep learning consumen muchos recursos tantode memoria, como de tiempo y computación, el empleo de este servidor, desarrollado espe-cialmente para esto, ha sido esencial para el desarrollo de este proyecto. Las característicastécnicas de este servidor se ven reflejadas en la Tabla 3.1

JacksonGPU NVIDIAQuadro P6000

1645 MHz de frecuencia acelerada y 1506 de normal24 GB de memoria del adaptador

GPU GeForceRTX 2080

1710 MHz de frecuencia acelerada y 1515 de normal8 GB de memoria del adaptador

Tabla 3.1: Características de Jackson.

Las pruebas se han realizado en Ubuntu 16.4, una distribución de código abierto del sistemaoperativo Linux basada en Debian con CUDA v8 y cudNN v5.1. La implementación está

11

Page 32: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

12 Metodología

basada en PyTorch 0.3.1 y testeada con Python 2.7 con las dependencias de las siguientesdependencias instaladas en un entorno conda: numpy, scipy, PIL y opencv-python.. En cuantoal servidor, está configurado para poder acceder remotamente empleando Secure Shell(SSH).Para poder acceder a este es necesaria una clave y solo usuarios autorizados pueden accedercon la posibilidad de reenviar X11 a través de la conexión SSH para conseguir visualizar lassalidas de pantalla.

3.1.2 Software

El sistema de detección y predicción de la pose de un objeto se realizará utilizando losmarcos más recientes en Deep Learning debido al rendimiento y la simplicidad que puedenofrecer para construir una red neuronal. El marco principal que vamos a emplear es Pytorch.

3.1.2.1 Pytorch

Pytorch[22] es una librería de Python muy reciente, que dispone de una gran cantidadde manuales y tutoriales con una comunidad que no para de crecer, diseñada para realizarcálculos numéricos haciendo uso de la programación de tensores. Además permite su ejecuciónen GPU para acelerar los cálculos, disponiendo de una interfaz muy sencilla para la creaciónde redes neuronales pese a trabajar de forma directa con tensores sin la necesidad de unalibrería a un nivel superior como pueda ser Keras[23] para Theano[24] o Tensorflow[25].

Al contrario que Tensorflow, PyTorch trabaja con grafos dinámicos en vez de estáticos.Esto significa que en tiempo de ejecución se pueden ir modificando las funciones y el cálculodel gradiente variará con ellas. En cambio en Tensorflow debemos definir primero el grafode computación y después calcular los resultados de los tensores a partir de este grafo, estodificulta la depuración de código y hace más tediosa su implementación.

Page 33: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

3.1. Tecnologías empleadas 13

Figura 3.1: Librería para Deep Learning empleada en este proyecto.

Normalmente PyTorch es usada tanto para sustituir numpy y procesar los cálculos enGPU como para la investigación y desarrollo en el campo del Machine Learning, centradoprincipalmente en el desarrollo de redes neuronales

PyTorch dispone de soporte para su ejecución en tarjetas gráficas (GPU), utilizando inter-namente CUDA [26], una API que conecta la CPU con la GPU que ha sido desarrollado porNVIDIA.

3.1.2.2 RobotriX

Para generar el conjunto de datos sintéticos adicionales con los que se va a entrenar nuestraCNN se ha empleado RobotriX [27], un conjunto de datos de interior extremadamente foto-rrealista diseñado para permitir la aplicación de técnicas de Deep Learning para una ampliavariedad de problemas de visión artificial. RobotriX consiste en escenas interiores hiperrea-listas que son exploradas por un agente, en este caso un robot, que también interactúan conobjetos de manera visualmente realista en un mundo simulado. Las escenas fotorrealistas ylos robots son renderizados por Unreal Engine[28], un motor de juego creado por la compa-ñía Epic Games, en unas gafas de realidad virtual que captan la mirada del robot para queun operador humano pueda mover a éste y usar controladores para el control de las manosrobóticas (ver en Figura 3.2).

Page 34: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

14 Metodología

Figura 3.2: Vista general de la secuencia de grabación (online).

La información de la escena se descarga por fotogramas para que pueda reproducirse desdefuera utilizando UnrealCV [29] para generar datos en bruto y etiquetas de ground truth(verFigura 3.3). Gracias a la alta calidad y cantidad de información tanto en bruto como deetiquetas, RobotriX es muy útil en tareas de investigación de visión artificial en 2D y 3D,sirviendo para generar bases de datos de manera muy sencilla.

Figura 3.3: Vista general de la descarga de datos (offline).

3.2 Bases de datos empleadasPara probar, entrenar y validar nuestra red se han empleado dos conjuntos de datos dife-

rentes las cuales se describen a continuación.LINEMOD: LINEMOD[30] es un método eficiente para detectar la posición de un objeto en

la salida de una Kinect, un mapa de profundidad registrado en una imagen a color.Cuando se encuentra la posición de un objeto, no proporciona solo la ubicación 2D delobjeto en la imagen, sino que también proporciona una estimación aproximada de su

Page 35: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

3.2. Bases de datos empleadas 15

pose, todo esto gracias al uso de marcadores, que podemos observar en la figura 3.4, conlos cuales es posible recuperar la pose real del objeto u objetos en la mesa. Gracias aesto, LINEMOD se ha convertido en un punto de referencia estándar para la estimaciónde posturas 6D de objetos sin texturas. A cada objeto central de cada imagen RGB sele es asignado una rotación, una traslación y una identificación. Además se proporcionauna malla 3D completa que representa al objeto.

Figura 3.4: Imagen de los objetos del conjunto de datos LINEMOD.

Ademas de ser un método, es el nombre que se le da al conjunto de datos que empleanen Real time[1]. Todo este conjunto de datos forma un total de 15783 imágenes enLINEMOD para los 13 objetos(ver Figura 3.4). Para cada objeto tenemos la siguienteorganización y los siguientes archivos:

• Conjunto de entrenamiento: imágenes RGB de los objetos para la etapa deentrenamiento

• Conjunto de validación: imágenes RGB de los objetos para la etapa de valida-ción

• mask: imágenes segmentadas para evitar la influencia del resto de la escena en elentrenamiento.

• labels: conjunto de ficheros .txt que contienen las coordenadas de las 8 esquinasde la bounding box del objeto y del centroide.

• train.txt: fichero .txt que contiene la ruta de todas las imágenes utilizadas en laetapa de entrenamiento

Page 36: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

16 Metodología

• test.txt: fichero .txt que contiene la ruta de todas las imágenes utilizadas en laetapa de validación

• objeto.ply: archivo que contiene la representación 3D de cada objeto(ver Figura3.5)

• objeto.data: archivo que contiene la información para poder cargar todos losarchivos anteriores además de un valor de diámetro que sirve para validar el modeloentrenado y obtener la métrica 3D.

Figura 3.5: Representación 3D de un objeto(cam) del conjunto de datos LINEMOD.

La división de los datos de la etapa de entrenamiento y validación será siempre la mismapara todos los entrenamientos.

Datos sintéticos: Este conjunto de datos ha sido generado con el entorno virtual Robotrix,obteniendo imágenes e información de 4 objetos (mustard, banana, pear y spatula).Para esto se ha empleado un total de 41466 imágenes de los 4 objetos divididas dela siguiente forma: 9700 imágenes para el entrenamiento y 1142 para la validación delobjeto mustard, 9084 imágenes para el entrenamiento y 728 para la validación del objetobanana, 9535 imágenes para el entrenamiento y 889 para la validación del objeto pear y9269 imágenes para el entrenamiento y 1119 para la validación del objeto spatula. Paraobtener los datos necesarios se ha realizado de la misma manera de la que proceden losdatos de LINEMOD ya que gracias al entorno virtual Robotrix se pueden obtener lasposiciones de los vértices de la bounding box directamente. La organización de estosdatos es la misma que la realizada para los datos de LINEMOD.

Page 37: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

3.2. Bases de datos empleadas 17

Figura 3.6: Imagen que muestra el conjunto de los objetos sintéticos generados con Robotrix.

Page 38: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 39: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

4 Desarrollo

En este proyecto se utiliza una arquitectura CNN profunda, propuesta en [1], de un solodisparo que toma la imagen como entrada y detecta directamente las proyecciones 2D de losvértices del cuadro delimitador 3D del objeto detectado. Esta arquitectura es entrenable deextremo a extremo y precisa sin ningún tipo de refinamiento por lo que se necesita una texturaprecisa y detallada del modelo 3D del objeto que puede ser necesario por otros métodos. Soloes necesario el cuadro delimitador 3D de la forma del objeto.

Para predecir la pose 6D de un objeto en tiempo real, se ha empleado una red inspiradaen YOLO [20], una CNN que predice simultáneamente múltiples cuadros delimitadores yprobabilidades de clase para esos cuadros. Para ello replantea la detección de objetos como unsolo problema de regresión, directamente desde los píxeles de la imagen hasta las coordenadasdel cuadro delimitador y las probabilidades de que sea una clase. Con este sistema, YOLOes capaz de predecir qué objetos están presentes y donde están.

Figura 4.1: El sistema de detección YOLO.

El procesamiento con YOLO es simple y directo (ver en Figura 4.1), primero se cambiael tamaño de la imagen de entrada a 448 × 448, después se ejecuta una única CNN en laimagen, y por último se limitan las detecciones resultantes mediante la confianza del modelo.

YOLO entrena en imágenes completas y optimiza directamente el rendimiento de la detec-ción. Este modelo unificado tiene varios beneficios sobre los métodos tradicionales de detecciónde objetos, primero, YOLO es extremadamente rápido, desde que se enmarca la deteccióncomo un problema de regresión no es necesaria un pipeline complejo, funcionando a 45 cua-dros por segundo sin procesamiento por lotes y en la versión rápida se ejecuta a más de 150fps. Esto significa que se puede conseguir procesar vídeo en tiempo real con menos de 25 milisegundos de latencia. Además, YOLO alcanza más del doble de la media de precisión de otrossistemas en tiempo real.

A partir de este sistema de detección trabajamos con una arquitectura diseñada comose muestra en la Figura 4.2, la cual predice las proyecciones 2D de las esquinas del cuadrodelimitador 3D de los objetos a detectar. La idea principal se basa en obtener mediante YOLOmás puntos de la proyección 2D de cada instancia del objeto en la imagen y mediante estascoordenadas y los puntos de control de las esquinas del cuadro delimitador 3D la postura 6Dse puede calcular algebraicamente con un algoritmo PnP [4]. De la misma manera BB8 [3]tiene un enfoque similar pero primero encuentra una máscara de segmentación 2D alrededor

19

Page 40: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

20 Desarrollo

del objeto y presenta una imagen recortada a una segunda red que se encarga de predecir las8 esquinas en 2D en la imagen.

Figura 4.2: (a) Arquitectura CNN utilizada. (b) Ejemplo de una imagen de entrada con 4 objetos.(c) la cuadricula de S × S celdas responsables de la detección de los 4 objetos. (d) Cadacelda predice la localización 2D de las esquinas de la proyección 3D de las boundingboxes en la imagen.(e) Tensor de salida 3D de la red, que representa para cada celda unvector con las localizaciones de las esquinas 2D, la probabilidad de pertenencia a unaclase y un valor asociado con la predicción.

4.1 El modeloPara formular el problema de estimación de la postura 6D en términos de predicciones de

las coordenadas 2D de la imagen, se obtiene el control virtual 3D asociado con los modelos3D de los objetos que se van a emplear. Dadas las predicciones de las coordenadas 2D, secalcula la posición 6D del objeto usando un algoritmo PnP el cual se explicará más adelante.Para parametrizar el modelo 3D de cada objeto se emplean 9 puntos de control, para loscuales, se seleccionan las 8 esquinas del cubo contenedor del objeto ajustado a su modelo 3D,el noveno punto corresponde con el centroide del modelo 3D del objeto.

Esta parametrización es general y puede ser usada para cualquier objeto 3D rígido con unaforma y topología arbitraria. Además, estos 9 puntos de control están garantizados para serbien extendidos en la imagen 2D y podrían ser semánticamente significativos para muchosobjetos hechos por el hombre. Este modelo toma como entrada una única imagen a color, lacual es procesada con una arquitectura completamente convolucional mostrada en la Figura4.2 la cual divide la imagen en una cuadrícula regular 2D que contienen celdas de tamaño SxS.En este modelo, cada posición de la cuadrícula en el tensor de salida 3D estará asociada conun vector multidimensional, consistente en las predicciones de las ubicaciones en la imagen

Page 41: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

4.1. El modelo 21

2D de los 9 puntos de control, las probabilidades del objeto de pertenencia a una clase y unvalor de confianza global. En la etapa de validación, las predicciones en las celdas con valoresde confianza bajos, indica que los objetos de interés no están presentes y serán podados. Losvalores objetivo de salida para nuestra red se almacenan en un tensor 3D de tamaño S×S×Dcomo se puede ver en la Figura 4.2(e). Los valores objetivo para un objeto en una ubicaciónde la celda espacial específica i ∈ S×S se coloca en la celda i − th del tensor 3D en laforma de un vector tridimensional vi. Cuando n objetos están presentes en diferentes celdas,tenemos N vectores, v1, v2,. . . , vn en el tensor 3D. Esta red está formada para predecir estosvalores objetivo. Los 9 puntos de control en este caso son el centro del modelo de objeto 3Dy las esquinas del cuadro delimitador pero también podría definirse de otras maneras. Paraentrenar esta red, solo es necesario conocer el cuadro delimitador 3D del objeto, no una malladetallada o un mapa de textura asociado.

Al igual que en YOLO, es crucial que una red esté capacitada para predecir no solo lasubicaciones 2D precisas del objeto, sino también dar altos valores de confianza en regionesdonde el objeto está presente y de baja confianza donde no lo esté. En el caso de la detecciónde un objeto 2D, YOLO refleja estas puntuaciones de confianza como la confianza de quela caja contenga al objeto y también lo precisa que es la caja que predice. Formalmentese define la confianza como Pr(Objeto)∗IOU truth

pred . Si el objeto no existe en esa celda, laspuntuaciones de confianza deben ser cero. De lo contrario la puntuación de confianza seráigual a la intersección sobre la unión IOU entre el cuadro predicho y la verdad fundamental.

En nuestro caso, los objetos están en 3D y para calcular la puntuación de confianza IoUequivalente con dos cuboides arbitrarios, se tendría que calcular un casco 3D convexo corres-pondiente con sus intersecciones. Esto haría muy tedioso y ralentizaría el entrenamiento. Porlo tanto, para esta arquitectura se toma un enfoque diferente en el que se modela el valor deconfianza previsto utilizando una función de confianza mostrada en la Figura4.3. Esta fun-ción de confianza c(x) ec. 4.1 devuelve un valor de confianza para un punto 2D denotado porx, basado en su distancia DT (x) desde la ground truth, es decir, el punto 2D objetivo. Estadistancia DT (x) es definida como la distancia euclídea 2D en el espacio de la imagen. Paralograr una localización precisa con esta función, elegimos una función exponencial aguda conun valor de corte dth en lugar de una función lineal de disminución monótona. La nitidez dela función exponencial está definida por el parámetro α. En la práctica, se aplica la funciónde confianza en todos los puntos de control y cálculo del valor medio y asignarlo como laconfianza.

c(x) =

{si DT (x) < dth, e

α(1−DT (x)

dth)

en otros casos 0(4.1)

Page 42: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

22 Desarrollo

Figura 4.3: Confianza c(x) como una función de la distancia DT (x) entre el punto predicho y elpunto objetivo

Como se ha mencionado anteriormente, también se predicen las probabilidades de condi-cionantes de clase C en cada celda que contiene un objeto. En general, el tensor de salida 3Drepresentado en la Figura 4.2 (e) tiene una dimensión S×S×D, donde la cuadrícula espacial2D correspondiente a las dimensiones de la imagen la cual tiene SxS celdas cada una delas cuales tiene un vector dimensional de tamaño D, con un valor de D = 9x2 + C + 1, yaque se tienen 9(xi, yi) puntos de control , C correspondiente a la probabilidad de clase y unvalor de confianza. Esta arquitectura de red sigue un proceso totalmente convolucional comola arquitectura YOLO v2 [31] que ofrece una serie de ventajas frente a la versión YOLOv1,entre las que encontramos:

• Batch normalization (BN) en todas las capas convolucionales.

• YOLOv2 también usa 448 × 448 para ajustar la red de clasificación durante 10 épocasen ImageNet [32], una base de datos de imágenes en la que cada nodo de la jerarquíaestá representado por cientos y miles de imágenes.

• YOLOv2 elimina todas las capas completamente conectadas y utiliza cuadros de anclajepara predecir los cuadros delimitadores.

• La red se redimensiona y continúa formándose gracias a que para cada 10 lotes, lasnuevas dimensiones de la imagen se eligen aleatoriamente

En resumen las ventajas que tiene esta versión frente a la anterior vienen dadas en la Tabla4.1.

Page 43: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

4.2. Procedimiento para el entrenamiento 23

Tabla 4.1: Comparación de YOLO v1 vs v2

Así, nuestra red cuenta con 23 capas convolucionales y 5 capas de agrupación máxima.Similar a YOLO v2, se elige un valor de S = 13 y obteniendo un espacio espacial de 13 ×13 cuadrículas 2D en la que hacemos nuestras predicciones. También permitimos capas másaltas de nuestra red para utilizar funciones de grano fino añadiendo una capa de paso. Enconcreto, se aportan características de una capa anterior con resolución 26 × 26, se aplica lanormalización de lotes y se redimensiona la imagen de entrada durante el entrenamiento on-the-fly. A medida que la red reduce las muestras de la imagen por un factor de 32, cambiamosla resolución de entrada a un múltiplo de 32 elegido al azar de los valores comprendidos entre320 y 608 para ser robusto a objetos de diferente tamaño.

4.2 Procedimiento para el entrenamientoEn la arquitectura utilizada, la capa final genera probabilidades de clase, las coordenadas

de las localizaciones (x, y) de los puntos de control, y el valor de confianza general. Duranteel entrenamiento, se calcula este valor de confianza sobre la marcha utilizando la funcióndefinida en la ec. 4.1 mediante la distancia entre las actuales predicciones de coordenadas yla ground thruth, DT (x). Posteriormente se predice las compensaciones para las coordenadas2D con respecto a (cx, cy) que corresponde con la esquina superior izquierda de la celda de lacuadrícula asociada. Para el centroide, se restringe este desplazamiento a valores entre 0 y 1.Sin embargo, para los puntos de las esquinas, no se restringe la salida de la red ya que se debepermitir que los puntos caigan fuera de la celda. Los puntos de control predichos (gx, gy) sedefinen como ec. 4.2 y ec. 4.3, donde f(x)ef(y) se eligen para ser una función sigmoide 1D enel caso del centroide y la función de identidad en el caso de los ocho puntos de las esquinas.Esto tiene el efecto de forzar a la red a encontrar primero la ubicación aproximada de la celdapara el objeto y más tarde refinar las 8 ubicaciones de las esquinas.

gx = f(x) + cx (4.2)

gy = f(y) + cy (4.3)

Para formar la red completa se minimiza la función de pérdida (Ecuación 4.4) donde lostérminos Lid, Lpt y Lconf denotan la pérdida de clasificación, de coordenada y de confianza,

Page 44: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

24 Desarrollo

respectivamente. Para la confianza y la coordenada se emplea un error cuadrático y para laperdida de clasificación se emplea entropía cruzada, la cual mide la media de bits necesariospara identificar un evento de un conjunto de posibilidades. Como ocurre con YOLO [20] sereduce el peso de la pérdida de confianza de las celdas que no contienen objetos estableciendoun valor de conf de 0.1. Esto mejora la estabilidad del modelo, para las celdas que contienenobjetos, se establece un valor de conf de 5.0. Respecto a los otros valores ptyid son sim-plemente establecidos a 1. Estos valores han sido establecidos en función de los parámetrosobtenidos en [1].

L = λptLpt + λconfLconf + λidLid (4.4)

Cuando varios objetos están ubicados cerca el uno del otro en la escena 3D, es más probableque aparezcan juntos en las imágenes o se ocluyan entre sí, en algunos de estos casos, ciertasceldas pueden contener múltiples objetos, para poder ser capaz de predecir la pose de múltiplesobjetos que se encuentran en la misma celda, se permiten hasta 5 candidatos por celda y porlo tanto se pueden predecir cinco conjuntos de puntos de control por celda. Esto esencialmentesignifica que se asume a lo sumo 5 objetos que podrían ocluir entre sí en una sola celda dela cuadrícula. Como en YOLOv2 [31], se precomputa con k-medias, cinco cajas de anclajeque definen el tamaño, es decir, el alto y ancho de un rectángulo 2D ajustado a una regiónenmascarada alrededor del objeto en la imagen. Durante el entrenamiento, se asigna cualquiercaja de ancla que tenga el tamaño más similar al objeto actual para predecir las coordenadas2D de ese objeto.

Para entrenar la red se han empleado la base de datos LINEMOD [30] y una de datossintéticos obtenidos mediante Robotrix [27] (ver sección 3.2). Estas imágenes serán empleadaspara el entrenamiento y la validación del modelo. Además para aumentar la base de datosse emplea un método que consiste en extraer el objeto a detectar de la imagen y colocarlosobre un fondo diferente y una escala y translación distinta, con lo que obtenemos una basede datos mayor, con una mayor variabilidad y un número mayor de muestras.

4.3 Predicción de la pose

Para detectar y estimar la pose de objetos en 6D se invoca a nuestra red solo una vez.En la etapa de test, se estiman los valores de confianza específicos de la clase para cadaobjeto multiplicando las probabilidades de clase y la puntuación devuelta por la función deconfianza. Cada celda de la cuadrícula produce predicciones en una evaluación de la red ylas celdas con predicciones de baja confianza se podan utilizando un valor de umbral para laconfianza. Para objetos grandes y aquellos cuyas proyecciones se encuentran en la intersecciónde dos celdas, es probable que varias celdas predigan una gran confianza de detección. Paraobtener una estimación de la postura más robusta y bien localizada, se utiliza una reducciónde no máximos en la que se emplea la celda con mayor valor de confianza y se compruebael valor de las celdas vecinas que estén a una distancia de 3 casillas alrededor de esa celda.Las predicciones de las esquinas individuales de estas celdas adyacentes son combinadasmediante el cálculo de un promedio ponderado de las detecciones individuales, donde lospesos utilizados son los valores de confianza de las células asociadas. En tiempo de ejecución,la red proporciona las proyecciones 2D del centroide del objeto y las esquinas de su cuadro

Page 45: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

4.3. Predicción de la pose 25

delimitador 3D a lo largo del objeto. Estimamos la postura 6D de las correspondencias entrelos puntos 2D y 3D utilizando un método de estimación de pose de Perspectiva-n-Punto(PnP) [4] que explicaremos más detalladamente en la Sección 4.3.1. En nuestro caso, PnPusa solo 9 puntos de control y proporciona una estimación de la rotación 3D R y traducción3D del objeto en las coordenadas de la cámara.

4.3.1 Algoritmo PnP empleadoPara nuestro problema empleamos una solución no iterativa al problema de PnP: la esti-

mación de la pose de una cámara calibrada de n correspondencias de puntos 3D a 2D, cuyacomplejidad computacional crece linealmente con n O(n), en nuestro caso n tiene un valorde 9, correspondiente a los 8 puntos que definen las esquinas del cuadro delimitador 3D a lolargo del objeto y el punto correspondiente al centroide de este. Esto está en contraste a losmétodos más modernos que son O(n5) o incluso O(n8), sin ser más precisos. El método em-pleado es aplicable para todo n ≥ 4 y maneja adecuadamente tanto configuraciones planarescomo no planares. La idea central de este método es expresar los n puntos 3D como una sumaponderada de cuatro puntos de control virtuales. El problema se reduce entonces a estimarlas coordenadas de estos puntos de control en la referencia de la cámara con respecto a lascoordenadas del mundo y proyectarlas sobre la imagen (ver Figura 4.4), lo que se puede haceren O(n) tiempo expresando estas coordenadas como suma ponderada de los vectores propiosde una matriz 12 × 12 y resolviendo una pequeña cantidad constante de ecuaciones cuadrá-ticas para elegir el peso correcto. Además, si se requiere la máxima precisión, la salida de lasolución de forma cerrada se puede utilizar para inicializar un esquema de Gauss-Newton,que mejora la precisión con un cantidad insignificante de tiempo adicional. Las ventajas deeste método son entre otras una mejor precisión y menor complejidad computacional quelos métodos no iterativos de vanguardia, y mucho más rápidos que los iterativos con pocapérdida de precisión.

Figura 4.4: Proyección del objeto teniendo en cuenta las coordenadas de la cámara

Page 46: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 47: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

5 Resultados

Con respecto al procedimiento seguido, primero se ha procedido a conseguir resultadosparecidos a los obtenidos por [1] con los 13 objetos de su dataset LINEMOD con nuestroequipo. Después de conseguir esto el siguiente paso es generar una base de datos sintéticosobtenidos mediante el entorno virtual Robotrix y obtener una red entrenada con estos datos.

5.1 Entrenamiento y validación del conjunto de datos LINEMOD

A continuación se van a mostrar los resultados de las pruebas realizadas con el conjunto dedatos de LINEMOD, para obtener estos resultados se ha partido de los parámetros de [1], peroreduciendo el valor del batch, que indica la cantidad de muestras procesadas antes de que seactualicen los parámetros internos del modelo, ya que con el valor actual nos encontrábamoscon problemas de falta de memoria de la GPU, la reducción de este valor paso de 64 a 16.

Los resultados obtenidos en cuanto a la función de loss de cada objeto fueron los quepodemos ver en las Figuras 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.10, 5.11 y 5.12.

Figura 5.1: Función de loss del objeto ape en la etapa de entrenamiento.

27

Page 48: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

28 Resultados

Figura 5.2: Función de loss del objeto bench en la etapa de entrenamiento.

Figura 5.3: Función de loss del objeto cam en la etapa de entrenamiento.

Page 49: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

5.1. Entrenamiento y validación del conjunto de datos LINEMOD 29

Figura 5.4: Función de loss del objeto can en la etapa de entrenamiento.

Figura 5.5: Función de loss del objeto cat en la etapa de entrenamiento.

Page 50: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

30 Resultados

Figura 5.6: Función de loss del objeto driller en la etapa de entrenamiento.

Figura 5.7: Función de loss del objeto duck en la etapa de entrenamiento.

Page 51: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

5.1. Entrenamiento y validación del conjunto de datos LINEMOD 31

Figura 5.8: Función de loss del objeto egg en la etapa de entrenamiento.

Figura 5.9: Función de loss del objeto glue en la etapa de entrenamiento.

Page 52: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

32 Resultados

Figura 5.10: Función de loss del objeto hole en la etapa de entrenamiento.

Figura 5.11: Función de loss del objeto iron en la etapa de entrenamiento.

Page 53: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

5.1. Entrenamiento y validación del conjunto de datos LINEMOD 33

Figura 5.12: Función de loss del objeto lamp en la etapa de entrenamiento.

Como podemos ver en las gráficas el valor de loss se estabiliza conforme van aumentandoel numero de épocas y finalizan cuando llegan al valor máximo establecido de estas. Ademáspodemos observar en estas gráficas se obtuvo una convergencia del valor del loss a partir dela época numero 100, y finalizando en las 700 ya que este era el valor máximo de épocasestablecido, alcanzando la convergencia por este parámetro. También podemos observar enla gráfica 5.10 una convergencia en las primeras épocas con un incremento bastante bruscoen el valor de loss sobre la época número 60 el cual pudo ser producido por encontrarse enun mínimo local ha pasado entre una época y otra sin encontrar la convergencia.

Para validar el modelo generado se ha tenido en cuenta 3 errores:

• Error en la proyección 2D: considerando que la estimación de la pose es correcta cuandola distancia media entre las proyecciones 2D de los vértices de la bounding box del objetousando la estimación del modelo y la bounding box de la ground truth es menor de 5píxeles. Esto mide la cercanía de la verdadera proyección del objeto a la que se obtieneutilizando la pose estimada.

• IoU score (Proyección 2D): es un valor obtenido dividiendo el área de superposición yel área de unión del cubo delimitador real y el estimado, obteniendo una estimacióncorrecta cuando este valor sea mayor de 0.5

• Average 3D distance of model vértices: mide la cercanía que hay entre los vértices en3D de la bounding box del objeto usando la estimación del modelo y la bounding boxde la ground truth, será correcta cuando este valor sea menor al 10% del diámetro delobjeto.

Page 54: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

34 Resultados

Teniendo en cuenta estos valores calculados como porcentajes nos encontramos con la Tabla5.1 que muestra la comparación de los resultados obtenidos por [1] y los obtenidos con nuestroequipo.

Objeto Modelos de los que partimos % Modelos obtenidos con nuestro equipo %

ape 94.24 93.63bench 95.06 81.65cam 93.24 86.86can 97.44 93.50cat 97.41 91.42

driller 79.41 70.56duck 94.65 79.00

eggbox 90.33 74.93glue 96.53 93.73

holepuncher 92.86 80.69iron 84.94 78.23lamp 76.87 69.45

Media 91.08 82.80

Tabla 5.1: Tabla comparativa entre los resultados obtenidos por la aplicación de la que se ha partido[1] y los modelos obtenidos con nuestro equipo teniendo en cuenta el error en la proyección2D

Una vez obtenidos unos valores razonables con el conjunto de datos LINEMOD procedemosal entrenamiento y la validación con el conjunto de datos sintéticos.

5.2 Entrenamiento y validación del conjunto de datos sintéticosPara el entrenamiento de los datos sintéticos se han realizado diversos entrenamientos con

los objetos banana y mustard. Los primeros entrenamientos mostraban una función de lossque no llegaba a converger en su valor máximo, establecido en 700 como se puede ver en laFigura 5.13, esto debido a la gran cantidad de tiempo empleada en el entrenamiento ya queel número de iteraciones entre cada época era bastante mayor al obtenido con los objetosdel conjunto de datos LINEMOD debido a que el número de imágenes empleadas para elentrenamiento era 9 veces menor, en torno a 1000 imágenes por objeto, esto aumentaba eltiempo del entrenamiento ya que debe procesar un mayor numero de estas por cada época.Sumado a esto se tuvo que reducir el tamaño de batch a la mitad, de 16 a 8 ya que losentrenamientos con este conjunto de datos se realizaron con otra tarjeta gráfica, la cualcontaba con menos memoria dedicada y no podía trabajar con este tamaño de batch. Paraver un poco mas el comportamiento de la red durante el entrenamiento se tuvieron en cuentalas siguientes tres medidas en cada iteración de éste:

• Traslación: distancia que está desplazada la bounding box predicha con la ground truth

• Rotación: ángulo que existe entre la bounding box predicha y la ground truth

• Píxeles de distancia: distancia entre los vértices de la bounding box predicha y la groundtruth

Page 55: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

5.2. Entrenamiento y validación del conjunto de datos sintéticos 35

Figura 5.13: Gráfica que muestra la función de loss durante la etapa de entrenamiento en funcióndel número de épocas del objeto mustard en un de los primeros intentos.

Observando estas medidas a lo largo del entrenamiento vemos como éstas se disparanen algunos puntos del entrenamiento alcanzando valores muy altos en las 3 medidas. Estoscambios los podemos observar mejor en las Figuras 5.14, 5.15 y 5.16. Debido a esto se hanmodificado los valores de los parámetros de entrenamiento para ajustar mejor estas medidas,consiguiendo reducir el número de iteraciones de cada época para impedir que el valor de losspase del mínimo local o sobre entrene.

Figura 5.14: Gráfica que muestra el error en traslación del objeto mustard en la etapa de entrena-miento en función del número de iteraciones.

Page 56: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

36 Resultados

Figura 5.15: Gráfica que muestra el error en rotación del objeto mustard en la etapa de entrenamientoen función del número de iteraciones.

Figura 5.16: Gráfica que muestra el error de la posición de los vértices del objeto mustard en laetapa de entrenamiento en función del número de iteraciones.

Tras realizar diferentes pruebas disminuyendo el número máximo de épocas y cambiar losvalores que influyen en el número de iteraciones por épocas, como es el valor de batch y elvalor de epsilon para aumentar o disminuir la tasa de aprendizaje y así pasar más rápido deun valor a otro.

Page 57: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

5.2. Entrenamiento y validación del conjunto de datos sintéticos 37

Figura 5.17: Gráfica que muestra la función de loss durante la etapa de entrenamiento en funcióndel número de épocas del objeto mustard en el entrenamiento final.

Observando el valor de estas tres métricas se aumento el valor de epsilon de 1−5 diferentesvalores quedándonos con el valor de 1−3 para reducir la tasa de aprendizaje y evitar elsobreajuste y que pase de un mínimo entre una época y otra y además se disminuyo el valormáximo de épocas a 500 ya que conseguíamos una convergencia a partir de la época 50. Enla figura 5.17 podemos ver la función de loss del entrenamiento realizado con estas métricasy vemos como finaliza en el valor máximo establecido de 500 épocas.

Con esto podemos ver como se redujo el valor de estas 3 métricas durante el entrenamiento(ver figuras 5.18, 5.19 y 5.20) consiguiendo así que la red convergiera en el numero máximode épocas y obteniendo un buen resultado.

Page 58: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

38 Resultados

Figura 5.18: Gráfica que muestra el error en traslación del objeto mustard en la etapa de entrena-miento en función del número de iteraciones.

Figura 5.19: Gráfica que muestra el error en rotación del objeto mustard en la etapa de entrenamientoen función del número de iteraciones.

Page 59: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

5.2. Entrenamiento y validación del conjunto de datos sintéticos 39

Figura 5.20: Gráfica que muestra el error de la posición de los vértices del objeto mustard en laetapa de entrenamiento en función del número de iteraciones.

5.2.1 Validación con imágenes sintéticas

Una vez obtenido un modelo valido para el objeto mustard y banana se pasó a la pruebade estos con imágenes en el entorno simulado, las cuales formaban parte del conjunto devalidación que no se han empleado en la etapa de entrenamiento. Con estas imágenes se hanobservado resultados tanto de detecciones en las que se ha tenido un buen resultado como enlas que no (ver figuras 5.21, 5.22, 5.23 y 5.24).

Figura 5.21: Detección y predicción de la pose del objeto mustard en entorno simulado con resultadocorrecto.

Page 60: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

40 Resultados

Figura 5.22: Detección y predicción de la pose del objeto mustard en entorno simulado con resultadofallido.

Figura 5.23: Detección y predicción de la pose del objeto banana en entorno simulado con resultadocorrecto.

Page 61: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

5.2. Entrenamiento y validación del conjunto de datos sintéticos 41

Figura 5.24: Detección y predicción de la pose del objeto banana en entorno simulado con resultadofallido.

Como podemos observar en la figura 5.22, la detección del objeto mustard no es la esperadacuando se produce una oclusión, ya que podemos ver como el objeto esta junto a otro y lapredicción de la pose no es la correcta. También podemos observar en la imagen 5.24 comola detección del objeto ha sido errónea detectando el objeto banana como un cajón amarilloque se asemeja a la forma y color de este objeto.

A continuación se muestra la tabla 5.2 con los resultados obtenidos teniendo en cuenta lostres errores de los que se ha hablado anteriormente.

Objeto Error en la proyección 2D % IoU score % Average 3D distance of model vértices %

banana 81.71 58.87 45.53mustard 80.69 38.35 34.65

Media 81.2 48.61 40.09

Tabla 5.2: Tabla que muestra los porcentajes de los tres errores a tener en cuenta en la validaciónde los modelos obtenidos con los datos sintéticos

5.2.2 Validación con imágenes reales

Después de la validación de los modelos con imágenes sintéticas, se paso a la validación delos modelos con imágenes extraídas del mundo real. Para esto se empleo el objeto mustard.Se probó con diferentes escenas y tipos de iluminación, pero no se estuvo ningún resultadosatisfactorio. El valor de confianza de las detecciones era demasiado bajo, teniendo valoresmáximos de este en torno 0.0008, muy alejados a 1, teniendo como valores de confianza validosun valor mayor de 0.5. Como podemos observar en la figura 5.25 la detección del objeto coneste valor tan bajo de confianza es errónea, no sirviendo en este caso el modelo obtenido paraimágenes reales.

Page 62: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

42 Resultados

Figura 5.25: Detección y predicción de la pose del objeto mustard en entorno real con resultadofallido.

Page 63: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

6 ConclusionesEn este trabajo se ha implementado un sistema de detección y predicción de la pose 6D de

un objeto mediante el uso de redes neuronales y con la utilización de imágenes RGB obtenidasen un entorno simulado. El resultado obtenido para imágenes en el entorno simulado ha sidosatisfactorio obteniendo un error medio de 81.2% (Tabla 5.2). También se ha observadoque el método entrenado no es capaz de generalizar adecuadamente al conjunto de test, nofuncionando correctamente en situaciones con oclusiones. En cambio al aplicar el modelo aimágenes del mundo real este no ha dado buenos resultados, teniendo que tener condicionessimilares de iluminación y objetos iguales a los obtenidos con el simulador.

6.1 Aspectos destacadosLos aspectos más destacados de este trabajo son los siguientes:

• Empleo de un entorno simulado para obtener un conjunto de datos validos para el en-trenamiento de un modelo de una forma mucho más sencilla a la generada con imágenesreales.

• Empleo y uso de redes neuronales convolucionales para obtener la pose de un objetomediante el uso de una única imagen 2D.

6.2 Trabajo futuroEn este trabajo nos hemos centrado principalmente en lograr un modelo capaz de detectar

y predecir la pose un objeto mediante el uso de imágenes generadas de forma sintética. Sinembargo, el resultado obtenido aplicado a la realidad no tiene la precisión deseada. Paramejorar este resultado podrían añadirse imágenes reales al conjunto de datos sintéticos paramejorar la respuesta del modelo en el mundo real, no obstante la generación de esta basede datos reales es muy costosa. Además, otro trabajo futuro que hemos explorado en esteproyecto, es la capacidad de detectar múltiples objetos en una escena ya que este modeloesta limitado a un objeto tratándose de la variante SiSo de este problema. Los tiempos delos entrenamientos también son una cosa a mejorar ya que según la GPU empleada estosse disparaban llegando a estar días entrenando sin llegar al máximo de épocas establecido.Modificar la arquitectura de la red original que hemos empleado en este trabajo [1] era otratarea a poder realizar, junto a aplicar estrategias de Dropout [33] para mejorar la capacidad degeneralización aproximando un número exponencial de modelos para combinarlos y predecirla salida. Otro de los trabajos que se iban a explorar era el de probar el modelo entrenado ymedir el runtime en una GPU móvil como puede ser en una Jetson, la cual puede ir a bordode un robot como el Pepper, proporcionándole la capacidad de estimar la pose 6D de unobjeto para su posterior manipulación.

43

Page 64: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D
Page 65: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Bibliografía[1] Bugra Tekin, Sudipta N. Sinsha, and Pascal Fua. Real-time seamless single shot 6d

object pose predicción. IEEE Xplore, 2015.

[2] SoftBank Robotics Europe. Robot pepper, 3 jun. 2016.

[3] M. Rad and V. Lepetit. A scalable, accurate, robust to partial occlusion method forpredicting the 3d poses of challenging objects without using depth. In InternacionalConference on Computer Vision (ICCV), 1, 2017.

[4] V. Lepetit and F. Moreno-Noguer. Solution to the pnp problem. 81(2):155–166, 2009.

[5] W. Kehl, F. Manhardt, F. Tombari, S. Ilic, and N. Navab. Making rgb-based 3d detectionand 6d pose estimation great again. 2017.

[6] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu, and A. C. Berg. Singleshot multibox detector. 2016.

[7] F. Rothganger, S. Lazebnik, C. Schmid, and J. Ponce. 3d object modeling and recog-nition using local affine- invariant image descriptors and multi-view spatial constraints.International Journal of Computer Vision (IJCV), 66(3):231–259, 2006.

[8] D. G. Lowe. Object recognition from local scale-invariant features. In InternacionalConference on Computer Vision (ICCV), 1999.

[9] S. Hinterstoisser, V. Lepetit, S. Ilic, S. Holzer, G. Bradski, K. Konolige, and N. Navab.Model based training, detection and pose estimation of texture-less 3d objects in heavilycluttered scenes. In Asian Conference on Computer Vision (ACCV), 2012.

[10] R. Rios-Cabrera and T. Tuytelaars. Discriminatively trained templates for 3d objectdetection: A real time scalable approach. In Internacional Conference on ComputerVision (ICCV), 2013.

[11] E. Brachmann, A. Krull, F. Michel, S. Gumhold, J. Shotton, and C. Rother. Learning6d object pose estimation using 3d object coordinates. In European Conference onComputer Vision (ECCV), 2014.

[12] C. Zach, A. Penate-Sanchez, and M.-T. Pham. A dynamic programming approach forfast and robust object pose recognition from range images. In Computer Vision andPattern Recognition (CVPR), 2015.

[13] W. Kehl, F. Milletari, F. Tombari, S. Ilic, and N. Navab. Deep learning of local rgb-dpatches for 3d object detection and 6d pose estimation. In European Conference onComputer Vision (ECCV), 2016.

45

Page 66: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

46 Bibliografía

[14] S. Tulsiani and J. Malik. Viewpoints and keypoints. In Computer Vision and PatternRecognition (CVPR), 2015.

[15] H. Su, C. R. Qi, Y. Li, and L. J. Guibas. Render for cnn: Viewpoint estimation inimages using cnns trained with rendered 3d model views. In Internacional Conferenceon Computer Vision (ICCV), 2015.

[16] A. Kendall, M. Grimes, and R. Cipolla. Posenet: A convolutional network for real-time6-dof camera relocalization. In Internacional Conference on Computer Vision (ICCV),2015.

[17] Y. Xiang, T. Schmidt, V. Narayanan, and D. Fox. Posecnn: A convolutional neural net-work for 6d object pose estimation in cluttered scene. s. arXiv preprint arXiv:1711.00199,2017.

[18] S. Mahendran, H. Ali, and R. Vidal. 3d pose regression using convolutional neuralnetworks. In Conference on Computer Vision and Pattern Recognition Workshops(CVPRW), 2017.

[19] S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: Towards real-time object detectionwith region proposal networks. In Conference on Neural Information Processing Systems(NIPS), 2015.

[20] J. Redmon, S. Divvala, R. Girshick, and A. Farhadi. You only look once: Unified, real-time object detection. In Computer Vision and Pattern Recognition (CVPR), 2016.

[21] Yann LeCun, Yoshua Bengio, and Geoffrey Hinton. Deep learning. Nature, Internationaljournal of science, 2015.

[22] Yann LeCun, Yoshua Bengio, and Geoffrey Hinton. Deep learning con pytorch.https://medium.com/datos-y-ciencia/deep-learning-con-pytorch-672469c637f4. Últimoacceso: 08/07/2019.

[23] Why use keras? https://keras.io/why-use-keras/. Último acceso: 04/11/2019.

[24] Theano release notes. http://deeplearning.net/software/theano/. Último acceso:04/11/2019.

[25] Introduction to tensorflow. https://www.tensorflow.org/. Último acceso: 04/11/2019.

[26] https://es.wikipedia.org/wiki/CUDA. Cuda. https://developer.nvidia.com/cuda-zone.Último acceso: 08/07/2019.

[27] Alberto Garcia-Garcia, Pablo Martinez-Gonzalez, Sergiu Oprea, John Alejandro Castro-Vargas, Sergio Orts-Escolano, Jose Garcia-Rodriguez, and Alvaro Jover-Alvarez. The ro-botrix: An extremely photorealistic and very-large-scale indoor dataset of sequences withrobot trajectories and interactions. IEEE/RSJ International Conference on IntelligentRobots and Systems (IROS), 2018.

[28] M. Mueller, V. Casser, J. Lahoud, N. Smith, and B. Ghanem. Ue4sim: A photo-realisticsimulator for computer vision applications. arXiv preprint arXiv:1708.05869, 2017.

Page 67: Desarrollodeunsistema dedetecciónypredicción … · 2020. 1. 9. · 1.1), con la que no sería posible con las técnicas convencionales debido a que no obtienen información 3D

Bibliografía 47

[29] Weichao Qiu and Fangwei Zhong. Unrealcv: Virtual worlds for computer vision. ACMMultimedia Open Source Software Competition, 2017.

[30] S. Hinterstoisser, V. Lepetit, S. Ilic, S. Holzer, G. Bradski, K. Konolige, and N. Navab.Model based training, detection and pose estimation of texture-less 3d objects in heavilycluttered scenes. In Asian Conference on Computer Vision (ACCV), 2012.

[31] J. Redmon and A. Farhadi. Yolo9000: Better, faster, stronger. 2017.

[32] Stanford Vision Lab, Stanford University, and Princeton University. Imagenet, 2016.

[33] NNitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Sa-lakhutdinov. Dropout: A simple way to prevent neural networks from overfitting. 2014.

[34] K. Lai, L. Bo, X. Ren, and D. Fox. A large-scale hierarchical multi-view rgb-d objectdataset. In International Conference on Robotics and Automation (ICRA), 2011.

[35] Y. Li, L. Gu, and T. Kanade. Robustly aligning a shape model and its application tocar alignment of unknown pose. In European Conference on Computer Vision (ECCV),2011.