¿En qué se diferencian?Kinect SDK oficial vs. Alternativas de código abierto
¿Cuáles son las ventajas de elegir libfreenect u OpenNI + SensorKinect, por ejemplo, sobre el SDK oficial, y viceversa?
¿Cuáles son las desventajas?
¿En qué se diferencian?Kinect SDK oficial vs. Alternativas de código abierto
¿Cuáles son las ventajas de elegir libfreenect u OpenNI + SensorKinect, por ejemplo, sobre el SDK oficial, y viceversa?
¿Cuáles son las desventajas?
Tenga en cuenta que la respuesta a continuación es por fecha y es posible que algunos hechos estén desactualizados en el futuro cercano. El estado actual del SDK oficial de Kinect es beta 1.00.12.
La primera diferencia obvia es que el SDK oficial es mantenido por el equipo de Microsoft Research mientras que OpenKinect es un SDK de código abierto mantenido por la comunidad de código abierto. Ambos tienen sus contras y pros.
lenguajes de programación soportados:
funcionamiento:
Claramente Advantage OpenKinect.
licencia:
Documentación y soporte:
calibración Dispositivo:.
Diferentes dispositivos Kinect pueden diferir ligeramente dependiendo del lote que fueron producidos en este modo a veces se requiere la calibración del dispositivo. Pero:
Si bien es cierto que la calibración solo es necesaria para OpenKinect, esta es una gran ventaja para el SDK oficial ya que es más fácil distribuir e instalar aplicaciones sin necesidad.
Personalmente, después de un intento fallido con el SDK OpenKinect Fui con el SDK oficial, que
ACTUALIZACIÓN: partir del 1 de febrero 2012 No hay una licencia comercial para el SDK oficial: "La licencia comercial para esta versión autoriza el desarrollo y distribución de aplicaciones comerciales El SDK antes era una beta. y, como resultado, era apropiado solo para investigación, prueba y experimentación, y no era adecuado para su uso con un producto comercial final. La nueva licencia permitirá a los desarrolladores crear y vender sus aplicaciones Kinect para Windows a los usuarios finales que utilizan Kinect para Hardware de Windows en plataformas de Windows." Developer Frequently Asked Questions
¿Puedes también? Resalte algunas de las dificultades que encontró al intentar SDK de OpenKinect. En función de la funcionalidad, el diseño, la facilidad de uso y la estabilidad, ¿diría que OpenKinect es inferior en ese sentido en comparación con el SDK oficial? – greatwolf
@VictorT .: Lo probé antes del verano, no recuerdo los detalles sobre el fracaso. Creo que fueron los controladores que no pude instalar. Con el SDK oficial, sin embargo, esto fue solo un doble clic de distancia (después de instalar Windows 7, por supuesto :)). –
no te recomiendo el marco de la escoria. (Libcinder.org)
Es compatible tanto con OpenNI y Kinect develoment, si estás usando C++. Ahora soporta Kinect SDK 1.7 y OpenNI 2, a través de estos bloques de cemento:
MS Kinect SDK 1.7 (estable) https://github.com/BanTheRewind/Cinder-MsKinect
OpenNI 2/NITE 2,2 (alfa) https://github.com/wieden-kennedy/Cinder-OpenNI
Ambos pueden hacer seguimiento esquelético del boz, OpenNI es capaz de rastrear hasta seis esqueletos simultáneamente. OpenNI 2 está ganando rápidamente en el Kinect, aunque el nuevo Kinect probablemente cambiará cuando salga el próximo mes. Sin embargo, es poco probable que los principios subyacentes básicos cambien. El inconveniente principal con la versión inicial de OpenNI era que requería una posición de activación de cuerpo completo para reconocer a un usuario, lo que era un factor decisivo para muchas aplicaciones; sin embargo, parece que esto se resolvió en las versiones más nuevas y en las nuevas versiones de OpenNI. OpenNI 2 también admite el seguimiento de mano robusto a corta distancia, aunque todavía requiere un gesto de enfoque inicialmente. Si trabajas en Mac o Linux, es prácticamente tu única opción.
Estoy usando el repositorio de wieden-kennedy, pero todavía no consigo que reconozca el kinect. Sin embargo, funcionará con una xtion. – Kat
Como se explica por Avada Kedavra en su/su answer, estas son algunas diferencias interesantes:
En mi opinión personal, la diferencia más significativa entre las soluciones de código abierto y Microsoft SDK está estrictamente relacionada con el algoritmo de seguimiento del esqueleto .
Si bien las API abiertas/libres y los SDK de Microsoft pueden proporcionar datos de profundidad y RGB, la implementación de funciones de rastreo esquelético no es solo una cuestión de ingeniería inversa.
Para implementar dicho algoritmo, los desarrolladores deben tener sólidas competencias en reconocimiento de patrones y áreas de aprendizaje automático, y estoy seguro de que ese tipo de conocimiento está disponible entre la comunidad de código abierto. Pero la implementación del seguimiento esquelético se basa en un algoritmo "entrenado", que requiere una gran cantidad de experimentos para recopilar una gran cantidad de datos. Estos datos se utilizan luego para "entrenar" el algoritmo, que puede reconocer las articulaciones esqueléticas.
Obtener suficientes datos, pero también ajustarlos y usarlos correctamente, requiere mucho tiempo y dinero. Los investigadores y desarrolladores de Microsoft se encuentran en las mejores condiciones para trabajar en este tipo de cosas, simplemente porque es su trabajo.
En mis experiencias anteriores, noté que las soluciones de código abierto proporcionan una buena capacidad de seguimiento esquelético, pero no están al mismo nivel de lo que Microsoft ofrece con su SDK.
Recuerde también que Microsoft SDK proporciona muchas capacidades adicionales, como el reconocimiento facial o la orientación conjunta, y varios widgets muy útiles si quiere construir rápidamente una GUI gestual.
Lo que sugiero es: si está trabajando en un proyecto en el que simplemente necesita datos de profundidad y/o RGB, o si tiene la necesidad de utilizar un lenguaje de programación que no es compatible con Microsoft SDK, entonces debe optar por la solución de código abierto. De lo contrario, Microsoft SDK sería mi mejor opción.
Estoy compilando una lista a continuación. ¿Hay alguna área específica de interés para las diferencias? –
No realmente. Un grupo de amigos y yo estábamos pensando en desarrollar una pequeña aplicación de kinect, que probablemente recurrirá a técnicas de realidad aumentada. –
El problema es que algunos de nosotros usamos Linux/Mac y tengo un problema con la escritura de código que obligatoriamente estará bloqueado en Windows. –