Estimation of panoramic camera orientation relative to a vehicle coordinate frame
First Claim
1. A method for estimating orientation of a camera mounted on a vehicle, comprising:
- determining, by at least one processor, an initial pose estimate of a vehicle having a camera mounted thereon, the initial pose estimate based on global positioning system data, inertial measurement unit data, and wheel odometry data of the vehicle, wherein a pose of the vehicle is defined as a position and orientation of the vehicle relative to the world;
obtaining images from one or more runs of image data captured by the camera, the images each having an orientation;
processing image data from the images to obtain one or more tracks, wherein each track includes a sequence of matched feature points stemming from a single three-dimensional location; and
determining from the initial pose estimate and tracks, a correction parameter to correct the orientations of the images captured by the camera,wherein the processing image data comprises;
extracting a set of feature points from the images of a given run of the one or more runs;
matching one or more of the feature points in successive images of the given run; and
grouping matched feature points into tracks,wherein the determining the correction parameter includes using a nonlinear function defined by;
F(P,X,R)=Σ
tΣ
iρ
((TPi,R(Xt)−
IXt))2+λ
Σ
i(Pi−
PESTi)2 whereinP=P1, P2, . . . , PN and represents a set of vehicle poses;
Pi represents a pose of the vehicle at time i;
X=X1, X2, . . . , XM and represents three-dimensional locations of track points in a scene;
Xt represents a three-dimensional location of a track t in the scene;
R represents the rotation of the camera;
ρ
denotes a robustifier function (e.g., a Cauchy robustifier);
T represents projection;
IXt represents a fixed location in a given image, where a feature corresponding to track point Xt was detected;
λ
represents a weight used to trade off strength of a first and a second term in F; and
PESTi represents an initial or a previous pose estimate of the vehicle, wherein the nonlinear function is used to optimize parameters P, X, and R, and wherein TPi,R(Xt)−
IXt represents reprojection error, and Pj−
PESTi represents pose error.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method are presented for estimating the orientation of a panoramic camera mounted on a vehicle relative to the vehicle coordinate frame. An initial pose estimate of the vehicle is determined based on global positioning system data, inertial measurement unit data, and wheel odometry data of the vehicle. Image data from images captured by the camera is processed to obtain one or more tracks, each track including a sequence of matched feature points stemming from a same three-dimensional location. A correction parameter determined from the initial pose estimate and tracks can then be used to correct the orientations of the images captured by the camera. The correction parameter can be optimized by deriving a correction parameter for each of a multitude of distinct subsequences of one or more runs. Statistical analysis can be performed on the determined correction parameters to produce robust estimates.
-
Citations
26 Claims
-
1. A method for estimating orientation of a camera mounted on a vehicle, comprising:
-
determining, by at least one processor, an initial pose estimate of a vehicle having a camera mounted thereon, the initial pose estimate based on global positioning system data, inertial measurement unit data, and wheel odometry data of the vehicle, wherein a pose of the vehicle is defined as a position and orientation of the vehicle relative to the world; obtaining images from one or more runs of image data captured by the camera, the images each having an orientation; processing image data from the images to obtain one or more tracks, wherein each track includes a sequence of matched feature points stemming from a single three-dimensional location; and determining from the initial pose estimate and tracks, a correction parameter to correct the orientations of the images captured by the camera, wherein the processing image data comprises; extracting a set of feature points from the images of a given run of the one or more runs; matching one or more of the feature points in successive images of the given run; and grouping matched feature points into tracks, wherein the determining the correction parameter includes using a nonlinear function defined by;
F(P,X,R)=Σ
tΣ
iρ
((TPi,R(Xt)−
IXt))2+λ
Σ
i(Pi−
PESTi)2wherein P=P1, P2, . . . , PN and represents a set of vehicle poses; Pi represents a pose of the vehicle at time i; X=X1, X2, . . . , XM and represents three-dimensional locations of track points in a scene; Xt represents a three-dimensional location of a track t in the scene; R represents the rotation of the camera; ρ
denotes a robustifier function (e.g., a Cauchy robustifier);T represents projection; IXt represents a fixed location in a given image, where a feature corresponding to track point Xt was detected; λ
represents a weight used to trade off strength of a first and a second term in F; andPESTi represents an initial or a previous pose estimate of the vehicle, wherein the nonlinear function is used to optimize parameters P, X, and R, and wherein TPi,R(Xt)−
IXt represents reprojection error, and Pj−
PESTi represents pose error.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
having a vehicle velocity that is within a given range.
-
-
14. The method of claim 1, further comprising:
-
determining the correction parameter for each of a multitude of distinct subsequences of a multitude of runs of the one or more runs; and performing statistical analysis on the determined correction parameters across the multitude of runs to determine an optimized correction parameter.
-
-
15. The method of claim 14, wherein the performing statistical analysis includes:
-
for each run of the multitude of runs, determining a first median of the correction parameters for each of the closest Z runs backward in time and determining a second median of the correction parameters for each of the closest Z runs forward in time; and choosing either the first or second median as the optimized correction parameter based on which of the first or second median is closest to the correction parameter determined for that run, wherein Z is a predetermined number.
-
-
16. A computer program product comprising a computer readable storage device having control logic stored therein for causing a computer to estimate orientation of a camera mounted on a vehicle, the control logic comprising:
-
a first computer readable program code that enables the computer to determine an initial pose estimate of a vehicle having a camera mounted thereon, the initial pose estimate based on global positioning system data, inertial measurement unit data, and wheel odometry data of the vehicle, wherein a pose of the vehicle is defined as a position and orientation of the vehicle relative to the world; a second computer readable program code that enables the computer to obtain images from one or more runs of image data captured by the camera, the images each having an orientation; a third computer readable program code that enables the computer to process image data from the images to obtain one or more tracks, wherein each track includes a sequence of matched feature points stemming from a single three-dimensional location; and a fourth computer readable program code that enables the computer to determine, from the initial pose estimate and tracks, a correction parameter to correct the orientations of the images captured by the camera, wherein the third computer readable program code that enable the computer to process image data to; extract a set of feature points from the images of a given run of the one or more runs; match one more of the feature points in successive images of the given run; and grouping matched feature points into tracks, wherein the fourth computer readable program code that enables the computer to determine the correction parameter using a nonlinear function defined by;
F(P,X,R)=Σ
tΣ
iρ
((TPi,R(Xt)−
IXt))2+λ
Σ
i(Pi−
PESTi)2wherein P=P1, P2, . . . , PN and represents a set of vehicle poses; Pi represents a pose of the vehicle at time i; X=X1, X2, . . . , XM and represents three-dimensional locations of track points in a scene; Xt represents a three-dimensional location of a track t in the scene; R represents the rotation of the camera; ρ
denotes a robustifier function (e.g., a Cauchy robustifier);T represents projection; IXt represents a fixed location in a given image, where a feature corresponding to track point Xt was detected; λ
represents a weight used to trade off strength of a first and a second term in F; andPESTi represents an initial or a previous pose estimate of the vehicle, and wherein the nonlinear function is used to optimize parameters P, X, and R and wherein TPi,R(Xt)−
IXt represents reprojection error, and Pj−
PESTi represents pose error.- View Dependent Claims (17, 18, 19, 20, 21)
match one or more of the feature points in successive images of the given run; and group matched feature points into tracks.
-
-
19. The computer program product of claim 18, wherein the fourth computer readable program code enables the computer to determine:
-
an optimized pose of the vehicle; a location of points of the trucks in three dimensions; and a camera to vehicle pose rotation.
-
-
20. The computer program product of claim 16, wherein the control logic further comprises:
a fifth computer readable program code that enables the computer to determine the correction parameter for each of a multitude of distinct subsequences of a selected run of the one or more runs; and perform statistical analysis on the determined correction parameters for different subsequences to determine an optimized correction parameter.
-
21. The computer program product of claim 16, wherein the control logic further comprises:
a fifth computer readable program code that enables the computer to determine the correction parameter for each of a multitude of distinct subsequences of a multitude of runs of the one or more runs; and perform statistical analysis on the determined correction parameters across the multitude of runs to determine an optimized correction parameter.
-
22. A system for estimating orientation of a camera mounted on a vehicle, comprising:
-
a computing device; a pose estimator, implemented on the computing device, that determines an initial pose estimate of the vehicle based on global positioning system data, inertial measurement unit data, and wheel odometry data of the vehicle, wherein a pose of the vehicle is defined as a position and orientation of the vehicle relative to the world; an image processor, implemented on the computing device, that processes image data from one or more runs of image data captured by a camera mounted on the vehicle, the images each having an orientation, to obtain one or more tracks, wherein each track includes a sequence of matched feature points stemming from a single three-dimensional location; and an optimizer, implemented on the computing device, in communication with the pose estimate module and the image processing module, that determines, from the initial pose estimate and tracks, a correction parameter to correct the orientations of the images, wherein the image processor processes the image data to; extract a set of feature points from the images of a given run of the one or more runs; match one or more of the feature points in successive images of the given run; and group matched feature points into tracks, wherein the optimizer determines the correction parameter using a nonlinear function defined by;
F(P,X,R)=Σ
tΣ
iρ
((TPi,R(Xt)−
IXt))2+λ
Σ
i(Pi−
PESTi)2wherein P=P1, P2, . . . , PN and represents a set of vehicle poses; Pi represents a pose of the vehicle at time i; X=X1, X2, . . . , XM and represents three-dimensional locations of track points in a scene; Xt represents a three-dimensional location of a track t in the scene; R represents the rotation of the camera; ρ
denotes a robustifier function (e.g., a Cauchy robustifier);T represents projection; IXt represents a fixed location in a given image, where a feature corresponding to track point Xt was detected; λ
represents a weight used to trade off strength of a first and a second term in F; andPESTi represents an initial or a previous pose estimate of the vehicle, and wherein the nonlinear function is used to optimize parameters P, X, and R and wherein TPi,R(Xt)−
IXt represents reprojection error, and Pj−
PESTi represents pose error.- View Dependent Claims (23)
-
-
24. A system for estimating orientation of a camera mounted on a vehicle, comprising:
-
one or more vehicle databases, implemented on the computing device, containing global positioning system data, inertial measurement unit data, and wheel odometry data of a vehicle; an image database of images, implemented on the computing device, and corresponding image data from one or more runs of image data captured by a camera mounted on the vehicle, the images each having an orientation; a pose estimate module, implemented on the computing device, in communication with the one or more vehicle databases, that determines an initial pose estimate of the vehicle based on the global positioning system data, the inertial measurement unit data, and the wheel odometry data of the vehicle, wherein a pose of the vehicle is defined as a position and orientation of the vehicle relative to the world; an image processing module, implemented on the computing device, in communication with the image database, that processes the image data to obtain one or more tracks, wherein each track includes a sequence of matched feature points stemming from a single three-dimensional location; and an optimizer module, implemented on the computing device, in communication with the pose estimate module and the image processing module, that determines, from the initial pose estimate and tracks, a correction parameter to correct the orientations of the images, wherein the image processing module processes the image data to; extract a set of feature points from the images of a given run of the one or more runs; match one or more of the feature points in successive images of the given run; and group matched feature points into tracks, wherein the optimizer module when determining the correction parameter uses a nonlinear function defined by;
F(P,X,R)=Σ
tΣ
iρ
((TPi,R(Xt)−
IXt))2+λ
Σ
i(Pi−
PESTi)2wherein P=P1, P2, . . . , PN and represents a set of vehicle poses; Pi represents a pose of the vehicle at time i; X=X1, X2, . . . , XM and represents three-dimensional locations of track points in a scene; Xt represents a three-dimensional location of a track t in the scene; R represents the rotation of the camera; ρ
denotes a robustifier function (e.g., a Cauchy robustifier);T represents projection; IXt represents a fixed location in a given image, where a feature corresponding to track point Xt was detected; λ
represents a weight used to trade off strength of a first and a second term in F; andPESTi represents an initial or a previous pose estimate of the vehicle, and wherein the nonlinear function is used to optimize parameters P, X, and R. - View Dependent Claims (25, 26)
-
Specification