Stabilizing image sequences based on camera rotation and focal length parameters
First Claim
1. A method for image sequence stabilization, the method including:
- moving a mobile device through space in a locally convex or locally concave motion;
obtaining a sequence of images using a camera on the mobile device, the sequence of images being captured along a camera translation, wherein each image in the sequence of images contains at least a portion of overlapping subject matter, the subject matter including an object; and
stabilizing, via a processor, each image in the sequence of images using an optimal image warp based on an optimal camera rotation value and an optimal focal length value, wherein the stabilizing includes;
identifying a plurality of keypoints on a first image of the sequence of images;
keeping track of each keypoint from the first image to a second image;
calculating, using a predetermined algorithm, a camera rotation value and a focal length value from two randomly sampled keypoints on the first image and two corresponding keypoints on the second image;
calculating a plurality of transformations between the first image and the second image;
determining an optimal transformation from the plurality of transformations for producing the optimal image warp, wherein determining the optimal transformation involves sequentially testing transformations of the plurality of transformations by
1) determining if a current transformation results in the largest inlier group of keypoints compared to a previously selected transformation and
2) next, determining if the current transformation resulting in the largest inlier group of keypoints also results in the lowest image intensity difference between the first image and the second image compared to the previously selected transformation,wherein if the current transformation does not result in a larger inlier group of keypoints than the previously selected transformation, the current transformation is not tested for image intensity difference,wherein if the current transformation results in a larger inlier group of keypoints than the previously selected transformation and results in a higher image intensity difference, the previously selected transformation is discarded and the current transformation replaces the selected transformation for the next sequential test, and otherwise the current transformation is discarded,wherein inlier keypoints are determined by calculating a pixel distance between a transformed keypoint of the first image and a corresponding keypoint on the second image, wherein a transformed keypoint is labeled an inlier if the pixel distance calculated is less than a pixel distance threshold, wherein the pixel distance threshold is a function of image resolution of the first and second images,wherein image intensity difference is determined by;
1) applying a transformation to every pixel in the first image to warp the first image onto the second image,
2) calculating an error or difference for each color channel between each corresponding pixel in the first and second image,
3) deriving an average error of the RGB value of all color channels for each pixel, and
4) calculating the average error for all pixels within the first and second image, wherein image intensity difference between the first and second image is a value between 0 and 255;
determining the optimal camera rotation and focal length pair corresponding to the optimal transformation for producing the optimal image warp for image sequence stabilization;
constructing the optimal image warp for image sequence stabilization using the optimal camera and focal length pair; and
applying the optimal image warp to the sequence of images by composing optimal transformations into a trajectory, wherein the trajectory is smoothed into a polynomial or linear model.
1 Assignment
0 Petitions
Accused Products
Abstract
The present disclosure describes systems and processes for image sequence stabilization. According to particular embodiments, a sequence of images is obtained using a camera which captures the sequence of images along a camera translation. Each image contains at least a portion of overlapping subject matter. A plurality of keypoints is identified on a first image of the sequence of images. Each keypoint from the first image are kept track of to a second image. Using a predetermined algorithm, a camera rotation value and a focal length value are calculated from two randomly sampled keypoints on the first image and two corresponding keypoints on the second image. An optimal camera rotation and focal length pair corresponding to an optimal transformation for producing an image warp for image sequence stabilization is determined. The image warp for image sequence stabilization is constructed using the optimal camera and focal length pair.
38 Citations
20 Claims
-
1. A method for image sequence stabilization, the method including:
-
moving a mobile device through space in a locally convex or locally concave motion; obtaining a sequence of images using a camera on the mobile device, the sequence of images being captured along a camera translation, wherein each image in the sequence of images contains at least a portion of overlapping subject matter, the subject matter including an object; and stabilizing, via a processor, each image in the sequence of images using an optimal image warp based on an optimal camera rotation value and an optimal focal length value, wherein the stabilizing includes; identifying a plurality of keypoints on a first image of the sequence of images; keeping track of each keypoint from the first image to a second image; calculating, using a predetermined algorithm, a camera rotation value and a focal length value from two randomly sampled keypoints on the first image and two corresponding keypoints on the second image; calculating a plurality of transformations between the first image and the second image; determining an optimal transformation from the plurality of transformations for producing the optimal image warp, wherein determining the optimal transformation involves sequentially testing transformations of the plurality of transformations by
1) determining if a current transformation results in the largest inlier group of keypoints compared to a previously selected transformation and
2) next, determining if the current transformation resulting in the largest inlier group of keypoints also results in the lowest image intensity difference between the first image and the second image compared to the previously selected transformation,wherein if the current transformation does not result in a larger inlier group of keypoints than the previously selected transformation, the current transformation is not tested for image intensity difference, wherein if the current transformation results in a larger inlier group of keypoints than the previously selected transformation and results in a higher image intensity difference, the previously selected transformation is discarded and the current transformation replaces the selected transformation for the next sequential test, and otherwise the current transformation is discarded, wherein inlier keypoints are determined by calculating a pixel distance between a transformed keypoint of the first image and a corresponding keypoint on the second image, wherein a transformed keypoint is labeled an inlier if the pixel distance calculated is less than a pixel distance threshold, wherein the pixel distance threshold is a function of image resolution of the first and second images, wherein image intensity difference is determined by;
1) applying a transformation to every pixel in the first image to warp the first image onto the second image,
2) calculating an error or difference for each color channel between each corresponding pixel in the first and second image,
3) deriving an average error of the RGB value of all color channels for each pixel, and
4) calculating the average error for all pixels within the first and second image, wherein image intensity difference between the first and second image is a value between 0 and 255;determining the optimal camera rotation and focal length pair corresponding to the optimal transformation for producing the optimal image warp for image sequence stabilization; constructing the optimal image warp for image sequence stabilization using the optimal camera and focal length pair; and applying the optimal image warp to the sequence of images by composing optimal transformations into a trajectory, wherein the trajectory is smoothed into a polynomial or linear model. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for image sequence stabilization, the system comprising:
-
a camera, a processor, and memory storing one or more programs configured for execution by the processor, the one or more programs comprising instructions for; obtaining a sequence of images using a camera, the sequence of images being captured along a camera translation, wherein each image in the sequence of images contains at least a portion of overlapping subject matter, the subject matter including an object, the sequence of images being obtained via moving a mobile device through space in a locally convex or locally concave motion; and stabilizing each image in the sequence of images using an optimal image warp based on an optimal camera rotation value and an optimal focal length value, wherein the stabilizing includes; identifying a plurality of keypoints on a first image of the sequence of images; keeping track of each keypoint from the first image to a second image; calculating, using a predetermined algorithm, a camera rotation value and a focal length value from two randomly sampled keypoints on the first image and two corresponding keypoints on the second image; calculating a plurality of transformations between the first image and the second image; determining an optimal transformation from the plurality of transformations for producing the optimal image warp, wherein determining the optimal transformation involves sequentially testing transformations of the plurality of transformations by
1) determining if a current transformation results in the largest inlier group of keypoints compared to a previously selected transformation and
2) next, determining if the current transformation resulting in the largest inlier group of keypoints also results in the lowest image intensity difference between the first image and the second image compared to the previously selected transformation,wherein if the current transformation does not result in a larger inlier group of keypoints than the previously selected transformation, the current transformation is not tested for image intensity difference,
wherein if the current transformation results in a larger inlier group of keypoints than the previously selected transformation and results in a higher image intensity difference, the previously selected transformation is discarded and the current transformation replaces the selected transformation for the next sequential test, and otherwise the current transformation is discarded,wherein inlier keypoints are determined by calculating a pixel distance between a transformed keypoint of the first image and a corresponding keypoint on the second image, wherein a transformed keypoint is labeled an inlier if the pixel distance calculated is less than a pixel distance threshold, wherein the pixel distance threshold is a function of image resolution of the first and second images, wherein image intensity difference is determined by;
1) applying a transformation to every pixel in the first image to warp the first image onto the second image,
2) calculating an error or difference for each color channel between each corresponding pixel in the first and second image,
3) deriving an average error of the RGB value of all color channels for each pixel, and
4) calculating the average error for all pixels within the first and second image, wherein image intensity difference between the first and second image is a value between 0 and 255;determining the optimal camera rotation and focal length pair corresponding to the optimal transformation for producing the optimal image warp for image sequence stabilization; constructing the optimal image warp for image sequence stabilization using the optimal camera and focal length pair; and applying the optimal image warp to the sequence of images by composing optimal transformations into a trajectory, wherein the trajectory is smoothed into a polynomial or linear model. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium storing one or more programs configured for execution by a computer, the one or more programs comprising instructions for:
-
obtaining a sequence of images using a camera, the sequence of images being captured along a camera translation, wherein each image in the sequence of images contains at least a portion of overlapping subject matter, the subject matter including an object, the sequence of images being obtained via moving a mobile device through space in a locally convex or locally concave motion; and stabilizing each image in the sequence of images using an optimal image warp based on an optimal camera rotation value and an optimal focal length value, wherein the stabilizing includes; identifying a plurality of keypoints on a first image of the sequence of images; keeping track of each keypoint from the first image to a second image; calculating, using a predetermined algorithm, a camera rotation value and a focal length value from two randomly sampled keypoints on the first image and two corresponding keypoints on the second image; calculating a plurality of transformations between the first image and the second image; determining an optimal transformation from the plurality of transformations for producing the optimal image warp, wherein determining the optimal transformation involves sequentially testing transformations of the plurality of transformations by
1) determining if a current transformation results in the largest inlier group of keypoints compared to a previously selected transformation and
2) next, determining if the current transformation resulting in the largest inlier group of keypoints also results in the lowest image intensity difference between the first image and the second image compared to the previously selected transformation,wherein if the current transformation does not result in a larger inlier group of keypoints than the previously selected transformation, the current transformation is not tested for image intensity difference, wherein if the current transformation results in a larger inlier group of keypoints than the previously selected transformation and results in a higher image intensity difference, the previously selected transformation is discarded and the current transformation replaces the selected transformation for the next sequential test, and otherwise the current transformation is discarded, wherein inlier keypoints are determined by calculating a pixel distance between a transformed keypoint of the first image and a corresponding keypoint on the second image, wherein a transformed keypoint is labeled an inlier if the pixel distance calculated is less than a pixel distance threshold, wherein the pixel distance threshold is a function of image resolution of the first and second images, wherein image intensity difference is determined by;
1) applying a transformation to every pixel in the first image to warp the first image onto the second image,
2) calculating an error or difference for each color channel between each corresponding pixel in the first and second image,
3) deriving an average error of the RGB value of all color channels for each pixel, and
4) calculating the average error for all pixels within the first and second image, wherein image intensity difference between the first and second image is a value between 0 and 255;determining the optimal camera rotation and focal length pair corresponding to the optimal transformation for producing the optimal image warp for image sequence stabilization; constructing the optimal image warp for image sequence stabilization using the optimal camera and focal length pair; and applying the optimal image warp to the sequence of images by composing optimal transformations into a trajectory, wherein the trajectory is smoothed into a polynomial or linear model. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification