説明

状態認識装置、傾聴対話持続システム、状態認識プログラムおよび状態認識方法

【構成】傾聴対話持続システム100に含まれるPC10は、ロボット12の腹部カメラ14およびモニタカメラ22によって撮影された画像とマイク20によって集音された音声とから、ユーザの行動データを取得する。また、特定のユーザの行動データからサンプリングされた個人学習サンプルおよびSVMを構築するための一般学習サンプルに基づいて、境界線(超平面)の位置が調整された個人化SVMが構築される。そして、個人化SVMに、特定のユーザの行動からサンプリングされた認識サンプルが入力されると、特定のユーザの集中状態が認識される。
【効果】PC10は、特定のユーザの集中状態を容易に正しく認識できる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、状態認識装置、傾聴対話持続システム、状態認識プログラムおよび状態認識方法に関し、特にたとえば、ユーザの状態を認識する、状態認識装置、傾聴対話持続システム、状態認識プログラムおよび状態認識方法に関する。
【背景技術】
【0002】
特許文献1に開示されている、状態監視装置は、複数台のカメラおよびマイクを利用して、人間の姿勢や顔の向きの変化および目や口の開閉を検出する。また、状態監視装置は、検出された情報に基づいて、人間がテレビなどを見ている停止状態、人間が話をしている会話状態および人間が寝ている就眠状態などを判定することができる。そして、状態監視装置は、判定した状態に応じて、人間の周囲に設定された各種電気製品の電源を制御したり、人間に対してメッセージを流したりする。
【特許文献1】特開2005−199078号公報[A61B 5/11, A61B 5/107, G06T 1/00, G06T 7/20]
【発明の概要】
【発明が解決しようとする課題】
【0003】
近年、特許文献1の状態監視装置のように人間の状態を認識する認識システムが多く開発され、様々な分野で利用され始めている。
【0004】
ところが、様々な人間の状態を認識するために開発された認識システムでは、姿勢の変化や口の開閉が極端に少ない人間の状態は、正しく認識されないことがある。この場合、その人間に特化した認識システムを構築することも考えられるが、個人用の認識システムを構築するためには大量の学習データを用意しなければならず、現実的な解決手段とは言えない。また、個人用の認識システムを構築してしまうと、他の人間は個人用の認識システムを全く利用できず、認識システムの汎用性が損なわれる。
【0005】
それゆえに、この発明の主たる目的は、新規な、状態認識装置、傾聴対話持続システム、状態認識プログラムおよび状態認識方法を提供することである。
【0006】
この発明の他の目的は、特定のユーザの状態を、容易に正しく認識することができる、状態認識装置、傾聴対話持続システム、状態認識プログラムおよび状態認識方法を提供することである。
【課題を解決するための手段】
【0007】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために記述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【0008】
第1の発明は、ユーザの行動を取得する取得手段と、認識基準を有し、取得手段によって取得されたユーザの行動からユーザ状態を認識する認識手段とを備える、状態認識装置において、複数の学習サンプルを記憶する記憶手段、および複数の学習サンプルに基づいて、認識基準を調整する調整手段をさらに備えることを特徴とする、状態認識装置である。
【0009】
第1の発明では、状態認識装置(10:実施例において対応する部分を例示する参照符号。以下、同じ。)は、カメラ(14,22)やマイク(20)などからユーザの行動を取得する取得手段(26,S153,S155)と、認識基準を有し、取得手段によって取得されたユーザの行動から、ユーザ状態(集中状態)を認識する認識手段(26,S195,S213)とを備える。記憶手段(30)は、認識する対象ユーザの行動からサンプリングされた、複数の学習サンプルを記憶する。調整手段(26,S171,S173)は、認識対象のユーザの行動からサンプリングされた、複数の学習サンプルに基づいて、認識手段の認識基準を調整する。
【0010】
第1の発明によれば、特定のユーザの行動からサンプリングされた学習サンプルを利用して、認識基準が調整されるため、そのユーザの状態を容易に正しく認識できるようになる。
【0011】
第2の発明は、第1の発明に従属し、認識基準は、SVMにおける境界であり、調整手段は、複数の学習サンプルの重みを調整する重み調整手段を含み、重み調整手段によって複数の学習サンプルの重みが調整されると境界の位置が変化することを特徴とする。
【0012】
第2の発明では、認識基準は、SVMにおける境界(境界線または超平面)である。重み調整手段(26,S171)は、学習サンプルに含まれる各パラメータ値の重みを調整する。そして、重み調整手段によって複数の学習サンプルの重みが調整され、SVMが再構築されると境界の位置が変化する。
【0013】
第2の発明によれば、学習サンプルに含まれる各パラメータ値の重みを調整することで、SVMの境界を個人の行動に適した位置に変化させることができる。
【0014】
第3の発明は、第2の発明に従属し、重み調整手段によって重みが調整された後に、ユーザ状態を仮認識する仮認識手段、および仮認識手段による認識度を記録する記録手段をさらに備え、重み調整手段は、記録手段によって記録された前回の認識度と、今回の認識度との差が所定値以下となるまで複数の学習サンプルの重みの調整を繰り返すことを特徴とする。
【0015】
第3の発明では、仮認識手段(26,S175)は、重み調整手段によって学習サンプルに含まれるパラメータの重みが調整された後に、ユーザ状態を仮認識する。記録手段(26,S177)は、たとえば、アクティブ状態と認識された認識サンプルの数を認識度として記録する。そして、重み調整手段は、たとえば、前回の認識度と、今回の認識度との差が所定値以下となるまで複数の学習サンプルの重みの調整を繰り返す。
【0016】
第3の発明によれば、ユーザ状態の認識精度は、状態認識装置の稼働時間に比例して向上する。
【0017】
第4の発明は、ユーザのユーザ状態を認識する、状態認識装置であって、複数の学習サンプルを記憶する記憶手段、ユーザの行動を取得する取得手段、複数の学習サンプルに基づいて、取得手段によって取得されたユーザの行動から、重みを調整した認識サンプルを作成する作成手段、および認識基準を有し、作成手段によって作成された認識サンプルからユーザのユーザ状態を認識する認識手段を備える、状態認識装置である。
【0018】
第4の発明では、状態認識装置(10)はユーザのユーザ状態を認識する。記憶手段(30)は、複数のユーザの行動からサンプリングされた複数の学習サンプルを記憶する。取得手段(26,S153,S155)は、カメラ(14,22)やマイク(20)などからユーザの行動を取得する。作成手段(26,S313)は、複数のユーザの行動からサンプリングされた複数の学習サンプルに基づいて、ユーザの行動から、重みを調整した認識サンプルを作成する。認識手段(26,S315)は、認識基準を有し、作成手段によって作成された認識サンプルからユーザのユーザ状態(集中状態)を認識する。
【0019】
第4の発明によれば、認識サンプルの重みを調整するだけでよいので、認識基準を変化させることなく、特定のユーザの状態を容易に正しく認識できるようになる。
【0020】
第5の発明は、第1の発明ないし第4の発明のいずれかに従属し、ユーザの複数の要素行動の有無を判定する要素行動判定手段をさらに備え、ユーザの行動は、複数の要素行動の有無を組み合わせた複合行動を含むことを特徴とする。
【0021】
第5の発明では、要素行動判定手段(26,S13,S37,S45,S67,S75,S97,S105)は、カメラやマイクの入力に基づいて、ユーザの複数の要素行動の有無を判定する。そして、ユーザの行動は、複数の要素行動の有無を組み合わせた複合行動を含む。
【0022】
第6の発明は、第5の発明に従属し、複数の要素行動は、ユーザの発話、ユーザの注視、ユーザの前傾姿勢およびユーザの頷きを含むことを特徴とする。
【0023】
第5の発明および第6の発明によれば、取得される要素行動の種類を少なくしつつ、学習および認識に必要な複合行動を得ることができる。そのため、ユーザの要素行動を記録する状態認識装置の負荷を減らすことができる。
【0024】
第7の発明は、請求項6記載の状態認識装置を有する、傾聴対話持続システムあって、対話相手の発話の有無を判定する相手発話判定手段をさらに備え、一方の話者における複数の要素行動には、他方の対話相手の発話がさらに含まれる、傾聴対話持続システムである。
【0025】
第7の発明では、傾聴対話持続システム(100)は、請求項6記載の状態認識装置(10)を有し、対話相手との対話を持続させるためのシステムである。また、傾聴対話持続システムの相手発話判定手段(26,S123)は、対話相手の相手の発話の有無を判定する。そして、一方の話者における複数の要素行動には、他方の対話相手の発話がさらに含まれる。
【0026】
第7の発明によれば、相手の発話の有無を利用してユーザの集中状態を認識することで、認識の精度を向上させることができる。
【0027】
第8の発明は、複数の学習サンプルを記憶する記憶手段(30)を備える、状態認識装置のプロセッサ(26)を、ユーザの行動を取得する取得手段(26,S153,S155)、認識基準を有し、取得手段によって取得されたユーザの行動からユーザ状態を認識する認識手段(26,S213)、および複数の学習サンプルに基づいて、認識基準を調整する調整手段(26,S171,S173)として機能させる、状態認識プログラムである。
【0028】
第8の発明でも、第1の発明と同様に、特定のユーザの行動からサンプリングされた学習サンプルを利用して、認識基準が調整されるため、そのユーザの状態を容易に正しく認識できるようになる。
【0029】
第9の発明は、複数の学習サンプルを記憶する記憶手段(30)を備える、状態認識装置(10)のプロセッサ(26)を、ユーザの行動を取得する取得手段(S153,S155)、複数の学習サンプルに基づいて、取得手段によって取得されたユーザの行動から重みが調整された認識サンプルを作成する作成手段(S313)、および認識基準を有し、作成手段によって作成された重みが調整された認識サンプルからユーザのユーザ状態を認識する認識手段(S315)として機能させる、状態認識プログラムである。
【0030】
第9の発明でも、第4の発明と同様に、認識サンプルの重みを調整するだけでよいので、認識基準を変化させることなく、特定のユーザの状態を容易に正しく認識できるようになる。
【0031】
第10の発明は、ユーザの行動を取得する取得手段(S153,S155)、認識基準を有し、取得手段によって取得されたユーザの行動からユーザ状態を認識する認識手段(26,S213)および複数の学習サンプルを記憶する記憶手段(30)を備える、状態認識装置(10)の状態認識方法において、取得手段によってユーザの行動を取得し(S153,S155)、複数の学習サンプルに基づいて、認識基準を調整し(S171,S173)、そして認識基準が調整された認識手段によって、取得手段によって取得されたユーザ行動からユーザ状態を認識することを特徴とする、状態認識方法である。
【0032】
第10の発明でも、第1の発明と同様に、特定のユーザの行動からサンプリングされた学習サンプルを利用して、認識基準が調整されるため、そのユーザの状態を容易に正しく認識できるようになる。
【0033】
第11の発明は、複数の学習サンプルを記憶する記憶手段(30)を備える、状態認識装置(10)の状態認識方法であって、ユーザの行動を取得し(S153,S155)、複数の学習サンプルに基づいて、取得手段によって取得されたユーザの行動から重みが調整された認識サンプルを作成し(S313)、そして認識基準を有し、重みが調整された認識サンプルからユーザのユーザ状態を認識する(S315)、状態認識方法である。
【0034】
第11の発明でも、第4の発明と同様に、認識サンプルの重みを調整するだけでよいので、認識基準を変化させることなく、特定のユーザの状態を容易に正しく認識できるようになる。
【発明の効果】
【0035】
この発明によれば、特定のユーザの行動からサンプリングされた学習サンプルを利用して、認識基準が調整されるため、そのユーザの状態を容易に正しく認識できるようになる。
【0036】
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0037】
【図1】図1はこの発明の一実施例の傾聴対話持続システムの概要を示す図解図である。
【図2】図2は図1に示すモニタカメラとモニタとロボットとユーザとの位置関係およびそのモニタカメラと腹部カメラとの撮影範囲の一例を示す図解図である。
【図3】図3は図1に示すPCの電気的な構成の一例を示すブロック図である。
【図4】図4は図1に示すロボットの外観を正面から見た図解図である。
【図5】図5は図1に示すロボットの電気的な構成の一例を示すブロック図である。
【図6】図6は図1に示すサーバの電気的な構成の一例を示すブロック図である。
【図7】図7は図3に示すメモリに記憶される行動テーブルの一例を示す図解図である。
【図8】図8は図1に示すモニタカメラおよび腹部カメラによって撮影された画像データの一例を示す図解図である。
【図9】図9は図3に示すメモリに記憶される行動テーブルに基づく時系列グラフの一例を示す図解図である。
【図10】図10は図9に示す時系列データから求められる複合行動の一例を示す図解図である。
【図11】図11は図10に示す複合行動の行動頻度の一例を示す図解図である。
【図12】図12は図1に示すPCによって構築されるSVMの一例を示す図解図である。
【図13】図13は図3に示すメモリに記憶される行動テーブルから求められる要素行動の発生頻度の一例を示す図解図である。
【図14】図14は図13に示す要素行動の発生頻度から算出された複合行動の行動頻度の一覧を示す図解図である。
【図15】図15は図12に示すSVMを個人化するために利用される数値の一例を示す図解図である。
【図16】図16は図12に示すSVMを個人化することで変化する境界線の一例を示す図解図である。
【図17】図17は図3に示すPCのメモリのメモリマップの一例を示す図解図である。
【図18】図18は図17に示すデータ記憶領域の一例を示す図解図である。
【図19】図19は図17に示す行動判定プログラムの構成の一例を示す図解図である。
【図20】図20は図3に示すPCのプロセッサの画像/音声取得処理を示すフロー図である。
【図21】図21は図3に示すPCのプロセッサの発話判定処理を示すフロー図である。
【図22】図22は図3に示すPCのプロセッサの注視方向判定処理を示すフロー図である。
【図23】図23は図3に示すPCのプロセッサの前傾姿勢判定処理を示すフロー図である。
【図24】図24は図3に示すPCのプロセッサの頷き判定処理を示すフロー図である。
【図25】図25は図3に示すPCのプロセッサの相手の発話判定処理を示すフロー図である。
【図26】図26は図3に示すPCのプロセッサの同期処理を示すフロー図である。
【図27】図27は図3に示すPCのプロセッサのサンプル蓄積処理を示すフロー図である。
【図28】図28は図3に示すPCのプロセッサの学習処理を示すフロー図である。
【図29】図29は図3に示すPCのプロセッサの認識処理を示すフロー図である。
【図30】図30は図3に示すPCのプロセッサの集中認識処理を示すフロー図である。
【図31】図31は図3に示すPCのプロセッサのロボット制御処理を示すフロー図である。
【図32】図32は図3に示すメモリに記憶される行動テーブルからサンプリングされた認識サンプルが一般化されたときの一例を示す図解図である。
【図33】図33は図3に示すPCのプロセッサの第2実施例の学習処理を示すフロー図である。
【図34】図34は図3に示すPCのプロセッサの第2実施例の集中認識処理を示すフロー図である。
【図35】図35は他の実施例における傾聴対話持続システムの概要を示す図解図である。
【図36】図36は図35に示す他の実施例の傾聴対話持続システムを利用する2人のユーザの位置関係を示す図解図である。
【発明を実施するための形態】
【0038】
<第1実施例>
図1を参照して、この実施例の傾聴対話持続システム100は、たとえば認知症患者のような軽度脳障害を持つユーザAと、ユーザBとの対話に利用される。そのため、傾聴対話持続システム100には、PC10a、ユーザAが居る部屋1に設置される腹部カメラ14aを含むぬいぐるみ型ロボット(以下、単に「ロボット」と言う。)12a、モニタ16a、スピーカ18a、マイク20aおよびモニタカメラ22aと、ユーザBが居る部屋2(遠隔地)に設置されるPC10b、腹部カメラ14bを含むロボット12b、モニタ16b、スピーカ18b、マイク20bおよびモニタカメラ22bと、ネットワーク200に接続されるサーバ24とを備える。なお、本明細書では、部屋1および部屋2において対応する機器および人間を区別なく説明する場合、参照符号に添えられたアルファベットは省略する。
【0039】
ロボット12はPC10による制御信号に基づいて、傾聴動作や発話を行う。ロボット12の腹部に設けられた腹部カメラ14はユーザを撮影し、ロボット12を介して画像をPC10に出力する。PC10は、ロボット12に対して制御信号を出力するとともに、腹部カメラ14およびモニタカメラ22によって撮影された画像およびマイク20によって集音される音声が入力される。そして、PC10は、入力された画像および音声に基づいてユーザの行動を判定することで、ユーザの状態(ユーザ状態)を認識する。また、判定されたユーザの行動およびユーザ状態は、ネットワーク200を介してサーバ24に送信される。なお、PC10は、ユーザの状態を認識するため、状態認識装置と呼ばれることもある。
【0040】
また、PC10、モニタ16、スピーカ18、マイク20およびモニタカメラ22はテレビ電話機として機能する。たとえば、PC10aは、ユーザB側のPC10bから送信されたユーザBの画像および音声を受信する。そのため、モニタ16aはユーザBの画像を表示し、スピーカ18はユーザBの音声を出力する。さらに、マイク20はユーザAの音声を集音してPC10に出力し、モニタカメラ22はユーザAの画像を撮影してPC10に出力する。そして、PC10は、ユーザAの画像と音声とを、ネットワーク200を介してPC10bに送信する。そのため、傾聴対話持続システム100は、テレビ電話システムと呼ばれることもある。
【0041】
サーバ24は、PC10aおよびPC10bから送信される、ユーザAおよびユーザBの行動や状態のデータを受信すると、データベース(DB)に蓄積する。そして、PC10から行動および状態のデータを取得する要求がある場合に、その要求に基づいてデータがPC10に送信される。
【0042】
なお、他の実施例では、ロボット12とPC10とが有線接続ではなく、無線接続であってもよい。また、PC10およびサーバ24のネットワーク200との接続は、有線接続であってもよいし、無線接続であってもよい。
【0043】
図2は図1に示す実施例を側面から見た実施例である。図2から分かるように、モニタカメラ22はモニタ16の上に置かれ、ロボット12とモニタ16とは机の上に置かれる。ユーザは、机の上に置かれるモニタ16およびモニタカメラ22に対面する状態で、腹部カメラ14およびモニタカメラ22によって撮影される。さらに、ロボット12は、ユーザとモニタ16との間に配置されるため、モニタカメラ22はロボット12とユーザとを同時に撮影する。これにより、ロボット12は、ユーザAに対して疑似的な傾聴動作(疑似傾聴動作)を行ったり、ユーザBが表示されるモニタ16aに対して疑似傾聴動作を行ったりする。
【0044】
なお、ロボット12は、モニタカメラ22によって撮影され、かつユーザを撮影可能な位置であれば、机の上に置かれていなくてもよい。
【0045】
図3にはPC10の電気的な構成を示すブロック図が示される。PC10には、マイクロコンピュータ或いはCPUとも呼ばれる、プロセッサ26が内蔵されている。プロセッサ26は、バス28を介して、メモリ30、音声入力/出力ボード32、I/O34および通信LANボード36と接続される。なお、プロセッサ26には、日時情報を出力するRTC(Real Time Clock)26aが内蔵されている。
【0046】
記憶手段として機能するメモリ30は、図示しないROM、RAMおよびHDDが組み込まれており、ROMには主として、電話機能を実現するためのプログラムや、後述のフローチャート(図20−図31)で表現されるプログラムが記憶される。また、RAMには主として、腹部カメラ14およびモニタカメラ22によって撮影された画像や、マイク20によって集音された音声などが一時的に記憶されるバッファなどが設定されている。そして、HDDには主として、ユーザの行動を判定した結果や、状態を認識した結果などが記憶される。
【0047】
スピーカ18には、音声入力/出力ボード32を介して、プロセッサ26から相手ユーザの音声データが与えられ、それに応じて、スピーカ18からはそのデータに従った音声が出力される。そして、マイク20によって集音された相手ユーザの音声は、音声入力/出力ボード32を介して、プロセッサ26に取り込まれる。
【0048】
I/O34は、各々入力/出力の制御が可能なディジタルポートであり、出力ポートからは、制御信号がロボット12に出力され、画像信号がモニタ16に出力される。また、ロボット12およびモニタカメラ22からは、映像信号が出力され、入力ポートに与えられる。
【0049】
通信LANボード36は、たとえばDSP(Digital Signal Processor)で構成され、プロセッサ26から与えられた送信データを無線通信装置38に与える。無線通信装置38は送信データを、ネットワーク200を介して外部のコンピュータ(サーバ24および相手のPC10)に送信する。また、通信LANボード36は、無線通信装置38を介してデータを受信し、受信したデータをプロセッサ26に与える。
【0050】
たとえば、送信データとしては、テレビ電話機として必要なコマンド、画像データおよび音声データや、ユーザの行動を判定した結果およびユーザの状態を認識した結果であったりする。また、受信データとしては、テレビ電話機として得られる相手の画像データおよび音声データや、相手ユーザの行動を判定した結果および状態を認識した結果であったりする。
【0051】
図4にはロボット12の外観が図示される。このロボット12は、頭部42とそれを支える胴体44とを含む。胴体44の上部(人間の肩に相当)の左右に左腕46Lおよび右腕46Rが設けられ、胴体44の腹部には腹部カメラ14が設けられる。この腹部カメラ14には、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。また、頭部42には、前面に口48が配置され、その口48の上方には眼球50が設けられる。そして、頭部42の上部側面には耳52が取り付けられている。
【0052】
頭部42は、胴体44によって旋回・俯仰可能に支持され、眼球50も稼働的に保持されている。また、胴体44は、腰の部分を中心として左右方向に傾くことが可能である。さらに、口48にはスピーカ72(図5)が内蔵され、耳52にはマイク74(図5)が内蔵される。
【0053】
なお、マイク74を両方の耳52にそれぞれ内蔵すれば、ステレオマイクとして機能し、それによって、そのステレオマイクに入力された音声の位置を必要に応じて特定することができる。また、ロボット12の外見は、熊だけに限らず、他の動物や、人型であってもよい。
【0054】
図5にはロボット12の電気的な構成を示すブロック図が示される。ロボット12には、PC14と同様、プロセッサ54が内蔵されている。また、プロセッサ26は、通信路の一例であるバス56を介して、メモリ58、モータ制御ボード60、音声入力/出力ボード70、センサ入力/出力ボード76およびI/O78に接続される。
【0055】
メモリ58は、図示しないROMやRAMが組み込まれており、ROMには主として、ロボット12による傾聴動作や、発話を行うためのプログラムや、発話を行う際にスピーカ72から出力される音声データなどが予め記憶されている。また、RAMは一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用される。
【0056】
モータ制御ボード60は、たとえばDSPで構成され、図4に示すロボット12の各腕や頭部の各軸モータを制御する。すなわち、モータ制御ボード60は、プロセッサ54からの制御データを受け、右腕46R(図4)を前後や左右に動かすことができるように、X,YおよびZ軸のそれぞれの角度を制御する3つのモータ(図5ではまとめて、「右腕モータ」として示す。)62Rの回転角度を調節する。また、モータ制御ボード60は、左腕46Lの3つのモータ(図5ではまとめて、「左腕モータ」として示す。)62Lの回転角度を調節する。モータ制御ボード60は、また、頭部42の旋回角や俯仰角を制御する3つのモータ(図5ではまとめて、「頭部モータ」として示す。)64の回転角度を調節する。モータ制御ボード60は、また、眼球50を動かす眼球モータ66および胴体44を傾ける腰モータ68も制御する。
【0057】
なお、上述のモータは、制御を簡単化するために、それぞれステッピングモータまたはパルスモータであるが、直流モータであってもよい。
【0058】
スピーカ72には音声入力/出力ボード70を介して、プロセッサ54から合成音声データが与えられ、それに応じて、スピーカ72からはそのデータに従った音声または声が出力される。そして、マイク74によって集音された音声は、音声入力/出力ボード70を介して、プロセッサ54に取り込まれる。
【0059】
センサ入力/出力ボード76は、モータ制御ボード60と同様に、DSPで構成され、腹部カメラ14からの信号を取り込んで、プロセッサ54に与える。腹部カメラ14からの映像信号が、必要に応じてセンサ入力/出力ボード76で所定の処理を施してからプロセッサ54に入力される。
【0060】
I/O78は、PC10のI/O32と同様に、各々入力/出力の制御が可能なディジタルポートであり、出力ポートからは映像信号が出力され、PC10に与えられる。一方、PC10からは、制御信号が出力され、入力ポートに与えられる。
【0061】
図6にはサーバ24の電気的な構成を示すブロック図が示される。サーバ24は、プロセッサ26,54と同様、プロセッサ80が内蔵されている。また、プロセッサ80は、バス82を介して、メモリ84、第1ユーザ情報DB86、第2ユーザ情報DB88および通信LANボード90に接続されている。
【0062】
メモリ84は、図示しないROMやRAMが組み込まれており、ROMには主として、サーバ24とPC10a,10bなどとのデータ通信を行うためのプログラムなどが予め記憶されている。また、RAMは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用される。
【0063】
第1ユーザ情報DB86は、PC10aから送信されるユーザAの行動データおよび状態データを蓄積するためのデータベースである。また、第2ユーザ情報DB88は、PC10bから送信されるユーザBの行動データおよび状態データを蓄積するためのデータベースである。そして、第1ユーザ情報DB86および第2ユーザ情報DB88は、HDDやSSDのような記憶媒体から構成される。
【0064】
通信LANボード90は、PC10の通信LANボード38と同様に、たとえばDSPで構成され、プロセッサ80から与えられた送信データを無線通信装置92に与える。無線通信装置92は送信データを、ネットワーク200を介して外部のコンピュータ(PC10a,10b)に送信する。また、通信LANボード90は、無線通信装置92を介してデータを受信し、受信データをプロセッサ80に与える。
【0065】
たとえば、受信データはPC10aから送信されるユーザAの行動データであり、プロセッサ80はユーザAの行動データを第1ユーザ情報DB86に保存する。さらに、受信データとして、PC10bからユーザAの行動データ取得要求がプロセッサ80に与えられると、プロセッサ80は、ユーザAの行動データを送信データとして、通信LANボード90に与える。
【0066】
図7にはPC10のメモリ30に記憶される、行動テーブルが示される。この行動テーブルとは、ユーザの行動が判定された結果が行動データにされ、その行動データが一定時間(たとえば、1秒)毎に刻々と記録されるテーブルである。
【0067】
図7を参照して、行動テーブルは、左側から「時刻」、「発話」、「注視方向」、「前傾姿勢」、「頷き」および「相手の発話」の列で構成されている。そして、各行動データは、「時刻」の列に同期して、各欄に記録される判定結果から構成される。
【0068】
「時刻」の列に記録される数値はRTC26aが出力する日時情報であり、たとえば「10:00:30」は「10時00分30秒」を表す。
【0069】
「発話」の列には、ユーザが発話しているか否かを示す判定結果が記録される。たとえば、「発話」の列に「有り」が記録されていれば、ユーザが発話していることを示し、「無し」が記録されていれば、ユーザが発話していないことを示す。そして、発話の「有り」/「無し」は、マイク20によって集音された音声データの音声レベルから判定される。たとえば、音声データの音声レベルが決められた値以上であれば「有り」と判定され、決められた値未満であれば「無し」と判定される。
【0070】
「注視方向」の列には、ユーザが注視している物が記録される。たとえば、「モニタ」が記録されていれば、ユーザがモニタ16を注視していることを示し、「ロボット」が記録されていれば、ユーザがロボット12を注視していることを示し、「その他」が記録されていれば、ユーザがロボット12またはモニタ16以外の物を注視していることを示す。そして、「注視方向」の列における、「モニタ」、「ロボット」および「その他」は腹部カメラ14またはモニタカメラ22によって撮影されたユーザの顔を認識することで判定される。
【0071】
図8(A)にはモニタカメラ22による顔認識結果の成功列が示され、図8(B)には腹部カメラ14による顔認識結果の成功例が示され、図8(C)にはどちらのカメラでも顔認識が失敗した状態が示される。
【0072】
図8(A)を参照して、左側が腹部カメラ14による画像であり、右側がモニタカメラ22による画像であり、どちらの画像も同じ時刻に撮影された画像である。このとき、ユーザはモニタカメラ22を注視している状態である。そのため、モニタカメラ22による画像では、ユーザの顔が正面に写っているため、顔認識が成功している。一方、腹部カメラ14による画像では、ユーザの顔は傾いて写っているため、顔認識が失敗している。そのため、ユーザの注視方向は「モニタ」と判定される。
【0073】
次に、図8(B)を参照して、図8(A)と同様、同じ時刻に撮影された画像である。このとき、ユーザは腹部カメラ14を注視しているため、腹部カメラ14による画像では顔認識が成功している。一方、モニタカメラ22による画像ではユーザの顔が見きれているため顔認識が失敗している。そのため、ユーザの注視方向は「ロボット」と判定される。
【0074】
そして、図8(C)を参照して、図8(A),(B)と同様、同じ時刻に撮影された画像である。このとき、ユーザは俯いているため、腹部カメラ14およびモニタカメラ22のどちらでも、顔認識は失敗している。そのため、ユーザの注視方向は「その他」と判定される。
【0075】
図7に戻って、「前傾姿勢」の列には、ユーザが前傾姿勢を取っている方向が記録される。また、「前傾姿勢」の列には、「注視方向」の列と同様に、「モニタ」、「ロボット」および「その他」が記録される。そして、「前傾姿勢」の列における、「モニタ」、「ロボット」および「その他」は腹部カメラ14またはモニタカメラ22によって撮影されたユーザの顔領域の認識結果に基づいて判定される。
【0076】
たとえば、図8(A)に示す画像では、モニタカメラ22によって撮影された顔領域が閾値以上でるため、前傾姿勢は「モニタ」と判定される。また、図8(B)に示す画像では、腹部カメラ14によって撮影された顔領域が閾値以上であるため、前傾姿勢は「ロボット」と判定される。そして、図8(C)に示す画像では、腹部カメラ14およびモニタカメラ22のどちらでも顔認識は失敗しているため、どちらのカメラの画像でも顔領域が閾値未満の状態となる。そのため、前傾姿勢は「その他」と判定される。
【0077】
図7に戻って、「頷き」の列には、ユーザによる頷きの有無が記録される。たとえば、「頷き」の列に「有り」が記録されていればユーザが頷いたことを示し、「無し」が記録されていればユーザが頷かなかったことを示す。そして、ユーザの頷きの有無は、腹部カメラ14およびモニタカメラ22によって撮影された画像における顔位置の変化に基づいて判定される。たとえば、顔の位置(顔領域の重心)は一定時間毎に認識および記録される。そして、「頷き」の判定を行う際に、前回の顔の位置と今回の顔の位置との距離が一定距離以上離れていれば「有り」と判定される。また、前回の顔の位置と今回の顔の位置との距離が一定距離未満であれば「無し」と判定される。なお、ユーザの頷きは、ユーザに頭部加速度センサを取り付けて、加速度の変化から検出されてもよい。
【0078】
「相手の発話」の列には、相手のユーザが発話しているかが記録される。つまり、「相手の発話」の列に「有り」が記録されていれば相手のユーザが発話していることを示す。また、「相手の発話」の列に「無し」が記録されていれば相手のユーザが発話していないことを示す。そして、「相手の発話」の有無は、サーバ24に記録された相手のユーザの行動データに基づいて記録される。たとえば、図7に示す行動テーブルがユーザAに対応していれば、ユーザBに対応する行動データがサーバ24から読み出され、「相手の発話」の有無が記録される。
【0079】
なお、上述した顔認識処理、顔領域認識処理および顔位置認識処理には、Haar-like特徴量が利用されているが、他の特徴量が用いられてもよい。また、図7に示す行動テーブルは、PC30のメモリ30だけでなく、サーバ24の第1ユーザ情報DB86および第2ユーザ情報DB88にも記憶されている。
【0080】
ここで、PC10では、一定時間毎に記録された行動データから、ユーザ状態が所定時間(たとえば、10秒)毎に認識される。ユーザ状態には、「対話における発話」、「興味を持つ対象」および「対話への集中」が含まれる。そして、これらのユーザ状態は、発話認識処理、興味対象認識処理および集中認識処理によって認識される。
【0081】
発話認識処理とは、ユーザが話し手となり発話している「トーク:Talk」状態であるか、相手ユーザの話を傾聴している「リッスン:Listen」状態であるかを認識する処理である。そして、発話認識処理では、ユーザの発声時間に基づいて発話状態(トーク/リッスン)が認識される。
【0082】
次に、興味対象認識とは、ユーザの興味が「ロボット」、「モニタ」および「その他」のいずれであるかを認識する処理である。そのため、興味対象認識では、所定時間分のユーザの行動データのうち、ユーザの注視方向に基づいて、ユーザが興味を持つ物(ロボット、モニタ、その他)が認識される。
【0083】
そして、集中認識処理とは、ユーザが対話に積極的に参加し、対話に集中している「アクティブ:Active」状態か、ユーザが対話に非積極的であり、対話に集中していない「パッシブ:Passive」状態かを認識する処理である。そして、本実施例の集中認識処理は、SVMによって集中状態(アクティブ/パッシブ)を認識する。
【0084】
SVMとは、認識手法(認識モデル)の一種であり、予めラベル付けがされた複数の学習サンプルを学習することで構築される。そして、本実施例における複数の学習サンプルは、システムの管理者によって予め作成され、メモリ30に記憶されている。また、学習サンプルを作成する場合、まず、行動テーブルから所定時間の行動データが切り出される。次に、切り出された行動データから特徴量を抽出し、手作業でアクティブまたはパッシブのラベルが付けられる。さらに、抽出した特徴量にラベルを対応付けることで、学習サンプルが完成する。そして、このようにして作成された学習サンプルを学習することで、SVMは構築される。
【0085】
図9−図11を用いて、学習サンプルについて説明する。図9は行動テーブルを時系列グラフによって表す図解図である。図9を参照して、この時系列グラフは、横軸が時間の変化を示し、縦軸が行動を示す。また、縦軸の行動は、行動テーブルの列における、「発話」、「注視方向」、「前傾姿勢」、「頷き」および「相手の発話」に対応している。さらに、時系列グラフでは、各行動が「起きている」または「起きていない」の2状態で表現される。たとえば、「発話」であれば、ユーザが「発話している」/「発話していない」の2状態で表現される。また、「注視方向」であれば、「モニタ」、「ロボット」および「その他」に分割して、「注視している」/「注視していない」の2状態で表現される。そして、図9に示す、「発話」、「注視(モニタ)」、「注視(ロボット)」、「注視(その他)」、「姿勢(モニタ)」、「姿勢(ロボット)」、「姿勢(その他)」、「頷き」および「相手の発話」が、抽出される特徴量を構成する要素行動となる。
【0086】
たとえば、図10(A),(B)を参照して、図9における「発話」、「注視(モニタ)」および「頷き」の3つの要素行動に着目した場合、「発話のみ」、「注視のみ」、「頷きのみ」、「発話と注視」、「発話と頷き」、「注視と頷き」、「発話と注視と頷き」および「全てなし」の8つの組み合わせ(複合行動)が得られる。そして、本実施例では、これらの複合行動が発生する頻度が学習サンプルの特徴量となる。また、複合行動が発生する頻度は以下に記述するサンプリング窓に基づいて算出される。
【0087】
図11(A)はラベルが付けられた行動データを示す図解図であり、図11(B)はサンプリングされた行動データを示す図解図であり、図11(C)は複合行動が発生する頻度を示す図解図である。図11(A)を参照して、図10(A)に示す時系列グラフに対して、「アクティブ」および「パッシブ」のラベルが、システムの管理者によって付けられる。そして、「アクティブ」および「パッシブ」のラベルが付けられた行動データから、サンプリング窓のウィンドウ幅に基づいて学習サンプルがサンプリングされる。
【0088】
たとえば、ウィンドウ幅が10秒のサンプリング窓によって、「アクティブ」のラベルが付けられた行動データからサンプリングされた第1学習サンプルと、「パッシブ」のラベルが付けられた行動データサンプリングされた第2学習サンプルとは、図11(B)のように表すことができる。また、第1学習サンプルおよび第2学習サンプルのそれぞれから、各複合行動が発生する頻度(発生頻度)を算出すると、図11(C)のグラフで表すことができる。
【0089】
図11(B),(C)を参照して、第1学習サンプルで「注視のみ」が発生した時間が2.5秒であれば、「注視のみ」の発生頻度は「0.25(=2.5/10)」となる。また、「発話と注視」が発生した時間が5.8秒であれば、「発話と注視」の発生頻度は「0.58」となる。さらに、「発話と注視と頷き」が発生した時間が1.7秒であれば、「発話と注視」の発生頻度は「0.17」となる。そして、「発話のみ」、「頷きのみ」、「発話と頷き」、「注視と頷き」および「全てなし」が発生した時間が0秒であれば、それらの複合行動の発生頻度は「0」となる。
【0090】
ここで、複合行動の種類をM、複合行動をpat、複合行動の発生頻度をd、複合行動が発生した時間をtpat、ウィンドウ幅をtと表したとき、特徴量を示す特徴ベクトル(行動頻度)Dは数1のように表すことができる。なお、要素行動の種類をmとした場合、複合行動の数は、「M=2」となる。
【0091】
[数1]
D=[d,d,…,d]
ただし、dpat=tpat/t(pat=1,…,M)
また、K(k=1,…K)人のユーザから複数の学習サンプルを取得している場合、ユーザkの行動データに基づいて取得されたN個の特徴ベクトルは、D(k),…D(k)Nkと表すことができる。このとき、ユーザkに関する行動頻度D ̄(k)は数2のように示され、SVMが学習する全ての学習サンプルの行動頻度Dは数3のように示される。
【0092】
ただし、「Nk」が下付きの添え字である場合については、表現の都合上、数式以外では「k」を「N」の添え字とせず、まとめて下付きの添え字にして記載する。また、数式以外では、上付きバーを上付き添え字として記載する。
【0093】
【数2】

