À la recherche d'une librairie Kinect opérationnelle !

À la recherche d'une librairie Kinect opérationnelle ! - C++ - Programmation

Marsh Posté le 06-01-2012 à 16:24:18    

Salut à tous,
 
  Voilà je souhaiterais développer une application pour la kinect. Sans rentrer dans les détails, j'ai principalement besoin de récupérer l'image RGB et la carte de profondeur de la Kinect (probablement sous forme de vector). Je travaille en C++ sur Windows 7 64 bits avec Visual Studio 2008.
 
  Or je suis en train de m'arracher les cheveux à trouver une librairie me donnant des applications de bases ainsi que leurs sources que je pourrais utiliser.
 
  J'ai d'abord commencer avec OpenNi : parmi les différents samples fournis, il y a une application NViewer qui affichent ce que voit la Kinect ainsi que la carte de profondeur sous forme de nuances de jaune. Quand je lance l'application NiViewer, le tout marche bien. Mais quand j'ouvre le fichier sln correspondant et que je tente de compiler et d'exécuter, l'exécution me donne une fenêtre MSDOS affichant le message d'erreur "Open Failed : File not Found !". Après quelques recherches sur le net, il semblerait que cela soit dû aux drivers OpenNi et qu'il faille prendre les derniers drivers instables OpenNi. Quelqu'un a-t-il déjà eu le même problème avec OpenNi ?
 
  J'ai ensuite essayé le Kinect SDK fourni par Windows. Les applications samples marchent bien mais je ne peux pas ouvrir les sln des samples (par exemple SkeletonViewer) qui me demandent Visual Studio 2010 !
 
 
 
 
    Voilà peut-être avez vous d'autres librairies à me proposer, qui fonctionneraient bien avec ma plateforme (et mes logiciels) de travail.
 
 
   Merci d'avance  :jap:

Reply

Marsh Posté le 06-01-2012 à 16:24:18   

Reply

Marsh Posté le 06-01-2012 à 18:03:58    

Ton "Open Failed : File not Found !" il arrive quand?
Quand tu compiles?
Quand tu exécutes?
Et il concerne quel fichier?
Sinon pourquoi ne pas DL VS 2010 express pour tester?


---------------
Seul Google le sait...
Reply

Marsh Posté le 06-01-2012 à 19:32:23    

Mon erreur arrive lors de l'exécution. Les exe des samples fournis par défaut marchent bien (le NiViewer par ex), mais quand j'ouvre le fichier sln fourni correspondant à NiViewer, la solution compile mais l'exécution me donne ce message d'erreur dans une fenêtre DOS.
  En gros les applications fournies avec OpenNi marchent, mais quand je tente de les compiler ça plante à l'exécution.
 
Pour Visual Studio 2010 Express, je vais le dl pour tester. Mais comme c'est une version gratuite je suppose qu'il y a des limitations (alors que je possède la version complète de Visual Studio 2008).

Reply

Marsh Posté le 06-01-2012 à 22:19:34    

