IP Library Granted Patent US 11,748,400
Granted Patent B2
US 11,748,400 · App. 17/848,122 · Granted Sep 5, 2023

Automated image retrieval with image graph

Inventors: Maksims Volkovs (Toronto, CA); Cheng Chang (Toronto, CA); Guangwei Yu (Toronto, CA); Chundi Liu (Toronto, CA)
Assignee: The Toronto-Dominion Bank
G06F16/583G06F16/5866G06F16/9024G06F16/9032G06F16/90348G06V10/751G06V10/764G06V10/84
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 11,748,400
App. No.
17/848,122
Granted
Sep 5, 2023
Kind
B2
Abstract

An image retrieval system receives an image for which to identify relevant images from an image repository. Relevant images may be of the same environment or object and features and other characteristics. Images in the repository are represented in an image retrieval graph by a set of image nodes connected by edges to other related image nodes with edge weights representing the similarity of the nodes to each other. Based on the received image, the image traversal system identifies an image in the image retrieval graph and alternatively explores and traverses (also termed “exploits”) the image nodes with the edge weights. In the exploration step, image nodes in an exploration set are evaluated to identify connected nodes that are added to a traversal set of image nodes. In the traversal step, the relevant nodes in the traversal set are added to the exploration set and a query result set.

Claims (41)

1. A computer system for automated object retrieval, the computer system comprising:

a processor configured to execute instructions; and

a non-transient computer-readable medium comprising instructions that when executed by the processor cause the processor to:

identify a query object represented in a retrieval graph having object nodes representing objects connected by a set of edges having edge weights representing similarity between the objects represented by the connected object nodes; and

determine a query result set of relevant objects to the query object by iteratively:

identifying a relevant object node in a traversal set of object nodes based on an associated traversal weight of the object node;

adding the relevant object node to the query result set; and

updating the traversal set with one or more object nodes connected to the relevant object node with associated traversal weights based on the edge weights between the relevant object node and the respective object node.

2. The system of claim 1 , wherein the objects are images.

3. The system of claim 1 , wherein the instructions further cause the processor to:

receive a request from a client device to retrieve objects relevant to the query object; and

return the query result set to the client device.

4. The computer system of claim 1 , wherein the retrieval graph is sparsely connected.

5. The computer system of claim 1 , wherein a set of relevant object nodes is identified and added to the query result set as an ordered queue based on respective traversal weights of the relevant object nodes in the traversal set.

6. The computer system of claim 1 , wherein the traversal set of object nodes is a heap prioritized by traversal weights.

7. The computer system of claim 1 , wherein the object nodes connected in the retrieval graph are selected based on a ranked number of a k-nearest neighbor (k-NN).

8. The computer system of claim 1 , wherein the edge weights of the set of edges in the retrieval graph is based on an inlier score of a Random Sample Consensus (RANSAC) algorithm.

9. A method for automated image retrieval, the method comprising:

identifying a query object represented in a retrieval graph having object nodes representing objects connected by a set of edges having edge weights representing similarity between the objects represented by the connected object nodes;

determining a query result set of relevant objects to the query object by iteratively:

identifying a relevant object node in a traversal set of object nodes based on an associated traversal weight of the object node;

adding the relevant object node to the query result set; and

updating the traversal set with one or more object nodes connected to the relevant object node with associated traversal weights based on the edge weights between the relevant object node and the respective object node.

10. The method of claim 9 , wherein the objects are images.

11. The method of claim 9 , further comprising:

receiving a request from a client device to retrieve objects relevant to the query object; and

returning the query result set to the client device.

12. The method of claim 9 , wherein the retrieval graph is sparsely connected.

13. The method of claim 9 , wherein a set of relevant object nodes is identified and added to the query result set as an ordered queue based on respective traversal weights of the relevant object nodes in the traversal set.

14. The method of claim 9 , wherein the traversal set of object nodes is a heap prioritized by traversal weights.

15. The method of claim 9 , wherein the object nodes connected in the image retrieval graph are selected based on a ranked number of a k-nearest neighbor (k-NN).

16. The method of claim 9 , wherein the edge weights of the set of edges in the image retrieval graph is based on an inlier score of a Random Sample Consensus (RANSAC) algorithm.

17. A non-transitory computer-readable medium containing computer program code that is executable by a processor for the processor to perform steps of:

identifying a query object represented in a retrieval graph having object nodes representing objects connected by a set of edges having edge weights representing similarity between the objects represented by the connected object nodes; and

determining a query result set of relevant objects to the query object by iteratively:

identifying a relevant object node in a traversal set of object nodes based on an associated traversal weight of the object node;

adding the relevant object node to the query result set; and

updating the traversal set with one or more object nodes connected to the relevant object node with associated traversal weights based on the edge weights between the relevant object node and the respective object node.

18. The non-transitory computer-readable medium of claim 17 , wherein the traversal set of object nodes is a heap prioritized by traversal weights.

19. The non-transitory computer-readable medium of claim 17 , wherein the object nodes connected in the retrieval graph are selected based on a ranked number of a k-nearest neighbor (k-NN).

20. The non-transitory computer-readable medium of claim 17 , wherein the edge weights of the set of edges in the retrieval graph is based on an inlier score of a Random Sample Consensus (RANSAC) algorithm.

Continuity (3)
Continuation 16592006 · Oct 3, 2019
Provisional Application 62770159 · Nov 20, 2018
Related Publication 20220318298A1 · Oct 6, 2022
Cited By (27)
US 12,316,715 US 12,399,687 US 12,499,241 US 12,517,812 US 12,536,264 US 12,541,544 US 12,541,894 US 12,566,541 US 12,585,435 US 12,591,559 US 12,592,301 US 12,625,680 US 12,641,178 US 12,645,429 US 12,645,689 US 12,645,838 US 12,646,051 US 12,650,836 US 12,657,566 US 12,670,334 US 12,670,640 US 12,688,620 US 12,693,842 US 12,699,556 US 12,705,398 US 12,711,683 US 12,725,152