WO2015071457A1 - Procede d'estimation de la vitesse de deplacement d'une camera - Google Patents
Procede d'estimation de la vitesse de deplacement d'une camera Download PDFInfo
- Publication number
- WO2015071457A1 WO2015071457A1 PCT/EP2014/074762 EP2014074762W WO2015071457A1 WO 2015071457 A1 WO2015071457 A1 WO 2015071457A1 EP 2014074762 W EP2014074762 W EP 2014074762W WO 2015071457 A1 WO2015071457 A1 WO 2015071457A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point
- camera
- current image
- image
- pixel
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Definitions
- 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 with progressive shutter of pixels 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.
- 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.
- the subject of the invention is a first 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, in accordance with claim 1. .
- 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.
- 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 methods directly minimize 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.
- 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.
- the number of deviations taken into account to estimate speed is much greater than in the case of point of interest-based methods.
- the first or the second camera may be a simple monocular camera unable to measure the depth that separates it from the photographed scene.
- the above methods can accurately estimate the speed even in the presence of a distortion in the current image caused by the gradual shutter pixels.
- the coordinates of one of the first and second points are determined by taking into account the movement of the first camera for the duration t A.
- the first and second values of the physical quantity both correspond more precisely to the same photographed point of the scene, which improves the estimation of the speed.
- Embodiments of these methods may include one or more of the features of the dependent claims.
- 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;
- the invention also relates to a method of constructing the trajectory of a first camera with progressive shutter of pixels in a three-dimensional scene, according to claim 11.
- the invention also relates to a method for processing a current image of a three-dimensional scene, according to claim 12.
- 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.
- the invention also relates to a first system for estimating the movement speed of a first camera at the moment when this first camera captures a current image of a three-dimensional scene, according to claim 14.
- 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.
- 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;
- 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;
- FIG. 3 is a schematic illustration of a step for determining corresponding points between a reference image and a current image;
- 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;
- FIG. 6 is a flowchart of a method for estimating the speed of the camera of FIG. 5;
- FIG. 7 is a partial illustration of another method for estimating the speed of the camera of the system of FIG. 1;
- FIG. 8 is a schematic illustration of a step of determining corresponding points in the current image and in the reference image
- FIG. 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.
- FIG. 1 represents an image processing system 2 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.
- This system 2 comprises a camera 4 which captures a temporally ordered sequence of images of a three-dimensional scene 6.
- the camera 4 is mobile, that is to say that it is movable inside the camera. scene 6 along an unknown trajectory in advance.
- 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.
- 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.
- 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.
- the camera 4 records the ordered sequence of images captured in an electronic memory 10 of a unit 12 of image processing.
- Each picture has pixels organized in rows parallel to one another. Here, these pixels are organized into columns and lines.
- Each pixel corresponds to an elementary sensor that measures a physical quantity.
- 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 the scene 6. This distance is called "depth".
- the pixels of the camera 4 measure only the intensity of the light emitted by the point of the scene photographed.
- 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.
- the camera 4 is a progressive shutter camera pixels more known by the English term "rolling shutter 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”.
- Figures 2A and 2B illustrate more precisely the characteristics of the camera 4 compared to those of a simultaneous shutter camera pixels.
- the horizontal axis represents the time while the vertical axis represents the number of the pixel line.
- 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.
- the pixels are captured by the camera 4, and in Figure 2B, the pixels are captured by a simultaneous camera shutter pixels.
- 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.
- the duration t A which flows between the instants of capture of two successive lines of pixels is non-zero in the case of FIG. 2A.
- the duration is the same whatever the pair of successive lines selected in the image captured by the camera 4.
- 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 durations t A which separates the capture times of the different lines of the complete picture. 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".
- deformation MB 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”.
- 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.
- 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.
- the model used is the pinhole model or "pin hole" in English. More information on this model can be found in the following articles:
- 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.
- 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: fs 3 ⁇ 4 (
- f is the focal length of the camera expressed in pixels
- r is the dimension ratio of a pixel
- 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.
- 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.
- the matrix K can be obtained during a calibration phase. Such a calibration phase is for example described in the following articles:
- this matrix K 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.
- this matrix is constant over time. To facilitate the description which follows, it will be assumed that this matrix K is constant and known.
- 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.
- the reference R has two horizontal axes X and Y orthogonal to each other and a vertical axis Z.
- 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.
- the position of the camera 4 is marked in the R mark by the coordinates of its projection center.
- 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. 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.
- x vR 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.
- 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.
- 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.
- the unit 12 is also capable of:
- 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.
- 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.
- 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 and y are the coordinates of the pixel in the PL plane of the image
- - D (p) is the measured depth that separates this pixel from the point of the PS scene that it has photographed.
- the function D associates with each point p of the augmented image the depth D (p) measured or interpolated.
- 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.
- 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.
- 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).
- SLAM Simultaneous Localization
- Mapping a simultaneous localization and mapping process
- 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.
- the unit 24 is embedded in the camera 22.
- the model 16 is built by the device 20 and stored in the memory 10.
- the model 16 is a database in which the different reference images I * are recorded.
- 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.
- the method starts with a learning phase 50 in which the model 16 is built and stored in the memory 10.
- a learning phase 50 in which the model 16 is built and stored in the memory 10.
- the camera 22 is moved inside. from scene 6 to capture many reference images I * from many different poses.
- the camera 22 is moved slowly so that the kinetic blur in the reference images is negligible.
- such a displacement slow also eliminates the distortion caused by the gradual shutter of the pixels.
- 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.
- 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 when these reference images were captured are recorded. in a database.
- 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.
- 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.
- 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.
- 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”.
- 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 .
- 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.
- the acquisition frequency is greater than or equal to 30 Hz.
- 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.
- 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.
- the vector x gathers the coordinates of the pose x p and the speed x v .
- the variable x therefore has 12 coordinates to estimate.
- Operations 1) and 2) are repeated in loop.
- 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.
- the number of iterations is stopped when a stopping criterion is satisfied.
- 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 .
- 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.
- 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:
- 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 * .
- 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 * .
- 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.
- 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.
- the unit 12 selects in the reference image the coordinates v * of the point PS associated with the 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 is a rotation matrix
- 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 .
- 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.
- Wired function that returns the coordinates of the point p w1 corresponding to the point p * is known as a function of "warping". It is typically a central projection of center C. It is parameterized by the function ⁇ . So, we
- the point p w1 does not necessarily fall in the center of a pixel of the image I.
- 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.
- 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.
- the interval ⁇ can be calculated as being equal to (n + 1) U, 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.
- the number n is determined from the ordinate of the point p w1 .
- 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.
- -T 2 (-TX V R) 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 the displacement of the camera 4 during the interval ⁇ ,
- - w 2 is a function of "warping" which returns the coordinates of the point p TM 2 corresponding to the projection of the point p 1 "2 * - TM *" on the plane PL.
- the point p w2 is the intersection of the plane of the current image and an optical axis passing through the center C and the point p ⁇ J2 XVR
- T 2 incorporates the speed -X V R on the interval ⁇ to obtain a displacement equal to the displacement of the camera 4 during the interval ⁇ but of opposite direction.
- the speed X V R is considered constant during the interval ⁇ .
- the distance traveled by the camera 4 during the interval ⁇ at the speed X V R is calculated by integrating this speed over the time interval ⁇ .
- 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:
- ⁇ ⁇ , ⁇ ⁇ and ⁇ ⁇ are the angular velocities of the camera 4 around, respectively, the X, Y and Z axes of the marker R.
- 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 TM 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 TM 2 is located.
- the intensity ⁇ TM 2 must be the same as the intensity P (p * ) recorded in the reference image P after taking into account the RS strain.
- 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 ⁇ TM 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 TM 2 ) therefore does not correspond exactly to the intensity l * (p * ) even if the RS strain has been eliminated or at least decreased.
- 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 * .
- 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.
- the coordinates of the neighboring points are obtained using the composition of functions w 3 (Ti "1 T 2 (-tXvR) Ti, p *) .
- the composition of functions T 1 T 2 (- IX V R) TI performs the following operations:
- 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 *
- T 2 (-tx vR ) moves the point PS, of a distance function of a duration t and the speed X VR , to obtain the coordinates of a new point p T2 (-'x) expressed in the reference F, where t is a duration between zero and the exposure time t e of the pixel, and
- 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 *.
- 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.
- the functions Ti and T 2 are the same as those previously described.
- the function T 1 is the inverse of the laying matrix ⁇ .
- 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) .
- the coordinates of a point close to the point p * are obtained for each value of the duration t.
- at least five, ten or twenty values of the duration t regularly distributed in the interval [0; t e ] are used.
- 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.
- 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 .
- 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.
- the pose matrix Ti is updated with the new estimate of the pose x pR obtained from the new estimate of the pose X V R.
- 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.
- a step 70 of constructing the trajectory of the camera 4 is carried out in real time.
- the unit 12 records in the form of a temporally ordered sequence the succession of the estimated x pR poses. This temporally ordered sequence then constitutes the trajectory constructed for the camera 4.
- 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.
- W 2 T 2 (-TXVR), P
- 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.
- the unit 12 also processes the current image to limit the deformations caused by the motion blur.
- 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:
- FIG. 5 shows a system identical to that of Figure 1, except that the camera 4 is replaced by a camera 80.
- This camera 80 is a camera identical to the camera 22 or just the same camera as the camera 22.
- 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 may be equal to or different from the duration t A for capturing intensities.
- the exposure time of the pixels to capture the depth is noted ted.
- 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.
- D w (x, p * ) is the composition of the following functions:
- the function D returns the value of the depth at point p TM 2 .
- 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 replacing t A by t Ac i.
- 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.
- 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 ted.
- D * b (x, p * ) is constructed similarly to what has been described for the term l * b (x, p * ).
- D * b (x, p * ) is constructed:
- 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 ted.
- 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 .
- variable x comprises, in addition to the six coordinates of the velocity x v , four coordinates intended to code the values of the times, t A d, t e and t e d.
- 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.
- 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 FIG. 7, only the part of the process comprising the operation 90 has been represented. The other parts of the process are identical to those previously described.
- 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).
- l (p) is the intensity measured at the point p by the camera 4.
- 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.
- l * w (x, p) corresponds to the following composition of functions:
- 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 ⁇ * of the vertex associated with its nearest points p w1 .
- TV 1 is the inverse pose matrix of the matrix Ti. It thus transforms the coordinates of the vertex v, expressed in the reference F, in coordinates v * expressed in the reference F * .
- 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).
- the function w 4 is identical to the function w 3 .
- 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.
- FIG. 9 represents the evolution over time of the difference between the angular velocity estimated using the method of FIG. 4 and the actual angular velocity of the camera 4.
- the curves represented were obtained experimentally. Each curve shown was obtained using the same sequence of current images and the same reference images.
- 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).
- RMSE Root Mean Square Error
- the curve 91 represents the evolution of the error without correcting the RS and MB deformations.
- 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 t A equal to zero.
- 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.
- the curve 94 corresponds to the case where only the deformation MB is corrected. This curve is obtained by performing the method of Figure 4 by taking a value for the time t e is not zero and by setting the time t A to zero.
- 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.
- 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.
- a Such sensor is an inertial sensor that measures the acceleration of the camera 22 along three orthogonal axes.
- 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.
- cameras 22 and 4 can work in the infrared.
- 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.
- the three-dimensional model 16 of the scene 6 may be different from a model based on reference images.
- 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.
- the reference image may be an image selected in the model 16 or an image constructed from the images contained in the model 16.
- 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.
- 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).
- SLAM Simultaneous Localization And Mapping
- the images of the camera 80 are added to the model 16 as they move in the scene 6.
- this is treated to limit RS and / or MB deformation as described in steps 72 and 74.
- phase 50 and device 20 are omitted.
- the estimate x pR of the pose of the camera 4 can be obtained in a different way.
- 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.
- the differences E 1 or E 3 are calculated, not for a single reference image, but for several reference images. So, in the process 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.
- the pinhole model is completed by a model of radial distortions to correct the aberrations or distortions caused by the lenses. from the camera.
- models of distortions can be found in the following article: SLAMA, C.C. (1980). Manual of Photogrammetry. American Society of Photogrammetry, 4th edn. 24.
- the coordinates of the pose x pR can be considered as being independent of the speed X V R.
- the same method as previously described is implemented, except that the variable x will contain both the six coordinates of the pose x p and the six coordinates of the velocity x v .
- 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.
- 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.
- 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.
- 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 *.
- 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 time t A, t A D, E t e and t D can be measured during the learning phase or estimated during the first iterations in Phase 60 for use.
- the estimation of the speed X V R can be used for other image processing than those previously described.
- 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.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
Ce procédé comporte l'estimation de la vitesse XVR de déplacement de la première caméra en recherchant la vitesse XVR qui minimise un écart directement entre : - une première valeur d'une grandeur physique au niveau d'un premier point (p*) d'une image de référence, et - une seconde valeur de la même grandeur physique au niveau d'un second point (pw2) d'une image courante, les coordonnées du second point (pw2) dans le plan de l'image courante étant obtenues : - en déterminant les coordonnées d'un troisième point (pw1) qui correspond à la projection sur le plan de l'image courante du point de la scène photographié par le premier point (p*), puis - en déplaçant le troisième point (pw1) d'une distance égale et de sens opposé à une distance parcourue par la caméra, et enfin - en projetant le troisième point (pw1) ainsi déplacé sur le plan de l'image courante.
Description
PROCEDE D'ESTIMATION DE LA VITESSE DE DEPLACEMENT D'UNE 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 à obturation progressive de pixels 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.
[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.
[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.
[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.
[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.
[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 a pour objet 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 .
[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.
[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, les procédés ci-dessus minimisent 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é.
[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.
[0011] On notera aussi que dans les procédés 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.
[0012] Enfin, les procédés ci-dessus permettent d'estimer précisément la vitesse même en présence d'une déformation dans l'image courante causée par l'obturation progressive des pixels. Pour cela, dans les procédés ci-dessus, les coordonnées de l'un des premier et second points sont déterminée en prenant en compte les déplacements de la première caméra pendant la durée tA. Ainsi, les première et seconde valeurs de la grandeur physique correspondent toutes les deux plus précisément au même point photographié de la scène ce qui améliore l'estimation de la vitesse.
[0013] Les modes de réalisation de ces procédés peuvent comporter une ou plusieurs des caractéristiques des revendications dépendantes.
[0014] Ces modes de réalisation du procédé d'estimation de la vitesse présentent en outre les avantages suivants :
- moyenner des valeurs de la grandeur physique au niveau de plusieurs pixels voisins et du point de référence pour construire une valeur de la grandeur physique correspondant à celle qui serait obtenue si la seconde caméra se déplaçait à la
même vitesse que la première caméra, et présentait un même temps d'exposition, permet d'augmenter la précision de l'estimation de la vitesse puisque l'on tient alors compte à la fois des déformations causées par l'obturation progressive des pixels et du flou cinétique ;
- 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;
- 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.
- 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.
[0015] L'invention a également pour objet un procédé de construction de la trajectoire d'une première caméra à obturation progressive de pixels dans une scène tridimensionnelle, conforme à la revendication 11.
[0016] L'invention a également pour objet un procédé traitement d'une image courante d'une scène tridimensionnelle, conforme à la revendication 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.
[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.
[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.
[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 :
- 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 ;
- 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 ;
- 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 ;
- 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 ;
- la figure 6 est un organigramme d'un procédé d'estimation de la vitesse de la caméra de la figure 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 ;
- 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 ;
- 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.
[0021 ] Dans ces figures, les mêmes références sont utilisées pour désigner les mêmes éléments.
[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
[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.
[0024] Ce système 2 comporte une caméra 4 qui capture une suite ordonnée temporellement 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.
[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.
[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).
[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 ».
[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.
[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.
[0030] La durée tA 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.
[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 tA qui sépare les instants de capture des différentes lignes de l'image complète.
[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 ».
[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.
[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 :
- FAUGERAS, O. (1993). Three-dimensionnal computer vision : a géométrie viewpoint. MIT Press Cambridge, MA. 23
- HARTLEY, R.l. & 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 :
f s ¾(
K = 0 f X r vz
10 0 1
ou :
- f est la distance focale de la caméra exprimée en pixel,
- s est le facteur de cisaillement,
- 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.
[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 :
- 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
- 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
- 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.
[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.
[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.
[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.
[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.
[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 :
- 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,
- une mesure de l'intensité lumineuse l(p) mesurée par ce 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.
[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 :
- de construire la trajectoire de la caméra 4 dans le repère R à partir des poses xPR successives estimées, et
- de corriger les images capturées par la caméra 4 pour éliminer ou limiter les déformations RS ou MB.
[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.
[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ù :
- x et y sont les coordonnées du pixel dans le plan PL de l'image, et
- D(p) est la profondeur mesurée qui sépare ce pixel du point de la scène PS qu'il a photographié.
[0048] La fonction D associe à chaque point p de l'image augmentée la profondeur D(p) mesurée ou interpolée.
[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.
[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.
[0052] Par exemple, l'unité 24 est embarquée dans la caméra 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é.
[0054] Le fonctionnement du système 2 va maintenant être décrit en référence au procédé de la figure 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.
[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.
[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.
[0058] Une fois la phase d'apprentissage terminée, on peut alors procéder à une phase 60 d'utilisation.
[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.
[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.
[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 ».
[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.
[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 12 coordonnées à estimer.
[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.
[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 :
1 ) Choisir une valeur pour la vitesse xv,
2) Calculer la valeur de l'écart Ei pour cette valeur.
[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.
[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é.
[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.
[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 :
- MALIS, E. (2004). Improving vision-based control using efficient second-order minimization techniques. In IEEE International Conférence on Robotics and Automation, 1843-1848. 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
[0071 ] D'autres méthodes encore plus robustes sont décrites dans les références bibliographiques suivantes :
- 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
- 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
[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.
[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*.
[0074] lw(x,p*) correspond ici à la composition de fonctions suivantes :
I(W2(T2(-TXVR)),WI(TI, 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*.
[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.
[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:
R
T =
LO
où :
- R est une matrice de rotation, et
- 1 est un vecteur de translation.
[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.
[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.
[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 ΤΊ . Ainsi, on
[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.
[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.
[0084] L'intervalle τ peut être calculé comme étant égal à (n+1 )U, 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).
[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 TXVR. 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.
[0086] Ceci est réalisé à l'aide de la composition suivante de fonctions :
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 τ,
- w2(...) est une fonction de « warping » qui retourne les coordonnées du point p™2 correspondant à la projection du point p1"2*-™*» sur le plan 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
[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ù :
- exp(...) est la fonction exponentielle, et :
[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 :
où ωχ, ωγ et ωζ sont les vitesses angulaires de la caméra 4 autour, respectivement, les axes X, Y et Z du repère 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.
[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.
[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*).
[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.
[0095] Pour simuler la déformation MB dans l'image de référence, le terme l* b(x, p*) est construit :
- 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
- 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.
[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 :
- 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*,
- 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 pT2(-'x ) 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
- 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*.
[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.
[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 ΤΊ .
[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).
[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.
[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.
[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.
[00103] Après chaque itération qui minimise l'écart Ei, la matrice de pose Ti est mise à jour avec la nouvelle estimation de la pose xpR obtenue à partir de la nouvelle estimation de la pose XVR.
[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.
[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.
[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.
[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 :
- N. Joshi, F. Kang, L. Zitnick, R. Szeliski, « Image deblurring with inertial measurement sensors », ACM Siggraph, 2010, et
- F. Navarro, F. J. Serôn et D. Gutierrez, « Motion blur rendering: state of the art », Computer Graphics Forum, 201 1 .
[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 peut être égal ou différent de la durée tA pour la capture des intensités.
[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.
[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.
[00111] Ici, le terme Dw(x,p*) est la composition des fonctions suivantes :
D(w2(T2(-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 tAci.
[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.
[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 :
- 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
- 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.
[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 ted. 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.
[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 , tAd, 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.
[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.
[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.
[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).
[00120] Le terme l(p) est l'intensité mesurée au niveau du point p par la caméra 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 :
l*b(w5(T2(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 ΤΊν* des vertex associés à ses points pw1 les plus proches.
[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.
[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<TXvR> par la fonction w5(...), on obtient les coordonnées du point pw5.
[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.
[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
[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).
[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 tA égaux à zéro.
[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.
[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 tA à zéro.
[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.
[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).
[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.
[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.
[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 .
[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.
[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.
[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.
[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.
[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.
[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.
[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*.
[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).
[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.
[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.
[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 tA, 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.
[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.
[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.
Claims
1 . 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, l'image courante comportant des pixels organisés en rangées parallèles, les rangées de pixels ayant été capturées les unes après les autres de sorte qu'une durée tA non nulle s'écoule entre les instants de capture de deux rangées successives de l'image courante, ce procédé comportant :
a) l'enregistrement (56) dans une mémoire électronique d'une image de référence correspondant à une image de la même scène prise par une seconde caméra dans une pose différente, l'image de référence comportant des pixels organisés en rangées parallèles, la mémoire comportant pour chaque pixel de l'image de référence la mesure d'une grandeur physique mesurée par ce pixel, cette grandeur physique étant choisie dans le groupe composé de l'intensité d'un rayonnement émis par le point photographié par ce pixel et une profondeur séparant ce pixel du point de la scène photographié par ce pixel,
b) l'enregistrement (62) dans la mémoire électronique de l'image courante, la mémoire contenant pour chaque pixel de l'image courante la mesure d'une grandeur physique mesurée par ce pixel, cette grandeur physique étant la même que la grandeur physique mesurée par les pixels de l'image de référence,
c) l'enregistrement (56) dans la mémoire électronique pour chaque pixel de l'image de référence ou de l'image courante de la mesure d'une profondeur qui sépare ce pixel du point de la scène photographié par ce pixel,
d) l'estimation (68 ; 84) de la pose xpR de la première caméra,
e) l'estimation (68 ; 84) de la vitesse XVR de déplacement de la première caméra pendant la capture de l'image courante,
caractérisé en ce que l'étape e) est réalisée en recherchant la vitesse XVR qui minimise, pour N points de l'image de référence, où N est un nombre entier supérieur à 10 % du nombre de pixels de l'image de référence, un écart directement entre : - une première valeur de la grandeur physique au niveau d'un premier point (p*) de l'image de référence, cette première valeur étant construite à partir d'au moins une mesure de cette grandeur physique mémorisée dans cette image de référence, et - une seconde valeur de la même grandeur physique au niveau d'un second point (pw2) de l'image courante, cette seconde valeur étant construite à partir des mesures de cette grandeur physique mémorisées dans l'image courante et des coordonnées du second point, les coordonnées du second point (pw2) dans le plan de l'image courante étant obtenues :
- en déterminant les coordonnées d'un troisième point (pw1) dans le plan de l'image courante qui correspond à la projection sur ce plan du point de la scène photographié par le premier point (p*), ces coordonnées étant déterminées à partir de la pose xpR estimée et des mesures des profondeurs mémorisées dans l'image courante ou de référence, puis
- en déplaçant le troisième point (pw1) d'une distance égale et de sens opposé à la distance parcourue par la première caméra entre un instant ti auquel une première rangée de l'image courante est capturée et un instant t, auquel la rangée de pixels à laquelle appartient le troisième point (pw1) a été capturée, cette distance étant fonction de la durée tA et de la vitesse XVR, et enfin
- en projetant le troisième point (pw1) ainsi déplacé sur le plan de l'image courante pour obtenir les coordonnées du second point (p™2).
2. Procédé selon la revendication 1 , dans lequel, lors de l'étape e), les coordonnées du second point (p™2) sont obtenues à l'aide de la relation suivante :
p™2 = W2(T2(-TXVR), pw1),
où :
- p™2 et pw1 sont, respectivement, les coordonnées des second et troisième points dans le plan de l'image courante,
- τ est l'intervalle de temps qui s'est écoulé entre l'instant ti et l'instant t,
- T2(-TXVR) est une fonction qui retourne l'opposé de la distance parcourue par la première caméra entre les instants ti et fc en intégrant la vitesse -XVR pendant l'intervalle de temps τ, et
- w2(...) est une projection centrale qui retourne les coordonnées, dans le plan de l'image courante, du troisième point (pw1) après qu'il ait été déplacé de la distance T2(-
TXVR), cette projection centrale étant fonction de paramètres intrinsèques de la première caméra dont notamment sa distance focale.
3. Procédé selon la revendication 2, dans lequel le procédé comporte le calcul de la durée τ :
- en identifiant la rangée de pixels de l'image courante à laquelle appartient le troisième point (pw1) à partir des coordonnées de ce troisième point dans le plan de l'image courante, et
- en multipliant la durée par n+1 , où n est le nombre de rangées qui séparent la rangée ainsi identifiée de la première rangée capturée dans l'image courante.
4. 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, l'image courante comportant des pixels organisés en rangées parallèles, les rangées de pixels ayant été capturées les unes après les autres de sorte qu'une durée tA non nulle s'écoule entre les instants de capture de deux rangées successives de l'image courante, ce procédé comportant :
a) l'enregistrement dans une mémoire électronique d'une image de référence correspondant à une image de la même scène prise par une seconde caméra dans une pose différente, l'image de référence comportant des pixels organisés en rangées parallèles, la mémoire comportant pour chaque pixel de l'image de référence la mesure d'une grandeur physique mesurée par ce pixel, cette grandeur physique étant choisie dans le groupe composé de l'intensité d'un rayonnement émis par le point photographié par ce pixel et d'une profondeur séparant ce pixel du point de la scène photographié par ce pixel,
b) l'enregistrement dans la mémoire électronique de l'image courante, la mémoire contenant pour chaque pixel de l'image courante la mesure d'une grandeur physique mesurée par ce pixel, cette grandeur physique étant la même que la grandeur physique mesurée par les pixels de l'image de référence,
c) l'enregistrement dans la mémoire électronique, pour chaque pixel de l'image de référence ou de l'image courante, de la mesure d'une profondeur qui sépare ce pixel du point de la scène photographié par ce pixel,
d) l'estimation d'une pose xpR de la première caméra,
e) l'estimation de la vitesse XVR de déplacement de la première caméra pendant la capture de l'image courante,
caractérisé en ce que l'étape e) est réalisée en recherchant la vitesse XVR qui minimise, pour N points de l'image courante, où N est un nombre entier supérieur à 10 % du nombre de pixels de l'image courante, un écart directement entre :
- une première valeur de la grandeur physique au niveau d'un premier point (p) de l'image courante, cette première valeur étant construite à partir d'au moins une mesure de cette grandeur physique mémorisée dans cette image courante, et
- une seconde valeur de la même grandeur physique au niveau d'un second point (pw5) de l'image de référence, cette seconde valeur étant construite à partir des mesures de cette grandeur physique mémorisées dans l'image de référence et des coordonnées du second point dans le plan de l'image de référence, les coordonnées du second point (pw5) étant obtenues :
- en déterminant les coordonnées d'un troisième point (pw4) dans le plan de l'image de référence qui correspond à la projection sur ce plan du point de la scène photographié par le premier point (p), ces coordonnées étant déterminées à partir de la pose xpR estimée et des mesures des profondeurs mémorisées dans l'image courante ou de référence, puis
- en déplaçant le troisième point (pw4) d'une distance égale et de même sens à la distance parcourue par la première caméra entre un instant ti auquel une première rangée de l'image courante est capturée et un instant t, auquel la rangée de pixels à laquelle appartient le premier point (p) a été capturée, cette distance étant fonction de la durée tA et de la vitesse XVR, et enfin
- en projetant le troisième point (pw4) ainsi déplacé sur le plan de l'image de référence pour obtenir les coordonnées du second point (pw5).
5. Procédé selon la revendication 4, dans lequel, lors de l'étape e), les coordonnées du second point (pw5) sont obtenues à l'aide de la relation suivante :
où :
- pw5 et pw4 sont les coordonnées, respectivement, des second et troisième points dans le plan de l'image de référence,
- τ est l'intervalle de temps qui s'est écoulé entre l'instant ti et l'instant t,
- T2(TXVR) est une fonction qui retourne la distance parcourue par la première caméra entre les instants ti et fc en intégrant la vitesse XVR, pendant l'intervalle de temps τ, et
- w5(...) est une projection centrale qui retourne les coordonnées, dans le plan de l'image de référence, du troisième point (pw5) après qu'il ait été déplacé de la distance T2(TXVR), cette projection centrale étant fonction de paramètres intrinsèques de la seconde caméra dont notamment sa distance focale.
6. Procédé selon la revendication 5, dans lequel le procédé comporte le calcul de la durée τ :
- en identifiant la rangée de pixels de l'image courante à laquelle appartient le premier point (p) à partir des coordonnées de ce premier point dans le plan de l'image courante, et
- en multipliant la durée par n+1 , où n est le nombre de rangées qui séparent la rangée ainsi identifiée de la première rangée capturée dans l'image courante.
7. Procédé selon l'une quelconque des revendications précédentes, dans lequel la valeur de la grandeur physique au niveau du point (p* ; pw5) de l'image de référence, dit point de référence, est construite :
- en sélectionnant des points voisins du point de référence, chaque point voisin correspondant à la projection sur le plan de l'image de référence d'un troisième point dont les coordonnées sont obtenues en déplaçant le second point d'une distance T2(- ÎXVR), OÙ t est une durée écoulée depuis le début d'un temps te d'exposition, cette durée étant inférieure ou égale au temps te d'exposition, et T2(...) est une fonction qui
intègre la vitesse XVR pendant la durée t, chaque point voisin correspondant à une valeur respective de la durée t et le temps te étant égal au temps d'exposition de la première caméra, puis
- en moyennant les valeurs de la grandeur physique au niveau des points voisins sélectionnés et du point de référence de manière à générer une nouvelle valeur de la grandeur physique au niveau du point de référence, cette nouvelle valeur constituant une estimation de celle qui serait mesurée si le temps d'exposition des pixels de la seconde caméra était égal à te et si la seconde caméra se déplaçait à la vitesse XVR pendant le temps d'exposition te, les valeurs de la grandeur physique au niveau des points voisins étant obtenues à partir des mesures mémorisées dans l'image de référence et des coordonnées des points voisins.
8. Procédé selon l'une quelconque des revendications précédentes, dans lequel la vitesse XVR est un vecteur à six coordonnées codant la vitesse de déplacement en translation et en rotation de la première caméra le long de trois axes orthogonaux entre eux de sorte que lors de l'étape e) la vitesse en translation et en rotation de la première caméra est estimée.
9. Procédé selon l'une quelconque des revendications précédentes, dans lequel lors de l'étape e), les coordonnées de la pose xpR sont considérées comme étant des inconnues à estimer de sorte que les étapes d) et e) sont alors simultanément réalisées en recherchant simultanément la pose xpR et la vitesse XVR qui minimisent l'écart entre les première et seconde valeurs de la grandeur physique.
10. Procédé selon la revendication 9, dans lequel lors de la recherche simultanée de la pose xpR et de la vitesse XVR, les coordonnées de la pose xpR sont définies par la relation xpR=tpxVR + XPR-I , OÙ xpR-i est l'estimation de la pose de la première caméra à l'instant où cette première caméra a capturé l'image courante précédente, et tp est l'intervalle de temps qui sépare l'instant de capture de l'image courante de l'instant de capture de l'image courante précédente par la première caméra, de sorte que seules six coordonnées sont à estimer lors des étapes d) et e) pour obtenir simultanément des estimations de la vitesse XVR et de la pose xpR.
11. Procédé de construction de la trajectoire d'une première caméra à obturation progressive de pixels dans une scène tridimensionnelle, ce procédé comportant : a) l'acquisition d'un modèle tridimensionnel de la scène,
b) l'enregistrement dans une mémoire électronique d'une succession d'images ordonnées temporellement capturées par la première caméra au cours de son
déplacement dans la scène, chaque image comportant des pixels organisés en rangées parallèles, les rangées de pixels ayant été capturées les unes après les autres de sorte qu'une durée non nulle s'écoule entre les instants de capture de deux rangées successives de l'image courante, la mémoire contenant pour chaque pixel de l'image courante une mesure d'une grandeur physique choisie dans le groupe composé de l'intensité d'un rayonnement émis par le point photographié par ce pixel et d'une profondeur séparant ce pixel du point de la scène photographié, c) pour chaque image courante :
- la construction ou la sélection, à partir du modèle tridimensionnel de la scène, d'une image de référence comportant des pixels ayant photographié les mêmes points de la scène que les pixels de l'image courante,
- l'estimation d'une pose de la première caméra au moment où celle-ci capture cette image courante,
- la construction (70) de la trajectoire de la première caméra à partir des différentes poses estimées de la première caméra,
caractérisé en ce que l'estimation de la pose de la première caméra est réalisée à l'aide d'un procédé conforme à l'une quelconque des revendications précédentes.
12. Procédé de traitement d'une image courante d'une scène tridimensionnelle, l'image courante comportant des pixels organisés en rangées parallèles, les rangées de pixels ayant été capturées les unes après les autres de sorte qu'une durée tA non nulle s'écoule entre les instants de capture de deux rangées successives de l'image courante, ce procédé comportant :
a) l'estimation de la vitesse XVR de déplacement de la première caméra au moment où cette caméra a capturé l'image courante,
b) la modification (72) automatique de l'image courante pour corriger, à partir de la vitesse XVR estimée et de la durée tA, l'image courante de manière à limiter les déformations de l'image courante provoquée par le déplacement de la première caméra entre les instants de capture des différentes rangées de pixels de l'image, caractérisé en ce que l'étape d'estimation de la vitesse XVR est réalisée à l'aide d'un procédé conforme à l'une quelconque des revendications 1 à 10.
13. Support (10) d'enregistrement d'informations, caractérisé en ce qu'il comporte des instructions pour la mise en œuvre d'un procédé conforme à l'une quelconque des revendications précédentes, lorsque ces instructions sont exécutées par un calculateur électronique.
14. 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, l'image courante comportant des pixels organisés en rangées parallèles, les rangées de pixels ayant été capturées les unes après les autres de sorte qu'une durée tA non nulle s'écoule entre les instants de capture de deux rangées successives de l'image courante, ce système comportant :
- une mémoire électronique (10) contenant :
• une image de référence correspondant à une image de la même scène prise par une seconde caméra dans une pose différente, l'image de référence comportant des pixels organisés en rangées parallèles, la mémoire comportant pour chaque pixel de l'image de référence la mesure d'une grandeur physique mesurée par ce pixel, cette grandeur physique étant choisie dans le groupe composé de l'intensité d'un rayonnement émis par le point photographié par ce pixel et une profondeur séparant ce pixel du point de la scène photographié par ce pixel,
• l'image courante, la mémoire contenant pour chaque pixel de l'image courante la mesure d'une grandeur physique mesurée par ce pixel, cette grandeur physique étant la même que la grandeur physique mesurée par les pixels de l'image de référence,
· pour chaque pixel de l'image de référence ou de l'image courante, la mesure d'une profondeur qui sépare ce pixel du point de la scène photographié par ce pixel,
- une unité (12) de traitement d'information apte :
• à estimater de la pose xpR de la première caméra,
« à estimater de la vitesse XVR de déplacement de la première caméra pendant la capture de l'image courante
caractérisé en ce que l'unité (12) de traitement d'informations est apte à estimer la vitesse XVR en recherchant la vitesse XVR qui minimise, pour N points de l'image de référence, où N est un nombre entier supérieur à 10 % du nombre de pixels de l'image de référence, un écart directement entre :
- une première valeur de la grandeur physique au niveau d'un premier point (p*) de l'image de référence, cette première valeur étant construite à partir d'au moins une mesure de cette grandeur physique mémorisée dans cette image de référence, et
- une seconde valeur de la même grandeur physique au niveau d'un second point (pw2) de l'image courante, cette seconde valeur étant construite à partir des mesures de cette grandeur physique mémorisées dans l'image courante et des coordonnées du second point, les coordonnées du second point (pw2) dans le plan de l'image courante étant obtenues :
- en déterminant les coordonnées d'un troisième point (pw1) dans le plan de l'image courante qui correspond à la projection sur ce plan du point de la scène photographié par le premier point (p*), ces coordonnées étant déterminées à partir de la pose xpR estimée et des mesures des profondeurs mémorisées dans l'image courante ou de référence, puis
- en déplaçant le troisième point (pw1) d'une distance égale et de sens opposé à la distance parcourue par la première caméra entre un instant ti auquel une première rangée de l'image courante est capturée et un instant t, auquel la rangée de pixels à laquelle appartient le troisième point (pw1) a été capturée, cette distance étant fonction de la durée tA et de la vitesse XVR, et enfin
- en projetant le troisième point (pw1) ainsi déplacé sur le plan de l'image courante pour obtenir les coordonnées du second point (p™2).
15. 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, l'image courante comportant des pixels organisés en rangées parallèles, les rangées de pixels ayant été capturées les unes après les autres de sorte qu'une durée tA non nulle s'écoule entre les instants de capture de deux rangées successives de l'image courante, ce système comportant :
- une mémoire électronique (10) contenant :
• une image de référence correspondant à une image de la même scène prise par une seconde caméra dans une pose différente, l'image de référence comportant des pixels organisés en rangées parallèles, la mémoire comportant pour chaque pixel de l'image de référence la mesure d'une grandeur physique mesurée par ce pixel, cette grandeur physique étant choisie dans le groupe composé de l'intensité d'un rayonnement émis par le point photographié par ce pixel et une profondeur séparant ce pixel du point de la scène photographié par ce pixel,
• l'image courante, la mémoire contenant pour chaque pixel de l'image courante la mesure d'une grandeur physique mesurée par ce pixel, cette grandeur physique étant la même que la grandeur physique mesurée par les pixels de l'image de référence,
• pour chaque pixel de l'image de référence ou de l'image courante, la mesure d'une profondeur qui sépare ce pixel du point de la scène photographié par ce pixel,
- une unité (12) de traitement d'informations apte :
• à estimater de la pose xpR de la première caméra,
• à estimater de la vitesse XVR de déplacement de la première caméra pendant la capture de l'image courante,
caractérisé en ce que l'unité (12) de traitement d'informations est apte à estimer la vitesse XVR en recherchant la vitesse XVR qui minimise, pour N points de l'image courante, où N est un nombre entier supérieur à 10 % du nombre de pixels de l'image courante, un écart directement entre :
- une première valeur de la grandeur physique au niveau d'un premier point (p) de l'image courante, cette première valeur étant construite à partir d'au moins une mesure de cette grandeur physique mémorisée dans cette image courante, et - une seconde valeur de la même grandeur physique au niveau d'un second point (pw5) de l'image de référence, cette seconde valeur étant construite à partir des mesures de cette grandeur physique mémorisées dans l'image de référence et des coordonnées du second point dans le plan de l'image de référence, les coordonnées du second point (pw5) étant obtenues :
- en déterminant les coordonnées d'un troisième point (pw4) dans le plan de l'image de référence qui correspond à la projection sur ce plan du point de la scène photographié par le premier point (p), ces coordonnées étant déterminées à partir de la pose xpR estimée et des mesures des profondeurs mémorisées dans l'image courante ou de référence, puis
- en déplaçant le troisième point (pw4) d'une distance égale et de même sens à la distance parcourue par la première caméra entre un instant ti auquel une première rangée de l'image courante est capturée et un instant t, auquel la rangée de pixels à laquelle appartient le premier point (p) a été capturée, cette distance étant fonction de la durée tA et de la vitesse XVR, et enfin
- en projetant le troisième point (pw4) ainsi déplacé sur le plan de l'image de référence pour obtenir les coordonnées du second point (pw5).
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14799446.1A EP3072108A1 (fr) | 2013-11-18 | 2014-11-17 | Procede d'estimation de la vitesse de deplacement d'une camera |
US15/037,597 US9940725B2 (en) | 2013-11-18 | 2014-11-17 | Method for estimating the speed of movement of a camera |
US15/949,015 US10636151B2 (en) | 2013-11-18 | 2018-04-09 | Method for estimating the speed of movement of a camera |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1361305A FR3013487B1 (fr) | 2013-11-18 | 2013-11-18 | Procede d'estimation de la vitesse de deplacement d'une camera |
FR1361305 | 2013-11-18 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/037,597 A-371-Of-International US9940725B2 (en) | 2013-11-18 | 2014-11-17 | Method for estimating the speed of movement of a camera |
US15/949,015 Continuation US10636151B2 (en) | 2013-11-18 | 2018-04-09 | Method for estimating the speed of movement of a camera |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015071457A1 true WO2015071457A1 (fr) | 2015-05-21 |
Family
ID=50424398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2014/074762 WO2015071457A1 (fr) | 2013-11-18 | 2014-11-17 | Procede d'estimation de la vitesse de deplacement d'une camera |
Country Status (4)
Country | Link |
---|---|
US (2) | US9940725B2 (fr) |
EP (1) | EP3072108A1 (fr) |
FR (1) | FR3013487B1 (fr) |
WO (1) | WO2015071457A1 (fr) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9766074B2 (en) * | 2008-03-28 | 2017-09-19 | Regents Of The University Of Minnesota | Vision-aided inertial navigation |
FR3013488B1 (fr) | 2013-11-18 | 2017-04-21 | Univ De Nice (Uns) | Procede d'estimation de la vitesse de deplacement d'une camera |
US9727967B2 (en) * | 2014-06-23 | 2017-08-08 | Samsung Electronics Co., Ltd. | Methods for determining estimated depth in an image and systems thereof |
EP3451288A1 (fr) * | 2017-09-04 | 2019-03-06 | Universität Zürich | Odométrie visuelle-inertielle avec caméra pour événements |
US11783707B2 (en) | 2018-10-09 | 2023-10-10 | Ford Global Technologies, Llc | Vehicle path planning |
KR102559686B1 (ko) * | 2018-12-17 | 2023-07-27 | 현대자동차주식회사 | 차량 및 차량 영상 제어방법 |
US20200226787A1 (en) * | 2019-01-14 | 2020-07-16 | Sony Corporation | Information processing apparatus, information processing method, and program |
US10399227B1 (en) | 2019-03-29 | 2019-09-03 | Mujin, Inc. | Method and control system for verifying and updating camera calibration for robot control |
US10906184B2 (en) | 2019-03-29 | 2021-02-02 | Mujin, Inc. | Method and control system for verifying and updating camera calibration for robot control |
US11460851B2 (en) | 2019-05-24 | 2022-10-04 | Ford Global Technologies, Llc | Eccentricity image fusion |
US11521494B2 (en) | 2019-06-11 | 2022-12-06 | Ford Global Technologies, Llc | Vehicle eccentricity mapping |
US11662741B2 (en) | 2019-06-28 | 2023-05-30 | Ford Global Technologies, Llc | Vehicle visual odometry |
US11610330B2 (en) | 2019-10-08 | 2023-03-21 | Samsung Electronics Co., Ltd. | Method and apparatus with pose tracking |
CN110782492B (zh) * | 2019-10-08 | 2023-03-28 | 三星(中国)半导体有限公司 | 位姿跟踪方法及装置 |
US11599974B2 (en) * | 2019-11-22 | 2023-03-07 | Nec Corporation | Joint rolling shutter correction and image deblurring |
CN111583305B (zh) * | 2020-05-11 | 2022-06-21 | 北京市商汤科技开发有限公司 | 神经网络训练及运动轨迹确定方法、装置、设备和介质 |
CN114034288B (zh) * | 2021-09-14 | 2022-11-08 | 中国海洋大学 | 海底微地形激光线扫描三维探测方法及系统 |
US12046047B2 (en) | 2021-12-07 | 2024-07-23 | Ford Global Technologies, Llc | Object detection |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4844305B2 (ja) | 2005-09-12 | 2011-12-28 | 日本ビクター株式会社 | 撮像装置 |
JP4961800B2 (ja) | 2006-03-31 | 2012-06-27 | ソニー株式会社 | 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム |
US8068140B2 (en) | 2006-08-07 | 2011-11-29 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Still image stabilization suitable for compact camera environments |
US9565419B2 (en) | 2007-04-13 | 2017-02-07 | Ari M. Presler | Digital camera system for recording, editing and visualizing images |
US8698908B2 (en) | 2008-02-11 | 2014-04-15 | Nvidia Corporation | Efficient method for reducing noise and blur in a composite still image from a rolling shutter camera |
JP4666012B2 (ja) | 2008-06-20 | 2011-04-06 | ソニー株式会社 | 画像処理装置、画像処理方法、プログラム |
US9100514B2 (en) | 2009-10-28 | 2015-08-04 | The Trustees Of Columbia University In The City Of New York | Methods and systems for coded rolling shutter |
JP2011103631A (ja) | 2009-11-12 | 2011-05-26 | Nikon Corp | デジタルカメラ |
US8401242B2 (en) | 2011-01-31 | 2013-03-19 | Microsoft Corporation | Real-time camera tracking using depth maps |
JP5734082B2 (ja) | 2011-05-11 | 2015-06-10 | キヤノン株式会社 | 撮像装置及びその制御方法、並びにプログラム |
US9542611B1 (en) * | 2011-08-11 | 2017-01-10 | Harmonic, Inc. | Logo detection for macroblock-based video processing |
US8970709B2 (en) | 2013-03-13 | 2015-03-03 | Electronic Scripting Products, Inc. | Reduced homography for recovery of pose parameters of an optical apparatus producing image data with structural uncertainty |
-
2013
- 2013-11-18 FR FR1361305A patent/FR3013487B1/fr active Active
-
2014
- 2014-11-17 WO PCT/EP2014/074762 patent/WO2015071457A1/fr active Application Filing
- 2014-11-17 US US15/037,597 patent/US9940725B2/en not_active Expired - Fee Related
- 2014-11-17 EP EP14799446.1A patent/EP3072108A1/fr not_active Withdrawn
-
2018
- 2018-04-09 US US15/949,015 patent/US10636151B2/en active Active
Non-Patent Citations (2)
Title |
---|
MAXIME MEILLAND ET AL: "A Unified Rolling Shutter and Motion Blur Model for 3D Visual Registration, OpenAccess version", 9 November 2013 (2013-11-09), pages 2016 - 2023, XP055129443, ISBN: 978-1-47-992840-8, Retrieved from the Internet <URL:http://www.cv-foundation.org/openaccess/content_iccv_2013/papers/Meilland_A_Unified_Rolling_2013_ICCV_paper.pdf> [retrieved on 20140716], DOI: 10.1109/ICCV.2013.252 * |
See also references of EP3072108A1 * |
Also Published As
Publication number | Publication date |
---|---|
FR3013487A1 (fr) | 2015-05-22 |
US10636151B2 (en) | 2020-04-28 |
US20160292882A1 (en) | 2016-10-06 |
US9940725B2 (en) | 2018-04-10 |
US20180308240A1 (en) | 2018-10-25 |
FR3013487B1 (fr) | 2017-04-21 |
EP3072108A1 (fr) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3072108A1 (fr) | Procede d'estimation de la vitesse de deplacement d'une camera | |
EP3072109A1 (fr) | Procede d'estimation de la vitesse de deplacement d'une camera | |
EP0863413B1 (fr) | Procédé et dispositif de localisation d'un objet dans l'espace | |
EP2715662B1 (fr) | Procede de localisation d'une camera et de reconstruction 3d dans un environnement partiellement connu | |
EP2428934B1 (fr) | Procédé d'estimation du mouvement d'un porteur par rapport à un environnement et dispositif de calcul pour système de navigation | |
EP3144881A1 (fr) | Procede de mosaiquage 3d panoramique d'une scene | |
US10679376B2 (en) | Determining a pose of a handheld object | |
EP2766872A1 (fr) | Procede d'etalonnage d'un systeme de vision par ordinateur embarque sur un mobile | |
CN112648994B (zh) | 基于深度视觉里程计和imu的相机位姿估计方法及装置 | |
EP3200153B1 (fr) | Procédé de détection de cibles au sol et en mouvement dans un flux vidéo acquis par une caméra aéroportée | |
EP3435332A1 (fr) | Dispositif électronique et procédé de génération, à partir d'au moins une paire d'images successives d'une scène, d'une carte de profondeur de la scène, drone et programme d'ordinateur associés | |
EP3355277A1 (fr) | Procédé d'affichage sur un écran d'au moins une représentation d'un objet, programme d'ordinateur, dispositif et appareil électroniques d'affichage associés | |
WO2005010820A2 (fr) | Procede et dispositif automatise de perception avec determination et caracterisation de bords et de frontieres d'objets d'un espace, construction de contours et applications | |
CN112116068A (zh) | 一种环视图像拼接方法、设备及介质 | |
CN112766135A (zh) | 目标检测方法、装置、电子设备和存储介质 | |
WO2015110762A1 (fr) | Procédé de détermination de la trajectoire d'un point d'un objet mobile | |
FR2729236A1 (fr) | Guidage de robot par eclairage actif | |
EP2994813B1 (fr) | Procede de commande d'une interface graphique pour afficher des images d'un objet tridimensionnel | |
EP2856424A1 (fr) | Procede de mesures tridimensionnelles par stereo-correlation utilisant une representation parametrique de l'objet mesure | |
EP2943935B1 (fr) | Estimation de mouvement d'une image | |
FR3065097B1 (fr) | Procede automatise de reconnaissance d'un objet | |
WO2021009431A1 (fr) | Procede de determination de parametres d'etalonnage extrinseques d'un systeme de mesure | |
WO2018229358A1 (fr) | Procédé et dispositif de construction d'une image tridimensionnelle | |
EP4341897B1 (fr) | Procédé et dispositif de traitement d'une séquence d'images pour la détermination de vignettes poursuivies dans ladite séquence d'images | |
FR3052287B1 (fr) | Construction d'une image tridimensionnelle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14799446 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2014799446 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2014799446 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15037597 Country of ref document: US |