Une dimension supplémentaire

Une expérience de Réalité Augmentée

TrackStereo3-Gratf1

Pour réaliser cette expérience, nous avons associé Le Playstation Eye de Sony à la librairie GRATF de Andrew Kirillov

 

Le Playstation Eye est une caméra qui a été commercialisée par Sony en octobre 2007, quelques mois après la sortie de la console Playstation 3 qui lui est associée. Conçue dès l’origine comme un accessoire interactif de communication, ses remarquables caractéristiques l’adaptaient à des applications de vision par ordinateur et de reconnaissance de mouvements.

 

 

TrackStereo3-1
La caméra PS3 eye en capture.

L’utilisation de ce périphérique sur un PC nécessite l’installation préalable d’un driver adapté au système d’exploitation de la machine (Windows 7, ici). On pourra télécharger celui qui est proposé par le site Code Laboratories (http://codelaboratories.com/downloads/ ). Dans notre cas, c’est le fichier CL-Eye-Driver-5.0.1.028.exe que nous avons utilisé. Nous pourrons ensuite raccorder le PS3 eye au PC et tester son bon fonctionnement à l’aide du petit programme CL-Eye Test qui est installé avec le driver.

TrackStereo3-2
Copie d’écran présentant CL-Eye Test en action à travers une mise en abime (la camera filme l’image qu’elle restitue,…).

GRATF (Glyph Recognition And Tracking Framework) est un projet de librairie (sous licence GPL), adaptée à la reconnaissance et au suivi de graphes, présents dans des images ou des flux vidéos. Andrew Kirillov, qui est l’auteur de ce projet sous licence GPL, propose différents usages de cette librairie, dont, bien entendu, son intégration possible dans des applications de Réalité Augmentée. On trouvera ainsi sur le site web de GRATF ( http://www.aforgenet.com/projects/gratf/), un certain nombre de ressources destinées aux développeurs ainsi que des exécutables dont « Glyph Recognition Studio.exe » (présent dans gratf-2.0.1-bin.zip), que nous présentons ici.

Après sélection de notre caméra (PS3Eye Camera) depuis le menu « File > Local Video Capture Device« , l’application nous permettra de dessiner notre graphe, l’associer à différents éléments proposés (une image fixe ainsi qu’un modèle 3D au format XNA) et enfin l’imprimer pour le présenter ensuite à la caméra.

On pourra constater l’efficacité du tracking et le positionnement précis des surimpressions (particulierement spectaculaires avec les modèles 3D), en tournant et déplaçant la carte (tout en la maintenant, bien sûr, l’intégralité du graphe dans le champ de vision de la caméra).

Les copies d’écran qui suivent, présentent les différentes visualisations proposées par l’application : 3D Model, Images, Borders et Names.

TrackStereo3-Gratf5

TrackStereo3-Gratf7

TrackStereo3-Gratf6

Stéréoscopie vs Multiscopie

ana-P1010626rs

L’anaglyphe ci-dessus est destiné à démontrer les limites de la perception d’une scène à travers une simple image stéréoscopique. La tête apparait ici en jaillissement (le mur vertical, dans laquelle cette sculpture est encastrée, est positionné en très léger retrait du plan image). Une visualisation correcte d’une telle image impose, et c’est là une véritable contrainte, une position relativement précise de l’observateur : ce dernier devant être placé face à son écran et à une distance adaptée à sa dimension (dans notre cas : une soixantaine de centimètres pour un écran 23″).
Les problèmes vont apparaitre lorsque l’observateur, désireux de découvrir cette étrange sculpture sous un angle différent, sera tenté de se déplacer latéralement devant son écran : Ce déplacement n’aura malheureusement pour effet que de distordre les volumes !

CaptureDroite-Gauche

Couple stéréoscopique croisé présentant les 2 captures qui ont été utilisées pour produire l’anaglyphe présenté plus haut.

Mais ce qui est vrai pour l’anaglyphe, l’est tout autant pour les autres formats d’images visibles aujourd’hui sur la plupart des écrans 3D (qu’ils soient à alternat temporel ou polarisés). D’autres solutions proposent cependant, dans certaines conditions, le multi-point de vue : on peut citer les dispositifs de tracking associés à des écrans 3D, les systèmes lenticulaires ou à barrière de parallaxe, l’holographie, les afficheurs volumétriques, ou d’autres dispositifs plus confidentiels.

Le nombre de points de vue proposés par ces derniers systèmes peut varier considérablement selon les technologies et les applications. Leur production ne pose guère de difficultés avec des images modélisées (la multiplication des cameras virtuelles n’a d’incidence que sur le temps de calcul), mais pour des captures de scènes réelles, les choses deviennent beaucoup plus compliquées !…
Elles peuvent être envisagées:
– par l’utilisation d’un appareil de capture unique se déplaçant sur un rail (une solution qui n’est guère possible qu’en studio et pour des scènes parfaitement immobiles),
– par l’utilisation d’un rig d’autant d’appareils de prise de vue que d’images à produire (une solution plus que complexe et coûteuse à mettre en oeuvre),
– soit par la production de nouvelles images à partir d’un nombre limité de captures réelles.

C’est cette dernière solution que nous allons mettre en oeuvre en faisant appel à un logiciel spécialisé : il s’agit de StereoTracer de la société Triaxes Ltd.
Nous allons, à l’aide de cette application, travailler en 2 étapes :
– La première, va consister à générer une carte de profondeur (une « depth map ») à partir de notre couple d’images,
– La deuxième étape va solliciter le logiciel pour, cette fois, générer de nouvelles images, à partir de la depth map et de l’une des deux photographies initiales.

Ces 2 étapes du traitement sont illustrées ci-dessous :

StereoVsMulti2-1
La production de la Depth-map …

StereoVsMulti2-2
… et ensuite de la série d’images.

Ce sont ici 12 images que nous avons fait générer par StereoTracer. Nous les présentons ci-dessous sous la forme d’une gif animée produite à l’aide de Gimp.

AnimationStereoVsMulti

Cette animation peut évoquer certaines représentations d’images en relief qui font alterner les 2 images d’un couple stéréoscopique (effet dit « wiggle »). Elle intègre cependant un nombre bien supérieur d’images. Ce sont en effet ici pas moins de 22 images qui se succèdent pour chaque cycle d’affichage : le déroulement se faisant d’abord dans un sens, puis dans l’autre afin de revenir à la première image de la série : img1, img2, img3, img4, img5, img6, img7, img8, img9, img10, img11, img12, img11, img10, img9, img8, img7, img6, img5, img4, img3, img2.

Mais n’est présentée ici qu’une succession d’images 2D que nous envisageons, maintenant, de remplacer par des anaglyphes.
Le format gif, qui a l’avantage de produire des fichiers relativement légers, a cet inconvénient en contrepartie, de n’exploiter qu’une palette de couleurs très réduite. Utiliser ce format pour créer des animations d’anaglyphes est peu concevable. Le PNG, qui serait bien mieux adapté, ne pouvait être exploité qu’en image fixe jusqu’à l’apparition très récente d’une extension (non officielle) à ce format qui est l’APNG. Le poids des animations s’accroit quelque peu ( !) avec l’APNG, mais ses avantages sont considérables : gestion des images 24-bits et transparences 8-bits. Aujourd’hui, seuls 2 navigateurs sont capables d’exploiter totalement l’APNG : Mozilla firefox depuis sa version 3 et Opera depuis sa version 9.5.
Un certains nombres d’outils sont disponibles pour créer des animations au format APNG. Nous avons utilisé ici le plug-in APNG Editor de Firefox.

Pour produire les anaglyphes, nous avons associé par couples les images de notre série.

CreaAnimAPNG

L’anaglyphe A1 est créé à partir du couples d’images 1 et 7, l’anaglyphe A2 avec les images 2 et 8, etc…

Notre séquence d’anaglyphes sera donc composée de : A1, A2, A3, A4, A5, A6, A5, A4, A3 et A2, soit de 10 images.

La copie d’écran suivante présente APNG Editor en cours de création de l’animation.

CreaAnimAPNG2

Le poids des fichiers APNG devient vite considérable. L’image qui suit, volontairement limitée à une dimension de 329×263 pixels pèse tout de même 2,58 Mo (en 658×526, son poids monterait à 10.3 Mo,…).

animation-APNG

Rappelons qu’il est nécessaire de disposer d’un navigateur compatible avec le format APNG pour que l’animation puisse être visionnée. Dans le cas contraire, l’image n’apparaitrait que sous la forme d’un traditionnel anaglyphe au format PNG, c’est à dire, désespérement statique.

Une première conversion 2D/3D

La production d’images en relief à partir de simples photographies est une discipline qui ne peut que fasciner les amateurs. La qualité de certaines réalisations peut parfois être discutable, mais les résultats tout à fait exceptionnels obtenus sur d’autres, démontrent clairement le potentiel de tels traitements.
Un certain nombre d’outils logiciels spécialisés sont aujourd’hui disponibles. Mais certaines images peuvent se prêter à la conversion par des traitements et filtrages relativement simples.

La photographie qui suit a été prise sur le site du temple Beng Mealea au Cambodge. Elle montre des racines de fromagers qui, s’insinuant entre les pierres, ont étrangement formé une lettre « A » (comme Angkor ?) sur les restes d’un mur vertical. J’ai eu beaucoup de regret, en redécouvrant ultérieurement cette photographie, de n’avoir fait qu’un seul cliché de cette curiosité. Mais nous allons, par conversion, produire une seconde image qui nous permettra de disposer d’un couple stéréoscopique.

2D3D-01

Après avoir chargé la photographie dans Gimp, un calque transparent est ouvert. Il sera destiné à la réalisation d’une carte de profondeur. Les pierres sont couvertes par un gris dont la valeur positionnera le mur en léger retrait de l’écran. Les parties des pierres qui ne sont pas situées sur ce plan, leurs interstices ainsi que les racines sont soigneusement évitées à ce stade.

 

2D3D-02

Les valeurs de gris d’une carte de profondeur positionnent les plans dans la profondeur de l’image : les extrêmes sont le blanc pour les plus rapprochés et le noir, pour les plus éloignés. Les espaces entre les pierres se verront donc appliquer un gris plus foncé, tandis que les parties les plus jaillissantes des racines, au contraire sont recouvertes avec un gris plus clair. Le traitement est réversible en permanence. Il suffit de gommer les zones qui ne donnent pas satisfaction pour retrouver en arrière plan la photographie originale et reprendre une peinture pour l’améliorer.

2D3D-imgdcarte
Les images ci-dessus présentent côte à côte les 2 calques : La carte de profondeur et la photographie originale.

Le calque de l’image originale étant placé au dessus de celui de la carte, on pourra ensuite lancer par le menu, la commande : Filtres > Mappage > Déplacer selon une carte….

Certains ajustements sont nécessaires dans la fenêtre de réglage. La case « Déplt X » devra, bien entendu, restée cochée. La valeur que l’on va associer à ce déplacement va déterminer l’accentuation de la profondeur en fonction des gris employés. On ira chercher dans le menu déroulant situé sur la même ligne, l’image de notre carte. Par contre, un déplacement en Y n’a pas de raison d’être dans notre utilisation de cette fonction et la case « Deplt Y » devra être décochée.
La validation de ces paramètres va lancer la conversion de notre image. On pourra alors tester le résultat sous la forme d’un couple stéréoscopique en positionnant l’image obtenue à côté d’une copie de l’image originale. Pour une vision croisée, l’image traitée sera positionnée à gauche.
Pour revenir au travail sur la carte de profondeur, on n’oubliera pas d’annuler le traitement afin de retrouver l’image originale sur laquelle pourra être lancé un nouveau filtrage.

Les images suivantes présentent les résultats obtenus après montage de nos 2 vues sous la forme d’un couple stéréoscopique croisé et d’un anaglyphe.

2D3D1-crossed

 

2D3D1-ana

 

 

 

Anamorphose et Phantogram

Un « phantogram » est destiné à être disposé horizontalement et visionné à 45°. Mais cet angle de vision, qui produit des effets si intéressants, a aussi quelques inconvénients !

Phantos3-01

L’illusion que l’on a d’un élément dressé est une élévation de son image imprimée. Les lignes vertes du schéma, qui joignent l’oeil aux extrémités supérieures et inférieures du phantogram, délimitent la zone dans laquelle se créent les illusions de volumes. Cette zone autorise les élévations maximales (et donc, les plus spectaculaires) dans la région la plus proche de l’observateur. Cette situation n’est pas gênante lorsque le phantogram ne présente qu’un élément isolé (c’est d’ailleurs le cas le plus courant !). Mais elle est totalement à l’inverse de ce que l’on rechercherait dans des scènes traditionnelles. Dans la composition d’une image « normale », il est tout de même préférable que les éléments hauts soient relégués dans les plans lointains, ne serait-ce que pour éviter qu’ils ne masquent les autres ! Les spécificités du phantogram auraient donc tendance, à priori, à limiter son usage à des situations très particulières.

Mais le phantogram peut tout à fait s’accommoder de la dispersion d’une image sur des plans différents. Notre réalisation a été inspirée par les « livres en relief » pour enfants tels que celui qui est présenté ci-dessous.

Phantos3-02

Le principe est d’étendre notre phantogram sur 2 plans liés, l’un horizontal et l’autre vertical.

Les prises de vues initiales sont présentées ci-dessous.

Phantos3-05ab

Les points blancs qui apparaissent sur les photographies, sont des pastilles adhésives appliquées sur le décor pour faciliter les corrections de perspective. Les images suivantes présentent les vues de la machine à coudre après rectifications et corrections. L’anaglyphe a été composé à l’aide de ces 2 images.

Phantos3-06ab

Phantos3-07

 

Les tirets placés sur les côtés de l’anaglyphe situent le raccordement des 2 plans. Les corrections de perspective des parties de l’image situées au dessus et en dessous de cette ligne, ont été produites avec les mêmes techniques que celles qui ont été réalisées précédemment.

L’image qui suit présente maintenant notre phantogram imprimé puis appliqué sur son support, à la manière d’un livre en relief ouvert.

Phantos3-08

Reconstruction 3D

Cette article présente une reconstruction 3D effectuée par la plateforme Automatic Reconstruction Conduit (ARC) 3D web service (http://www.arc3d.be). Le projet ARC3D est développé par le laboratoire VISICS de la Katholieke Universiteit à Leuven (K.U.Leuven).

Ce service web propose des conversions à partir de séries de photographies que l’on aura préalablement transféré sur les machines de l’université via une application dédiée : Arc3D Uploader (téléchargeable après enregistrement).

Les vignettes suivantes présentent les images qui ont été « uploadées » (sous une résolution de 2816 x 2112 pixels) pour cette expérimentation.

Chap0a6

Une rotation partielle, effectuée autour de l’édifice, a permis de réaliser ces clichés à l’aide d’un modeste compact numérique. Les conditions de capture n’étant pas des plus favorables, l’alignement des images est très approximatif et leur éclairage est loin d’être uniforme ( !). Et pourtant, malgré ces imperfections, on pourra juger de la qualité tout à fait exceptionnelle du travail de conversion effectué.

ARC3D restitue des modèles sous les formats :v3d et obj avec diverses densités de maillage : 4702619 polygones pour notre modèle v3d et 435032 pour le « full resolution model » au format obj. Une version plus légère est également produite. Elle est destinée à être visionnée en ligne, à la condition de disposer d’un navigateur compatible avec la technologie WebGL.

Le logiciel Meshlab (http://meshlab.sourceforge.net) est particulièrement adapté aux modèles au maillage dense. L’image suivante présente notre modèle au format obj, chargé dans cette application.

ChapMeshlab3

Meshlab est un outil très puissant destiné à retravailler des fichiers maillés obtenus le plus généralement par scannérisation 3D (et donc à maillage très, très dense !). Mais il est également possible d’exploiter le modèle obj avec un logiciel de modélisation tel que blender (http://www.blender.org). Dans ce dernier cas, une réduction du nombre de polygones (effectuée avec Meshlab, ou blender lui-même) permettra de soulager le logiciel si l’on souhaitait intégrer le modèle dans un environnement plus évolué.

ChapBlender1

 

L’anaglyphe suivant nous permet de juger de la qualité de la restitution du volume de l’édifice après la reconstruction. Il a été réalisé avec 2 captures d’écran (des vues décalées obtenues par rotation du modèle dans Meshlab).

ana2-Chapelle-640

 

Auto stéréogramme par répétition

Le terme autostéréogramme, regroupe des types d’images très différents qui vont du simple couple stéréoscopique (observable, dans ce cas, sans équipement particulier), aux différentes catégories plus connues par leurs acronymes anglophones comme les SIRDS, les SIRTS, etc…
Alors que le terme SIS (Single Image Stereogram) est très général, les SIRDS (Single Image Random Dot Stereogram) désignaient plus précisément à l’origine les images réalisées à l’aide de nuages de points. Mais il s’emploie parfois aujourd’hui dans un sens beaucoup plus large. Les SIRTS (Single Image Random Text Stereogram) ne sont pas conçus à partir d’images mais de textes. Il peuvent malgré tout produire des résultat tout à fait étonnants. On peut également trouver dans la littérature spécialisée des termes moins courants tels que les SICDS (Single Image Context Dot Stereogram) et différentes déclinaisons selon l’emploi de nuages de points en noir et blanc ou en couleur.

Les autostéréogrammes sont généralement conçus pour être observés en vision dite parallèle. Pour percevoir le relief, il faut donc laisser son regard traverser l’écran.

Auto1

Cet autostéréogramme, réalisé entièrement à l’aide de Gimp, est composé d’éléments provenant de photographies personnelles prises au Cambodge. Le fond de l’image du ballon est étendu à la surface du ciel, tandis que le Prasat et le singe ont été détourés et extraits de leurs environnements.

Auto-elements

Chacun des éléments est répété horizontalement. Les écartements vont déterminent leur implantation dans la profondeur de l’autostéréogramme.
Un traitement particulier a été mis en oeuvre pour la réalisation du sol afin de lui donner cet effet de plan horizontal. Pour cela, une surface texturée a été conçue à partir d’un extrait de photographie et un effet de perspective a été appliqué à la surface.

Auto1-Sol-Result

 

 

—————————–

Etant conscient que certaines personnes éprouvent des difficultés à s’immerger dans les autostéréogrammes, voici, à leur intention, notre image présentée sous la forme d’un anaglyphe !;).

AutostereoAnag