6. CARACTERIZACIÓN DE SENSORES
6.1 IDENTIFICACIÓN DE REQUERIMIENTOS DE SENSORES
Como se ha mencionado anteriormente, este proyecto forma parte de un semillero, esto genera la posibilidad de que se trabajen proyectos paralelos que nutren y aportan a la toma de decisiones, gracias a una amplia revisión de parámetros planteados. Los dos sensores disponibles por el semillero para este trabajo son el Kinect para Xbox-One con adaptador para pc (Kinect v2) y el RealSense F200.
De esta forma, en este proyecto se tienen en cuenta los análisis y resultados de cuatro proyectos adjuntos:
“Análisis de tiempos de respuesta en el reconocimiento de la mano entre Kinect v2 y RealSense” trabajado por Diego Giancarlo Zapata Cortes.
“Análisis de tiempos de respuesta en el reconocimiento de formas entre Kinect v2 y RealSense” trabajado por Juan Sebastián Silva Vanegas.
“Análisis de tiempos de respuesta en el reconocimiento de la mano entre Kinect v2 y RealSense con respecto a la distancia” trabajado por María Camila González Hurtado.
“Características de luminosidad asociadas a la capacidad de reconocimiento corporal de Kinect v2 vs RealSense” trabajado por Daddy Moreno Beltrán
Estos trabajos son de gran ayuda a la hora de decidir que sensor se trabajará en el proyecto, pero también como base para próximos desarrollos en el macroproyecto, teniendo en cuenta las diferentes variables que pueden presentarse en la ampliación de este desarrollo. Además de las conclusiones obtenidas por estas investigaciones, es importante resaltar que otro factor determinante es la documentación existente con respecto a cada sensor, puesto que por más viable que parezca la selección de uno u otro sensor, es importante tener bases para el desarrollo del proyecto, evitando caer en baches de desinformación que puedan estancar el proceso del mismo.
Para poder desarrollar estos análisis, se partió de elegir dos códigos que permitieran el reconocimiento de las manos a partir de los datos obtenidos por cada sensor. La principal diferencia que se encontró en este paso es que en el
38
SDK de Kinect no existe ningún programa de este estilo, lo que obliga a trabajar con un desarrollo de un tercero para poder realizar la comparación, lo contrario sucede con RealSense, que en su SDK pone a disposición un programa de reconocimiento de señas con las manos pero los desarrollos de terceros (documentados en el estado del arte) no están disponibles para ser usados.
Esto se puede interpretar de dos maneras: la primera es que la confiabilidad en cuanto a tiempos de reacción del RealSense será mucho mayor puesto que el código trabajado con este sensor es mucho más pulido, del nivel de un producto terminado de Intel, mientras que en Kinect se tiene un trabajo investigativo de Vangos Pterneas.
La segunda es que existe mucho más soporte para trabajar con Kinect que con RealSense, es decir que al momento de desarrollar este trabajo hay muchos más proyectos previos en la herramienta de Microsoft (esto debido al tiempo que lleva en el mercado y su renombre generado por la venta como complemento de las consolas de videojuegos), lo que es muy conveniente a la hora de resolver problemas y comprender errores principalmente.
Ambas interpretaciones deben ser tenidas en cuenta a la hora de concluir sobre el rendimiento visto por c/u en las pruebas planteadas.
6.1.1 Software RealSense
Para este sensor se hizo uso del Kit de desarrollo (SDK) del RealSense, en el cual existe un aplicativo de nombre HAND VIEWER, utiliza el lenguaje C# y consiste en hacer reconocimiento de la mano desde la parte baja, creando vectores hasta la parte final de los dedos y representando las articulaciones como puntos.
6.1.2 Software Kinect
Para este sensor se hizo uso de un programa desarrollado por Vangos Pterneas [51] el cual funciona a partir de diferenciar las manos, limitar el área de búsqueda a 15 cm aproximadamente, hallar el contorno a partir de la extracción de puntos de profundidad y obtener la ubicación espacial de los dedos partir de las puntas del polígono formado por la mano.
A la hora de definir las pruebas para cada trabajo se tuvo en cuenta las especificaciones propias de cada sensor, que se pueden ver en la Ilustración 11 e Ilustración 14. Con estas consideraciones, se definen las variables que se mantendrán constantes para cada trabajo.
39
Distancia 85 cm
Luminosidad 192 lux
Altura 120 cm
Tiempo de toma 1 s
Posición de la Mano Mano extendida, dedos abiertos
Tabla 1: Constantes Pruebas.
En la que: la distancia hace referencia a la separación en centímetros de la parte frontal del sensor con respecto al usuario, la luminosidad es la luz relativa del ambiente a la altura del sensor, la altura hace referencia a la distancia del sensor con respecto al suelo, el tiempo de toma es el periodo en el que se analiza el comportamiento y la posición de la mano es la postura que tendrá la mano con respecto al frente del sensor.
En cada caso de estudio, también se definen los 3 valores que tomaran las variables, a excepción del caso del análisis de “tiempos de respuesta en el reconocimiento de la mano”, en este no se definieron valores por defecto, puesto que es una variable poco definible desde la teoría. Para su análisis se tendrá en cuenta principalmente la demora de los sensores con respecto al cambio de posición a una distancia determinada.
Forma de la Mano
Empuñada
Palma Extendida con los Dedos Juntos
Palma Extendida con los Dedos Separados
40 Distancia
40 cm
55 cm
70 cm
Tabla 3: Valores Distancia.
Luminosidad
150 lux 300 lux 500 lux
Tabla 4: Valores Luminosidad.
Una vez se empezaron a desarrollar las pruebas, se observó que el comportamiento del RealSense con respecto a las distancias no es tan amplio como se planteaba en la teoría, por lo que las distancias constantes tuvieron que ser variadas como se muestra en la siguiente tabla, puesto que fue la distancia en la que se encontró empíricamente mayor equidad entre los sensores.
Dispositivos Distancia
RealSense F200 55 cm
Kinect v2 85 cm
Tabla 5: Modificaciones distancia por comportamiento.
Finalizadas las pruebas según lo descrito anteriormente, se tabuló el comportamiento de los sensores para cada caso, teniendo en cuenta la siguiente convención: 0 puntos mal funcionamiento, 1 punto funcionamiento aceptable y 2 puntos funcionamiento excelente. Los resultados se pueden ver en las tablas de autoría propia, basados en el trabajo realizado por el grupo, que se muestran a continuación:
41 Sensor 20cm<d<40 cm 40 cm 55 cm 70 cm 80 cm 80cm>d RealSense 1 2 2 2 1 0 Kinect v2 0 1 2 2 2 2
Tabla 6: Comportamiento según distancias.
Sensor Palma extendida, Dedos separados Palma extendida, Dedos juntos Puño RealSense 2 2 2 Kinect v2 2 1 1
Tabla 7: Comportamiento según forma de la mano.
Sensor 150 lux 300 lux 500 lux
RealSense 2 2 2
Kinect v2 2 2 2
Tabla 8: Comportamiento según luminancia.
Distan- cia Forma Ilumina- ción Tiempo Respues- ta a 55 cm Documenta- ción Consolida- do RealSense
F200 8 puntos 6 puntos 6 puntos 2 puntos 1 punto 23 puntos Kinect v2 9 puntos 4 puntos 6 puntos 2 puntos 4 puntos 25 puntos
Tabla 9: Consolidado aspectos.
Por último en la Tabla 9, de elaboración propia, se muestra el consolidado del trabajo previo del grupo de investigación más un factor añadido en la presente investigación: La documentación existente, que se refiere a el Entorno de desarrollo (los diferentes programas en los cuales se puede desarrollar a partir de
42
la información del sensor), el número de autores desarrollando (como se mencionó anteriormente la cantidad de personas trabajando con Kinect desde su primera versión es amplia, lo que genera que existan una comunidad científica amplia de respaldo), las guías de desarrollo existentes (incluye tutoriales, documentos y artículos) y la documentación de software.