(57)【要約】【課題】ユーザとの対話において、高速な応答と人物の高精度な識別とを両立させる。【解決手段】ロボットは、連続して撮影される撮影画像から顔を表す第１顔画像を検出する第１顔検出部と、第１顔画像が検出された場合、第１顔検出部による検出より長い時間を掛けて撮影画像から顔を表す第２顔画像を検出する第２顔検出部と、第１顔画像に基づいて、連続する撮影画像内の顔の位置を追跡する顔追跡部と、予め登録された少なくとも一人の顔画像に基づいて、第２顔画像に表されている人物を識別する顔識別部と、を備える。【選択図】図１
2015132955.tif 000002
【特許請求の範囲】
【請求項１】
連続して撮影される撮影画像から顔を表す第１顔画像を検出する第１顔検出部と、
前記第１顔画像が検出された場合、前記第１顔検出部による検出より長い時間を掛けて前記撮影画像から顔を表す第２顔画像を検出する第２顔検出部と、
前記第１顔画像に基づいて、連続する撮影画像内の顔の位置を追跡する顔追跡部と、
予め登録された少なくとも一人の顔画像に基づいて、前記第２顔画像に表されている人物を識別する顔識別部と、
を備えるロボット。
【請求項２】
連続して前記撮影画像を撮影する画像入力部と、
前記位置が前記撮影画像の中心に向かう方向へ、前記画像入力部を移動させる駆動部と、を更に備える、
請求項１に記載のロボット。
【請求項３】
連続して撮影された複数の撮影画像内に動体が存在することを検出する動体検出部を更に備え、
前記第１顔画像が検出された場合または前記動体の存在が検出された場合、前記第２顔検出部は、前記撮影画像から前記第２顔画像を検出する、
請求項１又は２に記載のロボット。
【請求項４】
前記第１顔検出部は、予め定められた第１検出周期毎に、前記第１顔画像の検出を行い、
前記第２顔画像が検出された場合、前記顔追跡部は、前記位置の追跡を開始し、
前記位置が追跡されている間、前記第２顔検出部は、前記第１検出周期より長く予め定められた第２検出周期毎に、前記第２顔画像の検出を行う、
請求項１乃至３の何れかに記載のロボット。
【請求項５】
前記第１顔検出部は、色空間における顔の色の範囲の条件である第１色条件を記憶し、前記撮影画像から前記第１色条件を満たす領域を含む前記第１顔画像を検出する、
前記第２顔検出部は、前記第２顔画像の中から基準領域を選択し、前記基準領域内の色の範囲を示す色情報を検出し、
前記第１顔検出部は、前記色情報に基づいて前記第１色条件を変更する、
請求項１乃至４の何れかに記載のロボット。
【請求項６】
前記第１検出部は、前記撮影画像から前記第１色条件を満たす領域を含む矩形領域である第１候補画像を検出し、前記第１候補画像が正面顔を表すか否かを判定し、前記第１候補画像が正面顔を表すと判定された場合、前記第１候補画像を前記第１顔画像と決定する、
請求項５に記載のロボット。
【請求項７】
前記第１顔検出部は、前記第１候補画像の縦横比を算出し、前記第１候補画像内のエッジを検出し、前記縦横比と前記エッジの左右の偏差とに基づいて、前記第１候補画像が顔を表すか否かを判定する、
請求項６に記載のロボット。
【請求項８】
前記第２顔検出部は、色空間における顔の色の範囲の条件であり且つ前記第１色条件の初期値より広い範囲を示す第２色条件を記憶し、前記撮影画像から前記第２色条件を満たす領域を含む矩形領域である第２候補画像を検出し、第２候補画像が検出されなかった場合、前記撮影画像内を走査して前記第２候補画像を決定し、前記第２候補画像が顔を表すか否かを判定する、
請求項５乃至７の何れかに記載のロボット。
【請求項９】
前記第１顔検出部は、色空間における顔の色の範囲の条件である第１色条件を記憶し、前記撮影画像から前記第１色条件を満たす領域を含む前記第１顔画像を検出する、
前記第２顔検出部は、前記第２顔画像の中から基準領域を選択し、前記基準領域内の色の範囲を示す色情報を検出し、
前記第１顔検出部は、前記色情報に基づいて前記第１色条件を変更し、
前記色情報と前記識別された人物の識別子とを関連付けて記憶する記憶部を更に備え、
前記駆動部が特定識別子の人物の方向へ前記画像入力部を移動させる場合、第１顔検出部は、前記記憶部から前記特定識別子に対応する色情報を読み出し、前記読み出された色情報に基づいて前記第１色条件を変更する、
請求項２に記載のロボット。
【請求項１０】
音声を音声信号に変換する音声入力部と、
前記第１顔検出部により正面顔を表す第１顔画像が検出された場合、前記音声認識部は、ユーザから前記ロボットへの発話であると認識する発話認識部と、
を更に備える、
請求項１乃至９の何れかに記載のロボット。
【請求項１１】
コンピュータが、連続して撮影される撮影画像から顔を表す第１顔画像を検出する第１顔画像検出処理を行い、
前記コンピュータが、前記第１顔画像が検出された場合、前記第１顔検出処理より長い時間を掛けて前記撮影画像から顔を表す第２顔画像を検出する第２顔検出処理を行い、
前記コンピュータが、前記第１顔画像に基づいて、連続する撮影画像内の顔の位置を追跡し、
前記コンピュータが、予め登録された少なくとも一人の顔画像に基づいて、前記第２顔画像に表されている人物を識別する、
ことを備える対話方法。
【請求項１２】
コンピュータを、
連続して撮影された撮影画像内から顔を表す第１顔画像を検出する第１顔検出部と、
前記第１顔画像が検出された場合、前記第１顔検出部より長い処理時間を掛けて、前記撮影画像内から顔を表す第２顔画像を検出する第２顔検出部と、
前記第１顔画像に基づいて、連続して撮影された複数の撮影画像において顔の位置を追跡する顔追跡部と、
予め登録された少なくとも一人の顔画像に基づいて、前記第２顔画像に表されている人物を識別する顔識別部と、
として機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、顔検出方法、およびコンピュータプログラムに関する。
【背景技術】
【０００２】
ユーザと対話するコミュニケーションロボットにおいては、ユーザの発話などの刺激に対して的確かつ高速に応答することが必要である。ユーザの発話を認識する場合、音声認識の結果だけでなく、周囲の状況などを総合的に判断することにより、発話の認識の精度を高める技術が知られている。カメラにより撮影された画像からユーザの顔を検出し、ユーザの顔がコミュニケーションロボットの顔に向いているか否かを判定し、その判定結果を発話の認識に用いる技術が知られている。また、コミュニケーションロボットにおいて、顔の画像による人物の識別を行うためには、顔検出処理の精度を高める必要がある。
【０００３】
複数の顔検出機能を用いる技術が知られている。特許文献１は、種別又は認識レベルが異なる複数の認識器による人物の顔の認識結果のうち所定の認識器の認識結果に基づいて顔のトラッキングを行い、その認識結果が得られなくなった場合に、他の認識器の認識結果に基づいてトラッキングを継続するロボット装置を開示している。これにより、環境変化があった場合でもロバストなトラッキングを行うことができる。特許文献２は、画像内の顔の存在を検出する第１の顔検出器と、それより検出閾値が低い第２の顔検出器とを備え、予測された顔位置から閾値内の距離に、第１の顔検出器により顔位置が検出されれば、第１の顔検出器により検出された顔位置を用いて次の画像における顔位置を予測し、予測された顔位置から閾値内の距離に、第１の顔検出器により顔位置が検出されなければ、第２の顔検出器により検出された顔位置を用いて次の画像における顔位置を予測する顔検出装置を開示している。これにより、顔を検出する可能性が高まる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許４２３９６３５号公報
【特許文献２】特表２００６−５０８４６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
顔検出処理の精度を高めると、顔検出処理の処理時間が増大し、ユーザへの応答が遅くなり、自然な対話にならない。一方、応答の高速化のために顔検出処理の精度を抑えると、環境の変化などにより顔を検出することができなくなる場合がある。
【０００６】
本発明は、上記の問題に鑑みてなされたもので、その目的は、ユーザとの対話において、高速な応答と人物の高精度な識別とを両立させる技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一つの観点に係るロボットは、連続して撮影される撮影画像から顔を表す第１顔画像を検出する第１顔検出部と、第１顔画像が検出された場合、第１顔検出部による検出より長い時間を掛けて撮影画像から顔を表す第２顔画像を検出する第２顔検出部と、第１顔画像に基づいて、連続する撮影画像内の顔の位置を追跡する顔追跡部と、予め登録された少なくとも一人の顔画像に基づいて、第２顔画像に表されている人物を識別する顔識別部と、を備える。
【０００８】
ロボットは、連続して撮影画像を撮影する画像入力部と、位置が撮影画像の中心に向かう方向へ、画像入力部を移動させる駆動部と、を更に備えても良い。
【０００９】
ロボットは、連続して撮影された複数の撮影画像内に動体が存在することを検出する動体検出部を更に備え、第１顔画像が検出された場合または動体の存在が検出された場合、第２顔検出部は、撮影画像から第２顔画像を検出しても良い。
【図面の簡単な説明】
【００１０】
【図１】実施例のコミュニケーションロボットの構成を示すブロック図。
【図２】顔判定部４４２の動作を示す模式図。
【図３】顔識別部５３０の構成を示すブロック図。
【図４】顔識別部５３０の動作を示すフローチャート。
【図５】顔追跡部５２０の動作を示す模式図。
【図６】顔検出処理における第１顔検出処理を示すタイムチャート。
【図７】顔探索期間の動作を示すタイムチャート。
【図８】追跡期間の動作を示すタイムチャート。
【図９】肌色条件変更処理を示すタイムチャート。
【図１０】肌色条件変更処理を示す模式図。
【発明を実施するための形態】
【００１１】
本実施形態のコミュニケーションロボットは、撮影画像から顔を検出する第１顔検出処理に基づいて顔の追跡や発話の認識を行うことにより、高速な応答を実現し、第１顔検出処理より長い時間を掛けて撮影画像から顔を検出する第２顔検出処理に基づいて人物の識別を行うことにより、人物の高精度な識別を実現する。
【００１２】
本発明のロボット、対話方法、およびコンピュータプログラムは、ユーザとの対話を行うコミュニケーションロボットや、ユーザとの対話やユーザの案内等を行うコンピュータシステムに適用されても良い。
【００１３】
図１は、実施例のコミュニケーションロボットの構成を示すブロック図である。
【００１４】
以下の説明において本実施例のコミュニケーションロボットを単にロボットと呼ぶことがある。このロボットは、音声入力部１１０と、画像入力部１３０と、音声出力部１４０と、表示部１５０と、動作機構部１６０と、制御部４００とを含む。制御部４００は、例えばコンピュータにより実現される。このコンピュータは、プログラム及びデータを格納するメモリと、そのプログラムに従って制御部４００の処理を実行するＣＰＵ（Central  Processing  Unit）などのマイクロプロセッサとを含む。このプログラムは、コンピュータ読み取り可能な媒体に格納され、コンピュータによりその媒体から読み出されて実行されても良い。
【００１５】
本実施例におけるロボットは、人型である。画像入力部１３０はロボットの目として頭部の前部（顔）に設けられている。動作機構部１６０は、頭部、腕部、腰部、脚部などのアクチュエータを含む。例えば、動作機構部１６０は、制御部４００からの指示に従って、ロボットの首を回転させることにより頭部の方向を変えることができ、腕を回転させることにより腕の方向を変えることができる。音声入力部１１０は、例えばマイクであり、マイクへ届いた音声を連続して取得し、音声信号に変換する。画像入力部１３０は、例えばカメラであり、ロボットの頭部の前方の画像を連続して撮影し、撮影画像とする。フレームバッファ４２１、４２２、４２３のそれぞれは、画像入力部１３０から出力される撮影画像を格納する。
【００１６】
制御部４００は、音声認識部４１０と、フレームバッファ４２１、４２２、４２３と、第１顔検出部４３０と、第２顔検出部４４０と、動体検出部４５０と、発話認識部５１０と、顔追跡部５２０と、顔識別部５３０と、肌色情報記憶部５４０と、応答制御部５５０とを含む。
【００１７】
第１顔検出部４３０は、第１顔検出処理により、フレームバッファ４２１に格納されている撮影画像から第１顔画像を検出する。第１顔検出部４３０は更に、撮影画像における第１顔画像の位置である第１顔画像位置と、色空間における第１顔画像の肌色の範囲を示す第１肌色情報と、正面顔を検出したことを示す第１正面顔検出情報を出力する。第２顔検出部４４０は、第１正面顔検出情報に応じて、第２顔検出処理により、フレームバッファ４２２に格納されている撮影画像から第２顔画像を検出する。第２顔検出部４４０は更に、第２顔画像が真正面顔を表すと判定されたことを示す第２正面顔検出情報と、色空間における第２顔画像の肌色の範囲を示す第２肌色情報とを出力する。第２顔検出処理は、第１顔検出処理に比べて、処理時間が長いが検出精度が高い。より精度が高い第２顔検出処理により判定される正面顔は、第１顔検出処理により判定される正面顔より真正面に近いため真正面顔として区別する。動体検出部４５０は、フレームバッファ４２３に格納された撮影画像で、連続して撮影された二つの撮影画像の差分を算出し、差分の大きさに基づいて、撮影画像が動体を表すか否かを判定する。動体検出部４５０は、撮影画像が動体を表すと判定された場合、第２顔検出部４４０に動作の指示を出力する。
【００１８】
音声認識部４１０は、音声入力部１１０から出力される音声信号を解析し、単語を認識する。例えば、音声認識部４１０は、この解析に、音響モデルデータベースと文法データベース辞書データベースとを用いる。音響モデルデータベースは、テキスト（読み）とテキストを発音したときの波形とを対応づけて記憶したデータベースであり、どのような波形の音がどのような単語として認識されるかを定義している。文法データベースは、単語の並べ方（文法）などを記憶したデータベースである。辞書データベースには、所定のキーワードを含む種々の単語がその読みと共に登録されている。また、音声認識部４１０は、予め音声信号を学習することにより登録された少なくとも一人の人物の中から、音声入力部１１０から出力される音声信号の話者のＩＤを識別しても良い。
【００１９】
発話認識部５１０は、第１顔検出部４３０による第１正面顔検出情報と、音声認識結果とに基づいて、音声認識部４１０による音声認識結果がロボットに向けられたユーザからの音声であるか否かを判定し、音声認識結果がユーザからロボットへの発話であると判定された場合、発話の内容を発話情報として応答制御部５５０へ出力する。また、発話認識部５１０は、判定に、複数の音声入力部１１０から得られる音源方位情報、キーワード−動詞データベース、認識結果履歴データベースなどを用いても良い。ここで、発話認識部５１０は、第１顔検出部４３０により正面顔が検出され第１正面顔検出情報を取得した場合、音声認識結果がユーザからロボットへの発話である確率を高めて、発話の判定を行う。これにより、発話認識部５１０は、ユーザの顔がロボットの顔を向いている場合に、ユーザからロボットへの発話が行われたと認識することができ、発話の判定の信頼性を高めることができる。
【００２０】
顔追跡部５２０は、第２顔画像が検出された後の撮影画像から、第１顔画像位置から所定の距離内における第１肌色情報の範囲内の色の矩形領域を追跡領域として検出し、追跡領域の位置を追跡位置として検出する顔追跡処理を行う。
【００２１】
顔識別部５３０は、予め顔画像を学習することにより登録された少なくとも一人の人物の中から、第２顔検出部４４０により検出された第２顔画像が表す人物のＩＤ（識別子）を識別する顔識別処理を行う。肌色情報記憶部５４０は、顔識別部５３０により識別されたＩＤと、第２顔検出部４４０により検出された第２肌色情報とを関連付けて記憶する。
【００２２】
応答制御部５５０は、発話認識部５１０により認識された発話情報と、顔追跡部５２０により検出された追跡位置と、顔識別部５３０により識別されたＩＤとに基づいて、音声出力部１４０、表示部１５０、および動作機構部１６０を制御することにより、ユーザへ応答する。音声出力部１４０は、応答制御部５５０からの指示に従って、ユーザへの応答の音声を出力する。音声入力部１１０および音声出力部１４０により、ロボットはユーザと対話することができる。表示部１５０は、例えばロボットの頭部の前部に設けられ、応答制御部５５０からの指示に従って、ユーザへの応答の画像や文字などを表示する。動作機構部１６０は、応答制御部５５０からの指示に従って、モータで首を動かすことにより、頭部の前部をユーザの顔に向ける。これにより、ロボットは、ユーザの顔を見てユーザと対話する。
【００２３】
以下、各部の詳細について説明する。
【００２４】
第１顔検出部４３０は、第１肌色抽出部４３１と、エッジ抽出部４３２と、正面顔判定部４３３とを含む。
【００２５】
第１肌色抽出部４３１は、色空間における色の範囲で表される肌色の条件を第１肌色条件として記憶する。本実施例における色空間は、ＨＳＶ色空間であるが、ＲＧＢ等、他の色空間であっても良い。第１肌色条件は、ＨＳＶ色空間における、色相（Hue）、彩度（Saturation）、明度（Value）のそれぞれの成分の値の範囲を表し、各成分の下限値および上限値を含む。動作開始時において、第１肌色抽出部４３１は、予め設定された第１肌色条件の初期値を用い、その後、後述する肌色条件変更処理により第１肌色条件を変更する。第１肌色抽出部４３１は、撮影画像から、第１肌色条件に示されている範囲内の色を有する画素を含む矩形の領域を肌色領域として検出する。その後、第１肌色抽出部４３１は、検出された肌色領域の中から、アスペクト比が予め定められたアスペクト比範囲内である肌色領域を、顔を含む可能性が高い矩形領域である顔候補領域として選択する。アスペクト比範囲は、例えば、横：縦が１：１（正方形）から１：２（長方形）までの範囲である。例えば、人物の胴体から検出される肌色領域は横長になることが多く、背景の柱から検出される肌色領域はアスペクト比範囲よりも縦長になることが多いため、顔である可能性が低い肌色領域を捨て、顔である可能性が高い肌色領域を残すことができる。
【００２６】
エッジ抽出部４３２は、顔候補領域内のエッジを表すエッジ画像を抽出する。本実施例におけるエッジは、縦方向のエッジである。これにより、主に、眉、目、鼻の下面、口を表すエッジが検出される。
【００２７】
正面顔判定部４３３は、エッジ画像の特徴に基づいて、顔候補領域が正面顔を表すか否かを判定する。例えば、正面顔判定部４３３は、顔候補領域から検出されたエッジ画像内のエッジの左右の対称性に基づいて、顔候補領域が正面顔を表すと判定する。例えば、正面顔判定部４３３は、エッジ画像内のエッジの分布における左右の偏差の大きさが所定の偏差閾値より小さい場合、顔候補領域が正面顔を表すと判定する。顔候補領域が正面顔を表すと判定された場合、正面顔判定部４３３は、正面顔を検出したことを示す第１正面顔検出情報を発話認識部５１０および第２顔検出部４４０へ出力する。
【００２８】
正面顔判定部４３３は更に、第１顔画像から第１肌色情報を抽出し、撮影画像における第１顔画像の位置である第１顔画像位置と第１肌色情報とを顔追跡部５２０へ出力する。例えば、正面顔判定部４３３は、第１顔画像の中心を検出し、第１顔画像全体と中心の位置に対して予め設定された比率の位置における基準領域を検出する。例えば、基準領域は、額、左頬、右頬である。正面顔判定部４３３は、基準領域内の色の範囲を第１肌色情報として検出する。例えば、正面顔判定部４３３は、三つの基準領域内の色の各成分の最小値および最大値を第１肌色情報として検出する。
【００２９】
第１顔検出部４３０は、撮影画像から肌色領域に検出し、肌色領域の中から顔候補領域を選択し、エッジ画像を用いて第１顔画像を検出するため、ＣＰＵ負荷が低く、処理時間が短い。つまり、処理コストが低い。したがって、撮影画像内に顔が出現してから第１顔検出部４３０が顔を検出するまでの時間は短い。一方で、撮影環境や人物差などに対するロバスト性は低い。
【００３０】
第２顔検出部４４０は、第２肌色抽出部４４１と、顔判定部４４２と、肌色情報抽出部４４３とを含む。
【００３１】
第２肌色抽出部４４１は、第１肌色抽出部４３１の同様の動作を行う。但し、第２肌色抽出部４４１は予め設定された第２肌色条件を記憶し、第２肌色条件の範囲内の色を含む矩形領域を顔判定領域として検出する。第２肌色条件は固定であり、第１肌色抽出部４３１の初期肌色条件より広く設定されている。これにより、第２肌色抽出部４４１は、第１肌色抽出部４３１に比べて肌色の領域を検出する確率を高めることができる。なお、第２肌色抽出部４４１は、第１肌色抽出部４３１より精度の高い肌色抽出の処理を実装しても良い。
【００３２】
図２は、顔判定部４４２の動作を示す模式図である。
【００３３】
この図のＳ６０１に示されているように、第２肌色抽出部４４１により撮影画像６６１から顔判定領域６６２が検出された場合、顔判定部４４２は、Ｈａａｒ−Ｌｉｋｅ特徴を用いてその顔判定領域６６２が顔を表すか否かを判定する。なお、顔判定部４４２は、テンプレートマッチングなど他の顔判定方法を用いても良い。一方、この図のＳ６０２に示されているように、第２肌色抽出部４４１により撮影画像から顔判定領域が検出されなかった場合、顔判定部４４２は、撮影画像内に矩形の顔判定領域を設定し、Ｈａａｒ−Ｌｉｋｅ特徴を用いてその顔判定領域が顔を表すか否かを判定し、撮影画像の全体に亘って顔判定領域を走査し、判定を繰り返す。さらに、顔判定部４４２は、顔判定領域のサイズを変更し、撮影画像の全体に亘って顔判定領域を走査し、判定を繰り返す。したがって、ＣＰＵ負荷が高く、処理時間が長い。つまり、処理コストが高い。そのため、撮影画像内に顔が出現してから第２顔検出部４４０が顔を検出するまでの時間は長い。一方で、第２顔検出部４４０は、第２肌色抽出部４４１により顔判定領域が検出されなかったとしても、撮影画像全体に亘って顔判定領域を判定することにより顔を検出する確度は高い。すなわち、撮影環境や人物差などに対するロバスト性は高い。
【００３４】
顔判定領域が顔を表すと判定された場合、顔判定部４４２は、その領域を第２顔画像として顔識別部５３０へ出力する。さらに顔判定部４４２は、第２顔画像が真正面顔を表すか否かを判定する。第２顔画像が真正面顔を表すと判定された場合、顔判定部４４２は、第２顔画像が真正面顔を表すと判定されたことを示す第２正面顔検出情報を顔識別部５３０へ出力し、第２顔画像を肌色情報抽出部４４３へ出力する。
【００３５】
肌色情報抽出部４４３は、真正面顔を表すと判定された第２顔画像から第２肌色情報を抽出する。例えば、肌色情報抽出部４４３は、第２顔画像の中心を検出し、その中心に対して予め設定された少なくとも一つの相対位置の基準領域を検出する。例えば、基準領域は、額、左頬、右頬である。肌色情報抽出部４４３は、基準領域内の色の範囲を第２肌色情報として検出する。例えば、肌色情報抽出部４４３は、三つの基準領域内の色の各成分の最小値および最大値を第２肌色情報として検出する。肌色情報抽出部４４３は、検出された第２肌色情報を第１顔検出部４３０と肌色情報記憶部５４０へ出力し、顔識別部５３０により識別された人物のＩＤに関連付けて肌色情報記憶部５４０に保存する。
【００３６】
以下、顔識別部５３０の詳細について説明する。
【００３７】
図３は、顔識別部５３０の構成を示すブロック図である。
【００３８】
顔識別部５３０は、第１尤度算出部２３０と、第２尤度算出部３１０と、蓄積型算出部２４０と、識別部２７０とを含む。顔識別部５３０は、第２顔画像に基づいて人物を識別する顔識別処理に先立って、少なくとも一人のＩＤを登録するとともに対象顔画像を学習する登録処理を行う。
【００３９】
第１尤度算出部２３０は、第２顔検出部４４０により検出された第２顔画像が第１対象顔画像であることの確からしさ（スコア）である第１尤度を算出する。第１対象顔画像は、対象者の真正面顔以外の顔画像を含む複数の顔画像である。本実施例の第１尤度算出部２３０は、ニューラルネットワークを有し、登録処理において第１対象顔画像を教師信号としてニューラルネットワークの学習を行い、顔識別処理においてそのニューラルネットワークにより顔画像から第１尤度を算出する。登録処理により複数の対象者が登録される場合、第１尤度算出部２３０は、登録処理において複数の対象者の夫々の第１対象顔画像を教師信号としてニューラルネットワークの学習を行い、顔識別処理においてそのニューラルネットワークにより一つの顔画像から複数の対象者の夫々の第１尤度を算出する。
【００４０】
登録処理において、第１尤度算出部２３０は、ニューラルネットワークの教師信号として、対象者の複数の第１対象顔画像を取得する。例えば、応答制御部５５０は、ユーザから対象者の登録処理の指示を受けると、ロボットの手を見ることを指示するメッセージを音声によりユーザへ出力し、ロボットの手のアクチュエータを駆動することによりロボットの手を画像入力部１３０の周りの様々な方向へ動かしながら、画像入力部１３０により連続して撮影する。第２顔検出部４４０は、撮影により得られた複数の撮影画像から顔画像を検出し、第１対象顔画像として第１尤度算出部２３０へ出力する。これにより、第１尤度算出部２３０は、様々な方向から撮影した対象者の顔画像を用いてニューラルネットワークの学習を行うことができる。この登録処理により、第１尤度算出部２３０は、第１対象顔画像に基づく情報として、第１対象顔画像により学習されたニューラルネットワークを記憶する。
【００４１】
なお、第１尤度算出部２３０は、登録処理において、検出された第１対象顔画像を格納し、顔識別処理において、第２顔検出部４４０により検出された第２顔画像と、第１対象顔画像との類似度を算出しても良い。また、第１尤度算出部２３０は、登録処理において、第１対象顔画像から検出された特徴量を格納し、顔識別処理において、第２顔検出部４４０により検出された第２顔画像から特徴量を検出し、検出された特徴量と、格納された特徴量との類似度を算出しても良い。
【００４２】
蓄積型算出部２４０は、対象者毎に、所定の蓄積数までの第１尤度の平均を平均尤度として算出する。蓄積数は、例えば７である。また、蓄積型算出部２４０は、対象者毎に、蓄積数までの第１尤度を記憶しても良い。なお、蓄積型算出部２４０は、複数の第１尤度の加重平均を平均尤度として算出しても良い。重み付けは、現在からの時間差に応じて減少しても良い。
【００４３】
第２尤度算出部３１０は、登録処理において、対象者の真正面顔の顔画像である第２対象顔画像を取得し、顔識別処理において、第２顔検出部４４０により検出された顔画像が第２対象顔画像であることの確からしさ（スコア）である第２尤度を算出する。第１対象顔画像が真正面顔以外の顔画像を含むのに対し、第２対象顔画像は、真正面顔だけの顔画像である。本実施例の第２尤度算出部３１０は、ニューラルネットワークを有し、登録処理において第２対象顔画像を教師信号としてニューラルネットワークの学習を行い、顔識別処理においてそのニューラルネットワークにより第２顔検出部４４０により検出された第２顔画像から対象者の第２尤度を算出する。登録処理により複数の対象者が登録された場合、第２尤度算出部３１０は、登録処理において複数の対象者の夫々の第２対象顔画像を教師信号としてニューラルネットワークの学習を行い、顔識別処理においてそのニューラルネットワークにより一つの顔画像から複数の対象者の夫々の第２尤度を算出する。
【００４４】
登録処理において、第２尤度算出部３１０は、ニューラルネットワークの教師信号として、対象者の複数の第２対象顔画像を取得する。例えば、本実施例の顔認識装置が人型ロボットに適用される場合、応答制御部５５０は、ユーザから対象者の登録処理の指示を受けると、画像入力部１３０を真正面から見ることを指示するメッセージを音声によりユーザへ出力し、画像入力部１３０により連続して撮影する。第２顔検出部４４０は、撮影により得られた複数の撮影画像から第２顔画像を検出し、検出された第２顔画像が真正面顔を表しているか否かを判定し、第２顔画像が真正面顔を表している場合に第２正面顔検出情報を出力する。これにより、第２尤度算出部３１０は、対象者の真正面顔だけの顔画像を用いてニューラルネットワークの学習を行うことができる。この登録処理により、第２尤度算出部３１０は、第２対象顔画像に基づく情報として、第２対象顔画像により学習されたニューラルネットワークを記憶する。
【００４５】
なお、第２尤度算出部３１０は、登録処理において、検出された第２対象顔画像を格納し、顔識別処理において、真正面顔を表していると判定された第２顔画像と、第２対象顔画像との類似度を算出しても良い。また、第２尤度算出部３１０は、登録処理において、第２対象顔画像から検出された特徴量を格納し、顔識別処理において、真正面顔を表していると判定された顔画像から特徴量を検出し、検出された特徴量と、格納された特徴量との類似度を算出しても良い。
【００４６】
識別部２７０は、第２尤度算出部３１０により算出された第２尤度が所定の第２尤度閾値を超えたか否かを判定する。更に識別部２７０は、蓄積型算出部２４０により算出された平均尤度が所定の平均尤度閾値を超えたか否かを判定する。更に識別部２７０は、第２尤度の判定結果と、平均尤度の判定結果とに基づいて、顔画像が或る対象者を表しているか否かを判定し、顔画像が或る対象者を表していると判定された場合、その対象者のＩＤを認識結果として応答制御部５５０へ出力する。
【００４７】
第１尤度算出部２３０は、様々な条件（顔方向、照明条件）の顔画像を学習することにより、真正面顔以外を含む様々な条件の顔画像を認識することができる。しかし、第１尤度算出部２３０は、対象者の真正面顔の顔画像から算出される第１尤度が、対象者の真正面以外の顔画像から算出する第１尤度に比べて常に高くなるわけではないため、１枚の真正面顔の顔画像から算出された第１尤度だけで対象者を特定することは信頼性が不十分な場合もある。
【００４８】
一方、第２尤度算出部２３０は、真正面顔だけを表す第２対象顔画像だけを学習することにより、対象者の真正面顔の顔画像が撮影された場合には高い尤度を出力するため、１枚の真正面顔の顔画像から算出された第２尤度だけで対象者を特定することができる。
【００４９】
図４は、顔識別部５３０の動作を示すフローチャートである。
【００５０】
第２尤度算出部３１０は、第２顔検出部４４０により検出された第２顔画像および第２正面顔検出情報を取得する（Ｓ１１０）。その後、第２尤度算出部３１０は、第２正面顔検出情報に基づいて、検出された第２顔画像が真正面顔を表しているか否かを判定する（Ｓ３１０）。
【００５１】
検出された第２顔画像が真正面顔を表していないと判定された場合（Ｓ３１０：ＮＯ）、識別部２７０は、処理をＳ４１０へ移行させる。一方、検出された第２顔画像が真正面顔を表していると判定された場合（Ｓ３１０：ＹＥＳ）、第２尤度算出部３１０は、対象者毎の第２尤度を算出する（Ｓ３２０）。識別部２７０は、或る対象者の第２尤度が予め設定された第２尤度閾値以上であるか否かを判定する（Ｓ３３０）。
【００５２】
或る対象者の第２尤度が第２尤度閾値以上でないと判定された場合（Ｓ３３０：ＮＯ）、識別部２７０は、処理をＳ４１０へ移行させる。一方、或る対象者の第２尤度が第２尤度閾値以上であると判定された場合（Ｓ３３０：ＹＥＳ）、識別部２７０は、その第２尤度に対応する対象者を特定し、その対象者のＩＤを認識結果として応答制御部５５０および肌色情報記憶部５４０へ出力する（Ｓ３４０）。
【００５３】
その後、第１尤度算出部２３０は、対象者毎の第１尤度を算出する（Ｓ４１０）。その後、蓄積型算出部２４０は、算出された第１尤度を記憶し、記憶されている第１尤度から平均尤度を算出する（Ｓ５１０）。識別部２７０は、或る対象者の平均尤度が予め設定された平均尤度閾値以上であるか否かを判定する（Ｓ５２０）。平均尤度が平均尤度閾値以上でないと判定された場合（Ｓ５２０：ＮＯ）、識別部２７０は、処理をＳ５４０へ移行させる。一方、平均尤度が平均尤度閾値以上であると判定された場合（Ｓ５２０：ＹＥＳ）、識別部２７０は、その平均尤度に対応する対象者を特定し、その対象者のＩＤを認識結果として応答制御部５５０および肌色情報記憶部５４０へ出力する（Ｓ５３０）。その後、識別部２７０は、顔識別処理の終了の指示を受けたか否かを判定する（Ｓ５４０）。顔識別処理の終了の指示を受けたと判定されなかった場合（Ｓ５４０：ＮＯ）、識別部２７０は、処理をＳ１１０へ移行させる。これにより、次のフレームの画像の処理が行われる。顔識別処理の終了の指示を受けたと判定された場合（Ｓ５４０：ＹＥＳ）、識別部２７０は、この処理を終了する。以上が顔識別処理である。顔識別処理の終了の指示は、例えば、顔追跡処理による追跡位置の検出が失敗したことを示す情報である。
【００５４】
顔識別部５３０によれば、第２顔画像が真正面顔を表していると判定され、且つ第２尤度が第２尤度閾値を超えたと判定された時点で、その第２尤度に対応する対象者のＩＤを認識結果として出力することにより、平均尤度の判定に比べて、認識結果を出力するまでの時間を短縮することができる。また、第２尤度算出部３１０が、真正面顔の顔画像だけを学習することにより、高い第２尤度を得ることができるため、第２尤度による判定の信頼性を向上させることができ、一つの真正面顔の第２顔画像を検出した時点で対象者を特定することが可能になる。
【００５５】
第２尤度算出部３１０は、第２顔検出部４４０により第２顔画像が検出される度に、その第２顔画像から第２尤度を算出しても良い。この場合、識別部２７０は、或る第２顔画像が真正面顔を表していると判定され、且つその第２顔画像から算出された第２尤度が第２尤度閾値以上である場合に、その第２尤度に対応する対象者のＩＤを認識結果として出力する。
【００５６】
なお、第２尤度算出部３１０を省いても良い。第２顔画像が真正面顔を表していると判定された場合、且つ第１尤度算出部２３０からの第１尤度が予め設定された第１尤度閾値以上である場合、識別部２７０は、第１尤度に対応する対象者を特定する。一方、第２顔画像が真正面顔を表していないと判定された場合、且つ蓄積型算出部２４０からの平均尤度が平均尤度閾値以上である場合、識別部２７０は、平均尤度に対応する対象者を特定する。
【００５７】
図５は、顔追跡部５２０の動作を示す模式図である。
【００５８】
顔追跡部５２０は、第２顔検出部４４０により撮影画像から第２顔画像が検出された後、顔追跡部５２０が顔の追跡に失敗するまで、顔追跡処理を行う。Ｓ６１１は、撮影画像の右部に第２顔画像が検出された状態を示す。顔追跡部５２０は、第１顔画像位置から、連続する撮影画像内で第１肌色情報の色を追跡し、その位置を追跡位置として検出し、追跡位置を応答制御部５５０へ出力する。応答制御部５５０は、追跡位置に基づいて、追跡位置が撮影画像の中心になるように動作機構部１６０へ指示することにより、ロボットの頭部を動かす。Ｓ６１２は、動作機構部１６０が頭部を右へ回転させることにより、第２顔画像が撮影画像の中心になった状態を示す。Ｓ６１３は、第２顔画像の人物が移動することにより、第２顔画像が撮影画像の左部へ移動した場合を示す。Ｓ６１４は、更に動作機構部１６０が頭部を左へ回転させることにより、第２顔画像が撮影画像の中心になった状態を示す。これにより、顔追跡部５２０により追跡位置が検出されている間、第２顔画像に表されている人物がすり替わっていないことを確認することができる。また、対話中のユーザが移動しても、ロボットの顔をユーザに向けることができるとともに、ユーザの顔を撮影画像の中心に捉えることができる。
【００５９】
以下、ロボットによる顔検出処理の動作について説明する。
【００６０】
図６は、顔検出処理における第１顔検出処理を示すタイムチャートである。
【００６１】
第１顔検出部４３０は、予め定められた時間間隔である第１顔検出周期毎に、第１顔検出処理を行う。第１顔検出部４３０は、最初の状態を顔探索期間とする。第２顔検出部４４０は、撮影画像から第２顔画像を検出すると、状態を顔探索期間から追跡期間へ移行させる。顔追跡部５２０は、追跡位置の検出に失敗すると、状態を追跡期間から顔探索期間へ移行させる。
【００６２】
図７は、顔探索期間の動作を示すタイムチャートである。
【００６３】
この図は、第１顔検出部４３０と、第２顔検出部４４０と、顔識別部５３０と、顔追跡部５２０との動作を示す。第１顔検出部４３０は、前述したように、第１顔検出周期毎に、第１顔検出処理を行う。第１顔検出部４３０が撮影画像から第１顔画像を検出した場合、または動体検出部４５０が撮影画像から動体を検出した場合、第２顔検出部４４０は第２顔検出処理を行う。このように、撮影画像内に顔が存在する確率が高い場合に第２顔検出処理を行うことにより、処理時間の長い第２顔検出処理を無駄に実行することを抑えることができる。これにより、撮影画像に顔が出現した場合にロボットは高速に応答することができる。また、動体検出部４５０による動体の検出を契機に第２顔検出処理を行うことにより、第１顔検出処理により第１顔画像を検出できない場合でも、第２顔検出処理を行うことができる。
【００６４】
高い頻度で定期的に実行されている第１顔検出処理による第１顔画像の検出をトリガーにして第２顔検出処理を実行することにより、撮影画像内に顔が出現してから第２顔画像を検出するまでの処理時間を短くすることができる。もし、顔を検出していない状態で第２顔検出処理を繰り返すと、前述のように第２顔検出処理の処理時間が長くなるため、撮影画像内に顔が出現してから第２顔画像を検出するまでの処理時間は、本実施例に比べて長くなる。
【００６５】
第２顔検出部４４０は、撮影画像から第２顔画像を検出した場合、状態を顔探索期間から追跡期間へ移行させる。
【００６６】
図８は、追跡期間の動作を示すタイムチャートである。
【００６７】
この図は、第１顔検出部４３０と、第２顔検出部４４０と、顔識別部５３０と、顔追跡部５２０との動作を示す。第１顔検出部４３０は、顔探索期間と同様、第１顔検出周期毎に、第１顔検出処理を行う。第２顔検出部４４０は、追跡期間中、予め定められた時間間隔であって第１顔検出周期より長い第２顔検出周期毎に第２顔検出処理を行う。第２顔検出周期は、第２顔検出処理の最大の処理時間より長く、例えば３秒である。顔識別部５３０は、第２顔検出部４４０により検出された第２顔画像および第２正面顔検出情報に基づいて、前述の顔識別処理を行う。顔追跡部５２０は、第１顔検出部４３０により検出された第１肌色情報および第１顔画像位置に基づいて、前述の顔追跡処理を行う。
【００６８】
追跡期間において、第２顔検出処理が第２顔検出周期毎に実行され、得られた第２顔画像が顔識別処理に利用されることにより、顔識別処理がＣＰＵ資源を占有せず、音声認識による対話を進めながら、人物を識別することができる。これにより、応答制御部５５０は、対話中に対話相手の人物を識別できた時点で、その人物に適した会話に修正する。第２顔検出処理により第２顔画像が検出された場合、第１顔検出処理のための第２肌色情報を抽出して第１顔検出処理の第１肌色条件へ反映することにより、第１顔検出処理は、撮影環境や人物の変化に適応することができ、ロバスト性を高めることができる。また、ロボットの顔をユーザの顔に向けて対話を行うことにより、ユーザはロボットが自分と対話していることを認識できる。もし、処理時間が掛かる第２顔検出処理の結果を顔追跡処理に用いると、ロボットの顔の動きが遅れ、ユーザの顔に追従できなくなる。第１顔検出処理の結果を顔追跡処理に用いることにより、ロボットの顔が高速に応答することができ、ユーザの顔に追従することができる。
【００６９】
ここでは、第１肌色条件を変更する肌色条件変更処理について説明する。
【００７０】
撮影環境の変化や撮影された人物の変化などにより、撮影画像が顔の画像を含んでいても、撮影画像内の顔の肌色に対し、第１顔検出部４３０の第１肌色抽出部４３１により記憶されている第１肌色条件が適正でなく、第１顔検出部４３０が撮影画像から第１顔画像を検出できない場合がある。この場合、第１肌色抽出部４３１は、第１肌色抽出部４３１により記憶されている第１肌色条件を、第２顔検出部４４０により検出された第２肌色情報に変更する、肌色条件変更処理を行う。
【００７１】
図９は、肌色条件変更処理を示すタイムチャートである。
【００７２】
この図は、第１顔検出部４３０と、第２顔検出部４４０と、顔識別部５３０と、顔追跡部５２０との動作を示す。第１顔検出部４３０は、第１顔検出処理により第１顔画像を連続して検出できない時間が所定の未検出時間閾値を上回るか否かを判定する。未検出時間閾値は、例えば１０秒である。第１顔画像を検出できない時間が未検出時間閾値を上回ると判定された場合、第１顔検出部４３０は、その後に第２顔検出部４４０の肌色情報抽出部４４３により検出された第２肌色情報を取得し、取得された第２肌色情報を新たな第１肌色条件として記憶する。
【００７３】
図１０は、肌色条件変更処理を示す模式図である。
【００７４】
撮影画像が顔の画像を含んでいても第１顔検出部４３０が撮影画像から第１顔画像を検出できない場合（Ｓ６２１）として、第１肌色条件が撮影画像内の顔の肌色に対して広すぎる場合、撮影画像６１０から抽出された肌色領域６１１において眉や目や鼻や口との境界が明確でない場合や、肌色領域６１１が背景の物体を含んでいる場合がある。第１肌色条件が広すぎる場合とは、例えば、第１肌色条件が撮影画像内の顔の肌色の他に背景の茶色を含む場合である。また、第１肌色条件が撮影画像内の顔の肌色に対してずれている場合、撮影画像内の顔が肌色領域として検出されない場合がある。第１肌色条件がずれている場合とは、例えば、撮影画像内の顔の肌色が平均的な肌色より白く、第１肌色条件に含まれない場合である。このような場合、エッジ抽出部４３２により顔の特徴が抽出されず、第１顔検出部４３０は第１顔画像の検出に失敗する。さらに第１顔画像の検出の失敗が連続する時間が未検出時間閾値を上回り、且つ動体検出部４５０による動体検出をトリガーにして第２顔検出部４４０が撮影画像６２０から真正面の第２顔画像６３０を検出した場合、肌色情報抽出部４４３は、肌色条件変更処理を行う（Ｓ６２２）。
【００７５】
肌色情報抽出部４４３は、第２顔画像６３０の中の基準領域６３１、６３２、６３３を認識し、基準領域６３１、６３２、６３３内の色の各成分の最小値および最大値を第２肌色情報として抽出して第１肌色抽出部４３１へ出力する。第１肌色抽出部４３１は、第２肌色情報における各成分の最小値および最大値を、新たな第１肌色条件における各成分の下限値および上限値としてそれぞれ設定する。第１肌色抽出部４３１は、第２肌色情報に示された範囲から予め設定されたマージンだけ広げた範囲を第１肌色条件としても良い。
【００７６】
その後、第１肌色抽出部４３１が変更された第１肌色条件を用いて、撮影画像６４０から肌色領域６４１を抽出することにより（Ｓ６２３）、肌色領域６１１に比べて肌色領域６４１における眉や目や鼻や口との境界が明確になる場合や、肌色領域６１１に含まれていた背景の物体が肌色領域６４１から除かれる場合がある。この場合、エッジ抽出部４３２により肌色領域６４１からエッジ画像６４２が抽出され（Ｓ６２４）、第１顔検出部４３０は第１顔画像の検出に成功する。肌色情報抽出部４４３により抽出された第２肌色情報に合わせて、第１肌色抽出部４３１の第１肌色条件における色の範囲を狭くしたり、第１肌色抽出部４３１の第１肌色条件における色の範囲を移動させたりすることにより、撮影画像内の顔に対して適正な色の範囲を第１肌色条件として設定することができる。第１顔検出処理が未検出時間閾値に亘って第１顔画像を検出できなかった場合に、肌色条件変更処理を実行することにより、第１肌色条件を環境に合わせて変更することができる。
【００７７】
以下、ロボットが複数の人物と対話する場合について説明する。
【００７８】
ロボットが近傍にいる複数の人物と対話する場合、応答制御部５５０は、複数の人物から対話相手を選択し、追跡位置に基づいて、ロボットの頭部の前部を対話相手に向けるように動作機構部１６０を制御する。このとき、ロボットの頭部の向きにより光源色、背景色、対話相手の肌色が変化し、これにより顔追跡処理が失敗することがある。
【００７９】
顔識別部５３０や音声認識部４１０などにより、撮影画像内の複数の人物を識別できた場合で、応答制御部５５０が対話相手を切り替える場合、切り替え後の対話相手の方向に頭部の前部を向ける。この場合、応答制御部５５０は、対話相手のＩＤに対応する第２肌色情報を肌色情報記憶部５４０から読み出し、第１顔検出部４３０の第１肌色抽出部４３１の第１肌色条件として設定する。例えば、ロボットが複数の人物と対話する場合、ロボットの首ふりに対応して、複数の人物の第１肌色条件を切り替えることができる。これにより、対話相手の切り替えに応じてロボットの頭部の向きを変えても、第１肌色抽出部４３１は、対話相手に対応する第１肌色条件を用いて、第１顔検出処理および顔追跡処理を行うことができる。
【００８０】
対話相手のＩＤが識別されると、ＩＤに対応して肌色情報記憶部５４０に記憶されている第２肌色情報を第１肌色抽出部４３１の第１肌色条件に設定することにより、対話相手に適合する第１肌色条件で第１顔検出処理を実行し、応答性と検出精度を両立することができる。
【００８１】
本実施例によれば、処理時間が短く検出精度は低い第１顔検出部４３０により検出される第１顔画像は、発話認識部５１０や顔追跡部５２０のように高速な応答が要求される処理に用いられる。処理時間が長く検出精度が高い第２顔検出部４４０により検出される第２顔画像は、顔識別部５３０のように検出精度が要求される処理に用いられる。ロボットは、顔検出処理の他に音声認識などの処理を行っており、このような顔検出処理を行うことにより、限られたリソースを用いて高速な顔検出と高精度の顔検出を両立することができる。
【００８２】
第２顔検出部４４０は、第１顔検出部４３０による第１顔画像の検出を契機として第２顔検出処理を行い、第１顔検出部４３０は、第２顔検出部４４０により検出される第２肌色情報を用いる。このように第１顔検出部４３０および第２顔検出部４４０が互いに情報を利用することにより、第１顔検出部４３０は、環境の変動や人物の変化に適応できるようになり、第２顔検出部４４０は、反応速度を改善できる。また、特別な検出器を設けることなく、一つの画像入力部１３０により取得された画像のソフトウエア処理を行うことにより、高速な顔検出と高精度の顔検出の両立を、簡単な構成および低コストで実現することができる。
【００８３】
なお、駆動部は、応答制御部５５０および動作機構部１６０などに対応する。記憶部は、肌色情報記憶部５４０などに対応する。第１色条件は、第１肌色条件などに対応する。第２色条件は、第２肌色条件などに対応する。色情報は、第２肌色情報などに対応する。第１候補画像は、第１顔検出部４３０における肌色領域などに対応する。第２候補画像は、第２顔検出部４４０における顔判定領域などに対応する。
【００８４】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【符号の説明】
【００８５】
１１０：音声入力部、  １３０：画像入力部、  １４０：音声出力部、  １５０：表示部、  １６０：動作機構部、  ２３０：第１尤度算出部、  ２４０：蓄積型算出部、  ２７０：識別部、  ３１０：第２尤度算出部、  ４００：制御部、  ４１０：音声認識部、  ４２１、４２２、４２３：フレームバッファ、  ４３０：第１顔検出部、  ４３１：肌色抽出部、  ４３２：エッジ抽出部、  ４３３：正面顔判定部、  ４４０：第２顔検出部、  ４４１：肌色抽出部、  ４４２：顔判定部、  ４４３：肌色情報抽出部、  ４５０：動体検出部、  ５１０：発話認識部、  ５２０：顔追跡部、  ５３０：顔識別部、  ５４０：肌色情報記憶部、  ５５０：応答制御部
【図１】
2015132955.tif 000003
【図２】
2015132955.tif 000004
【図３】
2015132955.tif 000005
【図４】
2015132955.tif 000006
【図５】
2015132955.tif 000007
【図６】
2015132955.tif 000008
【図７】
2015132955.tif 000009
【図８】
2015132955.tif 000010
【図９】
2015132955.tif 000011
【図１０】
2015132955.tif 000012