165
Trabajo Final de Carrera Estudio de viabilidad para el reconocimiento de los gestos de la mano mediante una cámara de tiempo de vuelo Mohamad-Salajh Marrawi Moarrawi Ingeniería Técnica de Telecomunicación, esp. Sistemas de Telecomunicación Director: Guillem Alenyà Ribas Avalador: Jordi Surinyac Albareda Vic, septiembre de 2011

Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

  • Upload
    hadiep

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

Trabajo Final de Carrera

Estudio de viabilidad para el

reconocimiento de los gestos de la mano

mediante una cámara de tiempo de vuelo

Mohamad-Salajh Marrawi Moarrawi

Ingeniería Técnica de Telecomunicación, esp. Sistemas de

Telecomunicación

Director: Guillem Alenyà Ribas

Avalador: Jordi Surinyac Albareda

Vic, septiembre de 2011

Page 2: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

5

INDICE

RESUMEN

ABSTRACT

MOTIVACIÓN

Capítulo 1 INTRODUCCIÓN

Capítulo 2 OBJETIVOS

PARTE I. ESTUDIO PREVIO

Capítulo 3 ESTADO DEL ARTE

3.1 Dificultades y soluciones

3.2 Revisión de las técnicas actuales

Capítulo 4 LA CÁMARA DE TIEMPO DE VUELO SWISSRANGER™ SR-3000

4.1 Discusión tecnológica

4.2 Aplicaciones

Capítulo 5 MODELADO DE LA MANO

5.1 Modelo cinemático

5.2 Modelo cilíndrico

Capítulo 6 EL ALGORITMO ICP

6.1 Etapa de correspondencia

6.2 Etapa de registro

6.2.1 Asignación de un error métrico

6.2.2 Minimización del error métrico

6.3 Etapa de actualización

PARTE II. DESARROLLO

Capítulo 7 DESCRIPCIÓN DE LA IMPLEMENTACIÓN

7.1 Herramientas informáticas empleadas

7.2 Adquisición de datos

7.3 Reducción de puntos

7.4 Segmentación interactiva de puntos

7.5 ICP

7.6 Validación de los datos extraídos

7.7 Reproducción de los datos resultantes

Page 3: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

6

PARTE III. RESULTADOS, CONCLUSIONES Y TRABAJO FUTURO

Capítulo 8 RESULTADOS EXPERIMENTALES

8.1 Experimento 1

8.2 Experimento 2

8.3 Experimento 3

8.4 Experimento 4

Capítulo 9 CONCLUSIONES Y TRABAJO FUTURO

PARTE IV. BIBLIOGRAFÍA

ANEXOS

A.1. Resultados numéricos de extracción de datos

A.2. Código de las etapas del algoritmo

A.3. Colección de vídeos de extracción de datos

A.4. Colección de vídeos de validación de datos

A.5. Colección de vídeos de reproducción de datos

Page 4: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

7

Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación

Título: Estudio de viabilidad para el reconocimiento de los gestos de la mano mediante una cámara de tiempo de vuelo Palabras clave: SwissRanger 3000, profundidad, DOF, nube de puntos, filtrado, muestreo, ICP, matriz homogénea, Open Inventor Autor: Mohamad-Salajh Marrawi Moarrawi Director: Guillem Alenyà Ribas Avalador: Jordi Surinyac Albareda Fecha: septiembre de 2011

Resumen

Hoy en día, la variedad existente de sistemas en fase de investigación, que han sido o

podrían ser aplicados en la detección de manos y el reconocimiento de gestos, ha sido posible

gracias a las nuevas técnicas basadas en la estimación de la postura de la mano, en el que

tradicionalmente se han usado la extracción del color y del aspecto.

Partiendo de las imágenes capturadas por la cámara de tiempo de vuelo

SwissRanger™ SR-3000 (cámara que captura imágenes con una intensidad inversamente

proporcional a la profundidad de los objetos presentes en la escena) se propone realizar una

segmentación de puntos que servirán para definir morfológicamente la silueta de la mano y la

extracción de características para medir las variaciones de movimiento de hacer un gesto en

particular.

El sistema propuesto consiste en un algoritmo implementado en Matlab subdividido

en varias etapas: adquisición de una secuencia de imágenes captadas con la cámara; reducción

de los puntos no deseados; segmentación de la nube de puntos de forma interactiva; y

finalmente, emparejamiento de imágenes consecutivas de la secuencia. El resultado que se

obtiene de este algoritmo, son los parámetros que indican el desplazamiento de una imagen

hacia la siguiente.

Una vez concluidas las etapas citadas en el párrafo anterior, se propone usar un

método de visualización de los resultados del algoritmo, mediante las librerías gráficas 3D

Open Inventor, que proporcionan métodos para representar el modelo geométrico de mano

que se propone, aplicar los desplazamientos obtenidos previamente, y facilidades para

cambiar el punto de vista del observador.

Page 5: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

8

Final Degree Project Abstract Technical Telecommunications Engineering

Title: Feasibilty study for hand gesture recognition with a time-of-flight camera Keywords: SwissRanger 3000, depth, DOF, dot cloud, filtering, sampling, ICP, homogeneus matrix, Open Inventor. Author: Mohamad-Salajh Marrawi Moarrawi Director: Guillem Alenyà Ribas Supervisor: Jordi Surinyac Albareda Date: September 2011

Abstract

Today, of the variety of systems under investigation, which have been or could have

been applied in the detection and hand gesture recognition have been possible thanks to new

techniques based on the hand posture estimation, which traditionally have used for the

extraction of color and appearance.

Based on images acquired by the Time-of-Flight camera SwissRanger™ SR-3000 a

camera that acquires images with an intensity inversely proportional to the depth of the

objects in the scene the system performs point segmentation wich helps to define the

morphological shape of the hand and feature extraction to measure the variations of a

particular movement.

The proposed system consists of an algorithm implemented in Matlab that is divided

into several stages: acquisition of image sequences from the camera; reduction of unwanted

points; interactive segmentation of the point clouds; and matching consecutive images in the

sequence. The results obtained from this algorithm are the parameters that indicate the

displacement of one image to the next.

After completing the steps mentioned in the previous paragraph, the results are

displayed using the Open Inventor 3D graphics libraries, which provides methods for

representation of the geometric hand model proposed by applying the changes previously

found and facilitating changes to the observer's viewpoint.

Page 6: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

9

MOTIVACIÓN

Desde que era pequeño, había una pregunta que atormentaba mi curiosa cabeza:

¿cómo sería posible comunicar una persona sordomuda con una persona ciega? Esta pregunta

fue cobrando cada vez más fuerza hasta que culminó en el momento de desarrollar el trabajo

final de carrera.

La oportunidad de poner a prueba este reto me vino de la mano del Dr. Guillem

Alenyà, miembro del Instituto de Robótica e Informática Industrial de Barcelona que me

ofreció la oportunidad de desarrollar este trabajo gracias a la cámara de profundidad SR-3000

disponible en el laboratorio de percepción y manipulación.

Las cámaras ToF son una tecnología nueva y muy en boga. La aplicación más inmediata

va dirigida en el ámbito de los videojuegos y la interactividad con el ordenador. Se utilizan hoy

en día en aparatos de adquisición de imágenes, como escáneres o cámaras. De esta forma, es

posible adquirir imágenes y secuencias en 3D. Es una técnica bastante sencilla de aplicar y, por

tanto, económicamente asequible a la hora de fabricar aparatos de obtención de profundidad

de escenarios o cuerpos.

El desarrollo de este proyecto se inspira fundamentalmente en la documentación

sobre las aportaciones de algunos autores en el campo de la detección de manos y el

reconocimiento de gestos, así como sus principales ejemplos, en la que algunos de ellos usan

cámaras 3D, y otros usan la combinación de estas con otros sensores 2D para paliar algunas

carencias.

Dentro de este contexto, el reto está en aprender de estos avances y ver hasta dónde

soy capaz de llegar a la hora de confeccionar este proyecto, para que sus mejoras algún día

puedan llegar a hacerse realidad gracias a esta nueva tecología.

Page 7: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

10

Capítulo 1

INTRODUCCIÓN

Este proyecto se plantea como un sistema en la que su entrada es una secuencia de

imágenes 3D captadas con la cámara SR-3000, que representan el movimiento de hacer un

sencillo gesto manual, como por ejemplo, la secuencia de flexionar y extender un dedo, y la

salida de este sistema, es la animación de realizar el mismo gesto pero visualizada mediante

un modelo virtual de mano en 3D. El esquema global de este sistema se presenta en la Figura

1.1.

Figura 1.1: Esquema del sistema.

Dado el caracter visual de los gestos que queremos captar, es indispensable que este

sistema cuente como entrada con un sistema hardware de captura de imágenes. Para ello se

utiliza un sensor de profundidad capaz de captar la información 3D de los objetos que queden

dentro de su campo de visión, en forma de nubes de puntos. El desarrollo de un sistema

software relativo al tratamiento de la información captada, que es el objetivo de la

implementación de este sistema, proporcionará los parámetros relativos al movimiento de

hacer el gesto. Finalmente, ya que es difícil evaluar cualitativamente estos últimos datos

adquiridos, se propone aplicarlos a un modelo virtual de mano mediante librerías gráficas 3D

Open Inventor, y así visualizar en 3D el mismo movimiento de cada uno de los gestos de la

mano captados con la cámara.

En el capítulo 2, se plantean los objetivos particulares de este trabajo, que consisten

en validar los métodos y herramientas para la implementación de este sistema.

En el siguiente capítulo se explica en el estado del arte, por un lado, las dificultades y

soluciones a la hora de usar la visión artificial como una solución alternativa de interacción

hombre computadora de no contacto, y por otro, las aportaciones de algunos autores en el

campo de la detección de manos y el reconocimiento de gestos, así como sus principales

ejemplos.

A partir de aquí comienzan los capítulos de estudio previo del trabajo como criterios

de partida suficientes para implementar la parte de desarrollo.

Adquisición de puntos

Reducción de puntos

Segmentación interactiva de

puntosICP

Reproducción 3D

Page 8: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

11

El capítulo 4 presenta la cámara de tiempo de vuelo SwissRanger™ SR-3000 como un

dispositivo de entrada de imágenes en 3D para el sistema planteado, que por un lado nos da la

ventaja de funcionar en tiempo real, pero con el handicap de operar a baja resolución y la

adición de ruido. El resultado de las imágenes que proporciona son nubes de puntos 3D o

datos en forma de coordenadas X, Y, Z.

En el siguiente capítulo, se describe el modelo cinemático de la mano y también se

plantea un modelo virtual de mano en 3D modelado con cilindros, así como sus grados de

libertad y sus restricciones con el que se pretende representar la salida del sistema.

En el capítulo 6, se explica el principio de funcionamiento del código ICP, como una de

las etapas más importantes del sistema planteado. Esta etapa permite encajar dos imágenes

consecutivas y que están parcialmente superpuestas, por ejemplo, desde la secuencia de

imágenes captada con la SR-3000 para realizar el gesto. Para ello, primero se busca la

correspondencia entre los puntos de dos imágenes consecutivas, y luego se va minimizando

iterativamente la distancia de separación entre ambas, hasta conseguir su alineación. El

resultado es una matriz homogénea, o bien, un vector de posición y orientación, que indica el

desplazamiento de una imagen a su consecutiva.

Aquí finaliza la parte de estudio previo y comienza el capítulo 7, correspondiente a la

parte de desarrollo, en donde se explica la implementación de las etapas del sistema diseñado.

Para ello, se procede a realizar una serie de experimentos, en el que cada uno representa el

movimiento de hacer un gesto manual sencillo, a partir de una secuencia de imágenes 3D

tomadas con la cámara. Cada una de las imágenes de su respectiva secuencia, pasa

independientemente por una cadena de procesos de un algoritmo programado en Matlab,

empezando por la adquisición de la secuencia de imágenes, que son guardadas como

estructuras de datos independientes. Seguidamente, se aplica una reducción de los puntos

totales de cada nube, por un lado para acelerar la velocidad del algoritmo, y por otro, para

eliminar los puntos generados por la cámara como ruidosos. A continuación, se aplica la

segmentación interactiva (sólo en los dos últimos experimentos) de los puntos que son objeto

de estudio del experimento. Finalmente, se aplica la etapa de ICP para emparejar la primera

imagen con la segunda, la segunda con la tercera, y así sucesivamente hasta llegar a la última

imagen de la secuencia.

Con los datos resultantes de la última etapa del algoritmo, por un lado se visualiza el

movimiento de hacer el gesto en forma de nubes con menos densidad de puntos y, por otro

lado, se obtienen las transformaciones que indican el desplazamiento de cada imagen a su

consecutiva. Finalmente, se aplican estos parámetros obtenidos al modelo cilíndrico de mano

propuesto en el capítulo 5, para reproducir el mismo movimiento de hacer el gesto que se ha

captado previamente en forma de nubes de puntos, y ver si la comparación es plausible.

Aquí finaliza la parte de desarrollo y comienzan los capítulos de resultados,

conclusiones y trabajo futuro, donde se presentan y explican los resultados experimentales

producto de las fases del algoritmo, las conclusiones y cómo podría llegar a mejorar el

proyecto a partir de sus limitaciones.

Page 9: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

12

Capítulo 2

OBJETIVOS

Este trabajo final de carrera tiene una parte teórica, perteneciente a la parte de estudio previo,

y un trabajo de desarrollo, relativo a la descripción de la implementación.

Los objetivos de la parte teórica se dividen en dos partes:

Evaluar si la cámara de tiempo de vuelo es una alternativa válida para la detección de

las manos como dispositivo de extracción de información 3D.

Comprobar si los resultados obtenidos de aplicar el algoritmo que se propondrá para

el procesamiento de los datos 3D son válidos para poder ser aplicados en futuras

mejoras para el reconocimiento de los gestos manuales.

Del mismo modo, los objetivos de la parte práctica:

La implementación de un código de demostración en Matlab que pone en

correspondencia dos imágenes consecutivas parcialmente superpuestas a partir de

una secuencia de nubes de puntos captadas con la cámara.

Reproducción de la secuencia de movimiento con un modelo geométrico de mano

implementado mediante librerías gráficas 3D, a partir de las transformaciones

obtenidas con las nubes de puntos.

Page 10: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

13

PARTE I

Estudio previo

Page 11: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

14

Capítulo 3

ESTADO DEL ARTE

El eje vertebral de esta sección se encamina a mostrar el empleo directo de la mano

como un dispositivo de entrada para proporcionar una HCI (Human Computer Interaction o

Interacción Hombre Computadora) natural de no contacto.

Actualmente, los dispositivos más eficaces para medir el movimiento de la mano son

unos dispositivos de detección electromecánicos o magnéticos equipados en la mano [1], es

decir, unos guantes con sensores para medir sus parámetros cinemáticos, tales como la

posición de la mano y/o los ángulos de las articulaciones de los dedos. Los datos generados por

estos dispositivos pueden ser procesados fácilmente ya que se extrae el movimiento articulado

de la mano, por ejemplo, la ubicación de las yemas de los dedos, la dirección de señalización, o

la fuerza generada en un dedo. Así, se importa toda su funcionalidad para ser interpretada por

la aplicación en un entorno de interacción HC, tal y como se muestra en la Figura 3.1.

Figura 3.1: Guante con sensores conectado a un simulador de mano mecánica usado para el

procedimiento de adquisición de datos.

Page 12: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

15

Sin embargo, estos dispositivos tienen varias desventajas, como su precio, que

dificultan la facilidad y la naturalidad del movimiento de la mano con la que el usuario puede

actuar recíprocamente con el entorno controlado por computadora, y que requieren una

calibración compleja y procedimientos de montaje para ser capaces de obtener medidas

exactas. A pesar de estos problemas, estos dispositivos de entrada proporcionan el conjunto

de mediciones más completo en tiempo real, como aplicación independiente.

En cambio, la visión artificial tiene el potencial para proporcionar una interacción

mucho más natural, sin limitaciones y de no contacto. Por consiguiente, han habido esfuerzos

considerables en investigación para usar la mano como un dispositivo de entrada para

recuperar su postura 3D y la de los dedos tal y como lo hacen los dispositivos basados en

guantes pero de manera no invasiva. Sin embargo, como la mano es un objeto flexible, su

proyección causa una gran variedad de formas con muchas autooclusiones, haciéndolo un

problema computacionalmente intenso, ya que los sistemas basados en visión artificial no

tienen mucho en común con los basados en guantes. Sin embargo, hay varias buenas razones

para abordar este problema. La más importante, la estimación de su postura completa es

obligatoria para aplicaciones de entornos virtuales avanzados, como por ejemplo, sistemas de

aprendizaje de habilidades.

A pesar de que existen prototipos de sistema en tiempo real, como un motor de

reconocimiento de gestos, y varias documentaciones sobre el modelado de la mano, la

estimación de su postura y el reconocimiento de gestos, ninguna de estas revisiones aborda el

problema de la estimación del movimiento completo en detalle, ya que todavía hay una

necesidad en extraer señales continuas de movimiento en 3D que conduzcan a elementos de

interfaz dinámicos virtuales como por ejemplo la autocopia virtual de la mano.

Page 13: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

16

3.1 DIFICULTADES Y SOLUCIONES

En este apartado, primero citamos algunas dificultades considerables asociadas con el

problema de la estimación de la postura de la mano mediante la visión artificial, y

posteriormente, hablamos de las restricciones aplicadas sobre el usuario o el entorno para

paliar algunas de ellas.

Las dificultades principales encontradas en el diseño de sistemas de estimación de la postura

de la mano incluyen:

Problema dimensional alto: La mano es un objeto articulado con más de 20 DOF (Degrees of Freedom o grados de libertad). Aunque el movimiento natural de la mano no tenga 20 DOF debido a las interdependencias entre los dedos, los estudios han mostrado que no es posible usar menos de seis dimensiones. Junto con la posición y la orientación de la mano por sí sola, todavía existe un gran número de parámetros para ser calculados.

Autooclusiones: Ya que la mano es un objeto articulado, su proyección causa una gran variedad de formas con muchas autooclusiones, haciendo difícil de segmentar las diferentes partes de la mano y extraer rasgos de alto nivel.

Velocidad de procesamiento: Incluso para una secuencia de una sola imagen, un sistema de visión artificial en tiempo real tiene que procesar una enorme cantidad de datos. Con la tecnología de hardware actual, algunos algoritmos existentes requieren un hardware dedicado, caro, y posiblemente con capacidades de procesamiento paralelos para funcionar en tiempo real.

Entornos no controlados: Para un empleo extendido, en muchos sistemas de IHC se esperaría funcionar en escenarios no restringidos y con una amplia gama de condiciones de alumbrado. Por otra parte, aún localizando un objeto rígido en un fondo arbitrario casi siempre es un tema desafiante en la visión artificial.

Movimiento rápido de la mano: La mano tiene capacidades de movimiento muy rápidas con una velocidad que alcanza hasta los 5 m/s para la traslación y 300°/s para la rotación de la muñeca. Actualmente, las cámaras comerciales generalmente pueden admitir tasas de imagen a 30-60Hz. Además, para muchos algoritmos es bastante difícil alcanzar una velocidad de tracking a 30Hz. De hecho, la combinación del movimiento de la mano a alta velocidad con bajos índices de muestreo, introduce dificultades suplementarias para algoritmos de tracking (p. ej., las imágenes en frames consecutivos se hacen cada vez más y más incorrelacionadas con la velocidad creciente del movimiento de la mano).

Page 14: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

17

Ya que es difícil de satisfacer simultáneamente todos los aspectos citados más arriba,

algunos estudios sobre la estimación de la postura de la mano aplican restricciones contra el

usuario o el ambiente. Por ejemplo, por lo general se asume que el fondo es uniforme o

estático y que la mano es el único objeto de piel coloreada. Sin embargo, tales restricciones no

pueden ser aplicables en muchos sistemas en la vida real. Aunque, a menudo sea aceptable

pedir a los usuarios evitar movimientos rápidos de la mano, hay algunas aplicaciones que no

pueden tolerar una baja velocidad de tracking.

La solución a los dos primeros desafíos catalogados más arriba requiere la restricción

del movimiento de la mano, que es más difícil de justificar. Un motivo para restringir la postura

es para reducir al mínimo las oclusiones. La restricción más común está en imponer que la

palma de la mano es paralela al plano de imagen. El motivo es para evitar rotaciones fuera de

plano que hacen que los dedos se oculten los unos a los otros. En sistemas de una sola cámara,

tal restricción conduce a la interacción planteada.

Las restricciones de postura también pueden ser aplicadas para reducir la dimensión

del problema explotando estilos de interacción que combinan primitivas de movimiento con

bajo DOF para desempeñar tareas complejas. En este caso, se hace posible abordar el

problema de la estimación de la postura con algoritmos dedicados, orientados a objeto,

basados en el aspecto. Algoritmos de estimación de postura con total DOF pueden ser

adaptados a estos interfaces simplemente fijando algunos DOF, alcanzando de ese modo una

velocidad de procesamiento más rápida. Sin embargo, la existencia de muchas aplicaciones y

estilos de interacción que confían en el movimiento de la mano sin restricciones también

debería ser considerada.

Page 15: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

18

3.2 REVISIÓN DE LAS TÉCNICAS ACTUALES

En este apartado se revisan algunas aportaciones de varios autores en el campo de la

detección de manos y el reconocimiento de gestos en el marco de la visión artificial, en las que

se destaca la extracción del color, del aspecto y de la profundidad.

En [2], usan una cámara de tiempo de vuelo PMD para la segmentaión de la mano y un

algoritmo para la clasificación de los gestos mediante una proyección de la misma sobre los

ejes X e Y, teniendo en cuenta puntos significativos, como el más a la derecha y el más alto. La

Figura 3.2 muestra un ejemplo donde se ve dicha proyección, además de la corrección que

realizan para evitar la aparición del antebrazo, asumiendo para ello una longitud media de la

mano. A pesar de que la cámara de profundidad opere a baja resolución y que el algoritmo

confunda algunos gestos que sean muy similares a otros, es una tecnología válida para que el

sistema sea capaz de reconocer un vocabulario de 12 gestos en tiempo real con una tasa de

acierto del 94.61%.

Figura 3.2: Proyección de los ejes X e Y en una mano segmentada.

Otra forma para reconocer los gestos de la mano la encontramos en [3], donde

presentan un sistema para interpretar la Lengua de Signos Polaca (LSP) mediante el

reconocimiento de patrones. Para ello, usan una solución basada en la detección de puntos

característicos de la mano para detectar el contorno a partir de los segmentos, luego etiquetan

los vértices del polígono según su orientación y posteriormente, los unen mediante diagramas

en árbol. Esta aproximación puede verse en la Figura 3.3. En los resultados experimentales

obtienen una tasa de acierto del 94.3%, aunque el sistema puede confundir algunos signos

estructuralmente muy parecidos.

Page 16: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

19

Figura 3.3: Detección del contorno e indexación de los nodos.

En [4] presentan un método para interpretar la Lengua de Signos Japonesa (LSJ), donde

identifican por separado las manos, la cara, la ropa y la posición de los codos mediante la

extracción de sus respectivos colores. Si en el plano de imagen las manos quedan superpuestas

al rostro, o bien, una mano queda superpuesta a otra mano, utilizan el Modelo Oculto de

Márkov (HMM o Hidden Markov Model), para determinar los parámetros que han quedado

ocultos a partir de los parámetros observables en la imagen anterior. Este resultado se aprecia

en la Figura 3.4. Por otro lado, obtienen la silueta de la mano como una función de la distancia

del contorno a la base, y la orientación de la muñeca la determinan a partir de la posición de

los codos, como podemos ver en la Figura 3.5. El sistema puede reconocer 65 palabras de la

LSJ con imágenes reales tomadas desde una cámara fija y bajo un fondo de escena complejo.

Page 17: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

20

Figura 3.4: Ejemplo de los resultados de extraer las regiones pertenecientes al color de la

