Rubrique du Docteur Sub n°2

Et voici le deuxième article de la rubrique du Docteur Sub, j'espère sincèrement qu'il vous plaira. La vulgarisation a été plus difficile pour moi que pour le premier article. Si des passages ne vous semblent pas clairs, n'hésitez pas à me le dire et je les corrigerais pour une meilleure accessibilité. A très bientôt.

.

 

La technologie Kinect :

Annoncée en grande pompe lors de la conférence Microsoft de l'E3 2009,
la technologie Kinect (ex-Project Natal) propose de jouer avec son corps,
renvoyant au placard nos vieilles manettes de jeu. Au lieu de débattre sur
l'intérêt ou non de Kinect pour notre univers vidéoludique, essayons de
comprendre ensemble le fonctionnement de la bête. Le Docteur Sub vous livre sa
deuxième enquête/autopsie exclusive.

Kinect ? Késako?

 

Après avoir disséqué la bête, je
peux vous affirmer que Kinect est une évolution très ingénieuse d'une caméra
classique. Celui-ci combine et embarque un grand nombre de technologies
différentes de façon très originale et intelligente. Attention toutefois, je ne
sais pas si la retranscription des mouvements sur l'écran sera efficace, cette
partie étant « quasi-exclusivement » dépendante du logiciel de traitement
d'images en développement chez Microsoft depuis de nombreuses années.

 

Ce périphérique de Microsoft est
constitué d'une barre horizontale connectée à sa base via un petit moteur.
Celui-ci permet à la caméra d'effectuer des
petits mouvements vers le haut ou le bas
(27°C semble-t-il) afin
d'adapter la perception de la caméra en fonction de votre position dans la
pièce. La barre horizontale constitue l'élément principal de la technologie
Kinect. Elle contient une série de multi-microphones, une caméra RGB, et enfin
un « 3D depth sensor » permettant d'améliorer l'analyse de mouvement par
rapport à une caméra comme l'EyeToy. L'association de ces trois technologies
devrait ainsi permettre la reconnaissance vocale et faciale de l'utilisateur,
ainsi que la « motion capture » de l'ensemble de la pièce (et donc du corps) en
3D. Cet article va donc se diviser en 3 parties correspondant à chacun des
trois éléments de Kinect.

 


Figure 1 : Un petit récapitulatif des technologies embarquées dans
Kinect. Traduction pour les non anglophones : Multi-array Mic : Multiples
Microphones, Motorized tilt : Pied motorisé, 3D depth sensors : Analyseur de
distance 3D

 

« Xbox Explique moi »

 

Je vais donc commencer cette
autopsie par une courte présentation des microphones. Pourquoi courte ? Tout
simplement car la reconnaissance vocale
ne sera pas implanté en français
lors du lancement de Kinect. Et pour nous,
monolingue français, c'est un scandale ! Non ? Bon, Kinect embarquera
vraisemblablement 2 microphones ainsi que 4 détecteurs digitales externes de
sources audio. La combinaison de l'ensemble de ce système audio permet ainsi à
Kinect de détecter la localisation
spatiale d'une source sonore
mais aussi d'éliminer les bruits de fond parasites grâce à un traitement de
données efficace.

 

Un microphone va fonctionner de
la même façon qu'une oreille humaine: celui-ci va traduire l'onde sonore, émise
par une source, en signal électrique. Lorsque l'onde sonore vient toucher
/exciter la membrane (aussi appelé diaphragme) du microphone, l'excitation de
cette membrane va se traduire en signal électrique analogique avant d'être
converti en signal numérique. Le diaphragme est l'équivalent du tympan dans
notre oreille et son fonctionnement est identique en tout point. Pour convertir un signal analogique en
signal numérique, il est obligatoire d'utiliser un convertisseur
analogique/numérique.
Celui-ci est généralement constitué d'un montage
électronique dont la fonction est de traiter une valeur analogique, pour
ensuite générer une valeur numérique. Cette valeur numérique sera
proportionnelle à la valeur analogique permettant de coder sur plusieurs
niveaux (bits). Le plus souvent les valeurs analogiques sont des signaux
électriques (comme dans notre cas décrit ci-dessus).

Je vous avoue que je n'ai pas
trouvé quel procédé était utilisé pour la localisation spatiale mais celui-ci
devrait vraisemblablement s'appuyer sur la comparaison de la « puissance » des
signaux sonores reçus. Si vous êtes placés à droite, alors le micro et les
détecteurs externes de droite recevront un signal « plus fort » que ceux de
gauche. Mais cela reste une hypothèse personnelle.

 

La camera RGB (Red Green Blue)

 

La première des deux caméras
embarquées dans la technologie Kinect est une caméra couleur RGB « standard » avec un capteur photographique de type CMOS. Elle se situe au centre
de la barre horizontale (cf figure 1). Pour les férus de détails techniques,
elle permet une prise d'image avec une fréquence de 30Hz, en couleur 32bits et
en résolution VGA de 640x480pixels.

 

