cálculo de la dimensión fractal en datos 3d

65
Escuela Politécnica Superior Cálculo de la dimensión fractal en datos 3D Grado en Ingeniería Informática Trabajo Fin de Grado Autor: Antonio Aguirre Ivorra Tutor/es: Miguel Angel Cazorla Quevedo Félix Escalona Moncholí Junio 2021

Upload: others

Post on 18-Nov-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cálculo de la dimensión fractal en datos 3D

Escuela

Politécnica

Superior

Cálculo de la dimensiónfractal en datos 3D

Grado en Ingeniería Informática

Trabajo Fin de Grado

Autor:Antonio Aguirre IvorraTutor/es:Miguel Angel Cazorla QuevedoFélix Escalona Moncholí

Junio 2021

Page 2: Cálculo de la dimensión fractal en datos 3D
Page 3: Cálculo de la dimensión fractal en datos 3D

Cálculo de la dimensión fractal en datos3D

AutorAntonio Aguirre Ivorra

TutoresMiguel Angel Cazorla Quevedo

Departamento de Ciencia de la Computación e Inteligencia ArtificialFélix Escalona Moncholí

Departamento de Ciencia de la Computación e Inteligencia Artificial

Grado en Ingeniería Informática

Escuela

Politécnica

Superior

ALICANTE, Junio 2021

Page 4: Cálculo de la dimensión fractal en datos 3D
Page 5: Cálculo de la dimensión fractal en datos 3D

PreámbuloEn este proyecto se investigará el cálculo de la dimensión fractal en datos 3D y su uso

como descriptor. Se parte de la hipótesis de que la dimensión fractal ofrece una media dela rugosidad de una superficie y por ello podría ser usada como descriptor. Para esto seutilizarán distintos métodos y herramientas que nos permitan evaluar el rendimiento de lapropuesta.

Page 6: Cálculo de la dimensión fractal en datos 3D
Page 7: Cálculo de la dimensión fractal en datos 3D

AgradecimientosMe gustaría agradecer a mis tutores, por todo el soporte y ayuda proporcionada durante

todo el desarrollo de este trabajo. Por las distintas soluciones propuestas para los distintosproblemas que han ido surgiendo al largo de la realización del proyecto hasta el último día ysu constancia y paciencia.

También agradecer a mis padres por el apoyo a lo largo de todos los años de estudio quepor fin llegan a una conclusión.

Agradecer también a mis amigos y todo el mundo que ha pasado por mi vida a lo largo deesta etapa, que de una forma u otra han hecho que esto sea posible.

Page 8: Cálculo de la dimensión fractal en datos 3D
Page 9: Cálculo de la dimensión fractal en datos 3D

De nuevo, agradecer a mis padres y familia por el apoyo en este largo camino.

ix

Page 10: Cálculo de la dimensión fractal en datos 3D
Page 11: Cálculo de la dimensión fractal en datos 3D

Cada uno de los granos de esa piedra,cada fragmento mineral de esa montaña llena de noche,

forma por sí solo un mundo.La lucha por llegar a las cumbres basta para llenar un corazón de hombre.

Hay que imaginarse a Sísifo feliz

Albert Camus.

xi

Page 12: Cálculo de la dimensión fractal en datos 3D
Page 13: Cálculo de la dimensión fractal en datos 3D

Índice general

1 Introducción 1

2 Marco Teórico 32.1 Fractales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.1 Dimensión Fractal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Clasificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.1 KDTree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2.2 Búsqueda de k-vecinos más próximos . . . . . . . . . . . . . . . . . . . 52.2.3 Búsqueda de vecinos por radio fijo . . . . . . . . . . . . . . . . . . . . 52.2.4 Distancia Euclídea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.5 PCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.6 Curva ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3 Visión artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3.1 Descriptores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3.2 Representaciones de objetos 3D . . . . . . . . . . . . . . . . . . . . . . 9

2.3.2.1 Mallas poligonales . . . . . . . . . . . . . . . . . . . . . . . . 102.4 Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4.1 Nube de Puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4.2 Proyecciones 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4.3 Voxelización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4.4 Fractales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4.5 Voxelized Fractal Descriptor . . . . . . . . . . . . . . . . . . . . . . . . 15

3 Objetivos y motivacion 17

4 Metodología 194.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.1.1 Matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.1.2 NumPy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.2 Open3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.3 Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.3.1 ModelNet10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5 Desarrollo 215.1 Adquisición de los modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.2 KDTrees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.3 Emparejamiento de puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.3.1 Inicialización de los modelos . . . . . . . . . . . . . . . . . . . . . . . . 235.3.2 Generación de los Descriptores . . . . . . . . . . . . . . . . . . . . . . 23

xiii

Page 14: Cálculo de la dimensión fractal en datos 3D

xiv Índice general

5.4 Emparejamiento de los modelos . . . . . . . . . . . . . . . . . . . . . . . . . . 245.4.1 Cálculo de las parejas . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.4.2 Filtrado de los emparejamientos . . . . . . . . . . . . . . . . . . . . . 25

6 Experimentación 276.1 Curva ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.1.1 PCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316.1.2 Estudio de histogramas . . . . . . . . . . . . . . . . . . . . . . . . . . 33

7 Conclusiones 377.1 Trabajos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Bibliografía 39

Lista de Acrónimos y Abreviaturas 45

Page 15: Cálculo de la dimensión fractal en datos 3D

Índice de figuras

2.1 Cuasiautosimilitud en el conjunto de Mandelbrot: al variar la escala obtenemoscopias del conjunto con pequeñas diferencias. . . . . . . . . . . . . . . . . . . 3

2.2 Figura fractal ejemplo: El triángulo de Sierpinski. . . . . . . . . . . . . . . . . 42.3 Resumen de cómo se calcula la dimensión por box counting (Rian y Sassone,

2014). En (a) se calcula el número de cajas para cada longitud de lado (N(�)).En (b) vemos una tabla resumen tras aplicar los logaritmos. Por último en(c) la recta resultante, cuya pendiente es la dimensión fractal. Usualmente serepresenta la inversa del número de cajas en el eje X para que la pendiente seapositiva, esto no se aplica en este caso.. . . . . . . . . . . . . . . . . . . . . . 4

2.4 Ejemplo de un árbol kd. (a) La descomposición del árbol kd para una región de128 × 128 unidades, conteniendo siete puntos. (b) El árbol kd para la región (a) 5

2.5 Clasificación resultante para KNN según distintos valores de K. José (2018) . 62.6 Ejemplo de Principal Component Analysis (PCA) Principal Component 1 con-

tiene la mayoría de los datos pero no tiene ningún tipo de discriminación entrelas clases ”rojo” y ”azul”. F. Li y cols. (2015). . . . . . . . . . . . . . . . . . . 8

2.7 Espacio ROC junto a cuatro ejemplos de predicción A, B, C y D. . . . . . . . 92.8 Ejemplo de una TriangleMesh renderizada por Open3D. . . . . . . . . . . . . 102.9 Una nube de puntos como las usadas en este proyecto. . . . . . . . . . . . . . 122.10 De nubes de puntos e imágenes a semánticas. SplatNet3D toma directamente la

nube de puntos como entrada y predice etiquetas o clases para cada punto. Porotro lado, SplatNet2D-3D procesa conjuntamente tanto la nube de puntos comolas distintas imágenes multi-vista para mejores predicciones Dos dimensiones(2D) y Tres dimensiones (3D) extraída del propio artículo. . . . . . . . . . . . 13

2.11 Arquitectura de LonchaNet. Imágen extraída del propio artículo. . . . . . . . 142.12 Ilustración de la arquitectura de la red O-CNN. Este método representa la

forma de entrada con un octree y alimenta los vectores normales promedia-dos almacenados a la Convolutional Neural Networks (CNN) como entrada.Todas las operaciones de la CNN se ejecutan de forma eficiente en la GPUy las características resultantes se almacenan en la estructura del octree. Losnúmeros del interior del cuadrado azul indican la profundidad de los octantesque intervienen en el cálculo. Imagen extraída del propio artículo. . . . . . . . 14

2.13 El proceso seguido para generar un descriptor fractal voxelizado a partir deuna nube de puntos. (Domenech y cols. (2020)) . . . . . . . . . . . . . . . . . 16

5.1 Visualizacion de un TriangleMesh . . . . . . . . . . . . . . . . . . . . . . . . . 215.2 Visualizacion de una PointCloud . . . . . . . . . . . . . . . . . . . . . . . . . 225.3 Ejemplo de una de las nubes sobre las que se calculará la dimensión frac-

tal. En gris el modelo completo. En distintos colores, cada uno de los puntosperteneciente a la nube a computar. . . . . . . . . . . . . . . . . . . . . . . . 23

xv

Page 16: Cálculo de la dimensión fractal en datos 3D

xvi Índice de figuras

5.4 Filtrado de emparejamientos por distancias . . . . . . . . . . . . . . . . . . . 265.5 Resultado final del filtrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6.1 Silla de ModelNet10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276.2 Visualización de uno de las nubes de puntos seleccionadas para calcular su

dimensión fractal. En azul la oriented bounding box, en negro, la axis alignedbounding box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6.3 Comparativa de dos grupos de histogramas. Para el grupo (a) tenemos dosnubes de puntos exactamente iguales sin ningún tipo de rotación aplicada.Para el grupo (b) se ha aplicado una rotación a uno de los modelos. . . . . . 29

6.4 Histogramas para dos modelos iguales, sin transformaciones de ningún tipoaplicadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6.5 Emparejamiento de puntos en dos modelos iguales. Según nuestra clasifica-ción ROC obtenemos 2000 casos positivos (de 2000 puntos originales) siendoúnicamente 3 de esos positivos falsos positivos. . . . . . . . . . . . . . . . . . 30

6.6 Comparativa de dos crops a procesar. Para el modelo (a) no se ha aplicadoningún tipo de transformación. Para el modelo (b) se ha aplicado la transfor-mación con PCA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

6.7 Comparativa de dos crops a procesar. Para el modelo (a) no se ha aplicadoningún tipo de transformación. Para el modelo (b) se ha aplicado la transfor-mación con PCA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6.8 Comparativa de los histogramas de las figuras. Para el histograma (a) se mues-tran los valores para las nubes rotadas sin aplicar PCA. Para la figura (b) semuestran los valores aplicando PCA. . . . . . . . . . . . . . . . . . . . . . . . 32

6.9 Comparativa de los histogramas de las figuras. Para el histograma (a) se mues-tran los valores para las nubes rotadas sin aplicar PCA. Para la figura (b) semuestran los valores sin PCA. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.10 Resultados en dos modelos, uno rotado. . . . . . . . . . . . . . . . . . . . . . 346.11 Histogramas para dos modelos iguales, con proyección PCA aplicada a ambos. 34

Page 17: Cálculo de la dimensión fractal en datos 3D

Índice de tablas5.1 Puntos vecinos (en azul) para el punto seleccionado (en rojo) en distintos radios. 225.2 Histogramas de los valores de dimensión fractal para nubes distintas. . . . . . 245.3 Emparejamientos iniciales para dos modelos distintos. Las lineas negras repre-

sentan el emparejamiento de un punto con otro . . . . . . . . . . . . . . . . . 25

xvii

Page 18: Cálculo de la dimensión fractal en datos 3D
Page 19: Cálculo de la dimensión fractal en datos 3D

Índice de Códigos5.1 Generación de Descriptores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.2 Algoritmo de emparejamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.3 Algoritmo de filtrado de pares . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

6.1 Selección categorías positivas y negativas . . . . . . . . . . . . . . . . . . . . . 276.2 Seleccion de falsos y verdaderos positivos . . . . . . . . . . . . . . . . . . . . 286.3 Correción del alineamiento por PCA . . . . . . . . . . . . . . . . . . . . . . . 316.4 Algoritmo para la la comparativa de Histogramas . . . . . . . . . . . . . . . . 34

