EP4182775A1 - Computer method, device and programme for assisting in the positioning of extended reality systems - Google Patents

Computer method, device and programme for assisting in the positioning of extended reality systems

Info

Publication number
EP4182775A1
EP4182775A1 EP21746530.1A EP21746530A EP4182775A1 EP 4182775 A1 EP4182775 A1 EP 4182775A1 EP 21746530 A EP21746530 A EP 21746530A EP 4182775 A1 EP4182775 A1 EP 4182775A1
Authority
EP
European Patent Office
Prior art keywords
point
user
points
marker
sight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP21746530.1A
Other languages
German (de)
French (fr)
Inventor
Fabrice Malaingre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Theoris
Original Assignee
Theoris
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Theoris filed Critical Theoris
Publication of EP4182775A1 publication Critical patent/EP4182775A1/en
Pending legal-status Critical Current

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

The present invention relates to positioning assistance for an extended reality system comprising a mobile part and provided with a device for locating the mobile part according to a first frame of reference defined by the location device, the extended reality system comprising a device for tracking a user's gaze. After having identified each point of a plurality of points in the real environment and the position of each point according to a second frame of reference, an estimate of the position of the point in the first frame of reference is obtained for each point of the plurality of points, the position of the point in the first frame of reference being estimated using the gaze tracking device. A correlation between the first frame of reference and the second frame of reference is subsequently obtained, according to the positions of the points of the plurality of points in the first frame of reference and in the second frame of reference.

Description

Description Description
PROCEDE, DISPOSITIF ET PROGRAMME D'ORDINATEUR D'AIDE AU POSITIONNEMENT POUR SYSTEMES DE REALITE ETENDUE METHOD, DEVICE AND COMPUTER PROGRAM FOR POSITIONING AID FOR EXTENDED REALITY SYSTEMS
[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. [0001] 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.
[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. [0002] Extended reality (also known as extended reality), including in particular augmented reality (also known as augmented reality) and mixed reality (also known as mixed reality), aims to combine physical reality and digital content, for example by inserting one or more virtual objects into a real environment. 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.
[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. [0003] For these purposes, 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. To manipulate the objects present in the virtual scene (virtual objects and/or models of real objects), each rendering engine uses a predetermined reference of its own, rigidly linked to the real environment to be enriched.
[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. [0004] In many types of applications, 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.
[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. [0005] It is thus necessary for an extended reality system to determine in real time the perception that their user has of the real environment. Furthermore, 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. This involves, for example, determining the position and orientation of an extended reality headset in the real environment. For these purposes, a localization with 6 degrees of freedom (called 6DoF tracking in English terminology), implementing techniques of the SLAM type (acronym for Simultaneous Localization And Mapping in English terminology) or equivalent, is often used.
[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. [0006] They are therefore often relative location devices which aim to determine a position and an orientation with respect to a previous position and orientation and not with respect to predetermined fixed points. In other words, the position and orientation of such extended reality systems are determined in a reference frame specific to the relative localization device, in which a cartography of the environment is constructed in real time by the device itself. Therefore, depending on the initialization conditions, a location relative to 6 degrees of freedom can lead to different positions and orientations even though this extended reality system is placed in the same place of a determined and stable real environment, and this the fact that the environment map generated in real time will be different.
[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. [0007] The result is that if a location relative to 6 degrees of freedom can prove to be extremely efficient for tracking movements, it cannot be used independently, without taking into account the initialization conditions of the extended reality system. Indeed, the position and orientation coordinates determined by the relative localization device are expressed in a real reference, rigidly linked to the real environment, which is specific to it and which carries no semantics as to the real environment in which it evolves. This marker is different from the one used by the rendering engine.
[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. [0008] It is therefore necessary, during an initialization phase, to establish a link between the marker defined and used by the rendering engine, generally called a virtual marker, and the marker defined and used by the localization device, generally called real benchmark. This may involve, for example, determining a passage matrix between, on the one hand, the predetermined virtual marker linked to the real environment and the real marker linked to this same environment but determined by the location device during its initialization. . Such a passage matrix is a correlation matrix between the real and virtual environments.
[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. [0009] However, the pre-existing solutions for carrying out this real/virtual correlation are often unsatisfactory. By way of illustration, there are real/virtual correlation solutions using recognition of "fiduciary markers", for example solutions for identifying and locating QR codes (abbreviation for Quick Response codes in Anglo-Saxon terminology) positioned in the real environment. Although these solutions are generally robust, the placement of the fiduciary markers can prove to be problematic because it requires support, manipulations and transfers the problem of precision of the real/virtual correlation to the precision of placement of the markers themselves.
[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. [0010] There are also solutions based on the recognition of “natural markers” according to which reference images (or patterns) are used to identify and locate patterns naturally present in the real environment. Still other solutions are based on "shape" recognition algorithms according to which elements present in the real environment are identified and located according to their 3D modelling. While these solutions have advantages in terms of ease of implementation for users of extended reality systems, they are generally not very robust with respect to changes in the environment (for example changes in shape or aspect of an object changing over time), but also with respect to variations in the lighting conditions of this same environment.
[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. [0011]There is therefore a real need for a positioning aid system for extended reality applications, making it possible to establish a correlation between real and virtual environments.
[0012] La présente invention aide notamment à résoudre ces problèmes. The present invention helps in particular to solve these problems.
Exposé de l’invention Disclosure of 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. To this end, the invention proposes a positioning aid mechanism for extended reality systems, allowing a real/virtual correlation.
[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 : [0014] There is thus proposed a positioning aid method for an extended reality system, 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:
- 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 - obtaining an identification of each point of a plurality of points of the real environment and of the position of each point of the plurality of points according to the same second reference frame rigidly linked to the real environment, different from the first mark; - for each point of the plurality of points, obtaining an estimate of the position of the point in the first marker, the position of the point in the first marker being estimated using the gaze tracking device; and
- 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. - the determination of a correlation between the first marker and the second marker, according to the positions of the points of the plurality of points in the first marker and in the second marker, said correlation being used to display at least one virtual object at a position and according to an orientation defined in the second marker.
[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. 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.
[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. [0016] According to particular embodiments, the mobile part comprises the location device, the location device being a simultaneous location and mapping device of the SLAM type.
[0017] Toujours selon des modes de réalisation particuliers, le dispositif de suivi de regard est rigidement lié au dispositif de localisation. [0017] Still according to particular embodiments, the gaze tracking device is rigidly linked to the location device.
[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. [0018] Still according to particular embodiments, several estimates of the position of a point fixed by the user are obtained, the method further comprising the calculation of a position of a point fixed by the user from estimates obtained.
[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. [0019] Still according to particular embodiments, 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.
[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. Still according to particular embodiments, 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.
[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. Still according to particular embodiments, 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.
[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. [0022] Still according to particular embodiments, 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.
[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. [0024] 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.
[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. Thus, 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.
[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é. [0026] 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. .
[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. 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.
Brève description des dessins Brief description of the drawings
[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 : Other characteristics, details and advantages of the invention will appear on reading the detailed description below. This is purely illustrative and should be read in conjunction with the attached drawings, in which:
Fig. 1 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 ; [0029] [Fig. 1] illustrates an example of an environment in which the invention can be implemented according to particular embodiments of the invention;
Fig. 2 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 ; [0030] [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 [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. 3 [0031] [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 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 ; [0032] [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;
Fig. 5 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 ; [0033] [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 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 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 ; [0034] [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 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 ; [0035] [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 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 [0036] [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
[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 [0037] [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
[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 [0038] [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); and
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. Fig. 11 [0039] [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.
Description détaillée detailed description
[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. [0040] Human beings have extremely powerful biomechanical capacities, in particular that of being able to visually fix a precise point in space in an extremely stable manner for a short time, even when the body is in motion. So, for example, when a person is driving and stares briefly at an object such as a roadside sign, eye movement is slaved to converge on the stared object despite the speed. The inventors have determined that such properties could advantageously be used in an extended reality system, in particular during its initialization.
[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. [0041] According to embodiments of the invention, a positioning aid for an extended reality system comprising a location device is provided 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. For these purposes, 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. By establishing a relationship between the coordinates of singular points fixed by the user through the extended reality system, in the real frame defined by the localization device, and the coordinates of these points in the predetermined virtual frame, it is possible to establish a relationship between the real environment and the virtual environment of the extended reality system. This relation makes it possible to precisely determine the position and the orientation of virtual objects to be inserted into the real environment as it is perceived by the user.
[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. Figure 1 illustrates an example of an environment in which the invention can be implemented according to particular embodiments.
[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. As illustrated, 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.
[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é. The user can move freely in the real environment 110. Although the real environment here is an interior space, it could also be an exterior space. In particular, 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.
[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. [0045] 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.
[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. 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.
[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é. It is recalled here that 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.
[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. 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.
[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. As illustrated in Figures 2a and 2b, 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. Similarly, 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.
[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 ». It is observed here that 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.
[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. Thus, knowing the coordinates of the center of the eyeballs and of the center of the pupils in any frame rigidly linked to the eyeballs, it is possible to calculate the coordinates of a target point, in this frame.
[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). [0053] It is observed here that while certain gaze tracking devices are capable of estimating the coordinates of a point fixed by a user, others are limited to estimating, still in any reference frame rigidly linked to the eyeballs, the line of sight to which this same point fixed by the user belongs. 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).
[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. Furthermore, it is recalled here that 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. Thus, when such a 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.
[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). [0055] By way of illustration, the gaze tracking device implemented in the mixed reality headset marketed by Microsoft under the name HoloLens 2 (Microsoft and HoloLens are trademarks) 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 ).
[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. However, even in the case where 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.
[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é. [0057] 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.
[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. As illustrated, 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. When the user moves to a position 305-2 while continuing to stare at the 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.
[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. Thus, 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. As illustrated, 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.
[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. [0061] It is observed that, according to the examples described with reference to Figures 1, 2 and 3, 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). When this 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. When 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.
[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). 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).
[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. According to other embodiments, 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. According to particular embodiments, 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. For these purposes, 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. In order not to disturb the ocular servoing, no virtual object is preferably displayed in the user's field of vision during this correlation phase.
[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. 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. For the sake of clarity, only a view according to a projection on a transverse plane is presented.
[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. As illustrated by FIGS. 5a and 5b, 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.
[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é). In the case of a gaze tracking device providing the coordinates of the fixed point, 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).
[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. [0068] Thus, as illustrated in FIG. 5a, 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.
[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. In the case of a gaze tracking device providing a characterization of the line of sight passing through the point fixed by a user, 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.
[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. [0070] Thus, as illustrated in FIG. 5b, 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.
[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. [0071] Consequently, whatever the gaze tracking device, 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. By way of illustration, 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.
[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é. To limit the risk of error, 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. By way of illustration, 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 .
[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. [0073] After having described, with reference to FIGS. 2 to 5, the determination of the coordinates of a point fixed by a user in a reference frame linked to a gaze tracking device and the mobile sight, implemented in modes of embodiment of the invention, examples of process steps according to embodiments of the invention are described with reference to Figures 6 to 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. 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. [0075] 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.
[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. [0076]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. As described previously, the number of singular points, to be fixed by a user, denoted n, is greater than or equal to 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. As illustrated, 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.
[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 ). 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).
[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). The user is then invited to stare at the singular point having the index i (step 610). Such an invitation may take the form of a voice message or a visual indication in the extended reality system. 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).
[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é). [0080] Whatever the embodiment of the sighting and in order to overcome the limitations of the gaze tracking device used, 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). For each observation position k (k varying from 1 to p), 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>,k ' z ï ,k ) > are obtained. It is observed that 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).
[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. In a next step, 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. An example of implementation of this step is described in more detail with reference to 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). 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).
[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. If the value of index i is strictly less than the number n of singular points to be fixed, 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.
[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. Otherwise, if the value of the index i is not strictly less than the number n of singular points to target, indicating that the coordinates of all the singular points have been estimated, 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.
/xf\ /xf\ /xf\ /xf\
[0085] Cette matrice, notée ici Mv®r, est telle que l yf = Mv®r x yf , quelle que soitThis matrix, denoted here M v®r , is such that l yf = M v®r x yf , whatever the
\yirl \yï/ la valeur de l’index i. \yi r l \yï/ the value of 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. An example of calculating such a matrix is presented in the article entitled "Least-Squares Fitting of Two 3-D Point Sets", Arun, Huang and Blostein (IEEE Transactions on Pattern Analysis and Machine Intelligence, Volume 9 Issue 5, May 1987). [0087] 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.
[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). 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 ).
[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. As illustrated, the purpose of 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). As described previously, 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.
[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. In a next step, 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. By way of illustration, 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. Alternatively, this number p can be chosen between two values, for example between 1 and 300. If 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.
[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). Otherwise, if the value of the index k is greater than or equal to the value p, 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. By way of illustration, 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). 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 of the points measured is acceptable or not (step 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. If the dispersion is too great, the previous steps are re-executed to obtain new measurements. Otherwise, if the dispersion is acceptable, the measured coordinates (*[ ¾ , y ¾ ,¾), 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.
[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. [0093] 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.
[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 l’index i n’étant pas rappelé afin d’améliorer la lisibilité. Again, 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.
[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é). As illustrated, the purpose of a first step is to initialize the value of the index k, representing an index of observation positions, to the value 1 (step 800). In a following step, 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).
[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. In a next step, 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. By way of illustration, 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. Alternatively, this number p can be chosen between two values, for example between 2 and 300. If 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.
[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 j variant ici de 1 à r, est décrit en référence à la figure 9. Otherwise, if the value of the index k is greater than or equal to the value p, a cloud of measured points, the coordinates of which are expressed in the real reference linked to the location device, is calculated (step 820). This cloud, for example composed of r measured points, is calculated from the p lines of sight previously obtained. An example of steps to determine the coordinates of each of these r measured points, noted here j varying here from 1 to r, is described with reference to FIG.
[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). In a next step, 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. Again and by way of illustration, 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).
[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. If the dispersion is too great, 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.
[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. [0100] 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.
[0101] Les coordonnées estimées des points mesurés 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. [0101] 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.
[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. [0102] As illustrated, the purpose of 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.
[0103] Les lignes de visée ayant pour index u et v, c’est-à-dire les lignes de visée et , sont ensuite sélectionnées (étape 905). Dans une étape suivante, il est déterminé si ces lignes de visée sont coplanaires (étape 910). A titre d’illustration, ce test peut être effectué en déterminant si le vecteur formé par les points (¾ et Oz est orthogonal au vecteur résultant du produit vectoriel des vecteurs du r et c’est-à-dire si le produit scalaire (¾0 . (t¾A¾) est nul. [0103] The lines of sight having for index u and v, that is to say the lines of sight and , are then selected (step 905). In a next step, it is determined whether these lines of sight are coplanar (step 910). By way of illustration, this test can be carried out by determining whether the vector formed by the points (¾ 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 (¾0 . (t¾A¾) is zero.
[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 soit du rAdv r, est nul. [0104] If the lines of sight are coplanar, 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.
[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. If the lines of sight are parallel, no measured point can be deduced from these two lines of sight.
[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). 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).
[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èlesIf the value of 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
(é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. (steps 910 and 915), the coordinates (¾, 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.
[0109] Si les lignes de visée 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 et que le point S est l’extrémité du segment appartenant à la ligne de visée et les coordonnées de ces points peuvent être déterminées selon les relations suivantes : [0109] 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:
[0110] Les coordonnées du milieu du segment sont ensuite calculées (étape[0110] Coordinates of the middle of the segment are then calculated (step
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. 955) 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.
[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. After performing the steps illustrated in FIG. 9, 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.
[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. 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.
[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. As illustrated, the purpose of a first step is to filter the points measured according to their abscissa (step 1000). By way of illustration, 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.
[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. Similarly, 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.
[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. [0116] Again similarly, the purpose of a third step is to filter the points according to their rating (step 1010). Again, this filtering can consist of selecting the points according to their distribution on the dimension axis in order to eliminate the extreme points.
[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. It is observed here that according to particular embodiments, 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.
[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 : In a next step, 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:
[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. As described above, the center of gravity here represents an estimate of the singular point with index i set by the user.
[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. According to particular embodiments, 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. [0121] 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.
[0122] Le dispositif 1100 est par exemple un ordinateur ou un calculateur. The device 1100 is for example a computer or a calculator.
[0123] Le dispositif 1100 comporte de préférence un bus de communication 1102 auquel sont reliés : The device 1100 preferably comprises a communication bus 1102 to which are connected:
[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" ; [0124] 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";
[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 ; a random access memory or cache memory 1108 (RAM, acronym for Random Access Memory in English terminology) comprising registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs;
[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 [0127] 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
[0128] une carte graphique 1114 reliée à un ou plusieurs dispositifs de restitution 1116 (e.g. écrans, projecteurs, etc.). [0128] a graphics card 1114 connected to one or more rendering devices 1116 (e.g. screens, projectors, etc.).
[0129] Optionnellement, le dispositif 1100 peut également disposer des éléments suivants : [0129] Optionally, the device 1100 can also have the following elements:
[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 [0130] a hard disk 1120 which may include the aforementioned "Prog" programs and data processed or to be processed according to the invention; and
[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 [0131] 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
[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. [0132] a communication interface 1126 connected to a distributed communication network 1128, for example a wireless communication network and/or a local communication network.
[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. 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.
[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. 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.
[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. More generally, the program(s) can be loaded into one of the storage means of the device 1100 before being executed.
[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. 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. When the power is turned on, 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.
[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. [0138] Depending on the chosen embodiment, certain acts, actions, events, or functions of each of the methods described herein may be performed or occur in a different order from that in which they were described, or may be added, merged or otherwise not made or not occurring, as the case may be. Further, in some embodiments, certain acts, actions or events are performed or occur concurrently and not sequentially.
[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. [0139] Although described through a certain number of detailed exemplary embodiments, the proposed method and the equipment for the implementation of the method include various variants, modifications and improvements which will be apparent to those skilled in the art. art, it being understood that these various variants, modifications and improvements form part of the scope of the invention, as defined by the following claims. Additionally, various aspects and features described above may be implemented together, or separately, or substituted for each other, and all of the various combinations and sub-combinations of aspects and features are within the scope of the 'invention. In addition, some systems and equipment described above may not incorporate all of the modules and functions described for the preferred embodiments.

Claims

Revendications Claims
[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 : [Claim 1] Positioning aid method for an extended reality system, the extended reality system comprising at least one part that moves in a real environment and being provided with a location device for determining a position and/or an orientation relative to the mobile part according to a first benchmark rigidly linked to the real environment, the first benchmark being defined by the localization device, the extended reality system further comprising a device for tracking the gaze of a user of the reality system extended, the method comprising:
- 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 ; - obtaining an identification of each point of a plurality of points of the real environment and of the position of each point of the plurality of points according to the same second reference frame rigidly linked to the real environment, different from the first mark;
- 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 - for each point of the plurality of points, obtaining an estimate of the position of the point in the first marker, the position of the point in the first marker being estimated using the gaze tracking device; and
- 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. - the determination of a correlation between the first marker and the second marker, according to the positions of the points of the plurality of points in the first marker and in the second marker, said correlation being used to display at least one virtual object at a position and according to an orientation defined in the second marker.
[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. [Claim 2] Method according to claim 1, according to which the mobile part comprises the localization device, the localization device being a simultaneous localization and mapping device of the SLAM type.
[Revendication 3] Procédé selon la revendication 2, selon lequel le dispositif de suivi de regard est rigidement lié au dispositif de localisation. [Claim 3] A method according to claim 2, wherein the gaze tracking device is rigidly connected to the tracking device.
[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. [Claim 4] A method according to any one of claims 1 to 3 wherein several estimates of the position of a point fixed by the user are obtained, the method further comprising calculating a position of a point fixed by the user from the estimates obtained.
[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. [Claim 5] A method according to claim 4, wherein 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.
[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. [Claim 6] A method according to claim 4 or claim 5 wherein obtaining multiple 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.
[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. [Claim 7] A method according to any one of claims 1 to 6 wherein at least one position estimate is obtained from at least two lines of sight and wherein, 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.
[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. [Claim 8] A method according to any of claims 1 to 7 wherein the second marker is a marker used by a rendering engine of the extended reality system.
[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. [Claim 9] Computer program comprising instructions for implementing each of the steps of the method according to one of Claims 1 to 8, when this program is executed by a processor.
[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. [Claim 10] Device comprising a processing unit configured to execute each of the steps of the method according to one of Claims 1 to 8.
EP21746530.1A 2020-07-16 2021-07-08 Computer method, device and programme for assisting in the positioning of extended reality systems Pending EP4182775A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2007478A FR3112639A1 (en) 2020-07-16 2020-07-16 Method, device and computer program for positioning assistance for an extended reality system
PCT/FR2021/051265 WO2022013492A1 (en) 2020-07-16 2021-07-08 Computer method, device and programme for assisting in the positioning of extended reality systems

Publications (1)

Publication Number Publication Date
EP4182775A1 true EP4182775A1 (en) 2023-05-24

Family

ID=72801727

Family Applications (1)

Application Number Title Priority Date Filing Date
EP21746530.1A Pending EP4182775A1 (en) 2020-07-16 2021-07-08 Computer method, device and programme for assisting in the positioning of extended reality systems

Country Status (3)

Country Link
EP (1) EP4182775A1 (en)
FR (1) FR3112639A1 (en)
WO (1) WO2022013492A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2954494B1 (en) * 2009-12-18 2012-07-27 Thales Sa METHOD OF CALIBRATING A MEASURING INSTRUMENT OF AN OPTRONIC SYSTEM
DE102011122206A1 (en) * 2011-12-23 2013-06-27 Volkswagen Aktiengesellschaft Method for representation of virtual image component i.e. augmented reality image, on transparent display of augmented reality system, involves determining position of component, and representing virtual image component by display
US11861062B2 (en) * 2018-02-03 2024-01-02 The Johns Hopkins University Blink-based calibration of an optical see-through head-mounted display

Also Published As

Publication number Publication date
FR3112639A1 (en) 2022-01-21
WO2022013492A1 (en) 2022-01-20

Similar Documents

Publication Publication Date Title
EP2760329B1 (en) Method for determining ocular and optical measurements
KR102231910B1 (en) Stereoscopic display responsive to focal-point shift
EP3659109B1 (en) Method for determining at least one parameter associated with an ophthalmic device
EP2104925B1 (en) Method and device for the real time imbedding of virtual objects in an image stream using data from a real scene represented by said images
FR3053509B1 (en) METHOD FOR OCCULATING AN OBJECT IN AN IMAGE OR A VIDEO AND ASSOCIATED AUGMENTED REALITY METHOD
EP2999393B1 (en) Method for determining ocular measurements using a consumer sensor
EP2715662B1 (en) Method for localisation of a camera and 3d reconstruction in a partially known environment
CN107358217B (en) Sight estimation method and device
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 (en) Eye pose identification using eye features
EP2582283B1 (en) Method for estimating a reference posture
WO2011113936A1 (en) Method and device for measuring an interpupillary distance
FR3011952A1 (en) METHOD OF INTERACTION BY LOOK AND ASSOCIATED DEVICE
EP2901209B1 (en) Method for helping determine the vision parameters of a subject
CN115803750B (en) Virtual try-on system for glasses using a frame of reference
FR3041804A1 (en) VIRTUAL THREE-DIMENSIONAL SIMULATION SYSTEM FOR GENERATING A VIRTUAL ENVIRONMENT COMPRISING A PLURALITY OF USERS AND ASSOCIATED METHOD
EP3145387B1 (en) Method of visual testing of an individual
WO2022013492A1 (en) Computer method, device and programme for assisting in the positioning of extended reality systems
EP3145405A1 (en) Method of determining at least one behavioural parameter
WO2018002533A1 (en) Method for concealing an object in an image or a video and associated augmented reality method
EP2994813A1 (en) Method for controlling a graphical interface for displaying images of a three-dimensional object
FR2978841A1 (en) Electronic assistance system for sale of accessory in shop, has support allowed to carry motion picture device to deliver digital images, where motion picture device is connected to separate restitution device to provide digital images
US11972549B2 (en) Frame selection for image matching in rapid target acquisition
EP3227743A1 (en) Method for calibrating an augmented reality visual rendering system comprising at least one display device that is partially transparent with respect to the user thereof, and associated system

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20230104

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)