JP2004133637A - Face detector, face detection method and program, and robot apparatus - Google Patents

Face detector, face detection method and program, and robot apparatus Download PDF

Info

Publication number
JP2004133637A
JP2004133637A JP2002296783A JP2002296783A JP2004133637A JP 2004133637 A JP2004133637 A JP 2004133637A JP 2002296783 A JP2002296783 A JP 2002296783A JP 2002296783 A JP2002296783 A JP 2002296783A JP 2004133637 A JP2004133637 A JP 2004133637A
Authority
JP
Japan
Prior art keywords
image
face
correlation
input image
template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2002296783A
Other languages
Japanese (ja)
Inventor
Hidehiko Morisada
森貞 英彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002296783A priority Critical patent/JP2004133637A/en
Publication of JP2004133637A publication Critical patent/JP2004133637A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To highly efficiently detect a face picture even the face is not full-faced like that inclined or turned to a different direction. <P>SOLUTION: A face detection device detects a face by template matching. When an input picture is supplied, it is discriminated whether a rotation angle R_found at which a face has been detected in a preceding input picture exists or not. In the case of the absence of the rotation angle R_found, a template picture is used to obtain a correlation value, and a face is detected in a discrimination part 302 on the basis of the correlation value. When a face cannot be detected, the template picture is rotated at, for example, 90° from the present state to repeat a series of processing until a face can be detected or matching is performed for all rotation angles. Meanwhile, in the case that the rotation angle of the template picture at the preceding time has been stored, the template picture rotated at this stored rotation angle is used to perform matching to the input picture; and when a face is detected, the rotation angle R=R_found at this time is stored, and processing of the next input picture is performed. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、入力画像から対象物の顔を検出する顔検出装置、及び顔検出方法、並びに顔検出装置を搭載してエンターテインメント性の向上等を図ったロボット装置、並びに顔検出を行う動作をコンピュータに実行させるためのプログラムに関する。
【0002】
【従来の技術】
電気的又は磁気的な作用を用いて人間(生物)の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、1960年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータ及び搬送ロボット等の産業用ロボット(Industrial
Robot)であった。
【0003】
最近では、人間のパートナーとして生活を支援する、即ち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬又は猫のように4足歩行の動物の身体メカニズム及びその動作を模した「ペット型」ロボット、或いは、2足直立歩行を行う人間等の身体メカニズム及びその動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット(Humanoid Robot)等のロボット装置は、既に実用化されつつある。
【0004】
これらのロボット装置は、産業用ロボットと比較して、例えばエンターテインメント性を重視した様々な動作等を行うことができるため、エンターテインメントロボットと呼称される場合もある。また、そのようなロボット装置には、CCD(Charge  Coupled Device)カメラ及びマイクロホン等の各種外部センサが搭載され、これら外部センサの出力に基づいて外部状況を認識して、外部からの情報及び内部の状態に応じて自律的に動作するものがある。
【0005】
ところで、かかるエンターテインメント型のロボット装置において、対話中にその相手となる人間の顔や、移動中に視界内に入る人間の顔を検出して、その人間の顔を見ながら対話や動作を行うことができれば、人間が普段行う場合と同様に、その自然性から考えて最も望ましく、エンターテインメントロボット装置としてのエンターテインメント性をより一層向上させ得るものと考えられる。
【0006】
例えば、下記特許文献1には、顔の向き傾き及び表情等による顔パターンの変化に左右されることなく顔パターンを認識するための顔認識装置が開示されている。この特許文献1に記載の技術においては、顔認識装置は、同じ顔画像が入力され、この顔画像に対し夫々異なる変形を除去するための変換を施して正規化された顔パターンを出力する、互いに独立して動作可能な複数の逆変換部と、この逆変換部から出力された複数の顔パターンと、予め用意された複数の人物の参照パターンと比較して類似度を計算する識別部と、この識別結果に基づいて顔画像に対応する人物を特定する結合部とを備える。逆変換部が除去する変形は、顔の位置ずれ、顔のカメラに映りこむ大きさの違い、顔の上下左右の向きの違い、顔の傾きの違い等の変形要素の組み合わせからなり、変形がない顔領域として切り出した正方形領域を、画面に平行な軸周りの回転を考慮したり、画面に垂直な軸周りの回転を考慮したりした領域に変換する。これにより、顔が前後に傾いていたり、顔の向きが違っているような場合においても、その逆変換部にて逆変換すれば認識することができる。
【0007】
【特許文献1】
特開平12−090191号公報
【0008】
【発明が解決しようとする課題】
しかしながら、上述の特許文献1に記載の技術においては、予め想定される変形要素に対応した変形方法の数の逆変換部を設ける必要があり、装置が大型化するため、ロボット装置等の限られたリソースしか持たない装置に搭載するのは不向きである。また、顔の上下左右の向き又は傾き等の大きさを予め設定しておかなければならず、移動可能なロボット装置に搭載する場合、どれくらいの変形になるか予想できない場合等には認識率が低下する。例えば、上述の特許文献1においては、逆変換部では、予め設定する変形度合いにおいて、変形度合いが小さくなる可能性が大きく、変形度合いが大きくなる可能性が低いとして、変形度合いが小さく設定された逆変換部からの出力に対して識別部で算出された類似度ほど大きくなるような重みづけをして人物を特定しているが、ロボット装置に搭載された場合、ロボット装置が転倒すれば、撮影される顔画像は標準の顔パターンから大きく外れたものになるため、認識率が低下してしまう。一方、変形度合いが大きいほど、識別部で算出された類似度に対して大きい重み付けをした場合、変形により、元の顔パターンが別人に近い顔に変形されることになり、認識率が低下してしまう。
【0009】
本発明は、このような従来の実情に鑑みて提案されたものであり、顔が傾いたり向きが違っているような非正面顔であっても、高効率に検出可能な顔検出装置、顔検出方法及びプログラム並びにこれを搭載したロボット装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係る顔検出装置は、入力画像から対象物の顔を検出する顔検出装置において、入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段と備え、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求めることを特徴とする。
【0011】
本発明においては、判定手段により入力画像に顔画像が含まれないと判定された場合には、テンプレート画像を所定角度回転させたテンプレート画像を使用して入力画像との相関を再び算出することにより、入力画像に含まれる顔画像が正面顔でない場合においても正面顔のテンプレート画像を使用して検出することができると共に、入力画像に顔画像が含まれると判定された場合には、判定時の回転角度(0°を含む)のテンプレート画像を使用して次の入力画像との相関を求めるため、マッチングの処理が高速化する。
【0012】
また、供給された入力情報に基づいて動作を行うロボット装置に搭載されることができ、例えばロボット装置が転倒した場合等で正面顔が撮影できないような状況においても顔検出を可能とする。
【0013】
更に、上記相関算出手段は、上記ロボット装置に備えられたロボット装置自身の姿勢を検出する姿勢検出手段からの姿勢検出結果に基づき、上記回転角度を決定してもよく、例えば転倒した場合、姿勢情報に基づき、テンプレート画像の回転角を推定することにより、テンプレート画像を順次回転させて顔を検出するより処理が更に高速化する。
【0014】
本発明に係る顔検出方法は、入力画像から対象物の顔を検出する顔検出装置の顔検出方法において、入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出工程と、上記相関に基づき、上記入力画像に顔画像が含まれるか否かを判定する判定工程とを有し、上記相関算出工程では、上記判定工程にて上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定工程にて上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関が求められることを特徴とする。
【0015】
また、本発明に係るプログラムは、上述した顔検出処理をコンピュータに実行させるものである。
【0016】
本発明に係るロボット装置は、供給された入力情報に基づいて動作を行うロボット装置において、画像を撮像する撮像部と、上記撮像部から供給される入力画像から対象物の顔を検出する顔検出部とを備え、上記顔検出部は、上記入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段とを有し、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求めることを特徴とする。
【0017】
【発明の実施の形態】
(1)第1の実施の形態
本実施の形態における顔検出装置は、例えば後述するロボット装置に搭載することができる。以下、ロボット装置に搭載して周囲の人間の顔を認識するのに好適な顔検出装置について説明するが、ロボット装置の構成についての詳細は後述する。ロボット装置は、CCDカメラと、CCDカメラにより取得したフレーム画像を記憶するメモリと、このメモリに記憶されたフレーム画像の中から人間の顔画像を検出する顔検出タスク機能を有する顔検出モジュールとを備えている。テンプレート画像を使用した顔検出において、通常、テンプレートマッチングで使用される平均顔は、正面から撮影された一般的なものを使用して行うため、例えば、逆さから写した場合等、正面から写した顔以外(以下、非正面顔という。)を検出することが難しい。例えば、ロボット装置において、画像を取得するためのCCDカメラが例えばロボット装置の顔部に搭載されていると、転倒して仰向けになったロボット装置を使用者等が覗き込んだ際等に写される顔画像は、通常の正面顔とは逆方向、即ち、正面顔を画面に垂直な方向を軸として略180°回転した状態の非正面顔となる。このような非正面顔が撮影された場合であっても顔検出を可能とするため、本実施の形態においては、正面顔のテンプレート画像を使用しても顔検出できなかった場合は、テンプレート画像を所定の角度回転して使用すると共に、顔検出された場合は、その回転角度を記憶し、次の入力画像のマッチングの際は、記憶した回転角度で回転したテンプレート画像を使用してマッチングを行うものである。
【0018】
図1は、本発明の第1の本実施の形態における顔検出モジュールの機能を模式的に示すブロック図である。図1に示すように、画像検出モジュール300は、CCDカメラ等の撮像手段による撮像結果として得られるフレーム画像を入力画像とし、この入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求めるテンプレートマッチング部(相関手段)301と、相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定部302と、顔画像が含まれると判定された場合に、該顔画像を抽出する顔抽出部303とから構成される。
【0019】
テンプレートマッチング部301に供給される入力画像は、用意されたテンプレート画像における顔の大きさと一致させるため、フレーム画像を例えば複数のスケールに変換した後、所定の大きさに切り出した画像とすることができ、テンプレートマッチング部301は、各スケール毎の入力画像についてマッチングを行う。テンプレート画像としては、例えば100人程度の人物の平均からなる平均的な顔画像を使用することができる。本実施の形態においては、テンプレート画像は正面顔とし、このときの回転角R=0°とする。
【0020】
判定部302は、テンプレートマッチング部301におけるテンプレートマッチングにおいて、所定の閾値以上の相関値を示した場合にその入力画像に顔画像が含まれると判定し、顔抽出部303により、該当する顔領域を抽出する。
【0021】
ここで、判定部302において、いずれのマッチング結果も所定の閾値未満である場合は、入力画像にはテンプレート画像が示す顔が含まれていないと判定し、その判定結果をテンプレートマッチング部301に返す。マッチング部301は、入力画像に顔画像が含まれないと判定された場合、テンプレート画像を画面に垂直な方向を軸として所定角度回転し、入力画像に対して回転後の回転テンプレート画像を使用して再びテンプレートマッチングを行う。本実施の形態においては、顔画像が検出されなかった場合、テンプレート画像を画面に垂直な軸に対して所定方向に90°ずつ、即ち、回転角R=90°、180°、270°となるよう、顔が検出されるまでテンプレート画像を順次回転させた回転テンプレート画像を使用するものとする。なお、この回転方向は、右でも左でもよく、順次回転させる回転角は90°に限らず、例えば180°、45°等適宜設定するものとする。
【0022】
判定部302は、入力画像とR=90°として回転させた変形後のテンプレート画像とのマッチング結果を基に顔画像が含まれるか否かを判定する。そして、上述した如く、相関値が所定の閾値以上である場合、顔画像が含まれると判定する。顔画像が含まれると判定された場合は、その結果をテンプレートマッチング部301に入力し、テンプレートマッチング部301では、この顔画像が含まれると判定された回転角度(以下、R=R_foundという。)が記憶される。テンプレートマッチング部301は、顔画像が検出された際の回転角度を記憶し、その回転角度のテンプレート画像を使用して次回の入力画像に対してマッチングを行う。ここで、顔画像が検出されなかった場合は、更に90°回転させ、回転角R=180°としたテンプレート画像を使用して再びマッチングをとる。
【0023】
テンプレートマッチング部301に入力される画像は、例えば40msec等毎に撮影されたものであり、一旦顔画像が検出された場合、次の入力画像が入力されるまでの短い間では、その顔の方向が急には変わらないことを利用し、例えば、180°回転した状態の顔画像が検出された場合に、次回の入力画像においても、その回転角のテンプレート画像を使用して顔検出する方が、再び正面顔を順次回転させてテンプレートマッチングを行うのに比して、格段に処理効率が高いためでる。
【0024】
図2は、本実施の形態における顔検出方法を示すフローチャートである。図2に示すように、テンプレートマッチング部301に入力画像が供給されると(ステップS1)、前回の入力画像において顔検出された場合における回転角R_foundが存在するか否かが判定される(ステップS2)。ここで、前回の入力画像において、顔検出されてない場合は、回転角R_foundが存在しないため、テンプレート画像の回転角R=0°、即ち、正面顔のテンプレート画像を使用して相関値を求める(ステップS3)。そして、この相関値に基づき判定部302において、相関値が所定の閾値以上か否かを判定する(ステップS4)。ステップ4において、相関値が所定の閾値未満であるとき、顔検出できなかったものとし、テンプレート画像の回転が終了したか否か、即ち、例えば、所定方向に90°回転させる場合は、最初の状態から270°回転したが否かを判定し(ステップS5)、回転していない場合は、テンプレート画像を現在の状態から所定角度、即ち、本実施の形態においては、90°回転する(ステップS6)。そして、ステップS4で顔が検出されると判定されるまでか、又はステップS5で270°、即ち、全ての回転角について、テンプレートマッチングを行うまで一連の処理を繰り返す。
【0025】
一方、ステップS2において、前回の入力画像において顔画像が検出され、そのときのテンプレート画像の回転角R_foundが記憶されている場合、回転角をR_foundとたテンプレート画像を使用し、入力画像に対してマッチングを行う(ステップS7)。そして、上述のステップ4の顔検出判定に進む。
【0026】
ステップS4において、相関値が所定の閾値以上であり、顔検出されたと判定された場合は、そのときの回転角R=R_foundを記憶し(ステップS8)、ステップS1に戻り、次の入力画像の処理を行う。
【0027】
このように構成された本実施の形態においては、前回の入力画像で顔画像が検出された場合は、そのときのテンプレート画像の回転角を記憶しておき、この回転角としたテンプレート画像を使用して、次の入力画像に対してマッチングを行うため、マッチング処理が高速化する。また、正面顔のテンプレート画像を使用し、例えば回転角0°の正面顔でマッチングを行い、顔が検出できなかった場合に、例えば90°等、所定角度回転させて非正面顔としたテンプレート画像を使用して顔検出を行う動作を繰り返すことにより、正面顔のテンプレート画像のみを使用して、非正面顔を検出することが可能となり、極めて高効率で顔検出を行うことができる。
【0028】
ここで、非正面顔を検出しようとした際に全ての方向に対して演算を行う場合に比して演算量を低減するために、上述のように、所定角度ずつ順次回転させたテンプレート画像を使用するのではなく、例えば、回転角R=180°のテンプレート画像のみ等、所定の回転角のテンプレート画像のみのマッチングを行ってもよい。
【0029】
また、前回のマッチングにおいて、回転角R_foundが記憶されていた場合に、次の入力画像において、顔画像が検出されなかった場合は、回転角をR_foundから更に所定方向に90°回転させるものとしたが、再び回転角R=0°から処理を開始してもよい。また、本実施の形態においては、所定方向に90°回転するものとしたが、R=0°の次に、R=180°としたり、R=90°の次にR=270°としたりする等、適宜回転角度を選択できるようにしてもよい。
【0030】
更に、回転角R_foundが記憶されている場合に、上述したように、例えば入力画像は、例えば40msec間隔で入力されるような場合、次の入力画像においても、回転角R_foundで顔検出される可能性が高い。この際、次の入力画像において、回転角R_foundのテンプレート画像を使用しても顔検出できなかった場合、回転角R_found近傍で顔検出される可能性が高いため、回転角R_found±αとしたテンプレート画像を使用して顔検出を行ってもよい。
【0031】
更にまた、テンプレートマッチングにより顔検出されなかった場合、テンプレート画像を回転するものとしたが、R=0°のテンプレート画像と共に、例えばR=90°、180°、270°で回転した回転後のテンプレート画像を予め準備するようにしてもよい。
【0032】
(2)第2の実施の形態
次に、本発明の第2の実施の形態について説明する。本第2の実施の形態は、テンプレートマッチングの際に姿勢情報が供給され、これに基づき、得られる顔画像の回転角を予測し、テンプレート画像の回転角を選択するようにした点が上述の第1の実施の形態と異なる。
【0033】
即ち、ロボット装置には、自身の姿勢を検出する姿勢センサ等が設けられており、この姿勢センサからの姿勢情報がテンプレート画像マッチン部に供給される。上述したように、例えばロボット装置が転倒した場合、周囲の人間がそのロボット装置を覗き込む等すれば、ロボット装置が取得する画像、即ち、顔検出モジュールに供給される入力画像に含まれる顔画像は、通常の正面顔から画面に垂直な方向を軸として略180°回転したものとなることが予想される。従って、このような姿勢情報をテンプレートマッチング部に供給し、テンプレート画像の回転角を選択させるようにすることにより、処理が高速化する。
【0034】
図3は、本発明の第2の実施の形態における顔検出方法を示すフローチャートである。図3に示すように、入力画像が供給されると(ステップS11)、姿勢情報が供給されているか否かが判定される(ステップS12)。ここで、姿勢情報が供給されている場合は、その姿勢情報に基づき最も可能性が高いと考えられる回転角R_sensorを選択し、この回転角R_sensorのテンプレート画像を使用して、テンプレートマッチングを行い(ステップS20)、その結果、相関値が所定の閾値以上であるか否かが判定される(ステップS15)。
【0035】
一方、ステップS12において、姿勢情報が供給されてない場合は、上述の第1の実施の形態と同様の方法にて顔検出が行われる。即ち、前回の入力画像において顔検出された場合における回転角R_foundが存在するか否かが判定され(ステップS13)、回転角R_foundが存在しなければ、テンプレート画像の回転角R=0°、即ち、正面顔のテンプレート画像を使用して相関値を求める(ステップS14)。そして、この相関値に基づき判定部12において、相関値が所定の閾値以上か否かが判定され(ステップS15)、相関値が所定の閾値未満であるとき、顔検出できなかったものとし、テンプレート画像を正面顔であるR=0°から270°回転させたか否かを判定し(ステップS16)、回転していない場合はテンプレート画像を現在の状態から90°回転する(ステップS17)。そして、再びステップS14に戻り、テンプレートマッチングを行う。
【0036】
一方、ステップS13において、前回の入力画像において顔画像が検出され、そのときのテンプレート画像の回転角R_foundが記憶されている場合、回転角をR_foundとしたテンプレート画像を使用し、入力画像に対してマッチングを行い(ステップS18)、相関値が所定の閾値以上か否かを判定する(ステップS15)。
【0037】
ステップS15において、相関値が所定の閾値以上であり、顔検出されたと判定された場合は、そのときの回転角R=R_foundを記憶し(ステップS19)、ステップS1に戻り、次の入力画像の処理を行う。
【0038】
このように構成された本実施の形態においても、第1の実施の形態と同様に、前回の入力画像において顔検出された場合には、そのテンプレート画像の回転角R_foundを記憶しておき、この回転角R_foundのテンプレート画像を使用してマッチングを行うため、処理が高速化すると共に、姿勢情報が入力された場合は、姿勢情報に基づきテンプレート画像の回転角を予測し、この予測した回転角R_sensorのテンプレート画像を使用してマッチングを行うので、例えばロボット装置が転倒する等、急な動作にも対応して高効率で短時間に顔検出することが可能となる。
【0039】
(3)第1の適用例
次に、上述の第1及び第2の実施の形態で説明したようなテンプレートマッチングを適用して顔検出する本発明の第1の適用例について説明する(特願2002−163622号参照)。本適用例においてもロボット装置に設けられたものであり、ロボット装置の全体の制御を司るコントロール部及びその内部に設けられた内部メモリ等により、顔検出処理が行われるものであり、第1及び第2の実施の形態においては、テンプレートマッチングにおいて所定の閾値以上である場合は、該当する画像を顔画像として抽出するものとしたが、本適用例においては、テンプレート画像マチングにより顔画像と判定された後、これを顔候補とし、更に、サポートベクタマシン等の識別手段を使用して顔であるか否かを判定するものである。
【0040】
図4は、本発明の適用例を示す顔検出装置の機能を模式的に示すブロック図である。本適用例における顔検出タスク機能に関するコントロール部の処理内容を機能的に分類すると、図4に示すように、入力画像スケール変換部360、ウィンドウ切出部361、テンプレートマッチング部362、前処理部363、パターン識別部364及び重なり判定部365に分けることができる。
【0041】
入力画像スケール変換部360は、ロボット装置の頭部等に設けられたCCDカメラからの画像信号S1Aに基づくフレーム画像を内部メモリから読み出して、当該フレーム画像を縮小率が相異なる複数のスケール画像に変換する。この適用例の場合、25344(=176×144)画素からなるフレーム画像に対して、これを0.8倍ずつ順次縮小して5段階(1.0倍、0.8倍、0.64倍、0.51倍、0.41倍)のスケール画像(以下、これを第1〜第5のスケール画像と呼ぶ)に変換する。
【0042】
続くウィンドウ切出部361は、第1〜第5のスケール画像のうち、まず第1のスケール画像に対して、画像左上を起点として順に画像右下まで、適当な画素(例えば2画素)分を右側又は下側にずらしながらスキャンするようにして、400(=20×20)画素の矩形領域(以下、この領域をウィンドウ画像と呼ぶ。)を順次切り出す。
【0043】
その際、ウィンドウ切出部361は、第1のスケール画像から切り出した複数のウィンドウ画像のうち先頭のウィンドウ画像を後段のテンプレートマッチング部362に送出する。
【0044】
テンプレートマッチング部362は、ウィンドウ切出部361から得られた先頭のウィンドウ画像について、正規化相関法や誤差二乗法等の演算処理を実行してピーク値をもつ関数曲線に変換した後、当該関数曲線に対して認識性能が落ちない程度に十分に低い閾値を設定して、当該閾値を基準として当該ウィンドウ画像が顔画像か否かを判断する。この際、上述の第1及び第2の実施の形態において、説明した如く、顔が検出されない場合は、テンプレート画像を所定角度回転させ、再度テンプレートマッチングを行うと共に、前回の入力画像において顔検出されている場合には、そのとき回転角R_foundが記憶されており、この回転角R_foundのテンプレート画像を使用してマッチング処理を行う。
【0045】
本適用例の場合においても、テンプレートマッチング部362では、例えば100人程度の人物の平均からなる平均的な顔画像をテンプレート画像として、かかる顔画像か否かの判断基準となる閾値を設定するようになされている。これにより当該ウィンドウ画像について、テンプレート画像となる平均的な顔画像との大まかなマッチングをとり得るようになされている。
【0046】
このようにしてテンプレートマッチング部362は、ウィンドウ切出部361から得られたウィンドウ画像について、テンプレート画像によるマッチングをとり、顔画像であると判断された場合には、当該ウィンドウ画像をスコア画像として後段の前処理部363に送出する一方、顔画像でないと判断された場合には、当該ウィンドウ画像をそのまま後段の重なり判定部365に送出する。
【0047】
この時点で顔画像であると判断されたウィンドウ画像(スコア画像)には、実際には顔画像以外の判断誤りの画像が大量に含まれるが、日常のシーンの中では顔に類似した背景画像が多く存在することはあまりないため、ほとんどのウィンドウ画像は顔画像ではないと判断されることとなり極めて有効である。
【0048】
実際に上述した正規化相関法や誤差二乗法等の演算処理は、後段の前処理部及びパターン識別部における演算処理と比較すると、演算量が10分の1から100分の1程度で済むと共に、実験上この段階で顔画像以外の画像を80〔%〕以上はふるい落とすことができることが確認されたため、コントロール部全体としては大幅な演算量の削減につながることがわかる。
【0049】
前処理部363は、テンプレートマッチング部362から得られたスコア画像について、矩形領域でなる当該スコア画像から人間の顔画像とは無関係である背景部分に相当する4隅の領域を除去するために、当該4隅の領域を切り取ったマスクを用いて、400(=20×20)画素あるスコア画像から360画素分を抽出する。
【0050】
そして前処理部363は、撮像時の照明により濃淡で表される被写体の傾き条件を解消すべく、当該抽出した360画素分のスコア画像のうち顔画像として最適な部位を基準とする平面を形成するように、例えば平均二乗誤差(RSM:Root Mean Square)等による算出方法を用いて当該360画素の濃淡値に補正をかける。
【0051】
続いて前処理部363は、当該360画素分のスコア画像のコントラストを強調した結果をヒストグラム平滑化処理を行うことにより、CCDカメラ50のゲインや照明の強弱によらずに検出できるようにする。
【0052】
次いで、前処理部363は、ガボア・フィルタリング(Gabor Filtering)処理を行うことにより、当該360画素分のスコア画像をベクトル変換し、得られたベクトル群を更に1本のパターンベクトルに変換する。
【0053】
パターン識別部364は、外部から供給される学習用のデータすなわち教師データを用いて、暫定的な識別関数を得た後、当該識別関数を前処理部363からパターンベクトルとして得られた360画素分のスコア画像に試して顔の検出を行う。そして、検出に成功したものを顔データとして出力する。また検出に失敗したものを非顔データとして学習データに追加して、更に学習をし直す。
【0054】
パターン識別部364における顔認識に関して、例えば、パターン認識の分野で最も学習汎化能力が高いとされるサポートベクタマシン(Support Vector Machine:SVM)を用いて該当する顔か否かの識別を行うことができる。
【0055】
サポートベクタマシン自体に関しては、例えばB.sholkopf外著の報告(B.Sholkopf、C.Burges、A.Smola、Advance in Kernel Support Vector earning、The MIT Press、1999.)を挙げることができる。本願出願人が行った予備実験の結果からは、サポートベクタマシンによる顔認識方法は、主成分分析(PCA)やニューラル・ネットワークを用いる手法に比べ、良好な結果を示すことが判っている。
【0056】
そして、パターン識別部364は、前処理部363から与えられたスコア画像に基づくパターンベクトルについて、当該スコア画像内に顔データが存在するか否かを判断し、存在する場合のみ当該スコア画像の画像領域における左上位置(座標)及びその大きさ(縦横の画素数)と、当該スコア画像の切出し元となるスケール画像のフレーム画像に対する縮小率(すなわち上述の5段階のうちの該当する段階)とをリスト化し、これをリストデータとして内部メモリに格納する。
【0057】
この後、パターン識別部364は、ウィンドウ切出部361に対して、第1のスケール画像のうち先頭のウィンドウ画像の顔検出が終了した旨を通知することにより、当該ウィンドウ切出部361から第1のスケール画像のうち次にスキャンされたウィンドウ画像をテンプレートマッチング部362に送出させる。
【0058】
そしてテンプレートマッチング部362は、当該ウィンドウ画像がテンプレート画像にマッチングした場合のみスコア画像とし、そのときのテンプレート画像の回転角R_foundを記憶すると共に、上記スコア画像を前処理部363に送出する。前処理部363は、当該スコア画像をパターンベクトルに変換してパターン識別部364に送出する。パターン識別部364は、パターンベクトルから識別結果として得られた顔データに基づいてリストデータを生成して内部メモリに格納する。
【0059】
このようにウィンドウ切出部361おいて第1のスケール画像から切り出した全てのウィンドウ画像について、スキャン順にテンプレートマッチング部362、前処理部363及びパターン識別部364の各処理を行うことにより、当該第1のスケール画像から撮像結果に存在する顔画像を含むスコア画像を複数検出することができる。
【0060】
この後、パターン識別部364は、入力画像スケール変換部360に対して、第1のスケール画像の顔検出が終了した旨を通知することにより、当該入力画像スケール変換部360から第2のスケール画像をウィンドウ切出部361に送出させる。
【0061】
そして第2のスケール画像についても、上述した第1のスケール画像と同様の処理を行って、当該第2のスケール画像から撮像結果に存在する顔画像を含むスコア画像を複数検出した後、第3〜第5のスケール画像についても同様の処理を順次行う。テンプレートマッチング部362で記憶された回転角R_foundは、次の入力画像における同スケール画像とのマッチングをとる際に使用することができる。また、上述の第2の実施の形態と同様に、姿勢情報から推定される回転角R_sensorのテンプレート画像を使用してマッチングを行うようにしてもよい。
【0062】
かくしてパターン識別部364は、撮像画像であるフレーム画像を5段階に縮小した第1〜第5のスケール画像について、当該撮像画像内に存在する顔画像を含むスコア画像をそれぞれ複数検出した後、その結果得られた回転角R_foundを含むリストデータをそれぞれ内部メモリに格納する。この場合、元のフレーム画像内での顔画像のサイズによっては、全くスコア画像が得られない場合もあるが、少なくとも1以上(2又は3以上でもよい)のスケール画像でスコア画像が得られれば、顔検出処理を続行することとする。
【0063】
ここで、各スケール画像において顔画像を含む複数のスコア画像は、ウィンドウ切出部361におけるスキャンが2画素ずつすらして行われたため、実際に顔がある領域とその近傍領域とで高い相関性があり、隣接するスコア画像同士で相互に重なり合う画像領域を含むこととなる。
【0064】
そこで続く重なり判定部365は、内部メモリに格納されている第1〜第5のスケール画像ごとに複数のリストデータをそれぞれ読み出して、当該各リストデータに含まれるスコア画像同士を比較して、相互に重なり合う領域を含むか否かを判定する。
【0065】
重なり判定部365は、当該判定結果に基づいて、スコア画像同士で重なり合う領域を除去することにより、各スケール画像において、最終的に複数のスコア画像を互いに重なることなく寄せ集めた単一の画像領域として得ることができ、当該画像領域を顔決定データとして新たに内部メモリに格納する。
【0066】
また重なり判定部365は、テンプレートマッチング部62において顔画像でないと判断された場合には、そのまま何もすることなく、内部メモリの格納も行わない。
【0067】
次に、この適用例における動作について説明する。以上の構成において、このロボット装置では、CCDカメラにより撮像したフレーム画像を縮小率が相異なる複数のスケール画像に変換した後、当該各スケール画像の中からそれぞれ所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら1枚ずつ切り出す。
【0068】
このウィンドウ画像について、平均的な顔画像を表すテンプレート画像を用いてマッチングをとって大まかに顔画像であるか否かを判断するようにして、明らかに顔画像でないウィンドウ画像を除去することにより、後段の顔検出処理に要する演算量及び時間をその分減少させることができる。また、顔画像でないと判定された場合は、テンプレート画像を所定の回転角で順次回転させたテンプレート画像を使用しマッチングを行なうことにより、非正面顔であっても検出を可能にする。
【0069】
続いてテンプレートマッチングで顔画像であると判断されたウィンドウ画像(すなわちスコア画像)について、当該スコア画像の矩形領域の4隅部分を除去した後、濃淡補正及び続くコントラスト強調の平滑化を行い、更に1本のパターンベクトルに変換する。
【0070】
そして当該パターンベクトルについて、元のスコア画像内での顔検出を行って顔データ又は非顔データを判断し、顔データが存在するスコア画像の画像領域の位置(座標)及びその大きさ(画素数)と、当該スコア画像の切出し元となるスケール画像のフレーム画像に対する縮小率とをリスト化したリストデータを生成する。
【0071】
このように各スケール画像毎にそれぞれ全てのスコア画像についてリストデータを生成した後、当該各リストデータに含まれるスコア画像同士を比較して、相互に重なり合う領域を除去した顔決定データを求めることにより、元のフレーム画像から顔画像を検出することができる。
【0072】
このような顔検出タスク処理のうち特にテンプレートマッチング処理は、比較的構成が簡易な演算器にもたやすく実装できる上に、画像圧縮等で利用されるブロックマッチングの手法と類似する処理であることからCPUを用いた高速処理を行うハードウェアが数多く存在する。従ってテンプレートマッチング処理に関してはさらなる高速化が可能である。
【0073】
以上の構成によれば、このロボット装置において、CCDカメラにより撮像したフレーム画像について顔画像を検出する顔検出タスク処理の際、当該フレーム画像を相異なる縮小率で縮小した各スケール画像の中からそれぞれ所定サイズのウィンドウ画像を所定画素ずつずらすようにスキャンしながら1枚ずつ切り出した後、平均的な顔画像を表すテンプレート画像を用いてマッチングをとって大まかに顔画像であるか否かを判断するようにして、明らかに顔画像でないウィンドウ画像を除去するようにしたことにより、当該テンプレートマッチングで顔画像であると判断されたスコア画像に対する種々の顔検出処理に要する演算量及び時間をその分減少させることができ、ロボット装置全体の制御を司る主制御部381の処理負担を軽減させることができ、かくしてリアルタイム性を格段と向上し得るロボット装置を実現できると共に、テンプレート画像を順次回転させてマッチングを行うため、非正面顔であっても見逃すことなく検出することができる。
【0074】
(4)第2の適用例
テンプレートマッチングを行って顔候補を抽出し(第1の工程)、この顔候補の中からSVM等により顔領域を判定して(第2の工程)顔領域を検出する方法において、第1の工程においては、単純に正規化相関値の代償により顔候補を決定しているため、顔候補の見逃しを軽減しようとした場合、閾値を上げる方法又は間引きを減らす方法をとることができるものの、閾値を下げると演算量が増大してしまい、ロボット装置等のリソースの限られた環境においては好ましくない場合がある。一方、閾値を上げると、第2の工程において顔判定するための候補画像が減るため、演算量を減らすことができるものの、本来顔である画像も候補画像から取り除いてしまい、顔画像を見逃してしまう場合がある。そこで、このような場合に好適な本発明の第2の適用例について説明する。
【0075】
テンプレート画像と同一サイズの顔領域(顔画像)が入力画像内に存在する場合、この顔画像とテンプレート画像との相関をとれば、テンプレート画像サイズ近傍では最も相関値が大きくなる。よって、顔領域の候補を絞り込む際に、局所的な絞り込みを行うアルゴリズムを使用することにより、本来顔である画像を見逃すことなく顔候補画像を低減して後段の第2の工程にて顔判定する計算量を低減することができる。具体的には、入力画像と所定サイズの平均顔のテンプレート画像との正規化相関をとった相関値の集合であるマッチング結果における相関値の局所最大値に基づき候補となる顔領域を抽出するようにする。
【0076】
即ち、図5(a)に示すように、任意のスケール画像から切り出した、例えば垂直方向の大きさ(y軸方向の辺の長さ、以下高さという。)hei_s×水平方向の大きさ(x軸方向の辺の長さ、以下幅という。)weid_sのウィンドウ画像(スケール変換後の入力画像)W2について、図5(b)に示すように、例えば高さhei_t×幅wid_sである第1のテンプレート画像サイズを有する平均的な顔画像であるテンプレート画像T2を使用し、ウィンドウ画像W2をスキャンし、所定画素(例えば1画素)ずつずらしながら移動させたテンプレート画像T2と上記入力画像との相関値の集合であるマッチング結果を求める。このマッチング結果は、テンプレート画像T2の移動に伴い相関値が2次元に配列されたものであり、図6に示すように、当該相関値を表す高さhei_r×幅wid_rのテンプレートマッチング結果画像R2が得られる。ここで、テンプレート画像レートマッチング結果画像R2の高さher_rは、hei_s−(hei_t+1)であり、画像R2の幅wid_sは、wid_s−(wid_t+1)となる。
【0077】
次に、このテンプレート画像レートマッチング結果画像R2を所定のサイズ、例えば第1のテンプレート画像サイズと同一の大きさに分割し、各第1のテンプレート画像サイズに仕切られた分割領域毎に相関値の最大値を有する点(位置)を求め、これら各分割領域から得られた最大値を示す点のうち、所定の閾値以上のものを顔候補として抽出する。
【0078】
即ち、平均顔のテンプレート画像を使用して正規化相関をしようした場合、必ずしも任意のパターンより、顔画像の方が相関値が高くなるという保証はないものの、テンプレート画像と同一のサイズの顔画像が存在する場合は、テンプレート画像サイズ近傍の大きさでは相関値が最大値をとることから、相関値が分割領域内で最大値となり、且つ所定の閾値以上の点を顔候補として抽出することにより、単にテンプレートマッチングの結果、相関値が所定の閾値以上であるものを顔候補として抽出する場合に比して、顔候補をより有効に絞り込むことができる。
【0079】
ここで、本第2の適用例においては、任意の大きさのテンプレート画像を使用することができるが、使用するテンプレート画像サイズを切り替えて、テンプレート画像サイズを選択することにより、入力画像に対して準備できる全てのテンプレート画像サイズに対して演算をする場合に比して、演算量を減らして高効率化することができる。例えば、一度顔が検出された場合に、次に顔検出する際はそのテンプレート画像サイズを使用することができる。また、例えば、ロボット装置に設けられた距離センサを使用し、この距離センサからの距離情報に基づき入力画像に含まれる対象物との間の距離を認識することにより、対象物の顔領域の大きさを予測してテンプレート画像サイズを選択する対象距離切り替え手段を設ける等することができ、目的に応じてテンプレート画像サイズを切り替えることができる。
【0080】
このウィンドウ画像について、平均的な顔画像を表すテンプレート画像を用いてマッチングをとって当該テンプレート画像との相関値の集合であるマッチング結果画像を生成する。このように各スケール画像毎にそれぞれ全てのウィンドウ画像についてスキャン順にそれぞれマッチング結果画像を生成する。以下、マッチング結果画像から顔候補を検出する工程について詳細に説明する。
【0081】
図7は、テンプレートマッチング部において、テンプレートマッチング結果画像R2から顔候補となる画素を検出する各処理工程を示すフローチャートである。図7に示すように、先ず、テンプレートマッチング結果画像R2が入力されると、マッチング結果画像R2をテンプレート画像サイズに分割し、その分割領域の1つ、例えば0≦x≦wid_t−1、0≦y≦hei_t−1において、最も相関値が高い点(座標)を抽出する(ステップS21)。以下、マッチング結果画像R2をテンプレート画像サイズに分割した領域を分割領域rn、分割領域rnにおいて、相関値が最も大きい点(座標)をlocal_max(x,y)という。ここでは、この各分割領域内において最も相関値が高い画素を抽出するが、本適用例においては、マッチング結果画像において分割された分割領域を左から右へ一行ずつ順に処理を行う場合について説明する。
【0082】
次に、local_max(x,y)が所定の閾値(th1)より大きいか否かを判定し(ステップS22)、大きい場合は、顔候補として追加する(ステップS23)。本適用例における顔検出装置は、スケールと共に入力画像に含まれると想定される顔の大きさのテンプレート画像サイズを選択する手段を有しているが、テンプレート画像サイズは異なる大きさの複数種類あり、複数種類ある各テンプレート画像サイズ毎にマッチング結果画像R2を算出して顔候補を抽出すると、同一の点が抽出される場合がある。従って、ステップS23において、顔候補として同一の点がある場合、即ち、異なるテンプレート画像サイズで顔候補を抽出した際に既に抽出されている場合はこの点は追加しない。
【0083】
次に、顔候補として抽出された点に対応するテンプレート画像サイズの入力画像領域において、この画像領域内に含まれる肌色画素の占有率を求める。本適用例においては、肌色画素の占有率を求める際に、肌色カラーテーブル100を参照する。そして、この肌色画素占有率が所定の閾値(th2)より大きいか否かを判定する(ステップSP14)。大きい場合は、このlocal_max(x,y)の周辺、例えば上下左右の8近傍点を顔候補として追加する(ステップS25)。ここで、ステップS23と同様に、既にこれらの8近傍点が既に顔候補として抽出されている場合は、候補に追加しない。
【0084】
ステップS22でlocal_max(x,y)が閾値th1未満だった場合、ステップS24でlocal_max(x,y)に相当する入力画像における肌色画素占有率が閾値th2未満であった場合、及びステップS25で顔候補の追加が終了した後は、いずれもステップS26に進み、次の顔候補を抽出するために次の分割領域に移り、処理を進める。
【0085】
先ず、マッチング結果画像R2において、x方向にテンプレート画像サイズ分、即ち、wid_tだけずれた隣の分割領域に移る(ステップS26)。次に、wid_tだけずれたx座標(x+wid_t)の分割領域において、そのx座標がマッチング結果画像の幅(x方向の辺)wid_rより大きい場合は、分割領域がマッチング結果画像に含まれないことを示し、次の行に移り、0≦x≦wid_t−1であって、y方向にテンプレート画像サイズ分、即ち、hei_tだけずれた隣の分割領域に移る(ステップS28)。次に、分割領域のy座標がマッチング結果画像の高さ(y方向の辺)hei_rより大きいか否かを判定し(ステップS29)、大きい場合は、マッチング結果画像における全ての分割領域の相関値の最大値を求めたことを示し、処理を終了する。
【0086】
一方、ステップS27及びステップS28において、分割領域がマッチング結果画像に含まれると判定された場合は、再びステップS21に戻り、その分割領域内で最も高い相関値を有する点を抽出する。
【0087】
このようにマッチング結果画像R2をテンプレート画像サイズに区切った分割領域における相関値の最大値を求めているため、ステップS26において、隣接する分割領域に移る場合は、x方向にwid_tだけずれるものとしたが、マッチング結果画像R2は、テンプレート画像サイズ以下のサイズであれば、任意の大きさに分割することができる。その際、分割する画像の大きさの幅(x方向の辺)wid_step、高さ(y方向)hei_stepとすると、ステップS26及びステップS28において、夫々x方向にwid_step、又はy方向にhei_step移動することにより、次の分割領域に進むことができる。
【0088】
図8は、テンプレートマッチング部において、ウィンドウ画像W2から顔候補として検出された点を示す図である。図8において、白で示す点が、図6に示すマッチング結果画像R2から顔候補として抽出された点である。比較として、図9は、マッチング結果画像R2において、閾値以上である点を全て顔候補として抽出した例を示す図である。図9に示す図と比較すると、本適用例において、テンプレートマッチング部にて顔候補として抽出される点が飛躍的に少なくなっているのがわかる。これにより、後段の処理における計算量を飛躍的に削減することができる。また、第1の実施の形態と同様に、テンプレート画像マッチン部において顔候補が抽出されなかった場合、又は顔候補として抽出される点が所定の閾値未満であるときは、図5(c)に示すように、例えばテンプレート画像T2を180°回転させたテンプレート画像T2とする等、適宜テンプレート画像を回転させ、再度マッチングを行うことができる。更に、第2の実施の形態と同様に、姿勢情報からテンプレート画像の回転角を推定し、この推定した回転角のテンプレート画像を使用してマッチングを行うようにしてもよい。
【0089】
このように、ウィンドウ画像について、平均的な顔画像を表すテンプレート画像を用いてマッチングをとって大まかに顔画像であるか否かを判断する際に、テンプレートマッチング結果画像を所定のサイズに仕切り、相関値の最大値を顔候補として抽出して明らかに顔画像でないウィンドウ画像を除去することにより、本来顔である領域を見逃すことなく、後段の顔検出処理に要する演算量及び時間を減少させることができ、かくしてリアルタイム性を格段と向上した顔検出装置及びこれを搭載したロボット装置を実現することができる。
【0090】
また、相関値が最大となる点と共にその周囲においても顔検索範囲とすることにより、顔検出精度を向上することができる。更に、所定の閾値以上の肌色占有率又は顔の色占有率を有する場合のみ、顔検索範囲として設定することにより、顔検出精度を保ちつつ顔候補を減らして後段の演算量を減らすことができる。更にまた、テンプレート画像のサイズを適宜切り替えることにより、更に演算量を減らすことができる。
【0091】
(5)ロボット装置の構成
次に、上述の第1及び第2の実施の形態におけるような顔検出モジュールを有するロボット装置について説明する。先ず、ロボット装置の構成について説明する。
【0092】
図10に示すように、本実施の形態におけるロボット装置1は、周囲環境(或いは外部刺激)や内部状態に応じて自律行動をする自律型のロボット装置であり、「犬」等の動物を模した形状のいわゆるペット型ロボットとされ、胴体部ユニット2の前後左右にそれぞれ脚部ユニット3A,3B,3C,3Dが連結されると共に、胴体部ユニット2の前端部に頭部ユニット4が連結されて構成されている。
【0093】
胴体部ユニット2には、図11に示すように、CPU(Central Processing Unit)10、DRAM(Dynamic Random Access Memory)11、フラッシュROM(Read Only Memory)12、PC(Personal Computer)カードインターフェイス回路13及び信号処理回路14が内部バス15を介して相互に接続されることにより形成されたコントロール部16と、このロボット装置1の動力源としてのバッテリ17とが収納されている。また、胴体部ユニット2には、ロボット装置1の向きや動きの加速度を検出するための角速度センサ18及び加速度センサ19が収納されている。また、胴体部ユニット2には、鳴き声等の音声又はメロディを出力するためのスピーカ20が、図10に示すように所定位置に配置されている。また、胴体部ユニット2の尻尾部5には、使用者からの操作入力を検出する検出機構としての操作スイッチ21が備えられている。操作スイッチ21は、使用者による操作の種類を検出できるスイッチであって、ロボット装置1は、操作スイッチ21によって検出される操作の種類に応じて、例えば「誉められた」か「叱られた」かを認識する。
【0094】
頭部ユニット4には、ロボット装置1の「目」に相当し、外部の状況や対象物の色、形、動き等を撮像するためのCCD(Charge Coupled Device)カメラ22と、前方に位置する対象物までの距離を測定するための距離センサ23と、ロボット装置1の左右の「耳」に相当し、外部音を集音するためのマイクロホン24と、例えばLED(Light Emitting Diode)を備えた発光部25等が、図10に示すように所定位置にそれぞれ配置されている。ただし、発光部25は、構成の説明等においては、必要に応じてLED25と示す。また、頭部ユニット4内部には、図10には図示しないが、ユーザの頭部ユニット4に対する接触を間接的に検出するための検出機構として頭部スイッチ26が備えられている。頭部スイッチ26は、例えば、使用者の接触によって頭部が動かされた場合、その傾き方向を検出できるスイッチであって、ロボット装置1は、頭部スイッチ26によって検出される頭部の傾き方向に応じて、「誉められた」か「叱られた」かを認識する。
【0095】
各脚部ユニット3A〜3Dの関節部分、各脚部ユニット3A〜3Dと胴体部ユニット2との連結部分、頭部ユニット4と胴体部ユニット2との連結部分には、自由度数分のアクチュエータ28〜28及びポテンショメータ29〜29がそれぞれ配設されている。アクチュエータ28〜28は、例えば、サーボモータを備えている。サーボモータの駆動により、脚部ユニット3A〜3Dが制御されて目標の姿勢、或いは動作に遷移する。各脚部ユニット3A〜3Dの先端の「肉球」に相当する位置には、主としてユーザからの接触を検出する検出機構としての肉球スイッチ27A〜27Dが設けられ、ユーザによる接触等を検出できるようになっている。
【0096】
ロボット装置1は、この他にも、ここでは図示しないが、該ロボット装置1の内部状態とは別の動作状態(動作モード)を表すための発光部や、充電中、起動中、起動停止等、内部電源の状態を表す状態ランプ等を、適切な箇所に適宜備えていてもよい。
【0097】
そして、ロボット装置1において、操作スイッチ21、頭部スイッチ26及び肉球スイッチ27等の各種スイッチと、角速度センサ18、加速度センサ19、距離センサ23等の各種センサと、スピーカ20、マイク24、発光部25、各アクチュエータ28〜28、各ポテンショメータ29〜29は、それぞれ対応するハブ30〜30を介してコントロール部16の信号処理回路14と接続されている。一方、CCDカメラ22及びバッテリ17は、それぞれ信号処理回路14と直接接続されている。
【0098】
信号処理回路14は、上述の各種スイッチから供給されるスイッチデータ、各種センサから供給されるセンサデータ、画像データ及び音声データを順次取り込み、これらをそれぞれ内部バス15を介してDRAM11内の所定位置に順次格納する。また信号処理回路14は、これとともにバッテリ17から供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、DRAM11内の所定位置に格納する。
【0099】
このようにしてDRAM11に格納された各スイッチデータ、各センサデータ、画像データ、音声データ及びバッテリ残量データは、CPU10が当該ロボット装置1の動作制御を行う際に使用される。
【0100】
CPU10は、ロボット装置1の電源が投入された初期時において、フラッシュROM12に格納された制御プログラムを読み出して、DRAM11に格納する。又は、CPU10は、図10に図示しない胴体部ユニット2のPCカードスロットに装着された半導体メモリ装置、例えば、メモリカード31に格納された制御プログラムをPCカードインターフェイス回路13を介して読み出してDRAM11に格納する。
【0101】
CPU10は、上述のように信号処理回路14よりDRAM11に順次格納される各センサデータ、画像データ、音声データ、及びバッテリ残量データに基づいて自己及び周囲の状況や、使用者からの指示及び働きかけの有無を判断している。
【0102】
さらに、CPU10は、この判断結果及びDRAM11に格納した制御プログラムに基づいて続く行動を決定すると共に、当該決定結果に基づいて必要なアクチュエータ28〜28を駆動させることにより、頭部ユニット4を上下左右に振らせたり、各脚部ユニット3A〜3Dを駆動させて歩行させるなどの行動を行わせる。
【0103】
また、この際CPU10は、必要に応じて音声データを生成し、これを信号処理回路14を介して音声信号としてスピーカ20に与えることにより当該音声信号に基づく音声を外部に出力させたり、上述の発光部25におけるLEDの点灯及び消灯を指示する信号を生成し、発光部25を点灯したり消灯したりする。
【0104】
このようにしてこのロボット装置1においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るようになされている。
【0105】
(6)制御プログラムのソフトウェア構成
ここで、ロボット装置1における上述の制御プログラムのソフトウェア構成は、図12に示すようになる。この図12において、デバイス・ドライバ・レイヤ40は、この制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット41から構成されている。この場合、各デバイス・ドライバは、CCDカメラ22(図11)やタイマ等の通常のコンピュータで用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、対応するハードウェアからの割り込みを受けて処理を行う。
【0106】
また、ロボティック・サーバ・オブジェクト42は、デバイス・ドライバ・レイヤ40の最下位層に位置し、例えば上述の各種センサやアクチュエータ28〜28等のハードウェアにアクセスするためのインターフェースを提供するソフトウェア群でなるバーチャル・ロボット43と、電源の切換えなどを管理するソフトウェア群でなるパワーマネージャ44と、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ45と、ロボット装置1の機構を管理するソフトウェア群でなるデザインド・ロボット46とから構成されている。
【0107】
マネージャ・オブジェクト47は、オブジェクト・マネージャ48及びサービス・マネージャ49から構成されている。オブジェクト・マネージャ48は、ロボティック・サーバ・オブジェクト42、ミドル・ウェア・レイヤ50、及びアプリケーション・レイヤ51に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群であり、サービス・マネージャ49は、メモリカード31(図11)に格納されたコネクションファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【0108】
ミドル・ウェア・レイヤ50は、ロボティック・サーバ・オブジェクト42の上位層に位置し、画像処理や音声処理などのこのロボット装置1の基本的な機能を提供するソフトウェア群から構成されている。また、アプリケーション・レイヤ51は、ミドル・ウェア・レイヤ50の上位層に位置し、当該ミドル・ウェア・レイヤ50を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置1の行動を決定するためのソフトウェア群から構成されている。
【0109】
なお、ミドル・ウェア・レイヤ50及びアプリケーション・レイヤ51の具体なソフトウェア構成をそれぞれ図13に示す。
【0110】
ミドル・ウェア・レイヤ50は、図13に示すように、騒音検出用、温度検出用、明るさ検出用、音階認識用、距離検出用、姿勢検出用、接触検出用、操作入力検出用、動き検出用及び色認識用の各信号処理モジュール60〜69並びに入力セマンティクスコンバータモジュール70などを有する認識系71と、出力セマンティクスコンバータモジュール79並びに姿勢管理用、トラッキング用、モーション再生用、歩行用、転倒復帰用、LED点灯用及び音再生用の各信号処理モジュール72〜78などを有する出力系80とから構成されている。
【0111】
認識系71の各信号処理モジュール60〜69は、ロボティック・サーバ・オブジェクト42のバーチャル・ロボット43によりDRAM11(図11)から読み出される各センサデータや画像データ及び音声データのうちの対応するデータを取り込み、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクスコンバータモジュール70に与える。ここで、例えば、バーチャル・ロボット43は、所定の通信規約によって、信号の授受或いは変換をする部分として構成されている。
【0112】
入力セマンティクスコンバータモジュール70は、これら各信号処理モジュール60〜69から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ドミソの音階が聞こえた」、「障害物を検出した」、「転倒を検出した」、「叱られた」、「誉められた」、「動く物体を検出した」又は「ボールを検出した」などの自己及び周囲の状況や、使用者からの指令及び働きかけを認識し、認識結果をアプリケーション・レイヤ51(図11)に出力する。
【0113】
アプリケーション・レイヤ5lは、図14に示すように、行動モデルライブラリ90、行動切換モジュール91、学習モジュール92、感情モデル93及び本能モデル94の5つのモジュールから構成されている。
【0114】
行動モデルライブラリ90には、図15に示すように、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」などの予め選択されたいくつかの条件項目にそれぞれ対応させて、それぞれ独立した行動モデル90〜90が設けられている。
【0115】
そして、これら行動モデル90〜90は、それぞれ入力セマンティクスコンバータモジュール71から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、必要に応じて後述のように感情モデル93に保持されている対応する情動のパラメータ値や、本能モデル94に保持されている対応する欲求のパラメータ値を参照しながら続く行動をそれぞれ決定し、決定結果を行動切換モジュール91に出力する。
【0116】
なお、この実施の形態の場合、各行動モデル90〜90は、次の行動を決定する手法として、図16に示すような1つのノード(状態)NODE〜NODEから他のどのノードNODE〜NODEに遷移するかを各ノードNODE〜NODEに間を接続するアークARC〜ARCに対してそれぞれ設定された遷移確率P〜Pに基づいて確率的に決定する有限確率オートマトンと呼ばれるアルゴリズムを用いる。
【0117】
具体的に、各行動モデル90〜90は、それぞれ自己の行動モデル90〜90を形成するノードNODE〜NODEにそれぞれ対応させて、これらノードNODE〜NODEごとに図17に示すような状態遷移表100を有している。
【0118】
この状態遷移表100では、そのノードNODE〜NODEにおいて遷移条件とする入力イベント(認識結果)が「入力イベント名」の列に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の列における対応する行に記述されている。
【0119】
したがって、図17の状態遷移表100で表されるノードNODE100では、「ボールを検出(BALL)」という認識結果が与えられた場合に、当該認識結果と共に与えられるそのボールの「大きさ(SIZE)」が「0から1000」の範囲であることや、「障害物を検出(OBSTACLE)」という認識結果が与えられた場合に、当該認識結果と共に与えられるその障害物までの「距離(DISTANCE)」が「0から100」の範囲であることが他のノードに遷移するための条件となっている。
【0120】
また、このノードNODE100では、認識結果の入力がない場合においても、行動モデル90〜90が周期的に参照する感情モデル93及び本能モデル94にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル93に保持された「喜び(JOY)」、「驚き(SURPRISE)」若しくは「悲しみ(SUDNESS)」のいずれかのパラメータ値が「50から100」の範囲であるときには他のノードに遷移することができるようになっている。
【0121】
また、状態遷移表100では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の行にそのノードNODE〜 NODEから遷移できるノード名が列記されていると共に、「入力イベント名」、「データ値」及び「データの範囲」の列に記述された全ての条件が揃ったときに遷移できる他の各ノードNODE〜NODEへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述され、そのノードNODE〜NODEに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は100[%]となっている。
【0122】
したがって、図17の状態遷移表100で表されるノードNODE100では、例えば「ボールを検出(BALL)」し、そのボールの「SIZE(大きさ)」が「0から1000」の範囲であるという認識結果が与えられた場合には、「30[%]」の確率で「ノードNODE120(node 120)」に遷移でき、そのとき「ACTION1」の行動が出力されることとなる。
【0123】
各行動モデル90〜90は、それぞれこのような状態遷移表100として記述されたノードNODE〜NODEがいくつも繋がるようにして構成されており、入力セマンティクスコンバータモジュール71から認識結果が与えられたときなどに、対応するノードNODE〜NODEの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換モジュール91に出力するようになされている。
【0124】
図14に示す行動切換モジュール91は、行動モデルライブラリ90の各行動モデル90〜90からそれぞれ出力される行動のうち、予め定められた優先順位の高い行動モデル90〜90から出力された行動を選択し、当該行動を実行すべき旨のコマンド(以下、これを行動コマンドという。)をミドル・ウェア・レイヤ50の出力セマンティクスコンバータモジュール79に送出する。なお、この実施の形態においては、図15において下側に表記された行動モデル90〜90ほど優先順位が高く設定されている。
【0125】
また、行動切換モジュール91は、行動完了後に出力セマンティクスコンバータモジュール79から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール92、感情モデル93及び本能モデル94に通知する。
【0126】
一方、学習モジュール92は、入力セマンティクスコンバータモジュール71から与えられる認識結果のうち、「叱られた」や「誉められた」など、使用者からの働きかけとして受けた教示の認識結果を入力する。そして、学習モジュール92は、この認識結果及び行動切換モジュール91からの通知に基づいて、「叱られた」ときにはその行動の発現確率を低下させ、「誉められた」ときにはその行動の発現確率を上昇させるように、行動モデルライブラリ90における対応する行動モデル90〜90の対応する遷移確率を変更する。
【0127】
他方、感情モデル93は、「喜び(joy)」、「悲しみ(sadness)」、「怒り(anger)」、「驚き(surprise)」、「嫌悪(disgust)」及び「恐れ(fear)」の合計6つの情動について、各情動ごとにその情動の強さを表すパラメータを保持している。そして、感情モデル93は、これら各情動のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール71から与えられる「叱られた」及び「誉められた」などの特定の認識結果と、経過時間及び行動切換モジュール91からの通知などに基づいて周期的に更新する。
【0128】
具体的には、感情モデル93は、入力セマンティクスコンバータモジュール71から与えられる認識結果と、そのときのロボット装置1の行動と、前回更新してからの経過時間などに基づいて所定の演算式により算出されるそのときのその情動の変動量を△E[t]、現在のその情動のパラメータ値をE[t]、その情動の感度を表す係数をkとして、(1)式によって次の周期におけるその情動のパラメータ値E[t+1]を算出し、これを現在のその情動のパラメータ値E[t]と置き換えるようにしてその情動のパラメータ値を更新する。また、感情モデル73は、これと同様にして全ての情動のパラメータ値を更新する。
【0129】
【数1】

