<学習装置について>
[学習装置の構成]
図3は、本発明の一実施形態に係る学習装置の構成例を示すブロック図である。
図3の学習装置1は、二枚の画像に写る顔が同一人物の顔であるか否かの識別に用いられる同一人物識別器を統計学習によって生成する装置である。学習装置1により生成された同一人物識別器のデータは、二枚の画像に写る顔が同一人物の顔であるか否かの識別を実際に行う識別装置に供給され、識別に用いられる。
学習装置1には、図4に示すように、同一人物の顔が写っている画像のペアと、違う人物の顔が写っている画像のペアが学習用画像として複数入力される。図4の画像P11と画像P12のペア、画像P21と画像P22のペア、および画像Pn1と画像Pn2のペアが、それぞれ、同一人物の顔が写っている画像のペアである。一方、画像P11’と画像P12’のペア、画像P21’と画像P22’のペア、および画像Pm1’と画像Pm2’のペアが、それぞれ、違う人物の顔が写っている画像のペアである。
学習装置1は、入力されたそれぞれの画像に写っている顔の部分の画像である顔画像上の複数の特徴点の中から、所定の数の特徴点をランダムに選択する。また、学習装置1は、選択した特徴点における顔の特徴を抽出するのに用いる特徴抽出フィルタを、予め用意されている複数の特徴抽出フィルタの中からランダムに選択し、弱識別器の候補とする。
図4の例においては、画像P21’と画像P22’の特徴点の中から、対応する位置(それぞれの画像上で同じ位置)にある4つの特徴点が選択されている。また、それぞれの特徴点における顔の特徴を抽出するのに用いる4つの特徴抽出フィルタからなるフィルタセットsが選択されている。学習装置1には、画像P21’と画像P22’に重ねて示すような、白色の矩形領域と黒色の矩形領域からなるフィルタが特徴抽出フィルタとして複数種類用意されている。すなわち、学習装置1は、Rectangle Filterを用いて矩形特徴を抽出し、Adaboostなどの、Boostingと呼ばれる機械学習によって識別器の学習を行う装置である。
学習装置1は、選択したフィルタセットsを用いて各画像から特徴を抽出し、それぞれの画像のペアのうちの一方の画像から抽出した特徴をパラメータとする特徴ベクトルと、他方の画像から抽出した特徴をパラメータとする特徴ベクトルとの相関値を算出する。学習装置1は、算出した相関値を入力(特徴量)として識別器の学習を行い、そのような学習を、Boostingのラウンド毎にフィルタセットを選択し直して繰り返し行う。
このように、学習装置1においては、特徴点と特徴抽出フィルタがランダムに選択され、それぞれの画像のペアから求められた特徴ベクトルの相関値に基づいて識別器の学習が行われる。これにより、学習装置1は、様々な位置の特徴を組み合わせて学習に用いることができ、識別の精度をより向上させることができる識別器を生成することが可能になる。学習装置1の一連の処理については後述する。
図3の画像取得部11は、同一人物の顔が写っている画像のペアを複数取得するとともに、違う人物の顔が写っている画像のペアを複数取得する。どのペアが同一人物の顔が写っている画像のペアであり、違う人物の顔が写っている画像のペアであるのかを表すラベル情報も学習装置1には入力されている。画像取得部11により取得される画像は、デジタルカメラなどにより撮影された、様々なサイズ、角度の人の顔が写っている画像である。画像取得部11は、取得した画像を顔検出部12に出力する。
顔検出部12は、画像取得部11から供給された画像を解析することによって、それぞれの画像に含まれる人の顔の部分を検出し、顔画像を生成する。顔検出部12は、生成した顔画像を特徴点設定部13と正規化部14に出力する。
特徴点設定部13は、顔検出部12から供給されたそれぞれの顔画像に複数の特徴点を設定し、特徴点の情報を正規化部14に出力する。
図5は、特徴点が設定された顔画像の例を示す図である。図5の画像P11と画像P12はペアを構成する画像である。図5の例においては、縦方向に9個、横方向に6個の計54個の特徴点が画像P11と画像P12の対応する位置に設定されている。
正規化部14は、顔検出部12から供給された顔画像を解析することによって顔の方向を検出し、特徴点設定部13により設定された特徴点の位置が基準位置にくるように顔画像を変換するアフィン変換などを正規化処理として行う。これにより、顔検出部12から供給された顔画像に写っている顔が正面を向いていない場合であっても、正面を向いている顔が写っている画像と同様の画像に変換される。正規化部14は、特徴点の位置が基準位置にくるように変換した顔画像を中間画像生成部20に出力し、正規化後の顔画像上の特徴点の情報をフィルタセット選択部15に出力する。
フィルタセット選択部15は、顔画像に設定された複数の特徴点の中から所定の数の特徴点をランダムに選択する。また、フィルタセット選択部15は、選択したそれぞれの特徴点における顔の特徴の抽出に用いられる特徴抽出フィルタを複数の特徴抽出フィルタの中からランダムに選択する。
図6A乃至Dは、特徴抽出フィルタの例を示す図である。
図6A乃至Dに示す2次元のフィルタがRectangle Filterである。Rectangle Filterは、水平方向、垂直方向、またはいずれかの方向に対して45度の傾きを有する直線によって区切られる、所定の数の矩形の白領域と黒領域から構成される。
Rectangle Filterを用いた特徴の抽出は、Rectangle Filterを画像上の所定の位置に配置し、白領域に含まれる画素の輝度値の和と、黒領域に含まれる画素の輝度値の和との差を求めることによって行われる。例えば、図6Aの2 Rectangle Filterはエッジの特徴を抽出するのに適したフィルタであり、図6B、図6Cの3 Rectangle Filterはラインの特徴を抽出するのに適したフィルタである。
フィルタセット選択部15は、ランダムに選択した特徴点毎に、このような特徴抽出フィルタの中から所定の特徴抽出フィルタをランダムに選択し、フィルタセットを決定する。
図7は、フィルタセットの例を示す図である。
図7には、フィルタセットs1乃至Snのn個のフィルタセットが示されている。それぞれのフィルタセットは例えばBoostingのラウンド毎に選択される。図7において、下付の数字を付しているrは特徴抽出フィルタ(Rectangle Filter)を表し、pは特徴点を表す。(rn,pxy)は、x列y行の位置の特徴点である特徴点pxyにおける顔の特徴の抽出に用いるフィルタとして選択された特徴抽出フィルタが、特徴抽出フィルタrnであることを表す。
フィルタセットs1は、特徴点p13に対して選択された特徴抽出フィルタr1、特徴点p51に対して選択された特徴抽出フィルタr5、特徴点p23に対して選択された特徴抽出フィルタr3、…、特徴点p43に対して選択された特徴抽出フィルタr8からなる。また、フィルタセットs2は、特徴点p33に対して選択された特徴抽出フィルタr3、特徴点p62に対して選択された特徴抽出フィルタr5、特徴点p63に対して選択された特徴抽出フィルタr1、…、特徴点p36に対して選択された特徴抽出フィルタr7からなる。
フィルタセット選択部15は、このようにして選択した所定の数のフィルタからなるフィルタセットの情報を特徴抽出部16と学習部18に出力する。
特徴抽出部16は、フィルタセット選択部15により選択されたフィルタセットを用いて、全ての顔画像から特徴を抽出する。特徴抽出部16は、顔画像毎に、それぞれの顔画像から抽出した特徴をパラメータとする特徴ベクトルを求め、求めた特徴ベクトルの情報を相関値算出部17に出力する。
なお、特徴抽出部16において特徴の抽出に用いられる顔画像は、顔検出部12により生成され、正規化部14により正規化が施された顔画像ではなく、中間画像生成部20により生成された中間画像である。後述するように、中間画像生成部20においては、顔検出部12により生成され、正規化部14により正規化が施された顔画像に基づいて、積分画像が中間画像として生成される。
相関値算出部17は、特徴抽出部16から供給された情報に基づいて、学習装置1に入力された学習用画像のそれぞれのペアを構成する一方の画像(顔画像)から求められた特徴ベクトルと、他方の顔画像から求められた特徴ベクトルとの相関値を算出する。
図8は、相関値の算出の例を示す図である。
図7のフィルタセットs1が選択されている場合について説明する。この場合、同じペアを構成する一方の顔画像からは、特徴点p13,p51,p23,…,p43における特徴がそれぞれ特徴抽出フィルタr1,r5,r3,…,r8を用いて抽出され、それらの特徴をパラメータとする特徴ベクトルV1が生成される。同様に、同じペアを構成する他方の顔画像からは、特徴点p13’,p51’,p23’,…,p43’における特徴がそれぞれ特徴抽出フィルタr1,r5,r3,…,r8を用いて抽出され、それらの特徴をパラメータとする特徴ベクトルV1’が生成される。特徴点p13,p51,p23,…,p43と特徴点p13’,p51’,p23’,…,p43’は、それぞれの画像上で同じ位置にある特徴点である。
相関値算出部17は、特徴ベクトルV1と特徴ベクトルV1’の対応するパラメータ同士の相関値を算出し、算出した相関値をパラメータとする相関ベクトルを生成する。相関値算出部17は、学習用画像の全てのペアに注目してこのような相関ベクトルを生成し、それぞれのペアに基づいて生成した相関ベクトルの情報を学習部18に出力する。
学習部18は、相関値算出部17により生成された相関ベクトルに基づいて、上述したフィルタセットを弱識別器候補として例えばAdaboostを利用した統計学習を行い、複数の弱識別器から構成される同一人物識別器を生成する。
すなわち、学習部18は、学習用画像のペアがN個入力された場合、あるフィルタセットを用いて相関値算出部17により生成されたN個の相関ベクトルの重みとして1/Nを割り当てる。学習部18は、N個の相関ベクトルと、ラベル情報(同一人であれば+1、他人であれば−1)に基づいて学習を行い、弱識別器を生成する。
学習部18は、それ以降、直前に学習の対象とした弱識別器が正解できなかったサンプル(学習用画像のペア)の重みを増やし、他のフィルタセットを用いて生成されたN個の相関ベクトルに基づいて重み付き学習を繰り返し行う。学習部18は、学習によって得られたそれぞれの弱識別器のパラメータ、フィルタセットの情報、信頼度などの、同一人物識別器に関する情報からなる辞書データを学習データ記憶部19に記憶させる。それぞれの弱識別器は、その弱識別器の学習に用いられたフィルタセットと同じフィルタセットを用いて顔画像から抽出され、生成された相関ベクトルを入力としたときに所定のスコアを出力するものである。
中間画像生成部20は、正規化部14から供給された顔画像に基づいて積分画像を生成し、中間画像として特徴抽出部16に出力する。上述したように、学習装置1において用いられる特徴抽出フィルタは矩形の白領域と黒領域からなるRectangle Filterである。中間画像の生成は、所定の形状の白領域または黒領域に含まれる画素の輝度値の和を容易に求めることができるようにするために行われる。
図9は、中間画像の生成の例を示す図である。
中間画像のサイズ(画素数)は元画像のサイズと同じである。中間画像の各画素の画素値は、元画像の四隅のうちの左上隅などの所定の位置を基準位置として、基準位置と各画素の位置を結ぶ線を対角線とする四角形の範囲に含まれる元画像の各画素の輝度値の和を表す。
図9の例においては左上隅の点A1が基準位置とされている。中間画像上の点A4の画素の画素値は、点A1と点A4を対角線とする四角形である点A1,A2,A4,A3を頂点とする四角形の範囲に含まれる元画像の各画素の輝度値の和を表す。同様に、例えば、中間画像の右下隅の画素の画素値は元画像の画素全体の輝度値の和を表すことになる。
図10は、中間画像を用いた特徴抽出の例を示す図である。
図10に斜線を付して示す点A13,A14,A4,A15を頂点とする四角形の範囲に含まれる元画像の画素の輝度値の和を求める場合について説明する。点A11は点A1と点A2の間の点であり、点A12は点A1と点A3の間の点である。点A14は点A2と点A4の間の点であり、点A15は点A3と点A4の間の点である。点A13は点A12と点A14を結ぶ水平方向の線と、点A11と点A15を結ぶ垂直方向の線の交点である。
この場合、中間画像の点A13の画素の画素値は、点A1,A11,A13,A12を頂点とする四角形の範囲に含まれる元画像の画素の輝度値の和を表す。また、点A14の画素の画素値は、点A1,A2,A14,A12を頂点とする四角形の範囲に含まれる元画像の画素の輝度値の和を表す。点A15の画素の画素値は、点A1,A11,A15,A3を頂点とする四角形の範囲に含まれる元画像の画素の輝度値の和を表す。
点A4の画素の画素値は、上述したように点A1,A2,A4,A3を頂点とする四角形の範囲に含まれる元画像の画素の輝度値の和を表す。従って、斜線を付して示す範囲に含まれる元画像の画素の輝度値の和は、点A4の画素の画素値から、点A14の画素の画素値と点A15の画素の画素値を引き、点A13の画素の画素値を足すことによって求められる。
図11は、中間画像の各画素の画素値の求め方の例を示す図である。
図11の下側に斜線を付して示す中間画像の画素p’101の輝度値を求める場合について説明する。中間画像の画素p’101,p’102,p’103,p’104は、それぞれ、元画像の画素p101,p102,p103,p104に対応する画素である。
中間画像の所定の位置にある2×2画素の4画素のうちの右下の1画素の画素値は、右上の画素の画素値と左下の画素の画素値との和から左上の画素の画素値を引き、対応する位置の元画像の1画素の輝度値を足すことによって求められる。すなわち、中間画像の画素p’101の画素値は、画素p’103の画素値と画素p’104の画素値との和から、画素p’102の画素値を引き、元画像の画素p101の輝度値を足すことによって求められる。
中間画像生成部20においては、このような中間画像が、学習装置1に入力された全ての画像を元画像として用いて生成される。このような中間画像を一度生成しておくことにより、特徴抽出部16は、水平方向または垂直方向の直線によって領域が区切られる複数の特徴抽出フィルタ(垂直・水平フィルタ)を用いて特徴抽出を行う場合に、その演算を容易に行うことが可能になる。
図12は、他の中間画像の生成の例を示す図である。
中間画像生成部20においては、水平方向または垂直方向の直線に対して45度の傾きを有する直線によって領域が区切られる特徴抽出フィルタ(斜めフィルタ)を用いた演算を容易に行うことができるようにするための中間画像も生成される。この中間画像は、各画素の画素値が、各画素の位置を頂点、元画像の四辺のうちの上辺などの所定の辺を底辺とし、頂角が90度の三角形の範囲に含まれる元画像の各画素の輝度値の和を表すようにして生成される。
図12の例においては上辺が底辺とされている。中間画像上の点A33の画素の画素値は、頂角が90度の三角形である点A31,A32,A33を頂点とする三角形の範囲に含まれる元画像の各画素の輝度値の和を表す。
図13は、図12の中間画像を用いた特徴抽出の例を示す図である。
図13に斜線を付して示す点A43,A45,A33,A44を頂点とする四角形の範囲に含まれる元画像の画素の輝度値の和を求める場合について説明する。点A44は点A31と点A33の間の点であり、点A45は点A33と点A32の間の点である。点A42は、点A32と点A33を結ぶ線と平行な点A44を通る線と、点A31と点A32を結ぶ線との交点である。点A41は、点A31と点A33を結ぶ線と平行な点A45を通る線と、点A31と点A32を結ぶ線との交点である。点A43は、点A41と点A45を結ぶ線と、点A42と点A44を結ぶ線との交点である。
この場合、点A43の画素の画素値は、点A41,A42,A43を頂点とする三角形の範囲に含まれる元画像の画素の輝度値の和を表す。同様に、点A44の画素の画素値は、点A31,A42,A44を頂点とする三角形の範囲に含まれる元画像の画素の輝度値の和を表す。点A45の画素の画素値は、点A41,A32,A45を頂点とする三角形の範囲に含まれる元画像の画素の輝度値の和を表す。
中間画像の点A33の画素の画素値は、点A31,A32,A33を頂点とする三角形の範囲に含まれる元画像の画素の輝度値の和を表す。従って、斜線を付して示す範囲に含まれる元画像の画素の輝度値の和は、点A33の画素の画素値から、点A44の画素の画素値と点A45の画素の画素値を引き、点A43の画素の画素値を足すことによって求められる。
図14は、図12の中間画像の各画素の画素値の求め方の例を示す図である。
図14の下側に斜線を付して示す中間画像の画素p’111の輝度値を求める場合について説明する。中間画像の画素p’111,p’112,p’113,p’114は、それぞれ、元画像の画素p111,p112,p113,p114に対応する画素である。
中間画像の所定の位置にある1画素の画素値は、その画素の左上の画素の画素値と右上の画素の画素値との和から真上の画素の画素値を引き、対応する位置の元画像の1画素の輝度値を足すことによって求められる。すなわち、中間画像の画素p’111の画素値は、中間画像の画素p’112の画素値と画素p’114の画素値との和から、画素p’113の画素値を引き、元画像の画素p111の輝度値を足すことによって求められる。
中間画像生成部20においては、このような中間画像も、学習装置1に入力された全ての画像を元画像として用いて生成される。これにより、特徴抽出部16は、斜めフィルタを用いて特徴抽出を行う場合に、その演算を容易に行うことが可能になる。
[学習装置の動作]
次に、図15のフローチャートを参照して、以上のような構成を有する学習装置1の処理について説明する。
ステップS1において、画像取得部11は、同一人物の顔が写っている画像のペアと、違う人物の顔が写っている画像のペアを複数取得する。
ステップS2において、顔検出部12は、画像取得部11により取得されたそれぞれの画像に含まれる人の顔の部分を検出し、顔画像を生成する。
ステップS3において、特徴点設定部13は、それぞれの顔画像に特徴点を設定する。
ステップS4において、正規化部14は、顔画像を解析することによって顔の方向を検出し、特徴点の位置が基準位置にくるように顔画像の正規化を行う。
ステップS5において、中間画像生成部20は、正規化後の顔画像に基づいて中間画像を生成する。中間画像生成部20は、画像取得部11により取得されたそれぞれの画像を元画像として生成した、垂直・水平フィルタを用いて特徴を抽出するための中間画像と、斜めフィルタを用いて特徴を抽出するための中間画像を特徴抽出部16に出力する。
ステップS6において、フィルタセット選択部15は、顔画像に設定された複数の特徴点をランダムに選択する。また、フィルタセット選択部15は、選択したそれぞれの特徴点における顔の特徴の抽出に用いられる特徴抽出フィルタをランダムに選択する。
ステップS7において、特徴抽出部16は、フィルタセット選択部15により選択されたフィルタセットを中間画像に適用し、全ての顔画像の特徴を抽出する。特徴抽出部16は、抽出した特徴をパラメータとする特徴ベクトルを顔画像毎に求める。
ここで、ある特徴抽出フィルタを用いて特徴を抽出し、特徴ベクトルを生成した後に、同じ特徴抽出フィルタの黒領域と白領域を入れ替えて同じ位置の特徴を抽出し、特徴ベクトルを生成することが特徴抽出部16により行われるようにしてもよい。黒領域と白領域を入れ替えた特徴抽出フィルタを用いて特徴を抽出することは、白領域に含まれる画素の輝度値の和と、黒領域に含まれる画素の輝度値の和との差の絶対値を求めることに相当する。
これにより、特に図16に示すように白領域と黒領域が左右に配置された特徴抽出フィルタRを用いて顔の輪郭部分の特徴を抽出する場合に、背景の明るさに左右されない識別器の学習が可能になる。
また、ある特徴点における特徴をある特徴抽出フィルタを用いて抽出した後に、同じ特徴抽出フィルタを用いて近傍画素点における特徴の抽出が行われ、それらの特徴の和、または平均をパラメータとする特徴ベクトルが生成されるようにしてもよい。すなわち、同じ特徴抽出フィルタを用いて位置をずらして特徴の抽出が行われ、それらの特徴の和、または平均が特徴抽出部16により求められる。
これにより、顔の変形に左右されずに精度よく識別を行うことが可能な識別器を生成することが可能となる。近傍画素点とする範囲は任意に設定可能であり、x軸方向とy軸方向とでずらす範囲が異なるようにしてもよい。
なお、特徴の抽出にかかる時間等を考えて、これらの絶対値計算や特徴抽出フィルタの位置をずらした特徴抽出が行われないようにすることも可能である。
図15の説明に戻り、ステップS8において、相関値算出部17は、学習用画像の同じペアを構成する一方の顔画像から求められた特徴ベクトルと、他方の顔画像から求められた特徴ベクトルとの相関値を計算し、相関を表す相関ベクトルを生成する。
ステップS9において、学習部18は、相関値算出部17により生成された相関ベクトルに基づいて学習を行う。
ステップS10において、学習部18は、学習が終了したか否かを判定する。学習が終了していないとステップS10において判定された場合、ステップS6に戻り、フィルタセットが新たに選択されてBoostingが繰り返される。
一方、学習が終了したとステップS10において判定した場合、ステップS11において、学習部18は、複数の弱識別器から構成される強識別器である同一人物識別器に関する情報を学習データ記憶部19に記憶させ、処理を終了する。
以上のように、複数の特徴抽出フィルタを用いて複数の特徴点から抽出された特徴を組み合わせて学習を行うことにより、識別精度をより向上させることが可能な識別器を生成することが可能になる。例えば、顔の目と鼻の特徴を二枚の画像からそれぞれ同時に抽出して学習を行うといったように顔上の複数の位置の特徴を組み合わせて用いることで、識別器の精度が上がることがある。
また、中間画像として積分画像を生成し、Rectangle Filterを用いて特徴抽出を行うようにしたため、複数の特徴点、複数の特徴抽出フィルタを組み合わせて用いるといったような複雑な演算であっても容易に行うことが可能になる。積分画像を生成せずに、直接、元画像を特徴抽出の対象とした場合、輝度値の畳み込み演算などが必要となるが、そのような演算を行う必要がない。
<識別装置について>
[識別装置の構成]
図17は、識別装置の構成例を示すブロック図である。
図17の識別装置2は、二枚の画像に写る顔が同一人物の顔であるか否かの識別を、学習装置1により生成された同一人物識別器に基づいて行う装置である。同一人識別器に関する情報は、ネットワークを介して、またはメモリカードなどの記録媒体を介して、学習装置1から識別装置2に提供される。
識別装置2には、図18に示すように、人物の顔が写っている画像のペアが識別対象の画像として入力される。識別装置2は、白抜き矢印の先に示すように、学習時に選択された特徴抽出フィルタのセットであるフィルタセットs11に基づいてそれぞれの画像に写る顔の特徴を抽出する。識別装置2は、一方の画像から抽出した特徴をパラメータとする特徴ベクトルと、他方の画像から抽出した特徴をパラメータとする特徴ベクトルとの相関を算出し、フィルタセットs11を用いて学習された弱識別器に対する入力として用いてスコアを求める。
同様に、識別装置2は、フィルタセットs12に基づいてそれぞれの画像に写る顔の特徴を抽出し、一方の画像から抽出した特徴をパラメータとする特徴ベクトルと、他方の画像から抽出した特徴をパラメータとする特徴ベクトルとの相関を算出する。識別装置2は、算出した相関を、フィルタセットs12を用いて学習された弱識別器に対する入力とし、スコアを求める。識別装置2は、このようなスコアの計算をそれぞれの弱識別器を用いて行い、例えば、スコアの和が閾値以上の値である場合、入力された二枚の画像に写る顔が同一人物の顔であると判定する。
これにより、識別装置2は、学習装置1により生成された同一人識別器に基づいて、入力された二枚の画像に写る顔が同一人物の顔であるか否かを精度よく識別することが可能になる。
図17の画像取得部31は、人物の顔が写っている画像のペアを取得し、顔検出部32に出力する。
顔検出部32は、画像取得部31から供給された画像を学習装置1の顔検出部12と同様にして解析することによって、それぞれの画像に含まれる人の顔の部分を検出し、顔画像を生成する。顔検出部32は、生成した顔画像を特徴点設定部33と正規化部34に出力する。
特徴点設定部33は、顔検出部32から供給されたそれぞれの顔画像に複数の特徴点を設定し、特徴点の情報を正規化部34に出力する。
正規化部34は、顔検出部32から供給された顔画像を学習装置1の正規化部14と同様にして解析することによって顔の方向を検出し、特徴点設定部13により設定された特徴点の位置が基準位置にくるように顔画像の正規化を行う。正規化部34は、正規化後の顔画像を中間画像生成部39に出力し、特徴点の情報を特徴抽出部35に出力する。
特徴抽出部35は、学習データ記憶部38に記憶されている情報に基づいてフィルタセットを選択する。学習データ記憶部38には、学習装置1により生成された同一人識別器に関する情報が記憶されている。フィルタセットの情報には、フィルタセットを構成するそれぞれの特徴抽出フィルタが、どの特徴点における特徴を抽出するのに用いるものであるのかを表す情報も含まれている。
特徴抽出部35は、選択したフィルタセットを構成するそれぞれの特徴抽出フィルタを用いて、それぞれの顔画像の所定の特徴点における特徴を抽出する。特徴抽出部35は、顔画像毎に、それぞれの顔画像から抽出した特徴をパラメータとする特徴ベクトルを求め、求めた特徴ベクトルの情報を相関値算出部36に出力する。なお、特徴抽出部35により特徴の抽出に用いられる顔画像は、中間画像生成部39により生成された中間画像であってもよいし、顔検出部32により生成され、正規化部34により正規化が施された顔画像であってもよい。
相関値算出部36は、特徴抽出部35から供給された情報に基づいて、識別装置2に入力された識別対象のペアの一方の顔画像から求められた特徴ベクトルと、他方の顔画像から求められた特徴ベクトルとの相関を表す相関ベクトルを算出する。相関値算出部36は、算出した相関ベクトルの情報を識別部37に出力する。
識別部37は、同一人識別器を構成する弱識別器の情報を学習データ記憶部38から読み出し、相関値算出部36により算出された相関ベクトルを弱識別器に対する入力としてスコアを算出する。識別部37は、それぞれの弱識別器を用いて算出したスコアの和が閾値以上である場合、入力された二枚の画像に写る顔が同一人物の顔であると判定し、閾値未満である場合、入力された二枚の画像に写る顔が同一人物の顔ではないと判定する。識別部37による判定結果は、例えば、識別装置2に接続されるディスプレイに表示されたり、識別装置2に接続されるスピーカから音声によって出力されたりする。
中間画像生成部39は、適宜、正規化部34から供給された顔画像に基づいて学習装置1の中間画像生成部20と同様にして積分画像を生成し、中間画像として特徴抽出部35に出力する。
[識別装置の動作]
次に、図19のフローチャートを参照して、識別装置2の処理について説明する。
ステップS21において、画像取得部31は、識別対象の画像のペアを取得する。
ステップS22において、顔検出部32は、画像取得部31により取得されたそれぞれの画像に含まれる人の顔の部分を検出し、顔画像を生成する。
ステップS23において、特徴点設定部33は、それぞれの顔画像に特徴点を設定する。
ステップS24において、正規化部34は、顔画像の正規化を行う。
ステップS25において、中間画像生成部39は、正規化後の顔画像に基づいて中間画像を生成する。中間画像生成部39は、画像取得部31により取得されたそれぞれの画像を元画像として、学習装置1の中間画像生成部20と同様に、垂直・水平フィルタを用いて特徴を抽出するための中間画像と斜めフィルタを用いて特徴を抽出するための中間画像を生成する。
ステップS26において、特徴抽出部35は、学習データ記憶部38に記憶されている情報に基づいてフィルタセットを選択する。
ステップS27において、特徴抽出部35は、選択したフィルタセットを構成する特徴抽出フィルタを用いて、それぞれの顔画像の所定の特徴点における特徴を抽出する。特徴抽出部35は、顔画像毎に、顔画像から抽出した特徴をパラメータとする特徴ベクトルを求める。
ステップS28において、相関値算出部36は、識別装置2に入力された識別対象のペアの一方の顔画像から求められた特徴ベクトルと、他方の顔画像から求められた特徴ベクトルとの相関値を計算し、相関を表す相関ベクトルを生成する。
ステップS29において、識別部37は、同一人識別器を構成する弱識別器の情報を学習データ記憶部38から読み出し、相関値算出部36により算出された相関ベクトルを弱識別器に対する入力としてスコアを算出する。
ステップS30において、識別部37は、新たに算出したスコアを、それまでに算出したスコアに加算する。
ステップS31において、識別部37は識別終了か否かを判定する。識別が終了していないとステップS31において判定された場合、ステップS26に戻り、フィルタセットが新たに選択されてスコア計算が繰り返される。例えば、全ての弱識別器を用いてスコアが算出されるまで、弱識別器を用いたスコア計算が繰り返される。
一方、識別が終了したとステップS31において判定した場合、ステップS32において、識別部37は、それぞれの弱識別器を用いて算出したスコアの和に基づいて、二枚の画像に写る顔が同一人物の顔であるか否かを判定する。識別部37は、識別結果を出力し、処理を終了させる。
以上の処理により、二枚の画像に写る顔が同一人物の顔であるか否かを精度よく識別することが可能になる。
<変形例>
以上においては、学習装置1と識別装置2がそれぞれ異なる装置であるものとしたが、図20に示すように、1つの情報処理装置3において学習装置1と識別装置2が実現されるようにしてもよい。情報処理装置3において実現される学習装置1による学習結果は識別装置2に提供され、二枚の画像に写る顔が同一人物の顔であるか否かの識別に用いられる。
また、同一人物の顔であるか否かの識別に用いられる識別器の学習と識別器を用いた識別について説明したが、以上の処理は、二枚の画像に写る他の対象が同一であるか否かの識別に用いられる識別器の学習と識別器を用いた識別にも適用可能である。
[コンピュータの構成例]
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図21は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103は、バス104により相互に接続されている。
バス104には、さらに、入出力インタフェース105が接続されている。入出力インタフェース105には、キーボード、マウスなどよりなる入力部106、ディスプレイ、スピーカなどよりなる出力部107が接続される。また、入出力インタフェース105には、ハードディスクや不揮発性のメモリなどよりなる記憶部108、ネットワークインタフェースなどよりなる通信部109、リムーバブルメディア111を駆動するドライブ110が接続される。
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを入出力インタフェース105及びバス104を介してRAM103にロードして実行することにより、上述した一連の処理が行われる。
CPU101が実行するプログラムは、例えばリムーバブルメディア111に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部108にインストールされる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。