xix

Page 20: Cálculo de la dimensión fractal en datos 3D
Page 21: Cálculo de la dimensión fractal en datos 3D

1 IntroducciónEl reconocimiento de objetos 3D es uno de los campos de investigación dentro de la in-

teligencia artificial más relevantes de los últimos años. Este campo se mantiene en continuaevolución en búsqueda de aplicaciones distintas e innovadoras como conducción autónoma,robótica o incluido doméstica.

En este trabajo se pretende desarrollar y evaluar un descriptor, concepto sobre el queprofundizaremos en la sección 2.3.1, pero que a grandes rasgos definiremos como un conjuntode datos que permita identificar objetos 3D. Este descriptor está basado en el método deconteo de cajas para el cálculo de la dimensión fractal en nubes de puntos propuesto enDimensión fractal como descriptor 3D, Gomez-Donoso y cols. (2020), pero existen diferenciasentre este último y el descriptor propuesto en este proyecto.

Esta vez se pretende usar un vector compuesto por los distintos valores de dimensión fractal,concepto que también abordaremos más tarde en la sección 2.1.1, según el valor para radiosde vecindad que elijamos. Este proceso se explicará más a fondo en el Capítulo 5.

1

Page 22: Cálculo de la dimensión fractal en datos 3D
Page 23: Cálculo de la dimensión fractal en datos 3D

2 Marco TeóricoEn los últimos años el reconocimiento de objetos 3D ha sido uno de los campos que más

ha evolucionado dentro de la inteligencia artificial. Grandes laboratorios, marcas y empresasdesarrollan tecnologías nuevas constantemente con el objetivo de mejorar y ampliar el usoque le damos a estas tecnologías en nuestro día a día, véase desde coches autónomos a filtrosen las distintas redes sociales. En este apartado se introducirán los conocimientos necesariospara entender el trabajo realizado.

En este proyecto se pretende evaluar la eficacia de descriptores basados en la dimensiónfractal de los puntos de una nube de puntos para el reconocimiento de objetos. En estecapítulo se presentarán los conocimientos a nivel teórico necesarios para entender el desarrollodel proyecto.

2.1 FractalesLos fractales son objetos geométricos investigados y definidos por el matemático pola-

co Benoît Mandelbrot. Tal como definía en su libro La geometría fractal de la naturaleza(B. B. Mandelbrot (1982)), los fractales tienen una principal característica: la autosimilitudmatemática. Según la intensidad de propiedad encontramos distintos tipos de fractales. Sien-do la misma característica común que una o varias de sus características son iguales o muysimilares al todo. Bien pueden ser donde las partes son idénticas al todo, objetos o conjuntosde estos o únicamente las propiedades estadísticas.

Figura 2.1: Cuasiautosimilitud en el conjunto de Mandelbrot: al variar la escala obtenemos copiasdel conjunto con pequeñas diferencias.

2.1.1 Dimensión FractalCuando trabajamos con geometría fractal contamos con el mismo concepto de dimensión

que conocemos de la geometría clásica. Simplificado: la dimensión se suele definir como unamedida de cuanto aparenta llenar el espacio un objeto conforme se aumenta o disminuye laescala de este.

Existen distintas formas de calcular este valor. En nuestro caso calcularemos el valor dedimensión fractal por el método de conteo de cajas, usado en Domenech y cols. (2020).Hablaremos más de este proyecto anterior en la sección 2.4.5.

3

Page 24: Cálculo de la dimensión fractal en datos 3D

4 Marco Teórico

Figura 2.2: Figura fractal ejemplo: El triángulo de Sierpinski.

Figura 2.3: Resumen de cómo se calcula la dimensión por box counting (Rian y Sassone, 2014). En(a) se calcula el número de cajas para cada longitud de lado (N(�)). En (b) vemos unatabla resumen tras aplicar los logaritmos. Por último en (c) la recta resultante, cuyapendiente es la dimensión fractal. Usualmente se representa la inversa del número decajas en el eje X para que la pendiente sea positiva, esto no se aplica en este caso..

2.2 ClasificadoresDentro de la visión artificial y el Machine Learning encontramos muchos tipos de problemas,

uno de los problemas más abordados de este campo son los problemas de clasificación. Estosproblemas se basan en clasificar una serie de datos bajo diversas categorías, llamadas clases.A partir de un conjunto de datos inicial debemos ser capaces de obtener la clase a la quepertenecen cada uno de los elementos en el conjunto de datos. Por ejemplo, si tenemos unconjunto de fotos de flores, un problema de clasificación que podríamos plantearnos seríaclasificar cada una de las fotos de las flores según el tipo de flor que sea.

En este proyecto no nos encontramos ante un problema de clasificación per se sino unproblema de identificación. Aún así, muchas de las herramientas usadas en problemas declasificación nos son útiles puesto que también buscamos generar descriptores (Sección 2.3.1)que nos permitan identificar un objeto y sus características.

Page 25: Cálculo de la dimensión fractal en datos 3D

2.2. Clasificadores 5

2.2.1 KDTree

Los KDTree (en español Árbol KD) es una estructura de datos de particionado del espacioque organiza los puntos en un espacio euclídeo de k dimensiones. Los KDTree emplean planosperpendiculares a uno de los ejes del sistema de coordenadas. Todos los nodos de un árbolkd, desde el nodo raíz hasta los nodos hoja, almacenan un punto (Ejemplo en la Figura 2.4).Como consecuencia, cada plano debe pasar a través de uno de los puntos del árbol kd.

Figura 2.4: Ejemplo de un árbol kd. (a) La descomposición del árbol kd para una región de 128 ×128 unidades, conteniendo siete puntos. (b) El árbol kd para la región (a)

2.2.2 Búsqueda de k-vecinos más próximos

El algoritmo KNN es uno de los algoritmos de clasificación más conocidos y extendidos.KNN es un algoritmo de clasificación supervisada (clasificación basada en aprendizaje porconjuntos de entrenamiento y test). Su funcionamiento es sencillo, para cada elemento de unconjunto de test calcula la distancia de éste con el resto de elementos del conjunto de entre-namiento y cataloga cada uno de los elementos según los elementos más cercanos. Podemosobservar un ejemplo de clasificación del algoritmo KNN en la Figura 2.5

Existen formas de calcular este tipo de distancias. Una de las más comunes y que tambiénse han utilizado en otros aspectos del desarrollo de este Trabajo Final de Grado (TFG) es ladistancia euclídea (Sección 2.2.4).

2.2.3 Búsqueda de vecinos por radio fijo

La búsqueda de vecinos por radio fijo es un problema de geometría computacional, variantede la búsqueda del vecino más cercano. En el problema de la búsqueda de vecinos por radio fijose proporciona como entrada un conjunto de puntos en un espacio Euclidiano n-dimensional yuna distancia fija ∆. Este problema requiere del diseño de una estructura de datos que, dadoun punto dado q proporcione eficientemente los puntos de la estructura de datos que estándentro del umbral de distancia de ∆ a q. En nuestro caso, la estructura de datos utilizadapara solucionar este problema serán los árboles kd.

Page 26: Cálculo de la dimensión fractal en datos 3D

6 Marco Teórico

Figura 2.5: Clasificación resultante para KNN según distintos valores de K. José (2018)

2.2.4 Distancia Euclídea

La distancia euclídea es la distancia entre dos puntos en un espacio euclídeo deducidodel Teorema de Pitágoras. Sean p y q dos puntos en un espacio euclídeo n-dimensional sudistancia euclídea se calcula como:

d (p, q) =

√√√√ n∑i=1

(qi − pi)2 (2.1)

2.2.5 PCA

El PCA (en español ACP, análisis de componentes principales) es una técnica basada enanalizar un conjunto de datos en la que las observaciones son descritas por varias variablesdependientes cuantitativas interrelacionadas para así poder describir un conjunto de datos entérminos de nuevas variables no correlacionadas. Los componentes se ordenan por la cantidadde varianza original que describen, por lo que la técnica es útil para reducir la dimensionalidadde un conjunto de datos. El PCA busca la proyección según la cual los datos queden mejorrepresentados en términos de mínimos cuadrados.

Para el cómputo de PCA se siguen una serie de pasos. Primero, en caso que nuestro conjuntode datos no esté estandarizado (por ejemplo tenemos una variable que tiene como rango [0,100] predominará sobre otra que tenga de rango [0, 1]). Esto se realiza restando la media ydividiendo por la desviación estándar para cada valor de cada variable.

z =valor −media

desviacion estandar(2.2)

A continuación necesitamos comprender cómo varían las variables del conjunto de datosde entrada con respecto a la media, es decir, descubrir si hay algún tipo de relación entreellas. Porque, a veces, las variables están muy correlacionadas, de manera que contienen

Page 27: Cálculo de la dimensión fractal en datos 3D

2.2. Clasificadores 7

información redundante. Así que, para identificar estas correlaciones, calculamos la matrizde covarianza.

La matriz de covarianza es una matriz simétrica p × p (donde p es el número de dimen-siones) que tiene como entradas las covarianzas asociadas a todos los pares posibles de lasvariables iniciales. Por ejemplo, para un conjunto de datos de 3 dimensiones con 3 variablesx, y y z, la matriz de covarianza es una matriz de 3×3 como esta:Cov(x, x) Cov(x, y) Cov(x, z)

Cov(y, x) Cov(y, y) Cov(y, z)Cov(z, x) Cov(z, y) Cov(z, z)

(2.3)

A continuación necesitamos computar los eigenvectors y eigenvalues. Los vectores propiosy los valores propios (en español, respectivamente) son los conceptos de álgebra lineal quetenemos que calcular a partir de la matriz de covarianza para determinar las componentesprincipales de los datos. Antes de entrar en la explicación de estos conceptos, entendamosprimero qué queremos decir con componentes principales.

Las componentes principales son nuevas variables que se construyen como combinacioneslineales o mezclas de las variables iniciales. Estas combinaciones se realizan de forma que lasnuevas variables (es decir, los componentes principales) no están correlacionadas y la mayorparte de la información de las variables iniciales se exprime o comprime en las primerascomponentes.

Los vectores propios de la matriz de covarianza son en realidad las direcciones de los ejesdonde hay más varianza (más información) y que llamamos componentes principales. Y losvalores propios son simplemente los coeficientes adjuntos a los vectores propios, que dan lacantidad de varianza que lleva cada componente principal.

Al clasificar los vectores propios en orden de sus valores propios, de mayor a menor, seobtienen los componentes principales en orden de importancia.

Por ejemplo, supongamos que nuestro conjunto de datos es bidimensional con 2 variablesx,y y que los vectores propios y los valores propios de la matriz de covarianza son los siguientes:

v1 =

[0.67787360.7351785

]λ1 = 1.284028

v2 =

[−0.73517850.6778736

]λ2 = 0.04908232

(2.4)

Si clasificamos los valores propios en orden descendente, obtenemos �1>�2, lo que significaque el vector propio que corresponde a la primera componente principal (PC1) es v1 y el quecorresponde a la segunda componente (PC2) es v2.

Tras haber obtenido las componentes principales pasamos a calcular el porcentaje de va-rianza que representa cada componente: dividimos el valor propio de cada componente entrela suma de los valores propios. Si aplicamos esto al ejemplo anterior, descubrimos que PC1 yPC2 representan respectivamente el 96% y el 4% de la varianza de los datos.

A continuación se obtiene el vector de características. Como vimos en el paso anterior,calcular los vectores propios y ordenarlos por sus valores propios en orden descendente, nospermite encontrar los componentes principales por orden de significación. Ahora, lo que de-

Page 28: Cálculo de la dimensión fractal en datos 3D