【0094】
【数3】

【0095】
また、ユーザ毎に行動の複合行動の発生頻度は異なるため、各発生頻度を正規化する。発生頻度を正規化する場合には、ユーザkの行動頻度D ̄(k)を構成する発生頻度d ̄(k)に対する全ての各学習サンプルの行動頻度Dを構成する発生頻度dの割合と、そのユーザkの各発生頻度d ̄(k)との積を求めればよい。そして、正規化された各発生頻度d ̄(k)から構成されるユーザkの行動頻度D^(k)は数4に示す式に従って求めることができる。なお、正規化された学習サンプルは、一般学習サンプルと呼ぶ。
【0096】
ただし、添え字「^」は、数式では「D」の上に付されるが、表現の都合上、数式以外では「D」の上付き添え字として記載する。
【0097】
【数4】

【0098】
そして、正規化された行動頻度D^(k)の一般学習サンプルは、SVMによって学習される。また、学習したSVMは、学習した複数の一般学習サンプルを分離する境界線(超平面)を設定する。また、全ての一般学習サンプルを学習した一般SVMは、図12のように表すことができる。
【0099】
図12を参照して、SVMによって学習された一般学習サンプルは平面上に配置される。平面上の一般学習サンプルのうち、アクティブのラベルが付けられた学習サンプルは丸で示され、パッシブのラベルが付けられた学習サンプルは三角形で示される。また、境界線は、「アクティブ」が付けられた一般学習サンプルと「パッシブ」が付けられた一般学習サンプルとを分離する位置に設定される。そして、認識処理が行われ、このSVMに認識サンプルが入力されると、境界線に基づいて集中状態が認識される。つまり、認識サンプルが、境界線の左側に配置されるとパッシブ状態と認識され、境界線の右側に配置されるとアクティブ状態と認識される。
【0100】
ここで、一般SVMによってユーザの集中状態を認識した場合、ユーザによっては特定の要素行動の発生頻度が少ないことがあるため、そのユーザがアクティブ状態であったとしても、パッシブ状態と認識されることがある。そこで、第1実施例では、認識対象ユーザの行動データを利用し、一般SVMを個人化して、ユーザ状態を認識する。
【0101】
一般SVMを個人化する手法としては、まず、認識対象のユーザの行動データから個人学習サンプルをサンプリングし、要素行動の発生頻度を求める。次に、各要素行動の発生頻度から複合行動の発生頻度を推定すると共に、一般学習サンプルにおける各要素行動から複合行動の発生頻度も推定する。さらに、個人学習サンプルから推定された複合行動の発生頻度および一般学習サンプルから推定された複合行動の発生頻度に基づいて一般学習サンプルを個人化する。そして、個人化された一般学習サンプルを学習したSVMを再構築することで、一般SVMを個人化することができる。以下、これらの処理について具体的に説明する。
【0102】
まず、状態を認識するユーザの行動データから、個人学習サンプルをサンプリングする。次に、個人学習サンプルから、各要素行動の発生頻度を算出する。
【0103】
たとえば、図13(A),(B)を参照して、ウィンドウ幅が10秒の場合、個人学習サンプルで「発話している」と記録された総時間が7.5秒であれば、「発話」の行動頻度は「0.75(=7.5/10)」となる。同様に、「モニタを注視している」と記録された総時間が3.3秒であれば「注視」の行動頻度は「0.33」となり、「頷いている」と記録された総時間が0.17秒であれば「頷き」の行動頻度は「0.17(=1.7/10)」となる。
【0104】
ここで、要素行動をPri、要素行動が発生した時間(記録された総時間)をtpriと表す場合に、要素行動の発生頻度pは数5のように示すことができる。
【0105】
[数5]
p=tpri/t
そして、複合行動が要素行動の組み合わせであることに着目し、認識対象ユーザの行動頻度を、各要素行動の期待値から推定する。ここで、個人学習サンプルから推定された行動頻度をQpとしたとき、推定行動頻度Qpは数6に従う数式に基づいて算出される。
【0106】
【数6】

