IP Library Granted Patent US 9,955,162
Granted Patent B2
US 9,955,162 · App. 14/674,390 · Granted Apr 24, 2018

Photo cluster detection and compression

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,955,162
App. No.
14/674,390
Granted
Apr 24, 2018
Kind
B2
Abstract

Apparatuses, methods, systems, and program products are disclosed for photo cluster detection and compression. An image module receives a set of images captured using a camera. A subset module determines a subset of the set of images based on a timestamp associated with each image of the set of images. The subset of images includes a plurality of images having a timestamp within a predefined time range. A compression module compresses the subset of images such that the compressed subset of images uses less storage space than the subset of images.

Claims (38)

1. An apparatus comprising:

a camera;

a processor operably coupled to the camera;

a memory that stores code executable by the processor, the code comprising:

code that receives a set of images captured using the camera;

code that determines a subset of the set of images based on a timestamp associated with each image of the set of images, the subset of images comprising a plurality of images having a timestamp within a predefined time range;

code that receives motion sensor data associated with each image of the subset of images, the motion sensor data describing a physical state of the camera when the image is captured;

code that determines, for each image in the subset of images, whether a correlation between an image's motion sensor data and a different image's motion sensor data satisfies a threshold correlation, the threshold correlation defining an amount of camera movement between each image that is acceptable to keep an image in the subset of images, a correlation between the image and one or more other images that satisfies the threshold correlation indicating the image and the one or more other images are related;

code that removes each image from the subset of images that has a correlation with one or more other images in the subset of images that is less than the threshold correlation, a correlation between the image and the one or more other images that is less than the threshold correlation indicating the image and the one or more other images are not related; and

code that compresses the remaining images in the subset of images such that the compressed subset of images uses less storage space than the subset of images.

2. The apparatus of claim 1 , further comprising code that determines a plurality of images of the subset of images that are related based on one or more features of the images, wherein an image not comprising substantially similar features as a different image is removed from the subset of images.

3. The apparatus of claim 1 , wherein the motion sensor data comprises data generated by a sensor at a time that an image is captured.

4. The apparatus of claim 3 , wherein the sensor is selected from the group consisting of an accelerometer and an orientation sensor.

5. The apparatus of claim 1 , wherein the motion sensor data for an image is stored as metadata with the image.

6. The apparatus of claim 1 , wherein the threshold correlation is 0.7.

7. The apparatus of claim 1 , further comprising code that determines a plurality of images of the subset of images that are related based on location data associated with each image of the subset of images, wherein an image is removed from the subset of images in response to a distance between its location and a location of a different image being greater than a threshold distance.

8. The apparatus of claim 1 , further comprising code that deletes images that are in the compressed subset of images from the set of images.

9. The apparatus of claim 1 , wherein the subset of images is compressed using a lossless compression method.

10. A method comprising:

receiving, by use of a processor, a set of images captured using a camera;

determining a subset of the set of images based on a timestamp associated with each image of the set of images, the subset of images comprising a plurality of images having a timestamp within a predefined time range; and

receiving motion sensor data associated with each image of the subset of images, the motion sensor data describing a physical state of the camera when the image is captured;

determining, for each image in the subset of images, whether a correlation between an image's motion sensor data and a different image's motion sensor data satisfies a threshold correlation, the threshold correlation defining an amount of camera movement between each image that is acceptable to keep an image in the subset of images, a correlation between the image and one or more other images that satisfies the threshold correlation indicating the image and the one or more other images are related;

removing each image from the subset of images that has a correlation with one or more other images in the subset of images that that is less than the threshold correlation, a correlation between the image and the one or more other images that is less than the threshold correlation indicating the image and the one or more other images are not related; and

compressing the remaining images in the subset of images such that the compressed subset of images uses less storage space than the subset of images.

11. The method of claim 10 , further comprising determining a plurality of images of the subset of images that are related based on one or more features of the images, wherein an image not comprising substantially similar features as a different image is removed from the subset of images.

12. The method of claim 10 , wherein the motion sensor data comprises data generated by a sensor at a time that an image is captured, the sensor being selected from the group consisting of an accelerometer and an orientation sensor.

13. The method of claim 10 , further comprising determining a plurality of images of the subset of images that are related based on location data associated with each image of the subset of images, wherein an image is removed from the subset of images in response to a distance between its location and a location of a different image being greater than a threshold distance.

14. The method of claim 10 , further comprising code that deletes images that are in the compressed subset of images from the set of images.

15. A program product comprising a non-transitory computer readable storage medium that stores code executable by a processor, the executable code comprising code to perform:

receiving a set of images captured using a camera;

determining a subset of the set of images based on a timestamp associated with each image of the set of images, the subset of images comprising a plurality of images having a timestamp within a predefined time range;

receiving motion sensor data associated with each image of the subset of images, the motion sensor data describing a physical state of the camera when the image is captured;

determining, for each image in the subset of images, whether a correlation between an image's motion sensor data and a different image's motion sensor data satisfies a threshold correlation, the threshold correlation defining an amount of camera movement between each image that is acceptable to keep an image in the subset of images, a correlation between the image and one or more other images that satisfies the threshold correlation indicating the image and the one or more other images are related;

removing each image from the subset of images that has a correlation with one or more other images in the subset of images that that is less than the threshold correlation, a correlation between the image and the one or more other images that is less than the threshold correlation indicating the image and the one or more other images are not related; and

compressing the remaining images in the subset of images such that the compressed subset of images uses less storage space than the subset of images.

16. The program product of claim 15 , the executable code further comprising code to perform determining a plurality of images of the subset of images that are related based on one or more features of the images, wherein an image not comprising substantially similar features as a different image is removed from the subset of images.

17. The program product of claim 15 , the executable code further comprising code to perform determining a plurality of images of the subset of images that are related based on location data associated with each image of the subset of images, wherein an image is removed from the subset of images in response to a distance between its location and a location of a different image being greater than a threshold distance.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO PC INTERNATIONAL LIMITED
To: LENOVO SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069870/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2019
From: LENOVO (SINGAPORE) PTE. LTD.
To: LENOVO PC INTERNATIONAL LIMITED
Reel/Frame 049693/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2015
From: LI, SCOTT WENTAO; GONZALEZ, MARCO ALBERTO; ZAITSEV, GRIGORI
To: LENOVO (SINGAPORE) PTE. LTD.
Reel/Frame 035302/0331 →