(57)【要約】【課題】顔が傾いたり向きが違ったりしているような非正面顔であっても、顔画像を高効率に検出する。【解決手段】顔検出装置は、テンプレートマッチングにより顔検出する。入力画像が供給されると、前回の入力画像において顔検出された場合における回転角Ｒ＿ｆｏｕｎｄが存在するか否かが判定され、存在しない場合はテンプレート画像を使用して相関値を求め、この相関値に基づき判定部３０２において、顔検出する。顔検出できなかった場合、テンプレート画像を現在の状態から例えば９０°回転する。そして、顔検出されるか、全ての回転角について、マッチングを行うまで一連の処理を繰り返す。一方、前回のテンプレート画像の回転角が記憶されている場合、その回転角で回転したテンプレート画像を使用し、入力画像に対してマッチングを行い、顔検出された場合は、そのときの回転角Ｒ＝Ｒ＿ｆｏｕｎｄを記憶し、次の入力画像の処理を行う。【選択図】　図１
2004133637.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から対象物の顔を検出する顔検出装置において、
入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、
上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段と備え、
上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求める
ことを特徴とする顔検出装置。
【請求項２】
上記判定手段により顔画像が含まれると判定された場合に、該顔画像を抽出する抽出手段を有することを特徴とする請求項１記載の顔検出装置。
【請求項３】
供給された入力情報に基づいて動作を行うロボット装置に搭載される
ことを特徴とする請求項１記載の顔検出装置。
【請求項４】
上記相関算出手段は、上記ロボット装置に備えられたロボット装置自身の姿勢を検出する姿勢検出手段からの姿勢検出結果に基づき、上記所定の角度を決定する
ことを特徴とする請求項３記載の顔検出装置。
【請求項５】
入力画像から対象物の顔を検出する顔検出装置の顔検出方法において、
入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出工程と、
上記相関に基づき、上記入力画像に顔画像が含まれるか否かを判定する判定工程とを有し、
上記相関算出工程では、上記判定工程にて上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関が求められ、上記判定工程にて上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関が求められる
ことを特徴とする顔検出方法。
【請求項６】
上記判定工程にて上記入力画像に顔画像が含まれると判定された場合に上記顔画像を抽出する抽出工程を有する
ことを特徴とする請求項５記載の顔検出方法。
【請求項７】
上記顔検出装置は、供給された入力情報に基づいて動作を行うロボット装置に搭載される
ことを特徴とする請求項５記載の顔検出方法。
【請求項８】
上記相関算出工程では、上記ロボット装置に備えられたロボット装置自身の姿勢を検出する姿勢検出手段からの姿勢検出結果に基づき、上記所定の角度が決定される
ことを特徴とする請求項７記載の顔検出方法。
【請求項９】
入力画像から対象物の顔を検出する動作を実行させるためのプログラムにおいて、
入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出工程と、
上記相関に基づき、上記入力画像に顔画像が含まれるか否かを判定する判定工程とを有し、
上記相関算出工程では、上記判定工程にて上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定工程にて上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関が求められる
ことを特徴とするプログラム。
【請求項１０】
供給された入力情報に基づいて動作を行うロボット装置において、
画像を撮像する撮像部と、
上記撮像部から供給される入力画像から対象物の顔を検出する顔検出部とを備え、
上記顔検出部は、上記入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段とを有し、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求める
ことを特徴とするロボット装置。
【請求項１１】
自身の姿勢を検出する姿勢検出部を備え、
上記顔検出部は、上記姿勢検出部からの姿勢検出結果に基づき、上記所定の角を選択する
ことを特徴とする請求項１０記載のロボット装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力画像から対象物の顔を検出する顔検出装置、及び顔検出方法、並びに顔検出装置を搭載してエンターテインメント性の向上等を図ったロボット装置、並びに顔検出を行う動作をコンピュータに実行させるためのプログラムに関する。
【０００２】
【従来の技術】
電気的又は磁気的な作用を用いて人間（生物）の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータ及び搬送ロボット等の産業用ロボット（Ｉｎｄｕｓｔｒｉａｌ
Ｒｏｂｏｔ）であった。
【０００３】
最近では、人間のパートナーとして生活を支援する、即ち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬又は猫のように４足歩行の動物の身体メカニズム及びその動作を模した「ペット型」ロボット、或いは、２足直立歩行を行う人間等の身体メカニズム及びその動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット（Ｈｕｍａｎｏｉｄ　Ｒｏｂｏｔ）等のロボット装置は、既に実用化されつつある。
【０００４】
これらのロボット装置は、産業用ロボットと比較して、例えばエンターテインメント性を重視した様々な動作等を行うことができるため、エンターテインメントロボットと呼称される場合もある。また、そのようなロボット装置には、ＣＣＤ（Ｃｈａｒｇｅ　　Ｃｏｕｐｌｅｄ　Ｄｅｖｉｃｅ）カメラ及びマイクロホン等の各種外部センサが搭載され、これら外部センサの出力に基づいて外部状況を認識して、外部からの情報及び内部の状態に応じて自律的に動作するものがある。
【０００５】
ところで、かかるエンターテインメント型のロボット装置において、対話中にその相手となる人間の顔や、移動中に視界内に入る人間の顔を検出して、その人間の顔を見ながら対話や動作を行うことができれば、人間が普段行う場合と同様に、その自然性から考えて最も望ましく、エンターテインメントロボット装置としてのエンターテインメント性をより一層向上させ得るものと考えられる。
【０００６】
例えば、下記特許文献１には、顔の向き傾き及び表情等による顔パターンの変化に左右されることなく顔パターンを認識するための顔認識装置が開示されている。この特許文献１に記載の技術においては、顔認識装置は、同じ顔画像が入力され、この顔画像に対し夫々異なる変形を除去するための変換を施して正規化された顔パターンを出力する、互いに独立して動作可能な複数の逆変換部と、この逆変換部から出力された複数の顔パターンと、予め用意された複数の人物の参照パターンと比較して類似度を計算する識別部と、この識別結果に基づいて顔画像に対応する人物を特定する結合部とを備える。逆変換部が除去する変形は、顔の位置ずれ、顔のカメラに映りこむ大きさの違い、顔の上下左右の向きの違い、顔の傾きの違い等の変形要素の組み合わせからなり、変形がない顔領域として切り出した正方形領域を、画面に平行な軸周りの回転を考慮したり、画面に垂直な軸周りの回転を考慮したりした領域に変換する。これにより、顔が前後に傾いていたり、顔の向きが違っているような場合においても、その逆変換部にて逆変換すれば認識することができる。
【０００７】
【特許文献１】
特開平１２−０９０１９１号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上述の特許文献１に記載の技術においては、予め想定される変形要素に対応した変形方法の数の逆変換部を設ける必要があり、装置が大型化するため、ロボット装置等の限られたリソースしか持たない装置に搭載するのは不向きである。また、顔の上下左右の向き又は傾き等の大きさを予め設定しておかなければならず、移動可能なロボット装置に搭載する場合、どれくらいの変形になるか予想できない場合等には認識率が低下する。例えば、上述の特許文献１においては、逆変換部では、予め設定する変形度合いにおいて、変形度合いが小さくなる可能性が大きく、変形度合いが大きくなる可能性が低いとして、変形度合いが小さく設定された逆変換部からの出力に対して識別部で算出された類似度ほど大きくなるような重みづけをして人物を特定しているが、ロボット装置に搭載された場合、ロボット装置が転倒すれば、撮影される顔画像は標準の顔パターンから大きく外れたものになるため、認識率が低下してしまう。一方、変形度合いが大きいほど、識別部で算出された類似度に対して大きい重み付けをした場合、変形により、元の顔パターンが別人に近い顔に変形されることになり、認識率が低下してしまう。
【０００９】
本発明は、このような従来の実情に鑑みて提案されたものであり、顔が傾いたり向きが違っているような非正面顔であっても、高効率に検出可能な顔検出装置、顔検出方法及びプログラム並びにこれを搭載したロボット装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係る顔検出装置は、入力画像から対象物の顔を検出する顔検出装置において、入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段と備え、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求めることを特徴とする。
【００１１】
本発明においては、判定手段により入力画像に顔画像が含まれないと判定された場合には、テンプレート画像を所定角度回転させたテンプレート画像を使用して入力画像との相関を再び算出することにより、入力画像に含まれる顔画像が正面顔でない場合においても正面顔のテンプレート画像を使用して検出することができると共に、入力画像に顔画像が含まれると判定された場合には、判定時の回転角度（０°を含む）のテンプレート画像を使用して次の入力画像との相関を求めるため、マッチングの処理が高速化する。
【００１２】
また、供給された入力情報に基づいて動作を行うロボット装置に搭載されることができ、例えばロボット装置が転倒した場合等で正面顔が撮影できないような状況においても顔検出を可能とする。
【００１３】
更に、上記相関算出手段は、上記ロボット装置に備えられたロボット装置自身の姿勢を検出する姿勢検出手段からの姿勢検出結果に基づき、上記回転角度を決定してもよく、例えば転倒した場合、姿勢情報に基づき、テンプレート画像の回転角を推定することにより、テンプレート画像を順次回転させて顔を検出するより処理が更に高速化する。
【００１４】
本発明に係る顔検出方法は、入力画像から対象物の顔を検出する顔検出装置の顔検出方法において、入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出工程と、上記相関に基づき、上記入力画像に顔画像が含まれるか否かを判定する判定工程とを有し、上記相関算出工程では、上記判定工程にて上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定工程にて上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関が求められることを特徴とする。
【００１５】
また、本発明に係るプログラムは、上述した顔検出処理をコンピュータに実行させるものである。
【００１６】
本発明に係るロボット装置は、供給された入力情報に基づいて動作を行うロボット装置において、画像を撮像する撮像部と、上記撮像部から供給される入力画像から対象物の顔を検出する顔検出部とを備え、上記顔検出部は、上記入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段とを有し、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求めることを特徴とする。
【００１７】
【発明の実施の形態】
（１）第１の実施の形態
本実施の形態における顔検出装置は、例えば後述するロボット装置に搭載することができる。以下、ロボット装置に搭載して周囲の人間の顔を認識するのに好適な顔検出装置について説明するが、ロボット装置の構成についての詳細は後述する。ロボット装置は、ＣＣＤカメラと、ＣＣＤカメラにより取得したフレーム画像を記憶するメモリと、このメモリに記憶されたフレーム画像の中から人間の顔画像を検出する顔検出タスク機能を有する顔検出モジュールとを備えている。テンプレート画像を使用した顔検出において、通常、テンプレートマッチングで使用される平均顔は、正面から撮影された一般的なものを使用して行うため、例えば、逆さから写した場合等、正面から写した顔以外（以下、非正面顔という。）を検出することが難しい。例えば、ロボット装置において、画像を取得するためのＣＣＤカメラが例えばロボット装置の顔部に搭載されていると、転倒して仰向けになったロボット装置を使用者等が覗き込んだ際等に写される顔画像は、通常の正面顔とは逆方向、即ち、正面顔を画面に垂直な方向を軸として略１８０°回転した状態の非正面顔となる。このような非正面顔が撮影された場合であっても顔検出を可能とするため、本実施の形態においては、正面顔のテンプレート画像を使用しても顔検出できなかった場合は、テンプレート画像を所定の角度回転して使用すると共に、顔検出された場合は、その回転角度を記憶し、次の入力画像のマッチングの際は、記憶した回転角度で回転したテンプレート画像を使用してマッチングを行うものである。
【００１８】
図１は、本発明の第１の本実施の形態における顔検出モジュールの機能を模式的に示すブロック図である。図１に示すように、画像検出モジュール３００は、ＣＣＤカメラ等の撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求めるテンプレートマッチング部（相関手段）３０１と、相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定部３０２と、顔画像が含まれると判定された場合に、該顔画像を抽出する顔抽出部３０３とから構成される。
【００１９】
テンプレートマッチング部３０１に供給される入力画像は、用意されたテンプレート画像における顔の大きさと一致させるため、フレーム画像を例えば複数のスケールに変換した後、所定の大きさに切り出した画像とすることができ、テンプレートマッチング部３０１は、各スケール毎の入力画像についてマッチングを行う。テンプレート画像としては、例えば１００人程度の人物の平均からなる平均的な顔画像を使用することができる。本実施の形態においては、テンプレート画像は正面顔とし、このときの回転角Ｒ＝０°とする。
【００２０】
判定部３０２は、テンプレートマッチング部３０１におけるテンプレートマッチングにおいて、所定の閾値以上の相関値を示した場合にその入力画像に顔画像が含まれると判定し、顔抽出部３０３により、該当する顔領域を抽出する。
【００２１】
ここで、判定部３０２において、いずれのマッチング結果も所定の閾値未満である場合は、入力画像にはテンプレート画像が示す顔が含まれていないと判定し、その判定結果をテンプレートマッチング部３０１に返す。マッチング部３０１は、入力画像に顔画像が含まれないと判定された場合、テンプレート画像を画面に垂直な方向を軸として所定角度回転し、入力画像に対して回転後の回転テンプレート画像を使用して再びテンプレートマッチングを行う。本実施の形態においては、顔画像が検出されなかった場合、テンプレート画像を画面に垂直な軸に対して所定方向に９０°ずつ、即ち、回転角Ｒ＝９０°、１８０°、２７０°となるよう、顔が検出されるまでテンプレート画像を順次回転させた回転テンプレート画像を使用するものとする。なお、この回転方向は、右でも左でもよく、順次回転させる回転角は９０°に限らず、例えば１８０°、４５°等適宜設定するものとする。
【００２２】
判定部３０２は、入力画像とＲ＝９０°として回転させた変形後のテンプレート画像とのマッチング結果を基に顔画像が含まれるか否かを判定する。そして、上述した如く、相関値が所定の閾値以上である場合、顔画像が含まれると判定する。顔画像が含まれると判定された場合は、その結果をテンプレートマッチング部３０１に入力し、テンプレートマッチング部３０１では、この顔画像が含まれると判定された回転角度（以下、Ｒ＝Ｒ＿ｆｏｕｎｄという。）が記憶される。テンプレートマッチング部３０１は、顔画像が検出された際の回転角度を記憶し、その回転角度のテンプレート画像を使用して次回の入力画像に対してマッチングを行う。ここで、顔画像が検出されなかった場合は、更に９０°回転させ、回転角Ｒ＝１８０°としたテンプレート画像を使用して再びマッチングをとる。
【００２３】
テンプレートマッチング部３０１に入力される画像は、例えば４０ｍｓｅｃ等毎に撮影されたものであり、一旦顔画像が検出された場合、次の入力画像が入力されるまでの短い間では、その顔の方向が急には変わらないことを利用し、例えば、１８０°回転した状態の顔画像が検出された場合に、次回の入力画像においても、その回転角のテンプレート画像を使用して顔検出する方が、再び正面顔を順次回転させてテンプレートマッチングを行うのに比して、格段に処理効率が高いためでる。
【００２４】
図２は、本実施の形態における顔検出方法を示すフローチャートである。図２に示すように、テンプレートマッチング部３０１に入力画像が供給されると（ステップＳ１）、前回の入力画像において顔検出された場合における回転角Ｒ＿ｆｏｕｎｄが存在するか否かが判定される（ステップＳ２）。ここで、前回の入力画像において、顔検出されてない場合は、回転角Ｒ＿ｆｏｕｎｄが存在しないため、テンプレート画像の回転角Ｒ＝０°、即ち、正面顔のテンプレート画像を使用して相関値を求める（ステップＳ３）。そして、この相関値に基づき判定部３０２において、相関値が所定の閾値以上か否かを判定する（ステップＳ４）。ステップ４において、相関値が所定の閾値未満であるとき、顔検出できなかったものとし、テンプレート画像の回転が終了したか否か、即ち、例えば、所定方向に９０°回転させる場合は、最初の状態から２７０°回転したが否かを判定し（ステップＳ５）、回転していない場合は、テンプレート画像を現在の状態から所定角度、即ち、本実施の形態においては、９０°回転する（ステップＳ６）。そして、ステップＳ４で顔が検出されると判定されるまでか、又はステップＳ５で２７０°、即ち、全ての回転角について、テンプレートマッチングを行うまで一連の処理を繰り返す。
【００２５】
一方、ステップＳ２において、前回の入力画像において顔画像が検出され、そのときのテンプレート画像の回転角Ｒ＿ｆｏｕｎｄが記憶されている場合、回転角をＲ＿ｆｏｕｎｄとたテンプレート画像を使用し、入力画像に対してマッチングを行う（ステップＳ７）。そして、上述のステップ４の顔検出判定に進む。
【００２６】
ステップＳ４において、相関値が所定の閾値以上であり、顔検出されたと判定された場合は、そのときの回転角Ｒ＝Ｒ＿ｆｏｕｎｄを記憶し（ステップＳ８）、ステップＳ１に戻り、次の入力画像の処理を行う。
【００２７】
このように構成された本実施の形態においては、前回の入力画像で顔画像が検出された場合は、そのときのテンプレート画像の回転角を記憶しておき、この回転角としたテンプレート画像を使用して、次の入力画像に対してマッチングを行うため、マッチング処理が高速化する。また、正面顔のテンプレート画像を使用し、例えば回転角０°の正面顔でマッチングを行い、顔が検出できなかった場合に、例えば９０°等、所定角度回転させて非正面顔としたテンプレート画像を使用して顔検出を行う動作を繰り返すことにより、正面顔のテンプレート画像のみを使用して、非正面顔を検出することが可能となり、極めて高効率で顔検出を行うことができる。
【００２８】
ここで、非正面顔を検出しようとした際に全ての方向に対して演算を行う場合に比して演算量を低減するために、上述のように、所定角度ずつ順次回転させたテンプレート画像を使用するのではなく、例えば、回転角Ｒ＝１８０°のテンプレート画像のみ等、所定の回転角のテンプレート画像のみのマッチングを行ってもよい。
【００２９】
また、前回のマッチングにおいて、回転角Ｒ＿ｆｏｕｎｄが記憶されていた場合に、次の入力画像において、顔画像が検出されなかった場合は、回転角をＲ＿ｆｏｕｎｄから更に所定方向に９０°回転させるものとしたが、再び回転角Ｒ＝０°から処理を開始してもよい。また、本実施の形態においては、所定方向に９０°回転するものとしたが、Ｒ＝０°の次に、Ｒ＝１８０°としたり、Ｒ＝９０°の次にＲ＝２７０°としたりする等、適宜回転角度を選択できるようにしてもよい。
【００３０】
更に、回転角Ｒ＿ｆｏｕｎｄが記憶されている場合に、上述したように、例えば入力画像は、例えば４０ｍｓｅｃ間隔で入力されるような場合、次の入力画像においても、回転角Ｒ＿ｆｏｕｎｄで顔検出される可能性が高い。この際、次の入力画像において、回転角Ｒ＿ｆｏｕｎｄのテンプレート画像を使用しても顔検出できなかった場合、回転角Ｒ＿ｆｏｕｎｄ近傍で顔検出される可能性が高いため、回転角Ｒ＿ｆｏｕｎｄ±αとしたテンプレート画像を使用して顔検出を行ってもよい。
【００３１】
更にまた、テンプレートマッチングにより顔検出されなかった場合、テンプレート画像を回転するものとしたが、Ｒ＝０°のテンプレート画像と共に、例えばＲ＝９０°、１８０°、２７０°で回転した回転後のテンプレート画像を予め準備するようにしてもよい。
【００３２】
（２）第２の実施の形態
次に、本発明の第２の実施の形態について説明する。本第２の実施の形態は、テンプレートマッチングの際に姿勢情報が供給され、これに基づき、得られる顔画像の回転角を予測し、テンプレート画像の回転角を選択するようにした点が上述の第１の実施の形態と異なる。
【００３３】
即ち、ロボット装置には、自身の姿勢を検出する姿勢センサ等が設けられており、この姿勢センサからの姿勢情報がテンプレート画像マッチン部に供給される。上述したように、例えばロボット装置が転倒した場合、周囲の人間がそのロボット装置を覗き込む等すれば、ロボット装置が取得する画像、即ち、顔検出モジュールに供給される入力画像に含まれる顔画像は、通常の正面顔から画面に垂直な方向を軸として略１８０°回転したものとなることが予想される。従って、このような姿勢情報をテンプレートマッチング部に供給し、テンプレート画像の回転角を選択させるようにすることにより、処理が高速化する。
【００３４】
図３は、本発明の第２の実施の形態における顔検出方法を示すフローチャートである。図３に示すように、入力画像が供給されると（ステップＳ１１）、姿勢情報が供給されているか否かが判定される（ステップＳ１２）。ここで、姿勢情報が供給されている場合は、その姿勢情報に基づき最も可能性が高いと考えられる回転角Ｒ＿ｓｅｎｓｏｒを選択し、この回転角Ｒ＿ｓｅｎｓｏｒのテンプレート画像を使用して、テンプレートマッチングを行い（ステップＳ２０）、その結果、相関値が所定の閾値以上であるか否かが判定される（ステップＳ１５）。
【００３５】
一方、ステップＳ１２において、姿勢情報が供給されてない場合は、上述の第１の実施の形態と同様の方法にて顔検出が行われる。即ち、前回の入力画像において顔検出された場合における回転角Ｒ＿ｆｏｕｎｄが存在するか否かが判定され（ステップＳ１３）、回転角Ｒ＿ｆｏｕｎｄが存在しなければ、テンプレート画像の回転角Ｒ＝０°、即ち、正面顔のテンプレート画像を使用して相関値を求める（ステップＳ１４）。そして、この相関値に基づき判定部１２において、相関値が所定の閾値以上か否かが判定され（ステップＳ１５）、相関値が所定の閾値未満であるとき、顔検出できなかったものとし、テンプレート画像を正面顔であるＲ＝０°から２７０°回転させたか否かを判定し（ステップＳ１６）、回転していない場合はテンプレート画像を現在の状態から９０°回転する（ステップＳ１７）。そして、再びステップＳ１４に戻り、テンプレートマッチングを行う。
【００３６】
一方、ステップＳ１３において、前回の入力画像において顔画像が検出され、そのときのテンプレート画像の回転角Ｒ＿ｆｏｕｎｄが記憶されている場合、回転角をＲ＿ｆｏｕｎｄとしたテンプレート画像を使用し、入力画像に対してマッチングを行い（ステップＳ１８）、相関値が所定の閾値以上か否かを判定する（ステップＳ１５）。
【００３７】
ステップＳ１５において、相関値が所定の閾値以上であり、顔検出されたと判定された場合は、そのときの回転角Ｒ＝Ｒ＿ｆｏｕｎｄを記憶し（ステップＳ１９）、ステップＳ１に戻り、次の入力画像の処理を行う。
【００３８】
このように構成された本実施の形態においても、第１の実施の形態と同様に、前回の入力画像において顔検出された場合には、そのテンプレート画像の回転角Ｒ＿ｆｏｕｎｄを記憶しておき、この回転角Ｒ＿ｆｏｕｎｄのテンプレート画像を使用してマッチングを行うため、処理が高速化すると共に、姿勢情報が入力された場合は、姿勢情報に基づきテンプレート画像の回転角を予測し、この予測した回転角Ｒ＿ｓｅｎｓｏｒのテンプレート画像を使用してマッチングを行うので、例えばロボット装置が転倒する等、急な動作にも対応して高効率で短時間に顔検出することが可能となる。
【００３９】
（３）第１の適用例
次に、上述の第１及び第２の実施の形態で説明したようなテンプレートマッチングを適用して顔検出する本発明の第１の適用例について説明する（特願２００２−１６３６２２号参照）。本適用例においてもロボット装置に設けられたものであり、ロボット装置の全体の制御を司るコントロール部及びその内部に設けられた内部メモリ等により、顔検出処理が行われるものであり、第１及び第２の実施の形態においては、テンプレートマッチングにおいて所定の閾値以上である場合は、該当する画像を顔画像として抽出するものとしたが、本適用例においては、テンプレート画像マチングにより顔画像と判定された後、これを顔候補とし、更に、サポートベクタマシン等の識別手段を使用して顔であるか否かを判定するものである。
【００４０】
図４は、本発明の適用例を示す顔検出装置の機能を模式的に示すブロック図である。本適用例における顔検出タスク機能に関するコントロール部の処理内容を機能的に分類すると、図４に示すように、入力画像スケール変換部３６０、ウィンドウ切出部３６１、テンプレートマッチング部３６２、前処理部３６３、パターン識別部３６４及び重なり判定部３６５に分けることができる。
【００４１】
入力画像スケール変換部３６０は、ロボット装置の頭部等に設けられたＣＣＤカメラからの画像信号Ｓ１Ａに基づくフレーム画像を内部メモリから読み出して、当該フレーム画像を縮小率が相異なる複数のスケール画像に変換する。この適用例の場合、２５３４４（＝１７６×１４４）画素からなるフレーム画像に対して、これを０．８倍ずつ順次縮小して５段階（１．０倍、０．８倍、０．６４倍、０．５１倍、０．４１倍）のスケール画像（以下、これを第１〜第５のスケール画像と呼ぶ）に変換する。
【００４２】
続くウィンドウ切出部３６１は、第１〜第５のスケール画像のうち、まず第１のスケール画像に対して、画像左上を起点として順に画像右下まで、適当な画素（例えば２画素）分を右側又は下側にずらしながらスキャンするようにして、４００（＝２０×２０）画素の矩形領域（以下、この領域をウィンドウ画像と呼ぶ。）を順次切り出す。
【００４３】
その際、ウィンドウ切出部３６１は、第１のスケール画像から切り出した複数のウィンドウ画像のうち先頭のウィンドウ画像を後段のテンプレートマッチング部３６２に送出する。
【００４４】
テンプレートマッチング部３６２は、ウィンドウ切出部３６１から得られた先頭のウィンドウ画像について、正規化相関法や誤差二乗法等の演算処理を実行してピーク値をもつ関数曲線に変換した後、当該関数曲線に対して認識性能が落ちない程度に十分に低い閾値を設定して、当該閾値を基準として当該ウィンドウ画像が顔画像か否かを判断する。この際、上述の第１及び第２の実施の形態において、説明した如く、顔が検出されない場合は、テンプレート画像を所定角度回転させ、再度テンプレートマッチングを行うと共に、前回の入力画像において顔検出されている場合には、そのとき回転角Ｒ＿ｆｏｕｎｄが記憶されており、この回転角Ｒ＿ｆｏｕｎｄのテンプレート画像を使用してマッチング処理を行う。
【００４５】
本適用例の場合においても、テンプレートマッチング部３６２では、例えば１００人程度の人物の平均からなる平均的な顔画像をテンプレート画像として、かかる顔画像か否かの判断基準となる閾値を設定するようになされている。これにより当該ウィンドウ画像について、テンプレート画像となる平均的な顔画像との大まかなマッチングをとり得るようになされている。
【００４６】
このようにしてテンプレートマッチング部３６２は、ウィンドウ切出部３６１から得られたウィンドウ画像について、テンプレート画像によるマッチングをとり、顔画像であると判断された場合には、当該ウィンドウ画像をスコア画像として後段の前処理部３６３に送出する一方、顔画像でないと判断された場合には、当該ウィンドウ画像をそのまま後段の重なり判定部３６５に送出する。
【００４７】
この時点で顔画像であると判断されたウィンドウ画像（スコア画像）には、実際には顔画像以外の判断誤りの画像が大量に含まれるが、日常のシーンの中では顔に類似した背景画像が多く存在することはあまりないため、ほとんどのウィンドウ画像は顔画像ではないと判断されることとなり極めて有効である。
【００４８】
実際に上述した正規化相関法や誤差二乗法等の演算処理は、後段の前処理部及びパターン識別部における演算処理と比較すると、演算量が１０分の１から１００分の１程度で済むと共に、実験上この段階で顔画像以外の画像を８０〔％〕以上はふるい落とすことができることが確認されたため、コントロール部全体としては大幅な演算量の削減につながることがわかる。
【００４９】
前処理部３６３は、テンプレートマッチング部３６２から得られたスコア画像について、矩形領域でなる当該スコア画像から人間の顔画像とは無関係である背景部分に相当する４隅の領域を除去するために、当該４隅の領域を切り取ったマスクを用いて、４００（＝２０×２０）画素あるスコア画像から３６０画素分を抽出する。
【００５０】
そして前処理部３６３は、撮像時の照明により濃淡で表される被写体の傾き条件を解消すべく、当該抽出した３６０画素分のスコア画像のうち顔画像として最適な部位を基準とする平面を形成するように、例えば平均二乗誤差（ＲＳＭ：Ｒｏｏｔ　Ｍｅａｎ　Ｓｑｕａｒｅ）等による算出方法を用いて当該３６０画素の濃淡値に補正をかける。
【００５１】
続いて前処理部３６３は、当該３６０画素分のスコア画像のコントラストを強調した結果をヒストグラム平滑化処理を行うことにより、ＣＣＤカメラ５０のゲインや照明の強弱によらずに検出できるようにする。
【００５２】
次いで、前処理部３６３は、ガボア・フィルタリング（Ｇａｂｏｒ　Ｆｉｌｔｅｒｉｎｇ）処理を行うことにより、当該３６０画素分のスコア画像をベクトル変換し、得られたベクトル群を更に１本のパターンベクトルに変換する。
【００５３】
パターン識別部３６４は、外部から供給される学習用のデータすなわち教師データを用いて、暫定的な識別関数を得た後、当該識別関数を前処理部３６３からパターンベクトルとして得られた３６０画素分のスコア画像に試して顔の検出を行う。そして、検出に成功したものを顔データとして出力する。また検出に失敗したものを非顔データとして学習データに追加して、更に学習をし直す。
【００５４】
パターン識別部３６４における顔認識に関して、例えば、パターン認識の分野で最も学習汎化能力が高いとされるサポートベクタマシン（Ｓｕｐｐｏｒｔ　Ｖｅｃｔｏｒ　Ｍａｃｈｉｎｅ：ＳＶＭ）を用いて該当する顔か否かの識別を行うことができる。
【００５５】
サポートベクタマシン自体に関しては、例えばＢ．ｓｈｏｌｋｏｐｆ外著の報告（Ｂ．Ｓｈｏｌｋｏｐｆ、Ｃ．Ｂｕｒｇｅｓ、Ａ．Ｓｍｏｌａ、Ａｄｖａｎｃｅ　ｉｎ　Ｋｅｒｎｅｌ　Ｓｕｐｐｏｒｔ　Ｖｅｃｔｏｒ　ｅａｒｎｉｎｇ、Ｔｈｅ　ＭＩＴ　Ｐｒｅｓｓ、１９９９．）を挙げることができる。本願出願人が行った予備実験の結果からは、サポートベクタマシンによる顔認識方法は、主成分分析（ＰＣＡ）やニューラル・ネットワークを用いる手法に比べ、良好な結果を示すことが判っている。
【００５６】
そして、パターン識別部３６４は、前処理部３６３から与えられたスコア画像に基づくパターンベクトルについて、当該スコア画像内に顔データが存在するか否かを判断し、存在する場合のみ当該スコア画像の画像領域における左上位置（座標）及びその大きさ（縦横の画素数）と、当該スコア画像の切出し元となるスケール画像のフレーム画像に対する縮小率（すなわち上述の５段階のうちの該当する段階）とをリスト化し、これをリストデータとして内部メモリに格納する。
【００５７】
この後、パターン識別部３６４は、ウィンドウ切出部３６１に対して、第１のスケール画像のうち先頭のウィンドウ画像の顔検出が終了した旨を通知することにより、当該ウィンドウ切出部３６１から第１のスケール画像のうち次にスキャンされたウィンドウ画像をテンプレートマッチング部３６２に送出させる。
【００５８】
そしてテンプレートマッチング部３６２は、当該ウィンドウ画像がテンプレート画像にマッチングした場合のみスコア画像とし、そのときのテンプレート画像の回転角Ｒ＿ｆｏｕｎｄを記憶すると共に、上記スコア画像を前処理部３６３に送出する。前処理部３６３は、当該スコア画像をパターンベクトルに変換してパターン識別部３６４に送出する。パターン識別部３６４は、パターンベクトルから識別結果として得られた顔データに基づいてリストデータを生成して内部メモリに格納する。
【００５９】
このようにウィンドウ切出部３６１おいて第１のスケール画像から切り出した全てのウィンドウ画像について、スキャン順にテンプレートマッチング部３６２、前処理部３６３及びパターン識別部３６４の各処理を行うことにより、当該第１のスケール画像から撮像結果に存在する顔画像を含むスコア画像を複数検出することができる。
【００６０】
この後、パターン識別部３６４は、入力画像スケール変換部３６０に対して、第１のスケール画像の顔検出が終了した旨を通知することにより、当該入力画像スケール変換部３６０から第２のスケール画像をウィンドウ切出部３６１に送出させる。
【００６１】
そして第２のスケール画像についても、上述した第１のスケール画像と同様の処理を行って、当該第２のスケール画像から撮像結果に存在する顔画像を含むスコア画像を複数検出した後、第３〜第５のスケール画像についても同様の処理を順次行う。テンプレートマッチング部３６２で記憶された回転角Ｒ＿ｆｏｕｎｄは、次の入力画像における同スケール画像とのマッチングをとる際に使用することができる。また、上述の第２の実施の形態と同様に、姿勢情報から推定される回転角Ｒ＿ｓｅｎｓｏｒのテンプレート画像を使用してマッチングを行うようにしてもよい。
【００６２】
かくしてパターン識別部３６４は、撮像画像であるフレーム画像を５段階に縮小した第１〜第５のスケール画像について、当該撮像画像内に存在する顔画像を含むスコア画像をそれぞれ複数検出した後、その結果得られた回転角Ｒ＿ｆｏｕｎｄを含むリストデータをそれぞれ内部メモリに格納する。この場合、元のフレーム画像内での顔画像のサイズによっては、全くスコア画像が得られない場合もあるが、少なくとも１以上（２又は３以上でもよい）のスケール画像でスコア画像が得られれば、顔検出処理を続行することとする。
【００６３】
ここで、各スケール画像において顔画像を含む複数のスコア画像は、ウィンドウ切出部３６１におけるスキャンが２画素ずつすらして行われたため、実際に顔がある領域とその近傍領域とで高い相関性があり、隣接するスコア画像同士で相互に重なり合う画像領域を含むこととなる。
【００６４】
そこで続く重なり判定部３６５は、内部メモリに格納されている第１〜第５のスケール画像ごとに複数のリストデータをそれぞれ読み出して、当該各リストデータに含まれるスコア画像同士を比較して、相互に重なり合う領域を含むか否かを判定する。
【００６５】
重なり判定部３６５は、当該判定結果に基づいて、スコア画像同士で重なり合う領域を除去することにより、各スケール画像において、最終的に複数のスコア画像を互いに重なることなく寄せ集めた単一の画像領域として得ることができ、当該画像領域を顔決定データとして新たに内部メモリに格納する。
【００６６】
また重なり判定部３６５は、テンプレートマッチング部６２において顔画像でないと判断された場合には、そのまま何もすることなく、内部メモリの格納も行わない。
【００６７】
次に、この適用例における動作について説明する。以上の構成において、このロボット装置では、ＣＣＤカメラにより撮像したフレーム画像を縮小率が相異なる複数のスケール画像に変換した後、当該各スケール画像の中からそれぞれ所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら１枚ずつ切り出す。
【００６８】
このウィンドウ画像について、平均的な顔画像を表すテンプレート画像を用いてマッチングをとって大まかに顔画像であるか否かを判断するようにして、明らかに顔画像でないウィンドウ画像を除去することにより、後段の顔検出処理に要する演算量及び時間をその分減少させることができる。また、顔画像でないと判定された場合は、テンプレート画像を所定の回転角で順次回転させたテンプレート画像を使用しマッチングを行なうことにより、非正面顔であっても検出を可能にする。
【００６９】
続いてテンプレートマッチングで顔画像であると判断されたウィンドウ画像（すなわちスコア画像）について、当該スコア画像の矩形領域の４隅部分を除去した後、濃淡補正及び続くコントラスト強調の平滑化を行い、更に１本のパターンベクトルに変換する。
【００７０】
そして当該パターンベクトルについて、元のスコア画像内での顔検出を行って顔データ又は非顔データを判断し、顔データが存在するスコア画像の画像領域の位置（座標）及びその大きさ（画素数）と、当該スコア画像の切出し元となるスケール画像のフレーム画像に対する縮小率とをリスト化したリストデータを生成する。
【００７１】
このように各スケール画像毎にそれぞれ全てのスコア画像についてリストデータを生成した後、当該各リストデータに含まれるスコア画像同士を比較して、相互に重なり合う領域を除去した顔決定データを求めることにより、元のフレーム画像から顔画像を検出することができる。
【００７２】
このような顔検出タスク処理のうち特にテンプレートマッチング処理は、比較的構成が簡易な演算器にもたやすく実装できる上に、画像圧縮等で利用されるブロックマッチングの手法と類似する処理であることからＣＰＵを用いた高速処理を行うハードウェアが数多く存在する。従ってテンプレートマッチング処理に関してはさらなる高速化が可能である。
【００７３】
以上の構成によれば、このロボット装置において、ＣＣＤカメラにより撮像したフレーム画像について顔画像を検出する顔検出タスク処理の際、当該フレーム画像を相異なる縮小率で縮小した各スケール画像の中からそれぞれ所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら１枚ずつ切り出した後、平均的な顔画像を表すテンプレート画像を用いてマッチングをとって大まかに顔画像であるか否かを判断するようにして、明らかに顔画像でないウィンドウ画像を除去するようにしたことにより、当該テンプレートマッチングで顔画像であると判断されたスコア画像に対する種々の顔検出処理に要する演算量及び時間をその分減少させることができ、ロボット装置全体の制御を司る主制御部３８１の処理負担を軽減させることができ、かくしてリアルタイム性を格段と向上し得るロボット装置を実現できると共に、テンプレート画像を順次回転させてマッチングを行うため、非正面顔であっても見逃すことなく検出することができる。
【００７４】
（４）第２の適用例
テンプレートマッチングを行って顔候補を抽出し（第１の工程）、この顔候補の中からＳＶＭ等により顔領域を判定して（第２の工程）顔領域を検出する方法において、第１の工程においては、単純に正規化相関値の代償により顔候補を決定しているため、顔候補の見逃しを軽減しようとした場合、閾値を上げる方法又は間引きを減らす方法をとることができるものの、閾値を下げると演算量が増大してしまい、ロボット装置等のリソースの限られた環境においては好ましくない場合がある。一方、閾値を上げると、第２の工程において顔判定するための候補画像が減るため、演算量を減らすことができるものの、本来顔である画像も候補画像から取り除いてしまい、顔画像を見逃してしまう場合がある。そこで、このような場合に好適な本発明の第２の適用例について説明する。
【００７５】
テンプレート画像と同一サイズの顔領域（顔画像）が入力画像内に存在する場合、この顔画像とテンプレート画像との相関をとれば、テンプレート画像サイズ近傍では最も相関値が大きくなる。よって、顔領域の候補を絞り込む際に、局所的な絞り込みを行うアルゴリズムを使用することにより、本来顔である画像を見逃すことなく顔候補画像を低減して後段の第２の工程にて顔判定する計算量を低減することができる。具体的には、入力画像と所定サイズの平均顔のテンプレート画像との正規化相関をとった相関値の集合であるマッチング結果における相関値の局所最大値に基づき候補となる顔領域を抽出するようにする。
【００７６】
即ち、図５（ａ）に示すように、任意のスケール画像から切り出した、例えば垂直方向の大きさ（ｙ軸方向の辺の長さ、以下高さという。）ｈｅｉ＿ｓ×水平方向の大きさ（ｘ軸方向の辺の長さ、以下幅という。）ｗｅｉｄ＿ｓのウィンドウ画像（スケール変換後の入力画像）Ｗ２について、図５（ｂ）に示すように、例えば高さｈｅｉ＿ｔ×幅ｗｉｄ＿ｓである第１のテンプレート画像サイズを有する平均的な顔画像であるテンプレート画像Ｔ２１を使用し、ウィンドウ画像Ｗ２をスキャンし、所定画素（例えば１画素）ずつずらしながら移動させたテンプレート画像Ｔ２１と上記入力画像との相関値の集合であるマッチング結果を求める。このマッチング結果は、テンプレート画像Ｔ２１の移動に伴い相関値が２次元に配列されたものであり、図６に示すように、当該相関値を表す高さｈｅｉ＿ｒ×幅ｗｉｄ＿ｒのテンプレートマッチング結果画像Ｒ２が得られる。ここで、テンプレート画像レートマッチング結果画像Ｒ２の高さｈｅｒ＿ｒは、ｈｅｉ＿ｓ−（ｈｅｉ＿ｔ＋１）であり、画像Ｒ２の幅ｗｉｄ＿ｓは、ｗｉｄ＿ｓ−（ｗｉｄ＿ｔ＋１）となる。
【００７７】
次に、このテンプレート画像レートマッチング結果画像Ｒ２を所定のサイズ、例えば第１のテンプレート画像サイズと同一の大きさに分割し、各第１のテンプレート画像サイズに仕切られた分割領域毎に相関値の最大値を有する点（位置）を求め、これら各分割領域から得られた最大値を示す点のうち、所定の閾値以上のものを顔候補として抽出する。
【００７８】
即ち、平均顔のテンプレート画像を使用して正規化相関をしようした場合、必ずしも任意のパターンより、顔画像の方が相関値が高くなるという保証はないものの、テンプレート画像と同一のサイズの顔画像が存在する場合は、テンプレート画像サイズ近傍の大きさでは相関値が最大値をとることから、相関値が分割領域内で最大値となり、且つ所定の閾値以上の点を顔候補として抽出することにより、単にテンプレートマッチングの結果、相関値が所定の閾値以上であるものを顔候補として抽出する場合に比して、顔候補をより有効に絞り込むことができる。
【００７９】
ここで、本第２の適用例においては、任意の大きさのテンプレート画像を使用することができるが、使用するテンプレート画像サイズを切り替えて、テンプレート画像サイズを選択することにより、入力画像に対して準備できる全てのテンプレート画像サイズに対して演算をする場合に比して、演算量を減らして高効率化することができる。例えば、一度顔が検出された場合に、次に顔検出する際はそのテンプレート画像サイズを使用することができる。また、例えば、ロボット装置に設けられた距離センサを使用し、この距離センサからの距離情報に基づき入力画像に含まれる対象物との間の距離を認識することにより、対象物の顔領域の大きさを予測してテンプレート画像サイズを選択する対象距離切り替え手段を設ける等することができ、目的に応じてテンプレート画像サイズを切り替えることができる。
【００８０】
このウィンドウ画像について、平均的な顔画像を表すテンプレート画像を用いてマッチングをとって当該テンプレート画像との相関値の集合であるマッチング結果画像を生成する。このように各スケール画像毎にそれぞれ全てのウィンドウ画像についてスキャン順にそれぞれマッチング結果画像を生成する。以下、マッチング結果画像から顔候補を検出する工程について詳細に説明する。
【００８１】
図７は、テンプレートマッチング部において、テンプレートマッチング結果画像Ｒ２から顔候補となる画素を検出する各処理工程を示すフローチャートである。図７に示すように、先ず、テンプレートマッチング結果画像Ｒ２が入力されると、マッチング結果画像Ｒ２をテンプレート画像サイズに分割し、その分割領域の１つ、例えば０≦ｘ≦ｗｉｄ＿ｔ−１、０≦ｙ≦ｈｅｉ＿ｔ−１において、最も相関値が高い点（座標）を抽出する（ステップＳ２１）。以下、マッチング結果画像Ｒ２をテンプレート画像サイズに分割した領域を分割領域ｒｎ、分割領域ｒｎにおいて、相関値が最も大きい点（座標）をｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）という。ここでは、この各分割領域内において最も相関値が高い画素を抽出するが、本適用例においては、マッチング結果画像において分割された分割領域を左から右へ一行ずつ順に処理を行う場合について説明する。
【００８２】
次に、ｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）が所定の閾値（ｔｈ１）より大きいか否かを判定し（ステップＳ２２）、大きい場合は、顔候補として追加する（ステップＳ２３）。本適用例における顔検出装置は、スケールと共に入力画像に含まれると想定される顔の大きさのテンプレート画像サイズを選択する手段を有しているが、テンプレート画像サイズは異なる大きさの複数種類あり、複数種類ある各テンプレート画像サイズ毎にマッチング結果画像Ｒ２を算出して顔候補を抽出すると、同一の点が抽出される場合がある。従って、ステップＳ２３において、顔候補として同一の点がある場合、即ち、異なるテンプレート画像サイズで顔候補を抽出した際に既に抽出されている場合はこの点は追加しない。
【００８３】
次に、顔候補として抽出された点に対応するテンプレート画像サイズの入力画像領域において、この画像領域内に含まれる肌色画素の占有率を求める。本適用例においては、肌色画素の占有率を求める際に、肌色カラーテーブル１００を参照する。そして、この肌色画素占有率が所定の閾値（ｔｈ２）より大きいか否かを判定する（ステップＳＰ１４）。大きい場合は、このｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）の周辺、例えば上下左右の８近傍点を顔候補として追加する（ステップＳ２５）。ここで、ステップＳ２３と同様に、既にこれらの８近傍点が既に顔候補として抽出されている場合は、候補に追加しない。
【００８４】
ステップＳ２２でｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）が閾値ｔｈ１未満だった場合、ステップＳ２４でｌｏｃａｌ＿ｍａｘ（ｘ，ｙ）に相当する入力画像における肌色画素占有率が閾値ｔｈ２未満であった場合、及びステップＳ２５で顔候補の追加が終了した後は、いずれもステップＳ２６に進み、次の顔候補を抽出するために次の分割領域に移り、処理を進める。
【００８５】
先ず、マッチング結果画像Ｒ２において、ｘ方向にテンプレート画像サイズ分、即ち、ｗｉｄ＿ｔだけずれた隣の分割領域に移る（ステップＳ２６）。次に、ｗｉｄ＿ｔだけずれたｘ座標（ｘ＋ｗｉｄ＿ｔ）の分割領域において、そのｘ座標がマッチング結果画像の幅（ｘ方向の辺）ｗｉｄ＿ｒより大きい場合は、分割領域がマッチング結果画像に含まれないことを示し、次の行に移り、０≦ｘ≦ｗｉｄ＿ｔ−１であって、ｙ方向にテンプレート画像サイズ分、即ち、ｈｅｉ＿ｔだけずれた隣の分割領域に移る（ステップＳ２８）。次に、分割領域のｙ座標がマッチング結果画像の高さ（ｙ方向の辺）ｈｅｉ＿ｒより大きいか否かを判定し（ステップＳ２９）、大きい場合は、マッチング結果画像における全ての分割領域の相関値の最大値を求めたことを示し、処理を終了する。
【００８６】
一方、ステップＳ２７及びステップＳ２８において、分割領域がマッチング結果画像に含まれると判定された場合は、再びステップＳ２１に戻り、その分割領域内で最も高い相関値を有する点を抽出する。
【００８７】
このようにマッチング結果画像Ｒ２をテンプレート画像サイズに区切った分割領域における相関値の最大値を求めているため、ステップＳ２６において、隣接する分割領域に移る場合は、ｘ方向にｗｉｄ＿ｔだけずれるものとしたが、マッチング結果画像Ｒ２は、テンプレート画像サイズ以下のサイズであれば、任意の大きさに分割することができる。その際、分割する画像の大きさの幅（ｘ方向の辺）ｗｉｄ＿ｓｔｅｐ、高さ（ｙ方向）ｈｅｉ＿ｓｔｅｐとすると、ステップＳ２６及びステップＳ２８において、夫々ｘ方向にｗｉｄ＿ｓｔｅｐ、又はｙ方向にｈｅｉ＿ｓｔｅｐ移動することにより、次の分割領域に進むことができる。
【００８８】
図８は、テンプレートマッチング部において、ウィンドウ画像Ｗ２から顔候補として検出された点を示す図である。図８において、白で示す点が、図６に示すマッチング結果画像Ｒ２から顔候補として抽出された点である。比較として、図９は、マッチング結果画像Ｒ２において、閾値以上である点を全て顔候補として抽出した例を示す図である。図９に示す図と比較すると、本適用例において、テンプレートマッチング部にて顔候補として抽出される点が飛躍的に少なくなっているのがわかる。これにより、後段の処理における計算量を飛躍的に削減することができる。また、第１の実施の形態と同様に、テンプレート画像マッチン部において顔候補が抽出されなかった場合、又は顔候補として抽出される点が所定の閾値未満であるときは、図５（ｃ）に示すように、例えばテンプレート画像Ｔ２１を１８０°回転させたテンプレート画像Ｔ２２とする等、適宜テンプレート画像を回転させ、再度マッチングを行うことができる。更に、第２の実施の形態と同様に、姿勢情報からテンプレート画像の回転角を推定し、この推定した回転角のテンプレート画像を使用してマッチングを行うようにしてもよい。
【００８９】
このように、ウィンドウ画像について、平均的な顔画像を表すテンプレート画像を用いてマッチングをとって大まかに顔画像であるか否かを判断する際に、テンプレートマッチング結果画像を所定のサイズに仕切り、相関値の最大値を顔候補として抽出して明らかに顔画像でないウィンドウ画像を除去することにより、本来顔である領域を見逃すことなく、後段の顔検出処理に要する演算量及び時間を減少させることができ、かくしてリアルタイム性を格段と向上した顔検出装置及びこれを搭載したロボット装置を実現することができる。
【００９０】
また、相関値が最大となる点と共にその周囲においても顔検索範囲とすることにより、顔検出精度を向上することができる。更に、所定の閾値以上の肌色占有率又は顔の色占有率を有する場合のみ、顔検索範囲として設定することにより、顔検出精度を保ちつつ顔候補を減らして後段の演算量を減らすことができる。更にまた、テンプレート画像のサイズを適宜切り替えることにより、更に演算量を減らすことができる。
【００９１】
（５）ロボット装置の構成
次に、上述の第１及び第２の実施の形態におけるような顔検出モジュールを有するロボット装置について説明する。先ず、ロボット装置の構成について説明する。
【００９２】
図１０に示すように、本実施の形態におけるロボット装置１は、周囲環境（或いは外部刺激）や内部状態に応じて自律行動をする自律型のロボット装置であり、「犬」等の動物を模した形状のいわゆるペット型ロボットとされ、胴体部ユニット２の前後左右にそれぞれ脚部ユニット３Ａ，３Ｂ，３Ｃ，３Ｄが連結されると共に、胴体部ユニット２の前端部に頭部ユニット４が連結されて構成されている。
【００９３】
胴体部ユニット２には、図１１に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１０、ＤＲＡＭ（Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１１、フラッシュＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）１２、ＰＣ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）カードインターフェイス回路１３及び信号処理回路１４が内部バス１５を介して相互に接続されることにより形成されたコントロール部１６と、このロボット装置１の動力源としてのバッテリ１７とが収納されている。また、胴体部ユニット２には、ロボット装置１の向きや動きの加速度を検出するための角速度センサ１８及び加速度センサ１９が収納されている。また、胴体部ユニット２には、鳴き声等の音声又はメロディを出力するためのスピーカ２０が、図１０に示すように所定位置に配置されている。また、胴体部ユニット２の尻尾部５には、使用者からの操作入力を検出する検出機構としての操作スイッチ２１が備えられている。操作スイッチ２１は、使用者による操作の種類を検出できるスイッチであって、ロボット装置１は、操作スイッチ２１によって検出される操作の種類に応じて、例えば「誉められた」か「叱られた」かを認識する。
【００９４】
頭部ユニット４には、ロボット装置１の「目」に相当し、外部の状況や対象物の色、形、動き等を撮像するためのＣＣＤ（Ｃｈａｒｇｅ　Ｃｏｕｐｌｅｄ　Ｄｅｖｉｃｅ）カメラ２２と、前方に位置する対象物までの距離を測定するための距離センサ２３と、ロボット装置１の左右の「耳」に相当し、外部音を集音するためのマイクロホン２４と、例えばＬＥＤ（Ｌｉｇｈｔ　Ｅｍｉｔｔｉｎｇ　Ｄｉｏｄｅ）を備えた発光部２５等が、図１０に示すように所定位置にそれぞれ配置されている。ただし、発光部２５は、構成の説明等においては、必要に応じてＬＥＤ２５と示す。また、頭部ユニット４内部には、図１０には図示しないが、ユーザの頭部ユニット４に対する接触を間接的に検出するための検出機構として頭部スイッチ２６が備えられている。頭部スイッチ２６は、例えば、使用者の接触によって頭部が動かされた場合、その傾き方向を検出できるスイッチであって、ロボット装置１は、頭部スイッチ２６によって検出される頭部の傾き方向に応じて、「誉められた」か「叱られた」かを認識する。
【００９５】
各脚部ユニット３Ａ〜３Ｄの関節部分、各脚部ユニット３Ａ〜３Ｄと胴体部ユニット２との連結部分、頭部ユニット４と胴体部ユニット２との連結部分には、自由度数分のアクチュエータ２８１〜２８ｎ及びポテンショメータ２９１〜２９ｎがそれぞれ配設されている。アクチュエータ２８１〜２８ｎは、例えば、サーボモータを備えている。サーボモータの駆動により、脚部ユニット３Ａ〜３Ｄが制御されて目標の姿勢、或いは動作に遷移する。各脚部ユニット３Ａ〜３Ｄの先端の「肉球」に相当する位置には、主としてユーザからの接触を検出する検出機構としての肉球スイッチ２７Ａ〜２７Ｄが設けられ、ユーザによる接触等を検出できるようになっている。
【００９６】
ロボット装置１は、この他にも、ここでは図示しないが、該ロボット装置１の内部状態とは別の動作状態（動作モード）を表すための発光部や、充電中、起動中、起動停止等、内部電源の状態を表す状態ランプ等を、適切な箇所に適宜備えていてもよい。
【００９７】
そして、ロボット装置１において、操作スイッチ２１、頭部スイッチ２６及び肉球スイッチ２７等の各種スイッチと、角速度センサ１８、加速度センサ１９、距離センサ２３等の各種センサと、スピーカ２０、マイク２４、発光部２５、各アクチュエータ２８１〜２８ｎ、各ポテンショメータ２９１〜２９ｎは、それぞれ対応するハブ３０１〜３０ｎを介してコントロール部１６の信号処理回路１４と接続されている。一方、ＣＣＤカメラ２２及びバッテリ１７は、それぞれ信号処理回路１４と直接接続されている。
【００９８】
信号処理回路１４は、上述の各種スイッチから供給されるスイッチデータ、各種センサから供給されるセンサデータ、画像データ及び音声データを順次取り込み、これらをそれぞれ内部バス１５を介してＤＲＡＭ１１内の所定位置に順次格納する。また信号処理回路１４は、これとともにバッテリ１７から供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、ＤＲＡＭ１１内の所定位置に格納する。
【００９９】
このようにしてＤＲＡＭ１１に格納された各スイッチデータ、各センサデータ、画像データ、音声データ及びバッテリ残量データは、ＣＰＵ１０が当該ロボット装置１の動作制御を行う際に使用される。
【０１００】
ＣＰＵ１０は、ロボット装置１の電源が投入された初期時において、フラッシュＲＯＭ１２に格納された制御プログラムを読み出して、ＤＲＡＭ１１に格納する。又は、ＣＰＵ１０は、図１０に図示しない胴体部ユニット２のＰＣカードスロットに装着された半導体メモリ装置、例えば、メモリカード３１に格納された制御プログラムをＰＣカードインターフェイス回路１３を介して読み出してＤＲＡＭ１１に格納する。
【０１０１】
ＣＰＵ１０は、上述のように信号処理回路１４よりＤＲＡＭ１１に順次格納される各センサデータ、画像データ、音声データ、及びバッテリ残量データに基づいて自己及び周囲の状況や、使用者からの指示及び働きかけの有無を判断している。
【０１０２】
さらに、ＣＰＵ１０は、この判断結果及びＤＲＡＭ１１に格納した制御プログラムに基づいて続く行動を決定すると共に、当該決定結果に基づいて必要なアクチュエータ２８１〜２８ｎを駆動させることにより、頭部ユニット４を上下左右に振らせたり、各脚部ユニット３Ａ〜３Ｄを駆動させて歩行させるなどの行動を行わせる。
【０１０３】
また、この際ＣＰＵ１０は、必要に応じて音声データを生成し、これを信号処理回路１４を介して音声信号としてスピーカ２０に与えることにより当該音声信号に基づく音声を外部に出力させたり、上述の発光部２５におけるＬＥＤの点灯及び消灯を指示する信号を生成し、発光部２５を点灯したり消灯したりする。
【０１０４】
このようにしてこのロボット装置１においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るようになされている。
【０１０５】
（６）制御プログラムのソフトウェア構成
ここで、ロボット装置１における上述の制御プログラムのソフトウェア構成は、図１２に示すようになる。この図１２において、デバイス・ドライバ・レイヤ４０は、この制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット４１から構成されている。この場合、各デバイス・ドライバは、ＣＣＤカメラ２２（図１１）やタイマ等の通常のコンピュータで用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、対応するハードウェアからの割り込みを受けて処理を行う。
【０１０６】
また、ロボティック・サーバ・オブジェクト４２は、デバイス・ドライバ・レイヤ４０の最下位層に位置し、例えば上述の各種センサやアクチュエータ２８１〜２８ｎ等のハードウェアにアクセスするためのインターフェースを提供するソフトウェア群でなるバーチャル・ロボット４３と、電源の切換えなどを管理するソフトウェア群でなるパワーマネージャ４４と、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ４５と、ロボット装置１の機構を管理するソフトウェア群でなるデザインド・ロボット４６とから構成されている。
【０１０７】
マネージャ・オブジェクト４７は、オブジェクト・マネージャ４８及びサービス・マネージャ４９から構成されている。オブジェクト・マネージャ４８は、ロボティック・サーバ・オブジェクト４２、ミドル・ウェア・レイヤ５０、及びアプリケーション・レイヤ５１に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群であり、サービス・マネージャ４９は、メモリカード３１（図１１）に格納されたコネクションファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【０１０８】
ミドル・ウェア・レイヤ５０は、ロボティック・サーバ・オブジェクト４２の上位層に位置し、画像処理や音声処理などのこのロボット装置１の基本的な機能を提供するソフトウェア群から構成されている。また、アプリケーション・レイヤ５１は、ミドル・ウェア・レイヤ５０の上位層に位置し、当該ミドル・ウェア・レイヤ５０を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置１の行動を決定するためのソフトウェア群から構成されている。
【０１０９】
なお、ミドル・ウェア・レイヤ５０及びアプリケーション・レイヤ５１の具体なソフトウェア構成をそれぞれ図１３に示す。
【０１１０】
ミドル・ウェア・レイヤ５０は、図１３に示すように、騒音検出用、温度検出用、明るさ検出用、音階認識用、距離検出用、姿勢検出用、接触検出用、操作入力検出用、動き検出用及び色認識用の各信号処理モジュール６０〜６９並びに入力セマンティクスコンバータモジュール７０などを有する認識系７１と、出力セマンティクスコンバータモジュール７９並びに姿勢管理用、トラッキング用、モーション再生用、歩行用、転倒復帰用、ＬＥＤ点灯用及び音再生用の各信号処理モジュール７２〜７８などを有する出力系８０とから構成されている。
【０１１１】
認識系７１の各信号処理モジュール６０〜６９は、ロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３によりＤＲＡＭ１１（図１１）から読み出される各センサデータや画像データ及び音声データのうちの対応するデータを取り込み、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクスコンバータモジュール７０に与える。ここで、例えば、バーチャル・ロボット４３は、所定の通信規約によって、信号の授受或いは変換をする部分として構成されている。
【０１１２】
入力セマンティクスコンバータモジュール７０は、これら各信号処理モジュール６０〜６９から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ドミソの音階が聞こえた」、「障害物を検出した」、「転倒を検出した」、「叱られた」、「誉められた」、「動く物体を検出した」又は「ボールを検出した」などの自己及び周囲の状況や、使用者からの指令及び働きかけを認識し、認識結果をアプリケーション・レイヤ５１（図１１）に出力する。
【０１１３】
アプリケーション・レイヤ５ｌは、図１４に示すように、行動モデルライブラリ９０、行動切換モジュール９１、学習モジュール９２、感情モデル９３及び本能モデル９４の５つのモジュールから構成されている。
【０１１４】
行動モデルライブラリ９０には、図１５に示すように、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」などの予め選択されたいくつかの条件項目にそれぞれ対応させて、それぞれ独立した行動モデル９０１〜９０ｎが設けられている。
【０１１５】
そして、これら行動モデル９０１〜９０ｎは、それぞれ入力セマンティクスコンバータモジュール７１から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、必要に応じて後述のように感情モデル９３に保持されている対応する情動のパラメータ値や、本能モデル９４に保持されている対応する欲求のパラメータ値を参照しながら続く行動をそれぞれ決定し、決定結果を行動切換モジュール９１に出力する。
【０１１６】
なお、この実施の形態の場合、各行動モデル９０１〜９０ｎは、次の行動を決定する手法として、図１６に示すような１つのノード（状態）ＮＯＤＥ０〜ＮＯＤＥｎから他のどのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移するかを各ノードＮＯＤＥ０〜ＮＯＤＥｎに間を接続するアークＡＲＣ１〜ＡＲＣｎに対してそれぞれ設定された遷移確率Ｐ１〜Ｐｎに基づいて確率的に決定する有限確率オートマトンと呼ばれるアルゴリズムを用いる。
【０１１７】
具体的に、各行動モデル９０１〜９０ｎは、それぞれ自己の行動モデル９０１〜９０ｎを形成するノードＮＯＤＥ０〜ＮＯＤＥｎにそれぞれ対応させて、これらノードＮＯＤＥ０〜ＮＯＤＥｎごとに図１７に示すような状態遷移表１００を有している。
【０１１８】
この状態遷移表１００では、そのノードＮＯＤＥ０〜ＮＯＤＥｎにおいて遷移条件とする入力イベント（認識結果）が「入力イベント名」の列に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の列における対応する行に記述されている。
【０１１９】
したがって、図１７の状態遷移表１００で表されるノードＮＯＤＥ１００では、「ボールを検出（ＢＡＬＬ）」という認識結果が与えられた場合に、当該認識結果と共に与えられるそのボールの「大きさ（ＳＩＺＥ）」が「０から１０００」の範囲であることや、「障害物を検出（ＯＢＳＴＡＣＬＥ）」という認識結果が与えられた場合に、当該認識結果と共に与えられるその障害物までの「距離（ＤＩＳＴＡＮＣＥ）」が「０から１００」の範囲であることが他のノードに遷移するための条件となっている。
【０１２０】
また、このノードＮＯＤＥ１００では、認識結果の入力がない場合においても、行動モデル９０１〜９０ｎが周期的に参照する感情モデル９３及び本能モデル９４にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル９３に保持された「喜び（ＪＯＹ）」、「驚き（ＳＵＲＰＲＩＳＥ）」若しくは「悲しみ（ＳＵＤＮＥＳＳ）」のいずれかのパラメータ値が「５０から１００」の範囲であるときには他のノードに遷移することができるようになっている。
【０１２１】
また、状態遷移表１００では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の行にそのノードＮＯＤＥ０〜　ＮＯＤＥｎから遷移できるノード名が列記されていると共に、「入力イベント名」、「データ値」及び「データの範囲」の列に記述された全ての条件が揃ったときに遷移できる他の各ノードＮＯＤＥ０〜ＮＯＤＥｎへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述され、そのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は１００［％］となっている。
【０１２２】
したがって、図１７の状態遷移表１００で表されるノードＮＯＤＥ１００では、例えば「ボールを検出（ＢＡＬＬ）」し、そのボールの「ＳＩＺＥ（大きさ）」が「０から１０００」の範囲であるという認識結果が与えられた場合には、「３０［％］」の確率で「ノードＮＯＤＥ１２０（ｎｏｄｅ　１２０）」に遷移でき、そのとき「ＡＣＴＩＯＮ１」の行動が出力されることとなる。
【０１２３】
各行動モデル９０１〜９０ｎは、それぞれこのような状態遷移表１００として記述されたノードＮＯＤＥ０〜ＮＯＤＥｎがいくつも繋がるようにして構成されており、入力セマンティクスコンバータモジュール７１から認識結果が与えられたときなどに、対応するノードＮＯＤＥ０〜ＮＯＤＥｎの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換モジュール９１に出力するようになされている。
【０１２４】
図１４に示す行動切換モジュール９１は、行動モデルライブラリ９０の各行動モデル９０１〜９０ｎからそれぞれ出力される行動のうち、予め定められた優先順位の高い行動モデル９０１〜９０ｎから出力された行動を選択し、当該行動を実行すべき旨のコマンド（以下、これを行動コマンドという。）をミドル・ウェア・レイヤ５０の出力セマンティクスコンバータモジュール７９に送出する。なお、この実施の形態においては、図１５において下側に表記された行動モデル９０１〜９０ｎほど優先順位が高く設定されている。
【０１２５】
また、行動切換モジュール９１は、行動完了後に出力セマンティクスコンバータモジュール７９から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール９２、感情モデル９３及び本能モデル９４に通知する。
【０１２６】
一方、学習モジュール９２は、入力セマンティクスコンバータモジュール７１から与えられる認識結果のうち、「叱られた」や「誉められた」など、使用者からの働きかけとして受けた教示の認識結果を入力する。そして、学習モジュール９２は、この認識結果及び行動切換モジュール９１からの通知に基づいて、「叱られた」ときにはその行動の発現確率を低下させ、「誉められた」ときにはその行動の発現確率を上昇させるように、行動モデルライブラリ９０における対応する行動モデル９０１〜９０ｎの対応する遷移確率を変更する。
【０１２７】
他方、感情モデル９３は、「喜び（ｊｏｙ）」、「悲しみ（ｓａｄｎｅｓｓ）」、「怒り（ａｎｇｅｒ）」、「驚き（ｓｕｒｐｒｉｓｅ）」、「嫌悪（ｄｉｓｇｕｓｔ）」及び「恐れ（ｆｅａｒ）」の合計６つの情動について、各情動ごとにその情動の強さを表すパラメータを保持している。そして、感情モデル９３は、これら各情動のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール７１から与えられる「叱られた」及び「誉められた」などの特定の認識結果と、経過時間及び行動切換モジュール９１からの通知などに基づいて周期的に更新する。
【０１２８】
具体的には、感情モデル９３は、入力セマンティクスコンバータモジュール７１から与えられる認識結果と、そのときのロボット装置１の行動と、前回更新してからの経過時間などに基づいて所定の演算式により算出されるそのときのその情動の変動量を△Ｅ［ｔ］、現在のその情動のパラメータ値をＥ［ｔ］、その情動の感度を表す係数をｋｅとして、（１）式によって次の周期におけるその情動のパラメータ値Ｅ［ｔ＋１］を算出し、これを現在のその情動のパラメータ値Ｅ［ｔ］と置き換えるようにしてその情動のパラメータ値を更新する。また、感情モデル７３は、これと同様にして全ての情動のパラメータ値を更新する。
【０１２９】
【数１】
2004133637.tif 000003
【０１３０】
なお、各認識結果や出力セマンティクスコンバータモジュール７９からの通知が各情動のパラメータ値の変動量△Ｅ［ｔ］にどの程度の影響を与えるかは予め決められており、例えば「叩かれた」といった認識結果は「怒り」の情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与え、「撫でられた」といった認識結果は「喜び」の情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与えるようになっている。
【０１３１】
ここで、出力セマンティクスコンバータモジュール７９からの通知とは、いわゆる行動のフィードバック情報（行動完了情報）であり、行動の出現結果の情報であり、感情モデル９３は、このような情報によっても感情を変化させる。これは、例えば、「吠える」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクスコンバータモジュール７９からの通知は、上述した学習モジュール９２にも入力されており、学習モジュール９２は、その通知に基づいて行動モデル９０１〜９０ｎの対応する遷移確率を変更する。
【０１３２】
なお、行動結果のフィードバックは、行動切換モジュール９１の出力（感情が付加された行動）によりなされるものであってもよい。
【０１３３】
一方、本能モデル９４は、「運動欲（ｅｘｅｒｃｉｓｅ）」、「愛情欲（ａｆｆｅｃｔｉｏｎ）」、「食欲（ａｐｐｅｔｉｔｅ）」及び「好奇心（ｃｕｒｉｏｓｉｔｙ）」の互いに独立した４つの欲求について、これら欲求ごとにその欲求の強さを表すパラメータを保持している。そして、本能モデル９４は、これらの欲求のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール７１から与えられる認識結果や、経過時間及び行動切換モジュール９１からの通知などに基づいて周期的に更新する。
【０１３４】
具体的には、本能モデル９４は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクスコンバータモジュール６８からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔＩ［ｋ］、現在のその欲求のパラメータ値をＩ［ｋ］、その欲求の感度を表す係数ｋｉとして、所定周期で（２）式を用いて次の周期におけるその欲求のパラメータ値Ｉ［ｋ＋１］を算出し、この演算結果を現在のその欲求のパラメータ値Ｉ［ｋ］と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル９４は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【０１３５】
【数２】
2004133637.tif 000004
【０１３６】
なお、認識結果及び出力セマンティクスコンバータモジュール７９からの通知などが各欲求のパラメータ値の変動量△Ｉ［ｋ］にどの程度の影響を与えるかは予め決められており、例えば出力セマンティクスコンバータモジュール７９からの通知は、「疲れ」のパラメータ値の変動量△Ｉ［ｋ］に大きな影響を与えるようになっている。
【０１３７】
なお、本実施の形態においては、各情動及び各欲求（本能）のパラメータ値がそれぞれ０から１００までの範囲で変動するように規制されており、また係数ｋｅ、ｋｉの値も各情動及び各欲求ごとに個別に設定されている。
【０１３８】
一方、ミドル・ウェア・レイヤ５０の出力セマンティクスコンバータモジュール７９は、図１３に示すように、上述のようにしてアプリケーション・レイヤ５１の行動切換モジュール９１から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング（ボールを追いかける）」といった抽象的な行動コマンドを出力系８０の対応する信号処理モジュール７２〜７８に与える。
【０１３９】
そしてこれら信号処理モジュール７２〜７８は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ２８１〜２８ｎ（図１１）に与えるべきサーボ指令値や、スピーカ２０（図１１）から出力する音の音声データ及び／又は発光部２５（図１１）のＬＥＤに与える駆動データを生成し、これらのデータをロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３及び信号処理回路１４（図１１）を順次介して対応するアクチュエータ２８１〜２８ｎ、スピーカ２０又は発光部２５に順次送出する。
【０１４０】
このようにしてロボット装置１においては、制御プログラムに基づいて、自己（内部）及び周囲（外部）の状況や、使用者からの指示及び働きかけに応じた自律的な行動を行うことができるようになされている。
【０１４１】
このようなロボット装置１において、上述した顔検出処理は、ミドル・ウェア・レイヤ５０の顔検出モジュール３３において行うことができる。図１８は、図１１乃至図１５に示すロボット装置において、顔検出により、その行動を制御するために必要な構成部分を取り出して示すブロック図である。
【０１４２】
上述したように、ＣＣＤカメラ２２により撮像された画像データは、ＤＲＡＭ１１の所定の場所に格納され、ロボティック・サーバ・オブジェクト４２におけるバーチャル・ロボット４３に供給される。このバーチャル・ロボット４３は、画像データをＤＲＡＭ１１から読み出し、ミドル・ウェア・レイヤ５０における顔検出モジュール３３に供給する。顔検出モジュールでは、上述の第１及び第２の実施の形態において説明したような顔検出処理がなされ、その処理結果がアプリケーション・レイヤ５１における行動モデルライブラリ９０に供給されることにより、その処理結果がロボット装置の行動に反映される。
【０１４３】
即ち、行動モデルライブラリ９０は、必要に応じて情動のパラメータ値や欲求のパラメータ値を参照しながら続く行動を決定し、決定結果を行動切換モジュール９１に与える。そして、行動切換モジュール９１は、当該決定結果に基づく行動コマンドをミドル・ウェア・レイヤ５０の出力系８０における歩行モジュール７５に送出する。
【０１４４】
歩行モジュール７５は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ２８１〜２８ｎに与えるべきサーボ指令値を生成し、このデータをロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３及び信号処理回路１４（図２）を順次介して対応するアクチュエータ２８１〜２８ｎに順次送出する。この結果、ロボット装置１の行動が制御され、例えば対象物に対して近づく等の行動を発現する。
【０１４５】
例えば、ロボット装置１は、顔検出モジュール３３の顔検出処理によって検出された顔画像の大きさ、方向等に基づき、検出された顔を有する対象物の方向を見たり、対象物に近くづくように移動することができる。そして、ロボット装置１は、検出した顔画像が正面顔であって、距離センサ２３からの距離データから対象物に対して所定の範囲内に近づいたと判定した場合、移動を開始して所定の距離進んだ場合、又は接触検出モジュール６６により接触が検出された場合等に、移動を停止するよう制御することができる。
【０１４６】
また、例えば、図１１のＣＣＤカメラ２２により取得された画像データを基に、動体検出を行う動体検出手段を設け、動体検出手段により検出された動体の位置に基づく動体位置方向、又は、図１１のマイククロホン２４等の音声検出手段により、音声データを取得し、この音声データから音源方向を推定する音源方向推定手段を設け、音源方向推定手段により推定された音源方向等を、上述の顔検出結果に基づき移動制御する際に、利用するようにしてもよい。
【０１４７】
なお、上述の実施の形態においては、本発明を図１０のように構成された４足歩行型のロボット装置１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のロボット装置及びロボット装置以外のこの他種々の装置に広く適用することができる。例えば、ロボット装置は、２足歩行であってもよく、更に、移動手段は、脚式移動方式に限定されない。
【０１４８】
また、上述の実施の形態では、ソフトウェアの構成として説明したが、これに限定されるものではなく、これに限定されるものではなく、各機能をハードウェアで構成することも可能である。
【０１４９】
【発明の効果】
以上詳細に説明したように本発明に係る顔検出装置は、入力画像から対象物の顔を検出する顔検出装置において、入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段と備え、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求めるので、入力画像に含まれる顔画像が、正面を向いていない非正面顔であっても、入力画像から顔画像を検出することができる。
【０１５０】
また、本発明に係るプログラムは、上述した顔検出処理をコンピュータに実行させるものあり、このようなプログラムによれば、上述した顔検出処理をソフトウェアにより実現することができる。
【０１５１】
更に、本発明に係るロボット装置は、供給された入力情報に基づいて動作を行うロボット装置において、画像を撮像する撮像部と、上記撮像部から供給される入力画像から対象物の顔を検出する顔検出部とを備え、上記顔検出部は、上記入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段とを有し、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求めるので、顔検出対象となる人間等の対象物がロボット装置に対して正面を向いていない場合であっても、対象物の顔を検出し、対象物の方向に近づく等、顔検出結果に応じた行動を実行することができる。
【図面の簡単な説明】
【図１】本発明の第１の本実施の形態における顔検出モジュールの機能を模式的に示すブロック図である。
【図２】本実施の形態における顔検出方法を示すフローチャートである。
【図３】本発明の第２の実施の形態における顔検出方法を示すフローチャートである。
【図４】本発明の第１の適用例を示す顔検出装置の機能を模式的に示すブロック図である。
【図５】（ａ）及び（ｂ）は、夫々入力画像（ウィンドウ画像）及びテンプレート画像を示す模式図である。
【図６】入力画像（ウィンドウ画像）とテンプレート画像とから求めた相関値の集合であるマッチング結果画像を示す図である。
【図７】本発明の第１の適用例におけるテンプレートマッチング結果画像から顔候補となる画素を検出する各処理工程を示すフローチャートである。
【図８】本発明の第１の適用例における顔検出装置のテンプレートマッチング部においてマッチング結果画像から顔候補を抽出した結果を示す図である。
【図９】マッチング結果画像において、所定の閾値以上のものを顔候補として抽出した結果を示す図である。
【図１０】本発明の実施の形態におけるロボット装置の外観構成を示す斜視図である。
【図１１】同ロボット装置の回路構成を示すブロック図である。
【図１２】同ロボット装置のソフトウェア構成を示すブロック図である。
【図１３】同ロボット装置のソフトウェア構成におけるミドル・ウェア・レイヤの構成を示すブロック図である。
【図１４】同ロボット装置のソフトウェア構成におけるアプリケーション・レイヤの構成を示すブロック図である。
【図１５】同アプリケーション・レイヤの行動モデルライブラリの構成を示すブロック図である。
【図１６】同ロボット装置の行動決定のための情報となる有限確率オートマトンを説明するために使用した図である。
【図１７】有限確率オートマトンの各ノードに用意された状態遷移表を示す図である。
【図１８】図１１乃至図１５に示すロボット装置において、顔検出により、その行動を制御するために必要な構成部分を取り出して示すブロック図である。
【符号の説明】
１　ロボット装置、１０　ＣＰＵ、１１　ＤＲＡＭ、１４　信号処理回路、２２　ＣＣＤカメラ、２８１〜２８ｎ　アクチュエータ、３３　顔検出モジュール、４２　ロボティック・サーバ・オブジェクト、４３　バーチャル・ロボット、５０　ミドル・ウェア・レイヤ、５１　アプリケーション・レイヤ、６８　動き検出用信号処理モジュール、７０　入力セマンティクスコンバータモジュール、７１　認識系、７３　トラッキング用信号処理モジュール、７５　歩行モジュール、７９　出力セマンティクスコンバータモジュール、８０　出力系、９０　行動モデルライブラリ、９１　行動切換モジュール
【図１】
2004133637.tif 000005
【図２】
2004133637.tif 000006
【図３】
2004133637.tif 000007
【図４】
2004133637.tif 000008
【図５】
2004133637.tif 000009
【図６】
2004133637.tif 000010
【図７】
2004133637.tif 000011
【図８】
2004133637.tif 000012
【図９】
2004133637.tif 000013
【図１０】
2004133637.tif 000014
【図１１】
2004133637.tif 000015
【図１２】
2004133637.tif 000016
【図１３】
2004133637.tif 000017
【図１４】
2004133637.tif 000018
【図１５】
2004133637.tif 000019
【図１６】
2004133637.tif 000020
【図１７】
2004133637.tif 000021
【図１８】
2004133637.tif 000022