piel. La región de búsqueda de las manos son cuadriláteras, mientras que el centro de la

cara, de las manos y las posiciones de los codos son cruces.

Figura 3.5: Extracción de características de la mano.

En [5] se presenta un sistema que reconoce los gestos de la mano a 2-3 Hz, donde

encajan un modelo realístico de mano a una nube de puntos captada con una cámara de

profundidad SR2000, como podemos apreciar en la Figura 3.6. Para ajustar el modelo de mano

a la nube de puntos, primero reducen el ruido generado por la cámara con la función median

filter y posteriormente, segmentan el brazo y la mano del fondo de la escena definiendo un

rango de profundidad. Finalmente emplean un algoritmo que minimiza iterativamente las

distancias entre los puntos extraídos de la cámara y los puntos de la superficie del modelo. A

Page 18: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

21

pesar de que el sistema no trabaja en tiempo real y tampoco es capaz de abordar el problema

de las autooclusiones, es capaz de reconocer 7 DOF: 3 para la rotación, 3 para la traslación y 1

para escalado, sin la necesidad de tener un fondo de escena determinado, incluso para un

fondo con el mismo color de la piel.

Figura 3.6: Movimiento de un modelo realístico de mano ajustado a una nube de puntos.

En [6] usan un modelo de mano basado en una geometría proyectiva de cuádricas, tal

y como se muestra en la Figura 3.7, para generar los contornos, que luego son comparados con

las imágenes de entrada, obteniendo buenos resultados a la hora de abordar el problema de

las autooclusiones. Luego, emplean un algoritmo que minimiza el error geométrico de los

contornos extraídos de las imágenes de entrada. A pesar de que el sistema no trabaja en

tiempo real y de que las imágenes se extraigan bajo un fondo oscuro, es capaz de reconocer 27

DOF: 6 para la posición global de la mano, 4 para la posición de cada dedo, y 5 para la posición

del pulgar, mediante 2 cámaras que captan imágenes en escala de grises. En la Figura 3.8 se

muestra un ejemplo de como una mano se mueve haciendo el gesto de apuntar como una

pistola, y el sistema hace el tracking dando la mejor estimación según el modelo de cuádricas.

En ella se observa una estimación presisa de la posición y la orientación 3D del modelo y

también se observa una configuración precisa del pulgar.

Page 19: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

22

Figura 3.7: Modelo de mano de 27 DOF basado en cuádricas para tratar las autooclusiones.

Figura 3.8: Ejemplo del tracking de una mano apuntando. Proyección de la mano desde las

cámaras 1 y 2 respectivamente (arriba y centro) y su correspondiente pose en 3D (abajo).

Page 20: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

23

En [7] aplican a un modelo de mano una combinación de modelos de fuerzas, para los

bordes, el flujo óptico y el sombreado, tal y como se muestra en la Figura 3.9. Combinando el

flujo óptico y el flujo del sombreado, hacen el tracking del movimiento articulado cuando hay

zonas sombreadas y, combinando el flujo óptico con los contornos, corrigen los errores

causados por el brillo. Luego calculan las fuerzas 2D de los contornos, del flujo óptico y del

sombreado y las aplican al modelo para convertirlas a fuerzas 3D que permitan conducir el

modelo de mano. De este modo consiguen un tracking del movimiento articulado de la mano a

partir de una sóla cámara, obteniendo un resultado exitoso bajo oclusiones severas. El

resultado se muestra en la Figura 3.10.

Figura 3.9: Fuerzas aplicadas al modelo de mano. De izquierda a derecha: contorno, flujo

óptico y sombreado.

Figura 3.10: Resultados de un tracking bajo una considerable cantidad de oclusiones y

rotaciones fuera de plano.

Page 21: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

24

Capítulo 4

LA CÁMARA DE TIEMPO DE VUELO SWISSRANGER™ SR-3000

En este capítulo se presenta la cámara SwissRanger™ SR-3000 como dispoitivo de

entrada para el sistema representado en el capítulo 1. Esta cámara funciona por medio de una

tecnología innovadora que puede ser el futuro de muchas aplicaciones informáticas conocida

como ToF (Time-of-Flight o tiempo de vuelo) y que representa una forma de captar el medio

de forma tridimensional a través de LEDs instalados en la cámara, como se indica en [28].

La SR-3000 (Figura 4.1) es la penúltima generación de cámaras ToF del fabricante

MESA Imaging AG1 y consiste en un sistema óptico de imágenes que ofrece imágenes en escala

de grises (intensidad) y datos en 3D (información de profundidad) en tiempo real, al estilo de

la estereovisión y los escáneres láser, pero más económica y adaptable gracias a su reducido

tamaño y bajo consumo energético. Un ejemplo de las imágenes generadas se muestra en la

Figura 4.2 y en la Figura 4.3.

Figura 4.1: Cámara SR-3000 de Mesa Imaging.

1 http://www.mesa-imaging.ch/

Page 22: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

25

Figura 4.2: Imagen en escala de grises.

Figura 4.3: Imagen en nube de puntos.

Page 23: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

26

Basado en el principio de funcionamiento del tiempo de vuelo, los LEDs de la cámara

emiten un haz de luz en forma de onda sinusoidal periódica, en el espectro infrarrojo para que

sea posible distinguirlo de la luz de fondo y modulada en intensidad. Esta señal incide sobre los

objetos en la escena y vuelve rebotada a la cámara, que habrá experimentado un retardo

dependiendo de la distancia a la que se encuentren los objetos en forma de señal reflejada,

donde el tiempo exacto de llegada es calculado independientemente por cada pixel de la

matriz del sensor.

Cada píxel de la cámara puede desmodular esta señal, y a través de su fase se detecta

la distancia, es decir, con el tiempo transcurrido entre la emisión y la recepción de este

impulso, se detecta la distancia comparando las fases de la luz emitida y reflejada, y la cámara

genera una imagen en escala de grises que nos da la información de profundidad.

Todos estos píxeles captan individualmente la intensidad, la amplitud y la fase del

impulso infrarrojo. Si tenemos los valores intrínsecos de la cámara (distancia focal,

distorsiones, etc.) es posible calcular estas coordenadas 3D. De esta forma obtenemos un

conjunto de puntos clave formando un mapa de rangos de profundidad y otra de intensidades

para cada píxel de la matriz.

Esta cámara de MESA es capaz de crear imágenes 3D en tiempo real, con un frame

rate de 25 imágenes por segundo, con una resolución de 176 x 144 = 25344 pixeles, y un

campo de visión de 47.5° x 39.6°. La SR-3000 tiene unas dimensiones reducidas de 5.0 x 6.7 x

4.23 cm³ e incluye prestaciones tales como la supresión de iluminación de fondo, y definir el

usuario los parámetros del tiempo de integración y del frame rate. Con la configuración por

defecto, esta cámara trabaja con una frecuencia de modulación estándar a 20MHz lo que da

un rango de distancia sin ambigüedad de 7.5 metros:

La SR-3000 ofrece una variedad de imágenes para cualquier aplicación. Este dispositivo

se conecta fácilmente a cualquier ordenador por puerto USB 2.0, permitiendo así el cálculo de

mapas de profundidad en tiempo real en forma de nubes de puntos. Este dispositivo está

especialmente diseñado para trabajar bajo unas condiciones de luz en espacios cerrados, y se

acompaña con un software completo de visualización en plataforma Windows.

Page 24: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

27

4.1 DISCUSIÓN TECNOLÓGICA

Según el fabricante, la precisión de la captura en profundidad es del 1%, es decir, para

imágenes captadas con esta cámara a menos de 1 metro, el error en la profundidad es de

±1cm, que dependerá de la reflectividad de los objetos. Medir cualitativamente el error en la

profundidad es un motivo de estudio interesante, ya que permitiría saber cuál es la distancia

ideal para tomar imágenes respecto a la cámara.

A continuación se muestra en la Tabla 4.1 el resumen estadístico de un experimento

en la que se han captado 50 imágenes consecutivas de la palma de la mano, desde los 30 cm

hasta los 100 cm respecto a la cámara, en intervalos de 5 cm. A cada intervalo de distancia,

cada una de estas 50 imágenes ha pasado por un proceso de reducción de puntos hasta

obtener una cantidad de puntos que definan la silueta morfológica de la mano fotografiada en

anchura, en altura y en profundidad. El objetivo del experimento realizado es para saber por

un lado, cómo se verá la mano a diferentes distancias calculando la densidad de puntos

captados, y por otro lado, para discutir la exactitud de la profundidad detectada mediante su

media aritmética y su desviación estándar.

En ella se aprecia que a distancias menores de 35 cm no es aconsejable tomar

muestras, ya que la cámara se satura añadiendo puntos no deseados tal y como se aprecia en

la nube de puntos correspondiente a la distancia de 30 cm, mientras que a medida que se van

tomando muestras a distancias de más de 50 cm se aprecia que las imágenes se van

degradando resultado de perder cada vez más puntos de sus respectivas nubes. También se

aprecia que la exactitud de la profundidad se desvía en más o menos unos 5 cm de más a

medida que se aumenta la distancia. También se observa que tomar imágenes en el rango de

35 cm a 50 cm es la distancia óptima de la mano repecto a la cámara, ya que en ese intervalo

la media aritmética de la profundidad se aproxima más a la real, tiene menos grado de

dispersión, y la cantidad de puntos son significativos para definir la silueta morfológica de una

mano.

Finalmente, se concluye por un lado, que tomar imágenes con una gran cantidad de

puntos captados no es deseable porque gran parte de ellos serían innecesarios debido al ruido

que añade la cámara, y por otro lado, que un número pequeño de puntos tampoco es desable,

porque si se omiten los puntos mínimos necesarios a la hora de definir la silueta del objeto en

la escena, las imágenes se degradan dando como resultado datos poco consistentes.

Page 25: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

28

NÚMERO DE IMÁGENES

DISTANCIA DE LA

MANO RESPECTO EL SENSOR

DE LA CÁMARA (en cm)

MEDIA

ARITMÉTICA DEL NÚMERO DE PUNTOS

RESULTANTES DESPUÉS DE

FILTRAR*

MEDIA

ARITMÉTICA DE LA

PROFUNDIDAD Z

(en cm)

DESVIACIÓN TÍPICA DE LA

PROFUNDIDAD Z

(en cm)

NUBE DE PUNTOS 3D

RESULTANTES DESPUÉS DE

FILTRAR*

VISTA EN X-Y

NUBE DE PUNTOS 3D

RESULTANTES DESPUÉS DE FILTRAR*

VISTA EN X-Z

NUBE DE PUNTOS 3D

RESULTANTES DESPUÉS DE FILTRAR*

VISTA EN Y-Z

IMAGEN 2D EN COLOR

50

30

7605.0

33.44

0.88

50

35

5473.9

36.45

0.87

50

40

4153.6

41.05

1.01

50

45

3155.9

47.29

1.01

Page 26: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

29

50

50

2545.2

53.69

1.23

50

55

2212.7

59.99

1.37

50

60

1736.7

65.64

1.13

50

65

1411.8

71.94

1.01

50

70

1297.4

76.16

1.33

50

75

1015.2

80.67

0.79

Page 27: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

30

50

80

946.14

85.36

1.13

50

85

815.12

90.67

1.23

50

90

754.74

94.89

1.38

50

95

647.46

100.84

1.36

50

100

595.86

102.56

1.66

Tabla 4.1: Número de puntos resultantes, media aritmética y desviación estándar para una secuencia de 50 imágenes tomadas en intervalos de 5 cm.

*El filtrado se realiza definiendo los límites superiores e inferiores en X, en Y y en Z de una Bounding Box que envuelve la nube de puntos pertenecientes a la

silueta de la mano.

Page 28: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

31

4.2 APLICACIONES

Esta tecnología permite vislumbrar una nueva época en la HCI (Human-Computer

Interaction o interacción entre humano y computadora) de no contacto. Hoy en día, con el

desarrollo y el éxito de las cámaras 3D, se están creando y aplicando nuevos sistemas para

explotar al máximo esta tecnología, a menudo en combinación con otros sensores, como los

sensores laser o las cámaras en color para contrarestar la baja resolución de las cámaras ToF.

Entre las aplicaciones más destacadas según el escenario de aplicación, figuran los videojuegos

interactivos, la navegación en robots móviles, el reconocimiento de gestos, la biometría y la

automoción.

El sector del automóvil es una de las industrias que están liderando la manera de

desarrollar las cámaras ToF. Entre sus aplicaciones están la seguridad de los ocupantes del

vehículo y la de los peatones. En [8] si la cámara detecta peatones que están a una distancia

determinada del vehículo, este activa un mecanismo de parada automática como sistema anti-

choque, o bien sirve como ayuda para estacionar el vehículo. Por otro lado, mediante un

sistema de monitorización de los ocupantes del vehículo, se determina si se activa o desactiva

el despliegue del airbag. Un ejemplo de esta aplicación se muestra en la Figura 4.4.

Figura 4.4: Visualización de los objetos a un rango de distancia de la cámara de abordo.

Otro ejemplo de aplicación en la industria del automóvil y que podria ser útil a una

gran cantidad de usuarios también la encontramos mencionada en [8], donde una cámara ToF

PMD se utiliza en el interior de un coche para controlar distintas aplicaciones mediante el

reconocimiento de gestos, tal y como muestra la Figura 4.5.

En la navegación con robots móviles, las cámaras ToF son útiles debido a que su campo

de visión es vertical, mientras que el área de detección en los sensores láser es horizontal. Esta

asociación permite esquivar obstáculos complejos, como por ejemplo una mesa, y de este

modo el sistema es útil como aplicación para sistemas de guía y vigilancia en áreas urbanas.

Esta aplicación se da en [9] y se muestra en la Figura 4.6, donde Yuan et al. integran los datos

obtenidos del laser proyectando las nubes de puntos de una cámara ToF al plano laser.

Page 29: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

32

Figura 4.5: Reconocimiento gestual mediante un sistema de visión ToF PMD para automóvil.

Figura 4.6: Imágenes obtenidas de un sensor laser LSM y de una cámara TOF SR-3000

montados sobre un robot BIRON.

Page 30: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

33

Dentro de la industria del ocio y el entretenimiento, en particular las empresas

punteras en el campo de los videojuegos, están aprovechando este tipo de cámaras para crear

un mercado cada vez más en auge. Un ejemplo de aplicación empresarial está en las cámaras

con capacidad de captar el movimiento de la persona a través de un sensor que envía impulsos

infrarrojos para detectar los puntos clave y reconocer las partes importantes del cuerpo. Con

esto es posible crear un personaje ficticio que imite los movimientos que el usuario haga

delante del televisor. Compañías punteras en este mercado, como Nintendo, Sony o Microsoft,

han presentado estos nuevos modos de interacción con sus videoconsolas: Nintendo con su

consola Wii1, Sony con su PlayStation-Eye2 y Microsoft con su Kinect3. Un ejemplo de

videojuego se muestra en la Figura 4.7, en el que científicos de la Universidad Carlos III de

Madrid, lo manejan simplemente con el movimiento de las manos, como si se estuvieran

agarrando un volante virtual con la que capturan en 3D los movimientos del usuario para

después poder transmitirlos a un ordenador, que los procesa y transmite al coche del juego.

Figura 4.7: Infografía sobre el funcionamiento de la cámara de tiempo de vuelo en un

videojuego de conducción.

1 http://es.wii.com/ 2 http://es.playstation.com/psmove/ 3 http://www.xbox.com/es-ES/kinect/

Page 31: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

34

La Biometría es la ciencia que estudia la identificación y verificación de rasgos o

características físicas e intransferibles de las personas, como por ejemplo la huella digital. Las

cámaras ToF pueden ayudar en esta área capturando la estructura facial en tres dimensiones

de los individuos, para posteriormente ser verificados en un sistema. En [10] un ejemplo en la

biometría es el reconocimiento facial o podal tal y como se muestra en la Figura 4.8, donde el

mapa de profundidad es codificado en intensidad y cuantificado con la barra de color. Con la

combinación de una imagen en escala de grises y la información 3D que proporcionan las

cámaras ToF, se incrementa significativamente la robustez en la detección. En el escaneo de la

planta del pie, se aprovecha la información conjunta para desarrollar plantillas ortopédicas.

Figura 4.8: Adquisición 3D de un pie y un rostro mediante una cámara ToF.

Como último ejemplo de aplicación destacada, en [11] Knoop et al. hablan sobre un

método de tracking para la captura del movimiento humano en tiempo real, llamado algoritmo

de fusión VooDoo1. Este método se basa en un modelo 3D de un cuerpo humano que utiliza la

información de profundidad de la cámara de tiempo de vuelo en combinación con una cámara

stereo 2D. De manera similar a las cámaras de las videoconsolas antes mencionadas, ellos se

basan en un modelo de cuerpo humano en 3D, formado por cilindros, que imita los

movimientos que el usuario haga delante de las cámaras. Estos cilindros representan a la

cabeza, el tronco y las extremidades y están empalmados con diferentes modelos de

articulaciones por medio de bandas elásticas y que determinan sus restricciones. La idea

principal es que la nube de puntos que proporciona la cámara ToF y los cilindros que forman el

modelo están cerca, de manera que encuentran una transformación, que ajusta los cilindros a

los puntos de la nube, tal y como se muestra en la Figura 4.9.

1 http://wwwiaim.ira.uka.de/users/loesch/har/

Page 32: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

35

Figura 4.9: Las líneas indican la proximidad entre los puntos y los cilindros. Este aspecto ha

motivado a que el sistema reciba el nombre de VooDoo.

Gracias al cabezal stereo 2D extraen el color de la piel de las manos y del rostro. Esta

característica puesta en correspondencia con las imágenes en 3D proporcionan los resultados

esperados tal y como se muestra en la Figura 4.10.

Figura 4.10: Experimentos tomados con diferentes sensores. La extracción del color de la piel

se observa mediante las líneas verdes. Si se ponen en correspondencia con las imágenes en

3D se obtienen los resultados de la fusión.

En definitiva, los puntos fuertes de estas cámaras es que trabajan con un alto frame

rate, se pueden aplicar a dispositivos móviles para la obtención de mapas 3D, y se pueden

combinar con otros sensores para paliar su baja resolución. En cambio, sus desventajas son

que añade ruido en la profundidad, y hay que aplicar métodos de calibración para corregir la

inexactitud de estas imágenes de profundidad.

Page 33: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

36

Capítulo 5

MODELADO DE LA MANO

En este capítulo, primero se describe la estructura ósea de una mano humana.

Conociendo su estructura, se puede parametrizar su movimiento mediante su modelo

cinemático, y posteriormente, aplicarlo a un modelo de mano en 3D que será la salida del

sistema definido en el capítulo 1.

5.1 MODELO CINEMÁTICO

El modelo cinemático representa el movimiento del esqueleto de la mano. Los huesos

de la mano forman un sistema de cuerpos rígidos, unidos por articulaciones con uno o varios

grados de libertad y consta de 27 huesos, 8 de los cuales están localizados en la muñeca. Los

otros 19 constituyen la palma y los dedos como se muestra en la Figura 5.1. Las articulaciones

entre los huesos son denominados según su posición en la mano, como metacarpo falanges

(MCP), es decir, la unión de los dedos a la palma o los nudillos; inter falanges (IP), es decir, las

articulaciones de los segmentos de los dedos; y carpo metacarpo (CMC), es decir, la unión de

los huesos metacarpos, los de la palma a la muñeca.

Figura 5.1: Modelo esquelético de la mano.

Page 34: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

37

Las nueve articulaciones IP pueden ser descritas con exactitud teniendo sólo 1 DOF, la

flexión/extensión. Excluyendo la articulación MCP del pulgar, las otras cuatro articulaciones

MCP son descritas como articulaciones con 2 DOF: abducción/adducción en el plano definido

por la palma, y la flexión/extensión. El CMC del índice y dedo medio son estáticos mientras el

CMC del meñique y el dedo anular tienen limitados la capacidad de movimiento que refleja el

plegado de palma o la encorvadura, lo que a menudo es descartada dando lugar a una palma

rígida. El TM que es la principal fuente de flexibilidad del pulgar, y el MCP de este, se

consideran articulaciones con 2 DOF: la abducción/adducción y la oposición.

Un modelo de 27 DOF que fue presentado en [12] y que ha sido usado en muchos

estudios se muestra en la Figura 5.2. Este modelo cinemático es la opción más natural para

parametrizar el movimiento de la mano. Las articulaciones CMC se suponen fijas, que siendo

bastante irrealistas modelan la palma como un cuerpo rígido, y los dedos, son modelados

como cadenas de cinemática planas sucesivas conectadas a la palma en puntos de anclaje

localizadas en las articulaciones MCP. Sin embargo, en algunos estudios biomecánicos se

muestran algunos ejemplos de las variaciones del modelo cinemático. Por ejemplo en [13],[14]

añaden un movimiento de giro suplementario a las uniones MCP, en [15] introducen 1 DOF

flexión/extensión a las articulaciones CMC, y en [16] usan una articulación esférica para el TM.

Figura 5.2: Modelo cinemático de la mano.

Los sistemas de estimación de la postura de la mano con grados de libertad totales, a

priori cuentan con información sobre la postura de la mano o las restricciones del movimiento,

para así reducir el espacio de búsqueda en la estimación de la postura. Una tentativa que

puede ayudar a plantear algoritmos de estimación de la postura consiste en restringir las

dependencias de los ángulos de las articulaciones, como por ejemplo la relación

entre los ángulos PIP y DIP que ayudan a disminuir los DOF en 4.

Page 35: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

38

5.2 MODELO CILÍNDRICO

Ahora que ya se ha parametrizado el movimiento de la mano es necesario definir su

aspecto para poder generar formas en configuraciones arbitrarias. Hay que destacar por un

lado, que en los sistemas de estimación de la postura de la mano que cuentan con modelos de

formas, si la precisión es una exigencia para la aplicación, estos modelos tienen que pasar por

un procedimiento de calibración para calcular medidas específicas del usuario. Por ejemplo en

[17], usan las posiciones de las yemas de los dedos adquiridas mediante una cámara stereo y

unos marcadores LED para calibrar un cyberglove que sirve para teleoperar un modelo

mecánico de mano. Por otro lado, en muchos estudios con visión artificial el modelo de mano

tiene que estar emparejado con la imagen de entrada para poder obtener comparaciones. Este

problema ha motivado el diseño de modelos improvisados mediante primitivas geométricas

simples como cilindros, esferas o elipsoides conectados a cada articulación del esqueleto de la

mano.

En este apartado usaremos un modelo cilíndrico inspirado en el trabajo de Knoop et al.

[11] donde el modelo de articulación está basado en el concepto de empalmar los cilindros

que forman un modelo de cuerpo humano 3D mediante unas bandas elásticas. Cada tipo de

articulación define sus restricciones o sus grados de libertad y se modelan como

correspondencias artificiales en ambas partes de los cilindros. De este modo queda definido el

movimiento dentro del modelo. Ellos describen tres tipos de modelos de articulaciones para

hacer el tracking, tal y como se muestra en la Figura 5.3:

Articulaciones Universales: tienen 3 DOF totales, como por ejemplo el hombro humano. Las articulaciones universales están modeladas mediante una correspondencia punto a punto (una banda elástica).

Articulaciones Bisagra: tienen 1 DOF real y los otros están casi fijados, como por ejemplo el codo o la rodilla. Las articulaciones bisagra están modeladas por un conjunto de correspondencias que están distribuidas a lo largo de una línea recta.

Articulaciones Elípticas: tienen todos los DOF altamente restringidos. Un ejemplo en el cuerpo humano es el cuello: el movimiento es posible en los 3 DOF, pero muy limitado en rango. Las articulaciones elípticas están modeladas por un conjunto de correspondencias distribuidas a lo largo de la elipse.

Figura 5.3: Diferentes tipos de modelos de articulaciones. De izquierda a derecha: articulación universal, articulación bisagra y articulación elíptica.