Figure 2004133637
【0130】
なお、各認識結果や出力セマンティクスコンバータモジュール79からの通知が各情動のパラメータ値の変動量△E[t]にどの程度の影響を与えるかは予め決められており、例えば「叩かれた」といった認識結果は「怒り」の情動のパラメータ値の変動量△E[t]に大きな影響を与え、「撫でられた」といった認識結果は「喜び」の情動のパラメータ値の変動量△E[t]に大きな影響を与えるようになっている。
【0131】
ここで、出力セマンティクスコンバータモジュール79からの通知とは、いわゆる行動のフィードバック情報(行動完了情報)であり、行動の出現結果の情報であり、感情モデル93は、このような情報によっても感情を変化させる。これは、例えば、「吠える」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクスコンバータモジュール79からの通知は、上述した学習モジュール92にも入力されており、学習モジュール92は、その通知に基づいて行動モデル90〜90の対応する遷移確率を変更する。
【0132】
なお、行動結果のフィードバックは、行動切換モジュール91の出力(感情が付加された行動)によりなされるものであってもよい。
【0133】
一方、本能モデル94は、「運動欲(exercise)」、「愛情欲(affection)」、「食欲(appetite)」及び「好奇心(curiosity)」の互いに独立した4つの欲求について、これら欲求ごとにその欲求の強さを表すパラメータを保持している。そして、本能モデル94は、これらの欲求のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール71から与えられる認識結果や、経過時間及び行動切換モジュール91からの通知などに基づいて周期的に更新する。
【0134】
具体的には、本能モデル94は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクスコンバータモジュール68からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔI[k]、現在のその欲求のパラメータ値をI[k]、その欲求の感度を表す係数kとして、所定周期で(2)式を用いて次の周期におけるその欲求のパラメータ値I[k+1]を算出し、この演算結果を現在のその欲求のパラメータ値I[k]と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル94は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【0135】
【数2】
Figure 2004133637
【0136】
なお、認識結果及び出力セマンティクスコンバータモジュール79からの通知などが各欲求のパラメータ値の変動量△I[k]にどの程度の影響を与えるかは予め決められており、例えば出力セマンティクスコンバータモジュール79からの通知は、「疲れ」のパラメータ値の変動量△I[k]に大きな影響を与えるようになっている。
【0137】
なお、本実施の形態においては、各情動及び各欲求(本能)のパラメータ値がそれぞれ0から100までの範囲で変動するように規制されており、また係数k、kの値も各情動及び各欲求ごとに個別に設定されている。
【0138】
一方、ミドル・ウェア・レイヤ50の出力セマンティクスコンバータモジュール79は、図13に示すように、上述のようにしてアプリケーション・レイヤ51の行動切換モジュール91から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング(ボールを追いかける)」といった抽象的な行動コマンドを出力系80の対応する信号処理モジュール72〜78に与える。
【0139】
そしてこれら信号処理モジュール72〜78は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ28〜28(図11)に与えるべきサーボ指令値や、スピーカ20(図11)から出力する音の音声データ及び/又は発光部25(図11)のLEDに与える駆動データを生成し、これらのデータをロボティック・サーバ・オブジェクト42のバーチャル・ロボット43及び信号処理回路14(図11)を順次介して対応するアクチュエータ28〜28、スピーカ20又は発光部25に順次送出する。
【0140】
このようにしてロボット装置1においては、制御プログラムに基づいて、自己(内部)及び周囲(外部)の状況や、使用者からの指示及び働きかけに応じた自律的な行動を行うことができるようになされている。
【0141】
このようなロボット装置1において、上述した顔検出処理は、ミドル・ウェア・レイヤ50の顔検出モジュール33において行うことができる。図18は、図11乃至図15に示すロボット装置において、顔検出により、その行動を制御するために必要な構成部分を取り出して示すブロック図である。
【0142】
上述したように、CCDカメラ22により撮像された画像データは、DRAM11の所定の場所に格納され、ロボティック・サーバ・オブジェクト42におけるバーチャル・ロボット43に供給される。このバーチャル・ロボット43は、画像データをDRAM11から読み出し、ミドル・ウェア・レイヤ50における顔検出モジュール33に供給する。顔検出モジュールでは、上述の第1及び第2の実施の形態において説明したような顔検出処理がなされ、その処理結果がアプリケーション・レイヤ51における行動モデルライブラリ90に供給されることにより、その処理結果がロボット装置の行動に反映される。
【0143】
即ち、行動モデルライブラリ90は、必要に応じて情動のパラメータ値や欲求のパラメータ値を参照しながら続く行動を決定し、決定結果を行動切換モジュール91に与える。そして、行動切換モジュール91は、当該決定結果に基づく行動コマンドをミドル・ウェア・レイヤ50の出力系80における歩行モジュール75に送出する。
【0144】
歩行モジュール75は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ28〜28に与えるべきサーボ指令値を生成し、このデータをロボティック・サーバ・オブジェクト42のバーチャル・ロボット43及び信号処理回路14(図2)を順次介して対応するアクチュエータ28〜28に順次送出する。この結果、ロボット装置1の行動が制御され、例えば対象物に対して近づく等の行動を発現する。
【0145】
例えば、ロボット装置1は、顔検出モジュール33の顔検出処理によって検出された顔画像の大きさ、方向等に基づき、検出された顔を有する対象物の方向を見たり、対象物に近くづくように移動することができる。そして、ロボット装置1は、検出した顔画像が正面顔であって、距離センサ23からの距離データから対象物に対して所定の範囲内に近づいたと判定した場合、移動を開始して所定の距離進んだ場合、又は接触検出モジュール66により接触が検出された場合等に、移動を停止するよう制御することができる。
【0146】
また、例えば、図11のCCDカメラ22により取得された画像データを基に、動体検出を行う動体検出手段を設け、動体検出手段により検出された動体の位置に基づく動体位置方向、又は、図11のマイククロホン24等の音声検出手段により、音声データを取得し、この音声データから音源方向を推定する音源方向推定手段を設け、音源方向推定手段により推定された音源方向等を、上述の顔検出結果に基づき移動制御する際に、利用するようにしてもよい。
【0147】
なお、上述の実施の形態においては、本発明を図10のように構成された4足歩行型のロボット装置1に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のロボット装置及びロボット装置以外のこの他種々の装置に広く適用することができる。例えば、ロボット装置は、2足歩行であってもよく、更に、移動手段は、脚式移動方式に限定されない。
【0148】
また、上述の実施の形態では、ソフトウェアの構成として説明したが、これに限定されるものではなく、これに限定されるものではなく、各機能をハードウェアで構成することも可能である。
【0149】
【発明の効果】
以上詳細に説明したように本発明に係る顔検出装置は、入力画像から対象物の顔を検出する顔検出装置において、入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段と備え、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求めるので、入力画像に含まれる顔画像が、正面を向いていない非正面顔であっても、入力画像から顔画像を検出することができる。
【0150】
また、本発明に係るプログラムは、上述した顔検出処理をコンピュータに実行させるものあり、このようなプログラムによれば、上述した顔検出処理をソフトウェアにより実現することができる。
【0151】
更に、本発明に係るロボット装置は、供給された入力情報に基づいて動作を行うロボット装置において、画像を撮像する撮像部と、上記撮像部から供給される入力画像から対象物の顔を検出する顔検出部とを備え、上記顔検出部は、上記入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段とを有し、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求めるので、顔検出対象となる人間等の対象物がロボット装置に対して正面を向いていない場合であっても、対象物の顔を検出し、対象物の方向に近づく等、顔検出結果に応じた行動を実行することができる。
【図面の簡単な説明】
【図1】本発明の第1の本実施の形態における顔検出モジュールの機能を模式的に示すブロック図である。
【図2】本実施の形態における顔検出方法を示すフローチャートである。
【図3】本発明の第2の実施の形態における顔検出方法を示すフローチャートである。
【図4】本発明の第1の適用例を示す顔検出装置の機能を模式的に示すブロック図である。
【図5】(a)及び(b)は、夫々入力画像(ウィンドウ画像)及びテンプレート画像を示す模式図である。
【図6】入力画像(ウィンドウ画像)とテンプレート画像とから求めた相関値の集合であるマッチング結果画像を示す図である。
【図7】本発明の第1の適用例におけるテンプレートマッチング結果画像から顔候補となる画素を検出する各処理工程を示すフローチャートである。
【図8】本発明の第1の適用例における顔検出装置のテンプレートマッチング部においてマッチング結果画像から顔候補を抽出した結果を示す図である。
【図9】マッチング結果画像において、所定の閾値以上のものを顔候補として抽出した結果を示す図である。
【図10】本発明の実施の形態におけるロボット装置の外観構成を示す斜視図である。
【図11】同ロボット装置の回路構成を示すブロック図である。
【図12】同ロボット装置のソフトウェア構成を示すブロック図である。
【図13】同ロボット装置のソフトウェア構成におけるミドル・ウェア・レイヤの構成を示すブロック図である。
【図14】同ロボット装置のソフトウェア構成におけるアプリケーション・レイヤの構成を示すブロック図である。
【図15】同アプリケーション・レイヤの行動モデルライブラリの構成を示すブロック図である。
【図16】同ロボット装置の行動決定のための情報となる有限確率オートマトンを説明するために使用した図である。
【図17】有限確率オートマトンの各ノードに用意された状態遷移表を示す図である。
【図18】図11乃至図15に示すロボット装置において、顔検出により、その行動を制御するために必要な構成部分を取り出して示すブロック図である。
【符号の説明】
1 ロボット装置、10 CPU、11 DRAM、14 信号処理回路、22 CCDカメラ、28〜28 アクチュエータ、33 顔検出モジュール、42 ロボティック・サーバ・オブジェクト、43 バーチャル・ロボット、50 ミドル・ウェア・レイヤ、51 アプリケーション・レイヤ、68 動き検出用信号処理モジュール、70 入力セマンティクスコンバータモジュール、71 認識系、73 トラッキング用信号処理モジュール、75 歩行モジュール、79 出力セマンティクスコンバータモジュール、80 出力系、90 行動モデルライブラリ、91 行動切換モジュール[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a face detection device for detecting a face of a target object from an input image, a face detection method, a robot device equipped with the face detection device for improving entertainment, and a computer for performing an operation of performing face detection. Related to programs to be executed.
[0002]
[Prior art]
A mechanical device that performs a motion similar to the motion of a human (living organism) using an electric or magnetic action is called a “robot”. Robots have begun to spread in Japan since the late 1960s, and most of them have been industrial robots (Industrial) such as manipulators and transfer robots for the purpose of automation and unmanned production work in factories.
Robot).
[0003]
In recent years, practical robots have been developed to support life as a human partner, that is, to support human activities in various situations in a living environment and other daily lives. Unlike an industrial robot, such a practical robot has the ability to learn a human being having different personalities individually or a method of adapting to various environments in various aspects of a human living environment. For example, a "pet-type" robot that simulates the body mechanism and operation of a four-legged animal such as a dog or a cat, or a body mechanism and operation of a human or the like that walks upright on two legs is designed as a model. Robotic devices such as “humanoid” or “humanoid” robots are already being put to practical use.
[0004]
These robot devices can perform, for example, various operations with an emphasis on entertainment, as compared to industrial robots, and are therefore sometimes referred to as entertainment robots. In addition, such a robot apparatus is equipped with various external sensors such as a CCD (Charge Coupled Device) camera and a microphone, and recognizes an external situation based on the output of these external sensors, and outputs information from the outside and internal information. Some operate autonomously depending on the state.
[0005]
By the way, in such an entertainment-type robot apparatus, it is necessary to detect the face of a human being during the dialogue or the face of a human who enters the field of view while moving, and perform the dialogue or operation while looking at the human face. If it is possible, it is considered that it is the most desirable from the viewpoint of naturalness as in the case where humans usually perform, and it is considered that the entertainment property as an entertainment robot device can be further improved.
[0006]
For example, Patent Literature 1 below discloses a face recognition device for recognizing a face pattern without being affected by a change in the face pattern due to the inclination and expression of the face and the expression. In the technology described in Patent Literature 1, the face recognition apparatus receives the same face image and outputs a normalized face pattern by performing conversion for removing different deformations on the face image. A plurality of inverse transform sections that can operate independently of each other, a plurality of face patterns output from the inverse transform section, and an identification section that calculates a similarity by comparing with a plurality of reference patterns of a plurality of persons prepared in advance. And a combining unit that specifies a person corresponding to the face image based on the identification result. The transformation removed by the inverse transformation unit consists of a combination of transformation elements such as face displacement, difference in the size of the face reflected in the camera, difference in the direction of the face, up and down, left and right, and difference in the face inclination. A square area cut out as a face area that does not exist is converted into an area in which rotation around an axis parallel to the screen is considered or rotation around an axis perpendicular to the screen is considered. Thereby, even when the face is tilted back and forth or the face direction is different, it can be recognized by performing the inverse conversion by the inverse conversion unit.
[0007]
[Patent Document 1]
JP-A-12-090191
[0008]
[Problems to be solved by the invention]
However, in the technology described in Patent Document 1 described above, it is necessary to provide the number of inverse conversion units corresponding to the number of deformation methods corresponding to the deformation elements assumed in advance, and the size of the device is increased. It is not suitable to be mounted on a device that has only resources. In addition, the size of the face, such as up, down, left, and right, or the size of the inclination, must be set in advance. descend. For example, in Patent Literature 1 described above, in the inverse transform unit, the degree of deformation is set to be small, based on the possibility that the degree of deformation is small and the degree of deformation is small in the preset degree of deformation. Although the person is specified by weighting the output from the inverse transform unit so that the similarity calculated by the identification unit becomes larger, if the robot device falls down when mounted on the robot device, Since the face image to be photographed greatly deviates from the standard face pattern, the recognition rate decreases. On the other hand, if the similarity calculated by the identification unit is weighted higher as the degree of deformation is larger, the original face pattern is deformed to a face closer to another person due to the deformation, and the recognition rate decreases. Would.
[0009]
The present invention has been proposed in view of such conventional circumstances, and a face detection device and a face detection method capable of detecting a non-frontal face in which the face is inclined or in a different direction with high efficiency. It is an object of the present invention to provide a detection method, a program, and a robot device having the same.
[0010]
[Means for Solving the Problems]
In order to achieve the above object, a face detection device according to the present invention includes a face detection device that detects a face of a target object from an input image, wherein the input image and a template image of a predetermined size indicating an average face image are combined. Correlation calculating means for obtaining a correlation, and determining means for determining whether or not a face image is included in the input image based on the correlation, wherein the correlation calculating means determines that the face image is included in the input image by the determining means. When it is determined that the input image is not included, a correlation with the input image is obtained by using the template image obtained by rotating the template image by a predetermined angle around a direction perpendicular to the screen, and the determination unit outputs the input image. When it is determined that a face image is included in the image, a correlation with the next input image is obtained using the template image at the time of the determination.
[0011]
In the present invention, when the determination unit determines that the face image is not included in the input image, the correlation with the input image is calculated again by using the template image obtained by rotating the template image by a predetermined angle. In addition, even when the face image included in the input image is not the front face, the face image can be detected using the template image of the front face, and when it is determined that the face image is included in the input image, Since the correlation with the next input image is obtained using the template image of the rotation angle (including 0 °), the speed of the matching process is increased.
[0012]
Further, it can be mounted on a robot device that operates based on the supplied input information, and enables face detection even in a situation where a front face cannot be photographed, for example, when the robot device falls down.
[0013]
Further, the correlation calculation means may determine the rotation angle based on a posture detection result from the posture detection means for detecting the posture of the robot device provided in the robot device. By estimating the rotation angle of the template image based on the information, the processing speed is further increased as compared with the case where the template image is sequentially rotated to detect a face.
[0014]
A face detection method according to the present invention is a face detection method of a face detection device that detects a face of a target object from an input image, wherein the correlation calculation for obtaining a correlation between the input image and a template image of a predetermined size representing an average face image is performed. And a determining step of determining whether or not the input image includes a face image based on the correlation. In the correlation calculating step, the input image includes the face image in the determining step. If it is determined that the input image is not present, a correlation with the input image is obtained using a template image obtained by rotating the template image by a predetermined angle around a direction perpendicular to the screen, and the input image is determined in the determination step. Is determined to include a face image, a correlation with the next input image is obtained using the template image at the time of the determination.
[0015]
A program according to the present invention causes a computer to execute the above-described face detection processing.
[0016]
A robot apparatus according to the present invention is a robot apparatus that performs an operation based on supplied input information, wherein an imaging unit that captures an image and face detection that detects a face of a target object from the input image supplied from the imaging unit A face calculation unit for obtaining a correlation between the input image and a template image of a predetermined size representing an average face image; and a face image included in the input image based on the correlation. Determination means for determining whether or not the template image is vertical to the screen when the determination means determines that the input image does not include a face image. A correlation with the input image is obtained by using a template image rotated by a predetermined angle around the direction, and when the determination unit determines that the input image includes a face image, Using the template image and obtains the correlation with the next input image.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
(1) First embodiment
The face detection device according to the present embodiment can be mounted on, for example, a robot device described later. Hereinafter, a face detection device mounted on a robot device and suitable for recognizing the faces of surrounding humans will be described. The details of the configuration of the robot device will be described later. The robot apparatus includes a CCD camera, a memory for storing a frame image acquired by the CCD camera, and a face detection module having a face detection task function for detecting a human face image from the frame images stored in the memory. Have. In face detection using a template image, usually, the average face used in template matching is performed using a general one photographed from the front, so, for example, when the image is taken from the front, such as when the image is taken upside down, It is difficult to detect anything other than a face (hereinafter referred to as a non-frontal face). For example, in a robot device, if a CCD camera for acquiring an image is mounted on, for example, the face of the robot device, the CCD camera is captured when a user or the like looks down at the robot device that has fallen and turned on his back. The face image becomes a non-front face in a state opposite to the normal front face, that is, a state in which the front face is rotated by about 180 ° about a direction perpendicular to the screen as an axis. In order to enable face detection even when such a non-frontal face is photographed, in the present embodiment, if face detection is not possible using the frontal face template image, the template image Is rotated by a predetermined angle, and when a face is detected, the rotation angle is stored, and when matching the next input image, matching is performed using the template image rotated at the stored rotation angle. Is what you do.
[0018]
FIG. 1 is a block diagram schematically showing the function of the face detection module according to the first embodiment of the present invention. As shown in FIG. 1, the image detection module 300 uses a frame image obtained as a result of imaging by an imaging unit such as a CCD camera as an input image, and combines the input image with a template image of a predetermined size indicating an average face image. A template matching unit (correlation means) 301 for obtaining a correlation, a determination unit 302 for determining whether or not a face image is included in the input image based on the correlation; A face extraction unit 303 for extracting a face image.
[0019]
The input image supplied to the template matching unit 301 may be an image obtained by converting a frame image into, for example, a plurality of scales and then cutting out the image to a predetermined size in order to match the size of the face in the prepared template image. The template matching unit 301 performs matching on the input image for each scale. As the template image, for example, an average face image composed of an average of about 100 persons can be used. In the present embodiment, the template image is a front face, and the rotation angle R at this time is set to 0 °.
[0020]
The determination unit 302 determines that a face image is included in the input image when the correlation value is equal to or more than a predetermined threshold value in the template matching performed by the template matching unit 301, and the corresponding face region is determined by the face extraction unit 303. Extract.
[0021]
Here, if any of the matching results are less than the predetermined threshold in the determination unit 302, it is determined that the face indicated by the template image is not included in the input image, and the determination result is returned to the template matching unit 301. . When it is determined that the face image is not included in the input image, the matching unit 301 rotates the template image by a predetermined angle around the direction perpendicular to the screen as an axis, and uses the rotated template image after the rotation with respect to the input image. To perform template matching again. In the present embodiment, when no face image is detected, the template image is rotated by 90 ° in a predetermined direction with respect to an axis perpendicular to the screen, that is, rotation angles R = 90 °, 180 °, and 270 °. As described above, a rotated template image obtained by sequentially rotating a template image until a face is detected is used. The rotation direction may be right or left, and the rotation angle for sequentially rotating is not limited to 90 °, but may be set appropriately, for example, 180 °, 45 °, or the like.
[0022]
The determination unit 302 determines whether or not a face image is included based on the matching result between the input image and the template image after the transformation rotated at R = 90 °. Then, as described above, when the correlation value is equal to or larger than the predetermined threshold, it is determined that a face image is included. When it is determined that a face image is included, the result is input to the template matching unit 301, and the template matching unit 301 determines that the rotation angle determined to include the face image (hereinafter, referred to as R = R_found). Is stored. The template matching unit 301 stores a rotation angle when a face image is detected, and performs matching on a next input image using the template image of the rotation angle. Here, if no face image is detected, the image is rotated by 90 °, and matching is performed again using the template image with the rotation angle R = 180 °.
[0023]
The image input to the template matching unit 301 is captured, for example, every 40 msec, and once a face image is detected, the direction of the face is shortly determined until the next input image is input. Using the fact that does not change suddenly, for example, if a face image rotated by 180 ° is detected, it is better to detect the face using the template image of that rotation angle in the next input image as well. This is because the processing efficiency is much higher than when template matching is performed by sequentially rotating the front face again.
[0024]
FIG. 2 is a flowchart illustrating the face detection method according to the present embodiment. As shown in FIG. 2, when an input image is supplied to the template matching unit 301 (step S1), it is determined whether or not a rotation angle R_found exists when a face is detected in a previous input image (step S1). S2). Here, when no face is detected in the previous input image, since the rotation angle R_found does not exist, the rotation angle R of the template image is 0 °, that is, the correlation value is obtained using the template image of the front face. (Step S3). Then, based on the correlation value, the determination unit 302 determines whether the correlation value is equal to or greater than a predetermined threshold (Step S4). In step 4, when the correlation value is less than the predetermined threshold value, it is determined that the face has not been detected, and whether or not the rotation of the template image has been completed, that is, for example, if the rotation of the template image is 90 ° in the predetermined direction, the first It is determined whether or not the template image has been rotated by 270 degrees from the state (step S5). If not, the template image is rotated by a predetermined angle from the current state, that is, 90 degrees in the present embodiment (step S6). ). Then, a series of processing is repeated until it is determined in step S4 that a face is detected, or 270 ° in step S5, that is, until template matching is performed for all rotation angles.
[0025]
On the other hand, in step S2, when the face image is detected in the previous input image and the rotation angle R_found of the template image at that time is stored, the template image having the rotation angle R_found is used, and Matching is performed (step S7). Then, the process proceeds to the face detection determination in step 4 described above.
[0026]
If it is determined in step S4 that the correlation value is equal to or greater than the predetermined threshold value, and it is determined that a face has been detected, the rotation angle R = R_found at that time is stored (step S8), and the process returns to step S1 to return to the next input image. Perform processing.
[0027]
In the present embodiment configured as described above, when a face image is detected in the previous input image, the rotation angle of the template image at that time is stored, and the template image having the rotation angle is used. Then, since the matching is performed on the next input image, the matching processing speeds up. In addition, a template image of a front face is used, for example, matching is performed with a front face having a rotation angle of 0 °. If a face cannot be detected, the template image is rotated by a predetermined angle, for example, 90 °, to be a non-front face image. By repeating the operation of performing face detection using, the non-front face can be detected using only the template image of the front face, and face detection can be performed with extremely high efficiency.
[0028]
Here, in order to reduce the amount of calculation as compared with the case where calculation is performed in all directions when trying to detect a non-frontal face, as described above, a template image sequentially rotated by a predetermined angle is used. Instead of using, for example, matching may be performed only for template images having a predetermined rotation angle, such as only template images having a rotation angle R = 180 °.
[0029]
Further, in the previous matching, if the rotation angle R_found is stored, and if no face image is detected in the next input image, the rotation angle is further rotated by 90 ° in a predetermined direction from R_found. However, the processing may be started again from the rotation angle R = 0 °. Further, in the present embodiment, the rotation is made 90 ° in the predetermined direction. However, after R = 0 °, R = 180 °, or after R = 90 °, R = 270 °. For example, the rotation angle may be appropriately selected.
[0030]
Further, when the rotation angle R_found is stored, as described above, for example, when the input image is input at, for example, an interval of 40 msec, the face can be detected at the rotation angle R_found in the next input image. High in nature. At this time, if the face cannot be detected even if the template image of the rotation angle R_found is used in the next input image, the face is likely to be detected near the rotation angle R_found, so the template with the rotation angle R_found ± α is used. Face detection may be performed using an image.
[0031]
Furthermore, when the face is not detected by the template matching, the template image is rotated. However, the rotated template rotated at, for example, R = 90 °, 180 °, and 270 ° together with the template image of R = 0 ° is used. An image may be prepared in advance.
[0032]
(2) Second embodiment
Next, a second embodiment of the present invention will be described. The second embodiment is characterized in that the posture information is supplied at the time of template matching, the rotation angle of the obtained face image is predicted based on this, and the rotation angle of the template image is selected. This is different from the first embodiment.
[0033]
That is, the robot device is provided with a posture sensor or the like for detecting the posture of the robot device, and posture information from the posture sensor is supplied to the template image matching unit. As described above, for example, when the robot device falls down, if a surrounding person looks into the robot device, an image obtained by the robot device, that is, a face image included in the input image supplied to the face detection module Is expected to be substantially 180 ° rotated from a normal frontal face with an axis perpendicular to the screen as an axis. Therefore, by supplying such posture information to the template matching unit and selecting the rotation angle of the template image, the processing speed is increased.
[0034]
FIG. 3 is a flowchart illustrating a face detection method according to the second embodiment of the present invention. As shown in FIG. 3, when the input image is supplied (step S11), it is determined whether or not the posture information is supplied (step S12). Here, when the posture information is supplied, a rotation angle R_sensor considered to be most likely is selected based on the posture information, and template matching is performed using the template image of the rotation angle R_sensor ( (Step S20) As a result, it is determined whether or not the correlation value is equal to or more than a predetermined threshold (Step S15).
[0035]
On the other hand, if the posture information has not been supplied in step S12, face detection is performed in the same manner as in the above-described first embodiment. That is, it is determined whether or not the rotation angle R_found when a face is detected in the previous input image exists (step S13). If the rotation angle R_found does not exist, the rotation angle R of the template image is R = 0 °, that is, Then, a correlation value is obtained using the template image of the front face (step S14). Then, based on the correlation value, the determination unit 12 determines whether the correlation value is equal to or greater than a predetermined threshold (step S15). When the correlation value is less than the predetermined threshold, it is determined that the face cannot be detected and the template It is determined whether the image has been rotated from the front face R = 0 ° to 270 ° (step S16). If the image has not been rotated, the template image is rotated 90 ° from the current state (step S17). Then, the process returns to step S14 to perform template matching.
[0036]
On the other hand, in step S13, when the face image is detected in the previous input image and the rotation angle R_found of the template image at that time is stored, the template image with the rotation angle R_found is used, and Matching is performed (step S18), and it is determined whether or not the correlation value is equal to or greater than a predetermined threshold (step S15).
[0037]
If it is determined in step S15 that the correlation value is equal to or greater than the predetermined threshold value and it is determined that a face has been detected, the rotation angle R = R_found at that time is stored (step S19), and the process returns to step S1 to return to the next input image. Perform processing.
[0038]
In the present embodiment configured as above, similarly to the first embodiment, when a face is detected in the previous input image, the rotation angle R_found of the template image is stored, and Since matching is performed using the template image of the rotation angle R_found, the processing speed is increased, and when posture information is input, the rotation angle of the template image is predicted based on the posture information, and the predicted rotation angle R_sensor is calculated. Since the matching is performed using the template image, the face can be detected with high efficiency and in a short time in response to a sudden operation such as when the robot device falls down.
[0039]
(3) First application example
Next, a first application example of the present invention in which face detection is performed by applying template matching as described in the first and second embodiments will be described (see Japanese Patent Application No. 2002-163622). Also in this application example, a face detection process is performed by a control unit that controls the entire robot device and an internal memory provided therein, which is provided in the robot device. In the second embodiment, when the value is equal to or more than a predetermined threshold value in the template matching, the corresponding image is extracted as a face image. However, in this application example, the image is determined to be a face image by template image matching. After that, this is set as a face candidate, and further, it is determined whether or not the face is a face by using an identification means such as a support vector machine.
[0040]
FIG. 4 is a block diagram schematically showing functions of a face detection device showing an application example of the present invention. When the processing contents of the control unit relating to the face detection task function in this application example are functionally classified, as shown in FIG. 4, the input image scale conversion unit 360, the window cutout unit 361, the template matching unit 362, and the preprocessing unit 363 , A pattern identification unit 364 and an overlap determination unit 365.
[0041]
The input image scale conversion unit 360 reads a frame image based on an image signal S1A from a CCD camera provided on the head or the like of the robot device from an internal memory, and converts the frame image into a plurality of scale images having different reduction rates. Convert. In the case of this application example, a frame image composed of 25344 (= 176 × 144) pixels is sequentially reduced by 0.8 times, and is reduced in 5 steps (1.0 times, 0.8 times, 0.64 times). , 0.51 times, 0.41 times) (hereinafter referred to as first to fifth scale images).
[0042]
Subsequently, the window cutout unit 361 sequentially assigns appropriate pixels (for example, two pixels) to the first scale image from the first to fifth scale images, starting from the upper left of the image to the lower right of the image. A rectangular area of 400 (= 20 × 20) pixels (hereinafter, this area is referred to as a window image) is sequentially cut out while scanning while shifting to the right or downward.
[0043]
At this time, the window cutout unit 361 sends the first window image among the plurality of window images cut out from the first scale image to the template matching unit 362 at the subsequent stage.
[0044]
The template matching unit 362 performs an arithmetic process such as a normalized correlation method or an error square method on the top window image obtained from the window cutout unit 361 to convert the window image into a function curve having a peak value, and then converts the function curve into a function curve having a peak value. A sufficiently low threshold value is set for the curve so that the recognition performance does not deteriorate, and it is determined whether or not the window image is a face image based on the threshold value. At this time, as described in the first and second embodiments, if no face is detected, the template image is rotated by a predetermined angle, template matching is performed again, and the face is detected in the previous input image. In this case, the rotation angle R_found is stored at that time, and the matching process is performed using the template image of the rotation angle R_found.
[0045]
Also in the case of this application example, the template matching unit 362 sets an average face image composed of an average of, for example, about 100 persons as a template image and sets a threshold value as a criterion for determining whether the face image is the face image. It has been made. Thus, the window image can be roughly matched with an average face image serving as a template image.
[0046]
In this way, the template matching unit 362 performs matching using the template image on the window image obtained from the window cutout unit 361, and when it is determined that the window image is a face image, uses the window image as a score image in the subsequent stage. If it is determined that the image is not a face image, the window image is transmitted to the subsequent overlap determination unit 365 as it is.
[0047]
At this point, the window image (score image) determined to be a face image actually contains a large number of misjudged images other than the face image, but in everyday scenes, the background image similar to the face is similar to the face image. Is rarely present, so that it is determined that most window images are not face images, which is extremely effective.
[0048]
Actually, the arithmetic processing such as the normalized correlation method and the error square method described above requires only about one tenth to one hundredth of the amount of operation when compared with the arithmetic processing in the preprocessing unit and the pattern identification unit in the subsequent stage. From experiments, it has been confirmed at this stage that 80% or more of the image other than the face image can be eliminated, which indicates that the control unit as a whole is greatly reduced in the amount of calculation.
[0049]
The pre-processing unit 363 removes, from the rectangular score image, four corner regions corresponding to background portions that are irrelevant to the human face image, from the score image obtained from the template matching unit 362, Using a mask obtained by cutting out the four corners, 360 pixels are extracted from a score image having 400 (= 20 × 20) pixels.
[0050]
Then, the pre-processing unit 363 forms a plane based on an optimal part as a face image in the extracted 360-pixel score image in order to eliminate the tilt condition of the subject represented by shading by illumination at the time of imaging. In this case, the gray value of the 360 pixels is corrected using a calculation method based on, for example, a root mean square (RSM) error.
[0051]
Subsequently, the preprocessing unit 363 performs a histogram smoothing process on the result of enhancing the contrast of the score image for the 360 pixels so that the result can be detected regardless of the gain of the CCD camera 50 or the intensity of illumination.
[0052]
Next, the preprocessing unit 363 performs a Gabor Filtering process to convert the score image for the 360 pixels into a vector, and further converts the obtained vector group into one pattern vector.
[0053]
The pattern identification unit 364 obtains a provisional identification function using learning data, ie, teacher data, supplied from the outside, and then uses the identification function for 360 pixels obtained as a pattern vector from the preprocessing unit 363. The face is detected by experimenting with the score image. Then, the detection result is output as face data. Further, the detection failure is added to the learning data as non-face data, and learning is performed again.
[0054]
Regarding the face recognition in the pattern recognition unit 364, for example, the support vector machine (Support Vector Machine: SVM) which is considered to have the highest learning generalization ability in the field of pattern recognition is used to determine whether or not the face is applicable. Can be.
[0055]
Regarding the support vector machine itself, for example, Sholkof et al. (B. Sholkof, C. Burges, A. Smola, Advance in Kernel Support Vector learning, The MIT Press, 1999.). From the results of preliminary experiments conducted by the present applicant, it has been found that the face recognition method using the support vector machine shows better results than methods using principal component analysis (PCA) or a neural network.
[0056]
Then, the pattern identification unit 364 determines whether or not face data exists in the score image with respect to the pattern vector based on the score image provided from the preprocessing unit 363. The upper left position (coordinates) and its size (the number of pixels in the vertical and horizontal directions) in the region, and the reduction rate of the scale image from which the score image is cut out with respect to the frame image (that is, the corresponding stage among the above five stages) A list is created and stored in the internal memory as list data.
[0057]
Thereafter, the pattern identification unit 364 notifies the window cutout unit 361 that the face detection of the first window image in the first scale image has been completed, so that the window cutout unit 361 outputs the first cutout image. The next window image of the one scale image is sent to the template matching unit 362.
[0058]
Then, the template matching unit 362 sets a score image only when the window image matches the template image, stores the rotation angle R_found of the template image at that time, and sends the score image to the preprocessing unit 363. The preprocessing unit 363 converts the score image into a pattern vector and sends the pattern vector to the pattern identification unit 364. The pattern identification unit 364 generates list data based on face data obtained as an identification result from the pattern vector, and stores the list data in the internal memory.
[0059]
As described above, by performing the processes of the template matching unit 362, the preprocessing unit 363, and the pattern identification unit 364 on all the window images cut out from the first scale image in the window cutout unit 361 in the scanning order, A plurality of score images including a face image existing in the imaging result can be detected from one scale image.
[0060]
Thereafter, the pattern identification unit 364 notifies the input image scale conversion unit 360 that the face detection of the first scale image has been completed, so that the input image scale conversion unit 360 sends the second scale image To the window cutout unit 361.
[0061]
The second scale image is also subjected to the same processing as the above-described first scale image, and after detecting a plurality of score images including face images present in the imaging result from the second scale image, the third scale image is obtained. Similar processing is sequentially performed for the fifth to fifth scale images. The rotation angle R_found stored in the template matching unit 362 can be used when matching the next input image with the same scale image. Further, as in the above-described second embodiment, matching may be performed using a template image of the rotation angle R_sensor estimated from the posture information.
[0062]
Thus, for the first to fifth scale images obtained by reducing the frame image, which is the captured image, in five stages, the pattern identification unit 364 detects a plurality of score images including the face images existing in the captured image, and then detects the score image. The resulting list data including the rotation angle R_found is stored in the internal memory. In this case, depending on the size of the face image in the original frame image, a score image may not be obtained at all, but if a score image is obtained with at least one or more (or two or three or more) scale images, , The face detection process is continued.
[0063]
Here, as for a plurality of score images including a face image in each scale image, since the scan in the window cutout unit 361 was performed even every two pixels, a high correlation was found between the region where the face actually exists and the region in the vicinity thereof. Therefore, adjacent score images include image regions that overlap each other.
[0064]
Then, the subsequent overlap determination unit 365 reads a plurality of list data for each of the first to fifth scale images stored in the internal memory, compares the score images included in each of the list data, and It is determined whether or not a region overlapping with is included.
[0065]
The overlap determining unit 365 removes a region where score images overlap with each other based on the determination result, so that in each scale image, a single image region in which a plurality of score images are finally collected without overlapping each other The image area is newly stored in the internal memory as face determination data.
[0066]
When the template matching unit 62 determines that the image is not a face image, the overlap determination unit 365 does nothing and does not store the image in the internal memory.
[0067]
Next, an operation in this application example will be described. In the above configuration, in this robot apparatus, after converting a frame image captured by a CCD camera into a plurality of scale images having different reduction ratios, a window image of a predetermined size is shifted by a predetermined pixel from each of the scale images. And cut out one by one while scanning.
[0068]
For this window image, by using a template image representing an average face image, matching is performed, and it is roughly determined whether or not the image is a face image. The amount of calculation and the time required for the subsequent face detection processing can be reduced accordingly. When it is determined that the face image is not a face image, matching is performed using a template image obtained by sequentially rotating the template image at a predetermined rotation angle, so that even a non-frontal face can be detected.
[0069]
Subsequently, with respect to the window image (that is, the score image) determined to be a face image by the template matching, four corner portions of the rectangular area of the score image are removed, and then, gradation correction and subsequent smoothing of contrast enhancement are performed. Conversion into one pattern vector.
[0070]
Then, face data or non-face data is determined for the pattern vector by performing face detection within the original score image, and the position (coordinates) and size (number of pixels) of the image area of the score image in which the face data exists are determined. ) And the reduction ratio of the scale image from which the score image is cut out to the frame image are generated.
[0071]
After generating the list data for all the score images for each scale image in this manner, by comparing the score images included in each of the list data, and obtaining the face determination data from which the mutually overlapping regions have been removed. The face image can be detected from the original frame image.
[0072]
Among these face detection task processes, the template matching process is particularly similar to the block matching method used in image compression and the like, in addition to being easily mountable on an arithmetic unit having a relatively simple configuration. There are many types of hardware that perform high-speed processing using a CPU. Therefore, the speed of the template matching process can be further increased.
[0073]
According to the configuration described above, in this robot apparatus, at the time of the face detection task process of detecting a face image with respect to a frame image captured by a CCD camera, each of the scale images obtained by reducing the frame image at a different reduction rate is selected. After a window image of a predetermined size is cut out one by one while scanning so as to be shifted by a predetermined pixel, it is roughly determined whether or not the image is a face image by performing matching using a template image representing an average face image. In this way, by removing the window image that is clearly not a face image, the amount of calculation and the time required for various face detection processes for the score image determined to be the face image by the template matching are reduced by that amount. The processing load on the main control unit 381 that controls the entire robot apparatus can be reduced. Rukoto can, thus with a robot apparatus can be realized which can significantly enhancing real-time, for matching with the template image is sequentially rotated, it can be detected without missing even a non-frontal face.
[0074]
(4) Second application example
In a method for extracting a face candidate by performing template matching (first step), determining a face area from the face candidates by using SVM or the like (second step), and detecting the face area, the first step In, since face candidates are determined simply at the price of the normalized correlation value, in order to reduce oversight of face candidates, a method of increasing the threshold value or a method of reducing thinning can be used. If it is lowered, the amount of calculation increases, which may not be preferable in an environment where resources such as a robot device are limited. On the other hand, when the threshold value is increased, the number of candidate images for face determination in the second step is reduced, so that the amount of calculation can be reduced. However, the image that is originally a face is also removed from the candidate image, and the face image is overlooked. May be lost. Therefore, a second application example of the present invention suitable for such a case will be described.
[0075]
When a face area (face image) having the same size as the template image exists in the input image, if the face image is correlated with the template image, the correlation value becomes largest near the template image size. Therefore, when narrowing down face area candidates, an algorithm that performs local narrowing down is used to reduce face candidate images without overlooking an image that is originally a face. The amount of calculations to be performed can be reduced. Specifically, a candidate face area is extracted based on a local maximum value of a correlation value in a matching result which is a set of correlation values obtained by performing a normalized correlation between an input image and a template image of an average face of a predetermined size. To
[0076]
That is, as shown in FIG. 5A, for example, the size in the vertical direction (length of the side in the y-axis direction, hereinafter referred to as height) hei_s × the size in the horizontal direction (cut out from an arbitrary scale image) As for the window image (input image after scale conversion) W2 of weid_s, for example, as shown in FIG. 5B, a first image having a height hei_t × width wid_s is shown. Image T2 which is an average face image having the template image size of 1 Is used to scan the window image W2, and move the template image T2 while shifting it by a predetermined pixel (for example, one pixel). 1 A matching result, which is a set of correlation values between the input image and the input image, is obtained. This matching result is a template image T2 1 , The correlation values are two-dimensionally arranged with the movement of, and as shown in FIG. 6, a template matching result image R2 of height hei_r × width wid_r representing the correlation value is obtained. Here, the height her_r of the template image rate matching result image R2 is hei_s- (hei_t + 1), and the width wid_s of the image R2 is wid_s- (wid_t + 1).
[0077]
Next, the template image rate matching result image R2 is divided into a predetermined size, for example, the same size as the first template image size, and the correlation value of each divided region partitioned into the first template image size is calculated. The point (position) having the maximum value is obtained, and among the points indicating the maximum value obtained from each of the divided areas, those having a predetermined threshold or more are extracted as face candidates.
[0078]
That is, when the normalized correlation is performed using the template image of the average face, it is not necessarily guaranteed that the correlation value of the face image is higher than that of the arbitrary pattern, but the face image having the same size as the template image is not necessarily obtained. Is present, since the correlation value takes the maximum value at a size near the template image size, the correlation value becomes the maximum value in the divided area, and a point equal to or larger than a predetermined threshold is extracted as a face candidate. The face candidates can be narrowed down more effectively as compared with the case where only those whose correlation values are equal to or greater than a predetermined threshold value are extracted as face candidates as a result of template matching.
[0079]
Here, in the second application example, a template image of an arbitrary size can be used, but by switching the template image size to be used and selecting the template image size, the Compared to the case where calculations are performed for all template image sizes that can be prepared, the amount of calculations can be reduced and the efficiency can be increased. For example, once a face is detected, the next time a face is detected, the template image size can be used. Further, for example, by using a distance sensor provided in the robot device and recognizing a distance between the target object included in the input image based on distance information from the distance sensor, the size of the face area of the target object can be improved. For example, it is possible to provide a target distance switching unit that predicts the size of the template image and selects the template image size, and the template image size can be switched according to the purpose.
[0080]
For this window image, matching is performed using a template image representing an average face image to generate a matching result image that is a set of correlation values with the template image. In this way, matching result images are generated for all the window images for each scale image in the order of scanning. Hereinafter, a process of detecting a face candidate from a matching result image will be described in detail.
[0081]
FIG. 7 is a flowchart showing each processing step of detecting pixels that are face candidates from the template matching result image R2 in the template matching unit. As shown in FIG. 7, first, when the template matching result image R2 is input, the matching result image R2 is divided into template image sizes, and one of the divided regions, for example, 0 ≦ x ≦ wid_t−1, 0 ≦ At y ≦ hei_t−1, a point (coordinate) having the highest correlation value is extracted (step S21). Hereinafter, a region obtained by dividing the matching result image R2 into the template image size is referred to as a divided region rn, and a point (coordinate) having the largest correlation value in the divided region rn is referred to as local_max (x, y). Here, the pixel having the highest correlation value is extracted in each of the divided regions. In this application example, a case will be described where the divided regions divided in the matching result image are sequentially processed line by line from left to right. .
[0082]
Next, it is determined whether or not local_max (x, y) is larger than a predetermined threshold (th1) (step S22). If it is larger, it is added as a face candidate (step S23). The face detection device in this application example has means for selecting a template image size of a face size assumed to be included in the input image along with the scale, but there are a plurality of types of template image sizes different in size. When the matching result image R2 is calculated for each of a plurality of types of template image sizes and face candidates are extracted, the same point may be extracted. Therefore, if there is the same point as the face candidate in step S23, that is, if the face candidate has already been extracted when the face candidate is extracted with a different template image size, this point is not added.
[0083]
Next, in the input image area of the template image size corresponding to the point extracted as the face candidate, the occupancy of the skin color pixels included in this image area is determined. In this application example, the skin color table 100 is referred to when calculating the occupancy of the skin color pixels. Then, it is determined whether or not the skin color pixel occupancy is greater than a predetermined threshold (th2) (step SP14). If it is larger, peripheral points around this local_max (x, y), for example, eight points in the upper, lower, left and right directions are added as face candidates (step S25). Here, similarly to step S23, if these eight neighboring points have already been extracted as face candidates, they are not added to the candidates.
[0084]
If local_max (x, y) is less than the threshold th1 in step S22, if the skin color pixel occupancy in the input image corresponding to local_max (x, y) is less than the threshold th2 in step S24, and if the face is After the addition of the candidates is completed, the process proceeds to step S26, and the process proceeds to the next divided region to extract the next face candidate, and the process proceeds.
[0085]
First, in the matching result image R2, the process moves to the next divided region shifted by the template image size in the x direction, that is, by the width_t (step S26). Next, in the divided region of x coordinate (x + wid_t) shifted by wid_t, when the x coordinate is larger than the width (side in the x direction) wid_r of the matching result image, it is determined that the divided region is not included in the matching result image. Then, the processing moves to the next line, and the processing moves to the next divided area where 0 ≦ x ≦ wid_t−1, which is shifted by the template image size in the y direction, that is, hei_t (step S28). Next, it is determined whether or not the y coordinate of the divided area is greater than the height (side in the y direction) hei_r of the matching result image (step S29). If it is larger, the correlation value of all the divided areas in the matching result image is determined. Is determined, and the process is terminated.
[0086]
On the other hand, if it is determined in steps S27 and S28 that the divided area is included in the matching result image, the process returns to step S21, and the point having the highest correlation value in the divided area is extracted.
[0087]
As described above, since the maximum value of the correlation value in the divided area obtained by dividing the matching result image R2 into the template image size is obtained, when shifting to the adjacent divided area in step S26, it is assumed that the position is shifted by wd_t in the x direction. However, the matching result image R2 can be divided into any size as long as the size is equal to or smaller than the template image size. At this time, assuming that the width (side in the x direction) width_step and the height (y direction) hei_step of the size of the image to be divided are wi_step in the x direction or hei_step in the y direction in step S26 and step S28, respectively. Thereby, it is possible to proceed to the next divided area.
[0088]
FIG. 8 is a diagram illustrating points detected as face candidates from the window image W2 by the template matching unit. In FIG. 8, the points shown in white are points extracted as face candidates from the matching result image R2 shown in FIG. As a comparison, FIG. 9 is a diagram illustrating an example in which all points that are equal to or larger than a threshold are extracted as face candidates in the matching result image R2. Comparing with the diagram shown in FIG. 9, it can be seen that in this application example, the number of points extracted as face candidates by the template matching unit is significantly reduced. As a result, the amount of calculation in the subsequent processing can be drastically reduced. Similarly to the first embodiment, when no face candidate is extracted in the template image matching unit, or when the number of points to be extracted as a face candidate is less than a predetermined threshold value, FIG. As shown, for example, the template image T2 1 180 ° rotated template image T2 2 The matching can be performed again by rotating the template image as appropriate. Further, similarly to the second embodiment, the rotation angle of the template image may be estimated from the posture information, and matching may be performed using the template image having the estimated rotation angle.
[0089]
In this way, for the window image, when using the template image representing the average face image to perform matching to determine whether the image is a rough face image, the template matching result image is partitioned into a predetermined size, By extracting the maximum value of the correlation value as a face candidate and removing a window image that is not clearly a face image, the amount of calculation and the time required for the subsequent face detection processing can be reduced without overlooking an area that is originally a face. Thus, it is possible to realize a face detection device with much improved real-time properties and a robot device equipped with the same.
[0090]
In addition, the face detection accuracy can be improved by setting the face search range around the point where the correlation value becomes the maximum as well as around the point. Furthermore, only when the skin color occupancy or the face color occupancy is equal to or greater than a predetermined threshold, by setting the face search range, the number of face candidates can be reduced while maintaining face detection accuracy, and the amount of calculation in the subsequent stage can be reduced. . Furthermore, the amount of calculation can be further reduced by appropriately switching the size of the template image.
[0091]
(5) Robot device configuration
Next, a robot apparatus having a face detection module as in the first and second embodiments will be described. First, the configuration of the robot device will be described.
[0092]
As shown in FIG. 10, the robot apparatus 1 according to the present embodiment is an autonomous robot apparatus that performs an autonomous action according to the surrounding environment (or an external stimulus) or an internal state, and imitates an animal such as a “dog”. A leg-shaped unit 3A, 3B, 3C, 3D is connected to the front, rear, left and right of the body unit 2, respectively, and a head unit 4 is connected to the front end of the body unit 2. It is configured.
[0093]
As shown in FIG. 11, the body unit 2 includes a CPU (Central Processing Unit) 10, a DRAM (Dynamic Random Access Memory) 11, a flash ROM (Read Only Memory) 12, a PC (Personal Computer) card interface circuit 13, and the like. A control unit 16 formed by connecting the signal processing circuits 14 via an internal bus 15 and a battery 17 as a power source of the robot device 1 are housed therein. Further, the body unit 2 houses an angular velocity sensor 18 and an acceleration sensor 19 for detecting the acceleration of the direction and the movement of the robot apparatus 1. Further, in the body unit 2, a speaker 20 for outputting a sound such as a cry or a melody is arranged at a predetermined position as shown in FIG. The tail 5 of the body unit 2 is provided with an operation switch 21 as a detection mechanism for detecting an operation input from a user. The operation switch 21 is a switch that can detect the type of operation performed by the user, and the robot device 1 is, for example, “praised” or “reprimanded” according to the type of operation detected by the operation switch 21. Recognize.
[0094]
The head unit 4 corresponds to an “eye” of the robot apparatus 1, and is located in front of a CCD (Charge Coupled Device) camera 22 for capturing an external situation or the color, shape, movement, or the like of an object. A distance sensor 23 for measuring the distance to the target, a microphone 24 for collecting external sounds corresponding to the left and right "ears" of the robot apparatus 1, and, for example, an LED (Light Emitting Diode) are provided. The light emitting unit 25 and the like are arranged at predetermined positions as shown in FIG. However, the light emitting unit 25 is referred to as an LED 25 as necessary in the description of the configuration and the like. Although not shown in FIG. 10, a head switch 26 is provided inside the head unit 4 as a detection mechanism for indirectly detecting contact of the user with the head unit 4. The head switch 26 is, for example, a switch that can detect the tilt direction when the head is moved by a user's contact, and the robot apparatus 1 detects the tilt direction of the head detected by the head switch 26. Depending on, it recognizes whether it was "praised" or "reproached."
[0095]
Actuators 28 for the number of degrees of freedom are provided at joints of the leg units 3A to 3D, connecting portions of the leg units 3A to 3D and the body unit 2, and connecting portions of the head unit 4 and the body unit 2. 1 ~ 28 n And potentiometer 29 1 ~ 29 n Are arranged respectively. Actuator 28 1 ~ 28 n Has, for example, a servomotor. By driving the servomotor, the leg units 3A to 3D are controlled to transition to a target posture or operation. At positions corresponding to the "paws" at the tips of the leg units 3A to 3D, paws switches 27A to 27D are provided as detection mechanisms mainly for detecting contact from the user, and can detect contact and the like by the user. It has become.
[0096]
Although not shown here, the robot apparatus 1 also includes a light emitting unit for indicating an operation state (operation mode) different from the internal state of the robot apparatus 1, a charging operation, a starting operation, a start / stop operation, and the like. And a status lamp indicating the state of the internal power supply may be appropriately provided at an appropriate place.
[0097]
Then, in the robot apparatus 1, various switches such as the operation switch 21, the head switch 26, and the pad switch 27, various sensors such as the angular velocity sensor 18, the acceleration sensor 19, and the distance sensor 23, the speaker 20, the microphone 24, and the light emission Part 25, each actuator 28 1 ~ 28 n , Each potentiometer 29 1 ~ 29 n Are the corresponding hubs 30 1 ~ 30 n Is connected to the signal processing circuit 14 of the control unit 16 via the. On the other hand, the CCD camera 22 and the battery 17 are directly connected to the signal processing circuit 14, respectively.
[0098]
The signal processing circuit 14 sequentially receives the switch data supplied from the various switches described above, the sensor data supplied from the various sensors, the image data, and the audio data, and stores them at predetermined positions in the DRAM 11 via the internal bus 15. Store sequentially. Further, the signal processing circuit 14 sequentially takes in the remaining battery level data indicating the remaining battery level supplied from the battery 17 and stores the data in a predetermined position in the DRAM 11.
[0099]
The switch data, sensor data, image data, audio data, and remaining battery data stored in the DRAM 11 in this manner are used when the CPU 10 controls the operation of the robot device 1.
[0100]
The CPU 10 reads the control program stored in the flash ROM 12 and stores the control program in the DRAM 11 at the initial stage when the power of the robot apparatus 1 is turned on. Alternatively, the CPU 10 reads out a control program stored in a semiconductor memory device, for example, a memory card 31 mounted on a PC card slot of the body unit 2 not shown in FIG. Store.
[0101]
The CPU 10, based on the sensor data, image data, audio data, and remaining battery data sequentially stored in the DRAM 11 from the signal processing circuit 14 as described above, the situation of itself and the surroundings, and instructions and actions from the user. Is determined.
[0102]
Further, the CPU 10 determines the subsequent action based on the result of the determination and the control program stored in the DRAM 11, and determines the necessary actuator 28 based on the determined result. 1 ~ 28 n , The head unit 4 is swung up and down, left and right, and the leg units 3A to 3D are driven to walk.
[0103]
Further, at this time, the CPU 10 generates audio data as necessary, and supplies the generated audio data to the speaker 20 as an audio signal via the signal processing circuit 14 so that the audio based on the audio signal is output to the outside. A signal for instructing lighting and extinguishing of the LED in the light emitting unit 25 is generated, and the light emitting unit 25 is turned on and off.
[0104]
In this way, the robot apparatus 1 can autonomously act according to the situation of itself and the surroundings, and instructions and actions from the user.
[0105]
(6) Software configuration of control program
Here, the software configuration of the above-described control program in the robot device 1 is as shown in FIG. In FIG. 12, the device driver layer 40 is located at the lowest layer of the control program, and includes a device driver set 41 including a plurality of device drivers. In this case, each device driver is an object permitted to directly access hardware used in a normal computer, such as the CCD camera 22 (FIG. 11) and a timer, and receives an interrupt from the corresponding hardware. Perform processing.
[0106]
The robotic server object 42 is located at the lowest layer of the device driver layer 40, and includes, for example, the various sensors and actuators 28 described above. 1 ~ 28 n A virtual robot 43, which is a group of software that provides an interface for accessing hardware such as a virtual machine, a power manager 44, which is a group of software that manages switching of power supplies, and software that manages various other device drivers It comprises a group of device driver managers 45 and a designed robot 46 which is a group of software for managing the mechanism of the robot apparatus 1.
[0107]
The manager object 47 includes an object manager 48 and a service manager 49. The object manager 48 is a software group that manages activation and termination of each software group included in the robotic server object 42, the middleware layer 50, and the application layer 51, and the service manager 49 This is a group of software that manages the connection between the objects based on the connection information between the objects described in the connection file stored in the memory card 31 (FIG. 11).
[0108]
The middleware layer 50 is located on the upper layer of the robotic server object 42 and is composed of a software group that provides basic functions of the robot device 1 such as image processing and sound processing. Further, the application layer 51 is located on the upper layer of the middleware layer 50, and determines the action of the robot device 1 based on the processing result processed by each software group constituting the middleware layer 50. It consists of a group of software for performing
[0109]
FIG. 13 shows specific software configurations of the middleware layer 50 and the application layer 51.
[0110]
As shown in FIG. 13, the middle wear layer 50 includes noise detection, temperature detection, brightness detection, scale recognition, distance detection, posture detection, contact detection, operation input detection, and motion detection. A recognition system 71 having signal processing modules 60 to 69 for detection and color recognition and an input semantics converter module 70, and an output semantics converter module 79 and posture management, tracking, motion reproduction, walking, and fall recovery And an output system 80 having respective signal processing modules 72 to 78 for lighting, LED lighting, and sound reproduction.
[0111]
Each of the signal processing modules 60 to 69 of the recognition system 71 converts each of the sensor data, image data, and sound data read from the DRAM 11 (FIG. 11) by the virtual robot 43 of the robotic server object 42. The input semantics converter module 70 takes in the data, performs predetermined processing based on the data, and provides a processing result to the input semantics converter module 70. Here, for example, the virtual robot 43 is configured as a part that exchanges or converts signals according to a predetermined communication protocol.
[0112]
The input semantics converter module 70 detects “noisy”, “hot”, “bright”, “sounds of domiso are heard”, and “obstacle” based on the processing results given from each of the signal processing modules 60 to 69. The situation of self and surroundings, such as "has detected", "detected a fall", "reprimanded", "praised", "detected a moving object", or "detected a ball", or a command from the user And the action is recognized, and the recognition result is output to the application layer 51 (FIG. 11).
[0113]
As shown in FIG. 14, the application layer 51 is composed of five modules: a behavior model library 90, a behavior switching module 91, a learning module 92, an emotion model 93, and an instinct model 94.
[0114]
As shown in FIG. 15, the behavior model library 90 includes “when the remaining battery power is low”, “returns from the fall”, “when avoids obstacles”, “when expressing emotions”, Are respectively associated with several pre-selected condition items such as "if the 1 ~ 90 n Is provided.
[0115]
And these behavior models 90 1 ~ 90 n Are stored in the emotion model 93 as described later, as necessary, when a recognition result is provided from the input semantics converter module 71 or when a certain time has elapsed since the last recognition result was provided. The subsequent action is determined with reference to the corresponding emotion parameter value and the corresponding desire parameter value held in the instinct model 94, and the determination result is output to the action switching module 91.
[0116]
In this embodiment, each behavior model 90 1 ~ 90 n Is a one node (state) NODE as shown in FIG. 0 ~ NODE n From any other node NODE 0 ~ NODE n To each node NODE 0 ~ NODE n Arc ARC connecting between 1 ~ ARC n Transition probability P set for 1 ~ P n An algorithm called finite stochastic automaton, which determines stochastically based on, is used.
[0117]
Specifically, each behavior model 90 1 ~ 90 n Are their own behavior models 90 1 ~ 90 n NODE that forms 0 ~ NODE n Corresponding to each of these nodes NODE 0 ~ NODE n Each has a state transition table 100 as shown in FIG.
[0118]
In this state transition table 100, the node NODE 0 ~ NODE n , Input events (recognition results) as transition conditions are listed in order of priority in the column of “input event name”, and further conditions for the transition condition are described in corresponding rows in the columns of “data name” and “data range”. Have been.
[0119]
Therefore, the node NODE represented by the state transition table 100 of FIG. 100 In the above, when the recognition result of “detection of ball (BALL)” is given, the “size” of the ball given together with the recognition result is in the range of “0 to 1000”, When a recognition result of “obstacle detected (OBSTACLE)” is given, the other node that the “distance” to the obstacle given together with the recognition result is in the range of “0 to 100”. This is the condition for transitioning to.
[0120]
Also, this node NODE 100 Then, even if there is no input of the recognition result, the behavior model 90 1 ~ 90 n Of the parameter values of each emotion and each desire held in the emotion model 93 and the instinct model 94 that are periodically referred to by the user, “joy”, “surprise” or “surprise” held in the emotion model 93 When any of the parameter values of “Sadness” is in the range of “50 to 100”, it is possible to transition to another node.
[0121]
In the state transition table 100, the row of “transition destination node” in the column of “transition probability to another node” indicates that node NODE. 0 ~ NODE n The node names that can be transitioned from are listed, and other nodes NODE that can transition when all the conditions described in the columns of “input event name”, “data value”, and “data range” are met 0 ~ NODE n To the corresponding node in the column “Transition probability to another node”, and the node NODE 0 ~ NODE n The action to be output when transitioning to is described in the row of “output action” in the column of “transition probability to another node”. Note that the sum of the probabilities of each row in the column of “transition probability to another node” is 100 [%].
[0122]
Therefore, the node NODE represented by the state transition table 100 of FIG. 100 Then, for example, when "the ball is detected (BALL)" and a recognition result indicating that the "SIZE (size)" of the ball is in the range of "0 to 1000" is given, "30 [%]" With the probability of "node NODE 120 (Node 120) ", and the action of" ACTION1 "is output at that time.
[0123]
Each behavior model 90 1 ~ 90 n Is a node NODE described as such a state transition table 100. 0 ~ NODE n Are connected to each other, and when a recognition result is given from the input semantics converter module 71 or the like, the corresponding node NODE 0 ~ NODE n The next action is determined stochastically using the state transition table, and the determination result is output to the action switching module 91.
[0124]
The behavior switching module 91 shown in FIG. 1 ~ 90 n Out of the actions respectively output from the action models 90 having a predetermined high priority. 1 ~ 90 n And outputs a command to execute the action (hereinafter referred to as an action command) to the output semantics converter module 79 of the middleware layer 50. In this embodiment, the behavior model 90 shown at the bottom in FIG. 1 ~ 90 n The higher the priority, the higher the priority.
[0125]
Further, the action switching module 91 notifies the learning module 92, the emotion model 93, and the instinct model 94 that the action has been completed, based on the action completion information provided from the output semantics converter module 79 after the action is completed.
[0126]
On the other hand, the learning module 92 inputs, from among the recognition results given from the input semantics converter module 71, the recognition result of the instruction received from the user, such as “reprimanded” or “praised”. Then, based on the recognition result and the notification from the action switching module 91, the learning module 92 lowers the probability of occurrence of the action when "scored" and increases the probability of occurrence of the action when "praised". Corresponding to the corresponding behavior model 90 in the behavior model library 90. 1 ~ 90 n Change the corresponding transition probability of.
[0127]
On the other hand, the emotion model 93 is a sum of “joy”, “sadness”, “anger”, “surprise”, “disgust”, and “fear”. For each of the six emotions, a parameter indicating the intensity of the emotion is stored. Then, the emotion model 93 converts the parameter values of each of these emotions into a specific recognition result such as “scolded” and “praised” given from the input semantics converter module 71 and the elapsed time and action switching module 91. It is updated periodically based on the notification from.
[0128]
Specifically, the emotion model 93 is calculated by a predetermined arithmetic expression based on the recognition result given from the input semantics converter module 71, the behavior of the robot device 1 at that time, the elapsed time since the last update, and the like.変 動 E [t] is the variation amount of the emotion at that time, E [t] is the current parameter value of the emotion, and k is a coefficient representing the sensitivity of the emotion. e Then, the parameter value E [t + 1] of the emotion in the next cycle is calculated by Expression (1), and the parameter value of the emotion is updated by replacing the parameter value E [t] with the current parameter value E [t] of the emotion. . The emotion model 73 updates the parameter values of all emotions in the same manner.
[0129]
(Equation 1)
Figure 2004133637
[0130]
The degree to which each recognition result and the notification from the output semantics converter module 79 affect the variation ΔE [t] of the parameter value of each emotion is determined in advance, for example, “hit”. The recognition result has a great influence on the variation ΔE [t] of the parameter value of the emotion of “anger”, and the recognition result such as “stroke” indicates the variation ΔE [t] of the parameter value of the emotion of “joy”. Has become a major influence.
[0131]
Here, the notification from the output semantics converter module 79 is so-called action feedback information (action completion information), information on the appearance result of the action, and the emotion model 93 changes the emotion by such information. Let it. This is, for example, a behavior such as "barking" that lowers the emotional level of anger. Note that the notification from the output semantics converter module 79 is also input to the above-described learning module 92, and the learning module 92 generates an action model 90 based on the notification. 1 ~ 90 n Change the corresponding transition probability of.
[0132]
The feedback of the action result may be made by the output of the action switching module 91 (the action to which the emotion is added).
[0133]
On the other hand, the instinct model 94 provides four independent desires of “exercise”, “affection”, “appetite”, and “curiosity” for each of these desires. It holds a parameter indicating the strength of the desire. Then, the instinct model 94 periodically updates these desire parameter values based on the recognition result given from the input semantics converter module 71, the elapsed time, the notification from the action switching module 91, and the like.
[0134]
Specifically, the instinct model 94 uses a predetermined arithmetic expression based on the recognition result, the elapsed time, the notification from the output semantics converter module 68, and the like for “exercise desire”, “affection desire”, and “curiosity”. ΔI [k] is the variation of the desire at that time, I [k] is the current parameter value of the desire, and a coefficient k representing the sensitivity of the desire. i The parameter value I [k + 1] of the desire in the next cycle is calculated using the equation (2) in a predetermined cycle, and the calculation result is replaced with the current parameter value I [k] of the desire. Update the parameter value of desire. Similarly, the instinct model 94 updates the parameter values of each desire except “appetite”.
[0135]
(Equation 2)
Figure 2004133637
[0136]
Note that the degree to which the recognition result and the notification from the output semantics converter module 79 affect the amount of change ΔI [k] of the parameter value of each desire is determined in advance. Has a large effect on the variation ΔI [k] of the parameter value of “fatigue”.
[0137]
Note that, in the present embodiment, the parameter values of each emotion and each desire (instinct) are regulated so as to fluctuate in the range of 0 to 100, and the coefficient k e , K i Is also set individually for each emotion and each desire.
[0138]
On the other hand, as shown in FIG. 13, the output semantics converter module 79 of the middleware layer 50 outputs “forward”, “please”, and “squeals” given from the action switching module 91 of the application layer 51 as described above. ”Or“ tracking (follow the ball) ”to the corresponding signal processing modules 72 to 78 of the output system 80.
[0139]
When an action command is given, the signal processing modules 72 to 78 execute a corresponding actuator 28 for performing the action based on the action command. 1 ~ 28 n (FIG. 11), audio data of a sound output from the speaker 20 (FIG. 11) and / or drive data to be supplied to the LED of the light emitting unit 25 (FIG. 11). The corresponding actuator 28 via the virtual robot 43 of the tick server object 42 and the signal processing circuit 14 (FIG. 11) sequentially. 1 ~ 28 n , And sequentially to the speaker 20 or the light emitting unit 25.
[0140]
In this way, the robot apparatus 1 can perform autonomous actions according to its own (internal) and surrounding (external) conditions, instructions and actions from the user, based on the control program. Has been done.
[0141]
In such a robot device 1, the above-described face detection processing can be performed by the face detection module 33 of the middleware layer 50. FIG. 18 is a block diagram showing the components required to control the behavior of the robot apparatus shown in FIGS. 11 to 15 by face detection.
[0142]
As described above, the image data captured by the CCD camera 22 is stored at a predetermined location in the DRAM 11 and supplied to the virtual robot 43 in the robotic server object 42. The virtual robot 43 reads the image data from the DRAM 11 and supplies the image data to the face detection module 33 in the middleware layer 50. In the face detection module, the face detection processing as described in the first and second embodiments is performed, and the processing result is supplied to the behavior model library 90 in the application layer 51. Is reflected in the behavior of the robot device.
[0143]
That is, the behavior model library 90 determines a subsequent behavior while referring to the parameter value of the emotion or the parameter value of the desire as needed, and gives the determination result to the behavior switching module 91. Then, the behavior switching module 91 sends a behavior command based on the determination result to the walking module 75 in the output system 80 of the middleware layer 50.
[0144]
When an action command is given, the walking module 75 performs a corresponding actuator 28 for performing the action based on the action command. 1 ~ 28 n Is generated, and this data is sequentially transmitted to the corresponding actuator 28 via the virtual robot 43 of the robotic server object 42 and the signal processing circuit 14 (FIG. 2). 1 ~ 28 n Sequentially. As a result, the behavior of the robot device 1 is controlled, and, for example, an action such as approaching an object is developed.
[0145]
For example, based on the size, direction, and the like of the face image detected by the face detection processing of the face detection module 33, the robot device 1 looks at the direction of the target having the detected face, or approaches the target. Can be moved to. If the detected face image is a frontal face and the robot apparatus 1 determines from the distance data from the distance sensor 23 that it has approached the target object within a predetermined range, the robot apparatus 1 starts moving and moves to a predetermined distance. The control can be performed so as to stop the movement when the vehicle advances or when the contact is detected by the contact detection module 66.
[0146]
Also, for example, a moving object detecting means for detecting a moving object based on the image data acquired by the CCD camera 22 in FIG. 11 is provided, and a moving object position direction based on the position of the moving object detected by the moving object detecting means, or FIG. Audio data is acquired by audio detection means such as a microphone microphone 24, and sound source direction estimating means for estimating the sound source direction from the audio data is provided. It may be used when controlling the movement based on the result.
[0147]
In the above-described embodiment, a case has been described in which the present invention is applied to the quadruped walking robot device 1 configured as shown in FIG. 10, but the present invention is not limited to this, and the present invention is not limited thereto. The present invention can be widely applied to various other robot devices and other various devices other than the robot device. For example, the robot device may be a bipedal walker, and the moving means is not limited to the leg type moving system.
[0148]
Further, in the above-described embodiments, the description has been given as a software configuration. However, the present invention is not limited to this, and is not limited thereto, and each function may be configured by hardware.
[0149]
【The invention's effect】
As described in detail above, a face detection device according to the present invention detects a correlation between an input image and a template image of a predetermined size representing an average face image in a face detection device that detects a face of an object from an input image. A correlation calculating means to be obtained; and a determining means for determining whether or not a face image is included in the input image based on the correlation, wherein the correlation calculating means includes a facial image in the input image by the determining means. If it is determined that there is no correlation between the input image and the input image using a template image obtained by rotating the template image by a predetermined angle about a direction perpendicular to the screen, If it is determined that a face image is included, a correlation with the next input image is obtained using the template image at the time of the determination, so that the face image included in the input image does not face front. Even non-frontal face, it is possible to detect a face image from the input image.
[0150]
Further, a program according to the present invention causes a computer to execute the above-described face detection processing. According to such a program, the above-described face detection processing can be realized by software.
[0151]
Further, the robot apparatus according to the present invention is a robot apparatus which operates based on the supplied input information, wherein an imaging unit for capturing an image and a face of a target object are detected from the input image supplied from the imaging unit. A face detection unit, wherein the face detection unit calculates a correlation between the input image and a template image of a predetermined size representing an average face image, and a face image is added to the input image based on the correlation. Determination means for determining whether or not a face image is included in the input image when the determination means determines that the face image is not included in the input image. A correlation with the input image is obtained by using a template image rotated by a predetermined angle about a vertical direction, and when the determination unit determines that the input image includes a face image, Since the correlation with the next input image is obtained using the regular template image, even if the target object such as a human to be the face detection target is not facing the front of the robot apparatus, the face of the target object is detected. , And an action corresponding to the face detection result, such as approaching the direction of the target object, can be executed.
[Brief description of the drawings]
FIG. 1 is a block diagram schematically showing functions of a face detection module according to a first embodiment of the present invention.
FIG. 2 is a flowchart illustrating a face detection method according to the present embodiment.
FIG. 3 is a flowchart illustrating a face detection method according to a second embodiment of the present invention.
FIG. 4 is a block diagram schematically illustrating functions of a face detection device according to a first application example of the present invention.
FIGS. 5A and 5B are schematic diagrams showing an input image (window image) and a template image, respectively.
FIG. 6 is a diagram showing a matching result image which is a set of correlation values obtained from an input image (window image) and a template image.
FIG. 7 is a flowchart showing processing steps for detecting a pixel as a face candidate from a template matching result image in the first application example of the present invention.
FIG. 8 is a diagram illustrating a result of extracting a face candidate from a matching result image in a template matching unit of the face detection device according to the first application example of the present invention.
FIG. 9 is a diagram showing a result of extracting a matching result image that is equal to or more than a predetermined threshold value as a face candidate.
FIG. 10 is a perspective view illustrating an external configuration of a robot device according to an embodiment of the present invention.
FIG. 11 is a block diagram showing a circuit configuration of the robot device.
FIG. 12 is a block diagram showing a software configuration of the robot device.
FIG. 13 is a block diagram showing a configuration of a middleware layer in a software configuration of the robot apparatus.
FIG. 14 is a block diagram showing a configuration of an application layer in a software configuration of the robot apparatus.
FIG. 15 is a block diagram showing a configuration of a behavior model library of the application layer.
FIG. 16 is a diagram used to explain a finite probability automaton that is information for determining an action of the robot apparatus.
FIG. 17 is a diagram showing a state transition table prepared for each node of the finite probability automaton.
FIG. 18 is a block diagram showing components necessary for controlling the behavior of the robot device shown in FIGS. 11 to 15 by face detection.
[Explanation of symbols]
1 robot apparatus, 10 CPU, 11 DRAM, 14 signal processing circuit, 22 CCD camera, 28 1 ~ 28 n Actuator, 33 face detection module, 42 robotic server object, 43 virtual robot, 50 middleware layer, 51 application layer, 68 signal processing module for motion detection, 70 input semantics converter module, 71 recognition system, 73 tracking signal processing module, 75 walking module, 79 output semantics converter module, 80 output system, 90 action model library, 91 action switching module

