Camera translation using rotation from device
AssigneeAutodesk, Inc.
InventorLuc Franck Robert
Life of this patent
Estimating the term…
Abstract
A method, apparatus, system, article of manufacture, and computer readable storage medium provides the ability to determine two or more camera viewpoint optical centers. A first image and a second image captured by camera devices (and the rotations for the camera devices) are obtained. For each pair of matched points between the first image and the second image, a linear equation is defined that utilizes the rotations, pixel coordinates of the matched points and optical centers. A matrix ATA is computed where each row of A corresponds to a pair of matched points and the number of columns is 3N (N representing the number of camera devices). The matrix is solved resulting in an eigenvector that holds the optical centers that are used to output image information.
Claims21
A computer-implemented method for determining two or more camera viewpoint optical centers comprising:
- (a) obtaining a first image and a second image captured by one or more camera devices;
- (b) obtaining a first rotation (R1) corresponding to one of the one or more camera devices that captured the first image and a second rotation (R2) corresponding to one of the one or more camera devices that captured the second image;
- (c) determining one or more pairs of matched points between the first image and the second image;
- (d) for each pair of matched points between the first image and the second image, defining a linear equation comprising:
- [(R1Tm1)×(R2Tm2)]T(OC2−OC1)=0
- wherein, OCi comprises an optical center of a camera device i, and mi comprises a 3-vector of pixel coordinates for the matched point in image i;
- (e) computing a square matrix A transpose A (ATA), wherein:
- (i) each row of A corresponds to one of the one or more pairs of matched points between the first image and the second image;
- and
- (ii) a number of columns of A comprises 3N, wherein N comprises a number of the one or more camera devices;
- (f) solving the matrix ATA to determine an eigenvector that holds the two or more camera viewpoint optical centers;
- and
- (g) outputting image information utilizing the two or more camera viewpoint optical centers.
An apparatus for determining two or more camera viewpoint optical centers in a computer system comprising:
- (a) a computer having a memory;
- and
- (b) an application executing on the computer, wherein the application is configured to:
- (i) obtain a first image and a second image captured by one or more camera devices;
- (ii) obtain a first rotation (R1) corresponding to one of the one or more camera devices that captured the first image and a second rotation (R2) corresponding to one of the one or more camera devices that captured the second image;
- (iii) determine one or more pairs of matched points between the first image and the second image;
- (iv) for each pair of matched points between the first image and the second image, define a linear equation comprising:
- [(R1Tm1)×(R2Tm2)]T(OC2−OC1)=0
- wherein, OCi comprises an optical center of a camera device i, and mi comprises a 3-vector of pixel coordinates for the matched point in image i;
- (v) compute a square matrix A transpose A (ATA), wherein:
- (1) each row of A corresponds to one of the one or more pairs of matched points between the first image and the second image;
- and
- (2) a number of columns of A comprises 3N, wherein N comprises a number of the one or more camera devices;
- and
- (vi) solve the matrix ATA to determine an eigenvector that holds the two or more camera viewpoint optical centers;
- and
- (vii) output image information utilizing the two or more camera viewpoint optical centers.
A non-transitory computer readable storage medium encoded with computer program instructions which when accessed by a computer cause the computer to load the program instructions to a memory therein creating a special purpose data structure causing the computer to operate as a specially programmed computer, executing a method of determining two or more camera viewpoint optical centers, comprising:
- (a) obtaining, in the specially programmed computer, a first image and a second image captured by one or more camera devices;
- (b) obtaining, in the specially programmed computer, a first rotation (R1) corresponding to one of the one or more camera devices that captured the first image and a second rotation (R2) corresponding to one of the one or more camera devices that captured the second image;
- (c) determining, in the specially programmed computer, one or more pairs of matched points between the first image and the second image;
- (d) for each pair of matched points between the first image and the second image, defining, in the specially programmed computer, a linear equation comprising:
- [(R1Tm1)×(R2Tm2)]T(OC2−OC1)=0
- wherein, OCi comprises an optical center of a camera device i, and mi comprises a 3-vector of pixel coordinates for the matched point in image i;
- (e) computing, in the specially programmed computer, a square matrix A transpose A (ATA), wherein:
- (i) each row of A corresponds to one of the one or more pairs of matched points between the first image and the second image;
- and
- (ii) a number of columns of A comprises 3N, wherein N comprises a number of the one or more camera devices;
- (f) solving, in the specially programmed computer, the matrix ATA to determine an eigenvector that holds the two or more camera viewpoint optical centers;
- and
- (g) outputting, in the specially programmed computer, image information utilizing the two or more camera viewpoint optical centers.
Dependencies are inferred from the claim text.