• No se han encontrado resultados

Reconstrucción 3D precisa de objetos utilizando un solo sensor KinectPrecise 3D reconstruction of objects using a single Kinect sensor

N/A
N/A
Protected

Academic year: 2020

Share "Reconstrucción 3D precisa de objetos utilizando un solo sensor KinectPrecise 3D reconstruction of objects using a single Kinect sensor"

Copied!
79
0
0

Texto completo

(1)

Superior de Ensenada, Baja California

MR

Maestría en Ciencias

en Ciencias de la Computación

Reconstrucción 3D precisa de objetos utilizando un

solo sensor Kinect

Tesis

para cubrir parcialmente los requisitos necesarios para obtener el grado de Maestro en Ciencias

Presenta:

Marcelo Luis Ruiz Rodríguez

(2)

Marcelo Luis Ruiz Rodríguez

y aprobada por el siguiente Comité

Dr. Vitaly Kober Director de tesis

Dr. Pedro Gilberto López Mariscal

Dr. Josué Álvarez Borrego

Dr. Ubaldo Ruiz López

Coordinador del Posgrado en Ciencias de la Computación

Dra. Rufina Hernández Martínez Directora de Estudios de Posgrado

Marcelo Luis Ruiz Rodríguez©2019

(3)

Resumen de la tesis que presenta Marcelo Luis Ruiz Rodríguez como requisito parcial para la obtención del grado de Maestro en Ciencias en Ciencias de la Computación .

Reconstrucción 3D precisa de objetos utilizando un solo sensor Kinect

Resumen aprobado por:

Dr. Vitaly Kober Director de tesis

La reconstrucción 3D es un problema en procesamiento de imágenes con múlti-ples aplicaciones en áreas como medicina, robótica, seguridad, entretenimiento, entre otras. Consiste en generar un modelo 3D de un objeto de interés capturado por un o múltiples sensores, en diferentes tiempos o puntos de vista. Existe un tipo de sensor llamado cámara RGB-D que provee dos tipos de imagen, la información de color y la información de profundidad. La reconstrucción 3D se convierte en un problema com-plejo en el momento en que el objeto se deforma en el proceso de captura. El presente trabajo de tesis propone un sistema para la reconstrucción 3D utilizando la información geométrica del objeto, adquirida a partir de la información de profundidad, y la infor-mación visual del objeto, adquirida a partir de la imagen de color. El sistema se basa en el algoritmo del punto iterativo mas cercano (ICP) el cual se encarga de minimizar la distancia euclidiana entre dos pares de nubes de puntos. El problema del algoritmo ICP es que necesita una estimación inicial cercana. Este problema se solucionó utilizando detectores y descriptores, tanto de nubes de puntos como de imágenes. Finalmente el sistema realiza correcciones no rígidas para depurar el proceso de registro.

(4)

Abstract of the thesis presented by Marcelo Luis Ruiz Rodríguez as a partial require-ment to obtain the Master of Science degree in Computer Science.

Precise 3D reconstruction of objects using a single Kinect sensor

Abstract approved by:

Dr. Vitaly Kober Thesis Director

3D reconstruction is a problem in image processing with multiple applications in areas such as medicine, robotics, security, entertainment, among others. It consists of generating a 3D model of an object of interest captured by one or more sensors, at different times and points of view. There is a type of sensor called RGB-D camera that provides two kinds of image; that is, color information and depth information. 3D reconstruction becomes a challenging problem when the object is deformed during the capture process. This thesis proposes a precise 3D reconstruction system based on using the geometric information of the object, acquired from the depth information, and the visual information of the object, acquired from the color image. The system uses on the algorithm of the iterative closest point (ICP), which minimizes the Eucli-dean distance between two pairs of point clouds. The problem with the ICP algorithm is that it needs a close initial estimation. This problem was solved by using a combina-tion of detectors and descriptors for both point clouds and images. Finally the system performs non-rigid corrections to improve the registration process.

(5)

Dedicatoria

A mi familia

(6)

Agradecimientos

A mi familia por su amor y apoyo incondicional, en especial a mi hermana Aurora

por acompañarme en este reto juntos.

Al Dr. Vitaly Kober por la oportunidad y confianza en este proyecto.

A los miembros de mi comité de tesis, Dr. Pedro Gilberto López Mariscal y Dr. Josué

Álvarez Borrego, por sus consejos y valiosos comentarios.

A Julia Diaz y Antonio Ortiz por apoyarme cuando me encontraba perdido entre

dudas.

A mis profesores por todo lo que me enseñaron y motivaron.

A todos los compañeros del Departamento de Ciencias de la Computación por

ha-cerme vivir una grata experiencia.

A Karina y Angie por siempre acordarse de toda mi generación y sobre todo de mis

hábitos alimenticios.

A mis compañeros del equipo de voleibol, Oscar, Jesús, Fátima, Sofía, Lupita y sobre

todo Ana por impactar de diferentes formas a mi vida.

Al Centro de Investigación Científica y de Educación Superior de Ensenada por

dar-me la oportunidad de realizar mis estudios de posgrado.

Al Consejo Nacional de Ciencia y Tecnología (CONACyT) por brindarme el apoyo

(7)

Tabla de contenido

Página

Resumen en español . . . ii

Resumen en inglés . . . iii

Dedicatoria . . . iv

Agradecimientos . . . v

Lista de figuras . . . ix

Lista de tablas . . . x

Capítulo 1. Introducción 1.1. Antecedentes . . . 2

1.1.1. Reconstrucción 3D . . . 2

1.1.2. Adquisición de datos utilizando cámaras RGB-D . . . 4

1.1.3. Registro . . . 5

1.1.3.1. Registro de objetos rígidos . . . 5

1.1.3.2. Registro de objetos no-rígidos . . . 6

1.1.4. Generación de superficies . . . 6

1.2. Justificación . . . 7

1.3. Objetivos . . . 8

1.3.1. Objetivo general . . . 8

1.3.2. Objetivos específicos . . . 8

Capítulo 2. Marco Teórico 2.1. Definición de imagen . . . 10

2.2. Definición de nube de puntos . . . 10

2.3. Definición de tipos de objetos . . . 11

2.4. Transformaciones en 3D . . . 11

2.4.1. Rotación . . . 12

2.4.2. Escalamiento . . . 13

2.4.3. Cizañamiento . . . 13

2.5. Valores característicos y vectores característicos . . . 14

2.6. Análisis de componentes principales . . . 15

2.7. Normales a la superficie . . . 16

2.8. Estimación de pose . . . 17

2.9. Detección y extracción de características . . . 17

2.9.1. Detección de características . . . 18

2.9.1.1. Harris . . . 18

2.9.1.2. ISS . . . 19

2.9.1.3. SUSAN . . . 20

2.9.1.4. SIFT . . . 20

2.9.2. Descriptor de características . . . 20

2.9.2.1. PFH . . . 21

2.9.2.2. SHOT . . . 21

(8)

Tabla de contenido (continuación)

2.9.2.4. RIFT . . . 23

2.9.2.5. RSD . . . 23

2.9.2.6. SIFT . . . 23

2.9.2.7. SURF . . . 24

2.10. Registro de nubes de puntos . . . 24

2.10.1. Registro rígido . . . 24

2.10.1.1.Análisis de componentes principales . . . 25

2.10.1.2.Descomposición por valores singulares . . . 25

2.10.1.3.Punto iterativo mas cercano . . . 26

2.10.2. Registro no-rígido . . . 27

2.10.2.1.RPM . . . 27

2.10.2.2.CPD . . . 28

2.10.2.3.Punto iterativo mas cercano no rígido . . . 28

2.11. Programación paralela . . . 31

2.11.1. Programación en unidad de procesamiento gráfico . . . 32

Capítulo 3. Sistema propuesto 3.1. Sistema basado en profundidad . . . 34

3.1.1. Extracción del objeto . . . 34

3.1.1.1. Filtro por distancia . . . 34

3.1.1.2. Filtro de ruido . . . 36

3.1.1.3. Filtro de plano . . . 36

3.1.2. Extracción de características . . . 36

3.1.2.1. Generación de Malla . . . 37

3.1.2.2. Descriptor . . . 37

3.1.2.3. Correspondencia y filtrado . . . 39

3.1.3. Registro rígido y estimación de pose . . . 40

3.1.4. Corrección no rígida . . . 41

3.1.5. Generación de superficies . . . 43

3.2. Sistema basado en imágenes . . . 43

3.2.1. Extracción de características . . . 43

3.2.2. Estimación inicial . . . 44

3.2.3. Registro rígido . . . 45

3.2.4. Corrección no rígida . . . 46

3.2.5. Generación de superficies . . . 46

Capítulo 4. Experimentos y resultados 4.1. Experimento 1: Evaluación del algoritmo ICP con información de color. 49 4.2. Experimento 2: Análisis del sistema basado en profundidad. . . 54

4.3. Experimento 3: Análisis del sistema basado en imágenes . . . 56

4.4. Experimento 4: Análisis del sistema utilizando GPU . . . 58

(9)

Tabla de contenido (continuación)

(10)

Lista de figuras

Figura Página

1. Normal de la superficie. . . 16

2. Correspondencia entre puntos. . . 29

3. Proceso de registro con rigidez variable. . . 30

4. Paso intermedio del proceso de registro de nRICP. . . 32

5. Sistema basado en profundidad. . . 35

6. Combinación entre detectores y descriptores. . . 39

7. Filtrado de falsas correspondencias. . . 39

8. Alineación del marco de referencia. . . 40

9. Selección de puntos. . . 42

10. Métricas para la correspondencia entre puntos. . . 42

11. Sistema basado en imágenes. . . 44

12. Comparación de SIFT, 989 puntos de interés, y SURF, 1712 puntos de interés. . . 45

13. Imagen RGB del primer conjunto de datos. . . 48

14. Imagen RGB del segundo conjunto de datos. . . 48

15. Imagen RGB del tercer conjunto de datos. . . 49

16. Diferencia entre la RECM entre los algoritmo ICP vs ICPC con valores pon-derados de color. . . 52

17. Diferencia entre las normales de los algoritmo ICP vs ICPC con valores ponderados de color. . . 53

18. Nube de puntos del conjunto 1. . . 54

19. Nube de puntos del proceso de registro del conjunto 1. . . 56

20. Entradas del sistema basado en imágenes 1 . . . 56

(11)

Lista de tablas

Tabla Página

1. Tabla comparativa de la RECM de los algoritmos ICPC, nRICP, nRICPC utilizando la ponderación de 8k para el ICPC y de 6k para nRICPC. . . 55 2. Tabla comparativa de la RECM de los algoritmos ICPC, nRICP, nRICPC. 57

3. Normales utilizando diferente número de vecinos. . . 58 4. Especificaciones del equipo de computo para la programación

para-lela. . . 59 5. Tabla comparativa de los tiempos promedios en segundos de el

al-goritmo ICPC e ICPC_GPU en el registro de un par de nube de puntos. 59 6. RECM entre los algoritmo ICP vs ICPC con valores ponderados de

color y separación de nubes de puntos. . . 67

(12)

Capítulo 1.

Introducción

La reconstrucción tridimensional (3D) es el proceso de generar un modelo de un objeto real a partir de la entrada de un sensor. Los sensores se pueden clasificar en sensores pasivos, los cuales no emiten algún tipo de señal artificial sobre el objeto, sino que se hace una lectura de lo que el objeto emite o refleja de manera natural, mientras que los sensores activos si emiten una señal artificial sobre el objeto y esta es reflejada para posteriormente ser analizada.

Las cámaras RGB-D son sensores que proporcionan información RGB de los colo-res de una imagen junto con la información de profundidad, es decir, la relación de la distancia que hay entre el sensor y el objeto para cada pixel. Esta información se presenta en forma de imagen, pero los valores de los pixeles representan la profundi-dad del objeto. Esta imagen de profundiprofundi-dad generada es un procesamiento interno del sensor utilizando tanto luz estructurada como otras técnicas, por ejemplo, ToF (Time of Flight), que es una técnica que mide el tiempo que tarda una señal en ser emitida por un sensor y regresar a este después de ser reflejada por un objeto. Una de las cámaras más populares es el Kinect de Microsoft. La primera versión del Kinect utiliza el principio de luz estructurada (sensor activo) para emitir un patrón de luz infrarroja y leerlo con una cámara infrarroja. Debido a que la tecnología de cámaras RGBD se ha vuelto accesible y de bajo costo, se han propuesto múltiples aplicaciones entre las que se encuentran, impresiones 3D, diseño de modelos asistidos por computadora (CAD), videojuegos, imágenes médicas, realidad virtual, robótica entre otras. Esto tiene gran relevancia porque permite conocer la estructura y dimensión de uno o múltiples obje-tos para identificarlos o estudiarlos.

En el problema de reconstrucción 3D existen dos tipos de objetos, rígidos y no rígidos. Un objeto no rígido o deformable es un objeto en el cual la relación geométrica de las partículas que lo componen no se mantienen constantes en el tiempo, es decir, las partículas que forman el objeto se mueven de una posición inicial P a una nueva posiciónPt=ƒ(t, P)en un tiempo determinadot. En cambio, un objeto rígido mantiene la misma relación geométrica de las partículas,Pt=P, para cualquier tiempo t.

(13)

cual es una técnica para construir un mapa de un entorno y mantener la posición del agente en él. En este tipo de problemas la navegación no necesita detalles precisos en el momento de la reconstrucción e incluso el ambiente se comporta de manera rígida. Sin embargo, para otras aplicaciones es necesario tener una precisión y velocidad de procesamiento alta, además, los objetos a reconstruir pueden presentar deformacio-nes en el transcurso del tiempo de captura.

El trabajo de investigación realizado en esta tesis consiste en el diseño de un sis-tema para la reconstrucción precisa de objetos 3D utilizando un único sensor Kinect sin limitar demasiado la cámara RGB-D ni al objeto a escanear. Se compararán con técnicas existentes del estado del arte tanto para objetos rígidos como no-rígidos y se implementará con programación paralela utilizando unidades de procesamiento gráfi-co (GPU).

1.1. Antecedentes

En esta sección se presentan algunos trabajos de investigación relevantes en el área de reconstrucción 3D que se llevaron a cabo en los últimos años y dan una pauta para el presente trabajo de investigación.

