ロボット装置、顔認識方法及び顔認識装置
【課題】 動的に変化する環境下でロボットはユーザの顔を一定時間内に認識する。
【解決手段】 ロボットは、CCDカメラによる撮像画像に含まれる顔の特徴を抽出する顔抽出部と、前記顔抽出部による顔抽出結果を基に顔を認識する顔認識部を備えている。顔抽出部は方位選択性を持ち周波数成分の異なる複数のフィルタを用いて画像をフィルタリングするガボア・フィルタで構成され、顔認識部は顔抽出結果を非線型な空間に一度写像して該空間内で分離する超平面を求めることにより顔と非顔とを識別するサポート・ベクタ・マシーンで構成される。
【解決手段】 ロボットは、CCDカメラによる撮像画像に含まれる顔の特徴を抽出する顔抽出部と、前記顔抽出部による顔抽出結果を基に顔を認識する顔認識部を備えている。顔抽出部は方位選択性を持ち周波数成分の異なる複数のフィルタを用いて画像をフィルタリングするガボア・フィルタで構成され、顔認識部は顔抽出結果を非線型な空間に一度写像して該空間内で分離する超平面を求めることにより顔と非顔とを識別するサポート・ベクタ・マシーンで構成される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェースを備えたロボット装置、並びに、ロボット用にヒューマン・インターフェースとして適用することができる顔認識方法及び顔認識装置に係り、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができるロボット装置、並びに、顔認識方法及び顔認識装置に関する。
【0002】
さらに詳しくは、本発明は、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうロボット装置、顔認識方法及び顔認識装置に係り、特に、照明条件やカメラ・パラメータが異なる環境下でロバストな顔認識を行なうロボット装置、顔認識方法及び顔認識装置に関する。
【背景技術】
【0003】
顔認識の技術は、ユーザに負担をかけない個人認証システムをはじめとして、性別の識別など、マンマシン・インターフェースに幅広く適用が可能である。初期は横顔を使った認識技術も検討されたが、現在は、正面画像の認識技術が中心となっている。
【0004】
顔認識に関する研究は、パターン認識理論を検証する上でベンチマーク的な位置付けを持っており、古くからさまざまな手法が開発されてきた。そこで想定されていたアプリケーションは、セキュリティ・システムにおける認証や大規模データベースからの人物検索など、静的な環境下で正確性を要するものがほとんどである。
【0005】
ところで、近年、外観形状が犬などの動物に模して形成され、エンターテインメントとしてのロボット装置が提供されている。例えば、ソニー株式会社は、2000年11月25日に2足歩行の人間型ロボット"SDR−3X"を公表した。この種の脚式移動ロボットは、不安定で姿勢制御や歩行制御が難しくなるが、階段や梯子の昇降や障害物の乗り越えなど、整地・不整地の区別を問わない柔軟な歩行・走行動作を実現できるという点で優れている。さらにロボットのインテリジェンスを高め、自律的な装置動作を可能とすることにより、同じ住空間において人間とロボットが共存することも夢ではなくなる。
【0006】
インテリジェントなロボット装置は、外部からの情報(例えば、周囲環境の情報など)や内部の状態(例えば、感情状態など)などに応じて目や脚などを自律的に動作させることで、動物のような仕草を表出させることができる。
【0007】
このようなロボット装置の出現により、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェース技術が要求されてきており、その1つとしてロボット装置による顔識別を挙げることができる。例えば、顔識別を利用することにより、ロボット装置は、多くの中からユーザ(飼い主又はともだち、若しくは正当なユーザ)を識別することができ、ユーザ毎にリアクションを変えるなどして、よりエンターテインメント性のあるものとなる。
【0008】
ロボット装置への適用が求められている顔認識技術は、セキュリティ・システムにおける認証や大規模データベースからの人物検索などの適用分野とは相違し、多少不正確であっても、動的に変化する環境下で一定時間内に応答できることである。
【0009】
こうしたロボット装置に搭載される顔識別のアプリケーションでは、ある与えられた1枚のシーンの中から人物を識別するという問題に加え、次のような問題を解決する必要がある。
【0010】
(1)ロボット装置自身が移動するため、環境の変化やその多様性を許容しなくてはならない。
【0011】
(2)人間とロボット装置の位置関係も変化するため、インタラクション中に人間を視野内に入れ続ける必要がある。
【0012】
(3)数多くのシーン画像から人物の識別に使える画像を選び出し、総合的に判断しなくてはならない。
【0013】
(4)ある時間内に応答しなくてはならない。
【0014】
従来、顔認識の手法は、ニューラル・ネットワークを用いた方法や、顔画像の各輝度値を要素とするベクトル空間に主成分分析(Principal Components Analysis:PCA)を適用する手法(固有空間法)などが主流であったが、これら従来技術には以下のような欠点がある。
【0015】
まず、ニューラル・ネットワークによる顔認識では、インクリメンタルな学習が不可能である。
【0016】
また、固有顔による方法の場合、直交する部分線形空間を仮定している(すなわち、2枚の顔画像の平均をとると人の顔になる)が、実際には線形でないことが多く、このために、モーフィング(morphing)あるいはアラインメント(alignmemt)と呼ばれる正確な位置合わせが必要となる。この前処理により、位置、回転、大きさに対して正規化し、その影響をなくそうとするものもあるが、なかなかうまく処理できないこともあり、認識性能を低下させる原因になっている。また、顔空間の次元を著しく小さくしてその空間での分離をするため、高次元の特徴が失われる可能性もある。
【0017】
また、上述したいずれの顔認識方法であっても、照明条件の変化やカメラ・パラメータの変化、ノイズ、位置、回転に対して影響を受け易く、ノイズ・フィルタリングやモーフィングなどの前処理を必要とする。また、汎化能力の点でも疑問が残る。
【発明の開示】
【発明が解決しようとする課題】
【0018】
本発明の目的は、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェースを備えたロボット装置、並びに、ロボット用にヒューマン・インターフェースとして適用することができる、優れた顔認識方法及び顔認識装置を提供することにある。
【0019】
本発明のさらなる目的は、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【0020】
本発明のさらなる目的は、照明条件やカメラ・パラメータが異なる環境下でロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【0021】
本発明のさらなる目的は、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【0022】
本発明のさらなる目的は、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【課題を解決するための手段】
【0023】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、自律的に行動するロボット装置であって、
顔画像を入力する画像入力手段と、
方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段と、
前記顔特徴量抽出手段による顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段と、
を具備することを特徴とするロボット装置である。
【0024】
ここで、前記顔特徴量抽出手段はガボア・フィルタで構成することができる。また、前記顔識別手段はサポート・ベクタ・マシンで構成することができる。
【0025】
本発明の第1の側面によれば、ロボット装置は、入力画像に対してモーフィングなどの位置合わせを行なうことなく、すなわち、回転や位置などの変化に対してロバストな顔認識を行なうことができる。すなわち、ロボット装置は、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができ、ユーザ毎の対応を実時間で行うことができる。
【0026】
ここで、前記顔特徴量抽出手段は、認識タスクに応じて前記ガボア・フィルタの種類を変更するフィルタ変更手段をさらに備えていてもよい。
【0027】
また、前記顔特徴量抽出手段は、低周波でのフィルタリングではフィルタリング後のイメージをダウンサンプリングして次元を落すようにすることができる。ダウンサンプリングされた各ベクトルを一列に並べて、長いベクトルを構成して、後段の顔識別手段に渡す。
【0028】
また、本発明の第2の側面は、ロボット用のヒューマン・インターフェースとして適用可能な顔認識装置又は顔認識方法であって、
顔画像を入力する画像入力手段又はステップと、
方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段又はステップと、
前記顔特徴量抽出手段又はステップによる顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段又はステップと、
を具備することを特徴とする顔認識装置又は顔認識方法である。
【0029】
ここで、前記顔特徴量抽出手段はガボア・フィルタで構成することができる。また、前記顔識別手段はサポート・ベクタ・マシンで構成することができる。
【0030】
本発明の第2の側面に係る顔認識装置又は顔認識方法によれば、入力画像に対してモーフィングなどの位置合わせを行なうことなく、すなわち、回転や位置などの変化に対してロバストな顔認識を行なうことができる。すなわち、動的に変化する作業環境下であってもユーザの顔を一定時間内に認識することができる。したがって、本発明の第2の側面に係る顔認識装置又は顔認識方法をロボット装置に適用することにより、該ロボット装置は、ユーザ毎に異なるリアクションを遅延時間なく実行することができるなど、エンターテインメント性を向上させることができる。
【0031】
ここで、前記顔特徴量抽出手段又はステップは、認識タスクに応じて前記ガボア・フィルタの種類を変更するフィルタ変更手段又はステップをさらに備えていてもよい。
【0032】
また、前記顔特徴量抽出手段又はステップは、低周波でのフィルタリングではフィルタリング後のイメージをダウンサンプリングして次元を落すようにすることができる。ダウンサンプリングされた各ベクトルを一列に並べて、長いベクトルを構成して、後段の顔認識手段又はステップに渡す。
【発明の効果】
【0033】
本発明によれば、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェースを備えたロボット装置、並びに、ロボット用にヒューマン・インターフェースとして適用することができる、優れた顔認識方法及び顔認識装置を提供することができる。
【0034】
また、本発明によれば、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することができる。
【0035】
また、本発明によれば、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することができる。
【0036】
また、本発明によれば、照明条件やカメラ・パラメータが異なる環境下でロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することができる。
【0037】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【図面の簡単な説明】
【0038】
【図1】図1は、本発明の実施に供される脚式移動ロボット100を前方から眺望した様子を示した図である。
【図2】図2は、本発明の実施に供される脚式移動ロボット100を後方から眺望した様子を示した図である。
【図3】図3は、本実施形態に係る脚式移動ロボット100が具備する自由度構成モデルを模式的に示した図である。
【図4】図4は、脚式移動ロボット100の制御システム構成を模式的に示した図である。
【図5】図5は、本実施形態に係るロボット装置100の処理動作を実現するための制御プログラムのソフトウェア構成を模式的に示した図である。
【図6】図6は、ミドルウェア・レイヤ140の具体なソフトウェア構成を詳細に示した図である。
【図7】図7は、アプリケーション・レイヤ141の具体なソフトウェア構成を詳細に示した図である。
【図8】図8は、行動モデル・ライブラリ170の具体的なソフトウェア構成を詳細に示した図である。
【図9】図9は、各行動モデル170−1〜170−nから次の行動を決定するための有限確率オートマトンの仕組みを示した図である。
【図10】図10は、自己の行動モデル170−1〜170−nを形成するノードNODE0〜NODEnにそれぞれ対応させて用意された状態遷移表を示した図である。
【図11】図11は、本実施形態に係る顔認識システム1000の学習段階における機能構成を示したブロック図である。
【図12】図12は、本実施形態に係る顔認識システム1000の認識段階における機能構成を示したブロック図である。
【図13】図13は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図14】図14は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図15】図15は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図16】図16は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図17】図17は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図18】図18は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図19】図19は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図20】図20は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図21】図21は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図22】図22は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図23】図23は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図24】図24は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図25】図25は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図26】図26は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図27】図27は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図28】図28は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図29】図29は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図30】図30は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図31】図31は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図32】図32は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図33】図33は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図34】図34は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図35】図35は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図36】図36は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図37】図37は、入力画像の一例を示した図である。
【図38】図38は、図37に示す入力画像を、図13に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図39】図39は、図37に示す入力画像を、図14に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図40】図40は、図37に示す入力画像を、図15に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図41】図41は、図37に示す入力画像を、図16に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図42】図42は、図37に示す入力画像を、図17に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図43】図43は、図37に示す入力画像を、図18に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図44】図44は、図37に示す入力画像を、図19に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図45】図45は、図37に示す入力画像を、図20に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図46】図46は、図37に示す入力画像を、図21に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図47】図47は、図37に示す入力画像を、図22に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図48】図48は、図37に示す入力画像を、図23に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図49】図49は、図37に示す入力画像を、図24に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図50】図50は、図37に示す入力画像を、図25に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図51】図51は、図37に示す入力画像を、図26に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図52】図52は、図37に示す入力画像を、図27に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図53】図53は、図37に示す入力画像を、図28に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図54】図54は、図37に示す入力画像を、図29に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図55】図55は、図37に示す入力画像を、図30に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図56】図56は、図37に示す入力画像を、図31に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図57】図57は、図37に示す入力画像を、図32に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図58】図58は、図37に示す入力画像を、図33に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図59】図59は、図37に示す入力画像を、図34に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図60】図60は、図37に示す入力画像を、図35に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図61】図61は、図37に示す入力画像を、図36に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図62】図62は、画像中の顔の大きさと距離の関係を示した図である。
【図63】図63は、各顔の大きさの画像を高速フーリエ変換して周波数領域のピークを求める処理を説明するための図である。
【図64】図64は、距離とガボア・フィルタの周波数の関係を示した図である。
【図65】図65は、距離情報を利用したガボア・フィルタによる顔抽出処理の手順を示したフローチャートである。
【発明を実施するための形態】
【0039】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
【0040】
後述する本発明の実施形態は、本発明を、外観形状がヒトに模して形成された2足脚式移動のロボット装置すなわちヒューマノイド・ロボット(humanoid robot)に適用したものである。但し、本発明の要旨はこれに限定されるものではなく、例えば犬などの4足脚式移動ロボットにも同様に本発明を適用することができる。
【0041】
本実施形態に係るロボット装置は、外部からの情報(例えば、周囲環境の情報など)や内部の状態(例えば、感情状態など)などに応じて目や脚等を自律的に動作させることで、リアリティのある仕草を表出させている。そして、このロボット装置は、ヒューマン・インターフェースとしての顔認識機能を装備して、ユーザ(友達又は飼い主)などの顔を識別することができるものとして構成されており、顔認識結果に基づいて、ユーザ毎に異なるリアクションを形成することができる。
【0042】
A.ロボットの構成
図1及び図2には本発明の実施に供される脚式移動ロボット100を前方及び後方の各々から眺望した様子を示している。さらに、図3には、この脚式移動ロボット100が具備する関節自由度構成を模式的に示している。
【0043】
図3に示すように、脚式移動ロボット100は、2本の腕部と頭部1を含む上肢と、移動動作を実現する2本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成された、複数の肢を備えた構造体である。
【0044】
頭部1を支持する首関節は、首関節ヨー軸2と、首関節ピッチ軸3と、首関節ロール軸4という3自由度を有している。
【0045】
また、各腕部は、肩関節ピッチ軸8と、肩関節ロール軸9と、上腕ヨー軸10と、肘関節ピッチ軸11と、前腕ヨー軸12と、手首関節ピッチ軸13と、手首関節ロール軸14と、手部15とで構成される。手部15は、実際には、複数本の指を含む多関節・多自由度構造体である。但し、手部15の動作はロボット100の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、各腕部は7自由度を有するとする。
【0046】
また、体幹部は、体幹ピッチ軸5と、体幹ロール軸6と、体幹ヨー軸7という3自由度を有する。
【0047】
また、下肢を構成する各々の脚部は、股関節ヨー軸16と、股関節ピッチ軸17と、股関節ロール軸18と、膝関節ピッチ軸19と、足首関節ピッチ軸20と、足首関節ロール軸21と、足部22とで構成される。本明細書中では、股関節ピッチ軸17と股関節ロール軸18の交点は、本実施形態に係る脚式移動ロボット100の股関節位置を定義する。人体の足部22は実際には多関節・多自由度の足底を含んだ構造体であるが、本実施形態に係る脚式移動ロボット100の足底はゼロ自由度とする。したがって、各脚部は6自由度で構成される。
【0048】
以上を総括すれば、本実施例に係る脚式移動ロボット100全体としては、合計で3+7×2+3+6×2=32自由度を有することになる。但し、エンターテインメント向けの脚式移動ロボット100が必ずしも32自由度に限定される訳ではない。設計・製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【0049】
上述したような脚式移動ロボット100が持つ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、2足歩行という不安定構造体に対して姿勢制御を行うことなどの要請から、アクチュエータは小型且つ軽量であることが好ましい。本実施例では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ACサーボ・アクチュエータを搭載することとした。なお、この種のACサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開2000−299970号公報(特願平11−33386号)に開示されている。
【0050】
図4には、脚式移動ロボット100の制御システム構成を模式的に示している。この制御システムは、コントロール部116と、このロボット装置100の動力源としてのバッテリ117とで構成され、例えば、脚式移動ロボットの機体胴体部やその背面部に搭載されている。コントロール部116は、CPU(Central Processing Unit)110と、DRAM(Dynamic Random Access Memory)111と、フラッシュROM(Read Only Memory)112と、PC(Personal Computer)カード・インターフェース回路113及び信号処理回路114が内部バス115を介して相互に接続されることにより構成される。また、機体には、ロボット装置100の向きや動きの加速度を検出するための角速度センサ118及び加速度センサ119なども装備されている。
【0051】
また、機体の頭部には、外部の状況を撮像するためのCCD(Charge Coupled Device:電荷結合素子)カメラ120と、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチ・センサ121と、前方に位置する物体までの距離を測定するための距離センサ122と、外部音を集音するためのマイクロフォン123と、鳴き声等の音声を出力するためのスピーカ124などがそれぞれ機体上の所定位置に配設されている。ここで、CCDカメラ120は、顔識別において顔画像を撮像するための画像入力手段を構成する。
【0052】
さらに、各脚部ユニットの関節部分や、各脚部ユニット及び胴体部ユニットの各連結部分、並びに頭部ユニット及び胴体部ユニットの連結部分などには、それぞれ自由度数分のアクチュエータ125−1〜125−n及びポテンショメータ126−1〜126−nが配設されている。例えば、アクチュエータ125−1〜125−nはそれぞれ1つのサーボモータによって構成される。これらサーボモータの駆動により、脚部ユニットが制御されて、目標の姿勢あるいは動作に遷移する。
【0053】
そして、前述した角速度センサ118、加速度センサ119、タッチ・センサ121、距離センサ122、マイクロフォン123、スピーカ124、並びに各ポテンショメータ126−1〜126−nなどの各種センサ、及び各アクチュエータ125−1〜125−nは、それぞれ対応するハブ127−1〜127−nに集線された後に、コントロール部116の信号処理回路114と接続されている。また、CCDカメラ120及びバッテリ117は、それぞれ信号処理回路114と直接接続されている。
【0054】
信号処理回路1l4は、上述の各センサから供給されるセンサ・データや画像データ、及び音声データを逐次取り込んで、これらをそれぞれ内部バス115を介してDRAM111内の所定のアドレスに適宜格納する。また、信号処理回路114は、これとともにバッテリ117から供給されるバッテリ残量を表すバッテリ残量データを逐次取り込み、これも同様にDRAM111内の所定のアドレスに格納する。
【0055】
このようにしてDRAM111に格納された各センサ・データ、画像データ、音声データ、並びにバッテリ残量データは、この後、CPU110がこのロボット装置100の機体の動作制御を行う際に利用可能となる。
【0056】
実際上、CPU110は、ロボット装置100の電源が投入された初期時、胴体部ユニット2の図示しないPCカード・スロットに装填されたメモリ・カード128又はフラッシュROM112に格納された制御プログラムをPCカード・インターフェース回路113経由で又は直接読み出して、これをDRAM111にロードする。
【0057】
また、CPU110は、このようなプログラム・ロードの後、上述したように信号処理回路114よりDRAM111に逐次格納されている各センサ・データ、画像データ、音声データ、並びにバッテリ残量データに基づいて、自己及び機体周囲の状況や、使用者からの指示及び働きかけの有無などを判断するようになっている。
【0058】
さらに、CPU110は、この判断結果及びDRAM111に格納した制御プログラムに基づいて続く行動を決定するとともに、当該決定結果に基づいて必要なアクチュエータ125−1〜125−nを駆動させることにより、頭部を左右に振らせたり、各脚部ユニットを駆動させたりして歩行やその他の脚式作業を実行させる。
【0059】
また、このようなプログラム実行の際、CPU110は、必要に応じて音声データを生成して、これを信号処理回路114経由で音声信号としてスピーカ24に与えることにより、当該音声信号に基づく音声を外部に出力させたりする。
【0060】
このようにして、このロボット装置100においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るように構成されている。
【0061】
B.制御プログラムのソフトウェア構成
図5には、本実施形態に係るロボット装置100の処理動作を実現するための制御プログラムのソフトウェア構成を模式的に示している。
【0062】
同図に示すように、デバイス・ドライバ・レイヤ130は、この制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット31から構成されている。この場合、各デバイス・ドライバは、CCDカメラ20(図4を参照のこと)やタイマなどの通常のコンピュータ処理に用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、一般には、対応するハードウェアからの割り込みに応答して処理を開始するようになっている(割り込みハンドラ)。
【0063】
また、ロボティック・サーバ・オブジェクト132は、デバイス・ドライバ・レイヤ130の最下位層に位置し、例えば上述の各種センサやアクチュエータ125−1〜125−nなどのハードウェアにアクセスするためのインターフェースを提供するソフトウェア群でなるバーチャル・ロボット133と、電源の切換えなどを管理するソフトウェア群でなるパワー・マネージャ134と、他のさまざまのデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ135と、ロボット装置100の機構を管理するソフトウェア群でなるデザインド・ロボット136とで構成される。
【0064】
マネージャ・オブジェクト137は、オブジェクト・マネージャ138及びサービス・マネージャ139から構成される。オブジェクト・マネージャ138は、ロボティック・サーバ・オブジェクト132、ミドルウェア・レイヤ140、及びアプリケーション・レイヤ141に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群である。また、サービス・マネージャ139は、メモリ・カード128(図4を参照のこと)に格納されたコネクション・ファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【0065】
ミドルウェア・レイヤ140は、ロボティック・サーバ・オブジェクト132の直近上位に位置し、画像処理や音声処理など本実施形態に係るロボット装置100の基本的な機能を提供するソフトウェア群から構成される。また、アプリケーション・レイヤ141は、ミドルウェア・レイヤ40の直近上位に位置し、当該ミドルウェア・レイヤ140を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置100の行動を決定するためのソフトウェア群から構成される。
【0066】
図6には、ミドルウェア・レイヤ140の具体なソフトウェア構成を詳細に示している。
【0067】
同図に示すように、ミドルウェア・レイヤ140は、騒音検出用、温度検出用、明るさ検出用、音階認識用、距離検出用、姿勢検出用、タッチ・センサ用、動き検出用、及び色認識用の各信号処理モジュール150〜158、並びに入力セマンティクス・コンバータ・モジュール159などを有する認識系ミドルウェア160と、出力セマンティクス・コンバータ・モジュール168、姿勢管理用、トラッキング用、モーション再生用、歩行用、転倒復帰用、及び、音再生用の各信号処理モジュール161〜167などを有する出力系ミドルウェア169とで構成される。
【0068】
認識系ミドルウェア160の各信号処理モジュール150〜158は、ロボティック・サーバ・オブジェクト132のバーチャル・ロボット133によりDRAM11(図4を参照のこと)から読み出される各センサ・データや画像データ(顔画像データ)及び音声データのうちの対応するデータを取り込んで、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクス・コンバータ・モジュール159に与える。ここで、例えば、バーチャル・ロボット133は、所定の通信規約によって、信号の授受あるいは変換をする部分として構成されている。
【0069】
入力セマンティクス・コンバータ・モジュール159は、これら各信号処理モジュール150〜158から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ボールを検出した」、「転倒を検出した」、「撫でられた」、「叩かれた」、「ドミソの音階が聞こえた」、「動く物体を検出した」、又は、「障害物を検出した」、「人Aを見つけた(認識した)」などの自己及び周囲の状況を認識したり、使用者からの指令及び働きかけを認識したりして、認識結果をアプリケーション・レイヤ141に出力するようになっている。
【0070】
図7には、アプリケーション・レイヤ14lの具体なソフトウェア構成を詳細に示している。同図に示すように、アプリケーション・レイヤ14lは、行動モデル・ライブラリ170、行動切換えモジュール171、学習モジュール172、感情モデル173、及び本能モデル174の5つのモジュールで構成される。
【0071】
図8には、行動モデル・ライブラリ170の具体的なソフトウェア構成を詳細に示している。同図に示すように、行動モデル・ライブラリ170には、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」、「人Aを見つけた(認識した)」などのあらかじめ選択された幾つかの条件項目に対応させて、それぞれ独立した行動モデル170−1〜170−nが設けられている。
【0072】
そして、これら行動モデル170−1〜170−nは、それぞれ入力セマンティクス・コンバータ・モジュール159から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、後述するように、必要に応じて感情モデル173に保持されている対応する情動のパラメータ値や、本能モデル174に保持されている対応する欲求のパラメータ値を参照しながら後続の行動をそれぞれ決定して、この決定結果を行動切換えモジュール171に出力するになっている。
【0073】
なお、本実施形態の場合、各行動モデル170−1〜170−nは、次の行動を決定する手法として、図9に示すような有限確率オートマトンと呼ばれるアルゴリズムを用いる。有限確率オートマトンによれば、同図に示すように、1つのノード(状態)NODE0〜NODEnから他のいずれのノードNODE0〜NODEnに遷移するかを各ノードNODE0〜NODEnに間を接続するアークARC1〜ARCnに対してそれぞれ設定された遷移確率P1〜Pnに基づいて確率的に決定することができる。
【0074】
具体的には、各行動モデル170−1〜170−nは、それぞれ自己の行動モデル170−1〜170−nを形成するノードNODE0〜NODEnにそれぞれ対応させて、これらノードNODE0〜NODEn毎に、図10に示すような状態遷移表180を有している。
【0075】
この状態遷移表180では、そのノードNODE0〜NODEnにおいて遷移条件とする入力イベント(認識結果)が「入力イベント名」の行に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の行における対応する列に記述されている。
【0076】
例えば、図10に示す状態遷移表180で表されるノードNODE100では、「ボールを検出(BALL)」という認識結果が与えられた場合に、当該認識結果とともに与えられるそのボールの「大きさ(SIZE)」が「0から1000」の範囲であることが他のノードに遷移するための条件となっている。同様に、「障害物を検出(OBSTACLE)」という認識結果が与えられた場合には、当該認識結果とともに与えられるその障害物までの「距離(DISTANCE)」が「0から100」の範囲であることが他のノードに遷移するための条件である。
【0077】
また、このノードNODE100では、認識結果の入力がない場合においても、行動モデル170−1〜170−nが周期的に参照する感情モデル173及び本能モデル174にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル173に保持された「喜び(JOY)」、「驚き(SURPRISE)」、若しくは「悲しみ(SUDNESS)」のいずれかのパラメータ値が「50から100」の範囲であるときには、他のノードに遷移することができるようになっている。
【0078】
また、状態遷移表180では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の列にそのノードNODE0〜 NODEnから遷移できるノード名が列記されているとともに、「入力イベント名」、「データ値」及び「データの範囲」の行に記述されたすべての条件が揃ったときに遷移できる他の各ノードNODE0〜NODEnへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述されており、そのノードNODE0〜NODEnに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は100[%]となる。
【0079】
したがって、図10に示す状態遷移表180で表されるノードNODE100では、例えば「ボールを検出(BALL)」し、そのボールの「SIZE(大きさ)」が「0から1000」の範囲であるという認識結果が与えられた場合には、「30[%]」の確率で「ノードNODE120(node 120)」に遷移でき、そのとき「ACTION1」の行動が出力すなわち機体動作が実行されることとなる。
【0080】
各行動モデル170−1〜170−nは、それぞれこのような状態遷移表180として記述されたノードNODE0〜 NODEnがいくつも繋がるようにして構成されている。したがって、入力セマンティクス・コンバータ・モジュール159から認識結果が与えられたときなどに、対応するノードNODE0〜NODEnの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換えモジュール171に出力するようなっている。また、図10に示す状態遷移表に、「人Aを見つけた(認識した)」という入力イベント名を持つエントリを用意し、さらに遷移条件などを記述しておくことにより、ロボット装置100が特定のユーザを認識したときに起こすべきリアクションを規定することができる。
【0081】
図7に示した行動切換えモジュール171は、行動モデル・ライブラリ170の各行動モデル170−1〜170−nからそれぞれ出力される行動のうち、あらかじめ定められた優先順位の高い行動モデル170−1〜170−nから出力された行動を選択して、当該行動を実行すべき旨のコマンド(以下、これを「行動コマンド」という。)をミドルウェア・レイヤ140の出力セマンティクス・コンバータ・モジュール168に送出するようになっている。なお、本実施形態においては、図8において下側に表記された行動モデル170−1〜170−nほど優先順位が高く設定されているものとする。
【0082】
また、行動切換えモジュール171は、行動完了後に出力セマンティクス・コンバータ・モジュール168から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール172、感情モデル173、並びに本能モデル174に通知する。
【0083】
一方、学習モジュール172は、入力セマンティクス・コンバータ・モジュール159から与えられる認識結果のうち、「叩かれた」や「撫でられた」など、使用者からの働きかけとして受けた教示の認識結果を入力する。
【0084】
そして、学習モジュール172は、この認識結果及び行動切換えモジュール171からの通知に基づいて、「叩かれた(叱られた)」ときにはその行動の発現確率を低下させ、「撫でられた(誉められた)」ときにはその行動の発現確率を上昇させるように、行動モデル・ライブラリ170における対応する行動モデル170−1〜170−nの対応する遷移確率を変更する。
【0085】
他方、感情モデル173は、「喜び(joy)」、「悲しみ(sadness)」、「怒り(anger)」、「驚き(surprise)」、「嫌悪(disgust)」及び「恐れ(fear)」の合計6つの情動について、情動毎にその情動の強さを表すパラメータを保持している。そして、感情モデル173は、これら各情動のパラメータ値を、それぞれ入力セマンティクス・コンバータ・モジュール159から与えられる「叩かれた」及び「撫でられた」などの特定の認識結果と、経過時間及び行動切換えモジュール171からの通知となどに基づいて周期的に更新する。
【0086】
具体的には、感情モデル173は、入力セマンティクス・コンバータ・モジュール159から与えられる認識結果と、そのときのロボット装置100の行動と、前回更新してからの経過時間となどに基づいて所定の演算式により算出されるそのときのその情動の変動量を△E[t]、現在のその情動のパラメータ値をE[t]、その情動の感度を表す係数をkeとして、下式(1)によって次の周期におけるその情動のパラメータ値E[t+1]を算出し、これを現在のその情動のパラメータ値E[t]と置き換えるようにして、その情動のパラメータ値を更新する。また、感情モデル173は、これと同様にしてすべての情動のパラメータ値を更新する。
【0087】
【数1】
【0088】
なお、各認識結果や出力セマンティクス・コンバータ・モジュール168からの通知が各情動のパラメータ値の変動量△E[t]にどの程度の影響を与えるかはあらかじめ決められている。例えば、「叩かれた」といった認識結果は、「怒り」を表す情動のパラメータ値の変動量△E[t]に大きな影響を与える。また、「撫でられた」といった認識結果は、「喜び」を表す情動のパラメータ値の変動量△E[t]に大きな影響を与えるようになっている。
【0089】
ここで、出力セマンティクス・コンバータ・モジュール168からの通知とは、いわゆる行動のフィードバック情報(行動完了情報)であり、行動の出現結果の情報である。感情モデル173は、このような情報によっても感情を変化させる。これは、例えば、「吠える」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクス・コンバータ・モジュール168からの通知は、上述した学習モジュール172にも入力されている。学習モジュール172は、その通知に基づいて行動モデル170−1〜170−nの対応する遷移確率を変更する。
【0090】
なお、行動結果のフィードバックは、行動切換えモジュレータ171の出力(感情が付加された行動)によりなされるものであってもよい。
【0091】
一方、本能モデル174は、「運動欲(exercise)」、「愛情欲(affection)」、「食欲(appetite)」及び「好奇心(curiosity)」の互いに独立した4つの欲求について、これら欲求毎にその欲求の強さを表すパラメータを保持している。そして、本能モデル174は、これらの欲求のパラメータ値を、それぞれ入力セマンティクス・コンバータ・モジュール159から与えられる認識結果や、経過時間及び行動切換えモジュール171からの通知などに基づいて周期的に更新する。
【0092】
具体的には、本能モデル174は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクス・コンバータ・モジュール168からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔI[k]、現在のその欲求のパラメータ値をI[k]、その欲求の感度を表す係数kiとして、所定周期で下式(2)を用いて次の周期におけるその欲求のパラメータ値I[k+1]を算出し、この演算結果を現在のその欲求のパラメータ値I[k]と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル174は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【0093】
【数2】
【0094】
なお、認識結果及び出力セマンティクス・コンバータ・モジュール168からの通知などが各欲求のパラメータ値の変動量△I[k]にどの程度の影響を与えるかはあらかじめ決められている。例えば、出力セマンティクス・コンバータ・モジュール168からの通知は、「疲れ」のパラメータ値の変動量△I[k]に大きな影響を与えるようになっている。
【0095】
なお、本実施の形態においては、各情動及び各欲求(本能)のパラメータ値がそれぞれ0から100までの範囲で変動するように規制されており、また係数ke、kiの値も情動毎及び欲求毎に個別に設定されている。
【0096】
一方、ミドルウェア・レイヤ140の出力セマンティクス・コンバータ・モジュール168は、図6に示したように、上述のようにしてアプリケーション・レイヤ141の行動切換えモジュール171から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング(ボールを追いかける)」といった抽象的な行動コマンドを出力系セマンティックス・コンバータ・モジュール169内の対応する信号処理モジュール161〜167に与える。
【0097】
そして、これら信号処理モジュール161〜167は、行動コマンドが与えられると、当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ125−1〜125−n(図4を参照のこと)に与えるべきサーボ指令値や、スピーカ124から出力する音の音声データなどの駆動データを生成して、これらのデータをロボティック・サーバ・オブジェクト132のバーチャル・ロボット133及び信号処理回路114を順次介して対応するアクチュエータ125−1〜125−n又はスピーカ124に順次送出する。
【0098】
このようにしてロボット装置100においては、制御プログラムに基づいて、自己(内部)及び周囲(外部)の状況や、使用者からの指示及び働きかけに応じた自律的な行動を行うことができるようになされている。
【0099】
C.ロボット装置による顔識別
インテリジェントなロボット装置には、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェース技術が要求されている。本実施形態に係るロボット装置100は、顔認識技術を適用することにより、多くの中からユーザ(飼い主又はともだち、若しくは正当なユーザ)を識別するとともに、認識結果に基づいて(すなわちユーザに応じて)リアクションを制御することによって、より高いエンターテインメント性を実現する。
【0100】
本実施形態に係る顔認識システム1000は、動的に変化する環境下で一定時間内に応答することができるが、CCDカメラによる撮像画像から顔パターンを抽出する顔抽出処理部1001と、抽出された顔パターンを基に顔を認識する顔認識部1002で構成される。本実施形態では、顔パターンを抽出する(顔画像の特徴量を抽出する)顔抽出処理には、方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、前記顔画像の特徴量を抽出する「ガボア・フィルタリング(Gabor Filtering)」を採用している。また、顔パターンから顔を認識する顔認識処理には、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する「サポート・ベクタ・マシン(Support Vector Machine:SVM)」を採用している。
【0101】
この顔認識システム1000は、顔パターンを顔認識部が学習する学習段階と、学習されたデータを基に、撮像画像から抽出された顔パターンを認識する認識段階を持つ。
【0102】
図11には、本実施形態に係る顔認識システム1000の学習段階の構成を、また、図12には、同顔認識システム1000の認識段階の構成をそれぞれ示している。
【0103】
学習段階においては、図11に示すように、CCDカメラから入力されたユーザの撮像画像をガボア・フィルタリング1001で顔抽出した結果がサポート・ベクタ・マシン1002に投入される。サポート・ベクタ・マシン1002では、外部から供給される学習用のデータすなわち教師データを用いて、暫定的な識別関数を得る。
【0104】
また、識別段階においては、図12に示すように、CCDカメラから入力されたユーザの撮像画像をガボア・フィルタリング1001で顔抽出した結果がサポート・ベクタ・マシン1002に投入される。サポート・ベクタ・マシン1002では、暫定的に得られた識別関数をさまざまなデータベース上の画像に試して顔の検出を行なう。そして、検出に成功したものを顔データとして出力する。また、検出に失敗したものを非顔データとして学習データに追加して、さらに学習をし直す。
【0105】
以下では、ガボア・フィルタリングとサポート・ベクタ・マシンについて、それぞれ詳細に説明する。
【0106】
ガボア・フィルタリング:
人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判っている。これは、垂直の線に対して発火する細胞と、水平の線に反応する細胞で構成される。ガボア・フィルタリングは、これと同様に、方位選択性を持つ複数のフィルタで構成される空間フィルタである。
【0107】
ガボア・フィルタは、ガボア関数によって空間表現される。ガボア関数g(x,y)は、下式(3)に示すように、コサイン成分からなるキャリアs(x,y)と、2次元ガウス分布状のエンベロープwr(x,y)とで構成される。
【0108】
【数3】
【0109】
キャリアs(x,y)は、複素関数を用いて、下式(4)のように表現される。ここで、座標値(u0,v0)は空間周波数を表し、また、Pはコサイン成分の位相を表す。
【0110】
【数4】
【0111】
上式(4)に示すキャリアは、下式(5)に示すように、実数成分Re(s(x,y))と虚数成分Im(s(x,y))に分離することができる。
【0112】
【数5】
【0113】
一方、2次元ガウス分布からなるエンベロープは、下式(6)のように表現される。
【0114】
【数6】
【0115】
ここで、座標値(x0,y0)はこの関数のピークであり、定数a及びbはガウス分布のスケール・パラメータである。また、添え字rは、下式(7)に示すような回転操作を意味する。
【0116】
【数7】
【0117】
したがって、上式(4)及び上式(6)より、ガボア・フィルタは、下式(8)に示すような空間関数として表現される。
【0118】
【数8】
【0119】
本実施形態に係る顔抽出部1001は、8種類の方向と3通りの周波数を採用して、合計24個のガボア・フィルタを用いて顔抽出処理を行なう。本実施形態で使用されるガボア・フィルタの空間領域での様相を図13〜図36に示しておく。このうち、図13〜図20は、方向を22.5度ずつずらした高周波成分のガボア・フィルタである。また、図21〜図28は、方向を22.5度ずつずらした中周波成分のガボア・フィルタである。また、図29〜図36は、方向を22.5度ずつずらした低周波成分のガボア・フィルタである。但し、各図における濃淡は紙面に直交する座標軸方向の成分に相当すると理解されたい。
【0120】
ガボア・フィルタのレスポンスは、Giをi番目のガボア・フィルタとし、i番目のガボアの結果(Gabor Jet)をJiとし、入力イメージをIとし、すると、以下の式(9)で表される。式(9)の演算は、実際には高速フーリエ変換を用いて高速化することができる。
【0121】
【数9】
【0122】
図37に示すような入力画像(但し、入力画像は20×20画素とする)を、図13〜図36に示す各ガボア・フィルタでフィルタリングされた結果を、図38〜図61に示しておく。ガボア・フィルタは、たいていすべての周波数を埋め尽くすことができる。
【0123】
作成したガボア・フィルタの性能を調べるためには、フィルタリングして得られた画像を再構築することによって行なう。再構築されたイメージHは、下式(10)のように表される。
【0124】
【数10】
【0125】
そして、入力画像Iと再構築された画像HとのエラーEは、下式(11)のように表される。
【0126】
【数11】
【0127】
このエラーEを最小にするような最適なaを求めることにより再構築することができる。
【0128】
サポート・ベクタ・マシン:
本実施形態では、顔認識に関して、パターン認識の分野で最も学習汎化能力が高いとされるサポート・ベクタ・マシン(SVM)を用いて該当する顔か否かの識別を行なう。
【0129】
SVM自体に関しては、例えばB.sholkopf外著の報告(B. Sholkopf,C.Burges,A.Smola,“Advance in Kernel Methods Support Vector Learning”,The MIT Press,1999.)を挙げることができる。本発明者らが行なった予備実験の結果からは、SVMによる顔認識方法は、主成分分析(PCA)やニューラル・ネットワークを用いる手法に比べ、良好な結果を示すことが判っている。
【0130】
SVMは、識別関数に線形識別器(パーセプトロン)を用いた学習機械であり、カーネル関数を使うことで非線形空間に拡張することができる。また、識別関数の学習では、クラス間分離のマージンを最大にとるように行なわれ、その解は2次数理計画法を解くことで得られるため、グローバル解に到達できることを理論的に保証することができる。
【0131】
通常、パターン認識の問題は、テスト・サンプルx=(x1,x2,…,xn)に対して、以下の識別関数f(x)を求めることである。
【0132】
【数12】
【0133】
ここで、SVMの学習用の教師ラベルを以下のようにおく。
【0134】
【数13】
【0135】
すると、SVMにおける顔パターンの認識を以下に示す制約条件の下での重み因子wの二乗の最小化する問題としてとらえることができる。
【0136】
【数14】
【0137】
このような制約のついた問題は、ラグランジュの未定定数法を用いて解くことができる。すなわち、以下に示すラグランジュをまず導入して、
【0138】
【数15】
【0139】
次いで、下式に示すように、b,wの各々について偏微分する。
【0140】
【数16】
【0141】
この結果、SVMにおける顔パターンの識別を以下に示す2次計画問題としてとらえることができる。
【0142】
【数17】
【0143】
特徴空間の次元数が、訓練サンプルの数よりも少ない場合は、スラック変数ξ≧0を導入して、制約条件を以下のように変更する。
【0144】
【数18】
【0145】
最適化については、以下の目的関数を最小化する。
【0146】
【数19】
【0147】
上式(19)において、Cは、制約条件をどこまで緩めるかを指定する係数であり、実験的に値を決定する必要がある。
【0148】
【数20】
【0149】
しかし、上式(20)のままでは、非線型の問題を解くことはできない。そこで、本実施形態では、カーネル関数K(x,x')を導入して、一旦、高次元の空間に写像して(カーネル・トリック)、その空間で線形分離することにしている。したがって、元の空間では非線型分離していることと同等となる。
【0150】
カーネル関数は、ある写像Φを用いて下式のように表される。
【0151】
【数21】
【0152】
また、式(12)に示した識別関数も、以下のように表すことができる。
【0153】
【数22】
【0154】
また、学習に関しても、以下に示す2次計画問題としてとらえることができる。
【0155】
【数23】
【0156】
カーネルとしては、以下に示すガウシアン・カーネル(RBF(Radius Basic Function))などを用いることができる。
【0157】
【数24】
【0158】
なお、ガボア・フィルタリングに関しては、認識タスクに応じてフィルタの種類を変更するようにしてもよい。
【0159】
低周波でのフィルタリングでは、フィルタリング後のイメージすべてをベクトルとして持っているのは冗長である。そこで、ダウンサンプリングして、ベクトルの次元を落すようにしてもよい。ダウンサンプリングされた24種類のベクトルを一列に並べ、長いベクトルにする。
【0160】
また、本実施形態において顔パターンの認識に適用されるSVMは、特徴空間を2分する識別器なので、「人A」か「人Aでない」かを判別するように学習する。そのため、データベースの画像中から、まず人Aの顔画像を集め、ガボア・フィルタリング後のベクトルに「人Aでない」というラベルを貼る。一般に、集める顔画像の数は、特徴空間の次元より多い方がよい。10人の顔を認識したい場合は、同様に、「人Bである」、「人Bでない」…のように、それぞれの人に対して1つの識別器を構成する。
【0161】
このような学習により、例えば、「人A」と「人Aでない」を分けるサポート・ベクタが求まる。SVMは、特徴空間を2つに仕切る識別器であり、新しい顔画像が入力されてきたときに、やはりガボア・フィルタリングのベクトルが、求めたサポート・ベクタが構成する境界面のどちら側にあるかで認識結果を出力する。そして、境界に対して、「人A」の領域にあれば「人A」と認識することができる。また、「人Aではない」領域であれば「人Aでない」と認識される。
【0162】
CCDカメラなどから入力される入力画像から顔の部分として切り取られる領域は一定ではない。このため、特徴空間で認識したいカテゴリとは離れた点に投影される可能性がある。したがって、目や鼻、口といった特徴を持つパーツを推定してアフィン変換によりモーフィングすることにより認識率が向上する可能性がある。
【0163】
また、認識性能を上げるために、ブートストラップ手法を採用することができる。学習に用いる画像とは別に画像を撮影して、ブートストラップに用いる。これは、学習した識別器が誤った認識結果を出したときに、その入力画像を学習セットに投入して学習し直すことを意味する。
【0164】
また、認識性能を上げるために、認識結果の時間変化を見る方法もある。最も簡単な方法では、10回中8回「人A」と認識されたら「人A」と認識するなどである。他に、カルマン・フィルタを用いた予測法なども提案されている。
【0165】
他の実施形態
上述したように、顔抽出部1001では、認識タスクに応じて前記ガボア・フィルタの種類を変更することができる。ここで言うガボア・フィルタの種類とは、具体的には、周波数の数と各周波数、方向の数と各方向を設定することを指す。
【0166】
上述した例では、ガボア・フィルタの周波数を3種類用意しているが、周波数が1つだけでも顔画像を認識することができる。勿論、認識率が低下する可能性はあるが、このことは計算量の削減にもつながる。限られた計算機資源を動作制御や内部状態(感情や本能)制御などの多くのプログラムで消費するエンターテインメント・ロボットにおいては、計算量の削減は大きなメリットとなる。
【0167】
本実施形態に係る顔認識システム1000を搭載するロボット100(図1〜3を参照のこと)においては、例えば2台のカメラによるステレオ視から距離情報を取得するように構成されている。この距離情報を用いて、ガボア・フィルタを工夫することができる。
【0168】
顔の大きさと距離の関係は前もって求めることができる。また、顔画像の大きさとガボア・フィルタの周波数との間には一定の関係がある。つまり、顔画像が小さいときには高い周波数で特徴抽出を行なう必要があるが、顔画像が大きいときには低い周波数でよい。
【0169】
顔領域だけ切り取られた画像入力でない場合には、画像全体から、どこに顔があり、その顔が誰であるかを識別しなくてはならない。このような場合、距離画像の分布から、その距離に応じた周波数を選択するということができる。そして、その結果を後続のサポート・ベクタ・マシン(SVM:後述)で識別する。
【0170】
以下では、距離情報を利用したガボア・フィルタによる顔抽出処理の手順について説明する。
【0171】
[準備]
1:画像中での顔の大きさ(T画素×T画素)と距離(Mcm)の関係を求める。 図62において、横軸に距離、縦軸に顔画像の大きさをとる。ここで、縦軸は顔画像が正方領域であるとし、その辺の長さをとっている。これは、例えば、ある決められた距離で画像を撮影し、この中で顔領域がどのくらいの大きさであるかを人間が計測する。
【0172】
2:各大きさの顔画像を高速フーリエ変換(FFT)により、周波数領域でのピークを求める(図63を参照のこと)。さまざまな大きさの顔画像を撮影し、それぞれの周波数のピークを求める。
【0173】
3:距離と周波数の関係を求める(図64を参照のこと)。上記1,2を基に、図64に示す距離と周波数の関係を求める
【0174】
[認識](図65を参照のこと)
1:ある画像に対して距離を求める
(画像中の各画素に対して3次元座標が決定される)。
【0175】
2:距離から周波数を求める。
準備の手順3で得られた関係から周波数を求める
【0176】
3:求められた周波数のガボア・フィルタにより特徴抽出する。
【0177】
4:得られた画像をサポート・ベクタ・マシンで識別し、特定顔か非特定顔であるかを求める。
【産業上の利用可能性】
【0178】
以上、特定の実施形態を参照しながら、本発明について詳細に説明してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0179】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置であるならば、例えば玩具等のような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【0180】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【技術分野】
【0001】
本発明は、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェースを備えたロボット装置、並びに、ロボット用にヒューマン・インターフェースとして適用することができる顔認識方法及び顔認識装置に係り、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができるロボット装置、並びに、顔認識方法及び顔認識装置に関する。
【0002】
さらに詳しくは、本発明は、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうロボット装置、顔認識方法及び顔認識装置に係り、特に、照明条件やカメラ・パラメータが異なる環境下でロバストな顔認識を行なうロボット装置、顔認識方法及び顔認識装置に関する。
【背景技術】
【0003】
顔認識の技術は、ユーザに負担をかけない個人認証システムをはじめとして、性別の識別など、マンマシン・インターフェースに幅広く適用が可能である。初期は横顔を使った認識技術も検討されたが、現在は、正面画像の認識技術が中心となっている。
【0004】
顔認識に関する研究は、パターン認識理論を検証する上でベンチマーク的な位置付けを持っており、古くからさまざまな手法が開発されてきた。そこで想定されていたアプリケーションは、セキュリティ・システムにおける認証や大規模データベースからの人物検索など、静的な環境下で正確性を要するものがほとんどである。
【0005】
ところで、近年、外観形状が犬などの動物に模して形成され、エンターテインメントとしてのロボット装置が提供されている。例えば、ソニー株式会社は、2000年11月25日に2足歩行の人間型ロボット"SDR−3X"を公表した。この種の脚式移動ロボットは、不安定で姿勢制御や歩行制御が難しくなるが、階段や梯子の昇降や障害物の乗り越えなど、整地・不整地の区別を問わない柔軟な歩行・走行動作を実現できるという点で優れている。さらにロボットのインテリジェンスを高め、自律的な装置動作を可能とすることにより、同じ住空間において人間とロボットが共存することも夢ではなくなる。
【0006】
インテリジェントなロボット装置は、外部からの情報(例えば、周囲環境の情報など)や内部の状態(例えば、感情状態など)などに応じて目や脚などを自律的に動作させることで、動物のような仕草を表出させることができる。
【0007】
このようなロボット装置の出現により、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェース技術が要求されてきており、その1つとしてロボット装置による顔識別を挙げることができる。例えば、顔識別を利用することにより、ロボット装置は、多くの中からユーザ(飼い主又はともだち、若しくは正当なユーザ)を識別することができ、ユーザ毎にリアクションを変えるなどして、よりエンターテインメント性のあるものとなる。
【0008】
ロボット装置への適用が求められている顔認識技術は、セキュリティ・システムにおける認証や大規模データベースからの人物検索などの適用分野とは相違し、多少不正確であっても、動的に変化する環境下で一定時間内に応答できることである。
【0009】
こうしたロボット装置に搭載される顔識別のアプリケーションでは、ある与えられた1枚のシーンの中から人物を識別するという問題に加え、次のような問題を解決する必要がある。
【0010】
(1)ロボット装置自身が移動するため、環境の変化やその多様性を許容しなくてはならない。
【0011】
(2)人間とロボット装置の位置関係も変化するため、インタラクション中に人間を視野内に入れ続ける必要がある。
【0012】
(3)数多くのシーン画像から人物の識別に使える画像を選び出し、総合的に判断しなくてはならない。
【0013】
(4)ある時間内に応答しなくてはならない。
【0014】
従来、顔認識の手法は、ニューラル・ネットワークを用いた方法や、顔画像の各輝度値を要素とするベクトル空間に主成分分析(Principal Components Analysis:PCA)を適用する手法(固有空間法)などが主流であったが、これら従来技術には以下のような欠点がある。
【0015】
まず、ニューラル・ネットワークによる顔認識では、インクリメンタルな学習が不可能である。
【0016】
また、固有顔による方法の場合、直交する部分線形空間を仮定している(すなわち、2枚の顔画像の平均をとると人の顔になる)が、実際には線形でないことが多く、このために、モーフィング(morphing)あるいはアラインメント(alignmemt)と呼ばれる正確な位置合わせが必要となる。この前処理により、位置、回転、大きさに対して正規化し、その影響をなくそうとするものもあるが、なかなかうまく処理できないこともあり、認識性能を低下させる原因になっている。また、顔空間の次元を著しく小さくしてその空間での分離をするため、高次元の特徴が失われる可能性もある。
【0017】
また、上述したいずれの顔認識方法であっても、照明条件の変化やカメラ・パラメータの変化、ノイズ、位置、回転に対して影響を受け易く、ノイズ・フィルタリングやモーフィングなどの前処理を必要とする。また、汎化能力の点でも疑問が残る。
【発明の開示】
【発明が解決しようとする課題】
【0018】
本発明の目的は、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェースを備えたロボット装置、並びに、ロボット用にヒューマン・インターフェースとして適用することができる、優れた顔認識方法及び顔認識装置を提供することにある。
【0019】
本発明のさらなる目的は、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【0020】
本発明のさらなる目的は、照明条件やカメラ・パラメータが異なる環境下でロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【0021】
本発明のさらなる目的は、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【0022】
本発明のさらなる目的は、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することにある。
【課題を解決するための手段】
【0023】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、自律的に行動するロボット装置であって、
顔画像を入力する画像入力手段と、
方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段と、
前記顔特徴量抽出手段による顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段と、
を具備することを特徴とするロボット装置である。
【0024】
ここで、前記顔特徴量抽出手段はガボア・フィルタで構成することができる。また、前記顔識別手段はサポート・ベクタ・マシンで構成することができる。
【0025】
本発明の第1の側面によれば、ロボット装置は、入力画像に対してモーフィングなどの位置合わせを行なうことなく、すなわち、回転や位置などの変化に対してロバストな顔認識を行なうことができる。すなわち、ロボット装置は、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができ、ユーザ毎の対応を実時間で行うことができる。
【0026】
ここで、前記顔特徴量抽出手段は、認識タスクに応じて前記ガボア・フィルタの種類を変更するフィルタ変更手段をさらに備えていてもよい。
【0027】
また、前記顔特徴量抽出手段は、低周波でのフィルタリングではフィルタリング後のイメージをダウンサンプリングして次元を落すようにすることができる。ダウンサンプリングされた各ベクトルを一列に並べて、長いベクトルを構成して、後段の顔識別手段に渡す。
【0028】
また、本発明の第2の側面は、ロボット用のヒューマン・インターフェースとして適用可能な顔認識装置又は顔認識方法であって、
顔画像を入力する画像入力手段又はステップと、
方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段又はステップと、
前記顔特徴量抽出手段又はステップによる顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段又はステップと、
を具備することを特徴とする顔認識装置又は顔認識方法である。
【0029】
ここで、前記顔特徴量抽出手段はガボア・フィルタで構成することができる。また、前記顔識別手段はサポート・ベクタ・マシンで構成することができる。
【0030】
本発明の第2の側面に係る顔認識装置又は顔認識方法によれば、入力画像に対してモーフィングなどの位置合わせを行なうことなく、すなわち、回転や位置などの変化に対してロバストな顔認識を行なうことができる。すなわち、動的に変化する作業環境下であってもユーザの顔を一定時間内に認識することができる。したがって、本発明の第2の側面に係る顔認識装置又は顔認識方法をロボット装置に適用することにより、該ロボット装置は、ユーザ毎に異なるリアクションを遅延時間なく実行することができるなど、エンターテインメント性を向上させることができる。
【0031】
ここで、前記顔特徴量抽出手段又はステップは、認識タスクに応じて前記ガボア・フィルタの種類を変更するフィルタ変更手段又はステップをさらに備えていてもよい。
【0032】
また、前記顔特徴量抽出手段又はステップは、低周波でのフィルタリングではフィルタリング後のイメージをダウンサンプリングして次元を落すようにすることができる。ダウンサンプリングされた各ベクトルを一列に並べて、長いベクトルを構成して、後段の顔認識手段又はステップに渡す。
【発明の効果】
【0033】
本発明によれば、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェースを備えたロボット装置、並びに、ロボット用にヒューマン・インターフェースとして適用することができる、優れた顔認識方法及び顔認識装置を提供することができる。
【0034】
また、本発明によれば、動的に変化する作業環境下でユーザの顔を一定時間内に認識することができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することができる。
【0035】
また、本発明によれば、モーフィングなどの位置合わせを行なう必要なく、回転、位置などの変化に対してロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することができる。
【0036】
また、本発明によれば、照明条件やカメラ・パラメータが異なる環境下でロバストな顔認識を行なうことができる、優れたロボット装置、顔認識方法及び顔認識装置を提供することができる。
【0037】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【図面の簡単な説明】
【0038】
【図1】図1は、本発明の実施に供される脚式移動ロボット100を前方から眺望した様子を示した図である。
【図2】図2は、本発明の実施に供される脚式移動ロボット100を後方から眺望した様子を示した図である。
【図3】図3は、本実施形態に係る脚式移動ロボット100が具備する自由度構成モデルを模式的に示した図である。
【図4】図4は、脚式移動ロボット100の制御システム構成を模式的に示した図である。
【図5】図5は、本実施形態に係るロボット装置100の処理動作を実現するための制御プログラムのソフトウェア構成を模式的に示した図である。
【図6】図6は、ミドルウェア・レイヤ140の具体なソフトウェア構成を詳細に示した図である。
【図7】図7は、アプリケーション・レイヤ141の具体なソフトウェア構成を詳細に示した図である。
【図8】図8は、行動モデル・ライブラリ170の具体的なソフトウェア構成を詳細に示した図である。
【図9】図9は、各行動モデル170−1〜170−nから次の行動を決定するための有限確率オートマトンの仕組みを示した図である。
【図10】図10は、自己の行動モデル170−1〜170−nを形成するノードNODE0〜NODEnにそれぞれ対応させて用意された状態遷移表を示した図である。
【図11】図11は、本実施形態に係る顔認識システム1000の学習段階における機能構成を示したブロック図である。
【図12】図12は、本実施形態に係る顔認識システム1000の認識段階における機能構成を示したブロック図である。
【図13】図13は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図14】図14は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図15】図15は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図16】図16は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図17】図17は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図18】図18は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図19】図19は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図20】図20は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図21】図21は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図22】図22は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図23】図23は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図24】図24は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図25】図25は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図26】図26は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図27】図27は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図28】図28は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図29】図29は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図30】図30は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図31】図31は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図32】図32は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図33】図33は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図34】図34は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図35】図35は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図36】図36は、本実施形態で使用されるガボア・フィルタの空間領域での様相を示した図である。
【図37】図37は、入力画像の一例を示した図である。
【図38】図38は、図37に示す入力画像を、図13に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図39】図39は、図37に示す入力画像を、図14に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図40】図40は、図37に示す入力画像を、図15に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図41】図41は、図37に示す入力画像を、図16に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図42】図42は、図37に示す入力画像を、図17に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図43】図43は、図37に示す入力画像を、図18に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図44】図44は、図37に示す入力画像を、図19に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図45】図45は、図37に示す入力画像を、図20に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図46】図46は、図37に示す入力画像を、図21に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図47】図47は、図37に示す入力画像を、図22に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図48】図48は、図37に示す入力画像を、図23に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図49】図49は、図37に示す入力画像を、図24に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図50】図50は、図37に示す入力画像を、図25に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図51】図51は、図37に示す入力画像を、図26に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図52】図52は、図37に示す入力画像を、図27に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図53】図53は、図37に示す入力画像を、図28に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図54】図54は、図37に示す入力画像を、図29に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図55】図55は、図37に示す入力画像を、図30に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図56】図56は、図37に示す入力画像を、図31に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図57】図57は、図37に示す入力画像を、図32に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図58】図58は、図37に示す入力画像を、図33に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図59】図59は、図37に示す入力画像を、図34に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図60】図60は、図37に示す入力画像を、図35に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図61】図61は、図37に示す入力画像を、図36に示すガボア・フィルタでフィルタリングした結果を示した図である。
【図62】図62は、画像中の顔の大きさと距離の関係を示した図である。
【図63】図63は、各顔の大きさの画像を高速フーリエ変換して周波数領域のピークを求める処理を説明するための図である。
【図64】図64は、距離とガボア・フィルタの周波数の関係を示した図である。
【図65】図65は、距離情報を利用したガボア・フィルタによる顔抽出処理の手順を示したフローチャートである。
【発明を実施するための形態】
【0039】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
【0040】
後述する本発明の実施形態は、本発明を、外観形状がヒトに模して形成された2足脚式移動のロボット装置すなわちヒューマノイド・ロボット(humanoid robot)に適用したものである。但し、本発明の要旨はこれに限定されるものではなく、例えば犬などの4足脚式移動ロボットにも同様に本発明を適用することができる。
【0041】
本実施形態に係るロボット装置は、外部からの情報(例えば、周囲環境の情報など)や内部の状態(例えば、感情状態など)などに応じて目や脚等を自律的に動作させることで、リアリティのある仕草を表出させている。そして、このロボット装置は、ヒューマン・インターフェースとしての顔認識機能を装備して、ユーザ(友達又は飼い主)などの顔を識別することができるものとして構成されており、顔認識結果に基づいて、ユーザ毎に異なるリアクションを形成することができる。
【0042】
A.ロボットの構成
図1及び図2には本発明の実施に供される脚式移動ロボット100を前方及び後方の各々から眺望した様子を示している。さらに、図3には、この脚式移動ロボット100が具備する関節自由度構成を模式的に示している。
【0043】
図3に示すように、脚式移動ロボット100は、2本の腕部と頭部1を含む上肢と、移動動作を実現する2本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成された、複数の肢を備えた構造体である。
【0044】
頭部1を支持する首関節は、首関節ヨー軸2と、首関節ピッチ軸3と、首関節ロール軸4という3自由度を有している。
【0045】
また、各腕部は、肩関節ピッチ軸8と、肩関節ロール軸9と、上腕ヨー軸10と、肘関節ピッチ軸11と、前腕ヨー軸12と、手首関節ピッチ軸13と、手首関節ロール軸14と、手部15とで構成される。手部15は、実際には、複数本の指を含む多関節・多自由度構造体である。但し、手部15の動作はロボット100の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、各腕部は7自由度を有するとする。
【0046】
また、体幹部は、体幹ピッチ軸5と、体幹ロール軸6と、体幹ヨー軸7という3自由度を有する。
【0047】
また、下肢を構成する各々の脚部は、股関節ヨー軸16と、股関節ピッチ軸17と、股関節ロール軸18と、膝関節ピッチ軸19と、足首関節ピッチ軸20と、足首関節ロール軸21と、足部22とで構成される。本明細書中では、股関節ピッチ軸17と股関節ロール軸18の交点は、本実施形態に係る脚式移動ロボット100の股関節位置を定義する。人体の足部22は実際には多関節・多自由度の足底を含んだ構造体であるが、本実施形態に係る脚式移動ロボット100の足底はゼロ自由度とする。したがって、各脚部は6自由度で構成される。
【0048】
以上を総括すれば、本実施例に係る脚式移動ロボット100全体としては、合計で3+7×2+3+6×2=32自由度を有することになる。但し、エンターテインメント向けの脚式移動ロボット100が必ずしも32自由度に限定される訳ではない。設計・製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【0049】
上述したような脚式移動ロボット100が持つ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、2足歩行という不安定構造体に対して姿勢制御を行うことなどの要請から、アクチュエータは小型且つ軽量であることが好ましい。本実施例では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ACサーボ・アクチュエータを搭載することとした。なお、この種のACサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開2000−299970号公報(特願平11−33386号)に開示されている。
【0050】
図4には、脚式移動ロボット100の制御システム構成を模式的に示している。この制御システムは、コントロール部116と、このロボット装置100の動力源としてのバッテリ117とで構成され、例えば、脚式移動ロボットの機体胴体部やその背面部に搭載されている。コントロール部116は、CPU(Central Processing Unit)110と、DRAM(Dynamic Random Access Memory)111と、フラッシュROM(Read Only Memory)112と、PC(Personal Computer)カード・インターフェース回路113及び信号処理回路114が内部バス115を介して相互に接続されることにより構成される。また、機体には、ロボット装置100の向きや動きの加速度を検出するための角速度センサ118及び加速度センサ119なども装備されている。
【0051】
また、機体の頭部には、外部の状況を撮像するためのCCD(Charge Coupled Device:電荷結合素子)カメラ120と、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチ・センサ121と、前方に位置する物体までの距離を測定するための距離センサ122と、外部音を集音するためのマイクロフォン123と、鳴き声等の音声を出力するためのスピーカ124などがそれぞれ機体上の所定位置に配設されている。ここで、CCDカメラ120は、顔識別において顔画像を撮像するための画像入力手段を構成する。
【0052】
さらに、各脚部ユニットの関節部分や、各脚部ユニット及び胴体部ユニットの各連結部分、並びに頭部ユニット及び胴体部ユニットの連結部分などには、それぞれ自由度数分のアクチュエータ125−1〜125−n及びポテンショメータ126−1〜126−nが配設されている。例えば、アクチュエータ125−1〜125−nはそれぞれ1つのサーボモータによって構成される。これらサーボモータの駆動により、脚部ユニットが制御されて、目標の姿勢あるいは動作に遷移する。
【0053】
そして、前述した角速度センサ118、加速度センサ119、タッチ・センサ121、距離センサ122、マイクロフォン123、スピーカ124、並びに各ポテンショメータ126−1〜126−nなどの各種センサ、及び各アクチュエータ125−1〜125−nは、それぞれ対応するハブ127−1〜127−nに集線された後に、コントロール部116の信号処理回路114と接続されている。また、CCDカメラ120及びバッテリ117は、それぞれ信号処理回路114と直接接続されている。
【0054】
信号処理回路1l4は、上述の各センサから供給されるセンサ・データや画像データ、及び音声データを逐次取り込んで、これらをそれぞれ内部バス115を介してDRAM111内の所定のアドレスに適宜格納する。また、信号処理回路114は、これとともにバッテリ117から供給されるバッテリ残量を表すバッテリ残量データを逐次取り込み、これも同様にDRAM111内の所定のアドレスに格納する。
【0055】
このようにしてDRAM111に格納された各センサ・データ、画像データ、音声データ、並びにバッテリ残量データは、この後、CPU110がこのロボット装置100の機体の動作制御を行う際に利用可能となる。
【0056】
実際上、CPU110は、ロボット装置100の電源が投入された初期時、胴体部ユニット2の図示しないPCカード・スロットに装填されたメモリ・カード128又はフラッシュROM112に格納された制御プログラムをPCカード・インターフェース回路113経由で又は直接読み出して、これをDRAM111にロードする。
【0057】
また、CPU110は、このようなプログラム・ロードの後、上述したように信号処理回路114よりDRAM111に逐次格納されている各センサ・データ、画像データ、音声データ、並びにバッテリ残量データに基づいて、自己及び機体周囲の状況や、使用者からの指示及び働きかけの有無などを判断するようになっている。
【0058】
さらに、CPU110は、この判断結果及びDRAM111に格納した制御プログラムに基づいて続く行動を決定するとともに、当該決定結果に基づいて必要なアクチュエータ125−1〜125−nを駆動させることにより、頭部を左右に振らせたり、各脚部ユニットを駆動させたりして歩行やその他の脚式作業を実行させる。
【0059】
また、このようなプログラム実行の際、CPU110は、必要に応じて音声データを生成して、これを信号処理回路114経由で音声信号としてスピーカ24に与えることにより、当該音声信号に基づく音声を外部に出力させたりする。
【0060】
このようにして、このロボット装置100においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るように構成されている。
【0061】
B.制御プログラムのソフトウェア構成
図5には、本実施形態に係るロボット装置100の処理動作を実現するための制御プログラムのソフトウェア構成を模式的に示している。
【0062】
同図に示すように、デバイス・ドライバ・レイヤ130は、この制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット31から構成されている。この場合、各デバイス・ドライバは、CCDカメラ20(図4を参照のこと)やタイマなどの通常のコンピュータ処理に用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、一般には、対応するハードウェアからの割り込みに応答して処理を開始するようになっている(割り込みハンドラ)。
【0063】
また、ロボティック・サーバ・オブジェクト132は、デバイス・ドライバ・レイヤ130の最下位層に位置し、例えば上述の各種センサやアクチュエータ125−1〜125−nなどのハードウェアにアクセスするためのインターフェースを提供するソフトウェア群でなるバーチャル・ロボット133と、電源の切換えなどを管理するソフトウェア群でなるパワー・マネージャ134と、他のさまざまのデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ135と、ロボット装置100の機構を管理するソフトウェア群でなるデザインド・ロボット136とで構成される。
【0064】
マネージャ・オブジェクト137は、オブジェクト・マネージャ138及びサービス・マネージャ139から構成される。オブジェクト・マネージャ138は、ロボティック・サーバ・オブジェクト132、ミドルウェア・レイヤ140、及びアプリケーション・レイヤ141に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群である。また、サービス・マネージャ139は、メモリ・カード128(図4を参照のこと)に格納されたコネクション・ファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【0065】
ミドルウェア・レイヤ140は、ロボティック・サーバ・オブジェクト132の直近上位に位置し、画像処理や音声処理など本実施形態に係るロボット装置100の基本的な機能を提供するソフトウェア群から構成される。また、アプリケーション・レイヤ141は、ミドルウェア・レイヤ40の直近上位に位置し、当該ミドルウェア・レイヤ140を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置100の行動を決定するためのソフトウェア群から構成される。
【0066】
図6には、ミドルウェア・レイヤ140の具体なソフトウェア構成を詳細に示している。
【0067】
同図に示すように、ミドルウェア・レイヤ140は、騒音検出用、温度検出用、明るさ検出用、音階認識用、距離検出用、姿勢検出用、タッチ・センサ用、動き検出用、及び色認識用の各信号処理モジュール150〜158、並びに入力セマンティクス・コンバータ・モジュール159などを有する認識系ミドルウェア160と、出力セマンティクス・コンバータ・モジュール168、姿勢管理用、トラッキング用、モーション再生用、歩行用、転倒復帰用、及び、音再生用の各信号処理モジュール161〜167などを有する出力系ミドルウェア169とで構成される。
【0068】
認識系ミドルウェア160の各信号処理モジュール150〜158は、ロボティック・サーバ・オブジェクト132のバーチャル・ロボット133によりDRAM11(図4を参照のこと)から読み出される各センサ・データや画像データ(顔画像データ)及び音声データのうちの対応するデータを取り込んで、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクス・コンバータ・モジュール159に与える。ここで、例えば、バーチャル・ロボット133は、所定の通信規約によって、信号の授受あるいは変換をする部分として構成されている。
【0069】
入力セマンティクス・コンバータ・モジュール159は、これら各信号処理モジュール150〜158から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ボールを検出した」、「転倒を検出した」、「撫でられた」、「叩かれた」、「ドミソの音階が聞こえた」、「動く物体を検出した」、又は、「障害物を検出した」、「人Aを見つけた(認識した)」などの自己及び周囲の状況を認識したり、使用者からの指令及び働きかけを認識したりして、認識結果をアプリケーション・レイヤ141に出力するようになっている。
【0070】
図7には、アプリケーション・レイヤ14lの具体なソフトウェア構成を詳細に示している。同図に示すように、アプリケーション・レイヤ14lは、行動モデル・ライブラリ170、行動切換えモジュール171、学習モジュール172、感情モデル173、及び本能モデル174の5つのモジュールで構成される。
【0071】
図8には、行動モデル・ライブラリ170の具体的なソフトウェア構成を詳細に示している。同図に示すように、行動モデル・ライブラリ170には、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」、「人Aを見つけた(認識した)」などのあらかじめ選択された幾つかの条件項目に対応させて、それぞれ独立した行動モデル170−1〜170−nが設けられている。
【0072】
そして、これら行動モデル170−1〜170−nは、それぞれ入力セマンティクス・コンバータ・モジュール159から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、後述するように、必要に応じて感情モデル173に保持されている対応する情動のパラメータ値や、本能モデル174に保持されている対応する欲求のパラメータ値を参照しながら後続の行動をそれぞれ決定して、この決定結果を行動切換えモジュール171に出力するになっている。
【0073】
なお、本実施形態の場合、各行動モデル170−1〜170−nは、次の行動を決定する手法として、図9に示すような有限確率オートマトンと呼ばれるアルゴリズムを用いる。有限確率オートマトンによれば、同図に示すように、1つのノード(状態)NODE0〜NODEnから他のいずれのノードNODE0〜NODEnに遷移するかを各ノードNODE0〜NODEnに間を接続するアークARC1〜ARCnに対してそれぞれ設定された遷移確率P1〜Pnに基づいて確率的に決定することができる。
【0074】
具体的には、各行動モデル170−1〜170−nは、それぞれ自己の行動モデル170−1〜170−nを形成するノードNODE0〜NODEnにそれぞれ対応させて、これらノードNODE0〜NODEn毎に、図10に示すような状態遷移表180を有している。
【0075】
この状態遷移表180では、そのノードNODE0〜NODEnにおいて遷移条件とする入力イベント(認識結果)が「入力イベント名」の行に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の行における対応する列に記述されている。
【0076】
例えば、図10に示す状態遷移表180で表されるノードNODE100では、「ボールを検出(BALL)」という認識結果が与えられた場合に、当該認識結果とともに与えられるそのボールの「大きさ(SIZE)」が「0から1000」の範囲であることが他のノードに遷移するための条件となっている。同様に、「障害物を検出(OBSTACLE)」という認識結果が与えられた場合には、当該認識結果とともに与えられるその障害物までの「距離(DISTANCE)」が「0から100」の範囲であることが他のノードに遷移するための条件である。
【0077】
また、このノードNODE100では、認識結果の入力がない場合においても、行動モデル170−1〜170−nが周期的に参照する感情モデル173及び本能モデル174にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル173に保持された「喜び(JOY)」、「驚き(SURPRISE)」、若しくは「悲しみ(SUDNESS)」のいずれかのパラメータ値が「50から100」の範囲であるときには、他のノードに遷移することができるようになっている。
【0078】
また、状態遷移表180では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の列にそのノードNODE0〜 NODEnから遷移できるノード名が列記されているとともに、「入力イベント名」、「データ値」及び「データの範囲」の行に記述されたすべての条件が揃ったときに遷移できる他の各ノードNODE0〜NODEnへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述されており、そのノードNODE0〜NODEnに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は100[%]となる。
【0079】
したがって、図10に示す状態遷移表180で表されるノードNODE100では、例えば「ボールを検出(BALL)」し、そのボールの「SIZE(大きさ)」が「0から1000」の範囲であるという認識結果が与えられた場合には、「30[%]」の確率で「ノードNODE120(node 120)」に遷移でき、そのとき「ACTION1」の行動が出力すなわち機体動作が実行されることとなる。
【0080】
各行動モデル170−1〜170−nは、それぞれこのような状態遷移表180として記述されたノードNODE0〜 NODEnがいくつも繋がるようにして構成されている。したがって、入力セマンティクス・コンバータ・モジュール159から認識結果が与えられたときなどに、対応するノードNODE0〜NODEnの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換えモジュール171に出力するようなっている。また、図10に示す状態遷移表に、「人Aを見つけた(認識した)」という入力イベント名を持つエントリを用意し、さらに遷移条件などを記述しておくことにより、ロボット装置100が特定のユーザを認識したときに起こすべきリアクションを規定することができる。
【0081】
図7に示した行動切換えモジュール171は、行動モデル・ライブラリ170の各行動モデル170−1〜170−nからそれぞれ出力される行動のうち、あらかじめ定められた優先順位の高い行動モデル170−1〜170−nから出力された行動を選択して、当該行動を実行すべき旨のコマンド(以下、これを「行動コマンド」という。)をミドルウェア・レイヤ140の出力セマンティクス・コンバータ・モジュール168に送出するようになっている。なお、本実施形態においては、図8において下側に表記された行動モデル170−1〜170−nほど優先順位が高く設定されているものとする。
【0082】
また、行動切換えモジュール171は、行動完了後に出力セマンティクス・コンバータ・モジュール168から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール172、感情モデル173、並びに本能モデル174に通知する。
【0083】
一方、学習モジュール172は、入力セマンティクス・コンバータ・モジュール159から与えられる認識結果のうち、「叩かれた」や「撫でられた」など、使用者からの働きかけとして受けた教示の認識結果を入力する。
【0084】
そして、学習モジュール172は、この認識結果及び行動切換えモジュール171からの通知に基づいて、「叩かれた(叱られた)」ときにはその行動の発現確率を低下させ、「撫でられた(誉められた)」ときにはその行動の発現確率を上昇させるように、行動モデル・ライブラリ170における対応する行動モデル170−1〜170−nの対応する遷移確率を変更する。
【0085】
他方、感情モデル173は、「喜び(joy)」、「悲しみ(sadness)」、「怒り(anger)」、「驚き(surprise)」、「嫌悪(disgust)」及び「恐れ(fear)」の合計6つの情動について、情動毎にその情動の強さを表すパラメータを保持している。そして、感情モデル173は、これら各情動のパラメータ値を、それぞれ入力セマンティクス・コンバータ・モジュール159から与えられる「叩かれた」及び「撫でられた」などの特定の認識結果と、経過時間及び行動切換えモジュール171からの通知となどに基づいて周期的に更新する。
【0086】
具体的には、感情モデル173は、入力セマンティクス・コンバータ・モジュール159から与えられる認識結果と、そのときのロボット装置100の行動と、前回更新してからの経過時間となどに基づいて所定の演算式により算出されるそのときのその情動の変動量を△E[t]、現在のその情動のパラメータ値をE[t]、その情動の感度を表す係数をkeとして、下式(1)によって次の周期におけるその情動のパラメータ値E[t+1]を算出し、これを現在のその情動のパラメータ値E[t]と置き換えるようにして、その情動のパラメータ値を更新する。また、感情モデル173は、これと同様にしてすべての情動のパラメータ値を更新する。
【0087】
【数1】
【0088】
なお、各認識結果や出力セマンティクス・コンバータ・モジュール168からの通知が各情動のパラメータ値の変動量△E[t]にどの程度の影響を与えるかはあらかじめ決められている。例えば、「叩かれた」といった認識結果は、「怒り」を表す情動のパラメータ値の変動量△E[t]に大きな影響を与える。また、「撫でられた」といった認識結果は、「喜び」を表す情動のパラメータ値の変動量△E[t]に大きな影響を与えるようになっている。
【0089】
ここで、出力セマンティクス・コンバータ・モジュール168からの通知とは、いわゆる行動のフィードバック情報(行動完了情報)であり、行動の出現結果の情報である。感情モデル173は、このような情報によっても感情を変化させる。これは、例えば、「吠える」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクス・コンバータ・モジュール168からの通知は、上述した学習モジュール172にも入力されている。学習モジュール172は、その通知に基づいて行動モデル170−1〜170−nの対応する遷移確率を変更する。
【0090】
なお、行動結果のフィードバックは、行動切換えモジュレータ171の出力(感情が付加された行動)によりなされるものであってもよい。
【0091】
一方、本能モデル174は、「運動欲(exercise)」、「愛情欲(affection)」、「食欲(appetite)」及び「好奇心(curiosity)」の互いに独立した4つの欲求について、これら欲求毎にその欲求の強さを表すパラメータを保持している。そして、本能モデル174は、これらの欲求のパラメータ値を、それぞれ入力セマンティクス・コンバータ・モジュール159から与えられる認識結果や、経過時間及び行動切換えモジュール171からの通知などに基づいて周期的に更新する。
【0092】
具体的には、本能モデル174は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクス・コンバータ・モジュール168からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔI[k]、現在のその欲求のパラメータ値をI[k]、その欲求の感度を表す係数kiとして、所定周期で下式(2)を用いて次の周期におけるその欲求のパラメータ値I[k+1]を算出し、この演算結果を現在のその欲求のパラメータ値I[k]と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル174は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【0093】
【数2】
【0094】
なお、認識結果及び出力セマンティクス・コンバータ・モジュール168からの通知などが各欲求のパラメータ値の変動量△I[k]にどの程度の影響を与えるかはあらかじめ決められている。例えば、出力セマンティクス・コンバータ・モジュール168からの通知は、「疲れ」のパラメータ値の変動量△I[k]に大きな影響を与えるようになっている。
【0095】
なお、本実施の形態においては、各情動及び各欲求(本能)のパラメータ値がそれぞれ0から100までの範囲で変動するように規制されており、また係数ke、kiの値も情動毎及び欲求毎に個別に設定されている。
【0096】
一方、ミドルウェア・レイヤ140の出力セマンティクス・コンバータ・モジュール168は、図6に示したように、上述のようにしてアプリケーション・レイヤ141の行動切換えモジュール171から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング(ボールを追いかける)」といった抽象的な行動コマンドを出力系セマンティックス・コンバータ・モジュール169内の対応する信号処理モジュール161〜167に与える。
【0097】
そして、これら信号処理モジュール161〜167は、行動コマンドが与えられると、当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ125−1〜125−n(図4を参照のこと)に与えるべきサーボ指令値や、スピーカ124から出力する音の音声データなどの駆動データを生成して、これらのデータをロボティック・サーバ・オブジェクト132のバーチャル・ロボット133及び信号処理回路114を順次介して対応するアクチュエータ125−1〜125−n又はスピーカ124に順次送出する。
【0098】
このようにしてロボット装置100においては、制御プログラムに基づいて、自己(内部)及び周囲(外部)の状況や、使用者からの指示及び働きかけに応じた自律的な行動を行うことができるようになされている。
【0099】
C.ロボット装置による顔識別
インテリジェントなロボット装置には、動的に変化する作業環境下で一定時間内に応答できるようなヒューマン・インターフェース技術が要求されている。本実施形態に係るロボット装置100は、顔認識技術を適用することにより、多くの中からユーザ(飼い主又はともだち、若しくは正当なユーザ)を識別するとともに、認識結果に基づいて(すなわちユーザに応じて)リアクションを制御することによって、より高いエンターテインメント性を実現する。
【0100】
本実施形態に係る顔認識システム1000は、動的に変化する環境下で一定時間内に応答することができるが、CCDカメラによる撮像画像から顔パターンを抽出する顔抽出処理部1001と、抽出された顔パターンを基に顔を認識する顔認識部1002で構成される。本実施形態では、顔パターンを抽出する(顔画像の特徴量を抽出する)顔抽出処理には、方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、前記顔画像の特徴量を抽出する「ガボア・フィルタリング(Gabor Filtering)」を採用している。また、顔パターンから顔を認識する顔認識処理には、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する「サポート・ベクタ・マシン(Support Vector Machine:SVM)」を採用している。
【0101】
この顔認識システム1000は、顔パターンを顔認識部が学習する学習段階と、学習されたデータを基に、撮像画像から抽出された顔パターンを認識する認識段階を持つ。
【0102】
図11には、本実施形態に係る顔認識システム1000の学習段階の構成を、また、図12には、同顔認識システム1000の認識段階の構成をそれぞれ示している。
【0103】
学習段階においては、図11に示すように、CCDカメラから入力されたユーザの撮像画像をガボア・フィルタリング1001で顔抽出した結果がサポート・ベクタ・マシン1002に投入される。サポート・ベクタ・マシン1002では、外部から供給される学習用のデータすなわち教師データを用いて、暫定的な識別関数を得る。
【0104】
また、識別段階においては、図12に示すように、CCDカメラから入力されたユーザの撮像画像をガボア・フィルタリング1001で顔抽出した結果がサポート・ベクタ・マシン1002に投入される。サポート・ベクタ・マシン1002では、暫定的に得られた識別関数をさまざまなデータベース上の画像に試して顔の検出を行なう。そして、検出に成功したものを顔データとして出力する。また、検出に失敗したものを非顔データとして学習データに追加して、さらに学習をし直す。
【0105】
以下では、ガボア・フィルタリングとサポート・ベクタ・マシンについて、それぞれ詳細に説明する。
【0106】
ガボア・フィルタリング:
人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判っている。これは、垂直の線に対して発火する細胞と、水平の線に反応する細胞で構成される。ガボア・フィルタリングは、これと同様に、方位選択性を持つ複数のフィルタで構成される空間フィルタである。
【0107】
ガボア・フィルタは、ガボア関数によって空間表現される。ガボア関数g(x,y)は、下式(3)に示すように、コサイン成分からなるキャリアs(x,y)と、2次元ガウス分布状のエンベロープwr(x,y)とで構成される。
【0108】
【数3】
【0109】
キャリアs(x,y)は、複素関数を用いて、下式(4)のように表現される。ここで、座標値(u0,v0)は空間周波数を表し、また、Pはコサイン成分の位相を表す。
【0110】
【数4】
【0111】
上式(4)に示すキャリアは、下式(5)に示すように、実数成分Re(s(x,y))と虚数成分Im(s(x,y))に分離することができる。
【0112】
【数5】
【0113】
一方、2次元ガウス分布からなるエンベロープは、下式(6)のように表現される。
【0114】
【数6】
【0115】
ここで、座標値(x0,y0)はこの関数のピークであり、定数a及びbはガウス分布のスケール・パラメータである。また、添え字rは、下式(7)に示すような回転操作を意味する。
【0116】
【数7】
【0117】
したがって、上式(4)及び上式(6)より、ガボア・フィルタは、下式(8)に示すような空間関数として表現される。
【0118】
【数8】
【0119】
本実施形態に係る顔抽出部1001は、8種類の方向と3通りの周波数を採用して、合計24個のガボア・フィルタを用いて顔抽出処理を行なう。本実施形態で使用されるガボア・フィルタの空間領域での様相を図13〜図36に示しておく。このうち、図13〜図20は、方向を22.5度ずつずらした高周波成分のガボア・フィルタである。また、図21〜図28は、方向を22.5度ずつずらした中周波成分のガボア・フィルタである。また、図29〜図36は、方向を22.5度ずつずらした低周波成分のガボア・フィルタである。但し、各図における濃淡は紙面に直交する座標軸方向の成分に相当すると理解されたい。
【0120】
ガボア・フィルタのレスポンスは、Giをi番目のガボア・フィルタとし、i番目のガボアの結果(Gabor Jet)をJiとし、入力イメージをIとし、すると、以下の式(9)で表される。式(9)の演算は、実際には高速フーリエ変換を用いて高速化することができる。
【0121】
【数9】
【0122】
図37に示すような入力画像(但し、入力画像は20×20画素とする)を、図13〜図36に示す各ガボア・フィルタでフィルタリングされた結果を、図38〜図61に示しておく。ガボア・フィルタは、たいていすべての周波数を埋め尽くすことができる。
【0123】
作成したガボア・フィルタの性能を調べるためには、フィルタリングして得られた画像を再構築することによって行なう。再構築されたイメージHは、下式(10)のように表される。
【0124】
【数10】
【0125】
そして、入力画像Iと再構築された画像HとのエラーEは、下式(11)のように表される。
【0126】
【数11】
【0127】
このエラーEを最小にするような最適なaを求めることにより再構築することができる。
【0128】
サポート・ベクタ・マシン:
本実施形態では、顔認識に関して、パターン認識の分野で最も学習汎化能力が高いとされるサポート・ベクタ・マシン(SVM)を用いて該当する顔か否かの識別を行なう。
【0129】
SVM自体に関しては、例えばB.sholkopf外著の報告(B. Sholkopf,C.Burges,A.Smola,“Advance in Kernel Methods Support Vector Learning”,The MIT Press,1999.)を挙げることができる。本発明者らが行なった予備実験の結果からは、SVMによる顔認識方法は、主成分分析(PCA)やニューラル・ネットワークを用いる手法に比べ、良好な結果を示すことが判っている。
【0130】
SVMは、識別関数に線形識別器(パーセプトロン)を用いた学習機械であり、カーネル関数を使うことで非線形空間に拡張することができる。また、識別関数の学習では、クラス間分離のマージンを最大にとるように行なわれ、その解は2次数理計画法を解くことで得られるため、グローバル解に到達できることを理論的に保証することができる。
【0131】
通常、パターン認識の問題は、テスト・サンプルx=(x1,x2,…,xn)に対して、以下の識別関数f(x)を求めることである。
【0132】
【数12】
【0133】
ここで、SVMの学習用の教師ラベルを以下のようにおく。
【0134】
【数13】
【0135】
すると、SVMにおける顔パターンの認識を以下に示す制約条件の下での重み因子wの二乗の最小化する問題としてとらえることができる。
【0136】
【数14】
【0137】
このような制約のついた問題は、ラグランジュの未定定数法を用いて解くことができる。すなわち、以下に示すラグランジュをまず導入して、
【0138】
【数15】
【0139】
次いで、下式に示すように、b,wの各々について偏微分する。
【0140】
【数16】
【0141】
この結果、SVMにおける顔パターンの識別を以下に示す2次計画問題としてとらえることができる。
【0142】
【数17】
【0143】
特徴空間の次元数が、訓練サンプルの数よりも少ない場合は、スラック変数ξ≧0を導入して、制約条件を以下のように変更する。
【0144】
【数18】
【0145】
最適化については、以下の目的関数を最小化する。
【0146】
【数19】
【0147】
上式(19)において、Cは、制約条件をどこまで緩めるかを指定する係数であり、実験的に値を決定する必要がある。
【0148】
【数20】
【0149】
しかし、上式(20)のままでは、非線型の問題を解くことはできない。そこで、本実施形態では、カーネル関数K(x,x')を導入して、一旦、高次元の空間に写像して(カーネル・トリック)、その空間で線形分離することにしている。したがって、元の空間では非線型分離していることと同等となる。
【0150】
カーネル関数は、ある写像Φを用いて下式のように表される。
【0151】
【数21】
【0152】
また、式(12)に示した識別関数も、以下のように表すことができる。
【0153】
【数22】
【0154】
また、学習に関しても、以下に示す2次計画問題としてとらえることができる。
【0155】
【数23】
【0156】
カーネルとしては、以下に示すガウシアン・カーネル(RBF(Radius Basic Function))などを用いることができる。
【0157】
【数24】
【0158】
なお、ガボア・フィルタリングに関しては、認識タスクに応じてフィルタの種類を変更するようにしてもよい。
【0159】
低周波でのフィルタリングでは、フィルタリング後のイメージすべてをベクトルとして持っているのは冗長である。そこで、ダウンサンプリングして、ベクトルの次元を落すようにしてもよい。ダウンサンプリングされた24種類のベクトルを一列に並べ、長いベクトルにする。
【0160】
また、本実施形態において顔パターンの認識に適用されるSVMは、特徴空間を2分する識別器なので、「人A」か「人Aでない」かを判別するように学習する。そのため、データベースの画像中から、まず人Aの顔画像を集め、ガボア・フィルタリング後のベクトルに「人Aでない」というラベルを貼る。一般に、集める顔画像の数は、特徴空間の次元より多い方がよい。10人の顔を認識したい場合は、同様に、「人Bである」、「人Bでない」…のように、それぞれの人に対して1つの識別器を構成する。
【0161】
このような学習により、例えば、「人A」と「人Aでない」を分けるサポート・ベクタが求まる。SVMは、特徴空間を2つに仕切る識別器であり、新しい顔画像が入力されてきたときに、やはりガボア・フィルタリングのベクトルが、求めたサポート・ベクタが構成する境界面のどちら側にあるかで認識結果を出力する。そして、境界に対して、「人A」の領域にあれば「人A」と認識することができる。また、「人Aではない」領域であれば「人Aでない」と認識される。
【0162】
CCDカメラなどから入力される入力画像から顔の部分として切り取られる領域は一定ではない。このため、特徴空間で認識したいカテゴリとは離れた点に投影される可能性がある。したがって、目や鼻、口といった特徴を持つパーツを推定してアフィン変換によりモーフィングすることにより認識率が向上する可能性がある。
【0163】
また、認識性能を上げるために、ブートストラップ手法を採用することができる。学習に用いる画像とは別に画像を撮影して、ブートストラップに用いる。これは、学習した識別器が誤った認識結果を出したときに、その入力画像を学習セットに投入して学習し直すことを意味する。
【0164】
また、認識性能を上げるために、認識結果の時間変化を見る方法もある。最も簡単な方法では、10回中8回「人A」と認識されたら「人A」と認識するなどである。他に、カルマン・フィルタを用いた予測法なども提案されている。
【0165】
他の実施形態
上述したように、顔抽出部1001では、認識タスクに応じて前記ガボア・フィルタの種類を変更することができる。ここで言うガボア・フィルタの種類とは、具体的には、周波数の数と各周波数、方向の数と各方向を設定することを指す。
【0166】
上述した例では、ガボア・フィルタの周波数を3種類用意しているが、周波数が1つだけでも顔画像を認識することができる。勿論、認識率が低下する可能性はあるが、このことは計算量の削減にもつながる。限られた計算機資源を動作制御や内部状態(感情や本能)制御などの多くのプログラムで消費するエンターテインメント・ロボットにおいては、計算量の削減は大きなメリットとなる。
【0167】
本実施形態に係る顔認識システム1000を搭載するロボット100(図1〜3を参照のこと)においては、例えば2台のカメラによるステレオ視から距離情報を取得するように構成されている。この距離情報を用いて、ガボア・フィルタを工夫することができる。
【0168】
顔の大きさと距離の関係は前もって求めることができる。また、顔画像の大きさとガボア・フィルタの周波数との間には一定の関係がある。つまり、顔画像が小さいときには高い周波数で特徴抽出を行なう必要があるが、顔画像が大きいときには低い周波数でよい。
【0169】
顔領域だけ切り取られた画像入力でない場合には、画像全体から、どこに顔があり、その顔が誰であるかを識別しなくてはならない。このような場合、距離画像の分布から、その距離に応じた周波数を選択するということができる。そして、その結果を後続のサポート・ベクタ・マシン(SVM:後述)で識別する。
【0170】
以下では、距離情報を利用したガボア・フィルタによる顔抽出処理の手順について説明する。
【0171】
[準備]
1:画像中での顔の大きさ(T画素×T画素)と距離(Mcm)の関係を求める。 図62において、横軸に距離、縦軸に顔画像の大きさをとる。ここで、縦軸は顔画像が正方領域であるとし、その辺の長さをとっている。これは、例えば、ある決められた距離で画像を撮影し、この中で顔領域がどのくらいの大きさであるかを人間が計測する。
【0172】
2:各大きさの顔画像を高速フーリエ変換(FFT)により、周波数領域でのピークを求める(図63を参照のこと)。さまざまな大きさの顔画像を撮影し、それぞれの周波数のピークを求める。
【0173】
3:距離と周波数の関係を求める(図64を参照のこと)。上記1,2を基に、図64に示す距離と周波数の関係を求める
【0174】
[認識](図65を参照のこと)
1:ある画像に対して距離を求める
(画像中の各画素に対して3次元座標が決定される)。
【0175】
2:距離から周波数を求める。
準備の手順3で得られた関係から周波数を求める
【0176】
3:求められた周波数のガボア・フィルタにより特徴抽出する。
【0177】
4:得られた画像をサポート・ベクタ・マシンで識別し、特定顔か非特定顔であるかを求める。
【産業上の利用可能性】
【0178】
以上、特定の実施形態を参照しながら、本発明について詳細に説明してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0179】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置であるならば、例えば玩具等のような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【0180】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【特許請求の範囲】
【請求項1】
自律的に行動するロボット装置であって、
顔画像を入力する画像入力手段と、
方位選択性を持ち周波数成分の異なる複数のフィルタからなるガボア・フィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段と、
サポート・ベクタ・マシンで構成され、前記顔特徴量抽出手段による顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段と、
を具備することを特徴とするロボット装置。
【請求項2】
顔画像を入力する画像入力手段と、
方位選択性を持ち周波数成分の異なる複数のフィルタからなるガボア・フィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段と、
サポート・ベクタ・マシンで構成され、前記顔特徴量抽出手段による顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段と、
を具備することを特徴とする顔認識装置。
【請求項3】
コンピュータを用いて構築される顔認識システム上で、顔画像を認識する顔認識方法であって、
前記コンピュータが備える画像入力手段が、顔画像を入力する画像入力ステップと、
前記コンピュータが備える顔特徴量抽出手段が、方位選択性を持ち周波数成分の異なる複数のフィルタからなるガボア・フィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出ステップと、
前記コンピュータが備えるサポート・ベクタ・マシンで構成される顔識別手段が、前記顔特徴量抽出ステップによる顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別ステップと、
を具備することを特徴とする顔認識方法。
【請求項1】
自律的に行動するロボット装置であって、
顔画像を入力する画像入力手段と、
方位選択性を持ち周波数成分の異なる複数のフィルタからなるガボア・フィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段と、
サポート・ベクタ・マシンで構成され、前記顔特徴量抽出手段による顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段と、
を具備することを特徴とするロボット装置。
【請求項2】
顔画像を入力する画像入力手段と、
方位選択性を持ち周波数成分の異なる複数のフィルタからなるガボア・フィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出手段と、
サポート・ベクタ・マシンで構成され、前記顔特徴量抽出手段による顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別手段と、
を具備することを特徴とする顔認識装置。
【請求項3】
コンピュータを用いて構築される顔認識システム上で、顔画像を認識する顔認識方法であって、
前記コンピュータが備える画像入力手段が、顔画像を入力する画像入力ステップと、
前記コンピュータが備える顔特徴量抽出手段が、方位選択性を持ち周波数成分の異なる複数のフィルタからなるガボア・フィルタを用いることにより、前記顔画像の特徴量を抽出する顔特徴量抽出ステップと、
前記コンピュータが備えるサポート・ベクタ・マシンで構成される顔識別手段が、前記顔特徴量抽出ステップによる顔特徴量抽出結果を、カーネル関数を用いて非線形な写像を行ない、該写像後の特徴空間内で分離する超平面を求めることにより、特定の顔と、該特定の顔以外の顔とを識別する顔識別ステップと、
を具備することを特徴とする顔認識方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図62】
【図63】
【図64】
【図65】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図44】
【図45】
【図46】
【図47】
【図48】
【図49】
【図50】
【図51】
【図52】
【図53】
【図54】
【図55】
【図56】
【図57】
【図58】
【図59】
【図60】
【図61】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図62】
【図63】
【図64】
【図65】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図44】
【図45】
【図46】
【図47】
【図48】
【図49】
【図50】
【図51】
【図52】
【図53】
【図54】
【図55】
【図56】
【図57】
【図58】
【図59】
【図60】
【図61】
【公開番号】特開2009−157948(P2009−157948A)
【公開日】平成21年7月16日(2009.7.16)
【国際特許分類】
【出願番号】特願2009−97230(P2009−97230)
【出願日】平成21年4月13日(2009.4.13)
【分割の表示】特願2003−523462(P2003−523462)の分割
【原出願日】平成14年8月21日(2002.8.21)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成21年7月16日(2009.7.16)
【国際特許分類】
【出願日】平成21年4月13日(2009.4.13)
【分割の表示】特願2003−523462(P2003−523462)の分割
【原出願日】平成14年8月21日(2002.8.21)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]