FR3112639A1 - Procédé, dispositif et programme d’ordinateur d’aide au positionnement pour système de réalité étendue - Google Patents

Procédé, dispositif et programme d’ordinateur d’aide au positionnement pour système de réalité étendue Download PDF

Info

Publication number
FR3112639A1
FR3112639A1 FR2007478A FR2007478A FR3112639A1 FR 3112639 A1 FR3112639 A1 FR 3112639A1 FR 2007478 A FR2007478 A FR 2007478A FR 2007478 A FR2007478 A FR 2007478A FR 3112639 A1 FR3112639 A1 FR 3112639A1
Authority
FR
France
Prior art keywords
point
marker
points
user
sight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR2007478A
Other languages
English (en)
Other versions
FR3112639B1 (fr
Inventor
Fabrice Malaingre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Theoris
Original Assignee
Theoris
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Theoris filed Critical Theoris
Priority to FR2007478A priority Critical patent/FR3112639B1/fr
Priority to EP21746530.1A priority patent/EP4182775A1/fr
Priority to PCT/FR2021/051265 priority patent/WO2022013492A1/fr
Publication of FR3112639A1 publication Critical patent/FR3112639A1/fr
Application granted granted Critical
Publication of FR3112639B1 publication Critical patent/FR3112639B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/015Input arrangements based on nervous system activity detection, e.g. brain waves [EEG] detection, electromyograms [EMG] detection, electrodermal response detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Dermatology (AREA)
  • Neurosurgery (AREA)
  • Neurology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

La présente invention concerne l’aide au positionnement pour un système de réalité étendue comprenant une partie mobile, pourvu d’un dispositif de localisation de la partie mobile, selon un premier repère défini par le dispositif de localisation, le système de réalité étendue comprenant un dispositif de suivi de regard d’un utilisateur. Après avoir obtenu une identification de chaque point d’une pluralité de points de l’environnement réel et la position de chaque point selon un second repère, une estimation de la position du point dans le premier repère est obtenue, pour chaque point de la pluralité de points, la position du point dans le premier repère étant estimée à l’aide du dispositif de suivi de regard. Une corrélation entre le premier repère et le second repère est ensuite obtenue, en fonction des positions des points de la pluralité de points dans le premier repère et dans le second repère. Fig. 6

Description

Procédé, dispositif et programme d’ordinateur d’aide au positionnement pour système de réalité étendue
L’invention se rapporte aux systèmes de réalité étendue, par exemple aux systèmes de réalité augmentée ou de réalité mixte, et à l’aide au positionnement, pour corréler des espaces réel et virtuel et permettre ainsi l’ajout d’objets virtuels à la perception qu’a un utilisateur d’un environnement réel.
La réalité étendue (aussi connue sous le nom de extended reality), comprenant notamment la réalité augmentée (aussi connue sous le nom de augmented reality) et la réalité mixte (aussi connue sous le nom de mixed reality), vise à combiner réalité physique et contenus numériques, par exemple en insérant un ou plusieurs objets virtuels dans un environnement réel. Une telle insertion consiste typiquement à insérer des objets virtuels dans le champ de vision d’un utilisateur, par exemple en projetant une représentation de ces objets virtuels sur une surface transparente telle que des verres de lunettes, ou à ajouter des objets virtuels à une représentation de l’environnement réel, généralement dans des images d’un ou plusieurs flux vidéo.
A ces fins, un système de réalité étendue comprend un moteur de rendu (aussi connu sous le nom de rendering engine) capable d’enrichir un environnement réel avec une scène virtuelle, c’est-à-dire d’ajouter une représentation d’objets virtuels à la réalité, selon un point de vue particulier, typiquement le point de vue de l’utilisateur du système. Pour manipuler les objets présents dans la scène virtuelle (objets virtuels et/ou modèles d’objets réels), chaque moteur de rendu utilise un repère prédéterminé qui lui est propre, rigidement lié à l’environnement réel à enrichir.
Dans de nombreux types d’applications, la position et l’orientation des objets virtuels à ajouter à la réalité doivent être déterminées avec précision selon des éléments de l’environnement réel, par exemple selon la position de points singuliers de la scène réelle tels que des points caractéristiques d’un objet réel à enrichir. Quelle que soit la façon dont sont déterminées la position et l’orientation des objets virtuels, il est important d’établir un lien entre les environnements réel et virtuel pour assurer une cohérence spatiale et temporelle entre ces environnements, c’est-à-dire que les objets virtuels soient placés au bon endroit et au bon moment dans la perception que l’utilisateur a du monde réel.
Il est ainsi nécessaire pour un système de réalité étendue de déterminer en temps réel la perception qu’a leur utilisateur de l’environnement réel. Par ailleurs, de nombreux systèmes de réalité étendue étant mobiles du fait que, en général, au moins une partie de ces systèmes est portée par leur utilisateur, il est donc nécessaire de déterminer en temps réel la position et l’orientation de la partie mobile des systèmes de réalité étendue par rapport à l’environnement réel, et ce afin d’assurer la cohérence spatiale et temporelle entre scène réelle et scène virtuelle. Il s’agit, par exemple, de déterminer la position et l’orientation d’un casque de réalité étendue dans l’environnement réel. A ces fins, une localisation à 6 degrés de liberté (appelée 6DoF tracking en terminologie anglo-saxonne), mettant en œuvre des techniques de type SLAM (acronyme de Simultaneous Localization And Mapping en terminologie anglo-saxonne) ou équivalentes, est souvent utilisée.
Il s’agit donc souvent de dispositifs de localisation relative qui visent à déterminer une position et une orientation par rapport à une position et une orientation précédentes et non par rapport à des points fixes prédéterminés. En d’autres termes, la position et l’orientation de tels systèmes de réalité étendue sont déterminées dans un repère propre au dispositif de localisation relative, dans lequel une cartographie de l’environnement est construite en temps réel par le dispositif lui-même. Par conséquent, selon les conditions d’initialisation, une localisation relative à 6 degrés de liberté peut conduire à des positions et orientations différentes alors même que ce système de réalité étendue est placé au même endroit d’un environnement réel déterminé et stable, et ce du fait que la cartographie de l’environnement générée en temps réel sera différente.
Il en résulte que si une localisation relative à 6 degrés de liberté peut s’avérer extrêmement performante pour suivre des mouvements, elle ne peut être utilisée de façon indépendante, sans tenir compte des conditions d’initialisation du système de réalité étendue. En effet, les coordonnées de position et d’orientation déterminées par le dispositif de localisation relative sont exprimées dans un repère réel, rigidement lié à l’environnement réel, qui lui est propre et qui ne porte aucune sémantique quant à l’environnement réel dans lequel il évolue. Ce repère est différent de celui utilisé par le moteur de rendu.
Il est donc nécessaire, durant une phase d’initialisation, d’établir un lien entre le repère défini et utilisé par le moteur de rendu, généralement appelé repère virtuel, et le repère défini et utilisé par le dispositif de localisation, généralement appelé repère réel. Il peut s’agir, par exemple, de déterminer une matrice de passage entre d’une part le repère virtuel prédéterminé lié à l’environnement réel et le repère réel lié à ce même environnement mais déterminé par le dispositif de localisation lors de son initialisation. Une telle matrice de passage est une matrice de corrélation entre les environnements réel et virtuel.
Or les solutions préexistantes pour effectuer cette corrélation réel/virtuel sont souvent peu satisfaisantes. A titre d’illustration, il existe des solutions de corrélation réel/virtuel utilisant une reconnaissance de « marqueurs fiduciaires », par exemple des solutions d’identification et de localisation de QR codes (sigle de Quick Response codes en terminologie anglo-saxonne) positionnés dans l’environnement réel. Bien que ces solutions soient généralement robustes, la pose des marqueurs fiduciaires peut s’avérer problématique car elle nécessite un support, des manipulations et reporte le problème de précision de la corrélation réel/virtuel sur la précision de pose des marqueurs eux-mêmes.
Il existe également des solutions basées sur la reconnaissance de « marqueurs naturels » selon lesquelles des images de référence (ou motifs) sont utilisées pour identifier et localiser des motifs naturellement présents dans l’environnement réel. D’autres solutions encore sont basées sur des algorithmes de reconnaissance « de formes » selon lesquelles des éléments présents dans l’environnement réel sont identifiés et localisés selon leur modélisation 3D. Alors que ces solutions présentent des avantages en termes de facilité de mise en œuvre pour des utilisateurs de systèmes de réalité étendue, elles sont généralement peu robustes vis-à-vis des changements de l’environnement (par exemple des changements de forme ou d’aspect d’un objet évoluant au cours du temps), mais aussi vis-à-vis des variations des conditions d’éclairage de ce même environnement.
Il existe donc un réel besoin pour un système d’aide au positionnement pour des applications de réalité étendue, permettant d’établir une corrélation entre des environnements réel et virtuel.
La présente invention aide notamment à résoudre ces problèmes.
A cet effet, l’invention propose un mécanisme d’aide au positionnement pour systèmes de réalité étendue, permettant une corrélation réel/virtuel.
Il est ainsi proposé un procédé d’aide au positionnement pour un système de réalité étendue, le système de réalité étendue comprenant au moins une partie mobile dans un environnement réel et étant pourvu d’un dispositif de localisation pour déterminer une position et/ou une orientation relatives de la partie mobile selon un premier repère rigidement lié à l’environnement réel, le premier repère étant défini par le dispositif de localisation, le système de réalité étendue comprenant en outre un dispositif de suivi de regard d’un utilisateur du système de réalité étendue, le procédé comprenant :
- l’obtention d’une identification de chaque point d’une pluralité de points de l’environnement réel et de la position de chaque point de la pluralité de points selon un même second repère rigidement lié à l’environnement réel, différent du premier repère ;
- pour chaque point de la pluralité de points, l’obtention d’une estimation de la position du point dans le premier repère, la position du point dans le premier repère étant estimée à l’aide du dispositif de suivi de regard ; et
- la détermination d’une corrélation entre le premier repère et le second repère, en fonction des positions des points de la pluralité de points dans le premier repère et dans le second repère, ladite corrélation étant utilisée pour afficher au moins un objet virtuel à une position et selon une orientation définies dans le second repère.
Le procédé selon l’invention permet ainsi d’établir un lien, de façon simple, rapide, et sans connaissance particulière, entre un repère réel lié à un environnement réel et défini par un dispositif de localisation d’une part, et un repère virtuel prédéfini et également lié à cet environnement réel d’autre part. Le repère virtuel est par exemple un repère utilisé par un moteur de rendu.
Selon des modes de réalisation particuliers, la partie mobile comprend le dispositif de localisation, le dispositif de localisation étant un dispositif de localisation et de cartographie simultanées de type SLAM.
Toujours selon des modes de réalisation particuliers, le dispositif de suivi de regard est rigidement lié au dispositif de localisation.
Toujours selon des modes de réalisation particuliers, plusieurs estimations de la position d’un point fixé par l’utilisateur sont obtenues, le procédé comprenant en outre le calcul d’une position d’un point fixé par l’utilisateur à partir des estimations obtenues.
Toujours selon des modes de réalisation particuliers, l’obtention de plusieurs estimations de la position d’un point fixé par l’utilisateur comprend une évaluation de dispersion, les estimations de position obtenues étant telles que la dispersion des estimations de position obtenues est inférieure à un seuil.
Toujours selon des modes de réalisation particuliers, l’obtention de plusieurs estimations de la position d’un point fixé par l’utilisateur comprend un filtrage de positions estimées, le filtrage étant basé sur une distribution de positions estimées.
Toujours selon des modes de réalisation particuliers, au moins une estimation de position est obtenue à partir d’au moins deux lignes de visée et, si les au moins deux lignes de visée ne sont pas coplanaires, la au moins une position estimée est la position du centre d’un segment perpendiculaire aux au moins deux lignes de visée.
Toujours selon des modes de réalisation particuliers, le second repère est un repère utilisé par un moteur de rendu du système de réalité étendue.
Un autre aspect de l’invention a pour objet une unité de traitement configurée pour exécuter chacune des étapes du procédé décrit précédemment. Les avantages et les variantes de cette unité de traitement sont similaires à ceux évoqués précédemment.
Un programme informatique, mettant en œuvre tout ou partie du procédé décrit ci-dessus, installé sur un équipement préexistant, est en lui-même avantageux, dès lors qu’il permet d’établir de façon simple et rapide un lien entre un repère réel lié à un environnement réel, défini par un dispositif de localisation, et un repère virtuel prédéfini également lié à cet environnement réel.
Ainsi, la présente invention vise également un programme informatique comportant des instructions pour la mise en œuvre du procédé précédemment décrit, lorsque ce programme est exécuté par un processeur.
Ce programme peut utiliser n’importe quel langage de programmation (par exemple, un langage-objet ou autre) et être sous la forme d’un code source interprétable, d’un code partiellement compilé ou d’un code totalement compilé.
Un autre aspect concerne un support de stockage non-transitoire d’un programme exécutable par ordinateur, comprenant un ensemble de données représentant un ou plusieurs programmes, lesdits un ou plusieurs programmes comprenant des instructions pour, lors de l’exécution desdits un ou plusieurs programmes par un ordinateur comprenant une unité de traitement couplée de manière opérationnelle à des moyens mémoires et à un module d’interface entrée/sortie, pour exécuter tout ou partie du procédé décrit ci-dessus.
D’autres caractéristiques, détails et avantages de l’invention apparaîtront à la lecture de la description détaillée ci-après. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés, dans lesquels :
Fig. 1
illustre un exemple d’environnement dans lequel l’invention peut être mise en œuvre selon des modes de réalisation particuliers de l’invention ;
Fig. 2
, comprenant les figures 2a et 2b, illustre schématiquement l’estimation des coordonnées d’un point fixé par un utilisateur, selon une projection sur un plan transverse et selon une projection sur un plan sagittal ;
Fig. 3
illustre schématiquement l’estimation des coordonnées d’un point fixé par un utilisateur à partir de plusieurs lignes de visée obtenues depuis plusieurs positions de l’utilisateur, lorsque celui-ci se déplace en conservant son regard sur le même point fixé ;
Fig. 4
illustre un exemple d’estimation des coordonnées d’un point fixé par un utilisateur, à partir de deux lignes de visée relatives à ce même point fixé par l’utilisateur depuis deux positions différentes ;
Fig. 5
, comprenant les figures 5a et 5b, illustre schématiquement des résultats de mesures effectuées pour estimer les coordonnées d’un point singulier d’un environnement réel, fixé par un utilisateur, utilisant un dispositif de suivi de regard fournissant une estimation des coordonnées d’un point fixé et un dispositif de suivi de regard fournissant une caractérisation de la ligne de visée passant par le point fixé, respectivement ;
Fig. 6
illustre un exemple d’étapes pour déterminer une matrice de passage entre un repère réel défini par un dispositif de localisation et un repère virtuel prédéterminé, les repères réel et virtuel étant rigidement liés à un même environnement réel ;
Fig. 7
illustre un premier exemple d’étapes pour estimer les coordonnées de points mesurés par un dispositif de suivi de regard lorsque l’utilisateur vise un point singulier d’un environnement réel depuis plusieurs positions d’observation distinctes, dans un repère réel lié à un dispositif de localisation d’un système de réalité étendue, le dispositif de suivi de regard utilisé étant capable de directement fournir les coordonnées du point fixé par l’utilisateur ;
Fig. 8
illustre un second exemple d’étapes pour estimer les coordonnées de points mesurés par un dispositif de suivi de regard lorsque l’utilisateur vise un point singulier d’un environnement réel depuis plusieurs positions d’observation distinctes, dans un repère réel lié à un dispositif de localisation d’un système de réalité étendue, le dispositif de suivi de regard utilisé se limitant à fournir la caractérisation de la ligne de visée passant par le point fixé par l’utilisateur ;
Fig. 9
illustre un exemple d’étapes pour calculer des coordonnées d’un ensemble de points mesurés, représentant un même point fixé par un utilisateur, à partir d’un ensemble de lignes de visée ;
Fig. 10
illustre un exemple d’étapes pour estimer les coordonnées d’un point fixé par un utilisateur à partir de coordonnées de plusieurs points mesurés (nuage de points mesurés) ; et
Fig. 11
illustre un exemple de dispositif pouvant être utilisé pour mettre en œuvre, au moins partiellement, un mode de réalisation de l’invention, notamment des étapes décrites en référence aux figures 6 à 10.
Description détaillée
L’être humain a des capacités biomécaniques extrêmement performantes, notamment celle de pouvoir fixer visuellement un point précis dans l’espace de manière extrêmement stable pendant une courte durée, même lorsque le corps est en mouvement. Ainsi, par exemple, lorsqu’une personne conduit et fixe un bref instant un objet tel qu’un panneau de signalisation au bord de la route, le mouvement des yeux est asservi pour converger vers l’objet fixé en dépit de la vitesse. Les inventeurs ont déterminé que de telles propriétés pouvaient avantageusement être utilisées dans un système de réalité étendue, notamment lors de son initialisation.
Selon des modes de réalisation de l’invention, une aide au positionnement pour un système de réalité étendue comprenant un dispositif de localisation est apportée par l’établissement d’une relation entre un repère prédéterminé rigidement lié à l’environnement réel, par exemple un repère utilisé par un moteur de rendu, appelé repère virtuel, et un repère défini par le dispositif de localisation de ce système de réalité étendue, également rigidement lié à ce même environnement réel, appelé repère réel. A ces fins, le système de réalité étendue comprend un dispositif de suivi de regard permettant d’estimer des coordonnées d’un point de l’environnement réel, fixé par un utilisateur, dans le repère réel défini par le dispositif de localisation. En établissant une relation entre les coordonnées de points singuliers fixés par l’utilisateur à travers le système de réalité étendue, dans le repère réel défini par le dispositif de localisation, et les coordonnées de ces points dans le repère virtuel prédéterminé, il est possible d’établir une relation entre l’environnement réel et l’environnement virtuel du système de réalité étendue. Cette relation permet de déterminer précisément la position et l’orientation d’objets virtuels à insérer dans l’environnement réel tel qu’il est perçu par l’utilisateur.
La figure 1 illustre un exemple d’environnement dans lequel l’invention peut être mise en œuvre selon des modes de réalisation particuliers.
Comme illustré, un utilisateur 100 pourvu d’un casque de réalité étendue 105 peut se déplacer dans un environnement réel 110. Le casque de réalité étendue 105 comprend ici un dispositif de suivi de regard (non représenté), rigidement lié au casque de réalité étendue. Le casque de réalité étendue 105 comprend en outre, en particulier, un dispositif de localisation ainsi qu’un moteur de rendu (non représentés), ou est connecté à de tels moyens, pour estimer les mouvements du casque de réalité étendue 105 (changements de position et/ou d’orientation) et afficher des d’objets virtuels selon des positions et des orientations particulières. Le moteur de rendu peut être mis en œuvre dans des moyens de traitement de l’information tels que le dispositif décrit en référence à la figure 11. Le dispositif de localisation comprend également des moyens de traitement de l’information, les mêmes que ceux utilisés par le moteur de rendu ou d’autres, ainsi qu’un ou plusieurs capteurs de mouvements.
L’utilisateur peut se déplacer librement dans l’environnement réel 110. Bien que l’environnement réel soit ici un espace intérieur, il pourrait également s’agir d’un espace extérieur. L’utilisateur peut notamment déplacer sa tête selon trois directions distinctes (avant-arrière, gauche-droite et haut-bas) et la tourner selon trois axes distincts (généralement appelés lacet, tangage et roulis), c’est-à-dire selon 6 degrés de liberté.
L’environnement réel 110 comprend des éléments fixes, par exemple les fenêtres 115-1 et 115-2 et le tableau 120. Il peut également comprendre des éléments fixes mais susceptibles d’être déplacés, par exemple la plante 125 et le fauteuil 130.
L’invention permet d’établir une relation entre la position d’éléments fixes d’un environnement réel, par exemple les fenêtres 115-1 et 115-2 et le tableau 120, selon un repère virtuel prédéterminé et utilisé par un moteur de rendu et la position de ces éléments dans un repère réel défini par le dispositif de localisation. A ces fins, il est nécessaire d’identifier au moins trois points singuliers différents de l’environnement réel et de déterminer les coordonnées de ces points dans le repère virtuel dans le repère réel. La connaissance des coordonnées de ces trois points dans les repères virtuel et réel permet d’établir une matrice de passage de coordonnées exprimées dans le repère virtuel et dans le repère réel (et/ou inversement).
Ces points singuliers sont de préférence des points singuliers de l’environnement réel, choisis de telle sorte à être aisément identifiables par un utilisateur, par exemple l’utilisateur 100, mais aussi facilement repérable sur un modèle numérique correspondant. Il peut s’agir, par exemple, des coins supérieurs gauches et inférieurs droits des fenêtres 115-1 et 115-2.
Il est rappelé ici qu’un dispositif de suivi de regard permet d’estimer les coordonnées d’un point fixé par un utilisateur dans un repère lié au dispositif de suivi de regard ou dans tout autre repère dont une matrice de passage avec un repère lié au dispositif de suivi de regard est connue. En effet, la position du centre de la pupille par rapport à l’œil permet de déterminer un axe optique. L’intersection des axes optiques issus des deux yeux représente le point fixé.
La figure 2, comprenant les figures 2a et 2b, illustre schématiquement l’estimation des coordonnées d’un point fixé par un utilisateur, selon une projection sur un plan transverse et selon une projection sur un plan sagittal.
Comme illustré sur les figures 2a et 2b, un premier axe optique 200-1 peut être défini à partir d’un premier globe oculaire 205-1, par la droite passant par le centre 210-1 du globe oculaire et le centre de la pupille 215-1. De même, un second axe optique 200-2 peut être défini à partir d’un second globe oculaire 205-2, par la droite passant par le centre 210-2 du globe oculaire et le centre de la pupille 215-2. L’intersection des axes optiques 200-1 et 200-2 correspond au point fixé par l’utilisateur, référencé 220.
Il est observé ici que la figure 2b étant une vue selon une projection sur un plan sagittal, les axes optiques 200-1 et 200-2 sont superposés. Seul l’axe optique 200-1 est ici « visible ».
Ainsi, connaissant les coordonnées du centre des globes oculaires et du centre des pupilles dans un repère quelconque rigidement lié aux globes oculaires, il est possible de calculer les coordonnées d’un point visé, dans ce repère.
Il est observé ici que si certains dispositifs de suivi de regard sont capables d’estimer les coordonnées d’un point fixé par un utilisateur, d’autres se limitent à estimer, toujours dans un repère quelconque rigidement lié aux globes oculaires, la ligne de visée auquel appartient ce même point fixé par l’utilisateur. Cette ligne de visée 225, qui correspond à la direction du regard de l’utilisateur, peut être définie comme étant la droite passant par le point fixé par l’utilisateur et un centre optique. Ce dernier est un point rigidement lié à l’utilisateur qui peut être défini de différentes façons, notamment en fonction du dispositif de suivi de regard. Il peut par exemple correspondre au centre du globe oculaire de l’œil directeur de l’utilisateur ou au centre du segment interpupillaire dont les extrémités correspondent au centre des globes oculaires (référencé 230 sur la figure 2a).
Par ailleurs, il est rappelé ici qu’un dispositif de localisation de type SLAM est capable de définir sa position et son orientation dans un repère réel défini par ce dispositif localisation, ce repère étant rigidement lié à l’environnement réel. Ainsi, lorsqu’un tel dispositif de localisation est rigidement lié au dispositif de suivi de regard, il est possible de déterminer, en fonction des capacités de ce dispositif de suivi de regard, soit les coordonnées d’un point fixé par un utilisateur, soit une caractérisation de la ligne de visée passant par le point fixé par l’utilisateur, dans le repère réel défini par le dispositif de localisation, ce repère étant rigidement lié à l’environnement réel.
A titre d’illustration, le dispositif de suivi de regard mis en œuvre dans le casque de réalité mixte commercialisé par la société Microsoft sous le nom de HoloLens 2 (Microsoft et HoloLens sont des marques) permet d’obtenir en temps réel une caractérisation de la ligne de visée passant par le point fixé par le regard de l’utilisateur dans un repère réel défini par le dispositif de localisation mis en œuvre dans ce casque de réalité mixte (ce repère réel étant rigidement lié à l’environnement réel).
Cependant, même dans le cas où le dispositif de suivi de regard se limite à fournir une caractérisation de la ligne de visée passant par le point fixé par un utilisateur, il est possible d’estimer les coordonnées du point fixé en demandant à l’utilisateur de se déplacer tout en continuant à fixer le même point.
La figure 3 illustre schématiquement l’estimation des coordonnées d’un point fixé par un utilisateur à partir de plusieurs lignes de visée obtenues depuis plusieurs positions de l’utilisateur, lorsque celui-ci se déplace en conservant son regard sur le même point fixé.
Comme illustré, un dispositif de suivi de regard capable de déterminer une ligne de visée peut être utilisé pour déterminer la ligne de visée 300-1 d’un utilisateur situé à une première position 305-1 dont le regard est fixé sur un point 310. Lorsque l’utilisateur se déplace à une position 305-2 tout en continuant à fixer le point 310, le dispositif de suivi de regard peut alors déterminer la ligne de visée 300-2. Les coordonnées du point visé 310 peuvent alors être calculées à partir des lignes de visée 300-1 et 300-2. Il est observé que si les lignes de visée n’appartiennent pas à un même plan, le point visé peut, par exemple, être défini comme le milieu d’un segment perpendiculaire aux deux lignes de visée et dont chacune des extrémités appartient à l’une des deux lignes de visée, comme illustré sur la figure 4, la longueur de ce segment étant la distance la plus courte possible entre les deux lignes de visée.
La visée, depuis plusieurs emplacements distincts, d’un point fixé par un utilisateur, pour estimer les coordonnées de ce point, peut être appelée une visée mobile.
Ainsi, la figure 4 illustre un exemple d’estimation des coordonnées d’un point fixé par un utilisateur, à partir de deux lignes de visée relatives à ce même point fixé par l’utilisateur depuis deux positions différentes. Comme illustré, le point 400 situé au milieu du segment 405 perpendiculaire aux lignes de visée 300-1 et 300-2, dont une extrémité appartient à la ligne de visée 300-1 et l’autre extrémité appartient à la ligne de visée 300-2, peut être considéré comme le point fixé par l’utilisateur en tant que point équidistant des deux lignes de visées 300-1 et 300-2. Il est rappelé ici que si les lignes de visée sont coplanaires, le point fixé par l’utilisateur est le point d’intersection de ces lignes de visée.
Il est observé que, selon les exemples décrits en référence aux figures 1, 2 et 3, la relation entre l’environnement réel et l’environnement virtuel est déterminé sur la base de la vision stéréoscopique d’un utilisateur équipé d’un système de réalité étendue (par exemple un casque de réalité étendue). Lorsque ce système de réalité étendue permet une vision directe (appelée optical see-through en terminologie anglo-saxonne ou OST), la vision de l’utilisateur n’est pas déformée et les calculs décrits précédemment peuvent être mis en œuvre directement. Lorsque la vision est indirecte (appelée video see-through en terminologie anglo-saxonne ou VST), par exemple lorsque l’environnement est acquis à l’aide de capteurs, par exemple de capteurs vidéo stéréoscopiques, puis restitué, par exemple affichés sur des écrans, il est nécessaire de vérifier que la perception de l’environnement est à l’échelle 1:1 pour mettre en œuvre directement les calculs décrits précédemment. Si l’échelle n’est pas 1:1, une correction correspondante est nécessaire.
Des exemples de casques de réalité étendue de type OST pouvant être utilisés pour mettre en œuvre l’invention sont le casque connu sous le nom HoloLens 2 de la société Microsoft et le casque connu sous l’appellation Magic Leap One de la société Magic Leap (Magic Leap One et Magic Leap sont des marques). Des exemples de casques de réalité étendue de type VST pouvant être utilisés pour mettre en œuvre l’invention sont le casque connu sous l’appellation XR-1 de la société Varjo (XR-A et Varjo sont des marques) et le casque connu sous l’appellation Lynx-R1 de la société Lynx (Lynx-R1 et Lynx sont des marques).
Selon d’autres modes de réalisation, les coordonnées d’un point fixé par un utilisateur sont estimées à l’aide d’une vision monoculaire, ses coordonnées étant alors, par exemple, estimées à partir de deux lignes de visée déterminées par l’observation d’un même point à l’aide d’un même œil depuis deux emplacements différents, comme décrit en référence à la figure 3.
Selon des modes de réalisation particuliers, l’établissement d’une relation entre un repère réel défini par un dispositif de localisation et un repère virtuel prédéterminé (par exemple un repère d’un moteur de rendu), les repères réel et virtuel étant rigidement liés à un même environnement réel, est effectué par une visée mobile de plusieurs points singuliers. A ces fins, un utilisateur pourvu d’un dispositif de réalité étendue comprenant un dispositif de suivi de regard vise un point singulier de l’environnement réel en le fixant du regard un certain temps, par exemple quelques secondes, en se déplaçant, tout en continuant à fixer le point singulier. Il le fait pour au moins trois points singuliers. Afin de ne pas perturber l’asservissement oculaire, aucun objet virtuel n’est, de préférence, affiché dans le champ de vision de l’utilisateur durant cette phase de corrélation.
La figure 5, comprenant les figures 5a et 5b, illustre schématiquement des résultats de mesures effectuées pour estimer les coordonnées d’un point singulier d’un environnement réel, fixé par un utilisateur, utilisant un dispositif de suivi de regard fournissant les coordonnées d’un point fixé et un dispositif de suivi de regard fournissant une caractérisation de la ligne de visée passant par le point fixé, respectivement. Dans un souci de clarté, seule une vue selon une projection sur un plan transverse est présentée.
Comme illustré par les figures 5a et 5b, cette estimation des coordonnées du point fixé par l’utilisateur s’appuie sur plusieurs mesures issues du dispositif de suivi de regard, cette pluralité de mesures permettant d’éventuellement pallier les limitations de ce dispositif.
Dans le cas d’un dispositif de suivi de regard fournissant les coordonnées du point fixé, la principale limitation réside dans l’imprécision des coordonnées fournies. Cette imprécision résulte notamment de l’imprécision du dispositif de suivi de regard en lui-même, mais aussi de l’imprécision du dispositif de localisation, ainsi que de leur combinaison. L’utilisation d’un dispositif de réalité étendue de type VST peut en outre accroître cette imprécision du fait qu’un utilisateur pourra être amené à accommoder sa vision à une distance non cohérente avec la distance de convergence de ses yeux (la distance du dispositif d’affichage par rapport à la distance du point singulier visé).
Ainsi, comme illustré sur la figure 5a, une visée mobile effectuée à l’aide d’un dispositif de suivi de regard fournissant les coordonnées d’un point fixé par un utilisateur peut produire comme résultats les points mesurés 510-1 à 510-4 lorsque l’utilisateur vise le point singulier 500 depuis les positions 505-1 à 505-4, respectivement.
Dans le cas d’un dispositif de suivi de regard fournissant une caractérisation de la ligne de visée passant par le point fixé par un utilisateur, la principale limitation réside dans le fait qu’il est nécessaire d’avoir au moins deux lignes de visée pour pouvoir estimer les coordonnées du point visé. A cette limitation peut en outre s’ajouter une imprécision liée au dispositif de suivi de regard en lui-même, ou liée au dispositif de localisation, voire à leur combinaison.
Ainsi, comme illustré sur la figure 5b, un dispositif de suivi de regard fournissant une caractérisation de ligne de visée passant par un point fixé par un utilisateur peut produire comme résultats les lignes de visée mesurées 515-1 à 515-4, lorsque l’utilisateur fixe le point singulier 500’ depuis les positions 505’-1 à 505’-4. Ces lignes de visée mesurées peuvent alors être utilisées pour estimer les coordonnées de points mesurés tels que le point mesuré 520.
Par conséquent, quel que soit le dispositif de suivi de regard, les résultats d’une visée mobile peuvent être formalisés sous forme d’un nuage de points mesurés qui se répartissent autour du point singulier fixé par un utilisateur se déplaçant, et dont les coordonnées dans le repère du dispositif de suivi de regard ont été estimées. A titre d’illustration, les coordonnées de ce point singulier peuvent alors être déterminées comme étant les coordonnées du centre de gravité du nuage de points mesurés résultant de la visée mobile.
Pour limiter les risques d’erreurs, il est en outre possible de filtrer les points mesurés relatifs à un même point singulier fixé par l’utilisateur, pour ne garder que les points mesurés les plus proches les uns des autres. A titre d’illustration, la distribution de ces points mesurés peut être prise en compte pour ignorer les points les plus éloignés et ne considérer que les points restants aux fins de calculer les coordonnées du centre de gravité qui pourra être considéré comme étant le point singulier fixé.
Après avoir décrit, en référence aux figures 2 à 5, la détermination des coordonnées d’un point fixé par un utilisateur dans un repère lié à un dispositif de suivi du regard et la visée mobile, mises en œuvre dans des modes de réalisation de l’invention, des exemples d’étapes de procédés selon des modes de réalisation de l’invention sont décrits en références aux figures 6 à 10.
La figure 6 illustre un exemple d’étapes pour déterminer une matrice de passage entre un repère réel défini par un dispositif de localisation et un repère virtuel prédéterminé, les repères réel et virtuel étant rigidement liés à un même environnement réel. Le repère virtuel est, par exemple, un repère utilisé par le moteur de rendu du système de réalité étendue.
Les étapes illustrées sur la figure 6 sont mises en œuvre dans un calculateur relié ou intégré à un système de réalité étendue dont au moins une partie comprend un dispositif de suivi de regard ainsi qu’un dispositif de localisation rigidement liés l’un à l’autre.
Ces étapes ont notamment pour objet d’estimer les coordonnées de points singuliers d’un environnement réel dans un repère réel défini par un dispositif de localisation et de déterminer une matrice de passage entre un repère virtuel prédéterminé et le repère réel. Les coordonnées des points singuliers dans le repère virtuel prédéterminé peuvent, par exemple, être obtenues d’un système extérieur ou déterminées selon des techniques de mesure standard. Comme décrit précédemment, le nombre de points singuliers, devant être fixés par un utilisateur, noté , est supérieur ou égal à 3.
Comme illustré, une première étape 600 comprend l’initialisation d’une variable , représentant un index de points singuliers à fixer pour établir une relation entre le repère réel défini par le dispositif de localisation et un repère virtuel prédéterminé, ici à la valeur .
Les coordonnées du point singulier ayant pour index , dans le repère virtuel prédéterminé, sont ensuite obtenues (étape 605). Elles peuvent, par exemple, être obtenues du moteur de rendu du système de réalité étendue. Ces coordonnées dans le repère virtuelle sont ici notées .
L’utilisateur est ensuite invité à fixer du regard le point singulier ayant l’index (étape 610). Une telle invitation peut prendre la forme d’un message vocal ou d’une indication visuelle dans le système de réalité étendue. Une étape suivante consiste à inhiber l’affichage d’éléments virtuels (étape 615) afin d’éviter de perturber le regard de l’utilisateur lorsqu’il fixe le point singulier d’index . Une étape suivante a pour objet la visée du point singulier elle-même. Des modes de réalisation de cette étape 620 sont décrit plus en détail en référence aux figures 7 et 8 qui illustrent deux modes de réalisation différents de cette visée, soit en utilisant un dispositif de suivi de regard fournissant les coordonnées du point fixé (figure 7), soit en exploitant un dispositif de suivi de regard fournissant une caractérisation de la ligne de visée passant par le point fixé (figure 8).
Quel que soit le mode de réalisation de la visée et afin de pallier les limitations du dispositif de suivi de regard utilisé, l’étape 620 permet le relevé d’un ensemble de points mesurés depuis plusieurs positions d’observation différentes de l’utilisateur, par exemple depuis un nombre de positions d’observation noté (le résultat de l’étape 620 est ainsi un nuage de points mesurés). Pour chaque position d’observation ( variant de à ), les coordonnées estimées, dans le repère réel lié au dispositif de localisation du système de réalité étendue, du point mesuré lorsque l’utilisateur vise le point singulier d’index , notées , sont obtenues. Il est observé que le nombre de positions peut varier de l’estimation des coordonnées d’un point singulier à l’estimation des coordonnées d’un autre point singulier. Il est également observé que si le nombre de positions d’observation est supérieur ou égal à pour un dispositif de suivi de regard capable de directement fournir les coordonnées du point fixé, le nombre est supérieur ou égal à dans le cas d’un dispositif de suivi de regard fournissant une caractérisation de la ligne de visée (il faut au moins lignes de visée mesurées pour estimer les coordonnées de point mesuré).
Dans une étape suivante, les coordonnées du point singulier ayant l’index , dans le repère réel défini par le dispositif de localisation, notées , sont calculées (étape 625). Les coordonnées estimées sont ici calculées à partir des coordonnées du nuage de points mesurés relevés lorsque l’utilisateur a fixé le point singulier ayant l’index depuis les différentes positions d’observation . Un exemple de mise en œuvre de cette étape est décrit plus en détail en référence à la figure 10.
Un test est ensuite effectué pour déterminer si tous les points singuliers ont été visés par l’utilisateur, c’est-à-dire si la valeur de l’index est inférieure au nombre de points singuliers à viser, noté (étape 630).
Si la valeur de l’index est strictement inférieure au nombre de points singuliers à fixer, l’index est incrémenté de (étape 635) et les étapes précédentes (étapes 605 à 625) sont répétées pour déterminer les coordonnées du point singulier ayant la nouvelle valeur de l’index .
Dans le cas contraire, si la valeur de l’index n’est pas strictement inférieure au nombre de points singuliers à viser, indiquant que les coordonnées de tous les points singuliers ont été estimées, la matrice de passage entre le repère réel défini par le dispositif de localisation et le repère virtuel prédéterminé est calculée (étape 640). Cette matrice permet notamment de déterminer une position et une orientation auxquelles des objets virtuels doivent être rendus afin d’être spatialement cohérents avec l’environnement réel dans lequel évolue le système de réalité étendue.
Cette matrice, notée ici , est telle que , quelle que soit la valeur de l’index .
Un exemple de calcul d’une telle matrice est présenté dans l’article intitulé « Least-Squares Fitting of Two 3-D Point Sets », Arun, Huang et Blostein (IEEE Transactions on Pattern Analysis and Machine Intelligence, Volume 9 Issue 5, May 1987).
La figure 7 illustre un premier exemple d’étapes pour estimer les coordonnées de points mesurés par un dispositif de suivi de regard lorsque l’utilisateur vise un point singulier d’un environnement réel depuis plusieurs positions d’observation distinctes, dans un repère réel lié à un dispositif de localisation d’un système de réalité étendue, le dispositif de suivi de regard utilisé étant capable de directement fournir les coordonnées du point fixé par l’utilisateur.
Le point singulier visé par l’utilisateur est ici le point singulier ayant l’index . Les coordonnées estimées du point mesuré lorsque l’utilisateur fixe le point singulier d’index à partir de la position d’observation , dans le repère réel lié au dispositif de localisation, sont ici notées .
Comme illustré, une première étape a ici pour objet d’initialiser la valeur de l’index des positions, à la valeur (étape 700). Les coordonnées du point mesuré lorsque l’utilisateur vise le point singulier ayant l’index sont alors obtenues du dispositif de suivi de regard (étape 705). Comme décrit précédemment, ces coordonnées sont obtenues dans le repère réel lié au dispositif de localisation du système de réalité étendue comprenant le dispositif de suivi de regard, les deux dispositifs état rigidement liés.
Dans une étape suivante, un test est effectué pour déterminer si un nombre suffisant de mesures a été effectué (étape 710), c’est-à-dire, selon l’exemple de la figure 7, si une estimation a été faite pour un nombre de positions d’observation, en comparant la valeur de l’index avec le nombre . A titre d’illustration, ce nombre peut être déterminé en fonction d’une durée prédéterminée, par exemple une durée comprise entre et secondes, de telle sorte à effectuer le plus de mesures possibles dans le temps prédéterminé. Alternativement, ce nombre peut être choisi entre deux valeurs, par exemple entre et . Si la valeur de l’index est strictement inférieure à la valeur , la valeur de l’index est incrémentée de et une pause d’une durée prédéterminée est effectuée pour que l’utilisateur ait le temps de se déplacer (étape 715). Cette durée est, par exemple, de quelques dizaines de millisecondes. Les étapes précédentes (étapes 705 et 710) sont alors répétées pour obtenir de nouvelles mesures.
Dans le cas contraire, si la valeur de l’index est supérieure ou égale à la valeur , une estimation de la dispersion du nuage de points mesurés est de préférence effectuée (étape 720), pour vérifier la cohérence des mesures effectuées. A titre d’illustration, la dispersion peut être estimée comme étant la différence entre l’abscisse la plus petite et l’abscisse la plus grande, entre l’ordonnée la plus petite et l’ordonnée la plus grande et entre la cote la plus petite et la cote la plus grande (ce qui peut se traduire par le calcul de la boîte englobante contenant l’ensemble des points mesurés). Ces valeurs sont comparées à un seuil (ou à plusieurs seuils, par exemple un seuil d’abscisse, un seuil d’ordonnée et un seuil de cote) pour déterminer si la dispersion des points mesurés est acceptable ou non (étape 725).
Si la dispersion est trop importante, les étapes précédentes sont ré-exécutées pour obtenir de nouvelles mesures. Dans le cas contraire, si la dispersion est acceptable, les coordonnées mesurées , avec variant ici de à , sont mémorisées pour être ensuite utilisées pour estimer les coordonnées du point singulier visé d’index dans le repère réel lié au dispositif de localisation.
La figure 8 illustre un second exemple d’étapes pour estimer les coordonnées de points mesurés par un dispositif de suivi de regard lorsque l’utilisateur vise un point singulier d’un environnement réel depuis plusieurs positions d’observation distinctes, dans un repère réel lié à un dispositif de localisation d’un système de réalité étendue, le dispositif de suivi de regard utilisé se limitant à fournir la caractérisation de la ligne de visée passant par le point fixé par l’utilisateur.
A nouveau, le point singulier visé par l’utilisateur est ici le point singulier ayant l’index . La caractérisation de la ligne de visée mesurée lorsque l’utilisateur fixe le point singulier d’index à partir de la position d’observation , dans le repère réel lié au dispositif de localisation, formalisée par un point et une direction est ici notée , ou plus simplement , l’index n’étant pas rappelé afin d’améliorer la lisibilité.
Comme illustré, une première étape a pour objet d’initialiser la valeur de l’index , représentant un index de positions d’observation, à la valeur (étape 800). Dans une étape suivante, une caractérisation de la ligne de visée correspondant au regard de l’utilisateur lorsqu’il fixe le point singulier ayant l’index est obtenue du dispositif de suivi de regard (étape 805). Cette caractérisation de la ligne de visée obtenue est exprimée dans le repère réel lié au dispositif de localisation du système de réalité étendue comprenant le dispositif de suivi de regard (qui lui est rigidement lié).
Dans une étape suivante, un test est effectué pour déterminer si un nombre suffisant de mesures a été effectué (étape 810), c’est-à-dire, selon l’exemple de la figure 8, si une ligne de visée a été obtenue pour un nombre de positions d’observation, en comparant la valeur de l’index avec le nombre . A titre d’illustration, ce nombre peut être déterminé en fonction d’une durée prédéterminée, par exemple une durée comprise entre et secondes, de telle sorte à effectuer le plus de mesures possibles dans le temps prédéterminé. Alternativement, ce nombre peut être choisi entre deux valeurs, par exemple entre et . Si la valeur de l’index est strictement inférieure à la valeur , la valeur de l’index est incrémentée de et une pause d’une durée prédéterminée est effectuée pour que l’utilisateur ait le temps de se déplacer (étape 815). Cette durée est, par exemple, de quelques dizaines de millisecondes. Les étapes précédentes (étapes 805 et 810) sont alors répétées pour obtenir de nouvelles mesures.
Dans le cas contraire, si la valeur de l’index est supérieure ou égale à la valeur , un nuage de points mesurés, dont les coordonnées sont exprimées dans le repère réel lié au dispositif de localisation, est calculé (étape 820). Ce nuage, par exemple composé de points mesurés, est calculé à partir des lignes de visée précédemment obtenues. Un exemple d’étapes pour déterminer les coordonnées de chacun de ces points mesurés, notées ici , avec variant ici de à , est décrit en référence à la figure 9.
Dans une étape suivante, une estimation de la dispersion du nuage de points mesurés obtenus est de préférence effectuée (étape 825), pour vérifier la cohérence des mesures. A nouveau et à titre d’illustration, la dispersion peut être estimée comme étant la différence entre l’abscisse la plus petite et l’abscisse la plus grande, entre l’ordonnée la plus petite et l’ordonnée la plus grande et entre la cote la plus petite et la cote la plus grande (calcul de la boîte englobante contenant l’ensemble des points mesurés). Ces valeurs sont comparées à un seuil (ou à plusieurs seuils, par exemple un seuil d’abscisse, un seuil d’ordonnée et un seuil de cote) pour déterminer si la dispersion est acceptable ou non (étape 830).
Si la dispersion est trop importante, les étapes précédentes sont ré-exécutées pour obtenir de nouvelles mesures. Dans le cas contraire, si la dispersion est acceptable, les coordonnées mesurées , avec variant ici de à , sont mémorisées pour être ensuite utilisées pour estimer les coordonnées du point singulier visé d’index dans le repère réel lié au système de localisation.
La figure 9 illustre un exemple d’étapes pour calculer des coordonnées d’un ensemble de points mesurés, représentant un même point fixé par un utilisateur, à partir de lignes de visée. Ces étapes peuvent être exécutées lors de l’exécution de l’étape 820 de la figure 8.
Les coordonnées estimées des points mesurés , avec variant ici de à , correspondant à un même point singulier d’index , sont ici obtenues à partir de lignes de visée caractérisées sous la forme , avec variant ici de à , dans un repère réel lié au système de réalité étendue.
Comme illustré, une première étape a pour objet d’initialiser les valeurs des index , et (étape 900). Les index et sont des index de lignes de visée. Ils sont initialisés ici aux valeurs et , respectivement. L’index est un index de points mesurés dont la valeur est ici initialisée à .
Les lignes de visée ayant pour index et , c’est-à-dire les lignes de visée et , sont ensuite sélectionnées (étape 905). Dans une étape suivante, il est déterminé si ces lignes de visée sont coplanaires (étape 910). A titre d’illustration, ce test peut être effectué en déterminant si le vecteur formé par les points et est orthogonal au vecteur résultant du produit vectoriel des vecteurs et , c’est-à-dire si le produit scalaire est nul.
Si les lignes de visée sont coplanaires, un test est effectué pour déterminer si elles sont parallèles (étape 915). Ce test peut consister, par exemple, à déterminer si le produit vectoriel des vecteurs et , soit , est nul.
Si les lignes de visée sont parallèles, aucun point mesuré ne peut être déduit de ces deux lignes de visée.
Un test est alors effectué pour déterminer si la valeur de l’index est strictement inférieure au nombre de lignes de visée considérées (étape 920). Si la valeur de l’index est strictement inférieure au nombre , cette valeur est incrémentée de (étape 925) et un nouveau couple de lignes de visée est traité pour estimer, le cas échéant, les coordonnées d’un point mesuré. Dans le cas contraire, si la valeur de l’index n’est pas strictement inférieure au nombre , un test est effectué pour déterminer si la valeur de l’index est strictement inférieure au nombre moins de lignes de visée considérées (étape 930).
Si la valeur de l’index est strictement inférieure au nombre , cette valeur est incrémentée de , la valeur de l’index est modifiée pour être égale à celle de l’index plus (étape 935), et un nouveau couple de lignes de visée est traité pour estimer, le cas échéant, les coordonnées d’un point mesuré. Si, au contraire, la valeur de l’index est supérieure ou égale au nombre , la recherche de points mesurés prend fin, toutes les lignes de visée ayant été prises en considération.
Si les lignes de visée et sont coplanaires mais non parallèles (étapes 910 et 915), les coordonnées du point d’intersection de ces lignes sont calculées (étape 940) puis mémorisées comme celles d’un point mesuré ayant l’index (étape 945). La valeur de l’index est incrémentée de puis le ou les tests décrits précédemment sur les valeurs des index et sont effectués pour, le cas échéant, traiter un nouveau couple de lignes de visée.
Si les lignes de visée et ne sont pas coplanaires (étape 910), le segment perpendiculaire à ces deux lignes de visée est ici calculé (étape 950). S’il est considéré que le point est l’extrémité du segment appartenant à la ligne de visée et que le point est l’extrémité du segment appartenant à la ligne de visée et , les coordonnées de ces points peuvent être déterminées selon les relations suivantes :
et .
Les coordonnées du milieu du segment sont ensuite calculées (étape 955) puis mémorisées comme celles d’un point mesuré ayant l’index (étape 945). La valeur de l’index est incrémentée de puis le ou les tests décrits précédemment sur les valeurs des index et sont effectués pour, le cas échéant, traiter un nouveau couple de lignes de visée.
Après avoir exécuté les étapes illustrées sur la figure 9, un ensemble de points mesurés, comprenant points, correspondant à un même point visé par un utilisateur, est obtenu. Les coordonnées des points composant ce nuage de points mesurés peuvent être utilisées pour estimer les coordonnées du point visé par l’utilisateur.
La figure 10 illustre un exemple d’étapes pour estimer les coordonnées d’un point fixé par un utilisateur à partir de coordonnées de plusieurs points mesurés (nuage de points mesurés).
Les points mesurés sont par exemple les points de l’ensemble de points obtenus d’un dispositif de suivi de regard lors de l’étape 620 de la figure 6 ou les points de l’ensemble de points déterminés à partir de lignes de visée, comme décrit en référence à la figure 9.
Comme illustré, une première étape a pour objet de filtrer les points mesurés selon leur abscisse (étape 1000). A titre d’illustration, ce filtrage peut consister à sélectionner les points selon leur distribution sur l’axe des abscisses afin d’éliminer les points extrêmes, par exemple les points appartenant aux centiles supérieurs et inférieurs où la valeur est par exemple choisie entre et .
De même, une seconde étape a pour objet de filtrer les points selon leur ordonnée (étape 1005). A nouveau, ce filtrage peut consister à sélectionner les points selon leur distribution sur l’axe des ordonnées afin d’éliminer les points extrêmes.
De façon similaire encore, une troisième étape a pour objet de filtrer les points selon leur cote (étape 1010). A nouveau, ce filtrage peut consister à sélectionner les points selon leur distribution sur l’axe des cotes afin d’éliminer les points extrêmes.
Il est observé ici que selon des modes de réalisation particuliers, les étapes 1000 à 1010 peuvent être combinées afin de considérer simultanément les trois dimensions de l’espace et filtrer les points mesurés selon les distances qui les séparent afin d’éliminer les points situés à la périphérie du nuage de points. Il est également possible de filtrer les points en éliminant les points qui seraient dans le voisinage de la plus petite enveloppe convexe (ou convex hull en terminologie anglo-saxone) englobant le nuage de points mesurés.
Dans une étape suivante, les coordonnées du centre de gravité du nuage de points mesurés considérés, après filtrage, sont calculées (étape 1015). Ces coordonnées peuvent être estimées de la façon suivante :
, et .
Comme décrit précédemment, le centre de gravité représente ici une estimation du point singulier d’index fixé par l’utilisateur.
Selon des modes de réalisation particuliers, ce centre de gravité pourrait être projeté sur le point de plus proche d’une surface géométrique déterminée par le dispositif de localisation, cette surface géométrique correspondant à une reconstruction virtuelle de la surface réelle sur laquelle se trouve le point singulier fixé par l’utilisateur.
La figure 11 illustre un exemple de dispositif pouvant être utilisé pour mettre en œuvre, au moins partiellement, un mode de réalisation de l’invention, notamment des étapes décrites en référence aux figures 6 à 10.
Le dispositif 1100 est par exemple un ordinateur ou un calculateur.
Le dispositif 1100 comporte de préférence un bus de communication 1102 auquel sont reliés :
une unité centrale de traitement ou microprocesseur 1104 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ;
une mémoire morte 1106 (ROM, acronyme de Read Only Memory en terminologie anglo-saxonne) pouvant comporter le système d’exploitation et des programmes tels que "Prog" ;
une mémoire vive ou mémoire cache 1108 (RAM, acronyme de Random Access Memory en terminologie anglo-saxonne) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ;
une interface d’entrée / sortie 1110 reliée à un ou plusieurs capteurs 1112, notamment un ou plusieurs dispositifs de suivi de regard, un ou plusieurs capteurs vidéo, un ou plusieurs dispositifs de localisation (e.g. 6DoF) et/ou un ou plusieurs capteurs de mouvements ; et
une carte graphique 1114 reliée à un ou plusieurs dispositifs de restitution 1116 (e.g. écrans, projecteurs, etc.).
Optionnellement, le dispositif 1100 peut également disposer des éléments suivants :
un disque dur 1120 pouvant comporter les programmes "Prog" précités et des données traitées ou à traiter selon l’invention ; et
tout dispositif 1122 permettant à un utilisateur d’interagir avec le dispositif 1100 comme un système de reconnaissance vocale, un dispositif de suivi d’objets (e.g. suivi des mains), une manette ou une télécommande ; et
une interface de communication 1126 reliée à un réseau de communication distribué 1128, par exemple un réseau de communication sans fil et/ou un réseau de communication local.
Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le dispositif 1100 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du dispositif 1100 directement ou par l'intermédiaire d'un autre élément du dispositif 1100.
Le code exécutable de chaque programme permettant à l'appareil programmable de mettre en œuvre les processus selon l'invention peut être stocké, par exemple, dans le disque dur 1120 ou en mémoire morte 1106.
Selon une variante, le code exécutable des programmes pourra être reçu par l'intermédiaire du réseau de communication 1128, via l'interface 1126, pour être stocké de façon identique à celle décrite précédemment.
De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif 1100 avant d'être exécutés.
L'unité centrale 1104 va commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 1120 ou dans la mémoire morte 1106 ou bien dans les autres éléments de stockage précités. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 1120 ou la mémoire morte 1106, sont transférés dans la mémoire vive 1108 qui contient alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en œuvre de l'invention.
En fonction du mode de réalisation choisi, certains actes, actions, évènements ou fonctions de chacune des méthodes décrites dans le présent document peuvent être effectués ou se produire selon un ordre différent de celui dans lequel ils ont été décrits, ou peuvent être ajoutés, fusionnés ou bien ne pas être effectués ou ne pas se produire, selon le cas. En outre, dans certains modes de réalisation, certains actes, actions ou évènements sont effectués ou se produisent concurremment et non pas successivement.
Bien que décrits à travers un certain nombre d’exemples de réalisation détaillés, le procédé proposé et l’équipement pour la mise en œuvre du procédé comprennent différentes variantes, modifications et perfectionnements qui apparaîtront de façon évidente à l’homme de l’art, étant entendu que ces différentes variantes, modifications et perfectionnements font partie de la portée de l’invention, telle que définie par les revendications qui suivent. De plus, différents aspects et caractéristiques décrits ci-dessus peuvent être mis en œuvre ensemble, ou séparément, ou bien substitués les uns aux autres, et l’ensemble des différentes combinaisons et sous combinaisons des aspects et caractéristiques font partie de la portée de l’invention. En outre, il se peut que certains systèmes et équipements décrits ci-dessus n’incorporent pas la totalité des modules et fonctions décrits pour les modes de réalisation préférés.

Claims (10)

  1. Procédé d’aide au positionnement pour un système de réalité étendue, le système de réalité étendue comprenant au moins une partie mobile dans un environnement réel et étant pourvu d’un dispositif de localisation pour déterminer une position et/ou une orientation relatives de la partie mobile selon un premier repère rigidement lié à l’environnement réel, le premier repère étant défini par le dispositif de localisation, le système de réalité étendue comprenant en outre un dispositif de suivi de regard d’un utilisateur du système de réalité étendue, le procédé comprenant :
    - l’obtention d’une identification de chaque point d’une pluralité de points de l’environnement réel et de la position de chaque point de la pluralité de points selon un même second repère rigidement lié à l’environnement réel, différent du premier repère ;
    - pour chaque point de la pluralité de points, l’obtention d’une estimation de la position du point dans le premier repère, la position du point dans le premier repère étant estimée à l’aide du dispositif de suivi de regard ; et
    - la détermination d’une corrélation entre le premier repère et le second repère, en fonction des positions des points de la pluralité de points dans le premier repère et dans le second repère, ladite corrélation étant utilisée pour afficher au moins un objet virtuel à une position et selon une orientation définies dans le second repère.
  2. Procédé selon la revendication 1, selon lequel la partie mobile comprend le dispositif de localisation, le dispositif de localisation étant un dispositif de localisation et de cartographie simultanées de type SLAM.
  3. Procédé selon la revendication 2, selon lequel le dispositif de suivi de regard est rigidement lié au dispositif de localisation.
  4. Procédé selon l’une quelconque des revendications 1 à 3 selon lequel plusieurs estimations de la position d’un point fixé par l’utilisateur sont obtenues, le procédé comprenant en outre le calcul d’une position d’un point fixé par l’utilisateur à partir des estimations obtenues.
  5. Procédé selon la revendication 4, selon lequel l’obtention de plusieurs estimations de la position d’un point fixé par l’utilisateur comprend une évaluation de dispersion, les estimations de position obtenues étant telles que la dispersion des estimations de position obtenues est inférieure à un seuil.
  6. Procédé selon la revendication 4 ou la revendication 5 selon lequel l’obtention de plusieurs estimations de la position d’un point fixé par l’utilisateur comprend un filtrage de positions estimées, le filtrage étant basé sur une distribution de positions estimées.
  7. Procédé selon l’une quelconque des revendications 1 à 6 selon lequel au moins une estimation de position est obtenue à partir d’au moins deux lignes de visée et selon lequel, si les au moins deux lignes de visée ne sont pas coplanaires, la au moins une position estimée est la position du centre d’un segment perpendiculaire aux au moins deux lignes de visée.
  8. Procédé selon l’une quelconque des revendications 1 à 7 selon lequel le second repère est un repère utilisé par un moteur de rendu du système de réalité étendue.
  9. Programme d’ordinateur comprenant des instructions pour la mise en œuvre de chacune des étapes du procédé selon l’une des revendications 1 à 8, lorsque ce programme est exécuté par un processeur.
  10. Dispositif comprenant une unité de traitement configurée pour exécuter chacune des étapes du procédé selon l’une des revendications 1 à 8.
FR2007478A 2020-07-16 2020-07-16 Procédé, dispositif et programme d’ordinateur d’aide au positionnement pour système de réalité étendue Active FR3112639B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR2007478A FR3112639B1 (fr) 2020-07-16 2020-07-16 Procédé, dispositif et programme d’ordinateur d’aide au positionnement pour système de réalité étendue
EP21746530.1A EP4182775A1 (fr) 2020-07-16 2021-07-08 Procede, dispositif et programme d'ordinateur d'aide au positionnement pour systemes de realite etendue
PCT/FR2021/051265 WO2022013492A1 (fr) 2020-07-16 2021-07-08 Procede, dispositif et programme d'ordinateur d'aide au positionnement pour systemes de realite etendue

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2007478 2020-07-16
FR2007478A FR3112639B1 (fr) 2020-07-16 2020-07-16 Procédé, dispositif et programme d’ordinateur d’aide au positionnement pour système de réalité étendue

Publications (2)

Publication Number Publication Date
FR3112639A1 true FR3112639A1 (fr) 2022-01-21
FR3112639B1 FR3112639B1 (fr) 2024-09-13

Family

ID=72801727

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2007478A Active FR3112639B1 (fr) 2020-07-16 2020-07-16 Procédé, dispositif et programme d’ordinateur d’aide au positionnement pour système de réalité étendue

Country Status (3)

Country Link
EP (1) EP4182775A1 (fr)
FR (1) FR3112639B1 (fr)
WO (1) WO2022013492A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120257050A1 (en) * 2009-12-18 2012-10-11 Thales Method for Calibrating a Measurement Instrument of an Optronic System
DE102011122206A1 (de) * 2011-12-23 2013-06-27 Volkswagen Aktiengesellschaft Verfahren zum Betrieb eines Augmented-Reality-Systems
WO2019152619A1 (fr) * 2018-02-03 2019-08-08 The Johns Hopkins University Étalonnage basé sur le clignement d'un visiocasque transparent optique

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120257050A1 (en) * 2009-12-18 2012-10-11 Thales Method for Calibrating a Measurement Instrument of an Optronic System
DE102011122206A1 (de) * 2011-12-23 2013-06-27 Volkswagen Aktiengesellschaft Verfahren zum Betrieb eines Augmented-Reality-Systems
WO2019152619A1 (fr) * 2018-02-03 2019-08-08 The Johns Hopkins University Étalonnage basé sur le clignement d'un visiocasque transparent optique

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ARUNHUANGBLOSTEIN: "Least-Squares Fitting of Two 3-D Point Sets", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, vol. 9, no. 5, May 1987 (1987-05-01)
ITOH YUTA ET AL: "Interaction-free calibration for optical see-through head-mounted displays based on 3D Eye localization", 2014 IEEE SYMPOSIUM ON 3D USER INTERFACES (3DUI), IEEE, 29 March 2014 (2014-03-29), pages 75 - 82, XP032586750, DOI: 10.1109/3DUI.2014.6798846 *

Also Published As

Publication number Publication date
EP4182775A1 (fr) 2023-05-24
FR3112639B1 (fr) 2024-09-13
WO2022013492A1 (fr) 2022-01-20

Similar Documents

Publication Publication Date Title
EP2760329B1 (fr) Procede de determination de mesures oculaires et optiques
KR102231910B1 (ko) 초점 이동에 반응하는 입체적 디스플레이
EP2104925B1 (fr) Procédé et dispositifs pour insérer en temps réel des objets virtuels dans un flux d'images à partir de données issues de la scène réelle représentée par ces images
US10825260B2 (en) Virtual try-on systems and methods for spectacles
EP3659109B1 (fr) Procédé de détermination d'au moins un paramètre associé à un dispositif ophtalmique
FR3053509B1 (fr) Procede d’occultation d’un objet dans une image ou une video et procede de realite augmentee associe
EP2132710B1 (fr) Procede et dispositifs de realite augmentee utilisant un suivi automatique, en temps reel, d'objets geometriques planaires textures, sans marqueur, dans un flux video
CN107358217B (zh) 一种视线估计方法及装置
US20170123488A1 (en) Tracking of wearer's eyes relative to wearable device
IL305833A (en) Eye center for determining rotation, choosing depth plane and processing camera position in display systems
US10120442B2 (en) Eye tracking using a light field camera on a head-mounted display
EP2582283B1 (fr) Procede d'estimation d'une posture de reference
JP2018532199A (ja) 眼の特徴を用いる眼ポーズ識別
EP2999393A1 (fr) Procédé de détermination de mesures oculaires avec un capteur grand public
US10871823B1 (en) Systems and methods for using scene understanding for calibrating eye tracking
FR3011952A1 (fr) Procede d'interaction par le regard et dispositif associe
FR2913128A1 (fr) Procede et dispositif de determination de la pose d'un objet tridimensionnel dans une image et procede et dispositif de creation d'au moins une image cle
CN115803750B (zh) 使用参考框架的眼镜的虚拟试戴系统
EP2901209B1 (fr) Procédé d'aide à la détermination de paramètres de vision d'un sujet
WO2018002533A1 (fr) Procédé d'occultation d'un objet dans une image ou une vidéo et procédé de réalité augmentée associé
FR3112639A1 (fr) Procédé, dispositif et programme d’ordinateur d’aide au positionnement pour système de réalité étendue
FR3021205A1 (fr) Procede de determination d'au moins un parametre comportemental
EP2994813A1 (fr) Procede de commande d'une interface graphique pour afficher des images d'un objet tridimensionnel
WO2016087407A1 (fr) Procédé d'étalonnage d'un système de restitution visuelle en réalité augmentée comprenant au moins un dispositif d'affichage partiellement transparent, par rapport à son utilisateur, et système associé

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20220121

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5