WO2018134964A1 - 画像検索システム、画像検索方法およびプログラム - Google Patents
画像検索システム、画像検索方法およびプログラム Download PDFInfo
- Publication number
- WO2018134964A1 WO2018134964A1 PCT/JP2017/001919 JP2017001919W WO2018134964A1 WO 2018134964 A1 WO2018134964 A1 WO 2018134964A1 JP 2017001919 W JP2017001919 W JP 2017001919W WO 2018134964 A1 WO2018134964 A1 WO 2018134964A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- feature
- representative
- vector
- vectors
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/538—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/55—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Definitions
- the present invention relates to an image search system, an image search method, and a program.
- BoV model Bug of VisualVwordsBModel
- a plurality of feature vectors each representing local features of an image are extracted from image data by a known method. Since the data amount of the feature vector is large, the data amount is further compressed by using a visual word (VisualsWords) having a vector closest to each feature vector for the search.
- Non-Patent Document 1 in order to further reduce the amount of data indicating image features, for each visual word, a difference (difference vector) between a feature vector corresponding to the visual word and a representative vector representing the visual word. ) (Total vector) is calculated, and data corresponding to the total vector is stored in a storage unit. In this method, an image similar to the query image is searched based on data corresponding to the total vector and data corresponding to the total vector acquired from the query image.
- the sum of the difference vectors between the feature vector and the representative vector of the visual word is taken, for example, when the direction of the difference vector is opposite for two feature vectors, the value of each element of the sum vector becomes small. In such a case, the feature of the image was not properly reflected in the search for the image.
- the present invention has been made in view of the above problems, and an object thereof is to provide a more accurate image search technique.
- an image search system acquires a representative vector that acquires a plurality of representative vectors that are generated based on a plurality of feature vectors that are included in a feature vector space and each indicate a feature of an image.
- Each of the plurality of feature vectors and a scalar value calculating unit for calculating a scalar value indicating a similarity between the representative vector corresponding to the feature vector, and each of the images according to the representative vector.
- Feature value calculating means for calculating a feature value indicating a feature for each representative vector based on the scalar value; and index creating means for creating a search index related to the calculated feature value.
- a program includes a representative vector obtaining unit that obtains a plurality of representative vectors that are generated based on a plurality of feature vectors that are included in the feature vector space and each indicate a feature of an image.
- a scalar value calculating means for calculating a scalar value indicating the similarity between each and the representative vector corresponding to the feature vector, and for each of the images, a feature value indicating a characteristic corresponding to the representative vector is used as the scalar value.
- the computer is caused to function as a feature value calculation means for calculating each representative vector and an index creation means for creating a search index related to the calculated feature value.
- an image search method includes a step of obtaining a plurality of representative vectors generated based on a plurality of feature vectors included in a feature vector space and each indicating a feature of an image, and the plurality of feature vectors.
- the feature value calculation means uses, for each representative vector, the sum of the scalar values calculated between the representative vector and the plurality of feature vectors as a feature value for each image. It may be calculated.
- the scalar value calculation means may calculate, for each of the representative vectors, a distance between the representative vector and each of a plurality of feature vectors corresponding to the representative vector as a scalar value.
- the representative vector generation unit may determine a representative vector corresponding to each of the plurality of feature vectors.
- the representative vector generation unit may classify a plurality of feature vectors into a plurality of clusters, and generate a plurality of representative vectors each representing one of the plurality of clusters.
- the representative vector includes a plurality of first representative vectors and a plurality of second representative vectors, and each of the plurality of second representative vectors is one of the plurality of first representative vectors.
- the representative vector generation means corresponds to each of the plurality of feature vectors with any one of the plurality of second representative vectors and a first representative vector corresponding to the one second representative vector. May be attached.
- the index creating means may generate an index having a data amount smaller than the plurality of feature values by compressing a plurality of feature values for each of the plurality of images.
- the index creating means may compress a plurality of feature values for each of a plurality of images by an auto encoder.
- generation means has several 2nd representative vectors corresponding to the said 1st representative vector, when the number of the feature vectors matched with the said 1st representative vector is larger than predetermined number. And at least one of the first representative vectors may not correspond to any of the second representative vectors.
- the image search system may further include image search means for searching for an image similar to the query image based on the search index and a feature value obtained from the query image.
- FIG. 1 is a diagram schematically illustrating a configuration of an image search system according to an embodiment of the present invention. It is a figure which shows an example of the hardware constitutions of an image search server. It is a block diagram explaining the function which an image search system implement
- FIG. 1 is a diagram showing an example of the configuration of an image search system according to the first embodiment of the present invention.
- the image search system includes an image search server 1 and a user terminal 2.
- the image search server 1 is a server computer on which an image search program or a web server program (httpd or the like) operates
- the user terminal 2 is, for example, a personal computer or a smartphone on which a web browser program operates.
- the image search server 1 and the user terminal 2 communicate with each other via the network 3.
- the network 3 is, for example, a local area network or the Internet.
- the outline of the operation when the image search system performs image search is as follows.
- the image search server 1 acquires an image (hereinafter referred to as “query image”) that is a query used for image search from the user terminal 2 via the network 3.
- the image search server 1 searches for one or a plurality of images similar to the query image, and outputs the image data to the user terminal 2, for example.
- FIG. 2 is a diagram illustrating an example of the configuration of the image search server 1 according to the first embodiment.
- the image search server 1 includes a processor 11, a storage unit 12, a communication unit 13, and an input / output unit 14.
- the processor 11 operates according to a program stored in the storage unit 12.
- the processor 11 controls the communication unit 13 and the input / output unit 14.
- the program may be provided via a network such as the Internet, or may be provided by being stored in a computer-readable information storage medium such as a DVD-ROM or a flash memory. May be.
- the storage unit 12 includes a memory element such as a RAM or a ROM, a hard disk drive, or the like.
- the storage unit 12 stores the program.
- the storage unit 12 stores information input from each unit and calculation results.
- the communication unit 13 realizes a function of communicating with other devices such as the user terminal 2, and is configured by communication means such as a network card.
- the network card includes an integrated circuit for communication and a communication terminal. Based on the control of the processor 11, the communication unit 13 inputs information received from another device to the processor 11 or the storage unit 12 and transmits the information to the other device.
- the input / output unit 14 includes a video controller that controls the display output device, a controller that acquires data from the input device, and the like.
- Examples of input devices include a keyboard, a mouse, and a touch panel.
- the input / output unit 14 Based on the control of the processor 11, the input / output unit 14 outputs data for displaying an image on the display output device, and acquires data input by the user operating the input device.
- the display output device is, for example, a display device connected to the outside.
- the user terminal 2 includes a processor 11, a storage unit 12, a communication unit 13, an input / output unit 14, and the like, like the image search server 1.
- the user terminal 2 realizes a function of presenting a screen based on data received from the image search server 1 or the like and a function of transmitting information input by the user regarding the screen to the image search server 1.
- These functions are realized, for example, when the processor 11 or the like included in the user terminal 2 executes a program such as a browser and performs processing according to data received from the image search server 1 or the like.
- These functions may be realized by a dedicated application program installed in the user terminal 2 instead of the browser.
- FIG. 3 is a block diagram showing functions realized by the image search system.
- the image search system functionally includes an index processing unit 50, a search processing unit 60, an image data storage unit 71, and an index storage unit 72.
- the index processing unit 50 generates an index to be used for searching for images from a plurality of image data.
- the search processing unit 60 searches for an image similar to the query image based on the query image serving as a search condition and the index.
- the index processing unit 50, the search processing unit 60, the image data storage unit 71, and the index storage unit 72 are mounted on the image search server 1.
- the image data storage unit 71 and the index storage unit 72 may be mounted on different servers, and the index processing unit 50 and the search processing unit 60 may be mounted on different servers.
- the image data storage unit 71 is realized mainly by the storage unit 12.
- the image data storage unit 71 stores data of a plurality of images to be searched.
- the index storage unit 72 is mainly realized by the storage unit 12.
- the index storage unit 72 stores the index of the image generated by the index generation unit 55.
- the index processing unit 50 functionally includes a feature vector extraction unit 51, a clustering unit 52, a score value calculation unit 53, a feature value calculation unit 54, and an index generation unit 55.
- the search processing unit 60 functionally includes a query vector detection unit 61, a query correspondence determination unit 62, a query score value calculation unit 63, a query feature value calculation unit 64, and an image search unit 65. These functions are realized by the processor 11 executing a program stored in the storage unit 12 and controlling the communication unit 13 and the input / output unit 14.
- the feature vector extraction unit 51 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the feature vector extraction unit 51 extracts a plurality of feature vectors respectively indicating local features of the image from the plurality of image data stored in the image data storage unit 71. Further, the feature vector extraction unit 51 extracts a plurality of feature vectors for one image.
- the number of feature vectors extracted from one image is determined according to the image, and is about 300 for a normal image.
- the dimension of the feature vector is 128 dimensions, for example.
- the clustering unit 52 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the clustering unit 52 generates a plurality of representative vectors based on the extracted plurality of feature vectors. More specifically, the clustering unit 52 classifies the plurality of feature vectors into a plurality of clusters, and generates a plurality of representative vectors each representing one of the plurality of clusters based on the feature vectors.
- the clustering unit 52 associates each of the plurality of feature vectors with one of the plurality of representative vectors.
- each of the clusters corresponds to a visual word (Visual Word) in the BoV model.
- the score value calculation unit 53 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the score value calculation unit 53 calculates a score value indicating the magnitude of similarity between each of the plurality of representative vectors and at least a part of the plurality of feature vectors.
- the score value is a scalar value. For example, for each representative vector, the score value calculation unit 53 calculates the distance between the representative vector and each of a plurality of feature vectors corresponding to the representative vector as a score value.
- the feature value calculation unit 54 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the feature value calculation unit 54 calculates a feature value indicating a feature corresponding to the representative vector for each representative vector for each image.
- the number of feature values that the feature value calculation unit 54 calculates for one image is the same as that of the representative vector.
- the index generation unit 55 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the index generation unit 55 creates a search index including the calculated feature value. An index is generated for each image, and the index generation unit 55 stores the generated index in the index storage unit 72 in association with the image.
- FIG. 4 is a flowchart showing an example of processing of the index processing unit 50.
- the feature vector extraction unit 51 extracts a feature vector from the image stored in the image data storage unit 71 (step S101). Details of the method for extracting the feature vector are well known, and thus detailed description thereof is omitted. As a method for extracting a feature vector indicating a local feature, for example, a method called SIFT exists.
- FIG. 5 is a diagram illustrating an example of an image to be searched. In the example of the image in FIG. 5, a part of the star and stripe is shown.
- FIG. 6 is a diagram schematically showing the feature vector 22 extracted from the image shown in FIG. Similar feature vectors are extracted from a plurality of feature points having similar features in the image.
- the clustering unit 52 clusters the plurality of feature vectors extracted from the plurality of images (step S102).
- the clustering unit 52 may classify the feature vectors into a plurality of clusters using a known algorithm such as the k-means method.
- the clustering unit 52 generates a cluster having a plurality of hierarchies. More specifically, when the number of feature vectors belonging to a cluster in a certain hierarchy is greater than a predetermined number, the clustering unit 52 classifies feature vectors belonging to a lower level of the cluster into a plurality of clusters in a lower hierarchy. . In this case, there is a case where a cluster in a lower hierarchy does not exist even in a cluster in an upper hierarchy.
- the clustering unit 52 determines a representative vector of each cluster based on the feature vector belonging to each cluster (step S103). For example, the clustering unit 52 determines the centroid of the feature vector belonging to the cluster as a representative vector.
- the representative vector does not necessarily have to be the center of gravity, and may be any one of feature vectors belonging to the cluster.
- the clustering unit 52 may generate the representative vector by another method, such as not using clustering, as long as the search index has a characteristic that is appropriately calculated.
- FIG. 7 is a diagram schematically showing the relationship of the representative vectors 24 determined for the clusters C1 to C4 and the clusters C1 to C4.
- the highest cluster is shown for ease of explanation.
- the description of the feature vector 22 is omitted for the sake of brevity, and the point 23 indicated by a symbol such as a circle in FIG. 7 indicates the coordinates in the feature vector space indicated by the feature vector 22.
- the vector from the origin OP to the point 23 is the feature vector 22.
- the clustering unit 52 determines the representative vector 24 for each of the clusters C1 to C4.
- FIG. 8 is a diagram for explaining an example of the hierarchical structure of the cluster.
- a set CA of all feature vectors is divided into a plurality of clusters C1 to C128, and one or a plurality of feature vectors belong to each of the clusters C1 to C128.
- the number of feature vectors belonging to the cluster C1 is smaller than a predetermined threshold value
- the number of feature vectors belonging to the cluster C2 is larger than the threshold value. Therefore, the feature vectors belonging to the cluster C2 are classified into lower clusters C2_1 to C2_128.
- the hierarchy of the lowermost cluster to which a certain feature vector belongs may be different from the hierarchy of the lowermost cluster to which another feature vector belongs (for example, the hierarchy of cluster C2_2).
- the number of clusters below that cluster is two or more.
- the clustering unit 52 determines a representative vector for a cluster in any hierarchy. For example, a representative vector of cluster C2_1 exists as a lower representative vector of the representative vector of cluster C2. Further, regarding the relationship between representative vectors, a plurality of representative vectors representing a plurality of lower clusters correspond to one of the upper cluster representative vectors.
- the clustering unit 52 determines a representative vector corresponding to each of the plurality of feature vectors (step S104). More specifically, the clustering unit 52 determines the representative vector of the cluster to which the feature vector belongs as the representative vector corresponding to the feature vector. Note that the clustering unit 52 may determine the representative vector that is closest to the feature vector as the representative vector corresponding to the feature vector.
- the process of classifying feature vectors into clusters and determining representative vectors may be executed in advance on a server different from the image search server 1. In this case, the representative vector generated in advance is stored in the storage device, and the image search server 1 uses the representative vector stored in the storage device instead of the processing for determining the representative vector for the subsequent processing. Data may be read.
- the score value calculation unit 53 calculates a score value for each feature vector (step S105).
- the score value is a scalar value, not a vector.
- the score value indicates a similar magnitude between the feature vector and the representative vector corresponding to the feature vector.
- the score value may be a distance between a feature vector and a representative vector corresponding to the feature vector, a cosine similarity, or a value calculated from a similarity by a predetermined calculation formula. Also good.
- FIG. 9 is a diagram for explaining the relationship between a feature vector extracted from a certain image and a representative vector.
- a point 23 represented by a circle or square symbol indicates a feature vector extracted from a certain image.
- Points P1 to P3 represent representative vectors of the clusters C1 to C3, respectively.
- the distance L between the representative vector indicated by the point P1 and the feature vector associated with the representative vector is calculated as the score value.
- the feature value calculation unit 54 calculates a plurality of feature values for each of the images (step S106).
- the feature value calculator 54 calculates a feature value for each representative vector for each image.
- the feature value is a value indicating the feature of the image according to the representative vector.
- the feature value calculation unit 54 calculates feature values for a certain image and a representative vector based on score values obtained for one or a plurality of feature vectors corresponding to the representative vector among the feature vectors extracted from the image. To calculate.
- the feature value calculation unit 54 calculates the sum of the score values obtained for one or a plurality of feature vectors corresponding to a certain representative vector among the feature vectors extracted from a certain image as the feature value for the image and the representative vector Calculate as
- the calculation method of the feature value v i for the representative vector of the i-th cluster (hereinafter referred to as the i-th representative vector) for a certain image is expressed as follows.
- i is one of integers greater than or equal to 1 and less than the sum of the number of clusters in each layer.
- C i is the i th Visual Word, showing the i-th representative vectors in other words.
- the i-th cluster is one of all the clusters in each layer, and the number i is a kind of sequence number assigned to all the clusters in order.
- Di is a set of feature vectors corresponding to the i-th representative vector among the feature vectors extracted from the image to be calculated, and d is a feature vector included in the set. In the above formula, the sum of the distance between the feature vector and the representative vector is calculated as the feature value.
- the number of feature values calculated for an image is the same as the number of representative vectors, and the plurality of feature values form a kind of weighted histogram.
- FIG. 10 is a diagram illustrating an example of a plurality of feature values vi calculated for a certain image.
- a set of feature values for an image is a kind of vector, and is a vector (hereinafter referred to as “image vector”) indicating the feature of the image.
- image vector indicating the feature of the image.
- the data amount of the image vector is smaller than the data amount of the feature vector itself extracted from the image.
- the dimension of the image vector is constant regardless of the number of feature vectors extracted from the image.
- the cluster has a hierarchical structure
- the score value for the feature vector is not only the lower cluster but also the upper cluster (for example, The cluster C2) is also calculated as a non-zero value.
- the index generation unit 55 creates a search index whose data amount is smaller than the plurality of feature values by compressing the plurality of feature values calculated for each of the images. (Step S107). Also, the created search index is stored in the index storage unit 72 (step S108).
- the compression of the feature value is, for example, compression of the dimension of the image vector, and the index generation unit 55 uses the image vector whose dimension is compressed as the search index of the image.
- the dimension of the image vector is compressed by deep auto encoders (DAEs: “Deep” Autoencoders).
- the deep auto encoder is a calculation method using a so-called neural network.
- the index generation unit 55 learns that the input data and the output data are as identical as possible. Then, the value of the m-dimensional node when the image vector is input to the learned neural network is calculated as a compressed vector of the image vector.
- the auto-encoder can compress the dimension of the data so that important elements of the image vector are strongly influenced and unimportant elements are not affected.
- the index generation unit 55 uses the feature value of the image vector converted by the following expression at the time of learning and data compression as input data to the auto encoder. Yes.
- the dimensions of the image vector may be compressed by principal component analysis instead of the auto encoder.
- the auto encoder can generate a search index with higher accuracy than the principal component analysis.
- the query vector extraction unit 61 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the query vector extraction unit 61 extracts a plurality of query vectors indicating local features of the query image from the query image data input as the search condition.
- the query correspondence determination unit 62 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the query correspondence determination unit 62 selects a representative vector (and cluster) corresponding to each of the extracted query vectors.
- the query score value calculation unit 63 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the query score value calculation unit 63 calculates a score value indicating the size of similarity between each of the plurality of representative vectors and at least a part of the plurality of query vectors. For example, for each representative vector, the score value calculation unit 53 calculates the distance between the representative vector and each of a plurality of query vectors corresponding to the representative vector as a score value.
- the query feature value calculation unit 64 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the query feature value calculation unit 64 calculates a query feature value indicating a feature corresponding to the representative vector for each representative vector for the query image.
- the image search unit 65 is realized mainly by the processor 11 executing a program and controlling the storage unit 12.
- the image search unit 65 searches for an image similar to the query image based on the plurality of query feature values for the query image and the search index of the plurality of images stored in the index storage unit 72.
- FIG. 11 is a flowchart illustrating an example of processing of the search processing unit 60.
- the query vector extraction unit 61 extracts a query vector from a query image input as a search condition (step S201).
- the method in which the query vector extraction unit 61 extracts a query vector from the query image is the same as the method in which the feature vector extraction unit 51 extracts a feature vector.
- the query correspondence determining unit 62 selects a representative vector corresponding to each of the extracted query vectors (step S202). More specifically, the query correspondence determination unit 62 calculates the distance between the query vector and the representative vector for each query vector, and uses the representative vector with the shortest distance as the representative vector corresponding to the query vector. select. Note that the query correspondence determination unit 62 may select a representative vector corresponding to the query vector based on the similarity instead of the distance.
- the query score value calculation unit 63 calculates, for each query vector, a score value indicating the similarity between the representative vector and a plurality of query vectors corresponding to the representative vector (step) S203).
- the technique for calculating the score value from the representative vector and the query vector corresponding to the representative vector is the same as the technique in which the score value calculation unit 53 calculates the score value from the representative vector and the feature vector corresponding to the representative vector.
- the query feature value calculation unit 64 calculates, for each of the query images, a plurality of query feature values indicating features corresponding to the representative vector for each representative vector based on the score value (step S204).
- a method in which the query feature value calculation unit 64 calculates a plurality of query feature values based on the score values for the query image is a method in which the feature value calculation unit 54 calculates a plurality of feature values based on the score values for a certain image. Is the same.
- the image search unit 65 compresses the calculated plurality of query feature values and generates a search index search key (step S205).
- the image search unit 65 generates a search key by compressing a plurality of query feature values by the same method as the method in which the index generation unit 55 compresses a plurality of feature values and creates a search index for a certain image.
- the image search unit 65 searches for an image similar to the query image based on the search index stored in the index storage unit 72 and the search key generated based on the query image. (Step S206). More specifically, the image search unit 65 calculates a similar size (for example, distance) between the search key vector and the search index vector, and selects an image based on the similar size.
- a similar size for example, distance
- the score value calculation unit 53 and the query score value calculation unit 63 calculate the score value as a scalar value instead of a vector.
- a vector is calculated as a score value as described in Non-Patent Document 1
- the difference between a representative vector and a feature vector and the difference between the representative vector and another feature vector weaken each other. A matching phenomenon occurs. On the other hand, this phenomenon does not occur in the method according to the embodiment of the present invention.
- a decrease in accuracy that may occur in a configuration that calculates a vector as a score value can be suppressed.
- the score value is a scalar value
- the amount of information required for one visual word is smaller than that of a vector.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
より高い精度で類似の画像を検索すること。画像検索システムは、特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得し、前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出し、画像のそれぞれについて、前記スカラー値に基づき、代表ベクトルに応じた特徴を示す特徴値を代表ベクトルごとに算出し、前記算出された特徴値に関連する検索インデックスを作成する。
Description
本発明は画像検索システム、画像検索方法およびプログラムに関する。
ネットワーク技術等の発達によって、膨大な量の画像ファイルが管理されるようになっている。大量の画像からクエリ画像に類似する画像を検索する技術が一般に用いられるようになっている。画像の検索のための手法として、BoVモデル(Bug of Visual words Model)がある。BoVモデルでは、既知の手法により、画像のデータからそれぞれが画像の局所的な特徴を示す複数の特徴ベクトルを抽出する。特徴ベクトルのデータ量が大きいため、さらにそれぞれの特徴ベクトルに最も近いベクトルを有するビジュアルワード(Visual Words)を検索に用いることでデータ量を圧縮している。
非特許文献1には、画像の特徴を示すデータの量をさらに減らすために、ビジュアルワードごとに、そのビジュアルワードに対応する特徴ベクトルと、そのビジュアルワードを代表する代表ベクトルとの差(差分ベクトル)の合計(合計ベクトル)を求め、その合計ベクトルに応じたデータを記憶部に格納する手法が開示されている。この手法では、この合計ベクトルに応じたデータと、クエリ画像から取得される合計ベクトルに応じたデータとに基づいて、クエリ画像に類似する画像が検索される。
Jegou, H., Douze, M., Schmid, C., Perez, P.: Aggregating Local Descriptors into a Compact Image Representation. In: IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2010). IEEE, San Francisco, pp. 3304-3311 (2010)
特徴ベクトルとビジュアルワードの代表ベクトルとの差分ベクトルの合計をとると、例えば2つの特徴ベクトルについて差分ベクトルの方向が反対の場合に、合計ベクトルの各要素の値が小さくなる。このような場合には、画像の特徴が、その画像の検索に適切に反映されなかった。
本発明は上記課題を鑑みてなされたものであって、その目的は、より精度の高い画像検索技術を提供することである。
上記課題を解決するために、本発明にかかる画像検索システムは、特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得する代表ベクトル取得手段と、前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出するスカラー値算出手段と、画像のそれぞれについて、代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出する特徴値算出手段と、前記算出された特徴値に関連する検索インデックスを作成するインデックス作成手段と、を含む。
また、本発明にかかるプログラムは、特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得する代表ベクトル取得手段、前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出するスカラー値算出手段、画像のそれぞれについて、代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出する特徴値算出手段、および、前記算出された特徴値に関連する検索インデックスを作成するインデックス作成手段としてコンピュータを機能させる。
また、本発明にかかる画像検索方法は、特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得するステップと、前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出するステップと、画像のそれぞれについて、代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出するステップと、前記算出された特徴値に関連する検索インデックスを作成するステップと、を含む。
本発明によれば、より高い精度で画像を検索することができる。
本発明の一形態では、前記特徴値算出手段は、画像のそれぞれについて、前記代表ベクトルごとに、当該代表ベクトルと複数の前記特徴ベクトルとの間で算出された前記スカラー値の合計を特徴値として算出してもよい。
本発明の一形態では、前記スカラー値算出手段は、前記代表ベクトルのそれぞれについて、前記代表ベクトルと、当該代表ベクトルに対応する複数の特徴ベクトルのそれぞれとの距離をスカラー値として算出してもよい。
本発明の一形態では、前記代表ベクトル生成手段は、前記複数の特徴ベクトルのそれぞれに対応する代表ベクトルを決定してもよい。
本発明の一形態では、前記代表ベクトル生成手段は、複数の特徴ベクトルを複数のクラスタに分類し、それぞれ前記複数のクラスタのいずれかを代表する複数の代表ベクトルを生成してもよい。
本発明の一形態では、前記代表ベクトルは複数の第1代表ベクトルと、複数の第2代表ベクトルとを含み、前記複数の第2代表ベクトルのそれぞれは、前記複数の第1代表ベクトルのいずれかに対応し、前記代表ベクトル生成手段は、前記複数の特徴ベクトルのそれぞれを前記複数の第2代表ベクトルのうちいずれか1つと、前記1つの第2代表ベクトルに対応する第1代表ベクトルとに対応付けてよい。
本発明の一形態では、前記インデックス作成手段は、複数の画像のそれぞれについての複数の特徴値を圧縮することにより、データ量が前記複数の特徴値より小さいインデックスを生成してもよい。
本発明の一形態では、前記インデックス作成手段は、複数の画像のそれぞれについての複数の特徴値をオートエンコーダにより圧縮してもよい。
本発明の一形態では、前記代表ベクトル生成手段は、前記第1代表ベクトルに対応付けられる特徴ベクトルの数が所定数より多い場合に、当該第1代表ベクトルに対応する複数の第2代表ベクトルを生成し、前記第1代表ベクトルのうち少なくとも1つは、前記第2代表ベクトルのいずれにも対応しなくてもよい。
本発明の一形態では、画像検索システムは、前記検索インデックスと、クエリ画像から求められる特徴値とに基づいて、前記クエリ画像に類似する画像を検索する画像検索手段をさらに含んでもよい。
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
図1は、本発明の第1の実施形態にかかる画像検索システムの構成の一例を示す図である。画像検索システムは、画像検索サーバ1と、ユーザ端末2と、を含む。画像検索サーバ1は、画像検索プログラムやウェブサーバプログラム(httpdなど)が動作するサーバコンピュータであり、ユーザ端末2は、例えばウェブブラウザのプログラムが動作するパーソナルコンピュータや、スマートフォンである。画像検索サーバ1とユーザ端末2とは、ネットワーク3を介して互いに通信する。ネットワーク3は、例えばローカルエリアネットワークやインターネットである。
画像検索システムが画像検索を行う際の動作の概要は以下の通りである。はじめに、画像検索サーバ1は、ネットワーク3を介してユーザ端末2から画像検索に用いるクエリとなる画像(以下、「クエリ画像」と記述する)を取得する。次に画像検索サーバ1は、クエリ画像に類似する1または複数の画像を検索し、その画像のデータを例えばユーザ端末2に向けて出力する。
図2は、第1の実施形態にかかる画像検索サーバ1の構成の一例を示す図である。画像検索サーバ1は、プロセッサ11、記憶部12、通信部13および入出力部14を含む。
プロセッサ11は、記憶部12に格納されているプログラムに従って動作する。またプロセッサ11は通信部13や入出力部14を制御する。なお、上記プログラムは、インターネット等のネットワークを介して提供されるものであってもよいし、DVD-ROMやフラッシュメモリ等のコンピュータで読み取り可能な情報記憶媒体に格納されて提供されるものであってもよい。
記憶部12は、RAMやROM等のメモリ素子やハードディスクドライブ等によって構成されている。記憶部12は、上記プログラムを格納する。また、記憶部12は、各部から入力される情報や演算結果を格納する。
通信部13は、ユーザ端末2等の他の装置と通信する機能を実現するものであり、例えばネットワークカードのような通信手段で構成されている。ネットワークカードは、通信用の集積回路や通信端子を含んでいる。通信部13は、プロセッサ11の制御に基づいて、他の装置から受信した情報をプロセッサ11や記憶部12に入力し、他の装置に情報を送信する。
入出力部14は、表示出力デバイスをコントロールするビデオコントローラや、入力デバイスからのデータを取得するコントローラなどにより構成される。入力デバイスとしては、キーボード、マウス、タッチパネルなどがある。入出力部14は、プロセッサ11の制御に基づいて、表示出力デバイスに画像を表示させるデータを出力し、入力デバイスをユーザが操作することにより入力されるデータを取得する。表示出力デバイスは例えば外部に接続されるディスプレイ装置である。
ユーザ端末2は、画像検索サーバ1と同様にプロセッサ11、記憶部12、通信部13、入出力部14等を含む。ユーザ端末2は画像検索サーバ1等から受信したデータに基づいて画面を提示する機能や、その画面についてユーザが入力した情報を画像検索サーバ1に送信する機能を実現する。これらの機能は、例えばユーザ端末2に含まれるプロセッサ11等がブラウザなどのプログラムを実行し、画像検索サーバ1等から受信したデータに応じた処理をすることで実現される。またブラウザではなく、ユーザ端末2にインストールされた専用のアプリケーションプログラムによりこれらの機能が実現されてもよい。
図3は、画像検索システムが実現する機能を示すブロック図である。画像検索システムは、機能的に、インデックス処理部50、検索処理部60、画像データ格納部71、インデックス格納部72を含む。インデックス処理部50は、複数の画像のデータからそれらの画像の検索に用いるインデックスを生成する。検索処理部60は、検索条件となるクエリ画像と、インデックスとに基づいて、クエリ画像に類似する画像を検索する。インデックス処理部50、検索処理部60、画像データ格納部71、インデックス格納部72は、画像検索サーバ1に実装される。なお、画像データ格納部71、インデックス格納部72が別のサーバに実装されてもよいし、インデックス処理部50、検索処理部60が互いに異なるサーバに実装されてもよい。
画像データ格納部71は、主に記憶部12により実現される。画像データ格納部71は、検索の対象となる複数の画像のデータを格納する。インデックス格納部72は、主に記憶部12により実現される。インデックス格納部72は、インデックス生成部55により生成された画像のインデックスを格納する。
インデックス処理部50は機能的に特徴ベクトル抽出部51、クラスタリング部52、スコア値算出部53、特徴値算出部54、インデックス生成部55を含む。検索処理部60は機能的に、クエリベクトル検出部61、クエリ対応決定部62、クエリスコア値算出部63、クエリ特徴値算出部64、画像検索部65を含む。これらの機能は、プロセッサ11が記憶部12に格納されたプログラムを実行し、通信部13や入出力部14を制御することで実現される。
次に、インデックス処理部50の処理について説明する。
特徴ベクトル抽出部51は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。特徴ベクトル抽出部51は、画像データ格納部71に格納される複数の画像データから、それぞれ画像の局所的な特徴を示す複数の特徴ベクトルを抽出する。また、特徴ベクトル抽出部51は1つの画像について複数の特徴ベクトルを抽出する。1つの画像から抽出される特徴ベクトルの数は、画像に応じて決まり、通常の画像では300程度である。また特徴ベクトルの次元は、たとえば128次元である。
クラスタリング部52は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。クラスタリング部52は、抽出された複数の特徴ベクトルに基づいて複数の代表ベクトルを生成する。より具体的には、クラスタリング部52は複数の特徴ベクトルを複数のクラスタに分類し、それぞれ前記複数のクラスタのいずれかを代表する複数の代表ベクトルを、特徴ベクトルに基づいて生成する。またクラスタリング部52は、複数の特徴ベクトルのそれぞれを複数の代表ベクトルのいずれかに対応づける。ここで、クラスタのそれぞれは、BoVモデルにおけるビジュアルワード(Visual Word)に対応する。
スコア値算出部53は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。スコア値算出部53は、複数の代表ベクトルのそれぞれと、複数の特徴ベクトルの少なくとも一部との類似の大きさを示すスコア値を算出する。スコア値はスカラー値である。例えば、スコア値算出部53は、代表ベクトルのそれぞれについて、前記代表ベクトルと、当該代表ベクトルに対応する複数の特徴ベクトルのそれぞれとの距離をスコア値として算出する。
特徴値算出部54は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。特徴値算出部54は、画像のそれぞれについて、代表ベクトルごとに代表ベクトルに応じた特徴を示す特徴値を算出する。特徴値算出部54が、1つの画像について算出する特徴値の数は、代表ベクトルと同じである。
インデックス生成部55は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。インデックス生成部55は、算出された特徴値を含む検索インデックスを作成する。インデックスは画像ごとに生成され、インデックス生成部55は生成されたインデックスはその画像と関連付けてインデックス格納部72に格納する。
以下では、インデックス処理部50において行われる処理をより詳細に説明する。図4は、インデックス処理部50の処理の一例を示すフロー図である。
画像データからインデックスを作成する処理において、はじめに、特徴ベクトル抽出部51は、画像データ格納部71に格納された画像から、特徴ベクトルを抽出する(ステップS101)。特徴ベクトルを抽出する手法の詳細については公知であるので詳細な説明は省略する。局所的な特徴を示す特徴ベクトルを抽出する手法として、例えばSIFTと呼ばれる手法が存在する。
図5は、検索対象となる画像の一例を示す図である。図5の画像の例では、星条旗の一部が示されている。図6は、図5に示される画像から抽出された特徴ベクトル22を概略的に示す図である。画像のうち同じような特徴を有する複数の特徴点から、互いに類似する特徴ベクトルが抽出される。
特徴ベクトルが抽出されると、クラスタリング部52は、複数の画像から抽出された複数の特徴ベクトルをクラスタリングする(ステップS102)。クラスタリング部52は、k-means法などの公知のアルゴリズムを用いて特徴ベクトルを複数のクラスタに分類してよい。また、本実施形態においてクラスタリング部52は、複数の階層を有するクラスタを生成する。より具体的には、クラスタリング部52は、ある階層にあるクラスタに属する特徴ベクトルの数が所定数より多い場合に、そのクラスタの下位に属する特徴ベクトルをさらに下の階層の複数のクラスタに分類する。この場合、上位の階層にあるクラスタであっても、下位の階層のクラスタが存在しない場合がある。
また、クラスタリング部52は、各クラスタに属する特徴ベクトルに基づいて、各クラスタの代表ベクトルを決定する(ステップS103)。クラスタリング部52は、例えばクラスタに属する特徴ベクトルの重心を代表ベクトルとして決定する。代表ベクトルは、必ずしも重心でなくてもよく、クラスタに属する特徴ベクトルのいずれかであってもよい。またクラスタリング部52は、検索用のインデックスが適切に算出される特性を有すれば、クラスタリングを用いないなど、他の手法で代表ベクトルが生成されてもよい。
図7は、クラスタC1~C4およびクラスタC1~C4について決定される代表ベクトル24の関係を概略的に示す図である。図7では、説明の容易のため、最上位のクラスタのみ示している。また、記載を簡潔にするため特徴ベクトル22の記載は省略されており、図7における丸などの記号が示す点23は、特徴ベクトル22が示す特徴ベクトル空間内の座標を示している。図7の例では、原点OPから点23へ向かうベクトルが特徴ベクトル22となる。クラスタリング部52は、クラスタC1~C4ごとに代表ベクトル24を決定する。
図8は、クラスタの階層構造の一例を説明する図である。すべての特徴ベクトルの集合CAは、複数のクラスタC1~C128に分割され、それぞれのクラスタC1~C128には、1または複数の特徴ベクトルが属している。ここで、クラスタC1に属する特徴ベクトルの数は予め定められた閾値より小さく、クラスタC2に属する特徴ベクトルの数はその閾値より大きい。したがって、クラスタC2に属する特徴ベクトルは、その下位のクラスタC2_1~C2_128に分類されている。したがって、ある特徴ベクトルが属する最下層のクラスタの階層(例えばクラスタC1の階層)と、他の特徴ベクトルが属する最下層のクラスタの階層(例えばクラスタC2_2の階層)とが異なってよい。なお、あるクラスタの下位にクラスタが存在する場合、その下位のクラスタの数は2以上である。
また、クラスタリング部52は、どの階層のクラスタについても代表ベクトルを決定する。例えばクラスタC2の代表ベクトルの下位の代表ベクトルとしてクラスタC2_1の代表ベクトルが存在する。また、代表ベクトルの関係をみると、上位のクラスタの代表ベクトルのうち1つに、その下位の複数のクラスタを代表する複数の代表ベクトルが対応している。
代表ベクトルが決定されると、クラスタリング部52は、複数の特徴ベクトルのそれぞれに対応する代表ベクトルを決定する(ステップS104)。より具体的には、クラスタリング部52は、特徴ベクトルが属するクラスタの代表ベクトルを、その特徴ベクトルに対応する代表ベクトルとして決定する。なお、クラスタリング部52は、特徴ベクトルとの距離が最も近い代表ベクトルを、その特徴ベクトルに対応する代表ベクトルとして決定してもよい。なお、特徴ベクトルをクラスタに分類し、代表ベクトルを決定する処理は、画像検索サーバ1と異なるサーバにおいて予め実行されてもよい。この場合、予め生成された代表ベクトルを記憶装置に格納しておき、画像検索サーバ1は、以降の処理のために、代表ベクトルを決定する処理の代わりに、記憶装置に格納された代表ベクトルのデータを読み出してよい。
次に、スコア値算出部53は、特徴ベクトルのそれぞれについてスコア値を算出する(ステップS105)。ここで、スコア値はスカラー値であり、ベクトルではない。スコア値は、特徴ベクトルと、その特徴ベクトルに対応する代表ベクトルとの類似の大きさを示す。スコア値は、特徴ベクトルとその特徴ベクトルに対応する代表ベクトルとの距離であってもよいし、コサイン類似度であってもよいし、類似度から所定の計算式により算出された値であってもよい。
図9は、ある画像から抽出された特徴ベクトルと代表ベクトルとの関係を説明する図である。丸や四角の記号により表される点23は、ある画像から抽出された特徴ベクトルを示す。また点P1~P3は、それぞれクラスタC1~C3の代表ベクトルを示す。図9の例では、点P1が示す代表ベクトルと、その代表ベクトルに対応付けられた特徴ベクトルとの距離Lがスコア値として計算される。
スコア値が計算されると、特徴値算出部54は、画像のそれぞれについて複数の特徴値を算出する(ステップS106)。特徴値算出部54は、画像のそれぞれについて、代表ベクトルごとに特徴値を算出する。特徴値は、代表ベクトルに応じた画像の特徴を示す値である。特徴値算出部54は、ある画像およびある代表ベクトルについての特徴値を、その画像から抽出された特徴ベクトルのうち、その代表ベクトルに対応する1または複数の特徴ベクトルについて求められたスコア値に基づいて算出する。
例えば、特徴値算出部54は、ある画像から抽出された特徴ベクトルのうち、ある代表ベクトルに対応する1または複数の特徴ベクトルについて求められたスコア値の合計をその画像および代表ベクトルについての特徴値として算出する。ある画像についてのi番目のクラスタの代表ベクトル(以下ではi番目の代表ベクトルと記載する)についての特徴値viの算出方法を式で表すと以下のようになる。ここで、iは、1以上各階層のクラスタの数の総和以下の整数のうちいずれかである。
ここで、Ciはi番目のVisual Word、言い換えるとi番目の代表ベクトルを示す。ここで、i番目のクラスタは、各階層のクラスタすべてのうちいずれかであり、番号iは、すべてのクラスタに順に付与された一種のシーケンス番号である。Diは、算出対象の画像から抽出された特徴ベクトルのうち、i番目の代表ベクトルに対応する特徴ベクトルの集合であり、dはその集合に含まれる特徴ベクトルである。上記の式では、特徴ベクトルと代表ベクトルとの距離の和が特徴値として計算されている。
ある画像について算出された特徴値の数は代表ベクトルの数と同じであり、この複数の特徴値は一種の重み付きヒストグラムになる。図10は、ある画像について算出された複数の特徴値viの一例を示す図である。ある画像についての特徴値の集合は、一種のベクトルであり、画像の特徴を示すベクトル(以下では「画像ベクトル」と記載する)である。この画像ベクトルのデータ量は、画像から抽出される特徴ベクトルそのもののデータ量より小さい。また、画像ベクトルの次元は、画像から抽出される特徴ベクトルの数に関わらず一定となる。
ここで、クラスタが階層構造を有するため、下位のクラスタ(例えばクラスタC2_1)の代表ベクトルに特徴ベクトルが対応する場合、その特徴ベクトルについてのスコア値は下位のクラスタだけでなくその上位のクラスタ(例えばクラスタC2)についても0でない値として算出される。これにより、クラスタを細分化することにより比較に用いるデータ量を確保しつつ、少し異なるだけで全く違うものとして評価される可能性を減らすことができる。
画像のそれぞれについて複数の特徴値が算出されると、インデックス生成部55は、画像のそれぞれについて算出された複数の特徴値を圧縮することで、データ量が複数の特徴値より小さい検索インデックスを作成する(ステップS107)。また、作成された検索インデックスを、インデックス格納部72に格納する(ステップS108)。特徴値の圧縮は、例えば画像ベクトルの次元の圧縮であり、インデックス生成部55は次元が圧縮された画像ベクトルをその画像の検索インデックスとする。
本実施形態では、画像ベクトルの次元の圧縮は、ディープオートエンコーダ(DAEs: Deep Autoencoders)により行われる。ディープオートエンコーダはいわゆるニューラルネットワークを用いた計算手法である。インデックス生成部55は、k次元の入力データから、m次元(m<k)のノードを経てk次元の出力データを出力するニューラルネットワークにおいて、入力データと出力データが極力同一になるように学習し、その学習がなされたニューラルネットワークに画像ベクトルを入力した場合のm次元のノードの値をその画像ベクトルが圧縮されたベクトルとして算出する。オートエンコーダにより、画像ベクトルの重要な要素が強く影響し、重要でない要素が影響しないようにデータの次元を圧縮することができる。オートエンコーダに対する入力データの値を0以上1以下とするため、インデックス生成部55は、学習およびデータ圧縮の際に以下の式により変換された画像ベクトルの特徴値をオートエンコーダへの入力データにしている。
なお、オートエンコーダの代わりに主成分分析により画像ベクトルの次元を圧縮してもよい。ただし、主成分分析よりもオートエンコーダの方がより精度の高い検索インデックスを生成できる。
以下では、上記記載の手法により生成された検索インデックスを用いて画像を検索する検索処理部60の処理について説明する。
クエリベクトル抽出部61は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。クエリベクトル抽出部61は、検索条件として入力されたクエリ画像のデータから、クエリ画像の局所的な特徴を示す複数のクエリベクトルを抽出する。
クエリ対応決定部62は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。クエリ対応決定部62は、抽出された複数のクエリベクトルのそれぞれに対応する代表ベクトル(およびクラスタ)を選択する。
クエリスコア値算出部63は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。クエリスコア値算出部63は、複数の代表ベクトルのそれぞれと、複数のクエリベクトルの少なくとも一部との類似の大きさを示すスコア値を算出する。例えば、スコア値算出部53は、代表ベクトルのそれぞれについて、代表ベクトルと、その代表ベクトルに対応する複数のクエリベクトルのそれぞれとの距離をスコア値として算出する。
クエリ特徴値算出部64は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。クエリ特徴値算出部64は、クエリ画像について、代表ベクトルごとに代表ベクトルに応じた特徴を示すクエリ特徴値を算出する。
画像検索部65は、主にプロセッサ11がプログラムを実行し、記憶部12を制御することにより実現される。画像検索部65は、クエリ画像についての複数のクエリ特徴値と、インデックス格納部72に格納された複数の画像の検索インデックスとに基づいて、クエリ画像に類似する画像を検索する。
以下では、検索処理部60において行われる処理をより詳細に説明する。図11は、検索処理部60の処理の一例を示すフロー図である。
はじめに、クエリベクトル抽出部61は、検索条件として入力されたクエリ画像から、クエリベクトルを抽出する(ステップS201)。クエリベクトル抽出部61がクエリ画像からクエリベクトルを抽出する手法は、特徴ベクトル抽出部51が特徴ベクトルを抽出する手法と同じである。
つぎに、クエリ対応決定部62は、抽出された複数のクエリベクトルのそれぞれに対応する代表ベクトルを選択する(ステップS202)。より具体的には、クエリ対応決定部62は、クエリベクトルのそれぞれについて、クエリベクトルと代表ベクトルとの距離を算出し、その距離が最短となる代表ベクトルを、そのクエリベクトルに対応する代表ベクトルとして選択する。なお、クエリ対応決定部62は、距離の代わりに類似度に基づいてクエリベクトルに対応する代表ベクトルを選択してもよい。
代表ベクトルが選択されると、クエリスコア値算出部63は、クエリベクトルのそれぞれについて、代表ベクトルと、その代表ベクトルに対応する複数のクエリベクトルの類似の大きさを示すスコア値を算出する(ステップS203)。代表ベクトルおよびその代表ベクトルに対応するクエリベクトルからスコア値を算出する手法は、スコア値算出部53が代表ベクトルおよびその代表ベクトルに対応する特徴ベクトルからスコア値を算出する手法と同じである。
次に、クエリ特徴値算出部64は、クエリ画像のそれぞれについて、スコア値に基づいて、代表ベクトルごとに代表ベクトルに応じた特徴を示す複数のクエリ特徴値を算出する(ステップS204)。クエリ特徴値算出部64がクエリ画像について、スコア値に基づいて複数のクエリ特徴値を算出する手法は、特徴値算出部54が、ある画像についてスコア値に基づいて複数の特徴値を算出する手法と同じである。
そして、画像検索部65は、算出された複数のクエリ特徴値を圧縮し、検索インデックスの検索キーを生成する(ステップS205)。画像検索部65は、インデックス生成部55が、ある画像について、複数の特徴値を圧縮して検索インデックスを作成する手法と同じ手法により、複数のクエリ特徴値を圧縮して検索キーを生成する。
検索キーが生成されると、画像検索部65は、インデックス格納部72に格納された検索インデックスと、クエリ画像に基づいて生成された検索キーとに基づいて、クエリ画像に類似する画像を検索する(ステップS206)。より具体的には、画像検索部65は、検索キーのベクトルと検索インデックスのベクトルとの類似の大きさ(例えば距離)を算出し、その類似の大きさに基づいて画像を選択する。
本発明の実施形態にかかる手法においては、スコア値算出部53やクエリスコア値算出部63により、スコア値がベクトルではなくスカラー値として算出される。ここで、非特許文献1に記載のようなスコア値としてベクトルが算出される発明では、ある代表ベクトルと特徴ベクトルとの差と、その代表ベクトルと他の特徴ベクトルとの差が互いに特徴を弱めあう現象が生じる。一方、本発明の実施形態にかかる手法ではこの現象は生じない。これにより、例えば、ある画像に互いに類似する数多くの局所的特徴が含まれ、ある代表ベクトルに対応する特徴ベクトルの数が多い場合などに、スコア値としてベクトルを算出する構成で生じうる精度の低下を抑えることができる。また、本発明の実施形態では、スコア値がスカラー値であるので、1つのビジュアルワードについて必要な情報量がベクトルより少なくなる。これにより、画像検索において、特徴ベクトルとビジュアルワードとの違いの存在を考慮しつつ、より多くのビジュアルワードを扱うことができる。
Claims (12)
- 特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得する代表ベクトル取得手段と、
前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出するスカラー値算出手段と、
画像のそれぞれについて、代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出する特徴値算出手段と、
前記算出された特徴値に関連する検索インデックスを作成するインデックス作成手段と、
を含む画像検索システム。 - 請求項1に記載の画像検索システムにおいて、
前記特徴値算出手段は、画像のそれぞれについて、前記代表ベクトルごとに、当該代表ベクトルと複数の前記特徴ベクトルとの間で算出された前記スカラー値の合計を特徴値として算出する、
画像検索システム。 - 請求項1または2に記載の画像検索システムにおいて、
前記スカラー値算出手段は、前記代表ベクトルのそれぞれについて、前記代表ベクトルと、当該代表ベクトルに対応する複数の特徴ベクトルのそれぞれとの距離をスカラー値として算出する、
画像検索システム。 - 請求項1から3のいずれか一項に記載の画像検索システムにおいて、
前記代表ベクトル生成手段は、前記複数の特徴ベクトルのそれぞれに対応する代表ベクトルを決定する、
画像検索システム。 - 請求項4に記載の画像検索システムにおいて、
前記代表ベクトル生成手段は、複数の特徴ベクトルを複数のクラスタに分類し、それぞれ前記複数のクラスタのいずれかを代表する複数の代表ベクトルを生成する、
画像検索システム。 - 請求項4または5に記載の画像検索システムにおいて、
前記代表ベクトルは複数の第1代表ベクトルと、複数の第2代表ベクトルとを含み、
前記複数の第2代表ベクトルのそれぞれは、前記複数の第1代表ベクトルのいずれかに対応し、
前記代表ベクトル生成手段は、前記複数の特徴ベクトルのそれぞれを前記複数の第2代表ベクトルのうちいずれか1つと、前記1つの第2代表ベクトルに対応する第1代表ベクトルとに対応付ける、
画像検索システム。 - 請求項6に記載の画像検索システムにおいて、
前記インデックス作成手段は、複数の画像のそれぞれについての複数の特徴値を圧縮することにより、データ量が前記複数の特徴値より小さいインデックスを生成する、
画像検索システム。 - 請求項7に記載の画像検索システムにおいて、
前記インデックス作成手段は、複数の画像のそれぞれについての複数の特徴値をオートエンコーダにより圧縮する、
画像検索システム。 - 請求項4から8のいずれか一項に記載の画像検索システムにおいて、
前記代表ベクトル生成手段は、前記第1代表ベクトルに対応付けられる特徴ベクトルの数が所定数より多い場合に、当該第1代表ベクトルに対応する複数の第2代表ベクトルを生成し、前記第1代表ベクトルのうち少なくとも1つは、前記第2代表ベクトルのいずれにも対応しない、
画像検索システム。 - 請求項1から9のいずれか一項に記載の画像検索システムにおいて、
前記検索インデックスと、クエリ画像から求められる特徴値とに基づいて、前記クエリ画像に類似する画像を検索する画像検索手段をさらに含む画像検索システム。 - 特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得するステップと、
前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出するステップと、
画像のそれぞれについて、代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出するステップと、
前記算出された特徴値に関連する検索インデックスを作成するステップと、
を含む画像検索方法。 - 特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得する代表ベクトル取得手段、
前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出するスカラー値算出手段、
画像のそれぞれについて、代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出する特徴値算出手段、および、
前記算出された特徴値に関連する検索インデックスを作成するインデックス作成手段、
としてコンピュータを機能させるためのプログラム。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/312,250 US11301509B2 (en) | 2017-01-20 | 2017-01-20 | Image search system, image search method, and program |
| PCT/JP2017/001919 WO2018134964A1 (ja) | 2017-01-20 | 2017-01-20 | 画像検索システム、画像検索方法およびプログラム |
| JP2018518547A JP6378855B1 (ja) | 2017-01-20 | 2017-01-20 | 画像検索システム、画像検索方法およびプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2017/001919 WO2018134964A1 (ja) | 2017-01-20 | 2017-01-20 | 画像検索システム、画像検索方法およびプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018134964A1 true WO2018134964A1 (ja) | 2018-07-26 |
Family
ID=62907969
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2017/001919 Ceased WO2018134964A1 (ja) | 2017-01-20 | 2017-01-20 | 画像検索システム、画像検索方法およびプログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11301509B2 (ja) |
| JP (1) | JP6378855B1 (ja) |
| WO (1) | WO2018134964A1 (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109033472A (zh) * | 2018-09-05 | 2018-12-18 | 深圳灵图慧视科技有限公司 | 图片检索方法及装置、计算机设备及计算机可读介质 |
| CN111159443A (zh) * | 2019-12-31 | 2020-05-15 | 深圳云天励飞技术有限公司 | 一种图像特征值的搜索方法、装置及电子设备 |
| WO2020108234A1 (zh) * | 2018-11-30 | 2020-06-04 | Oppo广东移动通信有限公司 | 图像索引生成方法、图像搜索方法、装置、终端及介质 |
| CN112889116A (zh) * | 2018-10-05 | 2021-06-01 | 第一百欧有限公司 | 检索病理图像的系统及方法 |
| JP2023500222A (ja) * | 2020-02-18 | 2023-01-05 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | 系列マイニングモデルの訓練方法、系列データの処理方法、系列マイニングモデルの訓練装置、系列データの処理装置、コンピュータ機器、及びコンピュータプログラム |
| JP2024156219A (ja) * | 2021-07-02 | 2024-11-01 | フジツウ テクノロジー ソリューションズ ゲーエムベーハー | レーストラックのaiベースのモニタリング |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12147468B2 (en) * | 2018-12-13 | 2024-11-19 | Sap Se | On-demand variable feature extraction in database environments |
| US11442949B2 (en) * | 2019-09-16 | 2022-09-13 | Sap Se | Semantic search of application rules |
| CN114245896A (zh) * | 2019-10-31 | 2022-03-25 | 北京欧珀通信有限公司 | 向量查询方法、装置、电子设备及存储介质 |
| CN110865787B (zh) * | 2019-11-25 | 2024-11-05 | 京东方科技集团股份有限公司 | 图像处理方法、服务端、客户端和图像处理系统 |
| US11461594B2 (en) | 2020-03-23 | 2022-10-04 | Raytheon Company | Transform disentangling auto-encoder and related methods |
| CN112328819B (zh) * | 2020-11-07 | 2023-08-18 | 嘉兴智设信息科技有限公司 | 一种基于图片集推荐相似图片的方法 |
| JP7530808B2 (ja) * | 2020-11-18 | 2024-08-08 | 富士フイルム株式会社 | 撮影システム、サーバ、通信端末、撮影方法、プログラムおよび記録媒体 |
| CN116662588B (zh) * | 2023-08-01 | 2023-10-10 | 山东省大数据中心 | 一种海量数据智能搜索方法及系统 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011128773A (ja) * | 2009-12-16 | 2011-06-30 | Yahoo Japan Corp | 画像検索装置、画像検索方法及びプログラム |
| US20170004399A1 (en) * | 2015-07-01 | 2017-01-05 | Ricoh Company, Ltd. | Learning method and apparatus, and recording medium |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3906170B2 (ja) * | 2003-03-07 | 2007-04-18 | 株式会社東芝 | 高次元テクスチャを合成する装置および方法およびプログラム |
| JP5374078B2 (ja) * | 2008-06-16 | 2013-12-25 | オリンパス株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
| JP5178662B2 (ja) * | 2009-07-31 | 2013-04-10 | 富士フイルム株式会社 | 画像処理装置及び方法、データ処理装置及び方法、並びにプログラム |
| JP5577372B2 (ja) * | 2012-03-29 | 2014-08-20 | 楽天株式会社 | 画像検索装置、画像検索方法、プログラムおよびコンピュータ読取り可能な記憶媒体 |
| US10424052B2 (en) * | 2015-09-15 | 2019-09-24 | Peking University Shenzhen Graduate School | Image representation method and processing device based on local PCA whitening |
| CN116546221A (zh) * | 2016-02-05 | 2023-08-04 | 渊慧科技有限公司 | 使用神经网络压缩图像 |
-
2017
- 2017-01-20 WO PCT/JP2017/001919 patent/WO2018134964A1/ja not_active Ceased
- 2017-01-20 US US16/312,250 patent/US11301509B2/en active Active
- 2017-01-20 JP JP2018518547A patent/JP6378855B1/ja active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011128773A (ja) * | 2009-12-16 | 2011-06-30 | Yahoo Japan Corp | 画像検索装置、画像検索方法及びプログラム |
| US20170004399A1 (en) * | 2015-07-01 | 2017-01-05 | Ricoh Company, Ltd. | Learning method and apparatus, and recording medium |
Non-Patent Citations (3)
| Title |
|---|
| FRAUNDORFER, F. ET AL.: "Visual Word based Location Recognition in 3D models using Distance Augmented Weighting", FOURTH INTERNATIONAL SYMPOSIUM ON 3D DATA PROCESSING, VISUALIZATION AND TRANSMISSION, 18 June 2008 (2008-06-18), XP055514069 * |
| JIANG, Y. ET AL.: "Visual word proximity and linguistics for semantic video indexing and near-duplicate retrieval", COMPUTER VISION AND IMAGE UNDERSTANDING, vol. 113, no. 3, March 2009 (2009-03-01), pages 405 - 414, XP025915557 * |
| NISTER, D. ET AL.: "Scalable Recognition with a Vocabulary Tree", CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION, 2006 IEEE COMPUTER SOCIETY , NEW YORK, NY, USA, 17 June 2006 (2006-06-17), pages 2161 - 2168, XP010923119, ISSN: 1063-6919 * |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109033472A (zh) * | 2018-09-05 | 2018-12-18 | 深圳灵图慧视科技有限公司 | 图片检索方法及装置、计算机设备及计算机可读介质 |
| CN112889116A (zh) * | 2018-10-05 | 2021-06-01 | 第一百欧有限公司 | 检索病理图像的系统及方法 |
| WO2020108234A1 (zh) * | 2018-11-30 | 2020-06-04 | Oppo广东移动通信有限公司 | 图像索引生成方法、图像搜索方法、装置、终端及介质 |
| CN111159443A (zh) * | 2019-12-31 | 2020-05-15 | 深圳云天励飞技术有限公司 | 一种图像特征值的搜索方法、装置及电子设备 |
| CN111159443B (zh) * | 2019-12-31 | 2022-03-25 | 深圳云天励飞技术股份有限公司 | 一种图像特征值的搜索方法、装置及电子设备 |
| JP2023500222A (ja) * | 2020-02-18 | 2023-01-05 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | 系列マイニングモデルの訓練方法、系列データの処理方法、系列マイニングモデルの訓練装置、系列データの処理装置、コンピュータ機器、及びコンピュータプログラム |
| JP7403909B2 (ja) | 2020-02-18 | 2023-12-25 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | 系列マイニングモデルの訓練装置の動作方法、系列データの処理装置の動作方法、系列マイニングモデルの訓練装置、系列データの処理装置、コンピュータ機器、及びコンピュータプログラム |
| JP2024156219A (ja) * | 2021-07-02 | 2024-11-01 | フジツウ テクノロジー ソリューションズ ゲーエムベーハー | レーストラックのaiベースのモニタリング |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2018134964A1 (ja) | 2019-01-24 |
| US20190205331A1 (en) | 2019-07-04 |
| US11301509B2 (en) | 2022-04-12 |
| JP6378855B1 (ja) | 2018-08-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6378855B1 (ja) | 画像検索システム、画像検索方法およびプログラム | |
| US11416710B2 (en) | Feature representation device, feature representation method, and program | |
| JP5121917B2 (ja) | 画像検索装置、画像検索方法及びプログラム | |
| KR101191223B1 (ko) | 이미지 검색 방법, 장치, 및 이 방법을 실행하기 위한 컴퓨터 판독 가능한 기록 매체 | |
| KR20010053788A (ko) | 내용기반 이미지 검색 시스템 및 그 방법 | |
| CN109242002A (zh) | 高维数据分类方法、装置及终端设备 | |
| Xiao et al. | Motion retrieval using weighted graph matching | |
| WO2019167784A1 (ja) | 位置特定装置、位置特定方法及びコンピュータプログラム | |
| JPWO2020095357A1 (ja) | 検索ニーズ評価装置、検索ニーズ評価システム、及び検索ニーズ評価方法 | |
| JP4556120B2 (ja) | 情報処理装置および方法、並びにプログラム | |
| Korrapati et al. | Vision-based sparse topological mapping | |
| CN115203408A (zh) | 一种多模态试验数据智能标注方法 | |
| CN110390356A (zh) | 视觉词典生成方法及装置、存储介质 | |
| JP3903613B2 (ja) | 検索装置及び検索プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
| Zagoris et al. | Image retrieval systems based on compact shape descriptor and relevance feedback information | |
| JP5520353B2 (ja) | BoF表現生成装置及びBoF表現生成方法 | |
| JP6924450B2 (ja) | 検索ニーズ評価装置、検索ニーズ評価システム、及び検索ニーズ評価方法 | |
| WO2022176333A1 (ja) | 分類装置、分類方法、および、分類プログラム | |
| CN113255752A (zh) | 基于特征聚类的固体材料一致性分选方法 | |
| Luqman et al. | Subgraph spotting through explicit graph embedding: An application to content spotting in graphic document images | |
| JP5391876B2 (ja) | 代表特徴抽出システム、方法およびプログラム | |
| JP6283308B2 (ja) | 画像辞書構成方法、画像表現方法、装置、及びプログラム | |
| CN107862328A (zh) | 信息元集合生成方法及基于规则引擎的规则执行方法 | |
| Nayef et al. | Efficient symbol retrieval by building a symbol index from a collection of line drawings | |
| Pardede et al. | SVM Relevance Feedback in HSV Quantization for CBIR. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ENP | Entry into the national phase |
Ref document number: 2018518547 Country of ref document: JP Kind code of ref document: A |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17892341 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 17892341 Country of ref document: EP Kind code of ref document: A1 |