http://mockinect.codeplex.com/) qui contrairement à son nom n’est pas un mock mais un injecteur (on ne peut pas toujours résister à un mot-valise).
MocKinect permet d’enregistrer les flux bruts venant des capteurs de la Kinect et de le stocker pour les rejouer ultérieurement. La librairie s’utilise en deux temps :
Une fois les enregistrements effectués, il est possible d’utiliser MocKinect SANS Kinect. Vous pouvez ainsi intégrer les tests Kinect dans une usine d’intégration continue et même contrôler leur exécution avec des outils de tests fonctionnels tels que FitNesse ou GreenPepper.
Pour favoriser l’utilisation de cette librairie, j’ai voulu limiter les freins inhérents à l’intégration de nouveaux frameworks en suivant ces deux principes :
Pour cela, j’ai opté pour une solution utilisant l’encapsulation. MocKinect est donc composé d’un ensemble de classes reprenant les prototypes des classes du SDK Kinect de Microsoft. Pour l’utiliser, il suffit de remplacer la directive d’inclusion du SDK par celle de MocKinect.
Remplacez:
using Microsoft.Research.Kinect ;
Par:
using MocKinect;
Le déclenchement d’un enregistrement ou d’une injection s’effectue par l’appel à la méthode SetMode.
// Mode proxy
kinectRuntime.SetMode(MocKinectMode.Reality);
// L'application reçoit les informations issues des capteurs de la Kinect
// Enregistrement
kinectRuntime.SetMode(MocKinectMode.Record, "SwipeGesture");
// L'application reçoit les informations issues des capteurs de la Kinect
// Ces informations sont en même temps enregistrées dans le fichier SwipeGesture
// Injection
kinectRuntime.SetMode(MocKinectMode.Replay, "PinchGesture");
// La véritable Kinect est désactivée
// Les flux précédemment enregistrés dans le fichier PinchGesture sont lus et injecter dans l'application
L’impact sur les performances est assez faible et peut être réduit en optimisant la gestion du tampon (buffer) d’enregistrement des flux. Une application recevant 25 images Kinect par seconde peut voir ce débit réduit à 20 images par seconde en utilisant MocKinect.
MocKinect est encore en version bêta et beaucoup de fonctionnalités peuvent être rajoutées pour améliorer la productivité des développeurs d’applications Kinect. Parmi celles-ci :
N’hésitez pas à partager vos recommandations ou m’indiquer votre envie d’être contributeur afin de mener ce projet à bien.
Dans la même veine, la Kinect Toolbox de David Catuhe permet d’enregistrer/rejouer un squelette et fournit de plus un socle de reconnaissance de mouvements (Gestures)
Au moment de l'écriture de cet article, Microsoft a annoncé la sortie officielle de la Kinect For Windows. Ce périphérique est similaire à la Kinect pour Xbox mais sera dédié à un usage PC. Cette nouvelle Kinect apportera un gain de performance et de précision, elle pourra gérer le "near-mode" (objet à 50 cm des capteurs). Son SDK intégrera la reconnaissance de mouvements types et permettra probablement la détection précise des doigts de la main. Rendez-vous le 1er février lors de la mise sur le marché de ce nouveau périphérique et les 7-8-9 février pour la conférence Microsoft TechDays.