WO2008107553A2 - Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream - Google Patents

Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream Download PDF

Info

Publication number
WO2008107553A2
WO2008107553A2 PCT/FR2008/000068 FR2008000068W WO2008107553A2 WO 2008107553 A2 WO2008107553 A2 WO 2008107553A2 FR 2008000068 W FR2008000068 W FR 2008000068W WO 2008107553 A2 WO2008107553 A2 WO 2008107553A2
Authority
WO
WIPO (PCT)
Prior art keywords
image
video stream
orientation
follow
followed
Prior art date
Application number
PCT/FR2008/000068
Other languages
French (fr)
Other versions
WO2008107553A3 (en
Inventor
Valentin Lefevre
Nicolas Livet
Original Assignee
Total Immersion
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
Priority to EP08761786.6A priority Critical patent/EP2132710B1/en
Priority to JP2009545977A priority patent/JP5137970B2/en
Priority to KR1020097017554A priority patent/KR101328759B1/en
Priority to EP22214463.6A priority patent/EP4254333A3/en
Priority to US12/524,101 priority patent/US8315432B2/en
Application filed by Total Immersion filed Critical Total Immersion
Publication of WO2008107553A2 publication Critical patent/WO2008107553A2/en
Publication of WO2008107553A3 publication Critical patent/WO2008107553A3/en
Priority to US13/606,978 priority patent/US8374395B2/en
Priority to US13/606,912 priority patent/US8374394B2/en
Priority to US13/607,627 priority patent/US8374396B2/en
Priority to US13/682,106 priority patent/US8805016B2/en
Priority to US13/682,146 priority patent/US8824736B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • G09G5/377Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns

Definitions

  • the present invention relates to the combination of real and virtual images, also called augmented reality, and more particularly a method and augmented reality devices using automatic real-time tracking of planar geometric textures, without markers, in a video stream.
  • Augmented reality aims to insert one or more virtual objects in the images of a video stream.
  • the position and orientation of these virtual objects can be determined by data related to certain elements. of this scene, for example coordinates of a particular point of the scene such as the hand of a player or by data external to the scene represented by the images, for example coordinates directly from a game scenario.
  • the position and the orientation are determined by data related to certain elements of this real scene, it may be necessary to follow these elements according to the movements of the camera or the movements of these elements themselves in the scene.
  • the operations of tracking elements and incrustation of virtual objects in the real images can be executed by separate computers or by the same computer.
  • element tracking algorithms also known as target tracking algorithms
  • use a marker that can be visual or use other means such as radio frequency or infrared based means.
  • some algorithms use pattern recognition to track a particular element in an image stream.
  • the autoimmune Polytechnique Fédérale de Lausanne has developed a visual tracking algorithm that does not use a marker and whose originality lies in the pairing of particular points between the current image of a stream.
  • video with a keyframe called a keyframe, obtained at system boot and an updated keyframe while performing visual tracking.
  • the objective of this visual tracking algorithm is to find, in a real scene, the pose, that is to say the position and the orientation, of an object whose three-dimensional mesh is available, or to find the Extrinsic position and orientation parameters of a camera filming this object, motionless, thanks to the image analysis.
  • a keyframe is composed of two elements: a captured image of the video stream and a pose (orientation and position) of the real object appearing in this image.
  • Keyframes should be "offline", off-line, or "on-line” keyframes, or on one.
  • Offline keyframes are images extracted from the video stream in which the object to be tracked has been placed manually through the use of a pointing device such as a mouse or using an adjustment tool such as a Pocket Dial marketed by the company Doepfer.
  • the offline keyframes preferably characterize the pose of the same object in several images.
  • “Online” keyframes are dynamically stored during trace program execution. They are calculated when the error, that is the distance between the points of interest pairings, is small. Online keyframes replace the offline keyframes used to initialize the application. Their use aims to reduce the shift, also called drift, which can become important when one moves too far from the initial relative position between the camera and the object. Learning new online keyframes also results in more robust application to external light variations and camera color variations. However, they have the disadvantage of introducing a "vibration" effect on the pose of the object over time. When learning a new online keyframe, this one just replace the previous keyframe, offline or online. It is used as a common keyframe.
  • Each keyframe includes an image in which the object is present and a pose to characterize the location of that object as well as a number of points of interest that characterize the object in the object. picture.
  • Points of interest are, for example, constructed from a Harris point detector and represent locations with high values of directional gradients in the image.
  • the manual preparation phase thus consists in finding a first estimate of the pose of the object in an image extracted from the video stream, which amounts to formalizing the initial affine transformation T p ⁇ c , the transition matrix between the reference associated with the image. object followed to the marker attached to the camera.
  • the transformation T p ⁇ 0 can then be expressed in the form of the following matrix
  • this model makes it possible to establish the link between the coordinates of the points of the three-dimensional model of the object expressed in the reference of the object and the coordinates of these points in the reference of the camera.
  • the offline keyframes are processed to position points of interest according to the parameters chosen at the launch of the application. These parameters are empirically specified for each type of application use and allow the matching detection core to be modulated and to obtain a better quality in estimating the pose of the object according to the characteristics of the application. the real environment. Then, when the real object in the current image is in a pose that is close to the pose of the same object in one of the offline keyframes, the number of matches becomes important. It is then possible to find the affine transformation allowing to fix the virtual three-dimensional model of the object on the real object.
  • the algorithm goes into steady state.
  • the displacements of the object are followed by one frame on the other and any drifts are compensated thanks to the information contained in the offline key image retained during the initialization and in the online key image calculated during the execution of the application.
  • the tracking application combines two types of algorithms: a detection of points of interest, for example a modified version of Harris point detection, and a reprojection technique of the points of interest positioned on the three-dimensional model towards the flat image. This reprojection makes it possible to predict the result of a spatial transformation from one frame to the other.
  • a detection of points of interest for example a modified version of Harris point detection
  • a reprojection technique of the points of interest positioned on the three-dimensional model towards the flat image. This reprojection makes it possible to predict the result of a spatial transformation from one frame to the other.
  • a point p of the image is the projection of a point P of the real scene with p ⁇ P,> P E -T p ⁇ c - P
  • P is the matrix of intrinsic parameters of the camera, ie its focal length, the center of the image and the offset
  • PE is the matrix of the extrinsic parameters of the camera, ie the position of the camera in the real space
  • T p ⁇ c is the matrix of passage between the reference associated with the object followed towards the marker attached to the camera. Only the relative position of the object relative to the relative position of the camera is considered here, which amounts to placing the reference of the real scene at the optical center of the camera.
  • the tracking problem therefore consists of determining the matrix T p ⁇ c , ie the position and the orientation of the object with respect to the reference of the camera.
  • the pose of an object is estimated according to the correspondences between the points of interest of the current image resulting from the video stream, the points of interest of the current key image and the points of interest of the previous image. of the video stream. These operations are called the matching phase. From the most significant correlations, the software calculates the pose of the object corresponding best to the observations.
  • Figures 1 and 2 illustrate this tracking application.
  • the pose of an object can be determined according to the configuration of its characteristic points.
  • image blocks centered on points of interest are generated from offline keyframes according to affine transformations or homographic deformations.
  • patches can here be defined as an image block comprising a point of interest and which is associated with the pose of the corresponding object.
  • the pose of each patch is calculated according to the transformation performed to obtain the corresponding image block.
  • the patches are preferably arranged according to a decision tree to limit the calculation times during the execution of the tracking application.
  • the object tracking application determines certain points of interest of this image and compares the image blocks centered on these points with the previously created patches to determine the pose of the image. the object in the image.
  • this solution also induces a "vibration" effect on the pose of the object over time.
  • the invention solves at least one of the problems discussed above.
  • the invention thus relates to a method for tracking in real time at least one substantially planar geometric object of a real scene in at least two substantially consecutive images of at least one video stream, in an augmented reality application, this method characterized in that it comprises the following steps,
  • the method according to the invention thus makes it possible to automate the initialization of an augmented reality application using automatic tracking, in real time, of textured planar geometric objects, without markers, in a video stream.
  • This method also resets the application in case of stall, that is to say when the object to follow is lost.
  • the steps of receiving an image and evaluating the position and orientation of said at least one object to be followed in said received image are repeated for images of said at least one next video stream.
  • said second image in order to follow said at least one object in a sequence of images.
  • the position and orientation of said at least one object to be tracked in received image are evaluated from said plurality of image blocks when the position and orientation of said at least one object to be tracked can not be evaluated in said received image from said keyframe to allow automatic reset when the object to be tracked is lost.
  • the values of said keyframe are replaced by a received image and the evaluated position and orientation of said object to follow in said received image to improve the tracking of said at least one object to follow.
  • the method further comprises a step of evaluating the installation of the image sensor from which said at least one video stream originates in a frame linked to said real scene from the evaluated position of said at least one object to follow.
  • the method further comprises a step of determining the movement of said image sensor.
  • This embodiment makes it possible to follow the displacement of said image sensor when said at least one object to be followed is immobile in the scene observed by said image sensor.
  • said at least one object to be followed comprises a uniform color zone adapted to implement chromakey technology for inserting an element into the uniform color area of the image.
  • said at least one object to follow is simultaneously monitored in at least two separate video streams to allow, in particular, the implementation of collaborative applications.
  • the method further comprises a step of insertion of at least one element into at least one of said received images according to the evaluated position and orientation of said at least one object to be followed in said image received, said at least one element being selected from a list comprising at least one representation of at least one virtual object and at least one second video stream, in order to enrich the image issuing from said image sensor.
  • the invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method described above.
  • the invention also relates to a means for storing information, removable or not, partially or completely readable by a computer or a microprocessor comprising code instructions of a computer program for the execution of each of the steps of the previously described method.
  • the invention also relates to a device for tracking in real time at least one substantially planar geometric object of a real scene in at least two substantially consecutive images of at least one video stream, in an augmented reality application, this device characterized in that it comprises the following means,
  • the device according to the invention thus makes it possible to automate the initialization or the reinitialization of an augmented reality application using an automatic tracking, in real time, of textured planar geometrical objects, without marker, in a video stream.
  • the device further comprises means for determining whether the position and orientation of said at least one object to be tracked can be evaluated in said second image from the data stored in said first storage means, said means for determining the position and orientation of said at least one object to be tracked in said first image from the data stored in said second storage means being adapted to evaluate the position and orientation of said at least one object to be tracked in said second image from the data stored in said second storage means.
  • the device further comprises means for storing said second image and the position and orientation of said at least one object to be followed in said second image. image in said first storage means to improve the tracking of said at least one object.
  • the device further comprises transformation means adapted to determine the laying of said at least one object to follow or the image sensor from which said at least one video stream in one of the markers related to said real scene, auditing at least one object to follow or said image sensor to determine the relative movements of said at least one object to follow at said image sensor in said real scene.
  • the device further comprises means for inserting at least one element into at least one of said received images according to the evaluated position and orientation of said at least one object to be followed in said received image, said at least one element being chosen from a list comprising at least one representation of at least one virtual object and at least one second video stream in order to enrich the image issuing from said image sensor.
  • FIG. 2 illustrates certain steps of the method for determining the placing of an object in an image of a video stream from key images and the previous image of the video stream;
  • FIG. 3 illustrates the general diagram of an object tracking algorithm according to the invention
  • FIG. 4 shows an example of an apparatus making it possible to implement the invention at least partially
  • FIG. 5, comprising FIGS. 5a and 5b, illustrates two examples of architectures that can be used when a mobile device for capturing and displaying images is used
  • FIG. 6 shows an example of use of a mobile device for capturing and displaying images for an augmented reality application with object tracking
  • FIG. 7 shows how a mobile device for capturing and viewing images can be used as a cursor or a motion sensor with six degrees of freedom.
  • the method according to the invention particularly relates to the automation of the initialization and reset phases after a stall of the object tracking application on images from a video stream.
  • Figure 3 illustrates the overall diagram of the object tracking application embodying the invention.
  • the object tracking application comprises three phases: a preparation phase (I), an initialization or reset phase (II) and an object tracking phase (III).
  • the preparation phase (I) consists mainly in extracting the characteristic points of the object to be followed in order to prepare a search tree.
  • the points of interest of the image are found (step 305) according to a conventional algorithm such as for example a Harris point detector.
  • a textured image of the object is preferably an image on which the object alone appears, such as a computer image or an image on which the object has been cut off and the background deleted.
  • the application extracts the image blocks centered on these points in order to generate patches.
  • Patches are generated (step 310), for example, by random transformations based on translations, rotations, and scale changes.
  • ⁇ n - n 0 H (m - m 0 ) + T (t ) , t 2 )
  • T (ti, t 2 ) corresponds to a translation around the point m 0
  • ti being a small vertical translation in the image
  • t 2 being a small horizontal translation
  • H R ⁇ - R ⁇ ⁇ - S (X 17 A 7 ) - R ⁇ .
  • R a and R ⁇ ' correspond to rotations along two orthogonal axes and 5 (/ I 1 , / I 2 ) represents the change of scale.
  • the parameters to be randomly varied are therefore ⁇ , ⁇ , ⁇ 1, X 1, t 1 and z.
  • Each patch is associated with a pose that is calculated according to the transformation applied to the image block to obtain the corresponding patch.
  • a search tree is then constructed from the generated patches (step 315).
  • an offline key image is created from a first image from the video stream (step 320).
  • This first image from the video stream is stored for use as an offline keyframe for tracking the object in subsequent images from the video stream.
  • To determine the pose of the object in this first image several points of interest are determined, for example the p points with the strongest directional gradient.
  • the image block defined around each of these points is compared to the patches determined during the preparation phase, according to the search tree.
  • the size of these image blocks is preferably equal to that of the patches.
  • the pose associated with each of the most similar patches of the image blocks is used to determine the pose of the object in the image.
  • the pose of the object can be defined as the average of the poses of each selected patch, that is to say of each patch most similar to each of the blocks of images, or according to a voting mechanism.
  • the pose thus determined is associated with the image from the video stream to form the key image offline.
  • This offline keyframe is then used to initialize the tracking application (step 325). This process is fast and allows instant initialization.
  • the tracking application can find the object (phase III) in the successive images of the video stream according to the tracking mechanism mentioned above (step 330).
  • the displacements of the object are followed by a frame on the other and any drifts are compensated thanks to the news contained in the offline keyframe retained during initialization and, optionally, in the calculated online keyframe when running the application.
  • the tracking application advantageously combines algorithms for detecting points of interest and reprojection of the points of interest positioned on the three-dimensional model towards the plane image to predict the result of a spatial transformation of a frame on the other.
  • the pose of the object is thus estimated according to the correspondences between the points of interest of the current image resulting from the video stream, the points of interest of the current key image and the points of interest of the previous image. resulting from the video stream, that is to say according to the pairing of the points of interest from these images.
  • the reset phase is similar to the initialization phase described above (steps 320 and 325).
  • the current image of the video stream is used to form the new offline keyframe whose pose is determined according to its points of interest and the search tree including patches determined during the preparation phase.
  • the offline keyframe is therefore a dynamic offline keyframe that is updated automatically when the tracking application picks up.
  • Figure 4 shows schematically an apparatus adapted to implement the invention.
  • the device 400 is for example a microcomputer, a workstation or a game console.
  • the device 400 preferably comprises a communication bus 402 to which are connected:
  • a central processing unit or microprocessor 404 (CPU, Central Processing Unit);
  • ROM Read OnIy Memory
  • RAM Random Access
  • a video acquisition card 410 connected to a camera 412;
  • the apparatus 400 may also have the following elements:
  • a hard disk 420 which may comprise the aforementioned "Prog" programs and data processed or to be processed according to the invention
  • a communication interface 426 connected to a distributed communication network 428, for example the Internet network, the interface being able to transmit and receive data; a data acquisition card 414 connected to a sensor (not shown); and,
  • a memory card reader (not shown) adapted to read or write processed or processed data according to the invention.
  • the communication bus allows communication and interoperability between the various elements included in the device 400 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 apparatus 400 directly or via another element of the apparatus 400.
  • the code executable of each program allowing the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk 420 or in read only memory 406.
  • the executable code of the programs may be received via the communication network 428, via the interface 426, to be stored in the same manner as that described previously.
  • the memory cards can be replaced by any information medium such as, for example, a compact disc (CD-ROM or DVD).
  • the memory cards can be replaced by information storage means, readable by a computer or by a microprocessor, integrated or not integrated into the device, possibly removable, and adapted to store one or more programs whose execution allows the implementation of the method according to the invention.
  • program or programs may be loaded into one of the storage means of the device 400 before being executed.
  • the central unit 404 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 420 or in the read-only memory 406 or else in the other elements of FIG. aforementioned storage.
  • the program or programs that are stored in a non-volatile memory for example the hard disk 420 or the read only memory 406, are transferred into the random access memory 408 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.
  • the communication apparatus comprising the device according to the invention can also be a programmed apparatus.
  • This device then contains the code of the computer program or programs for example frozen in a specific application integrated circuit (ASIC).
  • ASIC application integrated circuit
  • the image from the video card 416 can be transmitted to the screen or the projector 418 through the communication interface 426 and the distributed communication network 428.
  • the camera 412 can be connected to a card 410 'video acquisition, separate from the camera 400, so that the images from the camera 412 are transmitted to the camera 400 through the distributed communication network 428 and the communication interface 426. Because of the simplification of implementation provided by the initialization and automatic reset process of the invention, the object tracking application can be implemented without having recourse to a specialist.
  • the tracking application can be used in a standard way to track an object in a sequence of images from a video stream, for example to embed a video sequence on an object of the scene taking into account the position and the orientation of this object, but also to determine the motion of a camera according to the analysis of a static object of the scene.
  • the object is part of the set and find the pose of this object in the scene is therefore to find the pose of the camera in relation to it. It then becomes possible to add virtual elements in the scene provided that the geometric transformation between the object and the geometric model of the scene
  • Rf is the reference associated with the tracked object
  • Rs is the reference associated with the scene
  • Rk is the reference associated with the camera
  • Rm is the reference of the model.
  • Rc 25 P - Tm ⁇ T c s • • ⁇ f ⁇ T m s - P Rm is, RRC ⁇ ⁇ ⁇ m c r Rm
  • the point P R ' c is thus defined according to the following relation,
  • a three-dimensional synthesis object defined in the frame of the scene can be projected on the current image of the video stream to increase the video stream with animated virtual objects.
  • the tracking application can also be used as an interface with a mobile device such as a PDA (personal digital assistant), a mobile phone or any other device provided with a video sensor.
  • the application may consist of finding and then following in the image a texture rectangle previously learned, for example stored in an object database, in order to increase the real video stream with virtual models or secondary video streams stalled on the object.
  • the main interest of this technology lies in the fact that the camera and the object being tracked can be moved freely in the scene.
  • the geometric change mark processing is identical to that described above.
  • the object tracking application is particularly robust for current low quality standards such as the H.263 standard often used for sending and receiving video streams to and from a telecom server.
  • object tracking and / or video stream enhancement processing can be local or remote.
  • FIG. 5, comprising FIGS. 5a and 5b, illustrates two examples of architectures that can be used.
  • Figure 5a corresponds to a remote tracking technique.
  • the mobile device 500 comprises a transmitter / receiver 505 for transmitting the video stream to the server 510 which comprises a transmitter / receiver 515.
  • the server 510 has an object tracking application and video stream enrichment so that that the server 510 is adapted to receiving one or more video streams from one or more mobile devices 500, tracking an object in the images of this stream, integrating a virtual object or a secondary video stream into these images and transmitting the video stream thus modified to the devices mobile 500 who display it.
  • FIG. 5b illustrates an alternative according to which the application of object tracking and video stream enrichment is integrated in the mobile device 500 '.
  • the server 510 ' comprises an application, for example a game, controlled by the commands of the mobile device 500'.
  • the data exchanged between the server 510 'and the mobile device 500' are control and command instructions as well as general information such as the results of the control and command instructions.
  • the video stream does not need to be transmitted between transceivers 505 'and 515'.
  • the server receives information on the type of object to follow, the relative position of the camera with respect to the object to be tracked and preferably the various actions performed by the user. 'user.
  • FIG. 6 shows an example of use of a mobile device for capturing and displaying images for an augmented reality application with object tracking, using one of the architectures presented in FIG. 5.
  • the mobile device 600 includes an image sensor (not shown) for acquiring a video stream from a real scene 610 and a screen 605.
  • the actual scene 610 includes an object 615 to be tracked, on which an illustration 620 which plays the role of texture.
  • the scene containing the tracked object is projected on the screen 605 and the position of this object in the scene makes it possible to add a virtual object such as the dialog 625 or the animated three-dimensional virtual object 630.
  • the mobile device can also be used as a six degree of freedom cursor or as a six degree of freedom motion sensor depending on the relative pose (position and orientation) of the mobile device relative to to the object being tracked.
  • This slider or sensor can be used to control movements.
  • Four types of displacement can be envisaged.
  • the mobile device aims to simulate a pointing tool to guide actions, to aim and select zones or objects and possibly to move the selection.
  • the plane texture is placed on a real flat surface such as a table.
  • a target is displayed on the screen in the optical axis of the image sensor of the mobile device. This one is deformed according to the position of the camera because of its virtual projection on the table.
  • the target object projected on the table is an ellipse, or other two-dimensional geometric object. It is also necessary to determine the intersections between the direction given by the optical axis of the camera with the three-dimensional virtual objects placed on the table in order to be able to perform actions on these three-dimensional objects. Finally, it is important to be able to determine if the virtual target attached to the table partially overlaps a virtual object in order to select it.
  • the various applications concerned by this pointing device are mainly video games and in particular simulation games, racing games and shooting games.
  • a first step is to express in the plane of the table the equation of the ellipse resulting from the intersection of the cone centered on the optical axis with the plane of the table.
  • a is a parameter modifiable by the user
  • Z d is the actual distance between the plane of the table and the camera.
  • the reference Rf of the object followed is identical to that of the table, the xy plane corresponding to the plane of the table and the z axis being directed upwards.
  • the axis of the cone ie the optical axis
  • P c [x c y c zj
  • F [x t y t zj .
  • the intersection I of the axis of the cone with the plane of the table is thus determined as follows, X 1 • X !
  • represents the angle between the projection of the y axes of the reference points linked to the camera and the object followed in the plane of the table.
  • a second mode of movement allows the user to move instinctively in a virtual environment as if the camera was placed at the level of his own eyes.
  • This mode of travel is particularly suitable for first person shooter type games and virtual museum visit type applications.
  • Motion capture is performed from any reference position in three-dimensional space. This reference position can be changed at any time by a simple command. Small movements of the user with respect to this reference position are captured and transmitted to the application. This approach makes it possible to make displacements according to 6 degrees of freedom in a virtual environment.
  • the list of movements associated with these displacements with respect to the reference point can be defined in the following way, - the movement "forward”, respectively "backward”, is identified when the camera approaches, respectively away, from the object followed according to a displacement on the optical axis of the camera; a lateral translation is identified when the camera is moved on the left or on the right along the horizontal axis perpendicular to the optical axis;
  • the elevation movements in the virtual set are identified by a translation upwards or downwards of the camera
  • - look up or down is identified by a rotation of the camera along the horizontal axis perpendicular to the optical axis; and, - tilting the head to the left or right is identified when the camera rotates along the optical axis.
  • a third mode of movement allows the user to control the movement of an object or virtual character seen by the user.
  • Such a mode of travel is particularly suitable for video games and exploration games.
  • the motion capture is performed according to the difference in pose between the reference Rf of the object followed and the reference Rc of the camera.
  • the movements of the virtual object or character are defined as follows,
  • the optical axis of the camera represents the scene as it is perceived by the virtual object or character; - A translation on the horizontal axis perpendicular to the optical axis allows a lateral movement of the object or. virtual character; and,
  • magnification of the scene is determined by the distance between the camera and the tracked object.
  • the rotations around the optical axis and the translations along the vertical axis do not, a priori, have a pre-established function and may correspond to a particular use depending on the type of application targeted.
  • the fourth mode of displacement is that according to which the motion capture is done directly between the pose difference of the reference mark Rc of the camera and the reference mark Rf of the tracked object. This mode aims to inspect a virtual object or virtual scene. It is thus possible to move around this element, to move closer to or away from it. This mode of displacement being very useful and very intuitive, it is particularly intended for educational applications, demonstrative and video games.
  • the system described makes it possible to improve the interactivity of many applications, especially in the field of games.
  • the enrichment of the video stream combined with the controls and the function of the cursor makes it possible, for example, to create an interface adapted to each application.
  • the following example relates to a game of Tamagoshi type comprising different modes such as dressage, food and communication.
  • the animal can do the good when we approach him, to be dizzy when we quickly turn around him and follow us when we turn slowly around him.
  • a key on the keyboard is used to select a food while a camera movement to the animal to launch the 3D synthetic object corresponding to this food. Different foods are available. It is also possible to pet our pet after getting a little closer to him. Different movements of the camera make it react differently. The animal can ask questions and the user can then answer yes or no (no from top to bottom, yes from right to left) and the answers are recorded. A scenario can be created to make the discussion smarter.
  • the facilitator may, during his presentation, freely manipulate a table, in orientation and position, and allow the display of a video stream or virtual information on this table.
  • This table preferably comprises one or more areas of uniform color corresponding to the location where the secondary video stream must be inserted, for example according to the chromakey technique.
  • Virtual objects are inserted relative to the current pose of the array. To facilitate this chart tracking, it can also contain a textured area, for example on the outside or in the center.
  • the facilitator is then able to launch a report from this table: a technician behind the scenes triggers the display of a video stream in the table and the animator "launches" the subject by approaching the board towards the camera .
  • the window for displaying the video stream then leaves the table and replaces the current video stream.
  • An important aspect of this application is that it allows the presenter to be able to move his hand in front of the board and partially obscure the video stream. The animator can thus point to an element of the video stream presented on the board.
  • the image dimensions of the secondary video stream are here greater than those of the area or areas of uniform color to cover. Thus, a slight offset of the secondary video stream presented on the table does not reveal a uniform color area.
  • the use of several cameras makes it possible, for example, to implement applications that offer users the possibility of moving simultaneously and following the same object.
  • An example of such applications is games, for example racing games of cars, planes or motorcycles.
  • the control principle used for a racing game is that corresponding to the first mode of displacement, of "viewfinder" type, or the third mode allowing users to control the movement of virtual objects they see. It allows several players located in the same real environment to compete on a three-dimensional circuit positioned relative to the object tracked in the real scene. Each user controls a gear and the collaborative mode allows different gear to interact within the application. It is also possible to use this feature for board games or board games. From a downloaded and printed platform, it is possible to consider a whole range of collaborative applications.
  • Board games that use a board and pawns can be simulated by three-dimensional virtual objects.
  • the keys of the keyboard can then act on the configuration of the game and to confront other players live.
  • sports games for example tennis type can be implemented.
  • the mode of displacement used is preferably the third mode allowing users to control the movement of virtual objects they see.
  • the orientation of the line of sight of the camera thus gives the orientation of the character in the games.
  • a touch of the keyboard advantageously "hit" in the ball when it comes near the player.
  • the reference position allows you to simply move forward and backward, by translating the camera on its axis of view. For lateral movements, the lateral movements of the user are taken into account.
  • a person skilled in the field of the invention may apply modifications in the foregoing description.

Abstract

The invention relates to a method and to devices for the real-time tracking of one or more substantially planar geometrical objects of a real scene in at least two images of a video stream for an augmented-reality application. After receiving a first image of the video stream (300), the first image including the object to be tracked, the position and orientation of the object in the first image are determined from a plurality of previously determined image blocks (320), each image block of said plurality of image blocks being associated with an exposure of the object to be tracked. The first image and the position and the orientation of the object to be tracked in the first image define a key image. After receiving a second image from the video stream, the position and orientation of the object to be tracked in the second image are evaluated from the key image (300). The second image and the corresponding position and orientation of the object to be tracked can be stored as a key image. If the position and the orientation of the object to be tracked cannot be found again in the second image from the key image, the position and the orientation of this object in the second image are determined from the plurality of image blocks and the related exposures (320).

Description

Procédé et dispositifs de réalité augmentée utilisant un suivi automatique, en temps réel, d'objets géométriques planaires textures, sans marqueur, dans un flux vidéo Augmented reality method and devices using automatic, real-time tracking of textured planar geometric objects without markers in a video stream
La présente invention concerne la combinaison d'images réelles et virtuelles, aussi appelée réalité augmentée, et plus particulièrement un procédé et des dispositifs de réalité augmentée utilisant un suivi automatique, en temps réel, d'objets géométriques planaires textures, sans marqueur, dans un flux vidéo. La réalité augmentée a pour objet d'insérer un ou plusieurs objets virtuels dans les images d'un flux vidéo, Selon le type d'application, la position et l'orientation de ces objets virtuels peuvent être déterminées par des données liées à certains éléments de cette scène, par exemple des coordonnées d'un point particulier de Ia scène tel que la main d'un joueur ou par des données externes à la scène représentée par les images, par exemple des coordonnées issues directement d'un scénario de jeu. Lorsque la position et l'orientation sont déterminées par des données liées à certains éléments de cette scène réelle, il peut être nécessaire de suivre ces éléments en fonction des mouvements de la caméra ou des mouvements de ces éléments eux-mêmes dans la scène. Les opérations de suivi d'éléments et d'incrustation d'objets virtuels dans les images réelles peuvent être exécutées par des calculateurs distincts ou par un même calculateur.The present invention relates to the combination of real and virtual images, also called augmented reality, and more particularly a method and augmented reality devices using automatic real-time tracking of planar geometric textures, without markers, in a video stream. Augmented reality aims to insert one or more virtual objects in the images of a video stream, Depending on the type of application, the position and orientation of these virtual objects can be determined by data related to certain elements. of this scene, for example coordinates of a particular point of the scene such as the hand of a player or by data external to the scene represented by the images, for example coordinates directly from a game scenario. When the position and the orientation are determined by data related to certain elements of this real scene, it may be necessary to follow these elements according to the movements of the camera or the movements of these elements themselves in the scene. The operations of tracking elements and incrustation of virtual objects in the real images can be executed by separate computers or by the same computer.
Il existe plusieurs méthodes de suivi d'éléments dans un flux d'images. Généralement, les algorithmes de suivi d'élément, aussi appelé algorithme de poursuite de cible, utilisent un marqueur qui peut être visuel ou utiliser d'autres moyens tel que des moyens basés sur les radio fréquences ou l'infrarouge. Alternativement, certains algorithmes utilisent une reconnaissance de forme pour suivre un élément particulier dans un flux d'image.There are several ways to track elements in an image stream. Generally, element tracking algorithms, also known as target tracking algorithms, use a marker that can be visual or use other means such as radio frequency or infrared based means. Alternatively, some algorithms use pattern recognition to track a particular element in an image stream.
L'Ecole Polytechnique Fédérale de Lausanne a développé un algorithme de suivi visuelle n'utilisant pas de marqueur et dont l'originalité réside dans Pappariement de points particuliers entre l'image courante d'un flux vidéo avec une image clé, appelée keyframe, obtenue à l'initialisation du système et une image clé mise à jour durant l'exécution du suivi visuel.The Ecole Polytechnique Fédérale de Lausanne has developed a visual tracking algorithm that does not use a marker and whose originality lies in the pairing of particular points between the current image of a stream. video with a keyframe, called a keyframe, obtained at system boot and an updated keyframe while performing visual tracking.
L'objectif de cet algorithme de suivi visuel est de retrouver, dans une scène réelle, la pose, c'est-à-dire la position et l'orientation, d'un objet dont le maillage tridimensionnel est disponible, ou de retrouver les paramètres extrinsèques de position et d'orientation d'une caméra filmant cet objet, immobile, grâce à l'analyse d'image.The objective of this visual tracking algorithm is to find, in a real scene, the pose, that is to say the position and the orientation, of an object whose three-dimensional mesh is available, or to find the Extrinsic position and orientation parameters of a camera filming this object, motionless, thanks to the image analysis.
L'image vidéo courante est comparée avec une ou plusieurs images clés enregistrées pour retrouver un nombre important de correspondances entre ces paires d'images afin d'estimer la pose de l'objet. A cette fin, une image clé est composée de deux éléments : une image capturée du flux vidéo et une pose (orientation et position) de l'objet réel apparaissant dans cette image. Il convient de distinguer les images clés « hors ligne », ou off Une, des images clés « en ligne », ou on Une. Les images clés hors ligne sont des images extraites du flux vidéo dans lesquelles l'objet à suivre a été placé manuellement grâce à l'utilisation d'un dispositif de pointage tel qu'une souris ou à l'aide d'un outil de réglage tel qu'un Pocket Dial commercialisé par la société Doepfer. Les images clés hors ligne caractérisent de préférence la pose d'un même objet dans plusieurs images. Elles sont crées et enregistrées « hors ligne », c'est-à-dire hors du régime permanent de l'application. Les images clé « en ligne » sont mémorisées dynamiquement durant l'exécution de programme de suivi. Elle sont calculées lorsque l'erreur, c'est-à-dire la distance entre les appariements des points d'intérêts, est faible. Les images clés en ligne remplacent les images clés hors ligne utilisées pour initialiser l'application. Leur utilisation vise à réduire le décalage, aussi appelé dérive, qui peut devenir important lorsque l'on s'éloigne trop de la position relative initiale entre la caméra et l'objet. L'apprentissage de nouvelles images clés en ligne a aussi pour résultat de rendre l'application plus robuste aux variations de lumière extérieure et aux variations de colorimétries des caméras. Elles ont cependant le désavantage d'introduire un effet de « vibrations » sur la pose de l'objet dans le temps. Lors de l'apprentissage d'une nouvelle image clé en ligne, celle-ci vient remplacer l'image clé précédente, hors ligne ou en ligne. Elle est utilisée comme image clé courante.The current video image is compared with one or more keyframes recorded to find a large number of matches between these pairs of images to estimate the pose of the object. To this end, a keyframe is composed of two elements: a captured image of the video stream and a pose (orientation and position) of the real object appearing in this image. Keyframes should be "offline", off-line, or "on-line" keyframes, or on one. Offline keyframes are images extracted from the video stream in which the object to be tracked has been placed manually through the use of a pointing device such as a mouse or using an adjustment tool such as a Pocket Dial marketed by the company Doepfer. The offline keyframes preferably characterize the pose of the same object in several images. They are created and saved "offline", that is to say out of the permanent regime of the application. "Online" keyframes are dynamically stored during trace program execution. They are calculated when the error, that is the distance between the points of interest pairings, is small. Online keyframes replace the offline keyframes used to initialize the application. Their use aims to reduce the shift, also called drift, which can become important when one moves too far from the initial relative position between the camera and the object. Learning new online keyframes also results in more robust application to external light variations and camera color variations. However, they have the disadvantage of introducing a "vibration" effect on the pose of the object over time. When learning a new online keyframe, this one just replace the previous keyframe, offline or online. It is used as a common keyframe.
Chaque image clé, hors ligne ou en ligne, comprend une image dans laquelle l'objet est présent et une pose pour caractériser l'emplacement de cet objet ainsi qu'un certain nombre de points d'intérêts qui caractérisent l'objet dans l'image. Les points d'intérêts sont, par exemple, construits à partir d'un détecteur de points de Harris et représentent des emplacements avec des fortes valeurs de gradients directionnels dans l'image.Each keyframe, offline or online, includes an image in which the object is present and a pose to characterize the location of that object as well as a number of points of interest that characterize the object in the object. picture. Points of interest are, for example, constructed from a Harris point detector and represent locations with high values of directional gradients in the image.
Avant d'initialiser l'application, il est nécessaire de déterminer une ou plusieurs images clés hors ligne. Il s'agit généralement d'images extraites du flux vidéo, qui contiennent l'objet à traquer, et auxquelles sont associées une position et une orientation du modèle tridimensionnel de ce objet. Pour cela, un opérateur fait correspondre visuellement un modèle filaire à l'objet réel. La phase de préparation manuelle consiste donc à retrouver une première estimation de la pose de l'objet dans une image extraite du flux vidéo, ce qui revient à formaliser la transformation affine initiale Tp→c , matrice de passage entre le repère associé à l'objet suivi vers le repère attaché à la caméra. La transformation affine initiale peut se décomposer selon une première transformation ro→c relative à une position initiale de l'objet, par exemple au centre de l'écran, c'est-à-dire une transformation liée au changement de repère entre le repère de la caméra et le repère de l'objet, et en une seconde transformation Tp→0 relative au déplacement et à la rotation de l'objet de sa position initiale au centre de l'écran vers la position et l'orientation dans lesquelles se trouve réellement l'objet sur l'image clé, où Tp→c = Tp0 - T0^0. Si les valeurs α, β et γ correspondent à la translation de l'objet de sa position initiale au centre de l'image vers sa position dans l'image clé et si les valeurs θ, φ et φ correspondent à la rotation de l'objet de sa position initiale au centre de l'image vers sa position dans l'image clé selon les axes x, y et z, la transformation Tp→0 peut s'exprimer alors sous la forme de la matrice suivante,
Figure imgf000006_0001
Before initializing the application, it is necessary to determine one or more keyframes offline. These are generally images extracted from the video stream, which contain the object to be tracked, and which are associated with a position and an orientation of the three-dimensional model of this object. For this, an operator visually matches a wired model to the actual object. The manual preparation phase thus consists in finding a first estimate of the pose of the object in an image extracted from the video stream, which amounts to formalizing the initial affine transformation T p → c , the transition matrix between the reference associated with the image. object followed to the marker attached to the camera. The initial affine transformation can be decomposed according to a first transformation r o → c relative to an initial position of the object, for example in the center of the screen, that is to say a transformation linked to the change of reference between the reference of the camera and the reference of the object, and in a second transformation T p → 0 relative to the movement and rotation of the object from its initial position in the center of the screen to the position and the orientation in which is actually the object on the keyframe, where T p → c = T p0 - T 0 ^ 0 . If the values α, β and γ correspond to the translation of the object from its initial position in the center of the image to its position in the key image and if the values θ, φ and φ correspond to the rotation of the image. object from its initial position in the center of the image to its position in the keyframe along the x, y and z axes, the transformation T p → 0 can then be expressed in the form of the following matrix,
Figure imgf000006_0001
-sinç>cosι9 cosζpcos# sin6> β p $VΑ(ps,m.θcosφ -Q,o&φύnφ -cos^sin#cos^ -sin^sin^ cos#cos^ γcosι9 cosζpcos # sin6> β p $ VΑ (ps, m.θcosφ -Q, o & φύnφ -cos ^ sin # cos ^ -sin ^ sin ^ cos # cos ^ γ
0 0 0 10 0 0 1
L'utilisation de ce modèle permet d'établir le lien entre les coordonnées des points du modèle tridimensionnel de l'objet exprimées dans le repère de l'objet et les coordonnées de ces points dans le repère de la caméra. Lors de l'initialisation de l'application, les images clés hors ligne sont traitées afin de positionner des points d'intérêts en fonction des paramètres choisis lors du lancement de l'application. Ces paramètres sont spécifiés de façon empirique pour chaque type d'utilisation de l'application et permettent de moduler le noyau de détection d'appariement et d'obtenir une meilleure qualité dans l'estimation de la pose de l'objet selon les caractéristiques de l'environnement réel. Ensuite, lorsque l'objet réel dans l'image courante est dans une pose qui est proche de la pose de ce même objet dans une des images clé hors lignes, le nombre d'appariements devient important. Il est alors possible de retrouver la transformation affine permettant de caler le modèle tridimensionnel virtuel de l'objet sur l'objet réel.The use of this model makes it possible to establish the link between the coordinates of the points of the three-dimensional model of the object expressed in the reference of the object and the coordinates of these points in the reference of the camera. During the initialization of the application, the offline keyframes are processed to position points of interest according to the parameters chosen at the launch of the application. These parameters are empirically specified for each type of application use and allow the matching detection core to be modulated and to obtain a better quality in estimating the pose of the object according to the characteristics of the application. the real environment. Then, when the real object in the current image is in a pose that is close to the pose of the same object in one of the offline keyframes, the number of matches becomes important. It is then possible to find the affine transformation allowing to fix the virtual three-dimensional model of the object on the real object.
Lorsqu'une telle correspondance a été trouvée, l'algorithme passe en régime permanent. Les déplacements de l'objet sont suivis d'une trame sur l'autre et les dérives éventuelles sont compensées grâce aux informations contenues dans l'image clé hors ligne retenue lors de l'initialisation et dans l'image clé en ligne calculée lors de l'exécution de l'application.When such a match has been found, the algorithm goes into steady state. The displacements of the object are followed by one frame on the other and any drifts are compensated thanks to the information contained in the offline key image retained during the initialization and in the online key image calculated during the execution of the application.
L'application de suivi combine deux types d'algorithme : une détection de points d'intérêts, par exemple une version modifiée de détection de points de Harris, et une technique de reprojection des points d'intérêts positionnés sur le modèle tridimensionnel vers l'image plane. Cette reprojection permet de prévoir le résultat d'une transformation spatiale d'une trame sur l'autre. Ces deux algorithmes combinés permettent un suivi robuste d'un objet selon six degrés de liberté.The tracking application combines two types of algorithms: a detection of points of interest, for example a modified version of Harris point detection, and a reprojection technique of the points of interest positioned on the three-dimensional model towards the flat image. This reprojection makes it possible to predict the result of a spatial transformation from one frame to the other. These two combined algorithms allow robust tracking of an object with six degrees of freedom.
D'une façon générale, un point p de l'image est la projection d'un point P de la scène réelle avec p ~ P, > PE -Tp→c - P où P| est la matrice des paramètres intrinsèques de la caméra, c'est-à-dire sa focale, le centre de l'image et le décalage, PE est la matrice des paramètres extrinsèques de la caméra, c'est-à-dire la position de la caméra dans l'espace réelle, et Tp→c est la matrice de passage entre le repère associé à l'objet suivi vers le repère attaché à la caméra. Seule la position relative de l'objet par rapport à la position relative de la caméra est ici considérée, ce qui revient à placer le repère de la scène réelle au niveau du centre optique de la caméra. Il en résulte la relation P ~ P, - Tp→c - P . La matrice Pi étant connue, le problème de suivi consiste donc à déterminer la matrice Tp→c , c'est à dire la position et l'orientation de l'objet par rapport au repère de la caméra.In a general way, a point p of the image is the projection of a point P of the real scene with p ~ P,> P E -T p → c - P where P | is the matrix of intrinsic parameters of the camera, ie its focal length, the center of the image and the offset, PE is the matrix of the extrinsic parameters of the camera, ie the position of the camera in the real space, and T p → c is the matrix of passage between the reference associated with the object followed towards the marker attached to the camera. Only the relative position of the object relative to the relative position of the camera is considered here, which amounts to placing the reference of the real scene at the optical center of the camera. This results in the relation P ~ P, - T p → c - P. Since the matrix Pi is known, the tracking problem therefore consists of determining the matrix T p → c , ie the position and the orientation of the object with respect to the reference of the camera.
Cependant, il est important de noter que lorsque la mesure d'erreur devient trop importante, c'est-à-dire lorsque le nombre d'appariements entre l'image clé courante et l'image courante devient trop faible, le suivi subit un décrochage (on considère que l'estimation de la pose de l'objet n'est plus suffisamment cohérente) et une nouvelle phase d'initialisation est nécessaire.However, it is important to note that when the error measurement becomes too large, that is, when the number of matches between the current keyframe and the current image becomes too small, the tracking is stall (we consider that the estimate of the pose of the object is no longer sufficiently consistent) and a new initialization phase is necessary.
La pose d'un objet est estimée selon les correspondances entre les points d'intérêts de l'image courante issue du flux vidéo, les points d'intérêts de l'image clé courante et les points d'intérêts de l'image précédente issue du flux vidéo. Ces opérations sont appelées phase d'appariement. A partir des corrélations les plus significatives, le logiciel calcule la pose de l'objet correspondant Ie mieux aux observations.The pose of an object is estimated according to the correspondences between the points of interest of the current image resulting from the video stream, the points of interest of the current key image and the points of interest of the previous image. of the video stream. These operations are called the matching phase. From the most significant correlations, the software calculates the pose of the object corresponding best to the observations.
Les figures 1 et 2 illustrent cette application de suivi. Alternativement, lors de la phase de création d'images clé hors lignes, la pose d'un objet peut être déterminée selon la configuration de ses points caractéristiques. Pour cela, des blocs d'images centrés sur des points d'intérêts sont générés à partir d'images clés hors ligne selon des transformations affines ou des déformations homographiques. Ces blocs d'images ainsi que les blocs d'images obtenus après transformation sont appelés patches. Un patch peut ici être défini comme un bloc d'image comprenant un point d'intérêt et auquel est associé la pose de l'objet correspondant. La pose de chaque patch est calculée selon la transformation effectuée pour obtenir le bloc d'image correspondant. Les patches sont de préférence arrangés selon un arbre de décision pour limiter les temps de calcul durant l'exécution de l'application de suivi. Ainsi, pour chaque image issue d'un flux vidéo, l'application de suivi d'objet détermine certains points d'intérêts de cette image et compare les blocs d'image centrés sur ces points avec les patches préalablement créés pour déterminer la pose de l'objet dans l'image. Cependant, cette solution induit également un effet de « vibration » sur la pose de l'objet dans le temps.Figures 1 and 2 illustrate this tracking application. Alternatively, during the phase of creation of keyframes offline, the pose of an object can be determined according to the configuration of its characteristic points. For this, image blocks centered on points of interest are generated from offline keyframes according to affine transformations or homographic deformations. These blocks of images as well as the blocks of images obtained after transformation are called patches. A patch can here be defined as an image block comprising a point of interest and which is associated with the pose of the corresponding object. The pose of each patch is calculated according to the transformation performed to obtain the corresponding image block. The patches are preferably arranged according to a decision tree to limit the calculation times during the execution of the tracking application. Thus, for each image resulting from a video stream, the object tracking application determines certain points of interest of this image and compares the image blocks centered on these points with the previously created patches to determine the pose of the image. the object in the image. However, this solution also induces a "vibration" effect on the pose of the object over time.
Les solutions proposées de suivi d'objets pour les applications de réalité augmentée sont souvent issues de la recherche et ne prennent pas en compte les contraintes d'implémentation de systèmes commerciaux. En particulier, les problèmes liés à la robustesse, à la possibilité lancer rapidement l'application sans nécessiter une phase manuelle d'initialisation, à la détection d'erreurs de type « décrochage » (lorsque l'objet à suivre est « perdu ») et à la réinitialisation automatique et temps réel après de telles erreurs sont souvent laissés de côté.Proposed object tracking solutions for augmented reality applications often come from research and do not take into account the constraints of implementing commercial systems. In particular, the problems related to the robustness, the ability to quickly launch the application without requiring a manual phase of initialization, the detection of errors of the "stall" type (when the object to follow is "lost") and automatic and real-time reset after such errors are often left out.
L'invention permet de résoudre au moins un des problèmes exposés précédemment.The invention solves at least one of the problems discussed above.
L'invention a ainsi pour objet un procédé pour suivre en temps réel au moins un objet géométrique sensiblement plan d'une scène réelle dans aux moins deux images sensiblement consécutives d'au moins un flux vidéo, dans une application de réalité augmentée, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes,The invention thus relates to a method for tracking in real time at least one substantially planar geometric object of a real scene in at least two substantially consecutive images of at least one video stream, in an augmented reality application, this method characterized in that it comprises the following steps,
- réception d'une première image dudit au moins un flux vidéo, ladite première image comprenant ledit au moins un objet à suivre ; - détermination de la position et de l'orientation dudit au moins un objet à suivre dans ladite première image à partir d'une pluralité de blocs d'image préalablement déterminés, chaque bloc d'image de ladite pluralité de blocs d'image étant associé à une pose dudit au moins un objet à suivre, ladite première image et la position et l'orientation dudit au moins un objet à suivre dans ladite première image étant appelées image clé ;receiving a first image of said at least one video stream, said first image comprising said at least one object to follow; determining the position and the orientation of said at least one object to be followed in said first image from a plurality of predetermined image blocks, each image block of said plurality of image blocks being associated at a pose of said at least one object to follow, said first image and the position and the orientation of said at least one object to be followed in said first image being called a key image;
- réception d'une seconde image dudit au moins un flux vidéo, ladite seconde image comprenant ledit au moins un objet à suivre ; et, - évaluation de la position et de l'orientation dudit au moins un objet à suivre dans ladite seconde image à partir de ladite image clé.receiving a second image of said at least one video stream, said second image comprising said at least one object to follow; and, evaluating the position and orientation of said at least one object to be followed in said second image from said key image.
Le procédé selon l'invention permet ainsi d'automatiser l'initialisation d'une application de réalité augmentée utilisant un suivi automatique, en temps réel, d'objets géométriques planaires textures, sans marqueur, dans un flux vidéo. Ce procédé permet également de réinitialiser l'application en cas de décrochage, c'est-à-dire lorsque l'objet à suivre est perdu.The method according to the invention thus makes it possible to automate the initialization of an augmented reality application using automatic tracking, in real time, of textured planar geometric objects, without markers, in a video stream. This method also resets the application in case of stall, that is to say when the object to follow is lost.
Selon un mode de réalisation particulier, les étapes de réception d'une image et d'évaluation de la position et de l'orientation dudit au moins un objet à suivre dans ladite image reçue sont répétés pour des images dudit au moins un flux vidéo suivant ladite seconde image, afin de suivre ledit au moins un objet dans une séquence d'images.According to a particular embodiment, the steps of receiving an image and evaluating the position and orientation of said at least one object to be followed in said received image are repeated for images of said at least one next video stream. said second image, in order to follow said at least one object in a sequence of images.
De façon avantageuse, la position et l'orientation dudit au moins un objet à suivre dans image reçue sont évaluées à partir de ladite pluralité de blocs d'image lorsque la position et l'orientation dudit au moins un objet à suivre ne peuvent pas être évaluées dans ladite image reçue à partir de ladite image clé afin de permettre une réinitialisation automatique lorsque l'objet à suivre est perdu. Toujours selon un mode de réalisation particulier, les valeurs de ladite image clé sont remplacées par une image reçue et par la position et l'orientation évaluées dudit objet à suivre dans ladite image reçue pour améliorer le suivi dudit au moins un objet à suivre.Advantageously, the position and orientation of said at least one object to be tracked in received image are evaluated from said plurality of image blocks when the position and orientation of said at least one object to be tracked can not be evaluated in said received image from said keyframe to allow automatic reset when the object to be tracked is lost. Still according to a particular embodiment, the values of said keyframe are replaced by a received image and the evaluated position and orientation of said object to follow in said received image to improve the tracking of said at least one object to follow.
Toujours selon un mode de réalisation particulier, le procédé comprend en outre une étape d'évaluation de la pose du capteur d'image dont est issu ledit au moins un flux vidéo dans un repère lié à ladite scène réelle à partir de la position évaluée dudit au moins un objet à suivre. Avantageusement, le procédé comprend en outre une étape de détermination du mouvement dudit capteur d'image. Ce mode de réalisation permet de suivre le déplacement dudit capteur d'image lorsque ledit au moins un objet à suivre est immobile dans la scène observée par ledit capteur d'image. Selon un mode de réalisation particulier, ledit au moins un objet à suivre comprend une zone de couleur uniforme adaptée à mettre en œuvre la technologie de chromakey permettant d'insérer un élément dans la zone de couleur uniforme de l'image. Toujours selon un mode de réalisation particulier, ledit au moins un objet à suivre est suivi simultanément dans au moins deux flux vidéo distincts pour permettre, notamment, la mise en œuvre d'applications collaboratives.Still according to a particular embodiment, the method further comprises a step of evaluating the installation of the image sensor from which said at least one video stream originates in a frame linked to said real scene from the evaluated position of said at least one object to follow. Advantageously, the method further comprises a step of determining the movement of said image sensor. This embodiment makes it possible to follow the displacement of said image sensor when said at least one object to be followed is immobile in the scene observed by said image sensor. According to a particular embodiment, said at least one object to be followed comprises a uniform color zone adapted to implement chromakey technology for inserting an element into the uniform color area of the image. Still according to a particular embodiment, said at least one object to follow is simultaneously monitored in at least two separate video streams to allow, in particular, the implementation of collaborative applications.
Toujours selon un mode de réalisation particulier, le procédé comprend en outre une étape d'insertion d'au moins un élément dans au moins l'une desdites images reçues selon la position et l'orientation évaluées dudit au moins un objet à suivre dans ladite image reçue, ledit au moins un élément étant choisi dans une liste comprenant au moins une représentation d'au moins un objet virtuel et au moins un second flux vidéo, afin d'enrichir l'image issue dudit capteur d'images.Still according to a particular embodiment, the method further comprises a step of insertion of at least one element into at least one of said received images according to the evaluated position and orientation of said at least one object to be followed in said image received, said at least one element being selected from a list comprising at least one representation of at least one virtual object and at least one second video stream, in order to enrich the image issuing from said image sensor.
L'invention a également pour objet un programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé décrit précédemment.The invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method described above.
L'invention a aussi pour objet un moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé décrit précédemment.The invention also relates to a means for storing information, removable or not, partially or completely readable by a computer or a microprocessor comprising code instructions of a computer program for the execution of each of the steps of the previously described method.
L'invention a aussi pour objet un dispositif pour suivre en temps réel au moins un objet géométrique sensiblement plan d'une scène réelle dans aux moins deux images sensiblement consécutives d'au moins un flux vidéo, dans une application de réalité augmentée, ce dispositif étant caractérisé en ce qu'il comprend les moyens suivants,The invention also relates to a device for tracking in real time at least one substantially planar geometric object of a real scene in at least two substantially consecutive images of at least one video stream, in an augmented reality application, this device characterized in that it comprises the following means,
- moyens pour recevoir une première image dudit au moins un flux vidéo, ladite première image comprenant ledit au moins un objet à suivre ;means for receiving a first image of said at least one video stream, said first image comprising said at least one object to follow;
- moyens pour mémoriser ladite première image dans des premiers moyens de stockage ; - moyens pour déterminer la position et l'orientation dudit au moins un objet à suivre dans ladite première image à partir d'une pluralité de blocs d'image préalablement mémorisés dans des seconds moyens de stockage, chaque bloc d'image de ladite pluralité de blocs d'image étant associé à une pose dudit au moins un objet à suivre, ladite pose étant mémorisée dans lesdits seconds moyens de stockage, la position et l'orientation dudit au moins un objet à suivre dans ladite première image étant mémorisée dans lesdits premiers moyens de stockages ;means for storing said first image in first storage means; means for determining the position and orientation of said at least one object to be followed in said first image from a plurality of image blocks previously stored in second storage means, each image block of said plurality of image blocks being associated with a laying of said at least one object to follow, said pose being stored in said second storage means, the position and the orientation of said at least one object to be followed in said first image being stored in said first storage means;
- moyens pour recevoir une seconde image dudit au moins un flux vidéo, ladite seconde image comprenant ledit au moins un objet à suivre ; et,means for receiving a second image of said at least one video stream, said second image comprising said at least one object to be tracked; and,
- moyens pour évaluer la position et l'orientation dudit au moins un objet à suivre dans ladite seconde image à partir des données mémorisées dans lesdits premiers moyens de stockage.means for evaluating the position and orientation of said at least one object to be followed in said second image from the data stored in said first storage means.
Le dispositif selon l'invention permet ainsi d'automatiser l'initialisation ou la réinitialisation d'une application de réalité augmentée utilisant un suivi automatique, en temps réel, d'objets géométriques planaires textures, sans marqueur, dans un flux vidéo.The device according to the invention thus makes it possible to automate the initialization or the reinitialization of an augmented reality application using an automatic tracking, in real time, of textured planar geometrical objects, without marker, in a video stream.
Selon un mode de réalisation particulier, le dispositif comprend en en outre des moyens pour déterminer si la position et l'orientation dudit au moins un objet à suivre peuvent être évaluées dans ladite seconde image à partir des données mémorisées dans lesdits premiers moyens de stockage, lesdits moyens pour déterminer la position et l'orientation dudit au moins un objet à suivre dans ladite première image à partir des données mémorisées dans lesdits seconds moyens de stockage étant adaptés à évaluer la position et l'orientation dudit au moins un objet à suivre dans ladite seconde image à partir des données mémorisées dans lesdits seconds moyens de stockage. Le dispositif selon l'invention permet ainsi de réinitialiser automatiquement l'application lorsque l'objet à suivre est perdu.According to a particular embodiment, the device further comprises means for determining whether the position and orientation of said at least one object to be tracked can be evaluated in said second image from the data stored in said first storage means, said means for determining the position and orientation of said at least one object to be tracked in said first image from the data stored in said second storage means being adapted to evaluate the position and orientation of said at least one object to be tracked in said second image from the data stored in said second storage means. The device according to the invention thus makes it possible to automatically reset the application when the object to be followed is lost.
Toujours selon un mode de réalisation particulier, le dispositif comprend en outre des moyens pour mémoriser ladite seconde image et la position et l'orientation dudit au moins un objet à suivre dans ladite seconde image dans lesdits premiers moyens de stockage afin d'améliorer le suivi dudit au moins un objet.Still according to a particular embodiment, the device further comprises means for storing said second image and the position and orientation of said at least one object to be followed in said second image. image in said first storage means to improve the tracking of said at least one object.
Toujours selon un mode de réalisation particulier, le dispositif comprend en outre des moyens de transformation adaptés à déterminer la pose dudit au moins un objet à suivre ou du capteur d'images dont est issu ledit au moins un flux vidéo dans l'un des repères liés à ladite scène réelle, audit au moins un objet à suivre ou audit capteur d'image afin de déterminer les mouvements relatif dudit au moins un objet à suivre au dudit capteur d'images dans ladite scène réelle. Selon un mode de réalisation particulier, le dispositif comprend en outre des moyens pour insérer au moins un élément dans au moins l'une desdites images reçues selon la position et l'orientation évaluées dudit au moins un objet à suivre dans ladite image reçue, ledit au moins un élément étant choisi dans une liste comprenant au moins une représentation d'au moins un objet virtuel et au moins un second flux vidéo afin d'enrichir l'image issue dudit capteur d'images.Still according to a particular embodiment, the device further comprises transformation means adapted to determine the laying of said at least one object to follow or the image sensor from which said at least one video stream in one of the markers related to said real scene, auditing at least one object to follow or said image sensor to determine the relative movements of said at least one object to follow at said image sensor in said real scene. According to a particular embodiment, the device further comprises means for inserting at least one element into at least one of said received images according to the evaluated position and orientation of said at least one object to be followed in said received image, said at least one element being chosen from a list comprising at least one representation of at least one virtual object and at least one second video stream in order to enrich the image issuing from said image sensor.
D'autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d'exemple non limitatif, au regard des dessins annexés dans lesquels : - la figure 1 représente schématiquement les principes essentiels de l'application de suivi d'objet développé par l'Ecole Polytechnique Fédérale de Lausanne ;Other advantages, aims and features of the present invention appear from the following detailed description, given by way of non-limiting example, with reference to the accompanying drawings in which: - Figure 1 schematically represents the essential principles of the application object tracking developed by the Swiss Federal Institute of Technology in Lausanne;
- la figure 2 illustre certaines étapes du procédé pour déterminer la pose d'un objet dans une image d'un flux vidéo à partir d'images clés et de l'image précédente du flux vidéo ;FIG. 2 illustrates certain steps of the method for determining the placing of an object in an image of a video stream from key images and the previous image of the video stream;
- la figure 3 illustre le schéma général d'un algorithme de suivi d'objet selon l'invention ;FIG. 3 illustrates the general diagram of an object tracking algorithm according to the invention;
- la figure 4 montre un exemple d'appareil permettant d'implémenter au moins partiellement l'invention ; - la figure 5, comprenant les figures 5a et 5b, illustre deux exemples d'architectures pouvant être utilisées lorsqu'un appareil mobile de capture et de visualisation d'images est utilisé ; - la figure 6 présente un exemple d'utilisation d'un appareil mobile de capture et de visualisation d'images pour une application de réalité augmentée avec suivi d'objet ; et,FIG. 4 shows an example of an apparatus making it possible to implement the invention at least partially; FIG. 5, comprising FIGS. 5a and 5b, illustrates two examples of architectures that can be used when a mobile device for capturing and displaying images is used; FIG. 6 shows an example of use of a mobile device for capturing and displaying images for an augmented reality application with object tracking; and,
- la figure 7 montre comment un appareil mobile de capture et de visualisation d'images peut être utilisé comme un curseur ou un capteur de mouvement à six degrés de liberté.- Figure 7 shows how a mobile device for capturing and viewing images can be used as a cursor or a motion sensor with six degrees of freedom.
Le procédé selon l'invention a en particulier pour objet l'automatisation des phases d'initialisation et de réinitialisation après un décrochage de l'application de suivi d'objet sur des images issues d'un flux vidéo. La figure 3 illustre le schéma global de l'application de suivi d'objet mettant en œuvre l'invention.The method according to the invention particularly relates to the automation of the initialization and reset phases after a stall of the object tracking application on images from a video stream. Figure 3 illustrates the overall diagram of the object tracking application embodying the invention.
Comme représenté sur la figure 3, l'application de suivi d'objet comprend trois phases : une phase de préparation (I), une phase d'initialisation ou de réinitialisation (II) et une phase de suivi d'objet (III). La phase de préparation (I) consiste principalement à extraire les points caractéristiques de l'objet à suivre afin de préparer un arbre de recherche. Après avoir acquis une image texturée de l'objet (étape 300), les points d'intérêts de l'image sont retrouvés (étape 305) selon un algorithme classique tel que par exemple un détecteur de points de Harris. Une image texturée de l'objet est de préférence une image sur laquelle figure l'objet seul, telle qu'une image de synthèse ou une image sur laquelle l'objet a été détouré et le fond supprimé.As shown in FIG. 3, the object tracking application comprises three phases: a preparation phase (I), an initialization or reset phase (II) and an object tracking phase (III). The preparation phase (I) consists mainly in extracting the characteristic points of the object to be followed in order to prepare a search tree. After having acquired a textured image of the object (step 300), the points of interest of the image are found (step 305) according to a conventional algorithm such as for example a Harris point detector. A textured image of the object is preferably an image on which the object alone appears, such as a computer image or an image on which the object has been cut off and the background deleted.
Lorsque les points d'intérêts de l'objet ont été déterminés, l'application extrait les blocs d'images centrés sur ces points afin de générer des patches. Les patches sont générés (étape 310), par exemple, par des transformations aléatoires basées sur des translations, des rotations et des changements d'échelle. Par exemple, autour du point d'intérêt m0 de l'image, il est possible d'effectuer la transformation affine définie par la relation suivante, {n - n0)= H(m - m0)+ T(t] ,t2) où le point n est la transformation du point m, T(ti,t2) correspond à une translation autour du point m0, ti étant une petite translation verticale dans l'image et t2 étant une petite translation horizontale et H = Rα - R - S(X17A7)- Rβ . Ra et Rβ ' correspondent à des rotations selon deux axes orthogonaux et 5(/I1 ,/I2) représente le changement d'échelle. Les paramètres à faire varier aléatoirement sont donc α, β, λi, Xz, ti et \z.When the points of interest of the object have been determined, the application extracts the image blocks centered on these points in order to generate patches. Patches are generated (step 310), for example, by random transformations based on translations, rotations, and scale changes. For example, around point of interest m 0 of the image, it is possible to perform the affine transformation defined by the following relation, {n - n 0 ) = H (m - m 0 ) + T (t ) , t 2 ) where the point n is the transformation of the point m, T (ti, t 2 ) corresponds to a translation around the point m 0 , t i being a small vertical translation in the image and t 2 being a small horizontal translation and H = R α - R ~ ι - S (X 17 A 7 ) - R β . R a and R β ' correspond to rotations along two orthogonal axes and 5 (/ I 1 , / I 2 ) represents the change of scale. The parameters to be randomly varied are therefore α, β, λ 1, X 1, t 1 and z.
A chaque patch est associé une pose qui est calculée selon la transformation appliquée au bloc d'image pour obtenir le patch correspondant. Un arbre de recherche est ensuite construit à partir des patches générés (étape 315).Each patch is associated with a pose that is calculated according to the transformation applied to the image block to obtain the corresponding patch. A search tree is then constructed from the generated patches (step 315).
Lors de la phase d'initialisation (II), une image clé hors ligne est créée à partir d'une première image issue du flux vidéo (étape 320). Cette première image issue du flux vidéo est mémorisée pour être utilisée comme image clé hors ligne pour le suivi de l'objet dans les images suivantes issues du flux vidéo. Pour déterminer la pose de l'objet dans cette première image, plusieurs points d'intérêts sont déterminés, par exemple les p points de plus fort gradient directionnel. Le bloc d'image défini autour de chacun de ces points est comparé aux patches déterminés durant la phase de préparation, selon l'arbre de recherche. La taille de ces blocs d'images est de préférence égale à celle des patches. La pose associée à chacun des patches les plus similaires des blocs d'image est utilisée pour déterminer la pose de l'objet dans l'image. La pose de l'objet peut être définie comme la moyenne des poses de chaque patch sélectionné, c'est-à-dire de chaque patch le plus similaire à chacun des blocs d'images, ou selon un mécanisme de vote. La pose ainsi déterminée est associée à l'image issue du flux vidéo pour former l'image clé hors ligne. Cette image clé hors ligne est ensuite utilisée pour initialiser l'application de suivi (étape 325). Ce procédé est rapide est permet une initialisation instantanée. Lorsque la pose de l'objet est déterminée dans la première image est que l'image clé courante est sélectionnée (image clé hors ligne déterminée durant la phase d'initialisation), l'application de suivi peut retrouver l'objet (phase III) dans les images successives du flux vidéo selon le mécanisme de suivi évoqué précédemment (étape 330). Selon ce mécanisme, les déplacements de l'objet (déplacement de l'objet dans la scène ou déplacement induit par le mouvement de la caméra dans la scène) sont suivis d'une trame sur l'autre et les dérives éventuelles sont compensées grâce aux informations contenues dans l'image clé hors ligne retenue lors de l'initialisation et, éventuellement, dans l'image clé en ligne calculée lors de l'exécution de l'application. L'application de suivi combine avantageusement des algorithmes de détection de points d'intérêts et de reprojection des points d'intérêts positionnés sur le modèle tridimensionnel vers l'image plane pour prévoir le résultat d'une transformation spatiale d'une trame sur l'autre. La pose de l'objet est ainsi estimée selon les correspondances entre les points d'intérêts de l'image courante issue du flux vidéo, les points d'intérêts de l'image clé courante et les points d'intérêts de l'image précédente issue du flux vidéo, c'est- à-dire selon l'appariement des points d'intérêts issus de ces images.During the initialization phase (II), an offline key image is created from a first image from the video stream (step 320). This first image from the video stream is stored for use as an offline keyframe for tracking the object in subsequent images from the video stream. To determine the pose of the object in this first image, several points of interest are determined, for example the p points with the strongest directional gradient. The image block defined around each of these points is compared to the patches determined during the preparation phase, according to the search tree. The size of these image blocks is preferably equal to that of the patches. The pose associated with each of the most similar patches of the image blocks is used to determine the pose of the object in the image. The pose of the object can be defined as the average of the poses of each selected patch, that is to say of each patch most similar to each of the blocks of images, or according to a voting mechanism. The pose thus determined is associated with the image from the video stream to form the key image offline. This offline keyframe is then used to initialize the tracking application (step 325). This process is fast and allows instant initialization. When the pose of the object is determined in the first image is that the current keyframe is selected (keyframe offline determined during the initialization phase), the tracking application can find the object (phase III) in the successive images of the video stream according to the tracking mechanism mentioned above (step 330). According to this mechanism, the displacements of the object (displacement of the object in the scene or displacement induced by the movement of the camera in the scene) are followed by a frame on the other and any drifts are compensated thanks to the news contained in the offline keyframe retained during initialization and, optionally, in the calculated online keyframe when running the application. The tracking application advantageously combines algorithms for detecting points of interest and reprojection of the points of interest positioned on the three-dimensional model towards the plane image to predict the result of a spatial transformation of a frame on the other. The pose of the object is thus estimated according to the correspondences between the points of interest of the current image resulting from the video stream, the points of interest of the current key image and the points of interest of the previous image. resulting from the video stream, that is to say according to the pairing of the points of interest from these images.
Lorsque la mesure d'erreur devient trop importante, c'est-à-dire lorsque le nombre d'appariement entre l'image clé courante et l'image courante devient trop faible, le suivi subit un décrochage et une phase de réinitialisation est nécessaire. La phase de réinitialisation est similaire à la phase d'initialisation décrite précédemment (étapes 320 et 325). Durant cette phase, l'image courante du flux vidéo est utilisée pour former la nouvelle image clé hors ligne dont la pose est déterminée selon ses points d'intérêts et l'arbre de recherche comprenant les patches déterminés durant la phase de préparation. L'image clé hors ligne est donc une image clé hors ligne dynamique qui est mise à jour automatiquement lorsque l'application de suivi décroche.When the error measurement becomes too large, i.e. when the number of matches between the current keyframe and the current image becomes too small, the tracking is stalled and a reset phase is necessary. . The reset phase is similar to the initialization phase described above (steps 320 and 325). During this phase, the current image of the video stream is used to form the new offline keyframe whose pose is determined according to its points of interest and the search tree including patches determined during the preparation phase. The offline keyframe is therefore a dynamic offline keyframe that is updated automatically when the tracking application picks up.
La figure 4 représente schématiquement un appareil adapté à mettre en œuvre l'invention. L'appareil 400 est par exemple un micro-ordinateur, une station de travail ou une console de jeux.Figure 4 shows schematically an apparatus adapted to implement the invention. The device 400 is for example a microcomputer, a workstation or a game console.
L'appareil 400 comporte de préférence un bus de communication 402 auquel sont reliés :The device 400 preferably comprises a communication bus 402 to which are connected:
- une unité centrale de traitement ou microprocesseur 404 (CPU, Central Processing Unit) ;a central processing unit or microprocessor 404 (CPU, Central Processing Unit);
- une mémoire morte 406 (ROM, Read OnIy Memory) pouvant comporter le système d'exploitation et des programmes tels que "Prog" ; - une mémoire vive ou mémoire cache 408 (RAM, Random Accessa ROM 406 (ROM, Read OnIy Memory) which may include the operating system and programs such as "Prog"; a random access memory or cache memory 408 (RAM, Random Access
Memory) 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 ;Memory) with registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs;
- une carte d'acquisition vidéo 410 reliée à une caméra 412 ; et,a video acquisition card 410 connected to a camera 412; and,
- une carte graphique 416 reliée à un écran ou à un projecteur 418. Optionnellement, l'appareil 400 peut également disposer des éléments suivants :a graphics card 416 connected to a screen or to a projector 418. Optionally, the apparatus 400 may also have the following elements:
- un disque dur 420 pouvant comporter les programmes "Prog" précités et des données traitées ou à traiter selon l'invention ;a hard disk 420 which may comprise the aforementioned "Prog" programs and data processed or to be processed according to the invention;
- un clavier 422 et une souris 424 ou tout autre dispositif de pointage comme un crayon optique, un écran tactile ou une télécommande permettant à l'utilisateur d'interagir avec les programmes selon l'invention ;a keyboard 422 and a mouse 424 or any other pointing device such as an optical pencil, a touch screen or a remote control enabling the user to interact with the programs according to the invention;
- une interface de communication 426 reliée à un réseau de communication distribué 428, par exemple le réseau Internet, l'interface étant apte à transmettre et à recevoir des données ; - une carte d'acquisition de données 414 reliée à un capteur (non représenté) ; et,a communication interface 426 connected to a distributed communication network 428, for example the Internet network, the interface being able to transmit and receive data; a data acquisition card 414 connected to a sensor (not shown); and,
- un lecteur de cartes mémoires (non représenté) adapté à y lire ou à y écrire des données traitées ou à traiter selon l'invention.- A memory card reader (not shown) adapted to read or write processed or processed data according to the invention.
Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans l'appareil 400 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 l'appareil 400 directement ou par l'intermédiaire d'un autre élément du l'appareil 400. 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 420 ou en mémoire morte 406.The communication bus allows communication and interoperability between the various elements included in the device 400 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 apparatus 400 directly or via another element of the apparatus 400. The code executable of each program allowing the programmable device to implement the processes according to the invention, can be stored, for example, in the hard disk 420 or in read only memory 406.
Selon une variante, le code exécutable des programmes pourra être reçu par l'intermédiaire du réseau de communication 428, via l'interface 426, pour être stocké de façon identique à celle décrite précédemment.According to one variant, the executable code of the programs may be received via the communication network 428, via the interface 426, to be stored in the same manner as that described previously.
Les cartes mémoires peuvent être remplacées par tout support d'information tel que, par exemple, un disque compact (CD-ROM ou DVD). De manière générale, les cartes mémoires peuvent être remplacées par des moyens de stockage d'information, lisibles par un ordinateur ou par un microprocesseur, intégrés ou non à l'appareil, éventuellement amovibles, et adaptés à mémoriser un ou plusieurs programmes dont l'exécution permet la mise en oeuvre du procédé selon l'invention.The memory cards can be replaced by any information medium such as, for example, a compact disc (CD-ROM or DVD). Of in general, the memory cards can be replaced by information storage means, readable by a computer or by a microprocessor, integrated or not integrated into the device, possibly removable, and adapted to store one or more programs whose execution allows the implementation of the method according to the invention.
De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage de l'appareil 400 avant d'être exécutés.More generally, the program or programs may be loaded into one of the storage means of the device 400 before being executed.
L'unité centrale 404 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 420 ou dans la mémoire morte 406 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 420 ou la mémoire morte 406, sont transférés dans la mémoire vive 408 qui contient alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en œuvre de l'invention.The central unit 404 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 420 or in the read-only memory 406 or else in the other elements of FIG. aforementioned storage. When powering on, the program or programs that are stored in a non-volatile memory, for example the hard disk 420 or the read only memory 406, are transferred into the random access memory 408 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.
Il convient de noter que l'appareil de communication comportant le dispositif selon l'invention peut également être un appareil programmé. Cet appareil contient alors le code du ou des programmes informatiques par exemple figé dans un circuit intégré à application spécifique (ASIC).It should be noted that the communication apparatus comprising the device according to the invention can also be a programmed apparatus. This device then contains the code of the computer program or programs for example frozen in a specific application integrated circuit (ASIC).
Alternativement, l'image issue de la carte vidéo 416 peut être transmise à l'écran ou au projecteur 418 à travers l'interface de communication 426 et le réseau de communication distribué 428. De même, la caméra 412 peut être reliée à une carte d'acquisition vidéo 410', distincte de l'appareil 400, de telle sorte que les images issues de la caméra 412 soient transmises à l'appareil 400 à travers le réseau de communication distribué 428 et l'interface de communication 426. En raison de la simplification de mise en œuvre apportée par le procédé d'initialisation et de réinitialisation automatique de l'invention, l'application de suivi d'objet peut être mise en œuvre sans avoir recours à un spécialiste. L'application de suivi peut être utilisée de façon standard pour suivre un objet dans une séquence d'images issues d'un flux vidéo, par exemple pour incruster une séquence vidéo sur un objet de la scène en prenant en compte la position et l'orientation de cet objet, mais aussi pour déterminer le 5 mouvement d'une caméra selon l'analyse d'un objet statique de la scène. Dans ce cas l'objet fait partie du décor et retrouver la pose de cet objet dans la scène revient donc à retrouver la pose de la caméra par rapport à celui-ci. Il devient alors possible d'ajouter des éléments virtuels dans la scène à condition que la transformation géométrique entre l'objet et le modèle géométrique de la scèneAlternatively, the image from the video card 416 can be transmitted to the screen or the projector 418 through the communication interface 426 and the distributed communication network 428. Similarly, the camera 412 can be connected to a card 410 'video acquisition, separate from the camera 400, so that the images from the camera 412 are transmitted to the camera 400 through the distributed communication network 428 and the communication interface 426. Because of the simplification of implementation provided by the initialization and automatic reset process of the invention, the object tracking application can be implemented without having recourse to a specialist. The tracking application can be used in a standard way to track an object in a sequence of images from a video stream, for example to embed a video sequence on an object of the scene taking into account the position and the orientation of this object, but also to determine the motion of a camera according to the analysis of a static object of the scene. In this case the object is part of the set and find the pose of this object in the scene is therefore to find the pose of the camera in relation to it. It then becomes possible to add virtual elements in the scene provided that the geometric transformation between the object and the geometric model of the scene
10 soit connue. Ce qui est le cas. Cette approche autorise donc à augmenter la scène réelle (la partie de la pièce qui a été modélisée) avec des objets virtuels animés qui se déplacent en fonction de la géométrie de la scène.10 is known. which is the case. This approach therefore allows to increase the real scene (the part of the piece that has been modeled) with animated virtual objects that move according to the geometry of the scene.
Si Rf est le repère associé à l'objet suivi, Rs est le repère associé à la scène, Rk est le repère associé à la caméra et Rm est le repère du modèleIf Rf is the reference associated with the tracked object, Rs is the reference associated with the scene, Rk is the reference associated with the camera and Rm is the reference of the model.
15 3D animé, il est nécessaire de définir la transformée Tf→c du repère Rf vers le repère Rc, en utilisant la transformée Tf→s (connue) du repère Rf vers le repère Rs et la transformée Ts→m du repère Rs vers le repère Rm. La transformation affine qui permet de passer du repère Rm associé au modèle tridimensionnel virtuel au repère Rc de la caméra est déterminée par la relation suivante,15 Animated 3D, it is necessary to define the transform T f → c of the reference Rf to the Rc mark, using the transform T f → s (known) of the reference Rf to the Rs mark and the transform T s → m of the mark Rs towards the reference Rm. The affine transformation which makes it possible to pass from the reference Rm associated with the virtual three-dimensional model to the reference Rc of the camera is determined by the following relation,
^ onu r PRc - ~ ATf→ç - T λf~→x s • 1 Ts~→x m • r PRm où PRc est la transformée du point PRm défini dans le repère Rm du modèle tridimensionnel et TI→J est la transformation affine permettant de passer du repère i au repère j. La relation précédente peut être simplifiée sous la forme suivante,^ on ur PRc - ~ A Tf → ç - T λ f ~ → x s • 1 Ts ~ → x m • r PRm where P Rc is the transform of the point P Rm defined in the reference Rm of the three-dimensional model and T I → J is the affine transformation allowing to go from the reference i to the reference j. The previous relation can be simplified in the following form,
25 PRc — Tf→c Ts→f Tm→s - PRm soit, rRc ~ ιm→c ' rRm Rc 25 P - Tm T c s f T m s - P Rm is, RRC ~ ι → m c r Rm
La projection du point PRmen fonction des paramètres de la caméra, pouvant s'exprimer sous la forme de la matrice P1 , permet d'obtenir le point PR'c défini dans l'image issue de la caméra. Le point PR'c est ainsi défini selon la relation suivante,
Figure imgf000019_0001
The projection of the point P Rm according to the parameters of the camera, which can be expressed in the form of the matrix P 1 , makes it possible to obtain the point P R ' c defined in the image from the camera. The point P R ' c is thus defined according to the following relation,
Figure imgf000019_0001
Ainsi, un objet tridimensionnel de synthèse défini dans le repère de la scène peut être projeté sur l'image courante du flux vidéo pour augmenter le flux vidéo avec des objets virtuels animés.Thus, a three-dimensional synthesis object defined in the frame of the scene can be projected on the current image of the video stream to increase the video stream with animated virtual objects.
L'application de suivi peut également être utilisée comme interface avec un appareil mobile tel qu'un PDA (Personal Digital Assistant), un téléphone mobile ou tout autre dispositif pourvus d'un capteur vidéo. En particulier, l'application peut consister à retrouver, puis à suivre dans l'image un rectangle texture préalablement appris, par exemple mémorisé dans une base de donnée d'objets, afin d'augmenter le flux vidéo réel avec des modèles virtuels ou des flux vidéo secondaires calés sur l'objet. L'intérêt principal de cette technologie repose sur le fait que la caméra et l'objet poursuivi peuvent être déplacés librement dans la scène. Le traitement géométrique de changement de repère est identique à celui décrit précédemment.The tracking application can also be used as an interface with a mobile device such as a PDA (personal digital assistant), a mobile phone or any other device provided with a video sensor. In particular, the application may consist of finding and then following in the image a texture rectangle previously learned, for example stored in an object database, in order to increase the real video stream with virtual models or secondary video streams stalled on the object. The main interest of this technology lies in the fact that the camera and the object being tracked can be moved freely in the scene. The geometric change mark processing is identical to that described above.
L'application de suivi d'objet est particulièrement robuste pour les normes actuelles de basse qualité telle que la norme H.263 souvent utilisée pour l'envoi et la réception de flux vidéo depuis et vers un serveur télécom. De plus, il est possible d'envoyer des informations de commande ou de contrôle grâce à l'utilisation des touches de l'appareil mobile en utilisant, par exemple, le DTMF (Dual Tone Modulated Frequency) sur l'infrastructure de l'opérateur de télécom. Dans ce type d'applications, les traitements de suivi de l'objet et/ou d'enrichissement du flux vidéo peuvent être locaux ou déportés. La figure 5, comprenant les figures 5a et 5b, illustre deux exemples d'architectures pouvant être utilisées. La figure 5a correspond à une technique de suivi déportée. Le dispositif mobile 500 comprend un émetteur/récepteur 505 permettant de transmettre le flux vidéo au serveur 510 qui comprend un émetteur/récepteur 515. Le serveur 510 dispose d'une application de suivi d'objet et d'enrichissement de flux vidéo de telle sorte que le serveur 510 est adapté à recevoir un ou plusieurs flux vidéo issus d'un ou plusieurs dispositifs mobiles 500, à suivre un objet dans les images de ce flux, à intégrer un objet virtuel ou un flux vidéo secondaire dans ces images et à transmettre le flux vidéo ainsi modifié aux dispositifs mobiles 500 qui l'affichent. La figure 5b illustre une alternative selon laquelle l'application de suivi d'objet et d'enrichissement de flux vidéo est intégré dans l'appareil mobile 500'. Le serveur 510' comprend une application, par exemple un jeu, contrôlée par les commandes de l'appareil mobile 500'. Les données échangées entre le serveur 510' et l'appareil mobile 500' sont des instructions de contrôle et de commande ainsi que des informations générales telles que les résultats des instructions de contrôle et de commande. Le flux vidéo n'a pas besoin d'être transmis entre les émetteurs/récepteurs 505' et 515'. Quelque soit l'architecture utilisée, il est convient de noter que le serveur reçoit des informations sur le type d'objet à suivre, la position relative de la caméra par rapport à l'objet à suivre et de préférence les diverses actions effectuées par l'utilisateur.The object tracking application is particularly robust for current low quality standards such as the H.263 standard often used for sending and receiving video streams to and from a telecom server. In addition, it is possible to send control or control information by using the keys of the mobile device using, for example, the DTMF (Dual Tone Modulated Frequency) on the operator's infrastructure. telecom. In this type of application, object tracking and / or video stream enhancement processing can be local or remote. FIG. 5, comprising FIGS. 5a and 5b, illustrates two examples of architectures that can be used. Figure 5a corresponds to a remote tracking technique. The mobile device 500 comprises a transmitter / receiver 505 for transmitting the video stream to the server 510 which comprises a transmitter / receiver 515. The server 510 has an object tracking application and video stream enrichment so that that the server 510 is adapted to receiving one or more video streams from one or more mobile devices 500, tracking an object in the images of this stream, integrating a virtual object or a secondary video stream into these images and transmitting the video stream thus modified to the devices mobile 500 who display it. FIG. 5b illustrates an alternative according to which the application of object tracking and video stream enrichment is integrated in the mobile device 500 '. The server 510 'comprises an application, for example a game, controlled by the commands of the mobile device 500'. The data exchanged between the server 510 'and the mobile device 500' are control and command instructions as well as general information such as the results of the control and command instructions. The video stream does not need to be transmitted between transceivers 505 'and 515'. Whatever the architecture used, it should be noted that the server receives information on the type of object to follow, the relative position of the camera with respect to the object to be tracked and preferably the various actions performed by the user. 'user.
La figure 6 présente un exemple d'utilisation d'un appareil mobile de capture et de visualisation d'images pour une application de réalité augmentée avec suivi d'objet, utilisant l'une des architectures présentées sur la figure 5. L'appareil mobile 600 comprend un capteur d'images (non représenté) permettant d'acquérir un flux vidéo à partir d'une scène réelle 610 et un écran 605. La scène réelle 610 comprend un objet 615 qui doit être suivi, sur lequel figure une illustration 620 qui joue le rôle de texture. Dans cet exemple, la scène contenant l'objet suivi est projetée sur l'écran 605 et la position de cette objet dans la scène permet d'ajouter un objet virtuel tel que le dialogue 625 ou encore l'objet virtuel tridimensionnel animé 630.FIG. 6 shows an example of use of a mobile device for capturing and displaying images for an augmented reality application with object tracking, using one of the architectures presented in FIG. 5. The mobile device 600 includes an image sensor (not shown) for acquiring a video stream from a real scene 610 and a screen 605. The actual scene 610 includes an object 615 to be tracked, on which an illustration 620 which plays the role of texture. In this example, the scene containing the tracked object is projected on the screen 605 and the position of this object in the scene makes it possible to add a virtual object such as the dialog 625 or the animated three-dimensional virtual object 630.
Comme illustré sur la figure 7, l'appareil mobile peut également être utilisé comme un curseur à six degrés de liberté ou comme un capteur de mouvement à six degrés de liberté selon la pose relative (position et orientation) de l'appareil mobile par rapport à l'objet suivi. Ce curseur ou ce capteur peut être utilisé pour contrôler des mouvements. Quatre types de déplacement peuvent être envisagé. Selon un premier mode de déplacement de type « viseur » l'appareil mobile vise à simuler un outil de pointage pour guider des actions, viser et sélectionner des zones ou des objets et éventuellement déplacer la sélection. Il est ici considéré que la texture plane est posée sur une surface plane réelle telle qu'une table. Une cible est affichée sur l'écran dans l'axe optique du capteur d'images de l'appareil mobile. Celle-ci est déformée selon la position de la caméra du fait de sa projection virtuelle sur la table. L'objet cible projeté sur la table est une ellipse, ou un autre objet géométrique bidimensionnel. Il est également nécessaire de déterminer les intersections entre la direction donnée par l'axe optique de la caméra avec les objets virtuels tridimensionnels placés sur la table afin d'être en mesure d'effectuer des actions sur ces objets tridimensionnels. Enfin, il est important de pouvoir déterminer si la cible virtuelle attachée à la table recouvre partiellement un objet virtuel afin de pouvoir le sélectionner. Les différentes applications concernées par ce dispositif de pointage sont principalement les jeux vidéo et en particulier les jeux de simulations, les jeux de courses et les jeux de tirs.As shown in FIG. 7, the mobile device can also be used as a six degree of freedom cursor or as a six degree of freedom motion sensor depending on the relative pose (position and orientation) of the mobile device relative to to the object being tracked. This slider or sensor can be used to control movements. Four types of displacement can be envisaged. According to a first "viewfinder" mode of displacement, the mobile device aims to simulate a pointing tool to guide actions, to aim and select zones or objects and possibly to move the selection. It is considered here that the plane texture is placed on a real flat surface such as a table. A target is displayed on the screen in the optical axis of the image sensor of the mobile device. This one is deformed according to the position of the camera because of its virtual projection on the table. The target object projected on the table is an ellipse, or other two-dimensional geometric object. It is also necessary to determine the intersections between the direction given by the optical axis of the camera with the three-dimensional virtual objects placed on the table in order to be able to perform actions on these three-dimensional objects. Finally, it is important to be able to determine if the virtual target attached to the table partially overlaps a virtual object in order to select it. The various applications concerned by this pointing device are mainly video games and in particular simulation games, racing games and shooting games.
Une première étape consiste à exprimer dans le plan de la table l'équation de l'ellipse résultant de l'intersection du cône centré sur l'axe optique avec le plan de la table. Le rayon du cône est avantageusement paramétrable par les touches du téléphone et s'exprime linéairement en fonction de la distance selon la fonction f(zd)= r , par exemple f(zd) = azd où a est un paramètre modifiable par l'utilisateur et Zd est la distance réelle entre le plan de la table et la caméra. Dans un souci de clarté, il est ici considéré que le repère Rf de l'objet suivi est identique à celui de la table, le plan x-y correspondant au plan de la table et l'axe z étant dirigé vers le haut. Le plan de la table a ainsi pour équation z = Q .A first step is to express in the plane of the table the equation of the ellipse resulting from the intersection of the cone centered on the optical axis with the plane of the table. The radius of the cone is preferably configurable by the phone keys and is expressed linearly with distance according to the function f (z d) = r, for example f (z d) = az d where a is a parameter modifiable by the user and Z d is the actual distance between the plane of the table and the camera. For the sake of clarity, it is here considered that the reference Rf of the object followed is identical to that of the table, the xy plane corresponding to the plane of the table and the z axis being directed upwards. The plane of the table thus has for equation z = Q.
Dans le repère Rf, l'axe du cône, c'est à dire l'axe optique, est défini par la position de la caméra Pc = [xc yc zj et par le vecteur F = [xt yt zj . L'intersection I de l'axe du cône avec le plan de la table est donc déterminée de la façon suivante, X1 • X!In the reference frame Rf, the axis of the cone, ie the optical axis, is defined by the position of the camera P c = [x c y c zj and by the vector F = [x t y t zj . The intersection I of the axis of the cone with the plane of the table is thus determined as follows, X 1 • X !
Zc Z c
= yc y,= y c y,
~ Zt~ Z t
= 0= 0
Connaissant ce point d'intersection I, il est possible d'en déduire la distance entre ce point et Ia caméra et ainsi de déterminer le rayon b du cercle appartenant au cône dont le centre est ce point d'intersection I. II est alors possible d'en déduire l'équation suivante de l'ellipse dans le plan de la table selon le repère de l'objet suivi,Knowing this point of intersection I, it is possible to deduce the distance between this point and the camera and thus to determine the radius b of the circle belonging to the cone whose center is this point of intersection I. It is then possible to deduce the following equation of the ellipse in the plane of the table according to the reference of the tracked object,
(xcosγ + ysinγ - x,)2 (ycosγ - xsinγ - yj)2 _ a2 b2 où γ représente l'angle entre la projection des axes y des repères liés à la caméra et à l'objet suivi dans le plan de la table. Cette relation permet de représenter l'ellipse dans l'image et de déterminer si un élément de l'image appartient à l'ellipse, c'est-à-dire si cet élément est sélection nable ou non.(xcosγ + ysinγ - x,) 2 (ycosγ - xsinγ - y j ) 2 _ a 2 b 2 where γ represents the angle between the projection of the y axes of the reference points linked to the camera and the object followed in the plane of the table. This relation makes it possible to represent the ellipse in the image and to determine if an element of the image belongs to the ellipse, that is to say whether this element is selectable or not.
Un second mode de déplacement permet à l'utilisateur de se déplacer instinctivement dans un environnement virtuel comme si la caméra était placée au niveau de ses propres yeux. Ce mode de déplacement est particulièrement adapté aux jeux du type « first person shooter » et aux applications de type visite de musées virtuels. La capture de mouvement est réalisée à partir d'une position de référence quelconque dans l'espace tridimensionnel. Cette position de référence peut être modifiée à tout instant par une simple commande. Des petits mouvements de l'utilisateur par rapport à cette position de référence sont capturés et transmis à l'application. Cette approche permet d'effectuer des déplacements selon 6 degrés de libertés dans un environnement virtuel.A second mode of movement allows the user to move instinctively in a virtual environment as if the camera was placed at the level of his own eyes. This mode of travel is particularly suitable for first person shooter type games and virtual museum visit type applications. Motion capture is performed from any reference position in three-dimensional space. This reference position can be changed at any time by a simple command. Small movements of the user with respect to this reference position are captured and transmitted to the application. This approach makes it possible to make displacements according to 6 degrees of freedom in a virtual environment.
La liste des mouvements associés à ces déplacements par rapport au point de référence peut être définie de la façon suivante, - le mouvement « avancer », respectivement « reculer », est identifié lorsque la caméra se rapproche, respectivement s'éloigne, de l'objet suivi selon un déplacement sur l'axe optique de la caméra ; - une translation latérale est identifiée lorsque la caméra est déplacée sur la gauche ou sur la droite selon l'axe horizontal perpendiculaire à l'axe optique ;The list of movements associated with these displacements with respect to the reference point can be defined in the following way, - the movement "forward", respectively "backward", is identified when the camera approaches, respectively away, from the object followed according to a displacement on the optical axis of the camera; a lateral translation is identified when the camera is moved on the left or on the right along the horizontal axis perpendicular to the optical axis;
- les mouvements d'élévation dans le décor virtuel sont identifiés par une translation vers le haut ou vers le bas la caméra ;the elevation movements in the virtual set are identified by a translation upwards or downwards of the camera;
- regarder à gauche ou à droite est identifié par une rotation de la caméra selon l'axe vertical ;- looking to the left or right is identified by a rotation of the camera along the vertical axis;
- regarder vers le haut ou vers le bas est identifié par une rotation de la caméra selon l'axe horizontal perpendiculaire à l'axe optique ; et, - pencher la tête à gauche ou à droite est identifié lorsque la caméra effectue une rotation selon l'axe optique.- look up or down is identified by a rotation of the camera along the horizontal axis perpendicular to the optical axis; and, - tilting the head to the left or right is identified when the camera rotates along the optical axis.
Naturellement ces déplacements ne sont valides que si l'objet suivi est présent dans le champ de la caméra. Dans le cas contraire, la dernière position est conservée jusqu'à ce que l'objet suivi entre à nouveau dans le champ de la caméra.Naturally these movements are valid only if the tracked object is present in the field of the camera. In the opposite case, the last position is kept until the tracked object enters the field of the camera again.
Un troisième mode de déplacement permet à l'utilisateur de contrôler le déplacement d'un objet ou d'un personnage virtuel vu par l'utilisateur. Un tel mode de déplacement est particulièrement adapté pour les jeux vidéo et les jeux d'exploration. La capture de mouvement est réalisée selon la différence de pose entre le repère Rf de l'objet suivi et le repère Rc de la caméra. Les mouvements de l'objet ou du personnage virtuel sont définis de la façon suivante,A third mode of movement allows the user to control the movement of an object or virtual character seen by the user. Such a mode of travel is particularly suitable for video games and exploration games. The motion capture is performed according to the difference in pose between the reference Rf of the object followed and the reference Rc of the camera. The movements of the virtual object or character are defined as follows,
- l'axe optique de la caméra représente la scène telle qu'elle est perçue par l'objet ou le personnage virtuel ; - une translation sur l'axe horizontal perpendiculaire à l'axe optique permet un déplacement latéral de l'objet ou du. personnage virtuel ; et,the optical axis of the camera represents the scene as it is perceived by the virtual object or character; - A translation on the horizontal axis perpendicular to the optical axis allows a lateral movement of the object or. virtual character; and,
- le grossissement de la scène (zoom sur les objets virtuels) est déterminé par la distance entre la caméra et l'objet suivi.- the magnification of the scene (zoom on the virtual objects) is determined by the distance between the camera and the tracked object.
Les rotations autour de l'axe optique et les translations selon l'axe vertical n'ont pas, a priori, de fonction pré-établie et peuvent correspondre à une utilisation particulière en fonction du type d'application visée. Le quatrième mode de déplacement est celui selon lequel la capture de mouvement se fait directement entre la différence de pose du repère Rc de la caméra et du repère Rf de l'objet suivi. Ce mode a pour objectif d'inspecter un objet virtuel ou une scène virtuelle. Il est ainsi possible de se déplacer autour de cet élément, de se rapprocher ou de s'en éloigner. Ce mode de déplacement étant très utile et très intuitif, il est particulièrement destiné aux applications éducatives, démonstratives et aux jeux vidéo.The rotations around the optical axis and the translations along the vertical axis do not, a priori, have a pre-established function and may correspond to a particular use depending on the type of application targeted. The fourth mode of displacement is that according to which the motion capture is done directly between the pose difference of the reference mark Rc of the camera and the reference mark Rf of the tracked object. This mode aims to inspect a virtual object or virtual scene. It is thus possible to move around this element, to move closer to or away from it. This mode of displacement being very useful and very intuitive, it is particularly intended for educational applications, demonstrative and video games.
Comme il l'a été mentionné, le système décrit permet d'améliorer l'interactivité de nombreuses applications, notamment dans le domaine des jeux. L'enrichissement du flux vidéo combiné avec les commandes et la fonction du curseur permet, par exemple, de créer une interface adaptée à chaque application. A titre d'illustration, l'exemple suivant concerne un jeu de type Tamagoshi comportant différents modes tels que le dressage, la nourriture et la communication. L'animal peut ainsi faire le beau lorsque que l'on s'approche de lui, avoir le tournis lorsque l'on tourne rapidement autour de lui et nous suivre lorsque l'on tourne doucement autour de lui. On peut le battre, par exemple pour le punir en déplaçant rapidement la caméra d'un coté à l'autre. Il est possible de le féliciter en tapotant sur sa tête grâce à un mouvement de haut en bas. Une touche du clavier permet de sélectionner un aliment tandis qu'un mouvement de caméra vers l'animal permet de lancer l'objet 3D de synthèse correspondant à cet aliment. Différents aliments sont disponibles. Il est également possible de caresser notre animal après s'être approché un petit peu de lui. Différents mouvements de la caméra le font réagir différemment. L'animal peut poser des questions et l'utilisateur peut alors répondre par oui ou par non (non de haut en bas, oui de droite à gauche) et les réponses sont enregistrées. Un scénario peut être crée afin de rendre plus intelligente la discussion.As mentioned, the system described makes it possible to improve the interactivity of many applications, especially in the field of games. The enrichment of the video stream combined with the controls and the function of the cursor makes it possible, for example, to create an interface adapted to each application. By way of illustration, the following example relates to a game of Tamagoshi type comprising different modes such as dressage, food and communication. The animal can do the good when we approach him, to be dizzy when we quickly turn around him and follow us when we turn slowly around him. We can beat him, for example to punish him by quickly moving the camera from one side to the other. It is possible to congratulate him by tapping on his head with a movement up and down. A key on the keyboard is used to select a food while a camera movement to the animal to launch the 3D synthetic object corresponding to this food. Different foods are available. It is also possible to pet our pet after getting a little closer to him. Different movements of the camera make it react differently. The animal can ask questions and the user can then answer yes or no (no from top to bottom, yes from right to left) and the answers are recorded. A scenario can be created to make the discussion smarter.
Un autre type d'applications concerne les présentations audiovisuelles dans lesquelles des objets virtuels, animés ou non, ou des flux vidéo sont ajoutés en temps réel. De telles applications sont notamment utilisées dans le domaine du « broadcast » ou « stand up cabinet ». Selon l'invention, l'animateur peut, durant sa présentation, manipuler librement un tableau, en orientation et en position, et permettre l'affichage d'un flux vidéo ou d'informations virtuelles sur ce tableau. Ce tableau comporte de préférence une ou plusieurs zones de couleur uniforme correspondant à l'emplacement où doit être inséré le flux vidéo secondaire, par exemple selon la technique de chromakey. Les objets virtuels sont insérés relativement à la pose courante du tableau. Pour faciliter ce suivi de tableau, celui-ci peut également contenir une zone texturée, par exemple sur l'extérieur ou au centre. L'animateur est alors notamment en mesure de lancer un reportage à partir de ce tableau : un technicien en coulisse déclenche l'affichage d'un flux vidéo dans le tableau puis l'animateur « lance » le sujet en approchant le tableau vers la caméra. La fenêtre d'affichage du flux vidéo sort ensuite du tableau et vient remplacer le flux vidéo courant. Un aspect important de cette application est qu'elle permet à l'animateur de pouvoir passer sa main devant le tableau et d'occulter partiellement le flux vidéo. L'animateur peut ainsi pointer un élément du flux vidéo présenté sur le tableau. Pour améliorer la robustesse du système et en particulier pour éviter les vibrations généralement présentes dans les applications de suivi de tableau, les dimensions des images du flux vidéo secondaire sont ici supérieures à celles de la ou des zones de couleur uniforme à recouvrir. Ainsi, un léger décalage du flux vidéo secondaire présenté sur le tableau ne laisse pas apparaître de zone de couleur uniforme.Another type of application concerns audiovisual presentations in which virtual objects, animated or not, or video streams are added in real time. Such applications are particularly used in the field of "broadcast" or "stand up cabinet". According to the invention, the facilitator may, during his presentation, freely manipulate a table, in orientation and position, and allow the display of a video stream or virtual information on this table. This table preferably comprises one or more areas of uniform color corresponding to the location where the secondary video stream must be inserted, for example according to the chromakey technique. Virtual objects are inserted relative to the current pose of the array. To facilitate this chart tracking, it can also contain a textured area, for example on the outside or in the center. The facilitator is then able to launch a report from this table: a technician behind the scenes triggers the display of a video stream in the table and the animator "launches" the subject by approaching the board towards the camera . The window for displaying the video stream then leaves the table and replaces the current video stream. An important aspect of this application is that it allows the presenter to be able to move his hand in front of the board and partially obscure the video stream. The animator can thus point to an element of the video stream presented on the board. To improve the robustness of the system and in particular to avoid the vibrations generally present in table monitoring applications, the image dimensions of the secondary video stream are here greater than those of the area or areas of uniform color to cover. Thus, a slight offset of the secondary video stream presented on the table does not reveal a uniform color area.
D'autres applications telles que des visites virtuelles d'un musée ou d'un bâtiment peuvent aussi être facilement implémentées.Other applications such as virtual tours of a museum or building can also be easily implemented.
Bien que les exemples précédents soient basés sur l'utilisation d'une seule caméra, il est possible d'utiliser simultanément plusieurs caméras et de permettre ainsi, par exemple, la coopération de plusieurs utilisateurs situés dans un même environnement réel. Il est ainsi nécessaire de se placer dans un repère commun tel que le repère de l'une des caméra ou le repère de l'objet suivi, qui est le même pour les différentes caméras, et de faire une projection dans l'image issue de chaque caméra selon le repère associé à chacune des caméras.Although the previous examples are based on the use of a single camera, it is possible to use several cameras simultaneously and thus allow, for example, the cooperation of several users located in the same real environment. It is thus necessary to place oneself in a common coordinate system such as the reference of one of the cameras or the reference of the tracked object, which is the same for the different cameras, and to make a projection in the image resulting from each camera according to the reference associated with each of the cameras.
Il est nécessaire de déterminer la transformation permettant de retrouver la position et l'orientation relatives des utilisateurs. La relation suivante permet de transformer les coordonnées d'un point exprimées dans le repère de la caméra n en coordonnées exprimées dans le repère de la caméra 1 :It is necessary to determine the transformation to find the relative position and orientation of the users. The following relationship allows to transform the coordinates of a point expressed in the reference of the camera n in coordinates expressed in the reference of the camera 1:
où PR représente les coordonnées du point P dans le repère de la caméra 1 , PRu représente les coordonnées du point P dans le repère de la caméra n et Tl→j est la transformation affine qui permet de passer du repère i au repère j. La transformation précédente peut alors être écrite sous la forme simplifiée suivante,
Figure imgf000026_0001
→c, - II ne reste plus alors qu'à effectuer la projection en fonction des paramètres des caméras (matrice Pi) afin de retrouver les coordonnées du point Pκ dans l'image, ce qui conduit à la relation suivante,
Figure imgf000026_0002
λT m→c -
Figure imgf000026_0003
where P R represents the coordinates of the point P in the reference of the camera 1, P Ru represents the coordinates of the point P in the reference of the camera n and T l → j is the affine transformation which makes it possible to pass from the reference mark i to the reference mark j. The previous transformation can then be written in the following simplified form,
Figure imgf000026_0001
→ c, - It remains then only to perform the projection according to the camera parameters (matrix Pi) in order to find the coordinates of the point P κ in the image, which leads to the following relationship,
Figure imgf000026_0002
λ T m → c -
Figure imgf000026_0003
L'utilisation de plusieurs caméras permet, par exemple, de mettre en œuvre des applications offrant aux utilisateurs la possibilité de se déplacer simultanément et de suivre un même objet. Un exemple de telles applications concerne les jeux, par exemple les jeux de course de voitures, d'avions ou de motos. Le principe de commande utilisé pour un jeu de course est celui correspondant au premier mode de déplacement, de type « viseur », ou au troisième mode permettant aux utilisateurs de contrôler le déplacement d'objets virtuels qu'ils voient. Il permet à plusieurs joueurs situés dans un même environnement réel de s'affronter sur un circuit tridimensionnel positionné par rapport à l'objet suivi dans la scène réelle. Chacun des utilisateurs contrôle un engin et le mode collaboratif permet aux différents engins d'interagir au sein de l'application. Il est également possible d'utiliser cette caractéristique pour des jeux de plateau ou de société. A partir d'un plateau téléchargé et imprimé, il est possible de considérer toute une gamme d'applications collaboratives. Les jeux de société qui utilisent un plateau et des pions peuvent ainsi être simulés par des objets virtuels tridimensionnels. Les touches du clavier peuvent alors permettre d'agir sur la configuration du jeu et d'affronter d'autres joueurs en direct. De même, des jeux de sport, par exemple de type tennis peuvent être implémentés. Pour ce type d'application, le mode de déplacement utilisé est de préférence le troisième mode permettant aux utilisateurs de contrôler le déplacement d'objets virtuels qu'ils voient. L'orientation de l'axe de visée de la caméra donne ainsi l'orientation du personnage dans les jeux. Une touche du clavier permet avantageusement de « taper » dans la balle lorsqu'elle arrive près du joueur. La position de référence permet d'effectuer simplement des déplacements avant et arrière, en translatant la caméra sur son axe de vue. Pour les déplacements latéraux, les mouvements latéraux de l'utilisateur sont pris en compte. Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l'invention pourra appliquer des modifications dans la description précédente. The use of several cameras makes it possible, for example, to implement applications that offer users the possibility of moving simultaneously and following the same object. An example of such applications is games, for example racing games of cars, planes or motorcycles. The control principle used for a racing game is that corresponding to the first mode of displacement, of "viewfinder" type, or the third mode allowing users to control the movement of virtual objects they see. It allows several players located in the same real environment to compete on a three-dimensional circuit positioned relative to the object tracked in the real scene. Each user controls a gear and the collaborative mode allows different gear to interact within the application. It is also possible to use this feature for board games or board games. From a downloaded and printed platform, it is possible to consider a whole range of collaborative applications. Board games that use a board and pawns can be simulated by three-dimensional virtual objects. The keys of the keyboard can then act on the configuration of the game and to confront other players live. Similarly, sports games, for example tennis type can be implemented. For this type of application, the mode of displacement used is preferably the third mode allowing users to control the movement of virtual objects they see. The orientation of the line of sight of the camera thus gives the orientation of the character in the games. A touch of the keyboard advantageously "hit" in the ball when it comes near the player. The reference position allows you to simply move forward and backward, by translating the camera on its axis of view. For lateral movements, the lateral movements of the user are taken into account. Naturally, to meet specific needs, a person skilled in the field of the invention may apply modifications in the foregoing description.

