IP Library Granted Patent US 9,940,366
Granted Patent B2
US 9,940,366 · App. 14/388,815 · Granted Apr 10, 2018

Image search device, image search method, program, and computer-readable storage medium

Inventors: Ali Cevahir (Tokyo, JP); Junji Torii (Chiba, JP)
Assignee: RAKUTEN, INC.
G06F17/3053G06F17/30247G06F17/30271G06F17/30277
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 9,940,366
App. No.
14/388,815
Granted
Apr 10, 2018
Kind
B2
Abstract

An image search device is configured to: obtain a plurality of query feature vectors each indicating a local feature of an image serving as a query; select a plurality of image feature vectors respectively corresponding to the plurality of query feature vectors based on proximities between the plurality of image feature vectors respectively indicating a plurality of local features of each of a plurality of search target images to be searched, and the plurality of query feature vectors; generate an image score of the search target image based on a total sum of score elements each corresponding to the proximities between the selected plurality of image feature vectors and the query feature vectors corresponding to the selected image feature vectors; and select at least one of the plurality of search target images based on the image score.

Claims (68)

1. An image search device, comprising:

a plurality of parallel processors each of which includes a register and which execute a same instruction;

a common memory which is commonly and directly accessible from the plurality of parallel processors,

wherein each element of a vector stored in common memory are loaded, at one time, into the register of a corresponding one of the plurality of parallel processors in bulk, and each of the plurality of parallel processors processes the loaded element of the vector;

a storage unit storing a plurality of image feature vectors that respectively indicate a plurality of local features of each of a plurality of search target images to be searched and respectively belong to one of a plurality of clusters, and a plurality of representative feature vectors each of which represents one of the plurality of clusters, in which more than one of the image feature vectors are extracted from one of the plurality of images;

representative vector transfer means for transferring the plurality of the representative feature vectors from the storage unit to the common memory;

query feature obtaining means for obtaining and storing, in the common memory, a plurality of query feature vectors which are created from one image serving as a query, each query feature vector indicating a local feature of the image serving as the query;

first distance calculating means for calculating a first distance between at least a part of the plurality of transferred representative feature vectors and each of the query feature vectors using the plurality of parallel processors;

cluster selecting means for selecting a cluster from the plurality of clusters based on the calculated first distance;

second distance calculating means for calculating a second distance between the query feature vector and the plurality of image feature vectors which belong to the selected cluster using the plurality of parallel processors;

image feature vector selecting means for selecting, for each of the plurality of query feature vectors, an image feature vector from the plurality of image feature vectors based on the calculated second distance, where, for any one of plurality of the query feature vectors, a selected image feature vector is not selected relative to other query feature vectors within the plurality of query feature vectors;

score generating means for generating an image score of the search target image based on a total sum of score elements each score element depending on proximities between the selected plurality of image feature vectors each indicating a feature of any one of the plurality of search target images and the query feature vectors corresponding to the selected image feature vectors; and

image selecting means for selecting at least one of the plurality of search target images to be searched based on the image score.

2. The image search device according to claim 1 , wherein the image feature vector selecting means selects, for each of the plurality of query feature vectors, an image feature vector whose distance from the plurality of query feature vectors is smaller than a predetermined threshold value from among a plurality of image feature vectors which respectively indicate a plurality of local features of each of a plurality of search target images to be searched and which are stored in the storage unit in advance.

3. The image search device according to claim 2 , wherein the image feature vector selecting means selects, for each of the plurality of query feature vectors, not more than one image feature vector is from among a plurality of image feature vectors which respectively indicate a plurality of local features of each of a plurality of search target images to be searched and which are stored in the storage unit in advance.

4. The image search device according to claim 3 ,

wherein a cluster corresponding to each of the plurality of query feature vectors is selected from a plurality of clusters into which the plurality of image feature vectors stored in the storage unit are classified,

wherein, in the image feature vector selection, the image feature vector is selected for each of the plurality of query feature vectors from the image feature vectors belonging to the selected cluster.

5. The image search device according to claim 2 , further comprising:

wherein a cluster corresponding to each of the plurality of query feature vectors is selected from a plurality of clusters into which the plurality of image feature vectors stored in the storage unit are classified,

wherein, in the image feature vector selection, the image feature vector is selected for each of the plurality of query feature vectors from the image feature vectors belonging to the selected cluster.

6. The image search device according to claim 2 , wherein the proximity between the selected image feature vectors and the query feature vector corresponding to the selected image feature vector is a distance between the selected image feature vectors and the query feature vector.

7. The image search device according to claim 1 , wherein the image feature vector selecting means selects, for each of the plurality of query feature vectors, an image feature vector of which a number is predetermined in ascending order of distance from among a plurality of image feature vectors which respectively indicate a plurality of local features of each of a plurality of search target images to be searched and which are stored in the storage unit in advance.

8. The image search device according to claim 7 , wherein the image feature vector selecting means selects, for each of the plurality of query feature vectors, not more than one image feature vector from among a plurality of image feature vectors which respectively indicate a plurality of local features of each of a plurality of search target images to be searched and which are stored in the storage unit in advance.

9. The image search device according to claim 8 ,

wherein a cluster corresponding to each of the plurality of query feature vectors is selected from a plurality of clusters into which the plurality of image feature vectors stored in the storage unit are classified,

wherein, in the image feature vector selection, the image feature vector is selected for each of the plurality of query feature vectors from the image feature vectors belonging to the selected cluster.

10. The image search device according to claim 7 ,

wherein a cluster corresponding to each of the plurality of query feature vectors is selected from a plurality of clusters into which the plurality of image feature vectors stored in the storage unit are classified,

wherein, in the image feature vector selection, the image feature vector is selected for each of the plurality of query feature vectors from the image feature vectors belonging to the selected cluster.

11. The image search device according to claim 7 , wherein the proximity between the selected image feature vectors and the query feature vector corresponding to the selected image feature vector is a distance between the selected image feature vectors and the query feature vector.

12. The image search device according to claim 1 , wherein the image feature vector selecting means selects, for each of the plurality of query feature vectors, not more than one image feature vector from among a plurality of image feature vectors which respectively indicate a plurality of local features of each of a plurality of search target images to be searched and which are stored in the storage unit in advance.

13. The image search device according to claim 12 ,

wherein a cluster corresponding to each of the plurality of query feature vectors is selected from a plurality of clusters into which the plurality of image feature vectors stored in the storage unit are classified,

wherein, in the image feature vector selection, the image feature vector is selected for each of the plurality of query feature vectors from the image feature vectors belonging to the selected cluster.

14. The image search device according to claim 12 , wherein the proximity between the selected image feature vectors and the query feature vector corresponding to the selected image feature vector is a distance between the selected image feature vectors and the query feature vector.

15. The image search device according to claim 1 ,

wherein a cluster corresponding to each of the plurality of query feature vectors is selected from a plurality of clusters into which the plurality of image feature vectors stored in the storage unit are classified,

wherein, in the image feature vector selection, the image feature vector is selected for each of the plurality of query feature vectors from the image feature vectors belonging to the selected cluster.

16. The image search device according to claim 15 , wherein the proximity between the selected image feature vectors and the query feature vector corresponding to the selected image feature vector is a distance between the selected image feature vectors and the query feature vector.

17. The image search device according to claim 1 , wherein the proximity between the selected image feature vectors and the query feature vector corresponding to the selected image feature vector is a distance between the selected image feature vectors and the query feature vector.

18. An image search method, which uses

a plurality of parallel processors each of which includes a register and which execute a same instruction;

a common memory which is commonly and directly accessible from the plurality of parallel processors,

wherein each element of a vector stored in common memory are loaded, at one time, into the register of a corresponding one of the plurality of parallel processors in bulk, and each of the plurality of parallel processors processes the loaded element of the vector;

a storage unit storing a plurality of image feature vectors that respectively indicate a plurality of local features of each of a plurality of search target images to be searched and respectively belong to one of a plurality of clusters, and a plurality of representative feature vectors each of which represents one of the plurality of clusters, in which more than one of the image feature vectors are extracted from one of the plurality of images;