Je vais tenter de vous expliquer
le fonctionnement des capteurs photographiques intégrant l'ensemble des
appareils photos ou caméras numériques actuellement dans le commerce.

 

Qu'est ce qu'un capteur photographique ? C'est un composant électronique
sensible à la lumière qui va convertir un rayonnement (Ultra Violet, Lumière
visible ou Infra Rouge) en un signal analogique (une nouvelle fois via un
signal électrique). Ce signal est ensuite numérisé par un convertisseur
analogique-numérique afin d'obtenir une image numérique. Mais avant d'aller
plus loin, il est essentiel de redéfinir les
rayonnements et la lumière
en quelques termes barbares : les ondes électromagnétiques. Pour
faire simple, la lumière est composée de l'ensemble des ondes
électromagnétiques visible par notre œil. Ces ondes possèdent une « longueur
d'onde » (une fréquence) propre pour chaque couleur que nous connaissons.
Lorsque cette longueur d'onde est comprise entre environ 400 et 800 nanomètres,
nous sommes dans la gamme des couleurs et de la « lumière visible ».

Pour des longueurs d'ondes
inférieures ou supérieures, nous retrouvons les rayonnements avec les domaines
des ultraviolets, des infrarouges, des rayons X ou des ondes radio. (Figure 2)

Figure 2 : Représentation du spectre électromagnétique. Comme vous
pouvez le voir, la lumière visible et les couleurs ne représentent qu'une toute
petite partie de ces ondes.

 

La lumière est composée de 3
couleurs primaires qui sont le Rouge, le Vert et le Bleu comme illustrées sur
la Figure 3. L'association de ces 3 couleurs permet d'obtenir la lumière
blanche. Le noir représente l'absence totale de couleur. Chaque couleur est
donc définie selon le système RVB (ou RGB en anglais) c'est-à-dire en fonction
de la proportion respective en rouge, vert et bleu. Ces trois couleurs sont
aussi à la base des 3 pixels de couleurs composant les écrans LCD, LED...

 

Contrairement aux couleurs primaires en peinture (cyan, magenta et
jaune), les trois couleurs primaires de la lumière sont le rouge, le vert et le
bleu.

 

Pour convertir le signal
analogique reçu en image numérique, le capteur photographique va filtrer la
lumière selon ces 3 couleurs et sortir trois signaux numériques correspondant à
chacune d'elles. Actuellement, deux grandes familles de capteurs sont
disponibles : les CCD et les CMOS.

 

Les CCD sont surtout utilisés
dans les appareils compacts mais sont de plus en plus délaissés dans les
reflex. Je ne détaillerai pas le principe des photocapteurs CCD (demandant des
connaissances en physique-chimie) car le résultat final est le même que pour la
technologie CMOS.

 

Le CMOS est représenté sous la
forme un petit « écran » de taille variable comme vous pouvez le voir sur la
photographie ci-dessous. La partie sensible à la lumière est la partie grisâtre
au centre. Certains capteurs CMOS peuvent actuellement atteindre une résolution
hallucinante de 25 millions de pixels et la technologie ne cesse de progresser.

 

Figure 3 : Exemplaire d'un capteur photographique de type CMOS
développé par Sony.

 