8 Marco Teórico

bemos hacer es, elegir si nos quedamos con todos estos componentes o descartamos los demenor significación (de valores propios bajos), y formamos con los restantes una matriz devectores que llamamos vector de características.

Así, el vector de características es simplemente una matriz que tiene como columnas losvectores propios de los componentes que decidimos mantener. Esto hace que sea el primer pasohacia la reducción de la dimensionalidad, porque si decidimos mantener sólo p eigenvectors(componentes) de n, el conjunto de datos final tendrá sólo p dimensiones.

Una vez tenemos este vector de características lo usamos para re-orientar nuestros datosde los ejes originales a los ejes representados por las componentes principales.

Hasta ahora, excepto en el paso inicial para la estandarización no hemos realizado ningúncambio en los datos originales. Hemos seleccionado las componentes principales y creado unvector de características que nos permitirá orientar los datos según unos ejes que representenmejor la información contenida en nuestro conjunto de datos.

Figura 2.6: Ejemplo de PCA Principal Component 1 contiene la mayoría de los datos pero no tieneningún tipo de discriminación entre las clases ”rojo” y ”azul”. F. Li y cols. (2015).

2.2.6 Curva ROCUna curva Característica Operativa del Receptor (ROC) es una representación gráfica de

la sensibilidad frente a la especificidad para un sistema clasificador binario según se varia unumbral de discriminación. En nuestro caso, la interpretación de este gráfico es la Razón deVerdaderos Positivos (VPR) frente a Razón de Falsos Positivos (FPR). Mediante la clasifi-cación de los resultados proporcionados por ROC podemos definir la efectividad de nuestrossistemas de clasificación y descartar modelos o configuraciones subóptimas.

Para poder dibujar las curvas ROC solo necesitamos los dos valores mencionados anterior-mente: VPR y razones de falsos positivos FPR. La VPR mide hasta qué punto un clasificadoro prueba es capaz de detectar o clasificar los casos positivos correctamente. La FPR definecuántos de estos resultados positivos son incorrectos.

En la Figura 2.7 podemos entender cómo se interpreta la representación gráfica de losvalores ROC. Conforme menor sea el valor correspondiente a FPR y mayor sea el VPR ob-tendremos una mejor clasificación y viceversa. Es decir, el mejor método posible de predicciónse situaría en la esquina superior izquierda del espacio ROC, obteniendo el menor ratio posiblede FPR.

La diagonal que divide el espacio ROC nos permite separar los puntos en dos tipos de

Page 29: Cálculo de la dimensión fractal en datos 3D

2.3. Visión artificial 9

Figura 2.7: Espacio ROC junto a cuatro ejemplos de predicción A, B, C y D.

resultados: los resultados buenos, correspondiente a los puntos situados por encima de lalinea (mejor que el azar) y los resultados malos (peor que el azar) por debajo de la linea.

2.3 Visión artificialEsta sección está dedicada a abordar algunos de los términos de visión artificial que se

usan a lo largo de la memoria con el fin de entender el contexto en el que este TFG se sitúa.

2.3.1 DescriptoresEn el campo de visión artificial, llamamos descriptor a un algoritmo capaz de computar un

conjunto de características que permiten identificar un elemento dentro de nuestro conjuntode datos. Por ejemplo, si tenemos un conjunto de datos compuesto por imágenes de flores,podemos considerar como descriptor a los colores de los pétalos de estas (junto a otras ca-racterísticas). Los descriptores no tienen por que ser un reflejo directo de una característicavisual del elemento sino que también pueden resultar de la sintetización y cálculo a partirvalores pertenecientes a dicho elemento. En el caso de este TFG los descriptores usados y sugeneración se describirán más adelante (Sección 5.3.2).

2.3.2 Representaciones de objetos 3DUno de los componentes clave del desarrollo de este TFG son las representaciones de objetos

3D. Existen numerosos tipos de representaciones, sin embargo, para el desarrollo de este TFGse han usado únicamente mallas poligonales y nubes de puntos.

Page 30: Cálculo de la dimensión fractal en datos 3D

10 Marco Teórico

2.3.2.1 Mallas poligonales

Una malla poligonal, o en Inglés mesh, es un objeto 3D, usada en computación gráficabasada en polígonos, estos polígonos están compuestos por vértices, ejes y caras (en inglésvertex, edge y faces). Las caras tienen, comúnmente formas triangulares o cuadradas. A mayorcantidad de polígonos, mayor precisión. Durante el desarrollo del proyecto usamos estas mallasde distintas formas, principalmente para cargar y guardar nubes de puntos transformadas amallas triangulares (TriangleMesh). Un ejemplo de las mallas poligonales usadas en esteproyecto se puede observar en la Figura 2.8

Figura 2.8: Ejemplo de una TriangleMesh renderizada por Open3D.

2.4 Estado del arte

El reconocimiento de objetos es un tema muy importante para la comunidad de inves-tigación debido a la forma en la que proporciona la información suficiente para que unainteligencia artificial pueda comprender una escena. En los inicios de la informática el focoprincipal se situaba en el reconocimiento de objetos con imágenes. Los enfoques de Deep Lear-ning han logrado grandes resultados, con grandes niveles de precisión en distintos entornosy situaciones Deng y cols. (2009), incluso mejor que con humanos, con arquitecturas CNN,Krizhevsky y cols. (2012). Aun así, el reconocimiento de objetos en dos dimensiones dependeen la apariencia y no la forma así que, por ejemplo, no puede diferenciar entre una imagen yel objeto que se muestra en la propia imagen. Con la llegada de los sensores de profundidad,podemos obtener información sobre la forma del objetos, por lo que podemos diferencia entreestas clases. Sin embargo, la representación desordenada que heredamos de la información3D, en la que no podemos extraer la vecindad de cada punto, hace que esta tarea sea másdifícil que su contraparte en2D Luo y cols. (2020).

Page 31: Cálculo de la dimensión fractal en datos 3D

2.4. Estado del arte 11

Tradicionalmente, el reconocimiento de objetos 3D se ha tratado con descriptores localesy globales, basados en las características del objeto y sus primitivas geométricas Alhamzi ycols. (2015).

Por un lado, los métodos locales describen un único punto y están basados únicamenteen características geométricas locales alrededor de puntos de interés. Sin embargo, requierenmétodos para seleccionar qué puntos son estos puntos de interés y clasificadores especializadospara lidiar con múltiples vectores de características por objeto Bayramoglu y Alatan (2010).

Por otro lado, los métodos globales describen el objeto entero con un único vector, queademás es apto para clasificadores tradicionales. Aun así, necesitan una etapa de segmentaciónpara aislar el objeto Aldoma, Tombari, Di Stefano, y Vincze (2012). Consideramos que lastécnicas globales son más interesantes que los enfoques locales para ser utilizadas como puntode referencia para otros métodos novedosos, ya que pueden ser utilizadas directamente conel clasificador de elección, por lo que en los siguientes párrafos se hará una revisión de lasalternativas más relevantes de esta familia.

Ensemble of Shape Functions (ESF) Wohlkinger y Vincze (2011) es el único descriptorque no depende en las normales para describir la forma de un objeto. Es una combinaciónde diez histogramas generados a partir de tres distintas funciones de forma: distancia entrepuntos (D2, una linea entre pares de puntos elegidos aleatoriamente), ángulo (A3, el ánguloformado por 3 puntos elegidos aleatoriamente) y área (D3, el área creada entre tres puntos)Osada y cols. (2001). La nube de puntos de entrada que representa el objeto se voxeliza paraaproximar la superficie y se usa para trazar la linea que empareja los pares de puntos deforma eficiente. Para cada función hay tres histogramas, dependiendo de la conectividad delos puntos: situados en la superficie, fuera de la superficie y el conjunto, según Ip y cols.(2002). Finalmente, el histograma de relación de distancias es creado utilizando las líneas dela función D2.

Viewpoint Feature Histogram (VFH) Rusu y cols. (2010) es un descriptor global basado enel descriptor local Fast Point Feature Histogram (FPFH), Rusu y cols. (2009). Está compuestopor dos elementos: un componente de dirección del punto de vistas y un componente FPFHextendido. Para la dirección del punto de vista, se calcula el centroide del objeto para entoncescalcular el vector entre el punto de vista de la cámara y el centroide. A continuación, paracada punto en el objeto se calculan su normal y el ángulo entre este vector y su normal. Elcomponente FPFH extendido se calcula como el método original, usando el centroide comopunto de referencia y el resto de puntos como vecinos.

Clustered Viewpoint Feature Histogram (CVFH), Aldoma y cols. (2011) es una extensióndel descriptor VFH que calcula un histograma para cada región de puntos, en lugar del objetocompleto. Estas regiones se separan al eliminar puntos con un valor de curvatura muy alto ydespués se aplica un algoritmo de segmentación de crecimiento regional.

Finalmente, Oriented, Unique and Repeatable Clustered Viewpoint Feature Histogram(OUR-CVFH), Aldoma, Tombari, Rusu, y Vincze (2012) es una iteración del método CVFHque define un marco de referencia único y replicable para describir el objeto, evitando laambigüedad sobre el ángulo de giro de la cámara.

Con la explosión de nuevos aceleradores por harwdware orientados a la Inteligencia Artificial(IA), muchos investigadores se están centrando en métodos de Deep Learning para abordarla tarea de reconocimiento de objetos 3D. Presentamos estos métodos agrupándolos en tresgrandes categorías según sus representaciones de datos 3D.

Page 32: Cálculo de la dimensión fractal en datos 3D

12 Marco Teórico

2.4.1 Nube de Puntos

Los datos 3D se representan como una nube de puntos sin ordenar. Estos métodos suelenextraer características analizando la vecindad de cada punto dentro de un radio. La propuestomás representativa en este caso es PointNet++, Qi, Yi, y cols. (2017). Esta genera un vectorde características para toda la nube aplicando transformaciones invariantes de orden a cadapunto, generando características locales jerárquicas muestreadas y agrupadas, y lo utilizapara segmentar y clasificar la escena.

Figura 2.9: Una nube de puntos como las usadas en este proyecto.

Algunas propuesta se basan en la arquitectura anterior. Este es el caso de VoteNet, Qiy cols. (2019), una novedosa técnica basada en la votación de Hough, que utiliza capas dePointNet++ como base. Este enfoque selecciona un conjunto de puntos interesantes, con suscorrespondientes características, como puntos origen para generar clusters de instancias deobjetos basados en sus votos. Por último, estos clusters se transforman en cajas delimitadores3D con sus correspondientes categorías.

Otro trabajo, SplatNet, H. Su y cols. (2018), extiende el concepto de imágenes 2D SPLATa 3D. Utiliza tablas hash como una implementación eficiente del filtrado de vecindad, queproporciona un mapeo fácil de puntos 2D en el espacio 3D, luego, se utilizan convolucionesbilaterales para extraer un conjunto de características.

En el caso de SO-Net J. Li y cols. (2018), los autores proponen un método para garantizarla invariabilidad a las permutaciones de puntos. Se construye un Self-organized Map (SOM) através del modelado de la distribución espacial de la nube de puntos y utilizando la vecindadde cada punto para extraer características jerárquicas. Como paso final, este método generaun vector de características globales para toda la nube.

Otros enfoques, como Point-Voxel CNN (PVCNN) Z. Liu y cols. (2019), combinan la re-

Page 33: Cálculo de la dimensión fractal en datos 3D

2.4. Estado del arte 13

Figura 2.10: De nubes de puntos e imágenes a semánticas. SplatNet3D toma directamente la nubede puntos como entrada y predice etiquetas o clases para cada punto. Por otro la-do, SplatNet2D-3D procesa conjuntamente tanto la nube de puntos como las distintasimágenes multi-vista para mejores predicciones 2D y 3D extraída del propio artículo.

