IP Library Granted Patent US 12,216,705
Granted Patent B2
US 12,216,705 · App. 17/404,367 · Granted Feb 4, 2025

System and method for attribute-based visual search over a computer communication network

Inventors: Li Huang (Redmond, WA); Meenaz Merchant (Redmond, WA); Houdong Hu (Redmond, WA); Arun Sacheti (Redmond, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F16/583G06F16/24578G06F16/248G06F16/51G06F16/532G06F16/56G06F18/22G06N3/04G06N3/08
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 12,216,705
App. No.
17/404,367
Granted
Feb 4, 2025
Kind
B2
Abstract

A visual search system includes a computing device, where the computing device includes an image processing engine for generating a feature vector representing a user-selected object in an image. The computing device also includes, an object detection engine for locating one or more objects in the image and for determining a category of a user-selected object from objects in the image, where the object detection engine uses the category to generate a plurality of attributes for the user-selected object. The computing device further includes a product data store for storing a plurality of tables storing one or more attributes associated with a category of the user-selected object. The computing device additionally includes an attribute generation engine for generating a plurality of attribute options and an attribute matching engine for comparing attributes and attribute options of the user-selected object with attributes and attribute options of visually similar products and images.

Claims (53)

1. A computing system, comprising:

a hardware processor; and

at least one memory device storing instructions that, when executed by the hardware processor, cause the hardware processor to perform acts comprising:

obtaining an image, wherein the image is displayed to a user;

in response to receiving an indication that an object in the image has been selected by the user, generating a feature vector that represents the object;

determining a category of the object based upon the feature vector;

retrieving a plurality of attributes based upon the category of the object, wherein the plurality of attributes comprise one or more first attributes and one or more second attributes, wherein the one or more first attributes are indicative of a feature of the object and the one or more second attributes are indicative of a feature of at least one other object in the category but are not indicative of the object;

generating a plurality of search results based upon the feature vector and the plurality of attributes; and

causing the plurality of search results to be displayed within a graphical user interface (GUI).

2. The computing system of claim 1 , wherein the plurality of search results comprise images that include objects belonging to the category of the object displayed in the image.

3. The computing system of claim 2 , wherein the plurality of search results further comprise descriptions of each of the objects.

4. The computing system of claim 1 , wherein the plurality of search results include a first image that includes a first object, wherein the first object has the at least one of the one or more second attributes in place of the one or more first attributes.

5. The computing system of claim 1 , wherein the image comprises a plurality of objects, the acts further comprising:

prior to generating the feature vector, identifying the object from amongst the plurality of objects in the image.

6. The computing system of claim 1 , wherein a second object is in the image, wherein generating the feature vector that represents the object in the image comprises:

cropping the image to generate a query image, wherein the query image includes the object, wherein the query image excludes the second object, wherein the feature vector is generated based upon the query image.

7. The computing system of claim 1 , the acts further comprising:

obtaining user preferences of the user; and

subsequent to generating the plurality of search results and prior to causing the plurality of search results to be displayed within the GUI, assigning rankings to the plurality of search results based upon the user preferences, wherein the plurality of search results are displayed in accordance with the rankings.

8. The computing system of claim 1 , wherein generating the plurality of search results based upon the feature vector and the plurality of attributes comprises:

identifying a database from amongst a plurality of databases based upon the category of the object; and

executing a search over the database based upon the feature vector and the plurality of attributes, wherein the plurality of search results are generated from the search.

9. The computing system of claim 1 , wherein the image is obtained from a computing device operated by the user, wherein the GUI is presented on a display of the computing device.

10. The computing system of claim 1 , wherein the image is obtained from a server computing device.

11. The computing system of claim 1 , wherein retrieving the plurality of attributes comprises executing a rule assigned to the category.

12. A method executed by a processor of a computing system, the method comprising:

obtaining an image, wherein the image is displayed on a display of a computing device operated by a user;

identifying a plurality of objects in the image;

upon identifying the plurality of objects in the image, determining respective categories of each of the plurality of objects in the image;

in response to receiving an indication that an object in the plurality of objects in the image has been selected by the user, generating a feature vector that represents the object;

retrieving a plurality of attributes based upon a category of the object, wherein the plurality of attributes comprise one or more first attributes and one or more second attributes, wherein the one or more first attributes are indicative of a feature of the object and the one or more second attributes are indicative of a feature of at least one other object in the category but are not indicative of the object;

generating a plurality of search results based upon the feature vector and the plurality of attributes; and

causing the plurality of search results to be displayed within a graphical user interface (GUI) shown on the display.

13. The method of claim 12 , wherein each of the plurality of objects in the image is marked with a respective icon, wherein the object is selected when an icon assigned to the object is selected by the user.

14. The method of claim 12 , wherein generating the plurality of search results based upon the feature vector and the plurality of attributes comprises:

generating a visual-word-quantized representation of the object based upon the feature vector;

generating a product quantized representation of object based upon the visual-word-quantized representation of the object; and

executing a search over at least one database based upon the product quantized representation of the object and the attribute set, wherein the plurality of search results are generated based upon the search.

15. The method of claim 12 , further comprising:

obtaining user preferences of the user; and

subsequent to generating the plurality of search results and prior to causing the plurality of search results to be displayed within the GUI, assigning rankings to the plurality of search results based upon the user preferences, wherein the plurality of search results are displayed in accordance with the rankings.

16. The method of claim 12 , wherein generating the feature vector that represents the object in the image comprises:

cropping the image to generate a query image, wherein the query image includes the object, wherein the feature vector is generated based upon the query image.

17. The method of claim 12 , wherein the plurality of search results comprise images that include objects that belong to the category of the object displayed in the image.

18. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processor of a computing system, cause the processor to perform acts comprising:

obtaining an image, wherein the image is displayed within a graphical user interface (GUI) shown on a display of a computing device;

in response to receiving an indication that an object in the image has been selected by a user of the computing device, generating a feature vector that represents the object;

determining a category of the object based upon the feature vector;

retrieving a plurality of attributes based upon the category of the object, wherein the plurality of attributes comprise one or more first attributes and one or more second attributes, wherein the one or more first attributes are indicative of a feature of the object and the one or more second attributes are indicative of at least one other object in the category but are not indicative of the object;

generating a plurality of search results based upon the feature vector and the plurality of attributes; and

transmitting the plurality of search results to the computing device, wherein the plurality of search results are displayed within the GUI.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the image is displayed at a first region of the GUI, wherein the plurality of search results are displayed at a second region of the GUI.

20. The non-transitory computer-readable storage medium of claim 18 , wherein the at least one additional attribute belongs to the category.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2021
From: HUANG, LI; MERCHANT, MEENAZ; HU, HOUDONG; SACHETI, ARUN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 057203/0001 →
Continuity (2)
Continuation 15985623 · May 21, 2018
Related Publication 20210382935A1 · Dec 9, 2021
References Cited (61)
US 7099510B2 · Jones et al. · 2006 [cited by applicant]
US 7657100B2 · Gokturk et al. · 2010 [cited by applicant]
US 7813561B2 · Jia · 2010 [cited by examiner]
US 9177225B1 · Cordova-Diba et al. · 2015 [cited by applicant]
US 9442985B2 · Wiegering · 2016 [cited by examiner]
US 9471685B1 · Khafizov et al. · 2016 [cited by applicant]
US 10042935B1 · Perkins · 2018 [cited by examiner]
US 10360705B2 · Cervelli et al. · 2019 [cited by applicant]
US 10444940B2 · Cervelli et al. · 2019 [cited by applicant]
US 10789525B2 · Kerr · 2020 [cited by examiner]
US 10810252B2 · Kerr · 2020 [cited by examiner]
US 20020044691A1 · Matsugu · 2002 [cited by examiner]
US 20060251338A1 · Gokturk et al. · 2006 [cited by applicant]
US 20070081744A1 · Gokturk · 2007 [cited by examiner]
US 20070098211A1 · Walton et al. · 2007 [cited by applicant]
US 20080082426A1 · Gokturk · 2008 [cited by examiner]
US 20080144943A1 · Gokturk · 2008 [cited by examiner]
US 20080152231A1 · Gokturk · 2008 [cited by examiner]
US 20080177640A1 · Gokturk · 2008 [cited by examiner]
US 20090208116A1 · Gokturk · 2009 [cited by examiner]
US 20090208118A1 · Csurka · 2009 [cited by examiner]
US 20090245573A1 · Saptharishi · 2009 [cited by examiner]
US 20100027895A1 · Noguchi · 2010 [cited by examiner]
US 20100260426A1 · Huang · 2010 [cited by examiner]
US 20130114900A1 · Vedantham et al. · 2013 [cited by applicant]
US 20130275411A1 · Kim et al. · 2013 [cited by applicant]
US 20140016863A1 · Saxena et al. · 2014 [cited by applicant]
US 20140029801A1 · Chua · 2014 [cited by examiner]
US 20140180758A1 · Agarwal · 2014 [cited by examiner]
US 20140365463A1 · Tusk · 2014 [cited by applicant]
US 20140376819A1 · Liu et al. · 2014 [cited by applicant]
US 20150134688A1 · Jing et al. · 2015 [cited by applicant]
US 20150170333A1 · Jing et al. · 2015 [cited by applicant]
US 20160350333A1 · Sacheti et al. · 2016 [cited by applicant]
US 20170097948A1 · Kerr · 2017 [cited by examiner]
US 20170287170A1 · Perona et al. · 2017 [cited by applicant]
US 20180101570A1 · Kumar · 2018 [cited by examiner]
US 20180357258A1 · Bu · 2018 [cited by examiner]
US 20190258895A1 · Sacheti et al. · 2019 [cited by applicant]
US 20190294631A1 · Alcantara et al. · 2019 [cited by applicant]
US 20190354609A1 · Huang et al. · 2019 [cited by applicant]
US 20210382935A1 · Huang · 2021 [cited by examiner]
CN 101473324A · 2009 [cited by applicant]
CN 103562911A · 2014 [cited by applicant]
CN 105592816A · 2016 [cited by applicant]
CN 106560810A · 2017 [cited by applicant]
“Office Action Issued in European Patent Application No. 19725465.9”, Mailed Date: Jul. 12, 2022, 8 Pages. [cited by applicant]
“Office Action Issued in Indian Patent Application No. 202047049142”, Mailed Date: Sep. 2, 2022, 7 Pages. [cited by applicant]
“International Search Report and Written Opinion Issued in PCT Application No. PCT/US2019/030795”, Mailed Date: Jul. 18, 2019, 12 Pages. [cited by applicant]
Szegedy, et al., “Deep Neural Networks for Object Detection”, In NIPS'13: Proceedings of the 26 International Conference on Neural Information Processing Systems, vol. 2, Dec. 2013, pp. 2553-2561. [cited by applicant]
“Non-Final Office Action for U.S. Appl. No. 15/985,623”, Mailed Date: Feb. 7, 2020, 21 Pages. [cited by applicant]
“Reply to Non-Final Office Action for U.S. Appl. No. 15/985,623”, filed May 27, 2020, 17 Pages. [cited by applicant]
“Final Office Action for U.S. Appl. No. 15/985,623”, Mailed Date: Jun. 30, 2020, 29 Pages. [cited by applicant]
“Reply to Final Office Action for U.S. Appl. No. 15/985,623”, filed Aug. 31, 2020, 19 Pages. [cited by applicant]
“Advisory Action for U.S. Appl. No. 15/985,623”, Mailed Date: Oct. 5, 2020, 5 Pages. [cited by applicant]
“Pre-Appeal Brief Conference Request for U.S. Appl. No. 15/985,623”, filed Oct. 30, 2020, 7 Pages. [cited by applicant]
“Pre-Appeal Brief Conference Decision for U.S. Appl. No. 15/985,623”, Mailed Date: Jan. 11, 2021, 2 Pages. [cited by applicant]
“Appeal Brief for U.S. Appl. No. 15/985,623”, filed Feb. 26, 2021, 31 Pages. [cited by applicant]
“Notice of Allowance and Fees Due for U.S. Appl. No. 15/985,623”, Mailed Date: May 14, 2021, 13 Pages. [cited by applicant]
Second Office Action Received for Chinese Application No. 201980034238.7, mailed on Aug. 8, 2024, 12 pages. (English translation Provided). [cited by applicant]
Office Action Received for Chinese Application No. 201980034238.7, mailed on Jan. 12, 2024, 12 pages. [cited by applicant]