(57)【特許請求の範囲】
【請求項１】
入力処理手段、オブジェクト分類処理手段、候補オブジェクト抽出処理手段及び検索処理手段を有する類似オブジェクト検索装置により実施され、
前記入力処理手段が、類似検索の対象とするオブジェクトである参照オブジェクトと、類似検索処理結果として返す提示オブジェクト数とを受け付けるステップと、
前記候補オブジェクト抽出処理手段が、所定の条件に従いｎ（ｎは正整数）次元の全オブジェクトの中から参照オブジェクトに類似した少なくとも提示オブジェクト数以上のオブジェクトを候補オブジェクトとして抽出する候補オブジェクト生成ステップと、
前記検索処理手段が、各候補オブジェクトと参照オブジェクトとの間の類似度を算出し、類似度の高い順に取り出した提示オブジェクト数個のオブジェクトを類似検索処理の結果として得る検索ステップと、
を含む類似オブジェクト検索方法において、
前記入力処理手段が、分類対象であるオブジェクトを受け付けるステップと、
前記オブジェクト分類処理手段が、分類対象であるオブジェクトと近傍分類蓄積手段に代表点として既に蓄積されている各オブジェクトとの各特徴量から求められる距離関係上、分類対象オブジェクトがいずれかの代表点を中心とした予め決められている近傍半径内に位置する場合には、当該分類対象オブジェクトをその近傍半径内の中心となったいずれか一つの代表点の近傍内データとして前記近傍分類蓄積手段に登録し、当該分類対象オブジェクトがいずれの代表点を中心とした近傍半径内に位置しない場合には、分類対象オブジェクトを代表点としてかつその代表点の近傍内データとして前記近傍分類蓄積手段に登録する近傍分類ステップと、
を含み、
前記候補オブジェクト生成ステップは、
前記近傍分類蓄積手段に蓄積された各代表点と参照オブジェクトとの間の類似度を算出し、
代表点の近傍内データとして含まれるオブジェクト数の累計が提示オブジェクト数以上になるまで類似度の高い代表点の順に当該オブジェクト数を加算し、
そのオブジェクト数の加算によりオブジェクト数の累計が提示オブジェクト数以上になった時点で加算した当該オブジェクト数に対応する代表点を基準代表点とした場合、参照オブジェクトとの距離が、基準代表点と参照オブジェクトとの間の距離に前記近傍半径の２倍の値を加算した値以下となる代表点を特定し、
その特定した各代表点の近傍内データであるオブジェクトを候補オブジェクトとして抽出することを特徴とする類似オブジェクト検索方法。
【請求項２】
前記候補オブジェクト生成ステップは、提示オブジェクト数が１の場合、参照オブジェクトとの間の距離が、参照オブジェクトと基準代表点との間の距離に近傍半径を加算した値以下となる代表点の近傍内データに含まれるオブジェクト候補オブジェクトとして抽出することを特徴とする請求項１記載の類似オブジェクト検索方法。
【請求項３】
前記近傍分類蓄積手段に登録した代表点を分類対象オブジェクトとして扱い前記近傍分類ステップを繰り返し実行することで代表点を多段階に設定可能としたことを特徴とする請求項１記載の類似オブジェクト検索方法。
【請求項４】
利用者が入力指定した類似検索の対象とするオブジェクトである参照オブジェクト及び提示オブジェクト数に基づき類似検索処理を実行することによってｎ（ｎは正整数）次元の全オブジェクトの中から、参照オブジェクトに類似したオブジェクトを、類似度の高い順に提示オブジェクト数取り出して利用者に提示する類似オブジェクト検索装置において、
全オブジェクトのうち代表点となるオブジェクトに対応づけて、距離関係上当該代表点を中心とする予め決められた近傍半径内に位置するオブジェクトを近傍内データとして蓄積する近傍分類蓄積手段と、
オブジェクトと各代表点との距離関係に応じて各オブジェクトを代表点とするか否かを決定すると共に当該オブジェクトをいずれかの代表点の近傍内データとして含まれるよう分類し、前記近傍分類蓄積手段に登録するオブジェクト分類処理手段と、
全オブジェクトの中から参照オブジェクトと類似している少なくとも提示オブジェクト数以上のオブジェクトを候補オブジェクトとして抽出する候補オブジェクト抽出処理手段と、
前記候補オブジェクト抽出処理手段が抽出した各候補オブジェクトと参照オブジェクトとの間の類似度を算出し、類似度の高い順に取り出した提示オブジェクト数個のオブジェクトを類似検索処理の結果として得る検索処理手段と、
を有し、
前記候補オブジェクト抽出処理手段は、
前記近傍分類蓄積手段に蓄積された各代表点と参照オブジェクトとの間の類似度を算出し、
代表点の近傍内データとして含まれるオブジェクト数の累計が提示オブジェクト数以上になるまで類似度の高い代表点の順に当該オブジェクト数を加算し、
そのオブジェクト数の加算によりオブジェクト数の累計が提示オブジェクト数以上になった時点で加算した当該オブジェクト数に対応する代表点を基準代表点とした場合、参照オブジェクトとの距離が、基準代表点と参照オブジェクトとの間の距離に前記近傍半径の２倍の値を加算した値以下となる代表点を特定し、
その特定した各代表点の近傍内データであるオブジェクトを候補オブジェクトとして抽出することを特徴とする類似オブジェクト検索装置。
【請求項５】
前記候補オブジェクト抽出処理手段は、提示オブジェクト数が１の場合、参照オブジェクトとの間の距離が、参照オブジェクトと基準代表点との間の距離に近傍半径を加算した値以下となる代表点の近傍内データに含まれるオブジェクト候補オブジェクトとして抽出することを特徴とする請求項４記載の類似オブジェクト検索装置。
【請求項６】
代表点の数及び各代表点の近傍内データに含まれるオブジェクト数の偏りをなくすように近傍半径の設定値を調整する近傍半径調整手段を有することを特徴とする請求項４記載の類似オブジェクト検索装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、膨大な量のディジタル画像データ等のオブジェクトデータの中から入力指定されたオブジェクトと類似するオブジェクトを検索して提示する類似オブジェクト検索装置及びその方法、特に正しい検索結果をより高速に得るための装置及び方法に関する。
【０００２】
【従来の技術】
例えば、ｎ次元空間で構成されるデータベースの中から、類似検索の対象とする画像データ等のオブジェクトデータ（以下、「参照オブジェクト」）に類似する上位Ｋ個のオブジェクトを検索して、その処理結果を返す類似検索方法として、例えば特開平１０−２４０７６５号公報に記載された類似オブジェクト検索方法がある。図９は、この従来例において類似検索処理を示したフローチャートであるが、この図に用いて従来例において参照オブジェクトに類似する上位Ｋ個のオブジェクトを返すための処理手順について説明する。なお、以下の説明で登場する「近傍オブジェクト」というのは、データベースに登録されているオブジェクトのうち参照オブジェクトに類似する所定個数のオブジェクトのことをいい、近傍オブジェクトのうち上位Ｋ個が処理結果として返される。
【０００３】
まず、参照オブジェクト、オブジェクト間の類似度をはかるための観点である重み及び処理結果として返す近傍オブジェクト数（Ｋ個）というパラメータが入力されると、特徴量毎に処理を分割して類似する近傍オブジェクトを見つけている。すなわち、参照オブジェクトをＯｂＲ＝（ＶＲ１，ＶＲ２，…，ＶＲｎ）とすると、特徴量１について参照オブジェクトのＶＲ１の近傍するオブジェクトを検索して所定個数ｆ（Ｋ）個の近傍オブジェクトを抽出する。同様に特徴量２について参照オブジェクトのＶＲ２の近傍するオブジェクトを検索してｆ（Ｋ）個の近傍オブジェクトを抽出する。これをｎ個の各特徴量毎に行う。この結果、最大ｎ×ｆ（Ｋ）個の近傍オブジェクトからなる候補オブジェクト群を生成する。そして、候補オブジェクト群の中から各近傍オブジェクトと参照オブジェクトとの類似度を計算する。この類似度順に上位Ｋ個のオブジェクトを処理結果として返却する。
【０００４】
従来例においては、以上のようにｎ次元あるうちの各次元（要素）毎に近傍のオブジェクトを探し出し、その上位ｆ（Ｋ）個の中から上位Ｋ個を見つけ出している。つまり、データベースに含まれるオブジェクトを上位ｆ（Ｋ）個に絞り込むことで候補オブジェクト群を生成し、その候補オブジェクト群に含まれるオブジェクト（以下、「候補オブジェクト」）に対してのみ類似度計算を行うようにしたので類似検索処理を高速に行うことができる。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来においては、以下の問題点がある。まず、第１に、正しい結果が得られないという問題がある。すなわち、従来例では、各特徴量（例えば第i特徴量）毎にオブジェクトと参照オブジェクトを比較し、参照オブジェクトの該当する特徴量（ＶＲｉ）と近いｆ（Ｋ）個のオブジェクトを探し、全特徴量に関するそれらの和集合を求めて、そこから上位Ｋ個のオブジェクトを探し出すとしている。しかし、各次元毎に近いものを集めても、全体で本当に近いデータが含まれているとは限らないという反例を容易に示すことができる。例えば、次元数ｎ＝２、オブジェクト数ｍ＝３、Ｋ＝１、ｆ（Ｋ）＝１、各オブジェクトＯＢ１＝（１，１００）、ＯＢ２＝（１００，１）、ＯＢ３＝（１．５，１．５）、参照オブジェクトＯｂＲ＝（０，０）、そして重みＷ＝（１，１）と設定したとする。従来例に処理によると、第１次元に関するＯｂＲの近傍としてＯｂ１を選ぶ。第２次元に関するＯｂＲの近傍としてＯｂ２を選ぶ。以上の処理により候補オブジェクト群には、オブジェクトＯｂ１，ＯＢ２が含まれることになり、上位Ｋ（＝１）個のオブジェクトをこの２つの候補オブジェクトの中から選ぼうとする。ここで、オブジェクトＯｂｘとＯｂｙの類似度を与える類似度関数をｓｉｍ（Ｏｂｘ，Ｏｂｙ）、オブジェクトＯｂｘとＯｂｙの第ｉ特徴量間の距離をｄ（ｉ）（Ｏｂｘ，Ｏｂｙ）と表すとすると、従来例の明細書に記載された例に従うと、類似度関数は、
ｓｉｍ（Ｏｂｘ，Ｏｂｙ）＝ｗ１／ｄ（１）（Ｏｂｘ，Ｏｂｙ）＋ｗ２／ｄ（２）（Ｏｂｘ，Ｏｂｙ）        ・・・（１）
という式（１）で表すことができる。この式により、参照オブジェクトと候補オブジェクトＯｂ１，ＯＢ２との類似度は、
ｓｉｍ（ＯｂＲ，Ｏｂ１）＝１／１＋１／１００＝１．０１
ｓｉｍ（ＯｂＲ，Ｏｂ２）＝１／１００＋１／１＝１．０１
となる。しかしながら、候補オブジェクトでないオブジェクトＯｂ３の類似度は、
ｓｉｍ（ＯｂＲ，Ｏｂ３）＝１／１．５＋１／１．５＝１．３３３…
である。すなわち、参照オブジェクトに最も近いオブジェクトはＯｂ３であり、従来例が選び出す候補オブジェクト群｛Ｏｂ１，ＯＢ２｝の中には含まれていない。以上のように、正しい結果が得られないということが容易に証明できる。
【０００６】
第２に、次元数ｎや抽出数Ｋの値が大きいと計算量が減らないという問題がある。従来例において候補オブジェクト群を構成する候補オブジェクトの最大数はｎ×ｆ（Ｋ）個である。また、ｆ（Ｋ）≧Ｋとも規定されている。ここで、Ｋ＝１００，ｎ＝５００，ｍ＝５００００という例を考えてみると、候補オブジェクトは１００×５００＝５００００以上もあり得るという単純計算になるが、全体のオブジェクト数５００００と比べれば全数を比較しているのと何ら変わりがない。この具体例をもって明らかなように、従来例は、Ｋやｎの値が適度に小さいことを想定した技術である。
【０００７】
第３に、各次元毎の近傍検索手段が不明確であるという問題がある。各次元毎のｆ（Ｋ）個の近傍検索手段としてＲ−ｔｒｅｅやｋ−ｄｔｒｅｅが記載されているが、その次元に区間の定義などがなければこれらのインデクスは適用できず、その次元において結局ｎ個全体の比較をしなければならない。例えば、ＯｂＲの第ｉ特徴量の値ＶＲｉが色だったとするとき、色に距離（例えばＲＧＢ成分の差による計算）は定義できても順序関係はなく、数直線で［０，１），［１，２），［２，３）のように区間を分けておくような方法で予め色空間の区分けをしておくことはできない。従って、第ｉ特徴量から求められるＯｂＲの近傍を得ようとすると、結局全オブジェクト数ｍ個の第ｉ特徴量の比較を行なわなければならない。更に、色以外にも、言葉、名前など距離は定義できても区間は定義できない集合が存在するため、これらに対する全数比較を避けることができなければ、結局ｍ個の大きさによる計算量の多さを回避することができない。
【０００８】
本発明は以上のような問題を解決するためになされたものであり、その目的は、類似検索処理をより高速に行うことができる類似オブジェクト検索装置及びその方法を提供することにある。
【０００９】
【課題を解決するための手段】
以上のような目的を達成するために、本発明に係る類似オブジェクト検索方法は、入力処理手段、オブジェクト分類処理手段、候補オブジェクト抽出処理手段及び検索処理手段を有する類似オブジェクト検索装置により実施され、前記入力処理手段が、類似検索の対象とするオブジェクトである参照オブジェクトと、類似検索処理結果として返す提示オブジェクト数とを受け付けるステップと、前記候補オブジェクト抽出処理手段が、所定の条件に従いｎ（ｎは正整数）次元の全オブジェクトの中から参照オブジェクトに類似した少なくとも提示オブジェクト数以上のオブジェクトを候補オブジェクトとして抽出する候補オブジェクト生成ステップと、前記検索処理手段が、各候補オブジェクトと参照オブジェクトとの間の類似度を算出し、類似度の高い順に取り出した提示オブジェクト数個のオブジェクトを類似検索処理の結果として得る検索ステップとを含む類似オブジェクト検索方法において、前記入力処理手段が、分類対象であるオブジェクトを受け付けるステップと、前記オブジェクト分類処理手段が、分類対象であるオブジェクトと近傍分類蓄積手段に代表点として既に蓄積されている各オブジェクトとの各特徴量から求められる距離関係上、分類対象オブジェクトがいずれかの代表点を中心とした予め決められている近傍半径内に位置する場合には、当該分類対象オブジェクトをその近傍半径内の中心となったいずれか一つの代表点の近傍内データとして前記近傍分類蓄積手段に登録し、当該分類対象オブジェクトがいずれの代表点を中心とした近傍半径内に位置しない場合には、分類対象オブジェクトを代表点としてかつその代表点の近傍内データとして前記近傍分類蓄積手段に登録する近傍分類ステップを含み、前記候補オブジェクト生成ステップは、前記近傍分類蓄積手段に蓄積された各代表点と参照オブジェクトとの間の類似度を算出し、代表点の近傍内データとして含まれるオブジェクト数の累計が提示オブジェクト数以上になるまで類似度の高い代表点の順に当該オブジェクト数を加算し、そのオブジェクト数の加算によりオブジェクト数の累計が提示オブジェクト数以上になった時点で加算した当該オブジェクト数に対応する代表点を基準代表点とした場合、参照オブジェクトとの距離が、基準代表点と参照オブジェクトとの間の距離に前記近傍半径の２倍の値を加算した値以下となる代表点を特定し、その特定した各代表点の近傍内データであるオブジェクトを候補オブジェクトとして抽出するものである。
【００１１】
また、前記候補オブジェクト生成ステップは、提示オブジェクト数が１の場合、参照オブジェクトとの間の距離が、参照オブジェクトと基準代表点との間の距離に近傍半径を加算した値以下となる代表点の近傍内データに含まれるオブジェクト候補オブジェクトとして抽出するものである。
【００１２】
また、前記近傍分類蓄積手段に登録した代表点を分類対象オブジェクトとして扱い前記近傍分類ステップを繰り返し実行することで代表点を多段階に設定可能としたものである。
【００１３】
また、本発明に係る類似オブジェクト検索装置は、利用者が入力指定した類似検索の対象とするオブジェクトである参照オブジェクト及び提示オブジェクト数に基づき類似検索処理を実行することによってｎ（ｎは正整数）次元の全オブジェクトの中から、参照オブジェクトに類似したオブジェクトを、類似度の高い順に提示オブジェクト数取り出して利用者に提示する類似オブジェクト検索装置において、全オブジェクトのうち代表点となるオブジェクトに対応づけて、距離関係上当該代表点を中心とする予め決められた近傍半径内に位置するオブジェクトを近傍内データとして蓄積する近傍分類蓄積手段と、オブジェクトと各代表点との距離関係に応じて各オブジェクトを代表点とするか否かを決定すると共に当該オブジェクトをいずれかの代表点の近傍内データとして含まれるよう分類し、前記近傍分類蓄積手段に登録するオブジェクト分類処理手段と、全オブジェクトの中から参照オブジェクトと類似している少なくとも提示オブジェクト数以上のオブジェクトを候補オブジェクトとして抽出する候補オブジェクト抽出処理手段と、前記候補オブジェクト抽出処理手段が抽出した各候補オブジェクトと参照オブジェクトとの間の類似度を算出し、類似度の高い順に取り出した提示オブジェクト数個のオブジェクトを類似検索処理の結果として得る検索処理手段とを有し、前記候補オブジェクト抽出処理手段は、前記近傍分類蓄積手段に蓄積された各代表点と参照オブジェクトとの間の類似度を算出し、代表点の近傍内データとして含まれるオブジェクト数の累計が提示オブジェクト数以上になるまで類似度の高い代表点の順に当該オブジェクト数を加算し、そのオブジェクト数の加算によりオブジェクト数の累計が提示オブジェクト数以上になった時点で加算した当該オブジェクト数に対応する代表点を基準代表点とした場合、参照オブジェクトとの距離が、基準代表点と参照オブジェクトとの間の距離に前記近傍半径の２倍の値を加算した値以下となる代表点を特定し、その特定した各代表点の近傍内データであるオブジェクトを候補オブジェクトとして抽出するものである。
また、前記候補オブジェクト抽出処理手段は、提示オブジェクト数が１の場合、参照オブジェクトとの間の距離が、参照オブジェクトと基準代表点との間の距離に近傍半径を加算した値以下となる代表点の近傍内データに含まれるオブジェクト候補オブジェクトとして抽出するものである。
【００１４】
また、代表点の数及び各代表点の近傍内データに含まれるオブジェクト数の偏りをなくすように近傍半径の設定値を調整する近傍半径調整手段を有するものである。
【００１５】
【発明の実施の形態】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００１６】
実施の形態１．
図１は、本発明に係る類似オブジェクト検索装置の一実施の形態を示した構成図である。本実施の形態における類似オブジェクト検索装置は、入力処理部１、ε近傍生成部２、特徴量算出部３、候補オブジェクト抽出部４、検索処理部５及び出力処理部６を有している。入力処理部１は、利用者が入力するオブジェクトデータ並びに類似検索処理のためのパラメータとして参照オブジェクト、重み、提示オブジェクト数を受け付ける。ε近傍生成部２は、入力されたｎ次元空間に含まれるオブジェクトデータ（以下、単に「オブジェクト」とも言う）をオブジェクトデータ蓄積部７に蓄積すると共に、全オブジェクトを代表点あるいはいずれかの代表点を中心とする近傍半径ε以内の近傍内データに分類し、その分類結果をε近傍分類蓄積部８に蓄積する。近傍半径εは、オブジェクトをグループ化するために予め決められている値である。代表点については後述する。特徴量算出部３は、オブジェクトの特徴量を計算する。算出された特徴量は、特徴量データ蓄積部９に蓄積される。候補オブジェクト抽出部４は、ε近傍分類蓄積部８に蓄積された代表点と参照オブジェクトの各特徴量を比較し、類似検索処理対象とする候補オブジェクトを全オブジェクトの中から抽出して候補オブジェクト一時蓄積部１０に蓄積する。検索処理部５は、候補オブジェクト一時蓄積部１０に蓄積された候補オブジェクトの中から参照オブジェクトに類似するオブジェクトを、類似度の高い順に指定された提示オブジェクト数個特定する。出力処理部６は、検索処理部５における検索処理結果を利用者に返す。
【００１７】
ここで、本実施の形態において用いる用語について確認の意味で定義する。「参照オブジェクト」は、類似検索の対象とする画像データ等のオブジェクトデータである。「提示オブジェクト数」は、利用者が検索処理の結果として得たい参照オブジェクトに類似するオブジェクトの数である。「候補オブジェクト」は、オブジェクトデータ蓄積部７に蓄積された全オブジェクトの中から提示オブジェクトを検索するために、候補オブジェクト抽出部４によりある程度絞り込まれたオブジェクトのことである。
【００１８】
類似オブジェクト検索装置においては、全オブジェクトの中から参照オブジェクトに類似するオブジェクトを所定の条件に従いある程度絞り込んで、その絞り込んだオブジェクトに対して類似検索処理を実行する。このように、検索処理の対象とするオブジェクト数を事前に減らすことで多大な処理時間を要する類似検索処理の総実行時間を削減し、この結果、検索処理の高速化を図っている。
【００１９】
本実施の形態において特徴的なことは、全オブジェクトの中から参照オブジェクトに類似するオブジェクトを絞り込む際、代表点及び近傍半径εに基づくε近傍という概念を提示し、このε近傍を用いて提示オブジェクトとはなり得ないオブジェクトを事前に排除するようにしたことである。換言すると、提示オブジェクトとなりうるオブジェクトを確実に候補オブジェクトとして選ばれるようにしたことである。このように、決して提示オブジェクトとして選出されることのないオブジェクトを検索処理の対象外としたことで無用な検索処理を実行させないようにすることができる。また、検索処理対象外とする際にε近傍という概念を導入してグループ化したことにより検索処理の高速化を図ることができる。
【００２０】
次に、本実施の形態における動作について説明する。まず、最初に本実施の形態において類似検索処理を実行する前に、ε近傍生成部２により全オブジェクトをε近傍という概念に基づき分類する必要があるので、このε近傍生成部２によるオブジェクト分類処理について図２に示したフローチャートを用いて説明する。この分類処理の結果、得られるε近傍分類蓄積部８のデータ構成例を図３に示す。なお、図４は、入力されたオブジェクトと代表点と近傍半径εとの関係を示した概念図であるが、図４では便宜的に２次元のオブジェクトを例にして図示している。
【００２１】
オブジェクトが入力処理部１を介して入力されると（ステップ１０１）、ε近傍生成部２は、そのオブジェクトをオブジェクトデータ蓄積部７に蓄積すると共に、特徴量算出部３により算出された当該オブジェクトの特徴量を特徴量データ蓄積部９に蓄積する。そして、入力されたオブジェクトとε近傍分類蓄積部８に登録されているいずれかの代表点との間の距離が近傍半径εより大きいかどうかを判断する（ステップ１０２）。すなわち、入力されたオブジェクトと各代表点との各特徴量から求められる距離関係上、当該オブジェクトがいずれかの代表点を中心とした近傍半径内に位置するか否かを判断する。２つのオブジェクトＯｂｘ，Ｏｂｙの間の距離を求める関数をｄｉｓｔ（Ｏｂｘ，Ｏｂｙ）と表すとすると、この処理は、入力されたオブジェクトをＯｂｘ、代表点とされたオブジェクトをＯｂｙとしたとき、ｄｉｓｔ（Ｏｂｘ，Ｏｂｙ）と近傍半径εとの大小関係により判断することができる。ｄｉｓｔ（Ｏｂｘ，Ｏｂｙ）が近傍半径εと等しいかあるいは小さいとき（図４（ａ））、当該オブジェクトＯｂｘは、その代表点であるオブジェクトＯｂｙのε近傍内データとしてε近傍分類蓄積部８に登録される（ステップ１０３，１０４）。このように、本実施の形態においては、代表点を中心とする近傍半径εにより形成される空間を当該代表点の「ε近傍」と称している。
【００２２】
一方、オブジェクトＯｂｘと全ての代表点との距離が近傍半径εより大きいときは（図４（ｂ））、そのオブジェクトＯｂｘは、いずれの代表点のε近傍内データとはならず、新たな代表点としてε近傍分類蓄積部８に登録されると共に自代表点のε近傍内データとしてε近傍分類蓄積部８に登録される（ステップ１０５）。このように、処理対象のオブジェクトは、いずれの代表点のε近傍内データにも含まれない場合、すなわち、いずれの代表点とも距離が近傍半径εより離れている場合に代表点となる。
【００２３】
上記説明したオブジェクト分類処理において、最初に処理されるオブジェクトＯｂ１は、まだいずれのオブジェクトも代表点となっていないので必ず代表点となる。次に処理されるオブジェクトＯｂ２は、ｄｉｓｔ（Ｏｂ１，Ｏｂ２）＞εであれば代表点となり、ｄｉｓｔ（Ｏｂ１，Ｏｂ２）≦εであれば、オブジェクトＯｂ１のε近傍内データとなる。この次に処理されるオブジェクトＯｂ３は、オブジェクトＯｂ２が代表点でない場合、ｄｉｓｔ（Ｏｂ１，Ｏｂ３）＞εであれば代表点となり、ｄｉｓｔ（Ｏｂ１，Ｏｂ３）≦εであれば、オブジェクトＯｂ１のε近傍内データとなる。一方、オブジェクトＯｂ２が代表点の場合、オブジェクトＯｂ３は、オブジェクトＯｂ１、Ｏｂ２とも近傍半径εより離れていれば代表点となり、いずれかの代表点の近傍半径ε内であれば、該当する代表点のε近傍内データとなる。ここで、複数（この例の場合はオブジェクトＯｂ１、Ｏｂ２）の代表点の近傍半径ε以内であれば（図４（ｃ））、いずれか一方の代表点のε近傍内データとして登録する。どの代表点のε近傍内データに含ませるかということに関する制限は、いずれかただ１つの代表点のε近傍内データとして登録されればよい。このように、各オブジェクトは、いずれかの代表点のε近傍に含まれることによってグループ化される。
【００２４】
なお、上記ステップ１０２において、本実施の形態では、処理を単純にするためにε近傍分類蓄積部８に登録された代表点の並び順に判断を行うことを想定しているが、距離が最も短くなる代表点を選択するなどの条件を設定するようにしてもよい。
【００２５】
本実施の形態では、オブジェクトを新たにオブジェクトデータ蓄積部７に蓄積する際に併せてε近傍内データ群に分類するようにした。これにより、オブジェクトデータ蓄積部７に登録するオブジェクトが新たに発生したときでもε近傍分類蓄積部８を再構築する必要はなく、上記と同様の処理を新たに発生したオブジェクトに対して施し、そのオブジェクトをε近傍分類蓄積部８に代表点として、あるいはいずれかの代表点のε近傍内データとしてε近傍分類蓄積部８に追加していけばよいことが理解できる。このように、本実施の形態は、近傍半径εの値を変えない限りε近傍分類蓄積部８を再構築する必要がないので保守性に優れている。
【００２６】
次に、本実施の形態における類似検索処理について図５に示したフローチャートを用いて説明する。
【００２７】
入力処理部１から類似検索の対象とする参照オブジェクトＯｂＲと、オブジェクト間の類似度をはかるための観点である重みＷ（＝ｗ１，ｗ２，…，ｗｎ）と、処理結果として返す提示オブジェクト数Ｋというパラメータが利用者により入力されると（ステップ１１１）、特徴量算出部３は、参照オブジェクトの特徴量ＶＲ１，ＶＲ２，…，ＶＲｎを計算する（ステップ１１２）。候補オブジェクト抽出部４は、参照オブジェクトとε近傍分類蓄積部８に登録された全ての代表点とを比較し、代表点を参照オブジェクトから類似度の高い順にソートして並べる（ステップ１１３）。類似度は、前述した類似度関数（式（１））により算出することができる。
【００２８】
ソートした後、候補オブジェクト抽出部４は、類似度の高い代表点のε近傍内データに含まれる要素数を足していき、提示オブジェクト数Ｋ以上になった時点で加算した要素数に対応する代表点を得る（ステップ１１４）。つまり、各代表点の要素数をｍｘ（ｘ＝１，２，…，ｎ、ｎは代表点数）とすると、
ｍ１＋ｍ２＋…＋ｍｉ≧Ｋ      ・・・（２）
となった時点の要素数ｍｉの代表点Ｏｂｉを得る。この候補オブジェクトヲ抽出する基準となる代表点を特に基準代表点と呼ぶことにする。図３に示したデータ内容例をソート後の結果とみなすと、Ｋ＝４のときのＯｂｉは、Ｏｂ２である。そして、
ｄｉｓｔ（ＯｂＲ，Ｏｂｋ）≦ｄｉｓｔ（ＯｂＲ，Ｏｂｉ）＋２ε    ・・（３）
となる代表点Ｏｂｋを特定し（ステップ１１５）、各代表点Ｏｂｋのε近傍内データに含まれるオブジェクトをε近傍分類蓄積部８に基づきオブジェクトデータ蓄積部７から候補オブジェクトとして抽出し、候補オブジェクト一時蓄積部１０に蓄積する（ステップ１１６）。この式（３）により絞り込まれた候補オブジェクトを類似検索範囲とすれば、オブジェクトデータ蓄積部７に蓄積されたオブジェクトの中で参照オブジェクトに近い順からＫ個のオブジェクトを確実かつ高速に得ることができる。参照オブジェクトに近い（距離が短い）ほど類似度が高くなるからである。以下、この式（３）が成立する理由について詳述する。
【００２９】
まず、提示オブジェクト数Ｋが１、つまり、参照オブジェクトに最も近いオブジェクトを一つだけ抽出する場合について図６を用いて説明する。図６（ａ）に示したように、参照オブジェクトＯｂＲから最も近い代表点は、必ず基準代表点Ｏｂｉとなる。基準代表点Ｏｂｉの要素数は１以上だからである。この基準代表点Ｏｂｉを中心とした近傍半径εの円に重なるように、近傍半径εの円を持つ代表点Ｏｂｋが存在するとする。つまり、各代表点のε近傍が部分的に交わっている状態である。参照オブジェクトＯｂＲから各代表点Ｏｂｉ，Ｏｂｋまでの距離は、それぞれｄｉｓｔ（ＯｂＲ，Ｏｂｉ），ｄｉｓｔ（ＯｂＲ，Ｏｂｋ）と表すことができる。オブジェクトＯｂｉ１は、参照オブジェクトＯｂＲに最も近い代表点Ｏｂｉのε近傍内データであってもオブジェクトＯｂｋ１との関係から明らかなように、他の代表点Ｏｂｋのε近傍内データであるオブジェクトＯｂｋ１より参照オブジェクトＯｂＲに遠い、つまり、類似していない場合がある。しかし、代表点Ｏｂｋのε近傍内データは、いずれも代表点であるオブジェクトＯｂｉより参照オブジェクトＯｂＲに近くなることはない。すなわち、基準代表点Ｏｂｉのε近傍と重なっていても
ｄｉｓｔ（ＯｂＲ，Ｏｂｋ）＞ｄｉｓｔ（ＯｂＲ，Ｏｂｉ）＋ε
となる代表点Ｏｂｋのε近傍内データは、いずれも決して参照オブジェクトＯｂＲに最も近いオブジェクトにはなり得ない。
【００３０】
一方、図６（ｂ）に示したように、オブジェクトＯｂｋ１は、基準代表点Ｏｂｉより遠い代表点Ｏｂｋのε近傍内データであっても基準代表点Ｏｂｉより参照オブジェクトＯｂＲに近い場合がある。つまり、基準代表点Ｏｂｉのε近傍内データのみならず、
ｄｉｓｔ（ＯｂＲ，Ｏｂｋ）≦ｄｉｓｔ（ＯｂＲ，Ｏｂｉ）＋ε
となる代表点Ｏｂｋのε近傍内データも参照オブジェクトＰｂＲに最も近くなる可能性があるので、検索処理部５による類似検索処理の対象としなければならない。なお、言うまでもないが、
ｄｉｓｔ（ＯｂＲ，Ｏｂｉ）≦ｄｉｓｔ（ＯｂＲ，Ｏｂｋ）
という関係があることは前提条件である。
【００３１】
以上のことから、提示オブジェクト数Ｋが１のときには、
ｄｉｓｔ（ＯｂＲ，Ｏｂｋ）≦ｄｉｓｔ（ＯｂＲ，Ｏｂｉ）＋ε    ・・・（４）
を満たす代表点Ｏｂｋのε近傍内データに対しても検索処理の対象とする必要がある。なお、式（４）を満たす代表点は、必ず式（３）も満たすので、Ｋ＝１のときも式（３）を用いることができる。この場合、抽出される候補オブジェクト数が増えることになる。
【００３２】
次に、提示オブジェクト数Ｋが２以上の正整数、つまり、類似度の高い順に複数のオブジェクトを返す必要がある場合について図７を用いて説明する。類似度の高い代表点Ｏｂ１，Ｏｂ２のε近傍に含まれる要素数ｍ１，ｍ２を加算していき、提示オブジェクト数Ｋ以上になったとき、すなわち、式（２）を満たした時点の基準代表点Ｏｂｉは既知である。図７（ａ）に示したように、基準代表点Ｏｂｉのε近傍に重なるε近傍を持つ代表点Ｏｂｋが存在したとする。代表点Ｏｂｉの要素数ｍｉを加算したことで提示オブジェクト数Ｋを超えたとしてもオブジェクトＯｂｉ１とオブジェクトＯｂｋ１との関係から明らかなように、代表点Ｏｂｋのε近傍のオブジェクトの方が参照オブジェクトに近い場合がある。つまり、代表点Ｏｂｉの要素数ｍｉを加算したことによって提示オブジェクト数Ｋを超えたとしても代表点Ｏｂｉのε近傍内にあるオブジェクトＯｂｊｉ１ではなく代表点Ｏｂｋのε近傍内データＯｂｋ１が本来選ばれる可能性がある。従って、代表点Ｏｂｊのように基準代表点Ｏｂｉのε近傍に交わるε近傍を持つ代表点は、候補オブジェクトとして残しておかなければ正しい結果が得ることはできなくなる。従って、図７（ｂ）に示したように、
ｄｉｓｔ（ＯｂＲ，Ｏｂｋ）＞ｄｉｓｔ（ＯｂＲ，Ｏｂｉ）＋２ε
となったとき、すなわち、代表点Ｏｂｋのε近傍が基準代表点Ｏｂｉのε近傍に重ならないような位置関係にあるときには、代表点Ｏｂｋのε近傍内データはいずれも基準代表点Ｏｂｉのいずれのε近傍内データより参照オブジェクトＯｂＲより遠くなるので、代表点Ｏｂｋのε近傍内データは選ばれることはない。
【００３３】
一方、基準代表点Ｏｂｉより参照オブジェクトＯｂＲから遠い代表点Ｏｂｋであっても、
ｄｉｓｔ（ＯｂＲ，Ｏｂｋ）≦ｄｉｓｔ（ＯｂＲ，Ｏｂｉ）＋２ε
を満たす代表点Ｏｂｋであれば、図７（ｃ）に示したオブジェクトＯｂｉ１とオブジェクトＯｂｋ１との関係のように、基準代表点Ｏｂｉのε近傍との交わりに関係なく代表点Ｏｂｋのε近傍内データは、候補オブジェクトとして残しておく必要がある。
【００３４】
以上のことから、提示オブジェクト数Ｋが複数個の場合には、
ｄｉｓｔ（ＯｂＲ，Ｏｂｋ）≦ｄｉｓｔ（ＯｂＲ，Ｏｂｉ）＋２ε
を満たす代表点Ｏｂｋのε近傍内データに対しても検索処理の対象とする必要がある。
【００３５】
以上のように、式（３）を満たす関係にある代表点Ｏｂｋのε近傍内データに含まれるオブジェクトを候補オブジェクトとして抽出する必要がある。換言すると、式（３）を満たさない代表点に含まれるオブジェクトは、決して提示オブジェクトとして選ばれることはない。本実施の形態では、ε近傍という概念を導入したことで提示オブジェクトとして選出されうる候補オブジェクトを確実に抽出することができる。また、候補オブジェクトを絞り込む際、参照オブジェクトと比較するのは代表点のみでよいので、この候補オブジェクトを絞り込む処理も高速に行うことができる。
【００３６】
続いて、検索処理部５は、候補オブジェクト一時蓄積部１０に蓄積された各候補オブジェクトと参照オブジェクトの類似度を前述した類似度関数（式（１））により算出する（ステップ１１７）。なお、代表点となったオブジェクトに関しては、類似度を既に算出しているので、再度計算せずに計算結果を保持するようにしてもよい。そして、類似度の高い上位Ｋ個のオブジェクトを処理結果として返す（ステップ１１８）。出力処理部６は、検索処理部５における検索処理結果、すなわち上記Ｋ個のオブジェクトを利用者に提示する（ステップ１１９）。
【００３７】
本実施の形態によれば、以上のようにして入力指定された参照オブジェクトに類似する提示オブジェクト数個のオブジェクトを利用者に提示することができるが、本実施の形態における処理結果は、全オブジェクトと参照オブジェクトとを個々に比較し、類似度の高い上位Ｋ個を取り出す処理と全く同じ処理結果を得ることができる。つまり、正確な検索結果を得ることができる。更に、全オブジェクトとの比較を行う必要がないので計算量を減らすことができ、このため、処理結果を高速かつ効率的に得ることができる。
【００３８】
また、検索計算量は、オブジェクト群の分布によって構成されるε近傍の数とε近傍の中に含まれる要素の数により決まるため、提示オブジェクト数Ｋや次元数ｎが大きいことには影響されない。
【００３９】
また、各オブジェクトの特徴量として距離関係以外を要求していないので、色、言葉などの距離は定義できても順序関係のないオブジェクトに対する類似検索にも適用することができる。つまり、本実施の形態を汎用的に用いることができる。
【００４０】
実施の形態２．
上記実施の形態１では、近傍半径εは予め決められている値であるというだけで、その値については言及していないが、設定値次第では検索装置としての性能上効果的でなくなる場合がある。
【００４１】
例えば、ε近傍生成部２が入力されたオブジェクトとε近傍分類蓄積部８に登録されているいずれかの代表点との間の距離が近傍半径εより大きいかどうかを判断するステップ１０２において、ε近傍分類蓄積部８に登録された代表点の並び順に判断を行うとする。もし、近傍半径εが極めて大きく設定されていれば、オブジェクトの多くが代表点Ｏｂ１のグループに含まれてしまうことになる可能性が高くなる。一方、近傍半径εが極めて小さく設定されていれば、より多くのオブジェクトが代表点として設定されてしまい、結果的に全オブジェクトと参照オブジェクトとの比較を行う場合と大差がなくなってしまう可能性がある。
【００４２】
そこで、本実施の形態では、生成される代表点の数並びにε近傍のカバリングの適正化、すなわち、各代表点のε近傍内データに含まれるオブジェクト数が極力偏らないように近傍半径εの調整機能を有する手段を設けたことを特徴としている。つまり、ε近傍生成部２及び候補オブジェクト抽出部４は、図示しない近傍半径調整手段が設定した近傍半径εに基づき各処理を実行することになる。
【００４３】
例えば、いずれかの代表点のε近傍内データの要素数が所定のしきい値に達したときには、設定されている近傍半径εが大きいと判断して小さい近傍半径εに設定変更する。もちろん、オブジェクト数が膨大であれば、要素数が全体的に増えてくるので、しきい値は全オブジェクト数に対する割合で設定するのが望ましい。例えば、全オブジェクト数の半分をしきい値とし、このしきい値に達する代表点のグループが存在したら近傍半径εを半分にするなどの規則を設けておく。また、このような規則を設けておけば、近傍半径εを自動的に調整することも可能になる。この調整の結果、オブジェクトが各代表点にほぼ均等に配分されることが最適な状態である。
【００４４】
一方、全体オブジェクト数に対する代表点数の割合が大きければ、設定されている近傍半径εが小さいと判断して大きい近傍半径εに設定変更する。例えば、全オブジェクト数の０．００１％をしきい値とし、いずれかの代表点のε近傍内データの要素数がこのしきい値を下回ったら近傍半径εを１．５倍にするなどの規則を設けておく。
【００４５】
このように、近傍半径εの値を適正に設定することで、全オブジェクト数に対する代表点の割合、各代表点のε近傍内データに含まれるオブジェクトの数の割合が適切な割合になり、これにより、類似検索処理の効率の低下を防止することができる。
【００４６】
なお、各代表点のε近傍内データに含まれるオブジェクト数の偏りを減少させるために、オブジェクト分類処理において分類処理対象のオブジェクトが複数の代表点のε近傍に位置した場合には、要素数の最も少ない代表点のε近傍内データに割り振るようにしてもよい。
【００４７】
実施の形態３．
オブジェクト数が増大に伴い、代表点の数も非常に多くなると、オブジェクト分類処理において分類対象のオブジェクトと各代表点との間の距離計算、近傍半径εとの比較、ソーティングに要する処理時間も膨大になってくる。
【００４８】
そこで、本実施の形態では、代表点の数の削減を図るために代表点を多段階に求めることで分類対象のオブジェクトと距離計算をする代表点の数を削減できるようにしたことを特徴とする。
【００４９】
すなわち、上記実施の形態１では、各オブジェクトの代表点のみを設定していたが、本実施の形態では、設定した代表点の代表点を更に設定することで代表点を多段階にし、最上段の代表点とのみ分類対象のオブジェクトとの間の距離計算を行うようにした。つまり、最上段以外の代表点は、実施の形態１でいうε近傍内データとしても扱われる。
【００５０】
このような代表点の多段階構造とするためには、これに併せて近傍半径εも複数要する必要がある。代表点の段階数と設定する近傍半径εの数は同じであり、当然ながら代表点の段階数が上がるに連れ分類対象オブジェクト（代表点が２段目以上の場合は代表点）を代表点とするか否かの判断基準となる近傍半径εの設定値は大きくなる。本実施の形態においては、図２に示したオブジェクト分類処理を代表点の段階数分繰り返し行えばよく、２回目以降は、前述したように分類対象のオブジェクトは、代表点である。具体的には、ｎ回目のオブジェクト分類処理において設定される代表点は、ｎ段目の代表点であり、分類対象のオブジェクトは、ｎ−１段目の代表点である。図８は、本実施の形態において更に生成される代表点とε近傍内データとの関係を示したテーブルを示した図であり、図３に示した１段目の代表点と代表点ではないオブジェクトを含むε近傍内データとの関係テーブルと共にε近傍分類蓄積部８に登録される。図８には、２段階目の代表点によるテーブルの例が示されている。図８におけるε近傍内データは１段目の代表点であり、要素数は１段目の各代表点のε近傍内データに含まれるオブジェクト数の総和により求められる。
【００５１】
本実施の形態におけるオブジェクト分類処理を簡単に説明すると、最初に実施の形態１と同様にして図３に示したテーブルを生成する。その後、生成した代表点を分類対象オブジェクトとしてオブジェクト分類処理を実行し、２段目の代表点のテーブルを生成する。これを繰り返すことで代表点を多段階とすることができる。
【００５２】
この後の実行される類似検索処理では、ステップ１１５において式（３）を満たす代表点Ｏｂｋを得る。ここで、式（３）を満たさない代表点を検索処理の対象外とする。次に、その代表点Ｏｂｋに含まれる代表点を対象に再度ステップ１１５を実行して代表点Ｏｂｋを得る。ここで、式（３）を満たさない代表点を検索処理の対象外とする。この処理を代表点でないオブジェクトを含む１段目のレベルまで繰り返し行うことで代表点をふるい落とし、ステップ１１６において候補オブジェクトを抽出する。以降の処理は実施の形態１と同じである。
【００５３】
本実施の形態によれば、代表点を多段階で設定することにより代表点が増加したことに伴う類似検索処理の効率低下を防止することができる。
【００５４】
【発明の効果】
本発明によれば、全オブジェクトの中から参照オブジェクトに類似するオブジェクトを絞り込む際、全オブジェクトを、代表点を中心とした近傍半径内に位置するオブジェクトでグループ化し、参照オブジェクトと代表点との距離関係に基づき候補オブジェクトを得るようにしたので、各オブジェクトを個々に参照オブジェクトと比較する必要がないので、計算量を減らすことができ、この結果、高速な類似検索処理を実現することができる。また、参照オブジェクトとの距離の関係上、提示オブジェクトとして選ばれる可能性のあるオブジェクトを近傍内データとして持つ代表点があれば、その代表点の近傍内データとして含まれるオブジェクトを候補オブジェクトとして確実に抽出されるようにしたので、正確な類似検索結果を提示することができる。一方、提示オブジェクトとして選ばれる可能性のないオブジェクトを事前に排除するようにしたことにより、類似検索処理に要する処理時間を短縮することができる。
【００５５】
また、近傍半径調整手段を設けたことにより、近傍半径を適切に調整することができるので、生成される代表点を適正な数となるように調整することができる。また、各代表点の近傍内データに含まれるオブジェクト数の偏りを抑止することができるので、類似検索処理の効率の低下を防止することができる。
【００５６】
また、代表点を多段階で設定することにより代表点の増加に伴う類似検索処理の効率低下を防止することができる。
【図面の簡単な説明】
【図１】  本発明に係る類似オブジェクト検索装置の一実施の形態を示した構成図である。
【図２】  実施の形態１におけるオブジェクト分類処理を示したフローチャートである。
【図３】  実施の形態１におけるε近傍分類蓄積部のデータ構成例を示した図である。
【図４】  実施の形態１において入力されたオブジェクトと代表点と近傍半径との関係を示した概念図である。
【図５】  実施の形態１における類似検索処理を示したフローチャートである。
【図６】  実施の形態１における類似検索処理において候補オブジェクトを抽出する代表点を特定する式を説明するために用いる図である。
【図７】  実施の形態１における類似検索処理において候補オブジェクトを抽出する代表点を特定する式を説明するために用いる図である。
【図８】  実施の形態３におけるε近傍分類蓄積部のデータ構成例を示した図である。
【図９】  従来の類似検索処理を示したフローチャートである。
【符号の説明】
１  入力処理部、２  ε近傍生成部、３  特徴量算出部、４  候補オブジェクト抽出部、５  検索処理部、６  出力処理部、７  オブジェクトデータ蓄積部、８  ε近傍分類蓄積部、９  特徴量データ蓄積部、１０  候補オブジェクト一時蓄積部。
【図１】
0004215386.tif 000002
【図２】
0004215386.tif 000003
【図３】
0004215386.tif 000004
【図４】
0004215386.tif 000005
【図５】
0004215386.tif 000006
【図６】
0004215386.tif 000007
【図７】
0004215386.tif 000008
【図８】
0004215386.tif 000009
【図９】
0004215386.tif 000010