Page 36: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

39

A la hora de establecer los modelos de articulación para cada una de las articulaciones del modelo de mano, se decide usar el modelo de articulación bisagra sobre las articulaciones IP, DIP y PIP, ya que este modelo de articulación se ajusta a los grados de libertad reales de estas articulaciones. De este modo nos aseguramos de que las falanges unidas por este modelo de articulación no rotan sobre sí mismas y tampoco se flexionan y extienden en sentido inverso. Para el pulgar, se decide restringir la articulación MCP, y para la TM se decide usar un modelo de articulación esférica con 3 DOF tal y como sugieren en [18],[19]. Para las articulaciones MCP de las otras falanges también se decide usar este modelo de articulación esférica. El resultado de muestra en la Figura 5.4.

Figura 5.4: Modelos de articulaciones aplicados a un modelo cilíndrico de mano.

Page 37: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

40

Capítulo 6

EL ALGORITMO ICP

El algoritmo ICP de Besl y McKay citado en [20], originalmente denominado Iterative Closest Point, aunque Iterative Corresponding Point quizás sea el término más correcto para esta abreviatura, es un método para emparejar dos imágenes parcialmente superpuestas, calculando la transformación rígida de una imagen respecto a otra imagen de referencia. Considerando una imagen como una nube de puntos 3D captada con la SR-3000, ICP pondrá en correspondencia una nube de puntos S con una nube de puntos de referencia S’. Este proceso se aprecia en la Figura 6.1. Un requisito previo muy importante sobre este algoritmo, es que las imágenes que se quieren emparejar han de estar parcialmente superpuestas, es decir, la separación entre las dos imágenes ha de ser muy pequeña, ya que sino, no hará una buena alineación.

Figura 6.1: Los puntos de S’ (en azul) se emparejan con los puntos más próximos de S (en

rojo). Los puntos de S se desplazan hacia S’ minimizando las distancias entre parejas de

puntos y el proceso se repite hasta llegar finalmente a la convergencia.

El algoritmo ICP se resume a grosso modo en tres etapas. Primero comienza con la etapa de correspondencia, en la que a partir de cada uno de los puntos de S’, se encuentran los puntos de S más próximos a S’, dando lugar a parejas de puntos. A continuación, en la etapa de registro, primero se calcula el error métrico entre las parejas de puntos halladas en la etapa anterior, y luego, se minimiza ese error mediante una transformación estimada. Finalmente, en la etapa de actualización, se desplaza la nube de puntos de S hacia la nube S’ una distancia óptima según la transformación estimada. Este proceso se repite iterativamente hasta conseguir la convergencia entre las dos nubes de puntos, o bien, hasta llegar a un número máximo de iteraciones.

Un ejemplo de aplicación de este algoritmo se da en la robótica móvil. En [21] Valencia et al. usan el algoritmo ICP de Besl y McKay para una aplicación de guía y vigilancia en la que obtienen mapas 3D de áreas urbanas para peatones mediante un robot que proporciona información 3D por laser. Desde la introducción de ICP por Besl y McKay, muchas variaciones han sido introducidas sobre el concepto básico de ICP. A lo largo de este capítulo clasificaremos algunas de esas variaciones según a cuál de las 3 etapas del algoritmo afecten.

Page 38: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

41

6.1 ETAPA DE CORRESPONDENCIA

Por un lado, hay que destacar que el algoritmo ICP original calculaba las correspondencias entre S’ y S asumiendo que el número de puntos totales de ambas nubes era el mismo, con lo cual, para cada punto de S’ había una sola correspondencia en S. Hay que mencionar que este no sería el caso de una aplicación real, ya que el número de puntos de una imagen 3D puede ser diferente a la otra imagen que queremos alinear. Por otro lado, hay que destacar que esta es la etapa que más tiempo consume de todo el algoritmo. Para acelerar la búsqueda de correspondencias, no es suficiente sólo con encontrar para cada punto de S’ el punto más próximo en S, sino que se trata de encontrar el punto compatible más próximo, usando algunos criterios de compatibilidad. De este modo, el algoritmo conseguirá una mayor estabilidad y una convergencia más rápida. Una estrategia para acelerar la búsqueda de correspondencias, como alternativa a la búsqueda por fuerza bruta (proceso por regla general muy lento), Nütcher et al. usa los kd-trees como una estructura de datos espacial, mediante una librería de objetos llamada Approximate Nearest Neighbour 1 (ANN) para encontrar los vecinos más próximos. Otra estrategia se da en [22], donde Turk y Levoy aplican un muestreo uniforme para reducir el número de puntos de una nube antes de buscar parejas en correspondencia, reduciéndose así el tiempo de búsqueda. También recomiendan rechazar todas las parejas de puntos que se encuentran en los cantos de una imagen, tal y como se aprecia en la Figura 6.2. Esta estrategia evita casos de emparejamientos erróneos mientras la superposición entre imágenes no esté completa.

Figura 6.2: (a) Cuando se quieren alinear dos nubes de puntos que no están completamente superpuestas (como en la mayoría de los casos reales), si se ponen en correspondencia los puntos que se encuentran en los bordes puede ocasionar un error en la alineación. (b) Rechazando los puntos de los bordes se eliminan muchas correspondencias incorrectas.

Otra estrategia para acelerar la búsqueda de correspondencias se da en [23], donde

Pulli propone limitar el ángulo entre las componentes normales de las parejas de puntos en

correspondencia, en concreto, que el ángulo entre el vector normal de un plano definido por

varios puntos vecinos de la nube S y el vector normal de un plano definido por varios puntos

vecinos de la nube S’, tiene que estar dentro de los 45° el uno del otro. De este modo se

acelera la convergencia entre imágenes.

1 http://www.cs.umd.edu/~mount/ANN/

Page 39: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

42

6.2 ETAPA DE REGISTRO

El registro 3D es el proceso de alinear dos imágenes tomadas desde dos sistemas de

coordenadas diferentes, y en nuestro caso, las imágenes tomadas están referenciadas desde el

sistema de coordenadas local de la cámara ToF. Para alinear la nube de puntos S de la primera

imagen, con la nube de puntos S’ de la siguiente, que será la de referencia, primero habrá que

medir apropiadamente la proximidad entre los puntos de S que se han puesto en

correspondencia con los puntos de S’, llamado error métrico, y una vez calculado, se aplica la

minimización de este error a partir de la matriz de transformación estimada.

6.2.1 ASIGNACIÓN DE UN ERROR MÉTRICO

Para medir la proximidad entre parejas de puntos en correspondencia se puede establecer una asociación punto a punto y/o una asociación punto a plano.

En la asociación punto a punto, la distancia entre y

se puede calcular mediante la distancia Euclídea, como la raíz

cuadrada de la suma de las distancias de las parejas de puntos en correspondencia al cuadrado, o error métrico:

donde i es el subíndice que indica un punto en particular de su respectiva nube, y d es el

número máximo de puntos de cada nube.

Una variante de Chen y Medioni [24] propone usar distancias punto a plano en lugar de punto a punto (Figura 6.3). De este modo, se conseguirá minimizar iterativamente la distancia desde un punto de S hasta el plano que contiene el otro punto en S’ consiguiendo así, que esta métrica sea menos susceptible a mínimos locales que la métrica propuesta por Besl y McKey.

Figura 6.3: En superficies irregulares habrá una convergencia más rápida con una asociación punto a plano que con una asociación punto a punto, debido a que las parejas de puntos en las zonas planas resisten al deslizamiento creando un efecto muelle.

Page 40: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

43

Para calcular el error métrico en la asociación punto a plano, se trata de encontrar el punto más próximo a un punto contenido en un plano. Para ello, en [25] Andrade-Cetto y Villamizar calculan el plano más próximo a encontrando primero la media de puntos vecinos de una nube y entonces, el plano que interpola la nube de puntos, quedaría representado por un punto central junto al vector unitario normal , tal y como se muestra en la Figura 6.4.

Figura 6.4: El plano que interpola la nube de puntos se representa por un punto central y un vector normal . Una vez se ha definido el plano, encuentran luego la distancia mínima entre el plano y el punto definiendo la distancia como:

Para decidir bajo qué criterio se usa una métrica u otra, en [26] Teniente y Andrade-

Cetto usan una aproximación híbrida jerárquica. Para ello, primero calculan el plano más

próximo al punto que se quiere poner en correspondencia mediante la librería ANN, que halla

unos puntos vecinos de la nube de referencia que forman el plano. Una vez el plano está

definido, se obtiene la distancia entre el plano y los n puntos adyacentes que lo describen,

como una medida de error denominada error del plano tangencial, tal y como se aprecia en la

la Figura 6.5. Si este error es mayor a un umbral definido por el usuario, usan la métrica punto

a punto propuesta por [27] Biota et al., mientras que si el error es menor al valor de este

umbral, entonces usan la métrica punto a plano propuesta por Chen y Medioni.

Figura 6.5: Error de ajuste entre un plano y los n puntos adyacentes que lo describen.

Page 41: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

44

6.2.2 MINIMIZACIÓN DEL ERROR MÉTRICO

Una vez se ha medido el error métrico, se procede a minimizarlo hasta conseguir la

convergencia. Biota et al. resuelve este problema calculando el desplazamiento relativo entre

S y S’ mediante un vector que representa la

transformación, es decir, la traslación y rotación de la nube S hasta la nube S’. La expresión

que minimiza la distancia entre ambas nubes es la siguiente:

La transformación entre S y S’ también se puede expresar en forma matricial mediante

una matriz homogénea H, sabiendo que y, de este modo, también

determinaremos la rotación y la traslación que realiza la nube de puntos S para estar en

correspondencia con S’.

La matriz de transformación homogénea H se define como una matriz de 4x4 que en general consistente de cuatro submatrices de la forma:

En robótica la submatriz , que representa una transformación de perspectiva, es nula; la submatriz , que representa un escalado global, es la unidad:

la matriz de rotación mide el ángulo de giro de cada eje coordenado y se puede descomponer en 3 submatrices:

resultando,

y el vector indica la traslación

de la nube S hasta S’.

Esta matriz H representa, por tanto, a una nube de puntos S perteneciente a un sistema XYZ que ha sido rotado y trasladado hasta la nube de puntos S’ perteneciente al sistema de referencia IJK, tal y como se aprecia en la Figura 6.6.

Page 42: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

45

Figura 6.6: La nube de puntos de S relativa al sistema XYZ ha sido transformada hasta la nube de puntos S’ del sistema IJK.

Así pues, la matriz H equivale a rotar y trasladar la nube S del sistema XYZ (primera imagen) para alinearse con la nube S’ referenciada al sistema IJK (segunda imagen):

donde Xi, Xj, Xk es el vector unitario del eje X en el sistema IJK, Ii, Ij, Ik es el vector unitario del eje Y en el sistema IJK, Zi, Zj, Zk es el vector unitario del eje Z en el sistema IJK. Obsérvese que la expresión anterior puede reescribirse de la siguiente manera descomponiendo la matriz homogénea:

De esta manera, en cada iteración del algoritmo, se irá minimizando el error métrico entre S y S’ mediante la matriz homogénea, hasta conseguir la alineación de las dos nubes de puntos.

Page 43: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

46

6.3. ETAPA DE ACTUALIZACIÓN

Una vez se ha estimado la matriz homogénea de transformación que minimiza el error

métrico entre parejas de puntos, primero, se actualiza la nube de puntos de S con la

transformación estimada, es decir, se desplaza toda la nube de S con la rotación y traslación de

la matriz homogénea estimada, y finalmente, se actualizan las correspondencias de las parejas

de puntos. A continuación, se calcula el error métrico posterior entre las parejas de puntos de

S (ya actualizada) con los de S’.

El criterio de convergencia se determina estableciendo un número máximo de

iteraciones, o bien, hasta que la diferencia entre el error previo y el error posterior entre

parejas de puntos sea menor al valor de un umbral definido previamente. En caso de que no se

cumpliera el criterio, se vuelven a repetir las etapas de correspondencia y de registro tantas

iteraciones se hayan definido hasta alinear la nube de puntos S con la nube de puntos S’.

Si la nube de puntos de S actualizada se corresponde con la de S’, significa que la

diferencia de errores es mayor o igual al valor del umbral definido inicialmente, o bien, que se

ha llegado al número máximo de iteraciones. De este modo, nos aseguramos de que el

algoritmo llega a su fin sin entrar en un bucle infinito.

Por lo tanto, podemos decir que el algoritmo ICP en cada iteración, va desplazando la

nube de puntos S hacia la nube de puntos S’, mientras se vaya minimizando el error métrico de

cada una de las parejas de puntos en correspondencia. Este proceso queda representado en

diagrama de flujo de la Figura 6.7.

Page 44: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

47

Figura 6.7: Diagrama de flujo del algoritmo ICP.

Page 45: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

48

PARTE II Desarrollo

Page 46: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

49

Capítulo 7

DESCRIPCIÓN DE LA IMPLEMENTACIÓN

Este capítulo se corresponde a la parte de desarrollo del sistema planteado en el

capítulo 1, donde se explica detalladamente las fases de su diseño, tal y como se muestra en la

Figura 7.1. Para ello, se procede a realizar una serie de experimentos, en el que cada uno

consiste en procesar una secuencia de imágenes capturadas con la cámara ToF, que

representan el movimiento de hacer un sencillo gesto de la mano para comprobar su grado de

libertad. Cada una de las imágenes de su respectiva secuencia pasa independientemente por

una cadena de procesos de un algoritmo implementado en Matlab, empezando por la

adquisición de los datos 3D, y seguida por la reducción de puntos, la segmentación interactiva

y finalmente, ICP. Con los datos resultantes de aplicar la etapa de ICP, se obtienen las

transformaciones o pequeñas variaciones de movimiento de cada uno de los gestos, en forma

de matrices homogéneas, o bien, en forma de ángulos de rotación y vectores de traslación.

Finalmente, con estos últimos datos adquiridos, se aplican a la figura geométrica en forma de

mano modelada con cilindros propuesta en el capítulo 5 mediante librerías gráficas 3D Open

Inventor, para reproducir en 3D los datos resultantes de aplicar ICP. De esta manera,

compareremos la animación de hacer cada uno de los gestos capturados con la cámara ToF

con la reproducción en 3D, y así, validaremos el sistema viendo si la comparación es plausible.

Figura 7.1: Fases del diseño del sistema.

Adquisición de puntos

Reducción de puntos

Segmentación interactiva de

puntosICP

Reproducción 3D

Page 47: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

50

7.1. HERRAMIENTAS INFORMÁTICAS EMPLEADAS

La adquisición de las imágenes que proporciona la cámara SR-3000 se ha realizado

mediante el programa visualizador SR_3D_View que proporciona el fabicante. Para ejecutar

este visualizador previamente se ha instalado el driver SwissrangerSetup1.0.12.577.exe bajo

plataforma Windows Vista.

Para implementar el algoritmo se ha usado el programa MATLAB (abreviatura de

MATrix LABoratory) versión 7.6.0.324 (R2008a) en plataforma Windows Vista, un software

matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de

programación propio (lenguaje M). Es un programa de gran utilidad ya que permite manipular

las matrices y representar los datos y funciones de las etapas de reducción de puntos,

segmentación interactiva e ICP.

Finalmente, para la reproducción de los datos en 3D se ha usado KDevelop versión

3.5.3, un entorno de desarrollo integrado para sistemas LINUX orientado al uso bajo el entorno

gráfico KDE, aunque también con otros entornos como GNOME. KDevelop es un programa

compuesto por un conjunto de herramientas para un programador y cuenta con un editor de

código, depurador y constructor de interfaz gráfica GUI. No cuenta con un compilador propio,

por lo que depende de gcc para producir código binario. Este programa se ha instalado bajo

plataforma Ubuntu 8.04.

Para poder visualizar correctamente los datos en 3D, es requisito previo:

Tener instalada la librería Qt31. Ésta se utiliza para crear la interfaz gráfica de interacción del usuario.

Tener instalada la librería Open Inventor2. Ésta se utiliza para representar la escena de forma tridimensional.

Tener instalada la librería SoQt2. Ésta permite utilizar simultáneamente y en un mismo programa interfaces de Open Inventor y Qt.

1 http://qt.nokia.com/downloads 2 http://www.coin3d.org/lib/plonesoftwarecenter_view

Page 48: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

51

7.2. ADQUISICIÓN DE DATOS 3D

Con el programa visualizador SR_3D_View que proporciona el fabricante de la cámara,

se extraen previamente las nubes de puntos a través de la opción Export point cloud. Cada

nube de puntos viene en forma de un archivo .ASCII en la que aparece listada 3 columnas con

números reales, pertenecientes a los ejes X, Y y Z de cada píxel. Cada píxel, por tanto tendrá

asociado 3 números de cada fila que representan la posición de un punto

en el espacio. En la Figura 7.2 se muestra un fragmento de archivo ASCII exportado por la

cámara.

Figura 7.2: Coordenadas X, Y, Z de cada píxel.

Una vez capturadas las imágenes se programa en Matlab la primera etapa del sistema,

en la que primero se inicializan los directorios necesarios para el funcionamiento del

programa, seguidamente se cargan los archivos ASCII y cada uno se guarda en una estructura

de datos N(i).data donde cada estructura será una matriz de puntos de dimensión 25344 x 3.

Finalmente se representan gráficamente estas matrices de píxeles en forma de puntos 3D tal y

como se aprecia en la la Figura 7.3. El código de esta etapa figura en el anexo A2.

Figura 7.3: Visualización de una nube de puntos capturada con la cámara SR-3000.

Page 49: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

52

7.3. REDUCCIÓN DE PUNTOS

Cuando las imágenes 3D tienen una gran densidad de puntos, reducir el número de

puntos totales antes de aplicar ICP, ayuda a reducir el tiempo de búsqueda de puntos vecinos,

y por tanto, es una estrategia para decrementar el tiempo de ejecución del sistema. En esta

etapa del sistema se aplican dos estrategias demostradas en [22] para excluir los puntos no

deseados de la Figura 7.3. Por un lado, a modo de filtro grande, se limita la distancia de los ejes

X, Y y Z para obtener los puntos pertenecientes sólo a la mano, tal y como se aprecia en la

Figura 7.4, y por otro, a modo de filtro fino, se aplica un muestreo uniforme de puntos para

eliminar los outliers. El código de esta etapa figura en el anexo A2.

Figura 7.4: Caja que limita los puntos que se desean extraer.

Page 50: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

53

Limitar la distancia en los ejes:

Para extraer los puntos que nos interesan de la silueta de la mano y eliminar los no

deseados, se definen manualmente los valores máximos y mínimos de los ejes X, Y y Z que

envuelven a la densidad de puntos que se desean mantener (sólo de la mano), en anchura,

altura y profundidad. De este modo, los puntos pertenecientes al antebrazo o cualquier punto

de la imagen que quede fuera de los límites de la caja se eliminarán automáticamente. El

proceso se repite iterativamente 25344 veces, desde el primer hasta el último punto de la

matriz de píxeles y el resultado final se muestra en la Figura 7.5.

Figura 7.5: Resultado de 3497 puntos después de aplicar los limites en los ejes X, Y y Z.

Page 51: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

54

Muestreo uniforme y eliminación de outliers:

En esta misma etapa se aplica un muestreo uniforme a los puntos de la Figura 7.5 para reducir su número, mediante la función ‘uSamp’. Por otro lado, la función ‘mFilt’, ayuda a reducir los outliers, puntos considerados como ruido que la cámara ToF haya añadido debido a un alta reflectividad del objeto, especialmente en su contorno, pero preservando la naturaleza geométrica de su superficie. Si el número de outliers es grande, estos serán los causantes de un error sistemático en la transformación estimada, y la convergencia tenderá hacia un mínimo local dando lugar a una mala superposición, ya que ICP es susceptible a este ruido. Hay que recordar que el algoritmo ICP original consideraba que los datos no tenían outliers. Después de aplicar el muestreo, en la Figura 7.6 se aprecia como algunos puntos interdigitales han desaparecido, manteniéndose sólo aquellos puntos cuya distancia media a sus vecinos sea menor al valor de ‘mFilt’.

Figura 7.6: Resultado de 2342 puntos despúes de aplicar el muestreo y la eliminación de outliers.

Page 52: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

55

7.4. SEGMENTACIÓN INTERACTIVA

ICP parte con la consideración de que sólo es aplicable a cuerpos rígidos. Ya que la

mano es un objeto articulado con más de 20 DOF es necesario particionar la nube de puntos

que forman la mano en varios cuerpos rígidos para así poder medir el movimiento completo

de la mano. Este método es conocido como Divide & Conquer, y al igual que el diseño

descendente en la programación, se trata de dividir un problema general en varios

particulares. Por ejemplo, para medir las variaciones de hacer el movimiento de

flexión/extensión del dedo índice, primero es necesario segmentar el dedo definiendo por

separado los puntos pertenecientes a cada una de las tres falanges, y asignando a cada una de

ellas una estructura de datos pointClouds(i).cil=struct('cil1', [], 'cil2', [], 'cil3', []), donde cil1 es la

primera falange; cil2, la segunda; y cil3, la tercera respectivamente.

Para delimitar los puntos pertenecientes a cada falange, se aplica el mismo método de

limitar la distancia de los ejes, definiendo manualmente los valores máximos y mínimos en los

ejes X, Y y Z que envuelven a la densidad de puntos pertenecientes a cada falange en este

caso, a diferencia de la mano entera que sólo sería una única estructura de datos. En la Figura

7.7 se muestra una secuencia de 6 imágenes con el dedo índice segmentado en 3 estructuras

de datos, haciendo el movimiento de flexión/extensión. El código de esta etapa figura en el

anexo A2.

Imagen 1

Imagen 2

Imagen 3

Imagen 4

Imagen 5

Imagen 6

Figura 7.7: Los puntos coloreados en negro pertenecen a cil1 o primera falange, los rojos a

cil2 o segunda falange, y los azules a cil3 o tercera falange.

-0.05 0 0.05-0.02

-0.01

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.083D Clouds map

-0.05 0 0.05-0.02

-0.01

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.083D Clouds map

-0.05 0 0.05-0.02

-0.01

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.083D Clouds map

-0.05 0 0.05-0.02

-0.01

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.083D Clouds map

-0.05 0 0.05-0.02

-0.01

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.083D Clouds map

-0.05 0 0.05-0.02

-0.01

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.083D Clouds map

Page 53: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

56

7.5. ICP

Ahora que se ha segmentado cada imagen en 3 estructuras de datos, se procede a

medir las variaciones de movimiento de cada una de ellas, superponíendolas mediante el

algoritmo ICP. Para ello, primero se establecen cil1, cil2 y cil 3 de la imagen 1 como las nuevas

(new), y cil1, cil2 y cil3 de la imagen 2 como las de referencia (ref); luego cil1, cil2 y cil3 de la

imagen 2 como las nuevas (new), y cil1, cil2 y cil3 de la imagen 3 como las de referencia… y así

sucesivamente. A continuación, se calcula el vector normal asociado a cada punto del plano

definido por el número de puntos vecinos de ambas estructuras. Luego, se establece el

número máximo de iteraciones ‘maxIter’ y un umbral ‘errorThreshold’ como los criterios

iniciales para salir del bucle.

Ahora comienza el proceso ICP iterativamente:

[1] Correspondencia punto a punto:

Se establecen parejas de puntos entre cil1.ref.data y cil1.new.data, cil2.ref.data y

cil2.new.data, cil3.ref.data y cil3.new.data mediante la librería ANN. El criterio de

selección de correspondencias depende de la distancia entre puntos y de un ángulo

máximo entre las componentes normales. De este modo, nos aseguramos que cada punto

sólo tendrá una única correspondencia aun en el caso de que la distancia a otro punto sea

la misma. Para ello primero se ordenan las parejas de puntos de mayor a menor distancia.

Luego se descartan las correspondencias que estén a una distancia ‘maxDist’ mayor que la

definida por el usuario. Finalmente, se compara el vector normal de un punto de S’ con el

vector normal del otro punto de S. Si el ángulo entre ambos vectores está dentro de un

rango ‘maxAngle’, se establece la correspondencia y en caso contrario, se descarta.

[2] Cálculo del error de ajuste entre las correspondencias:

A continuación se calcula la distancia de separación entre parejas de puntos en

correspondencia. Este será el error métrico previo a la minimización.

[3] Estimación de la matriz de transformación óptima para minimizar el error de ajuste:

Se calcula la matriz H óptima que minimiza el error de ajuste previo entre parejas de

puntos en correspondencia. El resultado es una matriz homogénea Estimated_HRt.HRt de

4x4 y/o el vector q de desplazamiento Estimated_HRt.xyzRxRyRz de 1x6.

[4] Actualización de la nube de puntos new con la nueva transformación rígida estimada:

Mediante la función ‘applyHRt2data’ los puntos de new se desplazan hacia los puntos de

ref con la matriz de transformación estimada.

[5] Nueva correspondencia de puntos y cálculo posterior del error de ajuste:

Se actualizan las correspondencias de parejas de puntos y se vuelve a calcular el error de

ajuste posterior.

[6] Criterio de convergencia:

Si la diferencia entre el error de ajuste previo con el error de ajuste posterior es menor al

umbral (errorThreshold) definido, se cumple el criterio de convergencia y se sale del bucle,

sino, se repite todo el proceso de nuevo tantas iteraciones se hayan establecido o mientras

que la diferencia entre los errores sea mayor al ErrorThreshold.

Page 54: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

57

7.6. VALIDACIÓN DE LOS DATOS EXTRAÍDOS

Antes de aplicar las matrices homogéneas al modelo de mano 3D, es necesario comprobar que las transformaciones sean correctas. De este modo, evitaremos ver una reproducción 3D que no se corresponda con la secuencia de puntos extraída. Para ello multilplicamos los puntos de new (primera nube de puntos) por la transformación de esta, es decir, la variación de movimiento de la primera nube con respecto a la nube ref (siguiente nube de puntos), dando como resultado ref2. Seguidamente, mostramos por pantalla ref (la segunda imagen) en color rojo y la imagen ref2 (la primera imagen transformada hacia la segunda) en azul. Si vemos que los puntos azules están prácticamente superpuestos a los puntos en rojo, podemos concluir que ICP realiza bien las transformaciones, y por lo tanto, validar el experimento de extracción de datos para luego aplicar las transformaciones extraídas al modelo de mano en 3D. A continuación se muestra el código para la validación de los datos extraídos:

Para la segunda y tercera falange se aplicaría el mismo código reemplazando cil1 por cil2 y cil3,

respectivamente.

A continuación se muestran en la Figura 7.9, Figura 7.10 y Figura 7.11 el resultado de

superponer los puntos de ref2 con los puntos de ref, para cada una de las falanges

respectivamente. La visualización de esta etapa figura en el anexo A4.

% 1ª falange for j=1:size(cil1,2) ref2 = []; for i=1:size(cil1(j).new.data,2) ref2.data(:,i) = Indice1(j).HRt*[ cil1(j).new.data(:,i) ; 1 ] end figure; axis equal;hold on; %Pinta la nube de puntos de referencia en rojo plot3(cil1(j).ref.data(1,:),cil1(j).ref.data(2,:),cil1(j).ref.data(3,:),'r*'); %Pinta la nube de puntos tranformadas en azul plot3(ref2.data(1,:),ref2.data(2,:),ref2.data(3,:),'b*'); axis([-0.05,0.0,-0.02,0.02]); hold off; end

Page 55: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

58

Figura 7.9: Resultado de superponer ref2 con ref para la primera falange.

Transformación 1

Transformación 2

Transformación 3

Transformación 4

Transformación 5

Figura 7.10: Resultado de superponer ref2 con ref para la segunda falange.

Transformación 1

Transformación 2

Transformación 3

Transformación 4

Transformación 5

Figura 7.11: Resultado de superponer ref2 con ref para la tercera falange.

Transformación 1

Transformación 2

Transformación 3

Transformación 4

Transformación 5

Page 56: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

59

7.7. REPRODUCCIÓN DE LOS DATOS RESULTANTES

Finalmente, ya que es difícil evaluar cualitativamente la posición y orientación de cada

una de las transformaciones resultantes en la etapa de ICP, se propone aplicarlos al modelo

cilíndrico de mano propuesto en el capítulo 5. De este modo veremos una animación que se

corresponderá con su correspondiente secuencia de imágenes capturadas con la cámara TOF.

El modelo cilíndrico de mano se ha programado en C++ mediante unas clases ya

predefinidas de la libreía Open Inventor1 bajo el entorno de programación KDevelop, y

teniendo previamente instaladas las librerías Coin, Qt3 y SoQt.

La interfaz principal de Qt3 consiste en una ventana estándar Examiner Viewer que

permite ver la escena en un espacio tridimensional y es un visualizador de Open Inventor que

tiene ciertas funcionalidades adicionales. Esta interfaz se muestra en la Figura 7.12.

Examiner Viewer permite al usuario:

Rotar la escena: El cursor que aparece por defecto es el de rotación. Se puede rotar la escena simplemente manteniendo pulsado el botón izquierdo del ratón, en cualquier punto de la ventana y arrastrándolo.

Zoom: Se puede hacer zoom rotando la rueda del ratón.

Desplazarse por la escena (panning): Para desplazarse por la escena, se debe mantener pulsada la rueda del ratón mientras éste se mueve.

Centrar la vista: Se puede centrar la vista en un punto concreto de una malla pulsando s, lo que cambiará el cursor del ratón a una cruz, y seleccionando el punto sobre el que se quiere centrar la vista. Centrar la vista en un punto permite que todas las rotaciones de la escena se hagan entorno a ese punto. Además, se podrá aumentar con más zoom la escena entorno al punto seleccionado.

Cambiar el estilo de visualización: La ventana Examiner Viewer permite visualizar la geometría de formas diferentes. Para ello, se debe pulsar el botón derecho del ratón en un punto cualquiera de la escena. Aparecerá un menú contextual en el que se pueden seleccionar diferentes estilos de visualización y animación, entre otras opciones.

1 http://doc.coin3d.org/Coin-3/annotated.html

Page 57: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

60

Figura 7.12: Ventana de visualización tridimensional Examiner Viewer de la librería

Coin3D/Open Inventor.

Hay que destacar que el modelo de articulaciones con bandas elásticas no ha sido

aplicado, ya que no es necesario definir las restricciones a la hora de representar la

reproducción 3D. Tan solo aplicando la posición y la orientación de cada transformación al

modelo de mano, es suficiente para visualizar la misma animación observada en los vídeos de

extracción de datos.

Para desarrollar el modelo de mano en 3D y visualizar su animación se ha seguido una

jerarquía en árbol, donde la palma es la ráiz y los dedos son los hijos, y se han utilizado las

siguientes clases:

SoQt: Crea una plataforma cruzada y permite que la escena gráfica de Coin sea renderizada

en la GUI de Qt.

SoQtExaminerViewer: Es un tipo de visor que permite desplazarse por la escena, rotar o

hacer zoom con el ratón o el teclado.

SoBaseColor: Necesario para establecer el color del material.

Page 58: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

61

SoCylinder: Inserta un cilindro en la escena y permite renderizarlo.

SoCube: Inserta un cubo en la escena y permite renderizarlo.

SoSphere: Inserta una esfera en la escena y permite renderizarla.

SoSeparator: Mantiene los atributos de los nodos hijos y los aisla de las traslaciones de

otras partes de la escena.

SoTranslation: Especifica traslaciones en X, o en Y, o en Z.

SoRotationXYZ: Especifica rotaciones en X, o en Y, o en Z.

SoTimerSensor: Permite que una tarea se ejecute en un intervalo de tiempo determinado.

Por ejemplo, que las rotaciones y traslaciones de la mano entera o de algunos dedos se

apliquen cada dos segundos.

Finalmente, hay que destacar que a la hora de aplicar las rotaciones, la librería Coin los

pide en ángulos de Euler para cada eje de rotación en particular, y por tanto, la visualización de

la rotación conjunta es el resultado de aplicar las tres rotaciones separadamente según el

orden elegido por el usuario. El código de esta etapa figura en el anexo A2 y su visualización en

el anexo A5.

Page 59: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

62

PARTE III Resultados, conclusiones

y trabajo futuro

Page 60: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

63

Capítulo 8

RESULTADOS EXPERIMENTALES

A partir de la información de profundidad que se ha extraído de la cámara ToF y

mediante un algoritmo implementado en Matlab, se muestran los resultados de los puntos

extraídos después de aplicar las etapas de adquisición, reducción, segmentación de puntos e

ICP a 4 experimentos. El resultado final de aplicar el algoritmo, son diferentes secuencias de

nubes de puntos que representan una mano realizando diferentes gestos, y unas matrices

homogéneas que indican la traslación Tx, Ty, Tz y los ángulos de giro Rx, Ry, Rz de los puntos

de una nube hacia la siguiente. De este modo, comprobamos empíricamente los DOF de cada

articulación.

Las variables globales que se han aplicado a cada uno de los experimentos que

representan a cada gesto, son, el número de puntos vecinos que definen un plano, NNN = 9; el

ángulo máximo que admite las componentes normales de cada plano, maxAngle = 45°; el

número máximo de iteraciones que realiza el algoritmo para poner en correspondencia una

nube de puntos con la siguiente, maxIter = 1000; y finalmente, el umbral para que el algoritmo

salga del bucle, errorThreshold = 0.000001.

Finalmente, se aplican las matrices homogéneas de cada experimento al modelo

cilíndrico de mano descrito en el apartado 7.7, para reproducir así la misma animación

obtenida con los puntos extraídos de la cámara y ver si la comparación es plausible.

Previamente a aplicar las matrices al modelo virtual de mano, se comprueba que las

transformaciones sean correctas, mediante la validación de los datos extraídos.

En el Anexo A1 se adjuntan los resultados numéricos de la extracción de datos en cada

experimento tras finalizar el algoritmo; en el Anexo A2 se adjunta el código de las etapas del

algoritmo; en el Anexo A3 se adjuntan unas colecciones de vídeos que representan la

secuencia de las nubes de puntos resultantes de cada experimento tras finalizar el algoritmo;

en el Anexo A4, la colección de vídeos de la validación de los datos extraídos en cada

experimento, y su reproducción 3D en el Anexo A5.

Page 61: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

64

8.1. EXPERIMENTO 1

En este experimento, se toman 14 imágenes con la SR-3000 que muestran cómo la mano se inclina hacia adelante y hacia atrás. A lo largo de la secuencia, se aprecia un alargamiento y una acortación de la mano a medida que se va inclinando en ambos sentidos debido al efecto proyectivo. Una cámara en 2D no sabría interpretar esta semejanza en la proyección, y por tanto, este experimento tiene la finalidad de obtener ventaja de los datos de profundidad que proporciona la cámara TOF para solucionar esta incerteza. Posteriormente, se obtienen las pequeñas variaciones de movimiento (transformaciones) a partir de una estructura de datos RotMaVert.data considerando toda la nube de puntos que forman la mano, como un único objeto rígido. El tiempo total de ejecución del algoritmo para este experimento es de 102.73 segundos y los resultados numéricos de las transformaciones de este experimento se muestran en el anexo A1, y su visualización en los anexos A3 y A5. A continuación se detallan los ajustes de la cámara y de las variables locales para este

experimento:

Ajustes de los parámetros de la cámara:

Distancia mínima de la mano respecto a la cámara (cm)

Integration Time

Amplitude Threshold

Display Settings

Visualization

32 Auto 1215 Perspective Point list; Color

Ajuste de los parámetros en MATLAB:

Número de imágen

Reducción de puntos por encima de los ejes X,Y, Z

Reducción de puntos por debajo de los ejes X, Y, Z

uSamp mFilt

1 [-0.1 -0.10 0.4298] [0.15 0.1 0.5] 0.04 0

2 [-0.1 -0.099 0.3] [0.15 0.1 0.5] 0.04 0

3 [-0.1 -0.10 0.3783] [0.15 0.1 0.5] 0.04 0

4 [-0.1 -0.10 0.3574] [0.15 0.1 0.5] 0.04 0

5 [-0.1 -0.104 0.3] [0.15 0.1 0.5] 0.04 0

6 [-0.1 -0.1065 0.3] [0.15 0.1 0.5] 0.04 0

7 [-0.1 -0.104 0.3375] [0.15 0.1 0.5] 0.04 0

8 [-0.1 -0.099 0.15] [0.15 0.1 0.5] 0.04 0

9 [-0.1 -0.0985 0.35] [0.15 0.1 0.5] 0.04 0

10 [-0.1 -0.0985 0.40] [0.15 0.1 0.5] 0.04 0

11 [-0.1 -0.08858 0.38] [0.15 0.1 0.5] 0.04 0

12 [-0.1 -0.08664 0.36] [0.15 0.1 0.5] 0.04 0

13 [-0.1 -0.091 0.34] [0.15 0.1 0.5] 0.04 0

14 [-0.1 -0.08847 0.32] [0.15 0.1 0.5] 0.04 0

Page 62: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

65

En la Figura 8.1 se aprecia en una secuencia de imágenes clave, que el movimiento dominante de la mano es la rotación en el eje X. En la columna izquierda aparecen las nubes de puntos resultantes de aplicar el algoritmo, y en la columna derecha, las imágenes resulantes de reproducir las transformaciones obtenidas del algoritmo, al modelo geométrico de mano en 3D. El estado inicial de este gesto (imagen 1) comienza con los dedos estirados y separados, y la mano en posición vertical y paralela al plano de imagen de la cámara. Luego la mano se va inclinando hacia adelante, en el sentido positivo de rotación en el eje X, según la regla de la mano derecha, hasta llegar al valor máximo de su inclinación (imagen 6). Desde ahí, la mano comienza a inclinarse hacia atrás, en el sentido negativo de rotación según la misma regla, pasando por su estado inicial (imagen 10) y continuando con su inclinación hasta llegar a su valor minimo (imagen 14). A pesar de que se ha procurado mantener la palma de la mano lo más paralela posible al sensor de la cámara, se aprecian unas rotaciones en los ejes Y y Z prácticamente negligibles mientras se ha ido inclinando la palma hacia adelante y hacia atrás.

Imagen 1 Transformación 0 (Estado inicial)

Imagen 6 Transformación 5

Page 63: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

66

Imagen 10 Transformación 9

Imagen 14 Transformación 13

Figura 8.1: Visualización del movimiento de la mano hacia adelante y hacia atrás. En la

columna izquierda se ven las nubes de puntos codificadas por colores en función de la

distancia de la mano al sensor de la cámara. En la columna derecha, aparecen las imágenes

transformadas de una mano modelada con librerías gráficas en 3D.

Page 64: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

67

8.2. EXPERIMENTO 2

En este experimento, se toman 15 imágenes con la SR-3000 que muestran como la

mano da una vuelta prácticamente completa y, se demuestra que es posible representar los 6

DOF de la muñeca, tal y como aparece en la Figura 8.2. Las 14 transformaciones se aplican a

partir de una estructura de datos RotMuneca.data considerando que la nube de puntos

pertenecientes a toda la mano es un objeto rígido. El tiempo total de ejecución del algoritmo

para este experimento es de 148.41 segundos y los resultados numéricos de las

transformaciones de este experimento se muestran en el anexo A1, y su visualización en los

anexos A3 y A5.

Figura 8.2: Representación de 6 DOF para la muñeca.

A continuación se detallan los ajustes de la cámara y de las variables locales para este

experimento:

Ajustes de los parámetros de la cámara:

Distancia mínima de la mano respecto a la cámara (cm)

Integration Time

Amplitude Threshold

Display Settings

Visualization

30 Auto 1023 Perspective Point list; Color

Ajuste de los parámetros en MATLAB:

Número de imágen

Reducción de puntos por encima de los ejes X, Y, Z

Reducción de puntos por debajo de los ejes X, Y, Z

uSamp mFilt

1 [0.17 0.085 0.54] [-0.1 -0.108 0.30] 0.003 1

2 [0.17 0.085 0.523] [-0.1 -0.108 0.30] 0.003 1

3 [0.17 0.085 0.5048] [-0.11 -0.1076 0.30] 0.003 1

4 [0.17 0.085 0.477] [-0.12 -0.107 0.30] 0.003 1

5 [0.17 0.085 0.46] [-0.1 -0.105 0.30] 0.003 1

6 [0.17 0.085 0.44] [-0.1 -0.09857 0.36] 0.003 1

7 [0.17 0.085 0.43] [-0.1 -0.098 0.33] 0.003 1

8 [0.17 0.085 0.415] [-0.1 -0.098 0.33] 0.003 1

Page 65: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

68

9 [0.17 0.085 0.413] [-0.1 -0.095 0.305] 0.003 1

10 [-0.1 -0.0985 0.40] [-0.1 -0.08498 0.305] 0.003 1

11 [0.17 0.085 0.425] [-0.1 -0.080 0.30] 0.003 1

12 [0.17 0.085 0.43] [-0.1 -0.07711 0.30] 0.003 1

13 [0.17 0.085 0.451] [-0.1 -0.074 0.30] 0.003 1

14 [0.17 0.085 0.495] [-0.1 -0.074 0.30] 0.003 1

15 [0.17 0.085 0.511] [-0.1 -0.062 0.30] 0.003 1

En la Figura 8.3 se aprecia en una secuencia de imágenes clave, que el movimiento dominante de la mano es la rotación de la muñeca de la mano en los ejes X, Y y Z. En la columna izquierda aparecen las nubes de puntos resultantes de aplicar el algoritmo, y en la columna derecha, las imágenes resulantes de reproducir las transformaciones obtenidas del algoritmo, al modelo geométrico de mano en 3D. El estado inicial de este gesto (imagen 1) comienza con los dedos estirados y separados, y la mano posicionada en el “noroeste” (rotada positivamente según la regla de la mano derecha en el eje Z, y negativamente en los ejes X e Y). Luego la mano se va inclinando hacial el “oeste” rotando positivamente en los ejes X y Z , hasta llegar al valor máximo de su giro (imagen 5). Desde ahí, la mano comienza a girar a la derecha y un poco hacia adelante, es decir, en el sentido negativo de rotación del eje Z según la regla de la mano derecha, y un poco en el sentido positivo del eje Y, pasando por la imagen 10, hasta apuntar al “este”. Finalmente, continúa el giro con la rotación negativa en el eje X hasta llegar al final de la vuelta (imagen 15).

Page 66: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

69

Imagen 1 Transformación 0 (Estado inicial)

Imagen 5 Transformación 4

Imagen 8 Transformación 7

Page 67: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

70

Imagen 10 Transformación 9

Imagen 13 Transformación 12

Imagen 15 Transformación 14

Figura 8.3: Visualización del movimiento de la mano dando una vuelta casi completa. En la

columna izquierda se ven las nubes de puntos codificadas por colores en función de la

distancia de la mano al sensor de la cámara. En la columna derecha, aparecen las imágenes

transformadas de una mano modelada con librerías gráficas en 3D.

Page 68: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

71

8.3. EXPERIMENTO 3

En este experimento, se toman 26 imágenes con la SR-3000 que muestran el

movimiento de abducción/adducción y la oposición del pulgar. Las 25 transformaciones se

aplican a partir de una estructura de datos Pulgar.data obtenida con los puntos pertenecientes

sólo al pulgar de la mano, y se demuestra que es posible representar 2 DOF de la articulación

carpo meta carpo (CMC) y 2 DOF de la trapecio meta carpo (TM): 1 DOF para la

abducción/adducción y 1 DOF para la oposición, tal y como aparece en la Figura 8.4. El tiempo

total de ejecución del algoritmo para este experimento es de 34.32 segundos y los resultados

numéricos de las transformaciones de este experimento se muestran en el anexo A1, y su

visualización en los anexos A3 y A5.

Figura 8.4: Representación de 2 DOF para las articulaciones CMC y TM.

A continuación se detallan los ajustes de la cámara y de las variables locales para este

experimento:

Ajustes de los parámetros de la cámara:

Distancia mínima de la mano respecto a la cámara (cm)

Integration Time

Amplitude Threshold

Display Settings

Visualization

38 Auto 975 Perspective Point list; Color

Ajuste de los parámetros en MATLAB:

Número de imágenes

Reducción de puntos por encima de los ejes X, Y, Z

Reducción de puntos por debajo de los ejes X, Y, Z

uSamp mFilt

26 [0.09 0.09 0.5] [-0.14 -0.09 0.35] 0.00 1

Page 69: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

72

En la Figura 8.5 se aprecia en una secuencia de imágenes clave, que el movimiento dominante de la mano es la rotación del pulgar en los ejes Y y Z. En la columna izquierda aparecen las nubes de puntos resultantes de aplicar el algoritmo, y en la columna derecha, las imágenes resulantes de reproducir las transformaciones obtenidas del algoritmo, al modelo geométrico de mano en 3D. El estado inicial de este gesto (imagen 1) comienza con el pulgar pegado a la mano, y el resto de la mano estática y en posición vertical y paralela al plano de imagen de la cámara. Luego el pulgar se va inclinando hacia la derecha, es decir, rota en el sentido positivo del eje Z, hasta llegar al valor máximo de su inclinación (imagen 8). Luego, desde la imagen 9, el pulgar comienza a inclinarse hacia la izquierda, es decir, rota negativamente en el eje Y, pasando por la imagen 13, hasta llegar a su valor mínimo (imagen 17). A partir de la imagen 18, el pulgar vuelve a hacer el mismo recorrido pero en sentido inverso, rotando positivamente en el eje Y hasta su valor máximo (imagen 23), y finalmente, regrasando a su estado inicial (Imagen 26).

Imagen 1 Transformación 0 (Estado inicial)

Imagen 8 Transformación 7

Page 70: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

73

Imagen 9 Transformación 8

Imagen 13 Transformación 12

Imagen 17 Transformación 16

Page 71: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

74

Imagen 18 Transformación 17

Imagen 23 Transformación 22

Imagen 26 Transformación 25

Figura 8.5: Visualización de los movimientos de abducción/adducción y oposición del pulgar.

En la columna izquierda se ven las nubes de puntos codificadas por colores en función de la

distancia de la mano al sensor de la cámara. En la columna derecha, aparecen las imágenes

transformadas de una mano modelada con librerías gráficas en 3D.

Page 72: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

75

8.4. EXPERIMENTO 4

En este experimento, se toman 16 imágenes con la SR-3000 que muestran el

movimiento de abducción y addución del dedo medio e índice. Las transformaciones de los

dedos medio e índice se aplican a partir de dos estructuras de datos diferenciadas

Falange1.data y Falange2.data obtenidas con los puntos pertenecientes a los dedos medio e

índice respectivamente, y se demuestra que es posible representar 1 DOF de la articulación

metacarpofalange (MCP): la abducción y la adducción para los dedos índice y medio, tal y

como aparece en la Figura 8.6. El tiempo total de ejecución del algoritmo para este

experimento es de 42.21 segundos y los resultados numéricos de las transformaciones de este

experimento se muestran en el anexo A1, y su visualización en los anexos A3 y A5.

Figura 8.6: Representación de 1 DOF para la articulación MCP.

A continuación se detallan los ajustes de la cámara y de las variables locales para este

experimento:

Ajustes de los parámetros de la cámara:

Distancia mínima de la mano respecto a la cámara (cm)

Integration Time

Amplitude Threshold

Display Settings

Visualization

31 Auto 1500 Perspective Point list; Color

Ajuste de los parámetros en MATLAB:

Número de imágenes

Reducción de puntos por encima de los ejes X, Y, Z

Reducción de puntos por debajo de los ejes X, Y, Z

uSamp mFilt

16 [0.1 0.09 0.5] [-0.1 -0.08 0.3] 0.003 0

