説明

オブジェクト識別装置、オブジェクト識別方法、及びプログラム

【課題】画像に含まれるオブジェクトの識別の精度をより高めることを目的とする。
【解決手段】入力画像に含まれる入力オブジェクトおよび登録画像に含まれる登録オブジェクトのオブジェクト間の変動量を検出するオブジェクト間変動量検出手段と、入力オブジェクトと登録オブジェクトとで、少なくとも1つ以上の対応する部分特徴量を抽出する部分特徴抽出手段と、オブジェクト間の変動量の大きさに応じて部分特徴抽出手段で抽出された部分特徴量を組み合わせる合成方法を決定し、決定した合成方法で部分特徴量を合成して合成部分特徴量を生成する部分特徴量合成手段と、合成部分特徴量を用いて、入力オブジェクトがどの登録オブジェクトに対応するかを識別する入力オブジェクト識別手段と、を有することによって課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクト識別装置、オブジェクト識別方法、及びプログラムに関する。
【背景技術】
【0002】
パターン認識における識別技術、典型的には、画像データ中の被写体であるオブジェクトが、別の画像中の被写体であるオブジェクトと同一のものであると識別する技術として、個人の顔を識別する顔識別技術がある。以下では、オブジェクトの識別とは、オブジェクトの個体の違い(例えば、個人としての人物の違い)を判定することを意味するものとする。一方、オブジェクトの検出は、個体を区別せず同じ範疇に入るものを判定する(例えば、個人を区別せず、顔を検出する)ことを意味するものとする。
顔識別技術としては、例えば非特許文献1のような方法がある。これは、顔による個人の識別問題を、差分顔と呼ばれる特徴クラスの2クラスの識別問題に置き換えることによって、顔の登録・追加学習をリアルタイムに行うことを可能にしたアルゴリズムである。
【0003】
例えば、一般によく知られているサポートベクターマシン(SVM)を用いた顔識別では、n人分の人物の顔を識別するために、登録された人物の顔とそれ以外の顔とを識別するn個のSVM識別器が必要になる。人物の顔を登録する際には、SVMの学習が必要となる。SVMの学習には、登録したい人物の顔データと、既に登録されている人物とその他の人物との顔データとが大量に必要であり、非常に計算時間がかかるため、予め計算しておく手法が一般的であった。
しかしながら、非特許文献1の方法によれば、個人の識別問題を次に挙げる2クラスの識別問題に置き換えることよって、追加学習を実質的に不要にすることができる。即ち、
intra-personal class:同一人物の画像間の照明変動、表情・向きなどの変動特徴クラス
extra-personal class:異なる人物の画像間の変動特徴クラス
の2クラスである。
【0004】
上記2クラスの分布では、特定の個人によらず一定であると仮定して、個人の顔識別問題を上記2クラスの識別問題に帰着させて識別器を構成する。予め、大量の画像を準備し、同一人物間の変動特徴クラスと異なる人物間の変動特徴クラスとの識別を行う識別器を学習する。新たな登録者については、顔の画像(若しくは必要な特徴を抽出した結果)のみを保持すればよい。識別する際には、2枚の画像から差分特徴が取り出され、上記識別器で、同一人物であるか異なる人物であるかが判定される。これにより、個人の顔登録の際にSVMなどの学習が不要になり、リアルタイムで登録処理を行うことができる。
また、顔識別における従来の技術としては、特許文献1の技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−031991号公報
【非特許文献】
【0006】
【非特許文献1】Baback Moghaddam, Beyond Eigenfaces :Probabilistic Matching for Face Recognition(M.I.T Media Laboratory Perceptual Computing Section Technical Report No.433), ProbabilisticVisual Learning for Object Representation(IEEE Transactions on PatternAnalysis and Machine Intelligence, Vol. 19, No. 7, JULY 1997)
【非特許文献2】Lior Wolf, Tal Hassner, and Yaniv Taigman, Descriptor Based Methods in the Wild. Faces in Real-Life Images Workshop in European Conference on Computer Vision (ECCV), 2008.
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記のようなパターン(画像中のオブジェクト、より具体的には、人物の顔)の識別を行う装置および方法において、識別性能を低下させる要因として、登録用パターンと認証用パターンとの間の変動が挙げられる。即ち、識別の対象であるオブジェクト(人物の顔)の変動、より具体的には、照明条件、向き・姿勢、他のオブジェクトによる隠れ、表情による変動などである。故に、登録用パターンと認証用パターンとで、上記のような変動が大きくなると、識別性能が大幅に低下してしまう。
この問題に対して、特許文献1では、顔画像から取得した特徴ベクトルを、個人差を表す成分と撮影条件を表す成分との2つに分離する。後者の撮影条件を表す成分を特徴空間内で変換し、変換後の成分を、個人差を表す成分に加えることによって、1つの画像から様々な撮影条件に対応する特徴ベクトルを取得できる。様々な撮影条件の特徴ベクトルを疑似的に生成することによって、変動に頑健な識別を実現可能としている。
しかしながら、この方法では、特徴ベクトルが個人差の成分と撮影条件の成分との重ね合わせによって表現できることが前提となっており、全ての特徴量について適用できるわけではない。
【0008】
また、非特許文献2の技術では、Gabor特徴、LBP(Local Binary Pattern)特徴など、性質の異なる複数の特徴量を組み合わせ、2つのパターン間の様々な変動に対応しようとしている。
しかしながら、予め定められた組み合わせ方に限定されており、現実の環境での大きな変動に対して有効に作用しない場合があり得る。
さらに、別の問題として、顔の認証を行う場合、顔の器官の位置を予め検出し、その器官の位置を基準に比較を行う方法が一般的に用いられる。上記2つの文献も、顔の目の位置、口の位置などが、登録用の画像(登録画像)と認証用の画像(認証画像)とで、予めある程度揃えられていることが前提になっている。
しかしながら、現実の環境では、表情変化と撮影条件とが、複合的に現れる場合があり、顔の器官の位置を高精度に検出することは難しい。よって、登録画像と認証画像との間での顔器官の位置のずれも認識精度を劣化させる大きな要因である。
【0009】
本発明はこのような問題点に鑑みなされたもので、画像に含まれるオブジェクトの識別の精度をより高めることを目的とする。
【課題を解決するための手段】
【0010】
そこで、本発明に係るオブジェクト識別装置は、入力画像に含まれる入力オブジェクトおよび登録画像に含まれる登録オブジェクトのオブジェクト間の変動量を検出するオブジェクト間変動量検出手段と、前記入力オブジェクトと前記登録オブジェクトとで、少なくとも1つ以上の対応する部分特徴量を抽出する部分特徴抽出手段と、前記オブジェクト間の変動量の大きさに応じて前記部分特徴抽出手段で抽出された部分特徴量を組み合わせる合成方法を決定し、決定した合成方法で前記部分特徴量を合成して合成部分特徴量を生成する部分特徴量合成手段と、前記合成部分特徴量を用いて、前記入力オブジェクトがどの登録オブジェクトに対応するかを識別する入力オブジェクト識別手段と、を有することを特徴とする。
【発明の効果】
【0011】
本発明によれば、画像に含まれるオブジェクトの識別の精度をより高めることができる。
【図面の簡単な説明】
【0012】
【図1】オブジェクト識別装置の構成の一例を示す図である。
【図2】全体処理に係るフローチャートの一例を示す図である。
【図3】オブジェクト登録部の構成の一例を示す図である。
【図4】登録オブジェクト辞書データ生成部の構成の一例を示す図である。
【図5】特徴ベクトル抽出変換処理に係るフローチャートの一例を示す図である。
【図6】入力オブジェクト識別部の構成の一例を示す図である。
【図7】入力オブジェクトの識別処理に係るフローチャートの一例を示す図である。
【図8】入力オブジェクト識別用データ生成部の構成の一例を示す図である。
【図9】入力オブジェクト識別演算部の構成の一例を示す図である。
【図10】入力オブジェクト識別演算処理に係るフローチャートの一例を示す図である。
【図11】部分特徴合成部の構成の一例を示す図である。
【図12】部分特徴合成処理に係るフローチャートの一例を示す図である。
【図13】合成部分特徴評価部の構成の一例を示す図である。
【図14】合成部分特徴評価処理に係るフローチャートの一例を示す図である。
【図15】合成部分特徴評価値算出処理に係るフローチャートの一例を示す図である。
【図16】部分領域の学習処理に係るフローチャートの一例を示す図である。
【図17】合成部分特徴評価部の構成の一例を示す図である。
【図18】合成部分特徴評価処理に係るフローチャートの一例を示す図である。
【図19】部分特徴数量計測処理に係るフローチャートの一例を示す図である。
【図20】合成部分特徴尤度算出部の構成の一例を示す図である。
【図21】合成部分特徴尤度算出処理に係るフローチャートの一例を示す図である。
【図22】合成部分特徴評価値算出処理に係るフローチャートの一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【0014】
<第1の実施形態>
本実施形態は、識別の対象であるオブジェクトが様々な変動(画像である場合は、照明変動、向き・姿勢の変動など)を受けた状態にあっても、高精度かつ高速に識別を行うことができるオブジェクト識別装置、オブジェクト識別方法、そのプログラム等に関する。
図1は、本実施形態に係るオブジェクト識別装置100の構成の一例を示す図である。オブジェクト識別装置100は、結像光学系1、撮像部2、撮像制御部3、画像記録部4、オブジェクト登録部5、入力オブジェクト識別部6、オブジェクトの識別結果を出力する外部出力部7、及び各構成要素の制御・データ接続を行うための接続バス8を有する。
なお、オブジェクト登録部5および入力オブジェクト識別部6は、典型的には、それぞれ専用回路(ASICなど)、プロセッサ(リコンフィギュラブルプロセッサ、DSP、CPUなど)であってもよい。また、オブジェクト登録部5および入力オブジェクト識別部6は、単一の専用回路および汎用回路(PC用CPU)内部において実行されるプログラムにより実現されてもよい。
【0015】
結像光学系1は、ズーム機構を備えた光学レンズで構成される。また、パン・チルト軸方向の駆動機構を備えてもよい。撮像部2の映像センサとしては、典型的にはCCDまたはCMOSイメージセンサが用いられる。また、撮像部2では、不図示のセンサ駆動回路からの読み出し制御信号により、所定の映像信号(例えば、サブサンプリング、ブロック読み出しにて得られる信号)が画像データとして出力される。
撮像制御部3は、撮影者からの指示(画角調整指示、シャッター押下など)、及びオブジェクト登録部5または入力オブジェクト識別部6からの情報をもとに、実際に撮影が行われるタイミングを制御する。画像記録部4は、半導体メモリ等で構成され、撮像部2から転送された画像データを記録(保持)し、オブジェクト登録部5、入力オブジェクト識別部6等からの要求に応じて所定のタイミングで画像データを転送する。
【0016】
オブジェクト登録部5は、画像データから識別の対象とするオブジェクトの情報を抽出し、記録(保持)する。オブジェクト登録部5のより詳細な構成および実際に行われる処理の内容については後述する。入力オブジェクト識別部6は、画像データおよびオブジェクト登録部5から取得した画像データをもとにオブジェクトの識別を行う。入力オブジェクト識別部6のより詳細な構成および実際に行われる処理の内容については後述する。
外部出力部7は、典型的には、CRTやTFT液晶などのモニタであり、撮像部2および画像記録部4から取得した画像データを表示し、またはオブジェクト登録部5および入力オブジェクト識別部6の結果出力を画像データに重畳して表示する。また、オブジェクト登録部5および入力オブジェクト識別部6の結果出力を電子データとして外部メモリなどに出力する構成を採用してもよい。接続バス8は、オブジェクト識別装置100の構成要素間の制御・データ接続を行うためのバスである。
【0017】
<全体処理>
図2は、オブジェクト識別装置100の全体処理に係るフローチャートの一例を示す図である。図2を参照し、オブジェクト識別装置100が、入力オブジェクトの識別を行う実際の処理について説明する。なお、以下では、入力画像中のオブジェクトが人物の顔である場合について説明するが、この場合に限られるものでない。
はじめに、オブジェクト識別装置100は、画像記録部4から画像データを取得する(S0)。続いて、オブジェクト識別装置100は、取得した画像データに対して人の顔の検出処理を行う(S1)。なお、画像中から人物の顔を検出する方法については、公知の技術を用いることができる。例えば、特許3078166号公報、特開2002−8032号公報で提案されているような技術を用いることができる。
【0018】
続いてオブジェクト識別装置100は、登録画像および入力画像から対象のオブジェクトである人物の顔の検出処理をし、画像中に人の顔が存在すると判断した場合(S2でYESの場合)、入力オブジェクトの識別処理、この例では個人の識別処理を行う(S3)。他方、オブジェクト識別装置100は、画像中に人の顔が存在しないと判断した場合(S2でNOの場合)には処理を終了する。なお、入力オブジェクトの識別処理の具体的な内容については後述する。
続いて、オブジェクト識別装置100は、入力オブジェクトの識別処理の結果から、登録済みの人物に該当する顔があるかを判定する(S4)。このとき、オブジェクト識別装置100は、S1で検出した顔と同一人物が、登録済みの人物の中にあると判断した場合(S4でYESの場合)、続いてS7の処理の処理を行う。他方、オブジェクト識別装置100は、検出した顔が登録済み人物の誰とも一致しないと判断した場合(S4でNOの場合)には、その人物を登録するかを判定する(S5)。
【0019】
判定の基準については、予め設定されている場合もあるが、例えばユーザが外部インターフェースやGUIなどを通じて、その場で登録するかどうか決定するようにしてもよい。このとき、オブジェクト識別装置100は、登録すると判断した場合(S5でYESの場合)、後述するオブジェクト(人物の顔など)の登録処理を行う(S6)。他方、オブジェクト識別装置100は、登録を行わないと判断した場合(S5でNOの場合)、そのまま処理を続行する。
続いて、オブジェクト識別装置100は、S4で該当オブジェクトがある場合、S6のオブジェクトの登録処理後、或いはS5で登録を行わない場合、検出した全てのオブジェクトについて処理が終わったかどうかを判定する(S7)。このとき、オブジェクト識別装置100は、未処理のオブジェクトがあると判断した場合(S7でNOの場合)、S3の処理を行う。他方、オブジェクト識別装置100は、検出された全てのオブジェクトについて処理が終わったと判断した場合(S7でYESの場合)、一連の入力オブジェクトの識別処理の結果を外部出力部7に出力する(S8)。
以上が、オブジェクト識別装置100の全体処理の説明である。
【0020】
<オブジェクト登録部>
次に、オブジェクトの登録処理について説明する。図3は、オブジェクト登録部5の構成の一例を示す図である。図3に示すように、オブジェクト登録部5は、登録オブジェクト辞書データ生成部21、登録オブジェクト辞書データ保持部22、及び登録オブジェクト辞書データ選択部23を有する。
登録オブジェクト辞書データ生成部21は、画像記録部4から取得した画像データから、オブジェクトの個体を識別するために必要な登録オブジェクトの辞書データ(以下では、辞書データと適宜称する。)を生成する。例えば、非特許文献1に示されるようなintra-classおよびextra-classの2クラスの識別問題を判別する場合、典型的には、人物の顔画像を辞書データとすればよい。また、顔の検出処理によって検出された人物の顔画像データを、大きさや向き(面内回転方向)などを正規化し、登録オブジェクト辞書データ保持部22に格納するようにしてもよい。
【0021】
また、画像データそのものではなく、識別のときに必要なデータのみを保持するようにすることによって、辞書データ量を削減することもできる。また、当該オブジェクトの部分領域のベクトル相関をとって識別演算を行う場合、予めその部分領域のみを切り出しておくとよい。
以上のように、登録オブジェクト辞書データ生成部21は、必要な情報を画像から適宜抽出し、後述する所定の変換を行った後、オブジェクトの識別を行うための特徴ベクトルとし、登録オブジェクト辞書データ保持部22に格納する。登録オブジェクト辞書データ生成部21で行われる具体的な処理の内容については後述する。
登録オブジェクト辞書データ選択部23は、入力オブジェクト識別部6の要求に応じて、登録オブジェクト辞書データ保持部22から必要な登録オブジェクトの辞書データを読み出し、入力オブジェクト識別部6に登録オブジェクトの辞書データを転送する。
【0022】
<登録オブジェクト辞書データ生成部>
図4は、登録オブジェクト辞書データ生成部21の構成の一例を示す図である。図4に示すように、登録オブジェクト辞書データ生成部21は、部分特徴抽出部30、特徴ベクトル変換部33、及び特徴ベクトル変換用データ保持部34を有する。
部分特徴抽出部30は、対象となるオブジェクトを含んだ画像から特徴ベクトルを抽出する処理を行う。より具体的には、部分特徴抽出部30は、部分領域設定部31および特徴ベクトル抽出部32を含んで構成される。
【0023】
部分領域設定部31は、画像データに対して、特徴ベクトル抽出部32が特徴ベクトルを抽出する位置と範囲とを設定する。部分領域の位置および範囲については、機械学習の方法を用いて予め決めておくことができる。
例えば、部分領域の候補を複数設定しておいて、上記複数の候補から、AdaBoostを用いて選択するようにしてもよい。また、後述するように、上記部分領域の組み合わせを多数用意しておいて、その組み合わせを1つの候補として、AdaBoostで選択するようにしてもよい。実際にAdaBoostを適用して、部分領域やその組み合わせを決める方法については後述する。
また、部分領域の数については、処理時間などに応じて予め所定の数を決めておくとよい。また、予め用意した学習用サンプルに対して、十分な識別性能を得られる数を計測して決めるなどとしてもよい。
【0024】
特徴ベクトル抽出部32は、登録用のオブジェクトのデータから特徴ベクトルを抽出する。対象のオブジェクトが画像中の人物の顔である場合、特徴ベクトル抽出部32は、典型的には、顔を含む画像から識別に必要なデータを取り出す処理を行う。より具体的には、特徴ベクトル抽出部32は、識別に必要なデータとして、部分領域設定部31によって設定された部分領域から、その輝度値を特徴ベクトルの1つとして抽出する。
なお、特徴ベクトル抽出部32は、輝度値の特徴ベクトル以外に、オブジェクトの部分領域の位置に対して不変な特徴量もしくは位置の変動に頑健な特徴量、例えば輝度の頻度分布などを特徴ベクトルとして抽出してもよい。
【0025】
また、部分領域の位置の変動に不変な特徴量もしくは頑健な特徴量として、オブジェクトが含まれる画像をフーリエ変換した位相情報を特徴ベクトルとすることも考えられる。また、上記のような位置の変動に対してロバストな特徴の他に、画像のエッジ情報を抽出するようなフィルタ演算結果を特徴ベクトルとして抽出してもよい。例えば、ゾーベルフィルタ、ガボアフィルタなど代表的な空間フィルタ演算を課した結果を特徴ベクトルとして抽出するとよい。
さらに、上記のような空間フィルタによるエッジ情報の頻度分布をとり、それを特徴ベクトルとすることもできる。頻度分布は、位置の変動に対して比較的頑健であり、エッジ情報に由来する特徴ベクトルを位置ずれに対して頑健にする効果がある。特徴ベクトル抽出部32で行われる具体的な処理の内容については後述する。
【0026】
特徴ベクトル変換部33は、特徴ベクトル抽出部32によって抽出された特徴ベクトルに所定の変換を施す。特徴ベクトルの変換では、例えば、主成分分析(PCA)による次元圧縮、独立成分分析(ICA)による次元圧縮などが行われる。また、局所性保存射影(LPP)、局所フィッシャー判別分析(LFDA)などによる次元圧縮が行われてもよい。
特徴ベクトルの変換方法にPCAなどを用いた場合、その基底数(特徴ベクトルの次元削減数)、どの基底を用いるかなどのパラメータが存在する。基底数の代わりに、基底ベクトルに対応する固有値の和、即ち累積寄与率を指標としてもよい。また、これらのパラメータについては、部分領域ごとに異なったものにすることもできる。実際にどのようなパラメータを設定するかは、予め機械学習によって、精度と処理時間とを調整することによって決めることができる。
特徴ベクトル変換用データ保持部34は、特徴ベクトル変換部33が特徴ベクトルの変換を行う際に必要なデータ、変換パラメータ等の設定情報を保持している。ここで、特徴ベクトルの変換に必要なデータおよび変換パラメータとは、上述のような、基底数(次元削減数)などの設定情報、予め機械学習によって求めておいた基底ベクトルの数値データなどである。
【0027】
図5は、特徴ベクトル抽出部32および特徴ベクトル変換部33で行われる処理(特徴ベクトル抽出変換処理)に係るフローチャートの一例を示す図である。以下、図5を用いて説明する。
はじめに、特徴ベクトル抽出部32は、部分領域設定部31より部分領域の設定情報を取得する(S10)。続いて、特徴ベクトル抽出部32は、画像記録部4から対象のオブジェクトの画像データを取得する(S11)。続いて、特徴ベクトル抽出部32は、取得した画像データから、S10で取得した部分領域の設定情報をもとに、エッジ情報に関する特徴ベクトルを取得する(S12)。続いて、特徴ベクトル抽出部32は、エッジ情報に関する頻度分布を計測し、特徴ベクトルとして取得する(S13)。
【0028】
ここで、エッジ情報とその頻度分布とに関する特徴ベクトルについては、複数種類のものを抽出するとよい。上述のように、特徴ベクトル抽出部32は、画像に対して複数のフィルタ演算した結果から取得した特徴ベクトルと、その頻度分布を特徴ベクトルとしたものとを取得する。典型的には、特徴ベクトル抽出部32は、LBP(Local Binary Pattern)変換、微分エッジ検出などを行う。
さらに、特徴ベクトル抽出部32は、LBP変換後の各要素での値の頻度分布(ヒストグラム)を算出し、特徴ベクトルとして取得する。また、輝度勾配画像のヒストグラムをとってもよい。これは、HOG(Histogram of Oriented Gradient)と等価になる。
このように、エッジ情報、その頻度分布など、性質の異なる複数の特徴量を取得するとよい。後述するように、大きく性質の異なる特徴量を組み合わせて識別に用いることで、登録オブジェクトと入力オブジェクトとの間に変動がある場合にも、頑健に対応することが可能になる。
【0029】
続いて、特徴ベクトル変換部33は、S12およびS13で取得された特徴ベクトルに対して、特徴ベクトル変換用データ保持部34から取得した設定情報に従って、所定の変換を行う(S14)。上述のように、典型的には、特徴ベクトル変換部33は、PCAによる次元削減、ICAによる次元削減などを特徴ベクトルに対して行う。この際、取得した特徴ベクトルに対して、所定の統計値、典型的には、平均ベクトル、要素の最大値などを求めておいてもよい。また、部分特徴として、画像から切り出した位置の情報を記録するようにしてもよい。
また、後述するように、登録オブジェクト(登録パターン)と入力オブジェクト(入力パターン)との間で対応する部分特徴の比較・評価を行うために、対応関係を示す識別子を記録するようにしてもよい。これらの情報は、登録オブジェクト辞書データ生成部21の出力として特徴ベクトルとともに出力するようにするとよい。
以上が、特徴ベクトル抽出部32および特徴ベクトル変換部33で行われる処理の説明である。
登録オブジェクト辞書データ生成部21は、以上のような処理を行って、部分領域を設定し、特徴ベクトルを抽出した後に、特徴ベクトルを変換したデータを登録オブジェクト辞書データ生成部21の出力とし、登録オブジェクト辞書データ保持部22に格納する。
【0030】
<入力オブジェクト識別部>
次に、入力オブジェクトの識別処理について説明する。図6は、入力オブジェクト識別部6の構成の一例を示す図である。図6に示すように、入力オブジェクト識別部6は、入力オブジェクト識別用データ生成部41、登録オブジェクト辞書データ取得部42、及び入力オブジェクト識別演算部43を有する。
入力オブジェクト識別用データ生成部41は、画像記録部4から取得した画像データから、対象のオブジェクトの識別に必要な情報の抽出を行う。登録オブジェクト辞書データ取得部42は、オブジェクト登録部5より入力オブジェクトの識別に必要な辞書データを取得する。
入力オブジェクト識別演算部43は、入力オブジェクト識別用データ生成部41から取得した識別用データと、登録オブジェクト辞書データ取得部42から得た辞書データとから、入力オブジェクトの識別処理を行う。ここで行われる識別処理については後述する。
【0031】
図7は、入力オブジェクト識別部6で行われる入力オブジェクトの識別処理に係るフローチャートの一例を示す図である。
まず、登録オブジェクト辞書データ取得部42は、オブジェクト登録部5から登録オブジェクトの辞書データを取得する(S20)。続いて、入力オブジェクト識別用データ生成部41は、画像記録部4より入力オブジェクトの画像データを取得する(S21)。続いて、入力オブジェクト識別用データ生成部41は、入力オブジェクト識別用データ生成処理を行う(S22)。なお、入力オブジェクト識別用データ生成部41の構成については後述する。
続いて、入力オブジェクト識別演算部43は、入力オブジェクト識別演算処理を行う(S23)。入力オブジェクト識別演算処理の出力として、登録済みデータ(辞書データ)との一致をバイナリ(0or1)で出力する場合と、正規化した出力値を尤度(0〜1の実数値)として出力する場合とが考えられる。さらに、登録オブジェクト(登録者)が複数(複数人)ある場合には、それぞれの登録オブジェクト(登録者)に対して、尤度を出力してもよいが、最もよく一致した登録オブジェクトに対する結果だけを出力してもよい。
また、登録オブジェクトに対する尤度ではなく、登録オブジェクトが属するクラスに対しての尤度を出力してもよい。即ち、人物の場合には、個々の登録顔画像への結果ではなく、人物のID(名前)に対する尤度を出力するようにする。なお、入力オブジェクト識別演算処理の具体的な内容については後述する。
以上が、入力オブジェクト識別部6における処理の説明である。
【0032】
<入力オブジェクト識別用データ生成部>
図8は、入力オブジェクト識別用データ生成部41の構成の一例を示す図である。図8に示すように、入力オブジェクト識別用データ生成部41は、部分特徴抽出部50、特徴ベクトル変換部53、及び特徴ベクトル変換用データ保持部54を有する。部分特徴抽出部50は、部分領域設定部51、特徴ベクトル抽出部52を含んで構成される。入力オブジェクト識別用データ生成部41の構成およびそこで行われる処理は、登録オブジェクト辞書データ生成部21での構成および処理と同様であるので、その詳細は省略する。
【0033】
<入力オブジェクト識別演算処理>
次に、入力オブジェクト識別演算処理について説明する。ここでは、一例として、入力オブジェクトの識別を、登録オブジェクトと入力オブジェクトとで対応する部分特徴間の類似性をもとに判定する場合について説明する。
図9は、入力オブジェクト識別演算部43の構成の一例を示す図である。入力オブジェクト識別演算部43は、入力オブジェクト識別用データ取得部61、登録オブジェクト辞書データ取得部62、オブジェクト間変動量検出部63、部分特徴合成部64、合成部分特徴評価部65、評価結果保持部66、及び評価結果統合部67を有する。
【0034】
図10は、入力オブジェクト識別演算処理に係るフローチャートの一例を示す図である。以下、図を10用いて説明する。
はじめに、入力オブジェクト識別用データ取得部61は、入力オブジェクト識別用データ生成部41から入力オブジェクトの識別用データを取得する(S30)。続いて、登録オブジェクト辞書データ取得部62は、登録オブジェクト辞書データ取得部42から登録オブジェクトの辞書データを取得する(S31)。続いて、オブジェクト間変動量検出部63は、S30およびS31で取得されたデータをもとに、入力オブジェクトおよび登録オブジェクト間の変動量を検出する(S32)。
ここで、検出する具体的な変動量としては、オブジェクト間変動量検出部63は、対象のオブジェクトが人物の顔である場合、顔に関する属性を検出し、その変動量を算出する。また、具体的な属性検出器の検出としては、顔の表情を検出する表情検出が挙げられる。登録オブジェクトと入力オブジェクトとでそれぞれ表情検出を行い、その程度の差を求めることによって変動量を算出することができる。
【0035】
また、人物の表情検出については、公知の技術を用いることができる。例えば、表情を喜怒哀楽の4つにカテゴリ分けしておいて、4つのクラス分類器と、それぞれの表情について、その程度を出力できるように検出器を学習すればよい。そして、登録オブジェクトと入力オブジェクトとで表情が異なる場合、変動量を大きくし、表情が同じでも、その程度の差を変動量とすることによって、オブジェクト間の変動量とすることができる。
この表情の検出器と実際の変動量との出力の関係は、何らかのモデルで定式化してもよいが、予めルックアップテーブル(LUT)に保持しておいてもよい。LUTについては、学習データを実際に識別し、後段の認識処理が最大の性能を発揮するように調整することによって、事前に決定することができる。
【0036】
また、表情以外にも、人物の年齢、顔の特徴点の位置、即ち目口などの顔器官の位置、顔の向き、顔の影のつき方(陰影パターン)、照明条件等についても、それぞれ事前にこれらを検出する検出器を学習しておくことによって、同様に変動量を求めることができる。他にも、肌質、化粧、眼鏡の有無、マスクの有無などを属性として用いることができる。これらを検出する方法として公知の技術を用いることができる。
例えば、サポートベクターマシン(SVM)を使った検出器を作る場合、検出対象となる実際のデータとそれ以外のデータ、その状態を記録したタグをもとにSVMの学習を行うことによって、所望の検出器を作ることができる。
【0037】
また、変動量の対象を、撮影条件を決めるカメラパラメータとすることもできる。オブジェクト識別装置100(例えば撮像装置)が有する、自動露出パラメータ(AEパラメータ)、合焦(自動焦点)の状態(AFパラメータ)を単純に登録時と入力時との設定値の差をとって変動量とすることができる。
また、変動量の測定に、撮影時の照明条件を用いてもよい。この場合、照明条件の推定にカメラパラメータを用いることができる。例えば、撮像制御部3から制御用のAE、AFに関するパラメータを取得することによって、照明条件を精度よく推定することが可能になる。ここで、カメラパラメータの具体例として、露出条件、ホワイトバランス、ピント(合焦条件)、オブジェクトの大きさなどが挙げられる。例えば、露出条件およびホワイトバランスと、肌色成分領域に対応する色成分の対応表を予め作成し、ルックアップテーブルとして保持しておくことで、撮影条件に影響されないオブジェクトの色属性を推定することができるようになる。
【0038】
また、同様に変動量の測定にオブジェクトの大きさを用いることが可能である。被写体であるオブジェクトまでの距離をAFなどの距離測定部を用いることによって測定し、オブジェクトの大きさを推定することができる。より詳細には、以下の式(1)に従ってオブジェクトの大きさを推定することができる。
s = ( f/d − f )・S (1)
ここで、sはオブジェクトの画像上での大きさ(ピクセル数)であり、fは焦点距離であり、dは装置からオブジェクトまでの距離であり、Sはオブジェクトの実際の大きさである。ただし、(d>f)であるとする。このように、撮影条件に影響されないオブジェクトの大きさを属性として推定することが可能になる。
【0039】
また、画像から取得したオブジェクトのテクスチャ情報を属性としてもよい。テクスチャ分析としては公知の技術を用いることができる。分析結果であるテクスチャ情報(例えばエッジの量や輝度パターンの分類結果)の差を、変動量として定義し、検出することができる。
また、顔の器官の位置を変動量の測定に用いてもよい。より具体的には、目、口、鼻など構成要素の端点を検出して用いる。端点を検出するアルゴリズムとしては、例えば、特許3078166号公報に記載の畳み込み神経回路網を用いた方法などを用いることができる。端点としては、左右の目、口の両端点、鼻、など個人の特徴を現すと考えられる部位を予め選択しておく。顔器官の端点の位置関係がその属性として検出される。
また、他の属性として、人物の年齢、性別、表情などの属性が推定されてもよい。これらの属性推定には公知の技術を用いることができる。例えば、特開2003−242486号公報のような方法を用いることで、人物の属性を推定することができる。学習データを変えることによって、上記の方法で、人物だけでなく、一般の物体についても検出することができる。これによって、人物の顔にある顔器官以外の要素、例えば、メガネ、マスク、手など、オクリュージョンとなる物体を検出することもできる。上記のようなオクリュージョンがある人物の顔として、その属性に含めて考えることができる。
【0040】
以上のように、オブジェクトの様々な属性を検出し、登録オブジェクトおよび入力オブジェクト間の変動量を算出可能であるが、ここに示したのは、あくまでその一例である。即ち、本実施形態は、登録オブジェクトおよび入力オブジェクト間の変動量を何らかの方法で検出し、その変動量を、後述する識別に用いる合成特徴量の合成に反映させるものである。したがって、変動量の検出に用いる属性が、上記以外のものであってもよい。
このように、登録オブジェクトおよび入力オブジェクト間の変動量を求め、その値を、後述する部分特徴量合成の際のパラメータとして用いる。典型的には、変動が大きいときは、識別能力はやや劣るがロバストな特徴量の割合を高くし、変動が小さいときは、ロバスト性は低いがピークの識別性能が高い特徴量の割合を高くするなどの制御が可能になる。この合成方法については後述する。
また、オブジェクト間の変動量を用いて、特徴ベクトルの変換パラメータを変えるように構成してもよい。例えば、照明変動を検出している場合、照明変動量が大きいとされたときは、照明変動にロバストとされる次元圧縮方法(例えばLFDA)を用いるとよい。照明変動量が小さい場合は、照明変動以外の変動に比較的頑健な次元圧縮方法(例えばPCA、ICA)を用いる。このようにすることで、より変動量に適切な対処が可能になり、識別性能の向上が期待される。
【0041】
次に、部分特徴合成部64は、S30、S31、およびS32で取得された入力オブジェクトの識別用データと登録オブジェクトの辞書データと、両者のオブジェクト間の変動量とから、部分特徴の合成処理を行い、合成部分特徴量を生成する(S33)。ここで、合成部分特徴量とは、同一の部分領域において、複数の特徴量から構成される部分特徴量のことである。
合成部分特徴量は、登録オブジェクトおよび入力オブジェクトの部分特徴量をそれぞれ組み合わせ、登録オブジェクトと入力オブジェクトとで対応が取れるように生成される。典型的には、部分特徴合成部64は、空間フィルタに由来するエッジ情報を主とする特徴量と、それらの頻度分布に由来する特徴ベクトルとを連結し、1つの特徴ベクトルとする。部分特徴合成処理の詳細については後述する。
【0042】
続いて、合成部分特徴評価部65は、S33で生成された合成部分特徴量の評価を行う(S34)。合成部分特徴評価部65は、複数の合成部分特徴量について、登録オブジェクトと入力オブジェクトとの類似性を表す数値を算出し、それらを統合した1つの値として出力する。合成部分特徴評価処理の詳細については後述する。続いて、評価結果保持部66は、S34で取得された合成部分特徴量の評価結果を保持する(S35)。
続いて、登録オブジェクト辞書データ取得部62は、全ての登録オブジェクトの辞書データについて、識別演算が終わったかどうかを判定する(S36)。このとき、登録オブジェクト辞書データ取得部62は、まだ辞書データがあると判定した場合(S36でNOの場合)には、S31の処理を行う。他方、登録オブジェクト辞書データ取得部62が全ての辞書データについて識別演算が終わったと判定した場合(S36でYESの場合)、評価結果統合部67が評価結果統合処理を行う(S37)。
評価結果統合処理としては、例えば、最も単純には、合成部分特徴評価処理の出力値が最も大きかった登録オブジェクトの辞書データを、識別結果として出力するような処理が考えられる。また、一致度の高かった辞書データ(上位登録オブジェクト辞書データ)の結果をリストとして出力してもよい。
以上が、入力オブジェクト識別演算処理の説明である。
【0043】
<部分特徴合成処理>
部分特徴合成処理について説明する。図11は、部分特徴合成部64の構成の一例を示す図である。図11に示すように、部分特徴合成部64は、特徴ベクトル取得部71、オブジェクト間変動量取得部72、特徴ベクトル結合部73、及び部分特徴合成パラメータ保持部74を有する。
特徴ベクトル取得部71は、登録パターンの辞書データと入力パターンの識別用データとから特徴ベクトルおよびその付帯情報を取得し、一時的に保持する。ここで付帯情報とは、例えば、特徴ベクトルとして画像から切り出された際の位置情報、PCAなど切り出しベクトルに対して行われた変換のパラメータ、若しくはそれらを文字列として表現した識別子などである。
【0044】
オブジェクト間変動量取得部72は、オブジェクト間変動量検出部63で検出されたオブジェクト間の変動量を取得し、一時的に保持する。特徴ベクトル結合部73は、部分特徴合成パラメータ保持部74から取得したパラメータおよびオブジェクト間変動量取得部72から取得したオブジェクト間の変動量を参照し、特徴ベクトル取得部71に保持されている特徴ベクトルの結合を行う。この結合処理については後述する。
部分特徴合成パラメータ保持部74は、特徴ベクトル結合部73で参照される合成部分特徴を生成するためのパラメータを保持する。ここでのパラメータとは、複数の特徴ベクトルを結合・合成するための設定情報、対象となる特徴ベクトルの切り出し位置の座標情報、前述のような特徴ベクトルの識別子などである。このパラメータについては、前述のように予め用意した学習データに対して、機械学習の方法を用いて最適な値を決めておくことで決定できる。
【0045】
図12は、部分特徴合成部64で行われる部分特徴合成処理に係るフローチャートの一例を示す図である。以下、図12を用いて処理の内容を説明する。
まず、特徴ベクトル取得部71は、登録オブジェクトの辞書データまたは入力オブジェクトの識別用データから部分特徴ベクトルを取得する(S40)。続いて、オブジェクト間変動量取得部72は、オブジェクト間の変動量を取得する(S41)。続いて、特徴ベクトル結合部73は、部分特徴合成パラメータ保持部74からパラメータを取得する(S42)。
続いて、特徴ベクトル結合部73は、取得したオブジェクト間の変動量と、部分特徴量合成パラメータとを参照し、特徴ベクトルの合成方法(割合など)を決定する(S43)。
【0046】
ここで、具体的に決定される項目は、1つの部分領域に対して複数ある特徴ベクトルを、オブジェクト間の変動量に応じて連結する際の割合である。前述のように、予め取得した特徴ベクトルの性質とオブジェクト間の変動量との兼ね合いで、識別に適切な特徴ベクトルの割合が決まる。
例えば、LBP特徴のようなエッジ情報に比較的近い特徴量では、画像に近い情報が直接比較されることになるため、個体を識別するための記述力が高く、部分領域の一致度が高い場合、よい識別性能を示すことが知られている。反面、オブジェクト間の部分領域の位置ずれに敏感であり、位置が正しく合っていない場合、精度の劣化が大きい。そのため、表情変動、照明変動などが小さい場合は、合成の割合を大きくした方がよいが、変動が大きく、オブジェクト間の部分領域の位置ずれも大きくなると予想される場合は、その割合を相対的に小さくした方がよいと考えられる。
【0047】
一方、HOG特徴のように、エッジ情報の頻度分布に由来する特徴量では、分布がみられているため、位置ずれに比較的ロバストであるが、個体を識別するための記述力がエッジ情報に由来する特徴量より劣る傾向がある。そのため、エッジ情報に由来する特徴量とは逆に、オブジェクト間の変動が小さく、位置ずれも小さいと期待される場合は、その割合を小さくした方がよい。他方、オブジェクト間の変動が大きく、位置ずれが大きいと予想される場合は、エッジ情報に由来する特徴量よりもその割合を大きくした方がよいと考えられる。
実際の特徴ベクトルの合成比率(合成割合)は、学習によって決めることができる。よって、幾つかのオブジェクト間の変動量と仮に決めた合成比率と認識性能との関係を、事前に学習データで観測し、最も良好な性能を示す合成比率を定め、LUTとして部分特徴合成パラメータ保持部74に格納しておくとよい。
【0048】
続いて、特徴ベクトル結合部73は、S40で取得したエッジ情報に由来する特徴ベクトルとエッジ情報の頻度分布に由来する特徴ベクトルとをS42およびS43で取得した合成方法(連結方法)およびパラメータを用いて連結処理を行う(S44)。連結処理としては、複数のベクトルを1つのベクトルとして結合すればよい。
この際、合成比率は、合成前の各特徴ベクトルの次元によって測られる。例えば、特徴ベクトル結合部73は、LBP特徴を50%、LBPヒストグラム特徴を50%で結合する場合は、両者を同じ次元数で結合する。また、特徴ベクトル結合部73は、エッジ情報に由来する特徴量については、その部分領域の大きさを変えることによって次元数を調節(コントロール)する。また、特徴ベクトル結合部73は、エッジ情報の頻度分布に由来する特徴量については、頻度を測る範囲(ビンの大きさ)を変えることによって、次元を調節する。
また、特徴ベクトルを次元圧縮して用いる場合、次元圧縮後の次元を調節することによって、合成比率に応じた特徴ベクトルの連結を行うこともできる。このようにすることで、エッジ情報に由来する特徴量でもヒストグラム系の特徴量でも、部分領域の大きさや頻度範囲を変えずに、特徴ベクトルの次元を調節することができる。
以上が、部分特徴合成処理の説明である。
【0049】
<合成部分特徴評価処理>
次に、合成部分特徴評価処理の内容について説明する。図13は、合成部分特徴評価部65の構成の一例を示す図である。図13に示すように、合成部分特徴評価部65は、合成部分特徴ベクトル取得部81、合成部分特徴評価パラメータ保持部82、及び合成部分特徴評価値算出部83を有する。
合成部分特徴ベクトル取得部81は、部分特徴合成部64から合成部分特徴(合成部分特徴ベクトル)を取得する。合成部分特徴評価パラメータ保持部82は、合成部分特徴評価値算出部83で用いるパラメータ群を保持している。パラメータの詳細については後述する。合成部分特徴評価値算出部83は、合成部分特徴ベクトル取得部81で取得された登録オブジェクトの合成部分特徴ベクトル(登録合成部分特徴ベクトル)および入力オブジェクトの合成部分特徴ベクトル(入力合成部分特徴ベクトル)の評価値を算出する。合成部分特徴評価値算出部83で行われる処理の内容については後述する。
合成部分特徴は、複数あってもよいので、合成部分特徴評価処理では、複数ある合成部分特徴の評価値を1つの値に統合する処理も行われる。例えば、合成部分特徴評価部65は、全ての合成部分特徴の評価値の平均、評価値の高いものの所定の個数での平均などを最終的な評価値として出力する。
【0050】
図14は、合成部分特徴評価部65で行われる合成部分特徴評価処理に係るフローチャートの一例を示す図である。以下、図14を用いて処理の内容を説明する。
はじめに、合成部分特徴ベクトル取得部81は、部分特徴合成部64から合成部分特徴ベクトルを取得する(S50)。なお、合成部分特徴ベクトルには、登録パターンから生成されたものと、入力パターンから生成されたものとがあるが、ここでは、登録と入力とで対応する合成部分特徴をそれぞれ取得する。
続いて、合成部分特徴評価値算出部83は、合成部分特徴評価パラメータ保持部82から評価用のパラメータを取得する(S51)。評価用のパラメータとしては、後段の処理で使われるパラメータであり、例えば、閾値などの数値データ、登録パターンの部分特徴と、対応する入力パターンの部分特徴とを評価するための評価関数などがある。なお、これらパラメータは、部分特徴ごとに設定されていてもよいし、同一の合成部分特徴に属する部分特徴で共通のものであってもよい。
【0051】
続いて、合成部分特徴評価値算出部83は、S50で取得された部分特徴ベクトル及びS51で取得した評価用のパラメータを用いて合成部分特徴の評価値を算出する(S52)。評価値の算出方法については後述する。続いて、合成部分特徴ベクトル取得部81は、全ての合成部分特徴について評価を行ったかを判定する(S53)。このとき、合成部分特徴ベクトル取得部81は、評価を行っていないものがあると判断した場合(S53でNOの場合)、S50の処理を行う。他方、合成部分特徴ベクトル取得部81は、全ての合成部分特徴の評価を終えたと判断した場合(S53でYESの場合)、合成部分特徴評価部65の処理が終了する。
以上が、合成部分特徴評価処理の説明である。
【0052】
<合成部分特徴評価値算出処理>
次に、合成部分特徴評価値算出処理について説明する。図15は、合成部分特徴評価値算出部83で行われる合成部分特徴評価値算出処理に係るフローチャートの一例を示す図である。以下、図15を用いて処理の内容を説明する。
まず、合成部分特徴評価値算出部83は、合成部分特徴ベクトルを取得する(S60)。続いて、合成部分特徴評価値算出部83は、取得した特徴ベクトルから登録オブジェクトおよび入力オブジェクト間の距離を求める。
ここで、距離は、単純なユークリッド距離でもよいし、ベクトル間の内積をとってベクトルの大きさで割ったもの、例えばcosine類似度であってもよい。
【0053】
また、登録と入力との2つのベクトルを、SVM(サポートベクターマシン)に投入するようにしてもよい。このSVMについては、予め、同じ人物から取得した2つのベクトルを正例、異なる人物から取得した2つのベクトルを負例として学習することにより、構築することができる。その際、2つのベクトルを単純に連結してもよいし、2つのベクトルの差分をとってもよい。一般に、差分の方が投入ベクトルの次元が小さくなって学習時間が少なくて済む。学習したSVMのパラメータ等については、合成部分特徴評価パラメータ保持部82に格納しておく。
続いて、合成部分特徴評価値算出部83は、計算した距離をもとに評価値を算出する(S62)。評価値としては、典型的にはS61で取得した距離をそのまま用いてもよいが、実数ではなく「0」か「1」の2値で出力してもよい。その場合、合成部分特徴評価値算出部83は、S61で取得した登録オブジェクトおよび入力オブジェクト間の距離を、閾値より大きいか否かで判定し、閾値を上回った場合は「1」、下回った場合は「0」にする。
以上が、合成部分特徴評価値算出処理の説明である。
【0054】
<部分特徴および合成部分特徴の学習方法>
次に、部分特徴を組み合わせて合成部分特徴を生成するためのパラメータの学習に、AdaBoostを用いた場合の処理について説明する。なお、この処理は、予めオフラインで行うことができるので、必ずしもオブジェクト識別装置100内で行う必要はない。また、ここで説明する処理には、公知の技術を適用可能であり、必要に応じてその説明を省略する。
図16は、部分領域の学習処理に係るフローチャートの一例を示す図である。
【0055】
まず、オブジェクト識別装置100は、学習データを取得する(S70)。人物の顔を扱う場合は、学習データとして、個人の識別子を表すラベルのついた顔を含む画像を多数用意する。この際、1人あたりの画像数が十分用意されていることが望ましい。また、照明変動、表情変動に頑健な部分特徴および特徴ベクトルの合成方法を学習するためには、学習データに上記変動を十分含んだサンプルを用意することが重要である。
ラベルつきの顔画像から、個人の顔の変動による差異を表す特徴クラス(intra-class)に属するデータと、他人間の顔の変動による差異を表す特徴クラス(extra-class)に属するデータとの2種類を生成することができる。即ち、同一クラスのラベルが付いた顔画像同士からintra-classのデータ、異なるクラスのラベルが付いた顔画像同士からextra-classのデータを作ることができる。
上記のように、学習データの1サンプルは、必ず画像(またはオブジェクト)のペアから生成される。このペアを作る際に、ペア画像間の変動量を検出しておくとよい。
【0056】
続いて、オブジェクト識別装置100は、弱仮説の選択処理を行う(S71)。ここで、弱仮説は、本実施形態における部分特徴のパラメータに対応付けることができる。即ち、空間的な位置、大きさ、特徴ベクトルの種類(エッジ系、ヒストグラム系など)、次元削減数(PCA、LPP、ICAなど)などの部分特徴に関するパラメータの異なる部分特徴を予め多数用意しておく。オブジェクト識別装置100は、それらパラメータの異なる部分特徴の組み合わせ、及び上記特徴ベクトルを合成する際の合成比率を変えた合成部分特徴ベクトルを弱仮説に対応付ける。
これら用意した弱仮説を学習で選択するにあたって、extra-classとintra-classとの2クラスの識別を行う2クラス識別器の学習として、AdaBoostを使って学習することができる。即ち、オブジェクト識別装置100は、部分特徴(場所、大きさ等)のパラメータ、及びそれらを合成する際の合成比率が学習データに対して最適なものを選択する。
【0057】
性能評価を行うための具体的な手順としては、合成部分特徴評価部65の説明で述べたように、実際の識別処理の例にならって学習データの評価を行うとよい。この際、学習データを予め検出しておいた画像間の変動量に応じて分割しておくと、その変動量に最適な弱仮説、即ち特徴量のパラメータや合成比率を求めていることになる。そして、オブジェクト識別装置100は、評価を行った後、同一ラベルの人物間のデータと異なるラベルの人物間のデータとで、それぞれ正しい識別結果になっているかを判定し、学習データの重み付き誤り率を求める。
オブジェクト識別装置100は、最も性能のよい弱仮説を選択した場合、その弱仮説の学習データに関する識別結果をもとに学習データの重み付けを更新する(S72)。続いて、オブジェクト識別装置100は、弱仮説数が所定数に達しているか判定する(S73)。このとき、オブジェクト識別装置100は、所定数に達していると判断した場合(S73でYESの場合)、学習処理を終了する。他方、オブジェクト識別装置100は、所定数に達していないと判断した場合(S73でNOの場合)、新たな弱仮説の選択を行う。
【0058】
また、複数の部分特徴を学習する際に、遺伝的アルゴリズム(GA)などの最適化手法を適用するようにしてもよい。この場合、オブジェクト識別装置100は、弱仮説を、AdaBoostの手続きに入る前に予め全て用意するのではなく、弱仮説を選択しながら動的に候補を構築していく。即ち、予め一部用意された弱仮説の候補から、性能のよいものを選択しておくようにする。
そして、オブジェクト識別装置100は、その性能のよいもの同士を組み合わせながら、新しい弱仮説の候補を生成し、性能を評価していく。このようにすることで、弱仮説の候補を効率的に絞り込むことができる。以上の構成によれば、学習時間の増加を抑えることができる。
【0059】
また、オブジェクト識別装置100としては、部分特徴(場所、大きさなど)のみを弱仮説にして、AdaBoostで選択し、部分特徴の合成比率を別の枠組みで選択するようにしてもよい。例えば、オブジェクト識別装置100は、AdaBoostでは、様々な画像間の変動量を含むデータで学習し、部分特徴の場所や大きさを決める。次に、オブジェクト識別装置100は、画像間の変動量を固定した学習データで合成比率を変えながら、学習データを評価し、最も好適な合成比率を求める。
このように構成することで、特徴量のパラメータと合成比率との組み合わせの増加で学習時間が膨大になってしまう問題に対処できる。
以上のようにして、部分特徴に関するパラメータとそれらの組み合わせ、及び評価方法に関するパラメータを決定することができる。
以上が、合成部分特徴に関するパラメータを学習する手順の説明である。
【0060】
上述のように、オブジェクト識別装置100は、登録パターンと入力パターンとの変動量を検出し、それぞれに対応する部分特徴を複数種類抽出し、それら部分特徴を変動量に応じて合成する。このように、変動量に応じて適切に合成された特徴を評価することで、登録と入力とのパターン間の変動に頑健で高精度な識別を行うことができる。
換言するならば、オブジェクト識別装置100は、登録オブジェクトおよび入力オブジェクト間の撮影条件などの変動量を検出する。オブジェクト識別装置100は、検出した変動量に応じて、オブジェクト間の変動にやや弱いが絶対的な識別性能が高い特徴量と、変動に強いが識別の絶対性能はやや劣る特徴量とを動的に組み合わせることによって、識別性能を高める。
以上が、第1の実施形態の説明である。
【0061】
<第2の実施形態>
本実施形態は、第1の実施形態の入力オブジェクト識別部6の処理の内容が異なる。より具体的には、第1の実施形態では、部分特徴の合成方法が特徴ベクトルの連結処理であったの対して、第2の実施形態では、複数の部分特徴の共起性を考量して合成する点が異なる。より具体的には、第1の実施形態の合成部分特徴評価部65の処理の内容が異なる。
以下、より詳細に説明する。なお、本実施形態では、第1の実施形態と同一の構成については同一の符号を用いてその説明を適宜省略する。
なお、本実施形態に係わるオブジェクト識別装置100全体のハードウェア構成は、第1の実施形態と同じであるので、説明を省略する。また、第1の実施形態と区別するため、本実施形態では、処理の内容が異なる合成部分特徴評価部65を合成部分特徴評価部165と表記することにする。なお、説明の便宜上、識別する対象となるオブジェクトを画像中の人物の顔としているが、人物の顔以外のオブジェクトにも適用可能である。
【0062】
<合成部分特徴評価部>
図17は、合成部分特徴評価部165の構成の一例を示す図である。合成部分特徴評価部165は、合成部分特徴ベクトル取得部181、合成部分特徴評価パラメータ保持部182、合成部分特徴評価値算出部183、合成部分特徴尤度算出部184、及び部分特徴数量計測部185を有する。第1の実施形態とは、合成部分特徴尤度算出部184および部分特徴数量計測部185が追加されている点が異なる。
合成部分特徴ベクトル取得部181は、部分特徴合成部64から合成部分特徴を取得する。合成部分特徴ベクトル取得部181は、入力ベクトルおよび登録ベクトル間の変動量も共に取得する。合成部分特徴評価パラメータ保持部182は、合成部分特徴尤度算出部184および部分特徴数量計測部185で用いられるパラメータ群を保持している。パラメータの詳細については後述する。
【0063】
合成部分特徴評価値算出部183は、合成部分特徴尤度算出部184による合成部分特徴の尤度と部分特徴数量計測部185の計測結果とを用いて、合成部分特徴の評価値を算出する。合成部分特徴評価値算出部183で行われる処理の内容については後述する。合成部分特徴尤度算出部184は、合成部分特徴の尤度を算出する。合成部分特徴の尤度の算出方法については後述する。
部分特徴数量計測部185は、1つの合成部分特徴に含まれる部分特徴が所定の基準を満たしているかどうかを判定し、前記所定の条件を満たしている部分特徴の数量を計測する。部分特徴数量計測部185で行われる処理の詳細については後述する。
合成部分特徴は、複数であってもよいので、合成部分特徴評価処理では、複数ある合成部分特徴の評価値を1つの値に統合する処理も行われる。例えば、合成部分特徴評価部165は、全ての合成部分特徴の評価値の平均、評価値の高いものの所定の個数での平均などを最終的な評価値として出力する。
【0064】
図18は、合成部分特徴評価部165で行われる合成部分特徴評価処理に係るフローチャートの一例を示す図である。以下、図18を用いて合成部分特徴評価処理の内容を説明する。
はじめに、合成部分特徴ベクトル取得部181は、部分特徴合成部64から合成部分特徴ベクトルを取得する(S80)。なお、合成部分特徴ベクトルには、登録パターンから生成されたものと入力パターンから生成されたものとがあるが、ここでは、登録と入力とで対応する合成部分特徴をそれぞれ取得する。
続いて、合成部分特徴尤度算出部184は、合成部分特徴評価パラメータ保持部182から評価用のパラメータを取得する(S81)。評価用のパラメータは、後段の処理で使われるパラメータであり、例えば、閾値などの数値データ、登録パターンの部分特徴と、対応する入力パターンの部分特徴とを評価するための評価関数などがある。なお、これらのパラメータは、部分特徴ごとに設定されていてもよいし、同一の合成部分特徴に属する部分特徴で共通のものであってもよい。
【0065】
S82において、部分特徴数量計測部185は、合成部分特徴ベクトルに属する部分特徴の評価を行い、所定の条件を満たす部分特徴の数量を計測する。部分特徴数量計測処理の内容については後述する。続いて、合成部分特徴尤度算出部184は、合成部分特徴の尤度を算出する(S83)。合成部分特徴の尤度については、予め機械学習を用いて定めることもできるが、入力パターンと登録パターンとの対応する合成部分特徴に応じて動的に算出することもできる。合成部分特徴の尤度の求め方については後述する。
続いて、合成部分特徴評価値算出部183は、S82で求められた部分特徴の数量およびS83で算出された合成部分特徴の尤度を用いて、合成部分特徴の評価値を算出する(S84)。評価値の算出方法については後述する。
【0066】
続いて、合成部分特徴ベクトル取得部181は、全ての合成部分特徴について評価を行ったかを判定する(S85)。このとき、合成部分特徴ベクトル取得部181は、評価を行っていないものがあると判断した場合(S85でNOの場合)、S80の処理を行う。他方、合成部分特徴ベクトル取得部181は、全ての合成部分特徴の評価を終えたと判断した場合(S85でYESの場合)、合成部分特徴評価部165の処理が終了する。
以上が、合成部分特徴評価処理の説明である。
【0067】
<部分特徴数量計測処理>
次に、部分特徴数量計測処理の内容について説明する。図19は、部分特徴数量計測処理に係るフローチャートの一例を示す図である。以下、図19を用いて処理の内容を説明する。
まず、部分特徴数量計測部185は、部分特徴の評価を行う(S90)。ここでは、評価の一例として、登録パターンの部分特徴と対応する入力パターンの部分特徴との類似度を用いる方法を説明する。ここで、類似度θについては、例えば部分特徴ベクトル間の内積によって求めることができる。より具体的には、部分特徴数量計測部185は、以下の式(2)を用いて類似度θを計算する。
【0068】
【数1】

【0069】
ここで、u(h)およびv(h)は、それぞれ特徴量hの登録パターンおよび入力パターンから生成された部分特徴ベクトルを表わす。lは、特徴ベクトルの次元数、Nは特徴量の種類を表し、whは特徴量hの重みを表す。上記は、特徴ベクトル間の内積をとったものであるが、それ以外に、例えば特徴ベクトル間の正規化相関を類似度として用いてもよいし、特徴ベクトル間の距離の逆数を類似度として用いてもよい。
また、特徴量hの重み付けwhについては、登録ベクトルおよび入力ベクトル間の変動量によって決めることができる。第1の実施形態で説明したように、変動量が小さい場合は、エッジ情報に由来する特徴量(LBP特徴、Gabor特徴など)の重みが大きくなるようにするとよい。また、変動量が大きい場合は、ヒストグラム系の特徴量(HOG特徴、SIFT特徴など)の重みが大きくなるようにするとよい。この重み付けとしては、予め学習データを評価することによって適切な値を設定しておく。
また、第1の実施形態で説明したように、重み付けパラメータを弱仮説の1つととらえ、AdaBoostを用いて決めてもよい。
【0070】
そして、部分特徴数量計測部185は、このようにして得られた登録パターンと入力パターンとの対応する部分特徴間の類似度を評価する(S91)。例えば、部分特徴数量計測部185は、S90で求めた類似度が所定の閾値を超えているかどうかで判定する。
続いて、部分特徴数量計測部185は、同一の合成部分特徴に含まれる部分特徴を全て判定したかのチェックを行う(S92)。このとき、部分特徴数量計測部185は、判定を終えていない場合(S92でNOの場合)、S90の処理を行う。他方、部分特徴数量計測部185は、全ての部分特徴について判定を終えた場合(S92でYESの場合)、類似度が所定の基準を超えた部分特徴の数量を計測する(S93)。典型的には、部分特徴数量計測部185は、閾値を超えた部分特徴の個数を計数する。また、S93における数量nの計測処理において、部分特徴の集計関数を以下のように定義することもできる。
【0071】
【数2】

【0072】
ここで、mは同一の合成部分特徴内にある部分特徴の個数とし、ωは閾値とする。このように構成することにより、閾値の近傍にある部分特徴を考慮して部分特徴の数量を測定することができる。
以上が、部分特徴数量計測処理の説明である。
【0073】
<合成部分特徴尤度算出処理>
次に、合成部分特徴尤度算出処理について説明する。図20は、合成部分特徴尤度算出部184の構成の一例を示す図である。合成部分特徴尤度算出部184は、部分特徴ベクトル情報取得部191、部分特徴ベクトル統計情報取得部192、統計情報保持部193、及び尤度算出部194を有する。
部分特徴ベクトル情報取得部191は、合成部分特徴ベクトル取得部181から取得した合成部分特徴ベクトルの構成要素である部分特徴ベクトルの情報を取得する。より具体的には、部分特徴ベクトル情報取得部191は、部分特徴ベクトルの次元数、切り出しもとのパターン上での空間的な位置、大きさ、特徴ベクトルの変換方法、付随するパラメータ情報などである。パラメータ情報としては、特徴ベクトルの変換方式がPCAである場合、次元削減数、累積寄与率、PCAの学習に用いたデータ数などが挙げられる。
部分特徴ベクトル統計情報取得部192は、部分特徴ベクトル情報取得部191で取得した情報をもとにその統計情報を取得する。具体的な処理の内容については後述する。統計情報保持部193は、部分特徴ベクトル統計情報取得部192で取得された統計情報を保持する。なお、予め装置外で求められた統計情報を保持するようにしてもよい。尤度算出部194は、部分特徴ベクトル統計情報取得部192から得られた情報をもとに、合成部分特徴ベクトルの尤度を算出する。具体的な処理の内容については後述する。
【0074】
図21は、合成部分特徴尤度算出処理に係るフローチャートの一例を示す図である。以下、図21を用いて処理の内容を説明する。
まず、部分特徴ベクトル情報取得部191は、合成部分特徴ベクトルの構成要素である部分特徴ベクトルの情報を取得する(S100)。ここで、部分特徴ベクトルの情報としては、上述したような部分特徴ベクトルの切り出し元であるパターン上での空間的な位置、大きさなど、様々な情報が考えられる。
続いて、部分特徴ベクトル統計情報取得部192は、取得された部分特徴ベクトルの情報をもとに、それらの統計情報を取得する(S101)。続いて、尤度算出部194は、取得された統計情報をもとに合成部分特徴の尤度を算出する(S102)。ここでは、一例として、部分特徴ベクトルの情報が切り出しもとのパターン上での空間的な位置および大きさであり、取得する統計情報がその分散である場合について説明する。尤度算出部194は、部分特徴ベクトルの位置および大きさの各々について、以下の式(5)および式(6)に従って分散を求める。
【0075】
【数3】

【0076】
ここで、lは合成部分特徴に含まれる部分特徴の数を表し、νおよびオーバーラインが付されたνは部分特徴の切り出し位置およびその平均を表し、sおよびオーバーラインが付されたsは部分特徴の大きさおよびその平均を表す。また、尤度算出部194は、上記の統計情報から、合成部分特徴の尤度を以下の式(7)で求める。
【0077】
【数4】

【0078】
このように、部分特徴の位置と大きさの分散の平均を、合成部分特徴の尤度とすることによって、以下のような効果が期待できる。即ち、合成部分特徴を構成する部分特徴の付帯情報(位置、大きさ)の分散が大きいほど、さまざまな尺度で識別の対象のパターンを観測していることになり、その合成部分特徴の妥当性が高いことを直接的に表現できる。例えば、識別の対象のパターンが画像中の人物の顔である場合、目の近傍だけで判定するよりも、口や鼻などの近傍も同時に判定に用いたほうが妥当性が高いと考えられる。
また、部分特徴ベクトルの空間的な情報ではなく、特徴ベクトルの変換に関するパラメータの分散を尤度にしてもよい。より具体的には、部分特徴ごとに次元圧縮率(PCAの累積寄与率)が異なる場合、その次元圧縮率の分散を尤度にしてもよい。
【0079】
また、特徴ベクトルの抽出方法の違いを尤度にしてもよい。もっとも単純には、抽出方法の種類をそのまま尤度として用いる。例えば、合成部分特徴内の部分特徴がすべて輝度画像から抽出されている場合は、尤度を「1」とし、複数の方法、例えば、輝度画像とガボアフィルタをかけた画像から抽出している場合は、尤度を「2」などとするとよい。
また、尤度を予め学習データから定めておいてもよい。部分特徴ごとの学習データに対する識別性能を予め計測して統計情報保持部193に格納し、それらの平均を合成部分特徴の尤度とすることもできる。また、部分特徴の分散から求めた尤度と、学習データから求めた尤度とをあわせ、合成部分特徴の尤度として算出してもよい。
以上が、合成部分特徴尤度算出処理の説明である。
【0080】
<合成部分特徴評価値算出処理>
次に、合成部分特徴評価値算出処理について説明する。図22は、合成部分特徴評価値算出部183で行われる合成部分特徴評価値算出処理に係るフローチャートの一例を示す図である。以下、図22を用いて処理の内容を説明する。
まず、合成部分特徴評価値算出部183は、合成部分特徴ベクトルを取得する(S110)。続いて、合成部分特徴評価値算出部183は、部分特徴数量計測部185から部分特徴数量計測処理の結果を取得する(S111)。続いて、合成部分特徴評価値算出部183は、合成部分特徴尤度算出部184から合成部分特徴の尤度を取得する(S112)。続いて、合成部分特徴評価値算出部183は、取得した値をもとに、合成部分特徴の評価値を算出する(S113)。合成部分特徴評価値算出部183は、評価値Vgを以下の式(8)を用いて求める。
【0081】
【数5】

【0082】
ここで、nは部分特徴数量計測処理の結果であり、σは合成部分特徴の尤度である。このように算出することにより、合成部分特徴に属する部分特徴が所定の基準を満たす数量の違いで、評価値を大きく変化させることができる。部分特徴の組み合わせで識別を行う効果としては、複数の部分特徴が基準を満たしている状態の評価値を、1つだけが満たしている状態の評価値と大きく差をつけることにある。
人物の顔識別の例で説明すると、他人同士でも、照明条件、表情変動などで偶然に部分特徴が一致する場合は考えられるが、それが同時に複数の部分特徴で一致する確率は低いと考えられる。言い換えると、複数の部分領域が同時に一致している場合は、1つ一致している場合よりも、登録パターンと入力パターンとが同じクラスに属している可能性がより高まる。このような期待から、複数の部分特徴が基準を満たしている状態をその数量で代表させ、識別に用いる。
また、評価に数量を用いることで、変動に対してよりロバストな識別が行える可能性がある。例えば、式(8)の代わりに、以下の式(9)のような評価関数を用いることもできる。
【0083】
【数6】

【0084】
ここで、rは登録パターンと入力パターンとで対応する部分特徴の類似度であり、wは重み付き和を取るための各類似度の重みである。この式(9)によれば、重みの大きい類似度が照明変動などの影響で期待される値と異なった場合、評価値への影響も大きくなる。これに対して、式(8)のように数量で代表させることによって、特定の部分特徴の重みが大きくなることが回避され、結果として、変動に対してロバストになると期待される。
また、合成部分特徴の尤度を乗じることで、複数ある合成部分特徴間に重みづけを行うことができる。
また、式(8)や式(9)による評価値の算出は、あくまで一例であり、これ以外の表現も当然考えられる。例えば、部分特徴の数量nの多項式でもよい。また、直接部分特徴の数量nを用いるのではなく、合成部分特徴に含まれる部分特徴の数lで割ることによって正規化してから用いてもよい。このようにすることにより、複数の合成部分特徴間で、含まれる部分特徴にばらつきがある場合でも、各合成部分特徴の評価値のレベルを一定にすることができる。
【0085】
また、本実施形態では、部分特徴の数量nに応じて合成部分特徴の評価値が定められることにも大きな価値がある。よって、実際の合成部分特徴の評価関数としては、識別したいカテゴリに応じて最適なものを選択すればよく、ここでの説明に用いた関数形に限定されるものではない。
また、合成部分特徴評価値算出部183は、合成部分特徴が複数ある場合は、これらを統合し、1つの値として出力する。統合の方法としては、最も単純には、それらの平均が考えられる。合成部分特徴評価値算出部183は、式(8)、式(9)などで求めた評価値の平均を最終的な出力値とする。
また、尤度の高いものだけを用いるようにしてもよい。また、平均をとる前に、各合成部分特徴の尤度が高いものだけを選択し、それらだけで平均をとるようにしてもよい。
【0086】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0087】
上述した実施形態の構成によれば、画像に含まれるオブジェクトの識別の精度をより高めることができる。
【0088】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0089】
1 結像光学系、2 撮像部、3 撮像制御部、4 画像記録部、5 オブジェクト登録部、6 入力オブジェクト識別部、7 外部出力部、8 接続バス

【特許請求の範囲】
【請求項1】
入力画像に含まれる入力オブジェクトおよび登録画像に含まれる登録オブジェクトのオブジェクト間の変動量を検出するオブジェクト間変動量検出手段と、
前記入力オブジェクトと前記登録オブジェクトとで、少なくとも1つ以上の対応する部分特徴量を抽出する部分特徴抽出手段と、
前記オブジェクト間の変動量の大きさに応じて前記部分特徴抽出手段で抽出された部分特徴量を組み合わせる合成方法を決定し、決定した合成方法で前記部分特徴量を合成して合成部分特徴量を生成する部分特徴量合成手段と、
前記合成部分特徴量を用いて、前記入力オブジェクトがどの登録オブジェクトに対応するかを識別する入力オブジェクト識別手段と、
を有することを特徴とするオブジェクト識別装置。
【請求項2】
前記部分特徴抽出手段は、少なくとも部分領域の位置の変動に不変な部分特徴量、もしくは位置の変動に頑健な部分特徴量を抽出することを特徴とする請求項1記載のオブジェクト識別装置。
【請求項3】
前記部分特徴抽出手段は、少なくとも画像から取得した情報を頻度分布で表現した部分特徴量を抽出することを特徴とする請求項1記載のオブジェクト識別装置。
【請求項4】
前記オブジェクト間変動量検出手段は、撮影条件をもとに前記オブジェクト間の変動量を算出することを特徴とする請求項1記載のオブジェクト識別装置。
【請求項5】
前記撮影条件は、自動露出および自動焦点のいずれかにかかわるパラメータであることを特徴とする請求項4記載のオブジェクト識別装置。
【請求項6】
前記オブジェクト間変動量検出手段は、前記入力オブジェクトおよび前記登録オブジェクトの属性を検出する属性検出器をさらに具備し、前記入力オブジェクトおよび前記登録オブジェクトの属性の変動量を検出することを特徴とする請求項1記載のオブジェクト識別装置。
【請求項7】
前記部分特徴抽出手段は、抽出した部分特徴量を、変換パラメータを用いて変換する変換手段をさらに具備し、
前記部分特徴量合成手段は、前記登録オブジェクトと前記入力オブジェクトとで同一の位置関係にある複数の部分特徴量を合成する際に、前記オブジェクト間の変動量が大きい場合、画像から取得した情報を頻度分布で表現した部分特徴量の比率が大きくなるように、前記変換パラメータを制御することを特徴とする請求項2記載のオブジェクト識別装置。
【請求項8】
入力画像に含まれる入力オブジェクトおよび登録画像に含まれる登録オブジェクトのオブジェクト間の変動量を検出するオブジェクト間変動量検出工程と、
前記入力オブジェクトと前記登録オブジェクトとで、少なくとも1つ以上の対応する部分特徴量を抽出する部分特徴抽出工程と、
前記オブジェクト間の変動量の大きさに応じて前記部分特徴抽出工程で抽出された部分特徴量を組み合わせる合成方法を決定し、決定した合成方法で前記部分特徴量を合成して合成部分特徴量を生成する部分特徴量合成工程と、
前記合成部分特徴量を用いて、前記入力オブジェクトがどの登録オブジェクトに対応するかを識別する入力オブジェクト識別工程と、
を有することを特徴とするオブジェクト識別方法。
【請求項9】
請求項8記載のオブジェクト識別方法の各工程をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate