Sistema propuesto
Este proyecto pretende desarrollar un sistema que combine el análisis de imágenes de intensidad y profundidad con una base de conocimiento donde se contenga información de alto nivel sobre acciones humanas. De esta forma, partiendo de los datos proporcionados por el dispositivo Kinect, el sistema deberá realizar diversos tratamientos que permitan lograr el objetivo final del sistema: el análisis contextual del comportamiento humano.
Por un lado, los diferentes flujos de vídeo proporcionados por Kinect serán empleados para el reconocimiento de los objetos que se encuentran en la imagen. Para ello, será necesario emplear técnicas de visión por computador que permitan la identificación de los objetos que se encuentran en la escena.
Por otro lado, Kinect ofrece otro tipo de información que resulta de gran interés para el desarrollo de este proyecto. Esta información consiste en el reconocimiento y seguimiento de las personas que se encuentran en escena. De esta forma, Kinect permite obtener información bastante precisa acerca de la posición en el espacio tridimensional de las articulaciones de las personas identificadas. Por lo tanto, esta información será de gran utilidad para el desarrollo de un método que permita el reconocimiento acciones humanas partiendo de la posición en el espacio de las articulaciones que componen el esqueleto humano. Este reconocimiento será una primera aproximación del resultado final que será procesado en la última etapa del sistema.
Finalmente, en la última etapa el sistema combinará, razonará y corregirá los resultados obtenidos en las etapas de reconocimiento de objetos y de acciones humanas. Para ello se hará uso de la base de conocimiento «Scone». Scone fue creada por Scott Elliot Fahlman, un científico de la Universidad Carnegie Mellon. Se trata de un sistema escrito en Common Lisp que permite representar, de forma eficiente, conocimientos del mundo real para posteriormente poder realizar inferencias, tanto del conocimiento general de sentido común como del conocimiento aplicado a un dominio específico y poder llegar, a través de éstas, a un conocimiento más complejo.
Por sí mismo, Scone no es un sistema completo de Inteligencia Artificial, sino que es un componente software diseñado para ser utilizado en una amplia gama de aplicaciones software. Se trata de una base de conocimiento desarrollada específicamente para dar soporte al razonamiento común humano y el entendimiento del lenguaje humano. De esta forma, el sistema podrá tomar las decisiones más apropiadas en base a la información obtenida en las etapas anteriores para determinar las acciones que se están llevando a cabo en cada momento por una persona.
Para la evaluación y validación del sistema será necesario disponer de una batería de casos de entrenamiento y otra de testeo. Se realizará una revisión del estado del arte para identificar la existencia de dataset públicos que puedan servir para entrenar al sistema. Sin embargo, el sistema a desarrollar no se basará en el reconocimiento de acciones aisladas, sino que buscará interpretar y entender la actividad de más alto nivel que está siendo desarrollada por la persona para mitigar así los errores de reconocimiento de acciones que carecen de sentido en el contexto actual y que son reportadas por el sistema. Para ello, será necesario generar un dataset en el que se pueda asegurar que las personas están realizando las acciones con las que se ha entrenado el sistema pero de una manera racional, es decir, motivada con un objetivo concreto. Por lo tanto, también será objetivo de este proyecto la generación de dicho dataset a partir de la grabación y etiquetado de escenarios concretos, donde se realice al menos un número relevante de las acciones con las que el sistema haya sido entrenado. Dichas acciones dependerán de las acciones disponibles en los datasets públicos ya que, utilizando un dataset para entrenar el sistema distinto del utilizado para su evaluación, se asegurará la validez del sistema propuesto.
Estructura del proyecto
Como ya se anticipaba en la sección anterior, el proyecto se compone de los siguientes módulos y sistemas:
- ModuleKinectV2Capture: módulo encargado de capturar la información proporcionada por el dispositivo Kinect.
- Data preprocesing: módulo encargado de pre-procesar y normalizar los datos del dataset.
- BoKP: sistema encargado de realizar una primera aproximación en el reconocimiento de acciones humanas basándose en el bag-of-key-poses.
- Object detection: sistema encargado de detectar e identificar los objetos presentes en una secuencia de vídeo dada.
- CSHAR: sistema encargado de razonar los resultados obtenidos en los sistemasBoKP y Object detection y obtener de esta forma los resultados finales en la tarea del reconocimiento de acciones humanas.
En la siguiente imagen se puede observar el flujo de información y la secuencia de funcionamiento del sistema propuesto.