Pregunta

Estoy interesado en escribir algún código casero para la consola de Microsoft Kinect. Tengo algunas aplicaciones que creo que se traducirían bien en la plataforma. He estado jugando con la idea de darle una oportunidad usando el Conductores y bibliotecas de Openkinect. Obviamente, esto sería mucho trabajo, pero me pregunto cuánto. ¿Alguien tiene experiencia con OpenKinect? ¿Obtiene solo los datos de video/audio sin procesar del dispositivo o alguien ha escrito abstracciones de nivel superior para facilitar las tareas comunes?

¿Fue útil?

Solución

los Brinda La biblioteca es básicamente un conductor, al menos por ahora, así que No esperes muchas funciones altas de ello. Más o menos obtendrás el datos sin procesar de ambos profundidad y el video cámaras.
Esta es básicamente una matriz recibida en una función de devolución de llamada cada vez que llega un marco.

Puede probarlo siguiendo las instrucciones proporcionadas en el Sitio web de Openkinect, es realmente rápido de instalarlo y probarlo, y puedes jugar un poco con el glview Aplicación proporcionada para tener una sensación de lo que es posible. He configurado algunas demostraciones usando opencv, y obtuve resultados geniales a pesar de que no tenía mucho fondo en la visión por computadora, ¡así que solo puedo alentarte a que lo pruebes tú mismo!

 
Alternativamente, si está buscando funciones más avanzadas, la Marco de OpenNi se acaba de lanzar esta semana y proporciona algunos algoritmos impresionantes de alto nivel como seguimiento de esqueleto y algo reconocimiento de gestos. Parte del marco son los algoritmos propietarios de Primesense (como el poderoso módulo de seguimiento de esqueleto ...). Todavía no lo he probado y no sé qué tan bien se integra con el Kinect y el sistema operativo diferente, pero dado que un grupo de tipos de diferentes grupos (Openkinect, Willow Garage ...) están trabajando duro en ello, eso no debería ' Será un problema dentro de una semana.

Otros consejos

Elaborando más sobre lo que Jules Olleon escribió, he trabajado con Openni (http://www.openni.org) y los algoritmos sobre él (NITE), y recomiendo usar estos marcos. Ambos marcos están bien documentados y vienen con numerosas muestras de las cuales puede comenzar.

Básicamente, Abierto Abraza los detalles de nivel inferior de trabajar con el sensor y su controlador para usted, y le brinda una forma conveniente de obtener lo que desea de un "generador" (por ejemplo, DROPHINERATOR para obtener los datos de profundidad sin procesar). OpenNI es de código abierto y es gratuito en cualquier aplicación. OpenNI también maneja la abastecimiento de plataforma para usted. A partir de hoy, OpenNI es compatible y funciona bien para Windows 32/64 y Linux, y está en proceso de ser portado a OSX. Los enlaces están disponibles para su uso en múltiples lenguajes de programación (C, C ++, .NET, Python y algunos otros, creo).

Casa tiene interfaces adicionales construidas sobre OpenNI, que le brindan resultados de nivel superior (por ejemplo, rastrear un punto de mano, esqueletos, análisis de escenas, etc.). Querrá verificar las sutilezas de la licencia de Nite con respecto a cuándo/dónde puede usarla, pero aún es probablemente la forma más fácil y rápida de obtener el análisis (por ejemplo, esqueleto) por ahora. Nite es de código cerrado, por lo que Primesense necesita suministrar una versión binaria para que lo use. Actualmente, las versiones de Windows y Linux están disponibles.

No he trabajado con OpenKinect, pero he estado trabajando con OpenNi y Sensorkinect durante unos meses para mi investigación. Si planea trabajar con datos sin procesar de Kinect, funcionan muy bien para brindarle profundidad y video (no admiten el control del motor). Lo he usado con C ++ y OpenGL en Windows 64bit y Ubuntu 32 bits casi sin modificaciones en el código. Es muy fácil de aprender si conoce C ++ básico. Instalarlo puede ser un poco de dolor de cabeza.

Para características más avanzadas, como la detección de esqueletos, el reconocimiento de gestos, etc., recomiendo usar los artículos intermedios como Nite con OpenNi o los que se proporcionan aquí: Middlewares desarrollados alrededor de Openni en lugar de reinventar la rueda. Nite también es muy fácil de usar una vez que tiene OpenNi funcionando; Por ejemplo, el reconocimiento conjunto es algo alrededor de 10-20 líneas de código adicionales.

Algo que recomendaría a mi yo más joven sería aprender y trabajar con un motor de juego básico (por ejemplo, Unity) en lugar de directamente con OpenGL. Le daría muchos gráficos mejor y más agradables, menos problemas y también le permitiría integrar fácilmente su programa con otras herramientas como Physx. No he probado ninguno, pero sé que hay algunos complementos para usar controladores Kinect en Unity.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top