Primeramente, se describirá el concepto general de reconstrucción 3D junto con diferentes tipos de sensores para la adquisición de datos. Después se abordarán los temas de las etapas del proceso de reconstrucción 3D sobre la adquisición de datos con una cámara RGB-D (Kinect), algoritmos para filtrado de información y extracción de características, registro de puntos, y finalmente la representación de texturas o superficies a partir de las nubes de puntos.

1.1.1. Reconstrucción 3D

(14)

2017), en la robótica para generar mapas de navegación (Kimet al., 2018; Fanet al., 2018), en el arte para la conservación de esculturas (Zhang et al., 2015) o preservar documentos históricos (Pal et al., 2013), en la observación de zonas poco accesibles (Yan et al., 2014), en temas de seguridad y actividad forense (Villaet al., 2018) y re-construcción de modelos 3D de ciudades (Agarwal et al., 2011) con fines didácticos entre otras aplicaciones.

Existen diferentes técnicas para la adquisición de datos en el proceso de reconstruc-ción 3D utilizando algún tipo de sensor. Estas técnicas se pueden dividir en invasivas y no invasivas. Las invasivas son aquellas donde se necesita entrar en contacto físico directamente con el objeto a partir de sensores táctiles (Liu y Hasegawa, 2001). Las no invasivas se pueden clasificar por técnicas pasivas o activas. Las técnicas pasivas son las que no se necesita emitir algún tipo de señal artificial sobre el objeto, como es en el caso de la fotogrametría (Chenget al., 2018; Agüera-Vegaet al., 2018; ZHANG, 2011), donde únicamente se capturan imágenes y se realizan procesos comparativos entre puntos de interés de múltiples capturas. Las técnicas activas, donde dependiendo de las condiciones, propiedades o aplicaciones que se necesiten, emiten algún tipo de se-ñal sobre el cuerpo a escanear, ya sea una sese-ñal acústica, como puede ser ultrasonido (Kwon et al., 2017; Kulawiak y Lubniewski, 2016), luminosa, como el análisis de un láser reflejado (Jiang et al., 2017) o luz estructurada (Zhang, 2018; Song et al., 2017; Yang y Chen, 2017), que pretende analizar diferentes patrones que se verán mostra-dos sobre el objeto a escanear y recuperar la información reflejada por este. Existe un tipo de cámaras llamadas RGB-D las cuales proveen información de color (RGB) y de profundidad (D). Estas cámaras utilizan luz estructurada o técnicas de tiempo de vuelo (ToF, Time of Flight) para generar el parámetro de la profundidad (Panet al., 2016).

(15)

de puntos, y no rígidos, donde además se necesitan realizar operaciones de distorsión en ciertas zonas de la imagen.

1.1.2. Adquisición de datos utilizando cámaras RGB-D

La primera etapa de la reconstrucción 3D es la adquisición de datos. Una de las técnicas más populares es a través de sensores ópticos, los cuales cuentan con velo-cidades altas de captura.

Una de las cámaras más populares, debido a su portabilidad y bajo costo, es el Kinect de Microsoft . La primera versión del Kinect utiliza el principio de luz estructu-rada para emitir un patrón de luz infrarroja y leerlo con una cámara infrarroja. En el trabajo de Khoshelham y Elberink (2012) describen algunas características del Kinect donde muestran que el error puede ir de unos cuantos milímetros hasta 4cm en el rango máximo del sensor. Debido a que el Kinect emite luz infrarroja sus aplicaciones son en ambientes controlados. La luz solar al emitir en el rango infrarrojo causa ruido al patrón emitido, de la misma manera múltiples Kinects pueden ser afectados por el patrón de otro Kinect aunque no de manera tan relevante. Esto lo demuestra Andersen et al. (2012) en su trabajo donde el ruido que se genera del traslape de dos Kinects es mínimo y los pixeles perdidos se mantienen constantes en un traslape de hasta 10 cm, incluso mientras mantienen un escaneo de una persona frente a frente con dos Kinects.

(16)

1.1.3. Registro

El registro es el proceso que permite alinear dos o más nubes de puntos tomando como referencia una nube de puntos inicial. Esto se debe a que las nubes de pun-tos pudieron ser adquiridas por diferentes punpun-tos de vista, tiempo o dispositivos de captura. Se puede clasificar en registro de objetos rígidos y no rígidos.

1.1.3.1. Registro de objetos rígidos

Los algoritmos basados en registro de objetos rígidos son un problema común en visión por computadora. Uno de los principales algoritmos es el Punto Iterativo mas Cercano (ICP, Iterative Closest Point)(Besl y McKay, 1992a) y sus variantes. ICP se encarga de encontrar una transformación entre dos nubes de puntos, de manera ite-rativa, que permita minimizar la distancia que hay entre los puntos. El trabajo de KinectFusion (Izadiet al., 2011) presenta un avance grande para la reconstrucción 3D donde utilizan ICP para estimar la posición de la cámara a partir de las nubes de pun-tos generadas utilizando las imágenes de profundidad. También, ICP se ha utilizado para medir la precisión de los resultados como en el trabajo realizado por Yuheng Ren et al.(2013) donde utilizan el modelo generado e implementan ICP para comparar los resultados obtenidos con muestras previamente registradas. El trabajo realizado por (Wanget al., 2017) implementa ICP como parte del proceso de reconstrucción 3D para resolver el problema del SLAM. Existen adaptaciones que se han realizado al algoritmo ICP para mejorar en diferentes características como el trabajo realizado por (Nießner et al., 2014) donde ataca las deficiencias del ICP al unir nubes de puntos y realizando un menor número de iteraciones.

(17)

resol-ver el problema del SLAM. En este trabajo utilizan primero el método de RANSAC para estimar una solución inicial y aplicar el algoritmo de ICP. Similar al trabajo de (Christie et al., 2016) combinando ambos algoritmos para la reconstrucción de objetos rígidos en movimiento.

1.1.3.2. Registro de objetos no-rígidos

El registro de objetos no rígidos no se puede realizar utilizando únicamente ciones lineales como rotación o traslación, sino que además se deben realizar opera-ciones locales de distorsión en las nubes de puntos. Algunas de las alternativas para el registro de objetos no rígidos es el trabajo propuesto por Liang et al. (2018) al que llaman Nonrigid Iterative Closes Point (NICP) que se basa en analizar los puntos en ambas direcciones, no en una sola dirección como originalmente trabaja el ICP.

Otro trabajo que ha permitido extender el proyecto de KinectFusion es DynamicFu-sion (Newcombe et al., 2015), que a diferencia del primero, no se infiere que toda la escena es rígida, si no que utilizan la función de distancia truncada con signo, (TSDF, Truncated Signed Distance Function) para la alineación y fusión en un solo cuerpo rígido sin importar las variaciones de la escena.

1.1.4. Generación de superficies

El problema de la generación de superficies es la última etapa en el proceso de reconstrucción 3D, se basa en que a partir de la nube de puntos se pueda hacer una interpolación para poder visualizarlos en un modelo. Las superficies se pueden clasificar en varios tipos:

Representación

• Explicita

(18)

• Implícita

Su representación está dada porƒ(, y, z) =0 y en la reconstrucción 3D se basa en encontrar la función que mejor se ajuste a los datos de entrada.

Características de la topología

• Isotrópico

Un modelo es llamado isotrópico cuando su superficie es muy suave, es decir, que medir ciertas características en diferentes direcciones da el mismo resultado.

• Anisotrópico

Un modelo es anisotrópico si al menos tiene una característica anisotró-pica, es decir, alguna propiedad varía dependiendo de la dirección en la cual se mida.

Por otro lado, diferentes algoritmos se han implementado para resolver la proble-mática de la generación de superficies. Power Crust (Amentaet al., 2001) es un algo-ritmo robusto que no depende de la calidad de los puntos para generar una superficie y cualquier entrada genera un sólido que sus límites se ajustan a un poliedro. Otra alternativa es utilizando funciones de base radiales como el algoritmo propuesto por Carr et al. (2001) que debido a que existen métodos rápidos para ajustar y evaluar estas funciones se pueden utilizar para modelar conjunto de datos grandes. El algo-ritmo de Surface Elements (Surfel)(Pfisteret al., 2000) es ideal para modelos con una complejidad alta además de que tiene las capacidades de hardware para poder ser paralelizado y disminuir el tiempo de procesamiento.

1.2. Justificación

(19)

este se comporta de manera no rígida debido a que presenta movimientos involunta-rios como la respiración o los latidos del corazón; entre otras.

El utilizar sistemas ópticos para la reconstrucción 3D permite una mayor seguridad a las personas al momento de realizar mediciones o estimaciones, además de una alta velocidad de captura y registro. El utilizar cámaras RGB-D permite obtener la informa-ción de un sistema pasivo, como el uso de la fotogrametría, y activo, obteniendo las características de las dimensiones del objeto. Esto permite trabajar en ambientes con media y poca iluminación.

La implementación de los algoritmos en unidades de procesamiento gráfico permi-tirá mejorar el rendimiento de los algoritmos en términos de tiempo de procesamiento y extender el trabajo a otras aplicaciones donde sea necesario ejecutarse en tiempo real.

1.3. Objetivos

1.3.1. Objetivo general

Realizar un estudio comparativo entre los diferentes algoritmos de registro de nu-bes de puntos y generación de superficies. Desarrollar un algoritmo que permita re-construir 3D objetos rígidos y poco deformables con una precisión alta.

1.3.2. Objetivos específicos

Estudiar las bases matemáticas de los diferentes métodos de registro.

Desarrollar un método para la reconstrucción de objetos rígidos con una precisión alta.

Desarrollar un método para el filtrado del fondo en la reconstrucción de objetos.

Desarrollar un método para la reconstrucción de objetos no rígidos con una pre-cisión alta utilizando el algoritmo para objetos rígidos.

(20)
(21)

Capítulo 2.

Marco Teórico

2.1. Definición de imagen

Una imagen se puede definir como una función bidimensional,ƒ(, y), donde yy son coordenadas espaciales (plano), y la amplitud de ƒ en cualquier par de coordena-das (, y) se llama intensidad o nivel de gris de la imagen en ese punto. Cuando los valores de,yy el nivel de gris son todos cantidades finitas y discretas, llamamos a la imagen una imagen digital. Una imagen digital está compuesta por un número finito de elementos, cada uno de los cuales tiene una localización y valor particular. Estos elementos se denominan elementos de imagen, pels o pixeles. Pixel es el término más utilizado para denotar los elementos de una imagen (Gonzalez y Woods, 2017).

2.2. Definición de nube de puntos

Una nube de puntos es un conjunto de puntos p= [, y, z]T que pueden estar de maneraorganizadaen una matrizP dem×n,

P=

   

p11 · · · p1n

..

. ... ... pm1 · · · pmn

   

, (1)

donde cada elemento de la matriz es un punto po un elemento nulo. También puede representarse de maneradesorganizadacomo un vectoroPde mpuntos p,

oP=

   

p1

.. . pm

   

. (2)

Las nubes de puntos pueden tener otro tipo de información adicional y aumentar el numero de dimensiones del vector p como la información a color[r, g, b]T o la dirección de las normales en cada punto[n, ny, nz]T

(22)

2.3. Definición de tipos de objetos

Analizar y comprender las formas que tienen los objetos a nuestro alrededor es una tarea importante para el área de la visión por computadora. Cuando hablamos de formas, nos referimos a una representación visual del objeto como puede ser una imagen o nube de puntos mas que del objeto mismo.

Un objeto es considerado rígido si la relación geométrica de las partículas que lo componen permanece constante, Pt =P, para cualquier tiempot. En cambio, las par-tículas de un objeto no rígido o deformable se mueven de una posición inicialP a una nueva posiciónPt=ƒ(t, P)para un tiempo determinado t (Ghosh, 2018).

2.4. Transformaciones en 3D

Las transformaciones en 3D nos permiten manipular objetos o representaciones de ellos, para modificar ciertas propiedades geométricas que los componen. A continua-ción presentaremos algunas definiciones básicas de geometría 3D y algunas transfor-maciones lineales.

Un punto p en el espacio puede ser representado por sus coordenadas homogé-neas por un vector de 4 valores p = [, y, z, ] donde el punto se representa como (/ , y/ , z/ ), siendo , y, z las coordenadas cartesianas y un factor de escala-miento. Una transformación en el espacio (R3) es un mapeo que existe deR3aR3. Una transformaciónA es lineal si mantiene las siguientes dos condiciones:

1. Para todaαRy todaxR3, A(αx) =αA(x)

2. Para todax,y∈R2,A(x+y) =A(x) +A(y)

(23)

R3 representando la traslación, las transformaciones afines pueden ser representadas como:     y z    7→    

b c d e ƒ g h

        y z    +         , (3)

y pueden ser representadas por su forma homogénea como:

       y z 1        7→       

b c d e ƒ g h 0 0 0 1               y z 1        . (4)

Las transformaciones que pueden ser aplicadas para un objeto rígido son las de traslación, que permite manipular las posiciones , y y z, junto con las de rotación, que permite darle una orientación,α,β yγal objeto (Buss, 2003).

2.4.1. Rotación

A diferencia de la rotación en 2D, que se rota sobre un solo punto y se utiliza un único ángulo θ, en 3D la rotación se realiza sobre un eje. Un eje de rotación no necesariamente tiene que ser uno de los ejes cardinales, y,zpero a continuación se describirá sobre estos.

Dados los 3 vectores bases, p = [1,0,0], q = [0,1,0] y r = [0,0,1], la rotación sobre el eje está dada por:

R(θ) =

    p0 q0 r0    =    

1 0 0

0 cos(θ) sen(θ) 0 sen(θ) cos(θ)

  

. (5)

La rotación sobre el ejey es similar ay está dada por:

Ry(θ) =

    p0 q0 r0    =    

cos(θ) 0 sen(θ)

0 1 0

sen(θ) 0 cos(θ)

  

(24)

Finalmente la rotación sobre el eje zse realiza con la matriz:

Rz(θ) =

    p0 q0 r0    =    

cos(θ) sen(θ) 0

sen(θ) cos(θ) 0

0 0 1

    . (7) 2.4.2. Escalamiento

La transformación de escalamiento permite a un objeto aumentar sus dimensiones o reducirlas por un factor dek.

Si |k| < 1 el objeto se reduce en esa dirección, si |k| > 1 el objeto incrementa sus dimensiones, si k < 0 se obtiene una reflexión del objeto. Una reflexión es una transformación que permite voltear el objeto en un plano.

Los vectores base p, q, r, son independientemente afectados por los factores de escalamiento:

p0 =kp=k

h

1 0 0 i

=hk 0 0 i

,

q0 =kyq=ky h

0 1 0 i

=h0 ky 0 i

,

r0 =kyr=kz h

0 0 1 i

=h0 0 kz

i .

(8)

A partir de estos vectores se puede construir la matriz de escalamiento:

S(k, ky, kz) =

    p0 q0 r0    =    

k 0 0 0 ky 0 0 0 kz

    . (9) 2.4.3. Cizañamiento

Esta transformación se encarga de inclinar el espacio de coordenadas. Aunque los ángulos no se preservan, el volumen del objeto si.

(25)

y y se desplazan por los valores s y t de la otra coordenada z. Estas matrices se describen a continuación:

Hy=

  

1 0 0 0 1 0 s t 1

   ,

Hz=

  

1 0 0 s 1 t 0 0 1

   ,

Hyz=

  

1 s t 0 1 0 0 0 1     . (10)

2.5. Valores característicos y vectores característicos

Los valores y vectores característicos también se denominan valores y vectores propios o eigenvalores y eigenvectores, el término alemáneigen significapropio y se define de la siguiente manera:

Sea A una matriz den×n con componentes reales. El númeroλ (real o complejo) se denomina valor característico deA si existe un vector diferente de cero en Ctal

queA=λ, el vector 6=0 se denomina vector característico de Acorrespondiente

al valor característico deλ.

Sabemos que A=λ=λ y podemos reescribirlo como:

(A−λ)=0, (11)

como se ha supuesto que el sistema cuenta con soluciones no triviales, el det (A =

λ=λ) =0, por lo tanto podemos definir la ecuación característica de una matrizA como:

(26)

dondep(λ)es el polinomio característico.

Para calcular los valores y vectores característicos se debe:

1. Encontrarp(λ) =det(Aλ) =0.

2. Encontrar las raícesλ1,λ2,· · ·,λnde p(λ) =0.

3. Resolver el sistema homogéneo (A−λ) =0, correspondiente a cada valor

ca-racterístico λ.

2.6. Análisis de componentes principales

El análisis de componentes principales (PCA, Principal Component Analysis) (Duda et al., 2000) es una técnica que permite descomponer un conjunto de datos en una nueva base ortonormal en la dirección de la varianza mas grande. La dirección de esta varianza está determinada por los eigenvectores. Este proceso se obtiene de la siguiente manera: Primero, se centran los centroides de las dos nubes de puntos. El centroide se puede determinar como el promedio de todas las coordenadas de la nube de puntos

c= 1

n

n

X

=1

p. (13)

El segundo paso consiste en obtener la matriz de covarianza de cada una de las nubes de puntos. La covarianza entre dos variables yb se obtiene de la siguiente manera:

cov(a,b)= Pn

(¯)(bb¯)

n1

, (14)

mientras que la matriz de covarianza para cada nubes de puntos se obtiene determi-nando la covarianza entre los ejes de coordenadas de los puntos,

Mcov=

  

cov(x,x) cov(x,y) cov(x,z) cov(y,x) cov(y,y) cov(y,z) cov(z,x) cov(z,x) cov(z,z) 

  

. (15)

(27)

la nube de puntos. Si representamos a A como la matriz de covarianza, como un

eigenvector de esta matriz y λ su correspondiente eigenvalor, entonces lo podemos definir como un problema de descomposición por eigenvalores como:

A=λ, (16)

y reducirlo como en la ecuación (11). Si el determinante deA−λes igual a cero, como se muestra en la ecuación (12), podemos encontrar una solución no trivial por lo que resolviendo la ecuación podemos obtener los eigenvalores con los cuales podemos obtener los eigenvectores sustituyéndolos en la ecuación (16).

2.7. Normales a la superficie

Las normales de la superficie tienen importantes aplicaciones geométricas para determinar puntos de interés y descriptores de nubes de puntos. Las normales de un punto es el vector perpendicular de la superficie en ese punto.

Las normales en una nube de puntos se puede determinar utilizando componentes principales. Dado un puntop tomarkvecinos cercanos y determinar los componentes

principales como se muestra en la Figura 1.

p

i

k vecinos

Figura 1: Normal de la superficie.

(28)

2.8. Estimación de pose

El utilizar un sensor para capturar una escena de diferentes puntos de vista genera ejes de coordenadas independiente entre las capturas. Para que los puntos de las escenas pertenezcan al mismo eje se debe estimar la transformación que existe para ir de una escena a otra. Esto se cumple para escenas rígidas.

Si por ejemplo, el sensor inicia en un tiempot0 y este se desplaza a través de una serie de transformacionesg(t1),· · ·,g(tn)para cada tiempot1,· · ·, tn,

respectivamen-te, entonces las mismas coordenadas de un punto pt en el tiempo t está dado por

pt=g(t)p0para el puntop0 en el tiempo 0.

Para alinear múltiples escenas en los tiempos t1,· · ·, tn, con la escena en t = 0 se necesita hacer una composición de transformaciones. Se determina la transformación para ir de la escena a la anterior 1 como g(, 1). Entonces cualquier punto pn en el tiemponse alinea como: pn0=g(n, n1)· · ·g(2,1)pn (Maet al., 2005).

2.9. Detección y extracción de características

(29)

2.9.1. Detección de características

Un detector de características (Awad y Hassaballah, 2016) permite detectar puntos de interés en una imagen o nube de puntos como pueden ser esquinas, bordes o incluso agrupaciones de píxeles con propiedades semejantes. Algunas propiedades importantes que deben tener los detectores son:

Repetibilidad: Es la propiedad mas importante, la mayoría de los puntos de in-terés entre dos imágenes se deben conservar. Esto se puede lograr a través de la invarianza a transformaciones matemáticas, como rotación o escalamiento, y robustez a deformaciones en la imagen como ruido, cuantización, difuminación, etc.

Distintivo: Los puntos de interés detectados deben ser lo suficientemente diferen-tes para que puedan ser emparejados entre las imágenes de manera correcta.

Precisión: Deben poder ser localizados de manera correcta en la imagen.

Eficiencia: Algunos sistemas deben poder responder rápidamente a diferentes aplicaciones, por lo que es recomendable que sean óptimos en este aspecto.

A continuación se describirán brevemente algunos detectores de características para imágenes y nubes de puntos:

2.9.1.1. Harris

La idea del detectorHarris(Harriset al., 1988) es que en las esquinas, la intensidad de una imagen va a cambiar en gran medida en múltiples direcciones. Se propuso a partir de una imagen utilizar la derivada en los ejes X y Y. Luego, realizar una convolución de 2

(30)

autocorrelaciónM. Las ecuaciones están dadas a continuación:

=

∂ ∂

, y =

∂ ∂y

,

¯ 2

= 2

G, ¯y2= 2

y G, ¯y =yG,

G,y =

1

2πσ2ep(−(

2+y2)/2σ2),

M=

 ¯ 2

¯y

¯ y ¯2

y

,

(17)

donde es el operador de convolución y σ representa la escala. El resultado para determinar la esquina está dado por R:

R=αβk(α+β)2, (18)

