Brevet FR3058534A1 — publié le 20180511

DISPOSITIF INDIVIDUEL D'IMMERSION VISUELLE POUR PERSONNE EN MOUVEMENT AVEC GESTION DES OBSTACLES Contexte technologique L'invention porte sur un casque de réalité virtuelle destiné à être porté par un utilisateur et comprenant un système de diffusion de deux flux d'images synchronisées et un système optique permettant de visualiser correctement avec l'oeil gauche et l'oeil droit, respectivement les images des deux flux, chaque oeil devant voir essentiellement ou uniquement les images d'un des deux flux. Il est possible pour cela d'utiliser un écran essentiellement rectangulaire ou oblong sur lequel sont diffusées, sur la partie gauche et sur la partie droite les images des deux flux. Il est également possible d'utiliser deux écrans synchronisés et disposés l'un à côté de l'autre, 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ée de deux capteurs synchronisés, reproduisant le champ de vue des yeux de l'utilisateur. En particulier, cette caméra est 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. Un traitement d'images possible est une succession d'algorithme permettant d'extraire la cartographie de profondeur de la scène puis d'utiliser ce résultat avec les images associées gauche et droite pour en déduire le changement de position et d'orientation de la camera entre deux instants consécutifs de prise de vue (typiquement séparés d'un soixantième de seconde). Ces différents résultats peuvent être utilisés pour afficher un modèle de réalité virtuelle (typiquement un jeu ou une simulation professionnelle) sur l'écran et modifier le point du vue virtuel en l'adaptant à la position et à l'orientation courantes de la caméra dans l'espace. Il est aussi possible de mélanger de manière cohérente un flux d'images ou d'objets virtuels dans la scène réelle filmée par la caméra. On parle alors de réalité augmentée. Le système décrit dans la demande de brevet FR 1655388 du 10 juin 2016 comprend une caméra stéréoscopique dans un casque de réalité mixte. Pour 3058534 2 des applications de réalité augmentée l'écran intégré couplé au système d'acquisition permet à l'utilisateur de voir le monde réel en face de lui, auquel sont additionnées des images virtuelles. L'utilisateur est alors capable de détecter de nombreux objets réels (obstacles) autour de lui. Cependant, dans le 5 cas d'une application de réalité virtuelle, l'immersion dans le monde virtuel est totale, et aucun retour visuel ne permet alors d'anticiper les collisions. L'immersion dans le système peut entraîner une perte de repère de l'utilisateur, et une négligence des obstacles présents autour de lui. Le système décrit dans le document US20160027212A1 propose d'utiliser 10 l'information de profondeur pour identifier les éléments les plus proches de l'utilisateur et ainsi détecter les obstacles. Un capteur de profondeur est positionné sur le casque, lorsqu'un objet se trouve à une distance seuil définie, l'obstacle est affiché en surimpression du contenu sur l'écran du dispositif, avertissant l'utilisateur du danger en face de lui. Ce système n'est capable que 15 de détecter les objets devant l'utilisateur et dans la zone couverte par le capteur de profondeur. Tout objet au sol, derrière l'utilisateur ou sur les côtés n'est pas visible : un déplacement vers ces obstacles n'est donc pas pris en compte par ce système. On est ainsi confronté à l'absence de solution complète de gestion des 20 problèmes de collisions entre un utilisateur de casque de réalité virtuelle et les objets de son environnement. On souhaite de manière générale améliorer l'expérience de l'utilisateur et sa sécurité. Résumé de l'invention L'invention concerne un système de détection d'obstacles en mouvement ou 25 statiques pour casque de réalité virtuelle avec caméra stéréoscopique capable de cartographier l'environnement a priori, puis d'identifier la localisation du casque afin de prévenir l'utilisateur en cas de danger de collision avec un objet, Le système offre une prise en charge de certains obstacles, à savoir les obstacles statiques, même s'ils sont hors du champs de vision de la caméra du 30 casque. L'invention propose donc de gérer les objets dynamiques et statiques, même hors du champ de vision par une cartographie a priori de la zone. L'invention est une extension du système de la demande de brevet FR 1655388, mais trouve une application qui n'est pas limitée à ce système. Elle 3058534 3 répond au besoin de l'utilisateur de ne pas marcher à l'aveugle en portant le casque. Elle permet de se déplacer dans un espace défini en toute sécurité, indépendamment des mouvements et de l'orientation du dispositif. Le système utilise une caméra stéréoscopique, la carte de profondeur calculée 5 à partir des deux images, ainsi que la position de la caméra dans l'espace. Plus précisément, il est proposé un dispositif individuel d'immersion visuelle pour personne en mouvement comprenant des moyens pour placer le dispositif sur la personne et pour afficher devant les yeux de la personne des images immersives, et comprenant également une caméra stéréoscopique, caractérisé 10 en ce qu'il comprend - des moyens pour, au cours d'une phase d'initialisation du dispositif dans une zone d'opération comprenant des obstacles statiques, le dispositif étant ou non déplacé dans la zone d'opération, enregistrer des images stéréoscopiques de la zone d'opération sous plusieurs points de vue à l'aide de la caméra, puis 15 fusionner lesdites images en un modèle de la zone d'opération, et interpréter ledit modèle pour créer une carte en trois dimensions d'obstacles identifiés dans la zone d'opération, - et des moyens pour, au cours d'une phase d'utilisation du dispositif dans la zone d'opération, le dispositif étant porté par un utilisateur, détecter si 20 l'utilisateur s'approche d'un des obstacles statiques repérés dans ladite carte et déclencher alors un processus d'alerte. Selon des caractéristiques avantageuses et optionnelles, on observe aussi que - lesdites images sont fusionnées en un modèle de la zone d'opération en recherchant dans des images différentes des pixels correspondant à un 25 même point de la zone d'opération, et en les fusionnant lesdits pixels pour ne pas introduire d'informations redondantes, ou du moins limiter les informations redondantes, dans le modèle ; - les pixels correspondant à un même point de la zone d'opération sont identifiés à l'aide d'une distance ou à l'aide d'un volume de fonction de 30 distance signée tronquée ; - un périmètre de sécurité défini autour de l'utilisateur ou une extrapolation d'une position future de l'utilisateur fondée sur une historique des positions de l'utilisateur est utilisé pour détecter si l'utilisateur s'approche d'un des obstacles statiques repérés dans ladite carte ; 3058534 4 - la phase d'initialisation comprend la mémorisation de points d'intérêt associés à leurs positions respectives dans la zone d'opération, et la phase d'utilisation comprend une localisation de l'utilisateur vis-à-vis de la carte à l'aide d'au moins un desdits points ; 5 - les points d'intérêt sont choisis en fonction d'un critère de recouvrement pour couvrir la zone d'opération en limitant les redondances, choisis sur instruction de l'utilisateur ou choisis régulièrement dans le temps au cours d'un déplacement du dispositif au cours de la phase d'initialisation - la caméra stéréoscopique comprend deux capteurs d'images et un moyen 10 de calcul d'une information de disparité entre des images capturées par les deux capteurs de manière synchronisée - le dispositif comprend des moyens pour, au cours de la phase d'utilisation du dispositif dans la zone d'opération, le dispositif étant porté par un utilisateur, capter des images stéréoscopiques correspondant à un champ 15 de vision potentiel de l'utilisateur, analyser lesdites images correspondant au champ de vision potentiel pour détecter un éventuel obstacle supplémentaire dans celles-ci et, si l'utilisateur s'approche dudit éventuel obstacle supplémentaire déclencher alors un processus d'alerte ; - les moyens pour analyser les images pour détecter un éventuel obstacle 20 supplémentaire sont mis en oeuvre simultanément aux moyens pour détecter si l'utilisateur s'approche d'un des obstacles statiques repérés dans la carte ; - le processus d'alerte comprend l'émission d'un son, un affichage d'une image d'obstacle en surimpression des images immersives si une telle 25 surimpression est fondée spatialement, un affichage d'une indication symbolique d'obstacle avec une indication de la direction concernée, ou un affichage d'une représentation imagée de l'utilisateur et de l'obstacle en proximité l'un de l'autre. Liste des figures 30 L'invention va maintenant être décrite en référence aux figures, parmi lesquelles : - La figure 1 est un ordinogramme présentant la fonction d'initialisation du système dans un mode de réalisation de l'invention ; - La figure 2 est une illustration d'un aspect des processus selon l'invention ; 3058534 5 - La figure 3 est un ordinogramme présentant le fonctionnement en utilisation du mode de réalisation du système initialisé conformément à la figure 1 ; - La figure 4 est une illustration d'un aspect des processus selon l'invention ; - La figure 5 est une illustration du déplacement d'un utilisateur du système et 5 de la mise en oeuvre de ses fonctions de détection d'obstacles ; Description détaillée La figure 1 présente le mode d'initialisation du système. Le système est constitué d'un casque de réalité virtuelle. Le casque est dit casque de réalité mixte car des informations issues du monde réel sont introduites dans la réalité 10 virtuelle présentée à l'utilisateur, mais la réalité virtuelle constitue l'essentiel de l'expérience de celui-ci. Le casque dispose d'un module Al pour acquérir des images gauche et droite en provenance de deux capteurs dirigés vers un même demi espace, et positionnés l'un à côté de l'autre en sorte de fournir une vue binoculaire sur une 15 partie de ce demi-espace. Ces deux capteurs sont synchronisés Le casque comprend aussi un module B1 pour générer une carte de disparité, en l'occurrence une carte de profondeur dense qui est calculée à l'aide des paires d'images synchronisées obtenues en provenance des deux capteurs. Ainsi, ces deux capteurs constituent un capteur de profondeur. 20 Le casque comprend de plus un module d'odométrie Cl permettant d'estimer la position du dispositif en mouvement. Il peut s'agir d'un système d'odométrie visuelle ou d'une odométrie visuelle complétée par les informations fournies par une centrale inertielle L'initialisation du système peut n'être effectuée qu'une fois par utilisation. 25 Typiquement, elle n'est effectuée que si la zone d'opération a changée, en général par le déplacement d'objets. L'objectif visé lors de la phase d'initialisation est de créer une carte des obstacles statiques de la zone. Pour cela l'utilisateur doit parcourir la zone avec le dispositif comprenant la caméra stéréo. L'environnement est alors 30 cartographié puis traité. L'utilisateur porte le dispositif sur sa tête ou à la main et se déplace sur toute la zone d'opération, avec pour consigne d'explorer l'ensemble des obstacles réels de la zone d'opération avec le système de capture stéréoscopique. À chaque image (et donc, typiquement 60 fois par secondes), une carte de profondeur 3058534 6 dense est calculée à l'aide des deux images obtenues en provenance des deux capteurs de profondeur, à l'aide des modules Al et B1. Dans le cas d'une zone d'opération simple, l'utilisateur peut ne pas se déplacer, et se contenter de tourner le casque pour balayer l'environnement. Pour se faire, il peut mettre le 5 casque sur sa tête et tourner celle-ci sans se déplacer. Dans le cas d'une zone complexe, il est souhaitable de se déplacer dans celle-ci pour bien la cartographier, et pour éviter que l'utilisateur ne heurte les obstacles, il est plus simple qu'il tienne le casque à la main. La position dans l'espace de la caméra est également déterminée, à l'aide du 10 module C1, pour chaque instant de capture d'images. Deux processus interviennent ensuite. Tout d'abord le module Cl commande l'enregistrement d'images ou de caractéristiques visibles constituant des points d'intérêts, et l'enregistrement en mémoire de la position du casque à l'instant de l'observation de ces points. Ce 15 processus est représenté D1 sur la figure 1. Ce processus vise à couvrir la zone parcourue par l'utilisateur, en constituant une base de données de points d'intérêt. Le déclenchement d'un enregistrement d'une nouvelle entrée dans la base ainsi constituée a lieu de façon préférentielle en fonction d'un critère de recouvrement qui détermine la quantité d'information redondante avec les 20 autres entrées de la base. D'autres critères peuvent être utilisés tel que le déclenchement manuel d'un enregistrement par l'utilisateur, le calcul d'une distance physique entre chaque position des points d'intérêt ou un laps de temps écoulé entre deux enregistrements. Une base de données El est ainsi construite. Elle contient un ensemble de 25 positions de référence associées à des caractéristiques ou images au moment de l'initialisation. Elle est appelée base de relocalisation, car elle sert ensuite, pendant l'utilisation du dispositif à relocaliser celui-ci. Le processus qui vient d'être décrit est illustré en figure 2. On y voit le repère R spatial de référence fixé en fonction de la première acquisition, divers obstacles 30 0 dans la zone d'opération Z. La base de données BD est construite par enregistrement d'images ou de points d'intérêt, dont les positions dans l'espace sont conservées. La base de données BD sera ensuite appelée base de données de relocalisation, et utilisée pour permettre au dispositif de se localiser dans l'espace pour une phase d'utilisation. 3058534 7 Parallèlement, la carte de profondeur B1 et les paramètres du système stéréoscopique sont utilisés pour générer un nuage de points, en projetant chaque pixel de l'image afin d'obtenir des coordonnées de points dans l'espace. Les points dans l'espace subissent ensuite un changement de repère en 5 utilisant les informations relatives à la position du casque dans l'espace issues du module Cl d'odométrie afin de placer tous les points captés au cours de la phase d'initialisation dans un repère commun fixe. Cela est mené par le module Fl Ces ensembles de points sont fusionnés au cours d'une opération G1 afin de 10 créer un modèle dense (cartographie) de la zone d'opération tout en réduisant la quantité d'informations redondantes. Ce processus peut se faire par exemple en parcourant les ensembles de points et en fusionnant les points identifiés comme étant proches les uns des autres en fonction d'une distance ou encore en utilisant un volume de fonction de distance signée tronquée (Truncated 15 Signed Distance Function -TSDF- Volume). Une étape ultérieure H1 consiste à générer un maillage dans l'ensemble de points en trois dimensions. Ce maillage est constitué de triangles reliés, modélisant les surfaces de la zone d'opérations. Lorsque l'utilisateur a parcouru toute la zone d'opérations, le modèle est 20 interprété au cours d'une étape 11 afin d'extraire les zones libres et les obstacles. Le sol est identifié par le système, par exemple en approximant un plan sur le maillage par une méthode itérative ou encore en calculant les vecteurs des directions normales sur un sous-ensemble du maillage pour en déterminer l'orientation principale. 25 Les éléments visibles sont considérés comme obstacles en fonction de leurs tailles. Le seuil de taille utilisé est automatiquement affiné ou réglé par l'utilisateur. On génère ainsi un graphe de traversabilité. Il en résulte une carte d'obstacles J1. Celle-ci peut ensuite servir lors des 30 utilisations du système en phase de fonctionnement. La figure 3 présente le dispositif en phase de fonctionnement et d'utilisation du casque. Le système recharge tout d'abord la cartographie. Au démarrage, le système charge la carte des obstacles statiques de la zone d'opération. Puis il détermine sa position. Cela est représenté en figure 4. 3058534 8 Pour cela, il fait correspondre les positions dans l'espace entre le monde réel instantané et le monde préalablement enregistré au cours de la phase d'initialisation. À cette fin, l'utilisateur permet, sans pour autant avoir à se déplacer dans la 5 zone d'opération, à son casque d'observer l'environnement, et de déterminer la carte de profondeur A2. Une correspondance est cherchée pour les images courantes, en nombre limité (par exemple une seule image) issues de la caméra et les éléments de la base de données BD dite base de relocalisation E1. Lorsqu'une correspondance 10 visuelle est trouvée entre une observation courante et une entrée de la base, la position associée dans la base est extraite et utilisée, pour faire correspondre le repère R qui avait été utilisé lors de la phase d'initialisation, et le repère actuel R'. Il s'agit là d'une phase de démarrage du système. Il s'agit de faire le lien entre le repère de la carte d'obstacles J1, calculée à la phase d'initialisation et 15 le repère du casque dans l'environnement matériel courant. Si besoin, pour plus de précision, on utilise la distance entre les localisations repérées dans la base de données E1. On peut aussi utiliser l'information de profondeur présente dans l'image courante visualisée par le casque. Une correction est appliquée en calculant la différence entre la position du casque actuelle et la position 20 enregistrée, pour ainsi relocaliser le casque. Après avoir initialisé cette position, le système lance les détections, qui sont représentée en figure 5. Deux fonctions sont mises en route : une détection statique F2 qui utilise la carte d'obstacles issue de la phase d'initialisation, pour indiquer à l'utilisateur tous les objets trop proches vers lesquels il se dirige, 25 indépendamment de l'endroit ou regarde l'utilisateur ; et parallèlement une détection des obstacles dynamiques D2, capable de détecter tous les obstacles dans le champ de vision du système FOV, même s'ils n'étaient pas présent pendant la phase d'initialisation, comme typiquement une personne ou un animal traversant la zone d'opération. 30 À partir de moment, l'utilisateur peut se déplacer. Le système suit, par une fonction d'odométrie B2, la position de l'utilisateur dans la carte d'obstacles J1 afin de pouvoir déclencher une alerte s'il risque de rencontrer un obstacle. 3058534 9 Deux systèmes de détections d'obstacle en phase d'utilisation sont ensuite utilisés simultanément, pendant que l'utilisateur est impliqué dans une expérience de réalité virtuelle. Le premier système de détection d'obstacles D2 détecte les obstacles visibles 5 par la caméra qui peuvent donc être dynamiques. Il se base pour déterminer la présence d'obstacles uniquement ou en premier lieu sur un nuage de points en trois dimensions courant C2, et éventuellement sur les informations d'odométrie B2. Le nuage C2 courant est généré à partir de la carte de profondeur courante A2. 10 Pour la détection de proximité d'obstacles, un seuil est fixé pouvant être une distance aux obstacles. Le système recherche alors par le module D2 des éléments du nuage de points dans une sphère de rayon ce seuil autour du joueur. Le seuil peut également être un temps en prenant en compte la direction et la vitesse du mouvement courant, donnés par le module 15 d'odométrie B2, extrapolés pour évaluer la présence d'obstacles dans la trajectoire sur la base du nuage C2. Lorsqu'une collision probable est détectée, une alerte E2 est déclenchée et un avertissement est lancé à l'utilisateur, par exemple en affichant l'obstacle en surimpression du contenu virtuel. 20 Cette prise en charge des obstacles dynamiques entrant dans le champ de vue FOV du casque est représenté en figure 5 par le repère D2. Un deuxième système de détection d'obstacles F2 utilise la carte statique d'obstacles J1, et la position dans l'espace obtenue par l'odométrie B2. À chaque instant, une nouvelle position obtenue par l'odométrie B2 est donnée et 25 le système teste la position dans la carte d'obstacles J1. Deux modes de fonctionnement sont possibles. Un premier mode détermine si des objets se trouvent dans un périmètre de sécurité de taille définie autour de l'utilisateur. Si au moins un objet est trouvé, le système détermine qu'il y a un danger et alerte l'utilisateur par un processus 30 d'alerte G2. Un deuxième mode utilise l'historique des positions afin d'en déduire un vecteur déplacement, et d'extrapoler la position future en faisant l'hypothèse que le mouvement sera constant localement. Le système est alors capable de 3058534 10 déterminer si un obstacle est sur le chemin. En cas de détection d'un objet, un processus d'alerte G2 est déclenché pour avertir l'utilisateur. Cette prise en charge des obstacles statiques pré-identifiés entrant ou n'entrant pas dans le champ de vue FOV du casque est représenté en figure 5 par le 5 repère F2. Les alertes peuvent être de plusieurs intensités et de différentes natures : son spatialisé, affichage en surimpression des obstacles, affichage d'une indication d'obstacles dans la direction concernée (flèches ou bordure de couleur par exemple). Il est également possible d'afficher un vue dit « à la troisième 10 personne » de l'utilisateur avec l'environnement modélisé et les obstacles les plus proches. REVENDICATIONS1. Dispositif individuel d'immersion visuelle pour personne en mouvement comprenant des moyens pour placer le dispositif sur la personne et pour afficher devant les yeux de la personne des images immersives, et comprenant également une caméra stéréoscopique, caractérisé en ce qu'il comprend - des moyens pour, au cours d'une phase d'initialisation du dispositif dans une zone d'opération comprenant des obstacles statiques, enregistrer (F1) des images stéréoscopiques de la zone d'opération sous plusieurs points de vue à l'aide de la caméra, puis fusionner (G1) lesdites images en un modèle de la zone d'opération, et interpréter (11) ledit modèle pour créer une carte en trois dimensions d'obstacles identifiés dans la zone d'opération, - et des moyens pour, au cours d'une phase d'utilisation du dispositif dans la zone d'opération, le dispositif étant porté par un utilisateur, détecter (F2) si l'utilisateur s'approche d'un des obstacles statiques repérés dans ladite carte et déclencher (G2) alors un processus d'alerte. 2. Dispositif d'immersion visuelle selon la revendication 1, caractérisé en ce que lesdites images sont fusionnées (G1) en un modèle de la zone d'opération en recherchant dans des images différentes des pixels correspondant à un même point de la zone d'opération, et en les fusionnant lesdits pixels pour ne pas introduire d'informations redondantes, ou du moins limiter les informations redondantes, dans le modèle. 3. Dispositif d'immersion visuelle selon la revendication 2, caractérisé en ce que les pixels correspondant à un même point de la zone d'opération sont identifiés à l'aide d'une distance ou à l'aide d'un volume de fonction de distance signée tronquée. 4. Dispositif d'immersion visuelle selon l'une des revendications 1 à 3, caractérisé en ce qu'un périmètre de sécurité défini autour de l'utilisateur ou une extrapolation d'une position future de l'utilisateur fondée sur une historique 3058534 12 des positions de l'utilisateur est utilisé pour détecter (F2) si l'utilisateur s'approche d'un des obstacles statiques repérés dans ladite carte. 5. Dispositif d'immersion visuelle selon l'une des revendications 1 à 4, 5 caractérisé en ce que la phase d'initialisation comprend la mémorisation (D1) d'images ou de caractéristiques visibles constituant des points d'intérêt associés à leurs positions respectives dans la zone d'opération, et la phase d'utilisation comprend une localisation (12) de l'utilisateur vis-à-vis de la carte à l'aide d'au moins un desdits points. 10 6. Dispositif d'immersion visuelle selon la revendication 5, caractérisé en ce que les points d'intérêt sont choisis en fonction d'un critère de recouvrement pour couvrir la zone d'opération en limitant les redondances, choisis sur instruction de l'utilisateur ou choisis régulièrement dans le temps au cours d'un 15 déplacement du dispositif au cours de la phase d'initialisation. 7. Dispositif d'immersion visuelle selon l'une des revendications 1 à 6, caractérisé en ce que la caméra stéréoscopique comprend deux capteurs d'images et un moyen de calcul d'une information de disparité entre des images 20 capturées par les deux capteurs de manière synchronisée. 8. Dispositif d'immersion visuelle selon l'une des revendications 1 à 7, caractérisé en ce qu'il comprend de plus des moyens pour, au cours de la phase d'utilisation du dispositif dans la zone d'opération, le dispositif étant porté 25 par un utilisateur, capter des images stéréoscopiques correspondant à un champ de vision potentiel de l'utilisateur, analyser (D2) lesdites images correspondant au champ de vision potentiel pour détecter un éventuel obstacle supplémentaire dans celles-ci et, si l'utilisateur s'approche dudit éventuel obstacle supplémentaire déclencher (E2) alors un processus d'alerte. 30 9. Dispositif d'immersion visuelle selon la revendication 8, caractérisé en ce que les moyens pour analyser (D2) les images pour détecter un éventuel obstacle supplémentaire sont mis en oeuvre simultanément aux moyens pour détecter 3058534 13 (F2) si l'utilisateur s'approche d'un des obstacles statiques repérés dans la carte. 10. Dispositif d'immersion visuelle selon l'une des revendications 1 à 9, 5 caractérisé en ce que le processus d'alerte comprend l'émission d'un son, un affichage d'une image d'obstacle en surimpression des images immersives si une telle surimpression est fondée spatialement, un affichage d'une indication symbolique d'obstacle avec une indication de la direction concernée, ou un affichage d'une représentation imagée de l'utilisateur et de l'obstacle en 10 proximité l'un de l'autre.