# US 2021/0240760 A1 · Image searching using a full-text search engine

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0240760 A1
- Document ID: US20210240760A1
- Status: Published application
- Kind: A1
- Application number: 16/779,519
- Filed: 2020-01-31
- Published: 2021-08-05
- Earliest claimed: 2020-01-31
- Assignees: Walmart Apollo, LLC
- Applicants: Walmart Apollo, LLC
- Inventors: Binwei Yang; Omer Ovenc; Behzad Ahmadi; Cun Mu; Zheng Yan; Guang Yang; Jun Zhao
- Web page: https://patentgrep.com/patent/US20210240760A1

## CPC

- G06F 16/56: having vectorial format
- G06F 16/532: Query formulation, e.g. graphical querying
- G06F 16/583: using metadata automatically derived from the content
- G06F 16/9014: {hash tables}
- G06Q 30/0627: {by specifying product or service characteristics, e.g. product dimensions}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A method including bit-operation and sub-code/substring filtering for image searching using a full-text search engine. The method can include determining a first binary vector of first binary substrings for a first image. The method also can include obtaining a respective second binary vector comprising second binary substrings for each of second images from a database. The method additionally can include determining a respective sub string distance for each of the binary substring for each of the second images. The respective substring distance can be between at least a pair of a first binary sub string of the first binary sub strings of the first binary vector and a respective corresponding second binary sub string of the second binary sub strings of the respective second binary vector for each of the second images. In some embodiments, the method further can include after determining the respective sub string distance for each of the binary sub string for each of the second images, when the respective sub string distance for one or more of the second images is not greater than a predetermined substring distance threshold, including the one or more of the second images in a search result. The method also can include determining a respective image distance for each respective third image of the search result, the respective image distance being between the first image and each respective third image of the search result. The method additionally can include after determining the respective image distance for the each respective third image of the search result, when the respective image distance is less than the predetermined image distance threshold, culling the each respective third image from the search result. Other embodiments are disclosed.

## Claims

### Claim 1

A system comprising:
one or more processors; and
one or more non-transitory computer-readable media storing computing instructions configured to run on the one or more processors and perform:
determining a first binary vector of first binary substrings for a first image;
obtaining a respective second binary vector comprising second binary substrings for each of second images from a database;
determining a respective substring distance for each of the binary substrings for each of the second images, the respective substring distance being between at least a pair of a first binary substring of the first binary substrings of the first binary vector and a respective corresponding second binary substring of the second binary substrings of the respective second binary vector for each of the second images;
after determining the respective substring distance for each of the binary substrings for each of the second images, when the respective substring distance for one or more of the second images is not greater than a predetermined substring distance threshold, including the one or more of the second images in a search result;
determining a respective image distance for each respective third image of the search result, the respective image distance being between the first image and each respective third image of the search result; and
after determining the respective image distance for the each respective third image of the search result, when the respective image distance is less than the predetermined image distance threshold, culling the each respective third image from the search result.

### Claim 2 (depends on 1)

The system in claim 1, wherein:
determining the first binary vector comprises minimizing a respective bit correlation within each of the first binary substrings by permutation.

### Claim 3 (depends on 1)

The system in claim 1, wherein:
the computing instructions are further configured to perform:
obtaining, in real-time after determining the first binary vector, the second images by searching the database based on the first binary vector.

### Claim 4 (depends on 1)

The system in claim 1, wherein:
each of the second images is indexed in the database based at least in part on the respective binary vector for each of the second images.

### Claim 5 (depends on 1)

The system in claim 1, wherein:
the computing instructions are further configured to perform:
receiving, from a user device via a network, a search request associated with the first image by a user;
determining a representative image from the first image and the search result based on a criterion; and
transmitting, via the network, the representative image to be displayed on the user device.

### Claim 6 (depends on 5)

The system in claim 5, wherein:
the criterion for selecting the representative image is at least one of:
a popularity of a representative item associated with the representative image among users;
a profit margin of the representative item;
a markup of the representative item; a promotion of the representative item by a retailer;
a sales ranking of the representative item; or
a user rating for the representative item.

### Claim 7 (depends on 1)

The system in claim 1, wherein:
determining the first binary vector further comprises:
generating a first hash value for the first image; and
dividing bits of the first hash value into the first binary substrings.

### Claim 8 (depends on 7)

The system in claim 7, wherein:
generating the first hash value comprises applying at least one of pHash, dHash, wHash, or aHash.

### Claim 9 (depends on 1)

The system in claim 1, wherein:
the respective substring distance between at least the pair of the first binary substring of the first binary substrings of the first binary vector and the respective corresponding second binary sub string of the second binary sub strings of the respective second binary vector for each of the second images is a count of different pairs of bits between the first binary substring and the respective corresponding second binary substring.

### Claim 10 (depends on 1)

The system in claim 1, wherein:
the respective image distance between the first image and the each respective third image of the search result is determined based on a respective substring distance between each pair of a first binary sub string of the first binary sub strings of the first binary vector and a respective corresponding third binary substring of a third binary vector for the each respective third image.

### Claim 11

A method being implemented via execution of computing instructions configured to run at one or more processors and stored at one or more non-transitory computer-readable media, the method comprising:
determining a first binary vector of first binary substrings for a first image;
obtaining a respective second binary vector comprising second binary substrings for each of second images from a database;
determining a respective substring distance for each of the binary substring for each of the second images, the respective substring distance being between at least a pair of a first binary sub string of the first binary sub strings of the first binary vector and a respective corresponding second binary substring of the second binary substrings of the respective second binary vector for each of the second images;
after determining the respective substring distance for each of the binary substring for each of the second images, when the respective substring distance for one or more of the second images is not greater than a predetermined substring distance threshold, including the one or more of the second images in a search result;
determining a respective image distance for each respective third image of the search result, the respective image distance being between the first image and each respective third image of the search result; and
after determining the respective image distance for the each respective third image of the search result, when the respective image distance is less than the predetermined image distance threshold, culling the each respective third image from the search result.

### Claim 12 (depends on 11)

The method in claim 11, wherein:
determining the first binary vector comprises minimizing a respective bit correlation within each of the first binary substrings by permutation.

### Claim 13 (depends on 11)

The method in claim 11 further comprising:
obtaining, in real-time after determining the first binary vector, the second images by searching the database based on the first binary vector.

### Claim 14 (depends on 11)

The method in claim 11, wherein:
each of the second images is indexed in the database based at least in part on the respective binary vector for each of the second images.

### Claim 15 (depends on 11)

The method in claim 11 further comprising:
receiving, from a user device via a network, a search request associated with the first image by a user;
determining a representative image from the first image and the search result based on a criterion; and
transmitting, via the network, the representative image to be displayed on the user device.

### Claim 16 (depends on 15)

The method in claim 15, wherein:
the criterion for selecting the representative image is at least one of:
a popularity of a representative item associated with the representative image among users;
a profit margin of the representative item;
a markup of the representative item;
a promotion of the representative item by a retailer;
a sales ranking of the representative item; or
a user rating for the representative item.

### Claim 17 (depends on 11)

The method in claim 11 further comprising:
generating a first hash value for the first image; and
dividing bits of the first hash value into the first binary substrings.

### Claim 18 (depends on 17)

The method in claim 17, wherein:
generating the first hash value comprises applying at least one of pHash, dHash, wHash, or aHash.

### Claim 19 (depends on 11)

The method in claim 11, wherein:
the respective substring distance between at least the pair of the first binary substring of the first binary substrings of the first binary vector and the respective corresponding second binary sub string of the second binary sub strings of the respective second binary vector for each of the second images is a count of different pairs of bits between the first binary substring and the respective corresponding second binary substring.

### Claim 20 (depends on 11)

The method in claim 11, wherein:
the respective image distance between the first image and the each respective third image of the search result is determined based on a respective substring distance between each pair of a first binary sub string of the first binary sub strings of the first binary vector and a respective corresponding third binary substring of a third binary vector for the each respective third image.