presentación dispersa de los datos con convoluciones voxelizadas. Aumentando el rendimientodel acceso a los datos y mejorando la localidad del método. En este trabajo se introduce unanueva primitiva eficiente, la Convolución Punto-Voxel (PVConv), que convierte los puntos encuadrículas voxel, agrega los puntos vecinos con convoluciones basadas en voxel y los trans-forma de nuevo en puntos. Para obtener características con un mayor nivel de detalle, seincluyen transformaciones de características basadas en puntos.

2.4.2 Proyecciones 2DEn esta categoría de métodos, los datos de entrada se representan como múltiples pro-

yecciones 2D de los datos tridimensionales. Tradicionalmente, han sido los enfoques máscomunes, y suelen contar con una Red Neuronal Convolucional 2D para realizar el procesa-miento, como se presenta en H. Su y cols. (2015). Algunos estudios entrenan algoritmos deboosting para agrupar las diferentes vistas y mejorar la calidad de la inferencia, como Johns ycols. (2016). Por otro lado, otros trabajos realizan una elección manual de las mejores vistaspara realizar la clasificación. Este es el caso de LonchaNet, Gomez-Donoso y cols. (2017),que considera que 3 vistas ortogonales son lo suficientemente buenas para realizar la tarea declasificación, y alimenta 3 redes neuronales independientes, cuyos resultados son finalmentecombinados. Basándose en el benchmark ModelNet, Princeton (s.f.), estos métodos son losque más rendimiento tienen en la clasificación, pero necesitan múltiples vistas del objeto, porlo que tendrían un mal rendimiento en aplicaciones del mundo real si tienen que lidiar conoclusiones y vistas parciales.

2.4.3 VoxelizaciónEn este caso, los datos de entrada son una discretización de la nube de puntos original,

agrupando los puntos en diferentes clusters según un criterio de vecindad, que sirven comoaproximación a la forma original. Comúnmente, cada vóxel se representa como un valor

Page 34: Cálculo de la dimensión fractal en datos 3D

14 Marco Teórico

Figura 2.11: Arquitectura de LonchaNet. Imágen extraída del propio artículo.

binario, 0 o 1, que indica la presencia de puntos en el espacio que el vóxel representa. 3DShapeNets Z. Wu y cols. (2015a), el estudio realizado por los autores de ModelNet, discretizalos datos como un vóxel cúbico y aplica convoluciones 3D para generar las características. Deforma similar, VoxNet Maturana y Scherer (2015) aplica una Red Neuronal Convolucional3D a la representación volumétrica para generar la clasificación. Otros trabajos que se basanen convoluciones 3D son Garcia-Garcia y cols. (2016); Gomez-Donoso y cols. (2020), quetambién utilizan la representación vóxel de los objetos.

Por otra parte, PointGrid Le y Duan (2018) crea celdas de cuadrícula con un númeroconstante de puntos con una técnica de cuantificación de puntos, guardando las coordenadasde los puntos para mejorar la representación de la geometría local del objeto. Otros trabajos,como O-CNN Wang y cols. (2017) y OGN Tatarchenko y cols. (2017) combinan el uso derepresentaciones octree con el rendimiento de las convoluciones 3D para reducir el consumode memoria y mejorar el rendimiento.

Figura 2.12: Ilustración de la arquitectura de la red O-CNN. Este método representa la forma deentrada con un octree y alimenta los vectores normales promediados almacenados a laCNN como entrada. Todas las operaciones de la CNN se ejecutan de forma eficienteen la GPU y las características resultantes se almacenan en la estructura del octree.Los números del interior del cuadrado azul indican la profundidad de los octantes queintervienen en el cálculo. Imagen extraída del propio artículo.

De forma similar a la aproximación al problema mediante el uso de proyecciones 2D mul-tivista, trabajos como MO-VCNN generan diferentes rotaciones de los modelos 3D y extraencaracterísticas de alto nivel de cada pose que se combinan en un vector de característicasfinal.

A pesar de la popularidad de las convoluciones 3D, se han utilizado otras arquitecturas

Page 35: Cálculo de la dimensión fractal en datos 3D

2.4. Estado del arte 15

de aprendizaje profundo. Vconv-dae, Sharma y cols. (2016) utiliza un autocodificador con-volucional con reducción de ruido como red de aprendizaje de características, Brock y cols.(2016) un Autocodificador Variacional y J. Wu y cols. (2016) una Red Adversarial Generativa(GAN).

El principal problema de esta categoría de técnicas es la pérdida de detalle debido al pasode discretización, y que requieren altas cantidades de memoria para las convoluciones 3D,que son principalmente inútiles debido al vacío interno de la representación, es decir, que lanube de puntos sólo tiene puntos en la superficie del objeto.

2.4.4 Fractales

En cuanto a los fractales, la dimensión fractal ha sido probada como descriptor en el pasado,con resultados prometedores. En el ámbito del reconocimiento de plantas, en Bruno y cols.(2008) los autores investigaron una serie de algoritmos para calcular la dimensión fractal.Segmentan las venas de las plantas y sus bordes, y calculan la dimensión fractal utilizandoesta información, y las clasifican en diferentes especies de Passiflora, obteniendo una precisiónmedia del 97,77%.

Otro ejemplo del uso de la dimensión fractal como descriptor es Shen (2002). En estetrabajo, más teórico, los autores proponen el algoritmo de box counting para calcular ladimensión fractal. Pretenden demostrar cómo la geometría fractal puede describir propiedadesdel desarrollo urbano que no se pueden captar con la geometría euclidiana. En este trabajo,utilizan imágenes binarias 2D de mapas de 20 ciudades americanas diferentes para llevar acabo el análisis. En este estudio, concluyen que existe una correlación entre la dimensiónfractal y el nivel de desarrollo urbano de cada ciudad, pero no encontraron evidencia de unacorrelación entre esta dimensión y la densidad de población.

Como últimos ejemplos, podemos encontrar el artículo Gómez y cols. (2009), que utilizala dimensión fractal para analizar las señales de un magneto-encefalograma. En este caso,la dimensión fractal se considera como un indicador de la complejidad de una señal, quese suele calcular siguiendo el algoritmo de Higuchi Higuchi (1988). Los autores tratan decomprobar la fiabilidad de la dimensión fractal como detector de Alzheimer. Utilizando estatécnica, consiguen un 87,8% de precisión y un 95,24% de especificidad, con 5 canales, por loque obtuvieron buenos resultados para diagnosticar esta enfermedad. Finalizando, destacar eltrabajo anterior a este TFG, publicado el año anterior Domenech y cols. (2020), comprobabala eficacia de la dimensión fractal para la identificación de objetos 3D.

2.4.5 Voxelized Fractal Descriptor

Como ya se ha mencionado varias veces a lo largo de esta memoria, gran parte de esteproyecto se inspira en el TFG publicado el año anterior a este (Domenech y cols. (2020)) Eneste, a partir de los conceptos sobre la dimensión fractal comentados anteriormente (Sección2.1.1) se propone un novedoso descriptor global para nubes de puntos que aprovecha ladimensión fractal de los objetos.

Este enfoque presenta una serie de ventajas: agnosticismo a la densidad de puntos de lamuestra, número de puntos en la nube de entra, sensor usado, ruido e incluso nivel; funcio-nando en datos de nubes de puntos de la vida real, proporcionados por sensores comunes.

Page 36: Cálculo de la dimensión fractal en datos 3D

16 Marco Teórico

Este descriptor fue probado para el reconocimiento de objetos 3D usando ModelNet, un con-junto de datos conocido para esta tarea. Este enfoque obtuvo un 92,84% de precisión enModelNet10 y del 88,74% en ModelNet40.

Este descriptor se basa en generar una VoxelGrid a partir de la nube de puntos original,dividendo la nube general en un conjunto de cajas. Para cada una de estas cajas generadasse procede a calcular el valor de la dimensión fractal mediante el método de box counting(Figura 2.3).

Figura 2.13: El proceso seguido para generar un descriptor fractal voxelizado a partir de una nubede puntos. (Domenech y cols. (2020))

Page 37: Cálculo de la dimensión fractal en datos 3D

3 Objetivos y motivacionEl principal objetivo de este trabajo es evaluar la viabilidad del uso de la dimensión fractal

como descriptor para el reconocimiento de objetos en entornos 3D.Personalmente, los objetivos planteados para este proyecto me resultan interesantes y am-

biciosos, con respecto al popular campo de visión artificial. Junto a la gran cantidad deaplicaciones prácticas que presenta, este proyecto es una oportunidad de conocer, aprendery desarrollar nuevos conocimientos.

Es importante destacar que no hay una gran cantidad de investigaciones previas a este tra-bajo sobre el campo de la dimensión fractal aplicada como descriptor para el reconocimientode objetos 3D por lo que los avances realizados con este trabajo son mucho más motivadoresy satisfactorios a nivel personal.

Consideraremos como objetivos los siguientes puntos:

• La implementación de un programa que calcule un descriptor basado en los distintosvalores de la dimensión fractal de un punto y sus vecinos a distintos radios sobre unmodelo 3D. En proyectos anteriores se han realizado implementaciones similares, peroen este proyecto se quiere calcular este tipo de descriptor en concreto.

• Desarrollar un conjunto de pruebas o benchmarks para evaluar la eficacia de este des-criptor en distintos escenarios así como intentar comparar este descriptor con otrosdescriptores similares utilizados hoy en día. Debido a la escasa investigación de estecampo es también posible encontrar que este descriptor no tiene la fiabilidad suficiente.

• El aprendizaje y uso de la librería Open3D para los distintos procesados y cómputosnecesarios para el desarrollo del proyecto. El propio uso de la librería supone tambiénun proceso de aprendizaje paralelo puesto que esta herramienta es joven y existen pocasreferencias fuera de la documentación ofrecida por los desarrolladores.

17

Page 38: Cálculo de la dimensión fractal en datos 3D
Page 39: Cálculo de la dimensión fractal en datos 3D

4 Metodología

4.1 PythonPython es un lenguaje de programación interpretado de alto nivel y de propósito general.

La filosofía de diseño de Python enfatiza la legibilidad del código con su notable uso desangría significativa. Sus construcciones de lenguaje, así como su enfoque orientado a objetos,pretenden ayudar a los programadores a escribir un código claro y lógico para proyectos depequeña y gran escala.

Python es de tipado dinámico y recolecta basura. Soporta múltiples paradigmas de pro-gramación, incluyendo la programación estructurada (particularmente, la procedimental), laorientada a objetos y la funcional.

4.1.1 MatplotlibUna de las herramientas más usadas al largo del desarrollo de este proyecto es Matplotlib.

Matplotlib es una librería de plotting para el lenguaje de programación Python. Proporcionauna API orientada a objetos para incrustar gráficos en aplicaciones. Durante todo el desarrollodel proyecto el uso de gráficos para entender qué estaba sucediendo en cada una de lassituaciones ha sido esencial.

4.1.2 NumPyNumPy es una librería para Python que añade soporte para matrices y arrays multidimen-

sionales de gran tamaño, junto con una gran colección de funciones matemáticas de alto nivelpara operar con estos arrays. Esta librería ha sido también útil para el desarrollo del pro-yecto puesto que hay una gran cantidad de operaciones matemáticas necesarias y ya veníanimplementadas o para el manejo de arrays y vectores proporcionados por otras librerias.

4.2 Open3DOpen3D Zhou y cols. (2018a) es la herramienta principal que usaremos para el desarrollo

del proyecto. Esta librería cuenta con todas las herramientas necesarias para el procesado demodelos 3D requerido. Open3D es una librería de código abierto compatible con tanto conC++ como Python, este último siendo el usado en este caso. Open3D es una herramientaaún joven siendo la versión 0.12.0 la usada para el desarrollo del proyecto y con alrededor de3 años de vida. Los principales problemas que han ido apareciendo con Open3D se deben,mayoritariamente, a la falta de ejemplos y experiencias de otros usuarios que de forma normal,podemos encontrar para la gran mayoría de problemas en otras librerías más populares.Aún así, esto no quita la existencia de una documentación bien estructurada y que permiteconsultar información sobre la librería de una manera fácil y rápida.

19

Page 40: Cálculo de la dimensión fractal en datos 3D

20 Metodología

4.3 Dataset4.3.1 ModelNet10

ModelNet10, Z. Wu y cols. (2015a) es el conjunto de datos (dataset) elegido para el desa-rrollo de este proyecto. Este dataset ha sido elegido el mero hecho de ser el dataset utilizadoen el TFG anterior a este. Este dataset es un dataset popular y accesible entre los investiga-dores, popularidad debida, en gran medida a que las clases que en él aparecen son fruto deun estudio sobre las categorías de objetos más comunes.

Este dataset se puede utilizar para múltiples problemas, como segmentación o estimaciónde pose; no obstante, en nuestro caso, la función principal de este dataset es proporcionarmodelos para el desarrollo y pruebas de este proyecto.

Para poder usar este dataset se han solucionado dos problemas principales: El formato delos modelos y las ordenes de magnitud de los objetos.

Por un lado, los modelos vienen codificados en formato Object File Format (OFF). Este esun formato que almacena las figuras como mallas poligonales descritas mediante caracteresASCII. Este formato es simple y versátil. En él simplemente se define la posición de una seriede vértices y posteriormente se indican cuáles de estos vértices componen cada una de lascaras de la figura. Para solucionar estos problemas se utilizan distintos métodos de las clasescontenidas en Open3D (más detalle en la sección 5.1).

Por otro lado, los modelos vienen representados en distintas magnitudes. A pesar de realizarsampleados de las mallas poligonales las distancias entre puntos varían demasiado entre losdistintos modelos por lo que nos vemos forzados a realizar un estudio estadístico de lasdistancias entre puntos de cada modelo para así poder calcular un vector de distancias enrelación a la magnitud de cada modelo de modo que los distintos radios para la elección devecinos sean correctos.

Page 41: Cálculo de la dimensión fractal en datos 3D

5 Desarrollo

En este capitulo se abordarán los distintos métodos y algoritmos desarrollados para el fun-cionamiento de este proyecto, junto algunos ligeros detalles sobre la propia implementación.

5.1 Adquisición de los modelosEl dataset utilizado en el desarrollo del proyecto, tal como se ha mencionado anteriormen-

te, está compuesto por un gran conjunto de archivos OFF: mallas poligonales que podemosleer con el I/O de Open3D. Mediante el método ”io.read_triangle_mesh(path)” podemoscargar estas mallas poligonales a un objeto de clase TriangleMesh, nativo de Open3D queasimismo nos permitirá transformarlo de distintas maneras, en nuestro caso nubes de puntos.Además de rotaciones y translaciones (con los métodos ”TriangleMesh.translate()” y ”Trian-gleMesh.rotate()”). Estas operaciones son las primeras en realizarse puesto que el resto delcódigo se soporta en la lectura y transformación de los archivos mencionados para podertransformarlo en estructuras utilizables por Open3D.

Figura 5.1: Visualizacion de un TriangleMesh

5.2 KDTreesAñadiendo a lo mencionado anteriormente como introducción a los KDTrees cabe destacar

también que esta estructura es la base del desarrollo del proyecto. Esta es la que nos va apermitir acceder al método ”KDTree.search_radius_vector_3d(point_index, radius)”. Estemétodo devuelve, en forma de nube de puntos, los puntos vecinos dentro del radio indicadopara el punto seleccionado. En la Tabla 5.1 podemos ver, pintado de color azul, los puntosque obtendríamos en esta nube de puntos, para, en este ejemplo, cuatro radios distintos.

21

Page 42: Cálculo de la dimensión fractal en datos 3D

22 Desarrollo

Figura 5.2: Visualizacion de una PointCloud

Por otro lado, en la figura 5.3 podemos observar como se ven las nubes de puntos, que eneste caso serían las nubes que veíamos pintadas de azul, fuera de la nube completa, preparadaspara calcular su dimensión fractal.

Tabla 5.1: Puntos vecinos (en azul) para el punto seleccionado (en rojo) en distintos radios.

5.3 Emparejamiento de puntos

Esta primera sección del desarrollo es parte del proceso de investigación que se llevó a cabopara determinar si los descriptores que habíamos planteado eran viables o no, es por elloque no solo nos limitamos al proceso que usamos en la experimentación (Capítulo 6) sino queprimero, se siguieron los pasos que se explicarán a continuación para definir si los descriptoreseran inicialmente, útiles o no.

Page 43: Cálculo de la dimensión fractal en datos 3D

5.3. Emparejamiento de puntos 23

Figura 5.3: Ejemplo de una de las nubes sobre las que se calculará la dimensión fractal. En gris elmodelo completo. En distintos colores, cada uno de los puntos perteneciente a la nube acomputar.

5.3.1 Inicialización de los modelos

La inicialización de los modelos comienza con la lectura y carga de las TriangleMesh me-diante el método ”Open3D.io.read_triangle_mesh()”. Con esto cargaremos a dos variableslocales las mallas con las que vamos a trabajar y si fuese necesario aplicaríamos las transfor-maciones que queramos: rotaciones, translaciones...

Hecho esto guardaremos ambas nubes de puntos (para el modelo base y el modificado (encaso que se haya modificado) en dos ficheros nuevos llamados modeloUno.ply y modeloDos.ply,respectivamente. Hecho esto saltaremos al emparejamiento.

5.3.2 Generación de los Descriptores

Una vez cargados los modelos el proceso a seguir se ha mencionado ligeramente en seccionesanteriores pero abordaremos con más detalle los pasos seguidos para obtener los descriptores.El algoritmo de generación de los descriptores es descrito en el apartado de código 5.1

Código 5.1: Generación de Descriptores

1 listaDescriptores = []2 for punto in nubeDePuntos:3 listaValorDimensiones = []45 for distanciaRadio in listaRadios:6 nubeAComputar = getNubeAComputar()7 listaValorDimensiones.append(getDimensionFractalFromNube(nubeAComputar)89 listaDescriptores.append([punto.indice, listaValorDimensiones])

Una vez que se realiza este proceso descrito por el pseudo-código mostrado (Código 5.1)acabamos con una lista de descriptores y con a lista de los distintos valores de dimensiónfractal para cada una de las medidas además del punto al que pertenece.

Los descriptores son sensibles a varios parámetros, principalmente al número de puntostotales de la nube de puntos y los valores para los radios. Por ejemplo, en la tabla 5.2podemos observar un histograma para los distintos valores de dimensión fractal para cada

Page 44: Cálculo de la dimensión fractal en datos 3D

24 Desarrollo

punto en dos modelos distintos pero cambiando la cantidad total de puntos.Además de esto, como se descubriría más tarde durante la experimentación, debido a la

forma en la que se calcula la dimensión fractal, los valores de esta son muy sensibles a lasrotaciones. Este tema se comentará con más profundidad en el capítulo 6.

Tabla 5.2: Histogramas de los valores de dimensión fractal para nubes distintas.

5.4 Emparejamiento de los modelosHabiendo generador descriptores para cada uno de los puntos, queremos comprobar si estos

descriptores son útiles para identificar un punto (el mismo, en caso de ser la misma nube depuntos o el más parecido, si son distintas), es por ello que procedemos a emparejar cada unode los puntos basados en la distancia euclídea 2.2.4 entre los descriptores

5.4.1 Cálculo de las parejasUna vez tenemos la información mencionada anteriormente de cada punto podemos pro-

ceder a la creación de una lista de parejas. Para el emparejamiento nos basamos en la listade la dimensión fractal mencionada, calcularemos la distancia euclídea entre las dos listasde dimensiones fractales para determinar cual es el más cercano, refiriéndose a la distanciaeuclídea entre los descriptores de cada uno de los puntos.

Código 5.2: Algoritmo de emparejamiento

1 for puntoUno in clasificacionModeloUno:2 for puntoDos in clasificacionModeloDos:3 distanciaActual = calculaDistancia(puntoUno, puntoDos)45 if distanciaActual < segundaDistanciaMinima and distanciaActual > distanciaMinima:6 segundaDistanciaMinima = distanciaActual7 puntoSegundo = puntoDos89 if distanciaActual < distanciaMinima:

10 puntoSegundo = puntoMinimo11 segundaDistanciaMinima = distanciaMinima

Page 45: Cálculo de la dimensión fractal en datos 3D

5.4. Emparejamiento de los modelos 25

1213 puntoMinimo = puntoDos14 distanciaMinima = distanciaActual1516 almacenar(puntoUno, puntoDos, distanciaMinima, puntoSegundo, distanciaSegunda)

Una vez termina este proceso (algoritmo mostrado en el apartado de código 5.2) tendremosuna lista de parejas conteniendo cada par de puntos con la distancia mínima entre ellos (losdos puntos más similares) y un segundo punto, siendo este el segundo más parecido (descriptormás cercano o segundo más cercano).

Nada mas realizar este proceso ya podemos echar un vistazo a los emparejamientos reali-zados:

Tabla 5.3: Emparejamientos iniciales para dos modelos distintos. Las lineas negras representan elemparejamiento de un punto con otro

Como se puede observar en la 5.3 a pesar de obtener una gran cantidad de emparejamientosmuchos de ellos son, a simple vista, incorrectos: van de una esquina a otra, varios puntosacaban en un mismo punto de la otra nube independientemente de su posición en esta.Debemos realizar un filtrado de estos emparejamientos.

5.4.2 Filtrado de los emparejamientos

Como se ha mencionado en la sección anterior es esencial filtrar los emparejamientos,debemos eliminar cualquier emparejamiento que no consideremos correcto (emparejado conel punto más cercano a su posición original en el segundo modelo). El filtrado es brevementeexplicado en el apartado de Código 5.3

Código 5.3: Algoritmo de filtrado de pares

1 for pareja in listaParejas:2 if distanciaPar < (ratio ∗ distanciaSegunda):3 esPuntoRepetido = False45 for punto in listaParejas:6 if restoListaParejas.exists(punto)7 esPuntoRepetido = True89 if !esPuntoRepetido

10 almacenarParPuntos()

Destacar que, cuando mencionamos la variable distanciaSegunda en el pseudocódigo an-terior hacemos referencia a la distancia del segundo punto más cercano que habíamos al-macenado. Esto lo hacemos para asegurarnos que los dos puntos que hemos almacenado

Page 46: Cálculo de la dimensión fractal en datos 3D

26 Desarrollo

anteriormente están lo suficiente lejos el uno del otro, evitando errores de emparejamiento.Por otro lado, también nos aseguramos que los emparejamiento sean unívocos, un punto solopuede estar emparejado con otro punto, si este punto está presente en otra pareja de la listano será almacenado.

Estos dos filtros eliminan una gran cantidad de puntos, por ejemplo, en la figura 5.4 pode-mos apreciar la cantidad de emparejamientos (pintados en rojo) que eliminamos tras realizarel primer filtrado (si la distancia del par actual es mayor a la distancia del punto original conel segundo punto más cercano) y en la figura 5.5 apreciamos el resultado final de nuestrosdos filtros.

(a) Sin filtro. (b) Con filtro.

Figura 5.4: Filtrado de emparejamientos por distancias

Figura 5.5: Resultado final del filtrado

El objetivo de esta parte de desarrollo del proyecto era comprobar cuán eficaz o fiable eranuestro clasificador y poder apreciar los resultados de una forma visual y tras pasar una seriede requerimientos (filtros) para asegurarnos que los resultados obtenidos son válidos. Todasestas comprobaciones aparecen de una forma u otra en el capitulo 6 a pesar de que el procesousado para obtener los puntos no tiene por qué incluir estos filtros usados en el apartado dedesarrollo. Es decir, durante la parte inicial del desarrollo se aplicaron todos estos algoritmospara comprobar la fiabilidad del descriptor.

Page 47: Cálculo de la dimensión fractal en datos 3D

6 Experimentación

En este apartado se desarrollarán los procesos seguidos durante la fase de experimentaciónde este proyecto. Las pruebas y análisis realizados para contrastar la eficacia de la propuesta.

6.1 Curva ROC

Figura 6.1: Silla de ModelNet10.

Como ya se ha visto en la Sección 2.2.6, la curva ROC y los valores obtenidos para elcálculo de esta son buenas referencias para evaluar la eficacia de nuestra propuesta. Al largodel desarrollo de esta parte se han encontrado diversos problemas que se han tenido queafrontar con el fin de poder realizar este análisis.

Para comenzar debemos clasificar nuestros emparejamientos como positivos o negativos.Esto vendrá determinado según un umbral.

Cuando emparejamos un punto almacenamos el punto cuyo descriptor presenta la distanciaeuclídea mínima respecto al descriptor del punto que estamos iterando; también almacenamosel segundo punto con menor distancia. Para esta clasificación de los emparejamientos comopositivos o negativos seleccionaremos como positivos los emparejamientos donde el resultadode dividir estos dos valores (las dos distancias entre descriptores mencionadas anteriormente)es menor a un umbral definido. Esta primera clasificación ocurre tal como se presenta en elejemplo de código 6.1

Código 6.1: Selección categorías positivas y negativas

1 for punto in listaParejas:

27

Page 48: Cálculo de la dimensión fractal en datos 3D

28 Experimentación

2 if (umbral1 > (distanciaMenor / segundaDistanciaMenor)3 positivos.add(punto)4 else:5 negativos.add(punto)

A continuación tenemos que realizar las clasificaciones tanto de verdaderos como falsospositivos y negativos. Para distinguir entre verdaderos y falsos clasificados establecemos uncriterio de selección. En nuestro caso este criterio de selección se basa en que esta distanciaentre descriptores que comentábamos antes sea menor a un umbral, de la forma mostradaen el código 6.2. En este caso ya no consideramos el segundo punto de mínima distancia quemencionábamos antes y únicamente comprobamos la distancia entre el punto seleccionado ysu par.

Código 6.2: Seleccion de falsos y verdaderos positivos

1 for punto in positivos:2 if (umbral2 > (distanciaEntreVectores(vectorPuntoUno, vectorPuntoDos)):3 verdaderos_positivos.add(punto)4 else:5 falsos_positivos.add(punto)

Este proceso, como ya se ha mencionado, es igual para el conjunto de emparejamientosconsiderados negativos.

El problema principal encontrado es el siguiente: durante el cálculo de la dimensión fractalde un crop de la nube de puntos la Oriented Bounding Box de este crop no está alineadacon los ejes XYZ, cosa que afecta en el cálculo por conteo de cajas (Figura 2.3) ya que paratodas las cajas generadas nos encontramos una gran cantidad de cajas vacías, que afectan alos valores de la dimensión fractal calculados. Un ejemplo de este problema es el siguiente:para el modelo en la figura 6.1 se obtienen unos valores iniciales de dimensión fractal paralos distintos puntos del modelo, pero para este mismo, si lo rotamos mínimamente, podemosobservar el desalineamiento de las oriented bounding box en todas y cada unas de las nubesrecortadas a computar (Figura 6.2), creando un error en todos los valores tomados a partirde este modelo rotado.

Como se puede observar en la figura 6.3 a pesar de tener dos nubes de puntos exactamenteiguales, el desalineamiento comentado provoca que los valores de la dimensión fractal no secalculen de forma correcta, creando diferencias entre dos conjuntos de valores que deberíanser iguales. Es decir, puesto que este método presenta ser susceptible a la rotación debidoa la forma en la que se realiza el cálculo y se modifican algunas propiedades del modelo,durante la fase de experimentación se decidió realizar distintos tipos de pruebas para buscaruna solución a este problema.

Este problema se presenta únicamente en casos de rotación, por ejemplo, si fuésemos acomparar dos nubes de puntos iguales obtendríamos unos resultados muy buenos. Esto lopodemos con los histogramas para dos modelos iguales sin ningún tipo de rotación aplicada.(Figura 6.4).

Por otro lado podemos observar como la clasificación y emparejamiento de los puntos estambién (casi) perfecta (Figura 6.5).

Esto nos lleva al siguiente punto. Si queremos solucionar este problema debemos ajustar lanube de puntos para que esté alineada conforme a los ejes como si fuese el modelo original:sin rotar. Si no hacemos esto la nube a computar estará desalineada respecto a los ejes y elcálculo de la dimensión fractal, como mencionábamos anteriormente, no será el mismo.

Page 49: Cálculo de la dimensión fractal en datos 3D

6.1. Curva ROC 29

Figura 6.2: Visualización de uno de las nubes de puntos seleccionadas para calcular su dimensiónfractal. En azul la oriented bounding box, en negro, la axis aligned bounding box.

(a) Sin rotación. (b) Con rotación.

Figura 6.3: Comparativa de dos grupos de histogramas. Para el grupo (a) tenemos dos nubes depuntos exactamente iguales sin ningún tipo de rotación aplicada. Para el grupo (b) seha aplicado una rotación a uno de los modelos.

Page 50: Cálculo de la dimensión fractal en datos 3D

30 Experimentación

Figura 6.4: Histogramas para dos modelos iguales, sin transformaciones de ningún tipo aplicadas.

Figura 6.5: Emparejamiento de puntos en dos modelos iguales. Según nuestra clasificación ROCobtenemos 2000 casos positivos (de 2000 puntos originales) siendo únicamente 3 de esospositivos falsos positivos.

Page 51: Cálculo de la dimensión fractal en datos 3D

6.1. Curva ROC 31

6.1.1 PCA

El cálculo de la PCA fue una de las soluciones iniciales al problema comentado anterior-mente. Al encontrarnos situaciones como las mostradas en la figura 6.2 una de las solucionespropuestas fue el uso de PCA. Si eramos capaces de obtener las componentes principales decada una de las nubes recortadas seríamos capaces de proyectar los puntos en un espacioteóricamente alineado.

Esto se realizó tal como se muestra en el fragmento de código 6.3

Código 6.3: Correción del alineamiento por PCA

1 for punto in pointCloud:2 for radio in listaLongitudesRadio:3 nubeAComputar = getNubeAComputar()45 meanAndCovariance = nubeAComputar.compute_mean_and_covariance()6 eigenvalues, eigenvectors = numpy.linalg.eig(meanAndCovariance[1])7 transformacion = numpy.transpose(eigenvectors)89 nubeAComputar.rotate(transformacion)

10 listaValorDimensiones.append(getDimensionFractalFromNube(nubeAComputar)1112 listaDescriptores.append([punto.indice, listaValorDimensiones])

El cálculo de las componentes principales es muy similar a el cálculo explicado en la Sección2.2.5, con un ligero cambio, en este caso una vez calculamos los eigenvectors, calculamos sumatriz transpuesta y la usamos como matriz de rotación para la nube a computar.

Tras la extracción de las componentes principales y la proyección de los puntos que formanla nube a computar, obtenemos resultados tales como los mostrados en la Figura 6.6.

(a) Sin rotación. (b) Con rotación.

Figura 6.6: Comparativa de dos crops a procesar. Para el modelo (a) no se ha aplicado ningún tipode transformación. Para el modelo (b) se ha aplicado la transformación con PCA.

Asimismo, podemos observar que los histogramas, en este caso, presentan aparentes mejo-ras, la oriented bounding box aparenta estar más alineada respecto a la caja alineada con losejes (color negro) por lo que debería presentar mejores resultados, pero también encontra-mos casos en los que la transformación parece completamente arbitraria, tal como se puedeapreciar en la figura 6.7

Page 52: Cálculo de la dimensión fractal en datos 3D

32 Experimentación

(a) Sin rotación. (b) Con rotación.

Figura 6.7: Comparativa de dos crops a procesar. Para el modelo (a) no se ha aplicado ningún tipode transformación. Para el modelo (b) se ha aplicado la transformación con PCA.

Al igual que podemos encontrar casos positivos, también podemos encontrar una grancantidad de casos en los que no solo no conseguimos arreglar el problema sino que inclusopodemos desalinear la oriented bounding box más (Figura 6.7), lo suficiente como para com-pensar por los casos en los que la PCA corrige el desalineamiento. Esto se pueden apreciaren la figura 6.8 si los comparamos con los mostrados en la figura 6.9.

(a) Sin rotación. (b) Con rotación y PCA.

Figura 6.8: Comparativa de los histogramas de las figuras. Para el histograma (a) se muestran losvalores para las nubes rotadas sin aplicar PCA. Para la figura (b) se muestran los valoresaplicando PCA.

Con los histogramas mostrados en la figura 6.8 podemos de nuevo afirmar que el cálculo

Page 53: Cálculo de la dimensión fractal en datos 3D

6.1. Curva ROC 33

(a) Sin rotación. (b) Con rotación sin PCA.

Figura 6.9: Comparativa de los histogramas de las figuras. Para el histograma (a) se muestran losvalores para las nubes rotadas sin aplicar PCA. Para la figura (b) se muestran los valoressin PCA.

de la dimensión fractal ha sido de nuevo incorrecto. Aún que aparentemente consigamosmejores resultados para modelos rotados siguen sin ser como debería. Es por esto que sedecidió hacer un estudio estadístico sobre la distancias presentadas por los histogramas delos modelos, tanto sin como con PCA. Todo esto, sin tener siquiera en cuenta los resultadosproporcionados por los valores ROC (Tabla 6.1.1, que representa los valores obtenidos en laFigura 6.8). Que nos muestran realmente el verdadero tamaño del error cometido.

Verdaderos Positivos Falsos Positivos Verdaderos Negativos Falsos NegativosFigura (a) 2941 59 0 0Figura (b) 383 917 1181 519

Estos resultados, también nos permiten observar que se está cometiendo un error de cómpu-to. En la Figura 6.10 se puede apreciar la cantidad de lineas cruzadas, es decir, puntos que nose están emparejando con su equivalente en la nube rotada. Otros que también aparentan seremparejamientos correctos también acaban en puntos ligeramente desplazados de lo que seríasu posición inicial. Es decir, si no fuese suficiente con los resultados aportados, conclusionesy los valores ROC, esta visualización de los emparejamientos nos permite decir con seguridadque existe un error.

6.1.2 Estudio de histogramasTras aplicar PCA se observaron una mejoría en los resultados pero no había una forma de

cuantificar o establecer cuanta era esta mejoría es por esto que se realizó un estudio estadísticosobre las distancias de los histogramas entre un modelo normal y un modelo que iba rotando

Page 54: Cálculo de la dimensión fractal en datos 3D

34 Experimentación

Figura 6.10: Resultados en dos modelos, uno rotado.

15 grados en cada eje de forma iterativa. Por un lado se registró todas estas medidas para unalgoritmo sin PCA y otro con PCA. La implementación de esta prueba es sencilla, tal comose muestra en el código 6.4.

Código 6.4: Algoritmo para la la comparativa de Histogramas

1 rango = 152 for rotacionX in range(0, 360, rango):3 for rotacionY in range(0, 360, rango):4 for rotacionZ in range(0, 360, rango):5 modeloUnoClasi, modeloDosClasi = classificaRotaciones(puntos, iteraciones, radios, rotacionX, ←↩

↪→ rotacionY, rotacionZ)6 registaHistogramas(modeloUnoClasi, modeloDosClasi)

Con esto conseguimos un archivo que por cada linea contiene la rotación aplicada y ladistancia entre el histograma de cada modelo. Tras realizar la comparativa se observó que lamedia de distancia entre histogramas sin PCA es de 0.027525, mientras que con PCA tenemosuna media de 0.027997 y una desviación de 0.00673 y 0.00976 respectivamente. Es decir, laimplementación de la alineación de las nubes de puntos por PCA realizada no era correctapuesto que deberíamos encontrar una distancia media muy cercana a cero o cero.

Figura 6.11: Histogramas para dos modelos iguales, con proyección PCA aplicada a ambos.

Page 55: Cálculo de la dimensión fractal en datos 3D

6.1. Curva ROC 35

Tras esta conclusión las soluciones propuestas fueron distintas: por un lado se planteócomprobar de nuevo si la implementación de PCA era correcta, comprobando que para dosmodelos iguales, uno rotado y otro no, los puntos acababan en el mismo espacio tras serproyectados. Es decir, si los puntos proyectados por PCA en el modelo sin rotar estaban enel mismo espacio que los puntos del modelo rotado tras ser proyectado, pero por cuestionesde tiempo y plazos de entrega no fue posible implementar esta solución. Sobretodo por lasdudas presentadas por el histograma observable en la figura 6.11, en este histograma obser-vamos dos modelos, los dos han sido proyectados por PCA en cada una de las iteracionesdel cómputo de los clasificadores y aún así han mostrado el mismo histograma, haciendomucho más complicado determinar el problema. Otras soluciones y conclusiones más concisasse comentarán en el Capítulo 7.

Page 56: Cálculo de la dimensión fractal en datos 3D
Page 57: Cálculo de la dimensión fractal en datos 3D

7 Conclusiones

A lo largo de este trabajo investigativo se han encontrado problemas debidos a distintosfactores, bien por la naturaleza de las herramientas utilizadas, el contexto o tiempo. No habersido capaces de resolver los problemas comentados en el Capítulo 6 ha impedido mostrar unosresultados completos, pero llegar hasta este punto ha implicado hacer uso de las capacidadesde adaptación, aprendizaje y solución de problemas en las que se nos ha formado. El uso dela dimensión fractal para el reconocimiento de objetos 3D ha demostrado que puede aportargrandes y satisfactorios resultados en situaciones concretas, pero aún necesita solucionar unaserie de problemas para poder llevar estos satisfactorios resultados a todas las situaciones. Espor esto que también es necesario mencionar que para un campo como la visión artificial, comoya hemos dicho, aún quedan problemas por resolver. Esto, a pesar de parecer una situaciónagria nos recuerda, precisamente, que este campo es aún joven y queda mucho por explorar.La investigación de nuevos descriptores es, dentro de la disciplina de la visión artificial, unode los problemas principales a resolver e investigar.

Este trabajo ha tomado como referencia un trabajo anterior, ya mencionado anteriormenteen esta memoria, (Domenech y cols. (2020)) del que se obtiene la pieza clave para el desarrollode este proyecto y se ha utilizado como el recurso principal para desarrollar un sistema quesea capaz de solucionar los problemas planteados mediante el enfoque propuesto.

La conclusión formada tras la realización de todo este proyecto es, principalmente, que ladimensión fractal es definitivamente viable para el reconocimiento de objetos 3D y que ensituaciones ideales presenta un rendimiento prácticamente ideal. Todo esto es para mí, sinduda, suficiente para poder decir que esta investigación ha sido satisfactoria y los problemassurgidos únicamente son obstáculos en el camino que, cuando consigamos resolver, podremospresentar realmente la validez del uso de la dimensión fractal para el reconocimiento deobjetos 3D.

7.1 Trabajos FuturosComo ya se ha mencionado anteriormente a lo largo de este TFG han surgido distintos

problemas, para cada uno de estos problemas se han planteado distintas soluciones, en uncaso funcionales y en otro caso no se han podido abordar. Este mismo problema que porcuestiones principalmente de limitación temporal y plazos de entrega podría ser fácilmenteabordado en proyectos futuros.

Como se ha podido observar en el Capítulo 6 es necesario plantear un sistema que permitasolucionar los problemas presentados al calcular el valor de la dimensión fractal. En estecaso ha sido por como se había planteado el algoritmo de box counting usado. Este problemapresenta dos soluciones aparentes. Bien optar por la modificación de las nubes de puntos paracompensar este error o bien la modificación del método original para evitar los problemasencontrados. Aún así es evidente que este es un problema práctico y no inherente al concepto

37

Page 58: Cálculo de la dimensión fractal en datos 3D

38 Conclusiones

original ni sus fundamentos.También destacar que Open3D es una librería joven y en pleno desarrollo. Es también posi-

ble que un futuro estos problemas que se presentan ahora mismo no aparezcan en iteracionesfuturas.

Page 59: Cálculo de la dimensión fractal en datos 3D

BibliografíaAhmed, E., Saint, A., Shabayek, A. E. R., Cherenkova, K., Das, R., Gusev, G., … Ottersten,

B. (2018). A survey on deep learning advances on different 3d data representations. arXivpreprint arXiv:1808.01462.

Akhtar, N., y Mian, A. (2018). Threat of adversarial attacks on deep learning in computervision: A survey. IEEE Access, 6, 14410–14430.

Aldoma, A., Tombari, F., Di Stefano, L., y Vincze, M. (2012). A global hypotheses verificationmethod for 3d object recognition. En European conference on computer vision (pp. 511–524).

Aldoma, A., Tombari, F., Rusu, R. B., y Vincze, M. (2012). Our-cvfh–oriented, unique andrepeatable clustered viewpoint feature histogram for object recognition and 6dof pose esti-mation. En Joint dagm (german association for pattern recognition) and oagm symposium(pp. 113–122).

Aldoma, A., Vincze, M., Blodow, N., Gossow, D., Gedikli, S., Rusu, R. B., y Bradski, G.(2011). Cad-model recognition and 6dof pose estimation using 3d cues. En 2011 ieeeinternational conference on computer vision workshops (iccv workshops) (pp. 585–592).

Alhamzi, K., Elmogy, M., y Barakat, S. (2015). 3d object recognition based on local and globalfeatures using point cloud library. International Journal of Advancements in ComputingTechnology, 7(3), 43.

Armeni, I., Sax, A., Zamir, A. R., y Savarese, S. (2017, febrero). Joint 2D-3D-Semantic Datafor Indoor Scene Understanding. ArXiv e-prints.

Bayramoglu, N., y Alatan, A. A. (2010). Shape index sift: Range image recognition usinglocal features. En 2010 20th international conference on pattern recognition (pp. 352–355).

Brock, A., Lim, T., Ritchie, J. M., y Weston, N. (2016). Generative and discriminative voxelmodeling with convolutional neural networks. arXiv preprint arXiv:1608.04236.

Bruno, O. M., de Oliveira Plotze, R., Falvo, M., y de Castro, M. (2008). Fractal dimensionapplied to plant identification. Information Sciences, 178(12), 2722–2733.

Calli, B., Singh, A., Walsman, A., Srinivasa, S., Abbeel, P., y Dollar, A. M. (2015). The ycbobject and model set: Towards common benchmarks for manipulation research. En 2015international conference on advanced robotics (icar) (pp. 510–517).

Chang, A. X., Funkhouser, T., Guibas, L., Hanrahan, P., Huang, Q., Li, Z., … Yu, F. (2015).Shapenet: An information-rich 3d model repository (Inf. Téc. no arXiv:1512.03012 [cs.GR]).Stanford University — Princeton University — Toyota Technological Institute at Chicago.

39

Page 60: Cálculo de la dimensión fractal en datos 3D

40 Bibliografía

Choi, S., Zhou, Q.-Y., Miller, S., y Koltun, V. (2016). A large dataset of object scans. arXivpreprint arXiv:1602.02481.

Dai, A., Chang, A. X., Savva, M., Halber, M., Funkhouser, T., y Nießner, M. (2017). Scannet:Richly-annotated 3d reconstructions of indoor scenes. Descargado de http://arxiv.org/abs/1702.04405 (cite arxiv:1702.04405)

Deng, J., Dong, W., Socher, R., Li, L.-J., Li, K., y Fei-Fei, L. (2009). ImageNet: A Large-ScaleHierarchical Image Database. En Cvpr09.

Domenech, J. F., Escalona, F., Gomez-Donoso, F., y Cazorla, M. (2020). A voxelized fractaldescriptor for 3d object recognition. IEEE Access, 8, 161958-161968. doi: 10.1109/ACCESS.2020.3021455

Firman, M. (2016). Rgbd datasets: Past, present and future. En Proceedings of the ieeeconference on computer vision and pattern recognition workshops (pp. 19–31).

Garcia-Garcia, A., Gomez-Donoso, F., Garcia-Rodriguez, J., Orts-Escolano, S., Cazorla, M.,y Azorin-Lopez, J. (2016, July). Pointnet: A 3d convolutional neural network for real-timeobject class recognition. En 2016 international joint conference on neural networks (ijcnn)(p. 1578-1584). doi: 10.1109/IJCNN.2016.7727386

Garcia-Garcia, A., Gomez-Donoso, F., Garcia-Rodriguez, J., Orts-Escolano, S., Cazorla, M.,y Azorin-Lopez, J. (2016). Pointnet: A 3d convolutional neural network for real-time objectclass recognition. En 2016 international joint conference on neural networks (ijcnn) (pp.1578–1584).

Gómez, C., Mediavilla, Á., Hornero, R., Abásolo, D., y Fernández, A. (2009). Use of thehiguchi’s fractal dimension for the analysis of meg recordings from alzheimer’s diseasepatients. Medical engineering & physics, 31(3), 306–313.

Gomez-Donoso, F., Escalona, F., y Cazorla, M. (2020, May). Par3dnet: Using 3dcnns for ob-ject recognition on tridimensional partial views. Applied Sciences, 10(10), 3409. Descargadode http://dx.doi.org/10.3390/app10103409 doi: 10.3390/app10103409

Gomez-Donoso, F., Garcia-Garcia, A., Garcia-Rodriguez, J., Orts-Escolano, S., y Cazorla,M. (2017). Lonchanet: A sliced-based cnn architecture for real-time 3d object recognition.En 2017 international joint conference on neural networks (ijcnn) (pp. 412–418).

Higuchi, T. (1988). Approach to an irregular time series on the basis of the fractal theory.Physica D: Nonlinear Phenomena, 31(2), 277–283.

Ip, C. Y., Lapadat, D., Sieger, L., y Regli, W. C. (2002). Using shape distributions tocompare solid models. En Proceedings of the seventh acm symposium on solid modelingand applications (pp. 273–280).

Johns, E., Leutenegger, S., y Davison, A. J. (2016). Pairwise decomposition of image sequen-ces for active multi-view recognition. En Proceedings of the ieee conference on computervision and pattern recognition (pp. 3813–3822).

Page 61: Cálculo de la dimensión fractal en datos 3D

Bibliografía 41

José, I. (2018). Knn (k-nearest neighbors) 1. Descargado de https://towardsdatascience.com/knn-k-nearest-neighbors-1-a4707b24bd1d

Kanezaki, A., Matsushita, Y., y Nishida, Y. (2018). Rotationnet: Joint object categorizationand pose estimation using multiviews from unsupervised viewpoints. En Proceedings of theieee conference on computer vision and pattern recognition (pp. 5010–5019).

Kasaei, H. (2019). Orthographicnet: A deep learning approach for 3d object recognition inopen-ended domains. arXiv preprint arXiv:1902.03057 .

Khan, S. H., Guo, Y., Hayat, M., y Barnes, N. (2019). Unsupervised primitive discoveryfor improved 3d generative modeling. En Proceedings of the ieee conference on computervision and pattern recognition (pp. 9739–9748).

Klokov, R., y Lempitsky, V. (2017). Escape from cells: Deep kd-networks for the recognitionof 3d point cloud models. En Proceedings of the ieee international conference on computervision (pp. 863–872).

Krizhevsky, A., Sutskever, I., y Hinton, G. E. (2012). Imagenet classification with deepconvolutional neural networks. En Advances in neural information processing systems (pp.1097–1105).

Lai, K., Bo, L., Ren, X., y Fox, D. (2011). A large-scale hierarchical multi-view rgb-d objectdataset. En 2011 ieee international conference on robotics and automation (pp. 1817–1824).

Le, T., y Duan, Y. (2018). Pointgrid: A deep network for 3d shape understanding. EnProceedings of the ieee conference on computer vision and pattern recognition (pp. 9204–9214).

Li, F., Tran, L., Thung, K., Ji, S., Shen, D., y Li, J. (2015, 10). A robust deep modelfor improved classification of ad/mci patients. IEEE Journal of Biomedical and HealthInformatics, 19. doi: 10.1109/JBHI.2015.2429556

Li, J., Chen, B. M., y Hee Lee, G. (2018). So-net: Self-organizing network for point cloudanalysis. En Proceedings of the ieee conference on computer vision and pattern recognition(pp. 9397–9406).

Liu, A., Wang, Z., Nie, W., y Su, Y. (2015). Graph-based characteristic view set extractionand matching for 3d model retrieval. Information Sciences, 320, 429–442.

Liu, L., Ouyang, W., Wang, X., Fieguth, P., Chen, J., Liu, X., y Pietikäinen, M. (2018).Deep learning for generic object detection: A survey. arXiv preprint arXiv:1809.02165.

Liu, S., Giles, L., y Ororbia, A. (2018). Learning a hierarchical latent-variable model of 3dshapes. En 2018 international conference on 3d vision (3dv) (pp. 542–551).

Liu, X., Han, Z., Liu, Y.-S., y Zwicker, M. (2019). Point2sequence: Learning the shaperepresentation of 3d point clouds with an attention-based sequence to sequence network.En Proceedings of the aaai conference on artificial intelligence (Vol. 33, pp. 8778–8785).

Page 62: Cálculo de la dimensión fractal en datos 3D

42 Bibliografía

Liu, Z., y Kersten, D. (1998). 2d observers for human 3d object recognition? En Advancesin neural information processing systems (pp. 829–835).

Liu, Z., Tang, H., Lin, Y., y Han, S. (2019). Point-voxel cnn for efficient 3d deep learning.En Advances in neural information processing systems (pp. 963–973).

Luo, F., Zhang, L., Du, B., y Zhang, L. (2020). Dimensionality reduction with enhancedhybrid-graph discriminant learning for hyperspectral image classification. IEEE Transac-tions on Geoscience and Remote Sensing.

Ma, C., An, W., Lei, Y., y Guo, Y. (2017). Bv-cnns: Binary volumetric convolutional networksfor 3d object recognition. En Bmvc (Vol. 1, p. 4).

Mandelbrot, B. (1993). How long is the coast of britain? statistical self–similarity andfractional dimension. Classics on fractals, edited by GE Edgar, 351–358.

Mandelbrot, B. B. (1982). The fractal geometry of nature. San Francisco, CA: Freeman.Descargado de https://cds.cern.ch/record/98509

Maturana, D., y Scherer, S. (2015). Voxnet: A 3d convolutional neural network for real-timeobject recognition. En 2015 ieee/rsj international conference on intelligent robots andsystems (iros) (pp. 922–928).

Naseer, M., Khan, S., y Porikli, F. (2019). Indoor scene understanding in 2.5/3d for autono-mous agents: A survey. IEEE Access, 7 , 1859–1887.

Osada, R., Funkhouser, T., Chazelle, B., y Dobkin, D. (2001). Matching 3d models with shapedistributions. En Proceedings international conference on shape modeling and applications(pp. 154–166).

Princeton. (s.f.). Princeton modelnet. http://modelnet.cs.princeton.edu/. (Accessed: 2019-04-14)

Qi, C. R., Litany, O., He, K., y Guibas, L. J. (2019). Deep hough voting for 3d objectdetection in point clouds. En Proceedings of the ieee international conference on computervision (pp. 9277–9286).

Qi, C. R., Su, H., Mo, K., y Guibas, L. J. (2016). Pointnet: Deep learning on point sets for3d classification and segmentation. arXiv preprint arXiv:1612.00593.

Qi, C. R., Su, H., Mo, K., y Guibas, L. J. (2017). Pointnet: Deep learning on point setsfor 3d classification and segmentation. En Proceedings of the ieee conference on computervision and pattern recognition (pp. 652–660).

Qi, C. R., Su, H., Nießner, M., Dai, A., Yan, M., y Guibas, L. J. (2016). Volumetric andmulti-view cnns for object classification on 3d data. En Proceedings of the ieee conferenceon computer vision and pattern recognition (pp. 5648–5656).

Qi, C. R., Yi, L., Su, H., y Guibas, L. J. (2017). Pointnet++: Deep hierarchical featurelearning on point sets in a metric space. En Advances in neural information processingsystems (pp. 5099–5108).

Page 63: Cálculo de la dimensión fractal en datos 3D

Bibliografía 43

Rian, I. M., y Sassone, M. (2014). Fractal-based generative design of structural trusses usingiterated function system. International Journal of Space Structures, 29(4), 181–203.

Russakovsky, O., Deng, J., Su, H., Krause, J., Satheesh, S., Ma, S., … others (2015). Imagenetlarge scale visual recognition challenge. International journal of computer vision, 115(3),211–252.

Rusu, R. B., Blodow, N., y Beetz, M. (2009). Fast point feature histograms (fpfh) for3d registration. En 2009 ieee international conference on robotics and automation (pp.3212–3217).

Rusu, R. B., Bradski, G., Thibaux, R., y Hsu, J. (2010). Fast 3d recognition and pose usingthe viewpoint feature histogram. En 2010 ieee/rsj international conference on intelligentrobots and systems (pp. 2155–2162).

Sharma, A., Grau, O., y Fritz, M. (2016). Vconv-dae: Deep volumetric shape learning withoutobject labels. En European conference on computer vision (pp. 236–250).

Shen, G. (2002). Fractal dimension and fractal growth of urbanized areas. InternationalJournal of Geographical Information Science, 16(5), 419–437.

Singh, A., Sha, J., Narayan, K. S., Achim, T., y Abbeel, P. (2014). Bigbird: A large-scale3d database of object instances. En 2014 ieee international conference on robotics andautomation (icra) (pp. 509–516).

Song, S., Lichtenberg, S. P., y Xiao, J. (2015). Sun rgb-d: A rgb-d scene understandingbenchmark suite. En Cvpr (p. 567-576). IEEE Computer Society. Descargado de http://dblp.uni-trier.de/db/conf/cvpr/cvpr2015.html#SongLX15

Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., y Salakhutdinov, R. (2014). Dropout:a simple way to prevent neural networks from overfitting. The journal of machine learningresearch, 15(1), 1929–1958.

Su, H., Jampani, V., Sun, D., Maji, S., Kalogerakis, E., Yang, M.-H., y Kautz, J. (2018).Splatnet: Sparse lattice networks for point cloud processing. En Proceedings of the ieeeconference on computer vision and pattern recognition (pp. 2530–2539).

Su, H., Maji, S., Kalogerakis, E., y Learned-Miller, E. (2015). Multi-view convolutional neuralnetworks for 3d shape recognition. En Proceedings of the ieee international conference oncomputer vision (pp. 945–953).

Su, J., Vargas, D. V., y Sakurai, K. (2019). One pixel attack for fooling deep neural networks.IEEE Transactions on Evolutionary Computation, 23(5), 828–841.

Tatarchenko, M., Dosovitskiy, A., y Brox, T. (2017). Octree generating networks: Efficientconvolutional architectures for high-resolution 3d outputs. En Proceedings of the ieee in-ternational conference on computer vision (pp. 2088–2096).

Wang, P.-S., Liu, Y., Guo, Y.-X., Sun, C.-Y., y Tong, X. (2017). O-cnn: Octree-based con-volutional neural networks for 3d shape analysis. ACM Transactions on Graphics (TOG),36(4), 1–11.

Page 64: Cálculo de la dimensión fractal en datos 3D

44 Bibliografía

Wohlkinger, W., y Vincze, M. (2011). Ensemble of shape functions for 3d object classification.En 2011 ieee international conference on robotics and biomimetics (pp. 2987–2992).

Wu, J., Zhang, C., Xue, T., Freeman, B., y Tenenbaum, J. (2016). Learning a probabilisticlatent space of object shapes via 3d generative-adversarial modeling. En Advances in neuralinformation processing systems (pp. 82–90).

Wu, Z., Song, S., Khosla, A., Yu, F., Zhang, L., Tang, X., y Xiao, J. (2015a, 06). 3d shapenets:A deep representation for volumetric shapes. En (p. 1912-1920).

Wu, Z., Song, S., Khosla, A., Yu, F., Zhang, L., Tang, X., y Xiao, J. (2015b, June). 3d sha-penets: A deep representation for volumetric shapes. En The ieee conference on computervision and pattern recognition (cvpr).

Xia, S., Chen, D., Wang, R., Li, J., y Zhang, X. (2020). Geometric primitives in lidar pointclouds: A review. IEEE Journal of Selected Topics in Applied Earth Observations andRemote Sensing, 13, 685–707.

Xiang, Y., Kim, W., Chen, W., Ji, J., Choy, C., Su, H., … Savarese, S. (2016). Objectnet3d:A large scale database for 3d object recognition. En European conference computer vision(eccv).

Yang, K., Tsai, T., Yu, H., Ho, T.-Y., y Jin, Y. (s.f.). Beyond digital domain: Fooling deeplearning based recognition system in physical world.

Yavartanoo, M., Kim, E. Y., y Lee, K. M. (2018). Spnet: Deep 3d object classificationand retrieval using stereographic projection. En Asian conference on computer vision (pp.691–706).

Zhou, Q.-Y., Park, J., y Koltun, V. (2018a). Open3D: A modern library for 3D data proces-sing. arXiv:1801.09847 .

Zhou, Q.-Y., Park, J., y Koltun, V. (2018b). Open3d: A modern library for 3d data processing.arXiv preprint arXiv:1801.09847 .

Zrira, N., Hannat, M., Bouyakhf, E. H., y Khan, H. A. (2018). 2d/3d object recognitionand categorization approaches for robotic grasping. En Advances in soft computing andmachine learning in image processing (pp. 567–593). Springer.

Page 65: Cálculo de la dimensión fractal en datos 3D

Lista de Acrónimos y Abreviaturas

2D Dos dimensiones.3D Tres dimensiones.CNN Convolutional Neural Networks.CVFH Clustered Viewpoint Feature Histogram.ESF Ensemble of Shape Functions.FPFH Fast Point Feature Histogram.FPR Razón de Falsos Positivos.IA Inteligencia Artificial.IEEE Institute of Electrical and Electronics Engineers.KNN K-Nearest Neighbours..OFF Object File Format.OUR-CVFH Oriented, Unique and Repeatable Clustered View-

point Feature Histogram.PCA Principal Component Analysis.PCD Nube de Puntos.PVCNN Point-Voxel CNN.PVConv Convolución Punto-Voxel.ROC Característica Operativa del Receptor.SOM Self-organized Map.TFG Trabajo Final de Grado.VFH Viewpoint Feature Histogram.VPR Razón de Verdaderos Positivos.

45