Page 73: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

76

En la Figura 8.7 se aprecia en una secuencia de imágenes clave, que el movimiento dominante de la mano es la rotación de los dedos medio e índice en el eje Z. En la columna izquierda aparecen las nubes de puntos resultantes de aplicar el algoritmo, y en la columna derecha, las imágenes resulantes de reproducir las transformaciones obtenidas del algoritmo, al modelo geométrico de mano en 3D. El estado inicial de este gesto (imagen 1) comienza con los dedos índice y medio estirados y pegados, y la mano en posición vertical y paralela al plano de imagen de la cámara. Luego el dedo índice se va inclinando hacia la derecha, es decir, va rotando en el sentido positivo del eje Z, pasando por la imagen 4, hasta llegar al valor máximo de su inclinación (imagen 7). Paralelamente, el dedo medio se va inclinando hacia la izquierda, es decir, va rotando en el sentido positivo del eje Z, tambié pasando por la imagen 4, hasta llegar al valor máximo de inclinación (imagen 7). Desde ahí, ambos dedos vuelven a hacer el mismo recorrido pero en sentido inverso, pasando por la imagen 11, hasta llegar al estado inicial (imagen 16).

Imagen 1 Transformación 0 (Estado inicial)

Imagen 4 Transformación 3

Page 74: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

77

Imagen 7

Transformación 6

Imagen 11

Transformación 10

Imagen 16

Transformación 15

Figura 8.7: Visualización del movimiento de los dedos índice y medio hacia los lados. En la

columna izquierda se ven las nubes de puntos codificadas por colores en función de la

distancia de la mano al sensor de la cámara. En la columna derecha, aparecen las imágenes

transformadas de una mano modelada con librerías gráficas en 3D.

Page 75: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

78

Capítulo 9

CONCLUSIONES Y TRABAJO FUTURO

En esta sección del documento se presentan las conclusiones alcanzadas tras la

finalización del proyecto en base a cada uno de los objetivos establecidos inicialmente.

A continuación se recuerdan los objetivos planificados para el proyecto:

Evaluar si la cámara de tiempo de vuelo es una alternativa válida para la detección de las

manos como dispositivo de extracción de información 3D.

Comprobar si los resultados obtenidos de aplicar el algoritmo que se propondrá para el

procesamiento de los datos 3D son válidos para poder ser aplicados en futuras mejoras

para el reconocimiento de los gestos manuales.

La implementación de un código de demostración en Matlab que pone en correspondencia

dos imágenes consecutivas parcialmente superpuestas a partir de una secuencia de nubes

de puntos captadas con la cámara.

Visualización de la secuencia de movimiento en un modelo geométrico de mano

implementado mediante librerías gráficas 3D a partir de las transformaciones obtenidas de

las nubes de puntos.

Las conclusiones a remarcar después de aplicar los experimentos son las siguientes:

En el capítulo anterior se han mostrado los resultados experimentales de aplicar las etapas

del algoritmo a diferentes nubes de puntos a partir de la información de profundidad

proporcionada por la cámara de tiempo de vuelo SR-3000. En la Figura 9.1 se puede

apreciar de modo esquemático el resultado de aplicar el algoritmo ICP entre nubes de

puntos consecutivas. Una vez se han aplicado las transformaciones obtenidas al modelo de

mano en 3D, se ve una alta similitud en el movimiento si se compara la colección de vídeos

de la reproducción 3D a la colección de vídeos de extracción de datos.

En cuanto a la información de profundidad que proporciona la cámara SR-3000, a pesar de

añadir ruido y operar a baja resolución, es más precisa y proporciona información menos

corrupta en un intervalo de distancia entre 30 y 50 cm. El número de puntos que da la

cámara en ese intervalo, permite al algoritmo ICP medir con precisión las pequeñas

variaciones de movimiento de una imagen respecto a la siguiente.

Page 76: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

79

En cuanto al algoritmo implementado, en el capítulo 8 se han puesto en correspondencia

las nubes de puntos consecutivas de los experimentos 1 y 2 considerando las imágenes

como un único cuerpo rígido, y su gran cantidad de puntos incrementan notablemente el

tiempo de ejecución de la etapa de ICP. En los experimentos 3 y 4, al segmentar

manualmente el pulgar y los dedos índice y medio del resto de la mano, como estructuras

de datos diferenciadas, el número de puntos se ha reducido considerablemente y, por

tanto, el tiempo de ejecución de la eatapa de ICP es bastante menor.

En cuanto a las oclusiones, a pesar de que la cámara proporciona información de

profundidad, sólo muestra y captura la malla de la mano visible a ella. Esto quiere decir

que si la mano del usuario está de frente a la cámara, la parte posterior de la mano queda

eclipsada por la parte frontal, o bien, cuando una parte de la mano quede eclipsada por los

dedos. Una posible solución es asumir la restricción de que los gestos de la mano no

pueden adoptar algunas posturas en que los dedos queden fuera del plano de imagen. Por

lo tanto, al igual que las cámaras 2D, la cámara de profundidad no nos soluciona el

problema de las oclusiones para posturas en que los dedos queden fuera del plano de

imagen.

Una posible solución para crear una malla tridimensional de la mano, requiere de al menos

dos cámaras TOF conectadas y enfrentadas donde la escena queda en medio de ambos

planos, o bien, situar cada una en los ejes Z y X repectivamente. Así, en el eje X se

capturarían los puntos que quedaran eclipsados por las oclusiones producidas en el eje Z.

Cada cámara creará su versión de la mano y deberá existir un paso final para unir las dos

mitades o las dos perspectivas en un único modelo tridimensional. Finalmente, otro

motivo que anima para añadir una cámara suplementaria es para captar dos manos a la

vez. Si queremos visualizar las dos manos en el intervalo de distancias de 30 a 50 cm en

profundidad, tal y como se recomienda en el apartado 4.1, la baja resolución de la SR-3000

obliga al usuario a mantenerlas juntas, restringiendo el movimiento de las dos manos.

La segmentación interactiva de las falanges es una de las etapas más difíciles por el coste

computacional que conlleva. Para paliar este problema se propone aplicar la estrategia de

tracking descrita en [11], sustituyendo el modelo de cuerpo humano por el modelo de

mano 3D descrito en el capítulo 5. En cada parte del modelo, se definirían los límites de las

cajas envolventes, para luego asignar los puntos de la nube de cada parte de la mano a su

correspondiente parte del modelo 3D. De esta manera se podría hacer una segmentación

automática.

Para comprobar si los resultados obtenidos de aplicar el algoritmo que se ha propuesto

para el procesamiento de los datos 3D, son válidos para poder ser aplicados en futuras

mejoras, se propone aplicar una técnica de tracking para reconocer los gestos manuales. La

estrategia de tracking sirve para medir en tiempo real las pequeñas variaciones de la posición

de la mano a medida que se va moviendo delante de la cámara, por tanto, se establecería una

correspondencia instantánea entre la nube de puntos generada por la cámara de profundidad

y el modelo de mano 3D que aparace por pantalla. Para buscar las correspondencias se

Page 77: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

80

calcularían las distancias entre las nubes de puntos y las superficies del modelo de mano en

3D, aplicando ICP de punto a superficie. Así, si vamos moviendo nuestra mano delante de la

cámara, veríamos por pantalla como el modelo de mano en 3D va adoptando los mismos

gestos, dando lugar a una autocopia virtual de la mano. Esta idea se aprecia en la Figura 9.2.

El primer paso, sería programar una GUI donde se integrararía en un mismo sistema, la

adquisición de las imágenes captadas con las cámaras ToF y color y su correspondiente

visualización en tiempo real; el modelo de mano cilíndrico en 3D; y una base de datos de

símbolos para interpretar los gestos de la mano reconocidos como símbolos.

El siguiente paso sería detectar la posición de la mano y la configuración de los dedos.

Para ello primero habrá que definir las restricciones del movimiento de la mano aplicando el

modelo de articulación de bandas elásticas al modelo cilíndrico de mano descrito en el capítulo

5, mediante las clases y atributos ya predefinidos de la librería Coin 3D. Luego habrá que

inicializar el tracking, es decir, al principio el modelo virtual de mano en 3D estará quieto y

nuestra mano se irá moviendo ante el sensor de la cámara 3D para ajustar la nube de puntos

de la mano a los cilindros del modelo mediante las distancias calculadas. Una vez todos los

cilindros se hayan encontrado entonces comenzaría el tracking, y nos daría unos ángulos entre

los diferentes cilindros que forman la mano mediante ICP.

Finalmente, el último paso sería reconocer los símbolos o patrones comparando la

posición de las manos obtenida con la cámara 3D, con una base de datos de símbolos. Para

encontrar a qué signo corresponde la posición actual se propone que en cada signo la mano se

tiene que parar un rato. Así sabremos que se trata de un signo y no del movimiento de hacer

el signo (cuando se pasa de un signo a otro). Luego, para buscar de qué signo se puede tratar,

se propone almacenar sólo las posiciones relativas de los cilindros para codificar cada símbolo,

así la búsqueda en la base de datos es más simple ya que sólo se buscan relaciones

geométricas entre cilindros.

Page 78: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

81

Figura 9.1: Algoritmo implementado.

Figura 9.2: Modelo de tracking.

NUBE DE PUNTOS 1 NUBE DE PUNTOS 2

TRANSFORMACIÓN 1

NUBE DE PUNTOS 3

TRANSFORMACIÓN 2

NUBE DE PUNTOS n

TRANSFORMACIÓN n

MODELO DE MANO

NUBE DE PUNTOS 1

MODELO TRANSFOR

MADO 1

NUBE DE PUNTOS 2

MODELO TRANSFOR

MADO 2

NUBE DE PUNTOS 3

MODELO TRANSFOR

MADO 3

NUBE DE PUNTOS n

NUBE DE PUNTOS n

ICP 1 ICP 2 ICP 3

3 ICP n

H 1 H 2 H 3 H n

ICP 1 ICP 2 ICP n

H 1 H 2 Hn

Page 79: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

82

PARTE IV Bibliografía

Page 80: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

83

BIBLIOGRAFÍA

[1] S.-C. Sun, C. Rosales, and R. Suárez (2010), "Study of coordinated motions of the human hand for robotic applications”. In: IEEE International Conference on Information and Automation, pp. 776-781. http://iocnet.upc.edu/usuaris/RaulSuarez/papers/icia10-srs.pdf

[2] E. Kollorz, J. Penne, J. Hornegger, and A. Barke, “Gesture recognition with a time-of-flight camera”. In: International Journal of Intelligent Systems Technologies and Applications 5 (2008) No. 3/4 pp.334-343 http://www.pmdtec.com/fileadmin/pmdtec/downloads/publications/pmd_02_gesture_recognition.pdf

[3] M. Flasinski and S. Myslinski, “On the use of graph parsing for recognition of isolated hand postures of Polish Sign Language”. In: Pattern Recognition, vol. 43, no. 6, pp. 2249_2264, 2010. http://www.sciencedirect.com/science?_ob=MImg&_imagekey=B6V14-4Y5GXTV-1-1D&_cdi=5664&_user=1517299&_pii=S0031320310000361&_origin=gateway&_coverDate=06%2F30%2F2010&_sk=999569993&view=c&wchp=dGLzVzz-zSkzS&md5=abfd3a0e9094cdf8a1e56b06f3171fb5&ie=/sdarticle.pdf

[4] N. Tanibata, N. Shimada, and Y. Shirai, “Extraction of hand features for recognition of sign language words”. In: International Conference on Vision Interface, 2002, pp. 391_398. http://www.cipprs.org/vi2002/pdf/s7-7.pdf

[5] Pia Breuer, Christian Eckes, and Stefan Müller, “Hand gesture recognition with a novel IR time-of-flight range camera - A pilot study”. In: Proceedings of the 3rd International Conference on Computer Vision/Computer Graphics, volume 4418, pages 247–260, Rocquencourt, Mar. 2007. http://www.uni-koblenz.de/~cg/Veroeffentlichungen/BreuerEckesMueller.pdf

[6] B. Stenger, P.R.S. Mendonca, R. Cipolla, “Model-based 3D tracking of an articulated hand”. In: IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 02 (2001) 310. http://mi.eng.cam.ac.uk/reports/svr-ftp/stenger_cvpr01.pdf

[7] Ali Erol, George Bebis, Mircea Nicolescu, Richard D. Boyle, Xander Twombly, “Vision-based hand pose estimation: A review”. In: Computer Vision and Image Understanding In Special Issue on Vision for Human-Computer Interaction, Vol. 108, No. 1-2. (October 2007), pp. 52-73. http://www.cs.unr.edu/~bebis/handposerev.pdf

[8] T. R. Stephan Hussmann and B. Hagebeuker, “A Performance Review of 3D TOF Vision Systems in Comparison to Stereo Vision Systems”. In: Stereo Vision, Asim Bhatti (Ed.), 2008. http://www.pmdtec.com/fileadmin/pmdtec/downloads/documentation/White_Paper_3D_TOFvs.Stereo.pdf

Page 81: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

84

[9] F. Yuan, A. Swadzba, R. Philippsen, O. Engin, M. Hanheide, and S. Wachsmuth. “Laser-based Navigation Enhanced with 3D Time-of-Flight Data”. In: Proceedings of the IEEE International Conference on Robotics and Automation, pages 2844–2850, Kobe, May 2009. http://aiweb.techfak.uni-bielefeld.de/files/ICRA09_0917.pdf

[10] Thierry Oggier, Bernhard Büttgen, Felix Lustenberger. “SwissRanger SR3000 and First Experiences based on Miniaturized 3D-TOF Cameras”. In: Swiss Center for Electronics and Microtechnology, CSEM, Badenerstrasse 569, 8048 Zurich, SWITZERLAND. http://www.j-clavis.co.jp/pdf/h-4.pdf

[11] S. Knoop, S. Vacek, K. Steinbach and R. Dillmann, “Sensor fusion for model based 3D tracking”. In: Proceedings of the IEEE International Conference on Multi Sensor Fusion and Integration (MFI), 2006. http://i61www.ira.uka.de/dilepis2/data/File/Publications/MFI-Knoop.pdf

[12] Ali Erol, George Bebis, Mircea Nicolescu, Richard D. Boyle, Xander Twombly, “A Review on Vision-Based Full DOF Hand Motion Estimation”. In: Computer Vision and Pattern Recognition, 2005 IEEE Computer Society Conference on. 07/2005. http://www.cs.unr.edu/~bebis/vhci05.pdf

[13] M. Bray, E. Koller-Meier, L.V. Gool, “Smart particle filtering for 3D hand tracking”. In: Sixth IEEE International Conference on Automatic Face and Gesture Recognition, IEEE Computer Society, Los Alamitos, CA, USA, 2004, p. 675. http://www.koller-meier.ch/esther/eth_biwi_00295.pdf

[14] M. Bray, E. Koller-Meier, P. Müller, L.V. Gool, N.N. Schraudolph, “3D Hand tracking by

rapid stochastic gradient descent using a skinning model”. In: First European Conference

on Visual Media Production, London, 2004, pp. 59–68.

http://www.koller-meier.ch/esther/eth_biwi_00288.pdf

[15] K. Nirei, H. Saito, M. Mochimaru, S. Ozawa, “Human hand tracking from binocular

image sequences”. In: 22th International Conference on Industrial Electronics, Control, and Instrumentation, 1996, pp.297–302. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.6815

[16] J. J. Kuch and T. S. Huang. “Human computer interaction via the human hand: A hand model”.In: Twenty-Eighty Asilomar Conference on Signal, Systems, and Computers, pages 1252– 1256, 1994. http://ieeexplore.ieee.org/iel2/3310/9942/00471659.pdf

[17] H. Hu, X. Gao, J. Li, J. Wang, H. Liu, “Calibrating human hand for teleoperating the hit/dlr hand”, In: IEEE International Conference on Robotics and Automation, vol. 5, 2004, pp. 4571–4576 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.87.396

[18] I. Albrecht, J. Haber, H.-P. Seidel, “Construction and animation of anatomically based human hand models”. In: ACM SIGGRAPH/ Eurographics Symposium on Computer Animation, Eurographics Association, 2003, pp. 98–109. http://www.mpi-inf.mpg.de/resources/VirtualHumans/publ/sca2003.pdf

Page 82: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

85

[19] J.J. Kuch, T.S. Huang, “Human computer interaction via the human hand: a hand model”.In: Twenty-Eighty Asilomar Conference on Signal, Systems, and Computers, 1994, pp. 1252– 1256. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=471659

[20] Paul J. Besl and Neil D. McKay, “A method for registration of 3D shapes”. In: IEEE Transactions on Pattern Analysis and Machince Intelligence, 14(2):239–256, 1992. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=121791&tag=1

[21] R. Valencia, E.H. Teniente, E. Trulls Fortuny, J. Andrade-Cetto. “3D mapping for urban service robots”. In: The 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems, October 11-15, 2009 St. Louis, USA http://upcommons.upc.edu/e-prints/handle/2117/6935

[22] Greg Turk and Marc Levoy. “Zippered polygon meshes from range images”. In: Computer Graphics, SIGGRAPH 1994 Proceedings, pages 311–318. ACM Press, New York, NY, 1994. https://graphics.stanford.edu/papers/zipper/zipper.pdf

[23] Kari Pulli, “Multiview registration for large datasets”. In: International Conference on 3D Digital Imaging and Modeling, pages 160–168, Ottawa, Canada, 1999. http://graphics.stanford.edu/~kapu/3dim99.pdf

[24] Marcus Gross, Hanspeter Pfister, “Point-Based Graphics (The Morgan Kaufmann Series in Computer Graphics)”, Elsevier, 2007. http://www.elsevier.com/wps/find/bookdescription.cws_home/710117/description

[25] Juan Andrade-Cetto, Michael Villamizar. “Object recognition”. J. G. Webster, editor, Wiley Encyclopedia of Electrical and Electronics Engineering, pages 1–28. John Wiley & Sons, New York, 2007. http://digital.csic.es/bitstream/10261/30015/1/doc1.pdf

[26] E.H. Teniente, J. Andrade-Cetto. “Registration of 3D point clouds for urban robot mapping”. In: Technical Report IRI-TR-08-06, Institut de Robòtica i Informàtica Industrial, CSIC-UPC, 2008. http://digital.csic.es/handle/10261/30058

[27] L. Biota, L. Montesano, J. Minguez, F. Lamiraux, “Toward a metric-based scan matching algorithm for displacement estimation in 3D workspaces”, In: Proc. IEEE Int. Conf. Robot. Automat., Orlando, May 2006, pp. 4330–4332. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.59.798&rep=rep1&type=pdf

[28] “Time-of-flight camera”, In: Wikipedia, the free enciclopedia. http://en.wikipedia.org/wiki/Time-of-flight_camera

Page 83: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

86

ANEXO A1: RESULTADOS NUMÉRICOS DE EXTRACCIÓN DE DATOS

EXPERIMENTO 1

Imagen 1 Número de puntos después de limitar la

distancia de los ejes: 3876

Número de puntos después del sampling: 2730

Imagen 2 Número de puntos después de limitar la

distancia de los ejes: 4033

Número de puntos después del sampling: 2736

Resultado de la Matriz Homogénea de la Transformación 1:

Traslación de puntos en metros: Tx: -0.0030 Ty: 0.0644 Tz: 0.0241

Ángulos de Euler de rotación en grados:

Rx: 7.8669 Ry: 0.4471 Rz: -0.4249

Ángulos de Euler de rotación en radianes: Rx: 0.1458 Ry: 0.0065 Rz: -0.0113

Page 84: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

87

Imagen 2 Número de puntos después de limitar la

distancia de los ejes: 4033

Número de puntos después del sampling: 2736

Imagen 3 Número de puntos después de limitar la

distancia de los ejes: 4140

Número de puntos después del sampling: 2738

Resultado de la Matriz Homogénea de la Transformación 2:

Traslación de puntos en metros: Tx: 0.0085 Ty: 0.0551 Tz: 0.0188

Ángulos de Euler de rotación en grados:

Rx: 7.1704 Ry: -1.1298 Rz: -0.8858

Ángulos de Euler de rotación en radianes: Rx: 0.1258 Ry: -0.0144 Rz: -0.0183

Page 85: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

88

Imagen 3 Número de puntos después de limitar la

distancia de los ejes: 4140

Número de puntos después del sampling: 2738

Imagen 4 Número de puntos después de limitar la

distancia de los ejes: 4155

Número de puntos después del sampling: 2679

Resultado de la Matriz Homogénea de la Transformación 3:

Traslación de puntos en metros: Tx: -0.0027 Ty: 0.0532 Tz: 0.0183

Ángulos de Euler de rotación en grados:

Rx: 6.7651 Ry: 0.4691 Rz: -0.8038

Ángulos de Euler de rotación en radianes: Rx: 0.1181 Ry: 0.0082 Rz: -0.0140

Page 86: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

89

Imagen 4 Número de puntos después de limitar la

distancia de los ejes: 4155

Número de puntos después del sampling: 2679

Imagen 5 Número de puntos después de limitar la

distancia de los ejes: 4081

Número de puntos después del sampling: 2601

Resultado de la Matriz Homogénea de la Transformación 4:

Traslación de puntos en metros: Tx: 0.0044 Ty: 0.0385 Tz: 0.0107

Ángulos de Euler de rotación en grados:

Rx: 4.9050 Ry: -0.1441 Rz: -2.2010

Ángulos de Euler de rotación en radianes: Rx: 0.0856 Ry: -0.0025 Rz: -0.0384

Page 87: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

90

Imagen 5 Número de puntos después de limitar la

distancia de los ejes: 4081

Número de puntos después del sampling: 2601

Imagen 6 Número de puntos después de limitar la

distancia de los ejes: 3866

Número de puntos después del sampling: 2360

Resultado de la Matriz Homogénea de la Transformación 5:

Traslación de puntos en metros: Tx: -0.0022 Ty: 0.0741 Tz: 0.0265

Ángulos de Euler de rotación en grados:

Rx: 9.4139 Ry: 0.7772 Rz: -1.6071

Ángulos de Euler de rotación en radianes: Rx: 0.1643 Ry: 0.0136 Rz: -0.0280

Page 88: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

91

Imagen 6 Número de puntos después de limitar la

distancia de los ejes: 3866

Número de puntos después del sampling: 2360

Imagen 7 Número de puntos después de limitar la

distancia de los ejes: 4154

Número de puntos después del sampling: 2621

Resultado de la Matriz Homogénea de la Transformación 6:

Traslación de puntos en metros:

Tx: -0.0068 Ty: -0.0744 Tz: -0.0073

Ángulos de Euler de rotación en grados: Rx: -8.5485 Ry: 0.6263 Rz: 4.3153

Ángulos de Euler de rotación en radianes:

Rx: -0.1492 Ry: 0.0109 Rz: 0.0753

Page 89: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

92

Imagen 7 Número de puntos después de limitar la

distancia de los ejes: 4154

Número de puntos después del sampling: 2621

Imagen 8 Número de puntos después de limitar la

distancia de los ejes: 4136

Número de puntos después del sampling: 2646

Resultado de la Matriz Homogénea de la Transformación 7:

Traslación de puntos en metros:

Tx: -0.0033 Ty: -0.0495 Tz: -0.0077

Ángulos de Euler de rotación en grados: Rx: -5.7364 Ry: 0.2038 Rz: 3.4335

Ángulos de Euler de rotación en radianes:

Rx: -0.1001 Ry: 0.0036 Rz: 0.0599

Page 90: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

93

Imagen 8 Número de puntos después de limitar la

distancia de los ejes: 4136

Número de puntos después del sampling: 2646

Imagen 9 Número de puntos después de limitar la

distancia de los ejes: 3852

Número de puntos después del sampling: 2616

Resultado de la Matriz Homogénea de la Transformación 8:

Traslación de puntos en metros: Tx: 0.0073 Ty: -0.1032 Tz: -0.0155

