IP Library Granted Patent US 10,432,728
Granted Patent B2
US 10,432,728 · App. 15/898,182 · Granted Oct 1, 2019

Automatic image sharing with designated users over a communication network

Inventors: Frank Dachille (Mountain View, CA); Anil Sabharwal (Rozelle, AU); Kedar Kanitkar (Mountain View, CA); James Gallagher (Sunnyvale, CA); Timothy Novikoff (Mountain View, CA); David Lieb (San Francisco, CA)
Assignee: Google LLC
H04L67/1097G06F3/04842G06F16/583G06F21/32G06F21/6245G06Q50/01H04L67/42
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 10,432,728
App. No.
15/898,182
Granted
Oct 1, 2019
Kind
B2
Abstract

Implementations relate to automatic sharing of images with designated users over a communication network. In some implementations, a method includes causing display of images in a user interface on a first device, each of the images depicting a different person. The images are obtained from a library of images associated with a first user. A selection of a particular image of the images is received based on user input, and a person identifier is determined indicating a particular person depicted in the selected image. The person identifier is designated as a person sharing criterion. A first image not included in the images is obtained and programmatically analyzed to determine that the first image depicts a person that matches the person sharing criterion, and an access permission is updated to grant access to the first image to a second user of a second device over a communication network.

Claims (73)

1. A computer-implemented method comprising:

causing display of a plurality of images in a user interface on a first device to a first user, wherein each of the plurality of images depicts a different person, wherein the plurality of images are obtained from a library of images associated with the first user;

receiving a selection of a particular image of the plurality of images based on first user input received by the first device;

determining a person identifier indicating a particular person depicted in the selected particular image, wherein the person identifier is designated as a person sharing criterion;

obtaining a first image associated with the first user, wherein the first image is obtained from the library of images associated with the first user, wherein the first image is not included in the plurality of images;

programmatically analyzing the first image to determine that the first image depicts a person that matches the person sharing criterion;

in response to the determination that the first image depicts the person that matches the person sharing criterion:

initiating a delay period associated with the first user for the first image;

assigning a status indicator to the first image, wherein the status indicator indicates a first status that the first image is to be shared with a second user;

determining whether second user input from the first user is received at the first device during the delay period, the second user input indicating that the first image is not to be shared with the second user; and

if it is determined that the second user input is received, updating the status indicator to a second status that indicates the first image is not to be shared with the second user; and

based on the determination that the first image depicts the person that matches the person sharing criterion, and in response to an expiration of the delay period and the status indicator indicating the first status, updating an access permission for the first image of the library of images associated with the first user to grant access to the first image to the second user of a second device over a communication network.

2. The computer-implemented method of claim 1 , wherein the person sharing criterion includes a face criterion that specifies a particular face identity, and wherein programmatically analyzing the first image comprises:

applying an image classifier to determine that the first image depicts a face of the particular face identity, wherein applying the image classifier is based on pixel values of the pixels of the first image.

3. The computer-implemented method of claim 1 , wherein updating the access permission for the first image is based on a confidence level of determining that the first image depicts the person that matches the person sharing criterion, wherein the confidence level meets a first threshold.

4. The computer-implemented method of claim 3 , further comprising:

checking whether the confidence level does not meet the first threshold and meets a second threshold that indicates a lesser confidence that the first image depicts the person that matches the person sharing criterion; and

in response to determining that the confidence level meets the second threshold, causing the first image to be displayed for selection by user input to the first device from the first user to update the access permission for the first image to grant access to the second user.

5. The computer-implemented method of claim 1 , wherein updating the access permission of the first image comprises automatically adding the first image to an image library of the second user.

6. The computer-implemented method of claim 1 , wherein image data of the first image is stored on a server device in communication with the first device over the communication network, and wherein a first data pointer referring to the image data of the first image is stored on the first device, wherein updating the access permission of the first image includes sending a second data pointer referring to the image data of the first image to the second device over the communication network.

7. The computer-implemented method of claim 1 , wherein programmatically analyzing the first image includes determining whether the first image meets one or more additional sharing criteria.

8. The computer-implemented method of claim 7 , wherein the one or more additional sharing criteria include an image feature criterion that specifies an image content feature, and wherein programmatically analyzing the first image comprises:

applying an image classifier to determine a feature vector that includes a plurality of content features of the first image, wherein the feature vector is based on pixel values of the first image; and

comparing the feature vector with the image feature criterion to determine whether the first image matches the image feature criterion.

9. The computer-implemented method of claim 7 , wherein the one or more additional sharing criteria include a time criterion, and wherein programmatically analyzing the first image comprises:

determining a creation time for the first image based on timestamp metadata associated with the first image; and

comparing the creation time with the time criterion to determine whether the first image matches the time criterion.

10. The computer-implemented method of claim 7 , wherein the one or more additional sharing criteria include a location criterion, wherein the location criterion specifies a particular location, and wherein programmatically analyzing the first image comprises:

determining a location associated with the first image based on one or more of: location metadata associated with the first image and a content feature detected as depicted in one or more pixels of the first image; and

comparing the location associated with the first image with the location criterion to determine whether the first image matches the particular location.

11. A system comprising:

a storage device; and

at least one processor configured to access the storage device and configured to perform operations comprising:

causing display of a plurality of images in a user interface on a first device to a first user, wherein each of the plurality of images depicts a different person, wherein the plurality of images are obtained from a library of images associated with the first user;

receiving a selection of a particular image of the plurality of images based on first user input received by the first device;

