(57)【要約】【課題】画像から抽出した特徴量の次元数を削減するためのパラメータの保持量を少なくして、かつ精度の高いパラメータを用いて特徴量の次元数を削減できるようにする。【解決手段】部分特徴量ベクトルを次元圧縮する際に使用する次元圧縮用のパラメータに関し、予め用意したものを用いるか、動的に生成するか、部分特徴量に応じて切り替えるようにする。具体的には、次元数の大きい部分特徴量など機械学習方法によって必要な精度を保つことができる部分特徴量の場合は、動的に次元圧縮用のパラメータを生成し、そうでない場合は予め保持されている次元圧縮用のパラメータを用いるようにする。【選択図】図１
2015185034.tif 000002
【特許請求の範囲】
【請求項１】
登録画像または入力画像のオブジェクトから部分特徴量を抽出する抽出手段と、
前記抽出手段によって抽出された部分特徴量の次元を削減する圧縮手段と、
前記圧縮手段によって次元が削減された前記登録画像のオブジェクトの部分特徴量を記憶する記憶手段と、
前記圧縮手段によって次元が削減された前記登録画像及び前記入力画像のオブジェクトの部分特徴量を用いて、前記入力画像のオブジェクトと前記登録画像のオブジェクトとの類似度を算出する算出手段とを有し、
前記圧縮手段は、予め設定されている次元圧縮パラメータを用いて部分特徴量の次元を圧縮するか、次元圧縮パラメータを動的に生成して部分特徴量の次元を圧縮するかを切り替えることを特徴とする画像認識装置。
【請求項２】
前記圧縮手段は、予め設定されている次元圧縮パラメータを用いて部分特徴量の次元を圧縮するか、次元圧縮パラメータを動的に生成して部分特徴量の次元を圧縮するかを前記部分特徴量に応じて切り替えることを特徴とする請求項１に記載の画像認識装置。
【請求項３】
前記圧縮手段は、次元圧縮パラメータを動的に生成する場合に、乱数列を生成することによって次元圧縮パラメータを生成することを特徴とする請求項１又は２に記載の画像認識装置。
【請求項４】
前記圧縮手段は、次元圧縮パラメータを動的に生成する場合に、乱数の周期を小さくするように乱数を生成して前記次元圧縮パラメータを生成することを特徴とする請求項１〜３の何れか１項に記載の画像認識装置。
【請求項５】
前記圧縮手段は、複数の部分特徴量を連結する連結手段をさらに有し、
前記連結手段は、連結した部分特徴量の次元数が予め定めた次元数に達するまで部分特徴量を連結し、
前記連結した部分特徴量の次元を削減することを特徴とする請求項１〜４の何れか１項に記載の画像認識装置。
【請求項６】
前記連結手段は、複数の部分特徴量を連結する際に、順番を入れ替えることによって連結した部分特徴量を複数生成することを特徴とする請求項５に記載の画像認識装置。
【請求項７】
前記オブジェクトは人物の顔であることを特徴とする請求項１〜６の何れか１項に記載の画像認識装置。
【請求項８】
登録画像または入力画像のオブジェクトから部分特徴量を抽出する抽出工程と、
前記抽出工程において抽出された部分特徴量の次元を削減する圧縮工程と、
前記圧縮工程によって次元が削減された前記登録画像のオブジェクトの部分特徴量を記憶手段に記憶する記憶工程と、
前記圧縮工程において次元が削減された前記登録画像及び前記入力画像のオブジェクトの部分特徴量を用いて、前記入力画像のオブジェクトと前記登録画像のオブジェクトとの類似度を算出する算出工程とを有し、
前記圧縮工程においては、予め設定されている次元圧縮パラメータを用いて部分特徴量の次元を圧縮するか、次元圧縮パラメータを動的に生成して部分特徴量の次元を圧縮するかを切り替えることを特徴とする画像認識方法。
【請求項９】
登録画像または入力画像のオブジェクトから部分特徴量を抽出する抽出工程と、
前記抽出工程において抽出された部分特徴量の次元を削減する圧縮工程と、
前記圧縮工程によって次元が削減された前記登録画像のオブジェクトの部分特徴量を記憶手段に記憶する記憶工程と、
前記圧縮工程において次元が削減された前記登録画像及び前記入力画像のオブジェクトの部分特徴量を用いて、前記入力画像のオブジェクトと前記登録画像のオブジェクトとの類似度を算出する算出工程とをコンピュータに実行させ、
前記圧縮工程においては、予め設定されている次元圧縮パラメータを用いて部分特徴量の次元を圧縮するか、次元圧縮パラメータを動的に生成して部分特徴量の次元を圧縮するかを切り替えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、特徴量を抽出してオブジェクトを識別するために用いて好適な画像認識装置、画像認識方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ある画像の中の被写体が、別の画像の中の被写体と同一のものであるか否かを識別する技術が知られている。その中でも特に個人の顔を識別する顔識別技術が知られている。このような技術において、識別性能を低下させる要因として、登録用パターンと認証用パターンとの間の変動が挙げられる。具体的には、照明条件、向き・姿勢、他のオブジェクトによる隠れ、表情による変動などが識別性能を低下させる要因となっている。
【０００３】
そこで、識別性能を向上させる技術として、画像中のオブジェクトの局所部分に注目する方法がある。例えば、オブジェクトが人物の顔である場合に、上述のような変動の影響が顔の全域で均一に現れるわけではない。例えば、表情変動の場合、表情のある顔の画像と無表情の顔の画像とでは、口や目に比べて鼻付近の変動は少ないと考えられる。また、照明変動の場合は、強い照明の光が斜めから当たると、光が当たっている部分と、斜光が無い部分とで変動の大きさが異なると考えられる。また、画像内の顔の向きが観察者に相対して左に向いたとすると、顔の３次元形状から、顔の左側は奥行き方向に隠れて見えるようになるため、正面顔との変動は左側よりも右側の方が大きいと考えられる。
【０００４】
以上のように、表情変動や、照明変動、顔の向きの変動などの変動がある場合においても、ある局所領域の変動が極端に大きくても、他の局所領域では個人の特定が可能な程度の変動である場合があり得る。そこで、比較的変動の少ない局所領域毎の類似度を選択的に統合して用いれば、高精度に個人を識別することが可能となる。
【０００５】
また、大きな変動に対応するためには、複数の変動パターンに対応した登録用パターンを予め登録しておくことによって対応することも考えられる。例えば、人物の顔の場合、登録人物ごとに、照明条件、向き・姿勢、隠れや表情など様々な変動に対応した画像を予め登録しておくことが考えられる。このように撮影時に起こりうる条件を予め登録画像として保持しておくことによって、認識精度を向上させることができる。しかしながら、予め多数の登録画像を準備することは、ユーザの利便性と相反し、さらに、全ての変動パターンを予測して用意することも実用上は困難である。
【０００６】
そこで、特許文献１に記載の方法では、局所部分に注目しながら、少ないパターンで大きな変動に対応する方式を採用している。この方式では、パターンを部分領域に分割し、各々の部分領域から抽出した部分特徴に所定の変換を施すことにより変動にロバストな特徴量を算出している。ここで、所定の変換は、人物の顔の向きや表情などの属性に応じてそのパラメータを切り替えるようにして、変動に適応的に対応できるようにしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−８６２６５号公報
【非特許文献】
【０００８】
【非特許文献１】P. Viola and M. Jones，"Robust real-time face detection", pp.747, Eighth International Conference on Computer Vision (ICCV'01) ‐ Volume 2, 2001.
【非特許文献２】J.Wright and G. Hua. Implicit elastic matching with random projections for pose-variant face recognition. In Proc. CVPR, 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
局所部分から抽出した部分特徴に対して変換を施して、変動にロバストな特徴量を算出するためには、変換に用いるパラメータを多く保持しておく必要がある。例えば、主成分分析に代表されるような線形演算を用いて変換を行う場合には、元の特徴次元をＮとし、変換後の特徴次元をＭとすると、パラメータ量はＮ×Ｍに比例する。局所部分に注目した方式を用いる場合には、さらに局所部分の数だけパラメータが必要になる。このように、パラメータをデータとして確保するために記憶領域が増加したり、変換演算を実行する際にパラメータをメモリ領域に読み出すためのメモリ帯域が増加したりすることによって消費電力が増すなど、さまざまな問題を引き起こす。
【００１０】
一方、特許文献１に記載の方法では、本来２段階で行う変換を１つにまとめることによってパラメータの量を少なくするようにしている。しかしながら、前述したようにパラメータ量が特徴量の次元数、変換後の特徴量の次元数、および局所部分の数の積に比例してパラメータ量が増加する点においては本質的な改善にはなっていない。
【００１１】
本発明は前述の問題点に鑑み、画像から抽出した特徴量の次元数を削減するためのパラメータの保持量を少なくして、かつ精度の高いパラメータを用いて特徴量の次元数を削減できるようにすることを目的としている。
【課題を解決するための手段】
【００１２】
本発明に係る画像認識装置は、登録画像または入力画像のオブジェクトから部分特徴量を抽出する抽出手段と、前記抽出手段によって抽出された部分特徴量の次元を削減する圧縮手段と、前記圧縮手段によって次元が削減された前記登録画像のオブジェクトの部分特徴量を記憶する記憶手段と、前記圧縮手段によって次元が削減された前記登録画像及び前記入力画像のオブジェクトの部分特徴量を用いて、前記入力画像のオブジェクトと前記登録画像のオブジェクトとの類似度を算出する算出手段とを有し、前記圧縮手段は、予め設定されている次元圧縮パラメータを用いて部分特徴量の次元を圧縮するか、次元圧縮パラメータを動的に生成して部分特徴量の次元を圧縮するかを切り替えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、画像から抽出した特徴量の次元数を削減するためのパラメータの保持量を少なくして、かつ精度の高いパラメータを用いて特徴量の次元数を削減することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るオブジェクト識別装置の構成を示すブロック図である。
【図２】オブジェクト識別装置の全体的な処理手順の一例を示すフローチャートである。
【図３】オブジェクト登録部の詳細な構成例を示すブロック図である。
【図４】登録オブジェクト辞書データ生成部の詳細な構成例を示すブロック図である。
【図５】第１の実施形態に係る部分特徴次元圧縮部の詳細な構成例を示すブロック図である。
【図６】第１の実施形態において、部分特徴量の次元数を圧縮する処理手順の一例を示すフローチャートである。
【図７】入力オブジェクト識別部の詳細な構成例を示すブロック図である。
【図８】入力オブジェクトを識別する処理手順の一例を示すフローチャートである。
【図９】入力オブジェクト識別用データ生成部の詳細な構成例を示すブロック図である。
【図１０】入力オブジェクト識別演算部の詳細な構成例を示すブロック図である。
【図１１】第１の実施形態において、入力オブジェクトを識別する詳細な処理手順の一例を示すフローチャートである。
【図１２】第２の実施形態に係る部分特徴次元圧縮部の詳細な構成例を示すブロック図である。
【図１３】第２の実施形態において、辞書データを生成する際に部分特徴量の次元数を圧縮する処理手順の一例を示すフローチャートである。
【図１４】第２の実施形態において、識別用データを生成する際に部分特徴量の次元数を圧縮する処理手順の一例を示すフローチャートである。
【図１５】第２の実施形態において、入力オブジェクトを識別する詳細な処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
以下、図面を参照しながら本発明の第１の実施形態を詳細に説明する。
図１は、本実施形態に係るオブジェクト識別装置（画像認識装置）１００の構成例を示すブロック図である。
図１に示すように、オブジェクト識別装置１００は、結像光学系１０１、撮像部１０２、撮像制御部１０３、画像記録部１０４、オブジェクト登録部１０５、入力オブジェクト識別部１０６および外部出力部１０７を備えている。また、これらの各構成は接続バス１０８によって接続されている。
【００１６】
なお、オブジェクト登録部１０５および入力オブジェクト識別部１０６は、典型的には、それぞれ専用回路（ＡＳＩＣ）、プロセッサ（リコンフィギュラブルプロセッサ、ＤＳＰ、ＣＰＵなど）であってもよい。また、単一の専用回路および汎用回路（ＣＰＵ）の内部において実行されるプログラムとして存在してもよい。
【００１７】
結像光学系１０１は、ズーム機構を備えた光学レンズによって構成されている。また、パン・チルト軸方向の駆動機構を備えてもよい。撮像部１０２は、典型的にはＣＣＤまたはＣＭＯＳイメージセンサを備えており、不図示のセンサ駆動回路からの読み出し制御信号により所定の映像信号（例えば、サブサンプリング、ブロック読み出しして得られる信号）が画像データとして出力される。
【００１８】
撮像制御部１０３は、画角調整や、シャッターボタンの押下などの指示、および、オブジェクト登録部１０５または入力オブジェクト識別部１０６から出力される情報を元に、実際に撮影を行うタイミングを制御する。画像記録部１０４は、半導体メモリ等で構成されており、撮像部１０２から転送された画像データをメモリに保持し、オブジェクト登録部１０５または入力オブジェクト識別部１０６からの要求に応じて、所定のタイミングで画像データを転送する。
【００１９】
オブジェクト登録部１０５は、画像データから識別の対象とするオブジェクトの情報を抽出して記録・保持する。オブジェクト登録部１０５の詳細な構成および実際に行われる処理の具体的な内容については後述する。入力オブジェクト識別部１０６は、入力された画像データおよびオブジェクト登録部１０５から取得した画像データを元に、オブジェクトの識別を行う。入力オブジェクト識別部１０６の具体的な構成および行われる処理の詳細についても後述する。
【００２０】
外部出力部１０７は、例えばＴＦＴ液晶などのモニタであり、撮像部１０２および画像記録部１０４から取得した画像データに係る画像を表示する。また、入力オブジェクト識別部１０６による識別結果を画像に重畳して表示する。なお、入力オブジェクト識別部１０６による識別結果を電子データとして外部メモリなどに出力する形式をであってもよい。接続バス１０８は、上記の構成要素間を接続するためのバスである。
【００２１】
＜全体フロー＞
図２は、本実施形態におけるオブジェクト識別装置１００の全体的な処理手順の一例を示すフローチャートである。以下、図２を参照しながら、本実施形態のオブジェクト識別装置１００が、オブジェクトを識別する実際の処理について説明する。なお、図２の説明では、画像中のオブジェクトが人物の顔である場合について説明する。
【００２２】
まず、ステップＳ２０１において、画像記録部１０４から画像データを取得する。続いて、ステップＳ２０２において、取得した画像の中から人物の顔を検出する。画像の中から人物の顔を検出する方法については、例えば非特許文献１に記載されているような公知の技術を用いればよい。
【００２３】
次に、ステップＳ２０３において、ステップＳ２０２の処理の結果、画像の中に人物の顔が存在するか否かを判定する。この判定の結果、人物の顔が存在する場合は、ステップＳ２０４において、オブジェクトの識別処理、すなわち個人の識別処理を行う。このステップＳ２０４のオブジェクト識別処理の具体的な処理内容については後述する。一方、ステップＳ２０３の判定の結果、人物の顔が存在しない場合は、そのまま処理を終了する。
【００２４】
次に、ステップＳ２０５において、識別処理の結果から、登録済みの人物に該当する顔があるか否かを判定する。この判定の結果、検出された顔の人物が、登録済みの人物と同一人物である場合は、ステップＳ２０８に進む。一方、検出された顔の人物が、登録済みの人物の誰とも一致しない場合は、ステップＳ２０６において、その人物を登録するか否かを判定する。登録するか否かの判定は、現在の設定に応じて判定してもよく、例えば外部インターフェースやＧＵＩなどを介して、その場で登録するかどうかユーザに決定させるようにしてもよい。
【００２５】
ステップＳ２０６の判定の結果、その人物を登録する場合は、ステップＳ２０７において、人物の顔の登録処理を行う。この処理の詳細については後述する。一方、ステップＳ２０６の判定の結果、その人物を登録しない場合は、そのままステップＳ２０８に進む。
【００２６】
次に、ステップＳ２０８において、検出されたオブジェクト（人物）全てについて処理が終了したかどうかを判定する。この判定の結果、未処理のオブジェクトがある場合は、ステップＳ２０４に戻る。一方、全てのオブジェクトについて処理が終了した場合は、ステップＳ２０９において、一連の識別処理の結果を、外部出力部１０７に出力し、処理を終了する。
【００２７】
＜オブジェクト登録部１０５＞
まず、ステップＳ２０７におけるオブジェクト登録処理の詳細について説明する。図３は、図１に示したオブジェクト登録部１０５の詳細な構成例を示すブロック図である。
図３に示すように、オブジェクト登録部１０５は、登録オブジェクト辞書データ生成部３０１、登録オブジェクト辞書データ保持部３０２、および登録オブジェクト辞書データ選択部３０３を備えている。
【００２８】
登録オブジェクト辞書データ生成部３０１は、画像記録部１０４から取得した画像データから、オブジェクトの個体を識別するために必要な辞書データを生成する。登録オブジェクト辞書データ生成部３０１で行われる具体的な処理の内容については後述する。ここで辞書データには、後述する属性データおよび部分特徴量が含まれている。
【００２９】
登録オブジェクト辞書データ保持部３０２は、属性データ記憶部３０４と部分特徴量記憶部３０５とを備え、登録オブジェクト辞書データ生成部３０１によって生成された辞書データを保持する。属性データ記憶部３０４は、辞書データのうち、登録するオブジェクトの属性、例えばオブジェクトが人物の顔である場合は、性別や年齢、表情、顔の向きなどの属性データを保持する。属性データは、登録オブジェクト辞書データ生成部３０１によって取得されるものであってもよく、登録時にユーザによって入力されるデータであってもよい。部分特徴量記憶部３０５は、登録オブジェクト辞書データ生成部３０１によって抽出された部分特徴量を保持する。
【００３０】
登録オブジェクト辞書データ選択部３０３は、後述する入力オブジェクト識別部１０６の要求に応じて、登録オブジェクト辞書データ保持部３０２から必要な辞書データを読み出して、入力オブジェクト識別部１０６に転送する。
【００３１】
＜登録オブジェクト辞書データ生成部３０１＞
図４は、図３に示した登録オブジェクト辞書データ生成部３０１の詳細な構成例を示すブロック図である。
図４に示すように、登録オブジェクト辞書データ生成部３０１は、部分特徴抽出部４０１、および部分特徴次元圧縮部４０２を備えている。
【００３２】
部分特徴抽出部４０１は、対象となるオブジェクトを含む画像から、特徴ベクトル（以下、部分特徴量ベクトル）を抽出する。部分特徴抽出部４０１は、さらに部分領域設定部４０３、および特徴ベクトル抽出部４０４から構成される。部分領域設定部４０３は、特徴ベクトル抽出部４０４が部分特徴量ベクトルを抽出する部分領域の位置および範囲を設定する。なお、部分領域の位置および範囲は、機械学習方法を用いて予め決めておくことが好ましい。また、部分領域の数は、処理時間などに応じて予め所定の数を決めておくが、予め用意した学習用サンプルに対して十分な識別性能が得られる数を計測して決めるようにしてもよい。
【００３３】
特徴ベクトル抽出部４０４は、登録用オブジェクトのデータから部分特徴量ベクトルを抽出する。対象とするオブジェクトが人物の顔である場合は、顔を含む画像から識別に必要なデータを取り出す処理を行う。具体的には識別に必要なデータとして、部分領域設定部４０３によって設定された部分領域から、その輝度値を部分特徴量ベクトルの１つとして抽出する。
【００３４】
輝度値以外に、オブジェクトの部分領域の位置に対して不変な特徴量もしくは位置の変動に頑健な特徴量として、例えば、輝度の頻度分布などを部分特徴量ベクトルとして抽出してもよい。また、部分領域の位置の変動に不変もしくは頑健な特徴量として、オブジェクトが含まれる画像をフーリエ変換した位相情報を部分特徴量ベクトルとしてもよい。さらに、上記のような位置の変動に対してロバストな特徴量の他に、画像のエッジ情報を抽出したフィルタ演算結果を部分特徴量ベクトルとして抽出してもよい。具体的には、ゾーベルフィルタやガボアフィルタなど代表的な空間フィルタ演算を課した結果を部分特徴量ベクトルとして抽出する。また、上記のような空間フィルタによるエッジ情報の頻度分布をとり、その頻度分布を部分特徴量ベクトルとしてもよい。頻度分布は、位置の変動に対して比較的頑健であり、エッジ情報に由来する特徴を位置ずれに対して頑健にする効果がある。
【００３５】
部分特徴次元圧縮部４０２は、特徴ベクトル抽出部４０４によって抽出された部分領域の部分特徴量ベクトルの次元を圧縮する。以下、部分特徴次元圧縮部４０２の詳細な構成および処理について説明する。
【００３６】
＜部分特徴次元圧縮部４０２＞
図５は、図４に示した部分特徴次元圧縮部４０２の詳細な構成例を示すブロック図である。
図５に示すように、部分特徴次元圧縮部４０２は、部分特徴次元圧縮制御部５０１、次元圧縮パラメータ生成部５０２、次元圧縮演算部５０３、および次元圧縮パラメータ保持部５０４を備えている。
【００３７】
部分特徴次元圧縮制御部５０１は、部分特徴抽出部４０１より取得した部分特徴量ベクトルに応じて、次元圧縮演算部５０３で行われる次元圧縮処理を制御する。典型的には、次元圧縮の対象となる部分特徴量ベクトルの属性に応じて、次元圧縮に用いるパラメータを予め保持していたものにするか、動的に生成するかを切り替える。具体的な内容については後述する。
【００３８】
次元圧縮パラメータ生成部５０２は、次元圧縮に用いるパラメータを動的に生成する場合に、次元圧縮演算部５０３で圧縮演算（次元圧縮）を行うためのパラメータを動的に生成する。また、次元圧縮パラメータ生成部５０２は、さらに乱数生成部５０５および乱数データ管理部５０６を備えている。乱数生成部５０５は、所定の方法で乱数を生成する処理を行う。乱数データ管理部５０６は、乱数生成部５０５で生成した乱数を管理する。
【００３９】
次元圧縮演算部５０３は、次元圧縮パラメータ生成部５０２で生成されたパラメータ、または次元圧縮パラメータ保持部５０４に保持されているパラメータを用いて、部分特徴量ベクトルの圧縮演算を行う。次元圧縮パラメータ保持部５０４は、次元圧縮演算部５０３で圧縮演算を行う際に使用するパラメータを保持しており、例えば、部分特徴量ベクトルの平均ベクトルを保持している。ここで、部分特徴量ベクトルの平均ベクトルとは、部分特徴量ベクトルを予め用意した学習サンプルから抽出し、部分特徴量ベクトルの各要素の平均を求めたものである。なお、次元圧縮演算部５０３で行われる処理の詳細や、平均ベクトル以外に次元圧縮パラメータ保持部５０４が保持する具体的なパラメータについては後述する。
【００４０】
ここで、部分特徴量ベクトルに対して次元圧縮を行う意味について説明する。部分特徴量ベクトルの次元圧縮処理を行う意図は主に２つあり、１つ目は精度向上である。次元圧縮を行う際に、主成分分析などによりデータの本質的な情報を持つ次元を選択して他の次元を削減することによって、微妙な照明や表情などの認証にとって本質的でない変動の影響を取り除かれ、精度を向上させる効果が期待される。２つ目の意図は、データ量の削減である。オブジェクト認証では、ユーザが登録するオブジェクトについて、その全部分特徴量ベクトルを記憶しておく必要があるため、部分特徴量ベクトルの次元が小さい程データ量を少なくすることができる。したがって、実際のシステムを考えた場合、部分特徴量ベクトルの次元圧縮は、応用上きわめて重要な処理である。
【００４１】
図６は、部分特徴次元圧縮部４０２により行われる処理手順の一例を示すフローチャートである。以下、図６を参照しながら、部分特徴量を次元圧縮する処理について説明する。
まず、ステップＳ６０１において、部分特徴次元圧縮制御部５０１は、部分特徴抽出部４０１で抽出した部分特徴量（部分特徴量ベクトル）を取得する。ここで取得する部分特徴量には、オブジェクト上での部分領域の位置や大きさ、特徴量の種類などの付随する属性情報も含まれる。
【００４２】
続いて、ステップＳ６０２において、部分特徴次元圧縮制御部５０１は、取得した部分特徴量に対して行う次元圧縮処理の方法を決定する。次元圧縮方法は部分特徴量の属性に対応して予め定められており、ステップＳ６０１で取得した部分特徴量の属性を読み取ることにより決定する。ここでは、次元圧縮用のパラメータの取得方法や、対応する部分特徴量の平均ベクトル、次元圧縮後の次元数等の項目を決定することにより次元圧縮方法を決定する。
【００４３】
パラメータの取得方法については、次元圧縮に用いるパラメータを動的に生成するか、予め用意したものを読み出すか、の２つの方法があり、これを部分特徴量ごとに判定し、切り替える。なお、このパラメータの実体については後述する。また、次元圧縮後の次元数とは、後段の圧縮処理により出力される部分特徴量である部分特徴量ベクトルの次元数のことである。
【００４４】
次元圧縮用のパラメータの取得方法や、次元圧縮後の次元数を予め定める方法では、部分特徴量の領域を決める際と同じように、機械学習方法を用いることができる。具体的には、パラメータおよび圧縮後の次元数を変えた候補を複数用意して、識別性能を評価関数とし、機械学習方法を用いて選択すればよい。
【００４５】
また、次元圧縮方法を決定する際に、次元圧縮用のパラメータを共通にするための制御を行うようにしてもよい。一般的には、部分領域ごとに次元圧縮に用いるパラメータを用意するのが望ましい。典型的には、例えば、部分領域ごとに部分特徴量ベクトルを学習データから抽出して、主成分分析などの機械学習方法を用いて学習し、部分領域ごとに最適な次元圧縮用のパラメータを用意する。
【００４６】
一方、データ量を削減する目的により次元圧縮用のパラメータの量を削減するために、複数の部分領域で同じ次元圧縮用のパラメータを使用するようにしてもよい。例えば部分特徴量の種類が同じであり、部分領域が比較的近い位置関係にある場合は、機械学習方法によって得られる次元圧縮用のパラメータも比較的似たものになると考えられるので、共通化することができる。また、主成分分析等の機械学習方法により学習する際に、複数の部分領域に対する部分特徴量ベクトルを一度に学習することによって、共通な次元圧縮用のパラメータを求めるようにしてもよい。
【００４７】
次元圧縮用のパラメータを乱数によって動的に生成する場合は、次元圧縮用のパラメータを各部分領域で共通にすれば、容易に生成することができる。次元圧縮用のパラメータが乱数である場合、部分領域ごとに異なる乱数列であることに特に意味はなく、共通であってもよい。なお、乱数によって次元圧縮用のパラメータを動的に生成する場合は、パラメータの量は問題にならないが、部分領域間で共通にすることによって乱数の周期を小さくすることが可能になるので、乱数を生成する処理を軽減することができる。
【００４８】
また、実際に次元圧縮用のパラメータをどの部分領域で共通にするかは、実際に共通化した次元圧縮用のパラメータを用意し、機械学習方法によって認識性能や所定の処理量など基準を定めて選択して決めればよい。
【００４９】
図６の説明に戻り、次にステップＳ６０３において、次元圧縮演算部５０３は、次元圧縮パラメータ保持部５０４から部分特徴量の属性に応じた平均ベクトルを取得し、部分特徴量ベクトルから減算する。ここで、参照する部分特徴量の属性は、典型的には部分特徴量の種類、位置、大きさなどである。これらの属性によって部分特徴量の次元数が定められるため、取得する平均ベクトルの次元数も一致していることになる。元々の部分特徴量ベクトルをｖ、平均ベクトルをｍとすると、求める部分特徴量ベクトルｘは、以下の式（１）によって算出される。
ｘ＝ｖ−ｍ      ・・・（１）
【００５０】
次に、ステップＳ６０４において、部分特徴次元圧縮制御部５０１は、ステップＳ６０２で決定された次元圧縮方法に応じて、パラメータの取得方法を判定する。この判定の結果、パラメータを動的に生成しない場合は、ステップＳ６０５において、次元圧縮演算部５０３は、次元圧縮パラメータ保持部５０４から必要なパラメータを読みだす。次元圧縮パラメータ保持部５０４には、所定の方法を用いて求められたパラメータ群が予め保持されている。典型的には主成分分析（PCA：Principal Component Analysis）や局所性保存射影（LPP：Locality Preserving Projections）などの手法を用いて求められたパラメータ群が保持されている。次に、ステップＳ６０６において、次元圧縮演算部５０３は、射影行列Ａを用いて射影演算を行う。射影演算は以下の式（２）により行われる。
ｙ＝Ａｘ      ・・・（２）
【００５１】
ここでｘはステップＳ６０３で算出した次元圧縮前の部分特徴量ベクトルであり、ｙは次元圧縮後の部分特徴量ベクトルである。また、Ａは射影行列である。次元圧縮前の部分特徴量ベクトルｘの次元数をｄとし、次元圧縮後の部分特徴量ベクトルｙの次元数をｍとすると、射影行列Ａはｄ×ｍ次元の行列として表現される。ステップＳ６０５で読み出すパラメータは、射影行列Ａの各要素の値に対応する。次元圧縮後の部分特徴量ベクトルｙの第ｉ成分は、以下の式（３）により与えられる。
【００５２】
【数１】
2015185034.tif 000003
【００５３】
また、式（２）に示した射影行列Ａを主成分分析によって求めるのではなく、後述するように、Ａの各要素を乱数にすることもできる。その場合、式（２）または式（３）で表わされる射影演算を以下ではランダム射影と呼ぶことにする。
【００５４】
ステップＳ６０６では、式（３）に対応する処理を行う。そして、次のステップＳ６０７において、次元圧縮演算部５０３は、所定回数（ｍ回）だけこの射影処理を行ったか否かを判定する。この判定の結果、所定回数に達していない場合は、ｉをｉ＋１に更新してステップＳ６０５に戻る。一方、ステップＳ６０７の判定の結果、所定回数だけ射影処理を行って部分特徴量ベクトルの次元数ｍに達した場合は、処理を終了する。
【００５５】
一方、ステップＳ６０４の判定の結果、動的にパラメータを生成する場合は、ステップＳ６０８において、次元圧縮パラメータ生成部５０２は次元圧縮用のパラメータを生成する。ここで生成するパラメータは射影行列Ａの要素であり、典型的には式（３）に示した射影行列Ａijに対応する。また、次元圧縮用のパラメータを生成する場合には、適宜初期化を行って、部分特徴量間で共通のパラメータを生成するようにするとよい。具体的には、乱数データ管理部５０６の管理情報に基づいて、乱数生成部５０５が乱数列の初期化を行うようにする。例えば、部分特徴量が切り替わったタイミングで初期化を行い、部分特徴量ベクトルが変わっても、同じ順番（第ｉ成分）にある要素に対しては同じパラメータが使われるようにする。
【００５６】
次に、ステップＳ６０９において、次元圧縮演算部５０３は、部分特徴量ベクトルの要素とステップＳ６０８で生成したパラメータとの積和演算を行う。この処理では、式（３）に示した射影行列Ａijの積をｊ＝０からその和を演算する。次にステップＳ６１０において、次元圧縮演算部５０３は、式（３）の積和演算が完了しているか否かを判定する。すなわち、圧縮前の部分特徴量ベクトルの要素番号ｊが、元の部分特徴量ベクトルの次元数ｄに達しているか否かを判定する。この判定の結果、積和演算が完了していない場合は、ｊをｊ＋１に更新してステップＳ６０８に戻る。
【００５７】
一方、ステップＳ６１０の判定の結果、積和演算が完了している場合は、ステップＳ６１１において、次元圧縮演算部５０３は、圧縮後の部分特徴量ベクトルの全要素を計算済みか否か判定する。この判定はステップＳ６０７と同様の処理であるため、説明を割愛する。この判定の結果、次元数ｍに達していない場合はステップＳ６０８に戻り、次元数ｍに達した場合は処理を終了する。
【００５８】
ここで、ステップＳ６０４の処理により次元圧縮用のパラメータを動的に生成するか否かによって分岐させた理由を説明する。前述したように次元圧縮パラメータ保持部５０４には、式（２）の射影行列Ａの各要素が格納されている。さらに、射影行列Ａは部分特徴量ベクトルごとに用意されるので、組込み機器のようにリソースに制約がある場合は、全てのパラメータを作業用メモリ等に展開することはできない。
【００５９】
製造コストを抑えるために、不揮発性の記憶装置や、低速だが安価な一時記憶装置等にこれらのパラメータを保持しておき、使用する際に読み出すようにすることが好ましい。そのため、ステップＳ６０５からＳ６０７の処理では、このような記憶装置から作業用メモリにデータを読み出す量が多くなる。データの読み出しは多くの時間がかかるため、出来るだけ高速に行う必要があるが、高速に処理を行うためにメモリの帯域を大きくとると、消費電力が大きくなるという問題がある。このように、次元圧縮用のパラメータを予め用意して、実行時に読み出すようにすると、処理速度の向上と消費電力の低減とを両立させることが難しい。
【００６０】
一方、ステップＳ６０８からＳ６１１の処理では、次元圧縮用のパラメータを動的に生成するため、予めパラメータを記憶装置等に格納する必要がない。また、パラメータを生成する場合には、即座にそのパラメータが用いられるので、メモリ帯域を広く確保する必要もない。
【００６１】
ここで、精度と実装効率との関係について、一般的に、乱数データを射影基底に用いるよりも、予め主成分分析などの機械学習方法で定めた方が、精度が良い場合が多い。このことは、次元圧縮前の部分特徴量の次元数ｄ、次元圧縮後の次元数ｍ、および、求める精度との関係にも依存する。オブジェクトの認証の場合、次元圧縮前の次元数ｄが大きく、次元圧縮後の次元数ｍが比較的小さい場合には、乱数による次元圧縮で十分な精度を得られる場合が多い。一方、次元圧縮前の次元数ｄが小さく、次元圧縮後の次元数ｍが比較的大きい場合は、機械学習の方法で求めた次元圧縮パラメータに対して、有意な大きさで精度の劣化が生じることが多い。
【００６２】
前述したように、実際には、精度を目的関数として、機械学習によるものと乱数によるものとのそれぞれで精度を求め、機械学習方法で部分特徴量ごとに良いものを選択すればよい。さらに、目的関数に処理コスト（パラメータ呼び出し回数や必要メモリ帯域）を含めることによって、実装に最適な次元圧縮用のパラメータを決めることが可能になる。
【００６３】
＜入力オブジェクト識別部１０６＞
次に、入力オブジェクトを識別する処理について説明する。図７は、図１に示した入力オブジェクト識別部１０６の詳細な構成例を示すブロック図である。
図７に示すように、入力オブジェクト識別部１０６は、入力オブジェクト識別用データ生成部７０１、登録オブジェクト辞書データ取得部７０２、および入力オブジェクト識別演算部７０３を備えている。
【００６４】
入力オブジェクト識別用データ生成部７０１は、画像記録部１０４から画像データを取得し、識別対象であるオブジェクトの識別に必要な識別用データを抽出する。登録オブジェクト辞書データ取得部７０２は、オブジェクト登録部１０５より、入力オブジェクトの識別に必要な辞書データを取得する。入力オブジェクト識別演算部７０３は、入力オブジェクト識別用データ生成部７０１から取得した識別用データと、登録オブジェクト辞書データ取得部７０２から得た辞書データとから、オブジェクトの識別処理を行う。ここで行われる処理については後述する。
【００６５】
図８は、入力オブジェクト識別部１０６で行われる処理手順の一例を示すフロー図である。
まず、ステップＳ８０１において、登録オブジェクト辞書データ取得部７０２は、オブジェクト登録部１０５から登録オブジェクトの辞書データを取得する。次に、ステップＳ８０２において、入力オブジェクト識別用データ生成部７０１は、画像記録部１０４より入力オブジェクトを含む画像データ（入力画像）を取得する。続いて、ステップＳ８０３において、入力オブジェクト識別用データ生成部７０１は、入力オブジェクトを識別するための識別用データを生成する。ここで行われる処理の詳細については後述する。
【００６６】
次に、ステップＳ８０４において、入力オブジェクト識別演算部７０３は、入力オブジェクトを識別するための演算処理を行う。この演算処理の結果として、登録済みデータ（辞書データ）と一致するか否かをバイナリ（０または１）で出力する場合と、正規化した出力値を尤度や類似度（例えば０〜１の実数値）として出力する場合とが考えられる。さらに登録オブジェクトが複数の場合には、それぞれの登録オブジェクトに対して尤度を出力してもよく、最も一致した登録オブジェクトに対する結果だけを出力してもよい。
【００６７】
また、登録オブジェクトに対する尤度ではなく、登録オブジェクトが属するクラスに対する尤度を出力してもよい。例えば人物を識別する場合には、個々の登録顔画像に対する尤度ではなく、人物のＩＤ（名前）に対する尤度を出力するようにする。なお、入力オブジェクトを識別するための演算処理の具体的な内容については後述する。
【００６８】
＜入力オブジェクト識別用データ生成部７０１＞
図９は、図７に示した入力オブジェクト識別用データ生成部７０１の詳細な構成例を示すブロック図である。
図９に示すように、入力オブジェクト識別用データ生成部７０１は、部分特徴抽出部９０１、および部分特徴次元圧縮部９０２を備えている。また、部分特徴抽出部９０１は、さらに部分領域設定部９０３および特徴ベクトル抽出部９０４を備えている。入力オブジェクト識別用データ生成部７０１の構成および各構成による処理は、それぞれ図４に示した登録オブジェクト辞書データ生成部３０１と同様であるため、詳細な説明は割愛する。部分特徴量の次元数を圧縮手順についても同様である。
【００６９】
＜入力オブジェクト識別演算処理＞
次に、入力オブジェクトを識別するための演算処理について説明する。本実施形態では、一例として、入力オブジェクトの識別を、登録オブジェクトと入力オブジェクトとで対応する部分特徴量間の類似性をもとに判定する場合について説明する。
【００７０】
図１０は、図７に示した入力オブジェクト識別演算部７０３の詳細な構成例を示すブロック図である。
図１０に示すように、入力オブジェクト識別演算部７０３は、入力オブジェクト識別用データ取得部１００１、および登録オブジェクト辞書データ取得部１００２を備えている。さらに、部分特徴類似度算出部１００３、部分特徴類似度統合部１００４、および入力オブジェクト判定部１００５を備えている。
【００７１】
図１１は、入力オブジェクト識別演算部７０３による処理手順の一例を示すフローチャートである。以下、図１１を参照しながら図１０に示す各構成の処理について説明する。
まず、ステップＳ１１０１において、入力オブジェクト識別用データ取得部１００１は、入力オブジェクトの識別用データを入力オブジェクト識別用データ生成部７０１から取得する。続いて、ステップＳ１１０２において、登録オブジェクト辞書データ取得部１００２は、登録オブジェクトの辞書データを登録オブジェクト辞書データ取得部７０２から取得する。
【００７２】
次に、ステップＳ１１０３において、部分特徴類似度算出部１００３は、取得した入力オブジェクトの識別用データと登録オブジェクトの辞書データとから、対応する部分特徴量の類似度を算出する。この処理では、それぞれ対応する部分特徴量ベクトル間のユークリッド距離を求め、その逆数を類似度とする。また、ユークリッド距離ではなく、部分特徴量ベクトル間の内積を求め、そのなす角を類似度としてもよい。さらに一般的な距離として、以下の式（４）で表されるミンコフスキー距離Ｌの逆数を類似度としてもよい。
【００７３】
【数２】
2015185034.tif 000004
【００７４】
ここで、２つのベクトルｘ、ｙはそれぞれｌ次元であるとする。この際、必要な２つのパラメータａ，ｂについては、評価用のサンプルで最も識別性能が良くなるように予め定めておけばよい。
【００７５】
次に、ステップＳ１１０４において、部分特徴類似度算出部１００３は、同一のオブジェクト（同一のＩＤ）に属する辞書データについて、全て類似度を求めたか否かを判定する。この判定の結果、未処理の辞書データが存在する場合は、ステップＳ１１０２に戻り、同一のＩＤに属する辞書データを取得して処理を繰り返す。一方、未処理の辞書データが存在しない場合は、次の処理に移る。
【００７６】
次に、ステップＳ１１０５において、部分特徴類似度統合部１００４は、同一のＩＤに属する辞書データに関して、ステップＳ１１０３で求めた類似度を部分特徴量ごとに統合し、さらに全体として１つの類似度に統合する。例えば、１つのオブジェクトに対して、３つの登録画像が存在する場合、１つの部分領域について３つの類似度が算出される。この同一の部分領域（同一のＩＤ）における３つの類似度に対して、その平均値や、最大値、中央値などを求めることによって、部分領域の単位で統合することができる。
【００７７】
さらに、上記のように統合された部分領域ごとの類似度を、最終的に１つの類似度として統合する。このときの統合方法としては、例えば、単純な平均値を求めてもよく、最大値や中央値を求めるようにしてもよい。また、類似度が大きい値が上位に来るようにソートして、全体に対して所定の割合で上位にある類似度だけを平均（以下、降順ソート上位平均と呼ぶ）して、統合類似度としてもよい。このようにすることによって、複数枚の登録画像がある場合に、より類似度が高いところだけを用いて統合することが可能になり、認識性能を向上させることができる。
【００７８】
次に、ステップＳ１１０６において、上記処理を全ての辞書データについて行ったか否かを判定する。この判定の結果、まだ未処理の辞書データが存在する場合は、ステップＳ１１０２に戻って異なるＩＤに関して処理を行う。一方、全ての辞書データについて処理を行った場合は、ステップＳ１１０７において、入力オブジェクト判定部１００５は、入力オブジェクトの判定処理を行う。
【００７９】
ここで、入力オブジェクトの判定処理とは、登録済みの全てのオブジェクトの辞書データとの類似度を勘案して、入力オブジェクトがどの登録オブジェクトに対応するか判定する処理である。典型的には、ステップＳ１１０５で取得した統合類似度のうち、最大値をとるものが、入力オブジェクトに対応する登録オブジェクトであるものとし、その結果を出力する。判定の際に、同じＩＤを持つ登録オブジェクトに対する類似度を統合してから比較してもよい。典型的には、同じＩＤに対する類似度の平均値を求めて、それらの最大値をとるものを、入力オブジェクトに対応するオブジェクトのＩＤとして判定し、出力するようにしてもよい。
【００８０】
本実施形態では、部分特徴量ベクトルを次元圧縮する際に使用する次元圧縮用のパラメータに関し、予め用意したものを用いるか、動的に生成するか、部分特徴量に応じて切り替えるようにした。次元圧縮用のパラメータを主成分分析の手法などによって予め射影行列として求めると、一般に、そのパラメータ量は膨大なものになり、その全てをメモリ等に格納することはできない。このような場合には他の記憶装置からパラメータを読み出すことになるが、読み出す回数が増えると、処理速度が低下してしまう。また、処理速度を向上しようとする場合にはメモリ帯域を大きくする必要があり、消費電力の増加を招く。
【００８１】
一方、パラメータを動的に生成すれば、このような問題は発生しない。この場合には精度の劣化が懸念されるが、次元数の大きい部分特徴量など機械学習方法によって必要な精度を保つことができる部分特徴量を選択しておけばよい。このように部分特徴量毎に次元圧縮用のパラメータの取得方法を切り替えることによって、予め保持する次元圧縮用のパラメータの量を抑えることができる。以上のように認識精度が劣化することを抑えるとともに、次元圧縮用のパラメータの量を抑え、次元圧縮パラメータを読み出すために必要なメモリ帯域および消費電力を抑えることができる。
【００８２】
（第２の実施形態）
以下、本発明の第２の実施形態について説明する。本実施形態では、第１の実施形態と比較して、複数の部分特徴量を連結した後に次元圧縮を行う点で異なっている。以下、具体的に説明する。なお、本実施形態に係るオブジェクト識別装置の全体的な構成および処理については、基本的にはそれぞれ図１および図２と同様であるため、説明は省略する。なお、図４および図９に示した部分特徴次元圧縮部４０２、９０２の構成の一部が本実施形態では異なっている。さらに、入力オブジェクトを識別する処理の一部が異なっている。以下、第１の実施形態と異なる点を中心に説明する。
【００８３】
＜部分特徴次元圧縮部４０２＞
図１２は、本実施形態における部分特徴次元圧縮部４０２の詳細な構成例を示すブロック図である。なお、入力オブジェクト識別用データ生成部７０１に含まれる部分特徴次元圧縮部９０２についても同様の構成であるものとする。
図１２に示すように、部分特徴次元圧縮部４０２は、部分特徴次元圧縮制御部５０１、次元圧縮パラメータ生成部５０２、次元圧縮演算部５０３、次元圧縮パラメータ保持部５０４、および部分特徴連結部１２０１を備えている。本実施形態では、部分特徴連結部１２０１が追加されている点で、第１の実施形態と異なっている。なお、図５に示した構成と同じ構成については役割が同様であるため、説明を割愛する。
【００８４】
部分特徴連結部１２０１は、部分特徴量ベクトルの連結処理を行う。例えば、次元数が１００次元の部分特徴量ベクトルが２つあった場合に、それらを単純に連結して、２００次元の部分特徴量ベクトルとして出力する。部分特徴連結部１２０１で行われる処理の詳細については後述する。
【００８５】
図１３は、本実施形態において、部分特徴次元圧縮部４０２により登録オブジェクトの辞書データを生成する際の部分特徴量を次元圧縮する処理手順の一例を示すフローチャートである。
始めに、ステップＳ１３０１において、部分特徴次元圧縮制御部５０１は、部分特徴量ベクトルを取得する。続いて、ステップＳ１３０２において、次元圧縮演算部５０３は、取得した部分特徴量ベクトルに対応する平均ベクトルを次元圧縮パラメータ保持部５０４から取得し、部分特徴量ベクトルから減算する。
【００８６】
続いて、ステップＳ１３０３において、次元圧縮演算部５０３は、平均ベクトルを減算した部分特徴量ベクトルが所定数に達したか否かを判定する。この判定の結果、所定数に達していない場合は、ステップＳ１３０１に戻る。一方、所定数に達した場合は、ステップＳ１３０４において、部分特徴連結部１２０１は、取得した複数の部分特徴量ベクトルを連結する。
【００８７】
ここで、連結方法については、上述したように単純な連結でよい。なお、連結する部分特徴量ベクトルの組合せおよび連結する際の順番は、予め定めておくものとし、例えば、部分特徴量の属性に応じて連結する順番を定める。より具体的には、オブジェクト中のある位置を基準としてその位置に近いものを連結する方法、または、基準位置を中心として時計回りに連結する方法などを予め定めておいてもよく、機械学習方法で定めておいてもよい。この際、部分特徴量ベクトルを連結する順番は、直接精度に影響しないものの、精度が低下しないように登録オブジェクトの連結後の部分特徴量と入力オブジェクトの連結後の部分特徴量とで一貫性を持たせる。
【００８８】
また、いくつの部分特徴量ベクトルを連結するかは、次のような基準がある。即ち、後段の次元圧縮用のパラメータを動的に生成しても十分な識別精度を発揮できる程度に次元を高めることである。第１の実施形態では、動的に生成したパラメータ（典型的には乱数）を用いて次元圧縮（ランダム射影）しても精度が保持できるのは、部分特徴量の次元数が大きい場合である。本実施形態では、１つ１つの部分特徴量の次元数が、ランダム射影では精度が維持できない程度に小さくても、複数の部分特徴量を連結して、１つの部分特徴量ベクトルとして取り扱い、ランダム射影で識別精度が維持できるように高次元化する。
【００８９】
次に、ステップＳ１３０５において、次元圧縮パラメータ生成部５０２は、連結した部分特徴量ベクトルを次元圧縮するためのパラメータを生成する。ここでは、第１の実施形態とは異なり、全ての連結された部分特徴量ベクトルにランダム射影を適応する。以下のステップＳ１３０６〜Ｓ１３０８までの処理は、それぞれ図６のステップＳ６０９〜Ｓ６１１までの処理と同様である。
【００９０】
次に、入力オブジェクトを識別する時に部分特徴量を次元圧縮する処理について説明する。登録オブジェクトの辞書データを生成する時は、１つの連結した部分特徴量ベクトルに対して、一回のランダム射影を行って、１つの部分特徴量ベクトルを出力した。これに対して、入力オブジェクトを識別する時は、１つの連結した部分特徴量ベクトルに関して、次元圧縮後に複数の部分特徴量ベクトルを出力する点が異なる。
【００９１】
図１４は、本実施形態において、入力オブジェクトを識別する時に部分特徴量を次元圧縮する処理手順の一例を示すフローチャートである。
図１４において、ステップＳ１４０１〜Ｓ１４０３の処理については、それぞれ図１３のステップＳ１３０１〜Ｓ１３０３と同様であるため、説明は省略する。次のステップＳ１４０４においては、所定数の部分特徴量ベクトルを連結する。このとき、図１３のステップＳ１３０４とは異なり、連結の順番を複数のパターンで行うこととなる。すなわち、ステップＳ１４０９の判定で所定数の次元圧縮後の部分特徴量ベクトルが得られるまで連結の順番を変えて、連結した部分特徴量ベクトルを複数生成する。
【００９２】
例えば、連結の対象となる部分特徴量ベクトルがＡ、Ｂ、Ｃの３個であった場合は、ＡＢＣ、ＢＣＡ、ＣＡＢなどのように連結の順番を変えながら所定数に達するまで連結を行う。なお、ステップＳ１４０５〜Ｓ１４０８については、それぞれ図１３のステップＳ１３０５〜Ｓ１３０８と同様であるため、説明は省略する。
【００９３】
次に、入力オブジェクトを識別するための演算処理について説明する。第１の実施形態では、入力オブジェクトの識別用データが、登録オブジェクトの辞書データと１対１で対応していたのに対し、本実施形態では、登録オブジェクトの１つの辞書データに対して、複数の識別用データが存在する。
【００９４】
図１５は、入力オブジェクトを識別するための演算処理手順の一例を示すフローチャートである。
始めに、ステップＳ１５０１において、入力オブジェクト識別用データ取得部１００１は、入力オブジェクトの識別用データを取得する。前述したように、本実施形態では入力オブジェクトの識別用データは、以下の点で、第１の実施形態と異なる。すなわち、登録オブジェクトの辞書データの中の１つの部分特徴量ベクトル（以下、登録特徴量ベクトルと呼ぶ）に対応する、入力オブジェクトの部分特徴量ベクトル（以下、入力特徴量ベクトルと呼ぶ）が複数存在する。
【００９５】
続いて、ステップＳ１５０２において、登録オブジェクト辞書データ取得部１００２は、登録オブジェクトの辞書データを取得する。次に、ステップＳ１５０３において、部分特徴類似度算出部１００３は、取得した入力オブジェクトの識別用データと登録オブジェクトの辞書データとから、対応する部分特徴量の類似度を算出する。類似度の演算方法については基本的には第１の実施形態と同様であるが、登録特徴量ベクトルに対応する入力特徴量ベクトルが複数あるので、入力特徴量ベクトルの数だけ類似度を算出する。
【００９６】
次に、ステップＳ１５０４において、部分特徴類似度算出部１００３は、１つの登録特徴量ベクトルに対して算出した複数の類似度を１つの類似度に統合する。統合方法としては、例えば、複数の類似度から最大値を選択するようにする。
【００９７】
ここで、入力特徴量ベクトルは、部分特徴量ベクトルの順序を切り替えて連結した後に、次元圧縮したものである。したがって、連結前の部分特徴量ベクトル群が、入力オブジェクト上で空間的に近傍から取得されたものである場合には、類似度の最大値を選択すれば、登録特徴量ベクトルと入力特徴量ベクトルとの位置ずれを吸収する効果がある。一般に、部分特徴量ベクトル間で内積を算出すると、一部でも一致しやすい部分があれば、全く関係のない部分特徴量ベクトル間との内積よりも高い値になる。すなわち、連結順序を変えて類似度を求めその最大値を採用すれば、空間的なスキャンを行いながら最も一致する部分を探していることとなり、登録特徴量ベクトルと入力特徴量ベクトルとの位置ずれを吸収できる。なお、ステップＳ１５０５〜Ｓ１５０８については、それぞれ図１１のステップＳ１１０４〜Ｓ１１０７の処理と同様であるため、説明は省略する。
【００９８】
本実施形態では、ランダム射影では精度を維持することができない次元の比較的小さい部分特徴量ベクトルに対しても、ランダム射影を可能にし、次元圧縮用のパラメータの読み出しコストを最小化する。さらに、空間的に近い位置から取得した部分特徴量ベクトルの連結を、連結順序を変えながら行って複数の部分特徴量ベクトルを生成することにより、登録特徴量ベクトルと入力特徴量ベクトルとの間の空間的な位置ずれを吸収することができる。
【００９９】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１００】
１０５  オブジェクト登録部
１０６  入力オブジェクト識別部
【図１】
2015185034.tif 000005
【図２】
2015185034.tif 000006
【図３】
2015185034.tif 000007
【図４】
2015185034.tif 000008
【図５】
2015185034.tif 000009
【図６】
2015185034.tif 000010
【図７】
2015185034.tif 000011
【図８】
2015185034.tif 000012
【図９】
2015185034.tif 000013
【図１０】
2015185034.tif 000014
【図１１】
2015185034.tif 000015
【図１２】
2015185034.tif 000016
【図１３】
2015185034.tif 000017
【図１４】
2015185034.tif 000018
【図１５】
2015185034.tif 000019