Claims (11)

入力画像から対象物の顔を検出する顔検出装置において、
入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、
上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段と備え、
上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求める
ことを特徴とする顔検出装置。
In a face detection device that detects a face of a target object from an input image,
Correlation calculating means for calculating a correlation between the input image and a template image of a predetermined size indicating an average face image,
Determining means for determining whether a face image is included in the input image based on the correlation,
The correlation calculation means uses a template image obtained by rotating the template image by a predetermined angle around a direction perpendicular to the screen when the determination means determines that the input image does not include a face image. Then, a correlation with the input image is obtained, and when the determination unit determines that the input image includes a face image, the correlation with the next input image is determined using the template image at the time of the determination. A face detection device characterized in that it is obtained.
上記判定手段により顔画像が含まれると判定された場合に、該顔画像を抽出する抽出手段を有することを特徴とする請求項1記載の顔検出装置。2. The face detection device according to claim 1, further comprising an extraction unit that extracts the face image when the determination unit determines that the image includes a face image. 供給された入力情報に基づいて動作を行うロボット装置に搭載される
ことを特徴とする請求項1記載の顔検出装置。
2. The face detection device according to claim 1, wherein the face detection device is mounted on a robot device that operates based on the supplied input information.
上記相関算出手段は、上記ロボット装置に備えられたロボット装置自身の姿勢を検出する姿勢検出手段からの姿勢検出結果に基づき、上記所定の角度を決定する
ことを特徴とする請求項3記載の顔検出装置。
4. The face according to claim 3, wherein the correlation calculating means determines the predetermined angle based on a posture detection result from a posture detecting means for detecting a posture of the robot device provided in the robot device. Detection device.
入力画像から対象物の顔を検出する顔検出装置の顔検出方法において、
入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出工程と、
上記相関に基づき、上記入力画像に顔画像が含まれるか否かを判定する判定工程とを有し、
上記相関算出工程では、上記判定工程にて上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関が求められ、上記判定工程にて上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関が求められる
ことを特徴とする顔検出方法。
In a face detection method of a face detection device that detects a face of a target object from an input image,
A correlation calculation step of calculating a correlation between the input image and a template image of a predetermined size indicating an average face image,
A determination step of determining whether a face image is included in the input image based on the correlation,
In the correlation calculation step, when it is determined in the determination step that the input image does not include a face image, the template image obtained by rotating the template image by a predetermined angle around an axis perpendicular to the screen is used. Is used to determine the correlation with the input image, and when it is determined in the determination step that the input image includes a face image, the next input image is determined using the template image at the time of the determination. A face detection method, wherein a correlation of
上記判定工程にて上記入力画像に顔画像が含まれると判定された場合に上記顔画像を抽出する抽出工程を有する
ことを特徴とする請求項5記載の顔検出方法。
6. The face detection method according to claim 5, further comprising an extraction step of extracting the face image when it is determined in the determination step that the input image includes a face image.
上記顔検出装置は、供給された入力情報に基づいて動作を行うロボット装置に搭載される
ことを特徴とする請求項5記載の顔検出方法。
The face detection method according to claim 5, wherein the face detection device is mounted on a robot device that operates based on supplied input information.
上記相関算出工程では、上記ロボット装置に備えられたロボット装置自身の姿勢を検出する姿勢検出手段からの姿勢検出結果に基づき、上記所定の角度が決定される
ことを特徴とする請求項7記載の顔検出方法。
8. The correlation calculation step according to claim 7, wherein the predetermined angle is determined based on a posture detection result from posture detection means for detecting a posture of the robot device provided in the robot device. Face detection method.
入力画像から対象物の顔を検出する動作を実行させるためのプログラムにおいて、
入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出工程と、
上記相関に基づき、上記入力画像に顔画像が含まれるか否かを判定する判定工程とを有し、
上記相関算出工程では、上記判定工程にて上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定工程にて上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関が求められる
ことを特徴とするプログラム。
In a program for executing an operation of detecting a face of an object from an input image,
A correlation calculation step of calculating a correlation between the input image and a template image of a predetermined size indicating an average face image,
A determination step of determining whether a face image is included in the input image based on the correlation,
In the correlation calculating step, when it is determined in the determining step that the input image does not include a face image, the template image obtained by rotating the template image by a predetermined angle around a direction perpendicular to the screen as an axis is used. Is used to determine the correlation with the input image. If it is determined in the determination step that the input image includes a face image, the template image at the time of determination is used to determine the correlation with the next input image. A program whose correlation is required.
供給された入力情報に基づいて動作を行うロボット装置において、
画像を撮像する撮像部と、
上記撮像部から供給される入力画像から対象物の顔を検出する顔検出部とを備え、
上記顔検出部は、上記入力画像と平均的な顔画像を示す所定サイズのテンプレート画像との相関を求める相関算出手段と、上記相関に基づき、該入力画像に顔画像が含まれるか否かを判定する判定手段とを有し、上記相関算出手段は、上記判定手段により上記入力画像に顔画像が含まれないと判定された場合には、該テンプレート画像を画面に垂直な方向を軸として所定の角度回転させたテンプレート画像を使用して上記入力画像との相関を求め、上記判定手段により上記入力画像に顔画像が含まれると判定された場合には、該判定時のテンプレート画像を使用して次の入力画像との相関を求める
ことを特徴とするロボット装置。
In a robot device that operates based on the supplied input information,
An imaging unit that captures an image,
A face detection unit that detects a face of the target object from the input image supplied from the imaging unit,
The face detection unit includes: a correlation calculation unit configured to calculate a correlation between the input image and a template image having a predetermined size representing an average face image; and determining whether the input image includes a face image based on the correlation. A determining unit that determines that the input image does not include a face image by using the template image as an axis in a direction perpendicular to a screen when the determining unit determines that the input image does not include a face image. The correlation between the input image and the input image is obtained using the template image rotated by an angle, and when the determination unit determines that the input image includes a face image, the template image at the time of the determination is used. A robot apparatus for determining a correlation with a next input image.
自身の姿勢を検出する姿勢検出部を備え、
上記顔検出部は、上記姿勢検出部からの姿勢検出結果に基づき、上記所定の角を選択する
ことを特徴とする請求項10記載のロボット装置。
Equipped with a posture detection unit that detects its own posture,
11. The robot apparatus according to claim 10, wherein the face detection unit selects the predetermined corner based on a posture detection result from the posture detection unit.
JP2002296783A 2002-10-09 2002-10-09 Face detector, face detection method and program, and robot apparatus Withdrawn JP2004133637A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002296783A JP2004133637A (en) 2002-10-09 2002-10-09 Face detector, face detection method and program, and robot apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002296783A JP2004133637A (en) 2002-10-09 2002-10-09 Face detector, face detection method and program, and robot apparatus

Publications (1)

Publication Number Publication Date
JP2004133637A true JP2004133637A (en) 2004-04-30

Family

ID=32286646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002296783A Withdrawn JP2004133637A (en) 2002-10-09 2002-10-09 Face detector, face detection method and program, and robot apparatus

Country Status (1)

Country Link
JP (1) JP2004133637A (en)

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006041020A1 (en) * 2004-10-14 2006-04-20 Sharp Kabushiki Kaisha Personal identification system utilizing mobile terminal
JP2006285944A (en) * 2004-08-11 2006-10-19 Fuji Photo Film Co Ltd Device and method for detecting structural element of subject
JP2007052547A (en) * 2005-08-16 2007-03-01 Kddi Corp Face detector
JP2007065844A (en) * 2005-08-30 2007-03-15 Fujifilm Corp Method, apparatus, and program for detecting face
JP2007102286A (en) * 2005-09-30 2007-04-19 Seiko Epson Corp Specific image detection device, method, and program
JP2007213182A (en) * 2006-02-08 2007-08-23 Fujifilm Corp Object status recognition method, device, and program
JP2007249852A (en) * 2006-03-17 2007-09-27 Sony Corp Information processor and method, recording medium and program
US7366330B2 (en) 2005-04-19 2008-04-29 Fujifilm Corporation Method, apparatus, and program for detecting faces
EP2037320A1 (en) 2007-09-14 2009-03-18 Sony Corporation Imaging apparatus, imaging apparatus control method, and computer program
EP2106127A2 (en) 2008-03-24 2009-09-30 Sony Corporation Imaging apparatus, control method thereof, and program
EP2131266A2 (en) 2008-06-02 2009-12-09 Sony Ericsson Mobile Communications Japan, Inc. Display processing device, display processing method, display processing program, and mobile terminal device
EP2133819A2 (en) 2008-06-11 2009-12-16 Sony Corporation Image processing apparatus and image processing method
EP2180698A1 (en) 2008-10-27 2010-04-28 Sony Corporation Image processing apparatus, image processing method, and program
US7714927B2 (en) 2006-06-09 2010-05-11 Sony Corporation Imaging apparatus, imaging apparatus control method and computer program product, with eye blink detection features
US7783186B2 (en) 2006-06-09 2010-08-24 Sony Corporation Imaging apparatus, imaging apparatus control method, and computer program
US7801437B2 (en) 2006-10-25 2010-09-21 Sony Corporation Imaging device, imaging device controlling method, and computer program
EP2257046A2 (en) 2009-05-27 2010-12-01 Sony Corporation Image pickup apparatus, electronic device, panoramic image recording method, and program
US7860386B2 (en) 2006-06-09 2010-12-28 Sony Corporation Imaging apparatus, control method of imaging apparatus, and computer program
US7869630B2 (en) * 2005-03-29 2011-01-11 Seiko Epson Corporation Apparatus and method for processing image
US7929042B2 (en) 2006-09-22 2011-04-19 Sony Corporation Imaging apparatus, control method of imaging apparatus, and computer program
CN102075682A (en) * 2009-11-20 2011-05-25 索尼公司 Image capturing apparatus, image processing apparatus, control method thereof and program
US7986808B2 (en) 2004-09-30 2011-07-26 Canon Kabushiki Kaisha Image-capturing device, image-processing device, method for controlling image-capturing device, and program for causing computer to execute the method
WO2011096278A1 (en) 2010-02-08 2011-08-11 ソニー株式会社 Image processor, image processing method, and program
US8072612B2 (en) 2006-12-22 2011-12-06 Canon Kabushiki Kaisha Method and apparatus for detecting a feature of an input pattern using a plurality of feature detectors, each of which corresponds to a respective specific variation type and outputs a higher value when variation received by the input pattern roughly matches the respective specific variation type
WO2012011341A1 (en) 2010-07-23 2012-01-26 ソニー株式会社 Imaging device, method for controlling same, and program
EP2458881A2 (en) 2010-11-29 2012-05-30 Sony Corporation Information Processing Apparatus, Information Processing Method and Program
EP2458895A2 (en) 2010-11-29 2012-05-30 Sony Corporation Information processing apparatus, information processing method and program
JP2012125878A (en) * 2010-12-15 2012-07-05 Canon Inc Information processing apparatus, information processing method, and program
US8379138B2 (en) 2008-01-25 2013-02-19 Sony Corporation Imaging apparatus, imaging apparatus control method, and computer program
WO2013073107A1 (en) 2011-11-14 2013-05-23 Sony Corporation Iimage display in three dimensional image capturing means used in two dimensional capture mode
US8503735B2 (en) 2008-12-09 2013-08-06 Sony Corporation Image processing to perform grouping based on depth-of-relationship values
US8531541B2 (en) 2007-09-18 2013-09-10 Sony Corporation Display control apparatus, image capturing apparatus, display control method, and program
US8649574B2 (en) 2006-06-09 2014-02-11 Sony Corporation Imaging apparatus, control method of imaging apparatus, and computer program
US8670047B2 (en) 2009-12-28 2014-03-11 Sony Corporation Image processing apparatus, imaging apparatus, image processing method, and program
WO2014068990A1 (en) * 2012-11-05 2014-05-08 株式会社デンソー Relatedness determination device, permanent physical computer-readable medium for same, and relatedness determination method
JP2014191400A (en) * 2013-03-26 2014-10-06 Mega Chips Corp Image detection apparatus, control program, and image detection method
WO2014203463A1 (en) 2013-06-21 2014-12-24 Sony Corporation Information processing system, method and non-transitory computer-readable medium
US9172858B2 (en) 2011-11-21 2015-10-27 Sony Corporation Apparatus and method for controlling settings of an imaging operation
US9407804B2 (en) 2009-11-20 2016-08-02 Sony Corporation Method, apparatus, and non-transitory medium for generating a synthetic image from a series of captured images
EP3179353A1 (en) 2010-03-05 2017-06-14 Sony Corporation Image processing device, image processing method and program
WO2019070388A2 (en) 2017-09-14 2019-04-11 Sony Interactive Entertainment Inc. Robot as personal trainer
US11194894B2 (en) 2018-02-21 2021-12-07 Samsung Electronics Co., Ltd. Electronic device and control method thereof