dondeα,βson los eigenvalores deM(αβ)yk permite eliminar falsas respuestas de esquinas. Este detector también es aplicado a nubes de puntos cambiando el gradiente de la imagen por las normales de la nube de puntos (Sipiran y Bustos, 2011).

2.9.1.2. ISS

La extracción de características del método ISS (ISS, Intrinsic Shape Signature) (Zhong, 2009) se realiza determinando un marco de referencia propio, el cual utiliza la magnitud de los eigenvalores de la matriz de covarianza para conservar y descartar ciertos puntos. El marco de referencia se determina utilizando un punto p, como el

origen, y los eigenvectorese1

, e2 y el producto cruz entre ellos,e1 ×e2, como los ejes

, y,z, respectivamente.

(31)

2.9.1.3. SUSAN

El detector SUSAN (SUSAN, Smallest Univalue Segment Assimilating Nucleus) (Smith y Brady, 1997) se basa en tomar el punto de interés, llamado núcleo, y analizar un ve-cindario circular/esférico alrededor de este. Todos los puntos en el veve-cindario entran en dos categorías, si tienen valoressimilares o diferentesde intensidad. De esta ma-nera si la mayor cantidad de puntos en el vecindario no pertenecen a la categoría del núcleo y son menores a un umbral definido quiere decir que este puede ser clasificado como esquina.

2.9.1.4. SIFT

Lowe et al. (1999) propusieron un detector-descriptor llamado SIFT (SIFT, Scale-invariant feature transform). En su etapa de extracción de puntos de interés utiliza un procedimiento llamado Diferencia de Gausianas (DoG, Difference of Gaussians) donde se difumina una imagen con dos diferentes escalas deσ. Este proceso se realiza para diferentes octavas en una pirámide Gausiana.

Una vez que las DoG son encontradas, se busca en las imágenes máximos locales tanto con los vecinos de esa escala como en las escalas anteriores y posteriores. Si se encuentra un máximo entonces es un punto de interés potencial. Debido a que este procedimiento también puede detectar bordes, se utiliza un proceso similar al detector Harris utilizando una matriz Hessiana para determinar la curvatura principal y rechazar puntos que sean inferiores a un umbral.

2.9.2. Descriptor de características

(32)

2.9.2.1. PFH

El descriptor PFH (PFH, Point Feature Histogram) (Rusu et al., 2008) utiliza cuatro características para representar la curvatura dado un punto. Se construye calculando los ángulosα,ϕyθ, mostrados en la ecuación (20), junto con la distancia dpara todos los pares de puntos en un vecindario y uniendo esta información en un histograma. Lo primero que se realiza es tomar un par de puntos en el vecindario ps y pt donde se

crea un marco especial de referencia enps donde:

=ns,

v=× pt−ps kpt−psk

,

w=×v.

(19)

Utilizando este marco de referencia se determinan las normalesnt yns y la distancia

d es calculada. Finalmente se calculan los ángulos como se muestra en la ecuación siguiente:

α=·nt,

ϕ=·

ptps

d ,

θ=r ctn(·nt, ·nt),

d=kptpsk.

(20)

Estos cuatro elementos se unen para formar el histograma que representara el des-criptor.

2.9.2.2. SHOT

Tombariet al.(2010) propusieron el descriptor SHOT (SHOT, Signature of Histogram of Orientation), que codifica una firma de histogramas representando información to-pológica y generando un nuevo marco de referencia. Lo primero es obtener un nuevo sistema de coordenadas para un punto de interés p. Se utiliza un vecindario de n puntos para calcular la matriz de covarianzaC ponderada:

C= 1

n

n

X

=1

(33)

donder es el radio del vecindario. Posteriormente, se realiza una descomposición por eigenvalores a la matriz de covarianza donde los tres eigenvectores, ordenados de manera decreciente, forman los ejes X,Y,Z. La dirección del eje X está determinada por la orientación de los vectores depa sus vecinos.

X=  

v1 ,si |S+| ≥ |S | −v1 ,de lo contrario

, (22)

|S+

|={p|(p−p)·10}, (23)

|S+

|={p|(p−p)·1<0}. (24)

La dirección de Z está definida de manera similar. La dirección de Y está dada por el producto cruz entre X y Z. Este sistema se utiliza para dividir el vecindario de p en segmentos de una esfera. Por cada punto p en cada uno de los segmentos de la

esfera se calculaξ =p·p entre las normales de los puntos y la de p. La distribución de los ángulos permitirá construir el histograma. El histograma final se construirá con el conjunto de histogramas de la esfera.

2.9.2.3. 3DSC

El descriptor 3DSC (3DSC, 3D Shape Context) (Frome et al., 2004) toma una nube de puntos P y un punto p el cual captura la forma de la escena en p usando la dis-tribución de los puntos en una región esférica alrededor de p. El norte de la esfera está situado respecto a la normal de la superficie de p. Esta región es discretizada en diferentes secciones espaciadas de manera constante en los limites azimutales y de elevación y logarítmicamente espaciado en la dimensión radial. Las J+1 divisio-nes radiales se denotan como R = R0· · ·RJ , las K+1 divisiones de elevación como Θ={Θ0· · ·ΘK}, y lasL+1 divisiones azimutales como  ={0· · ·L}. Cada sección

corresponde a un elemento delJ×K×Lvector de características. Los limites del radio están dados por:

Rj =exp n

ln(rmin) + j

Jln( rmax

rmin)

o

. (25)

(34)

2.9.2.4. RIFT

El descriptor RIFT (RIFT, Rotation-Invariant Feature Transform) (Lazebniket al., 2005) se construye de la siguiente forma: Se toma un círculo imaginario dividido en anillos de igual ancho, se construye un histograma de la orientación del gradiente en cada anillo. Para mantener la invariante de rotación se mide la orientación en cada punto relativamente a la dirección que apunta fuera del centro. El descriptor utiliza cuatro anillos y ocho histogramas de orientación dando así un descriptor de 32 dimensiones.

2.9.2.5. RSD

El descriptor RSD (RSD, Radius-based Surface Descriptor) (Martonet al., 2010) des-cribe la geometría de un puntop estimando el radio de las curvas que se puedan ge-nerar en un vecindario de la nube de puntos. El problema de encontrar elrmaxyrminse puede resolver asumiendo la relación entre las distanciasd de dos puntos y el ángulo α entre los puntos de las normales

d(α) =p2rÆ1cos(α) =r α+ r α3

24 +

O(α5), (26)

El valor estimado de cada punto se puede representar como un vector de caracte-rísticas de dos elementos comod = [rmax, rmin].

2.9.2.6. SIFT

Como se mencionó en 2.9.1.4, SIFT es un detector-descriptor para imágenes, el cual también se ha extendido a nubes de puntos. Después de la detección de los puntos de interés la siguiente etapa es asignarles una orientación para que sean invariantes a rotación. Por cada punto (, y) se elige el factor deσmás cercano y la imagenL(, y, σ) en esa escala es utilizada para determinar la magnitudm(, y)y la orientaciónθ(, y) del gradiente:

m(, y) =rL2

+L2y, (27)

θ(, y) =tan1 Ly

L

(35)

donde:

L=L(+1, y)−L(1, y),

Ly=L(, y+1)L(, y1).