Ángulos de Euler de rotación en grados:

Rx: -12.7768 Ry: -0.7986 Rz: 0.9192

Ángulos de Euler de rotación en radianes: Rx: -0.2246 Ry: -0.0178 Rz: 0.0205

Page 91: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

94

Imagen 9 Número de puntos después de limitar la

distancia de los ejes: 3852

Número de puntos después del sampling: 2616

Imagen 10 Número de puntos después de limitar la

distancia de los ejes: 3786

Número de puntos después del sampling: 2559

Resultado de la Matriz Homogénea de la Transformación 9:

Traslación de puntos en metros: Tx: 0.0142 Ty: -0.1012 Tz: 0.0038

Ángulos de Euler de rotación en grados:

Rx: -13.8633 Ry: -0.8278 Rz: 0.3331

Ángulos de Euler de rotación en radianes: Rx: -0.2384 Ry: -0.0175 Rz: 0.0026

Page 92: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

95

Imagen 10 Número de puntos después de limitar la

distancia de los ejes: 3786

Número de puntos después del sampling: 2559

Imagen 11 Número de puntos después de limitar la

distancia de los ejes: 3819

Número de puntos después del sampling: 2555

Resultado de la Matriz Homogénea de la Transformación 10:

Traslación de puntos en metros:

Tx: -5.3900e-04 Ty: -0.0716 Tz: 0.0140

Ángulos de Euler de rotación en grados: Rx: -9.1677 Ry: 0.0081 Rz: 2.1745

Ángulos de Euler de rotación en radianes:

Rx: -0.1591 Ry: -0.0028 Rz: 0.0415

Page 93: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

96

Imagen 11 Número de puntos después de limitar la

distancia de los ejes: 3819

Número de puntos después del sampling: 2555

Imagen 12 Número de puntos después de limitar la

distancia de los ejes: 3967

Número de puntos después del sampling: 2563

Resultado de la Matriz Homogénea de la Transformación 11:

Traslación de puntos en metros: Tx: 0.0107 Ty: -0.0472 Tz: 0.0131

Ángulos de Euler de rotación en grados:

Rx: -6.2657 Ry: -1.2586 Rz: 0.2173

Ángulos de Euler de rotación en radianes: Rx: -0.1157 Ry: -0.0257 Rz: 0.0037

Page 94: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

97

Imagen 12 Número de puntos después de limitar la

distancia de los ejes: 3967

Número de puntos después del sampling: 2563

Imagen 13 Número de puntos después de limitar la

distancia de los ejes: 4293

Número de puntos después del sampling: 2623

Resultado de la Matriz Homogénea de la Transformación 12:

Traslación de puntos en metros: Tx: 0.0013 Ty: -0.0392 Tz: 0.0161

Ángulos de Euler de rotación en grados:

Rx: -6.6852 Ry: 0.5900 Rz: 0.0552

Ángulos de Euler de rotación en radianes: Rx: -0.1057 Ry: 0.0084 Rz: -0.0093

Page 95: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

98

Imagen 13 Número de puntos después de limitar la

distancia de los ejes: 4293

Número de puntos después del sampling: 2623

Imagen 14 Número de puntos después de limitar la

distancia de los ejes: 4182

Número de puntos después del sampling: 2561

Resultado de la Matriz Homogénea de la Transformación 13:

Traslación de puntos en metros: Tx: 0.0100 Ty: -0.0413 Tz: 0.0043

Ángulos de Euler de rotación en grados:

Rx: -6.7350 Ry: 0.6485 Rz: -2.9397

Ángulos de Euler de rotación en radianes: Rx: -0.1120 Ry: 0.0025 Rz: -0.0373

Page 96: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

99

EXPERIMENTO 2

Imagen 1 Número de puntos después de limitar la

distancia de los ejes: 2529

Número de puntos después del sampling: 2227

Imagen 2 Número de puntos después de limitar la

distancia de los ejes: 2725

Número de puntos después del sampling: 2386

Resultado de la Matriz Homogénea de la Transformación 1:

Traslación de puntos en metros: Tx: -0.0223 Ty: 0.0104 Tz: 0.0122

Ángulos de Euler de rotación en grados:

Rx: 0.9061 Ry: 4.5442 Rz: -6.3470

Ángulos de Euler de rotación en radianes: Rx: 0.0158 Ry: 0.0793 Rz: -0.1108

Page 97: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

100

Imagen 2 Número de puntos después de limitar la

distancia de los ejes: 2725

Número de puntos después del sampling: 2386

Imagen 3 Número de puntos después de limitar la

distancia de los ejes: 2973

Número de puntos después del sampling: 2557

Resultado de la Matriz Homogénea de la Transformación 2:

Traslación de puntos en metros: Tx: -0.0324 Ty: 0.0355 Tz: 0.0174

Ángulos de Euler de rotación en grados:

Rx: 4.3418 Ry: 5.1436 Rz: -3.5202

Ángulos de Euler de rotación en radianes: Rx: 0.0758 Ry: 0.0898 Rz: -0.0614

Page 98: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

101

Imagen 3 Número de puntos después de limitar la

distancia de los ejes: 2973

Número de puntos después del sampling: 2557

Imagen 4 Número de puntos después de limitar la

distancia de los ejes: 3310

Número de puntos después del sampling: 2786

Resultado de la Matriz Homogénea de la Transformación 3:

Traslación de puntos en metros: Tx: -0.0483 Ty: 0.0719 Tz: 0.0344

Ángulos de Euler de rotación en grados:

Rx: 10.0199 Ry: 5.3641 Rz: 1.5745

Ángulos de Euler de rotación en radianes: Rx: 0.1749 Ry: 0.0936 Rz: 0.0275

Page 99: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

102

Imagen 4 Número de puntos después de limitar la

distancia de los ejes: 3310

Número de puntos después del sampling: 2786

Imagen 5 Número de puntos después de limitar la

distancia de los ejes: 3601

Número de puntos después del sampling: 3016

Resultado de la Matriz Homogénea de la Transformación 4:

Traslación de puntos en metros: Tx: -0.0393 Ty: 0.0622 Tz: 0.0297

Ángulos de Euler de rotación en grados:

Rx: 9.3641 Ry: 3.2002 Rz: 4.8045

Ángulos de Euler de rotación en radianes: Rx: 0.1634 Ry: 0.0559 Rz: 0.0839

Page 100: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

103

Imagen 5 Número de puntos después de limitar la

distancia de los ejes: 3601

Número de puntos después del sampling: 3016

Imagen 6 Número de puntos después de limitar la

distancia de los ejes: 3708

Número de puntos después del sampling: 3048

Resultado de la Matriz Homogénea de la Transformación 5:

Traslación de puntos en metros: Tx: -0.0281 Ty: 0.0673 Tz: 0.0329

Ángulos de Euler de rotación en grados:

Rx: 10.3754 Ry: 1.6136 Rz: 5.9089

Ángulos de Euler de rotación en radianes: Rx: 0.1811 Ry: 0.0282 Rz: 0.1031

Page 101: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

104

Imagen 6 Número de puntos después de limitar la

distancia de los ejes: 3708

Número de puntos después del sampling: 3048

Imagen 7 Número de puntos después de limitar la

distancia de los ejes: 3778

Número de puntos después del sampling: 3058

Resultado de la Matriz Homogénea de la Transformación 6:

Traslación de puntos en metros: Tx: -0.0170 Ty: 0.0261 Tz: 0.0120

Ángulos de Euler de rotación en grados:

Rx: 4.0638 Ry: 1.4547 Rz: 2.3613

Ángulos de Euler de rotación en radianes: Rx: 0.0709 Ry: 0.0254 Rz: 0.0412

Page 102: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

105

Imagen 7 Número de puntos después de limitar la

distancia de los ejes: 3778

Número de puntos después del sampling: 3058

Imagen 8 Número de puntos después de limitar la

distancia de los ejes: 3841

Número de puntos después del sampling: 3039

Resultado de la Matriz Homogénea de la Transformación 7:

Traslación de puntos en metros: Tx: -0.0150 Ty: 0.0499 Tz: 0.0210

Ángulos de Euler de rotación en grados:

Rx: 7.7149 Ry: 0.8994 Rz: 3.5293

Ángulos de Euler de rotación en radianes: Rx: 0.1347 Ry: 0.0157 Rz: 0.0616

Page 103: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

106

Imagen 8 Número de puntos después de limitar la

distancia de los ejes: 3841

Número de puntos después del sampling: 3039

Imagen 9 Número de puntos después de limitar la

distancia de los ejes: 3759

Número de puntos después del sampling: 2915

Resultado de la Matriz Homogénea de la Transformación 8:

Traslación de puntos en metros: Tx: -0.0108 Ty: 0.0574 Tz: 0.0183

Ángulos de Euler de rotación en grados:

Rx: 9.0684 Ry: -0.7991 Rz: 6.8207

Ángulos de Euler de rotación en radianes: Rx: 0.1583 Ry: -0.0139 Rz: 0.1190

Page 104: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

107

Imagen 9 Número de puntos después de limitar la

distancia de los ejes: 3759

Número de puntos después del sampling: 2915

Imagen 10 Número de puntos después de limitar la

distancia de los ejes: 3702

Número de puntos después del sampling: 2941

Resultado de la Matriz Homogénea de la Transformación 9:

Traslación de puntos en metros:

Tx: 9.8783e-04 Ty: -0.0171 Tz: -0.0058

Ángulos de Euler de rotación en grados: Rx: -0.7616 Ry: -2.5713 Rz: 14.0041

Ángulos de Euler de rotación en radianes:

Rx: -0.0133 Ry: -0.0449 Rz: 0.2444

Page 105: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

108

Imagen 10 Número de puntos después de limitar la

distancia de los ejes: 3702

Número de puntos después del sampling: 2941

Imagen 11 Número de puntos después de limitar la

distancia de los ejes: 3773

Número de puntos después del sampling: 3003

Resultado de la Matriz Homogénea de la Transformación 10:

Traslación de puntos en metros:

Tx: -0.0290 Ty: -0.0812 Tz: -0.0045

Ángulos de Euler de rotación en grados: Rx: -9.2554 Ry: 3.2628 Rz: 8.0146

Ángulos de Euler de rotación en radianes:

Rx: -0.1615 Ry: 0.0569 Rz: 0.1399

Page 106: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

109

Imagen 11 Número de puntos después de limitar la

distancia de los ejes: 3773

Número de puntos después del sampling: 3003

Imagen 12 Número de puntos después de limitar la

distancia de los ejes: 3518

Número de puntos después del sampling: 2912

Resultado de la Matriz Homogénea de la Transformación 11:

Traslación de puntos en metros:

Tx: -0.0335 Ty: -0.1057 Tz: -0.0057

Ángulos de Euler de rotación en grados: Rx: -13.3050 Ry: 4.2011 Rz: 2.9652

Ángulos de Euler de rotación en radianes:

Rx: -0.2322 Ry: 0.0733 Rz: 0.0518

Page 107: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

110

Imagen 12 Número de puntos después de limitar la

distancia de los ejes: 3518

Número de puntos después del sampling: 2912

Imagen 13 Número de puntos después de limitar la

distancia de los ejes: 3170

Número de puntos después del sampling: 2638

Resultado de la Matriz Homogénea de la Transformación 12:

Traslación de puntos en metros: Tx: -0.0475 Ty: -0.1005 Tz: 0.0027

Ángulos de Euler de rotación en grados:

Rx: -13.2289 Ry: 6.2220 Rz: 0.0785

Ángulos de Euler de rotación en radianes: Rx: -0.2309 Ry: 0.1086 Rz: 0.0014

Page 108: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

111

Imagen 13 Número de puntos después de limitar la

distancia de los ejes: 3170

Número de puntos después del sampling: 2638

Imagen 14 Número de puntos después de limitar la

distancia de los ejes: 2987

Número de puntos después del sampling: 2547

Resultado de la Matriz Homogénea de la Transformación 13:

Traslación de puntos en metros:

Tx: -0.0386 Ty: -0.0610 Tz: -0.0046

Ángulos de Euler de rotación en grados: Rx: -8.6973 Ry: 4.2742 Rz: -5.0207

Ángulos de Euler de rotación en radianes:

Rx: -0.1518 Ry: 0.0746 Rz: -0.0876

Page 109: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

112

Imagen 14 Número de puntos después de limitar la

distancia de los ejes: 2987

Número de puntos después del sampling: 2547

Imagen 15 Número de puntos después de limitar la

distancia de los ejes: 2539

Número de puntos después del sampling: 2239

Resultado de la Matriz Homogénea de la Transformación 14:

Traslación de puntos en metros:

Tx: -0.0055 Ty: -0.0434 Tz: -0.0144

Ángulos de Euler de rotación en grados: Rx: -6.8863 Ry: 0.9340 Rz: -13.0066

Ángulos de Euler de rotación en radianes:

Rx: -0.1202 Ry: 0.0163 Rz: -0.2270

Page 110: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

113

EXPERIMENTO 3

Imagen 1 Número de puntos resultantes totales: 2988

Número de puntos del pulgar: 285

Imagen 2 Número de puntos resultantes totales: 2992

Número de puntos del pulgar: 291

Resultado de la Matriz Homogénea de la Transformación 1 del pulgar:

Traslación de puntos en metros: Tx: 0.0313 Ty: 0.0013 Tz: -0.0037

Ángulos de Euler de rotación en grados:

Rx: 0.1034 Ry: -4.6620 Rz: 2.9549

Ángulos de Euler de rotación en radianes: Rx: 0.0018 Ry: -0.0814 Rz: 0.0516

Page 111: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

114

Imagen 2 Número de puntos resultantes totales: 2992

Número de puntos del pulgar: 291

Imagen 3 Número de puntos resultantes totales: 3006

Número de puntos del pulgar: 280

Resultado de la Matriz Homogénea de la Transformación 2 del pulgar:

Traslación de puntos en metros: Tx: -0.0274 Ty: 0.0180 Tz: 0.0038

Ángulos de Euler de rotación en grados:

Rx: 2.6608 Ry: 3.3608 Rz: 2.0888

Ángulos de Euler de rotación en radianes: Rx: 0.0464 Ry: 0.0587 Rz: 0.0365

Page 112: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

115

Imagen 3 Número de puntos resultantes totales: 3006

Número de puntos del pulgar: 280

Imagen 4 Número de puntos resultantes totales: 2989

Número de puntos del pulgar: 299

Resultado de la Matriz Homogénea de la Transformación 3 del pulgar:

Traslación de puntos en metros: Tx: 0.0105 Ty: 0.0213 Tz: -0.0024

Ángulos de Euler de rotación en grados:

Rx: 2.6843 Ry: -1.8621 Rz: 3.5809

Ángulos de Euler de rotación en radianes: Rx: 0.0468 Ry: -0.0325 Rz: 0.0625

Page 113: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

116

Imagen 4 Número de puntos resultantes totales: 2989

Número de puntos del pulgar: 299

Imagen 5 Número de puntos resultantes totales: 2969

Número de puntos del pulgar: 284

Resultado de la Matriz Homogénea de la Transformación 4 del pulgar:

Traslación de puntos en metros: Tx: 0.0374 Ty: -0.0071 Tz: -0.0035

Ángulos de Euler de rotación en grados:

Rx: -0.9766 Ry: -5.0252 Rz: 3.6905

Ángulos de Euler de rotación en radianes: Rx: -0.0170 Ry: -0.0877 Rz: 0.0644

Page 114: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

117

Imagen 5 Número de puntos resultantes totales: 2969

Número de puntos del pulgar: 284

Imagen 6 Número de puntos resultantes totales: 2956

Número de puntos del pulgar: 280

Resultado de la Matriz Homogénea de la Transformación 5 del pulgar:

Traslación de puntos en metros: Tx: -0.0490 Ty: 0.0637 Tz: 0.0123

Ángulos de Euler de rotación en grados:

Rx: 9.2620 Ry: 4.9921 Rz: 6.7904

Ángulos de Euler de rotación en radianes: Rx: 0.1617 Ry: 0.0871 Rz: 0.1185

Page 115: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

118

Imagen 6 Número de puntos resultantes totales: 2956

Número de puntos del pulgar: 280

Imagen 7 Número de puntos resultantes totales: 2967

Número de puntos del pulgar: 296

Resultado de la Matriz Homogénea de la Transformación 6 del pulgar:

Traslación de puntos en metros:

Tx: 0.0852 Ty: -0.0290 Tz: 5.2627e-04

Ángulos de Euler de rotación en grados: Rx: -4.3438 Ry: -11.1739 Rz: 2.0721

Ángulos de Euler de rotación en radianes:

Rx: -0.0758 Ry: -0.1950 Rz: 0.0362

Page 116: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

119

Imagen 7 Número de puntos resultantes totales: 2967

Número de puntos del pulgar: 296

Imagen 8 Número de puntos resultantes totales: 2977

Número de puntos del pulgar: 271

Resultado de la Matriz Homogénea de la Transformación 7 del pulgar:

Traslación de puntos en metros: Tx: -0.0843 Ty: 0.0784 Tz: 0.0246

Ángulos de Euler de rotación en grados:

Rx: 10.2034 Ry: 10.5205 Rz: 1.9458

Ángulos de Euler de rotación en radianes: Rx: 0.1781 Ry: 0.1836 Rz: 0.0340

Page 117: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

120

Imagen 8 Número de puntos resultantes totales: 2977

Número de puntos del pulgar: 271

Imagen 9 Número de puntos resultantes totales: 2963

Número de puntos del pulgar: 260

Resultado de la Matriz Homogénea de la Transformación 8 del pulgar:

Traslación de puntos en metros: Tx: 0.0389 Ty: 0.0503 Tz: 0.0063

Ángulos de Euler de rotación en grados:

Rx: 5.9028 Ry: -6.0857 Rz: 5.0328

Ángulos de Euler de rotación en radianes: Rx: 0.1030 Ry: -0.1062 Rz: 0.0878

Page 118: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

121

Imagen 9 Número de puntos resultantes totales: 2963

Número de puntos del pulgar: 260

Imagen 10 Número de puntos resultantes totales: 2916

Número de puntos del pulgar: 270

Resultado de la Matriz Homogénea de la Transformación 9 del pulgar:

Traslación de puntos en metros: Tx: 0.0415 Ty: 0.0205 Tz: 0.0093

Ángulos de Euler de rotación en grados:

Rx: 3.2922 Ry: -3.6775 Rz: -9.0413

Ángulos de Euler de rotación en radianes: Rx: 0.0575 Ry: -0.0642 Rz: -0.1578

Page 119: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

122

Imagen 10 Número de puntos resultantes totales: 2916

Número de puntos del pulgar: 270

Imagen 11 Número de puntos resultantes totales: 2877

Número de puntos del pulgar: 241

Resultado de la Matriz Homogénea de la Transformación 10 del pulgar:

Traslación de puntos en metros: Tx: 0.0224 Ty: 0.0131 Tz: 0.0073

Ángulos de Euler de rotación en grados:

Rx: 1.9930 Ry: -1.8356 Rz: -6.5506

Ángulos de Euler de rotación en radianes: Rx: 0.0348 Ry: -0.0320 Rz: -0.1143

Page 120: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

123

Imagen 11 Número de puntos resultantes totales: 2877

Número de puntos del pulgar: 241

Imagen 12 Número de puntos resultantes totales: 2817

Número de puntos del pulgar: 241

Resultado de la Matriz Homogénea de la Transformación 11 del pulgar:

Traslación de puntos en metros: Tx: 0.0659 Ty: 0.0083 Tz: 0.0070

Ángulos de Euler de rotación en grados:

Rx: 1.3207 Ry: -7.9176 Rz: 0.8200

Ángulos de Euler de rotación en radianes: Rx: 0.0231 Ry: -0.1382 Rz: 0.0143

Page 121: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

124

Imagen 12 Número de puntos resultantes totales: 2817

Número de puntos del pulgar: 241

Imagen 13 Número de puntos resultantes totales: 2762

Número de puntos del pulgar: 235

Resultado de la Matriz Homogénea de la Transformación 12 del pulgar:

Traslación de puntos en metros: Tx: 0.0475 Ty: -0.0065 Tz: 0.0029

Ángulos de Euler de rotación en grados:

Rx: -0.7289 Ry: -5.9160 Rz: 0.9091

Ángulos de Euler de rotación en radianes: Rx: -0.0127 Ry: -0.1033 Rz: 0.0159

Page 122: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

125

Imagen 13 Número de puntos resultantes totales: 2762

Número de puntos del pulgar: 235

Imagen 14 Número de puntos resultantes totales: 2748

Número de puntos del pulgar: 206

Resultado de la Matriz Homogénea de la Transformación 13 del pulgar:

Traslación de puntos en metros: Tx: 0.0046 Ty: 0.0227 Tz: 0.0025

Ángulos de Euler de rotación en grados:

Rx: 2.9458 Ry: 1.6365 Rz: -13.9675

Ángulos de Euler de rotación en radianes: Rx: 0.0514 Ry: 0.0286 Rz: -0.2438

Page 123: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

126

Imagen 14 Número de puntos resultantes totales: 2748

Número de puntos del pulgar: 206

Imagen 15 Número de puntos resultantes totales: 2691

Número de puntos del pulgar: 179

Resultado de la Matriz Homogénea de la Transformación 14 del pulgar:

Traslación de puntos en metros:

Tx: 0.0299 Ty: 0.0096 Tz: 7.1060e-04

Ángulos de Euler de rotación en grados: Rx: 2.2494 Ry: -2.6074 Rz: -7.8736

Ángulos de Euler de rotación en radianes:

Rx: 0.0393 Ry: -0.0455 Rz: -0.1374

Page 124: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

127

Imagen 15 Número de puntos resultantes totales: 2691

Número de puntos del pulgar: 179

Imagen 16 Número de puntos resultantes totales: 2651

Número de puntos del pulgar: 193

Resultado de la Matriz Homogénea de la Transformación 15 del pulgar:

Traslación de puntos en metros: Tx: 0.0455 Ty: 0.0204 Tz: 0.0035

Ángulos de Euler de rotación en grados:

Rx: 3.6135 Ry: -5.3647 Rz: -2.3354

Ángulos de Euler de rotación en radianes: Rx: 0.0631 Ry: -0.0936 Rz: -0.0408

Page 125: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

128

Imagen 16 Número de puntos resultantes totales: 2651

Número de puntos del pulgar: 193

Imagen 17 Número de puntos resultantes totales: 2583

Número de puntos del pulgar: 217

Resultado de la Matriz Homogénea de la Transformación 16 del pulgar:

Traslación de puntos en metros:

Tx: 3.2236e-04 Ty: -0.0351 Tz: -0.0040

Ángulos de Euler de rotación en grados: Rx: -4.1044 Ry:0.4197 Rz: -8.0057

Ángulos de Euler de rotación en radianes:

Rx: -0.0716 Ry: 0.0073 Rz: -0.1397

Page 126: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

129

Imagen 17 Número de puntos resultantes totales: 2583

Número de puntos del pulgar: 217

Imagen 18 Número de puntos resultantes totales: 2690

Número de puntos del pulgar: 193

Resultado de la Matriz Homogénea de la Transformación 17 del pulgar:

Traslación de puntos en metros: Tx: -0.0175 Ty: -0.0129 Tz: 0.0025

Ángulos de Euler de rotación en grados:

Rx: -1.3560 Ry: 1.0383 Rz: 12.9717

Ángulos de Euler de rotación en radianes: Rx: -0.0237 Ry: 0.0181 Rz: 0.2264

Page 127: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

130

Imagen 18 Número de puntos resultantes totales: 2690

Número de puntos del pulgar: 193

Imagen 19 Número de puntos resultantes totales: 2736

Número de puntos del pulgar: 218

Resultado de la Matriz Homogénea de la Transformación 18 del pulgar:

Traslación de puntos en metros: Tx: 0.0636 Ty: -0.0063 Tz: 0.0029

