Sommaire - IUT lille 1 GMPiut-gmp.univ-lille1.fr/fichiers/LPVI/RapportFinalkinect.pdf · circuit,...
Transcript of Sommaire - IUT lille 1 GMPiut-gmp.univ-lille1.fr/fichiers/LPVI/RapportFinalkinect.pdf · circuit,...
Bertrand PECUCHET
1
2012 / 2013
Sommaire
I. Introduction ..................................................................................................................................... 2
II. Présentation de la Kinect ................................................................................................................ 3
1. Caractéristiques : ......................................................................................................................... 4
III. Focus sur les différents capteurs de la Kinect ............................................................................. 5
1. Le capteur RGB ............................................................................................................................ 5
2. Capteur et émetteur Infrarouge .................................................................................................. 8
IV. Reconstruction 3D ....................................................................................................................... 9
1. Principe de mesure de la profondeur par triangulation ............................................................. 9
2. Model mathématique et explications ....................................................................................... 10
3. Calibration ................................................................................................................................. 11
4. Intégration de la profondeur et de la couleur ........................................................................... 12
V. Précision de la profondeur et densité du point ............................................................................ 13
1. Source d’erreur .......................................................................................................................... 13
2. Model théorique : erreur aléatoire ........................................................................................... 14
VI. Expérimentations et résultats ................................................................................................... 14
1. Calibrations des résultats .......................................................................................................... 14
VII. Perspectives futures pour la Kinect ........................................................................................... 15
1. Projets médicaux ....................................................................................................................... 15
2. Projets industriels ...................................................................................................................... 15
VIII. Conclusion ................................................................................................................................. 16
IX. Bibliographie .............................................................................................................................. 17
Bertrand PECUCHET
2
2012 / 2013
I. Introduction
Dans le cadre de notre formation en License professionnelle Gestion de la Production
Industrielle, spécialisation Vision Industrielle, il nous est demandé de réaliser un projet
bibliographique sur un des sujets qui nous est présenté en début d’année. Etant un grand fan de jeux
vidéo et de console de salon, il m’a paru naturel de choisir le sujet sur la Kinect et la reconstruction
3D afin de pouvoir améliorer mes connaissances et comprendre le fonctionnement de ce système.
La Kinect appelé aussi projet Natal avant sa sortie officielle a été développée par la société
Israélienne PrimeSence pour la console de salon Xbox 360 de Microsoft. Tout au long de ce rapport
bibliographique nous ferons une brève présentation du système pour ensuite nous concentrer sur
l’explication du fonctionnement de la reconstruction 3D de ce système.
Bertrand PECUCHET
3
2012 / 2013
II. Présentation de la Kinect
Il s’agit d’une caméra utilisant des techniques d’interaction développées par la société
Israélienne PrimeSense, Elle a longtemps été nommée par son nom de code « Project Natal » avant
d’être officialisée et baptisée juste avant un grand salon dédié aux jeux vidéos, l’E3, sous le nom
Kinect. Elle est connectée via un périphérique d’entrée directement branché sur la console de
Microsoft, la Xbox 360. Ce qui permet d’interagir par commande vocale, reconnaissance de
mouvement et d’image.
On peut ainsi jouer sur des jeux spécialement développés pour cette technologie sans aucune
manette ni périphérique mais seulement avec son corps.
Image publicitaire sur le site Xbox
Bertrand PECUCHET
4
2012 / 2013
1. Caractéristiques :
Capteurs :
o Capteur Infrarouge associé à un émetteur détectant la profondeur (cf. figure 1-1) et
un capteur RGB détectant la couleur (cf. figure 1-2). Les capteurs sont tous motorisés
ainsi que le socle pour permettre un suivi des déplacements.
Champ de vision :
o Champ de vision horizontal : 57 degrés
o Champ de vision vertical : 43 degrés
o Marge de déplacement du capteur : +/- 27 degrés grâce au socle (cf. figure 1-4)
o Portée du capteur : 1,2 m – 3,5 m (à partir de 50 cm pour la version Kinect for
windows)
Flux de données :
o 320 x 240 en couleur 16 bits à 30 images par seconde pour le capteur infrarouge
o 640 x 480 en couleur 32 bits à 30 images par seconde pour le capteur couleur
o Audio 16 bits à 16 KHz grâce aux 4 microphones (cf. figure 1-3)
Système de reconnaissance physique :
o Jusqu'à 6 personnes et 2 joueurs actifs (4 joueurs actifs avec le SDK 1.0)
o 20 articulations par squelette
o Application des mouvements des joueurs sur leurs avatars Xbox Live
Audio :
o Chat vocal Xbox Live et chat vocal dans les jeux vidéos
o Suppression de l’écho
o Reconnaissance vocale multilingue
Figure 1 : La kinect
Bertrand PECUCHET
5
2012 / 2013
III. Focus sur les différents capteurs
de la Kinect
1. Le capteur RGB Le capteur se situe sur la face avant de la Kinect, pour la prise d’images la caméra est couplée
avec un capteur CMOS, qui permet de capter les images à une vitesse de 30 images par seconde avec
une résolution VGA (Video Graphics Array) de 640x480 pixels. Le système RGB est simple, il combine
les 3 couleurs primaires tel que le rouge, le vert et le bleu, suivant l’association de ces 3 couleurs on
peut obtenir une image blanche ou un panel infini de couleur qui se situe dans le spectre visible de
l’œil humain (cf. figure 2).
Figure 2 : Spectre de la lumière
Ensuite nous pouvons parler du capteur photographique de type CMOS utilisé dans la Kinect.
Ces capteurs sont le résultat de l’intégration de cellules composées d’une photodiode et d’une
logique d’amplification puis d’obturation. Ils sont complexes à fabriquer mais sont produits selon des
techniques classiques de micro-électronique et de ce fait peuvent avoir des résolutions très
importantes (jusqu’à 24 mégapixels). Comme beaucoup de capteur, les capteurs CMOS pour
l’imagerie couleur sont associés à un filtre coloré et un réseau de lentilles du à la faible surface de la
photodiode, seule zone sensible.
Bertrand PECUCHET
6
2012 / 2013
Le capteur CMOS se compose d’une matrice de cellules photosensibles qui conservent leur
charge et les transfèrent elles-mêmes au convertisseur, là ou d’autres capteurs comme le CCD se
compose d’une matrice de cellules photosensibles qui transfèrent la charge vers un collecteur qui
transfère à son tour l’ensemble des charges vers le convertisseur.
Le capteur CMOS a l’avantage de ne pas transmettre une simple charge. Son photosite
intègre un amplificateur de tension lui permettant de convertir lui-même la charge électrique reçue.
Figure 3 : Capteur CMOS recouvert d’une grille photosensible de Bayer
Figure 4 : Surface d’un capteur CMOS
Les capteurs CMOS fonctionnent par champ de photodiode (PD) disposé en grille de Bayer
(cf. figure 3), chacune étant sensible à une seule des couleurs primaires (rouge, vert, bleu). C’est un
champ de « 0 » ou « 1 » qui recouvre alors le capteur. C’est donc une combinaison des valeurs de
chaque photodiode qui permet d’obtenir la couleur estimée de chaque pixel.
Bertrand PECUCHET
7
2012 / 2013
Le schéma suivant résume le principe du système RGB et les processus pour l’acquisition
d’une image avec un haut contraste et de très bonnes couleurs.
Processus du système RGB
Bertrand PECUCHET
8
2012 / 2013
2. Capteur et émetteur Infrarouge Un capteur CMOS infrarouge fonctionne quasiment de la même manière qu’un capteur CMOS
RGB sauf qu’il laisse uniquement passer les infrarouges grâce à un filtre. Voyons comment le
dispositif infrarouge de Kinect fonctionne.
Figure 5 : Capteur CMOS infrarouge
Actuellement, la majorité des matrices de détecteurs infrarouges est conçue comme sur la figure
5, c'est-à-dire en suivant une architecture dite hybride constituée de deux éléments distincts :
Une zone de détection constituée de M x N détecteurs élémentaires dont le rôle consiste à
transformer le flux de photons infrarouge incident en une image « électrique ».
Une zone de traitement du signal obtenue à l’aide d’un circuit intégré réalisé en silicium. Ce
circuit, appelé circuit de lecture sert à collecter et traiter le signal de chaque détecteur et à le
convertir dans un format exploitable par l’électronique de mesure (en générale une tension).
Cette architecture offre deux avantages :
Elle permet d’utiliser le silicium, le matériau le mieux adapté pour la détection.
Elle permet d’atteindre des facteurs de remplissage optique proches de 100%.
La technique utilisée ici pour connecter point à point la mosaïque de détecteurs élémentaires au
circuit de lecture en silicium est un contact électrique par l’intermédiaire de microbilles d’indium.
Bertrand PECUCHET
9
2012 / 2013
IV. Reconstruction 3D
Nous allons maintenant expliquer comment avec l’émetteur et le capteur infrarouge il est
possible de modéliser des scènes en trois dimensions.
1. Principe de mesure de la profondeur par triangulation Le capteur Kinect se compose d'un émetteur laser infrarouge, d’une caméra infrarouge et d’une
caméra RGB. La mesure de la profondeur se fait par un processus de triangulation. L’émetteur laser
émet un faisceau unique qui est subdivisé en faisceaux multiples par un réseau de diffraction afin de
créer un modèle constant de mouchetures projetées sur la scène (cf. figure 6). Cette tendance est
capturée par la caméra infrarouge et est comparée avec un modèle de référence. Le motif de
référence est obtenu en capturant un plan à une distance connue du capteur, et est stocké dans la
mémoire de la kinect. Cette configuration de la Kinect est réalisée en usine avant la
commercialisation. Quand la nuée de points est projetée sur un objet dont la distance au capteur est
plus petite ou plus grande que celui du plan de référence alors la nuée de points dans l'image
infrarouge est décalée dans la direction de la ligne de base entre le laser projecteur et le centre
optique (centre focal, point f) de la caméra infrarouge. Ces changements sont mesurés pour toutes
les taches par une simple procédure de corrélation, ce qui donne une image de disparité. Pour
chaque pixel la distance de la sonde peut alors être extraite de la disparité correspondante.
Figure 6 : motif obtenue par la diffraction du laser de l’émetteur infrarouge (speckles)
Bertrand PECUCHET
10
2012 / 2013
2. Model mathématique et explications Le schéma illustre la relation entre la distance d'un objet (point K) et de la sonde par rapport à un
plan de référence pour mesurer la disparité (d). Pour exprimer les coordonnées 3D des points de
l'objet que nous considérons comme un système de coordonnées de profondeur avec son origine au
centre optique de la caméra infrarouge. L’axe Z est orthogonal au plan de l'image vers l'objet, l’axe X
est perpendiculaire à l'axe Z dans la direction de la ligne de base (b) entre le centre de la caméra
infrarouge et du projecteur laser, et l'axe Y perpendiculaire à X et Z donnant un système de
coordonnées.
Schéma
Supposons qu'un objet se trouve sur le plan de référence à une distance de Zo du capteur, la
nuée de points projetée sur l'objet est capturée sur le plan image de la caméra infrarouge. Si l'objet
est déplacé plus près (ou plus loin) de la sonde alors l'emplacement de la nuée de points sur le plan
de l'image sera déplacée dans la direction X et sera mesuré en fonction de la disparité et des
coordonnées du point K. De Thalès, nous avons:
(1) (2)
Où Zk désigne la distance (profondeur) du point K de l’objet de l'espace, b est la longueur de
base, f est la distance focale de la caméra infrarouge, D est le déplacement du point K dans l'espace,
et d est la disparité observée dans l'espace image.
Bertrand PECUCHET
11
2012 / 2013
En remplaçant D dans les formules (1) et (2), et en exprimant Zk on obtient :
(3)
L’équation (3) est le modèle mathématique de base pour l'élaboration de la profondeur à
partir de la disparité observée à condition que les constantes Zo, F, et b soient déterminées par
étalonnage en usine.
(4)
Où Xk et Yk sont les coordonnées image du point, Xo, et Yo sont les coordonnées du point
principal, et δx et δy sont les corrections de distorsion de l'objectif, pour lesquelles différents
modèles avec différents coefficients existent. Notez que nous supposons que le système de
coordonnées image est parallèle à la ligne de base, et donc avec le système de coordonnées de
profondeur.
3. Calibration Comme mentionné ci-dessus, les paramètres d'étalonnage impliqués dans le modèle
mathématique pour le calcul des coordonnées 3D des mesures brutes de l'image comprennent:
La distance focale (f)
Les principaux points de décalages (Xo et Yo)
Les coefficients de distorsion de la lentille (en δx, δy)
La longueur de la base (b)
La distance du motif de référence (Zo)
En outre, on peut considérer un angle de désalignement entre l’axe des X du système de
coordonnées d'image et la ligne de base. Toutefois, cela n'affecte pas le calcul des coordonnées de
l'objet, si nous définissons un système de coordonnées de profondeur qui est parallèle avec le
système de coordonnées de l’image à la place de la ligne de base. Nous pouvons donc ignorer cet
angle de désalignement.
A partir des paramètres d'étalonnage indiqués ci-dessus les trois premiers peuvent déterminer
par un étalonnage standard de la caméra infrarouge. La détermination de la longueur de base et la
distance de référence sont toutefois compliquées pour la raison suivante. Dans la pratique, il n'est
pas possible de diffuser les disparités réelles mesurées, probablement en raison de la limitation de
bande passante. Au lieu de cela, la disparité brute a des valeurs normalisées entre 0 et 2047, et est
diffusée sur 11 bits.
Bertrand PECUCHET
12
2012 / 2013
Par conséquent, dans l'équation (3) d doit être remplacé par md '+ n. Avec d' l'écart normalisé de
la disparité, et m & n les paramètres d'une normalisation linéaire. Les inclure dans l'équation (3) et
en inversant il donne:
(5)
L'équation (5) exprime une relation linéaire entre l'inverse de la profondeur d'un point et sa
disparité normalisée correspondante. Pour observer la disparité normalisée d’un certain nombre de
points de l'objet (ou plans) à des distances connues du capteur, les coefficients de cette relation
linéaire peuvent être estimés de façon moindre au carré. Toutefois, l'inclusion des paramètres de
normalisation ne permet pas de déterminer b et Zo séparément.
4. Intégration de la profondeur et de la couleur L'intégration des données de profondeur et de couleur nécessite que l'orientation de la caméra
RGB soit faite par rapport aux coordonnées de profondeur du système. Depuis que nous avons défini
le système de coordonnées de profondeur au centre optique de la caméra infrarouge on peut
effectuer l'orientation par un étalonnage stéréo des deux caméras.
Les paramètres à estimer sont trois rotations entre le système de coordonnées de la caméra RVB,
de la caméra infrarouge, et de la position 3D du centre optique de la caméra RGB dans le système de
coordonnées de la caméra infrarouge. En outre, les paramètres d'orientation de l'intérieur de la
caméra RGB, c'est à dire la distance focale, la compensation et la distorsion de la lentille doit être
estimée. Une fois que ces paramètres sont connus, nous pouvons projeter chaque point 3D du point
de l'image RGB, interpoler la couleur, et l’affecter au point.
Bertrand PECUCHET
13
2012 / 2013
V. Précision de la profondeur et
densité du point
La précision et la densité des points sont deux mesures importantes pour l'évaluation de la
qualité d'un nuage de points. Dans les sections suivantes nous allons examiner les facteurs qui
influent sur la précision et la densité des données et présenter un modèle d'erreur théorique
aléatoire.
1. Source d’erreur Les erreurs et les imperfections dans les données Kinect peuvent provenir de trois sources
principales:
Le capteur
La mise en place de mesure
Les propriétés de surface de l'objet
Les erreurs des capteurs, pour un appareil qui fonctionne bien, viennent principalement d’un
étalonnage inadéquat et de mesures inexactes de disparités. Ces mauvais réglages peuvent conduire
à une erreur systématique dans le calcul des coordonnées des objets sur des points particuliers. Ces
erreurs systématiques peuvent être éliminées par un étalonnage approprié comme on a pu le voir
précédemment, c'est-à-dire un étalonnage en usine.
Les erreurs de mesure causées par la mise en place sont principalement liées aux conditions
d'éclairage et à la géométrie de l'image. L'éclairage influe sur la corrélation et la mesure des
disparités. En forte lumière les mouchetures laser apparaissent avec un faible contraste dans l'image
infrarouge, ce qui peut conduire à des valeurs aberrantes ou à un écart dans le nuage de points
résultant. La géométrie d'imagerie comprend la distance de l'objet et l'orientation de la surface de
l'objet par rapport au capteur. La plage de fonctionnement du capteur est entre 0,5 m à 5,0 m selon
les spécifications, et comme nous le verrons dans la section suivante, l'erreur aléatoire de
profondeur augmente avec la distance au capteur. Aussi, en fonction de la géométrie de l'image, des
parties de la scène peuvent être enfermées ou ombragées.
Les propriétés de la surface de l'objet influent également sur la mesure de points. Par exemple,
des surfaces brillantes sembleront surexposées dans l'infrarouge ce qui gênera la mesure de la
disparité, et qui donnera lieu à un écart dans le nuage de points.
Bertrand PECUCHET
14
2012 / 2013
2. Model théorique : erreur aléatoire Pour ce qui est de l’erreur aléatoire, c’est un calcul assez compliqué que je ne serai pas expliqué.
Il faut juste retenir que c’est en lien avec les paramètres d’étalonnages qui doivent être déterminés
avec précision et un calcul sur la variance de la disparité et l’écart-type de la profondeur. A savoir que
l’erreur de mesure de la profondeur est proportionnelle au carré de la distance entre le capteur et
l’objet, ce qui est assez important.
VI. Expérimentations et résultats
Des expériences ont été menées pour déterminer d'abord l'étalonnage des paramètres de la
sonde, puis pour rechercher les erreurs aléatoires dans les données de profondeur. Les sections
suivantes décrivent les tests et analysent les résultats.
1. Calibrations des résultats Un calibrage de la caméra standard a été effectué afin de déterminer les paramètres intérieurs
de la caméra infrarouge à l'aide de la PhotoModeler ®. Un total de 8 images ont été prises d'un motif
cible à partir d'angles différents. Pour éviter toute perturbation dans la nuée de points l'émetteur
laser a été couvert par un morceau de ruban adhésif opaque. Le tableau 1 résume les résultats de
l'étalonnage.
Tableau 1 : Paramètres de calibration de la caméra infrarouge
Bertrand PECUCHET
15
2012 / 2013
VII. Perspectives futures pour la
Kinect
Avec la création de Kinect for Windows de nombreux développeurs se sont lancés dans le
développement d’applications plus ou moins intéressantes.
1. Projets médicaux Une application a été mise au point au sein de l’hôpital canadien de Sunnybrook pour résoudre le
problème sur les interruptions intempestives des chirurgiens qui doivent quitter la zone stérile
pendant une opération pour pouvoir visualiser les images médicales dans une autre pièce. Désormais
ils peuvent simplement avec un geste de la main interprété par une Kinect, avoir les images et
zoomer sur celles-ci.
Des allemands ont su tirer profit de la Kinect en l’utilisant pour aider les personnes malvoyantes
dans leur déplacement. Le dispositif est composé d’une Kinect, d’un ordinateur portable, d’une
ceinture vibrante composée de 3 moteurs et d’un casque. L’ordinateur traite les signaux captés par la
Kinect et envoie les informations dans la ceinture pour prévenir l’utilisateur d’un obstacle.
2. Projets industriels Le laboratoire LYRIS a confirmé que le développement de plusieurs applications Kinect est en
cours notamment pour la sécurité des opérateurs. Le principe serait de détecter ou non la présence
d’opérateurs dans une salle pendant le travail des machines ou robots. En effet dans certains cas la
présence d’opérateurs peut être dangereuse. Ce système pourrait réduire le nombre d’accidents.
En ce qui concerne des applications dans le domaine de la vision industrielle je n’ai rien trouvé.
Ce qui m’étonne qu’à moitié car au vue des résultats actuels sur la précision des calculs de
profondeur, je pense que Kinect n’a pas encore sa place dans ce domaine où justement la précision
des mesures et l’interprétation des données est très importante.
Bertrand PECUCHET
16
2012 / 2013
VIII. Conclusion
Ce projet bibliographique a pour but de présenter la Kinect mais aussi d’expliquer le
fonctionnement de la reconstruction 3D avec le capteur infrarouge. Ce qui nous a permis de vous
présenter une analyse théorique et expérimentale sur le calcul des données de profondeur acquises
par le capteur Kinect. Nous pouvons ainsi tirer les conclusions générales suivantes :
Le nuage de points d'un capteur Kinect bien calibré ne contient pas de grandes erreurs
systématiques
L'erreur aléatoire d'une augmentation des mesures de profondeur quadratique avec la
distance croissante à partir du capteur et atteint 4 cm à la portée maximale;
La densité des points diminue également avec l'augmentation de la distance de la sonde. Un
autre facteur déterminant est la résolution de la profondeur qui est très faible à grande
distance (7 cm à la portée maximale de 5 m).
En général, pour les applications cartographiques, les données doivent être acquises à une
distance de 1 à 3 m du capteur. A des distances plus grandes la qualité des données est dégradée par
le bruit et la faible résolution des mesures de profondeur.
Bertrand PECUCHET
17
2012 / 2013
IX. Bibliographie
ACCURACY ANALYSIS OF KINECT DEPTH DATA K. Khoshelham. ITC Faculty of Geo-information Science and Earth Observation, University of Twente. Email : [email protected]
DEPTH CAMERA IN COMPUTER VISION AND COMPUTER GRAPHICS : AN OVERVIEW XIANG Xueqin, PAN Zhigeng, TONG Jing. State Key Lab of Computer Aided Design and Computer Graphics, Zhejiang University, Hangzhou 310058, China HUMAN DETECTION USING DEPTH INFORMATION BY KINECT Lu Xia, Chia-Chih Chen and J.K Aggarwal. The university of Texas at Austin, Departement of electrical and computer Engineering ACCURACY AND RESOLUTION OF KINECT DEPTH DATA FOR INDOOR MAPPING APPLICATIONS Kourosh Khoshelham * and Sander Oude Elberink Faculty of Geo-information Science and earth observation, University of Twente Présentation powerpoint : HOW DOES THE KINECT WORK ? By John MacCornick Site internet : http://www.techno-science.net/?onglet=glossaire&definition=7376
http://www.gameblog.fr/article-lecteur_612_comment-fonctionne-la-technologie-kinect
http://fr.wikipedia.org/wiki/CMOS
http://www.generationrobots.com/capteur-microsoft-kinect,fr,4,Kinect-Microsoft-Sensor.cfm
http://projets-labinfo.he-arc.ch/projects/magritte/wiki/Kinect#Les-librairiesFramework
http://cs-engineering.over-blog.com/article-kinect-capteur-3d-61729010.html
http://www.ros.org/wiki/kinect_calibration/technical
http://ensiwiki.ensimag.fr/index.php/Reconstruction_3D_temps-
r%C3%A9el_des_mains_en_mouvement