Patent Document ID: 9588991
Application ID: 14344913
Patent Status: 1

Claim One:
1. An image search device, comprising: a plurality of parallel processors each of which includes a register and which execute a same instruction; an instruction unit; 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 according to one instruction from the instruction unit, and each of the plurality of parallel processors processes the loaded element of the vector; a storage means storing a plurality of image feature vectors that are respectively extracted from a plurality of images serving as search targets 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 means to the common memory; query feature vector obtaining means for obtaining and storing, in the common memory, one or more query feature vectors that are extracted from an image serving as a query; first distance calculating means for calculating a distance between at least a part of the plurality of transferred representative feature vectors and the query feature vector using the plurality of parallel processors; cluster selecting means selecting a cluster from the plurality of clusters based on the calculation result of the first distance calculating means; image feature vector transfer means for transferring the image feature vectors, which belongs to the selected cluster from the storage means to the common memory after the cluster unit selects the cluster; second distance calculating means for calculating a distance between the plurality of image feature vectors, which belong to the cluster selected based on a calculation result of the first distance calculating means, and the query feature vector; selecting means for selecting at least one of the plurality of images based on a calculation result of the second distance calculating means; and cluster generator for grouping the plurality of image feature vectors to the plurality of clusters so that a sum of (a number of the plurality of image feature vectors)×(a dimension of the image feature vector)×(a size of one element of the image feature vector)/(the number of the plurality of clusters) and (a number of the plurality of representative feature vectors)×(a dimension of the representative feature vector)×(a size of one element of the representative feature vector) is less than the size of the common memory, wherein the second distance calculating means calculates a distance between the transferred image feature vectors and the query feature vector using the plurality of parallel processors; and wherein (a number of the plurality of image feature vectors in the storage means)×(the dimension of the image feature vector)×(the size of one element of the image feature vector) is more than the size of the common memory.