Detección del cuerpo humano mediante cámara 3D.
Introducción:
Dentro del proyecto “Adamo Robot” que se esta desarrollando por parte de Mytra Control S.L. hay una parte de detección del cuerpo humano en una camilla mediante una camara 3D.
El objetivo es poder detectar, con una cámara de visión estereoscópica, el desplazamiento de un paciente dentro de una camilla. Aplicando técnicas de visión artificial se busca detectar la posición y orientación del paciente.
Algoritmos estudiados
Se han utilizado tres grandes grupos de algoritmos para la detección de objetos y son los siguientes:
- Algoritmos básicos de visión por computador: Se detectan diferentes características básicas del cuerpo humano, como color, tamaño, posición y orientación estadística en tres dimensiones. Estas técnicas son rápidas y fiables en entornos controlados pero en entornos variables con distintos tipos de paciente pueden ocasionar errores.
- Algoritmos 3D de “Shape matching ”: Con estos algoritmos se trata de minimizar el error entre los dos dos volúmenes del cuerpo correspondientes a dos posiciones distintas. Después se obtiene la matriz de transformación entre los dos volúmenes obteniendo resultados muy precisos. El problema de estos algoritmos es que requieren de mucha capacidad de computo para que los resultados obtenidos sean precisos, por lo que no siempre son viables económicamente.
- Aprendizaje profundo: Los algoritmos de “ Shape matching ” que se pueden aplicar en tiempos bajos y usando pocos recursos hardware dan muchos falsos positivos, por esa razón se intenta mejorar la precisión del algoritmo con aprendizaje profundo. Se ha tratado de usar una red neuronal convolucional profunda previamente entrenada para detectar los puntos clave del cuerpo humano. Con esto se obtienen buenos resultados.
Resultados
Los resultados obtenidos con diferentes pacientes se muestran a continuación.
- Si se le da mas importancia a los algoritmos de "Shape matching " el resultado es el mas preciso, aunque esto es a costa de aumentar considerablemente el tiempo de computación, ademas estos algoritmos funcionan bien para pacientes de todo tipo.
- Si se usan las técnicas estadísticas de nube de puntos y de visión artificial, el tiempo de computo es significativamente mas bajo, sin embargo, estos algoritmos son muy sensibles a las condiciones del entorno y a variaciones entre los distintos pacientes.
- Usando la red neuronal profunda se consigue detectar los puntos principales del cuerpo humano y por lo tanto se consigue conocer la posición y orientación de los pacientes. La validez de este método depende de lo aleatorio y representativo que sea el set de datos usado en el entrenamiento de la red.
Conclusiones
El resultado en el calculo del desplazamiento de los pacientes ha sido satisfactorio, pero se ha tenido que hacer un balance entre tiempo de computo y precisión deseada. Se puede concluir que es posible detectar la posición y orientación exacta del cuerpo humano mediante visión estéreo. Los mejores resultados de precisión frente a tiempo de computo se han obtenido aplicando aprendizaje profundo, aunque, si no se quiere optar por redes comerciales entrenadas previamente, se requiere un gran esfuerzo en la adquisición de un buen set de datos de entrenamiento.
Para realizar el procesamiento de las imágenes y el calculo del desplazamiento se ha subido el algoritmo final a la nube por lo que la aplicación es escalable en el futuro. Como posibles mejoras se valora el uso de computación paralela en unidades de procesamiento gráfico (GPGPU), lo que aceleraría en gran medida los algoritmos de "Shape matching".