Se crea un histograma de orientaciones de la imagen L. Finalmente el descriptor se crea con las magnitudes y las orientaciones de un vecindario definido de los puntos de interés.

2.9.2.7. SURF

El método de SURF, (SURF, Speeded-up Robust Features) (Bayet al., 2006) es una versión mas rápida de SIFT. El método utiliza una matriz hessianaH(, y, σ)de la ima-gen integral en el punto (, y) de una imagen con una escala σ que está definido de la siguiente manera:

H(, y, σ) =

L(, y, σ) Ly(, y, σ) Ly(, y, σ) Lyy(, y, σ)

, (29)

dondeL(, y, σ), Lyy(, y, σ), Ly(, y, σ) es la convolución de en el punto(, y) con filtros gausianos de segundo orden ∂∂22G(, y, σ),

2

∂y2G(, y, σ) y

2

∂∂yG(, y, σ)

respecti-vamente. La etapa final se realiza construyendo una ventana alrededor del punto de interés y orientada en su dirección principal. Esta ventana se subdivide aplicando la transformada de ondícula Harr para construir el descriptor de características.

2.10. Registro de nubes de puntos

El problema de registro de nubes de puntos es encontrar una transformación que permita alinear dos nubes de puntos de manera óptima.

2.10.1. Registro rígido

(36)

2.10.1.1. Análisis de componentes principales

El análisis de componentes principales, como fue explicado en la sección 2.6, tam-bién es una herramienta que se puede utilizar para hacer el registro entre dos con-juntos de nubes de puntos. Utilizando las varianzas, podemos encontrar los vectores propios de diferentes nubes de puntos, y encontrar una transformación que permita alinear sus vectores propios.

2.10.1.2. Descomposición por valores singulares

El problema de PCA es que es sensible a datos anómalos, en cambio, si pode-mos saber la correspondencia que existe entre diferentes puntos, podepode-mos utilizar una técnica más robusta por descomposición de valores singulares (SVD, Singular Va-lue Decomposition), también conocido como algoritmo de Kabsch (Kabsch, 1978). A diferencia de PCA, que alinea las varianzas de los datos, SVD permite minimizar la dis-tancia euclidiana entre los puntos. El primer paso es calcular la matriz de covarianza cruzada. Si queremos alinear la nubePa la nubeQ, debido a que estas nubes ya están ordenadas, donde el primer elemento dePcorresponde con el primer elemento de Q, la matriz de covarianza cruzada la calculamos como:

H=PTQ. (30)

El siguiente paso es calcular la descomposición SVD de la matrizH,

H=USVT. (31)

La multiplicación deVconUT nos proporciona la matriz de rotación o reflexión óptima

para alinear los puntos, sin embargo, para restringir las operaciones de reflexión, se debe calcular el determinante de esta operación. Si el determinante de VUT = 1, entonces es una matriz de reflexión, si VUT =1, es una matriz de rotación. Este valor nos permite hacer la corrección del tipo de transformación deseada. Si d =det(VUT) entonces podemos calcular la matriz de rotaciónRpara alinearPcon Qcomo:

R=V

  

1 0 0 0 1 0 0 0 d

  

UT,

(37)

y el vector de traslación como:

t=csRct. (33)

2.10.1.3. Punto iterativo mas cercano

SVD permite encontrar la matriz de rotación para alinear dos nubes de puntos si se puede encontrar una alineación perfecta entre ellas, es decir, si existe una correspon-dencia exacta entre cada punto de una nube respecto a la otra. Besl y McKay (1992b) desarrollaron un método llamado punto iterativo mas cercano (ICP, Iterative Closest Point), el cual de manera iterativa va minimizando la distancia euclidiana entre los puntos. El proceso es similar a SVD, sólo que la correspondencia entre las nubes se estima utilizando los puntos mas cercanos entre las nubes. Una vez que se realiza el proceso de registro, el procedimiento se vuelve a aplicar hasta que se minimiza una función de error hasta cierto valor o se alcanza un número de iteraciones predefinidas.

Rusinkiewicz y Levoy (2001) definen cinco etapas que pueden ser modificadas en el algoritmo de ICP:

La selección de puntos entre las nubes, seleccionando todos los puntos o una muestra que cumpla ciertas características.

Definir de qué manera se harán las correspondencias entre los puntos, como puede ser por vecinos mas cercanos o basados en diferentes proyecciones de las nubes de puntos.

Ponderarlas correspondencias basándose en las distancias o entre las normales de los puntos.

Filtrar puntos o pares de puntos de las nubes que no cumplan con ciertas métri-cas o distancias entre ellos.

(38)

2.10.2. Registro no-rígido

El problema de registro para objetos no rígidos es mucho más complejo. No sólo se utilizan operaciones de rotación y traslación si no que además se pueden deformar las nubes de puntos de muchas maneras. Dos nubes de puntos pueden deformarse de manera isométrica, es decir, que preservan la geometría intrínseca del objeto, como por ejemplo un objeto articulado, o de manera no isométrica, que puede presentar deformaciones como encogerse o estirarse de manera local o global.

A continuación se decribe brevemente algunos algoritmos del estado del arte, como el RPM (RPM, Robust Point Matching) (Chui y Rangarajan, 2003), CPD (CPD, Coherent Point Drift) (Myronenko y Song, 2010) y describiremos a detalle una variante del algo-ritmo del punto iterativo mas cercano en su versión no rígida. Este último algoalgo-ritmo, aunque presenta problemas si no se le da una transformación inicial cercana a la ópti-ma, lo elegimos respecto a los otros por su sencillez y baja complejidad computacional, resolviendo el problema que presenta con estimaciones iniciales por detectores y des-criptores tanto de nube de puntos como en imágenes.

2.10.2.1. RPM

El algoritmo utiliza una asignación suave para las correspondencias y TPS (TPS, Thin-plate Spline), que es una herramienta para interpolar superficies sobre puntos (Bookstein, 1989), para el mapeo de los elementos no rígidos. RPM minimiza una fun-ción de energía, como se muestra en la ecuafun-ción (34), para la correspondencia entre los puntos. La correspondencia de los puntos se representa en una matriz donde para un conjunto de puntos X= [x1· · ·xL] yY= [y1· · ·yN] se crea una matriz de

adyacen-ciaP que conecta las correspondencias y se agrega una columna y fila adicional que indican los puntos anómalos del conjuntoXyY.

[Pˆ,ˆƒ] =argminPE(P, ƒ),

E(P, ƒ) =

N

X

j=1 L

X

=1

pj||yjƒ()||2+λ||||2ζ

N

X

j=1 L

X

=1

pj,

(39)

donde L es un operador que regulariza la suavidad, f la transformaciones y λ y ζ son parámetros que permiten balancear los términos que ayudan a prevenir un exceso de filtrado de puntos anómalos.

2.10.2.2. CPD

El algoritmo se basa en una estimación de densidad de probabilidad. Un conjun-to tiene punconjun-tos distribuidos de manera poco densa representando los centroides del modelo mixto de gausianas (GMM, Gaussian Mixture Model) mientras que el segundo los puntos a registrar. El objetivo final de alinear los dos conjuntos de datos se lleva a cabo maximizando la probabilidad posterior del GMM para un punto de datos dado. La idea principal del algoritmo CPD es forzar a los centroides a moverse coherentemente como grupo y así preservar la estructura topológica de los conjuntos de puntos. Dados dos conjuntos de datos X= [x1,· · · ,xn] y Y= [y1,· · · ,yn] el objetivo es encontrar la

transformación T que mejor alinea los puntos Y con los puntos X. La transformación está dada por:

T(Y, ) =Y+(Y), (35)

donde es la función de desplazamiento. La función objetivo está dada por:

q(, σ2) = 1 2σ2

N

X

n=1 M+1

X

m=1

Pod(m|n)||n(ym+(ym))||2+

NpD 2 log

σ2+ λ 2||

P||2, (36)

donde Pod(m|n) denota la probabilidad posterior del modelo mixto de gausianas

(GMM), Np = PN

n=1

PM

m=1P(m|n N, el operador P extrae una parte de la función

de regularización.

2.10.2.3. Punto iterativo mas cercano no rígido

En la versión no rígida del algoritmo de ICP (nRICP), cada punto tiene su propia matriz de transformación Xi de 3× 4. La matriz de transformación de cada vértice

vi= [, y, z,1]T está organizada en una matriz de 4n×3

(40)

El algoritmo desarrollado por Amberget al. (2007) define tres términos en la función costo a minimizar, el termino de distancia, rigidez y referencias. Este algoritmo pue-de trabajar correctamente únicamente utilizando los dos primeros términos que se presentarán a continuación.

El termino dedistancia, asumiendo las correspondencias(vi,i)está definido por

Ed(X) =

X

V

||Xivi−i||2. (38)

La Figura 2 muestra la correspondencia que existe entreXivi, una vez que a vi se le

es aplicada la matriz de transformaciónXi, junto coni, donde la correspondencia se

realiza siendod la distancia más pequeña para ir deviai. La ecuación (38) se puede

Xivi

ui

di

Xi+1vi+1

ui+1

di+1

Xi+2vi+2

ui+2 di+2

Figura 2: Correspondencia entre puntos.

definir de manera matricial como

Ed(X) =||W(DX−U))||2F, (39)

dondeDestá definida como:

D:=

      

T

1

T

2

... T

n

      

. (40)

La matriz U := [1,· · ·,n]T corresponde a los puntos D y la matriz W está definida

por los pesos de cada vértice por el producto kronecker con 3.

(41)

incidencias M que tiene una fila por cada arista, donde la arista existe si dos vértices están conectados y una columna por cada vértice. Si una aristarconecta dos vértices (, j)las entradas de la matriz M en la fila r son Mr  =1 y Mr j = 1 . La función costo está definida como:

Es(X) =||(MG)X)||2

F. (41)

La Figura 3 muestra el efecto del término de rigidez. Las transformaciones entre la nube de puntos fuente (puntos verde) y la nube de puntos destino (puntos rojos) se comportan de una manera global cuando el término de rigidez es alto, es decir, las transformaciones son similares para todos los puntos haciendo que estos se muevan de una manera similar, y cuando el término de rigidez es bajo, las transformaciones se comportan de una manera local haciendo que cada punto empiece a tener una transformación independiente a sus vecinos cercanos. Esto provoca que las primeras iteraciones del algoritmo se comporte de manera rígida y las ultimas iteraciones se empiecen a ajustar haciendo deformaciones para ajustarse a la nube de puntos obje-tivo.

α

i

α

i+1

α

i+3

α

i+2

Figura 3: Proceso de registro con rigidez variable.

(42)

E(X) =Ed(X) +αEs(X), (42) y puede ser expresada en forma matricial como:

E(X) =||

α(MG)X) WD

X−

0 WU

||2F

=||AX−B||2F

= (AX−B)T(AX−B) =XTATAX−2XATB+B2.

(43)

La función cuadrática puede ser minimizada igualando su derivada a cero.

E(X)0 =2ATAX2ATB=0. (44) E(X)obtiene su valor minimo cuando

X= (ATA)−1ATB. (45)

La Figura 4 muestra un paso intermedio entre el proceso de registro. Los vértices de la nube de puntos fuente S (vértices verdes), se les aplica las transformaciones obtenidasX y se desplazan a la posición S(X) (vértices azules). Se pueden descartar algunas correspondencias como en1y4 si:

1. se encuentra en el borde de la nube objetivo.

2. El ángulo entre las normales deXv y es mayor que un umbral definido.

Con cada iteración la nube de puntos S, se mueve hacia la nube de puntos objetivo deformándose y alineándose cada vez más debido al término de rigidez. Las corres-pondencias cambian en cada iteración.

2.11. Programación paralela

(43)

v1 v2

v3

v4 v5 v6

v7 v8

X1

X2

X3

X4

X5 X6

X7

X8

u1 u2

u3

u4 u5 u6 u7

u8

S S(X) T

Figura 4: Paso intermedio del proceso de registro de nRICP.

ejecuta en múltiples recursos computacionales. Los recursos computacionales pueden ser típicamente núcleos de un procesador o procesadores de una o mas computadoras.

La computación en paralelo es utilizado principalmente por las siguientes razones:

Reducir el tiempo de ejecución de un programa.

Ejecutar más procesos de manera concurrente.

Resolver problemas más grandes y complejos.

2.11.1. Programación en unidad de procesamiento gráfico

Una unidad de procesamiento gráfico (GPU, Graphical Processing Unit) permite eje-cutar gráficos de alta definición en la computadora. Las GPU están conformadas por un chip que tiene alineados de cierta manera miles de núcleos. Estás son utilizadas para el procesamiento de datos en paralelo y ejecución de algoritmos computacionalmente costosos (Nikolaos Ploskas, 2016).

Existen principalmente dos modelos de programación en GPU.

1. CUDA (Compute Unified Device Architecture)

(44)

CUDA fue introducido por NVIDIA en el 2006 y solo está disponible con GPUs de NVIDIA, mientras que OpenCL fue desarrollado por Apple y liberado en el 2008, y está disponible para diferentes GPUs e incluso CPUs.

Los programas en GPU deben principalmente cumplir dos características:

1. Ser masivamente paralelos

a) Esto permite utilizar todos los núcleos del GPU y obtener el mejor rendimiento debido a ello.

2. Ser computacionalmente costosos

Referencias

Documento similar

• Calculation of 3D alignment parameters: If we are to produce a single 3D reconstruction out of mul- tiple image pairs, we need to not only align the tilted projection to the

Además se ha generado una base de datos con imágenes de color, infrarrojo y profundidad de diversos materiales, desde diferentes puntos de vista y con cambios de iluminación,

The buildings of Jose Llinas besides their formal aptitudes, in addi- tion to the quality of their materials, not to mention the perfection of their

Aunque ambas guerras responden a contextos distintos, y el escenario descrito por Gruzinski incide en el papel de la imagen (o la destrucción de las mismas) como elemento

Sin embargo no solo nos quedamos ahí, si no que también te ofrecemos la posi- bilidad de crear tu propio videojuego en 3D utilizando una de las plataformas más extendidas:

El entorno digital es un instrumento muy potente en el acceso a la información pero, por si mismo, no incrementa las posibilidades de construcción de conocimiento y desarrollo

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

If certification of devices under the MDR has not been finalised before expiry of the Directive’s certificate, and where the device does not present an unacceptable risk to health