Cited By (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285944A (en) * 2004-08-11 2006-10-19 Fuji Photo Film Co Ltd Device and method for detecting structural element of subject
US7986808B2 (en) 2004-09-30 2011-07-26 Canon Kabushiki Kaisha Image-capturing device, image-processing device, method for controlling image-capturing device, and program for causing computer to execute the method
JP2006113820A (en) * 2004-10-14 2006-04-27 Sharp Corp Personal identification system by use of portable terminal
WO2006041020A1 (en) * 2004-10-14 2006-04-20 Sharp Kabushiki Kaisha Personal identification system utilizing mobile terminal
US7869630B2 (en) * 2005-03-29 2011-01-11 Seiko Epson Corporation Apparatus and method for processing image
US7366330B2 (en) 2005-04-19 2008-04-29 Fujifilm Corporation Method, apparatus, and program for detecting faces
JP2007052547A (en) * 2005-08-16 2007-03-01 Kddi Corp Face detector
US8155396B2 (en) 2005-08-30 2012-04-10 Fujifilm Corporation Method, apparatus, and program for detecting faces
JP2007065844A (en) * 2005-08-30 2007-03-15 Fujifilm Corp Method, apparatus, and program for detecting face
JP4624889B2 (en) * 2005-08-30 2011-02-02 富士フイルム株式会社 Face detection method, apparatus and program
JP2007102286A (en) * 2005-09-30 2007-04-19 Seiko Epson Corp Specific image detection device, method, and program
JP2007213182A (en) * 2006-02-08 2007-08-23 Fujifilm Corp Object status recognition method, device, and program
US8331631B2 (en) 2006-02-08 2012-12-11 Fujifilm Corporation Method, apparatus, and program for discriminating the states of subjects
JP2007249852A (en) * 2006-03-17 2007-09-27 Sony Corp Information processor and method, recording medium and program
JP4556891B2 (en) * 2006-03-17 2010-10-06 ソニー株式会社 Information processing apparatus and method, recording medium, and program
US7844108B2 (en) 2006-03-17 2010-11-30 Sony Corporation Information processing apparatus and method, recording medium and program
US7860386B2 (en) 2006-06-09 2010-12-28 Sony Corporation Imaging apparatus, control method of imaging apparatus, and computer program
US7783186B2 (en) 2006-06-09 2010-08-24 Sony Corporation Imaging apparatus, imaging apparatus control method, and computer program
US7714927B2 (en) 2006-06-09 2010-05-11 Sony Corporation Imaging apparatus, imaging apparatus control method and computer program product, with eye blink detection features
US8649574B2 (en) 2006-06-09 2014-02-11 Sony Corporation Imaging apparatus, control method of imaging apparatus, and computer program
US8253848B2 (en) 2006-06-09 2012-08-28 Sony Corporation Imaging apparatus, imaging apparatus control method, and computer program product, with eye blink detection features
US7929042B2 (en) 2006-09-22 2011-04-19 Sony Corporation Imaging apparatus, control method of imaging apparatus, and computer program
US7801437B2 (en) 2006-10-25 2010-09-21 Sony Corporation Imaging device, imaging device controlling method, and computer program
US8072612B2 (en) 2006-12-22 2011-12-06 Canon Kabushiki Kaisha Method and apparatus for detecting a feature of an input pattern using a plurality of feature detectors, each of which corresponds to a respective specific variation type and outputs a higher value when variation received by the input pattern roughly matches the respective specific variation type
EP2037320A1 (en) 2007-09-14 2009-03-18 Sony Corporation Imaging apparatus, imaging apparatus control method, and computer program
US8531541B2 (en) 2007-09-18 2013-09-10 Sony Corporation Display control apparatus, image capturing apparatus, display control method, and program
US9137445B2 (en) 2007-09-18 2015-09-15 Sony Corporation Efficient display and selection of images generated during bracketed imaging
US8379138B2 (en) 2008-01-25 2013-02-19 Sony Corporation Imaging apparatus, imaging apparatus control method, and computer program
US8493493B2 (en) 2008-01-25 2013-07-23 Sony Corporation Imaging apparatus, imaging apparatus control method, and computer program
CN102186019A (en) * 2008-03-24 2011-09-14 索尼株式会社 Imaging apparatus, control method thereof, and program
EP2106127A2 (en) 2008-03-24 2009-09-30 Sony Corporation Imaging apparatus, control method thereof, and program
EP2131266A2 (en) 2008-06-02 2009-12-09 Sony Ericsson Mobile Communications Japan, Inc. Display processing device, display processing method, display processing program, and mobile terminal device
EP2133819A2 (en) 2008-06-11 2009-12-16 Sony Corporation Image processing apparatus and image processing method
EP2180698A1 (en) 2008-10-27 2010-04-28 Sony Corporation Image processing apparatus, image processing method, and program
US8503735B2 (en) 2008-12-09 2013-08-06 Sony Corporation Image processing to perform grouping based on depth-of-relationship values
EP2852151A1 (en) 2009-05-27 2015-03-25 Sony Corporation Image processing electronic device and method
EP2257046A2 (en) 2009-05-27 2010-12-01 Sony Corporation Image pickup apparatus, electronic device, panoramic image recording method, and program
US9407804B2 (en) 2009-11-20 2016-08-02 Sony Corporation Method, apparatus, and non-transitory medium for generating a synthetic image from a series of captured images
US8896626B2 (en) 2009-11-20 2014-11-25 Sony Corporation Image capturing apparatus, image processing apparatus, control method thereof and program
CN102075682A (en) * 2009-11-20 2011-05-25 索尼公司 Image capturing apparatus, image processing apparatus, control method thereof and program
US8670047B2 (en) 2009-12-28 2014-03-11 Sony Corporation Image processing apparatus, imaging apparatus, image processing method, and program
WO2011096278A1 (en) 2010-02-08 2011-08-11 ソニー株式会社 Image processor, image processing method, and program
EP3179353A1 (en) 2010-03-05 2017-06-14 Sony Corporation Image processing device, image processing method and program
WO2012011341A1 (en) 2010-07-23 2012-01-26 ソニー株式会社 Imaging device, method for controlling same, and program
EP2458881A2 (en) 2010-11-29 2012-05-30 Sony Corporation Information Processing Apparatus, Information Processing Method and Program
EP2458895A2 (en) 2010-11-29 2012-05-30 Sony Corporation Information processing apparatus, information processing method and program
JP2012125878A (en) * 2010-12-15 2012-07-05 Canon Inc Information processing apparatus, information processing method, and program
WO2013073107A1 (en) 2011-11-14 2013-05-23 Sony Corporation Iimage display in three dimensional image capturing means used in two dimensional capture mode
US9172858B2 (en) 2011-11-21 2015-10-27 Sony Corporation Apparatus and method for controlling settings of an imaging operation
JP2014112358A (en) * 2012-11-05 2014-06-19 Denso It Laboratory Inc Relevancy determination device, relevancy determination program, and relevancy determination method
WO2014068990A1 (en) * 2012-11-05 2014-05-08 株式会社デンソー Relatedness determination device, permanent physical computer-readable medium for same, and relatedness determination method
US10409886B2 (en) 2012-11-05 2019-09-10 Denso Corporation Relatedness determination device, non-transitory tangible computer-readable medium for the same, and relatedness determination method
JP2014191400A (en) * 2013-03-26 2014-10-06 Mega Chips Corp Image detection apparatus, control program, and image detection method
WO2014203463A1 (en) 2013-06-21 2014-12-24 Sony Corporation Information processing system, method and non-transitory computer-readable medium
WO2019070388A2 (en) 2017-09-14 2019-04-11 Sony Interactive Entertainment Inc. Robot as personal trainer
US11194894B2 (en) 2018-02-21 2021-12-07 Samsung Electronics Co., Ltd. Electronic device and control method thereof

Similar Documents

Publication Publication Date Title
JP2004133637A (en) Face detector, face detection method and program, and robot apparatus
US7532743B2 (en) Object detector, object detecting method and robot
JP4609584B2 (en) Robot device, face recognition method, and face recognition device
JP4590717B2 (en) Face identification device and face identification method
JP3855812B2 (en) Distance measuring method, apparatus thereof, program thereof, recording medium thereof, and robot apparatus mounted with distance measuring apparatus
US6539283B2 (en) Robot and action deciding method for robot
JP4239635B2 (en) Robot device, operation control method thereof, and program
JPWO2002099545A1 (en) Control method of man-machine interface unit, robot apparatus and action control method thereof
JP4329398B2 (en) Face detection apparatus and method, program, and recording medium
JP2003285288A (en) Charging system, charge control method, robot, charger, and charge control program and recording medium
JP2003271933A (en) Face detector, face detecting method, and robot device
JP2004302644A (en) Face identification device, face identification method, recording medium and robot device
JP2004298975A (en) Robot device and obstacle searching method
JP2003271958A (en) Method and processor for processing image, program therefor, recording medium therefor, and robot system of type mounted with image processor
JP2004130427A (en) Robot device and method for controling operation of robot device
JP2004302645A (en) Face registration device, face registration method, recording medium and robot device
JP4193098B2 (en) TRACKING DEVICE, TRACKING DEVICE TRACKING METHOD, AND ROBOT DEVICE
JP4379052B2 (en) Moving object detection apparatus, moving object detection method, and robot apparatus
JP2002326176A (en) Robot device, method and device for image storage, control program, and recording medium
JP2004130426A (en) Robot device and its operation control method
JP2001157980A (en) Robot device, and control method thereof
JP2004298976A (en) Robot device and recognition control method for robot device
CN114998700B (en) Immersion degree calculation method and system for multi-feature fusion in man-machine interaction scene
JP2003266350A (en) Robot device and internal condition expressing device
JP2004229003A (en) Robotic device and imaging direction switching method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060110