PROCEDE D'ESTIMATION DE LA VITESSE DE DEPLACEMENT D'UNE CAMERA METHOD OF ESTIMATING THE SPEED OF MOVING A CAMERA
[001 ] L'invention concerne un procédé et un système d'estimation de la vitesse de déplacement d'une caméra au moment où cette caméra capture une image courante d'une scène tridimensionnelle. L'invention concerne aussi un procédé de construction de la trajectoire d'une caméra et un procédé de traitement d'une image mettant en œuvre le procédé d'estimation de la vitesse de déplacement. L'invention a également pour objet un support d'enregistrement d'informations pour la mise en œuvre de ces procédés. [001] The invention relates to a method and a system for estimating the speed of movement of a camera at the moment when this camera captures a current image of a three-dimensional scene. The invention also relates to a method of constructing the trajectory of a camera and a method of processing an image implementing the method of estimating the speed of displacement. The invention also relates to an information recording medium for the implementation of these methods.
[002] Il est bien connu que lorsqu'on déplace une caméra pendant qu'elle capture une image, cela déforme l'image capturée. Par exemple, un flou cinétique plus connu sous le terme anglais de « motion blur » apparaît. Ceci est dû au fait que pour mesurer l'intensité lumineuse d'un point d'une scène, chaque pixel doit rester exposé à la lumière émise par ce point pendant un temps d'exposition te. Si la caméra est déplacée pendant ce temps te, le pixel n'est pas exposé à la lumière d'un seul point, mais à celle émise par plusieurs points. Dès lors, l'intensité lumineuse mesurée par ce pixel est celle de plusieurs points lumineux, ce qui fait apparaître le flou cinétique. [002] It is well known that when a camera is moved while capturing an image, it deforms the captured image. For example, a kinetic blur better known as "motion blur" appears. This is because to measure the luminous intensity of a point in a scene, each pixel must remain exposed to the light emitted by that point during an exposure time t e . If the camera is moved during this time t e , the pixel is not exposed to the light of a single point, but to that emitted by several points. As a result, the luminous intensity measured by this pixel is that of several luminous points, which makes the motion blur appear.
[003] De nos jours, il existe aussi de plus en plus de caméras à obturation progressive de pixels ou « rolling shutter caméra» en anglais. Dans ces caméras, les lignes de pixels sont capturées les unes après les autres de sorte que, dans la même image, l'instant de capture d'une ligne de pixels est décalé temporellement d'une durée de l'instant de capture de la ligne de pixels suivante. Si la caméra se déplace pendant la durée tA, cela crée des distorsions de l'image capturée même si l'on considère que le temps te d'exposition est négligeable. [003] Nowadays, there are also more and more cameras with progressive shutter of pixels or "rolling shutter camera" in English. In these cameras, the rows of pixels are captured one after the other so that, in the same image, the capture time of a pixel line is shifted temporally by a duration of the moment of capture of the image. next pixel line. If the camera moves for the duration t A , it creates distortions of the captured image even if one considers that the time t e of exposure is negligible.
[004] Pour corriger de telles déformations, il est nécessaire d'estimer correctement la vitesse de la caméra au moment où celle-ci capture l'image. [004] To correct such deformations, it is necessary to correctly estimate the speed of the camera at the moment when the latter captures the image.
[005] Pour cela, des procédés connus des inventeurs pour estimer la vitesse de déplacement d'une première caméra au moment où cette première caméra capture une image courante d'une scène tridimensionnelle ont été développés. Ces procédés connus sont des méthodes basées points d'intérêt ou « feature based method » en anglais. Dans ces méthodes basées points d'intérêt, il existe des étapes d'extraction dans chaque image de points particuliers appelés « points d'intérêt ». Ensuite, les points d'intérêt extraits de l'image de référence et de l'image courante doivent être appariés. Ces étapes d'extraction et d'appariement de points d'intérêt sont mal conditionnées, bruitées et non robustes. Elles sont donc complexes à mettre en œuvre. [005] For this, methods known to the inventors for estimating the speed of movement of a first camera at the moment when this first camera captures a current image of a three-dimensional scene have been developed. These known methods are methods based on points of interest or "feature based method" in English. In these point-of-interest-based methods, there are extraction steps in each image of particular points called "points of interest". Then, the points of interest extracted from the reference image and the current image must be matched. These points of interest extraction and matching steps are poorly conditioned, noisy, and non-robust. They are therefore complex to implement.
[006] Ensuite, la vitesse de déplacement de la première caméra est estimée à partir de la vitesse de déplacement de ces points d'intérêts d'une image à l'autre. Toutefois, il est souhaitable de simplifier les procédés connus.
[007] A cet effet, l'invention concerne un premier procédé d'estimation de la vitesse de déplacement d'une première caméra au moment où cette première caméra capture une image courante d'une scène tridimensionnelle, conforme à la revendication 1 . [006] Next, the speed of movement of the first camera is estimated from the speed of movement of these points of interest from one image to another. However, it is desirable to simplify the known methods. [007] For this purpose, the invention relates to a first method for estimating the speed of displacement of a first camera at the moment when this first camera captures a current image of a three-dimensional scene, in accordance with claim 1.
[008] L'invention a également pour objet un second procédé d'estimation de la vitesse de déplacement d'une première caméra au moment où cette première caméra capture une image courante d'une scène tridimensionnelle, conforme à la revendication 4. [008] The invention also relates to a second method for estimating the speed of movement of a first camera at the moment when this first camera captures a current image of a three-dimensional scene, according to claim 4.
[009] Les procédés ci-dessus ne mettent pas en œuvre d'étape d'extraction de points d'intérêt dans les images, ni d'appariement de ces points d'intérêt entre images successives. Pour cela, le procédé ci-dessus minimise directement un écart entre des grandeurs physiques mesurées dans l'image de référence et dans l'image courante pour un grand nombre de pixels de ces images. Ceci simplifie le procédé. [009] The above methods do not implement step of extraction of points of interest in the images, nor of pairing these points of interest between successive images. For this, the above method directly minimizes a difference between physical quantities measured in the reference image and in the current image for a large number of pixels of these images. This simplifies the process.
[0010] De plus, étant donné que l'écart entre les grandeurs physiques est calculé pour un très grand nombre de points des images, c'est-à-dire pour un nombre supérieur à 10 % des pixels de l'image courante ou de référence, le nombre d'écarts à minimiser est beaucoup plus grand que le nombre d'inconnues à estimer. En particulier, le nombre d'écarts pris en compte pour estimer la vitesse est beaucoup plus grand que dans le cas des méthodes basés points d'intérêt. Ainsi, il existe une redondance plus importante des informations, ce qui rend le procédé ci-dessus plus robuste que les méthodes basées points d'intérêts. In addition, since the difference between the physical quantities is calculated for a very large number of points of the images, that is to say for a number greater than 10% of the pixels of the current image or reference number, the number of deviations to be minimized is much larger than the number of unknowns to estimate. In particular, the number of deviations taken into account to estimate speed is much greater than in the case of point of interest-based methods. Thus, there is more redundancy of information, which makes the above method more robust than point-of-interest methods.
[0011] On notera aussi que dans le procédé ci-dessus, seule l'une des images doit associer à chaque pixel une profondeur. Ainsi, la première ou la seconde caméra peut-être une simple caméra monoculaire incapable de mesurer la profondeur qui la sépare de la scène photographiée. Note also that in the above method, only one of the images must associate with each pixel a depth. Thus, the first or the second camera may be a simple monocular camera unable to measure the depth that separates it from the photographed scene.
[0012] Enfin, les procédés ci-dessus permettent d'estimer précisément la vitesse même en présence d'un floue cinétique dans l'image courante. Pour cela, dans les procédés ci-dessus, un flou cinétique correspondant est ajouté sur les valeurs de la grandeur physique construites à partir des mesures mémorisées dans l'image courante ou de référence. Ainsi, les première et seconde valeurs de la grandeur physique sont toutes les deux affectées par le même floue cinétique ce qui améliore l'estimation de la vitesse. Finally, the above methods can accurately estimate the speed even in the presence of a kinetic blur in the current image. For this, in the above methods, a corresponding kinetic blur is added to the values of the physical quantity constructed from the measurements stored in the current or reference image. Thus, the first and second values of the physical quantity are both affected by the same kinetic fuzziness which improves the estimation of the speed.
[0013] Les modes de réalisation de ces procédés peuvent comporter une ou plusieurs des caractéristiques des revendications dépendantes. Embodiments of these methods may include one or more of the features of the dependent claims.
[0014] Ces modes de réalisation des procédés d'estimation de la vitesse présentent en outre les avantages suivants : These embodiments of speed estimation methods furthermore have the following advantages:
- Déterminer les coordonnées de l'un des premier et second points en prenant en compte le déplacement de la première caméra pendant la durée tA permet d'améliorer l'estimation de la vitesse en présence d'une déformation de l'image courante causée par l'obturation progressive des pixels. ;
- Réaliser simultanément les étapes d) et e) permet d'estimer simultanément la pose et la vitesse de la première caméra et donc de reconstruire sa trajectoire dans la scène photographiée sans avoir recours à des capteurs supplémentaires comme un capteur inertiel; - Determine the coordinates of one of the first and second points taking into account the displacement of the first camera during the time t A improves the estimation of the speed in the presence of a deformation of the current image caused by the gradual shutter of the pixels. ; - Simultaneously perform steps d) and e) allows to simultaneously estimate the pose and speed of the first camera and thus reconstruct its trajectory in the photographed scene without using additional sensors as an inertial sensor;
- Estimer la pose à partir de la vitesse XVR et du temps tp écoulé entre deux captures successives d'images courantes permet de limiter le nombre d'inconnues à estimer, ce qui simplifie et accélère l'estimation de cette vitesse XVR. - Estimating the pose from the speed X V R and the time t p elapsed between two successive captures of current images makes it possible to limit the number of unknowns to be estimated, which simplifies and speeds up the estimation of this speed X V R.
- Prendre en tant qu'inconnues la vitesse de déplacement en translation et en rotation permet d'estimer simultanément la vitesse en translation et en rotation de la première caméra. Taking as unknown the speed of displacement in translation and in rotation makes it possible to simultaneously estimate the speed in translation and in rotation of the first camera.
[0015] L'invention a également pour objet un procédé construction de la trajectoire d'une première caméra conforme à la revendication 11. The invention also relates to a method of constructing the trajectory of a first camera according to claim 11.
[0016] L'invention a également pour objet un procédé de traitement d'une image courante d'une scène tridimensionnelle conforme à la revendication 12. The invention also relates to a method for processing a current image of a three-dimensional scene according to claim 12.
[0017] L'invention à également pour objet un support d'enregistrement d'informations, comportant des instructions pour la mise en œuvre d'un des procédés ci-dessus, lorsque ces instructions sont exécutées par un calculateur électronique. The invention also relates to an information recording medium, comprising instructions for the implementation of one of the above methods, when these instructions are executed by an electronic computer.
[0018] L'invention a également pour objet un premier système d'estimation de la vitesse de déplacement d'une première caméra au moment où cette première caméra capture une image courante d'une scène tridimensionnelle conforme à la revendication 14. The invention also relates to a first system for estimating the speed of movement of a first camera at the moment when this first camera captures a current image of a three-dimensional scene according to claim 14.
[0019] Enfin, l'invention a également pour objet un second système d'estimation de la vitesse de déplacement d'une première caméra au moment où cette première caméra capture une image courante d'une scène tridimensionnelle conforme à la revendication 15. Finally, the invention also relates to a second system for estimating the speed of movement of a first camera at the moment when this first camera captures a current image of a three-dimensional scene according to claim 15.
[0020] L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif et faite en se référant aux dessins lesquels : The invention will be better understood on reading the description which follows, given solely by way of non-limiting example and with reference to the drawings which:
- la figure 1 est une illustration schématique d'un système permettant d'estimer la vitesse de déplacement d'une caméra au moment où celle-ci capture une image ainsi que de traiter et de corriger les images ainsi capturées ; FIG. 1 is a schematic illustration of a system making it possible to estimate the speed of movement of a camera at the moment when the latter captures an image as well as to process and correct the images thus captured;
- les figures 2A et 2B sont des chronogrammes illustrant les instants d'acquisition de différentes rangées de pixels, premièrement, dans le cas d'une caméra à obturation progressive de pixels et, secondement, dans le cas d'une caméra à obturation simultanée de tous ses pixels ; FIGS. 2A and 2B are timing diagrams illustrating the instants of acquisition of different rows of pixels, first, in the case of a camera with progressive shutter of pixels and, secondly, in the case of a camera with simultaneous shutter of all its pixels;
- la figure 3 est une illustration schématique d'une étape permettant de déterminer des points correspondants entre une image de référence et une image courante ; FIG. 3 is a schematic illustration of a step for determining corresponding points between a reference image and a current image;
- la figure 4 est un organigramme d'un procédé d'estimation de la vitesse d'une caméra ainsi que de traitement des images capturées par cette caméra ;
- la figure 5 est une illustration d'un autre mode de réalisation d'une caméra susceptible d'être utilisée dans le système de la figure 1 ; FIG. 4 is a flowchart of a method for estimating the speed of a camera as well as for processing the images captured by this camera; FIG. 5 is an illustration of another embodiment of a camera that can be used in the system of FIG. 1;
- la figure 6 est un organigramme d'un procédé d'estimation de la vitesse de la caméra de la figure 5 ; FIG. 6 is a flowchart of a method for estimating the speed of the camera of FIG. 5;
- la figure 7 est une illustration partielle d'un autre procédé d'estimation de la vitesse de la caméra du système de la figure 1 ; FIG. 7 is a partial illustration of another method for estimating the speed of the camera of the system of FIG. 1;
- la figure 8 est une illustration schématique d'une étape de détermination de points correspondants dans l'image courante et dans l'image de référence ; FIG. 8 is a schematic illustration of a step of determining corresponding points in the current image and in the reference image;
- la figure 9 est un chronogramme illustrant l'évolution au cours du temps de l'erreur entre la vitesse estimée et la vitesse réelle dans quatre cas différents. - Figure 9 is a timing diagram illustrating the evolution over time of the error between the estimated speed and the actual speed in four different cases.
[0021 ] Dans ces figures, les mêmes références sont utilisées pour désigner les mêmes éléments. In these figures, the same references are used to designate the same elements.
[0022] Dans la suite de cette description, les caractéristiques et fonctions bien connues de l'homme du métier ne sont pas décrites en détail. Pour une présentation de l'arrière plan technologique et des notations et concepts utilisés dans cette description, le lecteur peut se référer au livre L1 suivant : Yi MA, S. SOATTO, J. KOSECKA, S. SHANKAR SASTRY, « An invitation to 3-D vision. From images to Géométrie Models », Springer, 2004 In the following description, the features and functions well known to those skilled in the art are not described in detail. For a presentation of the technological background and the notations and concepts used in this description, the reader can refer to the following L1 book: Yi MA, S. SOATTO, J. KOSECKA, S. SHANKAR SASTRY, "An invitation to 3 -D vision. From images to Geometry Models », Springer, 2004
[0023] La figure 1 représente un système 2 de traitement d'images pour estimer la pose XPR et la vitesse XVR d'une caméra au moment où celle-ci acquiert une image courante. Ce système est également apte à utiliser la pose xpR et la vitesse XVR estimée pour construire la trajectoire de la caméra et/ou traiter les images courantes afin de les corriger. FIG. 1 represents a system 2 for image processing for estimating the exposure X P R and the speed X V R of a camera at the moment when the latter acquires a current image. This system is also able to use the pose x pR and the estimated speed X V R to construct the trajectory of the camera and / or process the current images in order to correct them.
[0024] Ce système 2 comporte une caméra 4 qui capture une suite ordonnée temporellennent d'images d'une scène tridimensionnelle 6. La caméra 4 est mobile, c'est-à-dire qu'elle est déplaçable à l'intérieur de la scène 6 le long d'une trajectoire inconnue à l'avance. Par exemple, la caméra 4 est transportée et déplacée à la main par un utilisateur ou fixée sur un robot ou un véhicule télécommandé qui se déplace à l'intérieur de la scène 6. Ici, la caméra 4 est librement déplaçable dans la scène 6 de sorte que sa pose xpR, c'est-à-dire sa position et son orientation, est un vecteur à six inconnues. This system 2 comprises a camera 4 which captures an ordered sequence temporellennent images of a three-dimensional scene 6. The camera 4 is mobile, that is to say that it is movable inside the scene 6 along an unknown trajectory in advance. For example, the camera 4 is transported and moved by hand by a user or fixed on a robot or a remotely operated vehicle that moves inside the scene 6. Here, the camera 4 is freely movable in the scene 6 of so that its pose x pR , that is to say its position and its orientation, is a vector with six unknowns.
[0025] La scène 6 est un espace tridimensionnel. Il peut s'agir d'un espace situé à l'intérieur d'un immeuble tel qu'un bureau, une cuisine ou des couloirs. Il peut également s'agir d'un espace extérieur tel qu'une route, une ville ou un terrain. Scene 6 is a three-dimensional space. It may be an area inside a building such as an office, kitchen or hallways. It can also be an outdoor space such as a road, a city or a field.
[0026] La caméra 4 enregistre la suite ordonnée d'images capturées dans une mémoire électronique 10 d'une unité 12 de traitement d'images. Chaque image comporte des pixels organisés en rangées parallèles les unes aux autres. Ici, ces pixels sont organisés en colonnes et en lignes. Chaque pixel correspond à un capteur élémentaire qui mesure une grandeur physique. Ici, la grandeur physique mesurée est choisie parmi l'intensité d'un rayonnement émis par un point de la scène 6 et la
distance séparant ce pixel de ce point de la scène 6. Cette distance est appelée « profondeur ». Dans ce premier mode de réalisation, les pixels de la caméra 4 mesurent seulement l'intensité de la lumière émise par le point de la scène photographié. Ici, chaque pixel mesure en particulier la couleur du point de la scène photographié par ce pixel. Cette couleur est par exemple codée en utilisant le modèle RGB (Red-Green-Blue). The camera 4 records the ordered sequence of images captured in an electronic memory 10 of a unit 12 of image processing. Each image has pixels organized in rows parallel to each other. Here, these pixels are organized into columns and lines. Each pixel corresponds to an elementary sensor that measures a physical quantity. Here, the measured physical quantity is chosen from the intensity of a radiation emitted by a point of the scene 6 and the distance separating this pixel from this point of scene 6. This distance is called "depth". In this first embodiment, the pixels of the camera 4 measure only the intensity of the light emitted by the point of the scene photographed. Here, each pixel measures in particular the color of the point of the scene photographed by this pixel. This color is for example coded using the RGB (Red-Green-Blue) model.
[0027] Ici, la caméra 4 est une caméra à obturation progressive des pixels plus connue sous le terme anglais de « rolling shutter caméra ». Dans une telle caméra, les lignes de pixels sont capturées les unes après les autres contrairement à ce qui se passe pour une caméra à obturation simultanée des pixels. Les caméras à obturation simultanée de pixels sont connues sous le terme anglais de « global shutter caméra ». Here, the camera 4 is a progressive shutter camera pixels more known by the English term "rolling shutter camera." In such a camera, the lines of pixels are captured one after the other unlike what happens for a camera with simultaneous shutter pixels. Cameras with simultaneous shutter of pixels are known under the term of "global shutter camera".
[0028] Les figures 2A et 2B illustrent plus précisément les caractéristiques de la caméra 4 comparées à celles d'une caméra à obturation simultanée des pixels. Dans les graphes des figures 2A et 2B, l'axe horizontal représente le temps tandis que l'axe vertical représente le numéro de la ligne de pixels. Dans ces graphes, chaque ligne de pixels, et donc chaque image, est capturée avec une périodicité tp. Le temps nécessaire pour capturer les intensités lumineuses mesurées par chaque pixel d'une même ligne est représenté par un bloc hachuré 30. Chaque bloc 30 est précédé par un temps te d'exposition des pixels aux rayons lumineux à mesurer. Ce temps te est représenté par des rectangles 32. Chaque temps te d'exposition est lui-même précédé d'une durée de réinitialisation des pixels représentés par des blocs 34. Figures 2A and 2B illustrate more precisely the characteristics of the camera 4 compared to those of a simultaneous shutter camera pixels. In the graphs of FIGS. 2A and 2B, the horizontal axis represents the time while the vertical axis represents the number of the pixel line. In these graphs, each line of pixels, and therefore each image, is captured with a periodicity t p . The time required to capture the light intensities measured by each pixel of the same line is represented by a hatched block 30. Each block 30 is preceded by a time t e of exposure of the pixels to the light rays to be measured. This time t e is represented by rectangles 32. Each exposure time t e is itself preceded by a duration of reinitialization of the pixels represented by blocks 34.
[0029] Dans la figure 2A, les pixels sont capturés par la caméra 4, et dans la figure 2B, les pixels sont capturés par une caméra à obturation simultanée des pixels. Ainsi, dans la figure 2A, les blocs 30 sont décalés temporellement les uns par rapport aux autres puisque les différentes lignes d'une même image sont capturées les unes après les autres et non pas simultanément comme dans le cas de la figure 2B. In Figure 2A, the pixels are captured by the camera 4, and in Figure 2B, the pixels are captured by a simultaneous camera shutter pixels. Thus, in FIG. 2A, the blocks 30 are offset temporally relative to each other since the different lines of the same image are captured one after the other and not simultaneously as in the case of FIG. 2B.
[0030] La durée qui s'écoule entre les instants de capture de deux lignes de pixels successives est non nulle dans le cas de la figure 2A. Ici, on suppose que la durée est la même quelle que soit la paire de lignes successives sélectionnées dans l'image capturée par la caméra 4. The time elapsing between the instants of capture of two successive pixel lines is non-zero in the case of Figure 2A. Here, we assume that the duration is the same whatever the pair of successive lines selected in the image captured by the camera 4.
[0031 ] De plus, par la suite, on suppose que la durée est constante dans le temps. Du fait de l'existence de cette durée tA, la capture d'une image complète par la caméra 4 ne peut être réalisée qu'en un temps tr égal à la somme des durées qui sépare les instants de capture des différentes lignes de l'image complète. In addition, thereafter, it is assumed that the duration is constant in time. Due to the existence of this duration t A , the capture of a complete image by the camera 4 can only be performed in a time t r equal to the sum of the times that separate the capture instants of the different lines of the complete picture.
[0032] Comme indiqué précédemment, il est bien connu que si la caméra 4 se déplace entre les instants de capture d'une ligne et la suivante, cela introduit une déformation dans l'image capturée. Par la suite, cette déformation est appelée « déformation RS ».
[0033] De plus, il est également bien connu que si la caméra 4 se déplace pendant le temps d'exposition te, cela engendre l'apparition d'un flou cinétique dans l'image. Par la suite, cette déformation est appelée « déformation MB ». As indicated above, it is well known that if the camera 4 moves between the capture instants of one line and the next, this introduces a distortion in the captured image. Subsequently, this deformation is called "RS strain". In addition, it is also well known that if the camera 4 moves during the exposure time t e , this causes the appearance of a kinetic blur in the image. Subsequently, this deformation is called "deformation MB".
[0034] Dans la suite de cette description, on suppose que les images capturées par la caméra 4 sont simultanément affectées par ces deux types de déformation, c'est-à- dire les déformations RS et MB. Les procédés suivants tiennent donc compte simultanément de ces deux types de déformation. In the remainder of this description, it is assumed that the images captured by the camera 4 are simultaneously affected by these two types of deformation, that is to say the RS and MB deformations. The following methods therefore simultaneously take account of these two types of deformation.
[0035] Classiquement, chaque caméra est modélisée par un modèle permettant de déterminer, à partir des coordonnées d'un point de la scène, les coordonnées du point, dans le plan de l'image, ayant photographié ce point. Typiquement, le plan d'une image est le plan de l'espace situé entre un centre C de projection et la scène photographiée, sur lequel une projection centrale, de centre C, de la scène permet d'obtenir une image identique à celle photographiée par la caméra. Par exemple, le modèle utilisé est le modèle sténopé ou « pin hole » en anglais. Plus d'informations sur ce modèle peuvent être trouvées dans les articles suivants : Conventionally, each camera is modeled by a model for determining, from the coordinates of a point of the scene, the coordinates of the point, in the plane of the image, having photographed this point. Typically, the plane of an image is the plane of the space between a projection center C and the photographed scene, on which a central projection, of center C, of the scene makes it possible to obtain an image identical to that photographed by the camera. For example, the model used is the pinhole model or "pin hole" in English. More information on this model can be found in the following articles:
- FAUGERAS, O. (1993). Three-dimensionnal computer vision : a géométrie viewpoint. MIT Press Cambridge, MA. 23 - FAUGERAS, O. (1993). Three-dimensional computer vision: a viewpoint geometry. MIT Press Cambridge, MA. 23
- HARTLEY, R.l. & ZISSERMAN, A. (2004). Multiple View Geometry in Computer Vision. Cambridge University Press, 2nd edn. 23, 86 - HARTLEY, R.I. & ZISSERMAN, A. (2004). Multiple View Geometry in Computer Vision. Cambridge University Press, 2nd edn. 23, 86
[0036] Dans ces modèles, la position de chaque pixel est repérée par les coordonnées d'un point p dans le plan de l'image. Par la suite, pour simplifier la description, on considère que ce point p se trouve à l'intersection d'un axe AO passant par le point de la scène PS (figure 1 ) photographié par ce pixel et un centre C de projection. Le centre C de projection se trouve à l'intersection de tous les axes optiques de tous les pixels de l'image. La position du centre C par rapport au plan de l'image, dans un repère F tridimensionnel lié sans aucun degré de liberté à la caméra 4, est une caractéristique intrinsèque de la caméra 4. Cette position dépend par exemple de la distance focale de la caméra. Typiquement, l'ensemble des paramètres intrinsèques de la caméra 4 qui permettent de trouver le point p correspondant à la projection du point PS sur le plan PL le long de l'axe OA, sont regroupés au sein d'une matrice connue sous le terme de matrice des paramètres intrinsèques de la caméra ou « intrinsic matrix » en anglais. Cette matrice est notée K. Elle s'écrit typiquement sous la forme suivante : In these models, the position of each pixel is identified by the coordinates of a point p in the plane of the image. Subsequently, to simplify the description, it is considered that this point p is at the intersection of an axis AO passing through the point of the PS scene (Figure 1) photographed by this pixel and a projection center C. The projection center C is at the intersection of all the optical axes of all the pixels of the image. The position of the center C with respect to the plane of the image, in a three-dimensional reference F linked without any degree of freedom to the camera 4, is an intrinsic characteristic of the camera 4. This position depends, for example, on the focal distance of the camera. camera. Typically, the set of intrinsic parameters of the camera 4 which make it possible to find the point p corresponding to the projection of the point PS on the plane PL along the axis OA, are grouped together in a matrix known under the term matrix of the intrinsic parameters of the camera or "intrinsic matrix" in English. This matrix is denoted K. It is written typically in the following form:
- f est la distance focale de la caméra exprimée en pixel - f is the focal length of the camera expressed in pixels
- s est le facteur de cisaillement, - s is the shear factor,
- r est le rapport de dimension d'un pixel, et
- le couple (u0, v0) correspond à la position du point principal en pixel, c'est-à- dire typiquement le centre de l'image. r is the dimension ratio of a pixel, and the pair (u 0 , v 0 ) corresponds to the position of the main pixel point, that is to say typically the center of the image.
[0037] En général, pour une caméra de bonne qualité, le facteur de cisaillement est nul et le rapport des dimensions est proche de 1 . Cette matrice K est notamment utilisée pour déterminer les coordonnées du point p correspondant à la projection du point PS sur le plan PL de la caméra. Par exemple, la matrice K peut être obtenue lors d'une phase d'étalonnage. Une telle phase d'étalonnage est par exemple décrite dans les articles suivants : In general, for a good quality camera, the shear factor is zero and the aspect ratio is close to 1. This matrix K is used in particular to determine the coordinates of the point p corresponding to the projection of the point PS on the PL plane of the camera. For example, the matrix K can be obtained during a calibration phase. Such a calibration phase is for example described in the following articles:
- TSAI, R.Y. (1992). Radiometry. chap. A versatile caméra calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf TV caméras and lenses, 221 -244. 23 - TSAI, R.Y. (1992). Radiometry. Chap. A versatile technical calibration camera for high-accuracy 3D machine metrology vision using off-the-shelf TV cameras and lenses, 221-244. 23
- HEIKKILA, J. & SILVEN, O. (1997). A four-step caméra calibration procédure with implicit image correction. In IEEE International Conférence on Computer Vision and Pattern Récognition, 1106-. 23, 24 HEIKKILA, J. & SILVEN, O. (1997). A four-step camera calibration procedure with implicit image correction. In IEEE International Conference on Computer Vision and Pattern Recognition, 1106-. 23, 24
- ZHANG, Z. (1999). Flexible caméra calibration by viewing a plane from unknown orientations. In International Conférence on Computer Vision, 666-673. 23, 24. ZHANG, Z. (1999). Flexible camera calibration by viewing a plane from unknown orientations. In International Conference on Computer Vision, 666-673. 23, 24.
[0038] Il est également possible d'obtenir cette matrice K à partir d'une image d'un objet ou d'une mire d'étalonnage dont les dimensions sont connues telles qu'un échiquier ou des cercles. It is also possible to obtain this matrix K from an image of an object or a calibration pattern whose dimensions are known such as a chessboard or circles.
[0039] Pour un objectif à focal fixe, cette matrice est constante au cours du temps. Pour faciliter la description qui suit, on supposera donc que cette matrice K est constante et connue. For a fixed focus lens, this matrix is constant over time. To facilitate the description which follows, it will be assumed that this matrix K is constant and known.
[0040] Dans cette description, on note également xpR la pose de la caméra 4, c'est- à-dire sa position et son orientation dans un repère R lié sans aucun degré de liberté à la scène 6. Ici, le repère R comporte deux axes horizontaux X et Y orthogonaux entre eux et un axe vertical Z. Ainsi, la pose xpR est un vecteur à six coordonnées dont trois pour représenter sa position dans le repère R et trois autres coordonnées pour représenter l'inclinaison de la caméra 4 par rapport aux axes X, Y et Z. Par exemple, la position de la caméra 4 est repérée dans le repère R par les coordonnées de son centre de projection. De même, à titre d'illustration, l'axe utilisé pour repérer l'inclinaison de la caméra 4 par rapport aux axes dans le repère R est l'axe optique de la caméra 4. In this description, we also note x pR the pose of the camera 4, that is to say its position and its orientation in a reference R bound without any degree of freedom to the scene 6. Here, the reference R has two horizontal axes X and Y orthogonal to each other and a vertical axis Z. Thus, the pose x pR is a vector with six coordinates, three of which represent its position in the coordinate system R and three other coordinates to represent the inclination of the camera 4 with respect to the X, Y and Z axes. For example, the position of the camera 4 is marked in the R mark by the coordinates of its projection center. Similarly, by way of illustration, the axis used to locate the inclination of the camera 4 with respect to the axes in the reference R is the optical axis of the camera 4.
[0041 ] Par la suite, on suppose que la caméra 4 est capable de se déplacer avec six degré de liberté, de sorte que les six coordonnées de la pose de la caméra 4 sont des inconnues qui doivent être estimées. Subsequently, it is assumed that the camera 4 is able to move with six degrees of freedom, so that the six coordinates of the pose of the camera 4 are unknowns that must be estimated.
[0042] On note également XVR la vitesse de la caméra 4, c'est-à-dire sa vitesse en translation et en rotation exprimée dans le repère R. La vitesse XVR est un vecteur à six coordonnées, dont trois coordonnées correspondent à la vitesse de la caméra 4 en translation le long des axes X, Y et Z, et trois autres coordonnées correspondent aux vitesses angulaires de la caméra 4 autour de ses axes X, Y et Z.
[0043] Pour chaque image capturée par la caméra 4 et pour chaque pixel de cette image, les informations suivantes sont enregistrées dans la mémoire 10 : We also note X V R the speed of the camera 4, that is to say its speed in translation and in rotation expressed in the reference R. The speed X V R is a vector with six coordinates, including three coordinates correspond to the speed of the camera 4 in translation along the X, Y and Z axes, and three other coordinates correspond to the angular velocities of the camera 4 around its X, Y and Z axes. For each image captured by the camera 4 and for each pixel of this image, the following information is recorded in the memory 10:
- les coordonnées dans le plan de l'image d'un point p identifiant la position du pixel dans le plan PL de l'image, the coordinates in the plane of the image of a point p identifying the position of the pixel in the plane PL of the image,
- une mesure de l'intensité lumineuse l(p) mesurée par ce pixel, a measurement of the light intensity I (p) measured by this pixel,
[0044] Ici, la fonction l(...) est une fonction qui associe à chaque point du plan de l'image PL l'intensité mesurée ou interpolée au niveau de ce point. Here, the function l (...) is a function which associates at each point of the plane of the image PL the intensity measured or interpolated at this point.
[0045] L'unité de traitement 12 est une unité capable de traiter les images capturées par la caméra 4 pour estimer la pose xpR et la vitesse XVR de cette caméra à l'instant où elle capture une image. De plus, ici, l'unité 12 est également capable : The processing unit 12 is a unit capable of processing the images captured by the camera 4 to estimate the exposure x pR and the speed X V R of this camera at the moment when it captures an image. In addition, here the unit 12 is also capable of:
- de construire la trajectoire de la caméra 4 dans le repère R à partir des poses xPR successives estimées, et to construct the trajectory of the camera 4 in the reference R from the estimated successive poses P R, and
- de corriger les images capturées par la caméra 4 pour éliminer ou limiter les déformations RS ou MB. to correct the images captured by the camera 4 to eliminate or limit RS or MB deformations.
[0046] A cet effet, l'unité 12 comprend un calculateur électronique programmable 14 capable d'exécuter des instructions enregistrées dans la mémoire 12. La mémoire 12 comporte notamment les instructions nécessaires pour exécuter l'un quelconque des procédés des figures 4, 6 et 7. For this purpose, the unit 12 comprises a programmable electronic calculator 14 capable of executing instructions stored in the memory 12. The memory 12 comprises in particular the instructions necessary to execute any of the methods of FIGS. and 7.
[0047] Le système 2 comprend également un dispositif 20 utilisé pour construire un modèle 16 tridimensionnel de la scène 6. Le modèle 16 permet de construire des images de référence augmentées. Ici, par « image augmentée », on désigne une image comportant pour chaque pixel, en plus de l'intensité mesurée par ce pixel, une mesure de la profondeur qui sépare ce pixel du point de la scène qu'il photographie. La mesure de la profondeur permet d'obtenir les coordonnées du point de la scène photographiée par ce pixel. Ces coordonnées sont exprimées dans le repère tridimensionnel lié sans aucun degré de liberté à la caméra ayant pris cette image augmentée. Ces coordonnées se présentent typiquement sous la forme d'un triplet (x, y, D(p)), où : The system 2 also comprises a device 20 used to construct a three-dimensional model 16 of the scene 6. The model 16 makes it possible to construct augmented reference images. Here, the term "augmented image" denotes an image comprising, for each pixel, in addition to the intensity measured by this pixel, a measurement of the depth that separates this pixel from the point of the scene that it is photographing. The measurement of the depth makes it possible to obtain the coordinates of the point of the scene photographed by this pixel. These coordinates are expressed in the bound three-dimensional coordinate system without any degree of freedom to the camera having taken this augmented image. These coordinates are typically in the form of a triplet (x, y, D (p)), where:
- x et y sont les coordonnées du pixel dans le plan PL de l'image, et x and y are the coordinates of the pixel in the PL plane of the image, and
- D(p) est la profondeur mesurée qui sépare ce pixel du point de la scène PS qu'il a photographié. - D (p) is the measured depth that separates this pixel from the point of the PS scene that it has photographed.
[0048] La fonction D associe à chaque point p de l'image augmentée la profondeur D(p) mesurée ou interpolée. The function D associates with each point p of the augmented image the depth D (p) measured or interpolated.
[0049] Ici, le dispositif 20 comporte une caméra 22 RGB-D et une unité 24 de traitement capable d'estimer la pose de la caméra 22 dans le repère R. La caméra 22 est une caméra qui mesure à la fois l'intensité lumineuse l*(p*) de chaque point de la scène et la profondeur D*(p*) qui sépare ce pixel du point de la scène photographié. De préférence, la caméra 22 est une caméra à obturation simultanée des pixels. De telles caméras sont par exemple commercialisées par la société Microsoft® telle que la caméra Kinect ® ou par la société ASUS®.
[0050] Par la suite, les coordonnées du point PS sont appelées vertex et notées « v* » lorsqu'elles sont exprimées dans le repère F* lié sans aucun degré de liberté à la caméra 22 et « v » lorsqu'elles sont exprimées dans le repère F. De façon similaire, toutes les données relatives à la caméra 22 sont suivies du symbole « * » pour les différencier des mêmes données mais relatives à la caméra 4. Here, the device 20 comprises a camera 22 RGB-D and a processing unit 24 capable of estimating the pose of the camera 22 in the reference frame R. The camera 22 is a camera that measures both the intensity luminous l * (p * ) of each point of the scene and the depth D * (p * ) which separates this pixel from the point of the scene photographed. Preferably, the camera 22 is a camera with simultaneous shutter of the pixels. Such cameras are for example marketed by the Microsoft® company such as the Kinect® camera or the ASUS® company. Subsequently, the coordinates of the PS point are called vertex and denoted "v * " when they are expressed in the bound reference point F * without any degree of freedom to the camera 22 and "v" when they are expressed in the reference F. Similarly, all the data relating to the camera 22 are followed by the symbol " * " to differentiate them from the same data but relating to the camera 4.
[0051 ] L'unité 24 est, par exemple, équipée d'un calculateur électronique programmable et d'une mémoire comportant les instructions nécessaires pour exécuter un procédé de localisation et de cartographie simultanée, plus connue sous l'acronyme de SLAM (Simultaneous Localization And Mapping). Pour plus de détails sur ces procédés de localisation et de cartographie simultanée, le lecteur peut se référer à l'introduction de l'article A1 suivant : M. Meilland et A. I. Comport, « On unifying key-frame and voxel-based dense visual SLAM ai large scales » IEEE International Conférence on Intelligence Robots and Systems, 2013, 3-8 novembre, Tokyo. The unit 24 is, for example, equipped with a programmable electronic calculator and a memory including the instructions necessary to execute a simultaneous localization and mapping process, better known by the acronym SLAM (Simultaneous Localization). And Mapping). For further details on these localization and simultaneous mapping methods, the reader may refer to the introduction to the following A1 article: M. Meilland and AI Comport, "On unifying key-frame and voxel-based dense visual SLAM have large scales "IEEE International Conference on Intelligence Robots and Systems, 2013, 3-8 November, Tokyo.
[0052] Par exemple, l'unité 24 est embarquée dans la caméra 22. For example, the unit 24 is embedded in the camera 22.
[0053] Le modèle 16 est construit par le dispositif 20 et enregistré dans la mémoire 10. Dans ce mode de réalisation, le modèle 16 est une base de données dans laquelle les différentes images de référence I* sont enregistrées. De plus, dans cette base de données, la pose xpR * de la caméra 22 au moment où celle-ci a capturé l'image I* est associée à chacune de ces images P. Un tel modèle tridimensionnel de la scène 6 est connu sous le terme de modèle basé images de référence ou « key- frame model » en anglais. Plus d'informations sur un tel modèle peuvent être trouvées dans l'article A1 précédemment cité. The model 16 is built by the device 20 and stored in the memory 10. In this embodiment, the model 16 is a database in which the different reference images I * are recorded. Moreover, in this database, the pose x pR * of the camera 22 at the moment when the latter has captured the image I * is associated with each of these images P. Such a three-dimensional model of the scene 6 is known under the term model based reference images or "key-frame model" in English. More information on such a model can be found in article A1 previously cited.
[0054] Le fonctionnement du système 2 va maintenant être décrit en référence au procédé de la figure 4. The operation of the system 2 will now be described with reference to the method of FIG. 4.
[0055] Le procédé débute par une phase 50 d'apprentissage lors de laquelle le modèle 16 est construit puis enregistré dans la mémoire 10. Par exemple, pour cela, lors d'une étape 52, la caméra 22 est déplacée à l'intérieur de la scène 6 pour capturer de nombreuses images de référence I* à partir de nombreuses poses différentes. Lors de cette étape, la caméra 22 est déplacée lentement pour que le flou cinétique dans les images de référence soit négligeable. De plus, un tel déplacement lent élimine également les déformations causées par l'obturation progressive des pixels. The method starts with a learning phase 50 in which the model 16 is built and stored in the memory 10. For example, for this, in a step 52, the camera 22 is moved inside. from scene 6 to capture many reference images I * from many different poses. During this step, the camera 22 is moved slowly so that the kinetic blur in the reference images is negligible. In addition, such a slow movement also eliminates the distortions caused by the progressive shutter of the pixels.
[0056] En parallèle, lors d'une étape 54, l'unité 24 estime les poses successives de la caméra 22 pour chaque image de référence P capturée. On remarquera que cette étape 54 peut également être réalisée après l'étape 52, c'est-à-dire une fois que l'ensemble des images de références ont été capturées. In parallel, during a step 54, the unit 24 estimates the successive poses of the camera 22 for each captured P reference image. Note that this step 54 can also be performed after step 52, i.e. once all the reference images have been captured.
[0057] Ensuite, lors d'une étape 56, le modèle 16 est construit puis enregistré dans la mémoire 10. Pour cela, plusieurs images de référence et la pose de la caméra 22
au moment où ces images de référence ont été capturées sont enregistrées dans une base de données. Then, during a step 56, the model 16 is built and stored in the memory 10. For this, several reference images and the installation of the camera 22 at the moment these reference images were captured are saved in a database.
[0058] Une fois la phase d'apprentissage terminée, on peut alors procéder à une phase 60 d'utilisation. Once the learning phase is over, we can then proceed to a phase 60 of use.
[0059] Lors de cette phase 60, et plus précisément lors d'une étape 62, la caméra 4 est déplacée à l'intérieur de la scène 6 le long d'une trajectoire inconnue. En même temps que la caméra 4 est déplacée, celle-ci capture une succession temporelle d'images à partir de différentes poses inconnues. Chaque image capturée est enregistrée dans la mémoire 10. Lors de l'étape 62, la caméra 4 est déplacée avec une vitesse élevée, c'est-à-dire suffisante pour que les déformations RS et MB soient perceptibles dans les images capturées. During this phase 60, and more specifically during a step 62, the camera 4 is moved inside the scene 6 along an unknown trajectory. At the same time as the camera 4 is moved, it captures a temporal succession of images from different unknown poses. Each captured image is stored in the memory 10. In step 62, the camera 4 is moved at a high speed, i.e. sufficient for the RS and MB deformations to be perceptible in the captured images.
[0060] En parallèle, lors d'une étape 64, l'unité 12 traite en temps réel chaque image acquise par la caméra 4 pour estimer la pose xpR et la vitesse XVR de la caméra 4 à l'instant où cette image a été capturée. In parallel, during a step 64, the unit 12 processes in real time each image acquired by the camera 4 to estimate the exposure x pR and the speed X V R of the camera 4 at the instant when this image has been captured.
[0061 ] Par temps réel, on désigne ici le fait que l'estimation de la pose xpR et de la vitesse XVR de la caméra 4 est réalisée dès qu'une image est capturée par la caméra 4 et se termine avant que l'image suivante soit capturée par cette même caméra 4. Par la suite, l'image capturée par la caméra 4 utilisée pour déterminer la pose de cette caméra au moment de la capture de cette image est appelée « image courante ». In real time, here is meant that the estimation of the exposure x pR and the speed X V R of the camera 4 is performed as soon as an image is captured by the camera 4 and ends before the next image is captured by this same camera 4. Subsequently, the image captured by the camera 4 used to determine the pose of this camera at the time of capture of this image is called "current image".
[0062] Pour chaque image courante acquise par la caméra 4, les opérations suivantes sont réitérées. Lors d'une opération 66, l'unité 12 sélectionne ou construit une image de référence I* qui a photographié un grand nombre de points de la scène 6 commun avec ceux qui ont été photographiés par l'image courante. Par exemple, pour cela, on réalise une estimation grossière de la pose xpR de la caméra 4, puis on sélectionne dans le modèle 16 l'image de référence dont la pose est la plus proche de cette estimation grossière de la pose xpR. Typiquement, l'estimation grossière est réalisée par interpolation à partir des dernières poses et vitesses estimées pour la caméra 4. Par exemple, dans un cas simplifié, l'estimation grossière de la pose xpR est prise égale à la dernière pose estimée pour la caméra 4. Une telle approximation est acceptable, car la fréquence de capture des images courantes est rapide, c'est-à-dire supérieure à 10 Hz ou 20 Hz. Par exemple, dans le cas décrit ici, la fréquence d'acquisition est supérieure ou égale à 30 Hz. For each current image acquired by the camera 4, the following operations are repeated. During an operation 66, the unit 12 selects or builds a reference image I * which has photographed a large number of points of the common scene 6 with those which have been photographed by the current image. For example, for this, we make a rough estimate of the pose x pR of the camera 4, then we select in the model 16 the reference image whose pose is closest to this rough estimation of the pose x pR . Typically, the rough estimate is made by interpolation from the last poses and speeds estimated for the camera 4. For example, in a simplified case, the rough estimation of the pose x pR is taken equal to the last pose estimated for the 4. Such an approximation is acceptable because the capture rate of the current images is fast, that is to say greater than 10 Hz or 20 Hz. For example, in the case described here, the acquisition frequency is greater than or equal to 30 Hz.
[0063] Une fois l'image de référence sélectionnée, lors d'une opération 68, la pose XPR et la vitesse XVR sont estimées. Plus précisément, ici, on estime les variations xp et Xv de, respectivement, la pose et la vitesse de la caméra 4 depuis les dernières pose et vitesse estimées, c'est-à-dire les variations de la pose et de la vitesse depuis la dernière image courante capturée. Ainsi, XPR — XPR-1 + XP et XvR — XvR-1 + Xv, où XPR-I et XVR-I sont les pose et vitesse de la caméra 4 estimées pour la précédente image courante.
[0064] Pour cela, pour chaque pixel de l'image de référence I* qui correspond à un pixel dans l'image I, on recherche la pose xp et la vitesse xv qui minimise l'écart Ei entre les termes lw(x, p*) et Pb(x, p*), où x est un vecteur qui regroupe les inconnues à estimer. Dans ce mode de réalisation, le vecteur x regroupe les coordonnées de la pose xp et de la vitesse xv. La variable x comporte donc 1 2 coordonnées à estimer. Once the reference image has been selected, during an operation 68, the exposure X P R and the speed X V R are estimated. More precisely, here, we estimate the variations x p and Xv of, respectively, the pose and the speed of the camera 4 since the last estimated pose and speed, that is to say the variations of the pose and the speed since the last captured current image. Thus, X P R - X P R-1 + X P and XvR - XvR-1 + Xv, where X P RI and XVR-I are the pose and speed of the camera 4 estimated for the previous current image. For this, for each pixel of the reference image I * which corresponds to a pixel in the image I, the pose x p is sought and the speed x v which minimizes the difference Ei between the terms 1w (x, p * ) and P b (x, p * ), where x is a vector that groups the unknowns to be estimated. In this embodiment, the vector x gathers the coordinates of the pose x p and the speed x v . The variable x therefore has 1 2 coordinates to estimate.
[0065] Toutefois, dans ce premier mode de réalisation, pour limiter le nombre d'inconnues à estimer et donc permettre un exécution plus rapide de l'estimation de la pose xp et de la vitesse xv, on suppose ici qu'entre les instants de capture de deux images courantes successives, la vitesse XVR est constante. Dans ces conditions, la pose xp est reliée à l'estimation de la vitesse XVR par la relation suivante : xVR=xP/tp, où tp est la périodicité d'acquisition des images courantes. Par conséquent, dans ce premier mode de réalisation, seules six coordonnées sont à estimer, c'est-à-dire par exemple les six coordonnées de la vitesse xv. However, in this first embodiment, to limit the number of unknowns to estimate and thus allow a faster execution of the estimation of the pose x p and the speed x v , it is assumed here that between the instants of capture of two successive current images, the speed X V R is constant. Under these conditions, the pose x p is related to the estimation of the velocity X V R by the following relation: x V R = x P / tp, where t p is the acquisition periodicity of the current images. Therefore, in this first embodiment, only six coordinates are to be estimated, that is to say for example the six coordinates of the speed x v .
[0066] La minimisation de l'écart Ei est réalisée par itérations successives. Plus précisément, pour cela, les opérations suivantes sont réitérées : The minimization of the difference Ei is performed by successive iterations. More precisely, for this, the following operations are repeated:
1 ) Choisir une valeur pour la vitesse xv, 1) Choose a value for the speed x v ,
2) Calculer la valeur de l'écart Ei pour cette valeur. 2) Calculate the value of the difference Ei for this value.
[0067] Les opérations 1 ) et 2) sont réitérées en boucle. Lors de l'opération 1 ) la valeur choisie est modifiée à chaque itération pour essayer de trouver à chaque fois une nouvelle valeur de la vitesse xv qui diminue encore plus l'écart Ei que les précédentes valeurs essayées. Operations 1) and 2) are repeated in loop. During the operation 1) the value chosen is modified at each iteration to try to find each time a new value of the speed x v which further decreases the difference Ei than the previous values tested.
[0068] Typiquement, le nombre d'itérations est arrêté lorsqu'un critère d'arrêt est satisfait. Par exemple, les itérations sont arrêtées lorsqu'une valeur de la vitesse xv permet d'obtenir une valeur de l'écart Ei inférieur à un seuil Si prédéterminé. Un autre critère d'arrêt possible consiste à systématiquement arrêter les itérations des opérations 1 ) et 2) lorsque le nombre d'itérations réalisées est supérieur à un seuil S2 prédéterminé. Typically, the number of iterations is stopped when a stopping criterion is satisfied. For example, the iterations are stopped when a value of the speed x v makes it possible to obtain a value of the difference Ei less than a predetermined threshold Si. Another possible stopping criterion consists in systematically stopping the iterations of operations 1) and 2) when the number of iterations performed is greater than a predetermined threshold S 2 .
[0069] Lors de la première itération, une valeur initiale doit être affectée à la vitesse Xv. Par exemple, cette valeur initiale est prise égale à zéro, c'est-à-dire que l'on prend comme première approximation que la vitesse XVR n'a pas variée depuis sa dernière estimation. During the first iteration, an initial value must be assigned to the speed Xv. For example, this initial value is taken equal to zero, that is to say that it is taken as a first approximation that the speed X V R has not varied since its last estimate.
[0070] Après une itération des opérations 1 ) et 2), le choix automatique d'une nouvelle valeur de la vitesse xv susceptible de minimiser l'écart Ei est une opération bien connue de minimisation d'écart. Par exemple, des méthodes permettant de choisir cette nouvelle valeur de la vitesse xv sont décrites dans les références bibliographiques suivantes : After an iteration of the operations 1) and 2), the automatic choice of a new value of the speed x v likely to minimize the difference Ei is a well-known operation of minimizing deviation. For example, methods for choosing this new value of the speed x v are described in the following bibliographic references:
- MALIS, E. (2004). Improving vision-based control using efficient second-order minimization techniques. In IEEE International Conférence on Robotics and Automation, 1 843-1 848. 15, 30
- BENHIMANE, S., & MALIS, E. (2004). Real-time image-based tracking of planes using efficient second-order minimization. In IEEE International Conférence on Intelligent Robots and Systems, 943-948. 30 - MALIS, E. (2004). Improving vision-based control using efficient second-order minimization techniques. In IEEE International Conference on Robotics and Automation, 1 843-1 848. 15, 30 BENHIMANE, S., & MALIS, E. (2004). Real-time image-based tracking of planes using efficient second-order minimization. In IEEE International Conference on Intelligent Robots and Systems, 943-948. 30
[0071 ] D'autres méthodes encore plus robustes sont décrites dans les références bibliographiques suivantes : Other more robust methods are described in the following bibliographical references:
- HAGER, G. & BELHUMEUR, P. (1998). Efficient région tracking with parametric models of geometry and illumination. IEEE Transactions on Pattern Analysis and Machine Intelligence, 20, 1025 -1039. 31 , 100 - HAGER, G. & BELHUMER, P. (1998). Efficient region tracking with parametric models of geometry and illumination. IEEE Transactions on Pattern Analysis and Machine Intelligence, 20, 1025-1039. 31, 100
- COMPORT, A.I., MALIS, E. & RIVES, P. (2010). Real-time quadrifocal visual odometry. The International Journal of Robotics Research, 29, 245-266. 16, 19, 21 , 31 , 102 - COMPORT, A.I., MALIS, E. & RIVES, P. (2010). Real-time quadrifocal visual odometry. The International Journal of Robotics Research, 29, 245-266. 16, 19, 21, 31, 102
- ZHANG, Z. (1995). Parameter Estimation Techniques: A Tutorial with Application to Conic Fitting. Tech. Rep. RR-2676, INRIA. 31 , 32 ZHANG, Z. (1995). Parameter Technical Estimation: A Tutorial with Application to Conic Fitting. Tech. Rep. RR-2676, INRIA. 31, 32
[0072] Par conséquent, le choix d'une nouvelle valeur pour la vitesse xv après chaque itération ne sera pas décrit ici plus en détail. Seule va être décrite maintenant la façon détailler de calculer les différents termes de l'écart Ei pour une valeur donnée de la vitesse xv. Therefore, the choice of a new value for the speed x v after each iteration will not be described here in more detail. Only will now be described how to calculate the different terms of the difference Ei for a given value of the speed x v .
[0073] Le terme lw(x,p*) correspond à la valeur de l'intensité lumineuse du point p* dans l'image de référence construite à partir des intensités lumineuses mesurées dans l'image courante en tenant compte de la déformation RS. La construction de la valeur de ce terme à partir d'une valeur donnée de la vitesse xv est illustrée schématiquement sur la figure 3. Pour simplifier la figure 3, seul un carré de 3 par 3 pixels est représenté pour chaque image I et I*. The term l w (x, p * ) corresponds to the value of the light intensity of the point p * in the reference image constructed from the light intensities measured in the current image, taking into account the deformation RS. The construction of the value of this term from a given value of the speed x v is illustrated schematically in FIG. 3. To simplify FIG. 3, only a square of 3 by 3 pixels is represented for each image I and I * .
[0074] lw(x,p*) correspond ici à la composition de fonctions suivantes : [0074] l w (x, p * ) here corresponds to the composition of the following functions:
I(W2(T2(-TXVR)),WI(TI, v*)). I (W 2 (T 2 (-TX VR )), W I (T I , v * )).
[0075] Ces différentes fonctions vont maintenant être expliquées. Le vertex v* correspond aux coordonnées, exprimées dans le repère F*, du point PS photographié par le pixel centré sur le point p* du plan de l'image PL*. These different functions will now be explained. The vertex v * corresponds to the coordinates, expressed in the reference F * , of the point PS photographed by the pixel centered on the point p * of the plane of the image PL * .
[0076] Dans un premier temps, l'unité 12 recherche le point pw1 (Figure 3) de l'image courante correspondant au point p* en faisant d'abord l'hypothèse que la durée est nulle. Les points pw1 et p* correspondent s'ils photographie tous les deux le même point PS de la scène 6. Dans le cas où la durée tA est nulle, de nombreux algorithmes connus permettent de trouver les coordonnées du point pw1 dans l'image I correspondant au point p* dans l'image I*. Par conséquent, ici, seules les informations générales sur une méthode possible pour faire cela sont données. In a first step, the unit 12 searches for the point p w1 (FIG. 3) of the current image corresponding to the point p * , by first assuming that the duration is zero. The points p w1 and p * correspond if they both photograph the same PS point of the scene 6. In the case where the duration t A is zero, many known algorithms make it possible to find the coordinates of the point p w1 in the image I corresponding to the point p * in the image I * . Therefore, here only general information about a possible method for doing this is given.
[0077] Par exemple, l'unité 12 sélectionne dans l'image de référence les coordonnées v* du point PS associées au point p*. Ensuite, l'unité 12 réalise un changement de repère pour obtenir les coordonnées v du même point PS exprimées dans le repère F de la caméra 4. Pour cela, une matrice de pose ΤΊ est utilisée. Les matrices de pose sont bien connues. Le lecteur pourra consulter le chapitre 2 du livre L1 pour plus d'informations.
[0078] Les matrices de pose se présentent sous la forme suivante lorsque les coordonnées homogènes sont utilisées: [0077] For example, the unit 12 selects the reference image coordinates v * PS item associated with point p *. Then, the unit 12 performs a change of reference to obtain the coordinates v of the same point PS expressed in the F mark of the camera 4. For this, a pose matrix ΤΊ is used. The pose matrices are well known. The reader will be able to consult chapter 2 of book L1 for more information. The laying matrices are in the following form when the homogeneous coordinates are used:
'R ' R
0 0
où : or :
- R est une matrice de rotation, et R is a rotation matrix, and
- 1 est un vecteur de translation. - 1 is a translation vector.
[0079] La matrice R et le vecteur t sont fonction de la pose xpR* et de la pose xpR associées respectivement aux images I* et I. La pose xpR* est connue à partir du modèle 16. La pose xpR est égale à xpR-i + xp. The matrix R and the vector t are a function of the exposure x pR * and the exposure x pR respectively associated with the images I * and I. The exposure x pR * is known from the model 16. The exposure x pR is equal to x pR- i + x p .
[0080] Une fois que les coordonnées v du point PS dans le repère F sont obtenues, celles-ci sont projetées par une fonction sur le plan PL de l'image I pour obtenir les coordonnées d'un point pw1. Le point pw1 est le point qui correspond à l'intersection du plan PL et de l'axe AO qui passe par le centre C et le point PS de la scène 6. Once the coordinates v of the point PS in the F coordinate are obtained, they are projected by a function on the plane PL of the image I to obtain the coordinates of a point p w1 . The point p w1 is the point which corresponds to the intersection of the plane PL and the axis AO which passes through the center C and the point PS of the scene 6.
[0081 ] La fonction Wi (...) qui retourne les coordonnées du point pw1 correspondant au point p* est connue sous le terme de fonction de « warping ». Il s'agit typiquement d'une projection centrale de centre C. Elle est paramétrée par la fonction TY Ainsi, on
The function Wi (...) which returns the coordinates of the point p w1 corresponding to the point p * is known as the function of "warping". It is typically a central projection of center C. It is parameterized by the TY function.
[0082] A ce stade, on remarquera déjà que le point pw1 ne tombe pas nécessairement au centre d'un pixel de l'image I. At this stage, it will already be noted that the point p w1 does not necessarily fall in the center of a pixel of the image I.
[0083] A cause de l'obturation progressive des pixels, la ligne de pixels à laquelle appartient le point pw1 de l'image n'a pas été capturée au même instant que la première ligne de l'image, mais à un intervalle de temps τ après que cette première ligne ait été capturée. Ici, la première ligne capturée de l'image I est la ligne en bas de l'image comme illustré sur la figure 2A. La pose xpR que l'on estime est la pose de la caméra 4 au moment où celle-ci capture la ligne du bas de l'image courante. Because of the progressive closure of the pixels, the line of pixels to which the point p w1 of the image belongs has not been captured at the same time as the first line of the image, but at an interval of time τ after this first line has been captured. Here, the first captured line of the image I is the line at the bottom of the image as shown in FIG. 2A. The pose x pR that is estimated is the pose of the camera 4 when it captures the bottom line of the current image.
[0084] L'intervalle τ peut être calculé comme étant égal à (n+1 ) , où n est le nombre de lignes de pixels qui séparent la ligne à laquelle appartient le point pw1 et la première ligne capturée. Ici, le nombre n est déterminé à partir de l'ordonnée du point pw1. Plus précisément, on définit une fonction ei(...) qui retourne le nombre n+1 en fonction de l'ordonnée du point pw1 dans le plan de l'image. Ainsi, l'intervalle τ est donné par la relation suivante : τ = tAei(pw1). The interval τ can be calculated as being equal to (n + 1), where n is the number of lines of pixels that separate the line to which the point p w1 belongs and the first captured line. Here, the number n is determined from the ordinate of the point p w1 . More precisely, we define a function ei (...) which returns the number n + 1 as a function of the ordinate of the point p w1 in the plane of the image. Thus, the interval τ is given by the following relation: τ = t A ei (p w1 ).
[0085] De plus, comme la caméra 4 se déplace à la vitesse xvR pendant la capture de l'image, le pixel contenant le point pw1 a photographié non pas le point PS de la scène 6, mais un autre point de la scène après que la caméra 4 ait été déplacée d'une distance xxvR. Pour trouver le point p™2 qui a photographié le point PS, il faut donc déplacer le point pw1 en sens inverse puis le projeter à nouveau sur le plan PL. In addition, since the camera 4 moves at the speed x vR during the image capture, the pixel containing the point p w1 photographed not the point PS of the scene 6, but another point of the scene after the camera 4 has been moved a distance xx vR . To find the point p ™ 2 which has photographed the point PS, it is necessary to move the point p w1 in the opposite direction and then project it again on the plane PL.
[0086] Ceci est réalisé à l'aide de la composition suivante de fonctions :This is achieved using the following composition of functions:
où :
-T2(-TXVR) est une fonction qui retourne les coordonnées d'un point pT2<-TXvR> de l'espace tridimensionnel correspondant à la position du point pw1 après que celui-ci ait été déplacé en sens inverse du déplacement de la caméra 4 pendant l'intervalle τ,or : -T 2 (-TX VR ) is a function that returns the coordinates of a point p T2 <- TXvR > of the three-dimensional space corresponding to the position of point p w1 after it has been moved in the opposite direction of moving the camera 4 during the interval τ,
- w2(...) est une fonction de « warping » qui retourne les coordonnées du point p™2 correspondant à la projection du point pT2<-™vR> sur le plan PL. w 2 (...) is a "warping" function which returns the coordinates of point p ™ 2 corresponding to the projection of point p T2 <- ™ vR > on plane PL.
[0087] Le point pw2 se trouve à l'intersection du plan de l'image courante et d'un axe optique passant par le centre C et le point pJ2^xvR The point p w2 lies at the intersection of the plane of the current image and an optical axis passing through the center C and the point p J2 ^ xvR
[0088] On remarquera que le signe « - » dans l'expression « -TXVR» indique qu'il s'agit du déplacement en sens opposé du déplacement TXVR. La fonction T2 intègre la vitesse -XVR sur l'intervalle τ pour obtenir un déplacement égal au déplacement de la caméra 4 pendant l'intervalle τ mais de sens opposé. Ici, la vitesse XVR est considérée comme constante pendant l'intervalle τ. La distance parcourue par la caméra 4 pendant l'intervalle τ à la vitesse XVR est calculée par intégration de cette vitesse sur l'intervalle de temps τ. Par exemple, pour cela, la fonction T2(...) est la matrice exponentielle suivante : T2(-TXVR) = exp(-T[xVR]«), où : It will be noted that the sign "-" in the expression "-TX V R" indicates that it is the displacement in the opposite direction of the movement TX V R. The function T 2 incorporates the speed -X VR on the interval τ to obtain a displacement equal to the displacement of the camera 4 during the interval τ but of opposite direction. Here, the speed X V R is considered constant during the interval τ. The distance traveled by the camera 4 during the interval τ X at the speed V R is calculated by integration of this speed on the time interval τ. For example, for this, the function T 2 (...) is the following exponential matrix: T 2 (-TX V R) = exp (-T [x V R] " ), where:
- exp(...) est la fonction exponentielle, et : exp (...) is the exponential function, and:
- [XvR]*est défini par la matrice suivante : - [XvR] * is defined by the following matrix:
M* v M * v
G: se(3) G: se (3)
0 0 0 0
[0089] Dans l'équation ci-dessus, le vecteur v correspond aux trois coordonnées de la vitesse en translation de la caméra 4 et le symbole [w]x est la matrice antisymétrique (« skew symmetric matrix » en anglais) de la vitesse angulaire de la caméra 4, c'est-à-dire la matrice suivante : In the equation above, the vector v corresponds to the three coordinates of the speed in translation of the camera 4 and the symbol [w] x is the antisymmetric matrix ("skew symmetric matrix" in English) of the speed angular of the camera 4, that is to say the following matrix:
où ωχ, ωγ et ωζ sont les vitesses angulaires de la caméra 4 autour, respectivement, les axes X, Y et Z du repère R. where ω χ , ω γ and ω ζ are the angular velocities of the camera 4 around, respectively, the X, Y and Z axes of the marker R.
[0090] Le point pw2, comme le point pw1, ne tombe pas nécessairement au centre d'un pixel. Il est donc ensuite nécessaire d'estimer l'intensité lumineuse au niveau du point p™2 à partir des intensités lumineuses mémorisées pour les pixels voisins dans l'image courante. Ceci est le rôle de la fonction l(..) qui retourne l'intensité lumineuse au niveau du point p interpolé à partir des intensités lumineuses mémorisées pour les pixels voisins de ce point p. De nombreuses fonctions d'interpolation sont connues. Par exemple, la plus simple consiste à retourner l'intensité mémorisée pour le pixel à l'intérieur duquel se situe le point p™2.
[0091 ] Si on suppose que la lumière rayonnée par le point PS de la scène 6 ne varie pas au cours du temps et qu'elle est la même quelle que soit le point de vue, alors l'intensité Ιφ™2) doit être la même que l'intensité P(p*) enregistrée dans l'image de référence P après prise en compte de la déformation RS. The point p w2 , like the point p w1 , does not necessarily fall in the center of a pixel. It is then necessary to estimate the light intensity at the point p ™ 2 from the stored light intensities for the neighboring pixels in the current image. This is the role of the function l (..) which returns the luminous intensity at the interpolated point p from the stored luminous intensities for the pixels neighboring this point p. Many interpolation functions are known. For example, the easiest way is to return the memorized intensity for the pixel in which the point p ™ 2 is located. If we assume that the light radiated by the point PS of the scene 6 does not vary over time and that it is the same whatever the point of view, then the intensity Ιφ ™ 2 ) must be the same as the intensity P (p * ) recorded in the reference image P after taking into account the RS strain.
[0092] Toutefois, ici, on a supposé que le flou cinétique n'est pas négligeable dans l'image courante. Les intensités lumineuses mesurées par les pixels de l'image courante sont donc affectées par le flou cinétique alors que les intensités lumineuses mémorisées pour les pixels de l'image de référence ne sont pas affectées par ce flou cinétique. L'intensité estimée Ιφ™2) est donc affectée par le flou cinétique car elle est construite à partir des intensités lumineuses des pixels de l'image courante dans lesquels la déformation MB n'a pas été corrigée. Par conséquent, si le temps d'exposition te n'est pas négligeable, l'intensité p™2) ne correspond donc pas exactement à l'intensité l*(p*) même si la déformation RS a été éliminée ou au moins diminuée. However, here, it has been assumed that the motion blur is not negligible in the current image. The light intensities measured by the pixels of the current image are therefore affected by the kinetic blur while the light intensities stored for the pixels of the reference image are not affected by this kinetic blur. The estimated intensity Ιφ ™ 2 ) is therefore affected by the kinetic blur as it is constructed from the light intensities of the pixels of the current image in which the deformation MB has not been corrected. Therefore, if the exposure time t e is not negligible, the intensity p ™ 2 ) therefore does not correspond exactly to the intensity l * (p * ) even if the RS strain has been eliminated or at least decreased.
[0093] Dans ce mode de réalisation, c'est pour cela qu'on ne minimise pas directement l'écart entre les termes lw(x, p*) et l*(p*) mais l'écart entre les termes lw(x, p*) et l* b(x, p*). In this embodiment, it is for this reason that the difference between the terms l w (x, p * ) and l * (p * ) is not minimized directly, but the difference between the terms l w (x, p * ) and l * b (x, p * ).
[0094] Le terme l* b(x, p*) est une valeur de l'intensité lumineuse qui serait mesurée au niveau du point p* si le temps d'exposition des pixels de la caméra 22 était égal à celui de la caméra 4, et si la caméra 22 se déplaçait à la vitesse XVR pendant la capture de l'image de référence I*. Autrement dit, l'image l* b correspond à l'image I* après qu'un flou cinétique identique à celui qui affecte l'image courante I ait été ajouté sur l'image de référence. The term l * b (x, p * ) is a value of the light intensity which would be measured at the point p * if the exposure time of the pixels of the camera 22 was equal to that of the camera 4, and if the camera 22 was moving at the speed X V R during the capture of the reference image I * . In other words, the image 1 * b corresponds to the image I * after a kinetic blur identical to that which affects the current image I has been added to the reference image.
[0095] Pour simuler la déformation MB dans l'image de référence, le terme l* b(x, p*) est construit : To simulate the deformation MB in the reference image, the term l * b (x, p * ) is constructed:
- en sélectionnant des points voisins du point p* de l'image I* qui auraient photographié le même point de la scène 6 que celui photographié par le point p* si la caméra 22 se déplaçait à vitesse XVR pendant le temps d'exposition te, puis by selecting points close to the point p * of the image I * which would have photographed the same point of the scene 6 as that photographed by the point p * if the camera 22 was moving at a speed X V R during the time of exposure t e , then
- en combinant les intensités des points voisins ainsi sélectionnés avec celle du point p* de manière à générer une nouvelle intensité au niveau du point p* avec un flou cinétique. by combining the intensities of the thus selected neighboring points with that of the point p * so as to generate a new intensity at the point p * with a kinetic blur.
[0096] Ici, les coordonnées des points voisins sont obtenues à l'aide de la composition de fonctions w3(Ti"1T2(-txVR)Ti, p*). La composition de fonctions T 1T2(- ÎXVR)TI réalise les opérations suivantes : [0096] Here, the coordinates of neighboring points are obtained using the composition functions w 3 (Ti "1 T 2 (V R -tx) Ti, p *). The composition of functions T 1 T 2 ( - ÎX V R) TI performs the following operations:
- la matrice de pose ΤΊ transforme les coordonnées v* du point PS de la scène 6 exprimées dans le repère F* en coordonnées v de ce même point exprimées dans le repère F, où v* sont les coordonnées du point PS photographié par le point P*, the pose matrix ΤΊ transforms the coordinates v * of the point PS of the scene 6 expressed in the coordinate system F * into coordinates v of this same point expressed in the coordinate system F, where v * are the coordinates of the point PS photographed by the point P * ,
- T2(-txvR) déplace le point PS, d'une distance fonction d'un durée t et de la vitesse XVR, pour obtenir les coordonnées d'un nouveau point p1"2*-'*^) exprimées dans
le repère F, où t est une durée comprise entre zéro et le temps te d'exposition du pixel, et - T 2 (-tx vR ) moves the point PS, a distance function of a duration t and the speed X VR , to obtain the coordinates of a new point p 1 "2 * - '* ^ ) expressed in the reference F, where t is a duration between zero and the exposure time t e of the pixel, and
- la matrice de pose T 1 transforme les coordonnées du point pT2<-txvR> exprimées dans le repère F en coordonnées exprimées dans le repère F*. the laying matrix T 1 transforms the coordinates of the point p T2 <- txvR > expressed in the reference F into coordinates expressed in the reference F * .
[0097] On utilise ici le fait que déplacer la caméra d'une distance txVR par rapport à une scène fixe est équivalent à déplacer la scène fixe de -txvR par rapport à une caméra fixe. It is used here that moving the camera by a distance tx V R with respect to a fixed scene is equivalent to moving the fixed scene of -tx vR with respect to a fixed camera.
[0098] Les fonctions Ti et T2 sont les mêmes que celles précédemment décrites. La fonction T 1 est l'inverse de la matrice de pose ΤΊ. The functions Ti and T 2 are the same as those previously described. The function T 1 is the inverse of the laying matrix ΤΊ.
[0099] La fonction w3(...) est une fonction de « warping » qui projette un point de la scène sur le plan PL* pour obtenir les coordonnées d'un point qui photographie ce point de la scène. Il s'agit typiquement d'une projection centrale de centre C*. Le point pw3 est donc ici le point situé à l'intersection du plan PL* et de l'axe passant par le centre C* et le point p T2(-txvR). The function w 3 (...) is a "warping" function which projects a point of the scene on the plane PL * to obtain the coordinates of a point which photographs this point of the scene. It is typically a central projection of center C * . The point p w3 is here the point situated at the intersection of the plane PL * and the axis passing through the center C * and the point p T2 ( - txvR) .
[00100] On obtient les coordonnées d'un point voisin du point p* pour chaque valeur de la durée t. En pratique, au moins cinq, dix ou vingt valeurs de la durée t régulièrement réparties dans l'intervalle [0 ; te] sont utilisées. The coordinates of a point close to the point p * are obtained for each value of the duration t. In practice, at least five, ten or twenty values of the duration t regularly distributed in the interval [0; t e ] are used.
[00101 ] L'intensité au niveau d'un point dans l'image de référence est obtenue à l'aide d'une fonction l*(pw3). La fonction l*(...) est la fonction qui retourne l'intensité au niveau du point pw3 dans l'image de référence I*. Le point pw3 ne se trouve pas nécessairement au centre d'un pixel. Ainsi, comme la fonction l(...) décrite précédemment, la fonction l*(...) retourne une intensité au niveau du point pw3 construite par interpolation à partir des intensités mémorisées pour les pixels voisins du point pw3. The intensity at a point in the reference image is obtained using a function l * (p w3 ). The function l * (...) is the function that returns the intensity at the point p w3 in the reference image I * . The point p w3 is not necessarily in the center of a pixel. Thus, like the function I (...) previously described, the function l * (...) returns an intensity at the point p w3 constructed by interpolation from the intensities stored for the pixels neighboring the point p w3 .
[00102] Ensuite, l'intensité l*b(p*) est prise égale à la moyenne des intensités l*(pw3) calculées pour les différents instants t. Par exemple, il s'agit ici de la moyenne arithmétique en utilisant pour chaque terme le même coefficient de pondération. Then, the intensity l * b (p * ) is taken equal to the average intensities l * (p w3 ) calculated for the different times t. For example, this is the arithmetic mean using the same weighting coefficient for each term.
[00103] Après chaque itération qui minimise l'écart Ei, la matrice de pose ΤΊ est mise à jour avec la nouvelle estimation de la pose xpR obtenue à partir de la nouvelle estimation de la pose XVR. After each iteration that minimizes the difference Ei, the pose matrix ΤΊ is updated with the new estimate of the pose x pR obtained from the new estimate of the pose X V R.
[00104] A l'issue de plusieurs itérations de l'opération 68, la pose xpR et la vitesse XVR peuvent être utilisées pour différents traitements supplémentaires. Typiquement, ces traitements supplémentaires sont réalisés en temps réel s'ils ne sont pas trop longs à exécuter. Sinon, ils sont exécutés hors ligne, c'est-à-dire après que l'ensemble des poses xPR et des vitesses XVR de la caméra 4 aient été calculées. Ici, à titre d'illustration, seule une étape 70 de construction de la trajectoire de la caméra 4 est réalisée en temps réel. After several iterations of the operation 68, the exposure x pR and the speed X V R can be used for various additional treatments. Typically, these additional treatments are performed in real time if they are not too long to execute. Otherwise, they are executed offline, that is to say after all the poses x P R and speeds X V R of the camera 4 have been calculated. Here, by way of illustration, only a step 70 of constructing the trajectory of the camera 4 is carried out in real time.
[00105] Lors de l'opération 70, après chaque nouvelle estimation de la pose xpR et de la vitesse XVR, l'unité 12 enregistre sous la forme d'une suite ordonnée temporellement
la succession des poses xpR estimées. Cette suite ordonnée temporellement constitue alors la trajectoire construite pour la caméra 4. In the operation 70, after each new estimate of the pose x pR and the speed X V R, the unit 12 records in the form of a temporally ordered sequence. the succession of poses x pR estimated. This temporally ordered sequence then constitutes the trajectory constructed for the camera 4.
[00106] A titre d'illustration, l'unité 12 effectue également différents traitements hors ligne. Par exemple, lors d'une étape 72, l'unité 12 traite l'image courante pour limiter la déformation RS en utilisant l'estimation de la vitesse XVR. Typiquement, pour cela, les pixels de l'image courante sont déplacés en fonction de la vitesse XVR et de la durée τ. Par exemple, ce déplacement de chaque pixel est estimé par la fonction W2(T2(-TXVR),P) pour chaque pixel p de l'image courante. De telles méthodes de traitements d'images sont connues et ne sont donc pas décrites ici plus en détail. Par exemple, de telles méthodes sont décrites dans l'article suivant : F. Baker, E. P. Bennett, S. B. Kang, et R. Szeliski, « Removing rolling shutter wobble », IEEE, Conférence on Computer Vision and Pattern récognition, 2010. As an illustration, the unit 12 also performs different offline processing. For example, during a step 72, the unit 12 processes the current image to limit the RS deformation using the estimation of the speed X V R. Typically, for this, the pixels of the current image are displaced. as a function of the speed X V R and the duration τ. For example, this displacement of each pixel is estimated by the function W 2 (T 2 (-TXVR), P) for each pixel p of the current image. Such image processing methods are known and are therefore not described here in more detail. For example, such methods are described in the following article: F. Baker, EP Bennett, SB Kang, and R. Szeliski, "Removing rolling shutter wobble," IEEE, Conference on Computer Vision and Pattern Recognition, 2010.
[00107] En parallèle, lors d'une étape 74, l'unité 12 traite également l'image courante pour limiter les déformations causées par le flou cinétique. De telles méthodes de traitement d'images à partir de l'estimation de la vitesse XVR de la caméra au moment où celle-ci a capturé l'image sont connues. Par exemple, de telles méthodes sont décrites dans les articles suivants : In parallel, during a step 74, the unit 12 also processes the current image to limit the deformations caused by the motion blur. Such image processing methods based on the estimation of the speed X V R of the camera at the moment when the latter has captured the image are known. For example, such methods are described in the following articles:
- N. Joshi, F. Kang, L. Zitnick, R. Szeliski, « Image deblurring with inertial measurement sensors », ACM Siggraph, 2010, et N. Joshi, F. Kang, L. Zitnick, R. Szeliski, "Image deblurring with inertial measurement sensors", ACM Siggraph, 2010, and
- F. Navarro, F. J. Serôn et D. Gutierrez, « Motion blur rendering: state of the art », Computer Graphics Forum, 2011. F. Navarro, F. J. Seron and D. Gutierrez, "Motion blur rendering: state of the art," Computer Graphics Forum, 2011.
[00108] La figure 5 représente un système identique à celui de la figure 1 , sauf que la caméra 4 est remplacée par une caméra 80. Pour simplifier la figure 5, seule la caméra 80 est représentée. Cette caméra 80 est une caméra identique à la caméra 22 ou tout simplement la même caméra que la caméra 22. Dans la caméra 80, l'acquisition de la profondeur se fait en obturant progressivement les pixels comme décrits en référence à la figure 2A. Les lignes de pixels capturent la profondeur les unes après les autres. La durée entre les instants de capture de la profondeur par deux lignes de pixels successives est notée d. La durée tAd peut être égal ou différent de la durée tA pour la capture des intensités. Figure 5 shows a system identical to that of Figure 1, except that the camera 4 is replaced by a camera 80. To simplify Figure 5, only the camera 80 is shown. This camera 80 is a camera identical to the camera 22 or just the same camera as the camera 22. In the camera 80, the acquisition of the depth is done by gradually closing the pixels as described with reference to Figure 2A. The lines of pixels capture the depth one after the other. The duration between the moments of capture of the depth by two successive lines of pixels is noted d. The duration t A d may be equal to or different from the duration t A for capturing the intensities.
[00109] Le temps d'exposition des pixels pour capturer la profondeur est notée ted. Le temps ted est égal ou différent de la durée te d'exposition. La caméra 80 acquiert pour chaque pixel les mêmes informations que la caméra 4 et, en plus, un vertex v codant, dans le repère F, lié sans aucun degré de liberté à la caméra 80, la profondeur du point de la scène photographié par ce pixel. The exposure time of the pixels to capture the depth is noted t e d. The time ted is equal to or different from the duration t e of exposure. The camera 80 acquires for each pixel the same information as the camera 4 and, in addition, a vertex V coding, in the reference F, linked without any degree of freedom to the camera 80, the depth of the point of the scene photographed by this pixel.
[00110] Le fonctionnement du système de la figure 1 dans lequel la caméra 4 est remplacée par la caméra 80 va maintenant être expliqué en référence au procédé de la figure 6. Ce procédé est identique à celui de la figure 4 sauf que l'opération 68 est remplacée par une opération 84. Lors de l'opération 84, la pose xp et la vitesse xv sont estimées en minimisant en plus de l'écart Ei précédemment décrit, un écart E2 entre
les termes suivants Dw(x,p*) et D* b(x,p*). Le terme Dw(x,p*) correspond à l'estimation de la profondeur mesurée au niveau du point p* de l'image de référence construite à partir des profondeurs mémorisées dans l'image courante et en tenant compte de la déformation RS. The operation of the system of Figure 1 in which the camera 4 is replaced by the camera 80 will now be explained with reference to the method of Figure 6. This method is identical to that of Figure 4 except that the operation 68 is replaced by an operation 84. During the operation 84, the exposure x p and the speed x v are estimated by minimizing, in addition to the difference Ei previously described, a difference E 2 between the following terms D w (x, p * ) and D * b (x, p * ). The term D w (x, p * ) corresponds to the estimate of the depth measured at the point p * of the reference image constructed from the depths stored in the current image and taking into account the RS deformation .
[00111] Ici, le terme Dw(x,p*) est la composition des fonctions suivantes : [00111] Here, the term D w (x, p * ) is the composition of the following functions:
D(w2(T2(-TdXvR)),Wi(Ti,v*)) D (w 2 (T 2 (-TdXvR)), Wi (Ti, v * ))
[00112] Il s'agit donc de la même composition de fonctions que précédemment décrite pour l'intensité l(...) mais dans lequel la fonction l(...) est remplacée par la fonction D(...). La fonction D(...) retourne la valeur de la profondeur au niveau du point p™2. Comme pour les intensités, la profondeur au niveau du point pw2 est estimée par interpolation à partir des profondeurs mesurées par les pixels voisins du point pw2 dans l'image courante. La durée τά est le temps calculé comme la durée τ, mais en remplaçant tA par tAd. It is therefore the same composition of functions as previously described for the intensity l (...) but in which the function l (...) is replaced by the function D (...). The function D (...) returns the value of the depth at point p ™ 2 . As for the intensities, the depth at the point p w2 is estimated by interpolation from the depths measured by the neighboring pixels of the point p w2 in the current image. The duration τ ά is the time calculated as the duration τ, but by replacing t A by t A d.
[00113] Le terme Dw(x,p*) est donc une approximation de la profondeur au niveau du point p* dans l'image de référence construite à partir des profondeurs mesurées par la caméra 80. The term D w (x, p * ) is therefore an approximation of the depth at the point p * in the reference image constructed from the depths measured by the camera 80.
[00114] Le terme D* b(x,p*) correspond à la profondeur qui serait mesurée au niveau du point p* si la caméra 22 était déplacée à la vitesse XVR et si le temps d'exposition des pixels de la caméra 22 pour mesurer la profondeur était égal au temps d'exposition ted. Ici, le terme D* b(x,p*) est construit de façon similaire à ce qui a été décrit pour le terme l* b(x,p*). Ainsi, le terme D* b(x,p*) est construit : The term D * b (x, p * ) corresponds to the depth that would be measured at the point p * if the camera 22 was moved at the speed X V R and if the exposure time of the pixels of the camera 22 to measure the depth was equal to the exposure time t ed . Here, the term D * b (x, p * ) is constructed similarly to what has been described for the term l * b (x, p * ). Thus, the term D * b (x, p * ) is constructed:
- en sélectionnant des points voisins du point p* de l'image I* qui auraient photographié le même point de la scène que celui photographié par le point p* si la caméra 22 se déplaçait à vitesse XVR pendant le temps d'exposition ted, puis by selecting points close to the point p * of the image I * which would have photographed the same point of the scene as that photographed by the point p * if the camera 22 was moving at a speed X V R during the exposure time t ed , then
- en combinant les profondeurs des points voisins ainsi sélectionnés avec celle du point p* de manière à générer une nouvelle profondeur au niveau du point p* avec un flou cinétique. by combining the depths of the thus selected neighboring points with that of the point p * so as to generate a new depth at the point p * with a kinetic blur.
[00115] La sélection des points voisins est identique à celle précédemment décrite pour le terme l* b(x,p*) sauf que le temps te est remplacé par le temps teci. La profondeur mesurée par les points voisins est obtenue à l'aide d'une fonction D*(...). La fonction D*(pw3) est la fonction qui retourne la profondeur au niveau du point pw3 à partir des profondeurs mesurées pour les pixels voisins du point pw3. The selection of the neighboring points is identical to that previously described for the term l * b (x, p * ) except that the time t e is replaced by the time t ec i. The depth measured by the neighboring points is obtained by means of a function D * (...). The function D * (p w3 ) is the function that returns the depth at the point p w3 from the depths measured for the pixels near the point p w3 .
[00116] De plus, dans ce cas particulier, on suppose que les temps tA, tAd, te et ted sont des inconnues. Ainsi, la variable x comporte en plus des six coordonnées de la vitesse xv, quatre coordonnées destinées à coder les valeurs des temps U, d, te et ted. Ainsi, les étapes de minimisation simultanée des écarts Ei et E2, conduisent à estimer, en plus de la vitesse xv, également la valeur des temps , tAd, te et ted. In addition, in this particular case, it is assumed that the times t A , t A d, t e and ted are unknowns. Thus, the variable x comprises, in addition to the six coordinates of the velocity x v , four coordinates intended to code the values of the times U, d, t e and t ed . Thus, the steps of simultaneous minimization of the differences E 1 and E 2 lead to estimating, in addition to the speed x v , also the value of the times, t A d, t e and t e d.
[00117] La figure 7 représente un autre procédé pour estimer la pose xpR et la vitesse xVR de la caméra 4 à l'aide du système 2. Ce procédé est identique à celui de la figure 4, sauf que l'opération 68 est remplacée par une opération 90. Pour simplifier la
figure 7, seule la partie du procédé comportant l'opération 90 a été représentée. Les autres parties du procédé sont identiques à celles précédemment décrites. FIG. 7 represents another method for estimating the exposure x pR and the speed x V R of the camera 4 by means of the system 2. This process is identical to that of FIG. 4, except that the operation 68 is replaced by an operation 90. To simplify the Figure 7, only the part of the process comprising the operation 90 has been shown. The other parts of the process are identical to those previously described.
[00118] L'opération 90 va maintenant être expliquée en référence à la figure 8. Dans la figure 8, les mêmes simplifications que celles réalisées dans la figure 3 ont été appliquées. Operation 90 will now be explained with reference to FIG. 8. In FIG. 8, the same simplifications as those made in FIG. 3 have been applied.
[00119] Lors de l'étape 90, la pose xp et la vitesse xv sont estimées en minimisant un écart E3 entre les termes suivants : l* w(x,p) et l(p). In step 90, the pose x p and the speed x v are estimated by minimizing a difference E 3 between the following terms: l * w (x, p) and l (p).
[00120] Le terme l(p) est l'intensité mesurée au niveau du point p par la caméra 4. The term l (p) is the intensity measured at the point p by the camera 4.
[00121 ] Le terme l* w(x,p) correspond à l'estimation de l'intensité au niveau du point p de l'image courante construite à partir des intensités mémorisées dans l'image de référence I* en tenant compte des déformations RS et MB de la caméra 4. Ici, le terme l* w(x,p) correspond à la composition suivante de fonctions : The term l * w (x, p) corresponds to the estimate of the intensity at the point p of the current image constructed from the intensities stored in the reference image I * , taking into account the RS and MB deformations of the camera 4. Here, the term l * w (x, p) corresponds to the following composition of functions:
l*b(w5(T2(TXvR)),W4(T 1, v)) l * b (w 5 (T 2 (TXvR)), W4 (T 1 , v))
[00122] Le vertex v contient les coordonnées dans le repère F du point PS photographié par le point p. Ce vertex v est estimé à partir des vertex v* de l'image de référence. Par exemple, on cherche dans un premier temps les points pw1 les plus proches du point p, puis le vertex v est estimé par interpolation à partir des coordonnées Tiv* des vertex associés à ses points pw1 les plus proches. The vertex v contains the coordinates in the F mark of the point PS photographed by the point p. This vertex v is estimated from the vertex v * of the reference image. For example, we first look for the points p w1 closest to the point p, then the vertex v is estimated by interpolation from the coordinates Tiv * of the vertex associated with its nearest points p w1 .
[00123] TV1 est la matrice de pose inverse de la matrice Ti. Elle transforme donc les coordonnées du vertex v, exprimées dans le repère F, en coordonnées v* exprimées dans le repère F*. La fonction w4 est une fonction de « warping » qui projette le vertex v* sur le plan PL* de l'image de référence pour obtenir les coordonnées d'un point pw4 (Figure 8). Par exemple, la fonction w4(...) est identique à la fonction w3. TV 1 is the inverse pose matrix of the matrix Ti. It thus transforms the coordinates of the vertices v, expressed in the F mark, coordinates v * expressed in the F mark *. The function w 4 is a "warping" function that projects the vertex v * on the plane PL * of the reference image to obtain the coordinates of a point p w4 (Figure 8). For example, the function w 4 (...) is identical to the function w 3 .
[00124] Dans ce mode de réalisation, on cherche à obtenir l'intensité qui aurait été mesurée au niveau du point pw4 si la caméra 22 était une caméra à obturation progressive des pixels identique sur ce point à la caméra 4. Pour cela, il faut déplacer le point pw4 d'un déplacement fonction de τ et de la vitesse XVR. Ce déplacement est ici T2(TXVR) c'est-à-dire le même que pour le procédé de la figure 4, mais en sens inverse. Après avoir déplacé le point pw4 de T2(TXVR) on obtient un point pT2(TXvR).Après projection dans le plan PL* du point pT2<«vR> par la fonction w5(...), on obtient les coordonnées du point pw5. In this embodiment, it is desired to obtain the intensity that would have been measured at the point p w4 if the camera 22 was a progressive shutter camera pixels identical on this point to the camera 4. For this, it is necessary to move the point p w4 of a displacement function of τ and the speed X VR . This displacement is here T 2 (TX VR ) that is to say the same as for the method of Figure 4, but in the opposite direction. After moving the point p w4 of T 2 (TX V R) we obtain a point p T2 (TXvR) .After projection in plane PL * of point p T2 <"vR> by function w 5 (...) we get the coordinates of the point p w5 .
[00125] La fonction l* b(...) est la même que celle précédemment définie, c'est-à-dire qu'elle permet d'estimer la valeur de l'intensité au niveau du point pw5 qui serait mesurée par les pixels de la caméra 22 si son temps d'exposition était égal à te, et si la caméra 22 se déplaçait à la vitesse XVR. La fonction l* b(...) introduit donc le même flou cinétique sur l'image de référence que celui observé sur l'image courante. The function l * b (...) is the same as that previously defined, that is to say that it makes it possible to estimate the value of the intensity at the point p w5 which would be measured by the pixels of the camera 22 if its exposure time was equal to t e , and if the camera 22 was moving at the speed X V R. The function l * b (...) thus introduces the same kinetic blur on the reference image as that observed on the current image.
[00126] L'estimation des valeurs de la pose xp et de la vitesse xv qui minimisent l'écart E3 est réalisée comme dans le cas décrit pour l'écart EL The estimation of the values of the pose x p and the speed x v which minimize the difference E 3 is performed as in the case described for the gap EL
[00127] La figure 9 représente l'évolution au cours du temps de la différence entre la vitesse angulaire estimée à l'aide du procédé de la figure 4 et la vitesse angulaire
réelle de la caméra 4. Les courbes représentées ont été obtenues expérimentalement. Chaque courbe représentée a été obtenue en utilisant la même séquence d'images courantes et les mêmes images de référence. Dans la figure 9, l'axe des abscisses représente le nombre d'images courantes traitées, tandis que l'axe des ordonnées représente l'erreur entre la vitesse angulaire réelle et la vitesse angulaire estimée. Cette erreur est exprimée ici sous la forme d'une erreur RMSE (Root Mean Square Error). FIG. 9 represents the evolution over time of the difference between the angular velocity estimated using the method of FIG. 4 and the angular velocity. The curves shown were obtained experimentally. Each curve shown was obtained using the same sequence of current images and the same reference images. In FIG. 9, the abscissa represents the number of processed ordinary images, while the ordinate represents the error between the actual angular velocity and the estimated angular velocity. This error is expressed here as a Root Mean Square Error (RMSE).
[00128] La courbe 91 représente l'évolution de l'erreur sans corriger les déformations RS et MB. Dans ce cas, les estimations de la vitesse xv sont par exemple obtenues avec le procédé de la figure 4 mais en prenant le temps te et la durée égaux à zéro. The curve 91 represents the evolution of the error without correcting the RS and MB deformations. In this case, the estimates of the speed x v are for example obtained with the method of FIG. 4 but taking the time t e and the duration equal to zero.
[00129] La courbe 92 correspond au cas où seule la déformation RS est corrigée. Cette courbe est obtenue en exécutant le procédé de la figure 4 en prenant une valeur de la durée tA non nulle et en fixant le temps te à zéro. The curve 92 corresponds to the case where only the RS strain is corrected. This curve is obtained by executing the method of FIG. 4 taking a value of the non-zero duration t A and setting the time t e to zero.
[00130] La courbe 94 correspond au cas où seule la déformation MB est corrigée. Cette courbe est obtenue en exécutant le procédé de la figure 4 en prenant une valeur pour le temps te non nulle et en fixant la durée à zéro. The curve 94 corresponds to the case where only the deformation MB is corrected. This curve is obtained by executing the method of FIG. 4 taking a value for the time t e that is not zero and setting the duration to zero.
[00131 ] Enfin, la courge 96 correspond au cas où les déformations RS et MB sont simultanément corrigées. Cette courbe est obtenue en exécutant le procédé de la figure 4 en prenant des valeurs non nulles pour le temps te et la durée tA. Finally, the squash 96 corresponds to the case where the deformations RS and MB are simultaneously corrected. This curve is obtained by executing the method of FIG. 4 taking non-zero values for the time t e and the duration t A.
[00132] Comme l'illustrent ces courbes, dans la situation testée expérimentalement, les résultats obtenus sont meilleurs dès qu'au moins l'une des déformations RS et MB est prise en compte. Sans surprise, les meilleurs résultats sont obtenus lorsque les deux déformations RS et MB sont simultanément prises en compte. Dans la situation testée, la prise en compte de la seule déformation MB (courbe 94) donne de de meilleurs résultats que la seule prise en compte de la déformation RS (courbe 92). As illustrated by these curves, in the experimentally tested situation, the results obtained are better as soon as at least one of the RS and MB deformations is taken into account. Unsurprisingly, the best results are obtained when the two deformations RS and MB are simultaneously taken into account. In the situation tested, the taking into account of the only deformation MB (curve 94) gives better results than the only taking into account of the deformation RS (curve 92).
[00133] De nombreux autres modes de réalisation sont possibles. Par exemple, l'unité 24 peut être embarquée à l'intérieur de la caméra 22. La caméra 22 peut également comporter des capteurs qui mesurent directement sa pose à l'intérieur de la scène 6 sans avoir pour cela à réaliser des traitements d'images. Par exemple, un tel capteur est un capteur inertiel qui mesure l'accélération de la caméra 22 le long de trois axes orthogonaux. [00133] Many other embodiments are possible. For example, the unit 24 can be embedded inside the camera 22. The camera 22 can also comprise sensors that directly measure its placement inside the scene 6 without having to carry out treatments for this purpose. images. For example, such a sensor is an inertial sensor that measures the acceleration of the camera 22 along three orthogonal axes.
[00134] Les caméras 22 et 4 peuvent être identiques ou différentes. Les caméras 22 et 4 peuvent mesurer l'intensité du rayonnement émis par un point de la scène à des longueurs d'onde autre que celles visibles par un être humain. Par exemple, les caméras 22 et 4 peuvent travailler dans l'infrarouge. The cameras 22 and 4 may be the same or different. The cameras 22 and 4 can measure the intensity of the radiation emitted by a point of the scene at wavelengths other than those visible to a human being. For example, cameras 22 and 4 can work in the infrared.
[00135] L'unité 12 peut être embarquée dans la caméra 4 pour réaliser les traitements en temps réel. Toutefois, l'unité 12 peut aussi être mécaniquement distincte de la caméra 4. Dans ce dernier cas, les images capturées par la caméra 4 sont, dans un second temps, téléchargées dans la mémoire 10, puis traitées par l'unité 12 ultérieurement.
[00136] Le modèle 16 tridimensionnelle de la scène 6 peut être différent d'un modèle basé images de référence. Par exemple, le modèle 16 peut être remplacé par un modèle informatique volumétrique de la scène 6 en trois dimensions obtenu par exemple par conception assistée par ordinateur. Ensuite, chaque image de référence est construite à partir de ce modèle mathématique. Plus de détails sur ces autres types de modèles tridimensionnels peuvent être trouvés dans l'article A1 . The unit 12 can be embedded in the camera 4 to perform the real-time processing. However, the unit 12 can also be mechanically distinct from the camera 4. In the latter case, the images captured by the camera 4 are, in a second step, downloaded to the memory 10, then processed by the unit 12 later. [00136] The three-dimensional model 16 of the scene 6 may be different from a model based on reference images. For example, the model 16 can be replaced by a volumetric computer model of the scene 6 in three dimensions obtained for example by computer-aided design. Then, each reference image is constructed from this mathematical model. More details on these other types of three-dimensional models can be found in article A1.
[00137] L'image de référence peut être une image sélectionnée dans le modèle 16 ou alors une image construite à partir des images contenues dans le modèle 16. Par exemple, l'image de référence peut être obtenue en combinant plusieurs images contenues dans le modèle 16, comme décrit dans l'article A1 , de manière à obtenir une image de référence dont la pose soit plus proche de la pose estimée de l'image courante. The reference image may be an image selected in the model 16 or an image constructed from the images contained in the model 16. For example, the reference image may be obtained by combining several images contained in the model 16, as described in article A1, so as to obtain a reference image whose installation is closer to the estimated pose of the current image.
[00138] Dans une autre variante, le modèle 16 n'est pas nécessairement construit au préalable lors d'une phase d'apprentissage. Au contraire, il peut être construit au fur et à mesure que la caméra 80 est déplacée dans la scène 6. La construction simultanée de la trajectoire de la caméra 80 et de la cartographie de la scène 6 est connue sous l'acronyme SLAM (Simultaneous Localization And Mapping). Dans ce cas, par exemple, les images de la caméra 80 sont ajoutées au modèle 16 au fur et à mesure qu'elles se déplacent dans la scène 6. De préférence, avant d'ajouter une image de référence au modèle 16, celle-ci est traitée pour limiter la déformation RS et/ou MB comme décrit dans les étapes 72 et 74. Dans cette variante la phase 50 et le dispositif 20 sont omis. [00138] In another variant, the model 16 is not necessarily built beforehand during a learning phase. On the contrary, it can be constructed as the camera 80 is moved in the scene 6. The simultaneous construction of the trajectory of the camera 80 and the mapping of the scene 6 is known by the acronym SLAM (Simultaneous Localization And Mapping). In this case, for example, the images of the camera 80 are added to the model 16 as they move in the scene 6. Preferably, before adding a reference image to the model 16, this This is treated to limit RS and / or MB deformation as described in steps 72 and 74. In this variant phase 50 and device 20 are omitted.
[00139] De nombreux autres modes de réalisation du procédé sont également possibles. Par exemple, l'estimation xpR de la pose de la caméra 4 peut être obtenue d'une manière différente. Par exemple, la caméra 4 est équipée d'un capteur mesurant sa pose dans la scène, tel qu'un capteur inertiel et l'estimation de la pose xPR est obtenue à partir des mesures de ce capteur embarqué dans la caméra 4. [00139] Many other embodiments of the method are also possible. For example, the estimate x pR of the pose of the camera 4 can be obtained in a different way. For example, the camera 4 is equipped with a sensor measuring its pose in the scene, such as an inertial sensor and the estimation of the exposure x P R is obtained from the measurements of this sensor embedded in the camera 4.
[00140] Dans un autre mode de réalisation, les écarts Ei ou E3 sont calculés, non pas pour une seule image de référence, mais pour plusieurs images de référence. Ainsi, dans le procédé de la figure 4, l'écart Ei est alors remplacé par les écarts ΕιΛ ou Ei.2 où l'écart EI A est calculé à partir d'une première image de référence, et l'écart E i.2 est calculé à partir d'une seconde image de référence distincte de la première. In another embodiment, the differences E 1 or E 3 are calculated, not for a single reference image, but for several reference images. Thus, in the method of FIG. 4, the difference Ei is then replaced by the deviations Ει Λ or Ei. 2 where the difference EI A is calculated from a first reference image, and the difference E i. 2 is calculated from a second reference image distinct from the first.
[00141 ] Il est également possible d'utiliser d'autres modèles que le modèle sténopé pour modéliser une caméra, en particulier, de préférence, le modèle sténopé est complété par un modèle des distorsions radiales pour corriger les aberrations ou distorsions causées par les lentilles de la caméra. De tels modèles de distorsions peuvent être trouvés dans l'article suivant : SLAMA, C.C. (1980). Manual of Photogrammetry. American Society of Photogrammetry, 4th edn. 24. It is also possible to use other models than the pinhole model to model a camera, in particular, preferably, the pinhole model is completed by a model of radial distortions to correct the aberrations or distortions caused by the lenses. from the camera. Such models of distortions can be found in the following article: SLAMA, C.C. (1980). Manual of Photogrammetry. American Society of Photogrammetry, 4th edn. 24.
[00142] En variante, les coordonnées de la pose xpR peuvent être considérées comme étant indépendantes de la vitesse XVR. Dans ce cas, le même procédé que
précédemment décrit est mis en œuvre, sauf que la variable x contiendra à la fois les six coordonnées de la pose xp et les six coordonnées de la vitesse xv. A l'inverse, il est possible que le nombre de degrés de liberté de la caméra 4 ou 80 soit inférieur à six. C'est par exemple le cas si la caméra ne peut se déplacer que dans un plan horizontal ou ne peut pas tourner sur elle-même. Cette limitation du nombre de degrés de liberté en déplacement est alors pris en compte en réduisant le nombre de coordonnées inconnues nécessaires pour déterminer la pose et la vitesse de la caméra. De même, dans une autre variante, s'il est nécessaire d'estimer l'accélération xa de la caméra 4 au moment où celle-ci capture l'image, six coordonnées supplémentaires peuvent être ajoutées à la variable x correspondant chacune à l'une des coordonnées de l'accélération xa. L'accélération xa correspond à l'accélération linéaire le long des axes X, Y et Z ainsi que l'accélération angulaire autour de ces mêmes axes. Alternatively, the coordinates of the pose x pR can be considered as being independent of the speed X V R. In this case, the same process as described above is implemented, except that the variable x will contain both the six coordinates of the set x p and the six coordinates of speed v x. Conversely, it is possible that the number of degrees of freedom of the camera 4 or 80 is less than six. This is for example the case if the camera can move only in a horizontal plane or can not turn on itself. This limitation of the number of degrees of freedom in displacement is then taken into account by reducing the number of unknown coordinates necessary to determine the pose and the speed of the camera. Similarly, in another variant, if it is necessary to estimate the acceleration x a of the camera 4 when it captures the image, six additional coordinates can be added to the variable x corresponding each to the one of the coordinates of the acceleration x a . The acceleration x a corresponds to the linear acceleration along the X, Y and Z axes as well as the angular acceleration around these same axes.
[00143] Les différents écarts Ei, E2 et E3 décrit précédemment peuvent être utilisés en combinaison ou, au contraire, en alternance. Par exemple, la vitesse xv peut être déterminée en utilisant seulement l'écart E2 entre les profondeurs. Dans ce cas, il n'est pas nécessaire que les caméras 4 et 22 mesurent et enregistrent des intensités pour chaque pixel. De même, le procédé de la figure 7 peut être adapté au cas où la grandeur physique mesurée par la caméra 4 est la profondeur et non pas l'intensité lumineuse. Si la caméra 80 est utilisée, il n'est pas nécessaire que l'image de référence comporte une profondeur associée à chaque pixel. En effet, le vertex v est alors connu et, par exemple, le procédé de la figure 7 peut être mis en œuvre sans avoir à utiliser les vertex v*. The different deviations Ei, E 2 and E 3 described above can be used in combination or, conversely, alternately. For example, the speed x v can be determined using only the difference E 2 between the depths. In this case, it is not necessary for cameras 4 and 22 to measure and record intensities for each pixel. Similarly, the method of Figure 7 can be adapted to the case where the physical quantity measured by the camera 4 is the depth and not the light intensity. If the camera 80 is used, it is not necessary for the reference image to have a depth associated with each pixel. Indeed, the vertex v is then known and, for example, the method of Figure 7 can be implemented without having to use the vertex v * .
[00144] D'autres fonctions sont possibles pour estimer le déplacement inverse de la caméra 4 ou 80 pendant qu'elle capture l'image courante. Par exemple, au lieu d'utiliser la transformation T2(-TXVR), on peut aussi utiliser la transformation T2 "1(TXVR). [00144] Other functions are possible to estimate the inverse displacement of the camera 4 or 80 while it captures the current image. For example, instead of using the transformation T 2 (-TX V R), one can also use the transformation T 2 "1 (TX V R).
[00145] Il n'est pas non plus nécessaire d'utiliser l'ensemble des pixels des images de référence et de l'image courante qui se correspondent. En variante, pour diminuer le nombre de calculs nécessaire pour estimer la vitesse xv, seuls 10 % ou 50 % ou 70 % ou 90 % des pixels d'une des images ayant des pixels correspondants dans l'autre image sont pris en compte lors de la minimisation des écarts Ei, E2 ou E3. It is also not necessary to use all the pixels of the reference images and the current image that correspond to each other. As a variant, to reduce the number of computations required to estimate the speed x v , only 10% or 50% or 70% or 90% of the pixels of one of the images having corresponding pixels in the other image are taken into account when of the minimization of the differences Ei, E 2 or E 3 .
[00146] Si le flou cinétique dans les images capturées par la caméra 4 est négligeable, alors la fonction Pb(...) peut être prise égale à la fonction l*(...). Cela revient donc à fixer le temps te à zéro dans les équations précédemment décrites. If the kinetic blur in the images captured by the camera 4 is negligible, then the function P b (...) can be taken as equal to the function l * (...). This amounts to setting the time t e to zero in the previously described equations.
[00147] A l'inverse, si la déformation RS est négligeable dans les images capturées par la caméra 4 ou tout simplement si cette caméra 4 est une caméra à obturation simultanée des pixels, la fonction lw(p*) est prise égale à la fonction l(wi(Ti,v*)). Cela revient donc simplement à prendre la valeur de la durée tA et/ou de la durée D égale à zéro dans les modes de réalisation précédents.
[00148] Les temps ίΔ, tAD, te et tED peuvent être mesurés lors de la phase d'apprentissage ou estimés lors des premières itérations dans la phase 60 d'utilisation. Conversely, if the deformation RS is negligible in the images captured by the camera 4 or simply if this camera 4 is a camera with simultaneous shutter of the pixels, the function l w (p * ) is taken equal to the function l (wi (Ti, v * )). This is therefore simply to take the value of the duration t A and / or the duration D equal to zero in the previous embodiments. The times ί Δ , t A D, t e and t E D can be measured during the learning phase or estimated during the first iterations in the phase 60 of use.
[00149] L'estimation de la vitesse XVR peut être utilisée pour d'autres traitements de l'image que ceux précédemment décrits. The estimation of the speed X V R can be used for other image processing than those previously described.
[00150] L'estimation de la vitesse XVR et de la pose xpR n'est pas nécessairement réalisée en temps réelle. Par exemple, elle peut être réalisée une fois que la capture des images par la caméra 4 ou 80 est terminée.
[00150] The estimation of the speed X V R and the exposure x pR is not necessarily carried out in real time. For example, it can be done once the capture of the images by the camera 4 or 80 is complete.