Une dimension supplémentaire

Une profondeur interprétée: Conversion 3D de « Destiny » de John William Waterhouse

Destiny-CoupleCroise-980p2Couple stéréoscopique croisé.
A propos des « curiosités »,  pas uniquement spatiales, de cette peinture, un lien vers une page à lire: « Mirrors that reflect the feminine vision in Destiny and other Waterhouse paintings » – Maya Taylor ’08, English and History of Art 151, Brown University, 2006: http://www.victorianweb.org/painting/jww/paintings/taylor12.html

Automatic Photo Pop-up

Nous ne devons pas exclusivement à notre vision binoculaire, la perception de la troisième dimension. Un certain nombre d’éléments présents dans une photographie nous permettent d’appréhender la profondeur de la scène qui a été capturée. La taille relative des éléments, l’occlusion de certains d’entre eux par d’autres, les éclairages et les effets de perspective, le gradient des textures, etc… sont autant de sources d’informations que nous sommes en mesure d’interpréter. Les images animées peuvent apporter des informations supplémentaires qui enrichiront notre perception.
Mais si le cerveau humain est capable de « comprendre » la profondeur d’une scène par une simple observation de sa projection sur une surface plane, un « déchiffrement » artificiel de cette même image ne pourrait-il pas également en être capable, et permettre une reconstruction tri-dimensionnelle de cette scène de manière totalement automatique ? Des travaux, portant sur cette problématique, ont amené des chercheurs à développer des algorithmes que certaines applications, disponibles par internet, permettent d’expérimenter.

Automatic photo pop-up ( http://www.cs.uiuc.edu/homes/dhoiem/projects/popup/index.html ) est une application que nous devons à Derek Hoiem (Carnegie Mellon University). Le nom « photopopup » fait allusion aux livres en relief pour enfants. Et ce programme de conversion est en effet tout particulièrement adapté aux scènes caractérisées par la présence d’un plan horizontal supportant des éléments en élévation. Des exécutables sont proposés au téléchargement en deux versions : l’une pour Linux et l’autre pour Windows.
La photographie qui suit, capturée à Venise, nous a semblé toute indiquée pour tenter cette conversion.

 

Stereovision01-1

 

Photo pop-up s’éxécute sur une image qui aura été préalablement segmentée. Pour ce traitement, l’auteur exploite l’implémentation en C++ de l’algorithme décrit par Pedro F. Felzenszwalb et Daniel P. Huttenlocher dans le document « Efficient Graph-Based Image Segmentation » (http://cs.brown.edu/~pff/papers/seg-ijcv.pdf). L’image suivante présente notre photographie après un traitement de ce type.

Stereovision02-2

 

L’exécutable photopopup, lancé en lignes de commande, va ensuite interpréter l’image segmentée et créer un fichier wrl qui aura pour texture l’image originale. Le couple stéréoscopique croisé qui figure ci-dessous a été obtenu par deux captures de la scène wrl, visionnée à l’aide du browser XJ3D.

Stereovision02-3a3b

 

Les images suivantes sont extraites de captures d’écran. Elles présentent différentes vues de la scène sous la forme d’anaglyphes qui sont directement produits par BS Contact VRML/X3D ( Configuration > Stereo > Red/Blue ).

Stereovision02-4

 

 

Stereovision02-6

Stereovision02-5

 

Comme on peut le constater, la conversion 2D/3D de notre photographie à l’aide d’Automatic photo pop-up donne d’excellents résultats! Il me semble utile de rappeler qu’elle a été effectuée sans aucune assistance.

Troisième conversion 2D/3D

Dans certaines conditions, des cartes de profondeur peuvent être produites par de simples traitements graphiques appliqués directement sur les images à convertir. Le travail de conversion en est alors considérablement simplifié ! Cette technique est capable de produire des images en relief d’une très grande finesse comme on pourra le constater.
Cette page présente des conversions d’images fractales produites par Apophysis, un générateur (sous licence GPL) spécialisé dans les Systèmes de Fonctions Itérées (les IFS). Des exécutables Windows sont téléchargeables à l’adresse suivante : http://sourceforge.net/projects/apophysis/.
Les images générées par le logiciel sont rarement prévisibles et encore moins les effets stéréoscopiques obtenus avec elles. Mais c’est un vrai plaisir que de lancer des tracés, jouer avec les différents scripts et variations et s’émerveiller devant certains résultats.

L’image ci-dessous présente Apophysis en action avec chargement du script pbKaleidoscope_Batch.asc

Conv3-CopieEcran

 

Le principe est de produire une conversion 2D/3D à partir de 2 versions différentes d’une même fractale. La première capture est une production « naturelle » d’Apophysis. La deuxième image, destinée a être utilisée comme carte de profondeur, est une conversion en noir et blanc de l’image originale. Quelques ajustements peuvent être opérés sur les paramètres des images des cartes pour améliorer l’effet de relief. On pourra jouer par exemple sur les valeurs Gamma et Brightess (View > Adjust > Rendering).
Les 2 images qui suivent, présentent côte à côte l’image sur laquelle sera appliqué le relief et la carte de profondeur qui lui est associée. Cette deuxième image a été convertie en noir et blanc par Gimp : Couleurs > Desaturer … puis Image > Mode > niveaux de gris.

Conv3-Imag1-1b

La technique de conversion utilisée ici est la même que celle des pages précédentes : Gimp : Filtres > Carte > Déplacer selon une carte …. Le résultat du filtage est présenté ci-dessous.

Conv3-Imag2

 

Les images suivantes présentent, sous la forme d’un couple croisé ainsi que d’un anaglyphe, des montages stéréoscopiques produits avec l’image originale et l’image filtrée.

Conv3-Croise1

Conv3-Anaglyphe1

Les puristes émettront probablement quelques objections sur la méthode employée jusqu’à présent. En particulier sur le fait que l’image à convertir soit, elle-même, l’une des 2 images du couple stéréoscopique. La conséquence en est un léger décentrement du point de vue, plus visible sur ce type d’image que sur les précédentes. En théorie, ce sont bien 2 images nouvelles et non une seule qui devraient être produites à partir de l’image de référence, cette dernière présentant une vue que l’on pourrait qualifier de « cyclopéenne » de la scène. La réalisation d’images plus « conformes » ne pose guère plus de difficultés avec cette technique, si ce n’est qu’elle exige du travail supplémentaire ! ;(… Pour ce faire, un déplacement « négatif » et un déplacement « positif » doivent être produits avec l’outil de filtrage de Gimp. Ce double traitement a été mis en oeuvre pour l’exemple suivant. La première image est l’image originale produite par Apophysis.

Conv3-Fract2

Conv3-Croise2b

Conv3-Anaglyphe2

Seconde conversion 2D/3D

Cette deuxième conversion, qui porte sur une image pourtant très simple dans sa composition, nous a amené à mettre en oeuvre de nouvelles techniques, complémentaires à celles déjà employées dans le premier exemple.
La photographie a été prise à Venise. La posture de cette mendiante, à genoux sur les pavés, immobile en plein milieu d’un passage, était totalement anachronique dans cette cité.

2D3D2-1

 

La conversion de l’image a nécessité 2 traitements différenciés : l’un pour le sol pavé et l’autre pour le personnage. La femme a été détourée puis extraite de son environnement.
La carte de profondeur réalisée pour le pavage est des plus simples : L’image se résume à un dégradé linéaire.
2D3D2-24
Le traitement de cette partie d’image s’est effectué de la même manière que l’exemple précédent par la fonction : Filtres > Cartes > Déplacer selon une carte. Mais l’effet de profondeur recherché pour cette scène est important, et, dans les paramètres du filtrage, c’est une valeur de 100,00 qui a été utilisée pour deplt X. L’image suivante présente le résultat du filtrage.

2D3D2-6
A la suite du traitement, on remarquera quelques défauts apparents sur les côtés de l’image, la fonction s’étant, dans notre cas, mal acquitée d’une tentative de reconstruction de surface.
De manière naturelle, d’autres parties de l’image seront également à reprendre. En effet, certaines zones que la mendiante occultait dans l’image originale, vont devenir apparentes dans la deuxième vue que nous synthétisons. Il suffit, pour s’en convaincre de tenter de repositionner, à ce stade, notre personnage. Dans le couple croisé suivant, l’image de gauche est celle qui a été obtenue après filtrage tandis que l’originale est placée à droite. On pourra, en fusionnant les 2 images, positionner latéralement le personnage de manière que son implantation dans la profondeur de l’image soit cohérente.

2D3D2-78b

L’ajustement du personnage met en évidence des zones sans texture que nous allons être amenés à combler.
Pour reconstituer le pavage autour du personnage ainsi que sur les côtés de l’image, nous n’avons pas, dans ce cas, fait appel à un outil de reconstruction de surfaces, mais, très simplement, utilisé l’outil tampon de Gimp. Cette technique donne ici d’excellents résultats comme le montre l’image suivante. Les parties recouvertes sont, à ce stade de retouche de l’image, pratiquement suffisantes.

2D3D2-10

 

Le traitement du personnage a été opéré de manière habituelle. Un calque transparent, utilisé pour la peinture de sa carte de profondeur, est ajouté au premier calque. Les images suivantes présentent ces 2 calques.2D3D2-f2f3

Là encore, c’est la fonction de Gimp : Filtres > Cartes > Déplacer selon une carte, qui a permis de générer l’image du personnage qui, ensuite, a été superposée à celle du pavage. Une valeur plus réduite de déplacement en X a été employée pour obtenir une épaisseur crédible au personnage de la mendiante.

Les images suivantes présentent, de la même manière que la page précédente, le résultat obtenu sous 2 formes : un couple stéréoscopique croisé ainsi qu’un anaglyphe pour lequel certaines couleurs mal adaptées ont été modifiées.2D3D2-crossed

2D3D2-ana

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