representative vector transfer means for transferring the plurality of the representative feature vectors from the storage unit to the common memory;

said method comprising:

obtaining and storing, in a common memory, a plurality of query feature vectors which are created from one image serving as a query, each query feature vector indicating a local feature of the image serving as the query;

calculating a first distance between at least a part of the plurality of transferred representative feature vectors and each of the query feature vectors using the plurality of parallel processors;

selecting a cluster from the plurality of clusters based on the calculated first distance;

calculating a second distance between the query feature vector and the plurality of image feature vectors which belong to the selected cluster using the plurality of parallel processors;

selecting, for each of the plurality of query feature vectors, an image feature vector from the plurality of image feature vectors based on the calculated second distance, where, for any one of plurality of the query feature vectors, a selected image feature vector is not selected relative to other query feature vectors within the plurality of query feature vectors;

generating an image score of the search target image based on a total sum of score elements each depending on proximities between the selected plurality of image feature vectors each indicating a feature of any one of the plurality of search target images and the query feature vectors corresponding to the selected image feature vectors; and

selecting at least one of the plurality of search target images to be searched based on the image score.

19. A computer-readable non-transitory storage medium having stored thereon a program for causing hardware comprising:

a plurality of parallel processors, each of which includes a register and which execute a same instruction:

a common memory, which is commonly and directly accessible from the plurality of parallel processors, wherein each element of a vector stored in common memory are loaded, at one time, into the register of a corresponding one of the plurality of parallel processors in bulk, and each of the plurality of parallel processors processes the loaded element of the vector;

a storage unit, storing a plurality of image feature vectors that respectively indicate a plurality of local features of each of a plurality of search target images to be searched and respectively belong to one of a plurality of clusters, and a plurality of representative feature vectors each of which represents one of the plurality of clusters, in which one more than one of the image feature vectors are extracted from one of the plurality of images;

said computer readable non-transitory storage medium causing said hardware to:

transfer the plurality of the representative feature vectors from the storage unit to the common memory;

obtain and store, in common memory, a plurality of query feature vectors which are created from one image serving as a query, each query feature vector indicating a local feature of an image serving as a query;

calculate a first distance between at least a part of the plurality of transferred representative feature vectors and each of the query feature vectors using the plurality of parallel processors;

select a cluster from the plurality of clusters based on the calculated first distance;

calculate a second distance between the query feature vector and the plurality of image feature vectors which belong to the selected cluster using the plurality of parallel processors;

select, for each of the plurality of query feature vectors, an image feature vector from the plurality of image feature vectors based on the calculated second distance, where, for any one of plurality of the query feature vectors, a selected image feature vector is not selected relative to other query feature vectors within the plurality of query feature vectors;

generate an image score of the search target image based on a total sum of score elements each score element depending on proximities between the selected plurality of image feature vectors and the query feature vectors corresponding to the selected image feature vectors; and

select at least one of the plurality of search target images to be searched based on the image score.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT NUMBERS 10342096;10671117; 10716375; 10716376;10795407;10795408; AND 10827591 PREVIOUSLY RECORDED AT REEL: 58314 FRAME: 657. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 29, 2024
From: RAKUTEN, INC.
To: RAKUTEN GROUP, INC.
Reel/Frame 068066/0103 →
CHANGE OF NAME Recorded Dec 6, 2021
From: RAKUTEN, INC.
To: RAKUTEN GROUP, INC.
Reel/Frame 058314/0657 →
CHANGE OF ADDRESS Recorded Jan 21, 2016
From: RAKUTEN, INC.
To: RAKUTEN, INC.
Reel/Frame 037567/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2014
From: CEVAHIR, ALI; TORII, JUNJI
To: RAKUTEN, INC.
Reel/Frame 033835/0079 →
Priority Claims (1)
JP 2012-078343 · Mar 29, 2012 · national
Continuity (1)
Related Publication 20150066957A1 · Mar 5, 2015