Ángulos de Euler de rotación en grados:

Rx: -3.2972 Ry: -9.4401 Rz: 15.0482

Ángulos de Euler de rotación en radianes: Rx: -0.0575 Ry: -0.1648 Rz: 0.2626

Page 128: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

131

Imagen 19 Número de puntos resultantes totales: 2736

Número de puntos del pulgar: 218

Imagen 20 Número de puntos resultantes totales: 2769

Número de puntos del pulgar: 194

Resultado de la Matriz Homogénea de la Transformación 19 del pulgar:

Traslación de puntos en metros: Tx: 0.0365 Ty: -0.0019 Tz: 0.0018

Ángulos de Euler de rotación en grados:

Rx: -1.4684 Ry: -6.2413 Rz: 14.2863

Ángulos de Euler de rotación en radianes: Rx: -0.0256 Ry: -0.1089 Rz: 0.2493

Page 129: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

132

Imagen 20 Número de puntos resultantes totales: 2769

Número de puntos del pulgar: 194

Imagen 21 Número de puntos resultantes totales: 2873

Número de puntos del pulgar: 246

Resultado de la Matriz Homogénea de la Transformación 20 del pulgar:

Traslación de puntos en metros:

Tx: -0.0204 Ty: -0.0560 Tz: -0.0061

Ángulos de Euler de rotación en grados: Rx: -6.8123 Ry: 2.0756 Rz: 11.0167

Ángulos de Euler de rotación en radianes:

Rx: -0.1189 Ry: 0.0362 Rz: 0.1923

Page 130: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

133

Imagen 21 Número de puntos resultantes totales: 2873

Número de puntos del pulgar: 246

Imagen 22 Número de puntos resultantes totales: 2927

Número de puntos del pulgar: 278

Resultado de la Matriz Homogénea de la Transformación 21 del pulgar:

Traslación de puntos en metros: Tx: 0.1566 Ty: -0.1930 Tz: 0.0419

Ángulos de Euler de rotación en grados:

Rx: -31.7577 Ry: -10.7675 Rz: 26.3637

Ángulos de Euler de rotación en radianes: Rx: -0.5543 Ry: -0.1879 Rz: 0.4601

Page 131: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

134

Imagen 22 Número de puntos resultantes totales: 2927

Número de puntos del pulgar: 278

Imagen 23 Número de puntos resultantes totales: 2912

Número de puntos del pulgar: 268

Resultado de la Matriz Homogénea de la Transformación 22 del pulgar:

Traslación de puntos en metros: Tx: -0.1483 Ty: -0.0936 Tz: 0.0229

Ángulos de Euler de rotación en grados:

Rx: -13.0383 Ry: 18.1848 Rz: -3.2879

Ángulos de Euler de rotación en radianes: Rx: -0.2276 Ry: 0.3174 Rz: -0.0574

Page 132: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

135

Imagen 23 Número de puntos resultantes totales: 2912

Número de puntos del pulgar: 268

Imagen 24 Número de puntos resultantes totales: 2892

Número de puntos del pulgar: 274

Resultado de la Matriz Homogénea de la Transformación 23 del pulgar:

Traslación de puntos en metros:

Tx: -0.0300 Ty: 3.9777e-04 Tz: 0.0026

Ángulos de Euler de rotación en grados: Rx: 0.2812 Ry: 4.4486 Rz: -3.3329

Ángulos de Euler de rotación en radianes:

Rx: 0.0049 Ry: 0.0776 Rz: -0.0582

Page 133: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

136

Imagen 24 Número de puntos resultantes totales: 2892

Número de puntos del pulgar: 274

Imagen 25 Número de puntos resultantes totales: 2866

Número de puntos del pulgar: 248

Resultado de la Matriz Homogénea de la Transformación 24 del pulgar:

Traslación de puntos en metros:

Tx: -0.0125 Ty: 0.0110 Tz: 3.8030e-04

Ángulos de Euler de rotación en grados: Rx: 1.3367 Ry: 2.4636 Rz: -4.7067

Ángulos de Euler de rotación en radianes:

Rx: 0.0233 Ry: 0.0430 Rz: -0.0821

Page 134: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

137

Imagen 25 Número de puntos resultantes totales: 2866

Número de puntos del pulgar: 248

Imagen 26 Número de puntos resultantes totales: 2857

Número de puntos del pulgar: 252

Resultado de la Matriz Homogénea de la Transformación 25 del pulgar:

Traslación de puntos en metros: Tx: 0.0050 Ty: -0.0194 Tz: 0.0022

Ángulos de Euler de rotación en grados:

Rx: -2.2744 Ry: -0.0653 Rz: -6.9940

Ángulos de Euler de rotación en radianes: Rx: -0.0397 Ry: -0.0011 Rz: -0.1221

Page 135: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

138

EXPERIMENTO 4

Imagen 1 Número de puntos del dedio medio:375 Número de puntos del dedo índice: 312

Imagen 2 Número de puntos del dedo medio:380 Número de puntos del dedo índice: 331

Resultado de la Matriz Homogénea de la Transformación 1 del dedo medio:

Traslación de puntos en metros: Tx: -0.0232 Ty: 0.0176 Tz: -0.0012

Ángulos de Euler de rotación en grados:

Rx: 2.7074 Ry: 4.3692 Rz: -4.2695

Ángulos de Euler de rotación en radianes: Rx: 0.0473 Ry: 0.0763 Rz: -0.0745

Resultado de la Matriz Homogénea de la Transformación 1 del dedo índice:

Traslación de puntos en metros: Tx: -0.0096 Ty: 0.0121 Tz: -0.0015

Ángulos de Euler de rotación en grados:

Rx: 1.8514 Ry: 2.0074 Rz: -2.6494

Ángulos de Euler de rotación en radianes: Rx: 0.0323 Ry: 0.0350 Rz: -0.0462

Page 136: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

139

Imagen 2 Número de puntos del dedio medio:380 Número de puntos del dedo índice: 331

Imagen 3 Número de puntos del dedo medio:377 Número de puntos del dedo índice: 326

Resultado de la Matriz Homogénea de la Transformación 2 del dedo medio:

Traslación de puntos en metros:

Tx: 0.0035 Ty: 0.0026 Tz: -1.0994e-04

Ángulos de Euler de rotación en grados: Rx: 0.3824 Ry: -0.4060 Rz: -3.4774

Ángulos de Euler de rotación en radianes:

Rx: 0.0067 Ry: -0.0071 Rz: -0.0607

Resultado de la Matriz Homogénea de la Transformación 2 del dedo índice:

Traslación de puntos en metros: Tx: 0.0191 Ty: 0.0247 Tz: -0.0022

Ángulos de Euler de rotación en grados:

Rx: 4.2405 Ry: -3.2174 Rz: 4.0449

Ángulos de Euler de rotación en radianes: Rx: 0.0740 Ry: -0.0562 Rz: 0.0706

Page 137: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

140

Imagen 3 Número de puntos del dedio medio:377 Número de puntos del dedo índice: 326

Imagen 4 Número de puntos del dedo medio:382 Número de puntos del dedo índice: 342

Resultado de la Matriz Homogénea de la Transformación 3 del dedo medio:

Traslación de puntos en metros: Tx: -0.0631 Ty: -0.0010 Tz: 0.0051

Ángulos de Euler de rotación en grados:

Rx: -1.1556 Ry: 10.8605 Rz: -6.3999

Ángulos de Euler de rotación en radianes: Rx: -0.0202 Ry: 0.1896 Rz: -0.1117

Resultado de la Matriz Homogénea de la Transformación 3 del dedo índice:

Traslación de puntos en metros: Tx: -0.0207 Ty: -0.0052 Tz: 0.0016

Ángulos de Euler de rotación en grados:

Rx: -0.6693 Ry: 3.7812 Rz: 0.9862

Ángulos de Euler de rotación en radianes: Rx: -0.0117 Ry: 0.0660 Rz: 0.0172

Page 138: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

141

Imagen 4 Número de puntos del dedio medio:382 Número de puntos del dedo índice: 342

Imagen 5 Número de puntos del dedo medio:366 Número de puntos del dedo índice: 318

Resultado de la Matriz Homogénea de la Transformación 4 del dedo medio:

Traslación de puntos en metros:

Tx: -0.0355 Ty: -0.0054 Tz: -4.2047e-05

Ángulos de Euler de rotación en grados: Rx: -1.2288 Ry: 5.8259 Rz: -5.6706

Ángulos de Euler de rotación en radianes:

Rx: -0.0214 Ry: 0.1017 Rz: -0.0990

Resultado de la Matriz Homogénea de la Transformación 4 del dedo índice:

Traslación de puntos en metros:

Tx: 0.0220 Ty: -0.0047 Tz: -1.9642e-06

Ángulos de Euler de rotación en grados: Rx: -0.7180 Ry: -3.0750 Rz: 4.0441

Ángulos de Euler de rotación en radianes:

Rx: -0.0125 Ry: -0.0537 Rz: 0.0706

Page 139: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

142

Imagen 5 Número de puntos del dedio medio:366 Número de puntos del dedo índice: 318

Imagen 6 Número de puntos del dedo medio:361 Número de puntos del dedo índice: 342

Resultado de la Matriz Homogénea de la Transformación 5 del dedo medio:

Traslación de puntos en metros:

Tx: -0.0131 Ty: 0.0092 Tz: -5.5305e-04

Ángulos de Euler de rotación en grados: Rx: 1.5891 Ry: 2.8666 Rz: -2.7158

Ángulos de Euler de rotación en radianes:

Rx: 0.0277 Ry: 0.0500 Rz: -0.0474

Resultado de la Matriz Homogénea de la Transformación 5 del dedo índice:

Traslación de puntos en metros:

Tx: -0.0062 Ty: 0.0071 Tz: -2.7988e-05

Ángulos de Euler de rotación en grados: Rx: 1.3405 Ry: 1.3352 Rz: 2.1828

Ángulos de Euler de rotación en radianes:

Rx: 0.0234 Ry: 0.0233 Rz: 0.0381

Page 140: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

143

Imagen 6 Número de puntos del dedio medio:361 Número de puntos del dedo índice: 342

Imagen 7 Número de puntos del dedo medio:363 Número de puntos del dedo índice: 337

Resultado de la Matriz Homogénea de la Transformación 6 del dedo medio:

Traslación de puntos en metros: Tx: -0.0151 Ty: -0.0093 Tz: 0.0015

Ángulos de Euler de rotación en grados:

Rx: -1.7102 Ry: 2.5462 Rz: -3.9815

Ángulos de Euler de rotación en radianes: Rx: -0.0298 Ry: 0.0444 Rz: -0.0695

Resultado de la Matriz Homogénea de la Transformación 6 del dedo índice:

Traslación de puntos en metros: Tx: 0.0094 Ty: 0.0155 Tz: -0.0015

Ángulos de Euler de rotación en grados:

Rx: 2.4297 Ry: -1.1363 Rz: 2.9896

Ángulos de Euler de rotación en radianes: Rx: 0.0424 Ry: -0.0198 Rz: 0.0522

Page 141: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

144

Imagen 7 Número de puntos del dedio medio:363 Número de puntos del dedo índice: 337

Imagen 8 Número de puntos del dedo medio:377 Número de puntos del dedo índice: 352

Resultado de la Matriz Homogénea de la Transformación 7 del dedo medio:

Traslación de puntos en metros:

Tx: -0.0277 Ty: 0.0295 Tz: -8.5059e-04

Ángulos de Euler de rotación en grados: Rx: 4.9790 Ry: 4.5649 Rz: 2.4263

Ángulos de Euler de rotación en radianes:

Rx: 0.0869 Ry: 0.0797 Rz: 0.0423

Resultado de la Matriz Homogénea de la Transformación 7 del dedo índice:

Traslación de puntos en metros:

Tx: -0.0132 Ty: 0.0093 Tz: 5.6897e-04

Ángulos de Euler de rotación en grados: Rx: 1.2363 Ry: 2.0916 Rz: -3.5559

Ángulos de Euler de rotación en radianes:

Rx: 0.0216 Ry: 0.0365 Rz: -0.0621

Page 142: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

145

Imagen 8 Número de puntos del dedio medio:377 Número de puntos del dedo índice: 352

Imagen 9 Número de puntos del dedo medio:389 Número de puntos del dedo índice: 347

Resultado de la Matriz Homogénea de la Transformación 8 del dedo medio:

Traslación de puntos en metros:

Tx: 0.0176 Ty: -0.0015 Tz: 6.5963e-04

Ángulos de Euler de rotación en grados: Rx: -0.5284 Ry: -2.7745 Rz: 3.1589

Ángulos de Euler de rotación en radianes:

Rx: -0.0092 Ry: -0.0484 Rz: 0.0551

Resultado de la Matriz Homogénea de la Transformación 8 del dedo índice:

Traslación de puntos en metros:

Tx: -1.9600e-04 Ty: 0.0110 Tz: -0.0018

Ángulos de Euler de rotación en grados: Rx: 1.8666 Ry: -0.0786 Rz: -3.4849

Ángulos de Euler de rotación en radianes:

Rx: 0.0326 Ry: -0.0014 Rz: -0.0608

Page 143: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

146

Imagen 9 Número de puntos del dedio medio:389 Número de puntos del dedo índice: 347

Imagen 10 Número de puntos del dedo medio:380 Número de puntos del dedo índice: 360

Resultado de la Matriz Homogénea de la Transformación 9 del dedo medio:

Traslación de puntos en metros: Tx: -0.0153 Ty: 0.0042 Tz: -0.0021

Ángulos de Euler de rotación en grados:

Rx: 0.7406 Ry: 2.5013 Rz: -0.1996

Ángulos de Euler de rotación en radianes: Rx: 0.0129 Ry: 0.0437 Rz: -0.0035

Resultado de la Matriz Homogénea de la Transformación 9 del dedo índice:

Traslación de puntos en metros: Tx: -0.0023 Ty: 0.0099 Tz: -0.0019

Ángulos de Euler de rotación en grados:

Rx: 1.7711 Ry: 0.3785 Rz: -1.1640

Ángulos de Euler de rotación en radianes: Rx: 0.0309 Ry: 0.0066 Rz: -0.0203

Page 144: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

147

Imagen 10 Número de puntos del dedio medio:380 Número de puntos del dedo índice: 360

Imagen 11 Número de puntos del dedo medio:378 Número de puntos del dedo índice: 350

Resultado de la Matriz Homogénea de la Transformación 10 del dedo medio:

Traslación de puntos en metros:

Tx: 0.0148 Ty: 0.0109 Tz: -2.4717e-04

Ángulos de Euler de rotación en grados: Rx: 1.6925 Ry: -2.7607 Rz: 1.7433

Ángulos de Euler de rotación en radianes:

Rx: 0.0295 Ry: -0.0482 Rz: 0.0304

Resultado de la Matriz Homogénea de la Transformación 10 del dedo índice:

Traslación de puntos en metros:

Tx: 0.0131 Ty: 0.0066 Tz: -4.4990e-04

Ángulos de Euler de rotación en grados: Rx: 1.0747 Ry: -2.2317 Rz: 0.3455

Ángulos de Euler de rotación en radianes:

Rx: 0.0188 Ry: -0.0390 Rz: 0.0060

Page 145: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

148

Imagen 11 Número de puntos del dedio medio:378 Número de puntos del dedo índice: 350

Imagen 12 Número de puntos del dedo medio:378 Número de puntos del dedo índice: 344

Resultado de la Matriz Homogénea de la Transformación 11 del dedo medio:

Traslación de puntos en metros:

Tx: 0.0154 Ty: 0.0034 Tz: 8.1911e-04

Ángulos de Euler de rotación en grados: Rx: 0.5275 Ry: -2.7131 Rz: 1.4050

Ángulos de Euler de rotación en radianes:

Rx: 0.0092 Ry: -0.0474 Rz: 0.0245

Resultado de la Matriz Homogénea de la Transformación 11 del dedo índice:

Traslación de puntos en metros: Tx: 0.0204 Ty: 0.0078 Tz: -0.0011

Ángulos de Euler de rotación en grados:

Rx: 1.4093 Ry: -3.2903 Rz: 1.3179

Ángulos de Euler de rotación en radianes: Rx: 0.0246 Ry: -0.0574 Rz: 0.0230

Page 146: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

149

Imagen 12 Número de puntos del dedio medio:378 Número de puntos del dedo índice: 344

Imagen 13 Número de puntos del dedo medio:361 Número de puntos del dedo índice: 340

Resultado de la Matriz Homogénea de la Transformación 12 del dedo medio:

Traslación de puntos en metros:

Tx: 0.0122 Ty: 0.0017 Tz: 2.0970e-04

Ángulos de Euler de rotación en grados: Rx: 0.3476 Ry: -2.2369 Rz: 0.2620

Ángulos de Euler de rotación en radianes:

Rx: 0.0061 Ry: -0.0390 Rz: 0.0046

Resultado de la Matriz Homogénea de la Transformación 12 del dedo índice:

Traslación de puntos en metros:

Tx: 0.0085 Ty: 2.5154e-04 Tz: -0.0017

Ángulos de Euler de rotación en grados: Rx: 0.1206 Ry: -1.3028 Rz: 0.8789

Ángulos de Euler de rotación en radianes:

Rx: 0.0021 Ry: -0.0227 Rz: 0.0153

Page 147: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

150

Imagen 13 Número de puntos del dedio medio:361 Número de puntos del dedo índice: 340

Imagen 14 Número de puntos del dedo medio:374 Número de puntos del dedo índice: 326

Resultado de la Matriz Homogénea de la Transformación 13 del dedo medio:

Traslación de puntos en metros: Tx: 0.0385 Ty: 0.0145 Tz: 0.0024

Ángulos de Euler de rotación en grados:

Rx: 1.6158 Ry: -6.5579 Rz: 6.6371

Ángulos de Euler de rotación en radianes: Rx: 0.0282 Ry: -0.1145 Rz: 0.1158

Resultado de la Matriz Homogénea de la Transformación 13 del dedo índice:

Traslación de puntos en metros: Tx: 0.0042 Ty: 0.0209 Tz: -0.0013

Ángulos de Euler de rotación en grados:

Rx: 3.5534 Ry: -1.0750 Rz: 0.2688

Ángulos de Euler de rotación en radianes: Rx: 0.0620 Ry: -0.0188 Rz: 0.0047

Page 148: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

151

Imagen 14 Número de puntos del dedio medio:374 Número de puntos del dedo índice: 326

Imagen 15 Número de puntos del dedo medio:378 Número de puntos del dedo índice: 340

Resultado de la Matriz Homogénea de la Transformación 14 del dedo medio:

Traslación de puntos en metros:

Tx: 0.0293 Ty: 0.0057 Tz: -1.4746e-04

Ángulos de Euler de rotación en grados: Rx: 0.5948 Ry: -5.4939 Rz: 3.9911

Ángulos de Euler de rotación en radianes:

Rx: 0.0104 Ry: -0.0959 Rz: 0.0697

Resultado de la Matriz Homogénea de la Transformación 14 del dedo índice:

Traslación de puntos en metros:

Tx: -0.0120 Ty: -0.0076 Tz: -8.0405e-04

Ángulos de Euler de rotación en grados: Rx: -1.5821 Ry: 1.1468 Rz: -3.5449

Ángulos de Euler de rotación en radianes:

Rx: -0.0276 Ry: 0.0200 Rz: -0.0619

Page 149: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

152

Imagen 15 Número de puntos del dedio medio:378 Número de puntos del dedo índice: 340

Imagen 16 Número de puntos del dedo medio:364 Número de puntos del dedo índice: 345

Resultado de la Matriz Homogénea de la Transformación 15 del dedo medio:

Traslación de puntos en metros:

Tx: 0.0351 Ty: -0.0052 Tz: -4.4667e-04

Ángulos de Euler de rotación en grados: Rx: -1.4473 Ry: -5.2142 Rz: 6.4279

Ángulos de Euler de rotación en radianes:

Rx: -0.0253 Ry: -0.0910 Rz: 0.1122

Resultado de la Matriz Homogénea de la Transformación 15 del dedo índice:

Traslación de puntos en metros: Tx: 0.0155 Ty: -0.0117 Tz: -0.0021

Ángulos de Euler de rotación en grados:

Rx: -1.5554 Ry: -2.5160 Rz: -0.2435

Ángulos de Euler de rotación en radianes: Rx: -0.0271 Ry: -0.0439 Rz: -0.0043

Page 150: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

153

Page 151: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

154

ANEXO A2: CÓDIGO DE LAS ETAPAS DEL ALGORITMO

1. Adquisición de datos:

% Inicializamos los directorios addpath(genpath('./ToolBoxICP')); addpath(genpath('./Functions')); addpath(genpath('./boxes')); addpath(genpath('./Filters')) addpath(genpath('./DataSets/Indice')); addpath(genpath('./Experimentos/Indice')); addpath(genpath('../../../C++/ann_mwrapper_v1.2/ann_mwrapper')); addpath(genpath('./Functions/Maths/Transform/dataTrans')); % Se cargan 6 archivos ASCII exportados de la SR3000 n_cil = 6; for i = 1:n_cil % convierte enteros a una cadena de caracteres con formato entero. f_name = ['Indice' int2str(i) '.asc']; % N es una estructura de datos de 1xn N(i).data = importdata(f_name,'\t'); end

2.1 Reducción de puntos 1: Limitar la distancia en los ejes % para cada nube de puntos 'filtxyz1' descarta todos los puntos que estén por encima de un valor determinado de X, de Y y de Z, y por debajo de filtxyz2' %imágenes de la 1 a la 6 for i = 1:n_cil filtxyz1(i,:) = [0.1 0.06 0.4]; %filtrado para X, Y, y Z máximos filtxyz2(i,:) = [-0.05 -0.1 0.25]; %filtrado para X, Y, y Z mínimos end for i=1:n_cil tmp.data = []; aa=0; bFilter = 0; for j=1:size(N(i).data,1) % X, Y, Z component filter if (N(i).data(j,1) < filtxyz1(i,1)) && (N(i).data(j,1) > filtxyz2(i,1)) && (N(i).data(j,2) < filtxyz1(i,2)) && (N(i).data(j,2) > filtxyz2(i,2))&& (N(i).data(j,3) < filtxyz1(i,3)) && (N(i).data(j,3) > filtxyz2(i,3)) aa=aa+1; bFilter = 1; tmp.data(aa,:) = N(i).data(j,:); end end if bFilter == 1 N(i).data = []; N(i).data = tmp.data; end end

Page 152: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

155

2.2 Reducción de puntos 2: Muestreo ini = 1; last = n_cil; for i=ini:last % uSamp es el tamaño de la caja. Más pequeño, más resolución. Más grande, menos resolución N(i).poseL = [ 0 0 0 0 0 0 ]; Nsamp(i).data = sampleData(N(i).data,N(i).poseL,'uSamp',0.00); end

3 Segmentación de los puntos: %% Imagen 6: Extraemos cada falange por separado % creamos una estructura de datos 'pointClouds', con los campos 'cil1', 'cil2' y 'cil3' pointClouds(i).cil=struct('cil1', [], 'cil2', [], 'cil3', []); % graficamos las 3 falanges separadas de la 6ª imagen plotclouds(Nsamp(6),6,'onecolor',4,'poses',N(i).poseL,'subplot',[2,2,1]); % definimos a partir de dónde queremos filtrar para la primera falange: % rotamos respecto Z para extraer verticalmente: aaa.data = R_z(Nsamp(6).data',20*pi/180); %plotclouds(aaa,61,'onecolor',4,'poses',N(i).poseL); tmp.data = []; aa=0; bFilter = 0; % booleà. Indica si ha filtrat o no for j=1:size(Nsamp(6).data,1) % X, Y, Z component filter if (aaa.data(j,1) > -0.03 && aaa.data(j,1) < -0.0078 && aaa.data(j,2) > -0.015 && aaa.data(j,2) < 0.01 && aaa.data(j,3) > 0.25 && aaa.data(j,3) < 0.325) aa=aa+1; bFilter = 1; % Ha filtrat tmp.data(aa,:) = aaa.data(j,:); end end if bFilter == 1 pointClouds(6).cil.cil1.data = tmp.data; else pointClouds(6).cil.cil1.data = aaa.data; end % desrotamos respecto Z para restituir la imagen original: aaa.data=R_z(pointClouds(6).cil.cil1.data',-20*pi/180); pointClouds(6).cil.cil1.data = aaa.data;

Page 153: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

156

% definimos a partir de dónde queremos filtrar para la segunda falange: % rotamos respecto Z para extraer verticalmente: aaa.data = R_z(Nsamp(6).data',60*pi/180); tmp.data = []; aa=0; bFilter = 0; % booleà. Indica si ha filtrat o no for j=1:size(Nsamp(6).data,1) % X, Y, Z component filter if (aaa.data(j,1) > -0.03 && aaa.data(j,1) < -0.01 && aaa.data(j,2) > 0.0 && aaa.data(j,2) < 0.02 && aaa.data(j,3) < 0.325 && aaa.data(j,3) > 0.25) aa=aa+1; bFilter = 1; % Ha filtrat tmp.data(aa,:) = aaa.data(j,:); end end if bFilter == 1 pointClouds(6).cil.cil2.data = tmp.data; else pointClouds(6).cil.cil2.data = aaa.data; end % desrotamos respecto Z para restituir la imagen original: aaa.data=R_z(pointClouds(6).cil.cil2.data',-60*pi/180); pointClouds(6).cil.cil2.data = aaa.data;

% definimos a partir de dónde queremos filtrar para la tercera falange: % rotamos respecto Z para extraer verticalmente: aaa.data = R_z(Nsamp(6).data',0*pi/180); tmp.data = []; aa=0; bFilter = 0; % booleà. Indica si ha filtrat o no for j=1:size(Nsamp(6).data,1) % X, Y, Z component filter if (aaa.data(j,1) < 0.04 && aaa.data(j,1) > 0.009 && aaa.data(j,2) < 0.04 && aaa.data(j,2) > 0.02 && aaa.data(j,3) < 0.325 && aaa.data(j,3) > 0.25) aa=aa+1; bFilter = 1; % Si s'ha filtrat tmp.data(aa,:) = aaa.data(j,:); end end if bFilter == 1 pointClouds(6).cil.cil3.data = tmp.data; else pointClouds(6).cil.cil3.data = aaa.data; end % desrotamos respecto Z para restituir la imagen original: aaa.data=R_z(pointClouds(6).cil.cil3.data',0*pi/180); pointClouds(6).cil.cil3.data = aaa.data;

Page 154: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

157

4 ICP: % el resultado de las transformaciones está en la estructura de datos 'Indice': % Indice1, Indice2 y Indice3 son las transformaciones de la 1ª y la 2ª imagen, la 2ª y la 3ª, la 3ª y la 4ª... sucesivamente a lo largo de la secuencia de imágenes. % estimated_HRt.HRt es la matriz H, mientras que estimated_HRt.xyzRxRyRz es la matriz H en ángulos de Euler. % definimos una estructura de datos cil1, cil2 y cil3. % cil1 es la transformación de la 1ª falange entre la imagen actual y la siguiente. % cil2 es la transformación de la 2ª falange entre la imagen actual y la siguiente % cil3 es la transformación de la 3ª falange entre la imagen actual y la siguiente cil1 = struct('ref', [], 'new',[]); cil2 = struct('ref', [], 'new',[]); cil3 = struct('ref', [], 'new',[]); for i=2:size(pointClouds,2) cil1(i-1).ref.data = pointClouds(i-1).cil.cil1.data'; %falange 1 de la 1ª imagen cil2(i-1).ref.data = pointClouds(i-1).cil.cil2.data'; %falange 2 de la 1ª imagen cil3(i-1).ref.data = pointClouds(i-1).cil.cil3.data'; %falange 3 de la 1ª imagen cil1(i-1).new.data = pointClouds(i).cil.cil1.data'; %falange 1 de la siguiente imagen cil2(i-1).new.data = pointClouds(i).cil.cil2.data'; %falange 2 de la siguiente imagen cil3(i-1).new.data = pointClouds(i).cil.cil3.data'; %falange 3 de la siguiente imagen % Calcula el vector normal asociado con cada punto y el plano definido por sus puntos vecinos % Número de puntos vecinos NNN = 9; % Distancia máxima entre puntos vecinos maxDist = 1; [ cil1(i-1).ref.normals cil1(i-1).ref.valid cil1(i-1).ref.error ] = ... findDataNormals( cil1(i-1).ref.data, 'NNN', NNN, 'maxDist', maxDist); [ cil1(i-1).new.normals cil1(i-1).new.valid cil1(i-1).new.error ] = ... findDataNormals( cil1(i-1).new.data, 'NNN', NNN, 'maxDist', maxDist); [ cil2(i-1).ref.normals cil2(i-1).ref.valid cil2(i-1).ref.error ] = ... findDataNormals( cil2(i-1).ref.data, 'NNN', NNN, 'maxDist', maxDist); [ cil2(i-1).new.normals cil2(i-1).new.valid cil2(i-1).new.error ] = ... findDataNormals( cil2(i-1).new.data, 'NNN', NNN, 'maxDist', maxDist); [ cil3(i-1).ref.normals cil3(i-1).ref.valid cil3(i-1).ref.error ] = ... findDataNormals( cil3(i-1).ref.data, 'NNN', NNN, 'maxDist', maxDist); [ cil3(i-1).new.normals cil3(i-1).new.valid cil3(i-1).new.error ] = ... findDataNormals( cil3(i-1).new.data, 'NNN', NNN, 'maxDist', maxDist); % icp type = 'svd'; %singular value decomposition maxIter = 1000; errorThreshold = 0.000001; [ Indice1(i-1) matchedPoints ] = ICP3DGeneralAlgorithm (type, cil1(i-1), maxIter, errorThreshold ); [ Indice2(i-1) matchedPoints ] = ICP3DGeneralAlgorithm (type, cil2(i-1), maxIter, errorThreshold ); [ Indice3(i-1) matchedPoints ] = ICP3DGeneralAlgorithm (type, cil3(i-1), maxIter, errorThreshold ); end

Page 155: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

158

5 Reproducción 3D: #include <Inventor/Qt/SoQt.h> #include <Inventor/Qt/viewers/SoQtExaminerViewer.h> #include <Inventor/nodes/SoBaseColor.h> #include <Inventor/nodes/SoCylinder.h> #include <Inventor/nodes/SoCube.h> #include <Inventor/nodes/SoSeparator.h> #include <Inventor/nodes/SoTranslation.h> #include <Inventor/nodes/SoRotationXYZ.h> #include <Inventor/sensors/SoTimerSensor.h> #include <Inventor/nodes/SoMatrixTransform.h> #include <iostream> #include <cstdlib> #include "VDLimb.h" using namespace std; unsigned int nStates = 13; unsigned int k = 0; //matriz H de la mano: Tx,Ty,Tz,Rx,Ry,Rz float matrix1[] = {-0.0061, 0.0067, 0.0019, 0.0199, 0.0177, -0.0093, -0.0040, 0.0013, 0.0011, 0.0068, 0.0117, -0.0126, -6.0552e-04, 0.0025, 1.5285e-04, 0.0062, 0.0024, 0.0026, -0.0017, 0.0010, -6.1141e-04, 0.0024, 0.0095, -0.0150, -0.0016, 0.0021, 2.9832e-04, 0.0062, 0.0067, -0.0043, -0.0020, -1.8872e-04, -2.9470e-04, -3.2513e-04, 0.0103, -0.0046, 0.0039, -0.0043, -0.0017, -0.0095, -0.0063, -0.0178, 2.6918e-04, -0.0047, -6.3049e-04, -0.0135, -0.0027, 0.0215, 5.3975e-04, -0.0021, -8.6711e-04, -0.0056, 1.7994e-04, -0.0070, -9.6669e-05, 0.0014, 3.7182e-04, 0.0047, 0.0014, -0.0038, -3.0753e-04, 0.0051, 0.0021, 0.0134, 0.0017, -0.0030, 0.0014, 0.0012, 6.8324e-04, 0.0041, -0.0062, 0.0031, 0.0042, 8.1791e-04, 2.7418e-04, 0.0051, -0.0131, -0.0076}; // matriz H del pulgar: Tx,Ty,Tz,Rx,Ry,Rz float matrix2[] = {0.0114, -0.0061, -0.0028, -0.0125, -0.0570, 0.1121, 0.0155, 0.0045, -0.0032, 0.0198, -0.0758, 0.1154, 0.0177, 0.0013, -0.0053, 0.0082, -0.0781, 0.0869, 0.0140, -0.0015, -0.0038, 0.0024, -0.0614, 0.0742, 0.0017, -0.0085, -0.0022, -0.0159, -0.0250, 0.0972, -0.0041, 0.0014, -0.0013, 0.0118, -0.0085, 0.0980, -0.0015, -0.0147, -0.0047, -0.0173, -0.0262, 0.1891, 0.1003, 0.0701, 0.0216, 0.2241, -0.2904, -0.0943, 0.0307, 0.0036, -0.0018, -0.0012, -0.0525, -0.0755, 0.0439, 0.0149, -0.0015, 0.0447, -0.1169, -0.0623, 0.0057, 0.0063, 0.0040, -0.0064, 0.0335, -0.1552, 0.0164, 0.0101, -7.6480e-04, 0.0164, -0.0080, -0.1635, -0.0083, -0.0231, -0.0022, -0.1064, 0.0554, -0.1953};

//estructura para enviar datos de traslacion y rotacion en una sola estructura

Page 156: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

159

struct PosRot { SoTranslation * offset; SoRotationXYZ * arrowrotationX1; SoRotationXYZ * arrowrotationY1; SoRotationXYZ * arrowrotationZ1; SoRotationXYZ * arrowrotationX2; SoRotationXYZ * arrowrotationY2; SoRotationXYZ * arrowrotationZ2; }; //definición de la función que se ejecutará periódicamente static void func(void * data, SoSensor *) { std::cout<<"Time triggered!!\n"; std::cout<<"k: "<<k<<" Tx: "<<matrix2[6*k+0]<<" Ty: "<<matrix2[6*k+1]<<" Tz: "<<matrix2[6*k+2] <<" Rx: "<<matrix2[6*k+3]<<" Ry: "<<matrix2[6*k+4]<<" Rz: "<<matrix2[6*k+5]<<"\n"; PosRot * posRotData = (PosRot *)data; SoRotationXYZ * arrowrotationX2 = posRotData->arrowrotationX2; SoRotationXYZ * arrowrotationY2 = posRotData->arrowrotationY2; SoRotationXYZ * arrowrotationZ2 = posRotData->arrowrotationZ2; SoRotationXYZ * arrowrotationX1 = posRotData->arrowrotationX1; SoRotationXYZ * arrowrotationY1 = posRotData->arrowrotationY1; SoRotationXYZ * arrowrotationZ1 = posRotData->arrowrotationZ1; SoTranslation * offset = posRotData->offset; if(k!=0) { offset->translation = offset->translation.getValue() + SbVec3f(matrix2[6*k+0], matrix2[6*k+1],matrix2[6*k+2]); // Transformación 2 arrowrotationX2->axis = SoRotationXYZ::X; arrowrotationX2->angle= arrowrotationX2->angle.getValue()-matrix2[6*k+3]; arrowrotationY2->axis = SoRotationXYZ::Y; arrowrotationY2->angle= arrowrotationY2->angle.getValue()-matrix2[6*k+4]; arrowrotationZ2->axis = SoRotationXYZ::Z; arrowrotationZ2->angle= arrowrotationZ2->angle.getValue()-matrix2[6*k+5]; // Transformación 1 arrowrotationX1->axis = SoRotationXYZ::X; arrowrotationX1->angle= arrowrotationX1->angle.getValue()-matrix1[6*k+3]; arrowrotationY1->axis = SoRotationXYZ::Y; arrowrotationY1->angle= arrowrotationY1->angle.getValue()-matrix1[6*k+4];

Page 157: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

160

arrowrotationZ1->axis = SoRotationXYZ::Z; arrowrotationZ1->angle= arrowrotationZ1->angle.getValue()-matrix1[6*k+5]; } else { offset->translation = SbVec3f(matrix2[6*k+0], matrix2[6*k+1],matrix2[6*k+2]); // Transformación 2 arrowrotationX2->axis = SoRotationXYZ::X; arrowrotationX2->angle= matrix2[6*k+3]; arrowrotationY2->axis = SoRotationXYZ::Y; arrowrotationY2->angle= matrix2[6*k+4]; arrowrotationZ2->axis = SoRotationXYZ::Z; arrowrotationZ2->angle= matrix2[6*k+5]; // Transformación 1 arrowrotationX1->axis = SoRotationXYZ::X; arrowrotationX1->angle= matrix1[6*k+3]; arrowrotationY1->axis = SoRotationXYZ::Y; arrowrotationY1->angle= matrix1[6*k+4]; arrowrotationZ1->axis = SoRotationXYZ::Z; arrowrotationZ1->angle= matrix1[6*k+5]; } if(k<(nStates-1)) { k++; } else { k=0; } }

Page 158: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

161

// Programa Principal int main(int argc, char **argv) { //creamos una instancia de la clase Limb Limb falange; //dimensionamos la falange falange.length=3.5; //longitud falange.rbb=1.5; //radio // Initializes SoQt library (and implicitly also the Coin and Qt libraries). Returns a top-level / shell Qt window to use. QWidget * mainwin = SoQt::init(argc, argv, argv[0]); // Make a dead simple scene graph by using the Coin library, SoSeparator * root= new SoSeparator; root->ref(); SoRotationXYZ *arrowrotationX1, *arrowrotationY1, *arrowrotationZ1, *arrowrotationX2, *arrowrotationY2, *arrowrotationZ2 ; arrowrotationX1 = new SoRotationXYZ; arrowrotationY1 = new SoRotationXYZ; arrowrotationZ1 = new SoRotationXYZ; arrowrotationX2 = new SoRotationXYZ; arrowrotationY2 = new SoRotationXYZ; arrowrotationZ2 = new SoRotationXYZ;

Page 159: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

162

// mano derecha mirando a la palma

// dedo anular SoSeparator * dit1= new SoSeparator; //Dibujamos los cilindros de color amarillo SoBaseColor * col = new SoBaseColor; col->rgb = SbColor(1, 0, 0);//rojo dit1->addChild(col); //Definimos un cilindro SoCylinder * cil1 = new SoCylinder; cil1->height=3.5; cil1->radius=1.5; //Traslación del cil1 SoTranslation * offset1 = new SoTranslation; offset1->translation = SbVec3f(-3, 10, 0); //separación entre cilindros x=0, y=4, z=0 dit1->addChild(offset1); //Rotación del cil1 SoRotationXYZ *arrowrotation1 = new SoRotationXYZ; arrowrotation1->axis = SoRotationXYZ::Z; arrowrotation1->angle=3.1416/16; dit1->addChild(arrowrotation1); dit1->addChild(cil1); //Definimos el cil2 SoCylinder * cil2 = new SoCylinder; cil2->height=3.5; cil2->radius=1.5; //Traslación del cil2 SoTranslation * offset2 = new SoTranslation; offset2->translation = SbVec3f(0, 4, 0); //separación entre cilindros x=0, y=4, z=0 dit1->addChild(offset2); dit1->addChild(cil2); //Definimos el cil3 SoCylinder * cil3 = new SoCylinder; cil3->height=3.5; cil3->radius=1.5; dit1->addChild(cil3); //Traslación del cil3 SoTranslation * offset3 = new SoTranslation; offset3->translation = SbVec3f(0, 4, 0); //separación entre cilindros x=0, y=4, z=0 dit1->addChild(offset3); dit1->addChild(cil3);

Page 160: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

163

// dedo medio SoSeparator * dit2 = new SoSeparator; //Color rojo para cil4 SoBaseColor * col2 = new SoBaseColor; col2->rgb = SbColor(1, 1, 1);//blanco dit2->addChild(col2); //Definimos el cil4 SoCylinder * cil4 = new SoCylinder; cil4->height=3.5; cil4->radius=1.5; //Traslación del cil4 SoTranslation * offset4 = new SoTranslation; offset4->translation = SbVec3f(1.25, 11, 0); //separación entre cilindros x=0, y=4, z=0 dit2->addChild(offset4); //Rotación del cil4 SoRotationXYZ *arrowrotation2 = new SoRotationXYZ;; arrowrotation1->axis = SoRotationXYZ::Z; arrowrotation1->angle=3.1416/16; dit2->addChild(arrowrotation2); dit2->addChild(cil4); //Definimos el cil5 SoCylinder * cil5 = new SoCylinder; cil5->height=3.5; cil5->radius=1.5; //Traslación del cil5 SoTranslation * offset5 = new SoTranslation; offset5->translation = SbVec3f(0, 4, 0); //separación entre cilindros x=0, y=4, z=0 dit2->addChild(offset5); dit2->addChild(cil5); //Definimos el cil6 SoCylinder * cil6 = new SoCylinder; cil6->height=3.5; cil6->radius=1.5; //Traslación del cil6 SoTranslation * offset6 = new SoTranslation; offset6->translation = SbVec3f(0, 4, 0); //separación entre cilindros x=0, y=4, z=0 dit2->addChild(offset6); dit2->addChild(cil6);

// dedo indice SoSeparator * dit3 = new SoSeparator; //Color rojo para cil7 SoBaseColor * col3 = new SoBaseColor;

Page 161: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

164

col3->rgb = SbColor(0, 0, 1);//azul dit3->addChild(col3); //Definimos el cil7 SoCylinder * cil7 = new SoCylinder; cil7->height=3.5; cil7->radius=1.5; //Traslación del cil7 SoTranslation * offset7 = new SoTranslation; offset7->translation = SbVec3f(6, 10, 0); //separación entre cilindros x=0, y=4, z=0 dit3->addChild(offset7); //Rotación SoRotationXYZ *arrowrotation3 = new SoRotationXYZ; arrowrotation3->axis = SoRotationXYZ::Z; arrowrotation3->angle=-3.1416/16; dit3->addChild(arrowrotation3); dit3->addChild(cil7); //Definimos el cil8 SoCylinder * cil8 = new SoCylinder; cil8->height=3.5; cil8->radius=1.5; //Traslación del cil8 SoTranslation * offset8 = new SoTranslation; offset8->translation = SbVec3f(0, 4, 0); //separación entre cilindros x=0, y=4, z=0 dit3->addChild(offset8); dit3->addChild(cil8); //Definimos el cil9 SoCylinder * cil9 = new SoCylinder; cil9->height=3.5; cil9->radius=1.5; //Traslación del cil9 SoTranslation * offset9 = new SoTranslation; offset9->translation = SbVec3f(0, 4, 0); //separación entre cilindros x=0, y=4, z=0 dit3->addChild(offset9); dit3->addChild(cil9);

Page 162: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

165

// dedo meñique SoSeparator * dit4 = new SoSeparator; //Color rojo para cil10 SoBaseColor * col4 = new SoBaseColor; col4->rgb = SbColor(0, 1, 0); dit4->addChild(col4); //Definimos el cil10 SoCylinder * cil10 = new SoCylinder; cil10->height=3.0; cil10->radius=1.25; //Traslación del cil10 SoTranslation * offset10 = new SoTranslation; offset10->translation = SbVec3f(-6.5, 9, 0); //separación entre cilindros x=0, y=4, z=0 dit4->addChild(offset10); //Rotación SoRotationXYZ *arrowrotation4 = new SoRotationXYZ;; arrowrotation4->axis = SoRotationXYZ::Z; arrowrotation4->angle=3.1416/8; dit4->addChild(arrowrotation4); dit4->addChild(cil10); //Definimos el cil11 SoCylinder * cil11 = new SoCylinder; cil11->height=3.0; cil11->radius=1.25; //Traslación del cil11 SoTranslation * offset11 = new SoTranslation; offset11->translation = SbVec3f(0, 3.5, 0); //separación entre cilindros x=0, y=4, z=0 dit4->addChild(offset11); dit4->addChild(cil11); //Definimos el cil12 SoCylinder * cil12 = new SoCylinder; cil12->height=3.0; cil12->radius=1.25; //Traslación del cil10 SoTranslation * offset12 = new SoTranslation; offset12->translation = SbVec3f(0, 3.5, 0); //separación entre cilindros x=0, y=4, z=0 dit4->addChild(offset12); dit4->addChild(cil12);

Page 163: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

166

//pulgar SoSeparator * dit5 = new SoSeparator; //Color rojo para cil13 SoBaseColor * col6 = new SoBaseColor; col6->rgb = SbColor(1, 1, 0);//amarillo dit5->addChild(col6); //Definimos el cil13 SoCylinder * cil13 = new SoCylinder; cil13->height=3.75; cil13->radius=2.0; //Traslación del cil13 SoTranslation * offset13 = new SoTranslation; offset13->translation = SbVec3f(11, -3, 0); //separación entre cilindros x=0, y=4, z=0 dit5->addChild(offset13); //Rotación SoRotationXYZ *arrowrotation5 = new SoRotationXYZ; arrowrotation5->axis = SoRotationXYZ::Z; arrowrotation5->angle=-3.1416/4+3.1416; dit5->addChild(arrowrotation5); dit5->addChild(arrowrotationX2); dit5->addChild(arrowrotationY2); dit5->addChild(arrowrotationZ2); dit5->addChild(cil13); //Definimos el cil14 SoCylinder * cil14 = new SoCylinder; cil14->height=3.75; cil14->radius=2.0; //Traslación del cil14 SoTranslation * offset14 = new SoTranslation; offset14->translation = SbVec3f(0, -4.5, 0); //separación entre cilindros x=0, y=4, z=0 dit5->addChild(offset14); dit5->addChild(cil14);

Page 164: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

167

//palma SoSeparator * palma = new SoSeparator; //Color rojo para la palma SoBaseColor * col5 = new SoBaseColor; col5->rgb = SbColor(1, 0, 3); palma->addChild(col5); //Dimensionamos la palma SoCube * cub = new SoCube; cub->width=14; cub->height=13; cub->depth=3; //Traslación de la palma SoTranslation * offset15 = new SoTranslation; offset15->translation = SbVec3f(0, 0, 0); //posición en pantalla palma->addChild(offset15); //Rotación de la palma palma->addChild(arrowrotationX1); palma->addChild(arrowrotationY1); palma->addChild(arrowrotationZ1); palma->addChild(cub);

//mano

palma->addChild(dit1); palma->addChild(dit2); palma->addChild(dit3); palma->addChild(dit4); palma->addChild(dit5);

Page 165: Trabajo Final de Carrera - iri.upc.edu · 7 Resumen de Trabajo Final de Carrera E.T.Telecomunicaciones, esp. Sistemas de Telecomunicación Título: Estudio de viabilidad para el reconocimiento

168

// Use one of the convenient SoQt viewer classes. SoQtExaminerViewer * eviewer = new SoQtExaminerViewer(mainwin); eviewer->setSceneGraph(palma); eviewer->setTitle("Animacion Pulgar"); eviewer->show(); // Pop up the main window. SoQt::show(mainwin); PosRot posRotData; posRotData.arrowrotationX1 = arrowrotationX1; posRotData.arrowrotationY1 = arrowrotationY1; posRotData.arrowrotationZ1 = arrowrotationZ1; posRotData.arrowrotationX2 = arrowrotationX2; posRotData.arrowrotationY2 = arrowrotationY2; posRotData.arrowrotationZ2 = arrowrotationZ2; posRotData.offset = offset15; SoTimerSensor timerSensor(func, &posRotData); timerSensor.setInterval(1.0); timerSensor.schedule(); // Loop until exit. SoQt::mainLoop(); // Clean up resources. delete eviewer; root->unref(); return 0; }