FR 3052565 A1 20171215 FR 1655388 A 20160610 1 Contexte technologique L'invention porte sur un casque de réalité augmentée ou virtuelle destiné à être porté par un utilisateur et comprenant un écran rectangulaire sur lequel sont diffusées des images synchronisées sur la moitié gauche et la moitié droite, un système optique permettant de visualiser correctement avec l'oeil gauche et l'oeil droit, respectivement les images diffusées à gauche et à droite de l'écran, chaque oeil devant voir l'image et donc la partie de l'écran correspondante. Il est possible également d'utiliser deux écrans synchronisés qui chacun affichent l'image gauche ou droite correspondante, plutôt qu'un seul écran. Le casque intègre une caméra stéréoscopique (composé de deux capteurs synchronisés) reproduisant les yeux de l'utilisateur et orientée vers la scène que l'utilisateur pourrait voir si ses yeux n'étaient pas occultés par le casque. Cette caméra est connectée à une unité de calcul interne ou externe au casque permettant le traitement des images provenant des deux capteurs. Le traitement d'images associé est la succession d'algorithme permettant d'extraire premièrement la cartographie de profondeur de la scène puis d'utiliser ce résultat avec les images associées gauche et droite provenant de la stéréoscopie pour en déduire le changement de position et d'orientation de la camera entre le temps t-e et le temps t où e est la durée d'une image de la caméra (inverse de la fréquence d'image). 3052565 2 Ces différents résultats peuvent être utilisés pour afficher la scène réelle vue par la caméra comme si l'utilisateur voyait directement cette scène, ou bien afficher un modèle virtuel sur l'écran et modifier le point du vue virtuel en le combinant à la position et l'orientation de la caméra dans l'espace, ou bien combiner ces deux 5 résultats en incorporant de manière cohérente un flux d'image ou d'objets virtuels dans la scène réelle. La problématique de l'incorporation d'éléments virtuels dans un flux d'images réelles a déjà été abordée dans le document W02015123775A1 qui porte sur l'intégration d'une caméra stéréoscopique à un casque de réalité virtuel 10 comprenant également des méthodes associées pour capturer, traiter et afficher les éléments de façon optimale, en particulier la gestion des occlusions des objets virtuels par les objets réels. Cependant, aucune estimation de la position et orientation de la caméra dans l'espace n'est décrite mise à part l'obtention de la position du casque sur la base 15 d'au moins un marqueur connu devant être visible à chaque instant par au moins une caméra. Si aucun mode d'estimation de la position et orientation de la caméra n'est mis en oeuvre, ou si le marqueur est mal repéré ou perdu de vue, un mouvement de la tête de l'utilisateur n'est pas décrit et les éléments virtuels restent à la même 20 place dans l'image, ce qui rend leur intégration incohérente. Un autre moyen de l'état de l'art couramment utilisé notamment dans les téléphones portables est l'utilisation d'une centrale inertielle (IMU). Le problème de cette technologie est qu'elle ne permet de détecter que l'orientation du système et beaucoup moins son déplacement dans l'espace, rapidement perdu. 3052565 3 Dans le premier cas, l'inconvénient majeur de la méthode étant la nécessité de placer des éléments externes au casque pour connaître la position et l'orientation précise du système. Dans le deuxième cas, l'inconvénient est évidemment le manque d'informations 5 sur la position de l'utilisateur dans le temps. Cela limite l'utilisation d'un casque intégrant ce type de mesure en une utilisation de type trépied, sans déplacement de l'utilisateur possible. Résumé de l'invention Dans ce contexte, il est proposé un dispositif individuel d'immersion visuelle pour 10 personne en mouvement comprenant un moyen pour placer le dispositif sur la personne et un moyen pour afficher devant les yeux de la personne des images immersives, caractérisé en ce qu'il comprend de plus un capteur d'images stéréoscopique pour générer deux flux synchronisés d'images d'une même scène prises sous deux angles distincts, un moyen de calcul d'une information de 15 disparité entre les images de paires d'images synchronisées des deux flux, un moyen de calcul des caractéristiques du mouvement courant du dispositif à partir de l'information de disparité, et des moyens de composition d'un flux d'images immersives cohérentes avec les caractéristiques du mouvement. L'invention propose l'amélioration suivante : utiliser un seul et même système, en 20 l'occurrence une caméra stéréoscopique, pour obtenir deux images stéréoscopiques, la carte de profondeur associée à l'image gauche et l'estimation de position de la caméra fixée sur le casque. La combinaison de ces résultats permet soit, dans un mode d'opération de réalité virtuelle de visualiser un monde virtuel en reportant les mouvements du casque 3052565 4 (rotation et translation) sur la caméra virtuelle utilisée pour rendre ce monde suivant le point de vue de l'utilisateur, tout en utilisant la carte de profondeur pour détecter une interaction avec le monde extérieur (objet proche de l'utilisateur dans sa ligne de vision, interaction avec un mouvement dans le monde 5 réel vu par la caméra mais invisible par l'utilisateur). Elle permet également dans un mode d'opération de réalité augmentée, d'afficher deux images, chacune visible par un des yeux de l'utilisateur (afin que l'utilisateur puisse reconstruire une vision de type humaine de son environnement), d'incorporer des objets virtuels dans cette vision réelle de manière cohérente. Il 10 convient donc de la même manière que dans le mode d'opération (A) d'utiliser la position et l'orientation de la caméra « réelle » afin d'orienter les objets virtuels vu par une caméra virtuelle de la même manière que le monde réel afin que le placement des objets virtuels reste cohérent avec le monde réel. De plus, les éléments virtuels étant affichés en surimpression de l'image réelle, il faut, afin de 15 positionner un objet virtuel derrière un objet réel, masquer une partie de l'objet virtuel pour donner l'impression qu'il est derrière l'objet réel. Afin de masquer la partie d'un objet virtuel, il est nécessaire d'utiliser la carte de profondeur issue de la camera afin de comparer pixel à pixel la position de l'objet virtuel avec le monde réel. 20 Afin d'augmenter la fiabilité des résultats, il est considéré optionnellement d'utiliser une centrale inertielle afin de comparer les rotations issues de cette centrale et les rotations issues du calcul basé sur les images de la camera et sa carte de profondeur. En résumé, les caractéristiques optionnelles suivantes peuvent être présentes : - le moyen de calcul des caractéristiques du mouvement utilise aussi au 3052565 5 moins l'un des flux d'images ; - les moyens de composition créent des images immersives de réalité augmentée en utilisant les images issues du capteur et l'information de disparité pour choisir les éléments de la scène à masquer avec des éléments 5 virtuels ; - les moyens de composition créent des images immersives de réalité virtuelle ; - une centrale inertielle et dans lequel le moyen de calcul des caractéristiques du mouvement courant du dispositif utilise les informations fournies par la 10 centrale inertielle ; - l'information de disparité entre les images synchronisées des deux flux est densifiée en effectuant une détection de contours dans les images et en estimant des valeurs de disparité inconnues en fonction des contours ou en interpolant des valeurs de disparité connues ; 15 - le moyen de calcul des caractéristiques du mouvement courant du dispositif à partir de l'information de disparité évalue le mouvement à partir d'une image de référence choisie en fonction de sa luminosité ou sa netteté, ou quand la position de la caméra a dépassé un seuil prédéfini de déplacement global, ou quand il est possible d'évaluer avec une précision atteignant un 20 seuil prédéfini l'ensemble des composantes du déplacement. Liste des figures L'invention va maintenant être décrite en référence aux figures, parmi lesquelles 3052565 6 - La figure 1 est un ordinogramme présentant la fonction de détermination de la position dans un mode de réalisation de l'invention ; - La figure 2 présente la structure d'un mode de réalisation de l'invention. Description détaillée 5 La caméra stéréoscopique intégrée au casque permet d'obtenir deux images couleur de la scène de façon synchronisées. Une calibration préalable du capteur stéréoscopique est nécessaire afin de modifier les images suivant une matrice de transformation afin de rendre les images fronto-parallèles (comme si les images provenaient d'une caméra stéréoscopique aux axes optiques complétement 10 parallèle). Il est ainsi possible de calculer la carte de disparité puis d'obtenir une carte de profondeur en transformant les valeurs pixelliques en valeurs métriques grâce à la calibration préalable. La carte de profondeur est dite « dense »: c'est à dire que la plupart des pixels 15 présentent une valeur de profondeur en métrique, hormis les occlusions (partie de l'image visible par l'une des caméras mais non visible sur l'autre caméra), zones peu texturées ou saturées, ce qui représente un faible pourcentage de l'image, en opposition à une carte de profondeur dite éparse dont la majorité des pixels ne sont pas définis. 20 Une première utilisation de la carte de profondeur permet de gérer l'incrustation d'éléments virtuels dans l'image réelle, dans un but de réalité augmentée. Un objet correctement intégré dans une image réelle doit être cohérent avec son environnement. Par exemple, un objet virtuel placé partiellement derrière un objet réel doit être partiellement masqué par cet objet réel. L'incrustation 25 d'éléments virtuels se faisant nécessairement sur l'image réelle, il est nécessaire 3052565 7 de connaitre la profondeur de chaque pixel de l'image réelle et de l'image virtuelle afin de pouvoir savoir quel pixel doit être affiché (pixel image réelle ou image virtuelle) lors de la composition de l'image finale à afficher dans le casque. Vu que la comparaison est pixel à pixel, il est nécessaire de combler les « trous » de la 5 carte de profondeur. Une détection de contour est effectuée et un remplissage des zones vides est effectué en utilisant les pixels voisins préalablement détectés. Une scène virtuelle étant forcément vue par une caméra virtuelle définie et placée par l'utilisateur, la carte de profondeur d'une scène virtuelle est implicite. En appliquant les mêmes paramètres de caméra entre la caméra virtuelle et la 10 caméra stéréoscopique (fournis par la calibration préalable), il est alors possible de comparer chaque pixel de l'image réelle avec l'image virtuel et de composer le pixel final en choisissant quel pixel est le plus proche de la caméra. Le système permet donc de gérer les occlusions des objets réels sur les objets virtuels pour une meilleure intégration des éléments ajoutés à la scène. 15 Cette partie est utile dans le cadre d'une utilisation en réalité augmentée, où la composition d'éléments virtuels avec l'environnement réel est nécessaire. Lorsque la caméra est en mouvement, le point de vue réel est modifié. Il apparait nécessaire de caler le mouvement de la caméra stéréoscopique sur la caméra virtuelle qui voit l'environnement virtuel afin que le rendu des éléments virtuels 20 reste cohérent avec le mouvement de la caméra réelle et donc du système complet à savoir le casque porté par l'utilisateur. Il faut donc connaitre le mouvement du casque (rotation et translation) dans le monde réel. La seule utilisation d'une centrale inertielle ne permet pas d'avoir la translation sur les trois axes de la caméra mais seulement la rotation. 25 Pour pouvoir estimer les trois rotations et les trois translations permettant de 3052565 8 passer de l'image n-1 (ou n-X) à l'image n, les images gauches ou droites n-1 (ou n-X) et n ainsi que la carte de disparité ou de profondeur associée à l'image gauche ou droite (suivant le choix du côté d'image) sont utilisées. On effectue le calcul de la matrice de transformation entre l'image de la caméra 5 gauche (ou alternativement droite) actuelle (t) et l'image de la caméra gauche (ou droite) précédente (t-1) à l'aide des images monoscopiques (gauche ou droite) et de la carte de profondeur associée. On peut optionnellement utiliser les rotations de la centrale inertielle et/ou les résultats précédents en estimant ce que pourrait être la nouvelle position de la caméra. 10 On estime la position de la caméra par un calcul de la matrice de transformation, et une sélection des images n et n-1 (ou n-X). La matrice de transformation entre deux instants est obtenue en calculant la transformation entre les images prises entre deux instants n et n-1 (ou n-X). Pour cela, un algorithme de détection de points d'intérêts peut être utilisé pour 15 détecter des points (pixels) spécifique dans l'image n-1 (n-X). On peut par exemple utiliser un algorithme de type Harris ou Surf, ou bien simplement utiliser des points issus du calcul de la carte de profondeur en appliquant par exemple un filtre de contour pour sélectionner certains point de l'image. On peut également sélectionner tous les pixels de l'image comme liste de points. 20 La carte de profondeur dense associée à l'image n-1 (n-X) est utilisée pour projeter les points de l'image n-1 (ou n-X) en 3D puis d'appliquer la transformation cherchée sur le nuage de point. Les points 3D sont ensuite projetés dans l'image n, on en déduit l'erreur de transformation en comparant l'image obtenue avec l'image originale. Le processus est itératif, jusqu'à obtenir la matrice de 25 transformation finale entre les deux images. La matrice de transformation 3052565 9 comprend les rotations sur les trois axes rX,rY,rZ ainsi que les trois translation tX,tY,tZ, usuellement embarqués sous la forme d'un matrice 4x4, où la rotation est une matrice 3x3 et la translation un vecteur de 3 dimensions. Dans le processus d'itération, plusieurs modes d'Operations sont disponibles sur 5 le choix de la première matrice de transformation utilisée dans l'itération. Dans un mode opératoire 1, aucune valeur précédente n'est utilisée et aucun capteur externe ne donne d'apriori sur la matrice à calculer. On part donc d'une matrice dite identité, où rotations et translations sont nulles. Dans un mode opératoire 2, on utilise la matrice de transformation calculée sur 10 l'ancienne paire d'image et on prédit la nouvelle matrice de transformation à entrer dans le processus itératif, en utilisant un filtre dit « prédictif ». Par exemple, on pourra utiliser un filtre de Kalman ou bien un filtre particulaire qui utilise les méthodes de Monte-Carlo pour prédire la position suivante. Dans un mode opératoire 3, on utilise les valeurs de rotation donnée par la 15 centrale inertielle pour créer une première matrice de transformation dans le processus itératif. Dans un mode opératoire 4, on fusionne les valeurs estimées par le mode 2 et les valeurs de la centrale inertielle (mode 3), afin de créer une première matrice de transformation dans le processus itératif. La fusion peut être une simple moyenne, 20 une séparation de valeur (rotation issue de la centrale inertielle, translation issue de la méthode prédictive 2), ou une autre forme de combinaison (sélection des minimums). Les images n et n-1 (n-X) sont sélectionnées de la manière suivante. L'image n est dans chaque cas d'utilisation l'image courante qui vient d'être 25 « acquise » et traitée par le module de rectification et d'estimation de la 3052565 10 profondeur. Il y deux possibilités pour la sélection de l'image n-1 (n-X) : - Dans un premier cas, l'image n-1 peut être l'ancienne image courante traitée par le module. La carte de profondeur utilisée est donc la carte n-1 5 estimée par le module d'estimation de la carte de profondeur. - Dans un second cas, on introduit la notion de « keyfranne » ou « image de référence » comme image n-1. Cela peut être une image précédente à l'image n-1, que nous appelons n-X ou X peut varier lors de l'utilisation et doit être inférieur à une valeur fixée par l'utilisateur ou bien laissée à une 10 valeur de défaut. La carte de profondeur utilisée est la carte « sauvegardée » associée à l'image n-X. Dans le premier cas, la valeur X reste constante à la valeur 1. On considère alors que chaque image est une image de référence. 15 Le mode préférentiel d'utilisation est le second cas, avec image de référence n-X. Le choix de l'image de référence dans ce second cas peut être fait de différentes façons : - L'image est choisie quand le changement de position de la caméra dépasse une certaine valeur par défaut, modifiable par l'utilisateur. On estime 20 notamment par cette méthode que le mouvement de la caméra n'est pas dû à un biais de calcul (« drift »). - L'image est choisie quand l'erreur finale de calcul de la matrice de transformation est inférieure à une certaine valeur par défaut, modifiable par l'utilisateur. On considère que l'estimation de la position de la caméra 3052565 11 est suffisamment bonne pour être considérée comme une « image de référence ». - L'image est choisie quand sa qualité est considérée comme suffisante notamment en termes de niveau de luminosité ou de flou de bougé faible. 5 En référence à la figure 1, on visualise tout d'abord l'initialisation 100 du calcul de suivi de la position R, T (pour rotation et translation). Cette initialisation est faite à l'aide de la fusion de données externes, provenant du capteur et d'une centrale inertielle, et des données de suivi de la position prédite sur la base des données calculées aux instants précédents. 10 Le calcul de l'estimation 110 de la position en rotation et en translation R et T est ensuite mené à l'aide de l'image courante et du résultat de la détection 120 de points en 3D effectuées menée à sur l'image n-X et la carte de profondeur N-X. À l'issue du calcul de l'estimation 110 de la position, on fournit des données complètes dites de tracking (données de suivi, ou données d'estimation de la 15 position en rotation et translation R,T), ainsi que des éléments pour définir la matrice d'initialisation du calcul de suivi de position pour l'étape suivante, ainsi que des éléments pour sélection d'une nouvelle référence N-X. En référence à la figure 2, on va maintenant décrire l'architecture complète de l'invention. 20 Les images droites et gauches sont acquises simultanément depuis une caméra stéréoscopique intégrée au casque de réalité virtuelle, à l'aide du module A. On mène avec un module B un calcul de la carte de disparité sur l'image gauche puis un calcul de la carte de profondeur métrique avec les paramètres du système stéréo. L'algorithme calcule une carte de disparité dense. 3052565 12 On mène avec un module C un calcul de la matrice de transformation entre la caméra gauche courante (t) et précédente (t-x) à l'aide des images gauches et de la carte de profondeur associées. Les matrices de transformations sont intégrées à chaque image pour garder le repère de référence, à savoir la position de la caméra 5 au lancement du système. On détermine, à l'aide d'un module D la position absolue de la caméra virtuelle dans le monde réel. Elle permet de faire le lien entre le repère du monde réel et le repère du monde virtuel. Le module F1/F2 en parallèle du module C prend en entrée la carte de disparité 10 gauche issue de B, et en déduit la carte de disparité associée à l'image droite dans un sous-module Fl.. La carte de disparité étant une correspondance entre les pixels de l'image droite avec les pixels de l'image gauche, il est possible par une opération d'inverser la référence sans recalculer la carte complète. Le module F2 permet d'interpoler les zones manquantes de la carte et d'obtenir 15 une carte complètement remplie, sans pixel « noir ». Le module de rendu E permet le rendu visuel des éléments virtuels ajoutés à la scène. Celui-ci est calculé avec une caméra virtuelle définie grâce à la position obtenue par le module D. Deux images doivent être rendues : une pour chaque oeil. La caméra virtuelle de la scène pour l'image gauche est identique à la position 20 calculée par le module D, celle pour l'image droite est calculée à partir des paramètres extrinsèques du système et de la matrice de position. Concrètement il s'agit d'une translation en x correspondant à la distance inter-caméra. Le module de rendu de la scène H effectue l'intégration des objets virtuels placés derrière des objets réels. La gestion des occlusions utilise les cartes calculées par 25 le module F1/F2 et la carte de profondeur implicitement calculée par le module E. 3052565 13 L'intégration est ainsi cohérente et réaliste, l'utilisateur est alors capable de comprendre l'emplacement de l'objet virtuel dans le monde réel. Les deux images sont ensuite envoyées à l'écran, pour la visualisation par l'utilisateur qui porte le dispositif sur sa tête, avec l'écran devant les yeux, une 5 optique adaptée permettant une vision stéréoscopique. REVENDICATIONS1. Dispositif individuel d'immersion visuelle pour personne en mouvement comprenant un moyen pour placer le dispositif sur la personne et un moyen pour afficher devant les yeux de la personne des images immersives, caractérisé en ce qu'il comprend de plus un capteur d'images stéréoscopique (A) pour générer deux flux synchronisés d'images d'une même scène prises sous deux angles distincts, un moyen de calcul d'une information de disparité entre les images de paires d'images synchronisées des deux flux (B, F1, F2), un moyen de calcul des caractéristiques du mouvement courant du dispositif (C, 110) à partir de l'information de disparité, et des moyens de composition d'un flux d'images immersives (D, E, H) cohérentes avec les caractéristiques du mouvement. 2. Dispositif individuel d'immersion visuelle selon la revendication 1, dans lequel le moyen de calcul des caractéristiques du mouvement courant du dispositif (C, 110) utilise aussi au moins l'un des flux d'images. 3. Dispositif individuel d'immersion visuelle selon la revendication 1 ou la revendication 2, dans lequel les moyens de composition (D, E, H) créent des images immersives de réalité augmentée en utilisant les images issues du capteur et l'information de disparité pour choisir les éléments de la scène à masquer avec des éléments virtuels. 3052565 15 4. Dispositif individuel d'immersion visuelle selon la revendication 1 ou la revendication 2, dans lequel les moyens de composition (H) créent des images immersives de réalité virtuelle. 5 5. Dispositif individuel d'immersion visuelle selon l'une des revendications 1 à 4, comprenant de plus une centrale inertielle et dans lequel le moyen de calcul des caractéristiques du mouvement courant du dispositif (C, 110) utilise les informations fournies par la centrale inertielle. 10 6. Dispositif individuel d'immersion visuelle selon l'une des revendications 1 à 4, dans lequel l'information de disparité entre les images synchronisées des deux flux est densifiée (F2) en effectuant une détection de contours dans les images et en estimant des valeurs de disparité inconnues en fonction des contours ou en 15 interpolant des valeurs de disparité connues. 7. Dispositif individuel d'immersion visuelle selon l'une des revendications 1 à 6, dans lequel le moyen de calcul des caractéristiques du mouvement courant du dispositif (C, 110) à partir de l'information de disparité évalue le mouvement à 20 partir d'une image de référence choisie en fonction de sa luminosité ou sa netteté, ou quand la position de la caméra a dépassé un seuil prédéfini de déplacement global, ou quand il est possible d'évaluer avec une précision atteignant un seuil prédéfini l'ensemble des composantes du déplacement.