(57)【特許請求の範囲】
【請求項１】
自律的に行動するロボット装置であって、
顔を含んだ画像を入力する画像入力手段と、
方位選択性を持ち周波数成分の異なる複数のフィルタからなるガボア・フィルタを用いることにより、前記の入力画像から顔パターンを抽出する顔抽出手段と、
サポート・ベクタ・マシンで構成され、前記顔特徴量抽出手段によって抽出した顔パターンを、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔か否かを識別する顔識別手段と、
を具備することを特徴とするロボット装置。
【請求項２】
顔を含んだ画像を入力する画像入力手段と、
方位選択性を持ち周波数成分の異なる複数のフィルタからなるガボア・フィルタを用いることにより、前記の入力画像から顔パターンを抽出する顔抽出手段と、
サポート・ベクタ・マシンで構成され、前記顔特徴量抽出手段による顔って抽出した顔パターンを、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔か否かを識別する顔識別手段と、
を具備することを特徴とする顔認識装置。
【請求項３】
コンピュータを用いて構築される顔認識システム上で、顔画像を認識する顔認識方法であって、
前記コンピュータが備える画像入力手段が、顔画像を入力する画像入力ステップと、
前記コンピュータが備える顔抽出手段が、方位選択性を持ち周波数成分の異なる複数のフィルタからなるガボア・フィルタを用いることにより、前記の入力画像から顔パターンを抽出する顔抽出ステップと、
前記コンピュータが備えるサポート・ベクタ・マシンで構成される顔識別手段が、前記顔特徴量抽出ステップによって抽出した顔パターンを、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔か否かを識別する顔識別ステップと、
を具備することを特徴とする顔認識方法。
【請求項４】
前記特徴量抽出手段は、顔画像が大きいときには低い周波数のガボア・フィルタを用いて前記顔画像の特徴量を抽出する、
ことを特徴とする請求項２に記載の顔認識装置。
【請求項５】
前記特徴量抽出手段は、顔画像の距離情報に応じた周波数のガボア・フィルタを用いて前記顔画像の特徴量を抽出する、
ことを特徴とする請求項２に記載の顔認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェースを備えたロボット装置、並びに、ロボット用にヒューマン・インターフェースとして適用することができる顔認識方法及び顔認識装置に係り、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができるロボット装置、並びに、顔認識方法及び顔認識装置に関する。
【０００２】
さらに詳しくは、本発明は、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうロボット装置、顔認識方法及び顔認識装置に係り、特に、照明条件やカメラ・パラメータが異なる環境下でロバストな顔認識を行なうロボット装置、顔認識方法及び顔認識装置に関する。
【背景技術】
【０００３】
顔認識の技術は、ユーザに負担をかけない個人認証システムをはじめとして、性別の識別など、マンマシン・インターフェースに幅広く適用が可能である。初期は横顔を使った認識技術も検討されたが、現在は、正面画像の認識技術が中心となっている。
【０００４】
顔認識に関する研究は、パターン認識理論を検証する上でベンチマーク的な位置付けを持っており、古くからさまざまな手法が開発されてきた。そこで想定されていたアプリケーションは、セキュリティ・システムにおける認証や大規模データベースからの人物検索など、静的な環境下で正確性を要するものがほとんどである。
【０００５】
ところで、近年、外観形状が犬などの動物に模して形成され、エンターテインメントとしてのロボット装置が提供されている。例えば、ソニー株式会社は、２０００年１１月２５日に２足歩行の人間型ロボット"ＳＤＲ−３Ｘ"を公表した。この種の脚式移動ロボットは、不安定で姿勢制御や歩行制御が難しくなるが、階段や梯子の昇降や障害物の乗り越えなど、整地・不整地の区別を問わない柔軟な歩行・走行動作を実現できるという点で優れている。さらにロボットのインテリジェンスを高め、自律的な装置動作を可能とすることにより、同じ住空間において人間とロボットが共存することも夢ではなくなる。
【０００６】
インテリジェントなロボット装置は、外部からの情報（例えば、周囲環境の情報など）や内部の状態（例えば、感情状態など）などに応じて目や脚などを自律的に動作させることで、動物のような仕草を表出させることができる。
【０００７】
このようなロボット装置の出現により、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェース技術が要求されてきており、その１つとしてロボット装置による顔識別を挙げることができる。例えば、顔識別を利用することにより、ロボット装置は、多くの中からユーザ（飼い主又はともだち、若しくは正当なユーザ）を識別することができ、ユーザ毎にリアクションを変えるなどして、よりエンターテインメント性のあるものとなる。
【０００８】
ロボット装置への適用が求められている顔認識技術は、セキュリティ・システムにおける認証や大規模データベースからの人物検索などの適用分野とは相違し、多少不正確であっても、動的に変化する環境下で一定時間内に応答できることである。
【０００９】
こうしたロボット装置に搭載される顔識別のアプリケーションでは、ある与えられた１枚のシーンの中から人物を識別するという問題に加え、次のような問題を解決する必要がある。  
【００１０】
（１）ロボット装置自身が移動するため、環境の変化やその多様性を許容しなくてはならない。
【００１１】
（２）人間とロボット装置の位置関係も変化するため、インタラクション中に人間を視野内に入れ続ける必要がある。
【００１２】
（３）数多くのシーン画像から人物の識別に使える画像を選び出し、総合的に判断しなくてはならない。
【００１３】
（４）ある時間内に応答しなくてはならない。
【００１４】
従来、顔認識の手法は、ニューラル・ネットワークを用いた方法や、顔画像の各輝度値を要素とするベクトル空間に主成分分析（Ｐｒｉｎｃｉｐａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ａｎａｌｙｓｉｓ：ＰＣＡ）を適用する手法（固有空間法）などが主流であったが、これら従来技術には以下のような欠点がある。
【００１５】
まず、ニューラル・ネットワークによる顔認識では、インクリメンタルな学習が不可能である。
【００１６】
また、固有顔による方法の場合、直交する部分線形空間を仮定している（すなわち、２枚の顔画像の平均をとると人の顔になる）が、実際には線形でないことが多く、このために、モーフィング（ｍｏｒｐｈｉｎｇ）あるいはアラインメント（ａｌｉｇｎｍｅｍｔ）と呼ばれる正確な位置合わせが必要となる。この前処理により、位置、回転、大きさに対して正規化し、その影響をなくそうとするものもあるが、なかなかうまく処理できないこともあり、認識性能を低下させる原因になっている。また、顔空間の次元を著しく小さくしてその空間での分離をするため、高次元の特徴が失われる可能性もある。
【００１７】
また、上述したいずれの顔認識方法であっても、照明条件の変化やカメラ・パラメータの変化、ノイズ、位置、回転に対して影響を受け易く、ノイズ・フィルタリングやモーフィングなどの前処理を必要とする。また、汎化能力の点でも疑問が残る。
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本発明の目的は、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェースを備えたロボット装置、並びに、ロボット用にヒューマン・インターフェースとして適用することができる、優れた顔認識方法及び顔認識装置を提供することにある。
【００１９】
本発明のさらなる目的は、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【００２０】
本発明のさらなる目的は、照明条件やカメラ・パラメータが異なる環境下でロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【００２１】
本発明のさらなる目的は、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【００２２】
本発明のさらなる目的は、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【課題を解決するための手段】
【００２３】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、自律的に行動するロボット装置であって、
顔画像を入力する画像入力手段と、
方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段と、
前記顔特徴量抽出手段による顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段と、
を具備することを特徴とするロボット装置である。
【００２４】
ここで、前記顔特徴量抽出手段はガボア・フィルタで構成することができる。また、前記顔識別手段はサポート・ベクタ・マシンで構成することができる。
【００２５】
本発明の第１の側面によれば、ロボット装置は、入力画像に対してモーフィングなどの位置合わせを行なうことなく、すなわち、回転や位置などの変化に対してロバストな顔認識を行なうことができる。すなわち、ロボット装置は、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができ、ユーザ毎の対応を実時間で行うことができる。
【００２６】
ここで、前記顔特徴量抽出手段は、認識タスクに応じて前記ガボア・フィルタの種類を変更するフィルタ変更手段をさらに備えていてもよい。
【００２７】
また、前記顔特徴量抽出手段は、低周波でのフィルタリングではフィルタリング後のイメージをダウンサンプリングして次元を落すようにすることができる。ダウンサンプリングされた各ベクトルを一列に並べて、長いベクトルを構成して、後段の顔識別手段に渡す。
【００２８】
また、本発明の第２の側面は、ロボット用のヒューマン・インターフェースとして適用可能な顔認識装置又は顔認識方法であって、
顔画像を入力する画像入力手段又はステップと、
方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段又はステップと、
前記顔特徴量抽出手段又はステップによる顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段又はステップと、
を具備することを特徴とする顔認識装置又は顔認識方法である。
【００２９】
ここで、前記顔特徴量抽出手段はガボア・フィルタで構成することができる。また、前記顔識別手段はサポート・ベクタ・マシンで構成することができる。
【００３０】
本発明の第２の側面に係る顔認識装置又は顔認識方法によれば、入力画像に対してモーフィングなどの位置合わせを行なうことなく、すなわち、回転や位置などの変化に対してロバストな顔認識を行なうことができる。すなわち、動的に変化する作業環境下であってもユーザの顔を一定時間内に認識することができる。したがって、本発明の第２の側面に係る顔認識装置又は顔認識方法をロボット装置に適用することにより、該ロボット装置は、ユーザ毎に異なるリアクションを遅延時間なく実行することができるなど、エンターテインメント性を向上させることができる。
【００３１】
ここで、前記顔特徴量抽出手段又はステップは、認識タスクに応じて前記ガボア・フィルタの種類を変更するフィルタ変更手段又はステップをさらに備えていてもよい。
【００３２】
また、前記顔特徴量抽出手段又はステップは、低周波でのフィルタリングではフィルタリング後のイメージをダウンサンプリングして次元を落すようにすることができる。ダウンサンプリングされた各ベクトルを一列に並べて、長いベクトルを構成して、後段の顔認識手段又はステップに渡す。
【発明の効果】
【００３３】
本発明によれば、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェースを備えたロボット装置、並びに、ロボット用にヒューマン・インターフェースとして適用することができる、優れた顔認識方法及び顔認識装置を提供することができる。
【００３４】
また、本発明によれば、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することができる。
【００３５】
また、本発明によれば、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することができる。
【００３６】
また、本発明によれば、照明条件やカメラ・パラメータが異なる環境下でロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することができる。
【００３７】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【図面の簡単な説明】
【００３８】
【図１】図１は、本発明の実施に供される脚式移動ロボット１００を前方から眺望した様子を示した図である。
【図２】図２は、本発明の実施に供される脚式移動ロボット１００を後方から眺望した様子を示した図である。
【図３】図３は、本実施形態に係る脚式移動ロボット１００が具備する自由度構成モデルを模式的に示した図である。
【図４】図４は、脚式移動ロボット１００の制御システム構成を模式的に示した図である。
【図５】図５は、本実施形態に係るロボット装置１００の処理動作を実現するための制御プログラムのソフトウェア構成を模式的に示した図である。
【図６】図６は、ミドルウェア・レイヤ１４０の具体なソフトウェア構成を詳細に示した図である。
【図７】図７は、アプリケーション・レイヤ１４１の具体なソフトウェア構成を詳細に示した図である。
【図８】図８は、行動モデル・ライブラリ１７０の具体的なソフトウェア構成を詳細に示した図である。
【図９】図９は、各行動モデル１７０−１〜１７０−ｎから次の行動を決定するための有限確率オートマトンの仕組みを示した図である。
【図１０】図１０は、自己の行動モデル１７０−１〜１７０−ｎを形成するノードＮＯＤＥ０〜ＮＯＤＥｎにそれぞれ対応させて用意された状態遷移表を示した図である。
【図１１】図１１は、本実施形態に係る顔認識システム１０００の学習段階における機能構成を示したブロック図である。
【図１２】図１２は、本実施形態に係る顔認識システム１０００の認識段階における機能構成を示したブロック図である。
【図１３】図１３は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図１４】図１４は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図１５】図１５は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図１６】図１６は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図１７】図１７は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図１８】図１８は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図１９】図１９は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２０】図２０は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２１】図２１は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２２】図２２は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２３】図２３は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２４】図２４は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２５】図２５は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２６】図２６は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２７】図２７は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２８】図２８は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図２９】図２９は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図３０】図３０は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図３１】図３１は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図３２】図３２は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図３３】図３３は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図３４】図３４は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図３５】図３５は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図３６】図３６は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図３７】図３７は、入力画像の一例を示した図である。
【図３８】図３８は、図３７に示す入力画像を、図１３に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図３９】図３９は、図３７に示す入力画像を、図１４に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４０】図４０は、図３７に示す入力画像を、図１５に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４１】図４１は、図３７に示す入力画像を、図１６に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４２】図４２は、図３７に示す入力画像を、図１７に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４３】図４３は、図３７に示す入力画像を、図１８に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４４】図４４は、図３７に示す入力画像を、図１９に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４５】図４５は、図３７に示す入力画像を、図２０に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４６】図４６は、図３７に示す入力画像を、図２１に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４７】図４７は、図３７に示す入力画像を、図２２に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４８】図４８は、図３７に示す入力画像を、図２３に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図４９】図４９は、図３７に示す入力画像を、図２４に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５０】図５０は、図３７に示す入力画像を、図２５に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５１】図５１は、図３７に示す入力画像を、図２６に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５２】図５２は、図３７に示す入力画像を、図２７に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５３】図５３は、図３７に示す入力画像を、図２８に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５４】図５４は、図３７に示す入力画像を、図２９に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５５】図５５は、図３７に示す入力画像を、図３０に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５６】図５６は、図３７に示す入力画像を、図３１に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５７】図５７は、図３７に示す入力画像を、図３２に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５８】図５８は、図３７に示す入力画像を、図３３に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図５９】図５９は、図３７に示す入力画像を、図３４に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図６０】図６０は、図３７に示す入力画像を、図３５に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図６１】図６１は、図３７に示す入力画像を、図３６に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図６２】図６２は、画像中の顔の大きさと距離の関係を示した図である。
【図６３】図６３は、各顔の大きさの画像を高速フーリエ変換して周波数領域のピークを求める処理を説明するための図である。
【図６４】図６４は、距離とガボア・フィルタの周波数の関係を示した図である。
【図６５】図６５は、距離情報を利用したガボア・フィルタによる顔抽出処理の手順を示したフローチャートである。
【発明を実施するための形態】
【００３９】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
【００４０】
後述する本発明の実施形態は、本発明を、外観形状がヒトに模して形成された２足脚式移動のロボット装置すなわちヒューマノイド・ロボット（ｈｕｍａｎｏｉｄ  ｒｏｂｏｔ）に適用したものである。但し、本発明の要旨はこれに限定されるものではなく、例えば犬などの４足脚式移動ロボットにも同様に本発明を適用することができる。
【００４１】
本実施形態に係るロボット装置は、外部からの情報（例えば、周囲環境の情報など）や内部の状態（例えば、感情状態など）などに応じて目や脚等を自律的に動作させることで、リアリティのある仕草を表出させている。そして、このロボット装置は、ヒューマン・インターフェースとしての顔認識機能を装備して、ユーザ（友達又は飼い主）などの顔を識別することができるものとして構成されており、顔認識結果に基づいて、ユーザ毎に異なるリアクションを形成することができる。
【００４２】
Ａ．ロボットの構成
図１及び図２には本発明の実施に供される脚式移動ロボット１００を前方及び後方の各々から眺望した様子を示している。さらに、図３には、この脚式移動ロボット１００が具備する関節自由度構成を模式的に示している。
【００４３】
図３に示すように、脚式移動ロボット１００は、２本の腕部と頭部１を含む上肢と、移動動作を実現する２本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成された、複数の肢を備えた構造体である。
【００４４】
頭部１を支持する首関節は、首関節ヨー軸２と、首関節ピッチ軸３と、首関節ロール軸４という３自由度を有している。
【００４５】
また、各腕部は、肩関節ピッチ軸８と、肩関節ロール軸９と、上腕ヨー軸１０と、肘関節ピッチ軸１１と、前腕ヨー軸１２と、手首関節ピッチ軸１３と、手首関節ロール軸１４と、手部１５とで構成される。手部１５は、実際には、複数本の指を含む多関節・多自由度構造体である。但し、手部１５の動作はロボット１００の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、各腕部は７自由度を有するとする。
【００４６】
また、体幹部は、体幹ピッチ軸５と、体幹ロール軸６と、体幹ヨー軸７という３自由度を有する。
【００４７】
また、下肢を構成する各々の脚部は、股関節ヨー軸１６と、股関節ピッチ軸１７と、股関節ロール軸１８と、膝関節ピッチ軸１９と、足首関節ピッチ軸２０と、足首関節ロール軸２１と、足部２２とで構成される。本明細書中では、股関節ピッチ軸１７と股関節ロール軸１８の交点は、本実施形態に係る脚式移動ロボット１００の股関節位置を定義する。人体の足部２２は実際には多関節・多自由度の足底を含んだ構造体であるが、本実施形態に係る脚式移動ロボット１００の足底はゼロ自由度とする。したがって、各脚部は６自由度で構成される。
【００４８】
以上を総括すれば、本実施例に係る脚式移動ロボット１００全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。但し、エンターテインメント向けの脚式移動ロボット１００が必ずしも３２自由度に限定される訳ではない。設計・製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【００４９】
上述したような脚式移動ロボット１００が持つ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定構造体に対して姿勢制御を行うことなどの要請から、アクチュエータは小型且つ軽量であることが好ましい。本実施例では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載することとした。なお、この種のＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開２０００−２９９９７０号公報（特願平１１−３３３８６号）に開示されている。
【００５０】
図４には、脚式移動ロボット１００の制御システム構成を模式的に示している。この制御システムは、コントロール部１１６と、このロボット装置１００の動力源としてのバッテリ１１７とで構成され、例えば、脚式移動ロボットの機体胴体部やその背面部に搭載されている。コントロール部１１６は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０と、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１１と、フラッシュＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１２と、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）カード・インターフェース回路１１３及び信号処理回路１１４が内部バス１１５を介して相互に接続されることにより構成される。また、機体には、ロボット装置１００の向きや動きの加速度を検出するための角速度センサ１１８及び加速度センサ１１９なども装備されている。
【００５１】
また、機体の頭部には、外部の状況を撮像するためのＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ：電荷結合素子）カメラ１２０と、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチ・センサ１２１と、前方に位置する物体までの距離を測定するための距離センサ１２２と、外部音を集音するためのマイクロフォン１２３と、鳴き声等の音声を出力するためのスピーカ１２４などがそれぞれ機体上の所定位置に配設されている。ここで、ＣＣＤカメラ１２０は、顔識別において顔画像を撮像するための画像入力手段を構成する。
【００５２】
さらに、各脚部ユニットの関節部分や、各脚部ユニット及び胴体部ユニットの各連結部分、並びに頭部ユニット及び胴体部ユニットの連結部分などには、それぞれ自由度数分のアクチュエータ１２５−１〜１２５−ｎ及びポテンショメータ１２６−１〜１２６−ｎが配設されている。例えば、アクチュエータ１２５−１〜１２５−ｎはそれぞれ１つのサーボモータによって構成される。これらサーボモータの駆動により、脚部ユニットが制御されて、目標の姿勢あるいは動作に遷移する。
【００５３】
そして、前述した角速度センサ１１８、加速度センサ１１９、タッチ・センサ１２１、距離センサ１２２、マイクロフォン１２３、スピーカ１２４、並びに各ポテンショメータ１２６−１〜１２６−ｎなどの各種センサ、及び各アクチュエータ１２５−１〜１２５−ｎは、それぞれ対応するハブ１２７−１〜１２７−ｎに集線された後に、コントロール部１１６の信号処理回路１１４と接続されている。また、ＣＣＤカメラ１２０及びバッテリ１１７は、それぞれ信号処理回路１１４と直接接続されている。
【００５４】
信号処理回路１ｌ４は、上述の各センサから供給されるセンサ・データや画像データ、及び音声データを逐次取り込んで、これらをそれぞれ内部バス１１５を介してＤＲＡＭ１１１内の所定のアドレスに適宜格納する。また、信号処理回路１１４は、これとともにバッテリ１１７から供給されるバッテリ残量を表すバッテリ残量データを逐次取り込み、これも同様にＤＲＡＭ１１１内の所定のアドレスに格納する。
【００５５】
このようにしてＤＲＡＭ１１１に格納された各センサ・データ、画像データ、音声データ、並びにバッテリ残量データは、この後、ＣＰＵ１１０がこのロボット装置１００の機体の動作制御を行う際に利用可能となる。
【００５６】
実際上、ＣＰＵ１１０は、ロボット装置１００の電源が投入された初期時、胴体部ユニット２の図示しないＰＣカード・スロットに装填されたメモリ・カード１２８又はフラッシュＲＯＭ１１２に格納された制御プログラムをＰＣカード・インターフェース回路１１３経由で又は直接読み出して、これをＤＲＡＭ１１１にロードする。
【００５７】
また、ＣＰＵ１１０は、このようなプログラム・ロードの後、上述したように信号処理回路１１４よりＤＲＡＭ１１１に逐次格納されている各センサ・データ、画像データ、音声データ、並びにバッテリ残量データに基づいて、自己及び機体周囲の状況や、使用者からの指示及び働きかけの有無などを判断するようになっている。
【００５８】
さらに、ＣＰＵ１１０は、この判断結果及びＤＲＡＭ１１１に格納した制御プログラムに基づいて続く行動を決定するとともに、当該決定結果に基づいて必要なアクチュエータ１２５−１〜１２５−ｎを駆動させることにより、頭部を左右に振らせたり、各脚部ユニットを駆動させたりして歩行やその他の脚式作業を実行させる。
【００５９】
また、このようなプログラム実行の際、ＣＰＵ１１０は、必要に応じて音声データを生成して、これを信号処理回路１１４経由で音声信号としてスピーカ２４に与えることにより、当該音声信号に基づく音声を外部に出力させたりする。
【００６０】
このようにして、このロボット装置１００においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るように構成されている。
【００６１】
Ｂ．制御プログラムのソフトウェア構成
図５には、本実施形態に係るロボット装置１００の処理動作を実現するための制御プログラムのソフトウェア構成を模式的に示している。
【００６２】
同図に示すように、デバイス・ドライバ・レイヤ１３０は、この制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット３１から構成されている。この場合、各デバイス・ドライバは、ＣＣＤカメラ２０（図４を参照のこと）やタイマなどの通常のコンピュータ処理に用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、一般には、対応するハードウェアからの割り込みに応答して処理を開始するようになっている（割り込みハンドラ）。
【００６３】
また、ロボティック・サーバ・オブジェクト１３２は、デバイス・ドライバ・レイヤ１３０の最下位層に位置し、例えば上述の各種センサやアクチュエータ１２５−１〜１２５−ｎなどのハードウェアにアクセスするためのインターフェースを提供するソフトウェア群でなるバーチャル・ロボット１３３と、電源の切換えなどを管理するソフトウェア群でなるパワー・マネージャ１３４と、他のさまざまのデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ１３５と、ロボット装置１００の機構を管理するソフトウェア群でなるデザインド・ロボット１３６とで構成される。
【００６４】
マネージャ・オブジェクト１３７は、オブジェクト・マネージャ１３８及びサービス・マネージャ１３９から構成される。オブジェクト・マネージャ１３８は、ロボティック・サーバ・オブジェクト１３２、ミドルウェア・レイヤ１４０、及びアプリケーション・レイヤ１４１に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群である。また、サービス・マネージャ１３９は、メモリ・カード１２８（図４を参照のこと）に格納されたコネクション・ファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【００６５】
ミドルウェア・レイヤ１４０は、ロボティック・サーバ・オブジェクト１３２の直近上位に位置し、画像処理や音声処理など本実施形態に係るロボット装置１００の基本的な機能を提供するソフトウェア群から構成される。また、アプリケーション・レイヤ１４１は、ミドルウェア・レイヤ４０の直近上位に位置し、当該ミドルウェア・レイヤ１４０を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置１００の行動を決定するためのソフトウェア群から構成される。
【００６６】
図６には、ミドルウェア・レイヤ１４０の具体なソフトウェア構成を詳細に示している。
【００６７】
同図に示すように、ミドルウェア・レイヤ１４０は、騒音検出用、温度検出用、明るさ検出用、音階認識用、距離検出用、姿勢検出用、タッチ・センサ用、動き検出用、及び色認識用の各信号処理モジュール１５０〜１５８、並びに入力セマンティクス・コンバータ・モジュール１５９などを有する認識系ミドルウェア１６０と、出力セマンティクス・コンバータ・モジュール１６８、姿勢管理用、トラッキング用、モーション再生用、歩行用、転倒復帰用、及び、音再生用の各信号処理モジュール１６１〜１６７などを有する出力系ミドルウェア１６９とで構成される。
【００６８】
認識系ミドルウェア１６０の各信号処理モジュール１５０〜１５８は、ロボティック・サーバ・オブジェクト１３２のバーチャル・ロボット１３３によりＤＲＡＭ１１（図４を参照のこと）から読み出される各センサ・データや画像データ（顔画像データ）及び音声データのうちの対応するデータを取り込んで、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクス・コンバータ・モジュール１５９に与える。ここで、例えば、バーチャル・ロボット１３３は、所定の通信規約によって、信号の授受あるいは変換をする部分として構成されている。
【００６９】
入力セマンティクス・コンバータ・モジュール１５９は、これら各信号処理モジュール１５０〜１５８から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ボールを検出した」、「転倒を検出した」、「撫でられた」、「叩かれた」、「ドミソの音階が聞こえた」、「動く物体を検出した」、又は、「障害物を検出した」、「人Ａを見つけた（認識した）」などの自己及び周囲の状況を認識したり、使用者からの指令及び働きかけを認識したりして、認識結果をアプリケーション・レイヤ１４１に出力するようになっている。
【００７０】
図７には、アプリケーション・レイヤ１４ｌの具体なソフトウェア構成を詳細に示している。同図に示すように、アプリケーション・レイヤ１４ｌは、行動モデル・ライブラリ１７０、行動切換えモジュール１７１、学習モジュール１７２、感情モデル１７３、及び本能モデル１７４の５つのモジュールで構成される。
【００７１】
図８には、行動モデル・ライブラリ１７０の具体的なソフトウェア構成を詳細に示している。同図に示すように、行動モデル・ライブラリ１７０には、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」、「人Ａを見つけた（認識した）」などのあらかじめ選択された幾つかの条件項目に対応させて、それぞれ独立した行動モデル１７０−１〜１７０−ｎが設けられている。
【００７２】
そして、これら行動モデル１７０−１〜１７０−ｎは、それぞれ入力セマンティクス・コンバータ・モジュール１５９から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、後述するように、必要に応じて感情モデル１７３に保持されている対応する情動のパラメータ値や、本能モデル１７４に保持されている対応する欲求のパラメータ値を参照しながら後続の行動をそれぞれ決定して、この決定結果を行動切換えモジュール１７１に出力するになっている。
【００７３】
なお、本実施形態の場合、各行動モデル１７０−１〜１７０−ｎは、次の行動を決定する手法として、図９に示すような有限確率オートマトンと呼ばれるアルゴリズムを用いる。有限確率オートマトンによれば、同図に示すように、１つのノード（状態）ＮＯＤＥ０〜ＮＯＤＥｎから他のいずれのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移するかを各ノードＮＯＤＥ０〜ＮＯＤＥｎに間を接続するアークＡＲＣ１〜ＡＲＣｎに対してそれぞれ設定された遷移確率Ｐ１〜Ｐｎに基づいて確率的に決定することができる。
【００７４】
具体的には、各行動モデル１７０−１〜１７０−ｎは、それぞれ自己の行動モデル１７０−１〜１７０−ｎを形成するノードＮＯＤＥ０〜ＮＯＤＥｎにそれぞれ対応させて、これらノードＮＯＤＥ０〜ＮＯＤＥｎ毎に、図１０に示すような状態遷移表１８０を有している。
【００７５】
この状態遷移表１８０では、そのノードＮＯＤＥ０〜ＮＯＤＥｎにおいて遷移条件とする入力イベント（認識結果）が「入力イベント名」の行に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の行における対応する列に記述されている。
【００７６】
例えば、図１０に示す状態遷移表１８０で表されるノードＮＯＤＥ１００では、「ボールを検出（ＢＡＬＬ）」という認識結果が与えられた場合に、当該認識結果とともに与えられるそのボールの「大きさ（ＳＩＺＥ）」が「０から１０００」の範囲であることが他のノードに遷移するための条件となっている。同様に、「障害物を検出（ＯＢＳＴＡＣＬＥ）」という認識結果が与えられた場合には、当該認識結果とともに与えられるその障害物までの「距離（ＤＩＳＴＡＮＣＥ）」が「０から１００」の範囲であることが他のノードに遷移するための条件である。
【００７７】
また、このノードＮＯＤＥ１００では、認識結果の入力がない場合においても、行動モデル１７０−１〜１７０−ｎが周期的に参照する感情モデル１７３及び本能モデル１７４にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル１７３に保持された「喜び（ＪＯＹ）」、「驚き（ＳＵＲＰＲＩＳＥ）」、若しくは「悲しみ（ＳＵＤＮＥＳＳ）」のいずれかのパラメータ値が「５０から１００」の範囲であるときには、他のノードに遷移することができるようになっている。
【００７８】
また、状態遷移表１８０では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の列にそのノードＮＯＤＥ０〜 ＮＯＤＥｎから遷移できるノード名が列記されているとともに、「入力イベント名」、「データ値」及び「データの範囲」の行に記述されたすべての条件が揃ったときに遷移できる他の各ノードＮＯＤＥ０〜ＮＯＤＥｎへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述されており、そのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は１００［％］となる。
【００７９】
したがって、図１０に示す状態遷移表１８０で表されるノードＮＯＤＥ１００では、例えば「ボールを検出（ＢＡＬＬ）」し、そのボールの「ＳＩＺＥ（大きさ）」が「０から１０００」の範囲であるという認識結果が与えられた場合には、「３０［％］」の確率で「ノードＮＯＤＥ１２０（ｎｏｄｅ  １２０）」に遷移でき、そのとき「ＡＣＴＩＯＮ１」の行動が出力すなわち機体動作が実行されることとなる。
【００８０】
各行動モデル１７０−１〜１７０−ｎは、それぞれこのような状態遷移表１８０として記述されたノードＮＯＤＥ０〜 ＮＯＤＥｎがいくつも繋がるようにして構成されている。したがって、入力セマンティクス・コンバータ・モジュール１５９から認識結果が与えられたときなどに、対応するノードＮＯＤＥ０〜ＮＯＤＥｎの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換えモジュール１７１に出力するようなっている。また、図１０に示す状態遷移表に、「人Ａを見つけた（認識した）」という入力イベント名を持つエントリを用意し、さらに遷移条件などを記述しておくことにより、ロボット装置１００が特定のユーザを認識したときに起こすべきリアクションを規定することができる。
【００８１】
図７に示した行動切換えモジュール１７１は、行動モデル・ライブラリ１７０の各行動モデル１７０−１〜１７０−ｎからそれぞれ出力される行動のうち、あらかじめ定められた優先順位の高い行動モデル１７０−１〜１７０−ｎから出力された行動を選択して、当該行動を実行すべき旨のコマンド（以下、これを「行動コマンド」という。）をミドルウェア・レイヤ１４０の出力セマンティクス・コンバータ・モジュール１６８に送出するようになっている。なお、本実施形態においては、図８において下側に表記された行動モデル１７０−１〜１７０−ｎほど優先順位が高く設定されているものとする。
【００８２】
また、行動切換えモジュール１７１は、行動完了後に出力セマンティクス・コンバータ・モジュール１６８から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール１７２、感情モデル１７３、並びに本能モデル１７４に通知する。
【００８３】
一方、学習モジュール１７２は、入力セマンティクス・コンバータ・モジュール１５９から与えられる認識結果のうち、「叩かれた」や「撫でられた」など、使用者からの働きかけとして受けた教示の認識結果を入力する。
【００８４】
そして、学習モジュール１７２は、この認識結果及び行動切換えモジュール１７１からの通知に基づいて、「叩かれた（叱られた）」ときにはその行動の発現確率を低下させ、「撫でられた（誉められた）」ときにはその行動の発現確率を上昇させるように、行動モデル・ライブラリ１７０における対応する行動モデル１７０−１〜１７０−ｎの対応する遷移確率を変更する。
【００８５】
他方、感情モデル１７３は、「喜び（ｊｏｙ）」、「悲しみ（ｓａｄｎｅｓｓ）」、「怒り（ａｎｇｅｒ）」、「驚き（ｓｕｒｐｒｉｓｅ）」、「嫌悪（ｄｉｓｇｕｓｔ）」及び「恐れ（ｆｅａｒ）」の合計６つの情動について、情動毎にその情動の強さを表すパラメータを保持している。そして、感情モデル１７３は、これら各情動のパラメータ値を、それぞれ入力セマンティクス・コンバータ・モジュール１５９から与えられる「叩かれた」及び「撫でられた」などの特定の認識結果と、経過時間及び行動切換えモジュール１７１からの通知となどに基づいて周期的に更新する。
【００８６】
具体的には、感情モデル１７３は、入力セマンティクス・コンバータ・モジュール１５９から与えられる認識結果と、そのときのロボット装置１００の行動と、前回更新してからの経過時間となどに基づいて所定の演算式により算出されるそのときのその情動の変動量を△Ｅ［ｔ］、現在のその情動のパラメータ値をＥ［ｔ］、その情動の感度を表す係数をｋｅとして、下式（１）によって次の周期におけるその情動のパラメータ値Ｅ［ｔ＋１］を算出し、これを現在のその情動のパラメータ値Ｅ［ｔ］と置き換えるようにして、その情動のパラメータ値を更新する。また、感情モデル１７３は、これと同様にしてすべての情動のパラメータ値を更新する。
【００８７】
【数１】
0004609584.tif 000002
【００８８】
なお、各認識結果や出力セマンティクス・コンバータ・モジュール１６８からの通知が各情動のパラメータ値の変動量△Ｅ［ｔ］にどの程度の影響を与えるかはあらかじめ決められている。例えば、「叩かれた」といった認識結果は、「怒り」を表す情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与える。また、「撫でられた」といった認識結果は、「喜び」を表す情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与えるようになっている。
【００８９】
ここで、出力セマンティクス・コンバータ・モジュール１６８からの通知とは、いわゆる行動のフィードバック情報（行動完了情報）であり、行動の出現結果の情報である。感情モデル１７３は、このような情報によっても感情を変化させる。これは、例えば、「吠える」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクス・コンバータ・モジュール１６８からの通知は、上述した学習モジュール１７２にも入力されている。学習モジュール１７２は、その通知に基づいて行動モデル１７０−１〜１７０−ｎの対応する遷移確率を変更する。
【００９０】
なお、行動結果のフィードバックは、行動切換えモジュレータ１７１の出力（感情が付加された行動）によりなされるものであってもよい。
【００９１】
一方、本能モデル１７４は、「運動欲（ｅｘｅｒｃｉｓｅ）」、「愛情欲（ａｆｆｅｃｔｉｏｎ）」、「食欲（ａｐｐｅｔｉｔｅ）」及び「好奇心（ｃｕｒｉｏｓｉｔｙ）」の互いに独立した４つの欲求について、これら欲求毎にその欲求の強さを表すパラメータを保持している。そして、本能モデル１７４は、これらの欲求のパラメータ値を、それぞれ入力セマンティクス・コンバータ・モジュール１５９から与えられる認識結果や、経過時間及び行動切換えモジュール１７１からの通知などに基づいて周期的に更新する。
【００９２】
具体的には、本能モデル１７４は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクス・コンバータ・モジュール１６８からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔＩ［ｋ］、現在のその欲求のパラメータ値をＩ［ｋ］、その欲求の感度を表す係数ｋｉとして、所定周期で下式（２）を用いて次の周期におけるその欲求のパラメータ値Ｉ［ｋ＋１］を算出し、この演算結果を現在のその欲求のパラメータ値Ｉ［ｋ］と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル１７４は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【００９３】
【数２】
0004609584.tif 000003
【００９４】
なお、認識結果及び出力セマンティクス・コンバータ・モジュール１６８からの通知などが各欲求のパラメータ値の変動量△Ｉ［ｋ］にどの程度の影響を与えるかはあらかじめ決められている。例えば、出力セマンティクス・コンバータ・モジュール１６８からの通知は、「疲れ」のパラメータ値の変動量△Ｉ［ｋ］に大きな影響を与えるようになっている。
【００９５】
なお、本実施の形態においては、各情動及び各欲求（本能）のパラメータ値がそれぞれ０から１００までの範囲で変動するように規制されており、また係数ｋｅ、ｋｉの値も情動毎及び欲求毎に個別に設定されている。
【００９６】
一方、ミドルウェア・レイヤ１４０の出力セマンティクス・コンバータ・モジュール１６８は、図６に示したように、上述のようにしてアプリケーション・レイヤ１４１の行動切換えモジュール１７１から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング（ボールを追いかける）」といった抽象的な行動コマンドを出力系セマンティックス・コンバータ・モジュール１６９内の対応する信号処理モジュール１６１〜１６７に与える。
【００９７】
そして、これら信号処理モジュール１６１〜１６７は、行動コマンドが与えられると、当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ１２５−１〜１２５−ｎ（図４を参照のこと）に与えるべきサーボ指令値や、スピーカ１２４から出力する音の音声データなどの駆動データを生成して、これらのデータをロボティック・サーバ・オブジェクト１３２のバーチャル・ロボット１３３及び信号処理回路１１４を順次介して対応するアクチュエータ１２５−１〜１２５−ｎ又はスピーカ１２４に順次送出する。
【００９８】
このようにしてロボット装置１００においては、制御プログラムに基づいて、自己（内部）及び周囲（外部）の状況や、使用者からの指示及び働きかけに応じた自律的な行動を行うことができるようになされている。
【００９９】
Ｃ．ロボット装置による顔識別
インテリジェントなロボット装置には、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェース技術が要求されている。本実施形態に係るロボット装置１００は、顔認識技術を適用することにより、多くの中からユーザ（飼い主又はともだち、若しくは正当なユーザ）を識別するとともに、認識結果に基づいて（すなわちユーザに応じて）リアクションを制御することによって、より高いエンターテインメント性を実現する。
【０１００】
本実施形態に係る顔認識システム１０００は、動的に変化する環境下で一定時間内に応答することができるが、ＣＣＤカメラによる撮像画像から顔パターンを抽出する顔抽出処理部１００１と、抽出された顔パターンを基に顔を認識する顔認識部１００２で構成される。本実施形態では、顔パターンを抽出する（顔画像の特徴量を抽出する）顔抽出処理には、方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、前記顔画像の特徴量を抽出する「ガボア・フィルタリング（Ｇａｂｏｒ  Ｆｉｌｔｅｒｉｎｇ）」を採用している。また、顔パターンから顔を認識する顔認識処理には、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する「サポート・ベクタ・マシン（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ：ＳＶＭ）」を採用している。
【０１０１】
この顔認識システム１０００は、顔パターンを顔認識部が学習する学習段階と、学習されたデータを基に、撮像画像から抽出された顔パターンを認識する認識段階を持つ。
【０１０２】
図１１には、本実施形態に係る顔認識システム１０００の学習段階の構成を、また、図１２には、同顔認識システム１０００の認識段階の構成をそれぞれ示している。
【０１０３】
学習段階においては、図１１に示すように、ＣＣＤカメラから入力されたユーザの撮像画像をガボア・フィルタリング１００１で顔抽出した結果がサポート・ベクタ・マシン１００２に投入される。サポート・ベクタ・マシン１００２では、外部から供給される学習用のデータすなわち教師データを用いて、暫定的な識別関数を得る。
【０１０４】
また、識別段階においては、図１２に示すように、ＣＣＤカメラから入力されたユーザの撮像画像をガボア・フィルタリング１００１で顔抽出した結果がサポート・ベクタ・マシン１００２に投入される。サポート・ベクタ・マシン１００２では、暫定的に得られた識別関数をさまざまなデータベース上の画像に試して顔の検出を行なう。そして、検出に成功したものを顔データとして出力する。また、検出に失敗したものを非顔データとして学習データに追加して、さらに学習をし直す。
【０１０５】
以下では、ガボア・フィルタリングとサポート・ベクタ・マシンについて、それぞれ詳細に説明する。
【０１０６】
ガボア・フィルタリング：
人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判っている。これは、垂直の線に対して発火する細胞と、水平の線に反応する細胞で構成される。ガボア・フィルタリングは、これと同様に、方位選択性を持つ複数のフィルタで構成される空間フィルタである。
【０１０７】
ガボア・フィルタは、ガボア関数によって空間表現される。ガボア関数ｇ（ｘ，ｙ）は、下式（３）に示すように、コサイン成分からなるキャリアｓ（ｘ，ｙ）と、２次元ガウス分布状のエンベロープｗr（ｘ，ｙ）とで構成される。
【０１０８】
【数３】
0004609584.tif 000004
【０１０９】
キャリアｓ（ｘ，ｙ）は、複素関数を用いて、下式（４）のように表現される。ここで、座標値（ｕ0，ｖ0）は空間周波数を表し、また、Ｐはコサイン成分の位相を表す。
【０１１０】
【数４】
0004609584.tif 000005
【０１１１】
上式（４）に示すキャリアは、下式（５）に示すように、実数成分Ｒｅ（ｓ（ｘ，ｙ））と虚数成分Ｉｍ（ｓ（ｘ，ｙ））に分離することができる。
【０１１２】
【数５】
0004609584.tif 000006
【０１１３】
一方、２次元ガウス分布からなるエンベロープは、下式（６）のように表現される。
【０１１４】
【数６】
0004609584.tif 000007
【０１１５】
ここで、座標値（ｘ0，ｙ0）はこの関数のピークであり、定数ａ及びｂはガウス分布のスケール・パラメータである。また、添え字ｒは、下式（７）に示すような回転操作を意味する。
【０１１６】
【数７】
0004609584.tif 000008
【０１１７】
したがって、上式（４）及び上式（６）より、ガボア・フィルタは、下式（８）に示すような空間関数として表現される。
【０１１８】
【数８】
0004609584.tif 000009
【０１１９】
本実施形態に係る顔抽出部１００１は、８種類の方向と３通りの周波数を採用して、合計２４個のガボア・フィルタを用いて顔抽出処理を行なう。本実施形態で使用されるガボア・フィルタの空間領域での様相を図１３〜図３６に示しておく。このうち、図１３〜図２０は、方向を２２．５度ずつずらした高周波成分のガボア・フィルタである。また、図２１〜図２８は、方向を２２．５度ずつずらした中周波成分のガボア・フィルタである。また、図２９〜図３６は、方向を２２．５度ずつずらした低周波成分のガボア・フィルタである。但し、各図における濃淡は紙面に直交する座標軸方向の成分に相当すると理解されたい。
【０１２０】
ガボア・フィルタのレスポンスは、Ｇiをｉ番目のガボア・フィルタとし、ｉ番目のガボアの結果（Ｇａｂｏｒ  Ｊｅｔ）をＪiとし、入力イメージをＩとし、すると、以下の式（９）で表される。式（９）の演算は、実際には高速フーリエ変換を用いて高速化することができる。
【０１２１】
【数９】
0004609584.tif 000010
【０１２２】
図３７に示すような入力画像（但し、入力画像は２０×２０画素とする）を、図１３〜図３６に示す各ガボア・フィルタでフィルタリングされた結果を、図３８〜図６１に示しておく。ガボア・フィルタは、たいていすべての周波数を埋め尽くすことができる。
【０１２３】
作成したガボア・フィルタの性能を調べるためには、フィルタリングして得られた画像を再構築することによって行なう。再構築されたイメージＨは、下式（１０）のように表される。
【０１２４】
【数１０】
0004609584.tif 000011
【０１２５】
そして、入力画像Ｉと再構築された画像ＨとのエラーＥは、下式（１１）のように表される。
【０１２６】
【数１１】
0004609584.tif 000012
【０１２７】
このエラーＥを最小にするような最適なａを求めることにより再構築することができる。
【０１２８】
サポート・ベクタ・マシン：
本実施形態では、顔認識に関して、パターン認識の分野で最も学習汎化能力が高いとされるサポート・ベクタ・マシン（ＳＶＭ）を用いて該当する顔か否かの識別を行なう。
【０１２９】
ＳＶＭ自体に関しては、例えばＢ．ｓｈｏｌｋｏｐｆ外著の報告（Ｂ． Ｓｈｏｌｋｏｐｆ，Ｃ．Ｂｕｒｇｅｓ，Ａ．Ｓｍｏｌａ，“Ａｄｖａｎｃｅ  ｉｎ  Ｋｅｒｎｅｌ  Ｍｅｔｈｏｄｓ  Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｌｅａｒｎｉｎｇ”，Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ，１９９９．）を挙げることができる。本発明者らが行なった予備実験の結果からは、ＳＶＭによる顔認識方法は、主成分分析（ＰＣＡ）やニューラル・ネットワークを用いる手法に比べ、良好な結果を示すことが判っている。
【０１３０】
ＳＶＭは、識別関数に線形識別器(パーセプトロン)を用いた学習機械であり、カーネル関数を使うことで非線形空間に拡張することができる。また、識別関数の学習では、クラス間分離のマージンを最大にとるように行なわれ、その解は２次数理計画法を解くことで得られるため、グローバル解に到達できることを理論的に保証することができる。
【０１３１】
通常、パターン認識の問題は、テスト・サンプルｘ＝（ｘ１，ｘ２，…，ｘｎ）に対して、以下の識別関数ｆ（ｘ）を求めることである。
【０１３２】
【数１２】
0004609584.tif 000013
【０１３３】
ここで、ＳＶＭの学習用の教師ラベルを以下のようにおく。
【０１３４】
【数１３】
0004609584.tif 000014
【０１３５】
すると、ＳＶＭにおける顔パターンの認識を以下に示す制約条件の下での重み因子ｗの二乗の最小化する問題としてとらえることができる。
【０１３６】
【数１４】
0004609584.tif 000015
【０１３７】
このような制約のついた問題は、ラグランジュの未定定数法を用いて解くことができる。すなわち、以下に示すラグランジュをまず導入して、
【０１３８】
【数１５】
0004609584.tif 000016
【０１３９】
次いで、下式に示すように、ｂ，ｗの各々について偏微分する。
【０１４０】
【数１６】
0004609584.tif 000017
【０１４１】
この結果、ＳＶＭにおける顔パターンの識別を以下に示す２次計画問題としてとらえることができる。
【０１４２】
【数１７】
0004609584.tif 000018
【０１４３】
特徴空間の次元数が、訓練サンプルの数よりも少ない場合は、スラック変数ξ≧０を導入して、制約条件を以下のように変更する。
【０１４４】
【数１８】
0004609584.tif 000019
【０１４５】
最適化については、以下の目的関数を最小化する。
【０１４６】
【数１９】
0004609584.tif 000020
【０１４７】
上式（１９）において、Ｃは、制約条件をどこまで緩めるかを指定する係数であり、実験的に値を決定する必要がある。
【０１４８】
【数２０】
0004609584.tif 000021
【０１４９】
しかし、上式（２０）のままでは、非線型の問題を解くことはできない。そこで、本実施形態では、カーネル関数Ｋ（ｘ，ｘ'）を導入して、一旦、高次元の空間に写像して（カーネル・トリック）、その空間で線形分離することにしている。したがって、元の空間では非線型分離していることと同等となる。
【０１５０】
カーネル関数は、ある写像Φを用いて下式のように表される。
【０１５１】
【数２１】
0004609584.tif 000022
【０１５２】
また、式（１２）に示した識別関数も、以下のように表すことができる。
【０１５３】
【数２２】
0004609584.tif 000023
【０１５４】
また、学習に関しても、以下に示す２次計画問題としてとらえることができる。
【０１５５】
【数２３】
0004609584.tif 000024
【０１５６】
カーネルとしては、以下に示すガウシアン・カーネル（ＲＢＦ（Ｒａｄｉｕｓ  Ｂａｓｉｃ  Ｆｕｎｃｔｉｏｎ））などを用いることができる。
【０１５７】
【数２４】
0004609584.tif 000025
【０１５８】
なお、ガボア・フィルタリングに関しては、認識タスクに応じてフィルタの種類を変更するようにしてもよい。
【０１５９】
低周波でのフィルタリングでは、フィルタリング後のイメージすべてをベクトルとして持っているのは冗長である。そこで、ダウンサンプリングして、ベクトルの次元を落すようにしてもよい。ダウンサンプリングされた２４種類のベクトルを一列に並べ、長いベクトルにする。
【０１６０】
また、本実施形態において顔パターンの認識に適用されるＳＶＭは、特徴空間を２分する識別器なので、「人Ａ」か「人Ａでない」かを判別するように学習する。そのため、データベースの画像中から、まず人Ａの顔画像を集め、ガボア・フィルタリング後のベクトルに「人Ａでない」というラベルを貼る。一般に、集める顔画像の数は、特徴空間の次元より多い方がよい。１０人の顔を認識したい場合は、同様に、「人Ｂである」、「人Ｂでない」…のように、それぞれの人に対して１つの識別器を構成する。
【０１６１】
このような学習により、例えば、「人Ａ」と「人Ａでない」を分けるサポート・ベクタが求まる。ＳＶＭは、特徴空間を２つに仕切る識別器であり、新しい顔画像が入力されてきたときに、やはりガボア・フィルタリングのベクトルが、求めたサポート・ベクタが構成する境界面のどちら側にあるかで認識結果を出力する。そして、境界に対して、「人Ａ」の領域にあれば「人Ａ」と認識することができる。また、「人Ａではない」領域であれば「人Ａでない」と認識される。
【０１６２】
ＣＣＤカメラなどから入力される入力画像から顔の部分として切り取られる領域は一定ではない。このため、特徴空間で認識したいカテゴリとは離れた点に投影される可能性がある。したがって、目や鼻、口といった特徴を持つパーツを推定してアフィン変換によりモーフィングすることにより認識率が向上する可能性がある。
【０１６３】
また、認識性能を上げるために、ブートストラップ手法を採用することができる。学習に用いる画像とは別に画像を撮影して、ブートストラップに用いる。これは、学習した識別器が誤った認識結果を出したときに、その入力画像を学習セットに投入して学習し直すことを意味する。
【０１６４】
また、認識性能を上げるために、認識結果の時間変化を見る方法もある。最も簡単な方法では、１０回中８回「人Ａ」と認識されたら「人Ａ」と認識するなどである。他に、カルマン・フィルタを用いた予測法なども提案されている。
【０１６５】
他の実施形態
上述したように、顔抽出部１００１では、認識タスクに応じて前記ガボア・フィルタの種類を変更することができる。ここで言うガボア・フィルタの種類とは、具体的には、周波数の数と各周波数、方向の数と各方向を設定することを指す。
【０１６６】
上述した例では、ガボア・フィルタの周波数を３種類用意しているが、周波数が１つだけでも顔画像を認識することができる。勿論、認識率が低下する可能性はあるが、このことは計算量の削減にもつながる。限られた計算機資源を動作制御や内部状態（感情や本能）制御などの多くのプログラムで消費するエンターテインメント・ロボットにおいては、計算量の削減は大きなメリットとなる。
【０１６７】
本実施形態に係る顔認識システム１０００を搭載するロボット１００（図１〜３を参照のこと）においては、例えば２台のカメラによるステレオ視から距離情報を取得するように構成されている。この距離情報を用いて、ガボア・フィルタを工夫することができる。
【０１６８】
顔の大きさと距離の関係は前もって求めることができる。また、顔画像の大きさとガボア・フィルタの周波数との間には一定の関係がある。つまり、顔画像が小さいときには高い周波数で特徴抽出を行なう必要があるが、顔画像が大きいときには低い周波数でよい。
【０１６９】
顔領域だけ切り取られた画像入力でない場合には、画像全体から、どこに顔があり、その顔が誰であるかを識別しなくてはならない。このような場合、距離画像の分布から、その距離に応じた周波数を選択するということができる。そして、その結果を後続のサポート・ベクタ・マシン（ＳＶＭ：後述）で識別する。
【０１７０】
以下では、距離情報を利用したガボア・フィルタによる顔抽出処理の手順について説明する。
【０１７１】
［準備］
１：画像中での顔の大きさ（Ｔ画素×Ｔ画素）と距離（Ｍｃｍ）の関係を求める。    図６２において、横軸に距離、縦軸に顔画像の大きさをとる。ここで、縦軸は顔画像が正方領域であるとし、その辺の長さをとっている。これは、例えば、ある決められた距離で画像を撮影し、この中で顔領域がどのくらいの大きさであるかを人間が計測する。
【０１７２】
２：各大きさの顔画像を高速フーリエ変換（ＦＦＴ）により、周波数領域でのピークを求める（図６３を参照のこと）。さまざまな大きさの顔画像を撮影し、それぞれの周波数のピークを求める。
【０１７３】
３：距離と周波数の関係を求める（図６４を参照のこと）。上記１，２を基に、図６４に示す距離と周波数の関係を求める
【０１７４】
［認識］（図６５を参照のこと）
１：ある画像に対して距離を求める
（画像中の各画素に対して３次元座標が決定される）。
【０１７５】
２：距離から周波数を求める。
準備の手順３で得られた関係から周波数を求める
【０１７６】
３：求められた周波数のガボア・フィルタにより特徴抽出する。
【０１７７】
４：得られた画像をサポート・ベクタ・マシンで識別し、特定顔か非特定顔であるかを求める。
【産業上の利用可能性】
【０１７８】
以上、特定の実施形態を参照しながら、本発明について詳細に説明してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０１７９】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置であるならば、例えば玩具等のような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０１８０】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【図１】
0004609584.tif 000026
【図２】
0004609584.tif 000027
【図３】
0004609584.tif 000028
【図４】
0004609584.tif 000029
【図５】
0004609584.tif 000030
【図６】
0004609584.tif 000031
【図７】
0004609584.tif 000032
【図８】
0004609584.tif 000033
【図９】
0004609584.tif 000034
【図１０】
0004609584.tif 000035
【図１１】
0004609584.tif 000036
【図１２】
0004609584.tif 000037
【図６２】
0004609584.tif 000038
【図６３】
0004609584.tif 000039
【図６４】
0004609584.tif 000040
【図６５】
0004609584.tif 000041
【図１３】
0004609584.tif 000042
【図１４】
0004609584.tif 000043
【図１５】
0004609584.tif 000044
【図１６】
0004609584.tif 000045
【図１７】
0004609584.tif 000046
【図１８】
0004609584.tif 000047
【図１９】
0004609584.tif 000048
【図２０】
0004609584.tif 000049
【図２１】
0004609584.tif 000050
【図２２】
0004609584.tif 000051
【図２３】
0004609584.tif 000052
【図２４】
0004609584.tif 000053
【図２５】
0004609584.tif 000054
【図２６】
0004609584.tif 000055
【図２７】
0004609584.tif 000056
【図２８】
0004609584.tif 000057
【図２９】
0004609584.tif 000058
【図３０】
0004609584.tif 000059
【図３１】
0004609584.tif 000060
【図３２】
0004609584.tif 000061
【図３３】
0004609584.tif 000062
【図３４】
0004609584.tif 000063
【図３５】
0004609584.tif 000064
【図３６】
0004609584.tif 000065
【図３７】
0004609584.tif 000066
【図３８】
0004609584.tif 000067
【図３９】
0004609584.tif 000068
【図４０】
0004609584.tif 000069
【図４１】
0004609584.tif 000070
【図４２】
0004609584.tif 000071
【図４３】
0004609584.tif 000072
【図４４】
0004609584.tif 000073
【図４５】
0004609584.tif 000074
【図４６】
0004609584.tif 000075
【図４７】
0004609584.tif 000076
【図４８】
0004609584.tif 000077
【図４９】
0004609584.tif 000078
【図５０】
0004609584.tif 000079
【図５１】
0004609584.tif 000080
【図５２】
0004609584.tif 000081
【図５３】
0004609584.tif 000082
【図５４】
0004609584.tif 000083
【図５５】
0004609584.tif 000084
【図５６】
0004609584.tif 000085
【図５７】
0004609584.tif 000086
【図５８】
0004609584.tif 000087
【図５９】
0004609584.tif 000088
【図６０】
0004609584.tif 000089
【図６１】
0004609584.tif 000090