(57)【特許請求の範囲】
【請求項１】
ＢｏＦ表現生成のためのビジュアルキーワードを、木構造インデックスを用いて探索するための装置であって、
前記木構造インデックスのリーフノードには、中心語彙が割り当てられており、
かつ、前記リーフノードには、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リストが関連付けられており、
さらに、前記リーフノードには、当該リーフノードに割り当てられた前記中心語彙と前記語彙リスト中の複数の近傍語彙との間のそれぞれの距離ｄｉが関連付けられており、
前記装置は、クエリ受付部と、中心語彙探索部と、差分データソート部と、比較部とを備えており、
前記クエリ受付部は、前記近傍語彙を探索するためのクエリデータを受け付ける構成となっており、
前記中心語彙探索部は、前記クエリデータに基づいて、前記木構造インデックスを用いて、リーフノードを探索する構成となっており、
前記差分データソート部は、前記クエリデータと探索された前記リーフノードに対応する中心語彙との間の距離ｑと、前記中心語彙と前記複数の近傍語彙との間の前記距離ｄｉとの差分データＳｉを算出し、かつ、算出された前記差分データＳｉの絶対値が小さい順で前記複数の近傍語彙がソートされたソートリストを生成する構成となっており、
前記比較部は、
（ａ）前記ソートリストにおいて特定のｉ番目の近傍語彙を決定する処理と、
（ｂ）当該ｉ番目の近傍語彙を最近傍語彙候補とする処理と、
（ｃ）前記ｉ番目の近傍語彙と前記クエリデータとの距離ｔを算出する処理と、
（ｄ）ｔ＜ｍ（ただしｍは既定の距離）であれば、ｍ＝ｔと設定する処理と、
（ｅ）ｉ＋１番目の近傍語彙があり、かつ、Ｓｉ＋１＜ｍである場合には、当該近傍語彙を前記ｉ番目の近傍語彙であると仮定して、前記（ｂ）からそれ以降の処理を繰り返す構成となっている
ビジュアルキーワードの探索装置。
【請求項２】
前記比較部は、前記処理（ｄ）の後に、
（ｆ）ｉ＋１番目の近傍語彙がない、又は、Ｓｉ＋１＜ｍでない場合には、前記処理（ｂ）で特定された最近傍語彙候補を最近傍語彙として特定する構成となっている
請求項１に記載のビジュアルキーワードの探索装置。
【請求項３】
前記比較部における前記処理（ａ）は、最初の処理においては、前記ｉ番目の近傍語彙として、前記ソートリスト中における１番目のものを用いる構成となっている
請求項１又は２に記載のビジュアルキーワードの探索装置。
【請求項４】
前記リーフノードに割り当てられた中心語彙は複数個となっており、
前記複数の中心語彙には、それぞれ、前記語彙リストが関連付けられており、
さらに、前記複数の中心語彙には、各中心語彙と、それに関連付けられた前記語彙リスト中の近傍語彙との距離ｄｉが関連付けられている
請求項１〜３のいずれか１項に記載のビジュアルキーワードの探索装置。
【請求項５】
前記比較部における前記処理（ｂ）は、最初の処理においては、前記距離ｍとして、実質的な無限大値が設定されている
請求項１〜４のいずれか１項に記載のビジュアルキーワードの探索装置。
【請求項６】
ＢｏＦ表現生成のためのビジュアルキーワードを、木構造インデックスを用いて、クエリ受付部と、中心語彙探索部と、差分データソート部と、比較部とを備える装置が探索する方法であって、
前記木構造インデックスのリーフノードには、中心語彙が割り当てられており、
かつ、前記リーフノードには、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リストが関連付けられており、
さらに、前記リーフノードには、当該リーフノードに割り当てられた前記中心語彙と前記語彙リスト中の複数の近傍語彙との間のそれぞれの距離ｄｉが関連付けられており、
前記方法は、
前記クエリ受付部が前記近傍語彙を探索するためのクエリデータを受け付けるステップと、
前記中心語彙探索部が前記クエリデータに基づいて、前記木構造インデックスを用いて、リーフノードを探索するステップと、
前記差分データソート部が、前記クエリデータと探索された前記リーフノードに対応する中心語彙との間の距離ｑと、前記中心語彙と前記複数の近傍語彙との間の前記距離ｄｉとの差分データＳｉを算出し、かつ、算出された前記差分データＳｉの絶対値が小さい順で前記複数の近傍語彙がソートされたソートリストを生成するステップと、
比較ステップとを備えており、
前記比較ステップは、前記比較部が
（ａ）前記ソートリストにおいて特定のｉ番目の近傍語彙を決定するステップと、
（ｂ）当該ｉ番目の近傍語彙を最近傍語彙候補とするステップと、
（ｃ）前記ｉ番目の近傍語彙と前記クエリデータとの距離ｔを算出するステップと、
（ｄ）ｔ＜ｍ（ただしｍは既定の距離）であれば、ｍ＝ｔと設定するステップと、
（ｅ）ｉ＋１番目の近傍語彙があり、かつ、Ｓｉ＋１＜ｍである場合には、当該近傍語彙を前記ｉ番目の近傍語彙であると仮定して、前記（ｂ）からそれ以降のステップを繰り返すステップとを備えている
ビジュアルキーワードの探索方法。
【請求項７】
請求項６に記載の各ステップをコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＢｏＦ表現生成のために用いられるビジュアルキーワードを探索するための装置及び方法に関するものである。
【背景技術】
【０００２】
下記特許文献１に示されるように、局所特徴量を用いた画像認識手法が知られている。この手法では、画像を複数の部分に分割し、各部分に対応して局所特徴量を抽出し、この局所特徴量を用いて類似画像検索を行うことができる。これらの局所特徴量は、画像の特徴を精度良く表すために、通常、多次元のベクトルデータとされている。
【０００３】
ところで、下記特許文献１にも示されているように、局所特徴量を用いた類似画像検索では、計算量が膨大となる傾向がある。
【０００４】
そこで、局所特徴量を高速に検索するために、ビジュアルキーワードあるいはＢｏＦ（Bag of Features）という手法が提案されている。この手法では、複数の学習用の局所特徴量を予めクラスタリングすることにより、クラスタを代表する局所特徴量（つまりビジュアルキーワード）を算出する。さらに、各クラスタにＩＤを付す。すると、ある画像における特定の局所特徴量を、それに近いビジュアルキーワードが属する特定のクラスタのＩＤに紐付けることができる。
【０００５】
したがって、ある画像に対応する複数の局所特徴量の集合を、クラスタＩＤのヒストグラム（集合ということもできる）により置き換えることができる。このクラスタＩＤのヒストグラムを、ＢｏＦ表現あるいは単にＢｏＦと呼ぶ。一枚の画像に対応して、一つのＢｏＦ表現を得ることができる。生成されたＢｏＦ表現は、一般に転置ファイルによって検索できる。なお、ＢｏＦ表現を「特徴ベクトル」と称することがあるが、本明細書では、画像の特徴量を示す特徴ベクトルとの混同を避けるため、ＢｏＦ表現という用語を用いる。
【０００６】
このように、ＢｏＦ表現を用いることにより、局所特徴量を量子化して、データ量を減らすことができる。しかも、検索には転置ファイルを利用できるので、局所特徴量自体を用いるよりも高速な類似画像検索（つまり画像認識）が可能となる。
【０００７】
ところで、ある画像に対応するＢｏＦ表現の生成（つまり学習段階）においては、当該画像から抽出された局所特徴量（つまりクエリ特徴量）に近いビジュアルキーワードを、ビジュアルキーワード群から探索する必要がある。この探索においては、クエリ特徴量と各ビジュアルキーワードとの距離を算出し、この距離に基づいて、最近傍のビジュアルキーワードを特定する手法が知られている。
【０００８】
ここで、ＢｏＦ表現による検索の精度を向上させるためには、ビジュアルキーワードの数を増やすことが一般的には好ましい。一方、探索対象となるビジュアルキーワードの数が増えると、ビジュアルキーワードを探索するための時間が増加するという問題を生じる。
【０００９】
この問題に対応するため、本出願人は、特願２０１２−２８４５５３号の技術を提案した。この技術では、ビジュアルキーワードを探索するための木構造インデックスを予め生成し、各リーフノードにビジュアルキーワードを割り当てる。そして、この木構造インデックスを辿ってビジュアルキーワードを特定することにより、距離計算の回数を減らし、探索時間を短縮することができる。
【００１０】
ただし、ビジュアルキーワード（あるいは局所特徴量）を構成するベクトルの次元数が増えると、木構造インデックスを辿って得られたビジュアルキーワードが、クエリ特徴量の最近傍とは必ずしも限らないことがある。
【００１１】
そこで、本発明者は、木構造インデックスの各リーフノードに、近傍語彙リストを関連付ける技術も提案している。この技術によれば、リーフノードが探索された後、近傍語彙リストに属する各語彙とクエリ特徴量との距離をそれぞれ計算し、最近傍語彙を特定できるという利点がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１１−１２８７７３号公報（０００３〜０００５段落）
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、各リーフノードに関連付けられる近傍語彙リスト中の各語彙とクエリ特徴量との距離計算においても、一般的には相当の時間を要する傾向がある。
【００１４】
本発明は、前記した状況に鑑みてなされたものである。本発明の主な目的は、語彙リスト中の近傍語彙とクエリ特徴量との距離計算の回数を減らすことにより、ビジュアルキーワードの探索時間を短縮化することが可能な手法を提供することである。
【課題を解決するための手段】
【００１５】
本発明は、以下のいずれかの項目に記載の構成とされている。
【００１６】
（項目１）
ＢｏＦ表現生成のためのビジュアルキーワードを、木構造インデックスを用いて探索するための装置であって、
前記木構造インデックスのリーフノードには、中心語彙が割り当てられており、
かつ、前記リーフノードには、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リストが関連付けられており、
さらに、前記リーフノードには、当該リーフノードに割り当てられた前記中心語彙と前記語彙リスト中の複数の近傍語彙との間のそれぞれの距離ｄｉが関連付けられており、
前記装置は、クエリ受付部と、中心語彙探索部と、差分データソート部と、比較部とを備えており、
前記クエリ受付部は、前記近傍語彙を探索するためのクエリデータを受け付ける構成となっており、
前記中心語彙探索部は、前記クエリデータに基づいて、前記木構造インデックスを用いて、リーフノードを探索する構成となっており、
前記差分データソート部は、前記クエリデータと探索された前記リーフノードに対応する中心語彙との間の距離ｑと、前記中心語彙と前記複数の近傍語彙との間の前記距離ｄｉとの差分データＳｉを算出し、かつ、算出された前記差分データＳｉの絶対値が小さい順で前記複数の近傍語彙がソートされたソートリストを生成する構成となっており、
前記比較部は、
（ａ）前記ソートリストにおいて特定のｉ番目の近傍語彙を決定する処理と、
（ｂ）当該ｉ番目の近傍語彙を最近傍語彙候補とする処理と、
（ｃ）前記ｉ番目の近傍語彙と前記クエリデータとの距離ｔを算出する処理と、
（ｄ）ｔ＜ｍ（ただしｍは既定の距離）であれば、ｍ＝ｔと設定する処理と、
（ｅ）ｉ＋１番目の近傍語彙があり、かつ、Ｓｉ＋１＜ｍである場合には、当該近傍語彙を前記ｉ番目の近傍語彙であると仮定して、前記（ｂ）からそれ以降の処理を繰り返す構成となっている
ビジュアルキーワードの探索装置。
【００１７】
（項目２）
前記比較部は、前記処理（ｄ）の後に、
（ｆ）ｉ＋１番目の近傍語彙がない、又は、Ｓｉ＋１＜ｍでない場合には、前記処理（ｂ）で特定された最近傍語彙候補を最近傍語彙として特定する構成となっている
項目１に記載のビジュアルキーワードの探索装置。
【００１８】
（項目３）
前記比較部における前記処理（ａ）は、最初の処理においては、前記ｉ番目の近傍語彙として、前記ソートリスト中における１番目のものを用いる構成となっている
項目１又は２に記載のビジュアルキーワードの探索装置。
【００１９】
（項目４）
前記リーフノードに割り当てられた中心語彙は複数個となっており、
前記複数の中心語彙には、それぞれ、前記語彙リストが関連付けられており、
さらに、前記複数の中心語彙には、各中心語彙と、それに関連付けられた前記語彙リスト中の近傍語彙との距離ｄｉが関連付けられている
項目１〜３のいずれか１項に記載のビジュアルキーワードの探索装置。
【００２０】
（項目５）
前記比較部における前記処理（ｂ）は、最初の処理においては、前記距離ｍとして、実質的な無限大値が設定されている
項目１〜４のいずれか１項に記載のビジュアルキーワードの探索装置。
【００２１】
（項目６）
ＢｏＦ表現生成のためのビジュアルキーワードを、木構造インデックスを用いて装置により探索するための方法であって、
前記木構造インデックスのリーフノードには、中心語彙が割り当てられており、
かつ、前記リーフノードには、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リストが関連付けられており、
さらに、前記リーフノードには、当該リーフノードに割り当てられた前記中心語彙と前記語彙リスト中の複数の近傍語彙との間のそれぞれの距離ｄｉが関連付けられており、
前記方法は、
前記近傍語彙を探索するためのクエリデータを受け付けるステップと、
前記クエリデータに基づいて、前記木構造インデックスを用いて、リーフノードを探索するステップと、
前記クエリデータと探索された前記リーフノードに対応する中心語彙との間の距離ｑと、前記中心語彙と前記複数の近傍語彙との間の前記距離ｄｉとの差分データＳｉを算出し、かつ、算出された前記差分データＳｉの絶対値が小さい順で前記複数の近傍語彙がソートされたソートリストを生成するステップと、
比較ステップとを備えており、
前記比較ステップは、
（ａ）前記ソートリストにおいて特定のｉ番目の近傍語彙を決定するステップと、
（ｂ）当該ｉ番目の近傍語彙を最近傍語彙候補とするステップと、
（ｃ）前記ｉ番目の近傍語彙と前記クエリデータとの距離ｔを算出するステップと、
（ｄ）ｔ＜ｍ（ただしｍは既定の距離）であれば、ｍ＝ｔと設定するステップと、
（ｅ）ｉ＋１番目の近傍語彙があり、かつ、Ｓｉ＋１＜ｍである場合には、当該近傍語彙を前記ｉ番目の近傍語彙であると仮定して、前記（ｂ）からそれ以降のステップを繰り返すステップとを備えている
ビジュアルキーワードの探索方法。
【００２２】
（項目７）
項目６に記載の各ステップをコンピュータに実行させるためのコンピュータプログラム。
【００２３】
このコンピュータプログラムは、適宜な記録媒体（例えばＣＤ−ＲＯＭやＤＶＤディスクのような光学的な記録媒体、ハードディスクやフレキシブルディスクのような磁気的記録媒体、あるいはＭＯディスクのような光磁気記録媒体）に格納することができる。このコンピュータプログラムは、インターネットなどの通信回線を介して伝送されることができる。
【発明の効果】
【００２４】
本発明によれば、木構造インデックスのリーフノードに関連づけられた語彙リスト中の近傍語彙とクエリ特徴量（クエリデータ）との距離計算の回数を減らすことが可能になる。このため、本発明によれば、ビジュアルキーワードの探索時間を短縮化することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係るビジュアルキーワード探索装置を含むＢｏＦ表現生成システムの概略的なブロック図である。
【図２】本発明の一実施形態に係るビジュアルキーワード探索装置の概略的なブロック図である。
【図３】図１のシステムを用いたＢｏＦ表現生成方法の全体的な手順を説明するためのフローチャートである。
【図４】ビジュアルキーワード生成のための学習画像の一例を示す説明図である。
【図５】ビジュアルキーワードの生成手順を説明するための説明図であって、図（ａ）は局所特徴量空間における局所特徴量の概念図、図（ｂ）は局所特徴量のクラスタリングの概念図である。
【図６】木構造インデックスと近傍語彙リストを説明するための概念的な説明図である。
【図７】近傍語彙リストの概念図である。
【図８】本実施形態におけるビジュアルキーワードの探索手法を説明するためのフローチャートである。
【図９】図８に示す手法を説明するための説明図である。
【発明を実施するための形態】
【００２６】
以下、本発明の一実施形態に係るビジュアルキーワード探索装置を、添付の図面を参照しながら説明する。
【００２７】
まず、本例のビジュアルキーワード探索装置を含むＢｏＦ表現生成システムの概略を、図１を参照しながら説明する。なお、以下の説明においては、ビジュアルキーワードを単に語彙と称することがある。
【００２８】
（ＢｏＦ表現生成システム構成）
このシステムは、語彙受付部１と、インデックス生成部２と、語彙リスト生成部３と、語彙探索部４と、出力部５とを主要な構成として備えている。
【００２９】
（語彙受付部）
語彙受付部１は、既に生成されている多数のビジュアルキーワードを受け付ける機能要素である。通常、ビジュアルキーワードは、何らかのＤＢ中に予め格納されている。ビジュアルキーワードは、例えばK-means法などのクラスタリング手法を用いて既存語彙をクラスタリングすることにより生成することができる。ビジュアルキーワードの生成手順としては既知のものを使用可能なので、これについての詳しい説明は省略する。
【００３０】
（インデックス生成部）
インデックス生成部２は、適切なビジュアルキーワードを検索するための木構造インデックスを生成するための機能要素である。本実施形態では、木構造インデックスのリーフノードに割り当てられたビジュアルキーワードを「中心語彙」と称する。木構造インデックスを生成する手法としては、例えば、R-treeなど、既存の手法を利用可能なので、詳しい説明は省略する。
【００３１】
（語彙リスト生成部）
語彙リスト生成部３は、各リーフノードに割り当てられた中心語彙に近い複数の語彙（以下、「近傍語彙」と称することがある）を備えたリスト（以下、「近傍語彙リスト」又は単に「語彙リスト」と称することがある）を生成する機能要素である。生成されたリストは、木構造において対応するリーフノードに関連付けて記録される。さらに、リーフノードには、当該リーフノードに割り当てられた中心語彙と語彙リスト中の複数の近傍語彙との間のそれぞれの距離ｄｉが関連付けられている。例えば、１番目の近傍語彙と中心語彙との距離をｄ１、２番目の近傍語彙と中心語彙との距離をｄ２のようにして予め関連付けておくことができる。この関連付けも適宜な記録媒体に記録可能である。語彙リストの生成手法については後述する。
【００３２】
（語彙探索部：ビジュアルキーワード探索装置）
語彙探索部４は、本発明のビジュアルキーワード探索装置の一例に対応する機能要素である。以下、語彙探索部４の構成を、図２をさらに参照しながら説明する。
【００３３】
語彙探索部４は、クエリ受付部４１と、中心語彙探索部４２と、差分データソート部４３と、比較部４４とを備えている。
【００３４】
（クエリ受付部）
クエリ受付部４１は、近傍語彙を探索するためのクエリデータを受け付ける機能要素である。以下において、クエリデータは、クエリ又はクエリ特徴量と称されることがある。クエリデータは、ＢｏＦ表現生成の対象となる画像から抽出された局所特徴量である。つまり、このクエリデータは、実際の画像検索ではなく、その予備的手順であるＢｏＦ表現生成のために使用されるデータである。局所特徴量の抽出方法としては、例えばＳＩＦＴ（Scale-Invariant Feature Transform）などの既存手法を利用可能なので、この点についての詳しい説明は省略する。
【００３５】
（中心語彙探索部）
中心語彙探索部４２は、クエリデータに基づいて、木構造インデックスを用いて、リーフノードを探索する機能要素である。この探索の手順についても後述する。
【００３６】
（差分データソート部）
差分データソート部４３は、
・まず、「クエリデータ」と「探索されたリーフノードに対応する中心語彙」との間の距離ｑを求め、
・ついで、この距離ｑと、既に得られている「中心語彙と複数の近傍語彙との間の距離ｄｉ」との差分データＳｉを算出し
・さらに、算出された差分データＳｉの絶対値が小さい順で複数の近傍語彙がソートされたソートリストを生成する
という処理を行う機能要素である。したがって、Ｓｉ＝｜ｄｉ−ｑ｜と表すことができる。ここで、「絶対値が小さい順」とは、結果的にその順でソートされていることを意味しており、実際に絶対値を算出することは必須ではない。例えば、差分の２乗値、つまり（ｄｉ−ｑ）２を用いることで、同様のソート結果を得ることができる。差分データソート部４３の詳しい動作も後述する。
【００３７】
（比較部）
比較部４４は、
（ａ）生成されているソートリストにおいて特定のｉ番目（例えばＳｉが小さい順に１番目）の近傍語彙を決定する処理と、
（ｂ）当該ｉ番目の近傍語彙を最近傍語彙候補とする処理と、
（ｃ）ｉ番目の近傍語彙とクエリデータとの距離ｔを算出する処理と、
（ｄ）ｔ＜ｍ（ただしｍは既定の距離）であれば、ｍ＝ｔと設定する処理と、
（ｅ）ｉ＋１番目の近傍語彙があり、かつ、Ｓｉ＋１＜ｍである場合には、当該近傍語彙をｉ番目の近傍語彙であると仮定して、（ｂ）からそれ以降の処理を繰り返す処理と
を行う構成となっている。
【００３８】
さらに、本実施形態の比較部４４は、処理（ｄ）の後に、
（ｆ）ｉ＋１番目の近傍語彙がない、又は、Ｓｉ＋１＜ｍでない場合（つまりＳｉ＋１≧ｍ）には、処理（ｂ）で特定された最近傍語彙候補を最近傍語彙として特定する処理
を行う構成となっている。
【００３９】
ここで、Ｓｉ＋１＝ｍのときは、Ｓｉ＋１＜ｍの場合と同じ処理を行うこともできるが、処理回数を減らすためには、Ｓｉ＋１＞ｍの場合と同じ処理を行うことが好ましい。
【００４０】
ここで、処理（ｂ）は、実際に近傍語彙に最近傍語彙候補のフラグ等を付する手段でも実現できるが、単に当該ｉ番目の近傍語彙を何らかの手法で特定しておくだけでも実現可能である。すなわち、処理（ｂ）は、以降の処理が繰り返されずに終了する場合に、それまでに特定された近傍語彙（つまり最近傍語彙候補）が結果的に最近傍として特定されるという趣旨である。処理（ｂ）において、近傍語彙に対する名称付与などの特段の処理を行う必要はない。
【００４１】
また、処理（ｂ）は、最初の処理においては、距離ｍとして、実質的な無限大値を設定しておくことが好ましい。ここで、「実質的な無限大値」とは、予想される差分データＳｉの最大値よりも大きい値である。ここでｍを無限大値にするのは、初回の動作においてｔをｍに設定するためなので、その趣旨に沿う場合には、どのような値を用いてもよい。
【００４２】
比較部４４の詳しい動作についても後述する。
【００４３】
（出力部）
図１の出力部５は、語彙探索部４により特定された最近傍語彙を出力するための機能要素である。ここで出力とは、特定された最近傍語彙を後続の処理において利用可能にすることをいい、例えば、ＢｏＦ表現生成のための処理モジュールに、最近傍語彙を特定する情報（ID情報など）を送ることである。以降のＢｏＦ表現生成の手法は、既存のものと同様でよいので、詳しい説明は省略する。
【００４４】
（ＢｏＦ表現生成システム全体の手順）
以下、前記したＢｏＦ表現生成システムの動作手順の一例を、図３をさらに参照しながら説明する。
【００４５】
（図３のステップＳＡ−１）
まず、語彙受付部１は、ＢｏＦ表現生成のためのビジュアルキーワードを、適宜なデータベース（図示せず）から受け取る。ここで、ビジュアルキーワードの生成例を、図４及び図５をさらに参照して概略的に説明する。
【００４６】
ビジュアルキーワード生成用の学習画像（この例では何らかの商品画像）の例を図４に示す。この画像は、例えば、検索対象となるＣＤジャケットの写真である。学習画像としては、通常、多数のものが用意される。
【００４７】
これらの学習画像から、適宜な手法（例えばＳＩＦＴ）により、局所特徴量を抽出する。通常、一枚の画像から多数の局所特徴量が抽出される。抽出された局所特徴量を特徴量空間に配置した状態を概念的に図５（ａ）に示す。
【００４８】
ついで、これらの局所特徴量を、適宜な手法（例えばK-Means）によりクラスタリングし、クラスタ中心（図示せず）を決める。クラスタ中心にある、またはクラスタ中心に最も近い局所特徴量を、当該クラスタを代表するビジュアルキーワードとすることができる。算出されたクラスタ中心（重心）をビジュアルキーワードとすることもできる。各クラスタには、ＢｏＦ表現を生成するためのクラスタＩＤを紐づけることができる。
【００４９】
（図３のステップＳＡ−２）
ついで、インデックス生成部２は、特定されたビジュアルキーワードを探索するための木構造インデックスを、適宜な手法により生成する。木構造としては、構成を簡略にするために、二分木構造とすることが好ましいが、これに制約されるものではない。生成された木構造インデックス８を概念的に図６に示す。
【００５０】
本例では、木構造インデックス８は、６個のリーフノード８１〜８６を有している。もちろん、リーフノードの個数はこれに制約されず、通常はかなりの多数となる。木構造インデックス８の各リーフノード８１〜８６には、中心語彙（つまりビジュアルキーワード）が割り当てられている。
【００５１】
また、本例のリーフノード８１〜８６には、当該リーフノードに割り当てられた中心語彙との距離が近い複数の近傍語彙を有する語彙リスト９１〜９６がそれぞれ関連付けられている。なお、この明細書において語彙リスト全体を参照するときは符号９を用いる。語彙リスト９の一例を図７に示す。この語彙リスト９は、例えば次のように生成される。すなわち、一つのビジュアルキーワードが決定された後、当該ビジュアルキーワードと、他の全てのビジュアルキーワードとの距離を算出する。そして、近い順に規定個数（図７の例では１１個）のビジュアルキーワードを近傍語彙リストに含めることができる。あるいは、規定範囲内の全てのビジュアルキーワードを近傍語彙リストに含めることもできる。各語彙にはＩＤが付されており、これは、クラスタＩＤに対応している。なお、図７の例では、中心語彙に＃１０を割り当てたので、その番号が抜けた状態になっている。また、図７の例ではＩＤが連番であるかのように記載されているが、これはあくまで例示であり、実際は適宜のＩＤが割り当てられている。
【００５２】
さらに、リーフノード８１〜８６には、当該リーフノードに割り当てられた中心語彙と語彙リスト９中の複数の近傍語彙との間のそれぞれの距離ｄｉが関連付けられている。図７の例では、＃２の語彙ＩＤと中心語彙（この例では＃１０）との距離ｄｉが、＃２の右側に示されている。＃１以降の語彙についても同様である。もちろん、これらの情報の関連付け手法としては、必ずしもテーブル構造には制約されず、コンピュータで利用可能な適宜の手法を使用できる。
【００５３】
以上の手順は、いわば、ＢｏＦ表現生成のための学習用特徴量の事前処理方法であり、実際のＢｏＦ表現生成前に準備しておくことができる。また、事前に生成された木構造インデックス及び近傍語彙リストを適宜の場所に格納しておき、下記のＢｏＦ表現生成時に利用することができる。要するに、木構造インデックスの生成とＢｏＦ表現の生成は、まったく別の手順として、別のサーバあるいは端末において実行できる。
【００５４】
（図３のステップＳＡ−４）
以下においては、特定の画像についてのＢｏＦ表現を生成するための手順を説明する。まず、ユーザは、適宜な手法により、ＢｏＦ表現生成の対象となる画像から抽出された局所特徴量（つまりクエリデータ又はクエリ特徴量）を特定する。この特定は何らかのアルゴリズムにより自動的に行うこともできる。
【００５５】
ついで、クエリ受付部４１は、このクエリデータ（つまり、近傍語彙を探索するためのクエリデータ）の入力を受け付ける。ついで、中心語彙探索部４２は、受け付けたクエリデータに基づいて、木構造インデックスを用いて、リーフノードを探索する。これにより、リーフノードに対応する中心語彙（ビジュアルキーワード）を特定することができる。本実施形態では、木構造インデックスを用いているので、中心語彙を特定するための計算コストを低く抑えることができる。
【００５６】
（図３のステップＳＡ−５）
ついで、中心語彙に関連付けられた近傍語彙リストから、図８に示す手順で、最近傍語彙を探索する。
【００５７】
（図８のステップＳＢ−１）
中心語彙が特定されると、差分データソート部４３は、クエリデータと、探索されたリーフノードに対応する中心語彙との間の距離ｑを算出する。
【００５８】
（図８のステップＳＢ−２）
ついで差分データソート部４３は、距離ｑと、既に近傍語彙リストに関連付けられていた距離ｄｉ（中心語彙と各近傍語彙との間の距離）との差分データＳｉを算出する。さらに、差分データソート部４３は、算出された差分データＳｉの絶対値が小さい順で複数の近傍語彙がソートされたソートリスト（図７は結果的にそのようにソートされた状態を示す）を生成する。例えば、差分データＳｉは、Ｓｉ＝｜ｄｉ−ｑ｜により算出することができる。
【００５９】
（図８のステップＳＢ−３）
ついで、比較部４４は、最少距離ｍに実質的な無限大値をセットする。ただし、比較部４４は、あらかじめ何らかの値に設定されたｍを利用してもよく、この場合も、この明細書では、比較部４４がセットしたと観念する。
【００６０】
（図８のステップＳＢ−４）
ついで、比較部４４は、ソートリストにおいて特定のｉ番目の近傍語彙ｐｉを特定する。ソートリストは差分Ｓｉの小さい順で並んでいるので、通常は、１番目の近傍語彙が選択される。これにより、本実施形態では、当該ｉ番目の近傍語彙を最近傍語彙候補とすることができる。
【００６１】
（図８のステップＳＢ−５）
ついで、比較部４４は、ｉ番目の近傍語彙とクエリデータとの距離ｔを算出する。図９に、距離ｔを概念的に示した例を示す。この例では、クエリデータ１００と中心語彙＃１０との距離に符号ｑを付している。また、この例では、近傍語彙＃２がソートリストの１番目（したがってこれに対応するＳｉはＳ１となる）なので、それとクエリデータ１００との距離ｔ１が算出される。
【００６２】
（図８のステップＳＢ−６）
ついで、比較部４４は、ｔ＜ｍ（ただしｍは既定の距離）であれば、ｍ＝ｔと設定する。初回の動作では、ｍは無限大値なので、一般的には、ｍ＝ｔに設定される。具体的には、図９の例では、初回は、ｍ＝ｔ１となる。
【００６３】
（図８のステップＳＢ−７）
ついで、比較部４４は、Ｓｉ＋１＜ｍであるかを判定する。図７の例では、もしＳｉが＃２のＩＤに対応している場合、Ｓｉ＋１は、＃１のＩＤに対応する差分データ（つまり｜ｄｉ＋１−ｑ｜）である。この判断がＹｅｓであれば、ステップＳＢ−８に進み、ＮｏであればステップＳＢ−１０に進む。
【００６４】
この点を、図９を参照してさらに詳しく説明する。Ｓｉが＃２のＩＤに対応している場合、前記したように、ｍ＝ｔ１である（つまりこのときのｉ＝１）。一方、ｄｉは、理解しやすいように２次元で考えると、図９では、中心語彙＃１０から各ＩＤの語彙への半径と把握できる。したがって、差分データＳｉは、クエリデータ１００が載った円周（語彙＃１０が中心）から各語彙への、半径（語彙＃１０が中心）方向の距離と把握できる。差分データＳｉ＋１を＃１の語彙ＩＤに対応する差分データとすれば、図９の例では、Ｓｉ＋１＜ｍ（＝ｔ１）となっていることが分かる。
【００６５】
（図８のステップＳＢ−８〜９）
ついで、比較部４４は、ソートされた近傍語彙リスト中の先頭エントリを削除し、ソートリストが空かどうかを判定する。リストが空でなければステップＳＢ−４に進み、以降の動作を繰り返す。もしリストが空であればステップＳＢ−１０に進む。
【００６６】
（図８のステップＳＢ−７での判断がＮｏとなる場合）
ここで、ステップＳＢ−４に戻って再帰的処理を繰り返した結果、ステップＳＢ−７での判断がＮｏとなる場合について、図９を参照して説明する。前記したＳｉ＋１＜ｍの判定対象として、＃９（図７のソートリストにおいて９番目）の語彙が用いられている場合を考える。ここでは、それまでの手順の再帰的実行により、語彙＃４とクエリデータとの距離ｔ４がｍとされている。そして、最近傍語彙候補として、＃４が特定されている。この場合、クエリデータ１００から距離ｔ４だけ半径方向に離間した位置を、図９において２本の二点鎖線で示した。一方で、中心語彙から語彙＃９までの距離ｄ９を基準とした差分Ｓ９は、要するに、クエリデータ１００を通る円周（語彙＃１０が中心）から語彙＃９への半径方向距離である。図９では、語彙＃９は、外側の二点鎖線の外にあり、したがって、Ｓｉ＋１＜ｍ（＝ｔ４）がもはや成り立たないことが分かる。よって、ステップＳＢ−７での判断はＮｏとなり、ステップＳＢ−１０に移行する。
【００６７】
本実施形態では、差分データＳｉのソートリスト順に前記した再帰的処理を行うこととしているので、一旦、Ｓｉ＋１＜ｍが不成立となれば、もはや、それ以降の再帰的処理において、Ｓｉ＋１＜ｍが成り立つ可能性はない。それ以降は、Ｓｉ＋１の値は増加するからである。そうすると、距離ｍが更新される可能性はなく、したがって、より良い最近傍語彙候補が現れる可能性もない。したがって、Ｓｉ＋１＜ｍが不成立となれば、以降の再帰的処理を打ち切って、最近傍語彙を特定しても、特段の問題はない。
【００６８】
例えば本例では、図７の近傍語彙リストのソート順において、１０番目（＃１１）と１１番目（＃１２）の語彙については、距離計算（ステップＳＢ−５）を省略することができる。距離計算は、差分計算（ＳＢ−２でのＳｉの取得）及びソート処理に比較して、通常、はるかに負荷の高い処理なので、距離計算の一部を省略することにより、語彙探索における計算コストを低く抑えることができ、その結果、探索時間を短縮できるという利点がある。図７の例では、説明簡略化のため、少ない語彙数となっているが、リスト中の近傍語彙の数が増えるほど、本実施形態の利点が発揮されることになる。
【００６９】
また、本実施形態では、中心語彙と近傍語彙との距離ｄｉを予め計算しているが、これは、ビジュアルキーワード探索の前の予備段階で行われる処理なので、距離ｄｉの算出を行っても、ビジュアルキーワード探索の処理時間自体には影響しない。
【００７０】
なお、ここで、ステップＳＢ−７〜９の実行は、「ｉ＋１番目の近傍語彙があり、かつ、Ｓｉ＋１＜ｍである場合には、当該近傍語彙をｉ番目の近傍語彙であると仮定して、前記したｉ番目の近傍語彙への処理を繰り返す処理」の一例に相当する。
【００７１】
（図８のステップＳＢ−１０）
ステップ１０に進んだ場合には、その時点で最近傍の候補とされていた近傍語彙を最近傍語彙と特定することができる。この段階で図３のステップＳＡ−５は終了し、ステップＳＡ−６に進むことができる。
【００７２】
（図３のステップＳＡ−６）
ステップＳＡ−５までの処理を実行することにより、特定の局所特徴量の最近傍にあるビジュアルキーワードを特定することができる。すると、このビジュアルキーワードに紐づいたクラスタＩＤも特定される。したがって、前記した処理を、特定の画像における各局所特徴量に対して実行することにより、当該画像に対応するＢｏＦ表現を生成することができる。
【００７３】
本実施形態では、中心語彙の最近傍にあるビジュアルキーワードのクラスタＩＤを用いてＢｏＦ表現を生成できるので、生成されたＢｏＦ表現を用いた画像検索の精度を向上させることができるという利点がある。
【００７４】
また、前記した通り、本実施形態では、ビジュアルキーワード探索時の距離計算の回数を減らすことができるので、ビジュアルキーワードの探索時間を短縮することが可能になるという利点がある。
【００７５】
なお、本発明の内容は、前記実施形態に限定されるものではない。本発明は、特許請求の範囲に記載された範囲内において、具体的な構成に対して種々の変更を加えうるものである。
【００７６】
例えば、前記実施形態では、リーフノードごとに一つの中心語彙を割り当てている。しかしながら、各リーフノードに複数個の中心語彙を割り当てることもできる。これら複数の中心語彙には、それぞれ、対応する中心語彙に近い近傍語彙を含む語彙リストを関連付けることができる。さらに、複数の中心語彙には、各中心語彙と、それに関連付けられた語彙リスト中の近傍語彙との距離ｄｉを関連付けることができる。このようにすれば、生成されるＢｏＦ表現の精度をさらに向上させることができ、ＢｏＦ表現を用いた検索の精度の向上が期待できる。
【００７７】
また、前記の実施形態では、最近傍語彙は＃４となり、そこまでの距離はｔ４となる。ここで、中心語彙からクエリデータまでの距離ｑと距離ｔ４とを比較し、もしｑ＜ｔ４であれば中心語彙を最近傍語彙として特定することもできる。
【００７８】
さらに、前記した実施形態では、ステップＳＢ−８において、ソートリスト中の先頭エントリを削除しているが、これは、ソートリストの順番で再帰的処理を進めるための手順の一例に過ぎない。よって、このような再帰的手順を実行できる手法であれば、ステップＳＢ−８に代えて、適宜の手順を採用できる。
【００７９】
また、前記した各構成要素は、機能ブロックとして存在していればよく、独立したハードウエアとして存在しなくても良い。また、実装方法としては、ハードウエアを用いてもコンピュータソフトウエアを用いても良い。さらに、本発明における一つの機能要素が複数の機能要素の集合によって実現されても良く、本発明における複数の機能要素が一つの機能要素により実現されても良い。
【００８０】
さらに、機能要素は、物理的に離間した位置に配置されていてもよい。この場合、機能要素どうしがネットワークにより接続されていても良い。グリッドコンピューティング又はクラウドコンピューティングにより機能を実現し、あるいは機能要素を構成することも可能である。
【符号の説明】
【００８１】
１  語彙受付部
２  インデックス生成部
３  語彙リスト生成部
４  語彙探索部
４１  クエリ受付部
４２  中心語彙探索部
４３  差分データソート部
４４  比較部
５  出力部
８  木構造インデックス
８１〜８６  リーフノード
９（９１〜９６）  語彙リスト（ソートリスト）
１００  クエリデータ
【図１】
0006047120.tif 000002
【図２】
0006047120.tif 000003
【図３】
0006047120.tif 000004
【図４】
0006047120.tif 000005
【図５】
0006047120.tif 000006
【図６】
0006047120.tif 000007
【図７】
0006047120.tif 000008
【図８】
0006047120.tif 000009
【図９】
0006047120.tif 000010