IP Library Granted Patent US 10,311,611
Granted Patent B2
US 10,311,611 · App. 15/145,055 · Granted Jun 4, 2019

Aggregating tags in images

Inventors: Dirk John Stoop (Menlo Park, CA); Liu Liu (Mountain View, CA)
Assignee: Facebook, Inc.
G06T11/60G06F16/248G06F16/5866G06F16/9535G06Q50/01G06T3/40H04L43/045H04L51/32
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,311,611
App. No.
15/145,055
Granted
Jun 4, 2019
Kind
B2
Abstract

In one embodiment, a method includes rendering an image comprising a plurality of tags, wherein each tag is associated with a particular location within the image, and wherein at least two tags of the plurality of tags are aggregated into an aggregated tag, calculating for each tag the distance of the location of the tag from the location of every other tag of the image responsive to the first user changing a zoom level for the image, and updating the aggregated tag based on the calculated distance of the locations of the tags to each other such that if the change in zoom level is zooming in, then the updated aggregated tag is aggregated with at least one fewer tag, and if the change in zoom level is zooming out, then the updated aggregated tag is aggregated with at least one more tag.

Claims (68)

1. A method comprising, by a client system of a first user:

rendering, by the client system, an image comprising a plurality of tags, wherein each tag is associated with a particular location within the image and comprising a name string corresponding to the tag, and wherein at least two tags of the plurality of tags within a threshold distance of each other are aggregated into an aggregated tag, wherein the aggregated tag comprises at least one name string corresponding to one of the plurality of tags and a counter of the name strings corresponding to the other tags aggregated into the aggregated tag;

detecting, by the client system, an action of the first user changing a zoom level for the image;

responsive to the first user changing a zoom level for the image, calculating for each tag the distance of the location of the tag from the location of every other tag of the image; and

if the change in zoom level is zooming in, then updating the aggregated tag based on the calculated distance of the locations of the tags to each other, wherein the updated aggregated tag is aggregated with at least one fewer tag of the plurality of tags, and wherein the counter is correspondingly decremented by at least one; and

if the change in zoom level is zooming out, then updating the aggregated tag based on the calculated distance of the locations of the tags to each other, wherein the updated aggregated tag is aggregated with at least one more tag of the plurality of tags, and wherein the counter is correspondingly incremented by at least one.

2. The method of claim 1 , wherein the plurality of tags correspond to a plurality of users, respectively.

3. The method of claim 2 , further comprising:

accessing, from a social-networking system, a social-graph affinity for each user corresponding to a tag aggregated into the updated aggregated tag; and

rendering, by the client system, the image with a tag-label for the updated aggregated tag, wherein the tag-label comprises a name of the user having the strongest social-graph affinity with respect to the first user and a counter indicating a number of users corresponding to the updated aggregated tag.

4. The method of claim 3 , further comprising:

accessing a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges between two of the nodes representing a single degree of separation between them, the nodes comprising:

a first node corresponding to the first user; and

a plurality of second nodes corresponding to a plurality of objects associated with the social-networking system, respectively.

5. The method of claim 4 , wherein one or more users of the plurality of users corresponds to one or more second nodes, respectively.

6. The method of claim 5 , wherein the social-graph affinity for each user is based on a degree of separation between the second node corresponding to the user and the first node.

7. The method of claim 1 , wherein the plurality of tags correspond to a plurality of objects, respectively.

8. The method of claim 2 , wherein the plurality of users are users of an online social network.

9. The method of claim 2 , wherein the plurality of users are users of a communication network.

10. The method of claim 1 , further comprising rendering the image with a tag-label for each tag of the plurality of tags not associated with the updated aggregated tag.

11. The method of claim 1 , wherein updating the aggregated tag based on the calculated distance of the locations of the tags to each other comprises aggregating a set of tags into the updated aggregated tag if the calculated distance between each tag of the set of tags is within the threshold distance.

12. The method of claim 1 , wherein the calculated distance of the locations of the tags to each other is based on a point within the image for each tag.

13. The method of claim 1 , wherein the threshold distance is a threshold fraction of one dimension of the image.

14. The method of claim 1 , wherein the threshold distance is a threshold fraction of one dimension of a viewport of the client system.

15. The method of claim 1 , wherein the threshold distance is a threshold distance across a viewport of the client system.

16. The method of claim 1 , wherein the calculated distance of the locations of the tags to each other is based on an area within the image for each tag.

17. The method of claim 1 , wherein the threshold distance is a threshold percentage overlap of areas associated with each tag.

18. The method of claim 1 , further comprising:

receiving, at the client system, an input from the first user requesting to view the image; and

sending, by the client system to a social-networking system, a request to view the image.

19. The method of claim 1 , wherein the particular location within the image is a point associated with a pixel of the image.

20. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

render, by the client system, an image comprising a plurality of tags, wherein each tag is associated with a particular location within the image and comprising a name string corresponding to the tag, and wherein at least two tags of the plurality of tags within a threshold distance of each other are aggregated into an aggregated tag, wherein the aggregated tag comprises at least one name string corresponding to one of the plurality of tags and a counter of the name strings corresponding to the other tags aggregated into the aggregated tag;

detect, by the client system, an action of the first user changing a zoom level for the image;

responsive to the first user changing a zoom level for the image, calculate for each tag the distance of the location of the tag from the location of every other tag of the image; and

if the change in zoom level is zooming in, update the aggregated tag based on the calculated distance of the locations of the tags to each other, wherein the updated aggregated tag is aggregated with at least one fewer tag of the plurality of tags, and wherein the counter is correspondingly decremented by at least one; and

if the change in zoom level is zooming out, update the aggregated tag based on the calculated distance of the locations of the tags to each other, wherein the updated aggregated tag is aggregated with at least one more tag of the plurality of tags, and wherein the counter is correspondingly incremented by at least one.

21. A client system of a first user comprising: one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:

render, by the client system, an image comprising a plurality of tags, wherein each tag is associated with a particular location within the image and comprising a name string corresponding to the tag, and wherein at least two tags of the plurality of tags within a threshold distance of each other are aggregated into an aggregated tag, wherein the aggregated tag comprises at least one name string corresponding to one of the plurality of tags and a counter of the name strings corresponding to the other tags aggregated into the aggregated tag;

detect, by the client system, an action of the first user changing a zoom level for the image;

responsive to the first user changing a zoom level for the image, calculate for each tag the distance of the location of the tag from the location of every other tag of the image; and

if the change in zoom level is zooming in, update the aggregated tag based on the calculated distance of the locations of the tags to each other, wherein the updated aggregated tag is aggregated with at least one fewer tag of the plurality of tags, and wherein the counter is correspondingly decremented by at least one; and

if the change in zoom level is zooming out, update the aggregated tag based on the calculated distance of the locations of the tags to each other, wherein the updated aggregated tag is aggregated with at least one more tag of the plurality of tags, and wherein the counter is correspondingly incremented by at least one.

22. The system of claim 21 , wherein the plurality of tags correspond to a plurality of users, respectively.

23. The system of claim 22 , wherein the processors are further operable when executing the instructions to:

access, from a social-networking system, a social-graph affinity for each user corresponding to a tag aggregated into the updated aggregated tag; and

render, by the client system, the image with a tag-label for the updated aggregated tag, wherein the tag-label comprises a name of the user having the strongest social-graph affinity with respect to the first user and a counter indicating a number of users corresponding to the updated aggregated tag.

24. The system of claim 23 , wherein the processors are further operable when executing the instructions to:

access a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges between two of the nodes representing a single degree of separation between them, the nodes comprising:

a first node corresponding to the first user; and

a plurality of second nodes corresponding to a plurality of objects associated with the social-networking system, respectively.

25. The system of claim 24 , wherein one or more users of the plurality of users corresponds to one or more second nodes, respectively.

26. The system of claim 25 , wherein the social-graph affinity for each user is based on a degree of separation between the second node corresponding to the user and the first node.

27. The system of claim 22 , wherein the plurality of users are users of an online social network.

28. The system of claim 22 , wherein the plurality of users are users of a communication network.

29. The system of claim 21 , wherein the plurality of tags correspond to a plurality of objects, respectively.

30. The system of claim 21 , wherein the processors are further operable when executing the instructions to render the image with a tag-label for each tag of the plurality of tags not associated with the updated aggregated tag.

31. The system of claim 21 , wherein updating the aggregated tag based on the calculated distance of the locations of the tags to each other comprises aggregating a set of tags into the updated aggregated tag if the calculated distance between each tag of the set of tags is within the threshold distance.

32. The system of claim 21 , wherein the calculated distance of the locations of the tags to each other is based on a point within the image for each tag.

33. The system of claim 21 , wherein the threshold distance is a threshold fraction of one dimension of the image.

34. The system of claim 21 , wherein the threshold distance is a threshold fraction of one dimension of a viewport of the client system.

35. The system of claim 21 , wherein the threshold distance is a threshold distance across a viewport of the client system.

36. The system of claim 21 , wherein the calculated distance of the locations of the tags to each other is based on an area within the image for each tag.

37. The system of claim 21 , wherein the threshold distance is a threshold percentage overlap of areas associated with each tag.

38. The system of claim 21 , wherein the processors are further operable when executing the instructions to:

receive, at the client system, an input from the first user requesting to view the image; and

send, by the client system to a social-networking system, a request to view the image.

39. The system of claim 21 , wherein the particular location within the image is a point associated with a pixel of the image.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
Continuity (2)
Continuation 13894640 · May 15, 2013
Related Publication 20160247307A1 · Aug 25, 2016