(57)【特許請求の範囲】
【請求項１】
特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルを複数の第１クラスタに分類し、それぞれ前記第１クラスタのいずれかを代表する複数の第１代表ベクトルを生成し、前記第１クラスタのうちいずれかに含まれる特徴ベクトルを複数の第２クラスタに分類し、それぞれ前記第２クラスタのいずれかを代表する複数の第２代表ベクトルを生成する代表ベクトル取得手段と、
前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記第１および第２代表ベクトルとの間の類似度を示すスカラー値を算出するスカラー値算出手段と、
画像のそれぞれについて、前記第１および第２代表ベクトルを含む代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出する特徴値算出手段と、
前記算出された特徴値に関連する検索インデックスを作成するインデックス作成手段と、
を含む画像検索システム。
【請求項２】
請求項１に記載の画像検索システムにおいて、
前記特徴値算出手段は、画像のそれぞれについて、前記代表ベクトルごとに、当該代表ベクトルと複数の前記特徴ベクトルとの間で算出された前記スカラー値の合計を特徴値として算出する、
画像検索システム。
【請求項３】
請求項１または２に記載の画像検索システムにおいて、
前記スカラー値算出手段は、前記代表ベクトルのそれぞれについて、前記代表ベクトルと、当該代表ベクトルに対応する複数の特徴ベクトルのそれぞれとの距離をスカラー値として算出する、
画像検索システム。
【請求項４】
請求項１から３のいずれかに記載の画像検索システムにおいて、
前記インデックス作成手段は、複数の画像のそれぞれについての複数の特徴値を圧縮することにより、データ量が前記複数の特徴値より小さいインデックスを生成する、
画像検索システム。
【請求項５】
請求項４に記載の画像検索システムにおいて、
前記インデックス作成手段は、複数の画像のそれぞれについての複数の特徴値をオートエンコーダにより圧縮する、
画像検索システム。
【請求項６】
請求項１から５のいずれか一項に記載の画像検索システムにおいて、
前記代表ベクトル取得手段は、前記第１クラスタに分類された特徴ベクトルの数が所定数より多い場合に、当該第１クラスタに属する特徴ベクトルを複数の第２クラスタに分類し、前記第１クラスタのうち少なくとも１つに属する複数の特徴ベクトルは、前記第２クラスタに分類されない、
画像検索システム。
【請求項７】
請求項１から６のいずれか一項に記載の画像検索システムにおいて、
前記検索インデックスと、クエリ画像から求められる特徴値とに基づいて、前記クエリ画像に類似する画像を検索する画像検索手段をさらに含む画像検索システム。
【請求項８】
特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルを複数の第１クラスタに分類し、それぞれ前記第１クラスタのいずれかを代表する複数の第１代表ベクトルを生成し、前記第１クラスタのうちいずれかに含まれる特徴ベクトルを複数の第２クラスタに分類し、それぞれ前記第２クラスタのいずれかを代表する複数の第２代表ベクトルを生成するステップと、
前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記第１および第２代表ベクトルとの間の類似度を示すスカラー値を算出するステップと、
画像のそれぞれについて、前記第１および第２代表ベクトルを含む代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出するステップと、
前記算出された特徴値に関連する検索インデックスを作成するステップと、
を含む画像検索方法。
【請求項９】
特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルを複数の第１クラスタに分類し、それぞれ前記第１クラスタのいずれかを代表する複数の第１代表ベクトルを生成し、前記第１クラスタのうちいずれかに含まれる特徴ベクトルを複数の第２クラスタに分類し、それぞれ前記第２クラスタのいずれかを代表する複数の第２代表ベクトルを生成する代表ベクトル取得手段、
前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記第１および第２代表ベクトルとの間の類似度を示すスカラー値を算出するスカラー値算出手段、
画像のそれぞれについて、前記第１および第２代表ベクトルを含む代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出する特徴値算出手段、および、
前記算出された特徴値に関連する検索インデックスを作成するインデックス作成手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像検索システム、画像検索方法およびプログラムに関する。
【背景技術】
【０００２】
ネットワーク技術等の発達によって、膨大な量の画像ファイルが管理されるようになっている。大量の画像からクエリ画像に類似する画像を検索する技術が一般に用いられるようになっている。画像の検索のための手法として、ＢｏＶモデル(Bug of Visual words Model)がある。ＢｏＶモデルでは、既知の手法により、画像のデータからそれぞれが画像の局所的な特徴を示す複数の特徴ベクトルを抽出する。特徴ベクトルのデータ量が大きいため、さらにそれぞれの特徴ベクトルに最も近いベクトルを有するビジュアルワード(Visual Words)を検索に用いることでデータ量を圧縮している。【０００３】
非特許文献１には、画像の特徴を示すデータの量をさらに減らすために、ビジュアルワードごとに、そのビジュアルワードに対応する特徴ベクトルと、そのビジュアルワードを代表する代表ベクトルとの差（差分ベクトル）の合計（合計ベクトル）を求め、その合計ベクトルに応じたデータを記憶部に格納する手法が開示されている。この手法では、この合計ベクトルに応じたデータと、クエリ画像から取得される合計ベクトルに応じたデータとに基づいて、クエリ画像に類似する画像が検索される。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】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)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特徴ベクトルとビジュアルワードの代表ベクトルとの差分ベクトルの合計をとると、例えば２つの特徴ベクトルについて差分ベクトルの方向が反対の場合に、合計ベクトルの各要素の値が小さくなる。このような場合には、画像の特徴が、その画像の検索に適切に反映されなかった。【０００６】
本発明は上記課題を鑑みてなされたものであって、その目的は、より精度の高い画像検索技術を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明にかかる画像検索システムは、特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得する代表ベクトル取得手段と、前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出するスカラー値算出手段と、画像のそれぞれについて、代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出する特徴値算出手段と、前記算出された特徴値に関連する検索インデックスを作成するインデックス作成手段と、を含む。【０００８】
また、本発明にかかるプログラムは、特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得する代表ベクトル取得手段、前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出するスカラー値算出手段、画像のそれぞれについて、代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出する特徴値算出手段、および、前記算出された特徴値に関連する検索インデックスを作成するインデックス作成手段としてコンピュータを機能させる。【０００９】
また、本発明にかかる画像検索方法は、特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得するステップと、前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出するステップと、画像のそれぞれについて、代表ベクトルに応じた特徴を示す特徴値を前記スカラー値に基づき、代表ベクトルごとに算出するステップと、前記算出された特徴値に関連する検索インデックスを作成するステップと、を含む。【００１０】
本発明によれば、より高い精度で画像を検索することができる。【００１１】
本発明の一形態では、前記特徴値算出手段は、画像のそれぞれについて、前記代表ベクトルごとに、当該代表ベクトルと複数の前記特徴ベクトルとの間で算出された前記スカラー値の合計を特徴値として算出してもよい。【００１２】
本発明の一形態では、前記スカラー値算出手段は、前記代表ベクトルのそれぞれについて、前記代表ベクトルと、当該代表ベクトルに対応する複数の特徴ベクトルのそれぞれとの距離をスカラー値として算出してもよい。【００１３】
本発明の一形態では、前記代表ベクトル生成手段は、前記複数の特徴ベクトルのそれぞれに対応する代表ベクトルを決定してもよい。【００１４】
本発明の一形態では、前記代表ベクトル生成手段は、複数の特徴ベクトルを複数のクラスタに分類し、それぞれ前記複数のクラスタのいずれかを代表する複数の代表ベクトルを生成してもよい。【００１５】
本発明の一形態では、前記代表ベクトルは複数の第１代表ベクトルと、複数の第２代表ベクトルとを含み、前記複数の第２代表ベクトルのそれぞれは、前記複数の第１代表ベクトルのいずれかに対応し、前記代表ベクトル生成手段は、前記複数の特徴ベクトルのそれぞれを前記複数の第２代表ベクトルのうちいずれか１つと、前記１つの第２代表ベクトルに対応する第１代表ベクトルとに対応付けてよい。【００１６】
本発明の一形態では、前記インデックス作成手段は、複数の画像のそれぞれについての複数の特徴値を圧縮することにより、データ量が前記複数の特徴値より小さいインデックスを生成してもよい。【００１７】
本発明の一形態では、前記インデックス作成手段は、複数の画像のそれぞれについての複数の特徴値をオートエンコーダにより圧縮してもよい。【００１８】
本発明の一形態では、前記代表ベクトル生成手段は、前記第１代表ベクトルに対応付けられる特徴ベクトルの数が所定数より多い場合に、当該第１代表ベクトルに対応する複数の第２代表ベクトルを生成し、前記第１代表ベクトルのうち少なくとも１つは、前記第２代表ベクトルのいずれにも対応しなくてもよい。【００１９】
本発明の一形態では、画像検索システムは、前記検索インデックスと、クエリ画像から求められる特徴値とに基づいて、前記クエリ画像に類似する画像を検索する画像検索手段をさらに含んでもよい。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態にかかる画像検索システムの構成を概略的に説明する図である。
【図２】画像検索サーバのハードウェア構成の一例を示す図である。
【図３】画像検索システムが実現する機能を説明するブロック図である。
【図４】インデックス処理部の処理の一例を示すフロー図である。
【図５】検索対象となる画像の一例を示す図である。
【図６】画像から抽出される画像特徴ベクトルを概略的に示す図である。
【図７】クラスタおよび代表ベクトルの関係を概略的に示す図である。
【図８】クラスタの階層構造の一例を説明する図である。
【図９】ある画像から抽出された特徴ベクトルと代表ベクトルとの関係を説明する図である。
【図１０】ある画像について算出された複数の特徴値の一例を示す図である。
【図１１】検索処理部の処理の一例を示すフロー図である。
【発明を実施するための形態】
【００２１】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
【００２２】
図１は、本発明の第１の実施形態にかかる画像検索システムの構成の一例を示す図である。画像検索システムは、画像検索サーバ１と、ユーザ端末２と、を含む。画像検索サーバ１は、画像検索プログラムやウェブサーバプログラム（ｈｔｔｐｄなど）が動作するサーバコンピュータであり、ユーザ端末２は、例えばウェブブラウザのプログラムが動作するパーソナルコンピュータや、スマートフォンである。画像検索サーバ１とユーザ端末２とは、ネットワーク３を介して互いに通信する。ネットワーク３は、例えばローカルエリアネットワークやインターネットである。
【００２３】
画像検索システムが画像検索を行う際の動作の概要は以下の通りである。はじめに、画像検索サーバ１は、ネットワーク３を介してユーザ端末２から画像検索に用いるクエリとなる画像（以下、「クエリ画像」と記述する）を取得する。次に画像検索サーバ１は、クエリ画像に類似する１または複数の画像を検索し、その画像のデータを例えばユーザ端末２に向けて出力する。
【００２４】
図２は、第１の実施形態にかかる画像検索サーバ１の構成の一例を示す図である。画像検索サーバ１は、プロセッサ１１、記憶部１２、通信部１３および入出力部１４を含む。
【００２５】
プロセッサ１１は、記憶部１２に格納されているプログラムに従って動作する。またプロセッサ１１は通信部１３や入出力部１４を制御する。なお、上記プログラムは、インターネット等のネットワークを介して提供されるものであってもよいし、ＤＶＤ−ＲＯＭやフラッシュメモリ等のコンピュータで読み取り可能な情報記憶媒体に格納されて提供されるものであってもよい。
【００２６】
記憶部１２は、ＲＡＭやＲＯＭ等のメモリ素子やハードディスクドライブ等によって構成されている。記憶部１２は、上記プログラムを格納する。また、記憶部１２は、各部から入力される情報や演算結果を格納する。
【００２７】
通信部１３は、ユーザ端末２等の他の装置と通信する機能を実現するものであり、例えばネットワークカードのような通信手段で構成されている。ネットワークカードは、通信用の集積回路や通信端子を含んでいる。通信部１３は、プロセッサ１１の制御に基づいて、他の装置から受信した情報をプロセッサ１１や記憶部１２に入力し、他の装置に情報を送信する。
【００２８】
入出力部１４は、表示出力デバイスをコントロールするビデオコントローラや、入力デバイスからのデータを取得するコントローラなどにより構成される。入力デバイスとしては、キーボード、マウス、タッチパネルなどがある。入出力部１４は、プロセッサ１１の制御に基づいて、表示出力デバイスに画像を表示させるデータを出力し、入力デバイスをユーザが操作することにより入力されるデータを取得する。表示出力デバイスは例えば外部に接続されるディスプレイ装置である。
【００２９】
ユーザ端末２は、画像検索サーバ１と同様にプロセッサ１１、記憶部１２、通信部１３、入出力部１４等を含む。ユーザ端末２は画像検索サーバ１等から受信したデータに基づいて画面を提示する機能や、その画面についてユーザが入力した情報を画像検索サーバ１に送信する機能を実現する。これらの機能は、例えばユーザ端末２に含まれるプロセッサ１１等がブラウザなどのプログラムを実行し、画像検索サーバ１等から受信したデータに応じた処理をすることで実現される。またブラウザではなく、ユーザ端末２にインストールされた専用のアプリケーションプログラムによりこれらの機能が実現されてもよい。
【００３０】
図３は、画像検索システムが実現する機能を示すブロック図である。画像検索システムは、機能的に、インデックス処理部５０、検索処理部６０、画像データ格納部７１、インデックス格納部７２を含む。インデックス処理部５０は、複数の画像のデータからそれらの画像の検索に用いるインデックスを生成する。検索処理部６０は、検索条件となるクエリ画像と、インデックスとに基づいて、クエリ画像に類似する画像を検索する。インデックス処理部５０、検索処理部６０、画像データ格納部７１、インデックス格納部７２は、画像検索サーバ１に実装される。なお、画像データ格納部７１、インデックス格納部７２が別のサーバに実装されてもよいし、インデックス処理部５０、検索処理部６０が互いに異なるサーバに実装されてもよい。
【００３１】
画像データ格納部７１は、主に記憶部１２により実現される。画像データ格納部７１は、検索の対象となる複数の画像のデータを格納する。インデックス格納部７２は、主に記憶部１２により実現される。インデックス格納部７２は、インデックス生成部５５により生成された画像のインデックスを格納する。
【００３２】
インデックス処理部５０は機能的に特徴ベクトル抽出部５１、クラスタリング部５２、スコア値算出部５３、特徴値算出部５４、インデックス生成部５５を含む。検索処理部６０は機能的に、クエリベクトル検出部６１、クエリ対応決定部６２、クエリスコア値算出部６３、クエリ特徴値算出部６４、画像検索部６５を含む。これらの機能は、プロセッサ１１が記憶部１２に格納されたプログラムを実行し、通信部１３や入出力部１４を制御することで実現される。
【００３３】
次に、インデックス処理部５０の処理について説明する。
【００３４】
特徴ベクトル抽出部５１は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。特徴ベクトル抽出部５１は、画像データ格納部７１に格納される複数の画像データから、それぞれ画像の局所的な特徴を示す複数の特徴ベクトルを抽出する。また、特徴ベクトル抽出部５１は１つの画像について複数の特徴ベクトルを抽出する。１つの画像から抽出される特徴ベクトルの数は、画像に応じて決まり、通常の画像では３００程度である。また特徴ベクトルの次元は、たとえば１２８次元である。
【００３５】
クラスタリング部５２は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。クラスタリング部５２は、抽出された複数の特徴ベクトルに基づいて複数の代表ベクトルを生成する。より具体的には、クラスタリング部５２は複数の特徴ベクトルを複数のクラスタに分類し、それぞれ前記複数のクラスタのいずれかを代表する複数の代表ベクトルを、特徴ベクトルに基づいて生成する。またクラスタリング部５２は、複数の特徴ベクトルのそれぞれを複数の代表ベクトルのいずれかに対応づける。ここで、クラスタのそれぞれは、ＢｏＶモデルにおけるビジュアルワード（Ｖｉｓｕａｌ  Ｗｏｒｄ）に対応する。
【００３６】
スコア値算出部５３は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。スコア値算出部５３は、複数の代表ベクトルのそれぞれと、複数の特徴ベクトルの少なくとも一部との類似の大きさを示すスコア値を算出する。スコア値はスカラー値である。例えば、スコア値算出部５３は、代表ベクトルのそれぞれについて、前記代表ベクトルと、当該代表ベクトルに対応する複数の特徴ベクトルのそれぞれとの距離をスコア値として算出する。
【００３７】
特徴値算出部５４は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。特徴値算出部５４は、画像のそれぞれについて、代表ベクトルごとに代表ベクトルに応じた特徴を示す特徴値を算出する。特徴値算出部５４が、１つの画像について算出する特徴値の数は、代表ベクトルと同じである。
【００３８】
インデックス生成部５５は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。インデックス生成部５５は、算出された特徴値を含む検索インデックスを作成する。インデックスは画像ごとに生成され、インデックス生成部５５は生成されたインデックスはその画像と関連付けてインデックス格納部７２に格納する。
【００３９】
以下では、インデックス処理部５０において行われる処理をより詳細に説明する。図４は、インデックス処理部５０の処理の一例を示すフロー図である。
【００４０】
画像データからインデックスを作成する処理において、はじめに、特徴ベクトル抽出部５１は、画像データ格納部７１に格納された画像から、特徴ベクトルを抽出する（ステップＳ１０１）。特徴ベクトルを抽出する手法の詳細については公知であるので詳細な説明は省略する。局所的な特徴を示す特徴ベクトルを抽出する手法として、例えばＳＩＦＴと呼ばれる手法が存在する。
【００４１】
図５は、検索対象となる画像の一例を示す図である。図５の画像の例では、星条旗の一部が示されている。図６は、図５に示される画像から抽出された特徴ベクトル２２を概略的に示す図である。画像のうち同じような特徴を有する複数の特徴点から、互いに類似する特徴ベクトルが抽出される。
【００４２】
特徴ベクトルが抽出されると、クラスタリング部５２は、複数の画像から抽出された複数の特徴ベクトルをクラスタリングする（ステップＳ１０２）。クラスタリング部５２は、ｋ−ｍｅａｎｓ法などの公知のアルゴリズムを用いて特徴ベクトルを複数のクラスタに分類してよい。また、本実施形態においてクラスタリング部５２は、複数の階層を有するクラスタを生成する。より具体的には、クラスタリング部５２は、ある階層にあるクラスタに属する特徴ベクトルの数が所定数より多い場合に、そのクラスタの下位に属する特徴ベクトルをさらに下の階層の複数のクラスタに分類する。この場合、上位の階層にあるクラスタであっても、下位の階層のクラスタが存在しない場合がある。
【００４３】
また、クラスタリング部５２は、各クラスタに属する特徴ベクトルに基づいて、各クラスタの代表ベクトルを決定する（ステップＳ１０３）。クラスタリング部５２は、例えばクラスタに属する特徴ベクトルの重心を代表ベクトルとして決定する。代表ベクトルは、必ずしも重心でなくてもよく、クラスタに属する特徴ベクトルのいずれかであってもよい。またクラスタリング部５２は、検索用のインデックスが適切に算出される特性を有すれば、クラスタリングを用いないなど、他の手法で代表ベクトルが生成されてもよい。
【００４４】
図７は、クラスタＣ１〜Ｃ４およびクラスタＣ１〜Ｃ４について決定される代表ベクトル２４の関係を概略的に示す図である。図７では、説明の容易のため、最上位のクラスタのみ示している。また、記載を簡潔にするため特徴ベクトル２２の記載は省略されており、図７における丸などの記号が示す点２３は、特徴ベクトル２２が示す特徴ベクトル空間内の座標を示している。図７の例では、原点ＯＰから点２３へ向かうベクトルが特徴ベクトル２２となる。クラスタリング部５２は、クラスタＣ１〜Ｃ４ごとに代表ベクトル２４を決定する。
【００４５】
図８は、クラスタの階層構造の一例を説明する図である。すべての特徴ベクトルの集合ＣＡは、複数のクラスタＣ１〜Ｃ１２８に分割され、それぞれのクラスタＣ１〜Ｃ１２８には、１または複数の特徴ベクトルが属している。ここで、クラスタＣ１に属する特徴ベクトルの数は予め定められた閾値より小さく、クラスタＣ２に属する特徴ベクトルの数はその閾値より大きい。したがって、クラスタＣ２に属する特徴ベクトルは、その下位のクラスタＣ２＿１〜Ｃ２＿１２８に分類されている。したがって、ある特徴ベクトルが属する最下層のクラスタの階層（例えばクラスタＣ１の階層）と、他の特徴ベクトルが属する最下層のクラスタの階層（例えばクラスタＣ２＿２の階層）とが異なってよい。なお、あるクラスタの下位にクラスタが存在する場合、その下位のクラスタの数は２以上である。
【００４６】
また、クラスタリング部５２は、どの階層のクラスタについても代表ベクトルを決定する。例えばクラスタＣ２の代表ベクトルの下位の代表ベクトルとしてクラスタＣ２＿１の代表ベクトルが存在する。また、代表ベクトルの関係をみると、上位のクラスタの代表ベクトルのうち１つに、その下位の複数のクラスタを代表する複数の代表ベクトルが対応している。
【００４７】
代表ベクトルが決定されると、クラスタリング部５２は、複数の特徴ベクトルのそれぞれに対応する代表ベクトルを決定する（ステップＳ１０４）。より具体的には、クラスタリング部５２は、特徴ベクトルが属するクラスタの代表ベクトルを、その特徴ベクトルに対応する代表ベクトルとして決定する。なお、クラスタリング部５２は、特徴ベクトルとの距離が最も近い代表ベクトルを、その特徴ベクトルに対応する代表ベクトルとして決定してもよい。なお、特徴ベクトルをクラスタに分類し、代表ベクトルを決定する処理は、画像検索サーバ１と異なるサーバにおいて予め実行されてもよい。この場合、予め生成された代表ベクトルを記憶装置に格納しておき、画像検索サーバ１は、以降の処理のために、代表ベクトルを決定する処理の代わりに、記憶装置に格納された代表ベクトルのデータを読み出してよい。
【００４８】
次に、スコア値算出部５３は、特徴ベクトルのそれぞれについてスコア値を算出する（ステップＳ１０５）。ここで、スコア値はスカラー値であり、ベクトルではない。スコア値は、特徴ベクトルと、その特徴ベクトルに対応する代表ベクトルとの類似の大きさを示す。スコア値は、特徴ベクトルとその特徴ベクトルに対応する代表ベクトルとの距離であってもよいし、コサイン類似度であってもよいし、類似度から所定の計算式により算出された値であってもよい。
【００４９】
図９は、ある画像から抽出された特徴ベクトルと代表ベクトルとの関係を説明する図である。丸や四角の記号により表される点２３は、ある画像から抽出された特徴ベクトルを示す。また点Ｐ１〜Ｐ３は、それぞれクラスタＣ１〜Ｃ３の代表ベクトルを示す。図９の例では、点Ｐ１が示す代表ベクトルと、その代表ベクトルに対応付けられた特徴ベクトルとの距離Ｌがスコア値として計算される。
【００５０】
スコア値が計算されると、特徴値算出部５４は、画像のそれぞれについて複数の特徴値を算出する（ステップＳ１０６）。特徴値算出部５４は、画像のそれぞれについて、代表ベクトルごとに特徴値を算出する。特徴値は、代表ベクトルに応じた画像の特徴を示す値である。特徴値算出部５４は、ある画像およびある代表ベクトルについての特徴値を、その画像から抽出された特徴ベクトルのうち、その代表ベクトルに対応する１または複数の特徴ベクトルについて求められたスコア値に基づいて算出する。
【００５１】
例えば、特徴値算出部５４は、ある画像から抽出された特徴ベクトルのうち、ある代表ベクトルに対応する１または複数の特徴ベクトルについて求められたスコア値の合計をその画像および代表ベクトルについての特徴値として算出する。ある画像についてのｉ番目のクラスタの代表ベクトル（以下ではｉ番目の代表ベクトルと記載する）についての特徴値ｖｉの算出方法を式で表すと以下のようになる。ここで、ｉは、１以上各階層のクラスタの数の総和以下の整数のうちいずれかである。
【００５２】
【数１】
0006378855.tif 000002
【００５３】
ここで、Ｃｉはｉ番目のＶｉｓｕａｌ  Ｗｏｒｄ、言い換えるとｉ番目の代表ベクトルを示す。ここで、ｉ番目のクラスタは、各階層のクラスタすべてのうちいずれかであり、番号ｉは、すべてのクラスタに順に付与された一種のシーケンス番号である。Ｄｉは、算出対象の画像から抽出された特徴ベクトルのうち、ｉ番目の代表ベクトルに対応する特徴ベクトルの集合であり、ｄはその集合に含まれる特徴ベクトルである。上記の式では、特徴ベクトルと代表ベクトルとの距離の和が特徴値として計算されている。
【００５４】
ある画像について算出された特徴値の数は代表ベクトルの数と同じであり、この複数の特徴値は一種の重み付きヒストグラムになる。図１０は、ある画像について算出された複数の特徴値ｖｉの一例を示す図である。ある画像についての特徴値の集合は、一種のベクトルであり、画像の特徴を示すベクトル（以下では「画像ベクトル」と記載する）である。この画像ベクトルのデータ量は、画像から抽出される特徴ベクトルそのもののデータ量より小さい。また、画像ベクトルの次元は、画像から抽出される特徴ベクトルの数に関わらず一定となる。
【００５５】
ここで、クラスタが階層構造を有するため、下位のクラスタ（例えばクラスタＣ２＿１）の代表ベクトルに特徴ベクトルが対応する場合、その特徴ベクトルについてのスコア値は下位のクラスタだけでなくその上位のクラスタ（例えばクラスタＣ２）についても０でない値として算出される。これにより、クラスタを細分化することにより比較に用いるデータ量を確保しつつ、少し異なるだけで全く違うものとして評価される可能性を減らすことができる。
【００５６】
画像のそれぞれについて複数の特徴値が算出されると、インデックス生成部５５は、画像のそれぞれについて算出された複数の特徴値を圧縮することで、データ量が複数の特徴値より小さい検索インデックスを作成する（ステップＳ１０７）。また、作成された検索インデックスを、インデックス格納部７２に格納する（ステップＳ１０８）。特徴値の圧縮は、例えば画像ベクトルの次元の圧縮であり、インデックス生成部５５は次元が圧縮された画像ベクトルをその画像の検索インデックスとする。
【００５７】
本実施形態では、画像ベクトルの次元の圧縮は、ディープオートエンコーダ（DAEs: Deep Autoencoders）により行われる。ディープオートエンコーダはいわゆるニューラルネットワークを用いた計算手法である。インデックス生成部５５は、ｋ次元の入力データから、ｍ次元（ｍ＜ｋ）のノードを経てｋ次元の出力データを出力するニューラルネットワークにおいて、入力データと出力データが極力同一になるように学習し、その学習がなされたニューラルネットワークに画像ベクトルを入力した場合のｍ次元のノードの値をその画像ベクトルが圧縮されたベクトルとして算出する。オートエンコーダにより、画像ベクトルの重要な要素が強く影響し、重要でない要素が影響しないようにデータの次元を圧縮することができる。オートエンコーダに対する入力データの値を０以上１以下とするため、インデックス生成部５５は、学習およびデータ圧縮の際に以下の式により変換された画像ベクトルの特徴値をオートエンコーダへの入力データにしている。
【００５８】
【数２】
0006378855.tif 000003
【００５９】
なお、オートエンコーダの代わりに主成分分析により画像ベクトルの次元を圧縮してもよい。ただし、主成分分析よりもオートエンコーダの方がより精度の高い検索インデックスを生成できる。
【００６０】
以下では、上記記載の手法により生成された検索インデックスを用いて画像を検索する検索処理部６０の処理について説明する。
【００６１】
クエリベクトル抽出部６１は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。クエリベクトル抽出部６１は、検索条件として入力されたクエリ画像のデータから、クエリ画像の局所的な特徴を示す複数のクエリベクトルを抽出する。
【００６２】
クエリ対応決定部６２は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。クエリ対応決定部６２は、抽出された複数のクエリベクトルのそれぞれに対応する代表ベクトル（およびクラスタ）を選択する。
【００６３】
クエリスコア値算出部６３は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。クエリスコア値算出部６３は、複数の代表ベクトルのそれぞれと、複数のクエリベクトルの少なくとも一部との類似の大きさを示すスコア値を算出する。例えば、スコア値算出部５３は、代表ベクトルのそれぞれについて、代表ベクトルと、その代表ベクトルに対応する複数のクエリベクトルのそれぞれとの距離をスコア値として算出する。
【００６４】
クエリ特徴値算出部６４は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。クエリ特徴値算出部６４は、クエリ画像について、代表ベクトルごとに代表ベクトルに応じた特徴を示すクエリ特徴値を算出する。
【００６５】
画像検索部６５は、主にプロセッサ１１がプログラムを実行し、記憶部１２を制御することにより実現される。画像検索部６５は、クエリ画像についての複数のクエリ特徴値と、インデックス格納部７２に格納された複数の画像の検索インデックスとに基づいて、クエリ画像に類似する画像を検索する。
【００６６】
以下では、検索処理部６０において行われる処理をより詳細に説明する。図１１は、検索処理部６０の処理の一例を示すフロー図である。
【００６７】
はじめに、クエリベクトル抽出部６１は、検索条件として入力されたクエリ画像から、クエリベクトルを抽出する（ステップＳ２０１）。クエリベクトル抽出部６１がクエリ画像からクエリベクトルを抽出する手法は、特徴ベクトル抽出部５１が特徴ベクトルを抽出する手法と同じである。
【００６８】
つぎに、クエリ対応決定部６２は、抽出された複数のクエリベクトルのそれぞれに対応する代表ベクトルを選択する（ステップＳ２０２）。より具体的には、クエリ対応決定部６２は、クエリベクトルのそれぞれについて、クエリベクトルと代表ベクトルとの距離を算出し、その距離が最短となる代表ベクトルを、そのクエリベクトルに対応する代表ベクトルとして選択する。なお、クエリ対応決定部６２は、距離の代わりに類似度に基づいてクエリベクトルに対応する代表ベクトルを選択してもよい。
【００６９】
代表ベクトルが選択されると、クエリスコア値算出部６３は、クエリベクトルのそれぞれについて、代表ベクトルと、その代表ベクトルに対応する複数のクエリベクトルの類似の大きさを示すスコア値を算出する（ステップＳ２０３）。代表ベクトルおよびその代表ベクトルに対応するクエリベクトルからスコア値を算出する手法は、スコア値算出部５３が代表ベクトルおよびその代表ベクトルに対応する特徴ベクトルからスコア値を算出する手法と同じである。
【００７０】
次に、クエリ特徴値算出部６４は、クエリ画像のそれぞれについて、スコア値に基づいて、代表ベクトルごとに代表ベクトルに応じた特徴を示す複数のクエリ特徴値を算出する（ステップＳ２０４）。クエリ特徴値算出部６４がクエリ画像について、スコア値に基づいて複数のクエリ特徴値を算出する手法は、特徴値算出部５４が、ある画像についてスコア値に基づいて複数の特徴値を算出する手法と同じである。
【００７１】
そして、画像検索部６５は、算出された複数のクエリ特徴値を圧縮し、検索インデックスの検索キーを生成する（ステップＳ２０５）。画像検索部６５は、インデックス生成部５５が、ある画像について、複数の特徴値を圧縮して検索インデックスを作成する手法と同じ手法により、複数のクエリ特徴値を圧縮して検索キーを生成する。
【００７２】
検索キーが生成されると、画像検索部６５は、インデックス格納部７２に格納された検索インデックスと、クエリ画像に基づいて生成された検索キーとに基づいて、クエリ画像に類似する画像を検索する（ステップＳ２０６）。より具体的には、画像検索部６５は、検索キーのベクトルと検索インデックスのベクトルとの類似の大きさ（例えば距離）を算出し、その類似の大きさに基づいて画像を選択する。
【００７３】
本発明の実施形態にかかる手法においては、スコア値算出部５３やクエリスコア値算出部６３により、スコア値がベクトルではなくスカラー値として算出される。ここで、非特許文献１に記載のようなスコア値としてベクトルが算出される発明では、ある代表ベクトルと特徴ベクトルとの差と、その代表ベクトルと他の特徴ベクトルとの差が互いに特徴を弱めあう現象が生じる。一方、本発明の実施形態にかかる手法ではこの現象は生じない。これにより、例えば、ある画像に互いに類似する数多くの局所的特徴が含まれ、ある代表ベクトルに対応する特徴ベクトルの数が多い場合などに、スコア値としてベクトルを算出する構成で生じうる精度の低下を抑えることができる。また、本発明の実施形態では、スコア値がスカラー値であるので、１つのビジュアルワードについて必要な情報量がベクトルより少なくなる。これにより、画像検索において、特徴ベクトルとビジュアルワードとの違いの存在を考慮しつつ、より多くのビジュアルワードを扱うことができる。
【要約】
より高い精度で類似の画像を検索すること。画像検索システムは、特徴ベクトル空間に含まれそれぞれ画像の特徴を示す複数の特徴ベクトルに基づいて生成された、複数の代表ベクトルを取得し、前記複数の特徴ベクトルのそれぞれと、当該特徴ベクトルに対応する前記代表ベクトルとの間の類似度を示すスカラー値を算出し、画像のそれぞれについて、前記スカラー値に基づき、代表ベクトルに応じた特徴を示す特徴値を代表ベクトルごとに算出し、前記算出された特徴値に関連する検索インデックスを作成する。【図１】
0006378855.tif 000004
【図２】
0006378855.tif 000005
【図３】
0006378855.tif 000006
【図４】
0006378855.tif 000007
【図５】
0006378855.tif 000008
【図６】
0006378855.tif 000009
【図７】
0006378855.tif 000010
【図８】
0006378855.tif 000011
【図９】
0006378855.tif 000012
【図１０】
0006378855.tif 000013
【図１１】
0006378855.tif 000014