(57)【要約】【課題】演算量を低減してリアルタイム性を格段と向上し得る顔検出装置及びその方法、ロボット装置、並びにプログラム及び記録媒体を提供する。【解決手段】顔検出装置は、スケール変換決定部９０にて入力画像のスケール及び平均顔を示すテンプレートサイズを決定し、ウィンドウ切り出し部９１にて、ウィンドウ画像を切り出し、このウィンドウ画像をテンプレートと共にテンプレートマッチング部９２に送出する。テンプレートマッチング部９２は、入力画像とテンプレートとの相関をとった相関値の２次元配列であるマッチング結果画像を生成し、このマッチング結果画像をテンプレートと同一サイズの複数の領域に分割して各分割領域毎に相関値の最大値を求め、この最大値のうち所定の閾値以上のものを顔候補として抽出する。その後、スケール毎に同様の処理を繰り返し、前処理をして、パターン認識部９５にてＳＶＭにより顔候補から顔画像を識別する。【選択図】　図１２
2004030629.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から対象物の顔領域を抽出する顔検出装置において、撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成手段と、
上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出手段と、
上記マッチング結果における上記顔候補に相当する入力画像領域から上記顔領域を識別する識別手段と
を有することを特徴とする顔検出装置。
【請求項２】
上記顔候補抽出手段は、上記マッチング結果を複数の領域に分割し、この各分割領域毎に少なくとも相関値の最大値を顔候補として抽出する
ことを特徴とする請求項１記載の顔検出装置。
【請求項３】
上記分割領域のサイズは、上記テンプレートのサイズ以下である
ことを特徴とする請求項２記載の顔検出装置。
【請求項４】
異なるサイズのテンプレートから上記マッチング結果生成手段に入力する上記テンプレートのサイズを決定するテンプレートサイズ決定手段を有する
ことを特徴とする請求項１記載の顔検出装置。
【請求項５】
上記テンプレートサイズ決定手段は、予め検出された顔領域と同一サイズのテンプレートを選択する
ことを特徴とする請求項４記載の顔検出装置。
【請求項６】
上記テンプレートサイズ決定手段は、上記入力画像における上記対象物との距離情報が入力され、この距離情報に基づき上記テンプレートを選択する
ことを特徴とする請求項４記載の顔検出装置。
【請求項７】
上記マッチング結果生成手段は、上記異なるサイズのテンプレートが順次入力され各テンプレートに対応する上記マッチング結果を生成する
ことを特徴とする請求項４記載の顔検出装置。
【請求項８】
上記顔候補抽出手段は、上記各分割領域の相関値の最大値のうち、所定の閾値以上のもののみを顔候補として抽出する
ことを特徴とする請求項２記載の顔検出装置。
【請求項９】
相関値の集合である上記マッチング結果は、上記入力画像をスキャンして所定画素ずつずらしながら移動させた上記テンプレートと上記入力画像との相関値の集合であって、上記テンプレートの移動に伴い配列された２次元配列である
ことを特徴とする請求項２記載の顔検出装置。
【請求項１０】
上記顔候補抽出手段は、上記各分割領域の相関値の最大値を有する点を第１の顔候補とし、この第１の顔候補近傍の点を第２の顔候補として上記第１及び第２の顔候補を顔候補として抽出する
ことを特徴とする請求項９記載の顔検出装置。
【請求項１１】
上記顔候補抽出手段は、上記第１の顔候補近傍の点のうち、該第１の顔候補近傍の点に対応する上記テンプレートサイズの入力画像領域における肌色領域の占有率が所定の閾値以上である点を第２の顔候補として抽出する
ことを特徴とする請求項１０記載の顔検出装置。
【請求項１２】
上記顔候補抽出手段は、予め学習した顔色情報を有し、上記第１の顔候補近傍の点のうち、該第１の顔候補近傍の点に対応する上記テンプレートサイズの入力画像領域における顔色領域の占有率が所定の閾値以上である点を第２の顔候補として抽出する
ことを特徴とする請求項１０記載の顔検出装置。
【請求項１３】
上記フレーム画像内をスキャンして所定サイズのウィンドウ画像を所定画素ずつずらしながら順次抽出するウィンドウ画像抽出手段を有し、上記マッチング結果生成手段は、上記ウィンドウ画像を入力画像としてマッチング結果を生成する
ことを特徴とする請求項１記載の顔検出装置。
【請求項１４】
上記ウィンドウ画像抽出手段の前段に設けられ上記フレーム画像を複数の異なる縮小率でなるスケール画像に縮小変換するスケール変換手段を有し、
上記ウィンドウ画像抽出手段は、各上記スケール画像をスキャンして上記ウィンドウ画像を所定画素ずつずらしながら順次抽出する
ことを特徴とする請求項１３記載の顔検出装置。
【請求項１５】
入力画像から対象物の顔領域を抽出する顔検出方法において、
撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成工程と、
上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出工程と、
上記マッチング結果における上記顔候補に相当する入力画像領域から上記顔領域を識別する識別工程と
を有することを特徴とする顔検出方法。
【請求項１６】
上記顔候補抽出工程では、上記マッチング結果を複数の領域に分割し、この各分割領域毎に少なくとも相関値の最大値を顔候補として抽出する
ことを特徴とする請求項１５記載の顔検出方法。
【請求項１７】
上記分割領域のサイズは、上記テンプレートのサイズ以下である
ことを特徴とする請求項１６記載の顔検出方法。
【請求項１８】
異なるサイズのテンプレートから上記マッチング結果生成工程にて使用する上記テンプレートのサイズを決定するテンプレートサイズ決定工程を有する
ことを特徴とする請求項１５記載の顔検出方法。
【請求項１９】
上記テンプレートサイズ決定工程では、予め検出された顔領域と同一サイズのテンプレートを選択する
ことを特徴とする請求項１８記載の顔検出方法。
【請求項２０】
上記テンプレートサイズ決定工程では、上記入力画像における上記対象物との距離情報が入力され、この距離情報に基づき上記テンプレートを選択する
ことを特徴とする請求項１８記載の顔検出方法。
【請求項２１】
上記マッチング結果生成工程は、上記異なるサイズのテンプレートが順次入力され各テンプレートに対応する上記マッチング結果を生成する
ことを特徴とする請求項１６記載の顔検出方法。
【請求項２２】
上記顔候補抽出工程では、上記各分割領域の相関値の最大値のうち、所定の閾値以上のもののみを顔候補として抽出する
ことを特徴とする請求項１６記載の顔検出方法。
【請求項２３】
相関値の集合である上記マッチング結果は、上記入力画像をスキャンして所定画素ずつずらしながら移動させた上記テンプレートと上記入力画像との相関値の集合であって、上記テンプレートの移動に伴い配列された２次元配列である
ことを特徴とする請求項１６記載の顔検出方法。
【請求項２４】
上記顔候補抽出工程では、上記各分割領域の相関値の最大値を有する点を第１の顔候補とし、この第１の顔候補近傍の点を第２の顔候補として上記第１及び第２の顔候補を顔候補として抽出する
ことを特徴とする請求項２３記載の顔検出方法。
【請求項２５】
上記顔候補抽出工程では、上記第１の顔候補近傍の点のうち、該第１の顔候補近傍の点に対応する上記テンプレートサイズの入力画像領域における肌色領域の占有率が所定の閾値以上である点を第２の顔候補として抽出する
ことを特徴とする請求項２４記載の顔検出方法。
【請求項２６】
上記顔候補抽出工程では、予め学習した顔色情報を有し、上記第１の顔候補近傍の点のうち、該第１の顔候補近傍の点に対応する上記テンプレートサイズの入力画像領域における顔色領域の占有率が所定の閾値以上である点を第２の顔候補として抽出する
ことを特徴とする請求項２４記載の顔検出方法。
【請求項２７】
上記フレーム画像内をスキャンして所定サイズのウィンドウ画像を所定画素ずつずらしながら順次抽出するウィンドウ画像抽出工程を有し、上記マッチング結果生成工程では、上記ウィンドウ画像を入力画像としてマッチング結果を生成する
ことを特徴とする請求項１５記載の顔検出方法。
【請求項２８】
上記ウィンドウ画像を抽出する前に上記フレーム画像を複数の異なる縮小率でなるスケール画像に縮小変換するスケール変換工程を有し、
上記ウィンドウ画像抽出工程では、各上記スケール画像をスキャンして上記ウィンドウ画像を所定画素ずつずらしながら順次抽出する
ことを特徴とする請求項２７記載の顔検出方法。
【請求項２９】
供給された入力情報に基づいて動作を行う自律型のロボット装置において、
撮像手段と、
上記撮像手段による撮像結果として得られるフレーム画像を入力画像とし該入力画像から人物の顔領域を抽出する顔検出手段とを有し、
上記顔検出手段は、上記入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成手段と、上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出手段と、上記顔候補として抽出された点に相当する入力画像領域から上記顔領域を識別する識別手段とを具備する
ことを特徴とするロボット装置。
【請求項３０】
制御全体を司る制御手段を具え、
上記制御手段は、上記マッチング結果生成手段、上記顔候補抽出手段、及び上記識別手段による各処理のいずれかを選択的に実行する
ことを特徴とする請求項２９記載のロボット装置。
【請求項３１】
上記制御手段と接続され、当該制御手段の制御に応じて情報を読み書きするメモリ手段と、
上記メモリ手段に接続され、上記マッチング結果生成手段、上記顔候補抽出手段、及び上記識別手段による各処理のうち上記制御手段の処理対象を除く処理を実行する演算処理手段とを具え、
上記制御手段又は上記演算処理手段は、上記メモリ手段を介して該当する上記処理を切り換えて実行する
ことを特徴とする請求項３０記載のロボット装置。
【請求項３２】
入力画像から人物の顔領域を抽出する動作をコンピュータに実行させるためのプログラムにおいて、
撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成工程と、
上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出工程と、
上記顔候補として抽出された点に相当する入力画像領域から上記顔領域を識別する識別工程と
を有することを特徴とするプログラム。
【請求項３３】
入力画像から人物の顔領域を抽出する動作をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、
撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成工程と、
上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出工程と、
上記顔候補として抽出された点に相当する入力画像領域から上記顔領域を識別する識別工程と
を有することを特徴とするプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力画像から対象物の顔を検出する顔検出装置及びその方法、並びに顔検出装置を搭載してエンターテインメント性の向上等を図ったロボット装置、並びに顔検出する動作をコンピュータに実行させるためのプログラム及びこのプログラムを記録した記録媒に関する。
【０００２】
【従来の技術】
電気的又は磁気的な作用を用いて人間（生物）の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータ及び搬送ロボット等の産業用ロボット（Ｉｎｄｕｓｔｒｉａｌ
Ｒｏｂｏｔ）であった。
【０００３】
最近では、人間のパートナーとして生活を支援する、即ち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬又は猫のように４足歩行の動物の身体メカニズム及びその動作を模した「ペット型」ロボット、或いは、２足直立歩行を行う人間等の身体メカニズム及びその動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット（Ｈｕｍａｎｏｉｄ　Ｒｏｂｏｔ）等のロボット装置は、既に実用化されつつある。
【０００４】
これらのロボット装置は、産業用ロボットと比較して、例えばエンターテインメント性を重視した様々な動作等を行うことができるため、エンターテインメントロボットと呼称される場合もある。また、そのようなロボット装置には、ＣＣＤ（Ｃｈａｒｇｅ　　Ｃｏｕｐｌｅｄ　Ｄｅｖｉｃｅ）カメラ及びマイクロホン等の各種外部センサが搭載され、これら外部センサの出力に基づいて外部状況を認識して、外部からの情報及び内部の状態に応じて自律的に動作するものがある。
【０００５】
【発明が解決しようとする課題】
ところで、かかるエンターテインメント型のロボット装置において、対話中にその相手となる人間の顔や、移動中に視界内に入る人間の顔を検出して、その人間の顔を見ながら対話や動作を行うことができれば、人間が普段行う場合と同様に、その自然性から考えて最も望ましく、エンターテインメントロボット装置としてのエンターテインメント性をより一層向上させ得るものと考えられる。
【０００６】
従来、動画のような複雑な画像シーンの中から色や動きを使うことなく画像信号に基づく濃淡パターンのみを使って、人間の顔を検出する方法が数多く提案されている。
【０００７】
これらの顔検出方法としては、固有顔、ニューラル・ネットワーク及びサポートベクタマシン（ＳＶＭ：Ｓｕｐｏｒｔ　Ｖｅｃｔｏｒ　Ｍａｃｈｉｎｅ）等のパターン認識の手法を利用して、予め顔パターンを学習させて識別器を生成する方法が挙げられる。
【０００８】
しかし、このパターン識別器を生成する方法によると、ロボット装置は、膨大なデータ量である顔画像データに対して学習によるパターン識別を行うにあたって、環境の変化や自己の姿勢及び表情の変化に対してロバスト性を示すが、その分当該パターン識別に要する演算量が増加するため、演算処理に要する時間が膨大になるという問題点があった。
【０００９】
実際に、撮像画像の中から人間の顔画像を検出するプロセス（以下、これを顔検出タスクという。）においては、当該撮像画像の中から顔画像を切り出しながら識別を行うため、撮像画像全体を様々なスケールでスキャンすることとなる。このため一回一回のパターン識別に要する演算処理を極力少なくすることが極めて重要となる。
【００１０】
例えば、サポートベクタマシンによるパターン認識を用いた顔検出タスクの場合、撮像画像の中から４００（＝２０×２０）画素程度の切り出し画像から得られる４００次元のベクトルに対して、数百通りのサポートベクタ（４００次元）との内積演算が必要となる。これを大きさ（Ｗ、Ｈ）からなる全画面中で行うとなると、当該内積演算を（Ｗ−２０＋１）×（Ｈ−２０＋１）回繰り返さなくてはならないため、膨大な量の演算処理となる。
【００１１】
また、顔検出タスクをロボット装置に利用する場合には、動画の中から十分に早く顔画像を検出しなければ、リアルタイム性が要求されるロボットの行動としてフィードバックすることが極めて困難となる。更に、ロボット装置の内部のＣＰＵは、顔検出タスク以外にも常時実行しているタスクが多くあるため、これらのタスクに対して演算能力を費やしている分、当該顔検出タスクに対してフルに演算能力を費やすことは極めて困難である。
【００１２】
本発明は、このような従来の実情に鑑みて提案されたものであり、演算量を低減してリアルタイム性を格段と向上し得る顔検出装置及びその方法、ロボット装置、並びにプログラム及び記録媒体を提供することを目的とする。
【００１３】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係る顔検出装置は、入力画像から対象物の顔領域を抽出する顔検出装置において、撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成手段と、上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出手段と、上記顔候補として抽出された点に相当する入力画像領域から上記顔領域を識別する識別手段とを有することを特徴とする。
【００１４】
本発明においては、平均顔テンプレートと同一のサイズの顔が入力画像に存在する場合にテンプレートマッチングの相関値が最も大きくなることを利用し、マッチング結果の相関値の局所最大値に基づいて顔候補を抽出することにより、マッチング結果から単に閾値を設けて顔候補を検出する場合に比して、顔検出性能を維持しつつ顔候補の数を飛躍的に低減することができ、これにより、後段の識別手段における顔識別の演算量を削減し、入力画像から極めて高速に顔領域を検出することができる。
【００１５】
また、上記顔候補抽出手段は、上記マッチング結果を、例えばテンプレートサイズ以下の大きさの複数の領域に分割しこの各分割領域毎に少なくとも相関値の最大値を顔候補として抽出することができる。
【００１６】
更に、異なるサイズのテンプレートから上記マッチング結果生成手段に入力する上記テンプレートのサイズを決定するテンプレートサイズ決定手段を有し、上記テンプレートサイズ決定手段は、予め検出された顔領域と同一サイズのテンプレートを選択するか、又は入力画像における上記対象物との距離情報が入力され、この距離情報に基づきテンプレートを選択することにより、効率よくテンプレートサイズを決定することができる。
【００１７】
更にまた、上記マッチング結果生成手段は、異なるサイズのテンプレートが順次入力され各テンプレートに対応するマッチング結果を生成することができ、これにより、入力画像に含まれる任意の大きさの顔を検出することができる。
【００１８】
また、上記顔候補抽出手段は、上記各分割領域の相関値の最大値のうち、所定の閾値以上のみを顔候補として抽出することにより、更に顔候補を絞り込むことができる。
【００１９】
更に、相関値の集合である上記マッチング結果は、上記入力画像をスキャンして所定画素ずつずらしながら移動させた上記テンプレートと上記入力画像との相関値の集合であって、上記テンプレートの移動に伴い配列された２次元配列とすることができる。
【００２０】
更にまた、上記顔候補抽出手段は、上記各分割領域の相関値の最大値を有する点を第１の顔候補とし、この第１の顔候補近傍の点を第２の顔候補として上記第１及び第２の顔候補を顔候補として抽出することにより、顔検出性能を更に向上することができる。
【００２１】
また、上記顔候補抽出手段は、上記第１の顔候補近傍の点のうち、該第１の顔候補近傍の点に対応する上記テンプレートサイズの入力画像領域における肌色領域の占有率が所定の閾値以上である点か、又は、予め学習した顔色情報を有し、上記第１の顔候補近傍の点のうち、該第１の顔候補近傍の点に対応する上記テンプレートサイズの入力画像領域における顔色領域の占有率が所定の閾値以上である点を第２の顔候補として抽出することができ、これにより、顔検出性能を高めつつ顔候補を絞り込むことができる。
【００２２】
本発明に係る顔検出方法は、入力画像から対象物の顔領域を抽出する顔検出方法において、撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成工程と、上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出工程と、上記顔候補として抽出された点に相当する入力画像領域から上記顔領域を識別する識別工程とを有することを特徴とする。
【００２３】
本発明に係るロボット装置は、供給された入力情報に基づいて動作を行う自律型のロボット装置において、撮像手段と、上記撮像手段による撮像結果として得られるフレーム画像を入力画像とし該入力画像から人物の顔領域を抽出する顔検出手段を有し、上記顔検出手段は、上記入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成手段と、上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出手段と、上記顔候補として抽出された点に相当する入力画像領域から上記顔領域を識別する識別手段とを具備することを特徴とする。
【００２４】
また、制御全体を司る制御手段を具え、上記制御手段は、上記マッチング結果生成手段、上記顔候補抽出手段、及び上記識別手段による各処理のいずれかを選択的に実行することができる。
【００２５】
更に、上記制御手段と接続され、当該制御手段の制御に応じて情報を読み書きするメモリ手段と、上記メモリ手段に接続され、上記マッチング結果生成手段、上記顔候補抽出手段、及び上記識別手段による各処理のうち上記制御手段の処理対象を除く処理を実行する演算処理手段とを具え、上記制御手段又は上記演算処理手段は、上記メモリ手段を介して該当する上記処理を切り換えて実行することができる。
【００２６】
本発明に係るプログラム及びこれを記録した記録媒体は、入力画像から人物の顔領域を抽出する動作をコンピュータに実行させるためのプログラム及びこれを記録した記録媒体において、撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成工程と、上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出工程と、上記顔候補として抽出された点に相当する入力画像領域から上記顔領域を識別する識別工程とを有することを特徴とする。
【００２７】
【発明の実施の形態】
（１）本願発明の概要
本発明に係る顔検出装置及び顔検出方法は、入力画像（撮像画像）から人物の顔（顔領域）を検出するものである。この顔検出タスクは、大きく分けて２つの工程を有する。即ち、入力画像に対してテンプレートマッチングを行って顔の候補を抽出する第１の工程と、この顔候補からＳＶＭ等により顔であるか否かの判定する第２の工程とからなる。
【００２８】
ロボット装置等のＣＰＵ及びメモリ等のリソースが限られたシステムにおいて、リアルタイムに顔検出を行うためには、顔検出タスクにおける演算量を削減すること必要である。しかしながら、上述した如く、第２の工程で行われるＳＶＭ等を使用する顔判定は膨大な演算量を要する。従って、顔検出タスクにおいて、顔検出性能を保持しつつ顔検出に要する演算量を削減するためには、第１の工程において顔候補を絞り込むことが有効となる。
【００２９】
ここで、第１の工程において、テンプレートマッチングを行って顔候補を抽出する際、例えばマッチングの相関値に対して閾値を設けて顔候補を抽出する方法がある。この方法では、顔候補の見逃しを軽減しようとした場合、相関値の閾値を上げる方法又はマッチングの際の間引きを減らす方法等をとることができるものの、例えば相関値の閾値を下げると多くの顔候補が抽出されるため、計算量が増大してしまい、ロボット装置等のリソースの限られた環境においては好ましくない場合がある。一方、閾値を上げると、顔候補の数を減らすことができるものの、本来顔である画像も候補から取り除いてしまい、顔画像を見逃してしまう場合がある。
【００３０】
そこで、本願発明は、本来顔である画像を顔候補から見逃すことなく、演算量の増大を防止する、即ち、顔候補の数を有効に絞り込むことができる方法を提案するものである。具体的には、第１の工程では、入力画像と、所定サイズの平均的な顔画像を示すテンプレートとの相関をとった相関値の集合であるマッチング結果を生成し、このマッチング結果における相関値の局所最大値に基づき顔領域を抽出する。顔領域は、マッチング結果を例えばテンプレートと同一サイズの複数の領域に分割して各分割領域毎に少なくとも相関値の最大値を顔候補として抽出する。そして、第２の工程では、上記顔候補として抽出された点に相当する入力画像領域からＳＶＭ等により顔領域（顔画像）を識別（判定）するものである。
【００３１】
（２）ロボットの構成
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、顔検出装置を搭載した２足歩行ロボット装置に適用したものである。先ず、顔検出手段を有するロボット装置の一例として、２足歩行の人間型ロボット装置について説明する。
【００３２】
図１及び図２には、人間型ロボット装置２００を前方及び後方の各々から眺望した様子を示している。更に、図３には、この人間型ロボット装置２００が具備する関節自由度構成を模式的に示している。
【００３３】
図１及び図２に示すように、人間型ロボット装置２００は、脚式移動を行う左右２足の脚部ユニット２０１Ｒ，２０１Ｌと、胴体部ユニット２０２と、左右の腕部ユニット２０３Ｒ，２０３Ｌと、頭部ユニット２０４とで構成される。
【００３４】
左右各々の脚部ユニット２０１Ｒ，２０１Ｌは、大腿部２０５Ｒ，２０５Ｌと、膝関節２０６Ｒ，２０６Ｌと、脛部２０７Ｒ，２０７Ｌと、足首２０８Ｒ，２０８Ｌと、足平２０９Ｒ，２０９Ｌとで構成され、股関節２１０Ｒ，２１０Ｌによって胴体部ユニット２０２の略最下端にて連結されている。また、左右各々の腕部ユニット２０３Ｒ，２０３Ｌは、上腕２１１Ｒ，２１１Ｌと、肘関節２１２Ｒ，２１２Ｌと、前腕２１３Ｒ，２１３Ｌとで構成され、肩関節２１４Ｒ，２１４Ｌによって胴体部ユニット２０２上方の左右各側縁にて連結されている。また、頭部ユニット２０４は、首関節２５５によって胴体部ユニット２０２の略最上端中央に連結されている。
【００３５】
頭部ユニット２０４と体幹部ユニット２０２との間の首間接は、図３に示すように、頭部ユニット２０４を支持する首関節ヨー軸３０２と、首関節ピッチ軸３０３と、首関節ロール軸３０４という３自由度を有している。
【００３６】
また、腕の関節は、肩関節ピッチ軸３０８と、肩関節ロール軸３０９と、上腕ヨー軸３１０と、肘関節ピッチ軸３１１と、前腕ヨー軸３１２と、手首関節ピッチ軸３１３と、手首関節ロール輪３１４と、手部３１５とで構成される。手部３１５は、実際には、複数本の指を含む多関節・多自由度構造体である。ただし、手部３１５の動作は人間型ロボット装置２００の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。従って、各腕部は７自由度を有するとする。
【００３７】
また、胴体部ユニットは、胴体ピッチ軸３０５と、胴体ロール軸３０６と、胴体ヨー軸３０７という３自由度を有する。
【００３８】
また、下肢を構成する各々の脚部ユニットは、股関節ヨー軸３１６と、股関節ピッチ軸３１７と、股関節ロール軸３１８と、膝関節ピッチ軸３１９と、足首関節ピッチ軸３２０と、足首関節ロール軸３２１と、足部３２２とで構成される。本明細書中では、股関節ピッチ軸３１７と股関節ロール軸３１８との交点は、人間型ロボット装置２００の股関節位置を定義する。人体の足部３２２は、実際には多関節・多自由度の足底を含んだ構造体であるが、人間型ロボット装置２００の足底は、ゼロ自由度とする。従って、各脚部は、６自由度で構成される。
【００３９】
以上を総括すれば、人間型ロボット装置２００全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。ただし、エンターテインメント向けの人間型ロボット装置２００が必ずしも３２自由度に限定される訳ではない。設計・制作上の制約条件や要求仕様等に応じて、自由度すなわち関節数を適宜増減することができることはいうまでもない。
【００４０】
上述したような人間型ロボット装置２００がもつ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定な構造体に対して姿勢制御を行うこと等の要請から、アクチュエータは小型且つ軽量であることが好ましい。
【００４１】
図４には、人間型ロボット装置２００の制御システム構成を模式的に示している。同図に示すように、人間型ロボット装置２００は、ヒトの四肢を表現した各機構ユニット３３０，３４０，３５０Ｒ／Ｌ，３６０Ｒ／Ｌと、各機構ユニット間の協調動作を実現するための適応制御を行う制御ユニット３８０とで構成される（ただし、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下同様）。
【００４２】
人間型ロボット装置２００全体の動作は、制御ユニット３８０によって統括的に制御される。制御ユニット３８０は、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）やメモリ等の主要回路コンポーネント（図示しない）で構成される主制御部３８１と、電源回路や人間型ロボット装置２００の各構成要素とのデータやコマンドの授受を行うインターフェイス（何れも図示しない）等を含んだ周辺回路３８２とで構成される。この制御ユニット３８０の設置場所は、特に限定されない。図４では胴体部ユニット３４０に搭載されているが、頭部ユニット３３０に搭載してもよい。或いは、人間型ロボット装置２００外に制御ユニット３８０を配備して、人間型ロボット装置２００の機体とは有線若しくは無線で交信するようにしてもよい。
【００４３】
図４に示した人間型ロボット装置２００内の各関節自由度は、それぞれに対応するアクチュエータによって実現される。すなわち、頭部ユニット３３０には、首関節ヨー軸３０２、首関節ピッチ３０３、首関節ロール軸３０４の各々を表現する首関節ヨー軸アクチュエータＡ２、首関節ピッチ軸アクチュエータＡ３、首関節ロール軸アクチュエータＡ４が配設されている。
【００４４】
また、頭部ユニット３３０には、外部の状況を撮像するためのＣＣＤ（ＣｈａｒｇｅＣｏｕｐｌｅｄ　Ｄｅｖｉｃｅ）カメラが設けられているほか、前方に位置する物体までの距離を測定するための距離センサ、外部音を集音するためのマイク、音声を出力するためのスピーカ、使用者からの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチセンサ等が配設されている。
【００４５】
また、胴体部ユニット３４０には、胴体ピッチ軸３０５、胴体ロール軸３０６、胴体ヨー軸３０７の各々を表現する胴体ピッチ軸アクチュエータＡ５、胴体ロール軸アクチュエータＡ６、胴体ヨー軸アクチュエータＡ７が配設されている。また、胴体部ユニット３４０には、この人間型ロボット装置２００の起動電源となるバッテリを備えている。このバッテリは、充放電可能な電池によって構成されている。
【００４６】
また、腕部ユニット３５０Ｒ／Ｌは、上腕ユニット３５１Ｒ／Ｌと、肘関節ユニット３５２Ｒ／Ｌと、前腕ユニット３５３Ｒ／Ｌに細分化されるが、肩関節ピッチ軸３０８、肩関節ロール軸３０９、上腕ヨー軸３１０、肘関節ピッチ軸３１１、前腕ヨー軸３１２、手首関節ピッチ軸３１３、手首関節ロール軸３１４の各々表現する肩関節ピッチ軸アクチュエータＡ８、肩関節ロール軸アクチュエータＡ９、上腕ヨー軸アクチュエータＡ１０、肘関節ピッチ軸アクチュエータＡ１１、肘関節ロール軸アクチュエータＡ１２、手首関節ピッチ軸アクチュエータＡ１３、手首関節ロール軸アクチュエータＡ１４が配備されている。
【００４７】
また、脚部ユニット３６０Ｒ／Ｌは、大腿部ユニット３６１Ｒ／Ｌと、膝ユニット３６２Ｒ／Ｌと、脛部ユニット３６３Ｒ／Ｌに細分化されるが、股関節ヨー軸３１６、股関節ピッチ軸３１７、股関節ロール軸３１８、膝関節ピッチ軸３１９、足首関節ピッチ軸３２０、足首関節ロール軸３２１の各々を表現する股関節ヨー軸アクチュエータＡ１６、股関節ピッチ軸アクチュエータＡ１７、股関節ロール軸アクチュエータＡ１８、膝関節ピッチ軸アクチュエータＡ１９、足首関節ピッチ軸アクチュエータＡ２０、足首関節ロール軸アクチュエータＡ２１が配備されている。各関節に用いられるアクチュエータＡ２，Ａ３・・・は、より好ましくは、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニット内に搭載したタイプの小型ＡＣサーボ・アクチュエータで構成することができる。
【００４８】
頭部ユニット３３０、胴体部ユニット３４０、腕部ユニット３５０、各脚部ユニット３６０等の各機構ユニット毎に、アクチュエータ駆動制御部の副制御部３３５，３４５，３５５Ｒ／Ｌ，３６５Ｒ／Ｌが配備されている。更に、各脚部３６０Ｒ，Ｌの足底が着床したか否かを検出する接地確認センサ３９１及び３９２を装着するとともに、胴体部ユニット３４０内には、姿勢を計測する姿勢センサ３９３を装備している。
【００４９】
接地確認センサ３９１及び３９２は、例えば足底に設置された近接センサ又はマイクロ・スイッチ等で構成される。また、姿勢センサ３９３は、例えば、加速度センサとジャイロ・センサの組み合わせによって構成される。
【００５０】
接地確認センサ３９１及び３９２の出力によって、歩行・走行等の動作期間中において、左右の各脚部が現在立脚又は遊脚何れの状態であるかを判別することができる。また、姿勢センサ３９３の出力により、胴体部分の傾きや姿勢を検出することができる。
【００５１】
主制御部３８１は、各センサ３９１〜３９３の出力に応答して制御目標をダイナミックに補正することができる。より具体的には、副制御部３３５，３４５，３５５Ｒ／Ｌ，３６５Ｒ／Ｌの各々に対して適応的な制御を行い、人間型ロボット装置２００の腕部、胴体、及び脚部が協調して駆動する全身運動パターンを実現できる。
【００５２】
人間型ロボット装置２００の機体上での全身運動は、足部運動、ＺＭＰ（ＺｅｒｏＭｏｍｅｎｔ　Ｐｏｉｎｔ）軌道、胴体運動、上肢運動、腰部高さ等を設定するとともに、これらの設定内容にしたがった動作を指示するコマンドを各副制御部３３５，３４５，３５５Ｒ／Ｌ，３６５Ｒ／Ｌに転送する。そして、各々の副制御部３３５，３４５，・・・等では、主制御部３８１からの受信コマンドを解釈して、各アクチュエータＡ２，Ａ３・・・等に対して駆動制御信号を出力する。ここでいう「ＺＭＰ」とは、歩行中の床反力によるモーメントがゼロとなる床面上の点のことであり、また、「ＺＭＰ軌道」とは、例えば人間型ロボット装置２００の歩行動作期間中にＺＭＰが動く軌跡を意味する。
【００５３】
歩行時には、重力と歩行運動に伴って生じる加速度によって、歩行系から路面には重力と慣性力、並びにこれらのモーメントが作用する。いわゆる「ダランベールの原理」によると、それらは路面から歩行系への反作用としての床反力、床反力モーメントとバランスする。力学的推論の帰結として、足底接地点と路面の形成する支持多角形の辺上或いはその内側にピッチ及びロール軸モーメントがゼロとなる点、すなわち「ＺＭＰ（Ｚｅｒｏ　Ｍｏｍｅｎｔ　Ｐｏｉｎｔ）」が存在する。
【００５４】
脚式移動ロボットの姿勢安定制御や歩行時の転倒防止に関する提案の多くは、このＺＭＰを歩行の安定度判別の規範として用いたものである。ＺＭＰ規範に基づく２足歩行パターン生成は、足底着地点を予め設定することができ、路面形状に応じた足先の運動学的拘束条件を考慮しやすい等の利点がある。また、ＺＭＰを安定度判別規範とすることは、力ではなく軌道を運動制御上の目標値として扱うことを意味するので、技術的に実現可能性が高まる。なお、ＺＭＰの概念並びにＺＭＰを歩行ロボットの安定度判別規範に適用する点については、Ｍｉｏｍｉｒ　Ｖｕｋｏｂｒａｔｏｖｉｃ著“ＬＥＧＧＥＤ　ＬＯＣＯＭＯＴＩＯＮ　ＲＯＢＯＴＳ”（加藤一郎外著『歩行ロボットと人工の足』（日刊工業新聞社））に記載されている。
【００５５】
一般には、４足歩行よりもヒューマノイドのような２足歩行のロボットの方が、重心位置が高く、且つ、歩行時のＺＭＰ安定領域が狭い。従って、このような路面状態の変化に伴う姿勢変動の問題は、２足歩行ロボットにおいてとりわけ重要となる。
【００５６】
以上のように、人間型ロボット装置２００は、各々の副制御部３３５，３４５，・・・等が、主制御部３８１からの受信コマンドを解釈して、各アクチュエータＡ２，Ａ３・・・に対して駆動制御信号を出力し、各ユニットの駆動を制御している。これにより、人間型ロボット装置２００は、目標の姿勢に安定して遷移し、安定した姿勢で歩行できる。
【００５７】
また、人間型ロボット装置２００における制御ユニット３８０では、上述したような姿勢制御のほかに、加速度センサ、タッチセンサ、接地確認センサ等の各種センサ、及びＣＣＤカメラからの画像情報、マイクからの音声情報等を統括して処理している。制御ユニット３８０では、図示しないが加速度センサ、ジャイロ・センサ、タッチセンサ、距離センサ、マイク、スピーカ等の各種センサ、各アクチュエータ、ＣＣＤカメラ及びバッテリが各々対応するハブを介して主制御部３８１と接続されている。
【００５８】
主制御部３８１は、上述の各センサから供給されるセンサデータや画像データ及び音声データを順次取り込み、これらをそれぞれ内部インターフェイスを介してＤＲＡＭ内の所定位置に順次格納する。また、主制御部３８１は、バッテリから供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、これをＤＲＡＭ内の所定位置に格納する。ＤＲＡＭに格納された各センサデータ、画像データ、音声データ及びバッテリ残量データは、主制御部３８１がこの人間型ロボット装置２００の動作制御を行う際に利用される。
【００５９】
主制御部３８１は、人間型ロボット装置２００の電源が投入された初期時、制御プログラムを読み出し、これをＤＲＡＭに格納する。また、主制御部３８１は、上述のように主制御部３８１よりＤＲＡＭに順次格納される各センサデータ、画像データ、音声データ及びバッテリ残量データに基づいて自己及び周囲の状況や、使用者からの指示及び働きかけの有無等を判断する。更に、主制御部３８１は、この判断結果及びＤＲＡＭに格納した制御プログラムに基づいて自己の状況に応じて行動を決定するとともに、当該決定結果に基づいて必要なアクチュエータを駆動させることにより人間型ロボット装置２００に、いわゆる「身振り」、「手振り」といった行動をとらせる。
【００６０】
従って、人間型ロボット装置２００は、制御プログラムに基づいて自己及び周囲の状況を判断し、使用者からの指示及び働きかけに応じて自律的に行動できる。また、人間型ロボット装置２００は、ＣＣＤカメラにおいて撮像された画像から抽出した文字の発音のしかた（読み方）を、抽出された文字から推定される読み方と集音マイクにおいて集音された音声とをマッチングして決定する。従って、人間型ロボット装置２００の音声認識の精度が向上し、新規単語が音声認識用辞書に登録できる。
【００６１】
（２）適用例
以下、本発明の実施の形態の説明に先立ち、理解を容易とするために、上述した２足歩行ロボット装置において、入力画像に対してテンプレートマッチングを行って顔候補を抽出し、この顔候補から顔を判定する顔検出装置を搭載した他の例について説明する（特願２００２−０７４９０７号参照、以下、適用例という。）。
【００６２】
以下に説明する第１及び第２の適用例においても、本願発明と同様にテンプレートマッチング等によりおおまかに顔候補を抽出した後、ＳＶＭ等により顔候補の中から顔であるか否かを判定することにより、この後段における演算量を削減してロボット装置の顔検出のリアルタイム性を向上させるものである。
【００６３】
（２−１）第１の適用例
（２−１−１）ロボットの内部構成
第１の適用例においては、胴体部ユニット２０４の胴体下部を形成する腰ベースの背面側には、図４及び図５に示すように、当該ロボット装置２００全体の動作制御を司る主制御部３８１、電源回路及び通信回路等の周辺回路３８１、バッテリ４５（図５）等がボックスに収納されてなる制御ユニット４２が配設されている。
【００６４】
そしてこの制御ユニット４２は、各構成ユニット（胴体部ユニット２０２、頭部ユニット２０４、各腕部ユニット２０３Ｒ、２０３Ｌ及び各脚部ユニット２０９Ｒ、２０９Ｌ）内にそれぞれ配設された各副制御部３３５、３５０Ｒ、３５０Ｌ、３６５Ｒ、３６５Ｌと接続されており、これら副制御部３３５、３５０Ｒ、３５０Ｌ、３６５Ｒ、３６５Ｌに対して必要な電源電圧を供給したり、これら副制御部３３５、３５０Ｒ、３５０Ｌ、３６５Ｒ、３６５Ｌと通信を行ったりすることができるようになされている。
【００６５】
また、各副制御部３３５、３５０Ｒ、３５０Ｌ、３６５Ｒ、３６５Ｌは、それぞれ対応する構成ユニット内の各アクチュエータＡ２〜Ａ２１と接続されており、当該構成ユニット内の各アクチュエータＡ２〜Ａ２１を主制御部３８１から与えられる各種制御コマンドに基づいて指定された状態に駆動し得るようになされている。
【００６６】
更に、頭部ユニット２０４には、図５に示すように、このロボット装置２００の「目」として機能するＣＣＤ（Ｃｈａｒｇｅ　Ｃｏｕｐｌｅｄ　Ｄｅｖｉｃｅ　）カメラ５０及び「耳」として機能するマイクロホン５１及びタッチセンサ５２等からなる外部センサ部５３と、「口」として機能するスピーカ５４と等がそれぞれ所定位置に配設され、制御ユニット３８０内には、バッテリセンサ５５及び加速度センサ５６等からなる内部センサ部５７が配設されている。
【００６７】
そして外部センサ部５３のＣＣＤカメラ５０は、周囲の状況を撮像し、得られた画像信号Ｓ１Ａを主制御部３８１に送出してフレーム単位で内部メモリ３８１Ａに順次記憶する一方、マイクロホン５１は、ユーザから音声入力として与えられる「歩け」、「座れ」又は「ボールを追いかけろ」等の各種命令音声を集音し、かくして得られた音声信号Ｓ１Ｂを主制御部３８１に送出するようになされている。
【００６８】
更に、タッチセンサは、頭部ユニット３の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、検出結果を圧力検出信号Ｓ１Ｃとして主制御部３８１に送出する。
【００６９】
更にまた、内部センサ部５７のバッテリセンサ５５は、バッテリ４５のエネルギ残量を所定周期で検出し、検出結果をバッテリ残量検出信号Ｓ２Ａとして主制御部３８１に送出する。一方、加速度センサ５６は、３軸方向（ｘ軸、ｙ軸及びｚ軸）の加速度を所定周期で検出し、検出結果を加速度検出信号Ｓ２Ｂとして主制御部３８１に送出する。
【００７０】
主制御部３８１は、外部センサ部５３のＣＣＤカメラ５０、マイクロホン５１及びタッチセンサ５２等からそれぞれ供給される画像信号Ｓ１Ａ、音声信号Ｓ１Ｂ及び圧力検出信号Ｓ１Ｃ等（以下、これらをまとめて外部センサ信号Ｓ１と呼ぶ）と、内部センサ部５７のバッテリセンサ５５及び加速度センサ等からそれぞれ供給されるバッテリ残量検出信号Ｓ２Ａ及び加速度検出信号Ｓ２Ｂ等（以下、これらをまとめて内部センサ信号Ｓ２という。）に基づいて、ロボット装置２００の周囲及び内部の状況や、ユーザからの指令、ユーザからの働きかけの有無等を判断する。
【００７１】
そして主制御部３８１は、この判断結果と、予め内部メモリ３８１Ａに格納されている制御プログラムと、そのとき装填されている外部メモリ５８に格納されている各種制御パラメータとに基づいて続く行動を決定し、決定結果に基づく制御コマンドを対応する副制御部３３５、３５０Ｒ、３５０Ｌ、３６５Ｒ、３６５Ｌに送出する。この結果、この制御コマンドに基づき、その副制御部３３５、３５０Ｒ、３５０Ｌ、３６５Ｒ、３６５Ｌの制御のもとに、対応するアクチュエータＡ２〜Ａ２１が駆動され、かくして頭部ユニット２０４を上下左右に揺動させたり、腕部ユニット２０３Ｒ、２０３Ｌを上にあげたり、歩行する等の行動がロボット装置２００により発現されることとなる。
【００７２】
この際、主制御部３８１は、必要に応じて所定の音声信号Ｓ３をスピーカ５４に与えることにより当該音声信号Ｓ３に基づく音声を外部に出力させたり、外見上の「目」として機能する頭部ユニット２０４の所定位置に設けられたＬＥＤに駆動信号を出力することによりこれを点滅させる。
【００７３】
このようにしてこのロボット装置２００においては、周囲及び内部の状況や、ユーザからの指令及び働きかけの有無等に基づいて自律的に行動することができるようになされている。
【００７４】
（２−１−２）顔検出タスク機能に関する主制御部３８１の処理
次に、このロボット装置２００に搭載された顔検出タスク機能について説明する。このロボット装置２００には、ＣＣＤカメラ５０を介して内部メモリ３８１Ａに記憶されるフレーム画像について、当該フレーム画像の中から人間の顔画像を検出する顔検出タスク機能が搭載されている。そしてこの顔検出タスク機能は、主制御部３８１における各種処理により実現されている。
【００７５】
ここで、かかる顔検出タスク機能に関する主制御部３８１の処理内容を機能的に分類すると、図６に示すように、入力画像スケール変換部６０、ウィンドウ切出部６１、テンプレートマッチング部６２、前処理部６３、パターン識別部６４及び重なり判定部６５に分けることができる。
【００７６】
入力画像スケール変換部６０は、ＣＣＤカメラ５０（図５）からの画像信号Ｓ１Ａに基づくフレーム画像を内部メモリ３８１Ａから読み出して、当該フレーム画像を縮小率が相異なる複数のスケール画像に変換する。この適用例の場合、２５３４４（＝１７６×１４４）画素からなるフレーム画像に対して、これを０．８倍ずつ順次縮小して５段階（１．０倍、０．８倍、０．６４倍、０．５１倍、０．４１倍）のスケール画像（以下、これを第１〜第５のスケール画像と呼ぶ）に変換する。
【００７７】
続くウィンドウ切出部６１は、第１〜第５のスケール画像のうち、まず第１のスケール画像に対して、画像左上を起点として順に画像右下まで、適当な画素（例えば２画素）分を右側又は下側にずらしながらスキャンするようにして、４００（＝２０×２０）画素の矩形領域（以下、この領域をウィンドウ画像と呼ぶ）を順次切り出す。
【００７８】
その際、ウィンドウ切出部６１は、第１のスケール画像から切り出した複数のウィンドウ画像のうち先頭のウィンドウ画像を後段のテンプレートマッチング部６２に送出する。
【００７９】
テンプレートマッチング部６２は、ウィンドウ切出部６１から得られた先頭のウィンドウ画像について、正規化相関法や誤差二乗法等の演算処理を実行してピーク値をもつ関数曲線に変換した後、当該関数曲線に対して認識性能が落ちない程度に十分に低い閾値を設定して、当該閾値を基準として当該ウィンドウ画像が顔画像か否かを判断する。
【００８０】
本適用例の場合、テンプレートマッチング部６２では、例えば１００人程度の人物の平均からなる平均的な顔画像をテンプレートとして、かかる顔画像か否かの判断基準となる閾値を設定するようになされている。これにより当該ウィンドウ画像について、テンプレートとなる平均的な顔画像との大まかなマッチングをとり得るようになされている。
【００８１】
このようにしてテンプレートマッチング部６２は、ウィンドウ切出部６１から得られたウィンドウ画像について、テンプレートによるマッチングをとり、顔画像であると判断された場合には、当該ウィンドウ画像をスコア画像として後段の前処理部６３に送出する一方、顔画像でないと判断された場合には、当該ウィンドウ画像をそのまま後段の重なり判定部６５に送出する。
【００８２】
この時点で顔画像であると判断されたウィンドウ画像（スコア画像）には、実際には顔画像以外の判断誤りの画像が大量に含まれるが、日常のシーンの中では顔に類似した背景画像が多く存在することはあまりないため、ほとんどのウィンドウ画像は顔画像ではないと判断されることとなり極めて有効である。
【００８３】
実際に上述した正規化相関法や誤差二乗法等の演算処理は、後段の前処理部及びパターン識別部における演算処理と比較すると、演算量が１０分の１から１００分の１程度で済むと共に、実験上この段階で顔画像以外の画像を８０〔％〕以上はふるい落とすことができることが確認されたため、主制御部３８１全体としては大幅な演算量の削減につながることがわかる。
【００８４】
前処理部６３は、テンプレートマッチング部６２から得られたスコア画像について、矩形領域でなる当該スコア画像から人間の顔画像とは無関係である背景部分に相当する４隅の領域を除去するために、当該４隅の領域を切り取ったマスクを用いて、４００（＝２０×２０）画素あるスコア画像から３６０画素分を抽出する。
【００８５】
そして前処理部６３は、撮像時の照明により濃淡で表される被写体の傾き条件を解消すべく、当該抽出した３６０画素分のスコア画像のうち顔画像として最適な部位を基準とする平面を形成するように、例えば平均二乗誤差（ＲＳＭ：ＲｏｏｔＭｅａｎ　Ｓｑｕａｒｅ）等による算出方法を用いて当該３６０画素の濃淡値に補正をかける。
【００８６】
続いて前処理部６３は、当該３６０画素分のスコア画像のコントラストを強調した結果をヒストグラム平滑化処理を行うことにより、ＣＣＤカメラ５０のゲインや照明の強弱によらずに検出できるようにする。
【００８７】
次いで、前処理部６３は、後述するガボア・フィルタリング（Ｇａｂｏｒ　Ｆｉｌｔｅｒｉｎｇ）処理を行うことにより、当該３６０画素分のスコア画像をベクトル変換し、得られたベクトル群を更に１本のパターンベクトルに変換する。
【００８８】
以下において、ガボア・フィルタリング処理について説明する。まず人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判っている。これは、垂直の線に対して反応する細胞と、水平の線に反応する細胞で構成される。ガボア・フィルタリングは、これと同様に、方位選択性を持つ複数のフィルタで構成される空間フィルタである。
【００８９】
ガボア・フィルタは、ガボア関数によって空間表現される。ガボア関数ｇ（ｘ，ｙ）は、下記式（１）に示すように、コサイン成分からなるキャリアｓ（ｘ，ｙ）と、２次元ガウス分析状のエンベローブＷｒ（ｘ，ｙ）とで構成される。
【００９０】
【数１】
2004030629.tif 000003
【００９１】
キャリアｓ（ｘ，ｙ）は、複数関数を用いて、下記式（２）のように表現される。ここで、座標値（ｕ０，ｖ０）は空間周波数を表し、またＰはコサイン成分の位相を表す。
【００９２】
【数２】
2004030629.tif 000004
【００９３】
ここで、上記式（２）に示すキャリアは、下記式（３）に示すように、実数成分Ｒｅ（ｓ（ｘ，ｙ）と虚数成分Ｉｍ（ｓ（ｘ，ｙ））に分離することができる。
【００９４】
【数３】
2004030629.tif 000005
【００９５】
一方、２次元ガウス分布からなるエンベローブは、下記式（４）のように表現される。
【００９６】
【数４】
2004030629.tif 000006
【００９７】
ここで、座標軸（ｘ０，ｙ０）はこの関数のピークであり、定数ａ及びｂはガウス分布のスケール・パラメータである。また、添え字ｒは、下記式（５）に示すような回転操作を意味する。
【００９８】
【数５】
2004030629.tif 000007
【００９９】
従って、上記式（２）及び（４）より、ガボア・フィルタは、下記式（６）に示すような空間関数として表現される。
【０１００】
【数６】
2004030629.tif 000008
【０１０１】
本適用例に係る前処理部は、８種類の方向と３通りの周波数を採用して、合計２４個のガボア・フィルタを用いて顔抽出処理を行う。
【０１０２】
ガボア・フィルタのレスポンスは、Ｇｉをｉ番目のガボア・フィルタとし、ｉ番目のガボアの結果（Ｇａｂｏｒ　Ｊｅｔ）をＪｉとし、入力イメージをＩとすると、下記式（７）で表される。この式（７）の演算は、実際には高速フーリエ変換を用いて高速化することができる。
【０１０３】
【数７】
2004030629.tif 000009
【０１０４】
作成したガボア・フィルタの性能を調べるためには、フィルタリングして得られた画素を再構築することによって行う。再構築されたイメージＨは、下記式（８）のように表される。
【０１０５】
【数８】
2004030629.tif 000010
【０１０６】
そして、入力画像Ｉと再構築された画像ＨとのエラーＥは、下記式（９）のように表される。
【０１０７】
【数９】
2004030629.tif 000011
【０１０８】
このエラーＥを最小にするような最適なａを求めることにより再構築することができる。なお、ガボア・フィルタリングに関しては、認識タスクに応じてフィルタの種類を変更するようにしてもよい。
【０１０９】
低周波でのフィルタリングでは、フィルタリング後のイメージすべてをベクトルとして持っているのは冗長である。そこで、ダウンサンプリングして、ベクトルの次元を落とすようにしてもよい。ダウンサンプリングされた２４種類のベクトルを一列に並べ、長いベクトル（上述したパターンベクトル）にする。
【０１１０】
パターン識別部６４は、外部から供給される学習用のデータすなわち教師データを用いて、暫定的な識別関数を得た後、当該識別関数を前処理部６３からパターンベクトルとして得られた３６０画素分のスコア画像に試して顔の検出を行う。そして、検出に成功したものを顔データとして出力する。また検出に失敗したものを非顔データとして学習データに追加して、更に学習をし直す。
【０１１１】
本適用例では、パターン識別部６４における顔認識に関して、パターン認識の分野で最も学習汎化能力が高いとされるサポートベクタマシン（Ｓｕｐｐｏｒｔ　Ｖｅｃｔｏｒ
Ｍａｃｈｉｎｅ：ＳＶＭ）を用いて該当する顔か否かの識別を行う。
【０１１２】
サポートベクタマシン自体に関しては、例えばＢ．ｓｈｏｌｋｏｐｆ外著の報告（Ｂ．Ｓｈｏｌｋｏｐｆ、Ｃ．Ｂｕｒｇｅｓ、Ａ．Ｓｍｏｌａ、”Ａｄｖａｎｃｅ　ｉｎ　Ｋｅｒｎｅｌ　Ｓｕｐｐｏｒｔ　Ｖｅｃｔｏｒ　ｅａｒｎｉｎｇ”、Ｔｈｅ　ＭＩＴ　Ｐｒｅｓｓ、１９９９．）を挙げることができる。本願出願人が行った予備実験の結果からは、サポートベクタマシンによる顔認識方法は、主成分分析（ＰＣＡ）やニューラル・ネットワークを用いる手法に比べ、良好な結果を示すことが判っている。
【０１１３】
サポートベクタマシンは、識別関数に線形識別器（パーセプトロン）を用いた学習機械であり、カーネル関数を使うことで非線形空間に拡張することができる。また識別関数の学習では、クラス間分離のマージンを最大にとるように行われ、その解は２次数理計画法を解くことで得られるため、グローバル解に到達できることを理論的に保証することができる。
【０１１４】
通常、パターン認識の問題は、テスト・サンプルｘ＝（ｘ１、ｘ２、・・・、ｘｎ）に対して、下記式（１０）で与えられる識別関数ｆ（ｘ）を求めることである。
【０１１５】
【数１０】
2004030629.tif 000012
【０１１６】
ここで、サポートベクタマシンの学習用の教師ラベルを下記式（１１）のようにおく。
【０１１７】
【数１１】
2004030629.tif 000013
【０１１８】
すると、サポートベクタマシンにおける顔パターンの認識を下記式（１２）に示す制約条件の下での重み因子ｗの２乗の最小化する問題としてとらえることができる。
【０１１９】
【数１２】
2004030629.tif 000014
【０１２０】
このような制約のついた問題は、ラグランジュの未定定数法を用いて解くことができる。すなわち、下記式（１３）に示すラグランジュをまず導入し、次いで、下記式（１４）に示すように、ｂ、ｗの各々について偏微分する。
【０１２１】
【数１３】
2004030629.tif 000015
【０１２２】
【数１４】
2004030629.tif 000016
【０１２３】
この結果、サポートベクタマシンにおける顔パターンの識別を下記式（１５）に示す２次計画問題としてとらえることができる。
【０１２４】
【数１５】
2004030629.tif 000017
【０１２５】
特徴空間の次元数が、訓練サンプルの数よりも少ない場合は、スクラッチ変数ξ≧０を導入して、制約条件を下記式（１６）のように変更する。最適化については、下記式（１７）の目的関数を最小化する。
【０１２６】
【数１６】
2004030629.tif 000018
【０１２７】
【数１７】
2004030629.tif 000019
【０１２８】
上記式（１７）において、Ｃは、制約条件をどこまで緩めるかを指定する係数であり、実験的に値を決定する必要がある。ラグランジュ定数ａに関する問題は下記式（１８）のように変更される。
【０１２９】
【数１８】
2004030629.tif 000020
【０１３０】
しかし、上記式（１８）のままでは、非線型の問題を解くことはできない。そこで、本適用例では、カーネル関数Ｋ（ｘ，ｘ３）を導入して、一旦、高次元の空間に写像して（カーネル・トリック）、その空間で線形分離することにしている。従って、元の空間では非線型分離していることと同等となる。
【０１３１】
カーネル関数は、ある写像Φを用いて下記式（１９）のように表される。
【０１３２】
【数１９】
2004030629.tif 000021
【０１３３】
また、上記（１０）式に示した識別関数も、下記式（２０）のように表すことができる。
【０１３４】
【数２０】
2004030629.tif 000022
【０１３５】
また学習に関しても、下記式（２１）に示す２次計画問題としてとらえることができる。
【０１３６】
【数２１】
2004030629.tif 000023
【０１３７】
カーネルとしては、下記式（２２）に示すガウシアン・カーネル（ＲＢＦ：Ｒａｄｉｕｓ　Ｂａｓｉｃ　Ｆｕｎｃｔｉｏｎ）等を用いることができる。
【０１３８】
【数２２】
2004030629.tif 000024
【０１３９】
このようにパターン識別部６４は、前処理部６３から与えられたスコア画像に基づくパターンベクトルについて、当該スコア画像内に顔データが存在するか否かを判断し、存在する場合のみ当該スコア画像の画像領域における左上位置（座標）及びその大きさ（縦横の画素数）と、当該スコア画像の切出し元となるスケール画像のフレーム画像に対する縮小率（すなわち上述の５段階のうちの該当する段階）とをリスト化し、これをリストデータとして内部メモリ３８１Ａに格納する。
【０１４０】
この後、パターン識別部６４は、ウィンドウ切出部６１に対して、第１のスケール画像のうち先頭のウィンドウ画像の顔検出が終了した旨を通知することにより、当該ウィンドウ切出部６１から第１のスケール画像のうち次にスキャンされたウィンドウ画像をテンプレートマッチング部６２に送出させる。
【０１４１】
そしてテンプレートマッチング部６２は、当該ウィンドウ画像がテンプレートにマッチングした場合のみスコア画像として前処理部６３に送出する。前処理部６３は、当該スコア画像をパターンベクトルに変換してパターン識別部６４に送出する。パターン識別部６４は、パターンベクトルから識別結果として得られた顔データに基づいてリストデータを生成して内部メモリ３８１Ａに格納する。
【０１４２】
このようにウィンドウ切出部６１おいて第１のスケール画像から切り出した全てのウィンドウ画像について、スキャン順にテンプレートマッチング部６２、前処理部６３及びパターン識別部６４の各処理を行うことにより、当該第１のスケール画像から撮像結果に存在する顔画像を含むスコア画像を複数検出することができる。
【０１４３】
この後、パターン識別部６４は、入力画像スケール変換部６０に対して、第１のスケール画像の顔検出が終了した旨を通知することにより、当該入力画像スケール変換部６０から第２のスケール画像をウィンドウ切出部６１に送出させる。
【０１４４】
そして第２のスケール画像についても、上述した第１のスケール画像と同様の処理を行って、当該第２のスケール画像から撮像結果に存在する顔画像を含むスコア画像を複数検出した後、第３〜第５のスケール画像についても同様の処理を順次行う。
【０１４５】
かくしてパターン識別部６４は、撮像画像であるフレーム画像を５段階に縮小した第１〜第５のスケール画像について、当該撮像画像内に存在する顔画像を含むスコア画像をそれぞれ複数検出した後、その結果得られたリストデータをそれぞれ内部メモリ３８１Ａに格納する。この場合、元のフレーム画像内での顔画像のサイズによっては、全くスコア画像が得られない場合もあるが、少なくとも１以上（２又は３以上でもよい）のスケール画像でスコア画像が得られれば、顔検出処理を続行することとする。
【０１４６】
ここで、各スケール画像において顔画像を含む複数のスコア画像は、ウィンドウ切出部６１におけるスキャンが２画素ずつすらして行われたため、実際に顔がある領域とその近傍領域とで高い相関性があり、隣接するスコア画像同士で相互に重なり合う画像領域を含むこととなる。
【０１４７】
そこで続く重なり判定部６５は、内部メモリ３８１Ａに格納されている第１〜第５のスケール画像ごとに複数のリストデータをそれぞれ読み出して、当該各リストデータに含まれるスコア画像同士を比較して、相互に重なり合う領域を含むか否かを判定する。
【０１４８】
その際、重なり判定部６５は、図７に示すように、２つのスコア画像Ｐ１、Ｐ２の左上角部の位置（座標）がそれぞれ（ＸＡ，ＹＡ）、（ＸＢ，ＹＢ）であり、その大きさ（縦横の画素数）がそれぞれＨＡ×ＬＡ、ＨＢ×ＬＢであるとき、ｄＸ（＝ＸＢ−ＸＡ）、ｄＹ（＝ＹＢ−ＹＡ）として、下記式（２３）を満たすか否かによって、当該スコア画像Ｐ１、Ｐ２同士が重なり合うか否かを判定することができる。
【０１４９】
【数２３】
2004030629.tif 000025
【０１５０】
重なり判定部６５は、当該判定結果に基づいて、スコア画像同士で重なり合う領域を除去することにより、各スケール画像において、最終的に複数のスコア画像を互いに重なることなく寄せ集めた単一の画像領域として得ることができ、当該画像領域を顔決定データとして新たに内部メモリ３８１Ａに格納する。
【０１５１】
また重なり判定部６５は、テンプレートマッチング部６２において顔画像でないと判断された場合には、そのまま何もすることなく、内部メモリ３８１Ａの格納も行わない。
【０１５２】
（２−１−３）第１の適用例における動作及び効果
以上の構成において、このロボット装置２００では、ＣＣＤカメラ５０により撮像したフレーム画像を縮小率が相異なる複数のスケール画像に変換した後、当該各スケール画像の中からそれぞれ所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら１枚ずつ切り出す。
【０１５３】
このウィンドウ画像について、平均的な顔画像を表すテンプレートを用いてマッチングをとって大まかに顔画像であるか否かを判断するようにして、明らかに顔画像でないウィンドウ画像を除去することにより、後段の顔検出処理に要する演算量及び時間をその分減少させることができる。
【０１５４】
続いてテンプレートマッチングで顔画像であると判断されたウィンドウ画像（すなわちスコア画像）について、当該スコア画像の矩形領域の４隅部分を除去した後、濃淡補正及び続くコントラスト強調の平滑化を行い、更に１本のパターンベクトルに変換する。
【０１５５】
そして当該パターンベクトルについて、元のスコア画像内での顔検出を行って顔データ又は非顔データを判断し、顔データが存在するスコア画像の画像領域の位置（座標）及びその大きさ（画素数）と、当該スコア画像の切出し元となるスケール画像のフレーム画像に対する縮小率とをリスト化したリストデータを生成する。
【０１５６】
このように各スケール画像毎にそれぞれ全てのスコア画像についてリストデータを生成した後、当該各リストデータに含まれるスコア画像同士を比較して、相互に重なり合う領域を除去した顔決定データを求めることにより、元のフレーム画像から顔画像を検出することができる。
【０１５７】
このような顔検出タスク処理のうち特にテンプレートマッチング処理は、比較的構成が簡易な演算器にもたやすく実装できる上に、画像圧縮等で利用されるブロックマッチングの手法と類似する処理であることからＣＰＵを用いた高速処理を行うハードウェアが数多く存在する。従ってテンプレートマッチング処理に関してはさらなる高速化が可能である。
【０１５８】
以上の構成によれば、このロボット装置２００において、ＣＣＤカメラ５０により撮像したフレーム画像について顔画像を検出する顔検出タスク処理の際、当該フレーム画像を相異なる縮小率で縮小した各スケール画像の中からそれぞれ所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら１枚ずつ切り出した後、平均的な顔画像を表すテンプレートを用いてマッチングをとって大まかに顔画像であるか否かを判断するようにして、明らかに顔画像でないウィンドウ画像を除去するようにしたことにより、当該テンプレートマッチングで顔画像であると判断されたスコア画像に対する種々の顔検出処理に要する演算量及び時間をその分減少させることができ、ロボット装置２００全体の制御を司る主制御部３８１の処理負担を軽減させることができ、かくしてリアルタイム性を格段と向上し得るロボット装置２００を実現できる。
【０１５９】
（２−２）第２の適用例
（２−２−１）ロボットの内部構成
第２の適用例において、胴体部ユニット２０２（図１）の胴体下部を形成する腰ベースの背面側には、図５との対応部分に同一符号を付した図８に示すように、上述した主制御部３８１に加えて、この主制御部３８１と接続されたバスを介して内部メモリ３８１Ａ、ＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）コントローラ７０及び演算処理部（ＤＳＰ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ）及び画像処理用エンジン等）７１が相互に接続されており、それ以外は第１の適用例と同様に構成されている。
【０１６０】
この場合、主制御部３８１のみが内部メモリ３８１Ａの管理を行うのではなく、ＤＭＡコントローラ７０が主制御部３８１又は演算処理部７１にデータを転送する。一方、当該主制御部３８１又は演算処理部７１から得られた演算結果をＤＭＡコントローラ７０を介して内部メモリ３８１Ａに格納するようになされている。
【０１６１】
このようにデータ転送をＤＭＡコントローラ７０が行うと共に、データ演算を主制御部３８１又は演算処理部７１に振り分けて互いに独立に行わせることにより、主制御部３８１にかかる負担を低減させ得るようになされている。
【０１６２】
（２−２−２）顔検出タスク機能に関する主制御部３８１の処理
第２の適用例の場合、顔検出タスク機能は、ＤＭＡコントローラ７０を介した主制御部３８１及び演算処理部７１における各種処理により実現されている。
【０１６３】
ここで、かかる顔検出タスク機能に関する主制御部３８１及び演算処理部７１の各処理内容を機能的に分類すると、図９に示すように、入力画像スケール変換部８０、ウィンドウ切出部８１、テンプレートマッチング部８２、重なり判定部８３、スケール変換及び切出部８４、前処理部８５及びパターン識別部８６に分けることができる。
【０１６４】
このうち入力画像スケール変換部８０、ウィンドウ切出部８１及びテンプレートマッチング部８２は、演算処理部７１が処理すると共に、重なり判定部８３、スケール変換及び切出部８４、前処理部８５及びパターン識別部８６は、主制御部３８１が処理するようになされている。演算処理部７１と主制御部３８１との処理の切り換えはＤＭＡコントローラ７０が行う。
【０１６５】
先ず、入力画像スケール変換部８０は、ＣＣＤカメラ５０（図８）からの画像信号Ｓ１Ａに基づくフレーム画像を内部メモリ３８１Ａから読み出して、当該フレーム画像を縮小率が相異なる複数のスケール画像（上述した第１〜第５のスケール画像）に変換する。
【０１６６】
続くウィンドウ切出部８１は、第１〜第５のスケール画像のうち、まず第１のスケール画像に対して、画像左上を起点として順に画像右下まで、適当な画素（例えば２画素）分を飛ばしながらスキャンするようにして、４００（＝２０×２０）画素の矩形領域でなるウィンドウ画像を順次切り出す。
【０１６７】
その際、ウィンドウ切出部８１は、第１のスケール画像から切り出した複数のウィンドウ画像のうち先頭のウィンドウ画像を後段のテンプレートマッチング部８２に送出する。
【０１６８】
テンプレートマッチング部８２は、ウィンドウ切出部８１から得られた先頭のウィンドウ画像について、平均的な顔画像をテンプレートとし、大まかなマッチングをとって、当該テンプレートとの相関度（テンプレートのうちマッチングする画素数の割合）を相関度データとして当該ウィンドウ画像と共にＤＭＡコントローラ７０を介して内部メモリ３８１Ａに格納する。
【０１６９】
具体的には、図１０に示すように、任意のスケール画像Ｆ１から切り出したウィンドウ画像Ｗ１について、平均的な顔画像であるテンプレートＴ１をとり、当該テンプレートＴ１との相関度をとった結果として、当該相関度を表す画像Ｒ１が検出され、これを相関度データとして内部メモリ３８１Ａに格納するようになされている。
【０１７０】
この第２の適用例の場合には、ウィンドウ画像について顔画像であると判断されたスコア画像以外をふるい落とす第１の適用例とは異なり、高速処理を実現すべく、当該ウィンドウ画像をスコア画像か否かにかかわりなく後段の重なり判定部８３に送出する。
【０１７１】
この後、テンプレートマッチング部８２は、ウィンドウ切出部８１に対して、第１のスケール画像のうち先頭のウィンドウ画像のテンプレートマッチングが終了した旨を通知することにより、当該ウィンドウ切出部８１から第１のスケール画像のうち次にスキャンされたウィンドウ画像をテンプレートマッチング部８２に送出させる。
【０１７２】
このようにテンプレートマッチング部８２は、ウィンドウ切出部８１において第１のスケール画像から切り出した全てのウィンドウ画像について、スキャン順にそれぞれ相関度データを生成する。
【０１７３】
この後、テンプレートマッチング部８２は、入力画像スケール変換部８０に対して、第１のスケール画像の顔検出が終了した旨を通知することにより、当該入力画像スケール変換部８０から第２のスケール画像をウィンドウ切出部８１に送出させる。
【０１７４】
そして第２のスケール画像についても、上述した第１のスケール画像と同様の処理を行って、当該第２のスケール画像から全てのウィンドウ画像に対応する相関度データを生成した後、第３〜第５のスケール画像についても同様の処理を順次行う。
【０１７５】
かくしてテンプレートマッチング部８２は、撮像画像であるフレーム画像を５段階に縮小した第１〜第５のスケール画像について、それぞれ切出した複数のウィンドウ画像に対応する相関度データを生成して、当該ウィンドウ画像と共にＤＭＡコントローラ７０を介して内部メモリ３８１Ａに格納する。
【０１７６】
以上が演算処理部７１における処理内容であり、ＤＭＡコントローラ７０の制御に応じて、主制御部３８１に切り換えられ、以下は当該主制御部３８１における処理内容となる。
【０１７７】
先ず、重なり判定部８３は、図１１の重なり判定処理手順Ｒ１１をステップＳＰ０から実行し、第１〜第５のスケール画像毎に、当該各スケール画像内のウィンドウ画像を切り出す際のスキャン順と同じ順番で、ウィンドウ画像をこれに付随する相関度データと共にＤＭＡコントローラ７０を介して内部メモリ３８１Ａから読み出す（ステップＳＰ１）。
【０１７８】
続いて重なり判定部８３は、該当するスケール画像における複数のウィンドウ画像について、スキャン順にウィンドウ画像同士を上述した式（２３）を用いて比較して、相互に重なり合う領域を含むか否かを判定する（ステップＳＰ２）。
【０１７９】
そして重なり判定部８３は、相互に重なり合う領域を含む場合のみ、当該ウィンドウ画像同士をそれぞれ対応する相関度の大小で比較して、相関度の大きいほうをスコア画像として、内部メモリ３８１Ａ内に設定する候補リストに追加して格納する（ステップＳＰ３）。
【０１８０】
そして重なり判定部８３は、該当するスケール画像内の全てのウィンドウ画像について、相関度を比較した場合の大きい方をスコア画像として候補リストに追加する（ステップＳＰ４）。一方、小さい方は候補リストに加えることなく又は既に候補リストに存在する場合には削除する（ステップＳＰ５）ようにして順次候補リストの書き換えを行う。
【０１８１】
やがて重なり判定部８３は、該当するスケール画像内の全てのウィンドウ画像について、比較的相関度が高い複数のスコア画像を候補リストとして決定した後、他のスケール画像についても比較的相関度が高い複数のスコア画像を候補リストとして決定する。なお、候補リストとして追加される比較的相関度が高いスコア画像の数は、各スケール画像毎にそれぞれ１０以下に絞られることが実験結として得ることができた。
【０１８２】
このようにして重なり判定部８３では、第１〜第５のスケール画像について、スコア画像を相関度の最も高いピーク値のみならず、そのピーク値の近傍領域をも対象として候補リストに加えるようにしたことにより、テンプレートマッチング部８２でのマッチング結果と後段のパターン識別部８６におけるサポートベクタマシンの処理結果とのずれをその分低下させることができる。
【０１８３】
実際上、かかる重なり判定部８３における候補リストの作成処理は、数回の加算及び乗算によって実行可能であるため、後段の前処理部８５及びパターン識別部８６による演算処理と比較すると、極めて高速に短時間に処理することができる。そして候補リストとして残ったスコア画像について前処理部８５及びパターン識別部８６による処理を行えば、当該前処理部８５及びパターン識別部８６においても処理負担を軽減させることができる。
【０１８４】
この後、スケール変換及び切出部８４は、重なり判定部８３において各スケール画像毎に候補リストとして内部メモリ３８１Ａに格納された複数のスコア画像について、当該内部メモリ３８１ＡからＤＭＡコントローラ７０を介して第１のスケール画像内でかつ候補リストの決定順に１つずつスコア画像を読み出して、前処理部８５に送出する。
【０１８５】
前処理部８５は、スケール変換及び切出部８４から得られたスコア画像について、矩形領域でなる当該スコア画像（４００画素）から人間の顔画像とは無関係である背景部分に相当する４隅の領域を除去するために、当該４隅の領域を切り取ったマスクを用いて３６０画素分を抽出する。
【０１８６】
そして前処理部８５は、撮像時の照明により濃淡で表される被写体の傾き条件を解消すべく、当該抽出した３６０画素分のスコア画像のうち顔画像として最適な部位を基準とする平面を形成するように画素単位で濃淡値に補正をかける。
【０１８７】
続いて前処理部８５は、当該３６０画素分のスコア画像のコントラストを強調した結果をヒストグラム平滑化処理を行うことにより、ＣＣＤカメラ５０のゲインや照明の強弱によらずに検出できるようにする。
【０１８８】
次いで、前処理部８５は、上述したガボア・フィルタリング処理を行うことにより、当該３６０画素分のスコア画像をベクトル変換し、得られたベクトル群を更に１本のパターンベクトルに変換する。
【０１８９】
パターン識別部８６は、上述したサポートベクタマシンを用いて、前処理部８５からパターンベクトルとして得られた３６０画素分のスコア画像に試して顔か否かの識別を学習しながら行う。
【０１９０】
このようにパターン識別部８６は、前処理部８５から与えられたスコア画像に基づくパターンベクトルについて、当該スコア画像内での顔データに相当する画像領域の位置（座標）及びその大きさ（画素数）と、当該スコア画像の切出し元となるスケール画像のフレーム画像に対する縮小率（すなわち上述の５段階のうちの該当する段階）とをリスト化し、これをリストデータとして内部メモリ３８１Ａに格納する。
【０１９１】
この後、パターン識別部８６は、スケール変換及び切出部８４に対して、第１のスケール画像のうち最初のスコア画像の顔検出が終了した旨を通知することにより、当該スケール変換及び切出部８４から第１のスケール画像のうち次のスコア画像を前処理部８５に送出する。前処理部８５は、当該スコア画像をパターンベクトルに変換してパターン識別部８６に送出する。パターン識別部８６は、パターンベクトルから得られた顔データに基づいてリストデータを生成して内部メモリ３８１Ａに格納する。
【０１９２】
このようにスケール変換及び切出部８４において第１のスケール画像内で候補リストにある全てのスコア画像について、順番に前処理部８５及びパターン識別部８６の各処理を行うことにより、当該第１のスケール画像から撮像結果に存在する顔画像を検出することができる。
【０１９３】
この後、パターン識別部８６は、スケール変換及び切出部８４に対して、第１のスケール画像の顔検出が終了した旨を通知することにより、当該第２のスケール画像についても、上述した第１のスケール画像と同様の処理を行って、当該第２のスケール画像から撮像結果に存在する顔画像を検出した後、第３〜第５のスケール画像についても同様の処理を順次行う。
【０１９４】
かくしてパターン識別部８６は、撮像画像であるフレーム画像を５段階に縮小した第１〜第５のスケール画像について、当該撮像画像内に存在する顔画像をそれぞれ検出した後、その結果得られた顔データに基づいてそれぞれリストデータを生成して内部メモリ３８１Ａに格納する。
【０１９５】
（２−２−３）第２の適用例における動作及び効果
以上の構成において、このロボット装置２００では、ＣＣＤカメラ５０により撮像したフレーム画像を縮小率が相異なる複数のスケール画像に変換した後、当該各スケール画像の中からそれぞれ所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら１枚ずつ切り出す。
【０１９６】
このウィンドウ画像について、平均的な顔画像を表すテンプレートを用いてマッチングをとって当該テンプレートとの相関度を表す相関度データを生成する。このように各スケール画像毎にそれぞれ全てのウィンドウ画像についてスキャン順にそれぞれ相関度データを生成する。
【０１９７】
ここまでを演算処理部７１において実行すると共にこれ以降の処理を主制御部３８１において実効することにより、その分当該主制御部３８１の処理負担を軽減することができる。
【０１９８】
続いて各スケール画像における複数のウィンドウ画像について、スキャン順にウィンドウ画像同士を比較して、相互に重なり合う領域を含む場合には、更に相関度を比較して大きい方のみをスコア画像として残るように候補リストに追加する。この結果、各スケール画像毎に、比較的相関度が高い複数のスコア画像を候補リストとして決定することができ、後段の顔識別処理の際に識別精度を一層向上させることができる。
【０１９９】
続いて各スケール画像毎に候補リストとして内部メモリ３８１Ａに格納された複数のスコア画像について、当該スコア画像の矩形領域の４隅部分を除去した後、濃淡補正及び続くコントラスト強調の平滑化を行い、更に１本のパターンベクトルに変換する。
【０２００】
そして当該パターンベクトルについて、元のスコア画像内での顔検出を行って顔データ又は非顔データを判断し、顔データが存在するスコア画像の画像領域の位置（座標）及びその大きさ（画素数）と、当該スコア画像の切出し元となるスケール画像のフレーム画像に対する縮小率とをリスト化したリストデータを生成する。
【０２０１】
このように各スケール画像毎にそれぞれ全てのスコア画像についてリストデータを生成することにより、元のフレーム画像から顔画像を検出することができる。
【０２０２】
かくして顔検出タスク処理に関して、ロボット装置２００の全体の制御を司る主制御部３８１に加えて、演算処理部７１を設け、内部メモリ３８１Ａに対するデータの読み書きをＤＭＡコントローラ７０の制御を介して主制御部３８１及び演算処理部７１の双方が行い得るようにしたことにより、当該主制御部３８１及び演算処理部７１がそれぞれ処理を分配することができる分、主制御部３８１にかかる演算量及び演算時間の負担を格段と低減させることができる。
【０２０３】
以上の構成によれば、このロボット装置２００において、ＣＣＤカメラ５０により撮像したフレーム画像について顔画像を検出する顔検出タスク処理の際、当該フレーム画像を相異なる縮小率で縮小した各スケール画像の中からそれぞれ所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら１枚ずつ切り出した後、平均的な顔画像を表すテンプレートを用いてマッチングをとって当該テンプレートとの相関度を表す相関度データをそれぞれ生成し、当該ウィンドウ画像同士で相互に重なり合う領域を含む場合には相関度を比較して大きい方のみを候補リストに残るようにしたことにより、当該候補リストにある比較的相関度が高い複数のスコア画像に対する種々の顔検出処理に要する演算量及び時間をその分減少させることができるのみならず、顔識別処理の際の識別精度を一層向上させることができる。
【０２０４】
これに加えて顔検出タスク処理に関して、ロボット装置２００の全体の制御を司る主制御部３８１と演算処理部７１とで処理を分担して行うようにしたことにより、当該主制御部３８１にかかる演算量及び演算時間の負担を格段と低減させることができ、かくしてリアルタイム性を格段と向上し得るロボット装置２００を実現できる。
【０２０５】
（３）実施の形態
次に、本発明の実施の形態について説明する。上述したように、テンプレートマッチングを行って顔候補を抽出し（第１の工程）、この顔候補の中からＳＶＭ等により顔領域を判定して（第２の工程）顔領域を検出する方法において、第１の工程においては、単純に正規化相関値の代償により顔候補を決定しているため、顔候補の見逃しを軽減しようとした場合、閾値を上げる方法又は間引きを減らす方法をとることができるものの、閾値を下げると演算量が増大してしまい、ロボット装置等のリソースの限られた環境においては好ましくない場合がある。一方、閾値を上げると、第２の工程において顔判定するための候補画像が減るため、演算量を減らすことができるものの、本来顔である画像も候補画像から取り除いてしまい、顔画像を見逃してしまう場合がある。
【０２０６】
そこで、本願発明者等は、テンプレートと同一サイズの顔領域（顔画像）が入力画像内に存在する場合、この顔画像とテンプレートとの相関をとれば、テンプレートサイズ近傍では最も相関値が大きくなることに着目し、顔領域の候補を絞り込む際に、局所的な絞り込みを行うアルゴリズムを使用することにより、本来顔である画像を見逃すことなく顔候補画像を低減して後段の第２の工程にて顔判定する計算量を低減する方法を見出した。具体的には、入力画像と所定サイズの平均顔のテンプレートとの正規化相関をとった相関値の集合であるマッチング結果における相関値の局所最大値に基づき候補となる顔領域を抽出するものである。以下、この顔検出方法について詳細に説明する。
【０２０７】
本実施の形態における顔検出装置は、上述の第１及び第２の適用例と同様の２足歩行のロボット装置等のＣＰＵ及びメモリ等のリソースが限られたシステムにおいて、性能を保持しつつ顔検出に要する計算量を削減する場合に好適である。本実施の形態においても、上述の第１及び第２の適用例と同様、図１乃至図４に示すロボット装置２００に搭載されるものとし、その内部構成は、上述の適用例と同様とし、その詳細な説明は省略する。
【０２０８】
（３−１）顔検出タスク機能に関する主制御部３８１の処理
本実施の形態におけるロボット装置２００に搭載された顔検出タスク機能について説明する。上述した如く、ロボット装置２００には、ＣＣＤカメラ５０を介して内部メモリ３８１Ａに記憶されるフレーム画像について、当該フレーム画像の中から人間の顔画像を検出する顔検出タスク機能が搭載されている。そしてこの顔検出タスク機能は、主制御部３８１における各種処理により実現されている。
【０２０９】
ここで、かかる顔検出タスク機能に関する主制御部３８１の処理内容を機能的に分類すると、図１２に示すように、テンプレートサイズ及び入力画像スケール変換決定部９０、ウィンドウ切り出し部９１、テンプレートマッチング部９２、スケール変換及び切り出し部９３、前処理部９４、及びパターン識別部９５に分けることができる。
【０２１０】
入力画像スケール変換決定部９０は、第１の適用例と同様に、ＣＣＤカメラ５０（図５）からの画像信号Ｓ１Ａに基づくフレーム画像を内部メモリ３８１Ａから読み出して、当該フレーム画像を縮小率が相異なる複数のスケール画像（第１〜第５のスケール画像）に変換すると共に、後段のテンプレートマッチング部９２で使用するテンプレートサイズ、即ち、顔画像のサイズを選択する（以下、これを第１のテンプレートサイズという）。
【０２１１】
続くウィンドウ切出部９１は、第１〜第５のスケール画像のうち、まず第１のスケール画像に対して、画像左上を起点として順に画像右下まで、適当な画素（例えば２画素）分を飛ばしながらスキャンするようにして、４００（＝２０×２０）画素の矩形領域でなるウィンドウ画像を順次切り出す。
【０２１２】
その際、ウィンドウ切出部９１は、第１のスケール画像から切り出した複数のウィンドウ画像のうち先頭のウィンドウ画像を、スケール変換決定部９１で選択した第１のテンプレートサイズのテンプレートと共に後段のテンプレートマッチング部９２に送出する。
【０２１３】
テンプレートマッチング部９２は、ウィンドウ切出部９１から得られた先頭のウィンドウ画像について、第１のテンプレートサイズを有する平均的な顔画像をテンプレートとして大まかなマッチングをとり、当該テンプレートとの相関値（テンプレートのうちマッチングする画素数の割合）の集合をマッチング結果として当該ウィンドウ画像と共にＤＭＡコントローラ７０を介して内部メモリ３８１Ａに格納する。
【０２１４】
即ち、図１３（ａ）に示すように、任意のスケール画像から切り出した、例えば高さ（ｙ軸方向の辺の長さ）ｈｅｉ＿ｓ×幅（ｘ軸方向の辺の長さ）ｗｅｉｄ＿ｓのウィンドウ画像（スケール変換後の入力画像）Ｗ２について、図１３（ｂ）に示すように、例えば高さｈｅｉ＿ｔ×幅ｗｉｄ＿ｓである第１のテンプレートサイズを有する平均的な顔画像であるテンプレートＴ２を使用し、ウィンドウ画像Ｗ２をスキャンし、所定画素（例えば１画素）ずつずらしながら移動させたテンプレートＴ２と上記入力画像との相関値の集合であるマッチング結果を求める。このマッチング結果は、テンプレートＴ２の移動に伴い相関値が２次元に配列されたものであり、図１４に示すように、当該相関値を表す高さｈｅｉ＿ｒ×幅ｗｉｄ＿ｒのテンプレートマッチング結果画像Ｒ２が得られる。ここで、テンプレートレートマッチング結果画像Ｒ２の高さｈｅｒ＿ｒは、ｈｅｉ＿ｓ−（ｈｅｉ＿ｔ＋１）であり、画像Ｒ２の幅ｗｉｄ＿ｓは、ｗｉｄ＿ｓ−（ｗｉｄ＿ｔ＋１）となる。
【０２１５】
次に、このテンプレートレートマッチング結果画像Ｒ２を所定のサイズ、例えば第１のテンプレートサイズと同一の大きさに分割し、各第１のテンプレートサイズに仕切られた分割領域毎に相関値の最大値を有する点（位置）を求め、これら各分割領域から得られた最大値を示す点のうち、所定の閾値以上のものを顔候補として抽出する。
【０２１６】
即ち、平均顔のテンプレートを使用して正規化相関をしようした場合、必ずしも任意のパターンより、顔画像の方が相関値が高くなるという保証はないものの、テンプレートと同一のサイズの顔画像が存在する場合は、テンプレートサイズ近傍の大きさでは相関値が最大値をとることから、相関値が分割領域内で最大値となり、且つ所定の閾値以上の点を顔候補として抽出することにより、単にテンプレートマッチングの結果、相関値が所定の閾値以上であるものを顔候補として抽出する場合に比して、顔候補をより有効に絞り込むことができる。
【０２１７】
次に、この顔候補として抽出された点を顔候補（第１の顔候補）とすると共に、この顔候補近傍の点も顔候補（第２の顔候補）として抽出する。後段のパターン認識部９５において、上述したＳＶＭを使用して顔判定する場合、ＳＶＭは１画素ずれるのみで顔検出ができなくなるほど敏感であるため、本実施の形態においては、顔候補の近傍も検索範囲（第２の顔候補）とすることにより、顔候補の近傍を重点的に検索して顔検出性能を向上することができる。ここで第１の顔候補として抽出された点の上下左右に隣接する８点全てを検索範囲とすると、後段の計算量が増加するため、所定の条件を満たす場合にのみ、検索範囲に指定することにより、後段の計算量の増加を抑えつつ検出性能を向上させることができる。
【０２１８】
即ち、第１の顔候補として抽出された点に隣接する点において、これらの点に対応するテンプレートサイズの入力画像領域において、肌色領域の占有率（肌色占有率）が所定の閾値以上である場合、又は、予め検出された（又は予め学習された）顔色情報を有し、この顔色領域の占有率（顔色占有率）が所定の閾値以上である場合にのみ、その点を検索範囲に設定することができる。ここで、肌色占有率は、例えば、肌色カラーテーブルを使用し、この肌色と比較することにより求めることができる。
【０２１９】
この後、テンプレートマッチング部９２は、ウィンドウ切出部９１に対して、第１のスケール画像のうち先頭のウィンドウ画像のテンプレートマッチングが終了した旨を通知することにより、当該ウィンドウ切出部９１から第１のスケール画像のうち次にスキャンされたウィンドウ画像をテンプレートマッチング部９２に送出させる。
【０２２０】
このようにテンプレートマッチング部９２は、ウィンドウ切出部９１において第１のスケール画像から切り出した全てのウィンドウ画像について、スキャン順にそれぞれ顔候補を検出する。
【０２２１】
以上が演算処理部７１における処理内容であり、ＤＭＡコントローラ７０の制御に応じて、主制御部３８１に切り換えられ、以下は当該主制御部３８１における処理内容となる。
【０２２２】
スケール変換及び切出部９３は、各スケール画像毎に候補リストとして内部メモリ３８１Ａに格納された複数のスコア画像について、当該内部メモリ３８１ＡからＤＭＡコントローラ７０を介して第１のスケール画像内でかつ候補リストの決定順に１つずつスコア画像を読み出して、前処理部９４に送出する。
【０２２３】
前処理部９４は、スケール変換及び切出部９３から得られたスコア画像について、矩形領域でなる当該スコア画像（４００画素）から人間の顔画像とは無関係である背景部分に相当する４隅の領域を除去するために、当該４隅の領域を切り取ったマスクを用いて３６０画素分を抽出する。
【０２２４】
そして前処理部９４は、撮像時の照明により濃淡で表される被写体の傾き条件を解消すべく、当該抽出した３６０画素分のスコア画像のうち顔画像として最適な部位を基準とする平面を形成するように画素単位で濃淡値に補正をかける。
【０２２５】
続いて前処理部９４は、当該３６０画素分のスコア画像のコントラストを強調した結果をヒストグラム平滑化処理を行うことにより、ＣＣＤカメラ５０のゲインや照明の強弱によらずに検出できるようにする。
【０２２６】
次いで、前処理部９４は、上述したガボア・フィルタリング処理を行うことにより、当該３６０画素分のスコア画像をベクトル変換し、得られたベクトル群を更に１本のパターンベクトルに変換する。
【０２２７】
パターン識別部（識別手段）９５は、上述したサポートベクタマシンを用いて、前処理部９４からパターンベクトルとして得られた３６０画素分のスコア画像に試して顔か否かの識別を学習しながら行う。
【０２２８】
このようにパターン識別部９５は、前処理部９４から与えられたスコア画像に基づくパターンベクトルについて、当該スコア画像内での顔データに相当する画像領域の位置（座標）及びその大きさ（画素数）と、当該スコア画像の切出し元となるスケール画像のフレーム画像に対する縮小率（すなわち上述の５段階のうちの該当する段階）と、テンプレートのサイズとをリスト化し、これをリストデータとして内部メモリ３８１Ａに格納する。
【０２２９】
この後、パターン識別部９５は、スケール変換及び切出部９３に対して、第１のスケール画像のうち最初のスコア画像の顔検出が終了した旨を通知することにより、当該スケール変換及び切出部９３から第１のスケール画像のうち次のスコア画像を前処理部９４に送出する。前処理部９５は、当該スコア画像をパターンベクトルに変換してパターン識別部９５に送出する。パターン識別部９５は、パターンベクトルから得られた顔データに基づいてリストデータを生成して内部メモリ３８１Ａに格納する。
【０２３０】
このようにスケール変換及び切出部９３において、第１のスケール画像内で候補リストにある全てのスコア画像について、順番に前処理部９４及びパターン識別部９５の各処理を行うことにより、当該第１のスケール画像から撮像結果に存在する顔画像を検出することができる。
【０２３１】
即ち、テンプレートマッチング部９２は、入力画像スケール変換部９０に対して、第１のスケール画像及び第１のテンプレートサイズのテンプレートを使用した顔検出が終了した旨を通知することにより、当該入力画像スケール変換部９０から、第１のスケール画像及び第２のテンプレートサイズのテンプレートをウィンドウ切り出し部９１に送出させる。第２のテンプレートサイズを使用した場合も、上述した第１のテンプレートサイズのテンプレートを使用した場合と同様の処理を行って全てのテンプレートサイズに対応する顔候補を検出した後、テンプレートマッチング部９２は、入力画像スケール変換部９０の第１のスケール画像に対して全てのテンプレートサイズを使用した顔検出が終了した旨を通知することにより、当該入力画像スケール変換決定部９０から第２のスケール画像をウィンドウ切出部９１に送出させる。
【０２３２】
そして第２のスケール画像についても、上述した第１のスケール画像と同様の処理を行って、当該第２のスケール画像から全てのウィンドウ画像に対応する顔候補を検出した後、第３〜第５のスケール画像についても同様の処理を順次行う。
【０２３３】
かくしてテンプレートマッチング部９２は、撮像画像であるフレーム画像を５段階に縮小した第１〜第５のスケール画像及び複数のテンプレートサイズのテンプレートについて、それぞれ切出した複数のウィンドウ画像に対応する顔候補を抽出して、当該ウィンドウ画像と共にＤＭＡコントローラ７０を介して内部メモリ３８１Ａに格納する。
【０２３４】
ここで、本実施の形態においては、任意の大きさのテンプレートを使用することができるが、使用するテンプレートサイズを切り替えて、テンプレートサイズを選択することにより、入力画像に対して準備できる全てのテンプレートサイズに対して演算をする場合に比して、演算量を減らして高効率化することができる。例えば、一度顔が検出された場合に、次に顔検出する際はそのテンプレートサイズを使用することができる。また、例えば、ロボット装置に設けられた距離センサを使用し、この距離センサからの距離情報に基づき入力画像に含まれる対象物との間の距離を認識することにより、対象物の顔領域の大きさを予測してテンプレートサイズを選択する対象距離切り替え手段を設ける等することができ、目的に応じてテンプレートサイズを切り替えることができる。
【０２３５】
（３−２）実施の形態における動作
以上の構成において、このロボット装置２００では、ＣＣＤカメラ５０により撮像したフレーム画像を縮小率が相異なる複数のスケール画像に変換した後、当該各スケール画像の中からそれぞれ所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら１枚ずつ切り出す。
【０２３６】
このウィンドウ画像について、平均的な顔画像を表すテンプレートを用いてマッチングをとって当該テンプレートとの相関値の集合であるマッチング結果画像を生成する。このように各スケール画像毎にそれぞれ全てのウィンドウ画像についてスキャン順にそれぞれマッチング結果画像を生成する。以下、マッチング結果画像から顔候補を検出する工程について詳細に説明する。
【０２３７】
図１５は、テンプレートマッチング部９２において、テンプレートマッチング結果画像Ｒ２から顔候補となる画素を検出する各処理工程を示すフローチャートである。図１５に示すように、先ず、テンプレートマッチング結果画像Ｒ２が入力されると、マッチング結果画像Ｒ２をテンプレートサイズに分割し、その分割領域の１つ、例えば０≦ｘ≦ｗｉｄ＿ｔ−１、０≦ｙ≦ｈｅｉ＿ｔ−１において、最も相関値が高い点（座標）を抽出する（ステップＳＰ１１）。以下、マッチング結果画像Ｒ２をテンプレートサイズに分割した領域を分割領域ｒｎ、分割領域ｒｎにおいて、相関値が最も大きい点（座標）をｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）という。ここでは、この各分割領域内において最も相関値が高い画素を抽出するが、本実施の形態においては、マッチング結果画像において分割された分割領域を左から右へ一行ずつ順に処理を行う場合について説明する。
【０２３８】
次に、ｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）が所定の閾値（ｔｈ１）より大きいか否かを判定し（ステップＳＰ１２）、大きい場合は、顔候補として追加する（ステップＳＰ１３）。上述した如く、入力画像スケール変換決定部９０においては、スケールと共に入力画像に含まれると想定される顔の大きさのテンプレートサイズを選択するが、テンプレートサイズは異なる大きさの複数種類あり、複数種類ある各テンプレートサイズ毎にマッチング結果画像Ｒ２を算出して顔候補を抽出すると、同一の点が抽出される場合がある。従って、ステップＳＰ１３において、顔候補として同一の点がある場合、即ち、異なるテンプレートサイズで顔候補を抽出した際に既に抽出されている場合はこの点は追加しない。
【０２３９】
次に、顔候補として抽出された点に対応するテンプレートサイズの入力画像領域において、この画像領域内に含まれる肌色画素の占有率を求める。本実施の形態においては、肌色画素の占有率を求める際に、肌色カラーテーブル１００を参照する。そして、この肌色画素占有率が所定の閾値（ｔｈ２）より大きいか否かを判定する（ステップＳＰ１４）。大きい場合は、このｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）の周辺、例えば上下左右の８近傍点を顔候補として追加する（ステップＳＰ１５）。ここで、ステップＳＰ１３と同様に、既にこれらの８近傍点が既に顔候補として抽出されている場合は、候補に追加しない。
【０２４０】
ステップＳＰ１２でｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）が閾値ｔｈ１未満だった場合、ステップＳＰ１４でｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）に相当する入力画像における肌色画素占有率が閾値ｔｈ２未満であった場合、及びステップＳＰ１５で顔候補の追加が終了した後は、いずれもステップＳＰ１６に進み、次の顔候補を抽出するために次の分割領域に移り、処理を進める。
【０２４１】
先ず、マッチング結果画像Ｒ２において、ｘ方向にテンプレートサイズ分、即ち、ｗｉｄ＿ｔだけずれた隣の分割領域に移る（ステップＳＰ１６）。次に、ｗｉｄ＿ｔだけずれたｘ座標（ｘ＋ｗｉｄ＿ｔ）の分割領域において、そのｘ座標がマッチング結果画像の幅（ｘ方向の辺）ｗｉｄ＿ｒより大きい場合は、分割領域がマッチング結果画像に含まれないことを示し、次の行に移り、０≦ｘ≦ｗｉｄ＿ｔ−１であって、ｙ方向にテンプレートサイズ分、即ち、ｈｅｉ＿ｔだけずれた隣の分割領域に移る（ステップＳＰ１８）。次に、分割領域のｙ座標がマッチング結果画像の高さ（ｙ方向の辺）ｈｅｉ＿ｒより大きいか否かを判定し（ステップＳＰ１９）、大きい場合は、マッチング結果画像における全ての分割領域の相関値の最大値を求めたことを示し、処理を終了する。
【０２４２】
一方、ステップＳＰ１７及びステップＳＰ１８において、分割領域がマッチング結果画像に含まれると判定された場合は、再びステップＳＰ１１に戻り、その分割領域内で最も高い相関値を有する点を抽出する。
【０２４３】
本実施の形態においては、マッチング結果画像Ｒ２をテンプレートサイズに区切た分割領域における相関値の最大値を求めているため、ステップＳＰ１６において、隣接する分割領域に移る場合は、ｘ方向にｗｉｄ＿ｔだけずれるものとしたが、マッチング結果画像Ｒ２は、テンプレートサイズ以下のサイズであれば、任意の大きさに分割することができる。その際、分割する画像の大きさの幅（ｘ方向の辺）ｗｉｄ＿ｓｔｅｐ、高さ（ｙ方向）ｈｅｉ＿ｓｔｅｐとすると、ステップＳＰ１６及びステップＳＰ１８において、夫々ｘ方向にｗｉｄ＿ｓｔｅｐ、又はｙ方向にｈｅｉ＿ｓｔｅｐ移動することにより、次の分割領域に進むことができる。
【０２４４】
こうして、テンプレートマッチング部９２において、顔候補が抽出される。ここまでを演算処理部７１において実行すると共にこれ以降の処理を主制御部３８１において実効することにより、その分当該主制御部３８１の処理負担を軽減することができる。以降のスケール変換及び切り出し部９３、前処理部９４及びパターン認識部９５を経て顔データを抽出する処理は、上述の第２の適用例と同様である。
【０２４５】
（３−３）本実施の形態の効果
図１６は、テンプレートマッチング部９２において、ウィンドウ画像Ｗ２から顔候補として検出された点を示す図である。図１６において、白で示す点が、図１４に示すマッチング結果画像Ｒ２から顔候補として抽出された点である。比較として、図１７は、マッチング結果画像Ｒ２において、閾値以上である点を全て顔候補として抽出した例を示す図である。図１７に示す図と比較すると、本実施の形態において、テンプレートマッチング部９２にて顔候補として抽出される点が飛躍的に少なくなっているのがわかる。これにより、後段の処理における計算量を飛躍的に削減することができる。
【０２４６】
本実施の形態においては、ウィンドウ画像について、平均的な顔画像を表すテンプレートを用いてマッチングをとって大まかに顔画像であるか否かを判断する際に、テンプレートマッチング結果画像を所定のサイズに仕切り、相関値の最大値を顔候補として抽出して明らかに顔画像でないウィンドウ画像を除去することにより、本来顔である領域を見逃すことなく、後段の顔検出処理に要する演算量及び時間を減少させることができ、かくしてリアルタイム性を格段と向上た顔検出装置及びこれを搭載したロボット装置を実現することができる。
【０２４７】
また、相関値が最大となる点と共にその周囲においても顔検索範囲とすることにより、顔検出精度を向上することができる。更に、所定の閾値以上の肌色占有率又は顔の色占有率を有する場合のみ、顔検索範囲として設定することにより、顔検出精度を保ちつつ顔候補を減らして後段の演算量を減らすことができる。更にまた、テンプレートのサイズを適宜切り替えることにより、更に演算量を減らすことができる。
【０２４８】
（４）他の実施の形態
なお上述の実施の形態においては、本発明を図１のように構成された２足歩行型のロボット装置２００に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のロボット装置及びロボット装置以外のこの他種々の装置に広く適用することができる。例えば、ロボット装置は、４足歩行であってもよく、更に、移動手段は、脚式移動方式に限定されない。
【０２４９】
また、ＣＣＤカメラ（撮像手段）５０による撮像結果として得られるフレーム画像を複数の異なる縮小率でなるスケール画像に縮小変換するスケール変換手段として、図１２に示す主制御部３８１の処理機能のうちの入力画像スケール変換部９０を適用するようにした場合について述べたが、本発明はこれに限らず、要は、フレーム画像を複数の異なる縮小率で縮小変換した複数のスケール画像を得ることができれば、この他種々の構成のものを適用するようにしてもよい。
【０２５０】
更に、１枚のフレーウ画像を０．８倍ずつ縮小変換した５種類のスケール画像を適用するようにしたが、主制御部３８１の処理能力の範囲内であれば、２〜４種類でも６種類以上でも良く、また縮小率も自由に設定するようにしてもよい。この場合、複数のスケール画像を基にして顔検出処理を行えば、撮像結果であるフレーム画像に実際に写っている顔のサイズにかかわりなく（すなわちロボット装置２００と人間との距離）、当該フレーム画像から直接顔画像を検出する場合よりも極めて高い確率で顔画像を検出することができる。
【０２５１】
また、ＣＣＤカメラ（撮像手段）５０による撮像結果として得られるフレーム画像内を、４００画素のウィンドウ画像を１画素ずつずらすようにスキャンしながら順次抽出する抽出手段を、図１２に示す主制御部３８１の処理機能のうちのウィンドウ切出部９１により構成するようにした場合について述べたが、本発明はこれに限らず、要は、フレーム画像又はスケール画像から所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら順次抽出する得ることができれば、この他種々の構成のものを適用するようにしてもよい。
【０２５２】
この場合、スキャンの順番は矩形画像の左上位置から右下位置まで以外にも当該矩形画像全体を走査することができればどのように設定してもよい。またスキャン時にずらす画素数は１画素でも３画素以上でも良く、ウィンドウ画像のサイズも４００画素以外に種々の縦横比の所望の画素数に設定するようにしてもよい。
【０２５３】
更に、ウィンドウ画像から当該顔画像を識別する識別手段として、図１２に示す主制御部３８１の処理機能のうちの前処理部９５及びパターン識別部９６を適用するようにした場合について述べたが、本発明はこれに限らず、顔画像を検出することができればこの他種々の方法を用いた構成のものに広く適用することができる。
【０２５４】
更にまた、抽出されたウィンドウ画像を、平均的な顔画像を表すテンプレートを用いてマッチングをとり、当該テンプレートとの相関度を検出する相関度検出手段として、図１２に示す主制御部３８１の処理機能のうちのテンプレートマッチング部９２を適用するようにした場合について述べたが、本発明はこれに限らず、要は、当該テンプレートを基準として相関度を検出することができれば、この他種々の方法を用いた構成のものに広く適用することができる。
【０２５５】
更に、ロボット装置２００の制御全体を司る制御手段として主制御部３８１を適用すると共に、当該主制御部３８１と接続され、その制御に応じて情報を読み書きするメモリ手段として内部メモリ３８１Ａを適用し、更に図１２に示す主制御部３８１の処理機能のうち、入力画像スケール変換部９０、ウィンドウ切出部９１、テンプレートマッチング部９２による各処理を実行する演算処理手段として演算処理部７１（ＤＭＡコントローラ７０）を適用するようにした場合について述べたが、本発明はこれに限らず、主制御部３８１と演算処理部７１とで顔検出処理の処理機能（９０〜９５）を選択的に分担して内部メモリ３８１Ａを介して切り換えて実行することができれば、その際の分担内容は、主制御部３８１にかかる演算量及び演算時間の負担を低減させるように自由に設定することができる。また、主制御部３８１のみで処理を行ってもよい。
【０２５６】
【発明の効果】
以上詳細に説明したように本発明に係る顔検出装置は、入力画像から対象物の顔領域を抽出する顔検出装置において、撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成手段と、上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出手段と、上記顔候補として抽出された点に相当する入力画像領域から顔画像を識別する識別手段とを有するので、顔候補抽出手段により極めて効率よく且つ正確に顔候補を絞り込むことができるため、後段の顔識別手段における演算量を低減して、リアルタイムの顔検出を可能とする。
【０２５７】
本発明に係るロボット装置は、供給された入力情報に基づいて動作を行う自律型のロボット装置において、撮像手段と、上記撮像手段による撮像結果として得られるフレーム画像を入力画像とし該入力画像から人物の顔領域を抽出する顔検出手段を有し、上記顔検出手段は、上記入力画像と平均的な顔画像を示す所定サイズのテンプレートとの相関をとった相関値の集合であるマッチング結果を生成するマッチング結果生成手段と、上記マッチング結果から相関値の局所最大値を求めこの局所最大値に基づき顔候補を抽出する顔候補抽出手段と、上記顔候補として抽出された点に相当する入力画像領域から顔画像を識別する識別手段とを具備するので、顔候補抽出手段により極めて効率よく且つ正確に顔候補を絞り込み、顔検出の演算量を低減して、リアルタイムの顔検出を可能とすることにより、ロボット装置のエンタテーメント性を向上することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態における人間型ロボット装置を前方からみた外観を示す斜視図である。
【図２】本発明の実施の形態における人間型ロボット装置を後方からみた外観を示す斜視図である。
【図３】本発明の実施の形態における人間型ロボット装置の自由度構成モデルを示す模式図である。
【図４】本発明の実施の形態における人間型ロボット装置の制御システム構成を示す模式図である。
【図５】第１の適用例におけるロボット装置の内部構成の説明に供するブロック図である。
【図６】第１の適用例におけるロボット装置の顔検出手段を示すブロック図である。
【図７】重なり判定処理の説明に供する略線的な平面図である。
【図８】第２の適用例におけるロボット装置の内部構成の説明に供するブロック図である。
【図９】第２の適用例におけるロボット装置の顔検出手段を示すブロック図である。
【図１０】テンプレートマッチングによる相関性の検出の説明に供する模式図である。
【図１１】重なり判定処理手順をその工程順に示すフローチャートである。
【図１２】本発明の実施の形態におけるロボット装置の顔検出タスク機能を示すブロック図である。
【図１３】（ａ）及び（ｂ）は、夫々入力画像（ウィンドウ画像）及びテンプレートを示す模式図である。
【図１４】入力画像（ウィンドウ画像）とテンプレートとから求めた相関値の集合であるマッチング結果画像を示す図である。
【図１５】本発明の実施の形態における顔検出手段のテンプレートマッチング部における処理工程を示すフローチャートである。
【図１６】本発明の実施の形態における顔検出タスク機能のテンプレートマッチング部がマッチング結果画像から顔候補を抽出した結果を示す図である。
【図１７】マッチング結果画像において、所定の閾値以上のものを顔候補として抽出した結果を示す図である。
【符号の説明】
１　ロボット装置、　３８１　メイン制御部、　３８１Ａ　内部メモリ、　５０　ＣＣＤカメラ、　６０、８０、９０　入力画像スケール変換部、　６１、８１、９１　ウィンドウ切出部、　６２、８２、９２　テンプレートマッチング部、　６３、８５、９４　前処理部、　６４、８６、９５　パターン識別部、　６５、８３　重なり判定部、　７０　ＤＭＡコントローラ、　７１　演算処理部、８４、９３　スケール変換及び切出部、　ＲＴ１　重なり判定処理手順、　Ｓ１Ａ　画像信号
【図１】
2004030629.tif 000026
【図２】
2004030629.tif 000027
【図３】
2004030629.tif 000028
【図４】
2004030629.tif 000029
【図５】
2004030629.tif 000030
【図６】
2004030629.tif 000031
【図７】
2004030629.tif 000032
【図８】
2004030629.tif 000033
【図９】
2004030629.tif 000034
【図１０】
2004030629.tif 000035
【図１１】
2004030629.tif 000036
【図１２】
2004030629.tif 000037
【図１３】
2004030629.tif 000038
【図１４】
2004030629.tif 000039
【図１５】
2004030629.tif 000040
【図１６】
2004030629.tif 000041
【図１７】
2004030629.tif 000042