説明

画像処理装置

【課題】画像の中の顔領域を高速に検出することができ、かつ、精度良く、正面顔か否かを判別できる画像処理装置を提供する。
【解決手段】1段目識別器73aで、対象画像を走査して探索矩形領域毎の画像が顔向きが所定の角度範囲の顔画像であるか否かを識別し、2段目識別器73bを用いて、1段目識別器73aで顔画像が検出された画像位置及びその4近傍位置の探索矩形領域の画像を対象として正面顔画像であるか否かを識別する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、カメラ等で撮影された画像の中から、顔の領域を検出する画像処理装置に関するものである。
【背景技術】
【0002】
カメラ等を用いた監視システムにおいて、連続して監視箇所を撮影したカメラ画像の中から、不審者などの目的とする人物の映った画像を検索する処理の効率化が求められている。例えば、特許文献1が開示する画像処理方法では、撮影された人物の顔画像のうち、顔が判別し易い正面の顔をベストショット画像として選択し保存することにより、人物の映った画像の検索処理の効率化を図っている。
【0003】
また、特許文献2に開示される画像処理方法では、複数の顔向きを判別する識別器群を順次用いて、入力画像から顔画像を検出する。ここで、識別器により算出される指標値が所定の閾値以上の顔画像があった場合、当該指標値が示す顔の向きに限定して、以降の指標値の算出を行う。このような手法を用いることにより、顔画像の検索に要する処理時間を短縮化している。
【0004】
さらに、特許文献3に記載の装置は、入力画像をルートノードとし、このルートノードから枝分かれする分岐ノードを組み合わせ、各分岐ノードにおいて前記入力画像を複数の弱判別器に入力し、各弱判別器の出力を分割するサブ対象物空間毎に集計して、移行先を決定する木構造検出器を用いて、様々な向きの顔画像を検出している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3506958号公報(第8頁第4〜第5行)
【特許文献2】特開2007−193404号公報(第14頁第3〜第31行)
【特許文献3】特開2007−109229号公報(第8頁第44行〜第9頁第43行)
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の方法では、顔を検出した後に、目や鼻の位置を別途検出して顔の向きを判別するため、画像処理に時間がかかるという課題があった。
【0007】
また、特許文献2に記載の方法においても、初めは様々な方向の顔向きを検出する必要があるために処理時間がかかる。さらに、一旦、顔向きを限定してしまった後はそれ以外の顔向きの画像を検索できないという課題があった。
【0008】
さらに、特許文献3では、木構造検出器による効率的な顔向きの判別が行えるために、高速に処理できるが、ルートノードでは顔画像を検出できても、最終的に顔向きを絞り込んだ顔画像の検出精度が十分に得られないという課題があった。
【0009】
これは、木構造検出器が、個々の識別器を用いて、順次顔向きを絞り込んでゆく構成であるため、枝の末端に行くに従い、順次、顔向きに対する基準が厳しくなる構成となっていることに起因している。
【0010】
以下にその理由を説明する。
通常、顔か顔でないかの判断は、特許文献2に記載されるように、入力画像に対して、検出対象領域、つまり検出ウィンドウを移動させながら判別を行っていくが、移動させるステップ幅を細かくすると高速性が失われてしまうため、検出する顔のサイズに合わせて離散的に検出位置を移動する手法がとられる。
【0011】
本願発明の発明者が種々の画像に対する検討を行った結果、特定の、例えば正面向きの顔に特化して顔検出を行おうとした場合、入力画面内で、移動しながら検出を行う際に、ルートノードより厳しい判定基準を用いる正面顔向きの識別器では、より細かいステップで検出を行わないと、十分な検出率が得られないことがわかった。
つまり、判定基準の緩いルートノード用の識別器で顔候補として得られた位置は、より厳しい条件で判別する正面向きの識別器での最適な検出位置と必ずしも一致しない。これは、離散的に検出位置を移動させることによる高速化と相反する性質である。
【0012】
この発明は、上記のような課題を解決するためになされたもので、画像の中の顔領域を高速に検出することができ、かつ、精度良く、正面顔か否かを判別できる画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【0013】
この発明に係る画像処理装置は、顔向きが所定の角度範囲の顔画像を教師画像とする学習で得られた学習情報に基づき、入力画像から抽出した特徴量を評価することにより、当該入力画像が顔向きが所定の角度範囲の顔画像であるか否かを識別する第1の識別器と、所定の角度範囲より狭い角度範囲で顔向きを規定した正面顔画像を教師画像とする学習で得られた学習情報に基づき、入力画像から抽出した特徴量を評価することにより、当該入力画像が正面顔画像であるか否かを識別する第2の識別器とを備えた画像処理装置において、第1の識別器が、対象画像を走査して探索領域毎の画像が顔向きが所定の角度範囲の顔画像であるか否かを識別し、第2の識別器が、第1の識別器によって顔画像が検出された画像位置及びその近傍位置の探索領域が含まれる領域を対象として正面顔画像であるか否かを識別するものである。
【発明の効果】
【0014】
この発明によれば、第1の識別器が、対象画像を走査して探索領域毎の画像が顔向きが所定の角度範囲の顔画像であるか否かを識別し、第2の識別器が、第1の識別器によって顔画像が検出された画像位置及びその近傍の位置の探索領域の画像を対象として正面顔の顔画像であるか否かを識別する。
このように構成することで、第1の識別器によって顔画像が検出された位置及びその近傍位置で第2の識別器による識別が行われるので、精度良く、正面顔か否かの識別を行うことができるという効果がある。また、第2の識別器のみで識別を行う場合と比較して高速な処理が可能である。
【図面の簡単な説明】
【0015】
【図1】この発明の画像処理装置による画像走査を説明するための図である。
【図2】この発明の実施の形態1による画像処理装置のハードウェア構成を示す図である。
【図3】実施の形態1による画像処理装置の機能ブロックを示す図である。
【図4】2段目結果保持メモリの記憶内容を示す図である。
【図5】実施の形態1の画像処理装置による顔検出処理の流れを示すフローチャートである。
【図6】2段目識別器による検出処理の流れを示すフローチャートである。
【図7】実施の形態2の2段目識別器による検出処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0016】
実施の形態1.
先ず、画像中から顔を検出する方法について説明する。
顔の検出方法としては、ニューラルネットを用いるものやサポートベクターマシンを用いるもの等があるが、この発明では、参考文献1に記載されるような、予め学習によって顔か非顔かを判別できる識別器を用いる。参考文献1に記載の方法では、図1に示すように、基準となる探索矩形のサイズが、例えば縦横24ピクセルのフィルタセット2を入力画像1の左上から右下へジグザグなスキャン方向3で走査して各々の位置で顔か非顔かを判別する。ここで、1つの位置から次の位置への移動ステップ幅は2ピクセルである。
(参考文献1)特開2004−252940号公報
【0017】
しかし、図1に示す処理では顔のサイズの変化に対応できない。このため、参考文献1に記載の方法では、基準となる探索矩形のサイズを拡大した複数のフィルタセットを、画面内で順次走査させる。探索矩形サイズを拡大したフィルタセット2を適用する場合は、その拡大率に合わせて移動のステップ幅も広くする。
なお、基準となる探索矩形サイズを縦横24ピクセルに固定しておき、入力画像をいわゆるイメージピラミッド構造(入力画像を階層的に細分化した複数の画像で表した構造)として、入力画像側を拡大又は縮小した複数の画像で検出を行うことでも、顔サイズの変化に対応することができる。
【0018】
この発明の実施の形態1では、1段目識別器として、顔向きが概ね上下左右それぞれ30度の向きまでの角度範囲の顔検出が可能な識別器を用い、2段目識別器としては、顔向きが概ね上下左右それぞれ10度程度までの角度範囲の顔画像を用いて学習を行った識別器を使用する。
また、1段目識別器は、顔か非顔かを判別できるよう、顔画像と非顔画像の両方の教師データを与えて学習を行う。2段目識別器は、1段目識別器で顔か非顔かを判別することを前提として、顔向きの角度範囲を前述の範囲に狭めた顔画像を正面顔データ(正解データ)とし、この顔画像より顔向きの角度が大きな顔画像を非正面データとして用いて学習を行う。この学習に用いる画像も縦横24ピクセルとする。
このようにすることにより、顔か非顔かの判別を含める場合と比較して、2段目識別器で使用するレクタングルフィルタの数を低減でき、高速な処理が可能となる。
【0019】
図2は、この発明の実施の形態1による画像処理装置のハードウェア構成を示す図である。図2において、実施の形態1による画像処理装置は、カメラ4と表示装置9を備えたコンピュータであり、カメラ4で撮影された画像が画像バッファ5に蓄積される。なお、画像バッファ5は、RAM8の記憶領域上に構築しても構わない。CPU6が、ROM7に格納された実行プログラム71を実行することにより、演算・比較器72、識別器73(1段目識別器73a及び2段目識別器73b)は、ハードウェアとソフトウェアが協働した具体的手段として具現化される。
【0020】
また、CPU6が、起動時にROM7から識別器73(1段目識別器73a及び2段目識別器73b)の学習情報を読み込み、このうちフィルタセット82(1段目フィルタセット82a及び2段目フィルタセット82b)を規定するデータをRAM8に展開する。識別器73は、RAM8に展開されたデータを参照して、画像バッファ5に蓄積された画像の画面全体を走査し、このとき探索矩形に対応する画像データを順次取り出して検出処理を行う。演算・比較器72は、識別器73が検出した画像の特徴量に対し、所定の演算処理を行い、顔の検出結果や顔らしさの度合を演算結果として求め、これを表示部9に表示する。
【0021】
実施の形態1では、2段目識別器73bの検出実行時に、画像中の同じ位置で複数回の検出が行われる無駄を省くため、フィルタセット82の探索矩形のサイズで、画像バッファ5に蓄積された1枚の画像を処理(1画面の検出処理)する度に、2段目の検出結果、つまり検出位置と2段目識別器73bによる顔の検出結果や顔らしさの度合を示す評価値を格納する2段目結果保持メモリ81を、RAM8の記憶領域上に確保している。また、演算・比較器72による判定結果を用いて最終的に得られる顔検出の結果は、RAM8の記憶領域83に確保する。
【0022】
フィルタセット82(1段目フィルタセット82a及び2段目フィルタセット82b)を規定するデータは、予め、入力画像のサイズに合わせて、最小の探索矩形サイズ(例えば、縦横24ピクセル)から最大の探索矩形サイズ(例えば、画像バッファ5に蓄積されている1画面分の画像の幅若しくは高さと同じサイズ)まで、複数の拡大率で、探索矩形のサイズを拡大したフィルタ及びこれらフィルタの検出位置が規定されるデータである。
【0023】
このフィルタセット82を規定するデータは、識別器73の学習の結果として得られ、1段目フィルタセット82aの探索矩形サイズとその検出位置及び顔判定のための判定閾値が1段目識別器73aの学習情報として記憶され、2段目フィルタセット82bの探索矩形サイズとその検出位置及び顔判定のための判定閾値が2段目識別器73bの学習情報として記憶される。なお、上述したように、1段目識別器73aの1段目フィルタセット82aでは、概ね上下左右それぞれ30度の顔向きまで顔検出が可能であり、2段目識別器73bの2段目フィルタセット82bは、顔向きが概ね上下左右それぞれ10度程度までの顔検出が可能である。
【0024】
このようにフィルタセット82を規定するデータを予め準備しておくことで、画像を入れ替える度に、探索矩形サイズを拡大したフィルタの検出位置を計算する必要がなく、高速な処理が可能になる。なお、上記では、実行プログラム71のプログラムモジュールとして、演算・比較器72の機能を実現する場合を説明したが、専用のハードウェアで実現しても構わない。
【0025】
図3は、実施の形態1による画像処理装置の機能ブロックを示す図である。図3に示すように、フィルタセット82は、全部でN(N=1,2,3,・・・,N)個のフィルタから構成される。これらフィルタは、図3のように、白色矩形と黒色矩形を組み合わせた2値の矩形フィルタ(レクタングルフィルタ)である。このようにレクタングルフィルタには、探索矩形内で、白色矩形と黒色矩形の大きさや位置を変化させた様々なものが存在する。このレクタングルフィルタを用いて一つの仮説を形成し、これを多数組み合わせることで、概ね上下左右それぞれ30度の向きまでの顔を検出する1段目識別器73a及び概ね上下左右それぞれ10度程度までの顔を検出する2段目識別器73bが構築される。
【0026】
顔判定の手順としては、画像バッファ5に蓄積された画像画面から探索矩形に対応する画像を取り出し、これを入力画像1として取り込む。この入力画像1に対し、識別器73の学習情報に基づき、フィルタセット82のN個のフィルタを順に適用していき、演算・比較器72が、フィルタセット82の探索矩形内における白色矩形領域と黒色矩形領域のそれぞれに対する、入力画像1の輝度値の和を求める。
【0027】
次に、演算・比較器72は、白色矩形領域の輝度値の和と黒色矩形領域の輝度値の和との差分(レクタングルフィルタ値)を算出し、この差分に対して、学習情報として得られた判定閾値である、受け入れ閾値及び拒否閾値を用いた閾値判定を行う。この差分が、受け入れ閾値と拒否閾値とを境界とする範囲内の値であれば、フィルタセット82における次のフィルタを適用し、この差分が拒否閾値より低ければ、顔でないと判定し、受け入れ閾値よりも高ければ、顔であると判定して、判定結果10をRAM8に格納する。
【0028】
入力画像1に対し、フィルタセット82の探索矩形サイズを拡大しながら適用することで、様々な大きさの顔を検出することができる。なお、1段目フィルタセット82aと2段目フィルタセット82bでは、1段目識別器73a及び2段目識別器73bの学習情報が異なるため、1段目識別器73a及び2段目識別器73bの検出処理は同じ手順で処理が行われるが、フィルタセット82の内容及び判定閾値は異なる値(1段目フィルタセット82a及び2段目フィルタセット82b)となる。
【0029】
図2に示した2段目結果保持メモリ81では、基準となるフィルタセット82の探索矩形サイズを変更する度に、1画面走査単位で、メモリ内容のクリア又は上記の検出位置と評価値の再確保が実行される。また、2段目結果保持メモリ81には、走査の基本となるフィルタセット82の探索矩形(例えば、縦横24ピクセル)で走査する際に、この探索矩形内の左上のピクセル位置を基準位置として、1画面分の画像(入力画像1)の各探索矩形毎に、図4に示す情報を格納する。
【0030】
図4は、2段目結果保持メモリの記憶内容を示す図である。図4に示す走査済みフラグは、その位置(走査するフィルタセット82の探索矩形の左上位置)で、過去に2段目識別器73bによる顔検出を実施したか否かを示すフラグであり、実施していれば“1”、未実施であれば“0”が設定される。
【0031】
検出有無の項目には、2段目識別器73bでの上記検出結果として得られた顔の有無を示す値が設定される。また、検出座標の項目には、入力画像内で顔が検出された探索矩形の位置が設定される。これら項目には初期値及び顔が検出されなかった場合に“0”を設定する。
【0032】
なお、各探索矩形の左上位置及び走査中のフィルタセット82の探索矩形サイズは既知であるため、検出座標項目の情報は保存しなくても構わないが、この実施の形態1では、別途、検出座標だけを走査して、近い座標の結果を1つにする際に使用できるよう、検出座標の値を保存している。
最後の項目は、2段目識別器73bの評価値が設定される。評価値としては、1段目識別器73aと同様の手法を用い、0.0〜1.0の値が保存される。1段目識別器73aの評価値の計算方法については後述する。
【0033】
次に動作について説明する。
図5は、実施の形態1の画像処理装置による顔検出処理の流れを示すフローチャートである。図1と同様に、入力画像1の左上の位置を開始位置として、1段目識別器73aを用いた検出処理を行う(ステップST1)。例えば、画像バッファ5の画像の1画面から取り出した探索矩形に対応する画像データを取り出して、1段目識別器73aの学習情報に基づき、1段目フィルタセット82aを適用し、当該画像の特徴量としてフィルタの白色矩形領域と黒色矩形領域とのそれぞれに対する輝度値を検出する。
【0034】
次に、演算・比較器72が、1段目フィルタセット82aのフィルタの白色矩形領域と黒色矩形領域とのそれぞれに対する入力画像1の輝度値の和を算出する。この後、演算・比較器72は、白色矩形領域の輝度値の和と黒色矩形領域の輝度値の和の差分を算出し、この差分について、受け入れ閾値と拒否閾値を用いた閾値判定を行う。
【0035】
ここで、算出した差分が、受け入れ閾値と拒否閾値を境界とする範囲内の値であれば、1段目フィルタセット82aにおける次のフィルタを適用して、上記の処理を繰り返す。また、演算・比較器72は、算出した差分が拒否閾値より低ければ顔でないと判定し、受け入れ閾値よりも高ければ顔であると判定して、この結果をRAM8に格納する。
【0036】
演算・比較器72は、1段目フィルタセット82aにおけるフィルタの総数NV2と、最後に閾値判定が行われたフィルタまでのフィルタの数NV1を求め、1段目識別器73aの評価値V1を、下記式(1)から算出する(ステップST2)。これにより、評価値V1として0から1までの値が得られる。
V1=NV1/NV2 ・・・(1)
【0037】
次に、演算・比較器72は、ステップST1及びステップST2までの処理結果から、1段目識別器73aによって、探索矩形内の画像から顔が検出されたか否かを判定する(ステップST3)。ここで、顔が検出された場合(ステップST3;YES)、演算・比較器72は、ステップST4の処理に移行して、1段目識別器73aによって顔が検出された探索矩形内の画像に対して、2段目識別器73bによる検出処理を行う。
【0038】
ここで、図6を用いてステップST4における2段目識別器73bの検出処理を詳細に説明する。図6は、2段目識別器による検出処理の流れを示すフローチャートである。
先ず、演算・比較器72が、2段目結果保持メモリ81に格納されている図4に示した情報の走査済みフラグを参照し、現在位置で2段目識別器73bの検出処理が実行済みであるか否かを判定する(ステップST1a)。2段目識別器73bの検出処理が実行済みである場合(ステップST1a;YES)、演算・比較器72は、2段目結果保持メモリ81から、その位置における2段目識別器73bによる以前の検出処理結果を読み出して(ステップST4a)、ステップST5aの処理に移行する。
【0039】
一方、2段目識別器73bの検出処理が実行済みでなければ(ステップST1a;NO)、演算・比較器72は、1段目識別器73aで顔検出された探索矩形領域に対し、2段目識別器73bの学習情報に基づき、2段目フィルタセット82bを順に適用して、特徴量を検出し、この特徴量を用いて上記と同様な演算・比較処理を実行することで、1段目識別器73aで検出された探索矩形内の画像から、概ね上下左右それぞれ10度程度までの正面顔の画像を検出する(ステップST2a)。
【0040】
この後、演算・比較器72は、当該探索矩形領域内の左上位置の走査済みフラグを1にして、2段目の検出処理が実行済みであることを設定するとともに、当該2段目の検出処理結果を2段目結果保持メモリ81に格納する(ステップST3a)。
【0041】
続いて、演算・比較器72は、現在位置の4近傍、つまり当該探索矩形領域の左上位置の上下左右それぞれの方向に1ピクセル移動した位置について走査済みフラグを参照し、2段目識別器73bによる検出処理が実行済みであるか否かを判定する(ステップST5a)。
【0042】
ここで、検出処理を実行していなければ(ステップST5a;NO)、演算・比較器72は、ステップST3aで2段目結果保持メモリ81に格納した検出処理結果又はステップST4aで2段目結果保持メモリ81から読み出した以前の結果を用いて、4近傍位置を基準位置(左上位置)とする各探索矩形領域に対し、2段目識別器73bによる顔検出を実行する(ステップST6a)。この後、演算・比較器72は、上述の4つの探索矩形領域内の左上位置の走査済みフラグを1にして、2段目の検出処理が実行済みであることを設定するとともに、当該2段目の検出処理結果を2段目結果保持メモリ81に格納する(ステップST7a)。
【0043】
なお、上述の説明では、4近傍位置の現在位置との距離を1ピクセルとしたが、3ピクセルにしてもよい。また、走査するフィルタセット82の探索矩形サイズに合わせて、4近傍位置の現在位置との距離を変化させてもよい。さらに4近傍の代わりに右上、左上、右下、左下を加えた8近傍の情報を用いるようにしてもよい。
【0044】
一方、4近傍位置のいずれかで2段目識別器73bの検出処理が実行済みである場合(ステップST5a;YES)、演算・比較器72は、2段目結果保持メモリ81から、2段目識別器73bによる以前の検出処理結果を読み出し(ステップST9a)、この以前の結果を用い、検出処理が実行されていない4近傍位置を基準位置とする探索矩形領域に対し、2段目識別器73bによる顔検出を実行する(ステップST10a)。
【0045】
この後、演算・比較器72は、ステップST10aで検出処理を施した探索矩形領域内の左上位置の走査済みフラグを1にして、2段目の検出処理が実行済みであることを設定するとともに、この2段目の検出処理結果を2段目結果保持メモリ81に格納する(ステップST11a)。
【0046】
次に、演算・比較器72は、ステップST3a、ステップST7a、ステップST9a及びステップST11aで、2段目結果保持メモリ81から読み出し又は格納された検出処理結果を用いて、評価値V2として、下記式(2)から、中心プラス4近傍で、2段目結果保持メモリ81に格納された、評価値(以後DN4)の最大値を求め、この評価値DN4の最大値が得られた位置を検出位置として、V2の値とともに2段目結果保持メモリ81に格納する(ステップST8a)。DN4の最大値は、正面顔がある場合で“1”となり、正面顔らしさに応じて0を超える1未満の値をとり、正面顔がない場合には“0”となる。この処理が完了すると、図5に示すステップST5の処理に移行する。
V2=DN4の最大値 ・・・(2)
【0047】
図5の説明に戻ると、演算・比較器72は、上述の2段目の検出処理を施した探索矩形領域の左上位置に対応する図4に示す情報の評価値項目を参照して、この探索矩形領域で正面顔が検出されたか否かを判定する(ステップST5)。ここで、評価値項目に“0”が設定されている場合、すなわち評価値V2が0であった場合は「正面顔なし」、この場合以外では、「正面顔あり」と判定される。
【0048】
「正面顔あり」と判定すると(ステップST5;YES)、演算・比較器72は、1段目識別器73aの評価値V1と2段目識別器73bの評価値V2を用いて、検出された顔の評価値V3を算出する(ステップST6)。また、「正面顔なし」の場合(ステップST5;NO)は、演算・比較器72が、1段目識別器73aの評価値V1を用いて、検出された顔の評価値V3を算出する(ステップST7)。
【0049】
上述のベストショットの選択で、人物の正面顔を優先して選ぶ場合であれば、ステップST6においては、評価値V1を用いず、下記式(3)に従って評価値V3を算出する。また、ステップST7においては、下記式(4)に従って評価値V3を算出する。
V3=100×(1+V2) ・・・(3)
V3=100×V1 ・・・(4)
【0050】
これにより、正面顔が検出された場合は、評価値V3として、100から200の値が得られ、顔が検出されたが、正面顔が検出されなかった場合は、0から100の値が得られる。結果的に、正面顔が検出された場合は、検出されなかった場合より必ずV3の値が高くなるため、正面顔が検出されなかった場合よりも正面顔が検出された場合の方が高い評価値となり、かつ、正面顔が検出された場合においても評価値V2により評価値V3の大小が決定される。従って、評価値V3を調べることで、正面顔を優先して選択することが可能になる。
【0051】
上記式(2)の評価式を用いることで、正面顔が検出された場合には、評価値V2から正面顔らしさの度合を得ることができる。さらに、上記式(3)又は上記式(4)を併用して評価値V3を求め、この評価値V3が取り得る値である100から200までの数値範囲に閾値を設定することで、使用者が必要とする正面顔らしさを超えたベストショット顔画像のみを選択して保存することが可能になる。
【0052】
V1は、「比較的広い顔向きを許容した場合の顔らしさ度」、つまり顔か非顔かという指標値、V2は「正面顔に限定した場合の顔らしさ度」、つまり正面顔らしい度合を示すと考えることができるが、正面か否かに拘わらず、単純に顔らしさの度合を示す評価値が得たい場合には、ステップST6において、下記式(5)を用いて評価値V1,V2の単純平均から評価値V3を算出する。ステップST7では、上述の場合と同様に上記式(4)から評価値V3を求める。なお、ステップST6において、評価値V1の比重を重くしたい場合は、下記式(6)から評価値V3を求めてもよい。また、ステップST6において、下記式(5)の代わりに、m,nを0から1までの値とした重み係数(m+n=1)として、下記式(7)に示す加重平均で評価値V3を算出してもよい。
V3=100×(V1+V2) ・・・(5)
V3=V1×V2 ・・・(6)
V3=(m×V1+n×V2)/(m+n) ・・・(7)
【0053】
上記式(5)から上記式(7)までの評価式を用いることで、1段目識別器73aと、2段目識別器73bとを総合した評価値V3を、顔らしさを示す度合として利用できる。これにより、正面顔らしさの判定を行うとともに、正面顔の検出器である2段目識別器73bが単独では判定できない、顔か非顔かという評価を含めた判定を正面顔らしさの判定と同時に行うことができる。
【0054】
上述までの処理が完了すると、演算・比較器72は、現在の検出対象領域についての顔検出結果をRAM8の記憶領域83及び2段目結果保持メモリ81に保存する(ステップST8)。
【0055】
ステップST3で1段目識別器73aで顔が検出されなかった場合(ステップST3;NO)若しくはステップST8の処理が完了すると、演算・比較器72は、RAM8に保持される処理結果から、画像の1画面全体を走査完了したか否かを判定する(ステップST9)。ここで、画面全体の走査が完了していれば(ステップST9;YES)、処理を終了する。
【0056】
一方、画面全体の走査が完了していない場合(ステップST9;NO)、演算・比較器72は、画面中の次の位置へ移動、つまり1段目フィルタセット82aの探索矩形サイズを考慮した所定の移動ステップ幅で移動した位置に移動して、ステップST1からの処理を繰り返す。
【0057】
また、1段目識別器73aにおいて、上記式(1)で評価を行う際、1段目フィルタセット82aのフィルタ総数NV2を入力とし、0から1までの値NV2Cを出力する変換関数f(NV2)を予め設定しておき、V1=f(NV2)で評価値V1を算出するようにしてもよい。これは、フィルタ総数NV2に対して重み付けを行うことに相当し、前段(1段目)の検出結果を重視したい場合は、f(NV2)として0から1に至るまでに上に凸なカーブを形成する関数を選択することにより対応可能である。このように、関数f(NV2)は、目的に応じて適宜変更可能である。
【0058】
さらに、上述の説明では、図1で示したように、基準となる識別器のフィルタセットのサイズで画面を走査する場合を示したが、顔の大きさの変化に対応するため、図5のフロー中にフィルタセット82のフィルタサイズを変更するステップを加え、フィルタサイズを変更しながら繰り返し処理をするようにしてもよい。
【0059】
以上のように、この実施の形態1によれば、1段目識別器73aで、対象画像を走査して探索矩形領域毎の画像が顔向きが所定の角度範囲の顔画像であるか否かを識別し、2段目識別器73bを用いて、1段目識別器73aによって顔画像が検出された画像位置及びその4近傍位置の探索矩形領域の画像を対象として正面顔画像であるか否かを識別する。このように構成することで、1段目識別器73aで顔画像が検出された画像位置及びその4近傍位置で2段目識別器73bによる識別を行うので、精度良く、正面顔か否かの識別を行うことができる。また、2段目識別器73bのみで識別を行う場合と比較して高速な処理が可能である。
【0060】
なお、上記実施の形態1では、1段目識別器73aと2段目識別器73bを別々のものとして扱ったが、これら2つを形式的に1つの識別器として構成しても構わない。
【0061】
また、上記実施の形態1では、1段目識別器73aの後に、2段目として正面顔検出用の2段目識別器73bを用いたが、1段目は正面以外の顔向きを判別する識別器であればよく、2段目を正面顔検出用の識別器として、3段目以降に異なる顔向きを判別する識別器を加えた構成とすることも可能である。
【0062】
さらに、この実施の形態1によれば、1段目識別器73aと画面内の同じ位置で2段目識別器73bが顔検出できなかった場合であっても、4近傍で2段目識別器73bによる検出処理を行うことにより、検出の機会が増加し、正確に取りこぼしなく、正面顔の検出ができる。このため、より精度良く正面顔の検出ができるという効果が得られる。
【0063】
また、4近傍で評価値が最大である、最も正面らしい顔が見つかった位置を2段目識別器73bの正面顔の検出位置とすることで、正確に、正面顔の位置を得ることができる。
【0064】
実施の形態2.
この実施の形態2は、上記実施の形態1と構成及び動作の基本的内容は同様であるが、2段目識別器による処理の一部が上記実施の形態1と異なる。そこで、画像処理装置の構成については図1を適宜参照する。
【0065】
次に動作について説明する。
図7は、この発明の実施の形態2による画像処理装置の2段目識別器の検出処理の流れを示すフローチャートである。図7において、ステップST1aからステップST7aまでの処理、ステップST9aからステップST11aまでの処理は、上記実施の形態1で図6を用いて説明した内容と同様であるので説明を省略する。
【0066】
実施の形態2では、演算・比較器72が、ステップST3a、ステップST7a、ステップST9a及びステップST11aで、2段目結果保持メモリ81から読み出し又は格納された2段目識別器73bの評価値を用いて、下記式(8)に示す関係に従い、中心プラス4近傍の計5点での2段目識別器73bの評価値DN4の平均を評価値V2として求める。
V2=DN4の平均値 ・・・(8)
【0067】
上記式(8)で求めた評価値V2に対して閾値判定(ステップST8a−1)を行うことで、正面顔の有無を判定し、探索矩形の位置として4近傍で正面顔の検出ができた探索矩形位置の平均を正面顔が検出された位置とする。このようにすることで、機会の均等化を行い、安定して正面顔が検出され得る検出位置を求めることができる。
【0068】
また、上記式(9)で求めた評価値V2による閾値判定を行う際、評価値V2の値が低い場合の結果が含まれることによる誤差の拡大を防ぐため、演算・比較器72が、ステップST3a、ステップST7a、ステップST9a及びステップST11aで、2段目結果保持メモリ81から読み出し又は格納された2段目識別器73bの評価値を用い、中心プラス4近傍での5点での評価値V2の各々に対して、ステップST8a−1で閾値判定を行っておき、ステップST8a−2で閾値以上の結果のみを用いて評価値V2を計算する。この場合、検出結果の位置は、閾値以上となった評価値を与える探索矩形位置(左上位置)の平均とするように構成してもよい。閾値判定を行わない場合は、ステップST8a−2で、閾値以上の結果の代わりに、2段目識別器73bで顔検出できた全ての結果を用いる。
【0069】
以上のように、この実施の形態2によれば、2段目識別器73bを用いて、1段目識別器73aで顔画像が検出された画像位置及びその4近傍位置の探索矩形領域の画像を識別した結果から、正面顔らしさの度合を示す評価値が所定の閾値を超えた探索矩形領域の画像の位置の平均位置を、正面顔の画像の検出位置とする。このようにすることで、機会の均等化を行い、安定して正面顔が検出され得る検出位置を求めることができる。
【符号の説明】
【0070】
1 入力画像、2,82 フィルタセット、3 スキャン方向、4 カメラ、5 画像バッファ、6 CPU、7 ROM、8 RAM、9 表示部、10 判定結果、71 実行プログラム、72 演算・比較器、73 識別器(第1の識別器、第2の識別器)、73a 1段目識別器(第1の識別器)、73b 2段目識別器(第2の識別器)、81 2段目結果保持メモリ、82a 1段目フィルタセット、82b 2段目フィルタセット、83 最終検出結果の記憶領域。

【特許請求の範囲】
【請求項1】
顔向きが所定の角度範囲の顔画像を教師画像とする学習で得られた学習情報に基づき、入力画像から抽出した特徴量を評価することにより、当該入力画像が前記顔向きが所定の角度範囲の顔画像であるか否かを識別する第1の識別器と、
前記所定の角度範囲より狭い角度範囲で顔向きを規定した正面顔画像を教師画像とする学習で得られた学習情報に基づき、入力画像から抽出した特徴量を評価することにより、当該入力画像が前記正面顔画像であるか否かを識別する第2の識別器とを備えた画像処理装置において、
前記第1の識別器は、対象画像を走査して探索領域毎の画像が前記顔向きが所定の角度範囲の顔画像であるか否かを識別し、
前記第2の識別器は、前記第1の識別器によって前記顔画像が検出された画像位置及びその近傍位置の探索領域が含まれる領域を対象として前記正面顔画像であるか否かを識別することを特徴とする画像処理装置。
【請求項2】
第2の識別器が、第1の識別器によって顔画像が検出された画像位置及びその近傍位置の探索領域の画像を識別した結果から、正面顔らしさの度合を示す評価値が最も高い探索領域の画像の位置を、正面顔画像の検出位置とすることを特徴とする請求項1記載の画像処理装置。
【請求項3】
第2の識別器が、第1の識別器によって顔画像が検出された画像位置及びその近傍位置の探索領域の画像を識別した結果から、正面顔らしさの度合を示す評価値が所定の閾値を超えた探索領域の画像の位置の平均位置を、正面顔画像の検出位置とすることを特徴とする請求項1記載の画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−277242(P2010−277242A)
【公開日】平成22年12月9日(2010.12.9)
【国際特許分類】
【出願番号】特願2009−127738(P2009−127738)
【出願日】平成21年5月27日(2009.5.27)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】