Icono del sitio ARCO Research

ModuleKinectV2Capture

Como ya se mencionaba anteriormente, la primera etapa del proyecto KinBehr consiste en el desarrollo de un módulo software que permita la captura, visualización y almacenamiento de los datos generados por el dispositivo Kinect.

Acerca de Kinect

El primer paso para proceder al desarrollo de este módulo consiste en conocer a fondo el dispositivo que va a ser empleado. El dispositivo en cuestión es el controlador Kinect de segunda generación desarrollado y comercializado por Microsoft. Tras el éxito cosechado por la primera generación de Kinect (tanto la version para Xbox como la version de Windows), Microsoft decidió desarrollar y lanzar una nueva version de su dispositivo con numerosas mejoras y novedades.

Entre las diferentes características técnicas de Kinect v2 (o de segunda generación) destacan la siguientes:

A continuación se muestra una tabla comparativa entre la primera y segunda generación de Kinect.

Una vez comentadas las características técnicas más destacadas de la Kinect v2 y la comparación con su antecesora, es el momento de comentar brevemente las funcionalidades más destacadas que han sido incorporadas en el nuevo SDK (SDK 2.0) en comparación con su antecesor (SDK 1.8):

Módulo

Módulo desarrollado en C# mediante la segunda versión del SDK de Kinect de Microsoft. Dicho módulo es el encargado de capturar, procesar y almacenar los datos capturados mediante la segunda versión del dispositivo Kinect en un sistema Windows 8 o superior.

Como ya se anticipaba anteriormente, los datos capturados por dicho módulo son los siguientes:

<frame>
    <timestamp>1741,9766486</timestamp>
    <users>
        <user>
            <id>72057594037928201</id>
            <IsRestricted>False</IsRestricted>
            <IsTracked>True</IsTracked>
            <ClippedEdges>None</ClippedEdges>
            <joints>
                <SpineBase>
                    <position>
                        <positionx>0,03596888</positionx>
                        <positiony>-0,4235814</positiony>
                        <positionz>2,419032</positionz>
                        <TrackingState>Tracked</TrackingState>
                    </position>
                    <orientation>
                        <orientationx>-0,07805847</orientationx>
                        <orientationy>0,8758811</orientationy>
                        <orientationz>0,036816</orientationz>
                        <orientationw>-0,4747461</orientationw>
                    </orientation>
                </SpineBase>
                <SpineMid>
                    ...
                </SpineMid>
                ...
        </user>
        <user>
            ...
        </user>
    </users>
</frame>

Generación de los videos de esqueletos

Llegados a este punto, es posible que alguno haya pensado porque se ha decido almacenar los datos de los usuarios que proporciona Kinect en ficheros XML y no generar directamente vídeos dónde se representen los esqueletos de dichos usuarios. La razón que motiva esta decisión es muy simple: la conservación de la información. De esta forma, almacenando los datos en ficheros XML no se pierde ninguna información que posteriormente pueda ser requerida (para otros propósitos a los perseguidos en este proyecto o que de momento no se han contemplado). De esta forma, es realmente simple generar los vídeos a partir de estos ficheros XML (la transformación contraría, de vídeo a datos numéricos de usuarios, sería más compleja y supondría pérdidas de precisión).

Para la generación de dichos vídeos de esqueletos se ha desarrollado un pequeño programa que permite la generación de vídeos a 25 frames por segundo a partir de los datos de tracking generados por Kinect (ficheros XML). El resultado de este tipo de vídeos son los esqueletos de los usuarios detectados, donde por claridad se ha decidido representar tan sólo los puntos que representan las articulaciones. A continuación se muestra una imagen obtenida mediante este pequeño programa (aunque se muestra desde un punto de vista frontal, este puede ser cambiado y representarse desde cualquier perspectiva).

Requisitos

Es importante destacar que los requisitos necesarios para ejecutar dicho sistema son los siguientes:

  1. Requisitos del sistema operativo:
    • Windows 8 (64 bits)
    • Windows 8.1 (64 bits)
    • Windows Embedded Standard 8 (64 bits)
    • Windows Embedded Standard 8.1 (64 bits)
  2. Requisitos de hardware:
    • Procesador de 64 bits (x64)
    • Procesador de doble núcleo a 3,2 GHz o más
    • Bus USB 3.0 dedicado
    • 2 GB de RAM
    • Un sensor Kinect para Windows v2
  3. Requisitos de software:
    • Microsoft Visual Studio 2013 Express u otra edición de Visual Studio 2013, Microsoft Visual Studio 2012 Express u otra edición de Visual Studio 2012
    • .NET Framework 4.0
    • Microsoft Speech Platform SDK v11 para el desarrollo de aplicaciones con funciones de voz para Kinect para Windows

Ejecucción

A continuación se muestran algunas imágenes del módulo en funcionamiento:

En la próxima entrada del proyecto KinBher se tratará sobre como se ha empleado este módulo en la generación del nuevo dataset para el proyecto.

Salir de la versión móvil