Comment le capteur fonctionne ?
La lumière (l'image) arrive en face du capteur, celle-ci est d'abord purifiée
par un filtre Infra Rouge (bloquant les ondes infrarouges et laissant passer la
couleur), puis traverse un « mini filtre » de couleur rouge, vert ou bleu placé
en face du capteur lui même. Ainsi les millions de capteurs présents à la
surface du CMOS vont émettre un signal électrique relatif à une des 3 couleurs
qui sera ensuite converti numériquement.

 

Figure 4: Fonctionnement d'un capteur photographique de type CMOS pour
les appareils photos numériques et les cameras couleurs.

 

Les propriétés de votre appareil
photo ou de votre caméra vont dépendre majoritairement du capteur CMOS (ou CCD)
présent dans votre appareil. Ainsi pour les téléphones portables, des capteurs
de plus en plus petits sont fabriqués afin d'économiser le maximum de place, au
détriment de la qualité de l'image obtenue.

Maintenant que nous avons vu le
principe du capteur CMOS pour la caméra RGB, nous allons pouvoir passer aux
choses sérieuses avec le « 3D depth sensor ».

 

Figure 5 : Exemple de capteur photographique de taille réduite pour les
téléphones mobiles.

 

« 3D depth sensor »

 

Jusqu'à présent nous avons vu les
technologies microphones et caméra RGB « classique » mais c'est véritablement
avec sa technologie « 3D depth sensor » (comprenez capteur de
profondeur/distance 3D) que Kinect tire son épingle du jeu. Cette technologie a
été proposée par la société israélienne PrimeSense. La caméra de droite sur la
figure 6 est une caméra infrarouge (pas de couleur) à capteur CMOS, QVGA de
résolution 320x240, 16bits (donc possédant 65536 niveaux de sensibilité).
L'objectif à gauche de Kinect n'est pas une caméra, comme beaucoup pourrait le
penser, mais un émetteur de lumière infrarouge. C'est pourquoi certaines images
de Kinect sont représentées avec une lampe lumineuse comme sur la figure 6.

 

Figure 6 : C'est deux exemples (Kinect et une télécommande Microsoft)
illustrent des émissions infrarouges non visible par notre œil.

 

Comment fonctionne un capteur
CMOS infrarouge ? De façon identique à une caméra RGB sauf qu'on ne laisse
passer uniquement les infrarouges (revoir figure 2). La caméra infrarouge
permet d'obtenir une image représentant les dégagements thermiques émis par
l'objet observé. Ce type d'images furent largement popularisées par le film
Predator et sa mythique vision infrarouge. Cependant, les images obtenues ne sont
pas colorées, ce sont les utilisateurs qui décident de rajouter les niveaux de
couleurs en fonction de la température mesurée.

 

Figure 7 : Il n'est pas trop mignon ? Sur cette image, nous pouvons
voir que les émissions de chaleurs proviennent essentiellement des yeux et de
la bouche.

 

Je vous vois déjà lever le doigt
: «  Mais Monsieur, comment  peut-on faire un détecteur de distance avec
une image thermique ? Les yeux du chien sont bien plus éloignés que le bout de
sa truffe ! ». Et bien tout simplement, parce que, Kinect ne s'appuie pas sur
la chaleur émise par notre corps. En effet, tout l'intérêt de Kinect provient
de son émetteur (lampe) de lumière
infrarouge.

La scène contenant les joueurs
est bombardée par les rayons infrarouges non visibles à l'œil. Une partie de
ces rayonnements va être réfléchie par l'ensemble des surfaces touchées. Plus
l'objet sera loin et plus le nombre de rayonnement infrarouge réfléchi (renvoyé
vers la caméra) sera faible. A l'inverse, plus l'objet sera proche et plus le
nombre de rayonnement infrarouge réfléchi sera important.  Ainsi la caméra infrarouge va mesurer la
distance de l'objet en fonction de son intensité comme illustrer sur l'exemple
ci-dessous.

 


Figure 8 : Voici une scène de jeu (à gauche) et l'image recueilli par
la camera Kinect (à droite).  Nous
pouvons voir qu'il est ensuite très facile pour la caméra de reconnaître la
silhouette du joueur et par un traitement d'image, d'intégrer les différents
points de « motion control ».

 

Le pouf à l'avant est de couleur
jaune symbolisant un objet plus proche. S'il était observé par une caméra
infrarouge classique, il serait invisible avec le fond du décor car il n'émet
aucune chaleur. Grâce à la différence de couleur entre le joueur et le fond, il
est facile de distinguer l'ensemble de sa silhouette, mis à part les pieds en
contact avec le sol. Ensuite, ce sont les logiciels qui vont effectuer le
traitement des images reçues, en intégrant les différentes parties du corps à
l'image.

 


Figure 9: Ce schéma résume la technologie Kinect : la lampe infrarouge
va être projeté sur la scène, la caméra infrarouge va ensuite filmer cette
scène et le puce PS1080 SoC va traiter les données afin d'estimer la distance
de chaque objet par rapport à la caméra.

 

Ainsi, d'après la figure 9 (image
de droite), il est possible de cartographier avec précision la distance pour
tout objet éloigné de 1,5 à 2 mètres de la caméra jusqu'à environ 4-5 mètres de profondeur. Au
delà de 5 mètres,
le rayonnement IR réfléchi devient trop faible pour être mesurable avec
précision. Pour tout objet dont la distance est inférieure à 2 mètres, le phénomène
inverse est observé et le signal devient totalement saturé. La publication récente des distances
recommandées confirme cette limitation technique : la distance pour pouvoir
jouer à deux joueurs est de 2,4 mètres.

L'avantage de l'utilisation de la
lampe IR est de pouvoir jouer dans toutes les conditions de luminosité ! Même
si certaines fonctionnalités devraient être affectées comme la reconnaissance
faciale (caméra RGB) ou le scan des objets (utilisant la caméra RGB, dépendante
de la luminosité).

 

Conclusion :

Il est difficile de savoir si
Kinect répondra aux attentes du public. Théoriquement, cet outil pourrait libérer
le joueur de la manette et lui conférer une liberté totale. En effet, d'un
point de vue technique Kinect est un petit bijou de technologies et de bonnes
idées. Mais, le développement du logiciel de traitement de données semble représenter
une limitation. Ainsi le temps de latence observé jusqu'à présent dépend de
l'analyse complexe en « direct » des images filmées. Espérons que
« l'amélioration » promis par Microsoft arrive très rapidement au risque
d'être le véritable point noir de Kinect.


Figure 10 : Pour finir en beauté pour tous nos amis geeks, un beau
schéma résumant l'ensemble des technologies Kinect décrites dans cet article.

 

Docteur Sub