JP5577371B2 - 画像検索装置、画像検索方法およびプログラム - Google Patents

画像検索装置、画像検索方法およびプログラム Download PDF

Info

Publication number
JP5577371B2
JP5577371B2 JP2012078343A JP2012078343A JP5577371B2 JP 5577371 B2 JP5577371 B2 JP 5577371B2 JP 2012078343 A JP2012078343 A JP 2012078343A JP 2012078343 A JP2012078343 A JP 2012078343A JP 5577371 B2 JP5577371 B2 JP 5577371B2
Authority
JP
Japan
Prior art keywords
image
feature vector
query
search target
image feature
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.)
Active
Application number
JP2012078343A
Other languages
English (en)
Other versions
JP2013206436A5 (ja
JP2013206436A (ja
Inventor
アリ ジェヴァヒル
順次 鳥居
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rakuten Group Inc
Original Assignee
Rakuten Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to JP2012078343A priority Critical patent/JP5577371B2/ja
Application filed by Rakuten Inc filed Critical Rakuten Inc
Priority to ES13769777.7T priority patent/ES2665504T3/es
Priority to US14/388,815 priority patent/US9940366B2/en
Priority to CN201380018098.7A priority patent/CN104221015B/zh
Priority to EP13769777.7A priority patent/EP2833275B1/en
Priority to PCT/JP2013/059546 priority patent/WO2013147166A1/ja
Publication of JP2013206436A publication Critical patent/JP2013206436A/ja
Publication of JP2013206436A5 publication Critical patent/JP2013206436A5/ja
Application granted granted Critical
Publication of JP5577371B2 publication Critical patent/JP5577371B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content

Description

本発明は画像検索装置、画像検索方法、プログラムおよびコンピュータ読取り可能な記憶媒体に関する。
ネットワーク技術等の発達によって、膨大な量の画像ファイルが管理されるようになっている。その大量の画像の中から、クエリとなる画像(クエリ画像)に類似する画像を選び出す画像検索技術がある。画像検索技術の1つとして画像の局所的な特徴を示す局所特徴量を用いるものがあり、また、大量の画像から短いレスポンス時間で類似画像を検索するため、一般的な手法ではクエリ画像との類似の度合いを示すスコアを簡略的に計算している。
上述の手法の1つが、BoF(Bag of Features)法と呼ばれるものである。この手法は、BoW(Bag of Words)法と呼ばれる文書検索の手法を応用したものである。BoF法では、検索対象となる画像から抽出される局所特徴量(以下では「画像特徴量」と記す)のそれぞれをBoW法における単語に相当するVisual Word(ビジュアルワード)に対応させて記憶しておく。具体的には画像特徴量をクラスタリングし、クラスタをVisual Wordに対応させる。そして、検索をする際にクエリとなる画像から複数の局所特徴量(以下では「クエリ特徴量」と記す)を抽出し、その局所特徴量のそれぞれに対応するVisual Wordを取得する。そして、そのVisual Wordの出現頻度を統計的に処理することで、クエリ画像と検索対象となる画像との類似の度合いを示すスコアを生成し、類似の画像を検索する。
特許文献1には、Visual Wordを用いて画像を検索する手法の概要および、画像から抽出される画像特徴量ベクトルとその画像に関連づけられた文章から抽出されるメディア特徴量ベクトルとを結合させて画像を検索する技術が開示されている。
特開2011−103082号公報
上述のようなスコアの計算手法では、必要な検索精度が得られない場合がある。例えば、BoF法では、ビジュアルワードに変換されたクエリ特徴量の出現頻度によりスコアが計算されるため、ビジュアルワードに対応するクラスタのクラスタサイズや、クラスタリングの精度によって、スコアの精度が低下してしまう。この現象は、ビジュアルワードに対応する画像特徴量の数を大きくするとより顕著になる。なお、ビジュアルワードに対応する画像特徴量の数を小さくすればよいものでもない。ビジュアルワードを判定する際のミスが生じ易くなるからである。
本発明は上記課題を鑑みてなされたものであって、その目的は、BoF法のように、クエリ特徴量に対応する画像特徴量の出現頻度によりクエリ画像と検索対象となる画像との類似の度合いを評価する場合よりも、高い精度で画像を検索することができる技術を提供することである。
上記課題を解決するために、本発明にかかる画像検索装置は、クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するクエリ特徴ベクトル取得手段と、検索対象となる複数の画像の局所的な特徴をそれぞれ示し記憶手段に記憶される複数の画像特徴ベクトルと、前記複数のクエリ特徴ベクトルとの近さに基づいて、前記記憶手段に記憶される複数の画像特徴ベクトルから、前記複数のクエリ特徴ベクトルのそれぞれに対応する複数の画像特徴ベクトルを選択する画像特徴ベクトル選択手段と、複数の画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、前記選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該画像の画像スコアを生成するスコア生成手段と、前記画像スコアに基づいて、前記検索対象となる複数の画像のうち少なくとも1つを選択する画像選択手段と、を含むことを特徴とする。
また、本発明にかかるプログラムは、クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するクエリ特徴ベクトル取得手段、検索対象となる複数の画像の局所的な特徴をそれぞれ示し記憶手段に記憶される複数の画像特徴ベクトルと、前記複数のクエリ特徴ベクトルとの近さに基づいて、前記記憶手段に記憶される複数の画像特徴ベクトルから、前記複数のクエリ特徴ベクトルのそれぞれに対応する複数の画像特徴ベクトルを選択する画像特徴ベクトル選択手段、複数の画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、前記選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該画像の画像スコアを生成するスコア生成手段、および、前記画像スコアに基づいて、前記検索対象となる複数の画像のうち少なくとも1つを選択する画像選択手段、としてコンピュータを機能させる。
また、本発明にかかる画像検索方法は、クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するステップと、検索対象となる複数の画像の局所的な特徴をそれぞれ示し記憶手段に記憶される複数の画像特徴ベクトルと、前記複数のクエリ特徴ベクトルとの近さに基づいて、前記記憶手段に記憶される複数の画像特徴ベクトルから、前記複数のクエリ特徴ベクトルのそれぞれに対応する複数の画像特徴ベクトルを選択するステップ、複数の画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、前記選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該画像の画像スコアを生成するステップと、前記画像スコアに基づいて、前記検索対象となる複数の画像のうち少なくとも1つを選択するステップと、を含むことを特徴とする。
また、本発明にかかるコンピュータ読み取り可能な記憶媒体は、クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するクエリ特徴ベクトル取得手段、検索対象となる複数の画像の局所的な特徴をそれぞれ示し記憶手段に記憶される複数の画像特徴ベクトルと、前記複数のクエリ特徴ベクトルとの近さに基づいて、前記記憶手段に記憶される複数の画像特徴ベクトルから、前記複数のクエリ特徴ベクトルのそれぞれに対応する複数の画像特徴ベクトルを選択する画像特徴ベクトル選択手段、複数の画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、前記選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該画像の画像スコアを生成するスコア生成手段、および、前記画像スコアに基づいて、前記検索対象となる複数の画像のうち少なくとも1つを選択する画像選択手段、としてコンピュータを機能させるためのプログラムを格納する。
本発明によれば、クエリ特徴量に対応する画像特徴量の出現頻度のみに基づいて、クエリ画像と検索対象となる画像との類似の度合いを評価する場合よりも、高い精度で画像を検索することができる。
本発明の一態様では、前記記憶手段に記憶される複数の画像特徴ベクトルが分類される複数のクラスタから、前記複数のクエリ特徴ベクトルのそれぞれに対応するクラスタを選択するクラスタ選択手段をさらに含み、前記画像特徴ベクトル選択手段は、前記複数のクエリ特徴ベクトルと、前記選択されるクラスタに属する画像特徴ベクトルとの近さに基づいて、前記複数のクエリ特徴ベクトルに対応する画像特徴ベクトルを選択してもよい。
本態様によれば、画像の検索速度を向上させることができる。
本発明の一態様では、前記選択された複数の画像特徴ベクトルのそれぞれと、前記選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さは、当該画像特徴ベクトルと当該クエリ特徴ベクトルとの距離であってもよい。
本発明の一態様では、前記画像特徴ベクトル選択手段は、前記選択されるクラスタに属する画像特徴ベクトルのうちから、前記複数のクエリ特徴ベクトルとの距離が所定の閾値より小さい画像特徴ベクトルを選択してもよい。
本態様によれば、閾値を変更することにより、検索精度をコントロールすることができる。
第1の実施形態にかかる画像検索システムの構成の一例を示す図である。 第1の実施形態にかかる画像検索装置の構成の一例を示す図である。 並列計算装置の構成の一例を示す図である。 第1の実施形態にかかる画像検索装置の機能を示す機能ブロック図である。 第1の実施形態にかかるインデックス生成部の機能構成を示す機能ブロック図である。 検索対象となる画像の一例を示す図である。 画像から抽出される画像特徴ベクトルの概念を示す図である。 代表ベクトルの木構造の一例を示す図である。 第1の実施形態にかかる画像検索部の機能構成を示す機能ブロック図である。 第1の実施形態にかかる画像検索部の処理の概略的な処理フローの一例を示す図である。 装置内メモリでのデータ配置の一例を示す図である。 装置内メモリでの代表ベクトルの配置の一例を示す図である。 クエリとなる画像を入力する画面の一例を示す図である。 距離計算の処理フローの一例を示す図である。 クエリ画像から抽出されるクエリ特徴ベクトルと、検索対象となる複数の画像から抽出される画像特徴ベクトルとの対応の一例を示す図である。 画像特徴ベクトル選択部の処理フローの一例を示す図である。 クエリ特徴ベクトルに対して画像特徴ベクトルを選択する場合の例を示す図である。 クエリ画像における局所的特徴と、検索対象となる画像における局所的な特徴との対応の一例を示す図である。 クエリ画像における局所的特徴と、検索対象となる画像における局所的な特徴との対応の比較例を示す図である。 クエリ特徴ベクトルと画像特徴ベクトルの距離のばらつきの一例を示す図である。 クエリ特徴ベクトルに対応する画像を統計処理した結果の一例を示す図である。 クラスタ画像特徴量格納部に格納されるデータの一例を示す図である。 第2の実施形態にかかる画像検索部の機能構成を示す機能ブロック図である。 第2の実施形態にかかる画像検索部の処理の概要を示す処理フローの一例を示す図である。 3番目の画像特徴クラスタにおける画像特徴ベクトルの分布とクエリ特徴ベクトルによる選択とを説明する図である。 画像スコアを生成するために用いられる転置行列の一例を示す図である。 第3の実施形態にかかる画像検索部の処理の概要を示す処理フローの一例を示す図である。
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
[第1の実施形態]
図1は、本発明の第1の実施形態にかかる画像検索システムの構成の一例を示す図である。画像検索システムは、画像検索装置1と、ウェブサーバ2と、クライアント装置3とを含む。ウェブサーバ2は、例えばウェブサーバプログラムが動作するサーバハードウェアであり、クライアント装置3は、例えばウェブブラウザのプログラムが動作するパーソナルコンピュータや、スマートフォンである。画像検索システムは画像検索を行う動作の概要は以下の通りである。はじめに、ウェブサーバ2は、インターネット等のネットワークを介してクライアント装置3から画像検索に用いるクエリとなる画像(以下、「クエリ画像」と記述する)を取得し、そのクエリ画像を画像検索装置1に入力させる。次に画像検索装置1は、入力された画像に類似する1または複数の画像を検索し、ウェブサーバ2に出力する。ウェブサーバ2は、画像検索装置1が検索した画像をクライアント装置3に表示させるデータを出力する。
図2は、第1の実施形態にかかる画像検索装置1の構成の一例を示す図である。画像検索装置1は、CPU11、記憶部12、通信部13、並列計算装置14およびバス15を含む。
CPU11は、記憶部12に格納されているプログラムに従って動作する。またCPU11は通信部13や並列計算装置14を制御する。なお、上記プログラムは、インターネット等のネットワークを介して提供されるものであってもよいし、DVD−ROMやUSBメモリ等のコンピュータで読み取り可能な情報記憶媒体に格納されて提供されるものであってもよい。
記憶部12は、RAMやROM等のメモリ素子やハードディスクドライブ等によって構成されている。記憶部12は、上記プログラムを格納する。また、記憶部12は、各部から入力される情報や演算結果を格納する。
通信部13は、ウェブサーバ2等の他の装置と通信する機能を実現するものであり、例えばネットワークカードのような通信手段で構成されている。ネットワークカードは、通信用の集積回路や通信端子を含んでいる。通信部13は、CPU11の制御に基づいて、他の装置から受信した情報をCPU11や記憶部12に入力し、他の装置に情報を送信する。
バス15は、CPU11、記憶部12、通信部13および並列計算装置14との間でデータをやりとりする経路を構成する。例えば、CPU11や記憶部12と並列計算装置14とはバス15の中の拡張バスを介して接続される。
並列計算装置14は、並列計算によって同種の計算を大量に行うことを得意とするハードウェアである。並列計算装置14は、例えばGPU(Graphics Processing Unit)である。図3は、並列計算装置14の構成の一例を示す図である。並列計算装置14は、複数の並列実行部40と、装置内メモリ45とを含む。また各並列実行部40は、複数のプロセッサ41と、命令ユニット42と、高速メモリ43とを含む。
複数のプロセッサ41のそれぞれは、浮動小数点計算や、装置内メモリ45や高速メモリ43との間でのデータの読込みや書込み等の処理を行う。命令ユニット42は、装置内メモリ45等に格納されるプログラムに基づいて、その命令ユニット42を含む並列実行部40に含まれる複数のプロセッサ41に処理をさせる。ある並列実行部40に含まれる複数のプロセッサ41は、その並列実行部40に含まれる一つの命令ユニット42からの指示によって、同一の命令を処理する。こうすると、複数のプロセッサ41を1つの命令ユニット42で制御できるため、命令ユニット42の回路の規模の増加を抑えることができる。並列計算装置14に含まれるプロセッサ41の数をCPU11に比べて増やすことが可能になり、特定の計算処理では、複数の独立性の高いプロセッサを用いる場合より高速化が容易になる。
装置内メモリ45は、DRAMからなり、そのDRAMは記憶部12に用いられるRAMより高速にアクセス可能なものである。装置内メモリ45は、バス15を介して、CPU11や記憶部12と接続されている。なお、並列計算装置14は、DMA転送により装置内メモリ45と記憶部12との間でデータを転送する回路も有する。高速メモリ43は、装置内メモリ45より高速にアクセス可能なSRAM等からなる。プロセッサ41が高速メモリ43にアクセスする際のレイテンシは、プロセッサ41がその内部レジスタにアクセスする際のレイテンシとほとんど変わらない。ここで、装置内メモリ45も高速メモリ43も複数のプロセッサ41から共通にアクセスできる共通メモリである。
図4は、第1の実施形態にかかる画像検索装置1の機能を示す機能ブロック図である。画像検索装置1は、機能的に、インデックス生成部51、および画像検索部52を含む。これらの機能は、CPU11が記憶部12に格納されたプログラムを実行し、通信部13や並列計算装置14を制御し、また、並列計算装置14がその並列計算装置14向けのプログラムを実行することで実現される。
[インデックスの生成]
以下では、画像特徴ベクトル22をクラスタに分類し、インデックスを生成する処理について説明する。
インデックス生成部51は、検索対象となる複数の画像から、画像検索の際に用いる画像特徴ベクトル22や、その画像特徴ベクトル22の選択を容易にするインデックスを生成する。画像検索部52は、インデックスや画像特徴ベクトル22を用いて、クエリ画像に類似する画像を検索する。
図5は、インデックス生成部51の機能構成を示す機能ブロック図である。インデックス生成部51は、機能的に、画像特徴ベクトル抽出部61と、クラスタ生成部62とを含む。クラスタ生成部62は、クラスタのインデックスとなる代表ベクトルの木構造を生成し、木構造代表ベクトル格納部72にインデックスに関連する情報を格納する。また、クラスタベクトル格納部71は、その木構造の葉となるクラスタ(代表ベクトルが代表するクラスタ)に属する画像特徴ベクトル22の情報を格納する。クラスタベクトル格納部71、木構造代表ベクトル格納部72は、具体的には記憶部12により構成される。
画像特徴ベクトル抽出部61は、主にCPU11、記憶部12および並列計算装置14により実現される。画像特徴ベクトル抽出部61は、記憶部12に格納されている複数の画像であって検索対象となる複数の画像のそれぞれから、1または複数の画像特徴ベクトル22を抽出する。また、画像特徴ベクトル抽出部61は、抽出された画像特徴ベクトル22を、その画像特徴ベクトル22が抽出された画像と関連付けて記憶部12に記憶させる。
図6は、検索対象となる画像の一例を示す図である。図7は、画像から抽出される画像特徴ベクトル22の概念を示す図である。画像から抽出される画像特徴ベクトル22のそれぞれは、その画像の局所的な特徴を示す局所特徴量である。画像特徴ベクトル22のそれぞれは、例えば128の要素(次元)をもつベクトルである。画像から画像特徴ベクトル22を抽出するために、SIFT(Scale-Invariant Feature transform)、SURF(Speeded Up Robust Features)などの公知の手法を用いてよい。画像特徴ベクトル22のそれぞれが有する要素の数は、画像からの抽出の手法などに応じて変化させてよい。また1つの画像から抽出される画像特徴ベクトル22の数は、予め定められた数(例えば300)としてよいが、単純な画像から抽出される画像特徴ベクトル22の数はその予め定められた数より少なくなってもよい。
クラスタ生成部62は、主にCPU11、記憶部12および並列計算装置14により実現される。クラスタ生成部62は、クラスタリングにより、画像特徴ベクトル抽出部61により抽出された複数の画像特徴ベクトル22の少なくとも一部を複数のクラスタに分類する。言い換えれば、抽出された画像特徴ベクトル22の少なくとも一部が分類される複数のクラスタを生成する。また、それらのクラスタのそれぞれを代表する代表ベクトルを生成する。画像特徴ベクトル22が分類されるクラスタは多段階であってよい。それに対応し、クラスタに分類する処理は1段階の処理とは限らず、多段階の処理であってよい。以下では、その多段階の処理を再帰的に呼び出すことにより実現する処理の例について説明する。なお、具体的な例では、2段階の処理を行っており、1段目で画像特徴ベクトル抽出部61により抽出された複数の画像特徴ベクトル22を1024個のクラスタに分類し、さらに2段目でその1024個のクラスタのそれぞれを512個のクラスタに分類する。
クラスタ生成部62の各段の処理では、クラスタリングにより、与えられた複数の画像特徴ベクトル22を与えられた個数のクラスタに分類し、複数のクラスタを生成し、さらにその生成されたクラスタの代表ベクトルを生成し、生成された代表ベクトルをその段の代表ベクトルとして木構造代表ベクトル格納部72に格納する。処理中の段が最下段でない場合は、クラスタ生成部62は処理中の段で生成されたクラスタのそれぞれに属する複数の画像特徴ベクトル22を入力情報として、次の段の処理を再帰的に呼び出す。代表ベクトルは、例えばその分類されたクラスタに属する画像特徴ベクトル22の重心であり、そのクラスタを代表するベクトルである。またクラスタ生成部62は、最下段の処理で生成されたクラスタごとに、そのクラスタに属する画像特徴ベクトル22をクラスタベクトル格納部71に格納する。
上述の例の場合、1段目の処理では、クラスタ生成部62は、与えられた画像特徴ベクトル22を1024個のクラスタに分類し、その分類された1段目の各クラスタの代表ベクトルを生成し、生成された1段目の代表ベクトルを木構造代表ベクトル格納部72に格納する。2段目の処理では、クラスタ生成部62は、1段目に生成された1024個のクラスタのそれぞれに属する複数の画像特徴ベクトル22を入力情報として、更に512個のクラスタに分類し、その分類された2段目の各クラスタの代表ベクトルを生成し、生成された下位の段の代表ベクトルを木構造代表ベクトル格納部72に格納する。2段目のクラスタを全て生成するとその2段目のクラスタの総数は(1024×512)個となる。さらにクラスタ生成部62は、2段目に生成されたクラスタごとに、そのクラスタに属する画像特徴ベクトル22をクラスタベクトル格納部71に格納する。以下では、説明の容易のため、1段目のクラスタを代表する代表ベクトルを上位代表ベクトルと記し、最下段(上述の例では2段目)のクラスタを代表する代表ベクトルを代表特徴ベクトルと記す。また最終的に生成されたクラスタ(上述の例では2段目のクラスタ)を画像特徴クラスタとも記す。
画像特徴ベクトル22をクラスタに分類する際には、k−means法等の公知のクラスタリング手法を用いればよい。クラスタの数は、後述の画像検索部52の処理との関係で、2のべき乗が好適であるが、2のべき乗でなくてもよい。また全ての画像に含まれる画像特徴ベクトル22を分類すると、それぞれの画像特徴クラスタには、複数の画像特徴ベクトル22が属する。クラスタ生成部62の再帰処理を2段階行う事で、木構造代表ベクトル格納部72に、2階層の情報を格納する事ができる。なお、画像特徴ベクトル抽出部61やクラスタ生成部62の計算は、並列計算装置14を用いずに行ってもよい。ただしこれらの計算は並列計算装置14を用いる方が望ましい。比較実験によれば、並列計算装置14を用いる場合の計算速度が、用いない場合の20から200倍になるからである。
図8は、代表ベクトルの木構造の一例を示す図である。クラスタ生成部62が上述の2段階の処理を行う場合、2段階のクラスタに対応する2段階の代表ベクトルが木構造を構成する。上位代表ベクトルの数は1024個であり、上位代表ベクトルのそれぞれは、512個の代表特徴ベクトルの親となっている。このように多段のクラスタによる木構造を用いる場合には、画像検索部52はその木構造に応じた代表ベクトルに親子関係があることを利用して検索を行うことができる。
[画像を検索する処理]
図9は、画像検索部52の機能構成を示す機能ブロック図である。画像検索部52は、機能的に、代表ベクトル転送部81、クエリ特徴ベクトル取得部82、上位代表ベクトル距離計算部83、代表クラスタ選択部84、代表特徴ベクトル距離計算部85、画像特徴クラスタ選択部86、画像特徴ベクトル転送部87、画像特徴ベクトル距離計算部88、画像特徴ベクトル選択部89、画像スコア生成部90および検索結果画像選択部91を含む。
図10は、第1の実施形態にかかる画像検索部52の処理の概要を示す図である。以下では、図10が示す処理フローに従い、画像検索部52に含まれる各機能について説明する。
[並列計算装置の初期化]
代表ベクトル転送部81は、主に並列計算装置14と、記憶部12とにより実現される。代表ベクトル転送部81は、並列計算装置14を初期化する処理(ステップS101)として、木構造代表ベクトル格納部72に格納された、複数の上位代表ベクトルおよび複数の代表特徴ベクトルを、複数のプロセッサ41から共通にアクセスできる装置内メモリ45に転送する。
代表ベクトル転送部81が上記データを記憶部12から装置内メモリ45に転送する際には、並列計算装置14やバス15のDMA(Direct Memory Access)機能を用いる。
図11は、装置内メモリ45でのデータ配置の一例を示す図である。装置内メモリ45には、代表特徴ベクトルを格納する領域と、上位代表ベクトルを格納する領域と、1つの画像特徴クラスタに含まれる画像特徴ベクトル22を格納する領域とが設けられる。代表ベクトル転送部81は、記憶部12に記憶される複数の代表ベクトルの情報を、予め割り当てられた装置内メモリ45のメモリ領域に格納する。画像特徴クラスタを格納する領域へのデータの格納については後述する。
ここで、代表特徴ベクトルの要素数が128次元、代表特徴ベクトルの数は画像特徴クラスタの数と同じ(1024×512)個、各要素が1バイトの整数型とすると、その複数の代表特徴ベクトルの全てのデータ量は、(1024×512×128)バイト(B)、つまり64MBとなる。また、この場合、複数の上位代表ベクトルの数は1024であるので、同様に複数の上位代表ベクトルのデータ量は(1024×128)バイト、つまり128KBとなる。例えば現行のGPUに搭載される装置内メモリ45のメモリ容量は1GB程度であり、装置内メモリ45の容量も1GBであるとすると、複数の代表ベクトルのデータ量は装置内メモリ45の容量より小さい。
一方、画像の数が100万、1つの画像から抽出される画像特徴ベクトル22の数が300とすると、複数の画像特徴クラスタに含まれる画像特徴ベクトル22のデータ量は、(100万×300×128)バイト、つまり約36GBになり、装置内メモリ45には格納できない。一方、1つの画像特徴クラスタあたりの平均的な画像特徴ベクトル22の数は、(100万×300÷(1024×512))、つまり約600であるので、データ量は75KB程度である。クラスタリングにより画像特徴クラスタに含まれる画像特徴ベクトル22の数が多少変動したとしても、複数の代表特徴ベクトルのデータ量と、複数の上位代表ベクトルのデータ量と、1つの画像特徴クラスタに含まれる画像特徴ベクトル22のデータ量との和は、装置内メモリ45の容量より小さくなる。
図12は、装置内メモリ45での代表ベクトルの配置の一例を示す図である。装置内メモリ45に格納される代表ベクトルの各要素のサイズは4バイトであり、要素の順に並んでいる。また、ある代表ベクトルのデータの先頭アドレスは、装置内メモリ45から一括して読み出すことのできるデータのバイト数(例えば32や64)の倍数となっている。このデータ構造は、後述する距離計算の処理において、装置内メモリ45に格納されるデータを複数のプロセッサ41に一括して読込ませるためのものである。代表ベクトル転送部81は、代表ベクトルの各要素のサイズが1バイトであっても、一括して読込むために、各要素のサイズを4バイトに変換したデータを装置内メモリ45に転送している。なお、上位代表ベクトルや、1つの画像特徴クラスタ内の画像特徴ベクトル22も、同様のデータ構造によって装置内メモリ45に格納される。装置内メモリ45内での複数の代表特徴ベクトル、複数の上位代表ベクトル、および1つの画像特徴クラスタに含まれる画像特徴ベクトル22のデータ量は4倍になるが、この例ではそれらのデータ量の和が装置内メモリ45の容量より小さい点は変わりない。本実施形態においては、少なくとも装置内メモリ45内での複数の代表特徴ベクトル、および複数の上位代表ベクトルのデータ量の和が装置内メモリ45の容量に収まるように、画像特徴クラスタや代表ベクトルの数を調整すればよい。
[クエリ特徴ベクトルの取得]
クエリ特徴ベクトル取得部82は、主にCPU11、記憶部12、および並列計算装置14によって実現される。クエリ特徴ベクトル取得部82は、並列計算装置14の初期化の後に、クエリ画像から1または複数のクエリ特徴ベクトルを取得する(ステップS102)。また、クエリ特徴ベクトル取得部82は、クエリ画像から抽出される1または複数のクエリ特徴ベクトルを共通メモリである装置内メモリ45に格納する。
クエリ特徴ベクトル取得部82は、はじめに、クエリ画像を、クライアント装置3からウェブサーバ2を介して取得する。図13は、クエリ画像を入力する画面の一例を示す図である。クライアント装置3は、ウェブサーバ2が生成したデータにより本画面を表示する。クエリ画像は、ユーザがクライアント装置3内の画像ファイルをアップロードすることで取得されてもよいし、なんらかのウェブページに表示される画像のURLを送ることで取得されてもよいし、写真共有サービス等に格納される画像からクエリ画像を選択することで取得されてもよい。次に、クエリ特徴ベクトル取得部82は、ウェブサーバ2から、取得したクエリ画像を取得し、そのクエリ画像から1または複数のクエリ特徴ベクトルを抽出し取得する。クエリ特徴ベクトルは、画像特徴ベクトル抽出部61が画像特徴ベクトル22を抽出する手法と同じ手法を用いて生成される。次にクエリ特徴ベクトル取得部82はクエリ特徴ベクトルを装置内メモリ45に格納する。ここで、CPU11がクエリ特徴ベクトルを抽出し、並列計算装置14がクエリ特徴ベクトルを装置内メモリ45にロードしてもよいし、クエリ画像を並列計算装置14にロードし、並列計算装置14がクエリ特徴ベクトルを抽出して装置内メモリ45に格納してもよい。
[画像特徴クラスタの選択]
次に、画像検索部52は、複数のクエリ特徴ベクトルのそれぞれに対応する画像特徴クラスタを選択する(ステップS103)。この処理は、上位代表ベクトル距離計算部83、代表クラスタ選択部84、代表特徴ベクトル距離計算部85、および画像特徴クラスタ選択部86が行う。
上位代表ベクトル距離計算部83は、並列計算装置14を中心として実現される。上位代表ベクトル距離計算部83は、複数の上位代表ベクトルのそれぞれと、クエリ特徴ベクトルとの距離とを、複数の並列のプロセッサ41を用いて計算する。以下では上位代表ベクトル距離計算部83での距離計算の詳細について説明する。なお、上位代表ベクトル距離計算部83、代表クラスタ選択部84、代表特徴ベクトル距離計算部85、画像特徴クラスタ選択部86、画像特徴ベクトル距離計算部88および画像特徴ベクトル選択部89の処理は、クエリ画像から抽出されたクエリ特徴ベクトルのそれぞれについて行う。
図14は距離計算の処理フローの一例を示す図である。はじめに、上位代表ベクトル距離計算部83は、クエリ特徴ベクトルを装置内メモリ45から距離計算を行う並列実行部40の高速メモリ43にロードする(ステップS201)。次に、計算対象となるベクトル(ここでは上位代表ベクトル)の各要素を装置内メモリ45からその要素の計算を行うプロセッサ41のレジスタにロードする(ステップS202)。この際、複数のプロセッサ41は、装置内メモリ45から計算対象ベクトルのデータを一括で読込む。それは、計算対象となるベクトルのデータが代表ベクトル転送部81等によって予めその一括の読込ができるよう装置内メモリ45に記憶されているからである。次に、上位代表ベクトル距離計算部83は、レジスタに格納された計算対象となるベクトルの要素と、その要素に対応するクエリ特徴ベクトルの要素とを減算し、さらにその減算結果を2乗する(ステップS203)。距離計算においては、減算結果を2乗するかわりに減算結果の絶対値を用いるなど他の距離関数を用いてよい。距離関数で用いる距離は、ステップS203のようなユークリッド距離(L2)に限らず、コサイン、マンハッタン距離(L1)等であってもよい。
次に、計算対象となるベクトルの各要素についてのステップS103の計算結果を合計する(ステップS204)。そして、上位代表ベクトル距離計算部83は、合計結果を装置内メモリ45に格納する(ステップS205)。なお、ある並列実行部40に含まれる、同一の命令を実行するプロセッサ41の数がクエリ特徴ベクトルや計算対象となるベクトルの要素の数より少なければ、ステップS202からステップS204の処理は、プロセッサ41の数にあわせて分割され、複数回実行される。また、並列実行部40が複数ある場合、別の並列実行部40に、上位代表ベクトル距離計算部83は、別の計算対象となるベクトルについてステップS201からS205の処理を実行させる。また、クエリ画像から抽出された他のクエリ特徴ベクトルについても並列に計算してもよい。こうすることで、クエリ特徴ベクトルと他の複数の計算対象のベクトルとの距離計算はGPUのような並列計算装置14の並列計算能力にあわせて並列に計算される。この距離計算の処理内容からわかるように、装置内メモリ45に適切に配置された複数のベクトルと、クエリ特徴ベクトルとの距離計算はGPUのようなハードウェアと親和性が高く、非常に高速に処理される。
代表クラスタ選択部84は、並列計算装置14を中心として実現される。代表クラスタ選択部84は、上位代表ベクトル距離計算部83で計算されたクエリ特徴ベクトルと複数の上位代表ベクトルのそれぞれとの距離に基づいて、複数の代表特徴ベクトルの集合から1つの集合を選択する。より詳細には、例えば、クエリ特徴ベクトルとの距離が最も短い上位代表ベクトルの子となる複数の代表特徴ベクトルの集合を選択する。この代表特徴ベクトルの集合のそれぞれは1段目のクラスタ(代表クラスタ)に対応する。代表特徴ベクトルの集合の選択は、それに対応する代表クラスタの選択にも相当する。なお、上位代表ベクトルのそれぞれは、複数の代表特徴ベクトルを代表しているとみることもできる。代表クラスタ選択部84は、より具体的には、その代表ベクトルの集合を格納するメモリ内の領域の先頭アドレスを計算することによってその集合を選択する。例えば、ある上位代表ベクトルの子となる代表特徴ベクトルの数が上位代表ベクトルにかかわらず一定であれば、距離が最も短い上位代表ベクトルが何番目かわかれば、かけ算等の単純な計算で先頭アドレスを求めることが可能となる。そうすれば、分岐や追加のメモリアクセスを必要とするような演算を用いずに済むため、GPUのようなハードウェアの性能をより活かした処理ができる。
代表特徴ベクトル距離計算部85は、並列計算装置14を中心として実現される。代表特徴ベクトル距離計算部85は、複数の代表特徴ベクトルの少なくとも一部のそれぞれと、クエリ特徴ベクトルとの距離とを、複数の並列のプロセッサ41を用いて計算する。ここで計算対象となる代表特徴ベクトルは、代表クラスタ選択部84で選択された集合に属する代表特徴ベクトルである。代表特徴ベクトル距離計算部85は、上位代表ベクトル距離計算部83が距離を計算するものと同様に、図14のフローに従い距離を計算する。ただし、計算対象ベクトルは上述の代表特徴ベクトルである。上位代表ベクトル距離計算部83と同様に、この処理内容はGPUのようなハードウェアと親和性が高く、非常に高速に処理される。
画像特徴クラスタ選択部86は、並列計算装置14を中心として実現される。画像特徴クラスタ選択部86は、代表特徴ベクトル距離計算部85で計算されたクエリ特徴ベクトルと複数の代表特徴ベクトルのそれぞれとの距離に基づいて、複数の画像特徴クラスタから画像特徴クラスタを選択する。より詳細には、例えば、クエリ特徴ベクトルとの距離が最も短い代表特徴ベクトルが代表する画像特徴クラスタを選択する。
なお、本実施形態では上位代表ベクトルと代表特徴ベクトルのように代表ベクトルが2段階の木構造の構成になっているが、上位代表ベクトルを設けない1段の構成にしてもよい。その場合、上位代表ベクトル距離計算部83および代表クラスタ選択部84の処理は不要であり、代表特徴ベクトル距離計算部85は全ての代表特徴ベクトルについて距離計算を行う。また、3段以上の構成にしてもよい。
[画像特徴ベクトルの選択]
画像特徴クラスタが選択された後には、画像検索部52は、複数のクエリ特徴ベクトルのそれぞれと、選択された画像特徴クラスタに属する画像特徴ベクトル22との距離とを計算し、その距離に基づいてそのクエリ特徴ベクトルに対応する1または複数の画像特徴ベクトル22を選択する(ステップS104)。この処理は、画像特徴ベクトル転送部87、画像特徴ベクトル距離計算部88、および画像特徴ベクトル選択部89が行う。
画像特徴ベクトル転送部87は、記憶部12および並列計算装置14を中心として実現される。画像特徴ベクトル転送部87は画像特徴クラスタ選択部86で選択された画像特徴クラスタに属する複数の画像特徴ベクトル22を、クラスタベクトル格納部71から、複数のプロセッサ41から共通にアクセスできる装置内メモリ45に転送する。画像特徴ベクトル転送部87は、代表ベクトル転送部81が代表特徴ベクトル等を転送するのと同じように、装置内メモリ45に格納されるデータを複数のプロセッサ41に一括して読込ませるように画像特徴ベクトル22のデータを配置する。
画像特徴ベクトル距離計算部88は、並列計算装置14を中心として実現される。画像特徴ベクトル距離計算部88は、複数の画像特徴ベクトル22のそれぞれと、クエリ特徴ベクトルとの距離とを、複数の並列のプロセッサ41を用いて計算する。ここで計算に用いる画像特徴ベクトル22は、画像特徴クラスタ選択部86で選択された画像特徴クラスタに属する画像特徴ベクトル22である。そのデータは画像特徴ベクトル転送部87により装置内メモリ45に転送されている。画像特徴ベクトル距離計算部88は、上位代表ベクトル距離計算部83が距離を計算するものと同様に、クエリ特徴ベクトルのそれぞれについて、図14のフローに従い距離を計算する。ただし、計算対象ベクトルは画像特徴ベクトル22である。上位代表ベクトル距離計算部83と同様に、この処理内容はGPUのようなハードウェアと親和性が高く、非常に高速に処理される。
画像特徴ベクトル選択部89は、並列計算装置14を中心として実現される。画像特徴ベクトル選択部89は、複数のクエリ特徴ベクトルと、選択された画像特徴クラスタに属する複数の画像特徴ベクトル22と、の近さに基づいて、複数のクエリ特徴ベクトルのそれぞれに対応する複数の画像特徴ベクトル22を選択する。近さとして、この例では距離を用いている。ここで、画像特徴ベクトル選択部89は、以下の条件を満たす複数の画像特徴ベクトル22を選択する。その条件は、あるクエリ特徴量に対して、検索対象となる複数の画像のそれぞれにつき1つの画像特徴ベクトル22が選択されることである。この条件により、1つのクエリ特徴ベクトルに対して、ある1つの画像から抽出された複数の画像特徴ベクトル22が対応することを防ぐ。
図15は、クエリ画像から抽出されるクエリ特徴ベクトルと、検索対象となる複数の画像から抽出される画像特徴ベクトル22との対応の一例を示す図である。図15の左側にある1つの矩形がクエリ画像を示し、その中にある×印はそのクエリ画像から抽出されたクエリ特徴ベクトルを示す。図15の右側に上下方向に並ぶ矩形のそれぞれは検索対象となる画像を示し、その矩形のそれぞれの中にある×印はその画像から抽出される画像特徴ベクトル22を示す。図15に示すように、あるクエリ画像と、検索対象となる画像うち1つとの間では1つのクエリ特徴ベクトルは、1つの画像特徴ベクトル22にしか対応しない。一方、そのクエリ特徴ベクトルに対して、検索対象となる他の画像から抽出される画像特徴ベクトル22が存在しうる。もちろん、一部の画像は、そのクエリ特徴ベクトルに対応する画像特徴ベクトル22を含まない場合もありうるので、あるクエリ特徴ベクトルに対応しある1つの画像から抽出される画像特徴ベクトル22の数は1または0となる。
図16は、画像特徴ベクトル選択部89の処理フローの一例を示す図である。画像特徴ベクトル選択部89は、クエリ特徴ベクトルごとに図16に示す処理を行う。また、後述する選択済特徴リストはあるクエリ画像に対する全てのクエリ特徴ベクトルの間で共通して用い、選択済特徴リストは1番目のクエリ特徴ベクトルに対し処理を始める前に初期化される。以下ではあるクエリ特徴ベクトルについての処理について説明する。
はじめに、画像特徴ベクトル選択部89は、選択されたクラスタに属する画像特徴ベクトル22から、クエリ特徴ベクトルとの距離があらかじめ定められた閾値より小さいものを取得し、それらを距離によりソートする(ステップS301)。
図17は、クエリ特徴ベクトルに対して画像特徴ベクトル22を選択する場合の例を示す図である。本図の実線の円は選択されたクラスタを示し、その円の中心にある黒丸はそのクラスタの代表ベクトル241(正確にはベクトルの座標)を示し、白丸はそのクラスタに含まれる画像特徴ベクトル22を示している。プラス記号はクエリ特徴ベクトルを示している。図17の例では、クエリ特徴ベクトル321からの距離が閾値の範囲内となる、クエリ特徴ベクトル321の白丸を中心とする破線内にある画像特徴ベクトル221,223がクエリ特徴ベクトル321に対応して取得されソートされる。またクエリ特徴ベクトル322に対しては、画像特徴ベクトル222,223が取得されソートされる。ここで、閾値を変化させることで、検索精度をコントロールすることが可能となる。具体的には、閾値が小さいほど、少数の画像特徴ベクトル22を検索結果として出力可能となり、閾値が大きいほど、広範囲の画像特徴ベクトル22を検索結果として出力可能となる。なお、閾値を最大とした場合には、クラスタに含まれる画像特徴ベクトル全てを選択することになる。なお、距離が範囲内になるか否かではなく、距離が近い順にあらかじめ定められた数のクエリ特徴ベクトルを取得するようにしてもよい。なお、図17では、分かりやすさのために、クラスタの代表ベクトル、そのクラスタに含まれる画像特徴ベクトル、およびクエリ特徴ベクトルを2次元の図面を用いて図示しているが、実際は、これらのベクトルは2次元ではなく128次元である。
次に画像特徴ベクトル選択部89は、選択済画像リストに属する画像をクリアし初期化する(ステップS302)。次に、ソートされた画像特徴ベクトル22のうち1番目の画像特徴ベクトル22を処理対象として取得する(ステップS303)。そして、その処理対象の画像特徴ベクトル22が、選択済画像リストにある画像から抽出されておらず(ステップS304のN)、かつ、選択済特徴リストに存在しない(ステップS305のN)場合には、処理対象となる画像特徴ベクトル22を、このクエリ特徴ベクトルに対応するものとして選択する(ステップS306)。そして、選択された画像特徴ベクトル22を選択済特徴リストに追加し(ステップS307)、また選択された画像特徴ベクトル22が抽出された画像を選択済画像リストに追加する(ステップS308)。処理対象の画像特徴ベクトル22が、選択済画像リストにある画像から抽出されている(ステップS304のY)、または、選択済特徴リストに存在する(ステップS305のY)場合には、ステップS306からステップS308の処理をスキップする。
そして、処理対象となる画像特徴ベクトル22が最後の画像特徴ベクトル22であれば(ステップS309のY)、このクエリ特徴ベクトルに対する処理は終了し、処理対象となる画像特徴ベクトル22が最後の画像特徴ベクトル22でなければ(ステップS309のN)、次の画像特徴ベクトル22を処理対象として取得し(ステップS310)、ステップS304から繰り返す。
ステップS304等の処理により、あるクエリ特徴ベクトルに対し1つの画像から抽出された複数の画像特徴ベクトル22が選択される現象が抑えられる。ステップS305等の処理により、例えば図17における画像特徴ベクトル223が複数のクエリ特徴ベクトルによって複数回選択される現象が抑えられる。言い換えれば、あるクエリ特徴ベクトルに対して選択される画像特徴ベクトル22が、他のクエリ特徴ベクトルに対して選択される画像特徴ベクトル22と重複しない。その結果、クエリ画像から抽出されるクエリ特徴ベクトルと、検索対象となる画像のいずれか1つから抽出された画像特徴ベクトル22のうち選択されるものとが1対1で対応する。
図18は、クエリ画像における局所的特徴(クエリ特徴ベクトルに対応)と、検索対象となる画像における局所的な特徴(画像特徴ベクトル22に対応)との対応の一例を示す図である。図18のうち上側の矩形がクエリ画像を、下側の矩形が検索対象となる画像を示す。これらの画像に含まれる複数の三角形は、互いに類似する局所的特徴を示す。このように、クエリ画像における局所的特徴と、検索対象となる画像における局所的な特徴とが1対1に対応する。
図19は、クエリ画像における局所的特徴と、検索対象となる画像における局所的な特徴との対応の比較例を示す図である。本図はステップS304およびS305の処理を行わない場合の例である。この場合、多対多の対応関係となり、選択される画像特徴ベクトル22の数が飛躍的に増大してしまう。
図18と図19とを比較してもわかるように、上述の処理により、クエリ画像と、検索対象となる画像の1つとで、局所的な特徴量の数が異なるものが同じものより多くの画像特徴ベクトル22が抽出されることを防ぐことが可能となる。これにより、後述のスコア生成処理を通じて、検索対象となる画像が有する局所的特徴の数と、クエリ画像が有する局所的特徴の数とが大きく異なる画像が検索結果として選択される可能性を抑えることができる。
[画像ごとのスコアの生成]
画像特徴ベクトル22が選択されると、画像検索部52に含まれる画像スコア生成部90は、検索対象となる画像ごとにスコアを生成する(ステップS105)。画像スコア生成部90は並列計算装置14を中心として実現される。画像スコア生成部90は、複数の画像のそれぞれについて、当該画像の特徴を示しかつ選択された複数の画像特徴ベクトル22と、その選択された画像特徴ベクトル22に対応するクエリ特徴ベクトルとの近さに基づいてスコア要素を計算し、さらにそのスコア要素の合計に基づいて、当該画像の画像スコアを生成する。
画像スコア生成部90は、以下の式を用いて選択された画像特徴ベクトル22のそれぞれについて、スコア要素seを計算する。
Figure 0005577371
ここで、distは画像特徴ベクトル22と、その画像特徴ベクトル22に対応するクエリ特徴ベクトルとの距離であり、lnは自然対数をeは自然対数の底を示す。これにより、対応するクエリ特徴ベクトルを有する画像特徴ベクトル22のスコア要素seが距離に応じて変化するようになる。次に、画像スコア生成部90は、画像のそれぞれについて、その画像から抽出されかつ画像特徴ベクトル選択部89が選択した画像特徴ベクトル22のスコア要素sの合計を用いて、以下の式のように画像スコアsiを計算する。
Figure 0005577371
ここで、knは、その画像から抽出された画像特徴ベクトル22の数である。これらの式で生成される画像スコアsiは、画像のそれぞれについて画像特徴ベクトル22が選択された頻度だけではなく、クエリ特徴ベクトルのそれぞれと対応する画像特徴ベクトル22との近さも考慮に入れたスコアとなるため、検索精度をさらに向上させることができる。
図20は、クエリ特徴ベクトルと画像特徴ベクトル22との距離のばらつきの一例を示す図である。例えば、本図のように、クエリ特徴ベクトル324と、対応して選択される画像特徴ベクトル224とが近いものと、クエリ特徴ベクトル325と、対応して選択される画像特徴ベクトル225とが近いものとがある場合、従来は、同じ重みでスコアを計算していたが、上述の処理により、このような違いを反映したスコアを計算し、局所的な特徴の類似性をより反映した検索を行うことが可能となる。
[画像の選択]
画像スコアが生成されると、画像検索部52に含まれる検索結果画像選択部91は、検索結果となる画像を選択する(ステップS106)。検索結果画像選択部91は、並列計算装置14を中心として実現される。検索結果画像選択部91は、画像スコア生成部90が計算した画像スコアに基づいて、検索対象となる複数の画像のうち少なくとも1つを検索結果として選択する。具体的には、画像スコアをその値により降順にソートし、その画像スコアが高い画像からいくつかを選択したり、所定の値より画像スコアが高い画像を選択する。
図21は、画像スコアのソート結果の一例を示す図である。本図に示すように、星マークを1つ含むトルコ国旗をクエリ画像とする場合に、星マークを大量に含むアメリカ星条旗の画像に対する画像スコアが上昇してしまう現象が抑えられている。検索結果画像選択部91は、画像を選択すると、ウェブサーバ2に選択した画像の情報を出力する。ウェブサーバ2は、クライアント装置3に検索結果の画像を表示させる情報を出力する。
なお、上位代表ベクトル距離計算部83から画像特徴ベクトル距離計算部88までの処理はGPUなどの並列計算を行うハードウェアとの親和性が高く、GPUの並列計算能力をフルに活かすことができる。またそれ以降の処理も、ある程度並列処理が可能であり、CPU11も用いるより高速に処理を行うことができる。よって、GPUによる処理時間の短縮効果を十分に享受することができる。また、これらの処理のうち一部をCPU11に実行させてもよい。
[第2の実施形態]
本発明の第2の実施形態にかかる画像検索システムは、第1の実施形態と異なり、画像特徴クラスタを選択した後に画像特徴ベクトル22とクエリ特徴ベクトルとの距離を判断しない。この手法はBoF法に一部類似する検索手法である。以下では、第1の実施形態との相違点を中心に説明する。なお、図1に示す画像検索システムを構成する機器の構成や、画像検索装置1がインデックス生成部51および画像検索部52を有する点は第1の実施形態と同様である。
[インデックスの生成]
第1の実施形態と同様に、インデックス生成部51は、画像特徴ベクトル抽出部61と、クラスタ生成部62とを含む。画像特徴ベクトル抽出部61は、検索対象となる複数の画像のそれぞれから複数の画像特徴ベクトル22を抽出する。クラスタ生成部62は、その抽出された画像特徴ベクトル22を複数の画像特徴クラスタに分類する。また、クラスタ生成部62は、それらの画像特徴クラスタの代表ベクトルを代表ベクトル格納部172に格納し、画像特徴クラスタに属する画像特徴ベクトル22に関する情報をクラスタ画像特徴量格納部171に格納する。画像特徴クラスタへの分類は、第1の実施形態と同様の手法を用いればよい。ただし、クラスタ生成部62は、クラスタ画像特徴量格納部171には、画像特徴ベクトル22の各要素の代わりに、その画像特徴ベクトル22のインデックスに相当する情報、より具体的にはその画像特徴ベクトルが抽出された画像の識別情報を格納する。クラスタ画像特徴量格納部171、代表ベクトル格納部172は、具体的には記憶部12により構成される。
図22は、クラスタ画像特徴量格納部171に格納されるデータの一例を示す図である。クラスタ画像特徴量格納部171には、画像特徴クラスタの識別情報であるクラスタ番号と画像の識別情報である画像番号とを要素とする複数のレコードが格納されている。ここで、1つのレコードは、1つの画像特徴ベクトル22に対応する。ある画像から抽出された複数の画像特徴ベクトルが同じ画像特徴クラスタに存在する場合、同じクラスタ番号と画像番号とを有するレコードの数はその画像特徴ベクトル22の数となる。
[画像を検索する処理]
図23は、第2の実施形態にかかる画像検索部52の機能構成を示す機能ブロック図である。画像検索部52は、機能的に、クエリ特徴ベクトル取得部181、画像特徴クラスタ選択部182、画像特徴ベクトル選択部183、画像スコア生成部184、および検索結果画像選択部185を含む。
図24は、第2の実施形態にかかる画像検索部52の処理の概要を示す図である。以下では、図24が示す処理フローに従い、画像検索部52に含まれる各機能について説明する。
[クエリ特徴ベクトルの取得]
クエリ特徴ベクトル取得部181は、主にCPU11、記憶部12、および並列計算装置14によって実現される。はじめに、クエリ特徴ベクトル取得部181は、クエリ画像から1または複数のクエリ特徴ベクトルを取得する(ステップS1101)。この処理は、第1の実施形態におけるクエリ特徴ベクトル取得部82と同様の処理である。
[画像特徴クラスタの選択]
画像特徴クラスタ選択部182は、主にCPU11、記憶部12、および並列計算装置14により実現される。クエリ特徴ベクトルが取得されると、画像特徴クラスタ選択部182は、複数のクエリ特徴ベクトルにそれぞれ対応する複数の画像特徴クラスタを選択する(ステップS1102)。より具体的には、クエリ特徴ベクトルのそれぞれについて、当該クエリ特徴ベクトルに最も近い代表ベクトルを有する画像特徴クラスタを選択する。より詳細な計算方法としては、CPU11を用いて距離計算を行ってもよいし、第1の実施形態に示すように、並列計算装置14と代表ベクトルの木構造とを用いて画像特徴クラスタを選択してもよい。なお、選択された画像特徴クラスタは、BoF法におけるVisual Wordに相当すると考えてよい。
[画像特徴ベクトルの選択]
画像特徴ベクトル選択部183は、CPU11および記憶部12を中心として実現される。画像特徴ベクトル選択部183は、クエリ特徴ベクトルのそれぞれに対して選択された画像特徴クラスタに属する画像特徴ベクトル22から、当該クエリ特徴ベクトルに対応する画像特徴ベクトル22を選択する(ステップS1103)。ここで、画像特徴ベクトル選択部89は、以下の条件を満たす複数の画像特徴ベクトル22を選択する。1つの条件は、検索対象となる複数の画像のそれぞれについて、その画像から抽出された複数の画像特徴ベクトル22のうち、ある1つのクエリ特徴ベクトルに対応して選択された画像特徴ベクトル22の数が1となることである。もう1つの条件は、いずれかのクエリ特徴ベクトルに対し選択される画像特徴ベクトル22と、他のクエリ特徴ベクトルに対し選択される画像特徴ベクトル22とが重複しないことである。画像特徴ベクトル選択部183は、クエリ特徴ベクトルのそれぞれについて、上述の条件を満たす全ての画像特徴ベクトル22をそのクエリ特徴ベクトルに対応する画像特徴ベクトル22として選択する。
具体的な処理方法としては、例えば、第1の実施形態において図16で説明した処理のうち、ステップS301の処理を、クエリ特徴ベクトルに対応して選択された画像特徴クラスタに含まれる全ての画像特徴ベクトル22を取得するように変更すればよい。なお、本実施形態ではクラスタ画像特徴量格納部171には画像特徴ベクトル22そのものは格納されておらず、距離計算や距離によるソートは行わない。
図25は、3番目の画像特徴クラスタにおける画像特徴ベクトル22の分布とクエリ特徴ベクトルによる選択とを説明する図である。図25は、ある画像特徴クラスタ(ここではクラスタ番号が3である画像特徴クラスタ)における画像ごとの画像特徴ベクトル22の数を示している。図25において横軸は画像番号であり、縦軸は画像特徴ベクトル22の数である。あるクエリ特徴ベクトルにより1度目にクラスタ番号3である画像特徴クラスタが選択された場合、画像番号3,4,5,7,16の画像から抽出された画像特徴ベクトル22がそれぞれ1つずつ選択される。また、他のクエリ特徴ベクトルにより2度目にクラスタ番号3の画像特徴クラスタが選択された場合、残っている画像特徴ベクトル22のうち、画像番号4,16の画像から抽出された画像特徴ベクトル22がそれぞれ1つずつ選択される。
[画像ごとのスコアの生成]
画像スコア生成部184は、CPU11および記憶部12を中心として実現される。画像スコア生成部184は、複数の画像の少なくとも一部のそれぞれについて、その画像における選択された画像特徴ベクトル22の出現頻度に基づいて当該画像の画像スコアを生成する(ステップS1104)。例えば、画像スコア生成部184は、画像ごとに、その画像から抽出され、クエリ特徴ベクトルに対応して選択された画像特徴ベクトル22の数をカウントして画像スコアを生成する。
[画像の選択]
検索結果画像選択部185は、CPU11および記憶部12を中心として実現される。検索結果画像選択部185は、検索結果となる画像を選択する(ステップS1105)。具体的には、検索結果画像選択部185は第1の実施形態における検索結果画像選択部91と同様に画像スコアに基づいて検索対象となる複数の画像のうち少なくとも1つを検索結果として選択する。
上述のように、画像特徴クラスタを選択した後に画像特徴ベクトル22とクエリ特徴ベクトルとの距離を計算しなくても、クエリ画像から抽出されるクエリ特徴ベクトルと、検索対象となる画像のいずれか1つから抽出された画像特徴ベクトル22のうち、選択された画像特徴ベクトル22とを1対1に対応させ、検索対象となる画像が有する局所的特徴の数と、クエリ画像が有する局所的特徴の数とが大きく異なる画像が検索結果として選択される可能性を抑えるという効果を生ずる。
[第3の実施形態]
本発明の第2の実施形態にかかる画像検索システムは、第2の実施形態と同様に、画像特徴クラスタを選択した後に画像特徴ベクトル22とクエリ特徴ベクトルとの距離を判断しない。本実施形態ではBoF法で用いられるような既存の全文検索エンジンを用いつつ第2の実施形態と同様の効果を得るようにしたものである。以下では、第2の実施形態との相違点を中心に説明する。なお、図1に示す画像検索システムを構成する機器の構成や、図2や図23に示す機能構成は第2の実施形態と同様である。
[インデックスの生成]
第3の実施形態では、クラスタ生成部62は、BoF法で一般的に用いられる転置行列をクラスタ画像特徴量格納部171に格納する。BoF法における転置行列は、画像に対応する列と、Visual Wordに対応する行とからなる行列である。本実施形態では、行列の行を特定する文字列をビジュアルワード識別子と呼ぶ。ここで、ビジュアルワード識別子は、Visual Wordに相当する画像特徴クラスタの識別番号に、その画像特徴クラスタについてある画像に対応する画像特徴ベクトル22が抽出された順位を示す情報を付加したものである。
図26は、画像スコアを生成するために用いられる転置行列の一例を示す図である。ハイフンのないビジュアルワード識別子は、画像特徴クラスタのクラスタ番号と同じである。そのビジュアルワードの行とある画像番号の列とによる定まるセルに「1」がある場合には、その画像番号が示す画像から抽出され、その画像特徴クラスタに属する1番目の画像特徴ベクトル22が存在することを示す。また、ハイフンのあるビジュアルワード識別子については、ハイフンの前の番号は画像特徴クラスタのクラスタ番号を、ハイフンの後の番号は画像における画像特徴ベクトル22のシーケンシャル番号を示す。例えば、ビジュアルワード識別子が「3−2」の行と、画像番号「4」の列とにより定まるセルに「1」がある場合には、3番目の画像特徴クラスタに、4番目の画像について2番目の画像特徴ベクトル22が存在していることを示す。この「1」が存在するセルは、画像特徴ベクトル22に相当する。もちろん、ビジュアルワード識別子の表現にハイフンを用いなくてもよい。ビジュアルワード識別子は、同じクラスタに属しかつ同じ画像から抽出される画像特徴ベクトル22が識別できればどのような表現でもよい。
また、ビジュアルワード識別子「3−many」の「many」は、あらかじめ定められたクラスタ内閾値(ここでは3)以降のシーケンシャル番号を示す。ビジュアルワード識別子が「3−many」の行と、画像番号「4」の列とにより定まるセルに「1」がある場合には、3番目の画像特徴クラスタに、所定の順位(3番目)以降の画像特徴ベクトル22が存在することを示す。本実施形態では「3−4」以降のビジュアルワードは存在させない。これは、4番目以降の画像特徴ベクトル22についての情報を削除することを示す。さらにいえば、ある画像特徴クラスタに属する画像特徴ベクトル22のうち検索対象となる複数の画像のいずれか1つに対応する画像特徴量の数がそのクラスタ内閾値を超えないことと等価である。クラスタ生成部62は、ある画像特徴クラスタに属し、かつ検索対象となる複数の画像のいずれか1つに対応する画像特徴ベクトル22のうちクラスタ内閾値を超えるものを画像特徴クラスタから削除し、その結果をクラスタ画像特徴量格納部171に格納している。
[画像を検索する処理]
図27は、第3の実施形態にかかる画像検索部52の処理の概要を示す図である。以下では、図27が示す処理フローに従い、主に第2の実施形態との相違点について説明する。
はじめに、クエリ特徴ベクトル取得部181は、クエリ画像から1または複数のクエリ特徴ベクトルを取得する(ステップS2101)。次に、画像特徴クラスタ選択部182は、複数のクエリ特徴ベクトルにそれぞれ対応する複数の画像特徴クラスタを選択する(ステップS2102)。これらの処理は第2の実施形態と同様であるので説明を省略する。
次に、画像特徴ベクトル選択部183は、選択された画像特徴クラスタのクラスタ番号とその画像特徴クラスタが選択された順位とに基づいて、ビジュアルワード識別子を生成する(ステップS2103)。この作成ルールは、転置行列におけるビジュアルワード識別子の生成ルールと同様である。具体的には、画像特徴クラスタが選択された順位が1である場合には画像特徴クラスタのクラスタ番号をビジュアルワード識別子にし、その順位が2から(特徴閾値−1)までは、クラスタ番号にハイフンと順位を付加したものをビジュアルワード識別子にし、その順位が特徴閾値である場合には、クラスタ番号に「−many」を付加したものをビジュアルワード識別子とする。
次に、画像特徴ベクトル選択部183は、転置行列を用いて、ビジュアルワード識別子に対応する画像特徴ベクトル22を選択する(ステップS2104)。画像特徴ベクトル22の選択は、具体的には、「1」のあるセルと、そのセルの画像番号とを取得することにより行われる。また、画像特徴ベクトル選択部183は、選択された画像番号およびセルの数値を用いて、画像のスコアを生成する(ステップS2105)。そして、そのスコアに基づいて、検索結果となる画像を選択する(ステップS2106)。
ステップS2104からステップS2106の処理は、公知の全文検索エンジンにより処理してよい。この処理エンジンの例としては、「Solr」がある。上述の転置行列の作成により、あるクエリ特徴ベクトルに対しある画像から選択されるセルの値が1に限定される。これにより、クエリ画像から抽出されるクエリ特徴ベクトルと、ある画像について選択される画像特徴ベクトル22とを1対1に対応させることができる。よって、検索対象となる画像が有する局所的特徴の数と、クエリ画像が有する局所的特徴の数とが大きく異なる画像が検索結果として選択される可能性を抑えるという効果を生ずる。
1 画像検索装置、2 ウェブサーバ、3 クライアント装置、11 CPU、12 記憶部、13 通信部、14 並列計算装置、15 バス、22,221,222,223,224,225 画像特徴ベクトル、40 並列実行部、41 プロセッサ、42 命令ユニット、43 高速メモリ、45 装置内メモリ、51 インデックス生成部、52 画像検索部、61 画像特徴ベクトル抽出部、62 クラスタ生成部、71 クラスタベクトル格納部、72 木構造代表ベクトル格納部、81 代表ベクトル転送部、82,181 クエリ特徴ベクトル取得部、83 上位代表ベクトル距離計算部、84 代表クラスタ選択部、85 代表特徴ベクトル距離計算部、86,182 画像特徴クラスタ選択部、87 画像特徴ベクトル転送部、88 画像特徴ベクトル距離計算部、89,183 画像特徴ベクトル選択部、90,184 画像スコア生成部、91,185 検索結果画像選択部、171 クラスタ画像特徴量格納部、172 代表ベクトル格納部、241 代表ベクトル、321,322,324,325 クエリ特徴ベクトル。

Claims (12)

  1. クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するクエリ特徴ベクトル取得手段と、
    前記複数のクエリ特徴ベクトルのそれぞれについて、検索対象となる複数の検索対象画像毎に予め記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルからの距離が閾値の範囲内となる画像特徴ベクトルを選択する画像特徴ベクトル選択手段と、
    前記複数の検索対象画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、当該選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該検索対象画像の画像スコアを生成するスコア生成手段と、
    前記画像スコアに基づいて、前記検索対象となる複数の検索対象画像のうち少なくとも1つを選択する画像選択手段と、
    を含み、
    前記画像特徴ベクトル選択手段は、前記複数のクエリ特徴ベクトルのそれぞれについて、前記記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルと異なるクエリ特徴ベクトルについて選択されていない画像特徴ベクトルを選択する、
    ことを特徴とする画像検索装置。
  2. クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するクエリ特徴ベクトル取得手段と、
    前記複数のクエリ特徴ベクトルのそれぞれについて、検索対象となる複数の検索対象画像毎に予め記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルからの距離が近い順に予め定められた数の画像特徴ベクトルを選択する画像特徴ベクトル選択手段と、
    前記複数の検索対象画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、当該選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該検索対象画像の画像スコアを生成するスコア生成手段と、
    前記画像スコアに基づいて、前記検索対象となる複数の検索対象画像のうち少なくとも1つを選択する画像選択手段と、
    を含み、
    前記画像特徴ベクトル選択手段は、前記複数のクエリ特徴ベクトルのそれぞれについて、前記記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルと異なるクエリ特徴ベクトルについて選択されていない画像特徴ベクトルを選択する、
    ことを特徴とする画像検索装置。
  3. 前記画像特徴ベクトル選択手段は、前記複数のクエリ特徴ベクトルのそれぞれについて、前記記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、前記各検索対象画像につき多くとも1つの画像特徴ベクトルを選択する、
    ことを特徴とする請求項1または2に記載の画像検索装置。
  4. 前記記憶手段に記憶される複数の画像特徴ベクトルが分類される複数のクラスタから、前記複数のクエリ特徴ベクトルのそれぞれに対応するクラスタを選択するクラスタ選択手段をさらに含み、
    前記画像特徴ベクトル選択手段は、前記複数のクエリ特徴ベクトルのそれぞれについて、前記選択されるクラスタに属する画像特徴ベクトルのうちから画像特徴ベクトルを選択する、
    ことを特徴とする請求項1からのいずれかに記載の画像検索装置。
  5. 前記選択された複数の画像特徴ベクトルのそれぞれと、前記選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さは、当該画像特徴ベクトルと当該クエリ特徴ベクトルとの距離である、
    ことを特徴とする請求項1から4のいずれかに記載の画像検索装置。
  6. クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するクエリ特徴ベクトル取得手段、
    前記複数のクエリ特徴ベクトルのそれぞれについて、検索対象となる複数の検索対象画像毎に予め記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルからの距離が閾値の範囲内となる画像特徴ベクトルを選択する画像特徴ベクトル選択手段、
    前記複数の検索対象画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、当該選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該検索対象画像の画像スコアを生成するスコア生成手段、および、
    前記画像スコアに基づいて、前記検索対象となる複数の検索対象画像のうち少なくとも1つを選択する画像選択手段、
    としてコンピュータを機能させるためのプログラムであって、
    前記画像特徴ベクトル選択手段は、前記複数のクエリ特徴ベクトルのそれぞれについて、前記記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルと異なるクエリ特徴ベクトルについて選択されていない画像特徴ベクトルを選択する、
    プログラム。
  7. クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するクエリ特徴ベクトル取得手段、
    前記複数のクエリ特徴ベクトルのそれぞれについて、検索対象となる複数の検索対象画像毎に予め記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルからの距離が近い順に予め定められた数の画像特徴ベクトルを選択する画像特徴ベクトル選択手段、
    前記複数の検索対象画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、当該選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該検索対象画像の画像スコアを生成するスコア生成手段、および、
    前記画像スコアに基づいて、前記検索対象となる複数の検索対象画像のうち少なくとも1つを選択する画像選択手段、
    としてコンピュータを機能させるためのプログラムであって、
    前記画像特徴ベクトル選択手段は、前記複数のクエリ特徴ベクトルのそれぞれについて、前記記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルと異なるクエリ特徴ベクトルについて選択されていない画像特徴ベクトルを選択する、
    プログラム。
  8. クエリ特徴ベクトル取得手段がクエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するステップと、
    画像特徴ベクトル選択手段が前記複数のクエリ特徴ベクトルのそれぞれについて、検索対象となる複数の検索対象画像毎に予め記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルからの距離が閾値の範囲内となる画像特徴ベクトルを選択するステップ
    スコア生成手段が前記複数の検索対象画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、当該選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該検索対象画像の画像スコアを生成するステップと、
    画像選択手段が前記画像スコアに基づいて、前記検索対象となる複数の検索対象画像のうち少なくとも1つを選択するステップと、
    を含み、
    前記画像特徴ベクトルを選択するステップでは、画像特徴ベクトル選択手段が前記複数のクエリ特徴ベクトルのそれぞれについて、前記記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルと異なるクエリ特徴ベクトルについて選択されていない画像特徴ベクトルを選択する、
    ことを特徴とする画像検索方法。
  9. クエリ特徴ベクトル取得手段がクエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するステップと、
    画像特徴ベクトル選択手段が前記複数のクエリ特徴ベクトルのそれぞれについて、検索対象となる複数の検索対象画像毎に予め記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルからの距離が近い順に予め定められた数の画像特徴ベクトルを選択するステップと、
    スコア生成手段が前記複数の検索対象画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、当該選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該検索対象画像の画像スコアを生成するステップと、
    画像選択手段が前記画像スコアに基づいて、前記検索対象となる複数の検索対象画像のうち少なくとも1つを選択するステップと、
    を含み、
    前記画像特徴ベクトルを選択するステップでは、画像特徴ベクトル選択手段が前記複数のクエリ特徴ベクトルのそれぞれについて、前記記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルと異なるクエリ特徴ベクトルについて選択されていない画像特徴ベクトルを選択する、
    ことを特徴とする画像検索方法。
  10. クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するクエリ特徴ベクトル取得手段と、
    前記複数のクエリ特徴ベクトルのそれぞれについて、検索対象となる複数の検索対象画像毎に予め記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルと異なるクエリ特徴ベクトルについて選択されていない画像特徴ベクトルを選択する画像特徴ベクトル選択手段と、
    前記複数の検索対象画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、当該選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該検索対象画像の画像スコアを生成するスコア生成手段と、
    前記画像スコアに基づいて、前記検索対象となる複数の検索対象画像のうち少なくとも1つを選択する画像選択手段と、
    を含むことを特徴とする画像検索装置。
  11. クエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するクエリ特徴ベクトル取得手段、
    前記複数のクエリ特徴ベクトルのそれぞれについて、検索対象となる複数の検索対象画像毎に予め記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルと異なるクエリ特徴ベクトルについて選択されていない画像特徴ベクトルを選択する画像特徴ベクトル選択手段、
    前記複数の検索対象画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、当該選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該検索対象画像の画像スコアを生成するスコア生成手段、および、
    前記画像スコアに基づいて、前記検索対象となる複数の検索対象画像のうち少なくとも1つを選択する画像選択手段、
    としてコンピュータを機能させるためのプログラム。
  12. クエリ特徴ベクトル取得手段がクエリとなる画像の局所的な特徴をそれぞれ示す複数のクエリ特徴ベクトルを取得するステップと、
    画像特徴ベクトル選択手段が前記複数のクエリ特徴ベクトルのそれぞれについて、検索対象となる複数の検索対象画像毎に予め記憶手段に記憶され、各検索対象画像の複数の局所的な特徴をそれぞれ示す複数の画像特徴ベクトルのうちから、当該クエリ特徴ベクトルと異なるクエリ特徴ベクトルについて選択されていない画像特徴ベクトルを選択するステップと、
    スコア生成手段が前記複数の検索対象画像のいずれかの特徴を示しかつ前記選択された複数の画像特徴ベクトルと、当該選択された画像特徴ベクトルに対応するクエリ特徴ベクトルとの近さに応じたスコア要素の合計に基づいて、当該検索対象画像の画像スコアを生成するステップと、
    画像選択手段が前記画像スコアに基づいて、前記検索対象となる複数の検索対象画像のうち少なくとも1つを選択するステップと、
    を含むことを特徴とする画像検索方法。
JP2012078343A 2012-03-29 2012-03-29 画像検索装置、画像検索方法およびプログラム Active JP5577371B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2012078343A JP5577371B2 (ja) 2012-03-29 2012-03-29 画像検索装置、画像検索方法およびプログラム
US14/388,815 US9940366B2 (en) 2012-03-29 2013-03-29 Image search device, image search method, program, and computer-readable storage medium
CN201380018098.7A CN104221015B (zh) 2012-03-29 2013-03-29 图像检索装置、图像检索方法、程序以及计算机可读取的存储介质
EP13769777.7A EP2833275B1 (en) 2012-03-29 2013-03-29 Image search device, image search method, program, and computer-readable storage medium
ES13769777.7T ES2665504T3 (es) 2012-03-29 2013-03-29 Dispositivo de búsqueda de imágenes, método de búsqueda de imágenes, programa y soporte de almacenamiento legible por ordenador
PCT/JP2013/059546 WO2013147166A1 (ja) 2012-03-29 2013-03-29 画像検索装置、画像検索方法、プログラムおよびコンピュータ読取り可能な記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012078343A JP5577371B2 (ja) 2012-03-29 2012-03-29 画像検索装置、画像検索方法およびプログラム

Publications (3)

Publication Number Publication Date
JP2013206436A JP2013206436A (ja) 2013-10-07
JP2013206436A5 JP2013206436A5 (ja) 2014-01-30
JP5577371B2 true JP5577371B2 (ja) 2014-08-20

Family

ID=49260408

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012078343A Active JP5577371B2 (ja) 2012-03-29 2012-03-29 画像検索装置、画像検索方法およびプログラム

Country Status (6)

Country Link
US (1) US9940366B2 (ja)
EP (1) EP2833275B1 (ja)
JP (1) JP5577371B2 (ja)
CN (1) CN104221015B (ja)
ES (1) ES2665504T3 (ja)
WO (1) WO2013147166A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4976578B1 (ja) * 2011-09-16 2012-07-18 楽天株式会社 画像検索装置およびプログラム
JP6190887B2 (ja) * 2013-10-02 2017-08-30 株式会社日立製作所 画像検索システムおよび情報記録媒体
US20150302036A1 (en) * 2014-04-18 2015-10-22 Inplore Inc. Method, system and computer program for information retrieval using content algebra
US10509800B2 (en) * 2015-01-23 2019-12-17 Hewlett-Packard Development Company, L.P. Visually interactive identification of a cohort of data objects similar to a query based on domain knowledge
CN106021362B (zh) * 2016-05-10 2018-04-13 百度在线网络技术(北京)有限公司 查询式的图片特征表示的生成、图片搜索方法和装置
JP6601965B2 (ja) * 2016-08-25 2019-11-06 Kddi株式会社 探索木を用いて量子化するプログラム、装置及び方法
JP6311000B1 (ja) * 2016-12-19 2018-04-11 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
US10504002B2 (en) * 2017-07-30 2019-12-10 Fuji Xerox Co., Ltd. Systems and methods for clustering of near-duplicate images in very large image collections
JP2019125333A (ja) * 2018-01-12 2019-07-25 富士通株式会社 間取り抽出プログラム、間取り抽出方法及び情報処理装置
WO2020073317A1 (zh) * 2018-10-12 2020-04-16 华为技术有限公司 文件管理方法及电子设备

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4344134A (en) 1980-06-30 1982-08-10 Burroughs Corporation Partitionable parallel processor
US4742552A (en) 1983-09-27 1988-05-03 The Boeing Company Vector image processing system
JPS6432379A (en) 1987-07-29 1989-02-02 Hitachi Ltd Computer
US5253308A (en) 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
JP2609196B2 (ja) 1993-03-22 1997-05-14 株式会社エイ・ティ・アール自動翻訳電話研究所 類似度計算装置
US6134541A (en) 1997-10-31 2000-10-17 International Business Machines Corporation Searching multidimensional indexes using associated clustering and dimension reduction information
US6285995B1 (en) 1998-06-22 2001-09-04 U.S. Philips Corporation Image retrieval system using a query image
US6728752B1 (en) 1999-01-26 2004-04-27 Xerox Corporation System and method for information browsing using multi-modal features
EP1089198A3 (en) 1999-09-30 2003-03-12 Hewlett-Packard Company, A Delaware Corporation Content-based image searching
GB2382886B (en) 2001-10-31 2006-03-15 Alphamosaic Ltd Vector processing system
JP2005234994A (ja) * 2004-02-20 2005-09-02 Fujitsu Ltd 類似度判定プログラム、マルチメディアデータ検索プログラム、類似度判定方法、および類似度判定装置
WO2006033257A1 (ja) * 2004-09-24 2006-03-30 Matsushita Electric Industrial Co., Ltd. 画像変換方法、画像変換装置、サーバークライアントシステム、携帯機器およびプログラム
US20070244925A1 (en) 2006-04-12 2007-10-18 Jean-Francois Albouze Intelligent image searching
JP5098559B2 (ja) * 2007-10-11 2012-12-12 富士ゼロックス株式会社 類似画像検索装置、及び類似画像検索プログラム
WO2009060722A1 (ja) 2007-11-06 2009-05-14 National University Corporation Hokkaido University 類似画像検索装置
US8195689B2 (en) 2009-06-10 2012-06-05 Zeitera, Llc Media fingerprinting and identification system
US8144947B2 (en) * 2008-06-27 2012-03-27 Palo Alto Research Center Incorporated System and method for finding a picture image in an image collection using localized two-dimensional visual fingerprints
US8254697B2 (en) * 2009-02-02 2012-08-28 Microsoft Corporation Scalable near duplicate image search with geometric constraints
JP2010250637A (ja) * 2009-04-17 2010-11-04 Seiko Epson Corp 画像サーバー、画像検索システム、画像検索方法および画像管理方法
US8429173B1 (en) 2009-04-20 2013-04-23 Google Inc. Method, system, and computer readable medium for identifying result images based on an image query
WO2011021605A1 (ja) * 2009-08-18 2011-02-24 公立大学法人大阪府立大学 物体検出方法
JP5458815B2 (ja) 2009-11-11 2014-04-02 株式会社デンソーアイティーラボラトリ マルチメディア検索システム
JP5337673B2 (ja) 2009-11-13 2013-11-06 株式会社日立製作所 画像検索システム
JP5385105B2 (ja) 2009-11-25 2014-01-08 Kddi株式会社 画像検索方法およびシステム
AU2009357597B2 (en) * 2009-12-30 2015-11-05 Nokia Technologies Oy Methods and apparatuses for facilitating content-based image retrieval
JP2012033022A (ja) * 2010-07-30 2012-02-16 Panasonic Corp 空間における変化領域検出装置及び方法
US9043316B1 (en) * 2011-03-28 2015-05-26 Google Inc. Visual content retrieval

Also Published As

Publication number Publication date
EP2833275B1 (en) 2018-01-10
CN104221015B (zh) 2018-03-20
WO2013147166A1 (ja) 2013-10-03
EP2833275A1 (en) 2015-02-04
US9940366B2 (en) 2018-04-10
CN104221015A (zh) 2014-12-17
JP2013206436A (ja) 2013-10-07
EP2833275A4 (en) 2015-04-29
US20150066957A1 (en) 2015-03-05
ES2665504T3 (es) 2018-04-26

Similar Documents

Publication Publication Date Title
JP5577372B2 (ja) 画像検索装置、画像検索方法、プログラムおよびコンピュータ読取り可能な記憶媒体
JP5577371B2 (ja) 画像検索装置、画像検索方法およびプログラム
JP4976578B1 (ja) 画像検索装置およびプログラム
AU2019201787B2 (en) Compositing aware image search
CN107256262B (zh) 一种基于物体检测的图像检索方法
US8943091B2 (en) System, method, and computer program product for performing a string search
CN104834693A (zh) 基于深度搜索的视觉图像检索方法及系统
CN113449187A (zh) 基于双画像的产品推荐方法、装置、设备及存储介质
Pedronette et al. Exploiting contextual spaces for image re-ranking and rank aggregation
CN103440262A (zh) 基于相关反馈和Bag-of-Features的图像检索系统及方法
CN111078952B (zh) 一种基于层次结构的跨模态可变长度哈希检索方法
Mikulík et al. Efficient image detail mining
CN110633379B (zh) 一种基于gpu并行运算的以图搜图系统及方法
US20160283520A1 (en) Search device, search method, and computer program product
US20230419015A1 (en) Font recommendation, topic extraction, and training data generation
Liu et al. Selection of canonical images of travel attractions using image clustering and aesthetics analysis
KR101592670B1 (ko) 인덱스를 이용하는 데이터 검색 장치 및 이를 이용하는 방법
Zhao et al. Scalable Top-Spatial Image Search on Road Networks
CN112925837B (zh) 文本结构化方法及装置
US20230419014A1 (en) Font recommendation
Dong et al. High-performance image retrieval based on bitrate allocation
Li et al. Saliency-GD: A TF-IDF analogy for landmark image mining
Hanbury et al. User-Centred Image Retrieval Model
Ji Image Retrieval Method Using Top-surf Descriptor

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131210

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20131210

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140404

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140707

R150 Certificate of patent or registration of utility model

Ref document number: 5577371

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250