【0107】
たとえば、図14を参照して、「発話と注視と頷き」の行動頻度は、各要素行動の期待値、つまり「0.042(=0.75×0.33×0.17)」となる。また、「発話のみ」の行動頻度は、「発話」の行動頻度と「注視」および「頷き」が起きない期待値、つまり「0.417(=0.75×0.67×0.83)」となる。そして、複合行動毎に算出された期待値(行動頻度)から推定行動頻度Qpが構成される。
【0108】
また、一般学習サンプルから推定された行動頻度をQnとしたとき、推定行動頻度Qnは数7に従う式に基づいて算出される。
【0109】
【数7】

【0110】
そして、個人化された一般学習サンプルの行動頻度Dpは、数8に従う数式に基づいて算出される。
【0111】
【数8】

【0112】
図15(A)は一般学習サンプルから推定された推定行動頻度Qnを構成する、複数の期待値(発生頻度)を示すテーブルであり、図15(B)は個人学習サンプルから推定された推定行動頻度Qpを構成する複数の期待値(発生頻度)を示すテーブルである。また、図15(C)は一般学習サンプルの行動頻度Dを構成する複数の発生頻度を示すテーブルである。そして、図15(D)は個人化された一般学習サンプルの行動頻度Dpを構成する複数の発生頻度を示すテーブルである。
【0113】
たとえば、図15(A)−図15(D)を参照して、複合行動の「発話のみ」に着目すると、行動頻度Dpの「発話のみ」の発生頻度「0.500」は、行動頻度Qnの発生頻度「0.208」に対する行動頻度Qpの発生頻度「0.417」の割合と、一般学習サンプルの行動頻度の発生頻度「0.250」との積(0.417/0.208×0.250)となる。そして、図15(D)のテーブルにおいて、「注視のみ」、「頷きのみ」、「発話と注視」、「発話と頷き」、「注視と頷き」、「発話と注視と頷き」および「全部なし」の発生頻度も、上記したの「発話のみ」の発生頻度と同様に算出された結果である。そして、図15(D)で示される複数の発生頻度によって、個人化された一般学習サンプルの行動頻度Dpが構成される。
【0114】
さらに、全ての一般学習サンプルが個人化されると、SVMが再構築される。つまり、個人化された一般学習サンプルを学習した、個人化SVMが新たに構築される。そして、集中認識処理では、その個人化SVMによってユーザの集中状態が認識されるため、ユーザの集中状態が正しく認識される。
【0115】
たとえば、図16(A)を参照して、「注視」の発生頻度が低いユーザの場合、そのユーザからサンプリングした認識サンプルは、一般SVMによって認識された場合、会話に集中していたとしてもパッシブ(非集中)状態と誤認識されることがある。ところが、一般学習サンプルの重みを、上記ユーザの行動データからサンプリングされた個人学習サンプルを利用して調整した場合、個人化SVMの境界線は、一般SVMの境界線に対して異なる位置に設定される。そのため、上記ユーザの認識サンプルは、アクティブ状態と認識されるようになる。
【0116】
このように、一般学習サンプルの行動頻度Dpを構成する発生頻度の重みを調整することで、SVMの境界線を個人の行動に適した位置に変化させることができる。
【0117】
なお、上記説明では、説明の簡単のために3つの要素行動だけで説明したが、実際には9つの要素行動を利用して学習や認識を行う。
【0118】
また、本実施例では、個人学習サンプルを所定時間毎に蓄積し、蓄積した個人学習サンプルによって個人化SVMを逐次更新することで、認識の精度を高める。具体的には、まず、個人化SVMを更新する毎に、蓄積された全ての個人学習サンプルを認識する。次に、個人学習サンプルに集中状態の認識結果をラベル付けし、アクティブ状態と認識された個人学習サンプルの数を、個人化SVMの認識度として記録する。そして、個人化SVMを更新する度に、その認識度における前回と今回との差が閾値(所定値)以下となるまで、個人化SVMの更新を繰り返す。
【0119】
したがって、集中状態の認識精度は、ユーザが傾聴対話持続システム100を利用する時間に比例して向上する。また、蓄積する個人化学習サンプルを集中状態の認識に利用することで、ユーザの集中状態を認識しつつ、集中状態の認識精度も向上させることができる。さらに、個人化SVMの認識精度が一定の精度となれば、プロセッサ26は学習処理を終了させることができる。
【0120】
なお、傾聴対話持続システム100では、認識されたユーザの状態や、相手ユーザの状態データに基づいて、2人の対話が持続するように、ロボット12が動作する。そして、ロボット12は、ユーザAとユーザBとの対話に対して、「疑似傾聴動作」、「発話制御動作」および「注意の引きつけの動作」の3種類の動作を行い、対話を持続させる。
【0121】
たとえば、疑似傾聴動作とは、ユーザAとユーザBとが積極的に対話している場合には、どちらか一方の発話を傾聴しているかのように振る舞う動作のことである。さらに、発話制御動作とは、どちらかのユーザが一方的に話している場合に、2人の発話のバランスを取るため、ユーザを見ることで発話を抑制したり、ユーザに話しかけたりすることで発話を促進したりする動作のことである。そして、注意の誘導や引きつけの動作は、ユーザが対話に対して集中していない場合に、ユーザに話しかけることでユーザの注意を引きつける動作のことである。
【0122】
図17は図2に示すPC10におけるメモリ30のメモリマップ300の一例を示す図解図である。図17に示すようにメモリ30はプログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、PC10を動作させるためのプログラムとして、データ通信プログラム312、行動判定プログラム314、サンプル蓄積プログラム316、学習プログラム318、認識プログラム320、集中認識プログラム322およびロボット制御プログラム324などが記憶される。
【0123】
データ通信プログラム312は、サーバ24とデータ通信を行うためのプログラムである。行動判定プログラム314は、ユーザの行動を判定するためのプログラムである。サンプル蓄積プログラム316は、ユーザ行動から個人学習サンプルを所定時間毎に蓄積するためのプログラムである。なお、蓄積された個人学習サンプルは、認識サンプルとして読み出されることもある。
【0124】
学習プログラム318は、個人化SVMを構築するためのプログラムである。認識プログラム320は、認識サンプルを読み出し、その認識サンプルから集中状態、発話状態および興味対象を認識するためのプログラムである。集中認識プログラム322は、学習プログラムによって構築された個人化SVMによってユーザの集中状態を認識するためのプログラムである。ロボット制御プログラム324は、ロボット12の動作を決定するためのプログラムである。
【0125】
なお、図示は省略するが、PC10を動作させるためのプログラムには、テレビ電話機能を実現するためのプログラムなどが含まれる。
【0126】
また、図18を参照して、データ記憶領域304には、時刻バッファ330、モニタカメラバッファ332、腹部カメラバッファ334、音声バッファ336、判定結果バッファ338、顔位置バッファ340,データ通信バッファ342およびSVM認識バッファ344が設けられる。また、データ記憶領域304には、一般学習データ346、行動テーブルデータ348、個人学習データ350および状態データ352が記憶されると共に、集中フラグ354および所定時間カウンタ356がさらに設けられる。
【0127】
時刻バッファ330は、RTC26aが出力する日時情報が一時的に記憶されるバッファである。モニタカメラバッファ332は、モニタカメラ22によって撮影された画像が一時的に記憶されるバッファである。腹部カメラバッファ334は、腹部カメラ14によって撮影された画像が一時的に記憶されるバッファである。音声バッファ336は、マイク20によって集音された音声が一時的に記憶されるバッファである。
【0128】
判定結果バッファ338は、ユーザの発話の有無を判定する発話判定、ユーザの注視方向を判定する注視方向判定、ユーザの前傾姿勢の方向判定する前傾姿勢判定、ユーザの頷きの有無を判定する頷き判定および相手ユーザの発話の有無を判定する相手の発話判定それぞれの判定結果を一時的に記憶するためのバッファである。顔位置バッファ340は、撮影されたユーザの画像において、ユーザの顔の位置が記憶されるバッファである。また、顔位置バッファ340に記憶された位置データに基づいて、ユーザの頷きが判定される。
【0129】
データ通信バッファ342は、サーバ24とのデータ通信によって得られた相手の行動データや、状態データなどが一時的に記憶されるバッファである。SVM認識バッファ344は、一般SVMおよび個人化SVMの認識度が一時的に記憶されるバッファである。
【0130】
一般学習データ346は、複数の一般学習サンプルから構成されるデータである。行動テーブルデータ348は、図7に示す行動テーブルであり、一定時間毎に最新の行動データが追記される。個人学習データ350は、複数の個人学習サンプルから構成されるデータであり、所定時間毎に最新の個人学習サンプルが追加される。状態データ352は、ユーザの集中状態、発話状態および興味対象が認識された結果を示すデータである。
【0131】
集中フラグ354は、集中状態の認識結果を示すフラグである。たとえば集中フラグ354は1ビットのレジスタで構成される。集中フラグ354がオン(成立)されると、レジスタにはデータ値「1」が設定される。一方、集中フラグ354がオフ(不成立)されると、レジスタにはデータ値「0」が設定される。また、集中フラグ354は、アクティブ状態と認識されるとオンになり、パッシブ状態と認識されるとオフになる。
【0132】
所定時間カウンタ356は、所定時間を計測するためのカウンタであり、初期化されるとカウントを開始する。また、所定時間カウンタ356は所定時間カウンタとも呼ばれ、所定時間タイマによって時間を計測する処理が実行されると、所定時間カウンタ356は初期化される。たとえば、所定時間カウンタ356は、PC10の電源がオンにされると初期化され、個人学習サンプルがサンプリングされる毎にリセットされる。
【0133】
なお、図示は省略するが、データ記憶領域304には、様々な計算の結果を一時的に格納するバッファなどが設けられると共に、PC10の動作に必要な他のカウンタやフラグなども設けられる。
【0134】
図19は行動判定プログラム314のサブルーチンに対応するプログラムを示す図解図である。図19を参照して、状況認識プログラム314は、画像/音声取得プログラム314a、発話判定プログラム314b、注視方向判定プログラム314c、前傾姿勢判定プログラム314d、頷き判定プログラム314e、相手の発話判定プログラム314fおよび同期プログラム314gから構成される。
【0135】
画像/音声取得プログラム314aは、モニタカメラ22および腹部カメラ14によって撮影された画像と、マイク20によって集音された音声とをバッファに取り込むためのプログラムである。発話判定プログラム314bは、ユーザが発話しているか否かを判定するためのプログラムである。注視方向判定プログラム314cは、ユーザが注視している方向を判定するためのプログラムである。前傾姿勢判定プログラム314dは、ユーザが前傾姿勢を取っている方向を判定するためのプログラムである。頷き判定プログラム314eは、ユーザが頷いたか否かを判定するためのプログラムである。相手の発話判定プログラム314fは、相手ユーザが発話しているか否かを判定するためのプログラムである。同期プログラム314gは、発話判定結果、注視方向判定結果、前傾姿勢判定結果、頷き判定結果および相手ユーザの発話判定結果を同期して、行動データとするためのプログラムである。
【0136】
以下、PC10によって実行される第1実施例のフロー図について説明する。また、図20−図26のフロー図は行動判定プログラム314を構成する各プログラムの処理を示す。さらに、図27のフロー図はサンプル蓄積プログラム316による処理を示し、図28のフロー図は学習プログラムによる処理を示し、図29のフロー図は認識プログラム320による処理を示し、図30のフロー図は集中認識プログラムによる処理を示し、図31のフロー図はロボット制御プログラムによる処理を示す。
【0137】
図20は画像/音声取得プログラム314aの処理を示すフロー図である。たとえば、PC10のプロセッサ26は、ユーザによってPC10の電源がオンにされると、ステップS1で腹部カメラ14による画像データを取得する。つまり、ロボット12から入力される映像信号から画像データを取得し、腹部カメラバッファ334に一旦記憶させる。続いて、プロセッサ26は、ステップS3で、モニタカメラ22による画像データを取得する。つまり、モニタカメラ22から入力される映像信号から画像データを取得し、モニタカメラバッファ332に一旦記憶させる。続いて、プロセッサ26は、ステップS5で、音声データを取得し、ステップS1に戻る。つまり、プロセッサ26は、マイク20によって集音された音声から音声データを抽出し、音声バッファ336に一旦記憶させる。
【0138】
図21は発話判定プログラム314bの処理を示すフロー図である。プロセッサ26は、ステップS11で、音声データが取得されたか否かを判断する。つまり、プロセッサ26は、音声バッファ336に新たな音声データが記憶されたか否かを判断する。ステップS11で“NO”であれば、つまり音声データが取得されていなければ、プロセッサ26はステップS11の処理を繰り返し実行する。一方、ステップS11で“YES”であれば、つまり音声データが取得されていれば、プロセッサ26はステップS13で、音量が閾値以上であるか否かを判断する。つまり、プロセッサ26は、音声バッファ336に記憶される音声データの音声レベルが閾値以上であるか否かを判定する。
【0139】
ステップS13で“YES”であれば、つまり音声レベルが閾値以上であれば、プロセッサ26はステップS15で、「発話有り」と判定する。一方、ステップS13で“NO”であれば、つまり音声レベルが閾値未満であれば、プロセッサ26はステップS17で、「発話無し」と判定する。
【0140】
続いて、プロセッサ26は、ステップS19で、現在時刻を取得する。つまり、プロセッサ26は、時刻バッファ330に記憶される日時情報を取得する。続いて、プロセッサ26は、ステップS21で、発話の判定結果に現在時刻を対応付ける。つまり、プロセッサ26は、複数の判定結果を同期させるために、現在時刻を対応付ける。そして、現在時刻が対応付けられた発話判定結果は、判定結果バッファ338に一時的に記憶される。
【0141】
なお、図22−図25に示す他の判定処理でも、ステップS19と同様に日時情報を取得し、ステップS21と同様に日時情報を対応付ける処理が存在するが、処理内容は全て同じであるため、他のフロー図では詳細な説明は省略する。
【0142】
図22は注視方向判定プログラム314cの処理を示すフロー図である。プロセッサ26は、ステップS31で、画像が取得されたか否かを判断する。つまり、プロセッサ26は、モニタカメラバッファ332および腹部カメラバッファ334に新たな画像データが記憶されたか否かを判断する。ステップS31で“NO”であれば、つまり画像データが取得されていなければ、プロセッサ26はステップS31の処理を繰り返し実行する。一方、ステップS31で“YES”であれば、つまり画像データが取得されていれば、プロセッサ26はステップS33で、モニタカメラ22の画像を取得する。つまり、プロセッサ26は、モニタカメラバッファ332から画像データを取得する。
【0143】
続いて、プロセッサ26は、ステップS35で、顔認識処理を実行する。つまり、プロセッサ26は、モニタカメラバッファ332に記憶される画像データに対して所定の顔認識処理を実行する。続いて、プロセッサ26は、ステップS37で、顔を認識できたか否かを判断する。つまり、プロセッサ26は、ステップ35の処理が成功したか否かを判断する。ステップS37で“YES”であれば、つまりモニタカメラ22によって撮影された画像において顔の認識に成功していれば、プロセッサ26はステップS39で、注視方向を「モニタ」に設定する。
【0144】
また、ステップS37で“NO”であれば、つまりモニタカメラ22によって撮影された画像において顔の認識に失敗していれば、プロセッサ26はステップS41で、腹部カメラの画像を取得する。つまり、プロセッサ26は、腹部カメラバッファ334から画像データを取得する。続いて、プロセッサ26は、ステップS43で、腹部カメラバッファ334に記憶される画像データに対して、ステップS35と同様、顔認識処理を実行する。
【0145】
続いて、プロセッサ26は、ステップS45で顔が認識されたか否かを判断する。つまり、プロセッサ26は、ステップS43の処理で顔の認識が成功したか否かを判断する。ステップS45で“YES”であれば、つまり腹部カメラ14によって撮影された画像において顔の認識に成功していれば、プロセッサ26はステップS47で注視方向を「ロボット」に設定する。
【0146】
一方、ステップS45で“NO”であれば、つまりモニタカメラ22と腹部カメラ14との両方のカメラでユーザの顔の認識が失敗していれば、プロセッサ26はステップS49で、注視方向を「その他」に設定する。
【0147】
続いて、プロセッサ26は、ステップS51で現在時刻を取得し、ステップS53で発話の判定結果に現在時刻を対応付ける。そして、プロセッサ26は、ステップS53の処理が終了するとステップS31に戻る。なお、ステップS53において、現在時刻が対応付けられた注視方向の判定結果は、判定結果バッファ338に一旦記憶される。
【0148】
なお、他の実施例では、モニタカメラ22または腹部カメラ14のどちらか一方の画像だけで注視方向の判定を行ってもよい。また、図23および図24に示す他の判定処理でも、ステップS31,S33,S41と同様の処理が存在するが、処理内容は全て同じであるため、他のフロー図では詳細な説明は省略する。
【0149】
図23は前傾姿勢判定プログラム314dの処理を示すフロー図である。プロセッサ26は、ステップS61で、画像が取得されたかを判断する。ステップS61で“NO”であれば、つまり画像が取得されていなければ、ステップS61の処理は繰り返し実行される。一方、ステップS61で“YES”であれば、つまり画像が取得されていれば、プロセッサ26はステップS63で、モニタカメラ22の画像を取得する。
【0150】
続いて、プロセッサ26は、ステップS65で顔領域認識処理を実行する。つまり、プロセッサ26は、モニタカメラバッファ332に格納されている画像データから顔領域を認識する。続いて、プロセッサ26は、ステップS67で、顔領域が閾値(たとえば、画像データの面積の5割を示す値)以上か否かを判断する。つまり、プロセッサ26は、認識された顔領域の面積が閾値以上であるか否かを判断する。ステップS67で“YES”であれば、たとえば、図8(A)に示すように、ユーザの顔が撮影されていれば、プロセッサ26はステップS69で、前傾姿勢を「モニタ」に設定する。
【0151】
一方、ステップS67で“NO”であれば、顔領域の面積が閾値未満、または顔領域の認識が失敗してれば、プロセッサ26はステップS71で、腹部カメラ14の画像を取得する。続いて、プロセッサ26は、ステップS73で、顔領域の認識処理を実行する。つまり、プロセッサ26は、腹部ロボットバッファ334に格納された画像データから顔領域を認識する。続いて、プロセッサ26は、ステップS75で、顔領域が閾値以上か否かを判断する。つまり、プロセッサ26は、腹部カメラ14で撮影された画像データにおいて、ユーザの顔が閾値以上であるか否かを判断する。ステップS75で“YES”であれば、たとえば、図8(B)に示すように、ユーザの顔が撮影されていれば、プロセッサ26はステップS77で、前傾姿勢を「ロボット」に設定する。
【0152】
一方、ステップS75で“NO”であれば、たとえば、図8(C)に示すように、ユーザの顔が撮影されていれば、プロセッサ26はステップS79で、前傾姿勢を「その他」に設定する。
【0153】
続いて、プロセッサ26は、ステップS81で現在時刻を取得し、ステップS83で発話の判定結果に現在時刻を対応付ける。そして、プロセッサ26は、ステップS83の処理が終了するとステップS61に戻る。なお、ステップS83において、現在時刻が対応付けられた注視方向の判定結果は、判定結果バッファ338に一旦記憶される。
【0154】
なお、他の実施例では、モニタカメラ22または腹部カメラ14のどちらか一方の画像だけで、前傾姿勢の判定が行われてもよい。
【0155】
図24は頷き判定プログラム314eの処理を示すフロー図である。プロセッサ26はステップS91で画像が取得されたか否かを判断する。ステップS91で“NO”であれば、つまり画像が取得されていなければ、プロセッサ26はステップS91の処理を繰り返し実行する。一方、ステップS91で“YES”であれば、つまり画像が取得されていれば、プロセッサ26は、ステップS91で、モニタカメラ22の画像を取得する。
【0156】
続いて、プロセッサ26は、ステップS95で、顔位置認識処理を実行する。つまり、プロセッサ26は、モニタカメラバッファ332に保存される画像データにおいて、顔領域の重心位置を認識する。続いて、プロセッサ26は、ステップS97で、顔位置が変化したか否かを判断する。つまり、プロセッサ26は、顔位置バッファ340からモニタカメラ22に対応する前回の顔位置を取得する。さらに、プロセッサ26は、取得した前回の顔位置とステップS95で認識された今回の顔位置とを比較して、ユーザの顔位置が変化したか否かを判断する。ステップS97で“YES”であれば、つまりモニタカメラ22で撮影された画像において、ユーザの顔位置が変化していれば、プロセッサ26は、ステップS99で、頷きを「有り」と判定する。
【0157】
また、ステップS97で“NO”であれば、つまりモニタカメラ22の画像において、ユーザの顔位置が変化していなければ、プロセッサ26はステップS101で、腹部カメラ14の画像を取得する。続いて、プロセッサ26は、ステップS103で、顔位置認識処理を実行する。つまり、プロセッサ26は、腹部カメラバッファ334に記憶された画像データにおいて、顔領域の重心位置を認識する。続いて、プロセッサ26は、ステップS105で、顔位置が変化したか否かを判断する。つまり、プロセッサ26は、顔位置バッファ340から腹部カメラ14に対応する前回の顔位置を取得し、ステップS97と同様、ユーザの顔位置が変化したか否かを判断する。ステップS105で“YES”であれば、つまり腹部カメラ14の画像において、ユーザの顔位置が変化していれば、プロセッサ26はステップS99で、頷きを「有り」と判定する。一方、ステップS105で“NO”であれば、つまり腹部カメラ14の画像でも、ユーザの顔位置の変化が検出されなければ、プロセッサ26はステップS107で、ユーザの頷きを「無し」と判定する。
【0158】
続いて、プロセッサ26は、ステップS109で、今回の顔位置を記憶する。つまり、プロセッサ26は、ステップS95,S103で認識されたユーザの顔位置を顔位置バッファ340に記憶させる。
【0159】
続いて、プロセッサ26は、ステップS111で現在時刻を取得し、ステップS113で発話の判定結果に現在時刻を対応付ける。そして、プロセッサ26は、ステップS113の処理が終了するとステップS91に戻る。また、ステップS113では、現在時刻が対応付けられた頷きの判定結果は、判定結果バッファ338に一旦記憶される。
【0160】
なお、上記ステップS13,S37,S45,S67,S75,S97およびS105の処理を実行するプロセッサ26は要素行動判定手段として機能する。
【0161】
図25は相手の発話判定プログラム314fの処理を示すフロー図である。プロセッサ26は、ステップS121で、相手の行動データを取得する。つまり、プロセッサ26は、サーバ24とのデータ通信を確立し、相手の行動データをデータ通信バッファ342に記憶させる。続いて、プロセッサ26は、ステップS123で、相手が発話したか否かを判断する。つまり、プロセッサ26は、データ通信バッファ342に格納された相手の行動データにおいて、発話の欄に「有り」が記録されているか否かを判断する。ステップS123で“YES”であれば、つまり相手の行動データにおいて、発話が「有り」と記録されていれば、プロセッサ26はステップS125で、相手の発話を有りと判定する。一方、ステップS123で“NO”であれば、つまり相手の行動データにおいて、発話が「無し」と記録されていれば、プロセッサ26はステップS127で、相手の発話を「無し」と判定する。なお、ステップS123の処理を実行するプロセッサ26は相手発話判定手段として機能する。
【0162】
続いて、プロセッサ26は、ステップS129で現在時刻を取得し、ステップS131で発話の判定結果に現在時刻を対応付ける。そして、プロセッサ26は、ステップS131の処理が終了するとステップS121に戻る。なお、ステップS131では、現在時刻が対応付けられた相手の発話の判定結果は、判定結果バッファ338に一旦記憶される。
【0163】
図26は同期プログラム314gの処理を示すフロー図が示される。プロセッサ26は、ステップS141で各判定が終了したか否かを判断する。たとえば、プロセッサ26は、判定結果バッファ338に発話、注視方向、前傾姿勢、頷きおよび相手の発話の判定結果が記憶されているか否かを判定する。ステップS141で“NO”であれば、つまり各判定が終了していなければ、プロセッサ26はステップS143の処理を繰り返し実行する。一方、ステップS143で“YES”であれば、つまり各判定が終了していれば、プロセッサ26はステップS143で、各判定結果および顔認識結果を時刻に基づいて同期する。つまり、プロセッサ26は、各判定結果に対応付けられた時刻に基づいて同期する。
【0164】
続いて、プロセッサ26は、ステップS145で、同期した各判定結果を行動データとし、行動テーブルに記録する。つまり、プロセッサ26は、図7に示す行動テーブルにおいて、新たな行に各判定結果を記録する。続いて、プロセッサ26は、ステップS147で、現在の行動データをサーバ24に送信する。そして、プロセッサ26はステップS147の処理が終了すればステップS141に戻る。つまり、プロセッサ26は、行動テーブルにおいて、新たに追加された行に対応する行動データをサーバ24に送信する。
【0165】
このように、図20−図26の処理が一定時間毎に並列的に実行されることで、ユーザの行動が、判定され、サーバ24に送信される。
【0166】
図27はサンプル蓄積プログラム316の処理を示すフロー図である。プロセッサ26は、ステップS151で所定時間タイマが満了したか否かを判断する。つまり、プロセッサ26は、前回の個人学習サンプルを蓄積してから所定時間が経過したか否かを、所定時間カウンタ356の値に基づいて判断する。続いて、プロセッサ26は、ステップS153で、所定時間分の行動データを取得する。つまり、プロセッサ26は、行動テーブルの時刻欄に基づいて、所定時間分の行動データを、行動テーブルデータ348から読み出す。
【0167】
続いて、プロセッサ26は、ステップS155で、複合行動の行動頻度を算出する。たとえば、プロセッサ26は、読み出した行動データから要素行動の発生頻度を算出する。そして、プロセッサ26は、複合行動の行動頻度として、算出された発生頻度の期待値を算出する。続いて、プロセッサ26は、ステップS157で、算出された行動頻度を、個人学習サンプルとして個人学習データ350に追加(蓄積)する。たとえば、プロセッサ26は、図14に示すように算出された行動頻度を、個人学習データ350を構成する個人学習サンプルとして、RAM30に記憶させる。続いて、プロセッサ26は、ステップS159で、所定時間タイマをリセットして、ステップS151に戻る。つまり、プロセッサ26は、所定時間カウンタ354を初期化する。
【0168】
図28は学習プログラム318の処理を示すフロー図である。プロセッサ26は、ステップS161で、一般学習データ346を取得する。つまり、プロセッサ26は、RAM30から一般学習データ346を読み出す。続いて、プロセッサ26は、ステップS163で、一般SVMを構築する。つまり、プロセッサ26は、読み出した一般学習データ346を構成する複数の一般学習サンプルから、図16(A)に示すような一般SVMを構築する。続いて、プロセッサ26は、ステップS167で、一般SVMによって個人学習データ346を構成する全ての個人学習サンプルを認識する。つまり、個人化SVMの認識精度を向上させるために、まず一般SVMによって個人学習サンプルを認識する。続いて、プロセッサ26は、ステップS169で、一般SVMの認識度を記録する。つまり、プロセッサ26は、個人学習データ350を構成する複数の個人学習サンプルのうち、アクティブ状態と認識された個人学習サンプルの数を、一般SVMの認識度としてSVM認識バッファ344に記憶する。
【0169】
続いて、プロセッサ26は、ステップS171で、一般学習サンプルの重みを、個人学習データ350を利用して調整する。つまり、プロセッサ26は、数6および数7の数式に基づいて、個人学習サンプルおよび一般学習サンプルから複合行動の期待値を算出し、数8の数式に基づいて、一般学習データ346を構成する各一般学習サンプルの重みを調整する。続いて、プロセッサ26は、ステップS173で、個人化SVMを構築する。つまり、プロセッサ26は、重みが調整された一般学習サンプル(個人化された一般学習サンプル)から、図16(B)に示すような個人化SVMを構築する。なお、ステップS171,S173の処理を実行するプロセッサ26は調整手段として機能する。また、ステップS171の処理を実行するプロセッサ26は重み調整手段とて機能する。
【0170】
続いて、プロセッサ26は、ステップS175で、個人化SVMによって、個人学習データ350を構成する全ての個人学習サンプルを認識する。つまり、プロセッサ26は、個人化SVMの認識精度を向上させるために、個人化SVMで個人学習サンプルを認識する。続いて、プロセッサ26は、ステップS177で、個人化SVMの認識度を記憶する。つまり、プロセッサ26は、個人学習データ346を構成する複数の個人学習サンプルのうち、アクティブ状態と認識された個人学習サンプルの数を、個人化SVMの認識度としてSVM認識バッファ344に記憶させる。なお、ステップS175の処理を実行するプロセッサ26は仮認識手段として機能し、ステップS177の処理を実行するプロセッサ26は記録手段とし機能する。
【0171】
続いて、プロセッサ26は、ステップS179で、前回の認識度と今回の認識度との差が閾値以下か否かを判断する。たとえば、プロセッサ26は、SVM認識バッファ344に記憶されている、一般SVMの認識度と個人化SVMの認識度との差を算出し、その差が個人学習サンプルの総数の1割以下であるか否かを判断する。なお、ステップS171-S181の処理が2回目以降の場合、ステップS179の判断は、個人化SVMによる前回の認識度と今回の認識度とから判断される。ステップS179で“YES”であれば、つまり認識度の差が閾値以下であれば、プロセッサ26は学習処理を終了する。
【0172】
また、ステップS179で“NO”であれば、つまり認識度の差が閾値よりも大きければ、プロセッサ26はステップS181で、個人学習サンプルが追加されたか否かを判断する。つまり、プロセッサ26は、個人学習データ350に新しい個人学習サンプルが追加されたか否かを判断する。ステップS181で“NO”であれば、たとえば、所定時間が経過しておらず、個人学習サンプルが追加されていなければ、プロセッサ26はステップS181の処理を繰り返し実行する。一方、ステップS181で“YES”であれば、つまり個人学習サンプルが追加されれば、プロセッサ26はステップS171に戻る。そして、ステップS171では、追加された個人学習サンプルを含む個人学習データ350を利用して、一般学習サンプルの重みが調整される。
【0173】
なお、他の実施例では、ステップS163−S169およびステップS175−S181を省略し、既に蓄積された個人学習サンプルのみで、個人化SVMが構築されてもよい。たとえば、認識対象ユーザが、一般学習サンプルを作成するために使われた個人学習サンプルを提供したユーザであれば、多くの個人学習サンプルが既に蓄積されているため、上記のように、処理は簡略化される。
【0174】
図29は認識プログラム320の処理を示すフロー図が示される。たとえば、PC10のプロセッサ26は、ユーザによってPC10の電源がオンにされると、ステップS191で、上記ステップS181と同様、個人学習サンプルが追加されたか否かを判断する。ステップS191で“NO”であれば、つまり個人学習サンプルが追加されていなければ、プロセッサ26はステップS191の処理を繰り返す。一方、ステップS191で“YES”であれば、つまり個人学習サンプルが追加されれば、プロセッサ26はステップS193で、追加された個人学習サンプルを認識サンプルとして取得する。つまり、プロセッサ26は、個人学習データ350から一番最後に追加された個人学習サンプルを、集中状態を認識するために、認識サンプルとして読み出す。
【0175】
続いて、プロセッサ26は、ステップS195で、集中認識処理を実行する。また、ステップS195の処理については、図30に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。続いて、プロセッサ26は、ステップS197で発話認識処理を実行し、ステップS199で興味対象認識処理を実行する。先述したように、プロセッサ26は、発話認識処理によって、ユーザが話し手として発話しているトーク状態、またはユーザが相手の話を傾聴しているリッスン状態を認識する。また、プロセッサ26は、興味対象認識処理によって、ユーザの興味対象(ロボット、モニタ、その他)を認識する。
【0176】
続いて、プロセッサ26は、ステップS201で、各認識結果を状態データ352として記憶する。たとえば、プロセッサ26は、集中認識の結果がアクティブ状態であり、発話認識の結果がトークであり、興味対象認識の結果が「ロボット」であれば、状態データ352は、「アクティブ・トーク・ロボット」としてメモリ30に記憶される。続いて、プロセッサ26は、ステップS83で、状態データ352をサーバ24に送信し、ステップS191に戻る。
【0177】
図30は集中認識プログラム322の処理を示すフロー図が示される。ステップS195の処理が実行されると、プロセッサ26は、ステップS211で、取得した認識サンプルから複合行動の行動頻度を算出する。つまり、プロセッサ26は、図14に示すように、認識サンプルにおける要素行動の発生頻度から、複合行動の行動頻度を算出する。続いて、プロセッサ26は、ステップS213で、ユーザの集中状態を認識する。つまり、プロセッサ26は、ステップS211で算出された行動頻度を個人化SVMに入力して、ユーザの集中状態を認識する。なお、ステップS213の処理を実行するプロセッサ26は認識手段として機能する。
【0178】
続いて、プロセッサ26は、ステップS215で、認識結果がアクティブ状態か否かを判断する。ステップS215で“YES”であれば、つまり個人化SVMによる認識結果がアクティブ状態であれば、プロセッサ26はステップS217で、アクティブ状態を設定して、集中認識処理を終了する。つまり、プロセッサ26は、集中フラグ354をオンに設定する。一方、ステップS215で“NO”であれば、つまり個人化SVMによる認識結果がパッシブ状態であれば、プロセッサ26はステップS219で、パッシブ状態を設定して、集中処理を終了する。つまり、プロセッサ26は、集中フラグ354をオフに設定する。
【0179】
そして、プロセッサ26は、集中認識処理が終了すれば認識処理に戻って、ステップS197の処理を実行する。
【0180】
図31はロボット制御プログラム324の処理を示すフロー図である。たとえば、PC10のプロセッサ26は、テレビ電話機能による通話が開始されると、ステップS231で終了操作か否かを判断する。たとえば、プロセッサ26は、テレビ電話機能による通話を終了する操作がされたか否かを判断する。ステップS231で“YES”であれば、つまり終了操作が行われると、プロセッサ26はロボット制御処理を終了する。一方、ステップS231で“NO”であれば、つまり終了操作が行われなければ、プロセッサ26はステップS233で、状態データ352を参照する。
【0181】
続いて、プロセッサ26は、ステップS235ではモニタ状態か否かを判断する。つまり、プロセッサ26は、状態データ352にユーザの興味対象がモニタ16であること示す「モニタ」が含まれているか否かを判断する。ステップS235で“NO”であれば、つまりユーザの興味対象がモニタ16でなければ、プロセッサ26はステップS245に進む。一方、ステップS235で“YES”であれば、つまりユーザの興味対象がモニタ16であれば、プロセッサ26はステップS237で、アクティブか否かを判断する。つまり、プロセッサ26は、状態データ352にユーザがアクティブ状態であることを示す「アクティブ」が含まれているか否かを判断する。ステップS237で“NO”であれば、つまりユーザがパッシブ状態であれば、プロセッサ26はステップS247に進む。
【0182】
一方、ステップS237で“YES”であれば、つまりユーザがアクティブ状態であれば、プロセッサ26はステップS239で、トークであるか否かを判断する。つまり、プロセッサ26は状態データ352に、ユーザがトーク状態であることを示す「トーク」が含まれるか否かを判断する。ステップS239で“YES”であれば、つまり、ユーザがトーク状態であれば、状態データ352は「アクティブ・トーク・モニタ」であるため、プロセッサ26はステップS171でアクティブトーク処理を実行し、ステップS231に戻る。また、このアクティブトーク処理が実行されると、ロボット12は、疑似傾聴動作および発話制御動作を行う。
【0183】
ステップS239で“NO”であれば、つまりユーザがリッスン状態であれば、状態データ352は「アクティブ・リッスン・モニタ」であるため、プロセッサ26はステップS243で、アクティブリッスン処理を実行し、ステップS161に戻る。また、このアクティブリッスン処理が実行されると、ロボット12は、疑似傾聴動作およびユーザに発話を促す動作を行う。
【0184】
また、ユーザの興味対象がモニタ16以外である場合、プロセッサ26はステップS145で、ロボット状態か否かを判断する。つまり、プロセッサ26は、状態データ352に、ユーザの興味対象がロボット12であることを示す「ロボット」が含まれているか否かを判断する。ステップS245で“YES”であれば、つまりユーザの興味対象がロボット12であれば、プロセッサ26はステップS247で非アクティブ処理を実行し、ステップS231に戻る。また、この非アクティブ処理が実行されると、ロボット12は、ユーザの注意を引きつける動作およびユーザの発話を促す動作を行う。
【0185】
一方、ステップS245で“NO”であれば、つまりユーザの興味対象がロボット12でもモニタ16でもなければ、ステップS249でアザー処理を実行し、ステップS231に戻る。また、アザー処理が実行されると、ロボット12は、注意の引きつける動作およびユーザに話しかける動作を行う。
【0186】
このように、第1実施例では、ユーザの集中状態は、ユーザの行動に基づいてSVMが個人化されるため、ユーザの状態が正しく認識されるようになる。
【0187】
<第2実施例>
第2実施例では、SVMを個人化するのではなく、認識サンプルを一般化することで、認識対象ユーザの集中状態を正しく認識する。そして、第2実施例では、認識サンプルは、ユーザの発生頻度を正規化(一般化)するために利用される、数4に示す数式に基づいて、一般化される。
【0188】
なお、第2実施例の傾聴対話持続システム100は、第1実施例と同じであるため、PC10およびロボット12などの電気的な構成や、PC10のメモリマップなどなど、重複した説明は省略する。
【0189】
たとえば、図32(A)を参照して、図16(A)と同じように、「注視」の発生頻度が低いユーザは、会話に集中していたとしても、認識サンプルがパッシブ側に配置されるため、パッシブ状態と誤認識される。そこで、数4に示す数式に基づいてユーザの認識サンプルを一般化すると、一般化された認識サンプルは、境界線の右側(アクティブ側)に配置されるため、上記ユーザは、アクティブ状態と認識されるようになる。
【0190】
このように、認識サンプルの重みを調整するだけでよいので、認識基準を変化させることなく、特定のユーザの集中状態を容易に正しく認識できるようになる。
【0191】
以下、第2実施例のPC10によって実行される本願発明のフロー図について説明する。ただし、図20−図27、図29および図31に示すフロー図は、第1実施例と同じであるため、詳細な説明は省略する。また、図33のフロー図は第2実施例の学習プログラム318による処理を示し、図34のフロー図は第2実施例の集中認識プログラム322による処理を示す。
【0192】
図33は第2実施例の学習プログラム318の処理を示すフロー図である。プロセッサ26は、ステップS301で一般学習データを取得し、ステップS303で一般SVMを構築する。そして、一般SVMを構築する処理が終了すると、プロセッサ26は学習処理を終了する。つまり、第2実施例の学習処理は、一般SVMを構築するだけの処置となる。
【0193】
図34は第2実施例の集中認識プログラム322の処理を示すフロー図である。プロセッサ26は、ステップS311で、集中処理で取得された認識サンプルから、複合行動の行動頻度を算出する。続いて、プロセッサ26は、ステップS313で、重みを調整した認識サンプルを作成する。つまり、プロセッサ26は、ステップS311で算出された行動頻度および数4に示す数式に基づいて、認識サンプルの重みを調整する。なお、重みが調整された認識サンプルは「一般化された認識サンプル」と呼ばれる。続いて、プロセッサ26は、ステップS315で、重みが調整された認識サンプルに基づいて、ユーザの集中状態を認識する。つまり、プロセッサ26は、学習処理で構築された一般SVMによって、一般化された認識サンプルを認識することで、ユーザの集中状態を認識する。なお、ステップS315の処理を実行するプロセッサ26は作成手段として機能し、ステップS317の処理を実行するプロセッサ26は認識手段として機能する。
【0194】
続いて、プロセッサ26は、ステップS317で、認識結果がアクティブ状態か否かを判断する。つまり、プロセッサ26は、一般SVMによる認識結果がアクティブ状態であるかを判断する。ステップS317で“YES”であれば、つまり認識結果がアクティブ状態であれば、プロセッサ26はステップS319で、アクティブ状態を設定する。つまり、ステップS319では、集中フラグ354がオンに設定される。一方、ステップS317で“NO”であれば、つまり認識結果がパッシブ状態であれば、プロセッサ26はステップS321で、パッシブ状態を設定する。つまり、集中フラグ354がオフに設定される。
【0195】
また、プロセッサ26は、ステップS323で、認識サンプルに認識結果をラベル付けして個人学習サンプルに追加し、集中認識処理を終了する。そして、プロセッサ26は、集中認識処理を終了すると、上位ルーチンである認識処理に戻る。
【0196】
ここで、ステップS232で、ラベル付けされた個人学習サンプルが個人学習データ350に追加されるため、第2実施例では、ラベル付けされた個人学習サンプルを利用して一般学習サンプルを再計算する事ができる。つまり、一般SVMが学習する一般学習サンプルの数を増やすことができるため、認識の精度を向上させることができる。
【0197】
これらの実施例によれば、傾聴対話持続システム100に含まれるPC10は、ロボット12の腹部カメラ14およびモニタカメラ22によって撮影された画像とマイク20によって集音された音声とから、ユーザの行動データを取得する。また、第1実施例では、特定のユーザの行動データからサンプリングされた個人学習サンプルおよびSVMを構築するための一般学習サンプルに基づいて、境界線(超平面)の位置が調整された個人化SVMが構築される。さらに、第2実施例では、特定のユーザの行動データからサンプリングされた個人学習サンプルおよび一般SVMを構築するための一般学習サンプルに基づいて、認識サンプルが一般化される。
【0198】
そして、各実施例では、特定のユーザの行動から個人学習サンプルがサンプリングされ、その個人学習サンプルおよび既存の一般学習サンプルを利用して、特定のユーザの状態が認識される。そのため、PC10は、特定のユーザの集中状態を容易に正しく認識できるようになる。
【0199】
また、これらの実施例では、取得される要素行動の種類を少なくしつつ、学習および認識に必要な複合行動を得ることができる。そのため、ユーザの要素行動を記録するPC10の負荷を減らすことができる。さらに、相手の発話の有無を利用してユーザの集中状態を認識することで、認識の精度を向上させることができる。
【0200】
なお、傾聴対話持続システム100は、図1のように、必ずしも遠隔対話を前提としているわけではなく、同じ空間(部屋)に居る人物の状態を推定する場合にも用いることができる。図35を参照して、2人のユーザが同じ部屋に居る場合は、PC10は、ネットワーク200を介さず、サーバ24に直接接続される。また、図36を参照して、2人が同じ部屋の中でお互いが向かい合って座る場合には、お互いが相手の顔を直接確認できるため、モニタ16は何も表示しない。また、他の実施例では、PC10がサーバ24の機能を果たすことで、1台のPC10によって、ユーザAおよびユーザBの集中状態が認識されてもよい。つまり、各ユーザの行動データは、1台のPC10に蓄積される。ただし、ロボット12、スピーカ18、マイク20およびモニタカメラ22は、各ユーザの近くにそれぞれ設置される。
【0201】
また、他の実施例では、集中状態だけでなく、発話状態や興味の対象なども、SVMによって認識されてもよい。
【0202】
また、本実施例では、集中状態を認識する手法としてSVMを採用したが、他の実施例では最近傍法などの他の認識手法が採用されてもよい。
【0203】
また、複合行動には、ロボット12の制御結果およびユーザの手のジェスチャーなどが含まれていてもよい。そして、ロボット12の制御結果を利用する場合はロボット12の動作履歴データが参照される。また、ユーザの手のジェスチャーは、ユーザの手を検出する処理を利用して認識される。
【0204】
また、腹部カメラ14およびモニタカメラ22以外に、モニタ16およびロボット12以外の位置でユーザの顔を撮影する第3カメラを設置してもよい。
【0205】
また、PC10に代えて、サーバ24によってユーザの状態が認識されてもよい。この場合、腹部カメラ14およびモニタカメラ22によって撮影された画像と、マイク20によって集音された音声とはサーバ24に直接送信される。
【0206】
また、PC10およびネットワーク200を利用せずに電話網などを介して、ユーザの画像と音声とがPC10に送受信されてもよい。また、PC10、モニタ16、スピーカ18、マイク20およびモニタカメラ22が同一の筐体に組み込まれてもよい。さらに、この場合、ロボット12とテレビ電話機とが接続された状態で、テレビ電話の通話が開始される。
【0207】
また、メモリ30に記憶される各種プログラムのデータは、データ配信用のサーバのHDDに記憶され、通信を介してPC10に配信されてもよい。さらに、光学ディスクなどの記憶媒体にこれらのプログラムのデータを記憶させた状態で、その記憶媒体が販売または配布されてもよい。
【0208】
そして、本明細書中で挙げた、ウィンドウ幅の時間、一定時間および所定時間閾値などの具体的な数値は、いずれも単なる一例であり、製品の仕様などの必要に応じて適宜変更可能である。
【符号の説明】
【0209】
10a,10b …PC
12a,12b …ロボット
14a,14b …腹部カメラ
16a,16b …モニタ
20a,20b …マイク
22a,22b …モニタカメラ
24 …サーバ
26 …プロセッサ
30 …メモリ
36 …通信LANボード
38 …無線通信装置
100 …傾聴対話持続システム
200 …ネットワーク