Ne serait ce pas le fichier de configuration qu'il manque?
Et si tu déplaces le fichier de l'application par défaut vers le répertoire de ton fichier compilé?
Les limitations sont en termes de fonctionnalités avancés. Pour les librairies, Au besoin tu peux télécharger le windows sdk pour le compléter. (y a qu'une version light avec)


Message édité par breizhbugs le 06-01-2012 à 22:19:51

---------------
Seul Google le sait...
Reply

Marsh Posté le 07-01-2012 à 16:42:49    

J'ai pris Visual Studio 2010 C++ Express donc je peux ouvrir les sln des samples fournis avec le SDK de Microsoft. J'ai donc ouvert le sln de SkeletalViewer, mais le défi reste de trouver où sont stocker l'image RGB et la carte de profondeur. Il y a pas mal de classes utilisée qui me sont inconnues. As-tu déjà travailler sur ce Kinect SDK ?

Reply

Marsh Posté le 07-01-2012 à 17:15:51    

Non.
Pourrais pas t'aider la dessus.


---------------
Seul Google le sait...
Reply

Marsh Posté le 07-01-2012 à 18:17:48    

Je pense avoir trouvé l'image de la caméra. Elle est stockée dans une variable pBuffer du type BYTE* (BYTE correspondant au type unsigned char). pBuffer semble contenir 640*480*4 BYTE et est du type NUI_IMAGE_TYPE_COLOR qui correspond à une image RGB32.
 
Afin de voir si pBuffer correspondait bien à l'image de la caméra, j'ai écrit les différentes valeurs de BYTE dans un fichier PPM (en sautant à chaque fois la 4ème valeur de chaque pixel, qui doit correspondre à l'alpha, càd pBuffer[3], pBuffer[7], pBuffer[11],etc...). L'image que j'obtiens "ressemble" bien à l'image de la caméra, mais elle semble trop bleue.
Est-ce que cela peut être dû au fait qu'à chaque fois que j'écris une valeur de pBuffer (un BYTE), je la caste en int (pour obtenir un int entre 0 et 255) ?

Reply

Marsh Posté le 08-01-2012 à 17:17:17    

normalement, quand tu initialises le SDK Kinect, y'a un jeu de constantes à lui filer pour lui dire si tu veux qu'il prenne le temps de te fournir l'image RGB, la depth, les squelettes ou n'importe quelle combinaison des trois, donc assure-toi déjà que tu as bien les bons flags passés.
 
J'ai déjà fait un peu de code y'a plusieurs mois pour faire du kinect sur PC, je pourrais toujours aller rechercher le code exact si t'en as vraiment besoin, mais j'ai pas souvenir que c'était particulièrement compliqué de récupérer les images.
 
Edit : si ton image est trop bleue, c'est peut-être que tu t'es vautré de canal. Visiblement, tu es parti du principe que tu étais en RGBA, c'est pas forcément le cas, ca ne me surprendrait qu'à moitié que tu sois en fait en ABGR, donc tu devrais peut-être plutôt skipper les pBuffer[0], pBuffer[4], ...


Message édité par theshockwave le 08-01-2012 à 17:24:13

---------------
last.fm
Reply

Marsh Posté le 08-01-2012 à 18:22:31    

En effet, je me trompais sur le format RGBA  :jap: .
 
Après plusieurs tests il s'avère que l'ordre est BGRA (assez vicieux je trouve  :D ).
 
 
 
Voilà reste le cas de la carte de profondeur, qui devrait poser moins de problème ^^.

Reply

Marsh Posté le 08-01-2012 à 18:32:21    

Suzaku13 a écrit :

En effet, je me trompais sur le format RGBA  :jap: .
 
Après plusieurs tests il s'avère que l'ordre est BGRA (assez vicieux je trouve  :D ).
 
 
 
Voilà reste le cas de la carte de profondeur, qui devrait poser moins de problème ^^.


 
en gros, soit tu as du RGBA, soit tu as du ARGB et avec les différences d'endianness, ca te fait deux cas supplémentaires à traiter, mais c'est assez courant de se planter, oui :)


---------------
last.fm
Reply

Marsh Posté le 08-01-2012 à 18:32:21   

Reply

Marsh Posté le 29-03-2012 à 11:36:28    

Bonjour !
 
Je suis un tout petit nouveau sur ce forum. Je viens de m'inscrire pour vous contacter suite à ce sujet lancé concernant la Kinect !
Je ne suis pas très doué en informatique (bien qu'en école d'ingénieur en informatique -__-" ). J'ai un projet à mener avec interface utilisant la kinect.
Je vous rassure, je ne demande aucune solution clef en main. Mon seul soucis est de comprendre ce que c'est qu'une SDK...  :fou:  Et surtout comment l'installer pour que ça marche quand j'essaie de coder des trucs sous VS 2010 ! Pare que pour l'instant je n'ai même pas accès aux librairies ni à rien (rassurez-vous, j'ai au moins compris ce qu'était une SDK. Plein de librairies avec des fonctions et des classes précodées !).  
 
A part ça, je suis perdu. J'ai lu dans ce message que Suzaku13 avait installé la SDK Kinect. C'est précisément ce que dont j'aimerais m'équiper pour coder. (j'avais déjà aperçu OpenNi dans mes recherches mais je préfère rester sur du micrsoft pour le moment)
 
Concrètement, je télécharge quoi comme SDK ? Je mets quoi ou ? Je crée quels liens dans visual pour qu'il reconnaisse la SDK et se l'approprie ?
 
Merci énormément de vos réponses d'avance, et peut-être pourrions-nous discuter kinect plus tard, une fois que je me serai plongé dedans et que j'aurais une petite expérience !
Cordialement,
 
Sylph.


Message édité par Sylphique le 29-03-2012 à 12:01:48
Reply

Marsh Posté le 29-03-2012 à 12:09:16    

Citation :

Concrètement, je télécharge quoi comme SDK ?

Faudrait peut être ne pas être équipé de deux mains gauches!
Je tape SDK Kinect sous google et en 2 clicks j'ai un lien sur "Download SDK"! :sarcastic:  
A+,


Message édité par gilou le 29-03-2012 à 12:11:16

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 29-03-2012 à 12:17:24    

Non mais le truc c'est que y'a des versions beta, des versions officielles et des trucs non officiels. Mais j'ai déjà choppé la version microsoft. C'est la suite qui me contrarie. T_T

Reply

Marsh Posté le 29-03-2012 à 13:13:04    

Et qu'est ce que tu as a faire des bétas et des trucs non officiels pour le moment, alors que tu n'as rien commencé?
Pour le reste, comme d'hab,  [:alkatraz]  
http://stackoverflow.com/questions [...] -2010-in-c  (a adapter pour une version non béta)
A+,


Message édité par gilou le 29-03-2012 à 13:13:58

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 29-03-2012 à 15:29:12    

On est obligé d'être sur VS pour utiliser ce sdk ?


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 29-03-2012 à 16:01:00    

Si c'est un ensemble de dlls il n'y a pas de raison à priori. Mais je répondais à la question posée:

Citation :

Et surtout comment l'installer pour que ça marche quand j'essaie de coder des trucs sous VS 2010 !


A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 11-04-2012 à 00:31:54    

Le sdk microsoft propose des libs pour c++ et c# sous visual. Ensuite, effectivement, ca pointe vers des dll qu'on peut utiliser avec n'importe quel langage. C'est juste plus pratique de pouvoir se referer simplement a la doc du sdk


---------------
last.fm
Reply

Marsh Posté le 26-04-2012 à 10:51:22    

AH j'avais oublié de vous remercier pour les réponses !
 
Merchii ! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed