(57)【要約】【課題】精度の高い物体検出処理ができる画像処理装置および方法を提供する。【解決手段】画像から切り出した部分画像の評価値を算出する評価値算出部５０１と、前記評価値により、前記部分画像に対象物体が含まれるか否かを判定する判定部５０２と、検出処理の動作を決定する学習パラメータ保持部５０３とを備え、前記評価値算出部において部分画像から算出する特徴量を、対象物体を構成する離れた位置の複数部品間から算出する。これにより、大局的な類似性によって対象物体の識別が可能になるため、対象物体とは異なる物体の局所形状が類似する場合においても、誤識別が少ない。そのため、高精度な物体検出ができるという効果が得られる。【選択図】図５
2006163562.tif 000002
【特許請求の範囲】
【請求項１】
物体判定を複数回繰り返すことにより評価値を算出し、
その評価値によって画像に対象物体が含まれるか否かを識別する画像処理方法であって、
入力画像から部分画像を切り出すステップと、
特徴量を算出するためのパラメータを入力するステップと、
前記パラメータを用いて、切り出した部分画像から特徴量を算出するステップと、
特徴量から評価値を算出するステップと、
算出した評価値をもとに対象物体が含まれるか否かを判定するステップと、
を含み、
前記特徴量は複数の部分領域から算出するものであって、
前記複数の部分領域のうちの少なくとも二つは接していない
ことを特徴とする画像処理方法。
【請求項２】
前記特徴量は、前記複数の部分領域において、
部分領域毎に画素値の総和値を求め、
少なくとも一つ以上の部分領域を選択し、
前記選択した部分領域の画素値の総和値と、
前記選択した部分領域を除く少なくとも一つ以上の部分領域の画素値の総和値とを
差分した値であるとともに、
前記部分領域の形状は矩形であることを特徴とする請求項１記載の画像処理方法。
【請求項３】
前記部分領域は画像のあらかじめ所定の領域群から選択することを特徴とする
請求項１記載の画像処理方法。
【請求項４】
前記所定の領域群は、画像を一定サイズに複数分割した矩形ブロックから複数選択する
ことを特徴とする
請求項３記載の画像処理方法。
【請求項５】
前記評価値は、前記接していない部分領域から算出するだけでなく、
隣接する部分領域からも算出することを特徴とする
請求項１記載の画像処理方法。
【請求項６】
対象物体であるか否かを判定する情報を木構造形式に配置し、
評価値が木構造の葉に配置されていることを特徴とする
請求項１記載の画像処理方法。
【請求項７】
前記学習パラメータは、アンサンブル学習によって求められることを特徴とする
請求項１記載の画像処理方法。
【請求項８】
前記対象物体は顔であることを特徴とする
請求項1記載の画像処理方法。
【請求項９】
カメラなどから入力画像を読み込む入力画像保持部と、
入力画像保持部から入力画像を読みこみ画像の一部を切り出す部分画像切り出し部と、
切り出した部分画像から評価値を算出し、対象物体であるか否かを評価する特徴量評価部と、
を有し、
前記特徴量評価部は、
画像から特徴量の算出と対象物体であるか否かの評価を複数回行い複数の評価結果の総和を求める評価値算出部と、
対象物体であるか否かを前記評価値の総和によって判定する判定部と、
前記評価値算出部における評価値算出と前記判定部における判定処理に用いる学習パラメータ保持部と、
を有し、
前記特徴量は複数の部分領域から算出するものであって、
前記複数の部分領域のうちの少なくとも二つは接していない
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像から物体を検出する装置およびその方法に関するものである。
【背景技術】
【０００２】
従来、画像中の物体（例えば、顔）を検出する画像処理装置および方法としては、顔と顔以外（以下、非顔）のパターンを学習し、その学習したパラメータを入力した識別器によって、顔と非顔を識別する方法が提案されている（例えば、特許文献１参照）。
【０００３】
図４０は、特許文献１の画像処理装置を示すものである。図４０において、部分画像切り出し部１１は、入力された画像から、部分画像を切り出す。図４１に示すように、部分画像は、複数サイズのウィンドウを画像の左上を起点として、順次画像の右下まで、適当な画素（例えば１画素）分を右側または下側にずらしながら走査することで、切り出される。
【０００４】
特徴量評価部１２は複数の識別器の組み合わせで構成される。前記識別器は、ブースティング手法で学習したパラメータで指定する位置において、後述するレクタンギュラーフィーチャー（以下、隣接差分フィルタと呼ぶ）により特徴量を算出する。そして、特徴量評価部は、前記識別器の出力値の重みつき線形和が学習時によって算出した閾値より低ければ非顔に識別し、前記部分画像の識別処理を終了する。一方、閾値以上であれば顔に識別し、次の特徴量評価部に処理がうつる。次の特徴量評価部は、それまでに使用した学習パラメータとは異なるパラメータを用いて評価を行う。このように、複数の特徴量評価部を用いて、評価値を算出していた。
【０００５】
図４２（ａ），（ｂ），（ｃ），（ｄ）は、隣接差分フィルタを図示したものであり、図４２（ｅ）は、隣接差分フィルタを画像に適用したときの例図である。隣接差分フィルタは、隣接した白色矩形と黒色矩形で示され、白色矩形の画素値の総和と黒色矩形の画素値の総和の差を出力する特徴であり、これは、目や口のように隣接間の領域の画素値の差が大きい領域において高い特徴量を出力することを意味する。例えば、図４２（ｅ）は、額の位置にある白色矩形の画素の総和と眉の位置にある黒色矩形の画素の総和との差により特徴量を算出する。この特徴量は、隣接した領域間の差であるため、画像内の局所的な特徴（例えば線成分）に強く反応し、目、眉、口等の顔部品において特徴的な値を出力する。なお、隣接差分フィルタは、一般にはハーライクフィーチャー（Ｈａａｒ−ｌｉｋｅ  ｆｅａｔｕｒｅ）と呼ぶこともある。
【特許文献１】米国特許出願公開第２００２／０１０２０２４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記特許文献１の方法には、隣接領域間の画素値の差を特徴として識別することに課題がある。図４２では、目の横方向のエッジ特徴を算出する隣接差分フィルタについて述べた。しかしながら、この隣接差分フィルタでは、画像内の局所的な特徴（例えば線成分）に強く反応し、目、眉、口等の顔部品において特徴的な値を出力するため、形状の一部が顔部品に類似する非顔領域を顔と誤検出する。例えば、図４３（ａ）に示す横顔について説明する。図４３（ｂ）に示す目と眉との画素値によって得られる特徴量と、図４３（ｃ）に示す白色背景４００１と黒線４００２とで得られる特徴量とが近い値になるため、横線を含む非顔が顔に識別される。
【０００７】
特に、横顔は、正面向きの顔に比べて顔の部品が見える範囲が狭く、隣接差分フィルタによって顔であると特徴づける線成分が少ない。そのため、非顔領域にあるわずかな横線や縦線に対しても顔であると誤識別してしまうため、非顔を顔に誤検出するという課題がある。このように、隣接差分フィルタは、形状の一部が類似する非顔を誤って検出することが多いという課題を有していた。
【０００８】
横顔では正面の顔に比べて顔の部品が見える範囲が狭い。目や口等のように、隣接領域間の画素値の差が特徴となる領域が狭い。そのため、図４０で示したようなわずかな横線が非顔領域に存在した場合に、特徴の差異を見出すことができず、結果として誤識別が多い。
【０００９】
本発明は、前記従来の課題を解決するもので、その目的とするところは、対象物体以外の物体の局所的な形状と対象物体の局所的な形状とが類似する場合において、誤検出を削減すると共に、横顔のように局所的な形状が少ない場合においても検出可能な画像処理装置及び方法を提供するものである。
【課題を解決するための手段】
【００１０】
請求項１記載の画像処理方法では、物体判定を複数回繰り返すことにより評価値を算出し、その評価値によって画像に対象物体が含まれるか否かを識別するものであって、入力画像から部分画像を切り出すステップと、特徴量算出のためのパラメータを入力するステップと、前記パラメータを用いて、切り出した部分画像から特徴量を算出するステップと、特徴量から評価値を算出するステップと、算出した評価値をもとに対象物体が含まれるか否かを判定するステップとを含み、特徴量は複数の部分領域から算出し、複数の部分領域のうちの少なくとも二つは接していない。
【００１１】
請求項２記載の画像処理方法では、前記特徴量は、前記複数の部分領域において、部分領域毎に画素値の総和値を求め、少なくとも一つ以上の部分領域を選択し、前記選択した部分領域の総和値と、前記選択した部分領域を除く少なくとも一つ以上の部分領域の総和値とを差分した値であるとともに、前記部分領域の形状は矩形である。
【００１２】
これにより、複数の矩形領域の画素値の総和を差分することによって特徴量を算出できるとともに、矩形であることを利用して画素値の総和を高速に算出することが可能になる。
【００１３】
請求項３記載の画像処理方法では、部分領域はあらかじめ所定の領域群から選択する。
【００１４】
これにより、ありうる全てのブロック差分フィルタを用いて特徴量を算出する必要がなくなる。たとえば、顔の場合、目、鼻、口等の主要な部品のみから特徴量を算出することができるようになる。つまり、学習時に係るブロック差分フィルタの選択処理量が削減できるため、高速化ができる。
【００１５】
請求項４記載の画像処理方法では、所定の領域群は、画像を一定サイズに複数分割した矩形ブロックから複数選択する。
【００１６】
これにより、画像を一定サイズに分割するができるため、矩形領域の画素値の総和演算をハードウェア化しやすくなる。
【００１７】
請求項５記載の画像処理方法では、評価値は、接していない部分領域から算出するだけでなく、隣接する部分領域からも算出する。
【００１８】
これにより、複数部品間の位置と明るさとの関係情報に加え、隣接差分フィルタによって部品の形状情報も利用することができるため、誤識別を削減できる。したがって、さらに誤検出を削減できる。
【００１９】
請求項６記載の画像処理方法では、対象物体であるか否かを判定する情報を木構造形式に配置し、評価値が木構造の葉に配置されている。
【００２０】
これにより、複数の向きから撮影することで違うアスペクトを持つ物体（例えば横顔と正面の顔）や、違う形状を持つ複数種類の物体群（例えば車種の違う車両群）の両方を識別する場合において、各条件毎に特化した木構造のノードを生成でき、そのノードを用いて物体検出を行うことができるため、複数アスペクトを持つ対象物体を検出できるとともに、さらに誤検出を削減できる。
【００２１】
請求項７記載の画像処理方法では、学習パラメータは、アンサンブル学習によって求められる。
【００２２】
これにより、検出における汎化性能が向上するため、さらに検出率が向上できるとともに、誤検出が最も少なくなるパラメータ群を自動に算出できるため、誤検出を削減できる。
【００２３】
請求項８記載の画像処理方法では、対象物体は顔であることを特徴とする。
【００２４】
これにより、検出のために有用な特徴である目、鼻、口が離れて位置する顔において、目、鼻、口の形状だけでなく、それらの位置関係を特徴として利用できるため、検出精度を向上させることができる。
【発明の効果】
【００２５】
本発明によれば、検出対象物体の複数部品の位置および明るさ情報の大局的な関係を特徴量にして、物体検出を行うことが可能になるため、誤検出を削減できるという効果が得られる。
【発明を実施するための最良の形態】
【００２６】
（実施の形態１）
本実施の形態１では、物体検出の一例として、画像から顔を検出する画像処理装置について開示する。なお、この技術は顔の検出に限られたものではない。
【００２７】
図１は同画像処理装置のブロック図であり、図２は、本実施の形態１における画像処理装置の機能ブロック図である。まず、図１を用いて、本形態の画像処理装置の構成を説明する。図１において、CPU(中央演算処理装置)１０１は、ROM（リードオンリーメモリー）１０２に格納され、図３、図４のフローチャートに沿う画像処理プログラムを実行し、バス１０３を経由し、図２に示す各要素を制御する。
【００２８】
RAM（ランダムアクセスメモリ）１０４およびハードディスク１０５には、図２に示す画像記憶部２０１のための領域の他、CPU１０１がその処理のために必要とする一次記憶領域が確保されている。なお、図２に示す各処理部は、CPU１０１が、ROM１０２に格納された画像処理プログラムを実行することにより行われる。また、図１の例では、インターフェイス１０６にカメラ１０７が接続され、リアルタイムで対象物を含むであろう画像を取得できるようになっている。なお、カメラ１０７は、スチルカメラ／ビデオカメラどちらでもよく、携帯電話に付属するカメラを用いることもできる。
【００２９】
本装置は、画像記憶部２０１と、部分画像切り出し部２０２と、特徴量評価部２０３とを有する。各部の動作については後述する。
【００３０】
図３は、本発明の画像処理方法の処理手順を示すフローチャートである。図３に示す画像処理方法は、図１の画像処理装置によって実行される。
【００３１】
ステップＳ３０１：本装置は、カメラ１０７から画像記憶部２０１に入力された画像を、部分画像切り出し部２０２において、部分画像に切り出す。部分画像の切り出しの詳細は、後述する。
【００３２】
ステップＳ３０２：特徴量評価部２０３において、部分画像から特徴量を算出し、顔であるか否かの識別を行い、その結果を出力する。特徴量評価部での識別処理の詳細は、後述する。
【００３３】
画像から顔を検出するためのフローチャートを図４に、検出動作の例示図を図４１に示す。図４において、（Ｘ、Ｙ）は検出位置の左上座標、Ｓ×Ｓは検出サイズ、ＷＩＤＴＨおよびＨＥＩＧＨＴは、画像の横および縦のピクセル数、ＳＩＺＥＭＡＸはＷＩＤＴＨとＨＥＩＧＨＴとの大きい方の値とする。図４１において、４１０１は入力画像であり、４１０２は、切り出す部分画像の領域である。
【００３４】
まず、検出位置の左上座標（Ｘ，Ｙ）と検出サイズＳ×Ｓの初期設定を行う（ステップＳ４０１）。本実施の形態では、画像の左上座標を原点（０，０）とし、原点を初期検出位置とする。初期設定の後、部分画像切り出し部２０２において、画像記憶部２０１に格納された画像４２０１から、座標（Ｘ、Ｙ）から座標（Ｘ＋Ｓ、Ｙ＋Ｓ）までの部分画像４２０２が切り出される（ステップＳ４０２）。特徴量評価部２０３は、部分画像から、特徴量を算出し、部分画像に顔が含まれるか否かの識別を行う（ステップＳ４０３）。
【００３５】
以上の処理を、画像の右下まで適当な画素（本実施の形態では１画素）分右側にずらす（ステップＳ４０４、ステップＳ４０５）、または下側にずらしながら走査する（ステップＳ４０６、ステップＳ４０７）ことで、順次Ｓ×Ｓ画素の矩形領域を切り出し、顔であるか否かを識別する。また、部分画像のサイズＳが、画像サイズ（本実施の形態では３２０×２４０）まで、適当な倍数（本実施の形態では１．２倍）づつ拡大される（ステップＳ４０８、ステップＳ４０９）ことにより、複数顔サイズを対象とすることができる。
【００３６】
次に、特徴量評価部２０３の処理を説明する。
【００３７】
特徴量評価部２０３は、図５に示すように、評価値算出部５０１と、判定部５０２と、学習パラメータ保持部５０３と、制御部５０４と、制御パラメータ保持部５０５とを有する。評価値算出部５０１は、部分画像から特徴量を算出し、その特徴量を評価することで評価値を算出する。判定部５０２は、前記評価値に基づいて顔であるか否かの判定を行う。学習パラメータ保持部５０３は、評価値算出部５０１で評価値を算出するための学習パラメータ、および、判定部５０２で顔であるか否かの判定に必要となるパラメータとを保持している。制御部５０４は、詳細は後述するが、制御パラメータ保持部５０５から入力された制御パラメータに基づき、再度、特徴量算出処理を行うか否かを制御する。
【００３８】
まず、本実施の形態で用いる特徴量について説明する。
【００３９】
本実施の形態では、図４２に示す従来の隣接差分フィルタのみならず、図６に示すフィルタを用いる。本実施の形態では、図６に示すフィルタを大局差分フィルタと呼ぶ。
【００４０】
隣接差分フィルタは、白色矩形と黒色矩形との一辺が必ず接しているが、大局差分フィルタは、白色矩形と黒色矩形とが1画素以上離れて配置されると定義する。大局差分フィルタは、部品の大局的な位置および明るさの関係によって顔と非顔とを識別する。例えば、顔の場合、眉の黒っぽい領域と頬の白っぽい領域との位置と明るさとの関係から特徴量を算出する。大局差分フィルタは顔部品の特徴に限らず、物体検出全般に利用できる。例えば、横向きの車を検出する場合においては、タイヤの局所的な形状のみを利用した場合には、円形物体が存在する物体を誤検出しやすい。しかしながら、大局差分フィルタを導入することで、タイヤの局所的な形状と、タイヤとサイドミラーとの位置および明るさの関係との両方を用いて、車であるか否かを識別することができるため、誤検出を減らすことができる。
【００４１】
隣接差分フィルタと大局差分フィルタとを利用することにより、局所的な部品形状の類似性に左右されない識別ができる。そのため、部品の形状に類似する横線、縦線を含む背景で生じる誤検出の削減が可能になる。ただし、孤立した２画素の差分値を算出した場合、撮影時に生じるノイズなど外乱要因の影響を受けやすいため、孤立した２画素の差分は用いず、２画素以上の領域同士の差分をとることで特徴量を算出する。これにより、外乱の影響を受けにくい特徴量算出が可能になる。
【００４２】
なお、本実施の形態では、図６では、白色矩形と黒色矩形との2領域の差分による大局差分フィルタを示しているが、３領域以上から特徴量を算出してもよい。図７は、３領域を用いた大局差分フィルタの例である。例えば、2領域の場合、目と頬との位置および明るさの関係から特徴量を算出するが、３領域にすることで、両目および口の位置と明るさとの関係、４領域にすることで、両目と頬および口の位置と明るさとの関係から特徴量を算出できる。このように、３領域以上を使用することにより、多くの情報を利用することができるため、さらに誤検出を削減することができる。
【００４３】
以上によって定義したフィルタは、白色矩形の画素値の総和と黒色矩形の画素値の総和との差により、特徴量を算出する。両フィルタにおいて、どの位置のどのサイズのフィルタを利用して特徴量を算出するかは、学習時に決定される。学習時でのフィルタ選択については、実施の形態２で述べる。
【００４４】
次に、図８を用いて、部分画像を評価する処理の流れを説明する。
【００４５】
まず、評価値算出部５０１は、学習パラメータ保持部５０３から、学習パラメータを読み込み、部分画像の評価値を算出する（Ｓ８０１）。学習パラメータは、あらかじめ設定したものであり、マニュアル設定と自動設定の両方が考えられるが、自動設定（例えばアンサンブル学習による設定）の方が望ましい。
【００４６】
学習パラメータについて説明する。学習パラメータ保持部５０３には、顔の学習結果ＬFｊと非顔の学習結果ＬNFｊ、およびＬFｊとＬNFｊに対応する閾値ＴＨＬｊとフィルタの左上座標、横幅、縦幅、重みの学習パラメータがそれぞれＭ個格納されている（１≦ｊ≦Ｍ）。評価値算出部５０１は、Ｍ個の一部をサンプリングし、評価値を算出する。フィルタの重みは、図４２（ｃ）、（ｄ）計算を簡単化するために設定する。たとえば、図４２（ｃ）を用いた特徴量の計算方法は、図９に示すように（１）２箇所の白色矩形の画素値の総和から黒色矩形の画素値の総和を減算する方法と、（２）白色矩形と黒色矩形をあわせた領域の画素値の総和から黒色領域の画素値の総和を２倍したものを減算する方法との２通りがある。ここで、（２）の方法によると、重み２を設定することで、他のフィルタと同様の計算方法により特徴量を算出できるため、本実施の形態では重みを用意した。パラメータ保持部には、学習パラメータが学習時に生成した順に格納されている。
【００４７】
判定部５０２は、前記評価値に基づき顔であるか否かを識別する（Ｓ８０２）。
【００４８】
その後、制御パラメータ保持部から入力されたｐが０であれば処理を終了する（Ｓ８０３）。ｐはあらかじめ制御パラメータ保持部に格納されている値であり、その値は、検出処理前にあらかじめ決定する。ｐが０でないとき、識別結果が非顔であれば、非顔という出力を行い、処理を終了する（Ｓ８０４）。ｐを値を１減らし（Ｓ８０５）、今までに用いた学習パラメータとは異なるパラメータを読み込み、特徴量算出および判定処理を行う。
【００４９】
本実施の形態では、学習パラメータ保持部のＭ個の学習パラメータから、一部をサンプリングし、その結果を用いて顔と非顔の識別を繰り返し行う方法を説明したが、特徴量評価部を複数個、直列に配置することで同様の処理が可能である。ただし、本実施の形態で述べた方法には、特徴量評価部が１つでよいため回路規模が小さくなるという利点がある。
【００５０】
以下、評価値の算出、および、判定の処理について説明する。
【００５１】
評価値は（数１）によって算出される。
【００５２】
【数１】
2006163562.tif 000003
【００５３】
ここで、Ｘｎはｎ番目に切り出された部分画像を表し、ｈ（Ｘｎ，Ｒｊ、ＬＦｊ、ＬＮＦｊ、ＴＨＬｊ）は評価関数である。白色矩形の左上座標をｘｊ０、ｙｊ０、横幅をｗｊ０、縦幅をｈｊ０、黒色矩形の左上座標をｘｊ１、ｙｊ１、横幅をｗｊ１、縦幅をｈｊ１、重みをｗｅｉｇｈｔｊとし、Ｒｊを、学習パラメータより入力されたフィルタの左上座標、横幅、縦幅、重みを並べた８次元ベクトル（ｘｊ０、ｙｊ０、ｗｊ０、ｈｊ０、ｘｊ１、ｙｊ１、ｗｊ１、ｈｊ１、ｗｅｉｇｈｔｊ）とする。ＬＦｊは顔の学習結果、ＬＮＦｊは非顔の学習結果、ＴＨＬｊは閾値である。学習パラメータ保持部５０３からＭｎ個の学習パラメータおよびその閾値を読み込み、それらの和により評価値が算出される。
【００５４】
この評価関数ｈ（・）は、次式で定義される。
【００５５】
【数２】
2006163562.tif 000004
【００５６】
（数２）は、特徴量ｆｅａｔ（Ｘｎ，Ｒｊ）と閾値ＴＨＬｊとを比較し、ｆｅａｔ（Ｘｎ，Ｒｊ）がＴＨＬｊ以上であれば、顔の学習結果ＬFｊを返し、そうでないとき非顔の学習結果ＬＮＦｊを返す関数である。特徴量ｆｅａｔ（Ｘｎ，Ｒｊ）は、（数３）に示すように、部分画像Ｘｎに対し、Ｒｊで指定される２領域の重みつき差分値により算出される。
【００５７】
【数３】
2006163562.tif 000005
【００５８】
（数３）における、Ａは、ｘｊ０、ｙｊ０、ｘｊ０＋ｗｊ０、ｙｊ０＋ｈｊ０を４点とする白色矩形の画素値の和であり、Ｂは、ｘｊ１、ｙｊ１、ｘｊ１＋ｗｊ１、ｙｊ１＋ｈｊ１を４点とする黒色矩形の画素値の和である。
【００５９】
判定は次のようにして行われる。
【００６０】
（数１）で算出された評価値Ｈ（Ｘｎ）が、判定閾値ｔｈに基づき顔か非顔かのいずれかに判定される。評価値Ｈ（Ｘｎ）がｔｈより大きいとき、顔に判定し、そうでなければ非顔に判定される。判定閾値ｔｈは学習パラメータ保持部５０３から入力される。判定閾値ｔｈは、対象物体、シーンによって変わるため、適宜設定されるが、本実施の形態では０に設定した。
【００６１】
以上のように、本実施の形態によれば、従来フィルタと大局差分フィルタとを用いて評価値を算出することで、部品形状を表す局所的なエッジ特徴と複数部品の位置と明るさとの関係を利用して顔と非顔とを識別することができるため、部品形状に似た形状を有する背景において、誤検出を削減できる。
【００６２】
なお、本実施の形態で示した大局差分フィルタは、矩形領域の差分により特徴量を算出したが、これは矩形に限られるものではなく、領域の形は、円など矩形以外であってもよい。矩形以外の形にすることで、検出対象の物体に適したフィルタを利用できるため、検出性能を向上できる。
【００６３】
また、本実施の形態のように矩形にすることで、文献［Ｆｒａｎｋｌｉｎ  Ｃ．Ｃｒｏｗ  “Ｓｕｍｍｅｄ−Ａｒｅａ  Ｔａｂｌｅｓ  ｆｏｒ  Ｔｅｘｔｕｒｅ  Ｍａｐｐｉｎｇ”Ｉｎ  ＳＩＧＧＲＡＰＨ  ８４、ｐｐ２０７−２１２．ＡＣＭ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ、１９８４．］に示される方法を利用して、矩形内の画素の総和を高速に求めることができる。図１０、図１１を用いてその方法を説明する。まず、図１０に示す加算領域テーブルを用意する。座標（ｘ、ｙ）における加算領域テーブルの値をＴ（ｘ、ｙ）で示す。図１０において、加算領域テーブルＴ（ｘ、ｙ）に格納される値は、黒色領域の画素の総和である。つまり、加算領域テーブルは、画像の左下から、座標（ｘ、ｙ）までの矩形領域の画素の総和を格納している。このテーブルを用いることで、図１１に示す黒色領域の画素の総和は、（数４）で算出できる。
【００６４】
【数４】
2006163562.tif 000006
【００６５】
（数４）により、任意サイズの矩形領域の画素の総和が、４値の加減算で算出でき、高速な処理が可能になる。
【００６６】
なお、大局差分フィルタは次のフィルタも含む。例えば、図４２（ｃ）において、左の白色領域の画素の総和と、右の白色領域の画素の総和との差を算出することで、フィルタは隣接しているがブロック差分フィルタと同様な特徴量が得られる。この場合、黒色領域は特徴量を算出するうえでは不要であり、実際に特徴量を算出するために使用しているのは、左の白色矩形および右の白色矩形であり、両矩形は、黒色矩形に阻まれて接していない。このように特徴量を算出するうえで必要な矩形が接していない場合は、本実施の形態で定義したフィルタと同等である。
【００６７】
（実施の形態２）
本実施の形態２では、実施の形態１で述べた検出を実現するための学習パラメータを自動的に決定するための学習方法について述べる。
【００６８】
学習手法の１つとして、「アンサンブル学習」という手法がある。ここでは、アンサンブル学習に従った学習方法により、精度良く自動的に学習パラメータを決定する。アンサンブル学習とは、汎化能力の向上のために、個々に学習した学習パラメータを入力した複数の評価器を組み合わせることで、より汎化能力の高い識別が可能となる学習法である。アンサンブル学習の例として、バギングやブースティングなどがある。
【００６９】
図１２は学習の流れを示すフローチャートである。まず、学習データベースを用意する。学習データベースとは、学習に用いる顔と非顔の画像が集められたものである。本実施の形態では、簡単化のため、学習画像の顔画像はあらかじめ顔のみが切り出されているものを想定する。非顔画像は、森や町などの顔を含まない画像である。学習データベース中の画像枚数をＬＮｕｍとする。本実施の形態では、これらの画像が、２４×２４ピクセルに拡縮されているとする。
【００７０】
次に、教師データＴｉ（１≦ｉ≦ＬＮｕｍ）を、学習データベース中の各画像にそれぞれ割り当てる（S１２０１）。この教師データは、顔画像のとき「Ｔｉ＝＋１」、非顔画像のとき「Ｔｉ＝−１」と設定される。その後、アンサンブル学習により学習パラメータを生成する（Ｓ１２０２）。
【００７１】
図１３にアンサンブル学習を行う学習部のブロック図を示す。学習部は、顔および非顔の画像が格納された学習データベース格納部１３０１、学習データベースの一部をサンプリングするサンプルフィルタ部１３０２、サンプルフィルタ部から出力されるトレーニングデータを用いて学習パラメータを算出する学習処理部１３０３、学習データベースを用いて算出した学習パラメータの評価を行う評価部１３０４からなる。サンプルフィルタ部１３０２でサンプリングされた学習データが、学習処理部１３０３に入力され、学習パラメータが算出される。その後、評価部１３０４において、学習データベースが学習パラメータを用いて評価され、その結果に基づいて、サンプルフィルタ部は、次にサンプリングする学習データを変更する。以上を繰り返すことで、複数の学習パラメータを生成できる。
【００７２】
学習処理部１３０３のフローチャートを図１４に示す。まず、インデックスｉを０に初期化する（Ｓ１４０１）。その後、サンプルフィルタ部１３０２で学習データベースの一部をサンプリングし（以下、サンプリングしたデータをトレーニングデータと呼ぶ）、インデックスｉの隣接差分フィルタもしくは大局差分フィルタにより、全トレーニングデータから、特徴量を算出することで、特徴量ヒストグラムを生成する。（Ｓ１４０２）。両フィルタの位置、サイズ設定については、後述される。このヒストグラムにおいて、顔と非顔を切り分ける閾値を変化させ、訓練誤差が最小となる閾値を求める（Ｓ１４０３）。そのときの訓練誤差の値をＬｅｒｒｏｒ、閾値をＴＨＬ、顔、非顔の学習結果をＬＦ、ＬＮＦおよびフィルタの位置を（Ｌｘ０、Ｌｙ０、Ｌｘ１、Ｌｙ１）、横幅をＬｗ０、Ｌｗ１、縦幅をＬｈ０、Ｌｈ１、重みをｗｅｉｇｈｔとする（Ｓ１４０４）。図１５に、フィルタを当てはめた例と、その出力値のヒストグラム例を示す。次に、インデックスｉを１に更新し（Ｓ１４０５）、インデックスｉのフィルタを利用して、ヒストグラムを算出し（Ｓ１４０６）、訓練誤差の最小値Ｌｅｒｒｏｒ２とそのときの閾値ＴＨＬ２、顔および非顔の学習結果Ｆ２、ＮＦ２を求める（Ｓ１４０７）。ここで求めた訓練誤差Ｌｅｒｒｏｒ２が先ほど算出した訓練誤差の値Ｌｅｒｒｏｒより小さければ、ＬｅｒｒｏｒにLｅｒｏｒｒ２を、ＴＨＬにＴＨＬ２の値を代入し、そのときのフィルタの位置、横幅、縦幅、重みの値、および顔と非顔の学習結果でそれぞれ（Ｌｘ０、Ｌｙ０、Ｌｘ１、Ｌｙ１）、Ｌｗ０、Ｌｗ１、Ｌｈ０、Ｌｈ１、ｗｅｉｇｈｔ、ＬＦ、ＬＮＦを更新する（Ｓ１４０８、Ｓ１４０９）。その後、インデックスｉに１を加える（Ｓ１４１０）。以上をＦｎｕｍ個の全フィルタに対し繰り返し行うことで、最も訓練誤差が最小となるフィルタの位置、横幅、縦幅、重み、閾値、顔、非顔の学習結果を学習パラメータとして出力する。
【００７３】
以上の学習処理で用いる隣接差分フィルタ、および、大局差分フィルタの矩形位置、サイズ、重みは次のようにして算出される。
【００７４】
まず、隣接差分フィルタは、次のように算出される。図１６、図１７、図１８、図１９、図２０、図２１の処理フローにより、白色矩形と黒色矩形との左上座標、横幅、縦幅が決定される。白色矩形の左上座標を（ｘｉ０、ｙｉ０）、横幅をｗｉ０、縦幅をｈｉ０とし、黒色矩形の左上座標を（ｘｉ１、ｙｉ１）、横幅をｗｉ１、縦幅をｈｉ１、重みをｗｅｉｇｈｔｉとする。図１６のＷＩＤＴＨとＨＥＩＧＨＴは、学習画像の切り出しサイズであり、本実施の形態では、どちらともが２４に設定される。まず、白色矩形の左上座標、横幅、縦幅の初期設定を行う（Ｓ１６０１）。設定された白色矩形に対する黒色矩形の左上座標、横幅、縦幅を、図１７、図１８、図１９、図２０、図２１の処理フローにより求める（Ｓ１６０２）。この処理を、図１６に示すように白色矩形の左上座標、横幅、縦幅をそれぞれ１ピクセルずらしながら繰り返す。
【００７５】
図１７は、一つの白色矩形に対し図４２（ａ）、（ｂ）、（ｃ）、（ｄ）の４種類の黒色矩形の左上座標、横幅、縦幅を順に求めるフローである。図１８、図１９は、それぞれ白色矩形の右側、下側に黒色矩形を配置する処理フローである。まず、黒色矩形が範囲内におさまるかどうかを調べる（Ｓ１８０１、Ｓ１９０１）。範囲内におさまる場合は、ｘｉ０、ｙｉ０、ｗｉ０、ｈｉ０に白色矩形の左上座標、横幅、縦幅を代入し、ｘｉ１、ｙｉ１、ｗｉ１、ｈｉ１、ｗｅｉｇｈｔｉに、黒色矩形の左上座標、横幅、縦幅と重み１を代入し（Ｓ１８０２、Ｓ１９０２）、ｉが１増加される（Ｓ１８０３、Ｓ１９０３）。
【００７６】
図２０、図２１は、図４２（ｃ）、（ｄ）のように白色矩形の間に黒色矩形を配置する処理フローである。まず、図２０の場合は、白色矩形の横幅が３で割り切れるかどうかを調べ（Ｓ２００１）、図１９の場合は、白色矩形の縦幅が３で割り切れるかどうかを調べる（Ｓ２１０１）。その後、３で割り切れる場合は、ｘｉ０、ｙｉ０、ｗｉ０、ｈｉ０に白色矩形の左上座標、横幅、縦幅を代入し、ｘｉ１、ｙｉ１、ｗｉ１、ｈｉ１、ｗｅｉｇｈｔｉに、黒色矩形の左上座標、横幅、縦幅と重み２を代入し（Ｓ２００２、Ｓ２１０２）、ｉが１増加される（Ｓ２００３、Ｓ２１０３）。
【００７７】
次に、大局差分フィルタの白色矩形と黒色矩形の左上座標、横幅、縦幅は、図２２、図２３、図２４の処理フローにより求められる。ここで、（ｘｉ０、ｙｉ０）、ｗｉ０、ｈｉ０は、それぞれ白色矩形の左上座標、横幅、縦幅であり、（ｘｉ１、ｙｉ１）、ｗｉ１、ｈｉ１、ｗｅｉｇｈｔｉは、それぞれ黒色矩形の左上座標、横幅、縦幅、重みである。
【００７８】
図２２の処理フローにより、大局差分フィルタの白色矩形および黒色矩形の左上座標、横幅、縦幅が決定される。まず、白色矩形の左上座標、横幅、縦幅の初期設定を行う（Ｓ２２０１）。設定された白色矩形に対応する黒色矩形が、図２３、図２４の処理フローで求められる（Ｓ２２０２）。この処理が、図２２に示すように白色矩形の左上座標、横幅、縦幅を１ピクセルずらしながら繰り返される。
【００７９】
その後、図２３、図２４の処理フローにより、黒色矩形の左上座標、横幅、縦幅が決定される。まず、黒色矩形の左上座標を初期設定する（Ｓ２３０１）。その後、後述する黒色領域の設定処理を行い（Ｓ２３０２）、黒色領域の左上座標を１画素ずらす（Ｓ２３０３、Ｓ２３０４、Ｓ２３０５、Ｓ２３０６）。図２４は、黒色領域の設定処理を示す。先述したように大局差分フィルタは、白色矩形と黒色矩形とが、１画素以上離れる。そこで、まず、黒色領域と白色領域とで、１画素以上離れているか否かを調べる（Ｓ２４０１、Ｓ２４０２、Ｓ２４０３、Ｓ２４０４）。１画素以上離れていれば、ｘｉ０、ｙｉ０、ｗｉ０、ｈｉ０にそれぞれ白色矩形の左上座標、横幅、縦幅を代入し、ｘｉ１、ｙｉ１、ｗｉ１、ｈｉ１、ｗｅｉｇｈｔｉに、それぞれ黒色矩形の左上座標、横幅、縦幅と重み１を代入する（Ｓ２４０５）。その後、ｉが１増加される（Ｓ２４０６）。
【００８０】
以上の処理によって総数Ｆｎｕｍ個の隣接差分フィルタおよび大局差分フィルタの位置が決定される。
【００８１】
以上に示したアンサンブル学習による学習方法については[Ｔ,Ｇ, Ｄｉｅｔｔｅｒｉｃｈ. ”Ｅｎｓｅｍbｌｅ ｍｅｔｈｏｄｓ ｉｎ ｍaｃｈｉｎｅ ｌｅaｒｎｉｎｇ“ Ｉｎ Ｍｕｌｔｉｐｌｅ Ｃｌaｓｓｉｅｒ Ｓｙｓｔｅｍｓ. Ｆｉｒｓｔ Ｉｎｔｅｒｎaｔｉｏｎaｌ Ｗｏｒｋｓｈｏｐ, ＭＣＳ２０００, Ｃaｇｌｉaｒｉ ｐ.１-１５, ２０００ ]に詳しい。したがって、ここでは、これ以上の説明は省略する。
【００８２】
以上に示した学習処理により、（数１）、（数２）、（数３）で用いる学習パラメータをＭ個生成する。この個数Ｍが多いほど、精度の高い識別が可能になるが、検出時の特徴量の判定に要する計算量は増加する。したがって、目的に応じて決めればよい。
【００８３】
以上までに述べた学習方法によって学習することで、自動的に、隣接差分フィルタと大局差分フィルタの両方から最も良いフィルタ群を選ぶことができるため、部品形状が顔に似ている背景と、部品の大局的な位置と明るさとが顔に似ている背景（例えば眉らしいところと頬らしいところとの位置および明るさの関係が似ている背景）の両方の場合に対し誤検出をおこさないフィルタ群に基づく学習パラメータを自動的に設定することができる。
【００８４】
（実施の形態３）
本実施の形態３においては、実施の形態１、２に示した大局差分フィルタの代わりにブロックで区切った領域間の差分を用いることで効率的に学習、検出できるブロック差分フィルタを用いた画像処理装置について開示する。
【００８５】
図２５、図２６は、本実施の形態３による画像処理装置および学習部のブロック図である。図示しているように図２、図１３に関する部分の構成は全く同じであるが、特徴量評価部２５０３および学習処理部２６０３で使用する大局差分フィルタが実施の形態１、２とは異なる。したがって、実施の形態１、２とは異なる大局差分フィルタの設定に係る処理フローについてのみ説明を行う。
【００８６】
実施の形態２では、部分画像において設定可能な全ての大局差分フィルタを用いて学習処理を行っていた。しかしながら、大局差分フィルタが効率的に機能するのは、差分をとるために選択された領域（以下、ブロック領域）が、明るいまたは暗いといった特徴的な明るさの場合である。それは、例えば図６に示すようにブロック領域内に目鼻口等の顔部品が含まれる領域である。
【００８７】
ブロック領域の画素値の和は、ブロック領域内に眉など明るさに特徴をもつ顔部品の影響を強く受ける。ブロック領域内に眉を含む場合を例にして説明する。眉は顔の他の部分より暗い。そのため、眉を含むブロック領域の画素値の和は、眉の画素値の影響により小さな値になる。ブロック領域を数ピクセル動かしたとしても、眉が含まれる場合は、ブロック領域の画素値の和は小さいままであり、画素値の和に大きな変化はない。このことから、眉を含むブロックの近傍では、ブロック内の画素値の和は近い値が得られる。以上のことから、全ブロック領域を使用した大局差分フィルタは、冗長なブロック領域を含むといえる。
【００８８】
そこで、本実施の形態では、大局差分フィルタを、実施の形態２で示した内容に代えて、画像を図２７に示すようなブロックに分け、そのブロックの組み合わせによって定義する。以下、本実施の形態で定義するフィルタをブロック差分フィルタと呼ぶ。ブロック領域の左上座標、横幅、縦幅は、図２８に示す処理フローにより求められる。
【００８９】
ブロック差分フィルタは、２つのブロック領域からなる。それらをブロック領域１、ブロック領域２と定義する。まず、ブロック領域１の左上座標、横幅、縦幅の初期設定を行う（Ｓ２８０１）。設定されたブロック領域１に対するブロック領域２を、図２９、図３０の処理フローにより求める（Ｓ２８０２）。この処理を、図２８に示すようにブロック領域１の左上座標、横幅、縦幅をブロック領域の幅ｗだけずらしながら繰り返す。
【００９０】
図２９、図３０の処理フローにより、ブロック領域２の左上座標、横幅、縦幅が決定される。まず、ブロック領域２の左上座標を初期設定する（Ｓ２９０１）。その後、後述するブロック領域２の設定処理を行い（Ｓ２９０２）、ブロック領域２の左上座標をブロック領域の幅ｗだけずらす（Ｓ２９０３、Ｓ２９０４、Ｓ２９０５、Ｓ２９０６）。図３０は、ブロック領域２の設定処理を示す。ブロック差分フィルタでは、ブロック領域１の辺とブロック領域２の辺とは接していてはならない。そこで、まず、ブロック領域１とブロック領域２とが、接しているか否かを調べる（Ｓ３００１、Ｓ３００２、Ｓ３００３、Ｓ３００４）。もし、接していなければ、ｘｉ０、ｙｉ０、ｗｉ０、ｈｉ０にブロック領域１の左上座標、横幅、縦幅を代入し、ｘｉ１、ｙｉ１、ｗｉ１、ｈｉ１、ｗｅｉｇｈｔｉに、ブロック領域２の左上座標、横幅、縦幅と重み１を代入し（Ｓ３００５）、ｉが１増加される（Ｓ３００６）。
【００９１】
学習部の処理は、学習処理部２６０３において、学習データベースからサンプルフィルタ部２６０２によってサンプルされたトレーニングデータに対して全フィルタを適用し、ヒストグラムを算出する処理が大部分を占めるため、学習処理量はフィルタ数に比例する。例えば、部分画像のサイズを２４×２４として使用フィルタ数を試算すると、実施の形態２では、１５５６２０４個のフィルタを用いるが、本実施の形態によると２１０７２個のフィルタを用いて学習処理を行うことになる。したがって、学習に要する処理量が約１／７３８になることで、効率的な処理が可能になる。
【００９２】
以上のように、本実施の形態によれば、顔の大局的な位置と明るさとの関係を抽出するブロック差分フィルタを効率的に使用することで、学習に要する処理量が削減できるため、学習処理時間の削減が可能になるという効果がある。
【００９３】
また、ブロック差分フィルタを使用することで、学習時間が短くなることにより、短時間に多数の学習パラメータを生成できる。学習パラメータが増加すると多くのフィルタを用いて検出を行うことができるため、検出精度が高くなるという効果もある。
【００９４】
なお、本実施の形態では、一定サイズのブロックに区切った領域を利用したが、必ずしも区切った領域が一定サイズであるである必要はない。図３１に示すように、正面顔において特徴的な場所は、目、鼻、口、耳等の顔を構成する部品である。例えば、図３１に示す矩形領域３１０１のように、矩形領域を部品位置に決めておき、この領域を用いて特徴量を算出することで、さらに処理量を削減できる。また、この部品の領域は、マニュアル設定と自動設定とが考えられるが、自動設定（例えば、ベイズ推定による顔部品検出結果を利用）のほうが望ましい。
【００９５】
（実施の形態４）
本実施の形態４においては、複数方向を向いた顔の検出性能を向上できる画像処理装置について開示する。
【００９６】
図３２、図３３は、本実施の形態４における特徴量評価部および学習部のブロック図である。図３２において、図５に関する部分の構成は全く同じであるが、評価値算出部３２０１が異なる。また、図３３において、図１３、図２６の構成にノード処理部３３０５を追加している。本実施の形態では、実施の形態１、２、３とは異なる評価値算出部３２０１と、ノード処理部３３０５の説明を行う。
【００９７】
実施の形態１の評価値算出部５０１と本実施の形態４の評価値算出部３２０１とは、評価値算出方法が異なる。まず、実地の形態１と本実施の形態との動作の違いを比較するために、実施の形態１における評価値算出方法の動作説明図を図３４に、本実施の形態における評価値算出方法の動作説明図を図３５に示す。なお、図３４、図３５では便宜上、（数２）にｊ番目の学習パラメータを入力したものをｈ（・ｊ）で表記している。
【００９８】
実施の形態１では、図３４に示すように、（数２）を用いて算出されたＭｎ個の値の和で評価値を算出する。一方、本実施の形態は、図３５に示すように、（数２）を二分木の木構造に配置する。木構造の各要素３５０１、３５０２、３５０３をノードと呼ぶ。特に、ノード３５０１を根と呼び、ノード３５０３を末端ノード、または、葉と呼ぶ。また、ノード３５０１は、ノード３５０２の親ノードと呼び、ノード３５０２は、ノード３５０１の子ノードと呼ぶ。
【００９９】
図３６は、左向きの顔画像３６０１と正面向きの顔画像３６０２とが入力されたときにおける評価値算出処理の例図である。このとき、図３６の各ノードは、入力された部分画像を、顔画像に識別したとき、左のノードに処理が遷移し、そうでないと識別したとき、右のノードに処理が遷移する。まず、ノード３６０３によって識別処理が行われる。ノード３６０３は、正面向きであるか否かを識別できる学習パラメータが入力されているとする。このとき、顔画像３６０１は正面向きではないため、ノード３６０３で正面向きの顔ではないと識別され、右のノード３６０５に処理が遷移する。一方、正面顔画像３６０２は、左のノード３６０４に遷移する。ノード３６０４にも、正面向きであるか否かを識別する学習パラメータが入力されているとする。これにより、正面顔画像３６０２は、左のノード３６０６に遷移する。ノード３６０５には、左向きであるか否かを識別する学習パラメータが入力されているとする。このとき、顔画像３６０１は、左向きの顔であると識別されるため、次の処理は左のノード３６０７に遷移する。このように末端ノードまで識別処理を繰り返す。最終的に識別を行う評価値は、末端ノードに到達するまでのノードで算出された識別値と末端ノードでの識別結果を加えた値である。
【０１００】
各ノードでの識別値は（数２）で算出する。（数２）は、顔に判定すればFｊを、非顔に判定すればNFｊを返す。（数２）がFｊであれば左のノードに、NFｊであれば右のノードに処理を遷移する。末端ノードは、各ノードにおける識別値Fｊ、または、NFｊを加えることで評価値を得る。
【０１０１】
以上のように各向き顔であるか否かを判定するノードを木構造に配置することで、左や右などの向き顔を識別できるノードを利用することができるため、正面向き以外の顔を対象とした場合においても高精度な顔検出が可能になる。
【０１０２】
図３７、図３８は、評価値算出部３２０１のブロック図および処理フローである。図３７は、特徴量算出部３７０１と末端ノード判定部３７０２とノード遷移部３７０３とからなる。特徴量算出部３７０１は、実施の形態３と同様の方法で特徴量の算出を行う。末端ノード判定部３７０２は、先述した木構造における末端ノードであるか否かを判定する。ノード遷移部３７０３は、次に処理すべきノードに処理を遷移する。
【０１０３】
次に、評価値算出部３２０１の処理フローを説明する。まず、ｉおよびｊを０に初期化する（Ｓ３８０１）。（数３）により部分画像から特徴量ｆｅａｔ（Ｘｎ，Ｒｊ）を算出する（Ｓ３８０２）。その後、ｉにｆｅａｔ（Ｘｎ，Ｒｊ）を加え（Ｓ３８０３）、ｊが末端ノードである場合には、処理が終了する。ノードが、末端ノードであるか否かは末端フラグｆｌａｇｊで判定する。末端フラグの設定は後述する。ノードが末端ノードのとき、末端フラグｆｌａｇｊを１とし、そうでない場合には、末端フラグｆｌａｇｊを０になる（Ｓ３８０４）。末端ノードでない場合には、ｆｅａｔ（Ｘｎ，Ｒｊ）の値を用いて、次に分岐する分岐先ｎを求める（Ｓ３８０５）。分岐先ｎを、（数５）で算出する。（数５）における、ＴＨＬｊ、ｌｅｆｔｊ、ｒｉｇｈｔｊの設定は後述する。
【０１０４】
【数５】
2006163562.tif 000007
【０１０５】
その後、ｎをｊに代入する（Ｓ３８０６）。
【０１０６】
次に、本実施の形態において、学習部に追加したノード処理部３３０５の説明を行う。ノード処理部は、評価部３３０５によって、学習処理部３３０４で生成した学習パラメータを評価した後に、現ノードが末端ノードであるかの判定と遷移すべきノード番号算出と次ノードで使用するトレーニングデータの選択とを行う。
【０１０７】
ノード処理部３３０５のフローチャートを図３９に示す。まず、末端ノードであるかの判定を行い、ｆｌａｇｊの設定を行う（Ｓ３９０１）。サンプルフィルタ部によってサンプルされるトレーニングデータの数によって、末端ノードであるか否かが決定される。詳細は後述するが、ノードに入力されるトレーニングデータは、親ノードでの識別結果によって子ノード毎に振り分けわれる。これにより、子ノードの学習に用いるトレーニングデータは、親ノードの学習に用いたトレーニングデータ数以下になる。したがって、ノード数が増加すると、各ノードに振り分けられるトレーニングデータが減少する。このことから、トレーニングデータ数が、一定数以下（本実施の形態では、学習データベース数Ｌｎｕｍの１０分の１以下）のときに、末端ノードであると判定し、ｆｌａｇｊを１とし、そうでなければｆｌａｇｊを０とする。末端ノードと判定された場合には、ノード処理部の処理を終了する。
【０１０８】
末端ノードでない場合は、次に遷移するノード番号の算出を行う（Ｓ３９０２）。本実施の形態では二分木の木構造を用いるため、次ノードの番号は、現ノード番号ｊを用いて、（数６）により算出される。
【０１０９】
【数６】
2006163562.tif 000008
【０１１０】
最後に、次ノードｌｅｆｔｊ、ｒｉｇｈｔｊで使用するトレーニングデータを選択する（Ｓ３９０３）。現ノードで用いたトレーニングデータのうち、ｔ番目のものをＬｔとする。Ｌｔがノードｌｅｆｔｊと、ノードｒｉｇｈｔｊのどちらの学習に用いられるかは、（数７）によって決定される。
【０１１１】
【数７】
2006163562.tif 000009
【０１１２】
（数７）のｆｅａｔ（Ｌｔ，Ｒｊ）によって、トレーニングデータＬｔが、ｌｅｆｔｊＤＢとｒｉｇｈｔｊＤＢとに振り分けられる。ｌｅｆｔｊＤＢは、ノードｌｅｆｔｊで使用されるトレーニングデータであり、ｒｉｇｈｔｊＤＢは、ノードｒｉｇｈｔｊで使用されるトレーニングデータである。この選択により、例えばノードｊが、正面向きの顔を識別できるノードの場合、ｌｅｆｔｊＤＢには、正面向きの顔画像が集まり、ｒｉｇｈｔｊＤＢには、左や右などの向き顔が選択される。この出力結果が、サンプルフィルタ部３３０２に入力される。ノードｌｅｆｔｊ、およびノードｒｉｇｈｔｊの学習の際には、ここで振り分けられたｌｅｆｔｊＤＢ、および、ｒｉｇｈｔｊＤＢからトレーニングデータを選択する。
【０１１３】
以上により、次のノードの学習に使用される学習データベースが振り分けられることによって、正面向きだけでなく、左や右などの向きを識別できるノードを生成できる。
【０１１４】
また、本実施の形態では、２分木を用いたが、一般に、ｎ分木でもかまわない。例えば、ｎを大きくすることで、一度に多くの顔向き毎に分割することができるため、検出時に遷移するノード数を削減できる。それにより、検出処理が高速になるという利点がある。
【０１１５】
以上のように、本実施の形態によれば、評価値の算出に木構造を用いることで、正面向きだけでなく、左や右などを向いた顔を識別できるようにノードを生成できるため、正面以外を向いた顔を高精度に検出できるという効果がある。
【０１１６】
なお、この技術は顔に限られたものではなく、特に、向きや光のあたり方が変わることで見え方の変化が大きい他の物体検出、若しくは種類の違う同一名称の物体（例えば車種の違う車両）を検出する場合においても同等の効果を有する。
【産業上の利用可能性】
【０１１７】
本発明にかかる画像処理装置、および画像処理方法は、検出対象物体ではない領域で生ずる誤検出を削減する物体検出機能を有し、物体検出・認識によって実現される画像分類、検索機能やセキュリティ向け等として有用である。
【図面の簡単な説明】
【０１１８】
【図１】本発明の実施の形態１における画像処理装置のブロック図
【図２】同画像処理方法の機能ブロック図
【図３】同画像処理方法の処理手順を示すフローチャート
【図４】同画像処理方法の物体検出手順を示すフローチャート
【図５】特徴量評価部２０３のブロック図
【図６】大局差分フィルタの例示図
【図７】同大局差分フィルタの例示図
【図８】特徴量評価部２０３のフローチャート
【図９】隣接差分フィルタの説明図
【図１０】加算領域テーブルの説明図
【図１１】同加算領域テーブルの説明図
【図１２】学習部のフローチャート
【図１３】学習処理のブロック図
【図１４】学習処理部のフローチャート
【図１５】学習パラメータ算出の説明図
【図１６】隣接差分フィルタ位置を算出するフローチャート
【図１７】同隣接差分フィルタ位置を算出するフローチャート
【図１８】同隣接差分フィルタ位置を算出するフローチャート
【図１９】同隣接差分フィルタ位置を算出するフローチャート
【図２０】同隣接差分フィルタ位置を算出するフローチャート
【図２１】同隣接差分フィルタ位置を算出するフローチャート
【図２２】大局差分フィルタ位置を算出するフローチャート
【図２３】同大局差分フィルタ位置を算出するフローチャート
【図２４】同大局差分フィルタ位置を算出するフローチャート
【図２５】実施の形態３における画像処理方法のブロック図
【図２６】実施の形態３における学習処理のブロック図
【図２７】ブロック差分フィルタの例示図
【図２８】実施の形態３におけるブロック差分フィルタ位置を算出するフローチャート
【図２９】同ブロック差分フィルタ位置を算出するフローチャート
【図３０】同ブロック差分フィルタ位置を算出するフローチャート
【図３１】特徴量算出領域の説明図
【図３２】実施の形態４における画像処理方法のブロック図
【図３３】実施の形態４における学習処理のブロック図
【図３４】実施の形態１における評価値算出の説明図
【図３５】実施の形態４における評価値算出の説明図
【図３６】実施の形態４における顔検出処理の説明図
【図３７】実施の形態４における評価値算出部３２０１のブロック図
【図３８】実施の形態４における評価値算出部３２０１のフローチャート
【図３９】実施の形態４におけるノード処理部３３０５のフローチャート
【図４０】従来の画像処理装置のブロック図
【図４１】画像からの物体検出の説明図
【図４２】隣接差分フィルタの説明図
【図４３】隣接差分フィルタの説明図
【符号の説明】
【０１１９】
２０１    画像記憶部
２０２    部分画像切り出し部
２０３    特徴量算出部
２０３    特徴量評価部
５０１    評価値算出部
５０２    判定部
５０３    制御部
５０４    学習パラメータ保持部
５０５    制御パラメータ保持部
１３０１    学習データベース格納部
１３０２    サンプルフィルタ部
１３０３    学習処理部
１３０４    評価部
２５０１    画像記憶部
２５０２    部分画像切り出し部
２５０３    特徴量算出部
２６０１    学習データベース格納部
２６０２    サンプルフィルタ部
２６０３    学習処理部
２６０４    評価部
３３０１    学習データベース格納部
３３０２    サンプルフィルタ部
３３０３    学習処理部
３３０４    評価部
３３０５    ノード処理部
３５０１    根ノード
３５０２    ノード
３５０３    末端ノード
【図１】
2006163562.tif 000010
【図２】
2006163562.tif 000011
【図３】
2006163562.tif 000012
【図４】
2006163562.tif 000013
【図５】
2006163562.tif 000014
【図６】
2006163562.tif 000015
【図７】
2006163562.tif 000016
【図８】
2006163562.tif 000017
【図９】
2006163562.tif 000018
【図１０】
2006163562.tif 000019
【図１１】
2006163562.tif 000020
【図１２】
2006163562.tif 000021
【図１３】
2006163562.tif 000022
【図１４】
2006163562.tif 000023
【図１５】
2006163562.tif 000024
【図１６】
2006163562.tif 000025
【図１７】
2006163562.tif 000026
【図１８】
2006163562.tif 000027
【図１９】
2006163562.tif 000028
【図２０】
2006163562.tif 000029
【図２１】
2006163562.tif 000030
【図２２】
2006163562.tif 000031
【図２３】
2006163562.tif 000032
【図２４】
2006163562.tif 000033
【図２５】
2006163562.tif 000034
【図２６】
2006163562.tif 000035
【図２７】
2006163562.tif 000036
【図２８】
2006163562.tif 000037
【図２９】
2006163562.tif 000038
【図３０】
2006163562.tif 000039
【図３１】
2006163562.tif 000040
【図３２】
2006163562.tif 000041
【図３３】
2006163562.tif 000042
【図３４】
2006163562.tif 000043
【図３５】
2006163562.tif 000044
【図３６】
2006163562.tif 000045
【図３７】
2006163562.tif 000046
【図３８】
2006163562.tif 000047
【図３９】
2006163562.tif 000048
【図４０】
2006163562.tif 000049
【図４１】
2006163562.tif 000050
【図４２】
2006163562.tif 000051
【図４３】
2006163562.tif 000052