EP2441047A1 - Method and device for the real-time tracking of objects in an image sequence in the presence of an optical blur - Google Patents

Method and device for the real-time tracking of objects in an image sequence in the presence of an optical blur

Info

Publication number
EP2441047A1
EP2441047A1 EP10734231A EP10734231A EP2441047A1 EP 2441047 A1 EP2441047 A1 EP 2441047A1 EP 10734231 A EP10734231 A EP 10734231A EP 10734231 A EP10734231 A EP 10734231A EP 2441047 A1 EP2441047 A1 EP 2441047A1
Authority
EP
European Patent Office
Prior art keywords
image
tracking
points
images
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP10734231A
Other languages
German (de)
French (fr)
Inventor
Nicolas Livet
Thomas Pasquier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Total Immersion
Original Assignee
Total Immersion
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Total Immersion filed Critical Total Immersion
Publication of EP2441047A1 publication Critical patent/EP2441047A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Abstract

The invention in particular relates to a method and to a device for the real-time tracking of a representation of objects in an image sequence, at least one image of said sequence comprising an optical blur effect. After identifying a representation of the objects in a first image of the sequence, the identified representation of the objects is tracked (200) in a second image following the first one according to a first object tracking mode using a key image. When the presence of the blur is detected (205) in a third image differing from the first one, the identified representation of the objects is tracked (230) in the third image according to a second object tracking mode differing from said first tracking mode. The attitude of the objects in the third image is then estimated according to the identified representation of the objects in the third image.

Description

Procédé et dispositif de suivi d'objets en temps réel dans une séquence d'images en présence de flou optique Method and device for tracking real-time objects in a sequence of images in the presence of optical blur
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 un procédé et un dispositif de suivi d'objets en temps réel dans une séquence d'images comprenant des images floues.The present invention relates to the combination of real and virtual images in real time, in an augmented reality system, and more particularly a method and a device for tracking objects in real time in a sequence of images comprising fuzzy images.
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. Lorsque la position et l'orientation 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.Augmented reality is intended to insert one or more virtual objects in the images of a video stream. Depending on the type of application, the position and orientation of these virtual objects can be determined by 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. When the position and the orientation 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.
L'objectif des algorithmes de suivi utilisés à ces fins 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 généralement 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, par exemple, à l'analyse d'image.The purpose of the tracking algorithms used for these purposes is to find very accurately, in a real scene, the pose, that is to say the position and orientation, of an object whose information of geometry is generally available or, equivalently, to retrieve the extrinsic position and orientation parameters of a camera filming this object, thanks, for example, to image analysis.
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.There are several ways to track an object in a sequence of images, that is, in a video stream. Generally, 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. Alternatively, some algorithms use shape recognition to track a particular element in an image stream.
L'Ecole Polytechnique Fédérale de Lausanne a développé un algorithme de suivi 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.The Ecole Polytechnique Fédérale de Lausanne has developed a visual tracking algorithm that does not use a marker and whose originality lies in the pairing of particular points between the current image of a 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, 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 (3D) est disponible sous forme de modèle 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.The objective of this visual tracking algorithm is to find, in a real scene, the pose of an object whose three-dimensional mesh (3D) is available as a 3D model, or to find, in an equivalent way, the extrinsic parameters. of position and orientation of a camera filming this object, motionless, thanks to image analysis.
L'image courante est ici comparée avec une ou plusieurs images clés enregistrées pour retrouver un nombre important de correspondances, ou d'appariements, 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.The current image is here compared with one or more keyframes recorded to find a large number of matches, or pairings, between these pairs of images to estimate the pose of the object. To this end, a keyframe is composed of two elements: a captured image of the video stream and a pose (orientation and position) of the real object appearing in this image. 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 registered "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.
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-lnvariant Feature Transform en terminologie anglo-saxonne) ou YAPE (acronyme de Yet Another Point Extractor 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. 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. Pour le suivi d'objets planaires, il est important de noter que, de manière équivalente, une simple image peut être utilisée pour la construction d'une image clé hors ligne. 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 lignes, 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.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, constructed from a Harris point detector, SURF (Speeded-Up Robust Features), SIFT (acronym for Scale-Invariant Feature). Transform in Anglo-Saxon terminology) or YAPE (acronym for Yet Another Point Extractor in English 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. Before initiating the tracking application, it is necessary to determine one or more keyframes offline. They are generally images extracted from the video stream, which contain the object to be followed, and which are associated with a position and an orientation of the three-dimensional model of this object. For this, an operator visually matches a wired model to the actual object. The manual preparation phase thus consists in finding a first estimate of the pose of the object in an image extracted from the video stream, which amounts to formalizing the initial affine transformation T p → c , the transition matrix between the reference associated with the image. object followed to the marker attached to the camera. The use of this model makes it possible to establish the link between the coordinates of the points of the three-dimensional model of the object expressed in the reference of the object and the coordinates of these points in the reference of the camera. For tracking planar objects, it is important to note that, equivalently, a single image can be used to construct an offline keyframe. During the initialization of the tracking application, 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 this 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.
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.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. It should be noted that for precision purposes, 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.
L'application de suivi combine ainsi deux types d'algorithme distinct : 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é.The tracking application thus combines two distinct types of algorithm: 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. This reprojection makes it possible to predict the result of a spatial transformation of one image on the other, extracted from the video stream. These two combined algorithms allow robust tracking of an object with six degrees of freedom.
D'une façon générale, un point p de l'image est la projection d'un point P de la scène réelle avec p ~ 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.In a general way, 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 where 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, and T p → c is the matrix of passage between the reference associated with the object followed towards the marker attached to the camera. Only the relative position of the object relative to the relative position of the camera is considered here, which amounts to placing the reference of the real scene at the optical center of the camera. This results in the relation P - P 1 - T p → c • P. Since the matrix Pi is known, the tracking problem therefore consists of to determine the matrix T p → c , that is to say the position and orientation of the object with respect to the reference of the camera.
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.To do this, an algorithm called "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. For example, an RANSAC (RANdom SAmple Consensus) algorithm or PROSAC (acronym for PROgressive SAmple Consensus in English terminology), allowing the elimination of measurement errors (2D / 3D correspondences). wrong) can be combined with a Levenberg-Marquardt algorithm to quickly converge to an optimal solution that reduces the reprojection error.
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 de reconnaître 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. 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.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 recognize 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. 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.
Cependant, lorsque la mesure d'erreur devient trop importante, c'est- à-dire lorsque le nombre d'appariements entre l'image courante et l'image clé courante devient trop faible, le suivi subit un décrochage (il est considéré que l'estimation de la pose de l'objet n'est plus suffisamment cohérente) et une nouvelle phase d'initialisation est nécessaire. Par ailleurs, une limite généralement admise des systèmes de suivi d'objets concerne la difficulté de leur adaptation à des applications appartenant à un contexte dit « grand public ». En effet, les principales contraintes de mise en œuvre de ces solutions pour de telles applications sont, en particulier, une quantité de mémoire et une puissance de calcul limitées. De plus, ces systèmes nécessitent généralement l'utilisation de caméras de très bonne qualité et non de caméras à bas coûts telles que celles fournies avec les ordinateurs portables de type PC (sigle de Personal Computer en terminologie anglo- saxonne) et les web-camera, appelées webcam en terminologie anglo-saxonne. Ces caméras à bas coûts sont souvent équipées d'optiques de qualité variable et sont ainsi très sensibles aux conditions lumineuses extérieures. Elles nécessitent souvent des temps d'exposition importants.However, when the error measurement becomes too large, that is, when the number of matches between the current image and the current keyframe becomes too small, the tracking is stalled (it is assumed that the estimate of the pose of the object is no longer sufficiently coherent) and a new initialization phase is necessary. Moreover, a generally accepted limit of object tracking systems concerns the difficulty of adapting them to applications belonging to a so-called "general public" context. Indeed, the main implementation constraints of these solutions for such applications are, in particular, a limited amount of memory and computing power. In addition, these systems generally require the use of high quality cameras and not low cost cameras such as those provided with PC-type laptops (personal computer acronym in English terminology) and the web-camera , called webcam in English terminology. These low-cost cameras are often equipped with optics of variable quality and are thus very sensitive to external light conditions. They often require significant exposure times.
Dans de telles conditions, les mouvements rapides de la caméra, c'est-à-dire du capteur d'image, et/ou des objets présents dans la scène réelle engendrent souvent des effets de flou optique de bougé, appelés motion blur en terminologie anglo-saxonne.In such conditions, the rapid movements of the camera, ie the image sensor, and / or the objects present in the real scene often cause optical shake effects, called motion blur in terminology. Anglo-Saxon.
Alors que l'utilisation de caméras professionnelles permet de réduire considérablement ces effets de flou, ces caméras restent néanmoins sensibles aux mouvements rapides d'objets de la scène, par exemple un ballon de football frappé par un joueur.While the use of professional cameras can significantly reduce these effects of blur, these cameras are nevertheless sensitive to the rapid movements of objects on the scene, such as a football hit by a player.
Ce phénomène de flou entraîne fréquemment des décrochages des applications de suivi utilisées.This blurring phenomenon frequently leads to stalls of the tracking applications used.
Pour contrer ce phénomène, il est possible d'utiliser des systèmes de réduction de flou de bougé. Dans le domaine de la photographie, diverses approches ont été développées. Il existe notamment des stabilisateurs qui équipent les appareils de photographie numérique, en particulier les réflex. Deux sortes de stabilisateur sont principalement utilisés : le stabilisateur optique et le stabilisateur numérique. Ils sont particulièrement efficaces dans de faibles conditions lumineuses ou lorsque le temps d'ouverture est volontairement long.To counter this phenomenon, it is possible to use shake reduction systems. In the field of photography, various approaches have been developed. In particular, there are stabilizers that equip digital photography devices, in particular reflex cameras. Two kinds of stabilizer are mainly used: the optical stabilizer and the digital stabilizer. They are particularly effective in low light conditions or when the opening time is voluntarily long.
Le principe d'un stabilisateur optique est de lier le groupe optique avec un capteur de type accéléromètre pour détecter les mouvements de l'appareil photographique et déplacer légèrement ce groupe en conséquence afin de contrer les mouvements de l'appareil photographique.The principle of an optical stabilizer is to link the optical group with an accelerometer type sensor to detect the movements of the camera and slightly move this group accordingly to counteract the movements of the camera.
Les stabilisateurs numériques fonctionnent en modifiant le cadrage de la photographie dans l'image issue du capteur. Cette approche exige l'utilisation d'un capteur dont la résolution est supérieure à celle de l'image. La détection des mouvements de l'appareil photographique peut être réalisée par l'utilisation d'accéléromètre gyroscopique ou par analyse d'images.Digital stabilizers work by changing the framing of the photograph in the image from the sensor. This approach requires the use of a sensor whose resolution is greater than that of the image. Detection of the movements of the camera can be achieved by the use of a gyro accelerometer or by image analysis.
Cependant, ces approches de stabilisations, optiques ou numériques, ne répondent pas aux besoins des algorithmes de suivi dans le cadre d'applications de Réalité Augmentée. En effet, la plupart des web- caméras et des caméras « grand public » n'intègrent pas de capteurs de type accéléromètre. Par ailleurs, l'utilisation d'un capteur surdimensionné réduit la taille de l'image globale et ne permet finalement de stabiliser l'image que pour des mouvements de faible amplitude. Dans le contexte de systèmes de suivi d'objets, non seulement les mouvements de la caméra sont amples mais en outre, les objets présents devant la caméra peuvent être en mouvement de façon indépendante. Ce type de mouvements, localisés dans l'image, ne peut ainsi pas être détecté par une approche globale telle que celle proposée par l'utilisation d'un stabilisateur. II existe néanmoins, dans le domaine de l'analyse d'image, une approche, initialement proposée par Jianbo Shi et Carlo Tomasi (« Good Feature to Track » IEEE CVPR 1994), appelée « KLT feature Tracker », permettant de suivre des points caractéristiques dans une séquence d'images et d'estimer un flot optique temporel, ou optical flow en terminologie anglo- saxonne, c'est-à-dire le déplacements de pixels (acronyme de Picture Elément en terminologie anglo-saxonne) entre deux images. Cette méthode vise ainsi à trouver un pixel v dans une image J qui semble le plus similaire à un pixel u d'une image I en estimant ainsi le déplacement d de ce pixel entre les deux images. En d'autres termes, les coordonnées du pixel v peuvent s'exprimer de la façon suivante : v = u + d = [ux + dx, uy + dy].However, these optical or digital stabilization approaches do not meet the needs of tracking algorithms for Augmented Reality applications. In fact, most web cameras and "general public" cameras do not include accelerometer type sensors. In addition, the use of an oversized sensor reduces the size of the overall image and finally allows to stabilize the image only for low amplitude movements. In the context of object tracking systems, not only the movements of the camera are wide but in addition, the objects present in front of the camera can be moving independently. This type of movement, localized in the image, can not be detected by a global approach such as that proposed by the use of a stabilizer. However, there is an approach in the field of image analysis, initially proposed by Jianbo Shi and Carlo Tomasi ("Good Feature to Track" IEEE CVPR 1994), called "KLT feature tracker", to track points. characteristics in a sequence of images and to estimate an optical time flow, or optical flow in Anglo-Saxon terminology, that is to say the pixel displacements (acronym for Picture Element in English terminology) between two images . This method thus aims to find a pixel v in an image J which seems most similar to a pixel u of an image I thus estimating the displacement d of this pixel between the two images. In other words, the coordinates of the pixel v can be expressed as follows: v = u + d = [ux + dx, uy + dy].
En notant que le mouvement affine d'une sous-fenêtre entre deux images I et J peut être décrit par la relation suivante, / (Jx - «l ι _ /{ x t où x représente les coordonnées d'un point de la sous-fenêtre par rapport au centre de cette sous-fenêtre. Le point x se déplace donc en Ax + d dans la seconde image avec, Noting that the affine movement of a sub-window between two images I and J can be described by the following relation, / (Jx - "l ι _ / {xt where x represents the coordinates of a point in the sub-window with respect to the center of this sub-window, so that point x moves to Ax + d in the second image with ,
L'approche vise ainsi à minimiser la fonction suivante qui décrit l'erreur résiduelle entre deux régions qui appartiennent à deux images I et J,The approach aims to minimize the following function that describes the residual error between two regions that belong to two images I and J,
é* ≈≈ Cj^ [J[Ax + d) - I{y)f M v )dxé * ≈≈ Cj ^ [J [Ax + d) - I {y) f M v) dx
où W décrit le voisinage autour de x et w(x) représente une fonction de pondération telle qu'une gaussienne.where W describes the neighborhood around x and w (x) represents a weighting function such as a Gaussian.
Pour être efficace, ce suivi de points caractéristiques doit cependant être couplé à un détecteur de points d'intérêt dans une image initiale. Pour la mise en œuvre de cette étape préliminaire, il est nécessaire de rechercher des zones d'image qui présentent une signature haute fréquence. Les points d'intérêts sont ainsi localisés, dans l'image initiale, sur les pixels qui présentent de fortes valeurs de dérivées secondes sur leur voisinage.To be effective, this tracking of characteristic points must, however, be coupled to a point-of-interest detector in an initial image. For the implementation of this preliminary step, it is necessary to search for image areas that have a high frequency signature. The points of interest are thus located, in the initial image, on the pixels which have high values of second derivatives on their neighborhood.
Une implémentation de la recherche et du suivi de ces descripteurs est proposée dans la librairie publique connue sous le nom d'OpenCV (acronyme d'Open Computer Vision en terminologie anglo-saxonne), développée par la société Intel. Cette implémentation propose notamment l'utilisation d'une pyramide d'images sous-échantillonnées afin d'accroître la robustesse de la solution aux changements d'échelle lorsque la taille de l'objet dans l'image varie fortement.An implementation of the search and tracking of these descriptors is proposed in the public library known as OpenCV (acronym for Open Computer Vision in English terminology), developed by the company Intel. This implementation notably proposes the use of a pyramid of subsampled images in order to increase the robustness of the solution to changes of scale when the size of the object in the image varies greatly.
Une telle solution de suivi d'éléments caractéristiques, aussi appelée template matching en terminologie anglo-saxonne, permet de suivre des points d'intérêts en utilisant une portion d'image autour de la position de ce point qui rend la répétabilité de ces points d'intérêt plus robuste aux effets de flou.Such a feature element tracking solution, also called template matching in English terminology, makes it possible to follow points of interest by using a portion of the image around the position of this point which makes the repeatability of these points of interest. interest more robust to the effects of blur.
Cependant la mise en œuvre de cette solution présente des contraintes importantes. Tout d'abord, elle permet seulement d'estimer les mouvements de pixels dans une image, c'est-à-dire avec deux degrés de liberté, et non d'estimer la pose d'un objet présent dans l'image selon six degrés de liberté. De plus, le temps de calcul de telles correspondances dans des images successives est coûteux en performances. Enfin, la position des points suivis dérive rapidement dans le temps, notamment lorsque la texture dans l'image présente des zones similaires proches les unes des autres. Il est également admis que ce type de suivi d'éléments caractéristiques provoque des phénomènes locaux de dérive qui introduisent au cours du temps des imprécisions sur leur position dans l'image.However, the implementation of this solution presents significant constraints. First of all, it only makes it possible to estimate the movements of pixels in an image, that is to say with two degrees of freedom, not to estimate the pose of an object present in the image according to six degrees of freedom. In addition, the calculation time of such matches in successive images is costly in performance. Finally, the position of the points tracked drifts rapidly over time, especially when the texture in the image has similar areas close to each other. It is also accepted that this type of tracking characteristic elements causes local drift phenomena that introduce over time inaccuracies in their position in the image.
D'autres approches pour déterminer et corriger le flou optique dans une image existent. Il s'agit par exemple de techniques basées sur la détection de ligne, aussi appelée edge détection en terminologie anglo-saxonne. Elles sont cependant souvent peu robustes car elles nécessitent la présence de contours marqués. De plus, ces contours ont tendance à disparaître avec du flou de type radial qui résulte d'un mouvement de rotation autour de l'axe de vue de la caméra ou d'un mouvement de rotation de type roulis de l'objet dans la scène.Other approaches for determining and correcting optical blur in an image exist. These are for example techniques based on line detection, also called edge detection in English terminology. However, they are often not robust because they require the presence of marked contours. In addition, these contours tend to disappear with radial-type blurring which results from a rotational movement about the axis of view of the camera or from a roll-type rotational movement of the object in the scene. .
D'autres approches encore visent à estimer, pour chaque pixel d'une image, la direction de mouvement (flot optique). A titre d'exemple, il est possible de transformer une image dite « spatiale » dans un domaine de fréquence à l'aide d'une transformée de Fourier. Un tel procédé est notamment décrit dans le document de thèse intitulé « Visual Motion Estimation based on Motion Blur Interprétation » de bannis Rekleitis (1995). Cependant, ces approches sont souvent coûteuses en termes de calculs et donc difficilement applicables à un contexte de temps réel pour des applications grand public. De plus, elles ne permettent pas d'obtenir d'informations facilement exploitables pour un procédé de suivi d'objet.Still other approaches aim at estimating, for each pixel of an image, the direction of movement (optical flow). By way of example, it is possible to transform a so-called "spatial" image into a frequency domain by means of a Fourier transform. Such a method is in particular described in the thesis entitled "Visual Motion Estimation based on Motion Blur Interpretation" of Rekleitis banned (1995). However, these approaches are often expensive in terms of calculations and therefore difficult to apply to a real-time context for consumer applications. Moreover, they do not make it possible to obtain easily exploitable information for an object tracking method.
L'invention permet de résoudre au moins un des problèmes exposés précédemment.The invention solves at least one of the problems discussed above.
L'invention a ainsi pour objet un procédé de suivi d'une représentation d'au moins un objet dans une séquence d'images, en temps réel, au moins une image de ladite séquence d'images comprenant au moins un effet de flou optique, ce procédé comprenant les étapes suivantes, - identification d'une représentation dudit au moins un objet dans une première image de ladite séquence d'images ;The subject of the invention is thus a method of tracking a representation of at least one object in a sequence of images, in real time, at least one image of said sequence of images comprising at least one optical blur effect , said method comprising the following steps, identifying a representation of said at least one object in a first image of said sequence of images;
- suivi de ladite représentation identifiée dudit au moins un objet dans une seconde image de ladite pluralité d'images, ladite seconde image suivant ladite première image, selon un premier mode de suivi d'objets utilisant une image clé ;tracking said identified representation of said at least one object in a second image of said plurality of images, said second image following said first image, according to a first object tracking mode using a keyframe;
- détection de flou dans une troisième image de ladite séquence d'images, distincte de ladite première image ;detecting blur in a third image of said image sequence, distinct from said first image;
- suivi de ladite représentation identifiée dudit au moins un objet dans ladite troisième image, selon un second mode de suivi d'objets, distinct dudit premier mode de suivi ; et,tracking said identified representation of said at least one object in said third image, according to a second object tracking mode, distinct from said first tracking mode; and,
- estimation de la pose dudit objet dans ladite troisième image selon ladite représentation identifiée dudit au moins un objet dans ladite troisième image. Le procédé selon l'invention permet ainsi de suivre en temps réel un ou plusieurs objets réels dans une séquence d'images dont certaines images comprennent un effet de flou optique, local ou global, tout en optimisant les ressources nécessaires.estimating the pose of said object in said third image according to said identified representation of said at least one object in said third image. The method according to the invention thus makes it possible to follow in real time one or more real objects in a sequence of images, some of whose images comprise an optical blur effect, local or global, while optimizing the necessary resources.
Selon un mode de réalisation particulier, ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans ladite seconde image comprend une étape de détermination de correspondances entre une pluralité de points d'intérêt de ladite seconde image et d'une image clé correspondante, ladite étape de détection de flou comprenant une étape de comparaison du nombre de correspondances entre ladite pluralité de points d'intérêt de ladite seconde image et de ladite image clé correspondante avec un seuil.According to a particular embodiment, said step of tracking said identified representation of said at least one object in said second image comprises a step of determining correspondences between a plurality of points of interest of said second image and a corresponding key image. said fuzzy detecting step comprising a step of comparing the number of matches between said plurality of points of interest of said second image and said corresponding keyframe with a threshold.
Le procédé selon l'invention permet ainsi de bénéficier des calculs effectués pour le suivi de représentations d'objets réels aux fins de détection d'effets de flou. Toujours selon un mode de réalisation particulier, ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans une troisième image comprend une étape de recherche de points caractéristiques dans ladite première ou seconde image, la pose dudit au moins un objet étant au moins partiellement déterminée par reprojection desdits points caractéristiques sur un modèle tridimensionnel dudit au moins un objet. Le procédé selon l'invention permet ainsi d'affiner le suivi d'objets réels. Toujours selon un mode de réalisation particulier, ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans une troisième image comprend une étape de recherche de points caractéristiques dans une image clé correspondant à ladite troisième image, la pose dudit au moins un objet étant au moins partiellement déterminée par reprojection desdits points caractéristiques sur un modèle tridimensionnel dudit au moins un objet. Le procédé selon l'invention permet ainsi d'affiner le suivi d'objets réels.The method according to the invention thus makes it possible to benefit from the calculations made for the tracking of representations of real objects for the purpose of detecting blur effects. Still according to a particular embodiment, said step of tracking said identified representation of said at least one object in a third image comprises a step of searching for characteristic points in said first or second image, the laying of said at least one object being at least partially determined by reprojection of said characteristic points onto a three-dimensional model of said at least one object. The method according to the invention thus makes it possible to refine the tracking of real objects. Still according to a particular embodiment, said step of tracking said identified representation of said at least one object in a third image comprises a step of searching for characteristic points in a key image corresponding to said third image, the laying of said at least one object at least partially determined by reprojection of said characteristic points on a three-dimensional model of said at least one object. The method according to the invention thus makes it possible to refine the tracking of real objects.
De façon avantageuse, ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans ladite seconde image comprend une étape de détermination d'une pluralité de points d'intérêt dans lesdites première et seconde images, lesdits points d'intérêt étant identifiés comme des points de Harris ou des points de type SURF, SIFT ou YAPE. De façon similaire, ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans ladite seconde image comprend, de préférence, une étape de détermination d'une pluralité de points d'intérêt dans ladite première ou seconde image et dans une image clé correspondante, lesdits points d'intérêt étant identifiés comme des points de Harris ou des points de type SURF, SIFT ou YAPE.Advantageously, said step of tracking said identified representation of said at least one object in said second image comprises a step of determining a plurality of points of interest in said first and second images, said points of interest being identified as Harris points or SURF, SIFT or YAPE points. Similarly, said step of tracking said identified representation of said at least one object in said second image preferably comprises a step of determining a plurality of points of interest in said first or second image and in a keyframe corresponding, said points of interest being identified as Harris points or SURF, SIFT or YAPE points.
Toujours selon un mode de réalisation particulier, le procédé est appliqué de façon récursive sur plusieurs images de ladite pluralité d'images pour améliorer le suivi d'objets réels. 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 que des moyens de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes de ce procédé. L'invention a aussi pour objet un dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes du procédé décrit précédemment.Still according to a particular embodiment, the method is recursively applied to several images of said plurality of images to improve the tracking of real objects. 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 as well as information storage means, removable or not , partially or completely readable by a computer or a microprocessor comprising code instructions of a computer program for performing each of the steps of this method. The invention also relates to a device comprising means adapted to the implementation of each of the steps of the method described above.
Les avantages procurés par ce programme d'ordinateur, ces moyens de stockage et ce dispositif sont similaires à ceux évoqués précédemment.The advantages provided by this computer program, these storage means and this device are similar to those mentioned above.
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 :Other advantages, aims and features of the present invention will emerge from the detailed description which follows, given by way of non-limiting example, with reference to the accompanying drawings in which:
- la figure 1 , comprenant les figures 1 a, 1 b, 1 c et 1d, illustre schématiquement différents types de flou qui peuvent apparaître dans une image ;FIG. 1, comprising FIGS. 1a, 1b, 1c and 1d, schematically illustrates different types of blur that may appear in an image;
- la figure 2 illustre schématiquement un exemple d'algorithme combinant le suivi de mouvement et la détection de flou pour permettre le suivi d'objets malgré la présence de flou global ou local dans une ou plusieurs images d'une séquence d'images dans laquelle des objets sont suivis ;FIG. 2 schematically illustrates an example of an algorithm combining motion tracking and blur detection to enable objects to be tracked despite the presence of global or local blur in one or more images of a sequence of images in which objects are followed;
- la figure 3 présente un premier mode de réalisation de l'algorithme illustré sur la figure 2 ;FIG. 3 presents a first embodiment of the algorithm illustrated in FIG. 2;
- la figure 4 illustre l'extraction des correspondances 2D/3D entre une image courante et un modèle 3D en utilisant le suivi d'éléments caractéristiques robustes au flou entre une image courante et l'image la précédant dans la séquence ; et,FIG. 4 illustrates the extraction of the 2D / 3D correspondences between a current image and a 3D model by using the tracking of robust elements that are robust to the blur between a current image and the image preceding it in the sequence; and,
- la figure 5 illustre un exemple de dispositif adapté à mettre en œuvre l'invention ou une partie de l'invention.FIG. 5 illustrates an exemplary device adapted to implement the invention or a part of the invention.
L'invention vise le suivi robuste et rapide d'un ou de plusieurs objets, en temps réel, dans des séquences d'images qui peuvent présenter des effets de flous optiques temporels. La combinaison d'un algorithme d'identification et de suivi d'objets tel que celui développé par la société Total Immersion avec un algorithme de suivi de caractéristiques d'images plus robuste au flou de bougé est ici mise en œuvre pour résoudre les problèmes de décrochages qui peuvent survenir en présence de flou.The aim of the invention is the robust and rapid tracking of one or more objects, in real time, in image sequences that may exhibit temporal optical blur effects. The combination of an algorithm for identifying and tracking objects such as the one developed by the company Total Immersion with a more robust algorithm for monitoring image characteristics with motion blur is here implemented to solve the problems of stalls that can occur in the presence of blur.
Comme indiqué précédemment, ces décrochages peuvent être fréquents lorsque des caméras de basse qualité sont utilisées ou lorsque les mouvements des objets réels devant la caméra sont rapides. Ils sont le plus souvent la conséquence d'une suite d'images, généralement sur une durée ponctuelle, qui présentent un effet de flou optique.As mentioned above, these stalls can be frequent when low quality cameras are used or when movements of real objects in front of the camera are fast. They are most often the consequence of a series of images, generally over a specific period, which exhibit an optical blur effect.
Les effets dits de flou d'images sont généralement des flous « globaux », le plus souvent provoqués par des mouvements rapides de la caméra, plus précisément du capteur d'images, ou « locaux », provoqués par le déplacement rapide d'objets présents dans le champ de vision.The so-called effects of image blur are generally "global" blurs, most often caused by rapid movements of the camera, more specifically the image sensor, or "local", caused by the rapid movement of objects present in the field of vision.
La figure 1 , comprenant les figures 1 a, 1 b, 1 c et 1d, illustre schématiquement différents types de flou qui peuvent apparaître dans une image.Figure 1, including Figures 1a, 1b, 1c and 1d, schematically illustrates different types of blur that may appear in an image.
La figure 1 a est une représentation schématique d'une image 100-1 issue d'une séquence d'images, par exemple un flux vidéo provenant d'une caméra intégrant un capteur d'images. L'image 100-1 représente ici une scène 105 dans laquelle sont placés les objets 110, 115 et 120. Ces objets sont ici statiques et la caméra dont est issue l'image 100-1 est stable. L'image 100-1 ne présente donc aucun flou.Figure 1a is a schematic representation of a 100-1 image from a sequence of images, for example a video stream from a camera incorporating an image sensor. The image 100-1 here represents a scene 105 in which the objects 110, 115 and 120 are placed. These objects are here static and the camera from which the image 100-1 is derived is stable. The image 100-1 does not present any blur.
La figure 1 b représente une image 100-2 similaire à l'image 100-1 , provenant de la même caméra. Cependant, durant la capture de l'image 100-2, le capteur a bougé, engendrant ainsi un flou global sur l'image. La figure 1 c représente une image 100-3 similaire à l'image 100-1 , provenant de la même caméra. Cependant, durant la capture de l'image 100-3, l'objet 120 a bougé rapidement selon l'axe de translation 125, engendrant ainsi un flou local directionnel sur l'image.Figure 1b shows a 100-2 image similar to 100-1, from the same camera. However, during the capture of the image 100-2, the sensor has moved, causing a global blur on the image. Figure 1c shows a 100-3 image similar to 100-1, from the same camera. However, during the capture of the image 100-3, the object 120 moved rapidly along the translation axis 125, thus causing a local directional blur on the image.
La figure 1d représente une image 100-4 similaire à l'image 100-1 , provenant de la même caméra. Cependant, durant la capture de l'image 100-4, l'objet 120 a bougé rapidement selon l'axe de rotation 130, engendrant ainsi un flou local radial ou rotatif sur l'image.Figure 1d shows a 100-4 image similar to 100-1, from the same camera. However, during the capture of the image 100-4, the object 120 moved rapidly along the axis of rotation 130, thus causing a radial or rotational local blur on the image.
La figure 2 illustre schématiquement un exemple d'algorithme combinant le suivi de mouvement et la détection de flou pour permettre le suivi d'objets malgré la présence de flou global ou local dans une ou plusieurs images d'une séquence d'images dans laquelle les objets sont suivis. L'algorithme illustré ici est mis en œuvre sur chacune des images de la séquence, de façon séquentielle.FIG. 2 schematically illustrates an example of an algorithm combining motion tracking and blur detection to enable tracking of objects despite the presence of global or local blur in one or more images of a sequence of images in which the objects are followed. The algorithm illustrated here is implemented on each of the images of the sequence, sequentially.
Comme illustré, une première étape a ici pour objet de détecter la présence du ou des objets à suivre dans les images et de les suivre (étape 200). Le mode de suivi utilisé ici est par exemple un algorithme standard de suivi d'objet, en régime permanent (la phase d'initialisation, automatique ou non, a été préalablement effectuée), utilisant des descripteurs dits « stables » tels que des points de Harris ou encore des descripteurs de type SIFT, SURF ou YAPE. Le régime permanent indique qu'un ou plusieurs objets sont détectés et suivis dans la séquence d'images issue de la caméra. La pose d'un objet est dans ce cas déterminée de façon précise dans chacune des images issues successivement du capteur d'image.As illustrated, a first step here is to detect the presence of the object or objects to follow in the images and to follow (step 200). The tracking mode used here is for example a standard object tracking algorithm, in steady state mode (the initialization phase, automatic or not, was previously performed), using so-called "stable" descriptors such as Harris or SIFT, SURF or YAPE type descriptors. The steady state indicates that one or more objects are detected and tracked in the sequence of images from the camera. In this case, the pose of an object is precisely determined in each of the images successively outputted from the image sensor.
Des appariements récursifs, consistant à déterminer les points correspondants dans des images successives, de proche en proche, peuvent être utilisés dans ce mode de suivi standard en utilisant les points caractéristiques de l'image précédente.Recursive pairings, consisting of determining the corresponding points in successive images, step by step, can be used in this standard tracking mode using the characteristic points of the previous image.
Il en va de même pour les appariements entre des points d'une image courante et d'images clés. Si ces deux types d'appariements sont utilisés, le mode de suivi est dit « hybride ». Dans ce cas, les appariements déterminés entre une image courante et des images clés sont ajoutés aux appariements déterminés entre l'image courante et l'image précédente pour évaluer la pose.The same goes for the pairings between points of a current image and keyframes. If these two types of pairings are used, the tracking mode is called "hybrid". In this case, the pairings determined between a current image and key images are added to the determined pairings between the current image and the previous image to evaluate the pose.
Les appariements récursifs sont particulièrement robustes aux effets de vibration tandis que les appariements avec des images clés permettent d'éviter des dérives liés aux appariements récursifs. L'utilisation de ces deux types d'appariements permet donc un suivi visuel plus robuste et plus stable.Recursive pairings are particularly robust to vibration effects, while keyframe matches help to avoid recursive pairing drifts. The use of these two types of pairings thus allows a more robust and stable visual tracking.
Ces appariements donnent ainsi les correspondances entre des coordonnées de points d'une image et les coordonnées de points correspondants du modèle géométrique tridimensionnel associé à l'objet suivi. Ils sont avantageusement utilisés pour estimer la pose d'un objet dans l'image courante selon la pose de l'objet dans l'image précédente et/ou dans l'image clé utilisée. Une étape suivante a pour objet de détecter la présence éventuelle de flou dans l'image en cours de traitement (étape 205), c'est-à-dire de détecter des mouvements rapides des objets dans la scène ou de tremblements de la caméra. En d'autres termes, si un ou plusieurs objets sont présents et suivis dans le champ de le caméra, une étape de détection de flou optique est exécutée, de façon systématique ou non. Cette détection est une mesure qui permet de déterminer la présence de flou optique dans l'image courante ou dans une suite d'images. Elle peut être basée, par exemple, sur la variation du nombre d'appariements entre les points d'intérêts utilisés dans le mode de suivi standard d'objets. Si cette variation est supérieure à un seuil prédéterminé, pour un objet suivi donné ou pour l'ensemble des objets suivis, la présence de flou est détecté.These pairings thus give the correspondences between coordinates of points of an image and the coordinates of corresponding points of the three-dimensional geometric model associated with the tracked object. They are advantageously used to estimate the pose of an object in the current image according to the pose of the object in the previous image and / or in the key image used. A next step is to detect the possible presence of blur in the image being processed (step 205), that is to say to detect fast movements of objects in the scene or camera shake. In other words, if one or more objects are present and tracked in the field of the camera, an optical blur detection step is performed, systematically or not. This detection is a measure that makes it possible to determine the presence of optical blur in the current image or in a series of images. It can be based, for example, on the variation in the number of matches between the points of interest used in the standard object tracking mode. If this variation is greater than a predetermined threshold, for a given tracking object or for all objects tracked, the presence of blur is detected.
De façon avantageuse, cette étape n'est réalisée que sous certaines conditions (étape 210), par exemple en utilisant des capteurs de mouvements tels que des accéléromètres ou gyroscopes, pour le cas de tremblement de la caméra, ou suite à la perte d'informations pertinentes, notamment lorsqu'une chute du nombre d'appariements entre les points d'intérêts utilisés dans le mode de suivi standard d'objets est observée. Dans ce dernier cas, les étapes 205 et 210 sont combinées.Advantageously, this step is performed only under certain conditions (step 210), for example by using motion sensors such as accelerometers or gyroscopes, for the case of camera shake, or following the loss of relevant information, especially when a fall in the number of matches between the points of interest used in the standard object tracking mode is observed. In the latter case, steps 205 and 210 are combined.
S'il n'est pas nécessaire de détecter la présence de flou optique dans l'image, l'algorithme se poursuit de façon classique (étape 200).If it is not necessary to detect the presence of optical blur in the image, the algorithm continues in a conventional manner (step 200).
L'étape de mesure de flou dans une séquence d'images est importante car elle permet de déterminer le moment précis où le suivi d'objets de type classique n'est plus adapté au suivi des objets et risque d'engendrer rapidement un décrochage.The step of measuring blur in a sequence of images is important because it makes it possible to determine the exact moment when the tracking of objects of conventional type is no longer suitable for tracking objects and may quickly generate a stall.
Suite à l'étape de détection de flou optique, un test est effectué pour déterminer si l'image contient un flou optique (étape 215). Si la mesure est négative, c'est-à-dire si aucun flou optique n'est détecté dans l'image traitée, l'algorithme se poursuit de façon classique (étape 200). Dans le cas contraire, un nouveau mode de suivi d'objets est utilisé pour permettre le suivi d'objets dans des images floues. Si la présence de flou optique dans l'image est détectée, une étape suivante consiste à déterminer si le mode de suivi d'objets utilisé pour permettre le suivi d'objets dans des images floues est initialisé (étape 220).Following the optical blur detection step, a test is performed to determine if the image contains an optical blur (step 215). If the measurement is negative, that is to say if no optical blur is detected in the processed image, the algorithm continues in a conventional manner (step 200). If not, a new object tracking mode is used to track objects in blurred images. If the presence of optical blur in the image is detected, a next step is to determine whether the object tracking mode used for tracking objects in blurred images is initialized (step 220).
Si ce mode n'a pas été initialisé, il l'est (étape 225). L'initialisation consiste notamment à créer des informations relatives à l'utilisation d'un procédé de suivi d'éléments caractéristiques robustes au flou dans une séquence d'images floues, en particulier à détecter des éléments caractéristiques robustes au flou dans les images. Cette étape peut, dans certaines mises en œuvre, être effectuée « hors ligne », au lancement de l'application, notamment lorsque ces éléments caractéristiques robustes au flou sont construits directement sur des images clés hors ligne.If this mode has not been initialized, it is (step 225). The initialization consists in particular in creating information relating to the use of a method of tracking characteristic elements that are robust to blurring in a sequence of fuzzy images, in particular to detecting characteristic elements that are robust to blurring in the images. This step may, in some implementations, be performed "offline" at the launch of the application, especially when these features robust to the blur are built directly on offline keyframes.
Le mode de suivi d'éléments caractéristiques robustes au flou dans une séquence d'images floues est ensuite mis en œuvre (étape 230). A titre d'illustration, un tel mode de suivi d'éléments caractéristiques robustes au flou peut être basé sur l'utilisation de descripteurs de type KLT ou encore de suivi de lignes de forts gradients comme décrit précédemment. De façon avantageuse, ces deux solutions sont combinées pour obtenir un résultat plus robuste.The mode of tracking characteristic elements that are robust to blurring in a sequence of fuzzy images is then implemented (step 230). By way of illustration, such a mode of tracking characteristic elements that are robust to blurring can be based on the use of KLT type descriptors or else the tracking of lines of strong gradients as previously described. Advantageously, these two solutions are combined to obtain a more robust result.
Dans cette étape, au moins une partie des descripteurs dits stables, utilisés dans le suivi d'objet de type classique (étape 200), est remplacé par les descripteurs déterminés durant la phase d'initialisation du mode de suivi d'objets utilisé pour permettre le suivi d'objets dans des images floues, plus robustes aux effet de flou optiques « locaux » et « globaux ».In this step, at least a portion of the so-called stable descriptors used in the conventional type object tracking (step 200) is replaced by the descriptors determined during the initialization phase of the object tracking mode used to enable the tracking of objects in fuzzy images, more robust to "local" and "global" optical blur effects.
Lorsque le flou optique disparaît (étapes 205 et 215), le mode de suivi standard est utilisé à nouveau (étape 200). Dans le cas contraire, le mode de suivi d'objets utilisé pour permettre le suivi d'objets dans des images floues est maintenu (étape 230).When the optical blur disappears (steps 205 and 215), the standard tracking mode is used again (step 200). Otherwise, the object tracking mode used to track objects in blurred images is maintained (step 230).
Selon un premier mode de réalisation particulier de l'algorithme illustré sur la figure 2, un algorithme de suivi d'objets comprenant une étape d'identification d'objets, une étape d'initialisation en fonction du ou des objets en présence dans le champ optique de la caméra et une étape de suivi de ces objets est combiné avec un algorithme de suivi de points caractéristique de type KLT, avantageusement adapté au contexte du suivi d'objets dans une séquence d'images floues. Un opérateur de détection de flou optique dans une image est directement extrait de l'algorithme de suivi.According to a first particular embodiment of the algorithm illustrated in FIG. 2, an object tracking algorithm comprising an object identification step, an initialization step depending on the object or objects present in the field camera optics and a tracking step of these objects is combined with a characteristic point tracking algorithm of type KLT, advantageously adapted to the context of tracking objects in a sequence of fuzzy images. An optical blur detection operator in an image is directly extracted from the tracking algorithm.
La figure 3 illustre en partie ce premier mode de réalisation pour suivre des objets dans une image courante 300.Figure 3 partially illustrates this first embodiment for tracking objects in a current image 300.
Une première étape vise à identifier, ou à détecter, le ou les objets à suivre présents dans le champ de la caméra et à initialiser le suivi de ces objets (étape 305). Cette étape met ici en œuvre un algorithme connu, tel que celui développé par la société Total Immersion, présenté précédemment, qui utilise une base de données contenant un grand nombre de descripteurs, par exemple des points d'intérêt et des descripteurs de type HARRIS, SIFT, SURF ou YAPE, appartenant à un grand nombre d'objets référencés 310.A first step is to identify, or detect, the object or objects to follow present in the field of the camera and initialize the tracking of these objects (step 305). This step implements a known algorithm, such as that developed by the company Total Immersion, presented above, which uses a database containing a large number of descriptors, for example points of interest and descriptors of HARRIS type, SIFT, SURF or YAPE, belonging to a large number of referenced objects 310.
Ces descripteurs sont, de préférence, organisés en 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 pour permettre l'identification rapide et robuste d'un ou de plusieurs objets dans l'image courante.These descriptors are preferably organized into 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 fern-like decision trees (see for example the article "Fast Keypoint Reconnection using Random Ferns" M. Ozuysal, P. Fua and V. LepetitJ, allowing a simple and fast classification by comparison of intensity image around a point of interest to allow fast and robust identification of one or more objects in the current image.
Cette étape de détection estime également une pose approximative des objets reconnus dans l'image afin de simplifier l'étape d'initialisation. Cette estimation permet en outre la création d'une image clé dite courante, référencée 315, qui est ensuite utilisée dans le procédé de suivi d'objets.This detection step also estimates an approximate pose of the recognized objects in the image in order to simplify the initialization step. This estimation also makes it possible to create a so-called current key image, referenced 315, which is then used in the object tracking method.
Si au moins un objet a été reconnu, l'image clé courante 315 est utilisée pour initialiser le système de suivi. Lors de cette initialisation, des points d'intérêt, par exemple des points de Harris, sont calculés sur l'image clé courante 315 pour être utilisés dans le suivi du ou des objets identifiés. Après avoir été initialisé, le procédé de suivi d'objets est lancé (étapeIf at least one object has been recognized, the current keyframe 315 is used to initialize the tracking system. During this initialization, points of interest, for example Harris points, are calculated on the current key image 315 to be used in the tracking of the identified object (s). After being initialized, the object tracking method is started (step
320). Ce procédé est ici un procédé « hybride » qui utilise un opérateur de corrélation, par exemple un opérateur de corrélation de type ZNCC (sigle de Zero-mean Normal Cross Corrélation en terminologie anglo-saxonne) pour déterminer des appariements entre l'image courante 300 et l'image clé courante 315 et entre l'image courante 300 et l'image précédente 325, précédant l'image courante dans la séquence d'images. Cet ensemble de correspondances est ensuite utilisé pour déterminer la pose (position et orientation) des objets suivis. Il convient de remarquer ici que plus ces points sont nombreux et plus leur position est précise, plus le résultat de l'estimation de pose est précis.320). This method is here a "hybrid" method that uses a correlation operator, for example a correlation operator of the ZNCC type (acronym Zero-mean Normal Cross Correlation in English terminology) for determining matches between the current image 300 and the current key image 315 and between the current image 300 and the previous image 325, preceding the current image in the sequence of images. This set of correspondences is then used to determine the pose (position and orientation) of the objects followed. It should be noted here that the more these points are numerous and the more precise their position, the more precise the result of the pose estimation.
Une étape suivante a pour objet de déterminer si l'image courante contient un effet de flou optique (étape 330). Selon le mode de réalisation décrit ici, les deux ensembles d'appariements entre l'image courante 300 et l'image précédente 325 et entre l'image courante 300 et l'image clé courante 315 sont utilisés comme un indicateur de la qualité de l'image courante. Lorsque le nombre de ces appariements chute de façon substantielle et devient inférieur à un seuil, il est considéré qu'au moins une partie de l'image contient un flou optique (étape 335). Un tel seuil peut être prédéterminé ou déterminé de façon dynamique. Il est important de noter qu'une chute substantielle du nombre d'appariements peut également avoir lieu dans le cas où l'objet disparaît partiellement de l'image. Cependant, dans ce cas, le nombre de points reste souvent important et le nombre d'appariements diminue progressivement au cours de la séquence d'images traitée.A next step is to determine if the current image contains an optical blur effect (step 330). According to the embodiment described here, the two sets of matches between the current image 300 and the previous image 325 and between the current image 300 and the current key image 315 are used as an indicator of the quality of the image. current image. When the number of such pairings falls substantially and falls below a threshold, it is considered that at least a portion of the picture contains an optical blur (step 335). Such a threshold may be predetermined or dynamically determined. It is important to note that a substantial drop in the number of matches may also occur in the case where the object partially disappears from the image. However, in this case, the number of points often remains important and the number of matches gradually decreases during the processed image sequence.
Si le nombre de ces appariements demeure supérieur au seuil, le suivi des objets se poursuit de façon standard (étape 320).If the number of these matches remains greater than the threshold, the tracking of the objects continues in a standard way (step 320).
Si, au contraire, le nombre de ces appariements chute de façon substantielle et devient inférieur à un seuil, un mode particulier de suivi, ici l'algorithme de suivi de points KLT, est initialisé (étape 340).If, on the contrary, the number of these pairings drops substantially and becomes less than a threshold, a particular mode of monitoring, here the KLT point tracking algorithm, is initialized (step 340).
Dans cette étape, l'image précédente 325 et la pose précédente issue de l'algorithme de suivi sont utilisées pour rechercher des éléments caractéristiques à suivre, robustes au flou. L'image précédente est a priori non floue puisque le détecteur d'image floue (étape 330) a trouvé un nombre suffisamment grand de correspondances sur cette image. Les éléments caractéristiques à suivre, robustes au flou, appelés caractéristiques KLT, sont recherchés dans cette image précédente grâce à l'estimation des dérivées secondes pour chaque pixel de l'image. Lorsque ces dérivées secondes sont importantes, c'est-à-dire supérieures à un seuil prédéterminé, dans au moins une des deux directions principales, il est considéré que le pixel caractérise un point d'intérêt robuste au flou. Ces points sont mémorisés (référence 345). Ensuite, connaissant la pose de l'objet dans l'image précédente 325 et connaissant le modèle géométrique 400 de l'objet, il est possible d'estimer la reprojection de ces caractéristiques KLT et d'en extraire des coordonnées 3D correspondantes précises sur le modèle géométrique 400 de l'objet.In this step, the previous image 325 and the previous pose resulting from the tracking algorithm are used to search for characteristic elements to follow, robust to blur. The preceding image is a priori not fuzzy since the fuzzy image detector (step 330) has found a sufficiently large number of matches on this image. The characteristic elements to follow, robust with the blur, called KLT characteristics, are sought in this previous image thanks to the estimate of the derivatives seconds for each pixel in the image. When these second derivatives are important, that is to say greater than a predetermined threshold, in at least one of the two main directions, it is considered that the pixel characterizes a point of interest robust to the blur. These points are stored (reference 345). Then, knowing the pose of the object in the preceding image 325 and knowing the geometric model 400 of the object, it is possible to estimate the reprojection of these KLT characteristics and to extract precise 3D coordinates on the object. 400 geometric model of the object.
Dans une étape suivante (étape 350), les correspondances des caractéristiques KLT de l'image précédente 345 sont recherchées dans l'image courante 300. Ce procédé de suivi d'éléments caractéristiques tel que décrit dans l'état de l'art permet de suivre des points sur des images successives. Il s'avère particulièrement robuste pour identifier des mouvements de pixels dans différentes portions de l'image globale. Les correspondances telles qu'illustrées sur la figure 4 sont alors obtenues (référence 355).In a next step (step 350), the correspondences of the KLT characteristics of the previous image 345 are searched in the current image 300. This characteristic element tracking method as described in the state of the art makes it possible to follow points on successive images. It is particularly robust in identifying pixel movements in different portions of the overall image. The correspondences as illustrated in FIG. 4 are then obtained (reference 355).
La figure 4 illustre l'extraction des correspondances 2D/3D entre l'image courante et le modèle 3D 400 en utilisant le suivi de caractéristiques KLT entre l'image précédente 325 et l'image courante 300. Il est ainsi montré que la connaissance des correspondances 2D/3D entre l'image précédente 325 et le modèle géométrique 3D 400 et la construction des appariements 2D/2D entre l'image courante et l'image précédente permet l'extraction de correspondances 2D/3D entre l'image courante et le modèle géométrique 3D. Ces nouvelles correspondances permettent, comme décrit précédemment, d'estimer la pose de l'objet dans l'image courante. Il est à noter que dans la figure 4 il est possible de remplacer l'image précédente 325 par une image clé. Cette figure décrit donc aussi bien les appariements récursifs image courante - image précédente, que les appariements image courante - image clé.FIG. 4 illustrates the extraction of the 2D / 3D correspondences between the current image and the 3D model 400 by using the KLT characteristic tracking between the previous image 325 and the current image 300. It is thus shown that the knowledge of the 2D / 3D correspondences between the previous image 325 and the 3D 400 geometrical model and the construction of the 2D / 2D pairings between the current image and the previous image allows the extraction of 2D / 3D correspondences between the current image and the 3D image. 3D geometric model. These new correspondences allow, as previously described, to estimate the pose of the object in the current image. It should be noted that in Figure 4 it is possible to replace the previous image 325 by a keyframe. This figure thus describes the recursive pairings current image - previous image as well as the current image - key image pairings.
Une étape suivante (étape 360) a pour objet le suivi d'objets utilisant les correspondances des caractéristiques KLT calculées précédemment. Cette étape consiste notamment à utiliser les correspondances récursives entre images précédente et courante afin d'extraire une liste d'appariements entre le plan image et le modèle géométrique de l'objet. Ces appariements sont connus car lors de l'étape 340, les éléments caractéristiques de l'image précédente ont été reprojetés sur le modèle géométrique de l'objet.A next step (step 360) is to track objects using the KLT characteristics previously calculated. This step consists in particular in using the recursive correspondences between previous and current images in order to extract a list of matches between the image plane and the geometric model of the object. These matches are known because in step 340, the characteristic elements of the previous image have been reprojected on the geometric model of the object.
Ensuite, les appariements des caractéristiques KLT entre les points des images courante et précédente permettent de faire correspondre les éléments caractéristiques de l'image courante avec des points géométriques sur le modèle de l'objet. Enfin, un algorithme classique dit de minimisation est utilisé pour estimer la pose de l'objet dans l'image courante. Il peut par exemple s'agir d'une approche de type Levenberg-Marquardt, combinée avec un algorithme RANSAC qui permet d'éliminer de mauvaises correspondances 2D/3D.Then, matching the KLT characteristics between the points of the current and previous images makes it possible to match the characteristic elements of the current image with geometric points on the model of the object. Finally, a classic minimization algorithm is used to estimate the pose of the object in the current image. It can for example be a Levenberg-Marquardt type approach, combined with a RANSAC algorithm that eliminates bad 2D / 3D matches.
Lorsque le nombre d'appariements de caractéristiques KLT est insuffisant (étape 365) par rapport à un seuil prédéterminé ou déterminé dynamiquement, il est considéré que l'objet n'est plus présent dans le champ de la caméra. Dans ce cas, le procédé de suivi d'objets subit alors un décrochage et une nouvelle phase de détection d'objets est exécutée (étapes 365 et 305) afin de détecter les objets qui sont potentiellement dans le champ de la caméra.When the number of matches of KLT characteristics is insufficient (step 365) with respect to a predetermined threshold or determined dynamically, it is considered that the object is no longer present in the field of the camera. In this case, the object tracking method is then stalled and a new object detection phase is performed (steps 365 and 305) to detect objects that are potentially in the field of the camera.
Il convient de remarquer ici que, lorsque les images précédente et courante contiennent un effet de flou optique, l'étape d'initialisation (étape 340) n'est pas répétée, comme illustré par la flèche en trait pointillé entre les blocs 335 et 350.It should be noted here that, when the previous and current images contain an optical blur effect, the initialization step (step 340) is not repeated, as illustrated by the dashed arrow between blocks 335 and 350 .
Selon un second mode de réalisation particulier de l'algorithme illustré sur la figure 2, l'initialisation du suivi d'éléments caractéristiques dans une séquence d'images comprenant un effet de flou optique (étape 340 de la figure 3) est avantageusement remplacée par un suivi indépendant de l'image précédente. Dans ce cas, les caractéristiques KLT utilisées pour l'initialisation ne sont pas estimés sur l'image précédente mais en utilisant l'image clé courante, reprojetée en fonction de la pose précédente, estimée lors de l'étape de suivi sur l'image précédente. De cette façon, les caractéristiques KLT suivis dans l'image courante sont similaires à ceux de cette image clé reprojetée, ce qui permet un taux de détection plus rapide dans les images successives de la séquence d'images. Ce second mode de réalisation permet d'éviter d'éventuelles erreurs qui seraient liées à une estimation de pose erronée sur l'image précédente ainsi que d'éventuels problèmes d'occultation de l'objet, par exemple lorsque la main d'un utilisateur passe devant un objet réel. II convient de remarquer qu'il est possible de combiner les deux modes de réalisation décrits afin d'obtenir des résultats plus robustes pour le suivi d'objets. Cependant, une telle combinaison augmente les coûts en termes de calcul.According to a second particular embodiment of the algorithm illustrated in FIG. 2, the initialization of the tracking of characteristic elements in a sequence of images comprising an optical blur effect (step 340 of FIG. 3) is advantageously replaced by an independent follow-up of the previous image. In this case, the KLT characteristics used for the initialization are not estimated on the previous image but by using the current key image, reprojected according to the previous pose, estimated during the tracking step on the image previous. In this way, the KLT characteristics tracked in the current image are similar to those of this reprojected keyframe, which allows a faster detection rate in the successive images of the image sequence. This second embodiment makes it possible to avoid possible errors that would be linked to an erroneous pose estimate on the previous image as well as possible occultation problems of the object, for example when the hand of a user passes in front of a real object. It should be noted that it is possible to combine the two described embodiments in order to obtain more robust results for object tracking. However, such a combination increases the costs in terms of calculation.
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.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.
Le dispositif 500 comporte ici un bus interne de communication 505 auquel sont reliés :The device 500 here comprises an internal communication bus 505 to which are connected:
- une unité centrale de traitement ou microprocesseur 510 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ;a central processing unit or microprocessor 510 (CPU, acronym for Central Processing Unit in English terminology);
- 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 ;- 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;
- 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 ;a random access memory or cache memory 520 (RAM, acronym for Random Access Memory in English terminology) comprising registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs;
- 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 :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:
- un disque dur 525 pouvant comporter les programmes précités et des données traitées ou à traiter selon l'invention ; eta hard disk 525 which may comprise the aforementioned programs and data processed or to be processed according to the invention; and
- 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.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.
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.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.
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.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.
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.According to one variant, 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.
Selon une autre variante, le code exécutable des programmes pourra être reçu, au moins partiellement, par l'intermédiaire de l'interface de communication 540, pour être stocké de façon identique à celle décrite précédemment.According to another variant, the executable code of the programs can be received, at least partially, through the communication interface 540, to be stored in the same manner as described above.
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.More generally, the program or programs may be loaded into one of the storage means of the device 500 before being executed.
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. 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. . When powering on, 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. Naturally, to meet specific needs, a person skilled in the field of the invention may apply modifications in the foregoing description.

Claims

REVENDICATIONS
1. Procédé de suivi d'une représentation d'au moins un objet dans une séquence d'images, en temps réel, au moins une image de ladite séquence d'images comprenant au moins un effet de flou optique, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes,A method of tracking a representation of at least one object in a sequence of images, in real time, at least one image of said sequence of images comprising at least one optical blur effect, which method is characterized in that what he understands the following steps,
- identification (305) d'une représentation dudit au moins un objet dans une première image de ladite séquence d'images ;identifying (305) a representation of said at least one object in a first image of said image sequence;
- suivi (200, 320) de ladite représentation identifiée dudit au moins un objet dans une seconde image de ladite pluralité d'images, ladite seconde image suivant ladite première image, selon un premier mode de suivi d'objets utilisant une image clé ; - détection (205, 330) de flou dans une troisième image de ladite séquence d'images, distincte de ladite première image ;tracking (200, 320) said identified representation of said at least one object in a second image of said plurality of images, said second image following said first image, according to a first object tracking mode using a keyframe; detecting (205, 330) blur in a third image of said image sequence, distinct from said first image;
- suivi (230, 360) de ladite représentation identifiée dudit au moins un objet dans ladite troisième image, selon un second mode de suivi d'objets, distinct dudit premier mode de suivi ; et, - estimation de la pose dudit objet dans ladite troisième image selon ladite représentation identifiée dudit au moins un objet dans ladite troisième image.tracking (230, 360) said identified representation of said at least one object in said third image, according to a second object tracking mode, distinct from said first tracking mode; and, estimating the pose of said object in said third image according to said identified representation of said at least one object in said third image.
2. Procédé selon la revendication 1 selon lequel ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans ladite seconde image comprend une étape de détermination de correspondances entre une pluralité de points d'intérêt de ladite seconde image et d'une image clé correspondante, ladite étape de détection de flou comprenant une étape de comparaison du nombre de correspondances entre ladite pluralité de points d'intérêt de ladite seconde image et de ladite image clé correspondante avec un seuil.The method of claim 1 wherein said step of tracking said identified representation of said at least one object in said second image includes a step of determining mappings between a plurality of points of interest of said second image and an image. corresponding key, said fuzzy detecting step comprising a step of comparing the number of matches between said plurality of points of interest of said second image and said corresponding keyframe with a threshold.
3. Procédé selon la revendication 1 ou la revendication 2 selon lequel ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans une troisième image comprend une étape de recherche de points caractéristiques dans ladite première ou seconde image, la pose dudit au moins un objet étant au moins partiellement déterminée par reprojection desdits points caractéristiques sur un modèle tridimensionnel dudit au moins un objet. The method of claim 1 or claim 2 wherein said step of tracking said identified representation of said at least one object in a third image comprises a step of searching for characteristic points in said first or second image, the laying of said at least one object being at least partially determined by reprojection of said characteristic points onto a three-dimensional model of said at least one object.
4. Procédé selon l'une quelconque des revendications précédentes dans lequel ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans une troisième image comprend une étape de recherche de points caractéristiques dans une image clé correspondant à ladite troisième image, la pose dudit au moins un objet étant au moins partiellement déterminée par reprojection desdits points caractéristiques sur un modèle tridimensionnel dudit au moins un objet.4. Method according to any one of the preceding claims wherein said step of tracking said identified representation of said at least one object in a third image comprises a step of searching for characteristic points in a key image corresponding to said third image, the pose said at least one object being at least partially determined by reprojection of said characteristic points on a three-dimensional model of said at least one object.
5. Procédé selon l'une quelconque des revendications précédentes selon lequel ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans ladite seconde image comprend une étape de détermination d'une pluralité de points d'intérêt dans lesdites première et seconde images, lesdits points d'intérêt étant identifiés comme des points de Harris ou des points de type SURF, SIFT ou YAPE.The method according to any one of the preceding claims, wherein said step of tracking said identified representation of said at least one object in said second image comprises a step of determining a plurality of points of interest in said first and second images. , said points of interest being identified as Harris points or SURF, SIFT or YAPE points.
6. Procédé selon l'une quelconque des revendications précédentes selon lequel ladite étape de suivi de ladite représentation identifiée dudit au moins un objet dans ladite seconde image comprend une étape de détermination d'une pluralité de points d'intérêt dans ladite première ou seconde image et dans une image clé correspondante, lesdits points d'intérêt étant identifiés comme des points de Harris ou des points de type SURF, SIFT ou YAPE. The method of any preceding claim wherein said step of tracking said identified representation of said at least one object in said second image includes a step of determining a plurality of points of interest in said first or second image. and in a corresponding keyframe, said points of interest being identified as Harris points or SURF, SIFT or YAPE points.
7. Procédé selon l'une quelconque des revendications précédentes appliqué de façon récursive sur plusieurs images de ladite pluralité d'images.The method of any one of the preceding claims recursively applied to multiple images of said plurality of images.
8. 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.8. Computer program comprising instructions adapted to the implementation of each of the steps of the method according to any one of the preceding claims when said program is executed on a computer.
9. Moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 7.9. Information storage medium, removable or not, partially or completely readable by a computer or a microprocessor comprising code instructions of a computer program for carrying out each of the steps of the method according to any one of claims 1 to 7.
10. Dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 7. 10. Device comprising means adapted to the implementation of each of the steps of the method according to any one of claims 1 to 7.
EP10734231A 2009-06-08 2010-06-04 Method and device for the real-time tracking of objects in an image sequence in the presence of an optical blur Withdrawn EP2441047A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0902764A FR2946446B1 (en) 2009-06-08 2009-06-08 METHOD AND DEVICE FOR TRACKING REAL-TIME OBJECTS IN A SEQUENCE OF IMAGES IN THE PRESENCE OF OPTICAL FLOU
PCT/FR2010/051104 WO2010142895A1 (en) 2009-06-08 2010-06-04 Method and device for the real-time tracking of objects in an image sequence in the presence of an optical blur

Publications (1)

Publication Number Publication Date
EP2441047A1 true EP2441047A1 (en) 2012-04-18

Family

ID=41528530

Family Applications (1)

Application Number Title Priority Date Filing Date
EP10734231A Withdrawn EP2441047A1 (en) 2009-06-08 2010-06-04 Method and device for the real-time tracking of objects in an image sequence in the presence of an optical blur

Country Status (3)

Country Link
EP (1) EP2441047A1 (en)
FR (1) FR2946446B1 (en)
WO (1) WO2010142895A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011106520A1 (en) 2010-02-24 2011-09-01 Ipplex Holdings Corporation Augmented reality panorama supporting visually impaired individuals
US10970425B2 (en) * 2017-12-26 2021-04-06 Seiko Epson Corporation Object detection and tracking

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2911707B1 (en) 2007-01-22 2009-07-10 Total Immersion Sa METHOD AND DEVICES FOR INCREASED REALITY USING REAL - TIME AUTOMATIC TRACKING OF TEXTURED, MARKER - FREE PLANAR GEOMETRIC OBJECTS IN A VIDEO STREAM.

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2010142895A1 *

Also Published As

Publication number Publication date
FR2946446A1 (en) 2010-12-10
FR2946446B1 (en) 2011-07-15
WO2010142895A1 (en) 2010-12-16

Similar Documents

Publication Publication Date Title
EP2455916B1 (en) Non-rigid tracking-based human-machine interface
EP2491532B1 (en) Method, computer program and device for real-time hybrid tracking of object representations in an image sequence
EP2132710B1 (en) Augmented reality method and devices using a real time automatic tracking of marker-free textured planar geometrical objects in a video stream
WO2008125754A1 (en) Method and device for determining the exposure of a three-dimensional object in an image, and method and device for creating at least one key image for object tracking
EP2111605B1 (en) Method and device for creating at least two key images corresponding to a three-dimensional object
WO2017096949A1 (en) Method, control device, and system for tracking and photographing target
Kurz et al. Inertial sensor-aligned visual feature descriptors
FR2933218A1 (en) METHOD AND APPARATUS FOR REAL-TIME DETECTION OF INTERACTIONS BETWEEN A USER AND AN INCREASED REALITY SCENE
US8452124B2 (en) Method and system for detecting motion blur
FR3073312A1 (en) METHOD FOR ESTIMATING THE INSTALLATION OF A CAMERA IN THE REFERENTIAL OF A THREE-DIMENSIONAL SCENE, DEVICE, INCREASED REALITY SYSTEM, AND COMPUTER PROGRAM
Ufkes et al. A markerless augmented reality system for mobile devices
WO2018185104A1 (en) Method for estimating pose, associated device, system and computer program
Porzi et al. Learning contours for automatic annotations of mountains pictures on a smartphone
EP2441048A1 (en) Methods and devices for identifying real objects, for following up the representation of said objects and for augmented reality in an image sequence in a client-server mode
EP2257924B1 (en) Method for generating a density image of an observation zone
CA2825506A1 (en) Spectral scene simplification through background subtraction
WO2010142897A2 (en) Method and device for calibrating an image sensor using a real-time system for following up objects in an image sequence
GB2606807A (en) Image creation for computer vision model training
WO2010142895A1 (en) Method and device for the real-time tracking of objects in an image sequence in the presence of an optical blur
US11216961B2 (en) Aligning digital images by selectively applying pixel-adjusted-gyroscope alignment and feature-based alignment models
Kroepfl et al. Efficiently locating photographs in many panoramas
EP3219094B1 (en) Film rushes generation device by video analysis
Lima et al. Model based 3d tracking techniques for markerless augmented reality
Jiddi et al. Photometric Registration using Specular Reflections and Application to Augmented Reality
CA3230088A1 (en) Method for matching a candidate image with a reference image

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20111229

AK Designated contracting states

Kind code of ref document: A1

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

DAX Request for extension of the european patent (deleted)
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1168456

Country of ref document: HK

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20130424

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: TOTAL IMMERSION

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

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20140103

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1168456

Country of ref document: HK