WO2022013492A1 - Procede, dispositif et programme d'ordinateur d'aide au positionnement pour systemes de realite etendue - Google Patents

Procede, dispositif et programme d'ordinateur d'aide au positionnement pour systemes de realite etendue Download PDF

Info

Publication number
WO2022013492A1
WO2022013492A1 PCT/FR2021/051265 FR2021051265W WO2022013492A1 WO 2022013492 A1 WO2022013492 A1 WO 2022013492A1 FR 2021051265 W FR2021051265 W FR 2021051265W WO 2022013492 A1 WO2022013492 A1 WO 2022013492A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
user
points
marker
sight
Prior art date
Application number
PCT/FR2021/051265
Other languages
English (en)
Inventor
Fabrice Malaingre
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 EP21746530.1A priority Critical patent/EP4182775A1/fr
Publication of WO2022013492A1 publication Critical patent/WO2022013492A1/fr

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

Definitions

  • the invention relates to extended reality systems, for example to augmented reality or mixed reality systems, and to positioning assistance, to correlate real and virtual spaces and thus allow the addition of virtual objects to a user's perception of a real environment.
  • Extended reality also known as extended reality
  • augmented reality also known as augmented reality
  • mixed reality also known as mixed reality
  • Such an insertion typically consists of inserting virtual objects into a user's field of vision, for example by projecting a representation of these virtual objects onto a transparent surface such as spectacle lenses, or adding virtual objects to a representation of the real environment, usually in images from one or more video streams.
  • an extended reality system comprises a rendering engine (also known as a rendering engine) capable of enriching a real environment with a virtual scene, that is to say of adding a representation of virtual objects in reality, according to a particular point of view, typically the point of view of the user of the system.
  • a rendering engine also known as a rendering engine
  • each rendering engine uses a predetermined reference of its own, rigidly linked to the real environment to be enriched.
  • the position and orientation of the virtual objects to be added to reality must be determined with precision according to elements of the real environment, for example according to the position of singular points of the real scene such as characteristic points of a real object to be enriched. Regardless of how the position and orientation of the virtual objects are determined, it is important to establish a link between the real and virtual environments to ensure spatial and temporal coherence between these environments, i.e. say that virtual objects are placed in the right place and at the right time in the user's perception of the real world.
  • an extended reality system determines in real time the perception that their user has of the real environment.
  • many extended reality systems being mobile due to the fact that, in general, at least a part of these systems is carried by their user, it is therefore necessary to determine in real time the position and orientation of the mobile part of the extended reality systems with respect to the real environment, in order to ensure spatial coherence and temporal between real scene and virtual scene.
  • 6DoF tracking a localization with 6 degrees of freedom
  • SLAM type implementing techniques of the SLAM type (acronym for Simultaneous Localization And Mapping in English terminology) or equivalent, is often used.
  • a passage matrix is a correlation matrix between the real and virtual environments.
  • the present invention helps in particular to solve these problems.
  • the invention proposes a positioning aid mechanism for extended reality systems, allowing a real/virtual correlation.
  • the extended reality system comprising at least one part that is mobile in a real environment and being provided with a location device for determining a position and /or a relative orientation of the moving part according to a first benchmark rigidly linked to the real environment, the first benchmark being defined by the location device, the extended reality system further comprising a device for tracking a user's gaze of the extended reality system, the method comprising:
  • the method according to the invention thus makes it possible to establish a link, in a simple, rapid way, and without particular knowledge, between a real marker linked to a real environment and defined by a localization device on the one hand, and a predefined virtual benchmark and also linked to this real environment on the other hand.
  • the virtual marker is for example a marker used by a rendering engine.
  • the mobile part comprises the location device, the location device being a simultaneous location and mapping device of the SLAM type.
  • the gaze tracking device is rigidly linked to the location device.
  • the obtaining of several estimates of the position of a point fixed by the user comprises an evaluation of dispersion, the position estimates obtained being such that the dispersion of the position estimates obtained is below a threshold.
  • obtaining several estimates of the position of a point fixed by the user comprises filtering of estimated positions, the filtering being based on a distribution of estimated positions.
  • At least one position estimate is obtained from at least two lines of sight and, if the at least two lines of sight are not coplanar, the at least one estimated position is the position of the center of a segment perpendicular to the at least two lines of sight.
  • the second marker is a marker used by a rendering engine of the extended reality system.
  • Another aspect of the invention relates to a processing unit configured to execute each of the steps of the method described above. The advantages and variants of this processing unit are similar to those mentioned above.
  • a computer program, implementing all or part of the method described above, installed on pre-existing equipment, is in itself advantageous, since it makes it possible to establish in a simple and rapid manner a link between a real marker linked to a real environment, defined by a localization device, and a predefined virtual marker also linked to this real environment.
  • the present invention also relates to a computer program comprising instructions for implementing the method described above, when this program is executed by a processor.
  • This program can use any programming language (for example, an object language or other) and be in the form of interpretable source code, partially compiled code or fully compiled code. .
  • Another aspect relates to a non-transitory storage medium for a computer-executable program, comprising a set of data representing one or more programs, said one or more programs comprising instructions for, when executing said or several programs by a computer comprising a processing unit operationally coupled to memory means and to an input/output interface module, to execute all or part of the method described above.
  • FIG. 1 illustrates an example of an environment in which the invention can be implemented according to particular embodiments of the invention
  • FIG. 2 comprising Figures 2a and 2b, schematically illustrates the estimation of the coordinates of a point fixed by a user, according to a projection on a transverse plane and according to a projection on a sagittal plane;
  • FIG. 3 schematically illustrates the estimation of the coordinates of a point fixed by a user from several lines of sight obtained from several positions of the user, when the latter moves while keeping his gaze on the same fixed point;
  • FIG. 4 illustrates an example of estimation of the coordinates of a point fixed by a user, from two lines of sight relative to this same point fixed by the user from two different positions;
  • FIGS. 5a and 5b schematically illustrates the results of measurements carried out to estimate the coordinates of a singular point of a real environment, fixed by a user, using a gaze tracking device providing an estimate of the coordinates d a fixed point and a gaze tracking device providing a characterization of the line of sight passing through the fixed point, respectively;
  • FIG. 6 illustrates an example of steps for determining a passage matrix between a real marker defined by a localization device and a predetermined virtual marker, the real and virtual markers being rigidly linked to the same real environment;
  • FIG. 7 illustrates a first example of steps for estimating the coordinates of points measured by a gaze tracking device when the user is aiming at a singular point in a real environment from several distinct observation positions, in a real frame linked to a localization device of an extended reality system, the gaze tracking device used being capable of directly supplying the coordinates of the point fixed by the user;
  • FIG. 8 illustrates a second example of steps for estimating the coordinates of points measured by a gaze tracking device when the user is aiming at a singular point in a real environment from several distinct observation positions, in a real frame linked to a localization device of an extended reality system, the gaze tracking device used being limited to providing the characterization of the line of sight passing through the point fixed by the user;
  • Fig. 9 illustrates a second example of steps for estimating the coordinates of points measured by a gaze tracking device when the user is aiming at a singular point in a real environment from several distinct observation positions, in a real frame linked to a localization device of an extended reality system, the gaze tracking device used being limited to providing the characterization of the line of sight passing through the point fixed by the user;
  • FIG. 9 illustrates an example of steps for calculating the coordinates of a set of measured points, representing the same point fixed by a user, from a set of lines of sight;
  • Fig. 10 illustrates an example of steps for calculating the coordinates of a set of measured points, representing the same point fixed by a user, from a set of lines of sight;
  • FIG. 10 illustrates an example of steps for estimating the coordinates of a point fixed by a user from the coordinates of several measured points (cloud of measured points);
  • FIG. 11 illustrates an example of a device that can be used to implement, at least partially, one embodiment of the invention, in particular the steps described with reference to Figures 6 to 10.
  • a positioning aid for an extended reality system comprising a location device
  • a location device by establishing a relationship between a predetermined reference point rigidly linked to the real environment, for example a marker used by a rendering engine, called a virtual marker, and a marker defined by the location device of this extended reality system, also rigidly linked to this same real environment, called a real marker.
  • the extended reality system comprises a gaze tracking device making it possible to estimate the coordinates of a point in the real environment, fixed by a user, in the real frame defined by the location device.
  • FIG. 1 illustrates an example of an environment in which the invention can be implemented according to particular embodiments.
  • a user 100 provided with an extended reality headset 105 can move around in a real environment 110.
  • the extended reality headset 105 here comprises a gaze tracking device (not shown), rigidly linked to the headset of extended reality.
  • the extended reality headset 105 further comprises, in particular, a localization device as well as a rendering engine (not represented), or is connected to such means, to estimate the movements of the extended reality headset 105 (changes of position and/or orientation) and display virtual objects according to particular positions and orientations.
  • the rendering engine can be implemented in information processing means such as the device described with reference to FIG. 11.
  • the location device also comprises information processing means, the same as those used by the rendering engine or others, as well as one or more motion sensors.
  • the user can move freely in the real environment 110.
  • the real environment here is an interior space, it could also be an exterior space.
  • the user can move his head in three distinct directions (forward-backward, left-right and up-down) and turn it along three distinct axes (generally called yaw, pitch and roll), i.e. 6 degrees of freedom.
  • the real environment 110 includes fixed elements, for example the windows 115-1 and 115-2 and the table 120. It can also include fixed elements that can be moved, for example the plant 125 and the armchair 130.
  • the invention makes it possible to establish a relationship between the position of fixed elements of a real environment, for example the windows 115-1 and 115-2 and the table 120, according to a predetermined virtual reference point and used by a rendering engine and the position of these elements in a real frame defined by the localization device. For these purposes, it is necessary to identify at least three different singular points of the real environment and to determine the coordinates of these points in the virtual frame in the real frame. Knowledge of the coordinates of these three points in the virtual and real coordinate systems makes it possible to establish a transition matrix of coordinates expressed in the virtual system and in the real system (and/or vice versa).
  • These singular points are preferably singular points of the real environment, chosen so as to be easily identifiable by a user, for example the user 100, but also easily identifiable on a corresponding digital model. It may be, for example, the upper left and lower right corners of the windows 115-1 and 115-2.
  • a gaze tracking device makes it possible to estimate the coordinates of a point fixed by a user in a reference frame linked to the gaze tracking device or in any other reference frame including a passage matrix with a marker linked to the gaze tracking device is known. Indeed, the position of the center of the pupil in relation to the eye makes it possible to determine an optical axis. The intersection of the optical axes from the two eyes represents the fixed point.
  • Figure 2 comprising Figures 2a and 2b, schematically illustrates the estimation of the coordinates of a point fixed by a user, according to a projection on a transverse plane and according to a projection on a sagittal plane.
  • a first optical axis 200-1 can be defined from a first eyeball 205-1, by the line passing through the center 210-1 of the eyeball and the center of the pupil 215-1.
  • a second optical axis 200-2 can be defined from a second eyeball 205-2, by the line passing through the center 210-2 of the eyeball and the center of the pupil 215-2.
  • the intersection of the optical axes 200-1 and 200-2 corresponds to the point fixed by the user, referenced 220.
  • FIG. 2b being a view according to a projection on a sagittal plane, the optical axes 200-1 and 200-2 are superimposed. Only the optical axis 200-1 is "visible" here.
  • This line of sight 225 which corresponds to the direction of the user's gaze, can be defined as being the straight line passing through the point fixed by the user and an optical center.
  • the latter is a point rigidly linked to the user which can be defined in different ways, in particular depending on the gaze tracking device. It can for example correspond to the center of the globe eyepiece of the dominant eye of the user or at the center of the interpupillary segment, the ends of which correspond to the center of the eyeballs (referenced 230 in FIG. 2a).
  • a SLAM-type location device is capable of defining its position and its orientation in a real reference defined by this location device, this reference being rigidly linked to the real environment.
  • this location device is rigidly linked to the gaze tracking device, it is possible to determine, depending on the capacities of this gaze tracking device, either the coordinates of a point fixed by a user, or a characterization of the line of sight passing through the point set by the user, in the real reference defined by the localization device, this reference being rigidly linked to the real environment.
  • the gaze tracking device implemented in the mixed reality headset marketed by Microsoft under the name HoloLens 2 makes it possible to obtain in real time a characterization of the line of sight passing through the point fixed by the gaze of the user in a real benchmark defined by the localization device implemented in this mixed reality headset (this real benchmark being rigidly linked to the real environment ).
  • the gaze tracking device is limited to providing a characterization of the line of sight passing through the point fixed by a user, it is possible to estimate the coordinates of the point fixed by asking the user to move while continuing to stare at the same point.
  • FIG. 3 schematically illustrates the estimation of the coordinates of a point fixed by a user from several lines of sight obtained from several positions of the user, when the latter moves while keeping his gaze on the same fixed point.
  • a gaze tracking device capable of determining a line of sight can be used to determine the line of sight 300-1 of a user located at a first position 305-1 whose gaze is fixed on a point 310.
  • the gaze tracking device can then determine the line of sight 300-2.
  • the coordinates of the target point 310 can then be calculated from the lines of sight 300-1 and 300-2. It is observed that if the lines of sight do not belong to the same plane, the target point can, for example, be defined as the middle of a segment perpendicular to the two lines of sight and of which each of the ends belongs to the one of the two lines of sight, as illustrated in FIG. 4, the length of this segment being the shortest possible distance between the two lines of sight.
  • the aiming, from several distinct locations, of a point fixed by a user, in order to estimate the coordinates of this point can be called a moving aiming.
  • FIG. 4 illustrates an example of estimation of the coordinates of a point fixed by a user, from two lines of sight relating to this same point fixed by the user from two different positions.
  • the point 400 located in the middle of the segment 405 perpendicular to the lines of sight 300-1 and 300-2, one end of which belongs to the line of sight 300-1 and the other end belongs to the line of sight 300- 2 can be considered as the point fixed by the user as a point equidistant from the two lines of sight 300-1 and 300-2. It is recalled here that if the lines of sight are coplanar, the point fixed by the user is the point of intersection of these lines of sight.
  • the relationship between the real environment and the virtual environment is determined on the basis of the stereoscopic vision of a user equipped with an extended reality system (for example an extended reality headset).
  • an extended reality system allows direct vision (called optical see-through in Anglo-Saxon terminology or OST)
  • the user's vision is not distorted and the calculations described above can be implemented directly.
  • the vision is indirect (called video see-through in Anglo-Saxon terminology or VST), for example when the environment is acquired using sensors, for example stereoscopic video sensors, then reproduced, for example displayed on screens, it is necessary to verify that the perception of the environment is on a 1:1 scale to directly implement the calculations described previously. If the scale is not 1:1, a corresponding correction is necessary.
  • Examples of OST-type extended reality headsets that can be used to implement the invention are the headset known as HoloLens 2 from the company Microsoft and the headset known as Magic Leap One from the company Magic Leap (Magic Leap One and Magic Leap are trademarks).
  • Examples of VST-type extended reality headsets that can be used to implement the invention are the headset known as XR-1 from the company Varjo (XR-A and Varjo are trademarks) and the headset known as the name Lynx-R1 of the company Lynx (Lynx-R1 and Lynx are trademarks).
  • the coordinates of a point fixed by a user are estimated using monocular vision, its coordinates then being, for example, estimated from two determined lines of sight by observing the same point using the same eye from two different locations, as described with reference to Figure 3.
  • the establishment of a relationship between a real marker defined by a localization device and a predetermined virtual marker (for example a marker of a rendering engine), the real and virtual markers being rigidly linked to the same real environment is carried out by a mobile sighting of several singular points.
  • a user provided with an extended reality device comprising a gaze tracking device aims at a singular point in the real environment by staring at it for a certain time, for example a few seconds, while moving, while continuing to fix the singular point. It does so for at least three singular points.
  • no virtual object is preferably displayed in the user's field of vision during this correlation phase.
  • FIG. 5 comprising FIGS. 5a and 5b, schematically illustrates the results of measurements carried out to estimate the coordinates of a singular point of a real environment, fixed by a user, using a gaze tracking device providing the coordinates of a fixed point and a gaze tracking device providing a characterization of the line of sight passing through the fixed point, respectively.
  • a gaze tracking device providing the coordinates of a fixed point
  • a gaze tracking device providing a characterization of the line of sight passing through the fixed point
  • this estimation of the coordinates of the point set by the user is based on several measurements from the gaze tracking device, this plurality of measurements possibly making it possible to overcome the limitations of this device.
  • the main limitation lies in the imprecision of the coordinates provided. This imprecision results in particular from the imprecision of the gaze tracking device itself, but also from the imprecision of the location device, as well as their combination.
  • the use of a VST-type extended reality device can also increase this inaccuracy because a user may have to adapt his vision to a distance inconsistent with the convergence distance of his eyes (the distance of the device display in relation to the distance from the targeted singular point).
  • a mobile sighting carried out using a gaze tracking device providing the coordinates of a point fixed by a user can produce as results the measured points 510-1 at 510-4 when the user aims at the singular point 500 from positions 505-1 to 505-4, respectively.
  • the main limitation resides in the fact that it is necessary to have at least two lines sight to be able to estimate the coordinates of the target point.
  • To this limitation can also be added an inaccuracy linked to the gaze tracking device itself, or linked to the location device, or even to their combination.
  • a gaze tracking device providing a characterization of the line of sight passing through a point fixed by a user can produce as results the measured lines of sight 515-1 to 515-4, when the user fixes the singular point 500' from the positions 505'-1 to 505'-4. These measured lines of sight can then be used to estimate the coordinates of measured points such as measured point 520.
  • the results of a moving sight can be formalized in the form of a cloud of measured points which are distributed around the singular point fixed by a moving user, and whose coordinates in the reference frame of the gaze tracking device have been estimated.
  • the coordinates of this singular point can then be determined as being the coordinates of the center of gravity of the cloud of points measured resulting from the moving sight.
  • the measured points relating to the same singular point set by the user it is also possible to filter the measured points relating to the same singular point set by the user, to keep only the measured points closest to each other.
  • the distribution of these measured points can be taken into account to ignore the most distant points and consider only the remaining points for the purpose of calculating the coordinates of the center of gravity which can be considered as being the fixed singular point .
  • FIG. 6 illustrates an example of steps for determining a passage matrix between a real marker defined by a location device and a predetermined virtual marker, the real and virtual markers being rigidly linked to the same real environment.
  • the virtual marker is, for example, a marker used by the rendering engine of the extended reality system.
  • the steps illustrated in FIG. 6 are implemented in a computer connected or integrated into an extended reality system, at least one part of which comprises a gaze tracking device and a location device rigidly linked to one to the other.
  • the purpose of these steps is in particular to estimate the coordinates of singular points of a real environment in a real reference defined by a localization device and to determine a transition matrix between a predetermined virtual reference and the real reference.
  • the coordinates of the singular points in the predetermined virtual frame can, for example, be obtained from an external system or determined according to standard measurement techniques.
  • n the number of singular points, to be fixed by a user, denoted n, is greater than or equal to 3.
  • a first step 600 includes the initialization of a variable i, representing an index of singular points to be fixed in order to establish a relationship between the real benchmark defined by the location device and a predetermined virtual benchmark, here at the value 1.
  • the coordinates of the singular point having index i, in the predetermined virtual frame, are then obtained (step 605). They can, for example, be obtained from the rendering engine of the extended reality system. These coordinates in the virtual coordinate system are noted here (xf,y,z).
  • a next step consists in inhibiting the display of virtual elements (step 615) in order to avoid disturbing the gaze of the user when he fixes the singular point of index i.
  • a following step has as its object the sighting of the singular point itself. Embodiments of this step 620 are described in more detail with reference to Figures 7 and 8 which illustrate two different embodiments of this sighting, either by using a gaze tracking device providing the coordinates of the fixed point ( Figure 7) , or by using a gaze tracking device providing a characterization of the line of sight passing through the fixed point (figure 8).
  • step 620 allows the recording of a set of points measured from several different observation positions of the user, for example from a number of observation positions denoted p (the result of step 620 is thus a cloud of p measured points).
  • the estimated coordinates, in the real coordinate system linked to the localization device of the extended reality system, of the point measured when the user aims at the singular point of index i denoted ( xZ k> y ⁇ ,k ' z ⁇ ,k ) > are obtained.
  • the number of positions p can vary from the estimation of the coordinates of a singular point to the estimation of the coordinates of another singular point. It is also observed that if the number of observation positions p is greater than or equal to 1 for a gaze tracking device capable of directly providing the coordinates of the fixed point, the number p is greater than or equal to 2 in the case d a gaze tracking device providing characterization of the line of sight (at least 2 measured lines of sight are needed to estimate the coordinates of 1 measured point).
  • the coordinates of the singular point having the index i, in the real coordinate system defined by the location device denoted (x[,y[,z[), are calculated (step 625).
  • the estimated coordinates (x[,y[,z[) are here calculated from the coordinates (xf 'k yf ,k ' z I ,k ) of the cloud of measured points recorded when the user fixed the singular point having l 'index i from the different observation positions k.
  • a test is then carried out to determine if all the singular points have been targeted by the user, that is to say if the value of the index i is less than the number of singular points to be targeted, denoted n (step 630).
  • index i is incremented by 1 (step 635) and the previous steps (steps 605 to 625) are repeated to determine the coordinates of the singular point having the new value of the index i.
  • the passage matrix between the real landmark defined by the location device and the predetermined virtual landmark is calculated (step 640). This matrix makes it possible in particular to determine a position and an orientation to which virtual objects must be rendered in order to be spatially coherent with the real environment in which the extended reality system evolves.
  • FIG. 7 illustrates a first example of steps for estimating the coordinates of points measured by a gaze tracking device when the user is aiming at a singular point in a real environment from several distinct observation positions, in a real landmark linked to a localization device of an extended reality system, the gaze tracking device used being capable of directly supplying the coordinates of the point fixed by the user.
  • the singular point targeted by the user is here the singular point having the index i.
  • the estimated coordinates of the point measured when the user fixes the singular point of index i from the observation position k, in the real reference linked to the localization device, are here noted (xZ k ,y[ k ,z [ k ).
  • a first step here is to initialize the value of the index k of the positions, to the value 1 (step 700).
  • the coordinates ([ k> y[ k ' z l k ) of the point measured when the user aims at the singular point having the index i are then obtained from the gaze tracking device (step 705).
  • these coordinates are obtained in the real frame linked to the location device of the extended reality system comprising the gaze tracking device, the two devices being rigidly linked.
  • a test is carried out to determine whether a sufficient number of measurements have been carried out (step 710), that is to say, according to the example of FIG. 7, whether an estimate has been made for a number p of observation positions, by comparing the value of the index k with the number p.
  • this number p can be determined as a function of a predetermined duration, for example a duration comprised between 1 and 7 seconds, so as to perform as many measurements as possible in the predetermined time.
  • this number p can be chosen between two values, for example between 1 and 300.
  • the value of the index k is strictly lower than the value p, the value of the index k is incremented by 1 and a pause d a predetermined duration is performed so that the user has time to move (step 715). This duration is, for example, a few tens of milliseconds. The previous steps (steps 705 and 710) are then repeated to obtain new measurements.
  • an estimation of the dispersion of the cloud of measured points is preferably carried out (step 720), to check the consistency of the measurements. carried out.
  • the dispersion can be estimated as being the difference between the smallest abscissa and the largest abscissa, between the smallest ordinate and the largest ordinate and between the largest dimension smallest and the largest dimension (which can result in the calculation of the bounding box containing all the measured points).
  • a threshold or with several thresholds, for example an abscissa threshold, an ordinate threshold and a dimension threshold
  • the previous steps are re-executed to obtain new measurements. Otherwise, if the dispersion is acceptable, the measured coordinates (*[ 3 ⁇ 4 , y 3 ⁇ 4 ,3 ⁇ 4), with k varying here from 1 to p, are memorized to be then used to estimate the coordinates of the targeted singular point of index i in the real reference linked to the localization device.
  • FIG. 8 illustrates a second example of steps for estimating the coordinates of points measured by a gaze tracking device when the user is aiming at a singular point in a real environment from several distinct observation positions, in a real landmark linked to a localization device of an extended reality system, the gaze tracking device used being limited to providing the characterization of the line of sight passing through the point fixed by the user.
  • the singular point targeted by the user is here the singular point having the index i.
  • the characterization of the line of sight measured when the user fixes the singular point of index i from the observation position k, in the real reference linked to the localization device, formalized by a point and a direction is noted here (o[ fc ;d[ fc ), or more simply the index i not being recalled in order to improve readability.
  • a first step is to initialize the value of the index k, representing an index of observation positions, to the value 1 (step 800).
  • a characterization ( 0 ;d ⁇ of the line of sight corresponding to the gaze of the user when he fixes the singular point having the index i is obtained from the gaze tracking device (step 805).
  • This characterization of the line of sight obtained is expressed in the real reference linked to the localization device of the extended reality system comprising the gaze tracking device (which is rigidly linked to it).
  • a test is carried out to determine whether a sufficient number of measurements have been carried out (step 810), that is to say, according to the example of FIG. 8, whether a line of sight was obtained for a number p of observation positions, by comparing the value of the index k with the number p.
  • this number can be determined according to a predetermined duration, for example a duration between 1 and 7 seconds, so as to perform as many measurements as possible over time. predetermined.
  • this number p can be chosen between two values, for example between 2 and 300.
  • the value of the index k is strictly lower than the value p, the value of the index k is incremented by 1 and a pause d a predetermined duration is performed so that the user has time to move (step 815). This duration is, for example, a few tens of milliseconds. The previous steps (steps 805 and 810) are then repeated to obtain new measurements.
  • a cloud of measured points is calculated (step 820).
  • This cloud for example composed of r measured points, is calculated from the p lines of sight previously obtained.
  • an estimation of the dispersion of the cloud of measured points obtained is preferably carried out (step 825), to check the consistency of the measurements.
  • the dispersion can be estimated as being the difference between the smallest abscissa and the largest abscissa, between the smallest ordinate and the largest ordinate and between the smallest dimension and the largest dimension (calculation of the bounding box containing all the measured points). These values are compared with a threshold (or with several thresholds, for example an abscissa threshold, an ordinate threshold and a dimension threshold) to determine whether the dispersion is acceptable or not (step 830).
  • the previous steps are re-executed to obtain new measurements. Otherwise, if the dispersion is acceptable, the measured coordinates (x ,y ,zij) > with J varying here from 1 to r, are memorized to be then used to estimate the coordinates of the targeted singular point of index i in the real landmark linked to the localization system.
  • FIG. 9 illustrates an example of steps for calculating the coordinates of a set of measured points, representing the same point set by a user, from lines of sight. These steps can be performed when performing step 820 of Figure 8.
  • the estimated coordinates of the measured points with J varying here from 1 to r, corresponding to the same singular point of index i, are here obtained from p lines of sight characterized in the form ⁇ O k ,-d r k J, with k varying here from 1 to p, in a real frame linked to the extended reality system.
  • a first step is to initialize the values of the indexes u, v and j (step 900).
  • the indexes u and v are line of sight indexes. They are initialized here to values 1 and 2, respectively.
  • the index j is an index of measured points whose value is here initialized to 1.
  • the lines of sight having for index u and v that is to say the lines of sight and , are then selected (step 905).
  • it is determined whether these lines of sight are coplanar (step 910).
  • this test can be carried out by determining whether the vector formed by the points (3 ⁇ 4 and Oz is orthogonal to the vector resulting from the vector product of the vectors d u r and that is, if the dot product (3 ⁇ 40 . (t3 ⁇ 4A3 ⁇ 4) is zero.
  • a test is performed to determine if they are parallel (step 915). This test may consist, for example, to determine if the vector product of vectors u and r let d u r Ad v r , be zero.
  • a test is then performed to determine whether the value of the index v is strictly less than the number p of lines of sight considered (step 920). If the value of the index v is strictly less than the number p, this value is incremented by 1 (step 925) and a new pair of lines of sight is processed to estimate, if necessary, the coordinates of a measured point. Otherwise, if the value of the index v is not strictly less than the number p, a test is performed to determine whether the value of the index u is strictly less than the number p minus 1 of lines of sight considered (step 930).
  • index u is strictly less than the number (p - 1), this value is incremented by 1, the value of index v is modified to be equal to that of index u plus 1 (step 935), and a new pair of lines of sight is processed to estimate, if necessary, the coordinates of a measured point. If, on the contrary, the value of the index u is greater than or equal to the number (p-1), the search for measured points ends, all the lines of sight having been taken into consideration. [0108] If the lines of sight are coplanar but not parallel
  • step 910 and 915 the coordinates (3 ⁇ 4, yf, z[ j ) of the point of intersection of these lines are calculated (step 940) then stored as those of a measured point having the index j (step 945) .
  • the value of the index j is incremented by 1 then the test(s) described previously on the values of the indices u and v are carried out to, if necessary, process a new pair of lines of sight.
  • step 910 If the lines of sight are not coplanar (step 910), the segment perpendicular to these two lines of sight is calculated here (step 950). If point S is considered to be the end of the segment belonging to the line of sight and that point S is the end of the segment belonging to the line of sight and the coordinates of these points can be determined according to the following relations:
  • step 945 the value of the index j is incremented by 1 then the test(s) described previously on the values of the indices u and v are carried out to, if necessary, process a new pair of lines of sight.
  • a set of measured points comprising (j-1) points, corresponding to the same point targeted by a user, is obtained.
  • the coordinates of the points making up this cloud of measured points can be used to estimate the coordinates of the point targeted by the user.
  • FIG. 10 illustrates an example of steps for estimating the coordinates of a point fixed by a user from coordinates of several measured points (cloud of measured points).
  • the measured points are for example the points of the set of points obtained from a gaze tracking device during step 620 of FIG. 6 or the points of the set of points determined from lines sight, as described with reference to Figure 9.
  • a first step is to filter the points measured according to their abscissa (step 1000).
  • this filtering may consist in selecting the points according to their distribution on the abscissa axis in order to eliminate the extreme points, for for example the points belonging to the upper and lower c percentiles where the value c is for example chosen between 1 and 10.
  • a second step has the purpose of filtering the points according to their ordinate (step 1005). Again, this filtering can consist in selecting the points according to their distribution on the y-axis in order to eliminate the extreme points.
  • a third step is to filter the points according to their rating (step 1010).
  • this filtering can consist of selecting the points according to their distribution on the dimension axis in order to eliminate the extreme points.
  • the steps 1000 to 1010 can be combined in order to simultaneously consider the three dimensions of space and filter the points measured according to the distances which separate them in order to eliminate the points located at the periphery of the point cloud. It is also possible to filter the points by eliminating the points which would be in the neighborhood of the smallest convex hull (or convex hull in English terminology) encompassing the cloud of measured points.
  • step 1015 the coordinates (x[,y[,z[) of the center of gravity of the cloud of measured points considered, after filtering, are calculated (step 1015). These coordinates can be estimated as follows:
  • the center of gravity here represents an estimate of the singular point with index i set by the user.
  • this center of gravity could be projected onto the nearest point of a geometric surface determined by the location device, this geometric surface corresponding to a virtual reconstruction of the real surface on which finds the singular point set by the user.
  • Figure 11 illustrates an example of a device that can be used to implement, at least partially, an embodiment of the invention, in particular the steps described with reference to Figures 6 to 10.
  • the device 1100 is for example a computer or a calculator.
  • the device 1100 preferably comprises a communication bus 1102 to which are connected:
  • a central processing unit or microprocessor 1104 (CPU, acronym for Central Processing Unit in English terminology); [0125] a read only memory 1106 (ROM, acronym for Read Only Memory in English terminology) which may include the operating system and programs such as "Prog";
  • RAM Random Access Memory
  • cache memory 1108 comprising registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs
  • an input/output interface 1110 connected to one or more sensors 1112, in particular one or more gaze tracking devices, one or more video sensors, one or more localization devices (eg 6DoF) and/or one or more multiple motion sensors; and
  • a graphics card 1114 connected to one or more rendering devices 1116 (e.g. screens, projectors, etc.).
  • rendering devices 1116 e.g. screens, projectors, etc.
  • the device 1100 can also have the following elements:
  • a hard disk 1120 which may include the aforementioned "Prog” programs and data processed or to be processed according to the invention.
  • any device 1122 allowing a user to interact with the device 1100 such as a voice recognition system, an object tracking device (e.g. hand tracking), a joystick or a remote control; and
  • a communication interface 1126 connected to a distributed communication network 1128, for example a wireless communication network and/or a local communication network.
  • the communication bus allows communication and interoperability between the different elements included in the device 1100 or connected to it.
  • the representation of the bus is not limiting and, in particular, the central unit is capable of communicating instructions to any element of the device 1100 directly or via another element of the device 1100.
  • the executable code of each program allowing the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk 1120 or in ROM 1106. According to a variant, the executable code of the programs could be received via the communication network 1128, via the interface 1126, to be stored in the same way as described previously.
  • the program(s) can be loaded into one of the storage means of the device 1100 before being executed.
  • the central unit 1104 will control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions which are stored in the hard disk 1120 or in the ROM 1106 or else in the other aforementioned storage elements.
  • the program or programs which are stored in a non-volatile memory for example the hard disk 1120 or the ROM 1106, are transferred to the random access memory 1108 which then contains the executable code of the program or programs according to the invention, as well as registers for storing the variables and parameters necessary for the implementation of the invention.

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)

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.

Description

Description
PROCEDE, DISPOSITIF ET PROGRAMME D'ORDINATEUR D'AIDE AU POSITIONNEMENT POUR SYSTEMES DE REALITE ETENDUE
[0001] L’invention se rapporte aux systèmes de réalité étendue, par exemple aux 5 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.
[0002] 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 10 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 à 15 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.
[0003] 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 20 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.
[0004] Dans de nombreux types d’applications, la position et l’orientation des objets 25 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 30 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.
[0005] 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 oeuvre des techniques de type SLAM (acronyme de Simultaneous Localization And Mapping en terminologie anglo-saxonne) ou équivalentes, est souvent utilisée.
[0006] 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.
[0007] 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.
[0008] 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.
[0009] 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.
[0010] 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 oeuvre 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.
[0011] 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.
[0012] La présente invention aide notamment à résoudre ces problèmes.
Exposé de l’invention
[0013] 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.
[0014] 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.
[0015] 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.
[0016] 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.
[0017] Toujours selon des modes de réalisation particuliers, le dispositif de suivi de regard est rigidement lié au dispositif de localisation.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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. [0023] 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.
[0024] Un programme informatique, mettant en oeuvre 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.
[0025] Ainsi, la présente invention vise également un programme informatique comportant des instructions pour la mise en oeuvre du procédé précédemment décrit, lorsque ce programme est exécuté par un processeur.
[0026] 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é.
[0027] 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.
Brève description des dessins
[0028] 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
[0029] [Fig. 1] illustre un exemple d’environnement dans lequel l’invention peut être mise en oeuvre selon des modes de réalisation particuliers de l’invention ;
Fig. 2
[0030] [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 [0031] [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
[0032] [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
[0033] [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
[0034] [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
[0035] [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
[0036] [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
[0037] [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
[0038] [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 [0039] [Fig. 11 ] illustre un exemple de dispositif pouvant être utilisé pour mettre en oeuvre, 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
[0040] 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.
[0041] 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.
[0042] La figure 1 illustre un exemple d’environnement dans lequel l’invention peut être mise en oeuvre selon des modes de réalisation particuliers.
[0043] 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 oeuvre 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.
[0044] 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é.
[0045] 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.
[0046] 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). [0047] 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.
[0048] 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é.
[0049] 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.
[0050] 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.
[0051] 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 ».
[0052] 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.
[0053] 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).
[0054] 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.
[0055] 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).
[0056] 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.
[0057] 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é.
[0058] 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. [0059] 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.
[0060] 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.
[0061] 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 oeuvre 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 oeuvre directement les calculs décrits précédemment. Si l’échelle n’est pas 1 :1 , une correction correspondante est nécessaire.
[0062] Des exemples de casques de réalité étendue de type OST pouvant être utilisés pour mettre en oeuvre 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 oeuvre 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).
[0063] 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. [0064] 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.
[0065] 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.
[0066] 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.
[0067] 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é).
[0068] 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.
[0069] 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.
[0070] 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.
[0071] 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.
[0072] Pour limiter les risques d’erreurs, il est en outre possible de filtrer les points mesurés relatifs à un même point singulierfixé 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 singulierfixé.
[0073] 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 oeuvre 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.
[0074] 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. [0075] Les étapes illustrées sur la figure 6 sont mises en oeuvre 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.
[0076] 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é n, est supérieur ou égal à 3.
[0077] Comme illustré, une première étape 600 comprend l’initialisation d’une variable i, 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 1.
[0078] Les coordonnées du point singulier ayant pour index i, 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 (xf,y ,z ).
[0079] L’utilisateur est ensuite invité à fixer du regard le point singulier ayant l’index i (é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 i. 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).
[0080] 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é p (le résultat de l’étape 620 est ainsi un nuage de p points mesurés). Pour chaque position d’observation k ( k variant de 1 à p), 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 i, notées ( xZk>,kzï,k )> sont obtenues. Il est observé que le nombre de positions p 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 p est supérieur ou égal à 1 pour un dispositif de suivi de regard capable de directement fournir les coordonnées du point fixé, le nombre p est supérieur ou égal à 2 dans le cas d’un dispositif de suivi de regard fournissant une caractérisation de la ligne de visée (il faut au moins 2 lignes de visée mesurées pour estimer les coordonnées de 1 point mesuré).
[0081] Dans une étape suivante, les coordonnées du point singulier ayant l’index i, dans le repère réel défini par le dispositif de localisation, notées (x[,y[,z[), sont calculées (étape 625). Les coordonnées estimées (x[,y[,z[) sont ici calculées à partir des coordonnées (xf'k yf,kzI,k) du nuage de points mesurés relevés lorsque l’utilisateur a fixé le point singulier ayant l’index i depuis les différentes positions d’observation k. Un exemple de mise en oeuvre de cette étape est décrit plus en détail en référence à la figure 10.
[0082] 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 i est inférieure au nombre de points singuliers à viser, noté n (étape 630).
[0083] Si la valeur de l’index i est strictement inférieure au nombre n de points singuliers à fixer, l’index i est incrémenté de 1 (é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 i.
[0084] Dans le cas contraire, si la valeur de l’index i n’est pas strictement inférieure au nombre n 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.
/xf\ /xf\
[0085] Cette matrice, notée ici Mv®r, est telle que l yf = Mv®r x yf , quelle que soit
\yirl \yï/ la valeur de l’index i.
[0086] 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). [0087] 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.
[0088] Le point singulier visé par l’utilisateur est ici le point singulier ayant l’index i. Les coordonnées estimées du point mesuré lorsque l’utilisateur fixe le point singulier d’index i à partir de la position d’observation k, dans le repère réel lié au dispositif de localisation, sont ici notées (xZk,y[k,z[k).
[0089] Comme illustré, une première étape a ici pour objet d’initialiser la valeur de l’index k des positions, à la valeur 1 (étape 700). Les coordonnées ( [k>y[kzlk) du point mesuré lorsque l’utilisateur vise le point singulier ayant l’index i 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.
[0090] 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 p de positions d’observation, en comparant la valeur de l’index k avec le nombre p. A titre d’illustration, ce nombre p peut être déterminé en fonction d’une durée prédéterminée, par exemple une durée comprise entre 1 et 7 secondes, de telle sorte à effectuer le plus de mesures possibles dans le temps prédéterminé. Alternativement, ce nombre p peut être choisi entre deux valeurs, par exemple entre 1 et 300. Si la valeur de l’index k est strictement inférieure à la valeur p, la valeur de l’index k est incrémentée de 1 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.
[0091] Dans le cas contraire, si la valeur de l’index k est supérieure ou égale à la valeur p, 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).
[0092] 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 (*[¾, y ¾,¾), avec k variant ici de 1 à p, sont mémorisées pour être ensuite utilisées pour estimer les coordonnées du point singulier visé d’index i dans le repère réel lié au dispositif de localisation.
[0093] 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.
[0094] A nouveau, le point singulier visé par l’utilisateur est ici le point singulier ayant l’index i. La caractérisation de la ligne de visée mesurée lorsque l’utilisateur fixe le point singulier d’index i à partir de la position d’observation k, dans le repère réel lié au dispositif de localisation, formalisée par un point et une direction est ici notée (o[fc;d[fc), ou plus simplement
Figure imgf000019_0001
l’index i n’étant pas rappelé afin d’améliorer la lisibilité.
[0095] Comme illustré, une première étape a pour objet d’initialiser la valeur de l’index k, représentant un index de positions d’observation, à la valeur 1 (étape 800). Dans une étape suivante, une caractérisation ( 0 ;d ^ de la ligne de visée correspondant au regard de l’utilisateur lorsqu’il fixe le point singulier ayant l’index i 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é).
[0096] 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 p de positions d’observation, en comparant la valeur de l’index k avec le nombre p. 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 1 et 7 secondes, de telle sorte à effectuer le plus de mesures possibles dans le temps prédéterminé. Alternativement, ce nombre p peut être choisi entre deux valeurs, par exemple entre 2 et 300. Si la valeur de l’index k est strictement inférieure à la valeur p, la valeur de l’index k est incrémentée de 1 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.
[0097] Dans le cas contraire, si la valeur de l’index k est supérieure ou égale à la valeur p, 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 r points mesurés, est calculé à partir des p lignes de visée précédemment obtenues. Un exemple d’étapes pour déterminer les coordonnées de chacun de ces r points mesurés, notées ici
Figure imgf000020_0001
j variant ici de 1 à r, est décrit en référence à la figure 9.
[0098] 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).
[0099] 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 (x ,y ,zij)> avec J variant ici de 1 à r, sont mémorisées pour être ensuite utilisées pour estimer les coordonnées du point singulier visé d’index i dans le repère réel lié au système de localisation.
[0100] 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.
[0101] Les coordonnées estimées des points mesurés
Figure imgf000020_0002
avec J variant ici de 1 à r, correspondant à un même point singulier d’index i, sont ici obtenues à partir de p lignes de visée caractérisées sous la forme \ Ok,-dr k J, avec k variant ici de 1 à p, dans un repère réel lié au système de réalité étendue.
[0102] Comme illustré, une première étape a pour objet d’initialiser les valeurs des index u, v et j (étape 900). Les index u et v sont des index de lignes de visée. Ils sont initialisés ici aux valeurs 1 et 2, respectivement. L’index j est un index de points mesurés dont la valeur est ici initialisée à 1.
[0103] Les lignes de visée ayant pour index u et v, c’est-à-dire les lignes de visée
Figure imgf000021_0001
et
Figure imgf000021_0002
, 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 Oz est orthogonal au vecteur résultant du produit vectoriel des vecteurs du r et
Figure imgf000021_0003
c’est-à-dire si le produit scalaire (¾0 . (t¾A¾) est nul.
[0104] 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 du r et
Figure imgf000021_0004
soit du rAdv r, est nul.
[0105] Si les lignes de visée sont parallèles, aucun point mesuré ne peut être déduit de ces deux lignes de visée.
[0106] Un test est alors effectué pour déterminer si la valeur de l’index v est strictement inférieure au nombre p de lignes de visée considérées (étape 920). Si la valeur de l’index v est strictement inférieure au nombre p, cette valeur est incrémentée de 1 (é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 v n’est pas strictement inférieure au nombre p, un test est effectué pour déterminer si la valeur de l’index u est strictement inférieure au nombre p moins 1 de lignes de visée considérées (étape 930).
[0107] Si la valeur de l’index u est strictement inférieure au nombre (p - 1), cette valeur est incrémentée de 1, la valeur de l’index v est modifiée pour être égale à celle de l’index u plus 1 (é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 u est supérieure ou égale au nombre (p - 1), la recherche de points mesurés prend fin, toutes les lignes de visée ayant été prises en considération. [0108] Si les lignes de visée sont coplanaires mais non parallèles
(étapes 910 et 915), les coordonnées (¾ , yf , z[j) 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 j (étape 945). La valeur de l’index j est incrémentée de 1 puis le ou les tests décrits précédemment sur les valeurs des index u et v sont effectués pour, le cas échéant, traiter un nouveau couple de lignes de visée.
[0109] Si les lignes de visée
Figure imgf000022_0001
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 S est l’extrémité du segment appartenant à la ligne de visée
Figure imgf000022_0002
et que le point S est l’extrémité du segment appartenant à la ligne de visée et
Figure imgf000022_0003
les coordonnées de ces points peuvent être déterminées selon les relations suivantes :
Figure imgf000022_0004
[0110] Les coordonnées
Figure imgf000022_0005
du milieu du segment sont ensuite calculées (étape
955) puis mémorisées comme celles d’un point mesuré ayant l’index j (étape 945). La valeur de l’index j est incrémentée de 1 puis le ou les tests décrits précédemment sur les valeurs des index u et v sont effectués pour, le cas échéant, traiter un nouveau couple de lignes de visée.
[0111] Après avoir exécuté les étapes illustrées sur la figure 9, un ensemble de points mesurés, comprenant (j — 1) 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.
[0112] 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). [0113] 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.
[0114] 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 c centiles supérieurs et inférieurs où la valeur c est par exemple choisie entre 1 et 10.
[0115] 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.
[0116] 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.
[0117] 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.
[0118] Dans une étape suivante, les coordonnées (x[,y[,z[) 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 :
Figure imgf000023_0001
[0119] Comme décrit précédemment, le centre de gravité représente ici une estimation du point singulier d’index i fixé par l’utilisateur.
[0120] 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. [0121] La figure 11 illustre un exemple de dispositif pouvant être utilisé pour mettre en oeuvre, au moins partiellement, un mode de réalisation de l’invention, notamment des étapes décrites en référence aux figures 6 à 10.
[0122] Le dispositif 1100 est par exemple un ordinateur ou un calculateur.
[0123] Le dispositif 1100 comporte de préférence un bus de communication 1102 auquel sont reliés :
[0124] une unité centrale de traitement ou microprocesseur 1104 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ; [0125] 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" ;
[0126] 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 ;
[0127] 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
[0128] une carte graphique 1114 reliée à un ou plusieurs dispositifs de restitution 1116 (e.g. écrans, projecteurs, etc.).
[0129] Optionnellement, le dispositif 1100 peut également disposer des éléments suivants :
[0130] un disque dur 1120 pouvant comporter les programmes "Prog" précités et des données traitées ou à traiter selon l’invention ; et
[0131] 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
[0132] 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.
[0133] 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.
[0134] Le code exécutable de chaque programme permettant à l'appareil programmable de mettre en oeuvre les processus selon l'invention peut être stocké, par exemple, dans le disque dur 1120 ou en mémoire morte 1106. [0135] 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.
[0136] 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.
[0137] 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 oeuvre de l'invention.
[0138] 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.
[0139] 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 oeuvre 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 oeuvre 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

Revendications
[Revendication 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.
[Revendication 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.
[Revendication 3] Procédé selon la revendication 2, selon lequel le dispositif de suivi de regard est rigidement lié au dispositif de localisation.
[Revendication 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.
[Revendication 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.
[Revendication 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.
[Revendication 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.
[Revendication 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.
[Revendication 9] Programme d’ordinateur comprenant des instructions pour la mise en oeuvre de chacune des étapes du procédé selon l’une des revendications 1 à 8, lorsque ce programme est exécuté par un processeur.
[Revendication 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.
PCT/FR2021/051265 2020-07-16 2021-07-08 Procede, dispositif et programme d'ordinateur d'aide au positionnement pour systemes de realite etendue WO2022013492A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2007478 2020-07-16
FR2007478A FR3112639A1 (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 (1)

Publication Number Publication Date
WO2022013492A1 true WO2022013492A1 (fr) 2022-01-20

Family

ID=72801727

Family Applications (1)

Application Number Title Priority Date Filing Date
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

Country Status (3)

Country Link
EP (1) EP4182775A1 (fr)
FR (1) FR3112639A1 (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
FR3112639A1 (fr) 2022-01-21
EP4182775A1 (fr) 2023-05-24

Similar Documents

Publication Publication Date Title
EP2760329B1 (fr) Procede de determination de mesures oculaires et optiques
KR102231910B1 (ko) 초점 이동에 반응하는 입체적 디스플레이
EP3659109B1 (fr) Procédé de détermination d'au moins un paramètre associé à un dispositif ophtalmique
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
FR3053509B1 (fr) Procede d’occultation d’un objet dans une image ou une video et procede de realite augmentee associe
EP2999393B1 (fr) Procédé de détermination de mesures oculaires avec un capteur grand public
EP2715662B1 (fr) Procede de localisation d'une camera et de reconstruction 3d dans un environnement partiellement connu
CN107358217B (zh) 一种视线估计方法及装置
US20170123488A1 (en) Tracking of wearer's eyes relative to wearable device
US10120442B2 (en) Eye tracking using a light field camera on a head-mounted display
JP2018532199A (ja) 眼の特徴を用いる眼ポーズ識別
EP2582283B1 (fr) Procede d'estimation d'une posture de reference
WO2011113936A1 (fr) Procédé et dispositif de mesure de distance inter-pupillaire
FR3011952A1 (fr) Procede d'interaction par le regard et dispositif associe
EP2901209B1 (fr) Procédé d'aide à la détermination de paramètres de vision d'un sujet
CN115803750B (zh) 使用参考框架的眼镜的虚拟试戴系统
FR3041804A1 (fr) Systeme de simulation tridimensionnelle virtuelle propre a engendrer un environnement virtuel reunissant une pluralite d'utilisateurs et procede associe
EP3145387B1 (fr) Méthode de test visuel d'un individu
EP4182775A1 (fr) Procede, dispositif et programme d'ordinateur d'aide au positionnement pour systemes de realite etendue
WO2015177461A1 (fr) Procédé de détermination d'au moins un paramètre comportemental
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é
WO2014180797A1 (fr) Procede de commande d'une interface graphique pour afficher des images d'un objet tridimensionnel
FR2978841A1 (fr) Systeme electronique d'aide a la vente
US11972549B2 (en) Frame selection for image matching in rapid target acquisition
EP3227743A1 (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
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21746530

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021746530

Country of ref document: EP

Effective date: 20230216