(57)【要約】【課題】データベースへの画像登録に伴う木構造の平衡化処理の負担を軽減すると共に、効率的な画像検索が可能な情報処理装置、プログラムおよびシステムを提供すること。【解決手段】本発明の情報処理装置は、画像の特徴ベクトルを次元毎に格納する格納手段に画像の特徴ベクトルを登録し、検索対象の画像と同一または類似する画像を検索する。より詳細には、本発明の情報処理装置は、特徴ベクトルの分散値の大きい格納手段を選択し、当該格納手段から検索対象の画像の特徴ベクトルと同一または近似する特徴ベクトルを抽出する。そして、情報処理装置は、抽出した特徴ベクトルと、検索対象の画像の特徴ベクトルとの距離を算出して、検索対象の画像と類似する画像の特徴ベクトルを出力する。【選択図】図１
2014127122.tif 000002
【特許請求の範囲】
【請求項１】
画像を検索する情報処理装置であって、
画像の特徴ベクトルを次元毎に格納するための格納手段と、
画像の特徴ベクトルを前記格納手段に登録する登録手段と、
検索対象の画像と同一または類似する画像を検索する検索手段とを含み、
前記検索手段は、
特徴ベクトルの分散値の大きい格納手段を検索して、検索対象の画像の特徴ベクトルと同一または近似する少なくとも１以上の特徴ベクトルを特定する、情報処理装置。
【請求項２】
前記検索手段は、画像の検索時に、前記格納手段に登録された特徴ベクトルの分散値を算出する、請求項１に記載の情報処理装置。
【請求項３】
前記登録手段は、画像の特徴ベクトルを登録するときに、前記格納手段に登録される特徴ベクトルの分散値を算出する、請求項１に記載の情報処理装置。
【請求項４】
前記登録手段は、所定数の画像の特徴ベクトルを登録するときに、前記格納手段に登録される特徴ベクトルの分散値を算出する、請求項３に記載の情報処理装置。
【請求項５】
画像を検索する情報処理装置に対して、
画像の特徴ベクトルを次元毎に格納するための格納手段に画像の特徴ベクトルを登録するステップと、
検索対象の画像と同一または類似する画像を検索するステップとを実行させるためのコンピュータ実行可能なプログラムであって、
前記検索するステップは、
特徴ベクトルの分散値の大きい格納手段を検索して、検索対象の画像の特徴ベクトルと同一または近似する少なくとも１以上の特徴ベクトルを特定するステップを含む、プログラム。
【請求項６】
前記検索するステップは、画像の検索時に、前記格納手段に登録された特徴ベクトルの分散値を算出する、請求項５に記載のプログラム。
【請求項７】
前記登録するステップは、画像の特徴ベクトルを登録するときに、前記格納手段に登録される特徴ベクトルの分散値を算出する、請求項５に記載のプログラム。
【請求項８】
前記登録するステップは、所定数の画像の特徴ベクトルを登録するときに、前記格納手段に登録される特徴ベクトルの分散値を算出する、請求項７に記載のプログラム。
【請求項９】
画像を検索するシステムであって、
画像の特徴ベクトルを次元毎に格納するための格納手段と、
画像の特徴ベクトルを前記格納手段に登録する登録手段と、
検索対象の画像と同一または類似する画像を検索する検索手段とを含み、
前記検索手段は、
特徴ベクトルの分散値の大きい格納手段を検索して、検索対象の画像の特徴ベクトルと同一または近似する少なくとも１以上の特徴ベクトルを特定する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の検索技術に関し、特に、画像の特徴ベクトルを利用して検索対象の画像と同一または類似する画像を検索する情報処理装置、プログラムおよびシステムに関する。
【背景技術】
【０００２】
従来、画像の特徴ベクトルを利用して、データベースに登録されたサンプル画像の中から検索対象の画像と同一または類似する画像を検索する画像検索方法が提案されている。このような画像検索方法では、データベースに登録されたサンプル画像の多次元の特徴ベクトルと、検索対象の画像の多次元の特徴ベクトルとの距離を算出して類似度を導出し、類似度の高い画像を特定する。
【０００３】
従来の画像検索方法の一例として、特許文献１は、複数のスレーブ装置が、それぞれ異なるＲＫＤツリーを生成して画像を検索する画像検索方法を開示する。この画像検索方法は、サンプル画像の多次元の特徴ベクトルが登録されたデータベースから所定数の次元の特徴ベクトルセットをランダムに選択し、複数のスレーブ装置が、それぞれ異なる次元の特徴ベクトルセットのＲＫＤツリーを生成する。そして、各スレーブ装置が、別個のＲＫＤツリーを利用して検索対象の画像と同一または類似する画像を検索する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１が開示する検索方法では、新たな画像をデータベースに登録する場合、各スレーブ装置は、複数の次元の特徴ベクトルが混在するＲＫＤツリーを平衡化しなければならず、各スレーブ装置におけるＲＫＤツリーの平衡化処理の負担が過大となるという問題があった。また、この検索方法では、システム全体として、総ての次元について質問画像と同一または類似する画像を検索するため、検索効率が悪いという問題もあった。
【０００５】
本発明は、上記従来技術の問題に鑑みてなされたものであり、データベースへの画像登録に伴う木構造の平衡化処理の負担を軽減すると共に、効率的な画像検索が可能な情報処理装置、プログラムおよびシステムを提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の情報処理装置は、画像の特徴ベクトルを次元毎に格納するための格納手段に画像の特徴ベクトルを登録し、検索対象の画像と同一または類似する画像を検索する。より詳細には、本発明の情報処理装置は、特徴ベクトルの分散値の大きい格納手段を選択し、当該格納手段から検索対象の画像の特徴ベクトルと同一または近似する特徴ベクトルを抽出する。そして、情報処理装置は、抽出した特徴ベクトルと、検索対象の画像の特徴ベクトルとの距離を算出して、検索対象の画像と類似する画像の特徴ベクトルを出力する。
【発明の効果】
【０００７】
本発明は、上記構成要件を採用することにより、データベースへの画像登録に伴う木構造の平衡化処理の負担を軽減すると共に、効率的な画像検索ができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の情報処理装置の機能構成を示す図。
【図２】本発明の情報処理装置が実行する画像の登録処理の一実施形態を示すフローチャート。
【図３】本発明の情報処理装置が構築する全次元用データベースの一実施形態を示す図。
【図４】本発明の情報処理装置が実行する画像の登録処理を示す概念図。
【図５】本発明の情報処理装置が実行する画像の削除処理の一実施形態を示すフローチャート。
【図６】本発明の情報処理装置が実行する画像の検索処理の一実施形態を示すフローチャート。
【図７】本発明の情報処理装置が算出する各次元の特徴ベクトルの分散値を示す図。
【図８】本発明の情報処理装置が実行する検索対象の特徴ベクトルと同一または近似する特徴ベクトルの識別子の取得方法を示す概念図。
【図９】本発明の情報処理装置が実行する画像の登録処理の別の実施形態を示すフローチャート。
【図１０】本発明の情報処理装置が実行する画像の登録処理のさらに別の実施形態を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。
【００１０】
図１は、本発明の情報処理装置の機能構成を示す図である。情報処理装置１００は、画像検索を行う情報処理装置である。情報処理装置１００は、ＣＰＵ、ＲＯＭ、実行空間を提供するＲＡＭ、ハードディスク装置およびフラッシュメモリ等を含んで構成されている。情報処理装置１００は、ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）等のＯＳによる制御の下、本発明のプログラムをＲＡＭに展開して実行し、後述する機能手段を情報処理装置１００上で実現できる。本発明のプログラムは、Ｃ、Ｃ＋＋、Ｃ＃、ＪＡＶＡ（登録商標）、ＪＡＶＡ  ＳＣＲＩＰＴ（登録商標）等の種々のプログラミング言語で記述することができる。
【００１１】
情報処理装置１００は、入力部１０１と、データベース処理部１０２と、出力部１０３と、記憶装置１０７，１０８，１０９とを含んで構成される。
【００１２】
入力部１０１は、画像の登録要求や削除要求、検索要求を受信する機能手段である。登録要求には、登録対象の画像の特徴ベクトルと、当該特徴ベクトルの識別情報（以下、「識別子」とする。）とが含まれる。削除要求には、削除対象の画像の特徴ベクトルの識別子が含まれる。検索要求には、検索対象の画像の特徴ベクトルが含まれる。入力部１０１は、これらの要求を受信すると、データベース処理部１０２が備える機能手段に当該要求を送信する。
【００１３】
図１に示す実施形態では、入力部１０１が外部の装置（図示せず）から当該要求を受信するが、他の実施形態では、情報処理装置１００が備える他の機能手段から当該要求を受信するように構成してもよい。
【００１４】
データベース処理部１０２は、記憶装置１０７，１０８，１０９に構築されるデータベースを処理する機能手段であり、登録処理部１０４と、削除処理部１０５と、検索処理部１０６とを含んで構成される。
【００１５】
登録処理部１０４は、登録対象の画像の特徴ベクトルおよび当該特徴ベクトルの識別子等の属性情報を記憶装置１０７，１０８，１０９に登録する機能手段である。記憶装置１０７には、総ての次元の特徴ベクトルが登録される全次元用データベースが構築される。登録処理部１０４は、登録対象の画像の特徴ベクトルおよび当該特徴ベクトルの識別子を全次元用データベースに登録する。
【００１６】
記憶装置１０８，１０９には、特徴ベクトルが次元毎に登録される格納手段である次元別データベース（以下、「次元別データベース」とする。）が構築される。例えば、記憶装置１０８の次元別データベースには、第１次元の特徴ベクトルが登録され、記憶装置１０９の次元別データベースには、第ｎ次元の特徴ベクトルが登録される。登録処理部１０４は、登録対象の画像の特徴ベクトル、当該特徴ベクトルの識別子および属性情報を次元別データベースに登録する。なお、登録処理部１０４が実行する登録処理については、図２，９，１０を参照して詳述する。
【００１７】
削除処理部１０５は、削除対象の画像の特徴ベクトルおよび当該特徴ベクトルの識別子を記憶装置１０８，１０９から削除する機能手段である。削除処理部１０５が実行する削除処理については、図５を参照して詳述する。
【００１８】
検索処理部１０６は、検索対象の画像の特徴ベクトルと同一または類似する特徴ベクトルを記憶装置１０７，１０８，１０９から検索する機能手段である。検索処理部１０６が実行する検索処理については、図６を参照して詳述する。
【００１９】
出力部１０３は、検索処理部１０６による画像の検索結果を出力する機能手段である。出力部１０３は、検索要求を送信した装置に検索結果を送信する。
【００２０】
図１に示す実施形態では、情報処理装置１００が、全次元用データベースおよび次元別データベースが構築される記憶装置１０７，１０８，１０９を備えるが、他の実施形態では、情報処理装置１００が、ネットワークを介して、情報処理装置１００と独立した記憶装置１０７，１０８，１０９にアクセスしてもよい。
【００２１】
図２は、本発明の情報処理装置が実行する画像の登録処理の一実施形態を示すフローチャートである。以下、図２を参照して、データベース処理部１０２の登録処理部１０４が実行する登録処理について説明する。
【００２２】
図２の処理は、ステップＳ２００で登録処理部１０４が入力部１０１から画像の登録要求を受信することにより開始する。ステップＳ２０１では、登録処理部１０４は、登録要求に含まれる多次元の特徴ベクトルと、当該特徴ベクトルの識別子を全次元用データベースに登録する。ステップＳ２０２では、登録処理部１０４は、登録した多次元の特徴ベクトルを次元毎に分割する。
【００２３】
ステップＳ２０３では、登録処理部１０４は、次元毎に分割した特徴ベクトルのうち次元別データベースに登録していない特徴ベクトルが有るか否か判断する。未登録の特徴ベクトルが有る場合には（ｙｅｓ）、処理がステップＳ２０４に分岐する。一方、未登録の特徴ベクトルが無い場合、すなわち、総ての次元の特徴ベクトルを次元別データベースに登録した場合には（ｎｏ）、処理がステップＳ２０６に分岐して終了する。
【００２４】
ステップＳ２０４では、登録処理部１０４は、次元毎に分割した特徴ベクトル、例えば、第１次元の特徴ベクトルおよび当該特徴ベクトルの識別子を、対応する次元別データベース、例えば、第１次元別データベースに登録する。ステップＳ２０５では、登録処理部１０４は、当該特徴ベクトルを登録した次元別データベースの属性情報であるヘッダ情報を更新する。図２に示す処理では、総ての次元の特徴ベクトルを次元別データベースに登録するまで、ステップＳ２０３〜ステップＳ２０５の処理を反復する。
【００２５】
図３は、本発明の情報処理装置が構築する全次元用データベースの一実施形態を示す図である。
【００２６】
全次元用データベース３００は、入力部１０１が受信した登録要求に含まれる多次元の特徴ベクトルが、当該特徴ベクトルの識別子と関連付けて登録される。図３に示す実施形態では、１０次元の特徴ベクトルが登録されるが、他の実施形態では、任意の次元数の特徴ベクトルを登録することができる。
【００２７】
図４は、本発明の情報処理装置が実行する画像の登録処理を示す概念図である。以下、図４を参照して画像の登録処理について説明する。
【００２８】
画像の登録要求４００には、多次元の特徴ベクトル４０１と、当該特徴ベクトルの識別子４０２とが含まれる。情報処理装置１００の登録処理部１０４は、登録要求４００を受信すると、多次元の特徴ベクトル４０１を次元毎に分割する。次いで、登録処理部１０４は、分割した特徴ベクトル４０３を識別子４０２と共に、それぞれ対応する次元別データベースに登録する。
【００２９】
図４に示す次元別データベース４０４は、第２次元用の次元別データベースである。登録処理部１０４は、分割した特徴ベクトル４０３に含まれる第２次元の特徴ベクトル「３１．７９」と、登録要求に含まれる当該特徴ベクトルの識別子「１」とを次元別データベース４０４に登録する。なお、図４に示す次元別データベース４０４では、説明を明確にするために、特徴ベクトルおよび識別子のみが登録されているが、その他の情報、例えば、当該特徴ベクトルおよび識別子が登録されるリーフページＩＤ等の情報が登録される。
【００３０】
登録処理部１０４は、分割した総ての特徴ベクトル４０３を次元別データベースに登録すると、各次元別データベースのヘッダ情報を更新する。図４に示すヘッダ情報４０５は、次元別データベース４０４のヘッダ情報である。ヘッダ情報は、エントリ数と、ルートページＩＤと、左端リーフページＩＤと、右端リーフページＩＤと、平均値と、２乗平均値とが含まれる。
【００３１】
エントリ数は、次元別データベースに登録されている特徴ベクトルの数である。ルートページＩＤは、次元別データベース４０４に基づく木構造のルートページの識別情報である。左端リーフページＩＤは、当該木構造の左端リーフページの識別情報である。右端リーフページＩＤは、当該木構造の右端リーフページの識別情報である。
【００３２】
平均値は、次元別データベース４０４に登録された特徴ベクトルの平均値である。特徴ベクトルを次元別データベース４０４に登録する場合、下記数式１を用いて平均値を導出することができる。
【００３３】
【数１】
2014127122.tif 000003
ここで、ｎは特徴ベクトルの登録後のエントリ数を示し、ｘｎは新たに登録した特徴ベクトルの値を示す。
【００３４】
また、特徴ベクトルを次元別データベース４０４から削除する場合、下記数式２を用いて平均値を導出することができる。
【００３５】
【数２】
2014127122.tif 000004
ここで、ｎは特徴ベクトルの削除前のエントリ数を示し、ｘｋは削除対象である特徴ベクトルの値を示す。
【００３６】
２乗平均値は、次元別データベース４０４に登録された特徴ベクトルの２乗平均値である。特徴ベクトルを次元別データベース４０４に追加する場合、下記数式３を用いて２乗平均値を導出することができる。
【００３７】
【数３】
2014127122.tif 000005
ここで、ｎは特徴ベクトルの登録後のエントリ数を示し、ｘｎは新たに登録した特徴ベクトルの値を示す。
【００３８】
また、特徴ベクトルを次元別データベース４０４から削除する場合、下記数式４を用いて２乗平均値を導出することができる。
【００３９】
【数４】
2014127122.tif 000006
ここで、ｎは特徴ベクトルの削除前のエントリ数を示し、ｘｋは削除対象である特徴ベクトルの値を示す。
【００４０】
図５は、本発明の情報処理装置が実行する画像の削除処理の一実施形態を示すフローチャートである。以下、図５を参照して、データベース処理部１０２の削除処理部１０５が実行する削除処理について説明する。
【００４１】
図５の処理は、ステップＳ５００で削除処理部１０５が入力部１０１から画像の削除要求を受信することにより開始する。ステップＳ５０１では、削除処理部１０５は、削除要求に含まれる特徴ベクトルの識別子によって識別される多次元の特徴ベクトルを全次元用データベースから取得する。ステップＳ５０２では、削除処理部１０５は、当該多次元の特徴ベクトルを次元毎に分割する。
【００４２】
ステップＳ５０３では、削除処理部１０５は、次元毎に分割した特徴ベクトルのうち次元別データベースから削除していない特徴ベクトルが有るか否か判断する。削除していない特徴ベクトルが有る場合には（ｙｅｓ）、処理がステップＳ５０４に分岐する。一方、削除していない特徴ベクトルが無い場合、すなわち、総ての次元の特徴ベクトルを次元別データベースから削除した場合には（ｎｏ）、処理がステップＳ５０６に分岐して終了する。
【００４３】
ステップＳ５０４では、削除処理部１０５は、次元毎に分割した特徴ベクトルおよび当該特徴ベクトルの識別子を、対応する次元別データベースから削除する。ステップＳ５０５では、削除処理部１０５は、特徴ベクトルおよび識別子を削除した次元別データベースのヘッダ情報を更新する。図５に示す処理では、総ての次元の特徴ベクトルを次元別データベースから削除するまで、ステップＳ５０４およびステップＳ５０５の処理を反復する。
【００４４】
図６は、本発明の情報処理装置が実行する画像の検索処理の一実施形態を示すフローチャートである。以下、図６を参照して、データベース処理部１０２の検索処理部１０６が実行する検索処理について説明する。
【００４５】
図６の処理は、ステップＳ６００で検索処理部１０６が入力部１０１から画像の検索要求を受信することにより開始する。ステップＳ６０１では、検索処理部１０６が、総ての次元別データベースのヘッダ情報を使用して、全次元について特徴ベクトルの分散値（ｓ２）を算出する。分散値は、下記数式５を用いて導出することができる。
【００４６】
【数５】
2014127122.tif 000007
【００４７】
ステップＳ６０２では、検索処理部１０６は、分散値の大きな次元を任意の数（ｑ個）だけ選択する。本実施形態では、例えば、特徴ベクトルの次元数の平方根の値をｑとすることができる。
【００４８】
ここで、図７を参照して、分散値の大きな次元を選択する処理について説明する。図７に示す分散値７００は、情報処理装置１００が算出する分散値の一実施形態である。検索処理部１０６は、上記数式５を用いて全次元の特徴ベクトルについて分散値を算出すると、分散値の大きい次元を選択する。本実施形態では、第２次元、第６次元および第４次元の３つの次元が選択される。
【００４９】
ステップＳ６０３では、検索処理部１０６は、ステップＳ６０２で選択した次元の次元別データベースから抽出すべき特徴ベクトルの数（Ｎｒ）を算出する。抽出すべき特徴ベクトルの数は、下記数式６を用いて導出することができる。
【００５０】
【数６】
2014127122.tif 000008
ここで、ｎは各次元別データベースのエントリ数を示す。ｐは検索結果として出力する画像の数を示し、当該エントリ数の平方根とすることができる。ｑは、ステップＳ６０２で選択した次元の数を示す。
【００５１】
ステップＳ６０４では、検索処理部１０６は、ステップＳ６０２で選択した次元と同一の次元の検索対象の特徴ベクトルと同一または近似する特徴ベクトルを、当該次元の次元別データベースからそれぞれＮｒ個特定し、その識別子を取得する。ステップＳ６０５では、検索処理部１０６は、ステップＳ６０４で取得した特徴ベクトルの識別子を比較し、共通する識別子を抽出する。
【００５２】
ステップＳ６０６では、検索処理部１０６は、ステップＳ６０５で抽出した特徴ベクトルの識別子によって識別される多次元の特徴ベクトルを全次元用データベースから取得し、当該多次元の特徴ベクトルと検索対象の多次元の特徴ベクトルとの距離を算出する。本実施形態では、これらの特徴ベクトルの距離として、ユークリッド距離やマンハッタン距離を採用することができる。
【００５３】
ステップＳ６０７では、検索処理部１０６は、ステップＳ６０６で算出した距離に基づいて、ステップＳ６０６で取得した多次元の特徴ベクトルを昇順にソートし、検索結果として出力部１０３に出力し、ステップＳ６０８で処理が終了する。
【００５４】
上述したように、本発明では、検索対象の画像の特徴ベクトルと比較する対象として、分散値の大きな次元の特徴ベクトルを選択するため、画像検索処理を効率化することができる。また、検索対象の画像の特徴ベクトルと同一または近似する特徴ベクトルをＮｒ個抽出して、特徴ベクトルの識別子を抽出するため、画像の検索漏れを防止することができる。
【００５５】
図８は、本発明の情報処理装置が実行する検索対象の特徴ベクトルと同一または近似する特徴ベクトルの識別子の取得方法を示す概念図である。以下、図８を参照して、図６に示すステップＳ６０４で実行される検索対象の特徴ベクトルと同一または近似する特徴ベクトルの識別子の取得方法について説明する。
【００５６】
木構造８００は、分散値の大きな次元の次元別データベースに基づくＢ＋木構造である。木構造８００は、ルートノード８０１を含むノードページと、リーフページ８０２〜８０５とで構成される。図８に示す実施形態では、説明を明確にするため、ノードページにはルートノード８０１のみが含まれるが、他の実施形態では、他のノードを含んで構成することができる。本実施形態の木構造は、Ｂ＋木構造の多分木であるが、他の実施形態では、Ｂ木構造やＢ＊木構造等の他の多分木や２分木を採用してもよい。
【００５７】
ルートノード８０１には、次元別データベースに登録されている数個の特徴ベクトルがキーとして格納される。リーフページ８０２〜８０５には、次元別データベースに登録されている総ての特徴ベクトルと当該特徴ベクトルの識別子とが格納される。
【００５８】
以下、検索対象の特徴ベクトル「２４．１９」と同一または近似する特徴ベクトルの識別子を取得する場合について説明する。検索処理部１０６は、ルートノード８０１に格納された特徴ベクトルと検索対象の特徴ベクトルとを比較し、検索対象の特徴ベクトルと最も近似する特徴ベクトルが含まれるリーフページ８０３を特定する。
【００５９】
次いで、検索処理部１０６は、リーフページ８０３を構成するリーフの中から検索対象の特徴ベクトルと最も近似する特徴ベクトル「２４．１０」を特定し、その識別子を取得する。そして、検索処理部１０６は、当該特徴ベクトルが格納されたリーフ８０６に隣接するＮｒ−１個のリーフから当該特徴ベクトルに近似する特徴ベクトルの識別子を取得する。
【００６０】
このようにして、検索処理部１０６は、検索対象の特徴ベクトルと同一または近似するＮｒ個の特徴ベクトルを特定し、当該特徴ベクトルの識別子を取得することができる。本実施形態では、隣接するリーフページの格納先を示すポインタを各リーフページ８０２〜８０５に格納することができるため、検索処理部１０６は、隣接するリーフページから特徴ベクトルの識別子を効率的に抽出することができる。
【００６１】
本発明では、各次元の特徴ベクトルを個別の次元別データベースに登録するため、複数の次元の特徴ベクトルが混在する木構造を採用する従来技術に比べて、新たな画像の特徴ベクトルの次元別データベースへの登録に伴う木構造の平衡化処理によって生じる負担を軽減することができる。
【００６２】
図９は、本発明の情報処理装置が実行する画像の登録処理の別の実施形態を示すフローチャートである。以下、図９を参照して、データベース処理部１０２の登録処理部１０４が実行する登録処理について説明する。
【００６３】
図９の処理は、ステップＳ９００で登録処理部１０４が入力部１０１から画像の登録要求を受信することにより開始する。ステップＳ９０１では、登録処理部１０４は、登録要求に含まれる多次元の特徴ベクトルと、当該多次元の特徴ベクトルの識別子を記憶装置１０７の全次元別データベースに登録する。ステップＳ９０２では、登録処理部１０４は、登録した多次元の特徴ベクトルを次元毎に分割する。
【００６４】
ステップＳ９０３では、登録処理部１０４は、次元毎に分割した特徴ベクトルのうち次元別データベースに登録していない特徴ベクトルが有るか否か判断する。未登録の特徴ベクトルが有る場合には（ｙｅｓ）、処理がステップＳ９０４に分岐する。一方、未登録の特徴ベクトルが無い場合、すなわち、総ての次元の特徴ベクトルを次元別データベースに登録した場合には（ｎｏ）、処理がステップＳ９０６に分岐する。
【００６５】
ステップＳ９０４では、登録処理部１０４は、次元毎に分割した特徴ベクトルおよび当該特徴ベクトルの識別子を、対応する次元別データベースに登録する。ステップＳ９０５では、登録処理部１０４は、当該特徴ベクトルを登録した次元別データベースのヘッダ情報を更新する。図９に示す処理では、総ての次元の特徴ベクトルを次元別データベースに登録するまで、ステップＳ９０３〜ステップＳ９０５の処理を反復する。
【００６６】
ステップＳ９０６では、登録処理部１０４は、総ての次元別データベースのヘッダ情報を使用して全次元の分散値を算出し、分散値の大きいｑ個の次元の識別情報を次元別データベースのヘッダ情報として保存し、ステップＳ９０７で処理が終了する。
【００６７】
図９に示す実施形態では、検索時に全次元の分散値を算出する必要がないため、検索処理を効率化することができる。
【００６８】
図１０は、本発明の情報処理装置が実行する画像の登録処理のさらに別の実施形態を示すフローチャートである。以下、図１０を参照して、データベース処理部１０２の登録処理部１０４が実行する登録処理について説明する。
【００６９】
図１０の処理は、ステップＳ１０００で登録処理部１０４が入力部１０１から画像の登録要求を受信することにより開始する。ステップＳ１００１では、登録処理部１０４は、登録要求に含まれる多次元の特徴ベクトルと、当該多次元の特徴ベクトルの識別子を記憶装置１０７の全次元別データベースに登録する。ステップＳ１００２では、登録処理部１０４は、登録した多次元の特徴ベクトルを次元毎に分割する。
【００７０】
ステップＳ１００３では、登録処理部１０４は、次元毎に分割した特徴ベクトルのうち次元別データベースに登録していない特徴ベクトルが有るか否か判断する。未登録の特徴ベクトルが有る場合には（ｙｅｓ）、処理がステップＳ１００４に分岐する。一方、未登録の特徴ベクトルが無い場合、すなわち、総ての次元の特徴ベクトルを次元別データベースに登録した場合には（ｎｏ）、処理がステップＳ１００６に分岐する。
【００７１】
ステップＳ１００４では、登録処理部１０４は、次元毎に分割した特徴ベクトルおよび当該特徴ベクトルの識別子を、対応する次元別データベースに登録する。ステップＳ１００５では、登録処理部１０４は、当該特徴ベクトルを登録した次元別データベースのヘッダ情報を更新する。図１０に示す処理では、総ての次元の特徴ベクトルを次元別データベースに登録するまで、ステップＳ１００３〜ステップＳ１００５の処理を反復する。
【００７２】
ステップＳ１００６では、登録処理部１０４は、次元別データベースのエントリ数が所定数で割り切れるか否か判断する。本実施形態では、任意の数を所定数とすることができる。次元別データベースのエントリ数が所定数で割り切れない場合、すなわち、所定数の特徴ベクトルが登録されていない場合は（ｎｏ）、処理がステップＳ１００８に分岐し終了する。
【００７３】
一方、次元別データベースのエントリ数が所定数で割り切れる場合、すなわち、所定数の特徴ベクトルが登録された場合は（ｙｅｓ）、ステップＳ１００７に処理が分岐する。ステップＳ１００７では、登録処理部１０４は、総ての次元別データベースのヘッダ情報を使用して全次元の分散値を算出し、分散値の大きいｑ個の次元の識別情報を次元別データベースのヘッダ情報として保存し、ステップＳ１００８で処理が終了する。
【００７４】
図１０に示す実施形態では、検索時に全次元の分散値を算出する必要がないため、検索処理を効率化することができる。また、本実施形態では、所定数の特徴ベクトルを登録した場合にのみ、全次元の分散値を算出するため、登録処理を効率化することができる。
【００７５】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、本実施形態の構成要素を変更若しくは削除し、または他の構成要素を追加するなど、当業者が想到することができる範囲内で変更できる。また、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７６】
１００…情報処理装置、１０１…入力部、１０２…データベース処理部、１０３…出力部、１０４…登録処理部、１０５…削除処理部、１０６…検索処理部、１０７，１０８，１０９…記憶装置
【先行技術文献】
【特許文献】
【００７７】
【特許文献１】特開２０１２−６３９５９号公報
【図１】
2014127122.tif 000009
【図２】
2014127122.tif 000010
【図３】
2014127122.tif 000011
【図４】
2014127122.tif 000012
【図５】
2014127122.tif 000013
【図６】
2014127122.tif 000014
【図７】
2014127122.tif 000015
【図８】
2014127122.tif 000016
【図９】
2014127122.tif 000017
【図１０】
2014127122.tif 000018