System and method for infinite smoothing of image sequences
First Claim
1. A method for interpolating images of an object, the method including:
- obtaining a sequence of images using a camera, the sequence of images being captured along a translation, wherein each image in the sequence of images contains at least a portion of overlapping subject matter, the subject matter including an object;
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;
computing, using a predetermined algorithm, a plurality of transformations, wherein each transformation is computed using two randomly sampled keypoint correspondences, wherein each keypoint correspondence includes a keypoint on the first image and a corresponding keypoint on the second image;
determining an optimal subset of transformations from the plurality of transformations based on predetermined criteria, wherein determining the optimal subset of transformations includes selecting an optimal transformation candidate for each pixel of the first image, wherein selecting an optimal transformation candidate for each pixel is processed as a separate thread of a graphics processing unit (GPU) such that the processing time for each pixel is bounded by O(1) rather than O(n), wherein the plurality of transformations includes a subset of transformation candidates, wherein determining the optimal subset of transformations includes applying each transformation candidate in the subset of transformation candidates to each pixel in the first image, thereby generating a plurality of first interpolated pixel candidates, and to a corresponding pixel in the second image, thereby generating a plurality of second interpolated pixel candidates, and then comparing the plurality of first interpolated pixel candidates to the corresponding plurality of second interpolated pixel candidates to select an optimal transformation candidate having the smallest corresponding pixel candidate difference;
calculating transformation parameters corresponding to the optimal subset of transformations; and
storing the transformation parameters for on-the-fly interpolation.
1 Assignment
0 Petitions
Accused Products
Abstract
Various embodiments of the present invention relate generally to systems and processes for interpolating images of an object. 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 plurality of transformations are computed using two randomly sampled keypoint correspondences, each of which includes a keypoint on the first image and a corresponding keypoint on the second image. An optimal subset of transformations is determined from the plurality of transformations based on predetermined criteria, and transformation parameters corresponding to the optimal subset of transformations is calculated and stored for on-the-fly interpolation.
-
Citations
20 Claims
-
1. A method for interpolating images of an object, the method including:
-
obtaining a sequence of images using a camera, the sequence of images being captured along a translation, wherein each image in the sequence of images contains at least a portion of overlapping subject matter, the subject matter including an object; 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; computing, using a predetermined algorithm, a plurality of transformations, wherein each transformation is computed using two randomly sampled keypoint correspondences, wherein each keypoint correspondence includes a keypoint on the first image and a corresponding keypoint on the second image; determining an optimal subset of transformations from the plurality of transformations based on predetermined criteria, wherein determining the optimal subset of transformations includes selecting an optimal transformation candidate for each pixel of the first image, wherein selecting an optimal transformation candidate for each pixel is processed as a separate thread of a graphics processing unit (GPU) such that the processing time for each pixel is bounded by O(1) rather than O(n), wherein the plurality of transformations includes a subset of transformation candidates, wherein determining the optimal subset of transformations includes applying each transformation candidate in the subset of transformation candidates to each pixel in the first image, thereby generating a plurality of first interpolated pixel candidates, and to a corresponding pixel in the second image, thereby generating a plurality of second interpolated pixel candidates, and then comparing the plurality of first interpolated pixel candidates to the corresponding plurality of second interpolated pixel candidates to select an optimal transformation candidate having the smallest corresponding pixel candidate difference; calculating transformation parameters corresponding to the optimal subset of transformations; and storing the transformation parameters for on-the-fly interpolation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for interpolating images of an object, the system comprising:
-
a camera for obtaining a sequence of images, 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 the object; a processor; and memory storing one or more programs configured for execution by the process, the one or more programs comprising instructions for; obtaining a sequence of images using a camera, the sequence of images being captured along a translation, wherein each image in the sequence of images contains at least a portion of overlapping subject matter, the subject matter including an object; 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; computing, using a predetermined algorithm, a plurality of transformations, wherein each transformation is computed using two randomly sampled keypoint correspondences, wherein each keypoint correspondence includes a keypoint on the first image and a corresponding keypoint on the second image; determining an optimal subset of transformations from the plurality of transformations based on predetermined criteria, wherein determining the optimal subset of transformations includes selecting an optimal transformation candidate for each pixel of the first image, wherein selecting an optimal transformation candidate for each pixel is processed as a separate thread of a graphics processing unit (GPU) such that the processing time for each pixel is bounded by O(1) rather than O(n), wherein the plurality of transformations includes a subset of transformation candidates, wherein determining the optimal subset of transformations includes applying each transformation candidate in the subset of transformation candidates to each pixel in the first image, thereby generating a plurality of first interpolated pixel candidates, and to a corresponding pixel in the second image, thereby generating a plurality of second interpolated pixel candidates, and then comparing the plurality of first interpolated pixel candidates to the corresponding plurality of second interpolated pixel candidates to select an optimal transformation candidate having the smallest corresponding pixel candidate difference; calculating transformation parameters corresponding to the optimal subset of transformations; and storing the transformation parameters for on-the-fly interpolation. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. 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 translation, wherein each image in the sequence of images contains at least a portion of overlapping subject matter, the subject matter including an object; 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; computing, using a predetermined algorithm, a plurality of transformations, wherein each transformation is computed using two randomly sampled keypoint correspondences, wherein each keypoint correspondence includes a keypoint on the first image and a corresponding keypoint on the second image; determining an optimal subset of transformations from the plurality of transformations based on predetermined criteria, wherein determining the optimal subset of transformations includes selecting an optimal transformation candidate for each pixel of the first image, wherein selecting an optimal transformation candidate for each pixel is processed as a separate thread of a graphics processing unit (GPU) such that the processing time for each pixel is bounded by O(1) rather than O(n), wherein the plurality of transformations includes a subset of transformation candidates, wherein determining the optimal subset of transformations includes applying each transformation candidate in the subset of transformation candidates to each pixel in the first image, thereby generating a plurality of first interpolated pixel candidates, and to a corresponding pixel in the second image, thereby generating a plurality of second interpolated pixel candidates, and then comparing the plurality of first interpolated pixel candidates to the corresponding plurality of second interpolated pixel candidates to select an optimal transformation candidate having the smallest corresponding pixel candidate difference; calculating transformation parameters corresponding to the optimal subset of transformations; and storing the transformation parameters for on-the-fly interpolation.
-
Specification