WO2010142896A1 - Procédés et dispositifs d'identification d'objets réels, de suivi de la représentation de ces objets et de réalité augmentée, dans une séquence d'images, en mode client-serveur - Google Patents
Procédés et dispositifs d'identification d'objets réels, de suivi de la représentation de ces objets et de réalité augmentée, dans une séquence d'images, en mode client-serveur Download PDFInfo
- Publication number
- WO2010142896A1 WO2010142896A1 PCT/FR2010/051105 FR2010051105W WO2010142896A1 WO 2010142896 A1 WO2010142896 A1 WO 2010142896A1 FR 2010051105 W FR2010051105 W FR 2010051105W WO 2010142896 A1 WO2010142896 A1 WO 2010142896A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- real object
- objects
- representation
- real
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/16—Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
Definitions
- the present invention relates to the combination of real and virtual images in real time, in an augmented reality system, and more particularly to methods and devices for identifying real objects, monitoring the representation of these objects and of reality augmented, in a sequence of images, in client-server mode to allow in particular the implementation of augmented reality application in remote devices, in particular mobile devices comprising low resources.
- Augmented reality is intended 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 external data of the scene represented by the images, for example coordinates directly derived from a game scenario, or by related data. to certain elements of this scene, for example coordinates of a particular point of the scene such as the hand of a player or a decorative element.
- the virtual objects inserted correspond to real elements present in the scene. Thus, it may be necessary to perform a preliminary step of identifying or recognizing these real objects present in the scene, especially when these objects are numerous.
- the position and orientation of the virtual objects are determined by data related to certain elements of this 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.
- the objective of the visual tracking or sensor tracking algorithms is to find very accurately, in a real scene, the pose, ie the position and the orientation, of an object whose geometry information is available or, in an equivalent way, to find the extrinsic position and orientation parameters of a camera filming this object, thanks to the image analysis.
- tracking algorithms also called target tracking algorithms
- use a marker that can be visual or use other means such as sensors, preferably wireless type radio frequency or infrared.
- 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 video stream and a keyframe, called a keyframe. in English terminology, obtained at the initialization of the system and a key image updated during the execution of the visual tracking.
- the principle of this algorithm is described for example in the article entitled "Fusing Online and Offline Information for Stable 3D Tracking in Real Time" - Luca Vacchetti, Pascal Lepetit, Pascal Fua - IEEE Transactions on Pattern Analysis and Machine Intelligence 2004.
- this visual tracking algorithm is to find, in a real scene, the pose of an object whose three-dimensional mesh is available in the form of a three-dimensional model (3D), or to find, in an equivalent way, the extrinsic parameters of position and orientation of a camera filming this object, still, thanks to the image analysis.
- the current image is here 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.
- 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.
- the 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. 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 monitoring application. It is interesting to note that for targets or objects of planar type, for example a magazine, these keyframes can be directly generated from an available image of the object, for example in JPEG or bitmap format. In the case of non-planar targets, for example a face, it is possible to generate a set of keyframes from a three-dimensional texture model of the object.
- Each offline 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 image.
- Points of interest are, for example, built from a Harris point detector, SURF (Speeded-Up Robust Features), SIFT (Scale-Invading Feature) Transform in Anglo-Saxon terminology), YAPE (acronym for Yet Another Point Extractor in English terminology) or MSER (acronym for Maximally Stable Extremal Regions in Anglo-Saxon terminology) and represent locations with high values of directional gradients in the image and a description of variation of the image in the vicinity of these points.
- These points of interest may also contain descriptors that describe the neighborhood of a point. These descriptors can take the form of image portions (Harris) or gradient values in a neighborhood of a point.
- 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 towards the marker attached to the camera.
- T p ⁇ c the initial affine transformation
- the offline keyframes are processed in order to position points of interest according to the parameters chosen when launching the application. These parameters are specified empirically for each type of application use and allow the detection and matching application to be adapted to obtain a better quality of estimation of 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 three-dimensional model of the object on the real object. When such a match has been found, the tracking algorithm goes into steady state.
- the movements of the object are followed by an image on the other and the drifts are compensated by the information contained in the offline key image retained during initialization.
- this offline keyframe can be reprojected using the estimated pose of the previous image.
- This reprojection thus makes it possible to have a key image that contains a representation of the object similar to that of the current image and can thus allow the algorithm to operate with points of interest and descriptors that are not robust to rotations.
- the tracking application thus combines two distinct types of algorithms: a detection of points of interest, for example a modified version of Harris point detection or detection of SIFT or SURF points, and a reprojection technique. points of interest positioned on the three-dimensional model towards the plane image.
- a point p of the image is the projection of a point P of the real scene with p ⁇ P 1 • P E • T p ⁇ c • P
- Pi is the matrix of the intrinsic parameters of the camera, ie its focal length, the center of the image and the offset
- P E is the matrix of the extrinsic parameters of the camera, that is to say the position of the camera in space real
- T p ⁇ c is the matrix of passage between the reference associated with the object followed towards the marker attached to 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.
- error minimization is used in order to find the best solution for the estimation T p ⁇ c by using the set of three-dimensional correspondences on the geometric model and two-dimensional (2D) in the current image and in the keyframe.
- an RANSAC Random SAmple Consensus
- PROSAC cronym for PROgressive SAmple Consensus in English terminology
- the applicant has developed a visual tracking algorithm for objects that do not use a marker and whose originality lies in the pairing of particular points between the current (and previous) image of a video stream and a set of Keyframes, obtained automatically when the system is booted.
- Such an algorithm is in particular described in the French patent application FR 2 911 707.
- This algorithm makes it possible, in a first step, to identify the object positioned in front of the camera and then to initialize completely automatically without positioning constraints. the process of tracking the object.
- This algorithm makes it possible in particular to identify and follow a large number of objects present at the same time in a video stream and thus allows the identification and tracking of targets or objects in a real scene. It is particularly robust to occlusions and allows you to follow objects whose 2D projections in the image overlap.
- These objects can be of different geometries and have various colorimetric aspects. By way of example, but in a non-limiting way, they may be textured trays, faces, clothes, natural scenes, television studios or buildings.
- these object tracking implementations in a client-server mode have certain limitations. In particular, they do not identify an object whose representation is present in an image compared to a very limited number of objects.
- the processing time performed by the servers quickly becomes very high when a large number of clients transmit requests. For example, in order to make an augmented reality application, the server must receive all the images of the video stream of its clients to insert synthesis objects and retransmit this video stream to the clients.
- the invention solves at least one of the problems discussed above.
- the subject of the invention is thus a method for computer identification of at least one real object whose representation is present in at least one image, in real time, in a client-server architecture, this method comprising the steps following, - acquisition of said at least one image;
- the method according to the invention thus makes it possible to identify in real time real objects present in the field of a camera while benefiting from a client-server architecture. According to this method, the resources necessary for the identification of real objects are distributed between the client and the server while limiting the volume of data exchanged.
- said step of determining at least one singular element of said at least one image is repeated for a plurality of images, said at least one information relating to said at least one particular singular element being estimated according to at least one element. singular determined in several images of said plurality of images to improve the recognition of real objects.
- the method further comprises a step of transmitting to said server information relating to the installation and / or stability of the device implementing said step of acquiring said at least one image and / or the nature of said at least one real object to accelerate and / or optimize the identification of real objects.
- the method further comprises a step of receiving at least one item of data making it possible to recognize a representation of said at least one real object in at least one second distinct image of said at least one image, called at least a first image, in response to said transmission, for tracking said real object.
- the method according to the invention can thus be used to follow in real time identified objects.
- the method preferably further comprises a step of receiving at least one piece of data to be inserted in an image comprising a representation of said identified real object and a step of inserting said at least one piece of data to be inserted into said image comprising said item. representation of said real object identified.
- the method thus allows the implementation of augmented reality applications.
- the invention also relates to a method for computer identification of at least one real object whose representation is present in at least one image, in real time, in a client-server type architecture, this method comprising the steps following,
- the method according to the invention thus makes it possible to identify in real time real objects present in the field of a camera while benefiting from a client-server architecture.
- the resources necessary for the identification of real objects are distributed between the client and the server while limiting the volume of data exchanged. It also allows a centralized update, in real time, of the database used to identify real objects.
- said creation step comprises a step of developing a decision structure to accelerate the identification of real objects.
- the method further comprises a step of receiving at least one complementary piece of information, said at least one complementary piece of information being used in said identification stage and being relative to the laying and / or to the stability of the device for acquiring said at least one image and / or the nature of said at least one real object in order to accelerate and / or optimize the identification of real objects.
- said at least one piece of information received relates to at least two singular elements of at least one image, said step of identifying said at least one real object comprising a step of analyzing the relative position of said at least two objects. singular elements to improve the identification of real objects among a large number of real objects.
- the method further comprises a step of estimating the laying of said at least one identified real object, said at least one information relating to said identification of said at least one real object comprising said estimated pose to facilitate the identification of real objects in other images.
- the method preferably further comprises a step of transmitting at least one information relating to said at least one identified real object making it possible to recognize a representation of said at least one real object in at least a second image distinct from said at least one image, called first image, to follow said real object.
- the method further comprises a step of determining at least one characteristic data of at least one representation of said at least one identified real object, said at least one information relating to said identified real object comprising said characteristic data to improve the tracking of real objects identified.
- the method further comprises a service activation step associated with said at least one identified real object.
- the method further comprises a step of transmitting at least one piece of data to be inserted in an image comprising a representation of said real object identified to allow the implementation of augmented reality applications.
- said at least one information relating to at least one singular element of an image comprises an image portion relative to said singular point.
- the invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method described above when said program is executed on a computer and a device comprising means adapted to the implementation of each step of this process.
- FIG. 1 illustrates an example of an environment in which the invention can be implemented
- FIG. 2 illustrates certain steps executed in a client and in a server to implement the invention
- FIG. 3 illustrates an example of determination of the data used to identify a planar object in images
- FIG. 4 illustrates a particular implementation of the algorithm illustrated in FIG. 2;
- FIG. 5 illustrates an exemplary device adapted to implement the invention or a part of the invention.
- FIG. 1 illustrates an example of environment 100 in which the invention can be implemented.
- the servers 105-1 and 105-2, generically referenced 105 are here accessed by the clients 110-1 to 110-3, generically referenced 110, via a network 115, for example the Internet network.
- customers 110 are mobile devices such as mobile phones, personal assistants, also called PDAs (Personal Digital Assistant), and portable personal computers, also called laptops or notebooks in English terminology.
- PDAs Personal Digital Assistant
- portable personal computers also called laptops or notebooks in English terminology.
- the invention can also be implemented with fixed devices, including standard personal computers, also called desktop in English terminology.
- connections between the clients 110-1 and 110-2 and the network 115 are here wireless connections, for example connections of the GSM type (acronym for Global System for Mobile Communications in English terminology). or WiFi while the connections between the 110-3 client and the network 115 as well as between the 105-1 and 105-2 servers are wired connections, for example Ethernet connections.
- GSM Global System for Mobile Communications
- WiFi Wireless Fidelity
- the servers 105 are used to calculate and store data making it possible to identify real objects from descriptors, to identify these objects from descriptors (during a steady state phase), to create and store media associated with these objects used to increase real images according to the pose of these objects and generate data allowing customers 110 to follow these objects in a sequence of images (during a steady state phase).
- Mobile devices are essentially used to acquire image sequences, to detect descriptors in these images and, possibly, to send them, to follow representations of objects in these images according to received data and to insert media received in these images according to the pose detected objects. It is observed that the expression server here designates a server or a group of servers.
- Figure 2 illustrates more precisely some steps performed in a client 200 and in a server 205 to implement the invention.
- a first step, executed in the server 205, is to create data for identifying the representation of objects in images (step 210).
- This step is advantageously performed offline during a learning phase. However, it can also be performed, at least partially, during a steady state phase to allow the dynamic addition of new information related to new objects or not.
- This step is repeated for each object to be identified later. It is, in principle, performed only once per object. Nevertheless, it can be repeated, in particular, when the object is modified or its identification can be improved.
- this data can be organized according to classification trees such as binary decision trees (see for example the article "Keypoint Recognition using Randomized Trees" V. Lepetit and P. Fua, EPFL, 2006) or according to structures with multiple ramifications, also called ferns-type decision trees (see for example the article "Fast Keypoint Reconnection using Random Ferns” M. Ozuysal, P. Fua and V.
- classification trees such as binary decision trees (see for example the article "Keypoint Recognition using Randomized Trees" V. Lepetit and P. Fua, EPFL, 2006) or according to structures with multiple ramifications, also called ferns-type decision trees (see for example the article "Fast Keypoint Reconnection using Random Ferns" M. Ozuysal, P. Fua and V.
- Another step is to create media associated with the objects that can be identified (step 220). These media are here stored in the database 215. They represent for example text, sounds, still or moving images and / or three-dimensional models animated textures or not.
- step 220 is advantageously performed offline during a learning phase in the server 205. Nevertheless, this step may also occur during the steady state of the application in order to avoid a service outage. Moreover, steps 210 and / or 215 may be performed in a remote server so as not to disturb the operation of server 205. It should be noted here that steps 210 and 215 may be executed one after the other, in one way or another, or in a parallel way. These two steps make it possible to create a database that is used during the steady state of the augmented reality application.
- a first step of the augmented reality application is to acquire, from the client 200, an image (step 225).
- an image sensor associated with the "client” device enables the acquisition of images in real time with a frequency and a resolution that depend on the technical characteristics of the device.
- the captured images are then preferably converted to grayscale in order to improve the robustness, in particular to the variations in brightness and the unequal technical characteristics of the image sensors, and to simplify the calculations.
- Images acquired and possibly converted can also be sub-sampled and filtered, for example with a "low-pass” filter, to optimize calculation times and reduce the noise present in the image.
- the image acquired and converted is called the current image.
- a next step implemented in the client 200, the points of interest of the current image are detected in order to construct, from these, descriptors.
- a detector of points of interest called keypoints in English terminology. This may include a Harris point detector or MSER, FAST, SURF, SIFT or YAPE type detectors.
- descriptors are constructed to allow for matching with points identified on reference objects.
- the descriptors are preferably determined on the "client" device 200 to prevent the transmission of images and to optimize the computing times of the servers.
- the determined descriptors or portions of extracted images are then transmitted to the server as illustrated by the arrow 235 to allow the identification of objects on the current image from this information.
- an object identification step is performed (step 240).
- the server uses these data, in whole or in part, to estimate and associate to them a probability of belonging to one of the objects registered in the database of the system.
- An object is identified, for example, as soon as the estimated probability reaches a predetermined threshold.
- object identification may end as soon as an object or predetermined number of objects is identified or continue until the processing of all received data.
- the server 205 When an object is identified, the server 205 generates information for tracking this object (step 245). Depending on the tracking algorithm used in the "client" device 200 and the type of object recognized, this may be an identification of the object (for example a string of characters), the laying of the object, an identification of the number of the image in which the object was found (called timecode in English terminology), an image containing the object and its associated pose or a set of descriptors describing the object, for example 2D / 3D mappings and an associated image portion, and its geometry. As indicated by the arrow 250, this information is transmitted to the client 200.
- this information is transmitted to the client 200.
- an object tracking algorithm implemented in the "client” device may be initialized to begin tracking the identified objects (step 255).
- This first information is, for example, the pose of the object in the image and its geometry.
- the information received afterwards, including the descriptors, is used "on the fly” by the object tracking algorithm to improve the results. Thus, it is not necessary for the client 200 to receive all the tracking information from the server 205 to begin tracking an object.
- the server 205 when the server 205 has identified one or more objects, it transmits to the client 200 the media associated with the identified objects.
- the client 200 when objects are followed in a sequence of images, in the "client” device, it is possible to enrich these images (step 265). In other words, it is then possible to correlate the display of synthesis objects with the pose of the real objects present in the scene.
- these media may take the form of text superimposed in the video stream, images, video streams to be displayed, for example, on 3D elements present in the scene, audio streams and / or animated 3D synthesis objects.
- object identification can be achieved using decision trees, such as binary decision trees or an equivalent ferns approach.
- Saved objects can have geometries close to the plane or any 3D geometry. If the objects are substantially planar, the subset of views is generated using affine transformations. If the objects have any 3D geometry, a projective model can be used to generate the subset of views. This process allows to obtain the index of the objects represented in the current image but also to estimate their pose in six degrees of freedom (position and orientation).
- a large number of views are synthesized from at least one image of the target object. Points of interest are extracted from each of these views. If the object is substantially planar, the views are synthesized by applying an affine transformation to the image. If, on the other hand, the object is of any geometry, the views are synthesized from a 3D texture model of it using conventional rendering techniques, for example OpenGL (Open Graphics Library) originally developed by Silicon Graphics Inc.) or Direct3D (developed by Microsoft).
- OpenGL Open Graphics Library
- Direct3D developed by Microsoft
- points of interest k are detected on an available image of the object, for example with a YAPE detector, and a small image portion around this point, or window, for example a block of 32x32 pixels (acronym for picture element in English terminology), is extracted.
- image portions surrounding the points of interest / c are close to the plane and can be processed with homographic transformations.
- a front view of the target object is sufficient to generate the subset of the new views.
- A R ⁇ R ⁇ SR ⁇
- R ⁇ and R ⁇ are two rotation matrices respectively parametrized by the angles ⁇ and ⁇
- S diag [ ⁇ i, ⁇ 2] is a matrix scale.
- the object is more complex, it is possible to use a 3D model built automatically, for example with a three-dimensional scanner or a 3D model obtained using a modeler or a 3D reconstruction software based on multiple images of the same object as ImageModeler from RealViz (ImageModeler is a trademark).
- This template is then used to generate new views with standard rendering techniques. When all views are generated, a set of image portions corresponding to different views is obtained for each point of interest.
- the most representative points of interest are selected.
- the k points of interest should have a high probability P (/ c /) of being found in an image if they are visible, considering perspective distortions and the presence of noise.
- T is the geometric transformation used to synthesize a new view
- T is an affine transformation or projection.
- the probability P ( / c,) can be estimated simply by counting the number of times the point is in the reference system, and all points of interest and associated image portions are then constructed with only the points of interest. interest having a probability P (/ c,) greater than a predetermined threshold.
- a decision tree here contains nodes that represent a simple test to perform and to separate the space portions of images to be classified. This test consists, for example, in comparing the intensity (I) of two pixels (mi and m 2 ) belonging to a portion of an image, preferably smoothed by a Gaussian. Thus, if the intensity of the mid pixel, denoted l (r ⁇ ii), is greater than the intensity of the pixel m 2 , noted l (m 2 ), a first branch of the tree, starting from the considered node, is selected. In the opposite case, if l (r ⁇ ii) is less than Km 2 ), the other branch of the node is selected.
- Each sheet contains an estimate of the probability distribution, determined a posteriori, of all the classes based on the training data.
- a new image portion is classified by making it descend into the tree and performing on it the elementary test at each node by considering different pixels mi and m 2 , preferably randomly chosen.
- a The probability of belonging to a class is assigned to it. This probability depends on the probability distribution stored in the sheet that is updated during the learning phase.
- a single tree can not usually describe all possible tests and may lead to insufficient results.
- several trees are constructed from a subset of image portions randomly drawn from the set of image portions corresponding to the points of interest found. Each of the trees thus describes a single partition of the space of a portion of an image.
- the responses of each tree are combined to classify a portion of the image.
- the trees preferably have a limited depth, for example 15.
- the matches found in this real-time classification are used to estimate plan homography using standard minimization techniques.
- a RANSAC type algorithm can, for example, be used to make a first estimate of the affine transformation in order, in particular, to reject false matches and to estimate a first pose of the object in the image. Then, it is possible to use a Levenberg-Marquardt nonlinear minimization to refine this first estimate. It is important to note that a large number of objects can be registered in the system (tens of thousands). This has for statistical consequence that some objects of this recognition database may have similarities and cause errors during the estimation phase of probabilities. In order to remedy this problem, the geometric information on the relative position of the points of interest described above is advantageously used in order to choose the best candidate among the potential identifications.
- the data used to identify objects comprise pairs of points of interest and portions of images, organized in the form of decision trees.
- Figure 3 illustrates an example of determining data used to identify a planar object in images.
- the representation 300 of a game card is here converted to reduce its dynamics.
- the color image 300 is converted to the grayscale image 305. As indicated above, such a conversion notably makes it possible to improve the robustness of the identification of objects.
- the points of interest of the image 305 are then determined according to a standard algorithm implementing, for example, a Harris detector which makes it possible to find, in particular, point 310.
- affine and / or Other types of transformations, in particular degradations are applied to the image 305.
- the image 305 as well as the resulting images of these transformations are then used for the extraction of portions of images around the determined points of interest. Examples of such image portions extracted around point 310 are shown in Figure 3 with references 315-1 through 315-4. It is thus possible to extract all the portions of images (reference
- an object tracking algorithm comprising a step of identifying objects using binary type decision trees or ferns structures is combined with a scene augmentation algorithm according to a client-server mode.
- FIG. 4 Such an embodiment is illustrated in FIG. 4 between a client 400 and a server 405. It corresponds to a particular implementation of the algorithm illustrated in FIG. 2.
- a first step, performed in the server 405, is to create data for identifying the representation of objects in an image (step 410). As indicated above, this step, advantageously performed offline during a learning phase, is repeated for each object to be identified later.
- the data created here points of interest associated with portions of images, are organized in decision trees of binary type or in structures with multiple ramifications of ferns type, the main difference between these two approaches residing in the construction of the model. allowing the search of probabilities.
- This classification in the form of decision structures allows fast matching with points of interest of a current image and associated image portions received by the server.
- the image acquisition and, possibly, conversion step implemented in the "client” device 400 and making it possible to obtain a current image (step 415), are similar to the step 225 described previously.
- a next step (step 420), implemented in the client 400 the points of interest of the current image are detected in order to construct, from these, descriptors.
- points of interest of YAPE type are used.
- the associated descriptors correspond to the image portions around these points.
- a Harris, MSER, FAST, SURF or SIFT points of interest detector can be used.
- the descriptors, as well as their position (u, v) in the current image are transmitted, preferably in continuous flow, to the server 405 as indicated by the arrow 425. Descriptors of several successive images can be sent. The descriptors corresponding to different images are advantageously separated by tags indicating it.
- the server 405 begins to receive these descriptors and their associated position in the image, it proceeds, for each, to a matching phase to identify objects (step 430). For each object contained in the object database to be recognized, it updates a probability measure. When the probability measure is sufficiently high for at least one given object, the identification phase ends and the identifier of the recognized object is transmitted to the client as indicated by the arrow 435.
- the "client” device 400 transmits descriptors as long as no object is recognized, that is to say as long as it does not receive object identifiers (step 440).
- a list of matches between points of interest of the current image and points of interest determined during the learning is obtained. Since the three-dimensional coordinates of these points determined during the learning are known (because the pose of the object in the learning image is known), it is possible to obtain a list of correspondence between the points of interest of the student. image (two-dimensional coordinates) and those of the object in its space (three-dimensional coordinates). It is then possible to deduce a pose of the object in the current image according to conventional methods such as those described above. This estimated pose is then transmitted to the client 400, as indicated by the arrow 450, with the description of the geometry of this object, for example a model of "wireframe” type (wireframe) in the case of a non-planar object. or both dimensions, length and width, in the case of a substantially planar object.
- the server 405 creates and transmits, as indicated by the arrow 465, a signature of the identified objects (step 460).
- the server builds that keyframe.
- the key image can advantageously be represented by a list of points of interest containing two planar coordinates (u, v), three coordinates in the reference of the object (x, y, z) and a portion of picture around this point. Only this information can be transmitted to the customer without it being necessary to transmit the key image in its entirety.
- the implemented object tracking algorithm does not use a keyframe (see for example the approach described by D. Wagner in the document “Pose Tracking from Natural Features on Mobile Phones”), it is possible to send directly the part of the database containing the classification of the identified object. If such a solution has a significant cost in terms of the volume of data to be transmitted, of the order of one megabyte, it allows the client to use this data to initialize more easily when the object tracking is stalled. .
- Yet another solution is to recreate on the "client” device, the binary type decision trees or the ferns-type multi-branch structures as a function of a reference image transmitted by the server.
- Such a solution requires computing resources in the "client” device, it makes it possible to reduce considerably the volume of data exchanged between clients and servers and to facilitate the reinitialization of the object tracking algorithm in case of stall.
- the tracking algorithm is here implemented by the "client" device (step 455). It may be based on the use of one or more obtained keyframes received from the server or on the use of decision trees received from the server or developed by the client. It should be noted that when one or more objects are identified it is no longer necessary for the client to recognize an object placed in front of the camera. Nevertheless, the identification algorithm can be automatically called, for example, when no object is tracked for a predetermined time or when the user indicates that he wishes to search for a new object, for example by using a button or the touch screen of the device.
- an augmented reality algorithm is used (step 470). It may be, for example, DfusionAR software (DfusionAR is a brand of Total Immersion) that performs this operation according to the characteristics of the device, including 3D rendering application layers (eg DirectX or OpenGL).
- DfusionAR is a brand of Total Immersion
- the algorithm described in FIGS. 2 and 4 thus makes it possible to limit the transfer of data between clients and servers to the data necessary for the recognition, the object tracking and the increase of the image sequence. to say the video stream. It is not required to transmit all the images.
- the data may be incrementally transmitted, the identification of the object being iteratively possible to perform on the considered image portions and the object tracking can begin as soon as enough descriptors are received. The same is true for displaying summary objects that can be refined as the client receives the geometric and texture data.
- the server can transmit information concerning the current image to simplify the step of recognition.
- it may be the current image itself or a histogram representing object classification probabilities.
- it will be noted in particular the possibility of transmitting to the server a set of contours obtained after the application of filters, for example of the "high pass" type, in order to improve the rate of good identification on the objects present in the recognition base. 215.
- the user can choose to recognize and track objects of type monuments.
- it can be connected to a group of servers, called cluster in English terminology, which gathers data relating to historical monuments.
- a location function for example a GPS function (acronym for Global Positioning System in English terminology), can also be used to identify the approximate position of the user.
- Such information transmitted to the server, can facilitate the step of identifying monuments or other buildings in the field of vision. This approach makes it possible to easily superimpose information on the video stream from the sensor but also to locate more finely the user. Indeed, in this case, it is not only possible to find the position of the user but also to determine its orientation in relation to the world it looks.
- the invention also allows the quick identification and tracking of objects of simpler geometry, for example movie posters or album covers.
- Different servers can be deployed to provide services tailored to different types of requests.
- identifying and tracking objects does not require sending image sequences between clients and servers.
- the only image sequences that can be transmitted are those corresponding to the media used to increase real scenes.
- conventional compression formats using, for example, the H.263, H.264 or MPEG4 codecs, may allow bandwidth gain.
- Other compression means may be used for sending audio data useful for scene augmentation.
- the application layer SIP (acronym for Session Initiation Protocol in English terminology) can, for example, be used for sending data between clients and servers.
- IP type networks (acronym for Internet Protocol in English terminology) that can be used with telecommunication networks such as GSM and GPRS (General Packet acronym). Radio Service in English terminology).
- 3G, 3G + connections for example based on UMTS technology (Universal Mobile Telecommunications System in English terminology), WiFi, LAN or Internet can be used to ensure communication between customers and customers.
- remote servers For example, in a museum, it is possible to use a set of mobile clients, including PDA type, connected to a server that gathers the necessary information for the recognition and monitoring of all paintings and sculptures visible to visitors. In this case, augmented reality makes it possible to enrich the information given to visitors on the history of a work of art.
- FIG. 5 A device adapted to implement the invention or a part of the invention is illustrated in Figure 5.
- the device shown is preferably a standard device, for example a personal computer.
- the device 500 here comprises an internal communication bus 505 to which are connected:
- a central processing unit or microprocessor 510 (CPU, acronym for Central Processing Unit in English terminology); - A read-only memory 515 (ROM, acronym for Read OnIy Memory in English terminology) may include the programs necessary for the implementation of the invention;
- RAM Random Access Memory
- cache memory 520 comprising registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs
- a communication interface 540 adapted to transmit and receive data to and from a communication network.
- the device 500 also preferably has the following elements:
- a hard disk 525 which may comprise the aforementioned programs and data processed or to be processed according to the invention.
- a memory card reader 530 adapted to receive a memory card 535 and to read or write to it data processed or to be processed according to the invention.
- the internal communication bus allows communication and interoperability between the various elements included in the device 500 or connected to it.
- the representation of the internal bus is not limiting and, in particular, the microprocessor is capable of communicating instructions to any element of the device 500 directly or via another element of the device 500.
- the executable code of each program enabling the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk 525 or in the read-only memory 515.
- the memory card 535 may contain data as well as the executable code of the aforementioned programs which, once read by the device 500, is stored in the hard disk 525.
- the executable code of the programs may be received, at least partially, through the first communication interface 540, to be stored in the same manner as described above.
- program or programs may be loaded into one of the storage means of the device 500 before being executed.
- the microprocessor 510 will control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, which instructions are stored in the hard disk 525 or in the read-only memory 515 or else in the other storage elements mentioned above. .
- the program or programs that are stored in a non-volatile memory for example the hard disk 525 or the read-only memory 515, are transferred into the RAM 520 which then contains the executable code of the program or programs according to the invention, as well as registers for storing the variables and parameters necessary for the implementation of the invention.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
L'invention a notamment pour objet des procédés pour ordinateur et des dispositifs d'identification d'objets réels dont une représentation est présente dans une image, en temps réel, dans une architecture de type client- serveur. Après avoir acquis l'image (225), au moins un élément singulier de celle-ci est déterminé (230). Une information relative à cet élément singulier déterminé est alors transmise à un serveur comprenant des moyens d'identification des objets réels à partir de ladite au moins une information. En réponse, une information relative à l'identification des objets réels est reçue.
Description
Procédés et dispositifs d'identification d'objets réels, de suivi de la représentation de ces objets et de réalité augmentée, dans une séquence d'images, en mode client-serveur
La présente invention concerne la combinaison d'images réelles et virtuelles en temps réel, dans un système de réalité augmentée, et plus particulièrement des procédés et des dispositifs d'identification d'objets réels, de suivi de la représentation de ces objets et de réalité augmentée, dans une séquence d'images, en mode client-serveur pour permettre notamment la mise en œuvre d'application de réalité augmentée dans des dispositifs distants, en particulier des dispositifs mobiles comprenant de faibles ressources.
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 externes de la scène représentée par les images, par exemple des coordonnées issues directement d'un scénario de jeu, ou par des données liées à certains éléments de cette scène, par exemple des coordonnées d'un point particulier de la scène tel que la main d'un joueur ou un élément du décor. De façon générale, les objets virtuels insérés correspondent à des éléments réels présents dans la scène. Ainsi, il peut être nécessaire d'effectuer une étape préalable d'identification ou de reconnaissance de ces objets réels présents dans la scène, en particulier lorsque ces objets sont nombreux.
Lorsque la position et l'orientation des objets virtuels sont déterminées par des données liées à certains éléments de cette scène, 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. L'objectif des algorithmes de suivi visuel, ou de suivi par capteur, est de retrouver de façon très précise, dans une scène réelle, la pose, c'est-à-dire la position et l'orientation, d'un objet dont l'information de géométrie est
disponible ou, de manière équivalente, de retrouver les paramètres extrinsèques de position et d'orientation d'une caméra filmant cet objet, grâce à l'analyse d'image.
Il existe plusieurs méthodes pour suivre un objet dans une séquence d'images, c'est-à-dire dans un flux vidéo. Généralement, les algorithmes de suivi, aussi appelé algorithmes de poursuite de cible, utilisent un marqueur qui peut être visuel ou utiliser d'autres moyens tel que des capteurs, de préférence sans fil de type radio fréquences ou infrarouge. Alternativement, certains algorithmes utilisent une reconnaissance de forme pour suivre un élément particulier dans un flux d'image.
L'Ecole Polytechnique Fédérale de Lausanne a développé un algorithme de suivi visuel n'utilisant pas de marqueur et dont l'originalité réside dans l'appariement de points particuliers entre l'image courante d'un flux vidéo avec une image clé, appelée keyframe en terminologie anglo-saxonne, obtenue à l'initialisation du système et une image clé mise à jour durant l'exécution du suivi visuel. Le principe de cet algorithme est décrit par exemple dans l'article intitulé « Fusing Online and Offline Information for Stable 3D Tracking in Real- Time » - Luca Vacchetti, Vincent Lepetit, Pascal Fua - IEEE Transactions on Pattern Analysis and Machine Intelligence 2004. L'objectif de cet algorithme de suivi visuel est de retrouver, dans une scène réelle, la pose d'un objet dont le maillage tridimensionnel est disponible sous forme de modèle tridimensionnel (3D), ou de retrouver, de manière équivalente, les paramètres extrinsèques de position et d'orientation d'une caméra filmant cet objet, immobile, grâce à l'analyse d'image. L'image courante est ici 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. Les images clés 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. Les images clés 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 de suivi. Il est intéressant de noter que pour des cibles ou objets de type planaire, par exemple un magazine, ces images clés peuvent être directement générées à partir d'une image disponible de l'objet, par exemple au format JPEG ou bitmap. Dans le cas de cibles non planaires, par exemple un visage, il est possible de générer un ensemble d'images clés à partir d'un modèle tridimensionnel texture de l'objet.
Chaque image clé hors 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, de points de type SURF (acronyme de Speeded- Up Robust Features en terminologie anglo-saxonne), SIFT (acronyme de Scale-lnvahant Feature Transform en terminologie anglo-saxonne), YAPE (acronyme de Yet Another Point Extractor en terminologie anglo-saxonne) ou MSER (sigle de Maximally Stable Extremal Régions en terminologie anglo- saxonne) et représentent des emplacements avec des fortes valeurs de gradients directionnels dans l'image et une description de variation de l'image au voisinage de ces points. Ces points d'intérêt peuvent également contenir des descripteurs qui décrivent le voisinage d'un point. Ces descripteurs peuvent prendre la forme de portions d'image (Harris) ou encore des valeurs de gradient dans un voisinage d'un point.
Avant d'initialiser l'application de suivi, 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 à suivre, et auxquelles sont associées une position et une orientation du modèle tridimensionnel de cet 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. 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 de suivi, 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 d'adapter l'application de détection et d'appariement pour obtenir une meilleure qualité d'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 ligne, le nombre d'appariements devient important. Il est alors possible de retrouver la transformation affine permettant de caler le modèle tridimensionnel de l'objet sur l'objet réel. Lorsqu'une telle correspondance a été trouvée, l'algorithme de suivi passe en régime permanent. Les déplacements de l'objet sont suivis d'une image 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. Il convient de noter que pour des besoins de précision, cette image clé hors ligne peut être reprojetée en utilisant la pose estimée de l'image précédente. Cette reprojection permet ainsi d'avoir une image clé qui contient une représentation de l'objet similaire à celle de l'image courante et peut ainsi permettre à l'algorithme de fonctionner avec des points d'intérêts et des descripteurs non robustes aux rotations. L'application de suivi combine ainsi deux types d'algorithmes distincts : une détection de points d'intérêts, par exemple une version modifiée de détection de points de Harris ou encore de détection de points de type SIFT ou SURF, 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 image sur l'autre, extraites du flux vidéo. Ces deux algorithmes combinés permettent un suivi robuste d'un objet selon six degrés de liberté.
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 ~ P1 • PE • Tp→c • P où Pi 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éel, 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 - P1 - 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.
Pour ce faire, un algorithme dit de « minimisation d'erreur » est employé afin de trouver la meilleure solution pour l'estimation Tp→c en utilisant l'ensemble des correspondances tridimensionnelles sur le modèle géométrique et bidimensionnelles (2D) dans l'image courante et dans l'image clé. A titre d'exemple, un algorithme de type RANSAC (acronyme de RANdom SAmple Consensus en terminologie anglo-saxonne) ou PROSAC (acronyme de PROgressive SAmple Consensus en terminologie anglo-saxonne), permettant de supprimer les erreurs de mesures (correspondances 2D/3D erronées) peut être combiné avec un algorithme de type Levenberg-Marquardt pour converger rapidement vers une solution optimale qui réduit l'erreur de reprojection.
Le demandeur a développé un algorithme de suivi visuel d'objets n'utilisant pas de marqueur et dont l'originalité réside dans l'appariement de points particuliers entre l'image courante (et précédente) d'un flux vidéo et un ensemble d'images clés, obtenues automatiquement à l'initialisation du système. Un tel algorithme est notamment décrit dans la demande de brevet français FR 2 911 707. Cet algorithme permet, dans un premier temps, d'identifier l'objet positionné devant la caméra puis d'initialiser de façon totalement automatique, sans contrainte de positionnement, le procédé de suivi de l'objet. Cet algorithme permet notamment d'identifier et de suivre un grand
nombre d'objets présents au même instant dans un flux vidéo et permet ainsi l'identification et la poursuite de cibles ou d'objets dans une scène réelle. Il est particulièrement robuste aux occlusions et permet ainsi de suivre des objets dont les projections 2D dans l'image se recouvrent. Ces objets peuvent être de géométries différentes et présenter des aspects colorimétriques variés. A titre d'exemple, mais de façon non limitative, il peut s'agir de plateaux textures, de visages, d'habits, de scènes naturelles ou encore de studio de télévision ou de bâtiments.
Ces algorithmes de suivi d'objets sont souvent mis en œuvre dans des systèmes autonomes fixes ou mobiles. Néanmoins, il existe des implémentations utilisant une architecture de type client-serveur permettant de déporter les coûts de calcul sur un serveur distant, offrant plus de ressources que le client. Dans ce cas, les fonctionnalités mises en œuvre pour suivre des objets sont exécutées sur le serveur permettant ainsi à plusieurs clients de se connecter simultanément et de recevoir des informations sur la pose des objets dans des images transmises sous forme de requêtes. Une telle solution peut notamment être utilisée dans des d'applications qui visent à faire apparaître des objets de synthèse sur les écrans d'appareils de vision de type HMD (sigle de Head Mounted Device en terminologie anglo-saxonne). Dans ce type d'architecture, l'augmentation se fait généralement dans le serveur en fonction de la pose estimée de ces objets dans le flux vidéo.
Cependant, ces implémentations de suivi d'objet selon un mode client-serveur connaissent certaines limites. En particulier, elles ne permettent d'identifier un objet dont une représentation est présente dans une image que par rapport à un nombre très limité d'objets. De plus, le délai de traitement effectué par les serveurs devient rapidement très élevé lorsqu'un grand nombre de clients transmet des requêtes. Par exemple, afin de réaliser une application de réalité augmentée, le serveur doit recevoir l'ensemble des images du flux vidéo de ses clients pour y insérer des objets de synthèse et retransmettre ce flux vidéo aux clients.
L'invention permet de résoudre au moins un des problèmes exposés précédemment.
L'invention a ainsi pour objet un procédé pour ordinateur d'identification d'au moins un objet réel dont une représentation est présente dans au moins une image, en temps réel, dans une architecture de type client- serveur, ce procédé comprenant les étapes suivantes, - acquisition de ladite au moins une image ;
- détermination d'au moins un élément singulier de ladite au moins une image ;
- transmission d'au moins une information relative audit au moins un élément singulier déterminé à un serveur comprenant des moyens d'identification dudit au moins un objet réel à partir de ladite au moins une information ; et,
- en réponse à ladite transmission, réception d'une information relative à l'identification dudit au moins un objet réel.
Le procédé selon l'invention permet ainsi d'identifier en temps réel des objets réels présent dans le champ d'une caméra en bénéficiant d'une architecture client-serveur. Selon ce procédé, les ressources nécessaires à l'identification d'objets réels sont réparties entre le client et le serveur tout en limitant le volume des données échangées.
De façon avantageuse, ladite étape de détermination d'au moins un élément singulier de ladite au moins une image est répétée pour une pluralité d'images, ladite au moins une information relative audit au moins un élément singulier déterminé étant estimée selon au moins un élément singulier déterminé dans plusieurs images de ladite pluralité d'images afin d'améliorer la reconnaissance d'objets réels. Selon un mode de réalisation particulier, le procédé comprend en outre une étape de transmission audit serveur d'une information relative à la pose et/ou à la stabilité du dispositif mettant en œuvre ladite étape d'acquisition de ladite au moins une image et/ou à la nature dudit au moins un objet réel afin d'accélérer et/ou d'optimiser l'identification d'objets réels. De façon avantageuse, le procédé comprend en outre une étape de réception d'au moins une donnée permettant de reconnaître une représentation dudit au moins un objet réel dans au moins une seconde image distincte de
ladite au moins une image, appelée au moins une première image, en réponse à ladite transmission, pour suivre ledit objet réel. Le procédé selon l'invention peut ainsi être utilisé pour suivre en temps réel des objets identifiés.
Le procédé comprend en outre, de préférence, une étape de réception d'au moins une donnée à insérer dans une image comprenant une représentation dudit objet réel identifié et une étape d'insertion de ladite au moins une donnée à insérer dans ladite image comprenant ladite représentation dudit objet réel identifié. Le procédé permet ainsi la mise en œuvre d'applications de réalité augmentée. L'invention a également pour objet un procédé pour ordinateur d'identification d'au moins un objet réel dont une représentation est présente dans au moins une image, en temps réel, dans une architecture de type client- serveur, ce procédé comprenant les étapes suivantes,
- création d'un ensemble de données permettant d'identifier une représentation dudit au moins un objet réel dans une image ;
- réception d'au moins une information relative à au moins un élément singulier d'au moins une image ;
- identification dudit au moins un objet réel selon ledit ensemble de données et ladite au moins une information ; et, - transmission d'au moins une information relative à ladite identification dudit au moins un objet réel.
Le procédé selon l'invention permet ainsi d'identifier en temps réel des objets réels présent dans le champ d'une caméra en bénéficiant d'une architecture client-serveur. Selon ce procédé, les ressources nécessaires à l'identification d'objets réels sont réparties entre le client et le serveur tout en limitant le volume des données échangées. Il permet en outre une mise à jour centralisée, en temps réel, de la base de données utilisée pour identifier des objets réels.
Selon un mode de réalisation particulier, ladite étape de création comprend une étape d'élaboration d'une structure de décision pour accélérer l'identification d'objets réels.
Toujours selon un mode de réalisation particulier, le procédé comprend en outre une étape de réception d'au moins une information complémentaire, ladite au moins une information complémentaire étant utilisée dans ladite étape d'identification et étant relative à la pose et/ou à la stabilité du dispositif d'acquisition de ladite au moins une image et/ou à la nature dudit au moins un objet réel afin d'accélérer et/ou d'optimiser l'identification d'objets réels.
De façon avantageuse, ladite au moins une information reçue est relative à au moins deux éléments singuliers d'au moins une image, ladite étape d'identification dudit au moins un objet réel comprenant une étape d'analyse de la position relative desdits au moins deux éléments singuliers afin d'améliorer l'identification d'objets réels parmi un grand nombre d'objets réels.
Toujours selon un mode de réalisation particulier, le procédé comprend en outre une étape d'estimation de la pose dudit au moins un objet réel identifié, ladite au moins une information relative à ladite identification dudit au moins un objet réel comprenant ladite pose estimée pour faciliter l'identification d'objets réels dans d'autres images.
Le procédé comprend en outre, de préférence, une étape de transmission d'au moins une information relative audit au moins un objet réel identifié permettant de reconnaître une représentation dudit au moins un objet réel dans au moins une seconde image distincte de ladite au moins une image, appelée première image, pour suivre ledit objet réel.
Toujours selon un mode de réalisation particulier, le procédé comprend en outre une étape de détermination d'au moins une donnée caractéristique d'au moins une représentation dudit au moins un objet réel identifié, ladite au moins une information relative audit objet réel identifié comprenant ladite donnée caractéristique pour améliorer le suivi d'objets réels identifiés.
Toujours selon un mode de réalisation particulier, le procédé comprend en outre une étape d'activation de service associé audit au moins un objet réel identifié. Alternativement ou de façon complémentaire, le procédé comprend en outre une étape de transmission d'au moins une donnée à insérer
dans une image comprenant une représentation dudit objet réel identifié pour permettre la mise en œuvre d'applications de réalité augmentée.
Toujours selon un mode de réalisation particulier, ladite au moins une information relative à au moins un élément singulier d'une image comprend une portion d'image relative audit point singulier.
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 lorsque ledit programme est exécuté sur un ordinateur ainsi qu'un dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes de ce procédé.
Les avantages procurés par ce programme d'ordinateur et ce dispositif sont similaires à ceux évoqués précédemment.
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 illustre un exemple d'environnement dans lequel l'invention peut être mise en œuvre ;
- la figure 2 illustre certaines étapes exécutées dans un client et dans un serveur pour mettre en œuvre l'invention ; - la figure 3 illustre un exemple de détermination des données utilisées pour identifier un objet planaire dans des images ;
- la figure 4 illustre une mise en œuvre particulière de l'algorithme illustré sur la figure 2 ;
- la figure 5 illustre un exemple de dispositif adapté à mettre en œuvre l'invention ou une partie de l'invention.
L'invention permet notamment à des dispositifs mobiles d'exécuter des applications de réalité augmentée sans qu'il soit nécessaire que ceux-ci intègrent des ressources importantes de calcul, de stockage et d'initialisation. De façon générale, les calculs et les connaissances sont déportés dans un ou plusieurs serveurs, les dispositifs mobiles effectuant néanmoins certains traitements pour éviter que le volume de données échangées, en particulier le nombre d'images, ne soit excessif.
La figure 1 illustre un exemple d'environnement 100 dans lequel l'invention peut être mise en œuvre. Les serveurs 105-1 et 105-2, génériquement référencés 105, sont ici accèdes par les clients 110-1 à 110-3, génériquement référencés 110, via un réseau 115, par exemple le réseau Internet.
Les clients 110 sont ici des dispositifs mobiles tels que des téléphones mobiles, des assistants personnels, aussi appelés PDA (sigle de Personal Digital Assistant en terminologie anglo-saxonne), et des ordinateurs personnels portables, aussi appelés laptop ou notebook en terminologie anglo- saxonne. Il convient de noter que si les clients 110 sont ici mobiles, l'invention peut également être mise en œuvre avec des dispositifs fixes, notamment des ordinateurs personnels standard, aussi appelés desktop en terminologie anglo- saxonne.
A titre d'illustration, les connexions entre les clients 110-1 et 110-2 et le réseau 115 sont ici des connexions sans fil, par exemple des connexions de type GSM (sigle de Global System for Mobile communications en terminologie anglo-saxonne) ou WiFi tandis que les connexions entre le client 110-3 et le réseau 115 ainsi qu'entre les serveurs 105-1 et 105-2 sont des connexions filaires, par exemple des connexions Ethernet. Cependant, si le débit des connexions doit être suffisant pour permettre la mise en œuvre de l'invention, leur nature est sans importance ici.
De façon générale, les serveurs 105 sont utilisés pour calculer et stocker des données permettant d'identifier des objets réels à partir de descripteurs, d'identifier ces objets à partir de descripteurs (durant une phase de régime permanent), de créer et stocker des médias associés à ces objets servant à augmenter des images réelles selon la pose de ces objets et de générer des données permettant aux clients 110 de suivre ces objets dans une séquence d'images (durant une phase de régime permanent). Les dispositifs mobiles sont essentiellement utilisés pour acquérir des séquences d'images, détecter des descripteurs dans ces images et, éventuellement, les envoyer, suivre des représentations d'objets dans ces images selon des données reçues et insérer des médias reçus dans ces images selon la pose des objets détectés.
II est observé que l'expression serveur désigne ici un serveur ou un groupe de serveurs.
La figure 2 illustre plus précisément certaines étapes exécutées dans un client 200 et dans un serveur 205 pour mettre en œuvre l'invention. Une première étape, exécutée dans le serveur 205, a pour objet la création de données permettant d'identifier la représentation d'objets dans des images (étape 210). Cette étape est avantageusement réalisée hors ligne durant une phase d'apprentissage. Cependant, elle peut également être réalisée, au moins partiellement, pendant une phase de régime permanent pour permettre l'ajout dynamique de nouvelles informations liées à de nouveaux objets ou non. Cette étape est répétée pour chaque objet devant être identifié ultérieurement. Elle n'est, en principe, réalisée qu'une fois par objet. Néanmoins, elle peut être répétée, en particulier, lorsque l'objet est modifié ou que son identification peut être améliorée. Elle permet de mémoriser, dans une base de données 215, des éléments caractéristiques de différentes représentations d'objets, appelés descripteurs, par exemple des ensembles consistant en des points singuliers, ou points d'intérêt, et leur entourage formant une portion d'image, par exemple une portion d'image circulaire ou elliptique, ou un contour. Selon un mode de réalisation particulier, ces données peuvent être organisées selon des arbres de classification tels que des arbres de décision binaires (voir par exemple l'article « Keypoint Récognition using Randomized Trees » V. Lepetit and P. Fua, EPFL, 2006) ou encore selon des structures à ramifications multiples, aussi appelées arbres de décision de type ferns (voir par exemple l'article « Fast Keypoint Récognition using Random Ferns » M. Ozuysal, P. Fua et V. LepetitJ, permettant une classification simple et rapide par comparaison d'intensité d'image autour d'un point d'intérêt de type Harris, Fast ou YAPE. Alternativement, lorsque d'autres algorithmes de classification sont utilisés tels que les algorithmes de type « k plus proches voisins » ou kd-trees, la base de données peut être organisée différemment ou ne pas être organisée. De tels algorithmes se révèlent particulièrement efficaces lorsque des descripteurs robustes de type MSER, SIFT ou SURF sont utilisés.
Une autre étape a pour objet de créer des médias associés aux objets pouvant être identifiés (étape 220). Ces médias sont ici mémorisés dans la base de données 215. Ils représentent par exemple du texte, des sons, des images fixes ou animées et/ou des modèles tridimensionnels textures animés ou non. Il est également possible, de façon alternative ou complémentaire, d'associer des services à activer, comme par exemple l'ouverture d'une page internet, le paiement d'une facture ou la réception d'un courrier électronique, aux objets pouvant être identifiés. Ils sont associés à un ou plusieurs objets réels afin d'être transmis aux clients lorsque ces objets réels sont identifiés dans leur image courante. Ces médias peuvent être insérés dans une image lorsqu'une représentation des objets réels auxquels ils sont associés est identifiée dans l'image, selon la pose de ces objets. Ils peuvent être modélisés au moyen d'outils standard de modélisation bidimensionnel ou tridimensionnel.
Comme l'étape 210, l'étape 220 est avantageusement réalisée hors ligne durant une phase d'apprentissage dans le serveur 205. Néanmoins, cette étape peut également intervenir lors du régime permanent de l'application afin d'éviter une coupure du service. Par ailleurs, les étapes 210 et/ou 215 peuvent être effectuées dans un serveur distant pour ne pas perturber le fonctionnement du serveur 205. II convient de remarquer ici que les étapes 210 et 215 peuvent être exécutées l'une après l'autre, dans un sens ou dans un autre, ou de façon parallèle. Ces deux étapes permettent de créer une base de données qui est utilisée lors du régime permanent de l'application de réalité augmentée.
Une première étape de l'application de réalité augmentée, durant sa phase de régime permanent, consiste à acquérir, à partir du client 200, une image (étape 225). A ces fins, un capteur d'images associé au dispositif « client » permet l'acquisition d'images en temps réel avec une fréquence et une résolution qui dépendent des caractéristiques techniques du dispositif. Les images capturées sont ensuite, de préférence, converties en niveaux de gris afin d'améliorer la robustesse, en particulier aux variations de luminosité et aux caractéristiques techniques inégales des capteurs d'images, et de simplifier les calculs. Les images acquises et éventuellement converties peuvent également
être sous échantillonnées et filtrées, par exemple avec un filtre « passe bas », pour optimiser les temps de calculs et diminuer le bruit présent dans l'image. L'image acquise et convertie est appelée l'image courante.
Dans une étape suivante (étape 230), mise en œuvre dans le client 200, les points d'intérêts de l'image courante sont détectés afin de construire, à partir de ceux-ci, des descripteurs. Ainsi, lorsqu'une image courante est obtenue, elle est traitée avec un détecteur de points d'intérêts, appelés keypoints en terminologie anglo-saxonne. Il peut s'agir notamment d'un détecteur de points de Harris ou encore des détecteurs de type MSER, FAST, SURF, SIFT ou YAPE.
Lorsque ces points sont identifiés, des descripteurs sont construits afin de permettre un appariement avec des points identifiés sur des objets de référence.
Lorsque des arbres de type binaire ou une approche optimisée de type ferns sont utilisés, il n'est pas nécessaire de créer de descripteurs particuliers. Dans un tel cas, des portions d'images extraites autour des points d'intérêt sont utilisées.
Lorsqu'un algorithme de type MSER, SIFT ou SURF est utilisé, les descripteurs sont de préférence déterminés sur le dispositif « client » 200 pour éviter la transmission d'images et optimiser les temps de calcul des serveurs.
Les descripteurs déterminés ou les portions d'images extraites sont alors transmis au serveur comme illustré par la flèche 235 pour permettre l'identification d'objets sur l'image courante à partir de ces informations.
Lorsque le serveur reçoit des descripteurs ou des portions d'images, nécessaires à l'identification d'objets présents dans l'image courante, une étape d'identification d'objets est effectuée (étape 240). Selon un mode de réalisation particulier, le serveur utilise ces données, en totalité ou en partie, pour estimer et leur associer une probabilité d'appartenir à un des objets enregistrés dans la base de données du système. Un objet est identifié, par exemple, dès que la probabilité estimée atteint un seuil prédéterminé. Selon la nature des applications de réalité augmentée visée, l'identification d'objets peut prendre fin dès qu'un objet ou un
nombre prédéterminé d'objets est identifié ou se poursuivre jusqu'au traitement de toutes les données reçues.
Lorsqu'un objet est identifié, le serveur 205 génère des informations permettant le suivi de cet objet (étape 245). Il peut s'agir, suivant l'algorithme de suivi utilisé dans le dispositif « client » 200 et du type d'objet reconnu, d'une identification de l'objet (par exemple une chaîne de caractères), de la pose de l'objet, d'une identification du numéro de l'image dans laquelle l'objet a été retrouvé (appelée timecode en terminologie anglo-saxonne), d'une image contenant l'objet et sa pose associée ou encore d'un ensemble de descripteurs décrivant l'objet, par exemple des correspondances 2D/3D et une portion d'image associée, et sa géométrie. Comme indiqué par la flèche 250, ces informations sont transmises au client 200.
Il convient d'observer ici que si le mode de réalisation décrit vise l'identification et le suivi d'objets réels dans une séquence d'images pour insérer des objets virtuels selon la pose d'objets réels identifiés, il est possible de combiner les étapes d'identification d'objets réels avec les étapes d'insertion d'objets virtuels pour augmenter une seule image ou un ensemble d'images « fixes ». Il est également possible de n'utiliser que les étapes d'identification d'objets réels pour identifier la représentation d'objets réels dans une ou plusieurs images.
Dès la réception des premières de ces informations, un algorithme de suivi d'objets mis en œuvre dans le dispositif « client » peut être initialisé pour commencer le suivi des objets identifiés (étape 255). Ces premières informations sont, par exemple, la pose de l'objet dans l'image et sa géométrie. Les informations reçues par la suite, notamment les descripteurs, sont utilisées « à la volée » par l'algorithme de suivi d'objets pour en améliorer les résultats. Ainsi, il n'est pas nécessaire pour le client 200 de recevoir toutes les informations de suivi du serveur 205 pour commencer à suivre un objet.
Parallèlement, comme illustré par la flèche 260, lorsque le serveur 205 a identifié un ou plusieurs objets, il transmet au client 200 les médias associés aux objets identifiés. Ainsi, lorsque des objets sont suivis dans une séquence d'images, dans le dispositif « client », il est possible d'enrichir ces
images (étape 265). En d'autres termes, il est alors possible de corréler l'affichage d'objets de synthèse avec la pose des objets réels présents dans la scène. Comme indiqué précédemment, ces médias peuvent prendre la forme de texte à surimposer dans le flux vidéo, d'images, de flux vidéos devant être affichés, par exemple, sur des éléments 3D présents dans la scène, de flux audio et/ou d'objets de synthèse 3D animés.
Il convient de remarquer ici que l'algorithme illustré sur la figure 2 permet l'envoi de médias de façon progressive. Ainsi, à titre d'illustration, lorsqu'un média comprend des objets de synthèse 3D complexes et animés, il est possible de transmettre, dans un premier temps, le modèle simplifié, appelé wireframe en terminologie anglo-saxonne, et sa texture en basse résolution puis, ultérieurement, le modèle détaillé et la texture sur-échantillonnée et, enfin, les informations relatives aux animations.
Comme indiqué précédemment, l'identification d'objets peut être réalisée en utilisant des arbres de décision, notamment des arbres de décision de type binaires ou une approche équivalente de type ferns.
Il existe notamment une technique d'extraction de points d'intérêt et d'appariement de portions d'images, rapide et robuste, développée par Vincent Lepetit et Pascal Fua (« Keypoint Récognition using Randomized Trees » V. Lepetit and P. Fua, EPFL, 2006). Elle permet d'apparier des objets similaires présents dans deux images, vus selon des points de vue assez éloignés. Le problème d'appariement est ici traité comme un problème de classification dont chaque classe correspond à un sous ensemble de toutes les vues possibles autour d'un point d'intérêt. Plusieurs modèles des différents objets potentiellement présents dans la scène réelle sont ainsi construits lors d'une phase d'apprentissage pour être comparés avec des portions de l'image courante issue du capteur d'image.
Les objets enregistrés peuvent présenter des géométries proches du plan ou des géométries 3D quelconques. Si les objets sont sensiblement planaires, le sous-ensemble de vues est généré en utilisant des transformations affines. Si les objets ont des géométries 3D quelconques un modèle projectif peut être utilisé pour générer le sous-ensemble de vues. Ce procédé permet
d'obtenir l'indice des objets représentés dans l'image courante mais aussi d'estimer leur pose en six degrés de liberté (position et orientation).
Durant une phase d'apprentissage, hors ligne, un grand nombre de vues sont synthétisées à partir d'au moins une image de l'objet cible. Des points d'intérêt sont extraits de chacune de ces vues. Si l'objet est sensiblement planaire, les vues sont synthétisées en appliquant une transformation affine à l'image. Si, au contraire, l'objet est de géométrie quelconque, les vues sont synthétisées à partir d'un modèle 3D texture de celui-ci en utilisant des techniques classiques de rendu, par exemple les technologies OpenGL (acronyme d'Open Graphics Library, développées initialement par la société Silicon Graphics Inc.) ou Direct3D (développées par la société Microsoft).
S'il s'agit d'objets sensiblement planaires, des points d'intérêts k, sont détectés sur une image disponible de l'objet, par exemple avec un détecteur YAPE, et une petite portion d'image autour de ce point, ou fenêtre, par exemple un bloc de 32x32 pixels (acronyme de picture élément en terminologie anglo-saxonne), est extraite. Ces portions d'images entourant les points d'intérêts /c, sont proche du plan et peuvent être traitées avec des transformations homographiques. Dans ce cas, une vue frontale de l'objet cible est suffisante pour générer le sous-ensemble des nouvelles vues. Celles-ci sont approximées par des transformations affines. Une transformation affine peut être décomposée selon la relation suivante, A = RθRφSRφ où Rθ et Rφ sont deux matrices de rotation respectivement paramétrées par les angles θ et Φ et S=diag[λi,λ2] est une matrice d'échelle. A titre d'illustration, il est possible de choisir de répartir les angles θ et Φ uniformément dans l'intervalle [- π, + π], et λi et A2 dans l'intervalle [0.6,1.5].
Si l'objet est plus complexe, il est possible d'utiliser un modèle 3D construit automatiquement, par exemple avec un scanner tridimensionnel ou un modèle 3D obtenu à l'aide d'un modeleur ou d'un logiciel de reconstruction 3D se basant sur plusieurs images d'un même objet tel qu'ImageModeler de la société RealViz (ImageModeler est une marque). Ce modèle est ensuite utilisé pour générer les nouvelles vues avec des techniques standard de rendu.
Lorsque l'ensemble des vues est généré, un ensemble de portions d'image correspondant aux différentes vues est obtenu pour chaque point d'intérêt.
Afin d'améliorer la qualité du modèle de classification à créer, les points d'intérêts (et la portion d'image associée) les plus représentatifs sont sélectionnés. Idéalement, les k, points d'intérêts doivent avoir une haute probabilité P(/c/) d'être trouvés dans une image s'ils sont visibles, en considérant des déformations de perspective et la présence de bruit. Si T est la transformation géométrique utilisée pour synthétiser une nouvelle vue, T est une transformation affine ou une projection. En appliquant l'inverse de la transformation T, notée T"1, à un point d'intérêt kt, la position de ce point est retrouvée dans le système de référence. Par conséquent, en considérant plusieurs vues synthétiques, la probabilité P(/c,) peut être estimée simplement en comptant le nombre de fois où le point se retrouve dans le système de référence. L'ensemble des points d'intérêts et des portions d'images associées est alors construit en retenant seulement les points d'intérêt ayant une probabilité P(/c,) supérieure à un seuil prédéterminé.
Pour améliorer le temps de réponse de l'algorithme de détection d'objets, des arbres de décision sont utilisés pour classifier les différentes vues de l'objet disponibles. Un arbre de décision contient ici des nœuds qui représentent un test simple à effectuer et permettant de séparer l'espace des portions d'images à classifier. Ce test consiste, par exemple, à comparer l'intensité (I) de deux pixels (mi et m2) appartenant à une portion d'image, préférablement lissée par une gaussienne. Ainsi, si l'intensité du pixel mi, notée l(rτii), est supérieure à l'intensité du pixel m2, notée l(m2), une première branche de l'arbre, partant du nœud considéré, est sélectionnée. Dans le cas contraire, si l(rτii) est inférieure à Km2), l'autre branche du nœud est sélectionnée.
Chaque feuille contient une estimation de la distribution de probabilités, déterminée a posteriori, de toutes les classes basées sur les données d'apprentissage. Une nouvelle portion d'image est donc classifiée en la faisant descendre dans l'arbre et en effectuant sur celle-ci le test élémentaire à chaque nœud en considérant des pixels mi et m2 différents, de préférence choisis aléatoirement. Quand une portion d'image atteint une feuille, une
probabilité d'appartenir à une classe lui est assignée. Cette probabilité dépend de la distribution de probabilité stockée dans la feuille qui est mise à jour lors de la phase d'apprentissage.
Il convient de remarquer qu'un seul arbre ne peut généralement pas décrire tous les tests possibles et risque de conduire à des résultats insuffisants. Ainsi, avantageusement, plusieurs arbres sont construits à partir d'un sous-ensemble de portions d'images tirées aléatoirement à partir de l'ensemble de portions d'images correspondant aux points d'intérêts trouvés. Chacun des arbres décrit ainsi une partition unique de l'espace d'une portion d'image. Durant la phase d'identification, les réponses de chaque arbre sont combinées pour classifier une portion d'image.
Par ailleurs, les arbres ont, de préférence, une profondeur limitée, par exemple 15.
Lors de la phase d'identification, un traitement similaire est appliqué aux portions d'images qui entourent les points d'intérêts détectés dans l'image courante. Lorsque ces portions d'image atteignent les feuilles des différents arbres, une distribution de probabilité dw(m) pour chaque point m d'appartenir à une classe Ck est déterminée. La moyenne des réponses obtenues permet de déterminer à quelle classe appartiennent ce point d'intérêt et sa portion d'image associée selon la relation suivante,
C(m) = arg max — ∑ dk (m) c L, où L représente le nombre d'arbres utilisés.
Les appariements trouvés lors de cette classification en temps réel sont utilisés pour estimer l'homographie du plan grâce à des techniques classiques de minimisation. Un algorithme de type RANSAC peut, par exemple, être utilisé pour réaliser une première estimation de la transformation affine afin, notamment, de rejeter les faux appariements et d'estimer une première pose de l'objet dans l'image. Ensuite, il est possible d'utiliser une minimisation non linéaire de type Levenberg-Marquardt pour affiner cette première estimation. II est important de noter qu'un grand nombre d'objets peut être enregistré dans le système (plusieurs dizaines de milliers). Cela a pour
conséquence statistique que certains objets de cette base de données de reconnaissance peuvent présenter des similarités et provoquer des erreurs durant la phase d'estimation des probabilités. Afin de remédier à ce problème, l'information géométrique sur la position relative des points d'intérêt décrite précédemment est avantageusement utilisée afin de choisir le meilleur candidat parmi les identifications potentielles.
L'utilisation d'une classification similaire basée sur des structures de type ferns permet d'améliorer les résultats par rapport à un arbre de décision de type binaire. Il est observé ici que l'utilisation d'une classification basée sur des arbres de décision ne requiert pas la construction de descripteurs particuliers autour des points d'intérêt, ce qui permet un gain de performance important.
Ainsi, selon un mode de réalisation particulier, les données utilisées pour identifier des objets comprennent des couples de points d'intérêt et de portions d'images, organisés sous forme d'arbres de décision. La figure 3 illustre un exemple de détermination de données utilisées pour identifier un objet planaire dans des images. La représentation 300 d'une carte de jeu est ici convertie pour réduire sa dynamique. Bien que non visible sur la figure 3, l'image 300, en couleur, est convertie en l'image 305 en niveaux de gris. Comme indiqué précédemment, une telle conversion permet notamment d'améliorer la robustesse de l'identification d'objets.
Les points d'intérêt de l'image 305 sont alors déterminés selon un algorithme standard mettant en œuvre, par exemple, un détecteur de Harris qui permet de trouver, en particulier, le point 310. Parallèlement, des transformations affines et/ou d'autres types de transformations, notamment des dégradations, sont appliquées à l'image 305. L'image 305 ainsi que les images résultantes de ces transformations sont ensuite utilisées pour l'extraction de portions d'images autour des points d'intérêts déterminés. Des exemples de telles portions d'images extraites autour du point 310 sont représentées sur la figure 3 avec les références 315-1 à 315-4. II est ainsi possible d'extraire toutes les portions d'images (référence
320) associés à tous les points d'intérêt détectés.
Après une éventuelle sélection des points d'intérêt permettant d'éliminer les moins pertinents, les points d'intérêts et les portions d'images associés sont organisés sous forme d'arbres de décision comme indiqué précédemment. Selon un mode d'implémentation particulier, un algorithme de suivi d'objets comprenant une étape d'identification d'objets utilisant des arbres de décision de type binaire ou des structures de type ferns est combiné avec un algorithme d'augmentation de scène selon un mode client-serveur.
Un tel mode de réalisation est illustré sur la figure 4 entre un client 400 et un serveur 405. Il correspond à une mise en œuvre particulière de l'algorithme illustré sur la figure 2.
Une première étape, exécutée dans le serveur 405, a pour objet la création des données permettant d'identifier la représentation d'objets dans une image (étape 410). Comme indiqué précédemment, cette étape, avantageusement réalisée hors ligne durant une phase d'apprentissage, est répétée pour chaque objet devant être identifié ultérieurement. Les données créées, ici des points d'intérêts associés à des portions d'images, sont organisées en arbres de décision de type binaire ou en structures à ramifications multiples de type ferns, la principale différence entre ces deux approches résidant dans la construction du modèle permettant la recherche des probabilités. Cette classification sous forme de structures de décision permet l'appariement rapide avec des points d'intérêt d'une image courante et des portions d'image associées reçus par le serveur.
L'étape d'acquisition d'images et, éventuellement, de conversion mises en œuvre dans le dispositif « client » 400 et permettant d'obtenir une image courante (étape 415), sont similaires à l'étape 225 décrite précédemment.
Dans une étape suivante (étape 420), mise en œuvre dans le client 400, les points d'intérêts de l'image courante sont détectés afin de construire, à partir de ceux-ci, des descripteurs. Selon le mode de réalisation décrit ici, des points d'intérêt de type YAPE sont utilisés. Les descripteurs associés correspondent aux portions d'image situées autour de ces points. Néanmoins,
de façon équivalente, un détecteur de points d'intérêt de Harris, MSER, FAST, SURF ou SIFT peut être utilisé.
Les descripteurs, ainsi que leur position (u,v) dans l'image courante sont transmis, de préférence en flux continu, vers le serveur 405 comme l'indique la flèche 425. Des descripteurs de plusieurs images successives peuvent être envoyés. Les descripteurs correspondant à des images différentes sont avantageusement séparés par des balises l'indiquant.
Il convient d'observer ici que lorsque des descripteurs de plusieurs images consécutives sont créés, des descripteurs plus robustes peuvent être envoyés vers le serveur avec un moyen de filtrage. A titre d'illustration, il est possible de procéder à un appariement entre les points d'intérêt de deux images successives afin d'évaluer la stabilité du capteur d'image face à la scène réelle. De même, il est possible de ne conserver que les points d'intérêt et les descripteurs robustes au bruit. Lorsque le serveur 405 commence à recevoir ces descripteurs et leur position associée dans l'image, il procède, pour chacun, à une phase d'appariement afin d'identifier des objets (étape 430). Pour chaque objet contenu dans la base de données d'objets à reconnaître, il met à jour une mesure de probabilité. Lorsque la mesure de probabilité est suffisamment élevée pour au moins un objet donné, la phase d'identification se termine et l'identifiant de l'objet reconnu est transmis au client comme indiqué par la flèche 435.
Le dispositif « client » 400 transmet des descripteurs tant qu'aucun objet n'est reconnu, c'est-à-dire tant qu'il ne reçoit pas d'identifiants d'objets (étape 440).
Lorsque le serveur 405 a reconnu au moins un objet, une liste d'appariements entre des points d'intérêt de l'image courante et des points d'intérêt déterminés durant l'apprentissage est obtenue. Les coordonnées tridimensionnelles de ces points déterminés durant l'apprentissage étant connues (car la pose de l'objet dans l'image d'apprentissage est connue), il est possible d'obtenir une liste de correspondance entre les points d'intérêt de l'image courante (coordonnées à deux dimensions) et ceux de l'objet dans son
espace (coordonnées en trois dimensions). Il est ensuite possible d'en déduire une pose de l'objet dans l'image courante selon des méthodes classiques telles que celles décrites précédemment. Cette pose estimée est ensuite transmise au client 400, comme indiqué par la flèche 450, avec la description de la géométrie de cet objet, par exemple un modèle de type « fil de fer » (wireframe) dans le cas d'un objet non planaire ou les deux dimensions, longueur et largeur, dans le cas d'un objet sensiblement planaire.
Pour permettre au client 400 de suivre les objets identifiés dans les images capturées (étape 455), le serveur 405 crée et transmet, comme indiqué par la flèche 465, une signature des objets identifiés (étape 460).
Lorsque l'algorithme de suivi d'objets mis en œuvre dans le dispositif « client » 400 est un suivi d'objet utilisant une image clé, le serveur construit cette image clé. Dans ce cas, l'image clé peut être représentée avantageusement par une liste de points d'intérêts contenant deux coordonnées planaires (u,v), trois coordonnées dans le repère de l'objet (x, y, z) et une portion d'image autour de ce point. Seules ces informations peuvent être transmises au client sans qu'il soit nécessaire de transmettre l'image clé dans son intégralité.
Si l'algorithme de suivi d'objet mis en œuvre n'utilise pas d'image clé (voir par exemple l'approche décrite par D. Wagner dans le document « Pose Tracking from Natural Features on Mobile Phones »), il est possible d'envoyer directement la partie de la base de données contenant la classification de l'objet identifié. Si une telle solution à un coût non négligeable en termes de volume de données à transmettre, de l'ordre du méga octets, il permet au client d'utiliser ces données pour s'initialiser plus facilement lorsque le suivi d'objet subit un décrochage.
Une autre solution encore consiste à recréer sur le dispositif « client », les arbres de décision de type binaire ou les structures à ramifications multiples de type ferns en fonction d'une image de référence transmise par le serveur. Bien qu'une telle solution nécessite des ressources de calcul dans le dispositif « client », elle permet de réduire considérablement le
volume de données échangées entre clients et serveurs et de faciliter la réinitialisation de l'algorithme de suivi d'objets en cas de décrochage.
Comme indiqué précédemment, l'algorithme de suivi est ici mis en œuvre par le dispositif « client » (étape 455). Il peut être basé sur l'utilisation d'une ou de plusieurs images clés obtenues reçues du serveur ou sur l'utilisation d'arbres de décision reçus du serveur ou élaborés par le client. Il convient d'observer que lorsqu'un ou plusieurs objets sont identifiés il n'est plus nécessaire, pour le client, de reconnaître un objet placé devant la caméra. Néanmoins, l'algorithme d'identification peut être automatiquement appelé, par exemple, lorsqu'aucun objet n'est suivi depuis un temps prédéterminé ou lorsque l'utilisateur indique qu'il souhaite rechercher un nouvelle objet, par exemple en utilisant un bouton ou l'écran tactile de l'appareil.
Le suivi d'objets dans une séquence d'images permet notamment de déterminer leur pose, permettant ainsi d'augmenter les images avec des médias qui leurs sont associés, reçus du serveur 405 (la transmission de ces médias n'est pas représentée ici). A ces fins, un algorithme de réalité augmenté est utilisé (étape 470). Il peut s'agir, par exemple, du logiciel DfusionAR (DfusionAR est une marque de Total Immersion) qui réalise cette opération selon les caractéristiques de l'appareil, notamment les couches applicatives de rendu 3D (par exemple DirectX ou OpenGL).
L'algorithme décrit sur les figures 2 et 4 permet ainsi de limiter les transferts de données entre clients et serveurs aux données nécessaires à la reconnaissance, au suivi d'objet et à l'augmentation de la séquence d'image, c'est-à-dire du flux vidéo. Il n'est ainsi pas requis de transmettre toutes les images. De plus, les données peuvent être transmises de façon incrémentale, l'identification de l'objet pouvant être réalisée de façon itérative sur les portions d'images considérées et le suivi d'objet pouvant commencer dès que suffisamment de descripteurs sont reçus. Il en est de même pour l'affichage des objets de synthèse qui peuvent être affinés au fur et à mesure que le client reçoit les données géométriques et de texture.
De façon équivalente, d'autres informations concernant l'image courante peuvent être transmises au serveur pour simplifier l'étape de
reconnaissance. A titre d'exemple, il peut s'agir de l'image courante elle-même ou d'un histogramme représentant des probabilités de classification d'objets. On notera en particulier la possibilité de transmettre au serveur un ensemble de contours obtenus après l'application de filtres, par exemple de type « passe- haut », afin d'améliorer le taux de bonne identification sur les objets présents dans la base de reconnaissance 215.
Par ailleurs, les appareils mobiles récents possèdent fréquemment un écran tactile et des touches qui peuvent être utilisés pour sélectionner la catégorie de l'objet de façon à simplifier l'étape d'identification faite par le serveur. Ainsi, par exemple, l'utilisateur peut choisir de reconnaître et de suivre des objets de type monuments. En réponse à cette sélection, il peut être connecté à un groupe de serveurs, appelé cluster en terminologie anglo- saxonne, qui regroupe des données relatives aux monuments historiques. Une fonction de localisation, par exemple une fonction GPS (sigle de Global Positioning System en terminologie anglo-saxonne), peut également être exploitée pour identifier la position approximative de l'utilisateur. Une telle information, transmise au serveur, peut lui faciliter l'étape d'identification des monuments ou autres bâtiments présents dans le champ de vision. Cette approche permet ainsi de facilement surimposer des informations sur le flux vidéo issu du capteur mais aussi de localiser de façon plus fine l'utilisateur. En effet, dans ce cas, il est non seulement possible de retrouver la position de l'utilisateur mais également de déterminer son orientation par rapport au monde qu'il regarde.
Il est également possible d'utiliser des accéléromètres et d'autres capteurs d'orientation qui équipent les appareils mobiles modernes. Ainsi, il est possible de déterminer la stabilité du capteur d'images afin de déclencher l'algorithme d'identification à un instant précis pour écarter des flous de bougé.
L'invention permet également l'identification rapide et le suivi d'objets de géométrie plus simple, par exemple des affiches de cinéma ou des pochettes de disque. Différents serveurs peuvent être déployés pour proposer des services adaptés aux différents types de requêtes.
Comme indiqué précédemment, l'identification et le suivi d'objets ne nécessitent pas l'envoi de séquences d'images entre clients et serveurs. Les seules séquences d'images pouvant être transmises sont celles correspondant aux médias utilisés pour l'augmentation de scènes réelles. Dans ce cas, des formats de compression classiques utilisant, par exemple, les codées H.263, H.264 ou MPEG4, peuvent permettre un gain de bande passante. D'autres moyens de compression peuvent être utilisés pour l'envoi de données audio utiles pour l'augmentation de la scène.
La couche applicative SIP (acronyme de Session Initiation Protocol en terminologie anglo-saxonne) peut, par exemple, être utilisée pour l'envoi des données entre clients et serveurs. Il existe un grand nombre d'implémentations de clients SIP qui permettent notamment d'utiliser des réseaux de type IP (sigle d'Internet Protocol en terminologie anglo-saxonne) utilisables avec des réseaux de télécommunication tels que GSM et GPRS (sigle de General Packet Radio Service en terminologie anglo-saxonne).
De façon similaire, des connections 3G, 3G+, par exemple basées sur la technologie UMTS (sigle d'Universal Mobile Télécommunications System en terminologie anglo-saxonne), WiFi, LAN ou Internet peuvent être utilisées afin d'assurer la communication entre des clients et des serveurs distants. A titre d'exemple, dans un musée, il est possible d'utiliser un ensemble de clients mobiles, notamment de type PDA, connectés à un serveur qui regroupe les informations nécessaires à la reconnaissance et au suivi de l'ensemble des peintures et sculptures visibles par les visiteurs. Dans ce cas, la réalité augmentée permet notamment d'enrichir les informations données aux visiteurs sur l'historique d'une œuvre d'art.
Enfin, il est observé que la mémorisation dans des serveurs des données utilisées pour identifier des objets permet de mettre à jour facilement et de façon centralisée les objets à reconnaître.
Un dispositif adapté à mettre en œuvre l'invention ou une partie de l'invention est illustré sur la figure 5. Le dispositif représenté est, de préférence, un dispositif standard, par exemple un ordinateur personnel.
Le dispositif 500 comporte ici un bus interne de communication 505 auquel sont reliés :
- une unité centrale de traitement ou microprocesseur 510 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ; - une mémoire morte 515 (ROM, acronyme de Read OnIy Memory en terminologie anglo-saxonne) pouvant comporter les programmes nécessaires à la mise en œuvre de l'invention ;
- une mémoire vive ou mémoire cache 520 (RAM, acronyme de Random Access Memory en terminologie anglo-saxonne) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ;
- une interface de communication 540 adaptée à transmettre et à recevoir des données vers et depuis un réseau de communication.
Le dispositif 500 dispose également, de préférence, des éléments suivants :
- un disque dur 525 pouvant comporter les programmes précités et des données traitées ou à traiter selon l'invention ; et
- un lecteur de cartes mémoires 530 adapté à recevoir une carte mémoire 535 et à y lire ou à y écrire des données traitées ou à traiter selon l'invention.
Le bus interne de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le dispositif 500 ou reliés à lui.
La représentation du bus interne n'est pas limitative et, notamment, le microprocesseur est susceptible de communiquer des instructions à tout élément du dispositif 500 directement ou par l'intermédiaire d'un autre élément du dispositif 500.
Le code exécutable de chaque programme permettant au dispositif programmable de mettre en œuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur 525 ou en mémoire morte 515.
Selon une variante, la carte mémoire 535 peut contenir des données ainsi que le code exécutable des programmes précités qui, une fois lu par le dispositif 500, est stocké dans le disque dur 525.
Selon une autre variante, le code exécutable des programmes pourra être reçu, au moins partiellement, par l'intermédiaire de la première interface de communication 540, pour être stocké de façon identique à celle décrite précédemment.
De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif 500 avant d'être exécutés.
Le microprocesseur 510 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 525 ou dans la mémoire morte 515 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 525 ou la mémoire morte 515, sont transférés dans la mémoire vive 520 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.
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.
Claims
1. Procédé pour ordinateur d'identification d'au moins un objet réel dont une représentation est présente dans au moins une image, en temps réel, dans une architecture de type client-serveur, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes,
- acquisition (225, 415) de ladite au moins une image ; - détermination (230, 420) d'au moins un élément singulier de ladite au moins une image ;
- transmission (425) d'au moins une information relative audit au moins un élément singulier déterminé à un serveur comprenant des moyens d'identification dudit au moins un objet réel à partir de ladite au moins une information ; et,
- en réponse à ladite transmission, réception (435) d'une information relative à l'identification dudit au moins un objet réel.
2. Procédé selon la revendication précédente selon lequel ladite étape de détermination d'au moins un élément singulier de ladite au moins une image est répétée pour une pluralité d'images, ladite au moins une information relative audit au moins un élément singulier déterminé étant estimée selon au moins un élément singulier déterminé dans plusieurs images de ladite pluralité d'images.
3. Procédé selon la revendication 1 ou la revendication 2 comprenant en outre une étape de transmission audit serveur d'une information relative à la pose et/ou à la stabilité du dispositif mettant en œuvre ladite étape d'acquisition de ladite au moins une image et/ou à la nature dudit au moins un objet réel.
4. Procédé selon l'une quelconque des revendications précédentes comprenant en outre une étape de réception d'au moins une donnée permettant de reconnaître une représentation dudit au moins un objet réel dans au moins une seconde image distincte de ladite au moins une image, appelée au moins une première image, en réponse à ladite transmission, pour suivre ledit objet réel.
5. Procédé selon l'une quelconque des revendications précédentes comprenant en outre une étape de réception (260) d'au moins une donnée à insérer dans une image comprenant une représentation dudit objet réel identifié et une étape d'insertion (265, 470) de ladite au moins une donnée à insérer dans ladite image comprenant ladite représentation dudit objet réel identifié.
6. Procédé pour ordinateur d'identification d'au moins un objet réel dont une représentation est présente dans au moins une image, en temps réel, dans une architecture de type client-serveur, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes,
- création (210, 410) d'un ensemble de données permettant d'identifier une représentation dudit au moins un objet réel dans une image ;
- réception d'au moins une information relative à au moins un élément singulier d'au moins une image ;
- identification (240, 430) dudit au moins un objet réel selon ledit ensemble de données et ladite au moins une information ; et,
- transmission (435, 450) d'au moins une information relative à ladite identification dudit au moins un objet réel.
7. Procédé selon la revendication précédente selon lequel ladite étape de création comprend une étape d'élaboration d'une structure de décision.
8. Procédé selon la revendication 6 ou la revendication 7 comprenant en outre une étape de réception d'au moins une information complémentaire, ladite au moins une information complémentaire étant utilisée dans ladite étape d'identification et étant relative à la pose et/ou à la stabilité du dispositif d'acquisition de ladite au moins une image et/ou à la nature dudit au moins un objet réel.
9. Procédé selon l'une quelconque des revendications 6 à 8 selon lequel ladite au moins une information reçue est relative à au moins deux éléments singuliers d'au moins une image, ladite étape d'identification dudit au moins un objet réel comprenant une étape d'analyse de la position relative desdits au moins deux éléments singuliers.
10. Procédé selon l'une quelconque des revendications 6 à 9 comprenant en outre une étape d'estimation (445) de la pose dudit au moins un objet réel identifié, ladite au moins une information relative à ladite identification dudit au moins un objet réel comprenant ladite pose estimée.
11. Procédé selon l'une quelconque des revendications 6 à 10 comprenant en outre une étape de transmission (435, 450) d'au moins une information relative audit au moins un objet réel identifié permettant de reconnaître une représentation dudit au moins un objet réel dans au moins une seconde image distincte de ladite au moins une image, appelée première image, pour suivre ledit objet réel.
12. Procédé selon la revendication précédente comprenant en outre une étape de détermination (245, 460) d'au moins une donnée caractéristique d'au moins une représentation dudit au moins un objet réel identifié, ladite au moins une information relative audit objet réel identifié comprenant ladite donnée caractéristique.
13. Procédé selon l'un quelconque des revendications 6 à 12 comprenant en outre une étape d'activation de service associé audit au moins un objet réel identifié.
14. Procédé selon l'une quelconque des revendications 6 à 13 comprenant en outre une étape de transmission d'au moins une donnée à insérer dans une image comprenant une représentation dudit objet réel identifié.
15. Procédé selon l'une quelconque des revendications précédentes selon lequel ladite au moins une information relative à au moins un élément singulier d'une image comprend une portion d'image relative audit point singulier.
16. 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 précédentes lorsque ledit programme est exécuté sur un ordinateur.
17. Dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 15.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10734232A EP2441048A1 (fr) | 2009-06-08 | 2010-06-04 | Procédés et dispositifs d'identification d'objets réels, de suivi de la représentation de ces objets et de réalité augmentée, dans une séquence d'images, en mode client-serveur |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR09/02762 | 2009-06-08 | ||
FR0902762A FR2946439A1 (fr) | 2009-06-08 | 2009-06-08 | Procedes et dispositifs d'identification d'objets reels, de suivi de la representation de ces objets et de realite augmentee, dans une sequence d'images, en mode client-serveur |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010142896A1 true WO2010142896A1 (fr) | 2010-12-16 |
Family
ID=41796144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2010/051105 WO2010142896A1 (fr) | 2009-06-08 | 2010-06-04 | Procédés et dispositifs d'identification d'objets réels, de suivi de la représentation de ces objets et de réalité augmentée, dans une séquence d'images, en mode client-serveur |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2441048A1 (fr) |
FR (1) | FR2946439A1 (fr) |
WO (1) | WO2010142896A1 (fr) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013023706A1 (fr) * | 2011-08-18 | 2013-02-21 | Layar B.V. | Système à réalité augmentée basé sur une vision artificielle |
WO2015017941A1 (fr) * | 2013-08-09 | 2015-02-12 | Sweep3D Corporation | Systèmes et procédés de génération de données indiquant une représentation tridimensionnelle d'une scène |
CN105069754A (zh) * | 2015-08-05 | 2015-11-18 | 意科赛特数码科技(江苏)有限公司 | 基于在图像上无标记增强现实的***和方法 |
US9526658B2 (en) | 2010-02-24 | 2016-12-27 | Nant Holdings Ip, Llc | Augmented reality panorama supporting visually impaired individuals |
US9946963B2 (en) | 2013-03-01 | 2018-04-17 | Layar B.V. | Barcode visualization in augmented reality |
US12048669B2 (en) | 2022-04-27 | 2024-07-30 | Nant Holdings Ip, Llc | Augmented reality panorama systems and methods |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3026534B1 (fr) * | 2014-09-25 | 2019-06-21 | Worou CHABI | Generation d'un film d'animation personnalise |
FR3066850B1 (fr) * | 2017-05-24 | 2019-06-14 | Peugeot Citroen Automobiles Sa | Procede de visualisation en trois dimensions de l’environnement d’un vehicule |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2911707A1 (fr) | 2007-01-22 | 2008-07-25 | Total Immersion Sa | Procede et dispositifs de realite augmentee utilisant un suivi automatique, en temps reel, d'objets geometriques planaires textures, sans marqueur, dans un flux video. |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008134901A1 (fr) * | 2007-05-08 | 2008-11-13 | Eidgenössische Technische Zürich | Procédé et système pour la récupération d'informations fondées sur des images |
-
2009
- 2009-06-08 FR FR0902762A patent/FR2946439A1/fr not_active Withdrawn
-
2010
- 2010-06-04 WO PCT/FR2010/051105 patent/WO2010142896A1/fr active Application Filing
- 2010-06-04 EP EP10734232A patent/EP2441048A1/fr not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2911707A1 (fr) | 2007-01-22 | 2008-07-25 | Total Immersion Sa | Procede et dispositifs de realite augmentee utilisant un suivi automatique, en temps reel, d'objets geometriques planaires textures, sans marqueur, dans un flux video. |
Non-Patent Citations (8)
Title |
---|
D. WAGNER, POSE TRACKING FROM NATURAL FEATURES ON MOBILE PHONES |
FUGGETTA A ET AL: "UNDERSTANDING CODE MOBILITY", IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US LNKD- DOI:10.1109/32.685258, vol. 24, no. 5, 1 May 1998 (1998-05-01), pages 342 - 361, XP000765882, ISSN: 0098-5589 * |
KAMATH C ET AL: "Salient points for tracking moving objects in video", PROCEEDINGS OF THE INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING (SPIE), SPIE, USA, vol. 5685, no. 1, 14 March 2005 (2005-03-14), pages 442 - 453, XP002573152, ISSN: 0277-786X * |
LOWE D G: "Object recognition from local scale-invariant features", COMPUTER VISION, 1999. THE PROCEEDINGS OF THE SEVENTH IEEE INTERNATION AL CONFERENCE ON KERKYRA, GREECE 20-27 SEPT. 1999, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, vol. 2, 20 September 1999 (1999-09-20), pages 1150 - 1157, XP010350490, ISBN: 978-0-7695-0164-2 * |
See also references of EP2441048A1 * |
VINCENT LEPETIT; PASCAL FUA, KEYPOINT RECOGNITION USING RANDOMIZED TREES, 2006 |
WANG ET AL: "Collaborative signal processing for target tracking in distributed wireless sensor networks", JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, ELSEVIER, AMSTERDAM, NL LNKD- DOI:10.1016/J.JPDC.2007.02.001, vol. 67, no. 5, 5 April 2007 (2007-04-05), pages 501 - 515, XP022019908, ISSN: 0743-7315 * |
XUELONG HU ET AL: "Video object matching based on SIFT algorithm", NEURAL NETWORKS AND SIGNAL PROCESSING, 2008 INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 7 June 2008 (2008-06-07), pages 412 - 415, XP031298733, ISBN: 978-1-4244-2310-1 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9526658B2 (en) | 2010-02-24 | 2016-12-27 | Nant Holdings Ip, Llc | Augmented reality panorama supporting visually impaired individuals |
US10535279B2 (en) | 2010-02-24 | 2020-01-14 | Nant Holdings Ip, Llc | Augmented reality panorama supporting visually impaired individuals |
US11348480B2 (en) | 2010-02-24 | 2022-05-31 | Nant Holdings Ip, Llc | Augmented reality panorama systems and methods |
WO2013023706A1 (fr) * | 2011-08-18 | 2013-02-21 | Layar B.V. | Système à réalité augmentée basé sur une vision artificielle |
US9946963B2 (en) | 2013-03-01 | 2018-04-17 | Layar B.V. | Barcode visualization in augmented reality |
WO2015017941A1 (fr) * | 2013-08-09 | 2015-02-12 | Sweep3D Corporation | Systèmes et procédés de génération de données indiquant une représentation tridimensionnelle d'une scène |
CN105069754A (zh) * | 2015-08-05 | 2015-11-18 | 意科赛特数码科技(江苏)有限公司 | 基于在图像上无标记增强现实的***和方法 |
CN105069754B (zh) * | 2015-08-05 | 2018-06-26 | 意科赛特数码科技(江苏)有限公司 | 基于在图像上无标记增强现实的***和方法 |
US12048669B2 (en) | 2022-04-27 | 2024-07-30 | Nant Holdings Ip, Llc | Augmented reality panorama systems and methods |
Also Published As
Publication number | Publication date |
---|---|
FR2946439A1 (fr) | 2010-12-10 |
EP2441048A1 (fr) | 2012-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2491532B1 (fr) | Procede, programme d'ordinateur et dispositif de suivi hybride de representations d'objets, en temps reel, dans une sequence d'images | |
EP2455916B1 (fr) | Interface homme-machine basée sur le suivi non-rigide | |
EP3707676B1 (fr) | Procédé d'estimation de pose d'une caméra dans le référentiel d'une scène tridimensionnelle, dispositif, système de réalite augmentée et programme d'ordinateur associé | |
EP2441048A1 (fr) | Procédés et dispositifs d'identification d'objets réels, de suivi de la représentation de ces objets et de réalité augmentée, dans une séquence d'images, en mode client-serveur | |
EP2828834B1 (fr) | Modèle et procédé de production de modèles 3d photo-réalistes | |
FR2933218A1 (fr) | Procede et dispositif permettant de detecter en temps reel des interactions entre un utilisateur et une scene de realite augmentee | |
FR2911707A1 (fr) | Procede et dispositifs de realite augmentee utilisant un suivi automatique, en temps reel, d'objets geometriques planaires textures, sans marqueur, dans un flux video. | |
FR2913128A1 (fr) | Procede et dispositif de determination de la pose d'un objet tridimensionnel dans une image et procede et dispositif de creation d'au moins une image cle | |
WO2018185104A1 (fr) | Procede d'estimation de pose, dispositif, systeme et programme d'ordinateur associes | |
EP4033399B1 (fr) | Dispositif informatique et procédé pour l'estimation de la densité d'une foule | |
FR2983607A1 (fr) | Procede et dispositif de suivi d'un objet dans une sequence d'au moins deux images | |
FR2911708A1 (fr) | Procede et dispositif de creation d'au moins deux images cles correspondant a un objet tridimensionnel. | |
EP2441046A2 (fr) | Procédé et dispositif de calibration d'un capteur d'images utilisant un système temps réel de suivi d'objets dans une séquence d'images | |
Czúni et al. | The use of IMUs for video object retrieval in lightweight devices | |
FR2946446A1 (fr) | Procede et dispositif de suivi d'objets en temps reel dans une sequence d'images en presence de flou optique | |
CA3230088A1 (fr) | Procede de mise en relation d'une image candidate avec une image de reference | |
WO2012107696A1 (fr) | Procédés, dispositif et programmes d'ordinateur pour la reconnaissance de formes, en temps réel, à l'aide d'un appareil comprenant des ressources limitées | |
FR3116912A1 (fr) | Reconnaissance augmentée des impacts et diagnostic sur structure | |
FR3129759A1 (fr) | Procédé d’aide au positionnement d’un objet par rapport à une zone cible d’une matrice de pixels d’une caméra, dispositif et programme d’ordinateur correspondants | |
FR2939541A1 (fr) | Procede de classification automatique de sequences d'images | |
FR2896605A1 (fr) | Procede et systeme d'identification et de poursuite automatique d'un objet dans un film pour la videosurveillance et le controle d'acces |
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: 10734232 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010734232 Country of ref document: EP |