【特許請求の範囲】
【請求項1】
ユーザの行動を取得する取得手段と、認識基準を有し、前記取得手段によって取得されたユーザの行動からユーザ状態を認識する認識手段とを備える、状態認識装置において、
複数の学習サンプルを記憶する記憶手段、および
前記複数の学習サンプルに基づいて、前記認識基準を調整する調整手段をさらに備えることを特徴とする、状態認識装置。
【請求項2】
前記認識基準は、SVMにおける境界であり、
前記調整手段は、前記複数の学習サンプルの重みを調整する重み調整手段を含み、
前記重み調整手段によって前記複数の学習サンプルの重みが調整されると前記境界の位置が変化することを特徴とする、請求項1記載の状態認識装置。
【請求項3】
前記重み調整手段によって重みが調整された後に、ユーザ状態を仮認識する仮認識手段、および
前記仮認識手段による認識度を記録する記録手段をさらに備え、
前記重み調整手段は、前記記録手段によって記録された前回の認識度と、今回の認識度との差が所定値以下となるまで前記複数の学習サンプルの重みの調整を繰り返すことを特徴とする、請求項2記載の状態認識装置。
【請求項4】
ユーザのユーザ状態を認識する、状態認識装置であって、
複数の学習サンプルを記憶する記憶手段、
前記ユーザの行動を取得する取得手段、
前記複数の学習サンプルに基づいて、前記取得手段によって取得された前記ユーザの行動から、重みを調整した認識サンプルを作成する作成手段、および
認識基準を有し、前記作成手段によって作成された認識サンプルから前記ユーザのユーザ状態を認識する認識手段を備える、状態認識装置。
【請求項5】
前記ユーザの複数の要素行動の有無を判定する要素行動判定手段をさらに備え、
前記ユーザの行動は、前記複数の要素行動の有無を組み合わせた複合行動を含むことを特徴とする、請求項1ないし4のいずれかに記載の状態認識装置。
【請求項6】
前記複数の要素行動は、前記ユーザの発話、前記ユーザの注視、前記ユーザの前傾姿勢および前記ユーザの頷きを含むことを特徴とする、請求項5記載の状態認識装置。
【請求項7】
請求項6記載の状態認識装置を有する、傾聴対話持続システムあって、
対話相手の発話の有無を判定する相手発話判定手段をさらに備え、
一方の話者における前記複数の要素行動には、他方の対話相手の発話がさらに含まれる、傾聴対話持続システム。
【請求項8】
複数の学習サンプルを記憶する記憶手段を備える、状態認識装置のプロセッサを、
ユーザの行動を取得する取得手段、
認識基準を有し、前記取得手段によって取得されたユーザの行動からユーザ状態を認識する認識手段、および
前記複数の学習サンプルに基づいて、前記認識基準を調整する調整手段として機能させる、状態認識プログラム。
【請求項9】
複数の学習サンプルを記憶する記憶手段を備える、状態認識装置のプロセッサを、
ユーザの行動を取得する取得手段、
前記複数の学習サンプルに基づいて、前記取得手段によって取得された前記ユーザの行動から重みが調整された認識サンプルを作成する作成手段、および
認識基準を有し、前記作成手段によって作成された重みが調整された認識サンプルから前記ユーザのユーザ状態を認識する認識手段として機能させる、状態認識プログラム。
【請求項10】
ユーザの行動を取得する取得手段、認識基準を有し、前記取得手段によって取得されたユーザの行動からユーザ状態を認識する認識手段および複数の学習サンプルを記憶する記憶手段を備える、状態認識装置の状態認識方法において、
前記取得手段によって前記ユーザの行動を取得し、
前記複数の学習サンプルに基づいて、前記認識基準を調整し、そして
前記認識基準が調整された前記認識手段によって、前記取得手段によって取得されたユーザ行動からユーザ状態を認識することを特徴とする、状態認識方法。
【請求項11】
複数の学習サンプルを記憶する記憶手段を備える、状態認識装置の状態認識方法であって、
ユーザの行動を取得し、
前記複数の学習サンプルに基づいて、前記取得手段によって取得された前記ユーザの行動から重みが調整された認識サンプルを作成し、そして
認識基準を有し、重みが調整された認識サンプルから前記ユーザのユーザ状態を認識する、状態認識方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate


【公開番号】特開2012−10856(P2012−10856A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−149041(P2010−149041)
【出願日】平成22年6月30日(2010.6.30)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成21年6月19日付け、支出負担行為担当官 総務省大臣官房会計課企画官、研究テーマ「高齢者・障がい者のためのユビキタスネットワークロボット技術の研究開発」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】