Claims

REVENDICATIONS
1. Procédé pour suivre en temps réel au moins un objet géométrique sensiblement plan d'une scène réelle dans aux moins deux images sensiblement consécutives d'au moins un flux vidéo, dans une application de réalité augmentée, l'initialisation du procédé étant automatique, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes, - réception d'une première image dudit au moins un flux vidéoA method for real-time tracking of at least one substantially planar geometrical object of a real scene in at least two substantially consecutive images of at least one video stream, in an augmented reality application, the initialization of the method being automatic, this method being characterized in that it comprises the following steps, - receiving a first image of said at least one video stream
(300), ladite première image comprenant ledit au moins un objet à suivre ;(300), said first image comprising said at least one object to follow;
- détermination de la position et de l'orientation dudit au moins un objet à suivre dans ladite première image (320) à partir d'une pluralité de blocs d'image préalablement déterminés, chaque bloc d'image de ladite pluralité de blocs d'image étant associé à une pose dudit au moins un objet à suivre ;determining the position and orientation of said at least one object to be tracked in said first image (320) from a plurality of previously determined image blocks, each image block of said plurality of image blocks; image being associated with a pose of said at least one object to follow;
- création d'une image clé comprenant ladite première image et la position et l'orientation dudit au moins un objet à suivre dans ladite première image ;creating a key image comprising said first image and the position and orientation of said at least one object to be followed in said first image;
- réception d'une seconde image dudit au moins un flux vidéo (330), ladite seconde image comprenant ledit au moins un objet à suivre ; et,- receiving a second image of said at least one video stream (330), said second image comprising said at least one object to follow; and,
- évaluation de la position et de l'orientation dudit au moins un objet à suivre dans ladite seconde image à partir de ladite image clé (330).evaluating the position and orientation of said at least one object to be followed in said second image from said key image (330).
2. Procédé selon la revendication 1 comprenant en outre une étape préalable de détermination de ladite pluralité de blocs d'image et desdites poses associées à partir d'au moins une image texturée dudit objet à suivre.The method of claim 1 further comprising a prior step of determining said plurality of image blocks and said associated poses from at least one textured image of said object to be tracked.
3. Procédé selon la revendication 1 ou la revendication 2 caractérisé en ce que les étapes de réception d'une image et d'évaluation de la position et de l'orientation dudit au moins un objet à suivre dans ladite image reçue sont répétées pour des images dudit au moins un flux vidéo suivant ladite seconde image.3. Method according to claim 1 or claim 2 characterized in that the steps of receiving an image and evaluating the position and orientation of said at least one object to follow in said received image are repeated for images of said at least one video stream following said second image.
4. Procédé selon l'une quelconque des revendications 1 à 3 caractérisé en ce que si la position et l'orientation dudit au moins un objet à suivre ne peuvent pas être évaluées dans une image reçue à partir de ladite image clé, la position et l'orientation dudit au moins un objet à suivre dans ladite image reçue sont évaluées à partir de ladite pluralité de blocs d'image (320).4. Method according to any one of claims 1 to 3 characterized in that if the position and the orientation of said at least one object to following can not be evaluated in an image received from said keyframe, the position and orientation of said at least one object to be tracked in said received image are evaluated from said plurality of image blocks (320).
5. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que les valeurs de ladite image clé sont remplacées par une image reçue et par la position et l'orientation évaluées dudit objet à suivre dans ladite image reçue.5. Method according to any one of the preceding claims, characterized in that the values of said keyframe are replaced by a received image and the evaluated position and orientation of said object to be followed in said received image.
6. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comprend en outre une étape d'évaluation de la pose du capteur d'image dont est issu ledit au moins un flux vidéo dans un repère lié à ladite scène réelle à partir de la position évaluée dudit au moins un objet à suivre.6. Method according to any one of the preceding claims, characterized in that it further comprises a step of evaluating the installation of the image sensor from which said at least one video stream originates in a frame linked to said real scene. from the evaluated position of said at least one object to follow.
7. Procédé selon la revendication 6 caractérisé en ce qu'il comprend en outre une étape de détermination du mouvement dudit capteur d'image.7. The method of claim 6 characterized in that it further comprises a step of determining the movement of said image sensor.
8. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que ledit au moins un objet à suivre comprend une zone de couleur uniforme adaptée à mettre en oeuvre la technologie de chromakey.8. Method according to any one of the preceding claims characterized in that said at least one object to follow comprises a uniform color area adapted to implement chromakey technology.
9. Procédé selon l'une quelconque des revendications précédentes selon lequel ledit au moins un objet à suivre est suivi simultanément dans ledit au moins un flux vidéo et dans au moins un autre flux vidéo, ledit au moins un flux vidéo et ledit au moins un autre flux vidéo étant issus d'au moins deux capteurs d'images distincts, ledit procédé comprenant en outre une étape d'estimation de la position relative desdits au moins deux capteurs d'images. 9. The method as claimed in claim 1, wherein said at least one object to be tracked is simultaneously tracked in said at least one video stream and in at least one other video stream, said at least one video stream and said at least one video stream. another video stream coming from at least two different image sensors, said method further comprising a step of estimating the relative position of said at least two image sensors.
10. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comprend en outre une étape d'insertion d'au moins un élément dans au moins l'une desdites images reçues selon la position et l'orientation évaluées dudit au moins un objet à suivre dans ladite image reçue, ledit au moins un élément étant choisi dans une liste comprenant au moins une représentation d'au moins un objet virtuel et au moins un second flux vidéo.10. Method according to any one of the preceding claims, characterized in that it further comprises a step of inserting at least one element into at least one of said received images according to the position and the orientation evaluated from said to least one object to follow in said received image, said at least one element being selected from a list comprising at least one representation of at least one virtual object and at least one second video stream.
11. Procédé selon l'une quelconque des revendications précédentes comprenant en outre une étape de détermination d'au moins une commande de contrôle, ladite au moins une commande de contrôle étant déterminée selon la variation de pose dudit objet à suivre.The method of any one of the preceding claims further comprising a step of determining at least one control of control, said at least one control command being determined according to the variation of pose said object to follow.
12. Procédé selon l'une quelconque des revendications précédentes comprenant en outre une étape de transmission d'au moins une indication relative à la variation de la pose dudit objet à suivre.12. Method according to any one of the preceding claims further comprising a step of transmitting at least one indication relating to the variation of the pose of said object to follow.
13. Procédé selon l'une quelconque des revendications 1 à 11 comprenant en outre une étape d'acquisition desdites première et seconde images et une étape d'affichage d'au moins une partie desdites première et seconde images, lesdites étapes d'acquisition et d'affichage étant mises en œuvre dans un dispositif distinct du dispositif mettant en œuvre lesdites autres étapes.The method of any of claims 1 to 11, further comprising a step of acquiring said first and second images and a step of displaying at least a portion of said first and second images, said steps of acquiring and display being implemented in a device separate from the device implementing said other steps.
14. Programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 12. 14. Computer program comprising instructions adapted to the implementation of each of the steps of the method according to any one of claims 1 to 12.
15. Dispositif pour suivre en temps réel au moins un objet géométrique sensiblement plan d'une scène réelle dans aux moins deux images sensiblement consécutives d'au moins un flux vidéo, dans une application de réalité augmentée, l'initialisation dudit suivi étant automatique, ce dispositif étant caractérisé en ce qu'il comprend les moyens suivants, - moyens pour recevoir une première image dudit au moins un flux vidéo, ladite première image comprenant ledit au moins un objet à suivre ;15. Device for tracking in real time at least one substantially planar geometric object of a real scene in at least two substantially consecutive images of at least one video stream, in an augmented reality application, the initialization of said tracking being automatic, said device being characterized in that it comprises the following means, means for receiving a first image of said at least one video stream, said first image comprising said at least one object to be followed;
- moyens pour mémoriser ladite première image dans des premiers moyens de stockage ;means for storing said first image in first storage means;
- moyens pour déterminer la position et l'orientation dudit au moins un objet à suivre dans ladite première image à partir d'une pluralité de blocs d'image préalablement mémorisés dans des seconds moyens de stockage, chaque bloc d'image de ladite pluralité de blocs d'image étant associé à une pose dudit au moins un objet à suivre, ladite pose étant mémorisée dans lesdits seconds moyens de stockage, la position et l'orientation dudit au moins un objet à suivre dans ladite première image étant mémorisée dans lesdits premiers moyens de stockages ; - moyens pour recevoir une seconde image dudit au moins un flux vidéo, ladite seconde image comprenant ledit au moins un objet à suivre ; et,means for determining the position and orientation of said at least one object to be followed in said first image from a plurality of image blocks previously stored in second storage means, each image block of said plurality of image blocks being associated with a laying of said at least one object to follow, said pose being stored in said second storage means, the position and the orientation of said at least one object to be followed in said first image being stored in said first storage means; means for receiving a second image of said at least one video stream, said second image comprising said at least one object to be tracked; and,
- moyens pour évaluer la position et l'orientation dudit au moins un objet à suivre dans ladite seconde image à partir des données mémorisées dans lesdits premiers moyens de stockage.means for evaluating the position and orientation of said at least one object to be followed in said second image from the data stored in said first storage means.
16. Dispositif selon la revendication 15 caractérisé en ce qu'il comprend en outre des moyens pour déterminer si la position et l'orientation dudit au moins un objet à suivre peuvent être évaluées dans ladite seconde image à partir des données mémorisées dans lesdits premiers moyens de stockage, lesdits moyens pour déterminer la position et l'orientation dudit au moins un objet à suivre dans ladite première image à partir des données mémorisées dans lesdits seconds moyens de stockage étant adaptés à évaluer la position et l'orientation dudit au moins un objet à suivre dans ladite seconde image à partir des données mémorisées dans lesdits seconds moyens de stockage.16. Device according to claim 15 characterized in that it further comprises means for determining whether the position and the orientation of said at least one object to follow can be evaluated in said second image from the data stored in said first means storage means, said means for determining the position and orientation of said at least one object to be followed in said first image from the data stored in said second storage means being adapted to evaluate the position and orientation of said at least one object to be followed in said second image from the data stored in said second storage means.
17. Dispositif selon la revendication 15 ou la revendication 16 caractérisé en ce qu'il comprend en outre des moyens pour mémoriser ladite seconde image et la position et l'orientation dudit au moins un objet à suivre dans ladite seconde image dans lesdits premiers moyens de stockage. 17. Device according to claim 15 or claim 16 characterized in that it further comprises means for storing said second image and the position and orientation of said at least one object to be followed in said second image in said first means of storage.
18. Dispositif selon l'une quelconque des revendications 15 à 17 caractérisé en ce qu'il comprend en outre des moyens de transformation adaptés à déterminer la pose dudit au moins un objet à suivre ou du capteur d'images dont est issu ledit au moins un flux vidéo dans l'un des repères liés à ladite scène réelle, audit au moins un objet à suivre ou audit capteur d'image. 18. Device according to any one of claims 15 to 17 characterized in that it further comprises transformation means adapted to determine the laying of said at least one object to follow or the image sensor from which said at least one a video stream in one of the references related to said real scene, said at least one object to follow or said image sensor.
19. Dispositif selon l'une quelconque des revendications 15 à 18 caractérisé en ce qu'il comprend en outre des moyens pour insérer au moins un élément dans au moins l'une desdites images reçues selon la position et l'orientation évaluées dudit au moins un objet à suivre dans ladite image reçue, ledit au moins un élément étant choisi dans une liste comprenant au moins une représentation d'au moins un objet virtuel et au moins un second flux vidéo. 19. Device according to any one of claims 15 to 18 characterized in that it further comprises means for inserting at least one element into at least one of said received images according to the position and orientation evaluated said at least an object to follow in said received image, said at least one element being selected from a list comprising at least one representation of at least one virtual object and at least one second video stream.
20. Dispositif selon l'une quelconque des revendications 15 à 19 comprenant en outre des moyens pour recevoir lesdites première et seconde images d'au moins un téléphone mobile. 20. Device according to any one of claims 15 to 19 further comprising means for receiving said first and second images of at least one mobile phone.
PCT/FR2008/000068 2007-01-22 2008-01-18 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream WO2008107553A2 (en)

Priority Applications (10)

Application Number Priority Date Filing Date Title
EP08761786.6A EP2132710B1 (en) 2007-01-22 2008-01-18 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
JP2009545977A JP5137970B2 (en) 2007-01-22 2008-01-18 Reality enhancement method and apparatus for automatically tracking textured planar geometric objects in real time without marking in a video stream
KR1020097017554A KR101328759B1 (en) 2007-01-22 2008-01-18 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
EP22214463.6A EP4254333A3 (en) 2007-01-22 2008-01-18 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
US12/524,101 US8315432B2 (en) 2007-01-22 2008-01-18 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
US13/606,978 US8374395B2 (en) 2007-01-22 2012-09-07 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
US13/607,627 US8374396B2 (en) 2007-01-22 2012-09-07 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
US13/606,912 US8374394B2 (en) 2007-01-22 2012-09-07 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
US13/682,106 US8805016B2 (en) 2007-01-22 2012-11-20 Method for augmenting a real scene
US13/682,146 US8824736B2 (en) 2007-01-22 2012-11-20 Systems and methods for augmenting a real scene

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0752809A FR2911707B1 (en) 2007-01-22 2007-01-22 METHOD AND DEVICES FOR INCREASED REALITY USING REAL - TIME AUTOMATIC TRACKING OF TEXTURED, MARKER - FREE PLANAR GEOMETRIC OBJECTS IN A VIDEO STREAM.
FR0752809 2007-01-22

Related Child Applications (4)

Application Number Title Priority Date Filing Date
US12/524,101 A-371-Of-International US8315432B2 (en) 2007-01-22 2008-01-18 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
US13/606,978 Continuation US8374395B2 (en) 2007-01-22 2012-09-07 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
US13/606,912 Continuation US8374394B2 (en) 2007-01-22 2012-09-07 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
US13/607,627 Continuation US8374396B2 (en) 2007-01-22 2012-09-07 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream

Publications (2)

Publication Number Publication Date
WO2008107553A2 true WO2008107553A2 (en) 2008-09-12
WO2008107553A3 WO2008107553A3 (en) 2009-05-22

Family

ID=38512514

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2008/000068 WO2008107553A2 (en) 2007-01-22 2008-01-18 Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream

Country Status (6)

Country Link
US (6) US8315432B2 (en)
EP (2) EP2132710B1 (en)
JP (1) JP5137970B2 (en)
KR (1) KR101328759B1 (en)
FR (1) FR2911707B1 (en)
WO (1) WO2008107553A2 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120242656A1 (en) * 2010-11-24 2012-09-27 Aria Glassworks, Inc. System and method for presenting virtual and augmented reality scenes to a user
JP2013508844A (en) * 2009-10-20 2013-03-07 トタル・イメルジヨン Method, computer program, and apparatus for hybrid tracking of real-time representations of objects in a sequence of images
US8907983B2 (en) 2010-10-07 2014-12-09 Aria Glassworks, Inc. System and method for transitioning between interface modes in virtual and augmented reality applications
US8953022B2 (en) 2011-01-10 2015-02-10 Aria Glassworks, Inc. System and method for sharing virtual and augmented reality scenes between users and viewers
US9017163B2 (en) 2010-11-24 2015-04-28 Aria Glassworks, Inc. System and method for acquiring virtual and augmented reality scenes by a user
US9070219B2 (en) 2010-11-24 2015-06-30 Aria Glassworks, Inc. System and method for presenting virtual and augmented reality scenes to a user
US9118970B2 (en) 2011-03-02 2015-08-25 Aria Glassworks, Inc. System and method for embedding and viewing media files within a virtual and augmented reality scene
US9626799B2 (en) 2012-10-02 2017-04-18 Aria Glassworks, Inc. System and method for dynamically displaying multiple virtual and augmented reality scenes on a single display
US10133950B2 (en) 2011-03-04 2018-11-20 Qualcomm Incorporated Dynamic template tracking
US10769852B2 (en) 2013-03-14 2020-09-08 Aria Glassworks, Inc. Method for simulating natural perception in virtual and augmented reality scenes
US10977864B2 (en) 2014-02-21 2021-04-13 Dropbox, Inc. Techniques for capturing and displaying partial motion in virtual or augmented reality scenes

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8817045B2 (en) 2000-11-06 2014-08-26 Nant Holdings Ip, Llc Interactivity via mobile image recognition
EP2764899A3 (en) 2005-08-29 2014-12-10 Nant Holdings IP, LLC Interactivity via mobile image recognition
US8294766B2 (en) * 2009-01-28 2012-10-23 Apple Inc. Generating a three-dimensional model using a portable electronic device recording
JP5388932B2 (en) * 2009-04-30 2014-01-15 キヤノン株式会社 Information processing apparatus and control method thereof
FR2946446B1 (en) 2009-06-08 2011-07-15 Total Immersion METHOD AND DEVICE FOR TRACKING REAL-TIME OBJECTS IN A SEQUENCE OF IMAGES IN THE PRESENCE OF OPTICAL FLOU
FR2946439A1 (en) 2009-06-08 2010-12-10 Total Immersion METHODS AND DEVICES FOR IDENTIFYING REAL OBJECTS, FOLLOWING THE REPRESENTATION OF THESE OBJECTS AND INCREASED REALITY IN AN IMAGE SEQUENCE IN CUSTOMER-SERVER MODE
FR2946444B1 (en) 2009-06-08 2012-03-30 Total Immersion METHOD AND APPARATUS FOR CALIBRATING AN IMAGE SENSOR USING A REAL TIME SYSTEM FOR TRACKING OBJECTS IN AN IMAGE SEQUENCE
JP5757681B2 (en) 2009-08-12 2015-07-29 富士フイルム株式会社 CELLULOSE DERIVATIVE, RESIN COMPOSITION, MOLDED BODY, PROCESS FOR PRODUCING THE SAME, AND CASE FOR ELECTRICAL / Electronic Equipment
JP5470032B2 (en) 2009-08-12 2014-04-16 富士フイルム株式会社 Cellulose derivative, thermoforming material, molded body, method for producing the same, and casing for electric and electronic equipment
ITTV20090191A1 (en) * 2009-09-30 2011-04-01 Fab Spa PROCEDURE TO ASSOCIATE AUDIO / VIDEO INFORMATION CONTENTS TO A PHYSICAL SUPPORT
US8605141B2 (en) 2010-02-24 2013-12-10 Nant Holdings Ip, Llc Augmented reality panorama supporting visually impaired individuals
US9132352B1 (en) 2010-06-24 2015-09-15 Gregory S. Rabin Interactive system and method for rendering an object
US9514654B2 (en) 2010-07-13 2016-12-06 Alive Studios, Llc Method and system for presenting interactive, three-dimensional learning tools
US9013550B2 (en) 2010-09-09 2015-04-21 Qualcomm Incorporated Online reference generation and tracking for multi-user augmented reality
HUE047021T2 (en) 2010-09-20 2020-04-28 Qualcomm Inc An adaptable framework for cloud assisted augmented reality
KR101350033B1 (en) * 2010-12-13 2014-01-14 주식회사 팬택 Terminal and method for providing augmented reality
US9092061B2 (en) 2011-01-06 2015-07-28 David ELMEKIES Augmented reality system
US9652046B2 (en) 2011-01-06 2017-05-16 David ELMEKIES Augmented reality system
USD648796S1 (en) 2011-01-31 2011-11-15 Logical Choice Technologies, Inc. Educational card
USD648390S1 (en) 2011-01-31 2011-11-08 Logical Choice Technologies, Inc. Educational card
USD654538S1 (en) 2011-01-31 2012-02-21 Logical Choice Technologies, Inc. Educational card
USD647968S1 (en) 2011-01-31 2011-11-01 Logical Choice Technologies, Inc. Educational card
USD648391S1 (en) 2011-01-31 2011-11-08 Logical Choice Technologies, Inc. Educational card
USD675648S1 (en) 2011-01-31 2013-02-05 Logical Choice Technologies, Inc. Display screen with animated avatar
US8488011B2 (en) 2011-02-08 2013-07-16 Longsand Limited System to augment a visual data stream based on a combination of geographical and visual information
JP5377537B2 (en) * 2011-02-10 2013-12-25 株式会社エヌ・ティ・ティ・ドコモ Object display device, object display method, and object display program
JP5724543B2 (en) * 2011-03-31 2015-05-27 ソニー株式会社 Terminal device, object control method, and program
KR101056418B1 (en) * 2011-03-31 2011-08-11 주식회사 맥스트 Apparatus and method for tracking augmented reality contents using mobile sensors
US8810598B2 (en) 2011-04-08 2014-08-19 Nant Holdings Ip, Llc Interference based augmented reality hosting platforms
US8493353B2 (en) 2011-04-13 2013-07-23 Longsand Limited Methods and systems for generating and joining shared experience
US8457355B2 (en) * 2011-05-05 2013-06-04 International Business Machines Corporation Incorporating video meta-data in 3D models
US20130050499A1 (en) * 2011-08-30 2013-02-28 Qualcomm Incorporated Indirect tracking
WO2013079098A1 (en) * 2011-11-29 2013-06-06 Layar B.V. Dynamically configuring an image processing function
EP2602588A1 (en) * 2011-12-06 2013-06-12 Hexagon Technology Center GmbH Position and Orientation Determination in 6-DOF
US9430876B1 (en) 2012-05-10 2016-08-30 Aurasma Limited Intelligent method of determining trigger items in augmented reality environments
US9064326B1 (en) 2012-05-10 2015-06-23 Longsand Limited Local cache of augmented reality content in a mobile computing device
US9299160B2 (en) 2012-06-25 2016-03-29 Adobe Systems Incorporated Camera tracker target user interface for plane detection and object creation
US10013623B2 (en) * 2012-06-29 2018-07-03 Blackberry Limited System and method for determining the position of an object displaying media content
US20140015931A1 (en) * 2012-07-12 2014-01-16 Samsung Electronics Co., Ltd. Method and apparatus for processing virtual world
JP6192264B2 (en) * 2012-07-18 2017-09-06 株式会社バンダイ Portable terminal device, terminal program, augmented reality system, and clothing
CN103065328B (en) * 2012-12-29 2015-08-26 四川虹微技术有限公司 A kind of trace point frequency upgrading method of following the tracks of based on infrared light spot
US10127724B2 (en) * 2013-01-04 2018-11-13 Vuezr, Inc. System and method for providing augmented reality on mobile devices
KR20140108047A (en) 2013-02-28 2014-09-05 삼성전자주식회사 Method for tracking a moving object and a controlling apparatus capable of tracking a moving object
US9025823B2 (en) 2013-03-12 2015-05-05 Qualcomm Incorporated Tracking texture rich objects using rank order filtering
US10733798B2 (en) 2013-03-14 2020-08-04 Qualcomm Incorporated In situ creation of planar natural feature targets
US9070217B2 (en) 2013-03-15 2015-06-30 Daqri, Llc Contextual local image recognition dataset
JP6255706B2 (en) 2013-04-22 2018-01-10 富士通株式会社 Display control apparatus, display control method, display control program, and information providing system
US10509533B2 (en) 2013-05-14 2019-12-17 Qualcomm Incorporated Systems and methods of generating augmented reality (AR) objects
WO2014193342A1 (en) * 2013-05-28 2014-12-04 Hewlett-Packard Development Company, L.P. Mobile augmented reality for managing enclosed areas
US9582516B2 (en) 2013-10-17 2017-02-28 Nant Holdings Ip, Llc Wide area augmented reality location-based services
JP6192107B2 (en) * 2013-12-10 2017-09-06 Kddi株式会社 Video instruction method, system, terminal, and program capable of superimposing instruction image on photographing moving image
JP6156930B2 (en) * 2013-12-10 2017-07-05 Kddi株式会社 Video instruction method, system, terminal, and program capable of superimposing instruction image on photographing moving image
JP6244954B2 (en) * 2014-02-06 2017-12-13 富士通株式会社 Terminal apparatus, information processing apparatus, display control method, and display control program
US9677840B2 (en) 2014-03-14 2017-06-13 Lineweight Llc Augmented reality simulator
WO2015175730A1 (en) * 2014-05-13 2015-11-19 Nant Vision, Inc. Augmented reality content rendering via albedo models, systems and methods
US20170061700A1 (en) * 2015-02-13 2017-03-02 Julian Michael Urbach Intercommunication between a head mounted display and a real world object
US9646421B2 (en) 2015-04-14 2017-05-09 International Business Machines Corporation Synchronizing an augmented reality video stream with a displayed video stream
US10198819B2 (en) * 2015-11-30 2019-02-05 Snap Inc. Image segmentation and modification of a video stream
CN105427333B (en) * 2015-12-22 2019-06-11 厦门美图之家科技有限公司 Real-time Registration, system and the camera terminal of video sequence image
US10471304B2 (en) 2016-03-08 2019-11-12 Sportsmedia Technology Corporation Systems and methods for integrated automated sports data collection and analytics platform
US10074205B2 (en) * 2016-08-30 2018-09-11 Intel Corporation Machine creation of program with frame analysis method and apparatus
FR3057950B1 (en) * 2016-10-24 2018-10-19 Nexter Systems METHOD FOR AIDING THE LOCATION OF AN OBJECTIVE AND OBSERVATION DEVICE FOR IMPLEMENTING SAID METHOD
WO2018078607A1 (en) 2016-10-31 2018-05-03 Wildhaber Fabien A method and apparatus for detection of light-modulated signals in a video stream
EP3336805A1 (en) * 2016-12-15 2018-06-20 Thomson Licensing Method and device for a placement of a virtual object of an augmented or mixed reality application in a real-world 3d environment
US10832055B2 (en) 2018-01-31 2020-11-10 Sportsmedia Technology Corporation Systems and methods for providing video presentation and video analytics for live sporting events
US10818093B2 (en) 2018-05-25 2020-10-27 Tiff's Treats Holdings, Inc. Apparatus, method, and system for presentation of multimedia content including augmented reality content
US10984600B2 (en) 2018-05-25 2021-04-20 Tiff's Treats Holdings, Inc. Apparatus, method, and system for presentation of multimedia content including augmented reality content
US11527265B2 (en) * 2018-11-02 2022-12-13 BriefCam Ltd. Method and system for automatic object-aware video or audio redaction
EA202191443A1 (en) * 2018-11-23 2021-08-25 Джини Гмбх AUGMENTED REALITY SYSTEMS AND METHODS USING WEB BROWSERS
EP3891700A1 (en) * 2018-12-05 2021-10-13 Telefonaktiebolaget Lm Ericsson (Publ) Object location determination in frames of a video stream
KR102232408B1 (en) 2019-01-29 2021-03-26 순천대학교 산학협력단 Augmented Reality system for advertising platform based image analysis
JP7313862B2 (en) * 2019-03-29 2023-07-25 キヤノン株式会社 Information processing device, method, and program
KR102354918B1 (en) * 2019-09-05 2022-01-21 라인플러스 주식회사 Method, user device, server, and recording medium for creating composite videos
KR102314782B1 (en) * 2019-10-28 2021-10-19 네이버랩스 주식회사 apparatus and method of displaying three dimensional augmented reality
CN111372013A (en) * 2020-03-16 2020-07-03 广州秋田信息科技有限公司 Video rapid synthesis method and device, computer equipment and storage medium
US20220207831A1 (en) * 2020-12-23 2022-06-30 Facebook Technologies, Llc Simulated control for 3- dimensional human poses in virtual reality environments
US20220414819A1 (en) * 2021-06-29 2022-12-29 Microsoft Technology Licensing, Llc Image rotation for stream of input images
CN114639214B (en) * 2022-05-23 2022-08-12 安徽送变电工程有限公司 Intelligent safety distance early warning system and method for electric power hoisting operation

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0838068B1 (en) * 1995-07-10 2005-10-26 Sarnoff Corporation Method and system for rendering and combining images
JPH0991453A (en) * 1995-09-21 1997-04-04 Sanyo Electric Co Ltd Image processing method and its unit
KR100327120B1 (en) 1999-12-13 2002-03-13 오길록 Image Registration Method Using 3D Tracker And Computer Vision For Augmented Reality
US6574353B1 (en) * 2000-02-08 2003-06-03 University Of Washington Video object tracking using a hierarchy of deformable templates
JP2004537082A (en) * 2001-01-26 2004-12-09 ザクセル システムズ インコーポレイテッド Real-time virtual viewpoint in virtual reality environment
JP2006507722A (en) * 2002-10-22 2006-03-02 アートゥールワークス Surface tracking in 3D scenes using natural visual features of the surface
GB2411532B (en) * 2004-02-11 2010-04-28 British Broadcasting Corp Position determination
JP4373840B2 (en) * 2004-04-21 2009-11-25 日本電信電話株式会社 Moving object tracking method, moving object tracking program and recording medium thereof, and moving object tracking apparatus
US20050289590A1 (en) * 2004-05-28 2005-12-29 Cheok Adrian D Marketing platform
JP3926837B2 (en) * 2004-06-04 2007-06-06 松下電器産業株式会社 Display control method and apparatus, program, and portable device
JP4568050B2 (en) * 2004-07-16 2010-10-27 日本放送協会 Camera parameter calculation calibration apparatus and camera parameter calculation calibration program
KR20060021001A (en) 2004-09-02 2006-03-07 (주)제니텀 엔터테인먼트 컴퓨팅 Implementation of marker-less augmented reality and mixed reality system using object detecting method
US8264505B2 (en) * 2007-12-28 2012-09-11 Microsoft Corporation Augmented reality and filtering

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LEPETIT ET AL.: "Fully automated and stable registration for augmented reality applications", ISMAR '03, 2003

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013508844A (en) * 2009-10-20 2013-03-07 トタル・イメルジヨン Method, computer program, and apparatus for hybrid tracking of real-time representations of objects in a sequence of images
US8907983B2 (en) 2010-10-07 2014-12-09 Aria Glassworks, Inc. System and method for transitioning between interface modes in virtual and augmented reality applications
US9223408B2 (en) 2010-10-07 2015-12-29 Aria Glassworks, Inc. System and method for transitioning between interface modes in virtual and augmented reality applications
US9723226B2 (en) 2010-11-24 2017-08-01 Aria Glassworks, Inc. System and method for acquiring virtual and augmented reality scenes by a user
US10893219B2 (en) 2010-11-24 2021-01-12 Dropbox, Inc. System and method for acquiring virtual and augmented reality scenes by a user
US9017163B2 (en) 2010-11-24 2015-04-28 Aria Glassworks, Inc. System and method for acquiring virtual and augmented reality scenes by a user
US9041743B2 (en) * 2010-11-24 2015-05-26 Aria Glassworks, Inc. System and method for presenting virtual and augmented reality scenes to a user
US9070219B2 (en) 2010-11-24 2015-06-30 Aria Glassworks, Inc. System and method for presenting virtual and augmented reality scenes to a user
US10462383B2 (en) 2010-11-24 2019-10-29 Dropbox, Inc. System and method for acquiring virtual and augmented reality scenes by a user
US11381758B2 (en) 2010-11-24 2022-07-05 Dropbox, Inc. System and method for acquiring virtual and augmented reality scenes by a user
US20120242656A1 (en) * 2010-11-24 2012-09-27 Aria Glassworks, Inc. System and method for presenting virtual and augmented reality scenes to a user
US8953022B2 (en) 2011-01-10 2015-02-10 Aria Glassworks, Inc. System and method for sharing virtual and augmented reality scenes between users and viewers
US9271025B2 (en) 2011-01-10 2016-02-23 Aria Glassworks, Inc. System and method for sharing virtual and augmented reality scenes between users and viewers
US9118970B2 (en) 2011-03-02 2015-08-25 Aria Glassworks, Inc. System and method for embedding and viewing media files within a virtual and augmented reality scene
US10133950B2 (en) 2011-03-04 2018-11-20 Qualcomm Incorporated Dynamic template tracking
US9626799B2 (en) 2012-10-02 2017-04-18 Aria Glassworks, Inc. System and method for dynamically displaying multiple virtual and augmented reality scenes on a single display
US10068383B2 (en) 2012-10-02 2018-09-04 Dropbox, Inc. Dynamically displaying multiple virtual and augmented reality views on a single display
US10769852B2 (en) 2013-03-14 2020-09-08 Aria Glassworks, Inc. Method for simulating natural perception in virtual and augmented reality scenes
US11367259B2 (en) 2013-03-14 2022-06-21 Dropbox, Inc. Method for simulating natural perception in virtual and augmented reality scenes
US11893701B2 (en) 2013-03-14 2024-02-06 Dropbox, Inc. Method for simulating natural perception in virtual and augmented reality scenes
US10977864B2 (en) 2014-02-21 2021-04-13 Dropbox, Inc. Techniques for capturing and displaying partial motion in virtual or augmented reality scenes
US11854149B2 (en) 2014-02-21 2023-12-26 Dropbox, Inc. Techniques for capturing and displaying partial motion in virtual or augmented reality scenes

Also Published As

Publication number Publication date
US8374394B2 (en) 2013-02-12
EP2132710A2 (en) 2009-12-16
US8374395B2 (en) 2013-02-12
US20100220891A1 (en) 2010-09-02
JP2010517129A (en) 2010-05-20
US20130121531A1 (en) 2013-05-16
US20130076790A1 (en) 2013-03-28
FR2911707B1 (en) 2009-07-10
FR2911707A1 (en) 2008-07-25
US8315432B2 (en) 2012-11-20
JP5137970B2 (en) 2013-02-06
KR101328759B1 (en) 2013-11-13
US8374396B2 (en) 2013-02-12
US20120328158A1 (en) 2012-12-27
US20130004022A1 (en) 2013-01-03
EP4254333A3 (en) 2023-12-06
KR20090110357A (en) 2009-10-21
US8824736B2 (en) 2014-09-02
EP4254333A2 (en) 2023-10-04
WO2008107553A3 (en) 2009-05-22
EP2132710B1 (en) 2023-01-04
US8805016B2 (en) 2014-08-12
US20120327249A1 (en) 2012-12-27

Similar Documents

Publication Publication Date Title
EP2132710B1 (en) Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
US10636220B2 (en) Methods and systems for generating a merged reality scene based on a real-world object and a virtual object
KR101535579B1 (en) Augmented reality interaction implementation method and system
US10891781B2 (en) Methods and systems for rendering frames based on virtual entity description frames
WO2008125754A1 (en) Method and device for determining the exposure of a three-dimensional object in an image, and method and device for creating at least one key image for object tracking
EP2111605B1 (en) Method and device for creating at least two key images corresponding to a three-dimensional object
US20140181630A1 (en) Method and apparatus for adding annotations to an image
EP2896200B1 (en) Augmented reality apparatus and method
FR2933218A1 (en) METHOD AND APPARATUS FOR REAL-TIME DETECTION OF INTERACTIONS BETWEEN A USER AND AN INCREASED REALITY SCENE
KR20220119123A (en) Merge local maps from mapping devices
EP0847201B1 (en) Real time tracking system for moving bodies on a sports field
JP2016500169A (en) Annotation method and apparatus
EP2936442A1 (en) Method and apparatus for adding annotations to a plenoptic light field
WO2007017599A1 (en) Gunnery training device using a weapon
FR3054062A1 (en) SYSTEM AND METHOD FOR ONBOARD CAPTURE AND 3D / 360 ° REPRODUCTION OF THE MOVEMENT OF AN OPERATOR IN ITS ENVIRONMENT
JP2023553917A (en) File formats with fluctuating data
CN116977517A (en) Image processing method, device, equipment and readable storage medium
Ayad Using Augmented Reality in Enhancing Museum Experience
ITRM20090322A1 (en) METHOD AND IDENTIFICATION SYSTEM OF OBJECTS PRESENT IN A PHOTO OR A DIGITAL VIDEO

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08761786

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 2009545977

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2008761786

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020097017554

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 12524101

Country of ref document: US