determining a person identifier indicating a particular person depicted in the selected particular image, wherein the person identifier is designated as a person sharing criterion;

obtaining a first image associated with the first user, wherein the first image is provided in the library of images associated with the first user, wherein the first image is not included in the library of images;

programmatically analyzing the first image to determine that the first image depicts a person that matches the person sharing criterion;

in response to the determination that the first image depicts the person that matches the person sharing criterion:

initiating a delay period associated with the first user for the first image;

assigning a status indicator to the first image, wherein the status indicator indicates a first status that the first image is to be shared with a second user;

determining whether second user input from the first user is received at the first device during the delay period, the second user input indicating that the first image is not to be shared with the second user; and

if it is determined that the second user input is received, updating the status indicator to a second status that indicates the first image is not to be shared with the second user; and

based on the determination that the first image depicts the person that matches the person sharing criterion, and in response to an expiration of the delay period and the status indicator indicating the first status, updating an access permission for the first image in the library of images associated with the first user to grant access to the first image to the second user of a second device over a communication network.

12. The system of claim 11 , wherein the person sharing criterion includes a face criterion that specifies a particular face identity, and wherein the operation of programmatically analyzing the first image comprises:

applying an image classifier to determine that the first image depicts a face of the particular face identity, wherein applying the image classifier is based on pixel values of the pixels of the first image.

13. The system of claim 11 , wherein the operation of updating the access permission for the first image is based on a confidence level of determining that the first image depicts the person that matches the person sharing criterion, wherein the confidence level meets a first threshold.

14. The system of claim 13 , wherein the operations further comprise:

checking whether the confidence level does not meet the first threshold and meets a second threshold that indicates a lesser confidence that the first image depicts the person that matches the person sharing criterion; and

in response to determining that the confidence level meets the second threshold, causing the first image to be displayed for selection by user input to the first device from the first user to update the access permission for the first image to grant access to the second user.

15. The system of claim 11 , wherein the operation of updating the access permission of the first image comprises automatically adding the first image to an image library of the second user.

16. The system of claim 11 , wherein image data of the first image is stored on a server device in communication with the first device over the communication network, and wherein a first data pointer referring to the image data of the first image is stored on the first device, wherein the operation of updating the access permission of the first image includes sending a second data pointer referring to the image data of the first image to the second device over the communication network.

17. The system of claim 11 , wherein the operation of programmatically analyzing the first image includes determining whether the first image meets one or more additional sharing criteria, wherein the one or more additional sharing criteria include an image feature criterion that specifies an image content feature, and wherein the operation of programmatically analyzing the first image comprises:

applying an image classifier to determine a feature vector that includes a plurality of content features of the first image, wherein the feature vector is based on pixel values of the first image; and

comparing the feature vector with the image feature criterion to determine whether the first image matches the image feature criterion.

18. The system of claim 11 , wherein the operation of programmatically analyzing the first image includes determining whether the first image meets one or more additional sharing criteria, wherein the one or more additional sharing criteria include a time criterion, and wherein programmatically analyzing the first image comprises:

determining a creation time for the first image based on timestamp metadata associated with the first image; and

comparing the creation time with the time criterion to determine whether the first image matches the time criterion.

19. The system of claim 11 , wherein the operation of programmatically analyzing the first image includes determining whether the first image meets one or more additional sharing criteria, wherein the one or more additional sharing criteria include a location criterion, wherein the location criterion specifies a particular location, and wherein programmatically analyzing the first image comprises:

determining a location associated with the first image based on one or more of: location metadata associated with the first image and a content feature detected as depicted in one or more pixels of the first image; and

comparing the location associated with the first image with the location criterion to determine whether the first image matches the particular location.

20. A non-transitory computer readable medium having stored thereon software instructions that, when executed by at least one processor, cause the at least one processor to perform operations including:

causing display of a plurality of images in a user interface on a first device to a first user, wherein each of the plurality of images depicts a different person, wherein the plurality of images are obtained from a library of images associated with the first user;

receiving a selection of a particular image of the plurality of images based on first user input received by the first device;

determining a person identifier indicating a particular person depicted in the selected particular image, wherein the person identifier is designated as a person sharing criterion;

obtaining a first image associated with the first user, wherein the first image is obtained from the library of images associated with the first user, wherein the first image is not included in the plurality of images;

programmatically analyzing the first image to determine that the first image depicts a person that matches the person sharing criterion;

in response to the determination that the first image depicts the person that matches the person sharing criterion:

initiating a delay period associated with the first user for the first image;

assigning a status indicator to the first image, wherein the status indicator indicates a first status that the first image is to be shared with a second user;

determining whether second user input from the first user is received at the first device during the delay period, the second user input indicating that the first image is not to be shared with the second user; and

if it is determined that the second user input is received, updating the status indicator to a second status that indicates the first image is not to be shared with the second user; and

based on the determination that the first image depicts the person that matches the person sharing criterion, and in response to an expiration of the delay period and the status indicator indicating the first status, updating an access permission for the first image of the library of images associated with the first user to grant access to the first image to the second user of a second device over a communication network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2018
From: DACHILLE, FRANK; SABHARWAL, ANIL; KANITKAR, KEDAR; GALLAGHER, JAMES; NOVIKOFF, TIMOTHY; LIEB, DAVID
To: GOOGLE LLC
Reel/Frame 044956/0196 →
Continuity (2)
Provisional Application 62507756 · May 17, 2017
Related Publication 20180337994A1 · Nov 22, 2018
Cited By (2)
US 12,284,409 US 12,411,926