Según Les spécifications techniques de Kinect enfin révélées les spécifications pour le champ de profondeur sont (ces correspondances sont également confirmées dans le guide de programmation officiel comme posté par Mannimarco) :
* Horizontal field of view: 57 degrees
* Vertical field of view: 43 degrees
* Physical tilt range: ± 27 degrees
* Depth sensor range: 1.2m - 3.5m
* Resolution depth stream: 320x240 pixels
* Resolution color stream: 640x480 pixels
Mais d'après ma propre expérience, la gamme de capteurs de profondeur est plutôt de l'ordre de 0.8m-4.0m
Au moins, j'obtiens de bonnes lectures dans cette gamme. Cette gamme correspond à la fiche technique de Primesense postée par mankoff dans les commentaires ci-dessous.
Il est également important de se rappeler que la résolution en profondeur est beaucoup plus élevée près du capteur que plus loin. À 3-4 mètres, la résolution est loin d'être aussi bonne qu'à 1,5 mètre. Cela devient important si vous voulez, par exemple, calculer les normales de la surface. Le résultat sera meilleur près du capteur que plus loin.
Il n'est pas difficile de tester la gamme vous-même. Le SDK officiel (actuellement en version bêta) vous donnera une profondeur de zéro (0) lorsque vous êtes hors de portée. Donc, vous pouvez tester cela avec une simple règle, et tester à quelle distance vous obtenez / n'obtenez pas de lecture supérieure à zéro. Je ne sais pas comment le SDK OpenKinect gère les lectures hors de portée.
Un commentaire sur le bruit : je dirais qu'il y a pas mal de bruit dans le flux de profondeur, ce qui le rend plus difficile à travailler. Par exemple, si vous calculez les normales de la surface, vous pouvez vous attendre à ce qu'elles soient un peu "sautillantes", ce qui aura bien sûr un impact négatif sur les faux éclairages, etc. En outre, vous avez un problème de parallaxe dans le flux de profondeur en raison de la distance entre l'émetteur IR et le récepteur. Cela peut également être difficile à gérer car cela laisse une grande "ombre" dans les données de profondeur. Cette vidéo youtube démontre le problème et discute d'un moyen de résoudre le problème en utilisant des shaders. C'est une vidéo qui vaut la peine d'être regardée.
1 votes
Le PO devrait préciser quelles données il souhaite obtenir. Les différents angles FOV ci-dessous sont dus a) aux différents capteurs et données dans un Kinect (RVB vs. Profondeur) et b) au pré- ou post-alignement, etc.
0 votes
Il y a plusieurs versions avec des paramètres de profondeur très différents, par exemple la mienne utilise des valeurs de données brutes de 16 bits et non 11/12/13 bits ! !! ce qui n'est mentionné nulle part (le format des données brutes est différent) (mon modèle est le 1414 pour la réduction XBOX360+PC...vraiment vieux) il a une portée de profondeur minimale ~0.95m ! !!. sur les modèles plus récents vous pouvez vous approcher jusqu'à ~0.4m. Le pilote pour les modèles plus récents semble fonctionner correctement avec les modèles plus anciens. aussi si vous voulez utiliser des accéléromètres vous devez savoir que l'accès n'est pas rapide ~10ms et leur précision est aussi pauvre ~1%.
0 votes
Après quelques mesures plus précises de ma kinect, je détermine qu'elle a une résolution en profondeur de ~0.121 mm et que les données brutes sont linéaires jusqu'à 2.0 m, après quoi je n'ai pas vérifié.
2 votes
Les données brutes ont 0,121 mm par valeur, mais le capteur utilise environ 32x cette valeur par pas, donc la résolution réelle de la profondeur est d'environ 3,872 mm.