図1を参照して、この発明の一実施例である親近アンビエントエージェント(ユーザにとって身近な存在として生活にアンビエントに寄り添う擬人化エージェントのこと。以下、単に「エージェント」と呼ぶことがある。)による行動誘発システム(以下、単に「行動誘発システム」ということがある。)10は、部屋12内のユーザ14が使用するコンピュータ16を含む。この実施例では、コンピュータ16は、ユーザ14がによって使用されるとともに、行動誘発システム10を全体的に制御する。
コンピュータ16のディスプレイ18はたとえばタッチディスプレイとして構成されている。このディスプレイ18の画面は、図2に示すように、表示ウィンドウ20とその上に形成されるテキスト表示領域22を含む。表示ウィンドウ20にはエージェント24が存在するエージェント空間26が表示され、エージェント24がアニメーションによって反復的かつ継続的に提示する先行行動によって、ユーザ14の行動変容を促すように意図している。
ただし、ユーザ14による作業は外部ウィンドウで表示されるが、この場合、エージェント空間26の表示ウィンドウ20はディスプレイ領域を占領しないよう、外部ウィンドウのアクティブ時には非アクティブになり、外部ウィンドウの裏に隠れても構わないものとする。したがって、ユーザ14の作業(学習)領域である外部ウィンドウが非アクティブになったとき、ユーザ14による作業終了を検出することができる。
図1に示すコンピュータ16の電気的構成の一例が図3に示される。コンピュータ16は、図3に示すように、CPU28を含み、CPU28はバス29を介して、メモリ30にアクセスできる。
CPU28は、さらに、音声インタフェース(I/F)32を介して、内蔵マイク34からの、ユーザ14(図1)等の音声をたとえばA/D変換することによって、音声データとして取り込み、メモリ30に記憶する。さらに、音声I/F32を介して内蔵スピーカ36が接続され、この内蔵スピーカ36からはたとえばD/A変換された音声信号に応じた音声が出力される。この音声としては、たとえばエージェント空間26に生じているたとえばエージェント24の声や、エージェント24の行動に伴って発生される音などがある。もちろん、内蔵マイク34から取り込んだ部屋12内で生じた音(ユーザ14の声を含む)が、メモリ30から読み出されて、出力されることもある。
ただし、実施例では、エージェント24の発話音声は、音声合成ソフトウェア(SofTalk:商品名)で読み上げを行い、そのテキストをディスプレイ18の画面の前述のテキスト表示領域22に表示する。
コンピュータ16は内蔵カメラ38を含み、この内蔵カメラ38からの映像信号は、カメラインタフェース(I/F)40を介して、たとえばA/D変換されて、映像データとしてCPU28によって取り込まれ、この映像データは、メモリ30に一旦記憶される。
コンピュータ16はさらに、上述のタッチディスプレイ18を含み、このタッチディスプレイ18は、タッチディスプレイインタフェース(I/F)42を通して、バス29に接続される。このタッチディスプレイ18には、ユーザ14がコンピュータ16を使用して学習するときなどに必要な画像ないし映像が、たとえばメモリ30から読み出されて、あるいは通信モジュール44を通してインタネットなどからダウンロードされて、表示される。ただし、このタッチディスプレイI/F42には、ユーザ14がタッチした画面上の座標を検出し、その座標データをCPU28に入力する機能を有する。
通信モジュール44は、CPU28がこのようなネット接続を実行するときに利用される。有線でも無線でもよい。
メモリ30には、図4に示すように、プログラム記憶領域30aおよびデータ記憶領域30bを含み、プログラム記憶領域30aには、OS等の基本的プログラムの他、この実施例に特有の、状態認識プログラム50、アニメーション制御プログラム52、合成音声制御プログラム54およびテキスト表示プログラム56等を含む。
状態認識プログラム50は、内蔵カメラ38からのユーザ映像や室内映像を主として利用して、ユーザや室内の状態を認識するプログラムであり、実施例ではC++(シープラスプラス:汎用プログラム言語)で実装した。
具体的には、状態認識プログラム50は、ディスプレイ18の上部にある内蔵カメラ38(図1では図示せず)から取得した映像に対し、OpenCV(商品名:インテル社(会社名)が開発、公開したオープンソースのコンピュータビジョン向けライブラリ)と Haar−like特徴(OpenTVで使う、画像の明暗差による局所的な特徴)を用いてユーザの顔を検出するとともに、その内蔵カメラ38の映像から計算したオプティカルフローを用いてユーザの動作を検出する。さらに、内蔵カメラ38の映像の明度変化から部屋の消灯‐点灯を判別する。
状態認識プログラム50は、さらに、windowsAPI(商品名:マイクロソフト社(会社名)が開発したアプリケーションプログラミングインタフェース)を用いてコンピュータ16での作業状態を検出する。たとえば、エージェント空間26をプロジェクタ72で表示する場合には、ユーザ14が作業(学習)に使うためのディスプレイ
18の表示ウィンドウが非アクティブになったとき、作業終了を検出する。
状態認識プログラム50はさらに、内蔵カメラ38の映像に基づいて、ユーザ14の部屋12内での位置を検出する。
アニメーションプログラム52は、ユーザ14の行動とユーザ14のエージェント24への注目状態に応じて、エージェント24のアニメーション(生活行動、生活環境、表情)を制御するとともに、それをプロジェクタ72でエージェント空間26に表示させるためのプログラムである。
エージェント空間26は、この実施例では、3D空間を仮想カメラで撮影した2Dで表示されるが、状態認識プログラム50が検出したユーザ14の位置に応じて仮想カメラ(図示せず)の位置を変更して、ユーザ14の部屋12とエージェント空間26の空間的なつながりを表現する。この仮想カメラの位置は、ユーザ14の位置が変化した方向へ変更されてもよく、またはユーザ14の位置が変化した方向は逆の方向へ変化されてもよい。このことによって、ユーザ14はあたかもエージェント24と同居している(空間を共有している)かのような感覚を持つ。
エージェント空間26に表示されているエージェント24の発話は、合成音声制御プログラム54で音声合成ソフトSofTalk(商品名)で読み上げて、テキスト表示プログラム56によって、そのテキストをテキスト表示領域22(図2)に表示する。
データ記憶領域30bには、オプティカルフローデータを一時的に記憶しておくためのオプティカルフローデータ領域58、内蔵マイク34からの音声データを記憶するための音声データ領域60、内蔵カメラ38からの映像データを記憶するための映像データ領域62、エージェント空間26に出力するべき音声コンテンツおよび映像コンテンツを予め設定しているコンテンツデータ領域64等を含む。
データ記憶領域30bにはさらに、後述の各種フラグを設定するためのフラグ領域66が形成される。
このような構成をアンビエントタスクとしてコンピュータ16上に常に起動しておくことにより、エージェント空間26のエージェント24を、ユーザ14の生活に寄り添う存在として常に動作させることができる。
図5はエージェント空間26を表示するためのコンピュータ16すなわちCPU28の処理の一例を示すフロー図である。なお、この図5に示すエージェント空間表示処理は、一例として、フレーム周期で繰り返し実行される。
CPU28は、まず、ステップS1において、状態認識プログラム50に従って、コンピュータ16のリアルタイムクロック(RTC:real-time clock)を参照して、現在時刻が24時‐7時の範囲かどうか判断する。現在時刻がこの時間範囲内であれば、睡眠をとるべき時間であるとして、ステップS3で、アニメーションプログラム52に従って、たとえば図6に示す「睡眠」のアニメーションを、図2に示す表示ウィンドウ20すなわちエージェント空間26に表示する。
この睡眠アニメーションにおいて、CPU28が内蔵カメラ38からの映像に基づいて状態認識プログラム50に従って、部屋12が未だ明るい(照明がついている状態)とき、たとえば部屋から明かりそのエージェント空間26に漏れているようなアニメーションとすることで、部屋12とエージェント空間26すなわち実空間と仮想空間との干渉を演出することができる。
そのための具体的な手法は、後述の実施例でも説明する。
ステップS1で“NO”のとき、ステップS5において、CPU28は、そのときの内蔵カメラ38の映像データを映像データ領域62から取得する。
CPU6は、ステップS7で、状態認識プログラム50に従って、その映像データに基づいて、部屋の明るさを検出し、ステップS9で、ユーザ14が部屋12に入ってきたかどうか判断する。実施例では、たとえば内蔵カメラ38の映像の明度が上がったとき、ユーザ14が室内灯をつけて入室したと認識する。ただし、部屋12の明るさの変化は、別途設けた光センサ(図示せず)で検出するようにしてもよい。
CPU28は、ステップS9で“YES”を判断したとき、すなわちユーザ14が入室したと判断したとき、続くステップS11で、メモリ30に形成されているフラグ領域66を参照して、入室フラグが「1」かどうか判断する。入室フラグは、ユーザ14が既に入室しているときには「1」を示し、ユーザ14が入室していないとき(ユーザ14が不在のとき)「0」を示す。したがって、この入室フラグを見ることによって、CPU28は、ユーザ14が継続して部屋12に居るか、ユーザ14が初めて入室したかを判断できる。
ステップS11で“NO”を判断したとき、すなわちユーザ14がそのとき初めて入室したと判断したとき、CPU28は、次のステップS13で、アニメーションプログラム52に従って、たとえば図7に示す「掃除」のアニメーションをエージェント空間26に表示する。つまり、この実施例では、部屋12を使う前に部屋を掃除するべきと考え、ユーザ14が入室したときに、先行行動として、エージェント24が掃除機をかけるようなアニメーションを、図2に示す表示ウィンドウ20すなわちエージェント空間26に表示することとした。
図7の掃除アニメーションでは、図7(a)に示すように最初にたとえば「掃除機をかけよっと」というテキスト表示とともに、エージェントが掃除機をかけているアニメーションを表示し、図7(b)に示すようにたとえば「部屋を快適にしたい」というテキスト表示とともに、引き続いてエージェントが掃除機をかけているアニメーションを表示し、図7(c)に示すようにたとえば「スッキリした」というテキスト表示とともに、部屋の中がきれいになってエージェントが喜んでいるアニメーションを表示する。ただし、テキストは、いずれも、図2に示すテキスト表示領域22に表示される。
この実施例のエージェント空間26では、図7の掃除アニメーションに限らず後述の様々なアニメーションにおいて、エージェント24はユーザの習慣行動をきっかけにポジティブな表情を浮かべながら行動した後、行動のメリットを実感した様子を示すアニメーションを表示するようにしている。たとえば図7の掃除アニメーションの場合、図7(a)で行動のきっかけを表示し、図7(b)で行動の継続を表示し、図7(c)で行動のメリットを強調する表示を行う。
さらに、この実施例のエージェント空間26では、図7の掃除アニメーションに限らず後述の様々なアニメーションにおいて、エージェント24の行動内容がユーザ14に理解されない可能性や誤解される可能性を防ぐため、エージェントが行動内容に関するつぶやきを行うように、テキスト表示プログラム56(図3)に従って、テキスト表示する。このことは、後述の様々なアニメーションを表示する場合にも同様である。ただし、このテキスト表示は、先に述べたように、コンピュータ16のディスプレイ18のテキスト表示領域22(図2)でなされる。
上述のテキスト表示とともに、合成音声制御プログラム54(図3)に従って、エージェント空間26のエージェント24がそのテキスト表示と同じ発話をするようにしてもよい。このことは、後述の様々なアニメーションを表示する場合にも同様である。
ステップS11で“YES”の場合、すなわちユーザ14が部屋12に居続けていると判断したとき、次のステップS15で、CPU28は、ユーザ14が着席したかどうか判断する。先に説明したように内蔵カメラ38の映像からオプティカルフローを計算してオプティカルフローデータ領域58(図3)に蓄積しているので、状態認識プログラム50に従って、CPU28は、そのオプティカルフローに基づいて動きを検出した後に、動きを検出せず、内蔵カメラ38の映像が人の顔を検出した状態に変化したとき、ユーザ14がコンピュータ16の前にきて着席したと認識する。
CPU28は、ステップS15で“YES”を判断したとき、すなわちユーザ14が着席したと判断したとき、続くステップS17で、メモリ30のフラグ領域66(図4)を参照して、着席フラグが「1」かどうか判断する。着席フラグは、ユーザ14が既に着席しているときには「1」を示し、ユーザ14が着席していないとき「0」を示す。したがって、この着席フラグを見ることによって、CPU28は、ユーザ14が継続して着席しているか、あるいはユーザ14が初めて着席したかを判断できる。
ステップS17で“YES”を判断したとき、すなわち、ユーザ14が初めて着席したと判断したとき、ステップS19で、CPU28はたとえば図8に示す「予定確認」のアニメーションをエージェント空間26に表示する。すなわち、コンピュータ16に向かい作業を始める前に予定の確認を行うべきと考え、ユーザ14が着席したとき、エージェントが予定の確認をするアニメーションを、先行行動の例として、表示ウィンドウ20(図2)のエージェント空間26に表示することとした。
図8の予定確認アニメーションでは、行動のきっかけとして、図8(a)に示すように最初にたとえば「予定を確認」というテキスト表示とともに、エージェントが予定を考えているアニメーションを表示し、行動の継続として、図8(b)に示すようにたとえば「余裕のある計画にしたい」というテキスト表示とともに、エージェントが予定表を書き込んでいるアニメーションを表示し、行動のメリットとして、図8(c)に示すようにたとえば「スケジュールできた」というテキスト表示とともに、予定表の前でエージェントが喜んでいるアニメーションを表示する。ただし、テキストは、いずれも、図2に示すテキスト表示領域22に表示される。
ステップS17で“NO”を判断したとき、すなわち既に着席して予定確認も行っているときには、CPU28は、ステップS21で学習のアニメーションをエージェント空間26に表示するが、この学習アニメーションは後述する。
ステップS21でユーザ14が学習しているとき、CPU28は、この学習アニメーションの表示に平行して、ステップS23で、内蔵カメラ38からの映像データに基づいて、ユーザ14の視線を検出する。
そして、ステップS25において、CPU28は、ユーザ14がエージェント空間26に表示されているエージェントに注目しているかどうか判断する。エージェント空間26がコンピュータ16のディスプレイ18上で表示ウィンドウ20に表示されているので、ユーザ14の視線がディスプレイ18の画面のエージェント24に向いているとき、ユーザ14がエージェントに注目していると判断する。CPU28は、エージェント空間26内においてそのときエージェント24がどの位置に表示されているか分かるので、その位置とユーザ14の視線の方向を比較することによって、ユーザ14がエージェント24に注目しているかどうか容易に判断できる。
ステップS25で“YES”が判断されると、すなわち、ユーザ14がエージェント空間26内のエージェント24に注目していると判断したとき、CPU28は、ステップS27で、アニメーションプログラム52に従って、「笑いかけ」のアニメーションをエージェント空間26において表示する。
図9が親近度レベルが「1」のときの笑いかけアニメーションLv1を示し、図10が親近度レベルが「2」のときの笑いかけアニメーションLv2を示す。笑いかけアニメーションLv2は、笑いかけアニメーションLv1に比べてより一層親近感を含んだ笑いかけの表情になっている。つまり、エージェント24がユーザと徐々に親しくなっていく関係を示すため、ステップS27では、ユーザ14がエージェント24に注目した回数に応じて笑いかけ表情の種類が増えるようにした。初対面のときは親近度レベルが「1」であるので、図9に示す笑いかけアニメーションLv1をエージェント空間26に提示し、ユーザ14がエージェント24に注目した回数が所定数、たとえば10回を超えると、親近度レベルが「2」となり、笑いかけアニメーションLv1に加えて、図10に示す笑いかけアニメーションLv2を提示する。反復して接触することで好感度が高まる単純接触効果は10回目の接触時に最大になることが知られているので、ここでは、ユーザ14が10回より多くエージェント24に注目したときに親近度をLv1からLv2に上げることとする。
ただし、ステップS27で、笑いかけアニメーションをエージェント空間26に提示する場合、ユーザ14が注目する度に笑いかけることにより機械的な存在と認識される恐れを避けるため、ユーザ14が注目したときにランダム制御を行い一定の確率で笑いかけアニメーションを表示する。実施例では、笑いかけアニメーションが発生する確率は、一例として、Lv1およびLv2のいずれのアニメーションも40%とした。つまり、ユーザ14がエージェント24に10回注目したとすると、そのうちの4回だけで、笑いかけアニメーションLv1および/またはLv2がエージェント空間26に表示されるようにした。ただし、この確率は、笑いかけアニメーションLv1およびLv2で違えるなど、任意に設定することができる。
エージェント24が生活空間をユーザ14と共有した共同生活者として認識されるようにするため、空間を共有しているアニメーション表現として、前述のようにエージェントの睡眠時(24時‐7時)にユーザ空間(部屋12)の光がエージェント空間26に漏れる描写を行うが、そのような空間共有の別の表現として、空気と共にほこりがユーザ空間(部屋12)とエージェント空間26を行き来するアニメーションを描写する。
すなわち、ステップS25で“NO”を判断したとき、ランダムに、つまり毎回ではなく、そのような埃のアニメーションをステップS29で表現する。
ユーザ14の作業終了は、前述のように、状態認識プログラム50に従って検出される。実施例のように、エージェント空間26をコンピュータ16のディスプレイ18の外部ウィンドウに表示する場合、外部ウィンドウが非アクティブになったとき、CPU28は、ユーザ14の作業が終了したと判断する。
CPU28は、このようにしてユーザ14の作業の終了を検知すると、アニメーションプログラム52に従って、たとえば図11および図12に示す、「片づけ」のアニメーションおよび「ごみ捨て」のアニメーションを、それぞれ、エージェント空間26に表示する。つまり、作業終了時に机の上を片付け、作業や片付けで出たごみを捨てるべきと考え、ユーザ14が作業を終えたときに、先行行動として、エージェント空間26において、エージェント24が机の上の片付け(図11)とごみ捨て(図12)を交互に提示する。
図11の片づけアニメーションでは、行動のきっかけとして、図11(a)に示すように、最初にたとえば「机の上をかたづけよっと」というテキスト表示とともに、エージェント24が机の上を片付けているアニメーションを表示し、行動の継続として、図11(b)に示すように、たとえば「作業スペースを広くしよう」というテキスト表示とともに、エージェント24が机の上の片づけを続行するアニメーションを表示し、行動の結果のメリットを強調するために、図11(c)に示すように、たとえば「スッキリした」というテキスト表示とともに、机の上がきれいになってエージェント24が喜んでいるアニメーションを表示する。ただし、テキストは、いずれも、図2に示すテキスト表示領域22に表示される。
図12のごみ捨てアニメーションでは、行動のきっかけとして、図12(a)に示すように、最初にたとえば「ごみ捨てよっかな」というテキスト表示とともに、エージェント24がごみをごみ箱に入れようとしているアニメーションを表示し、行動の継続として、図12(b)に示すように、たとえば「快適さを保ちたい」というテキスト表示とともに、エージェント24がごみの投入を続行するアニメーションを表示し、行動の結果のメリットを強調するために、図12(c)に示すようにたとえば「スッキリした」というテキスト表示とともに、机の上がきれいになってエージェント24が喜んでいるアニメーションを表示する。ただし、テキストは、いずれも、図2に示すテキスト表示領域22に表示される。
図11のお片付けアニメーションにやおいて、エージェント24のアニメーションだけでなく、エージェント24が使用している机の上の状態の変化も「空間状況」として表示する。
図12の例でいえば、エージェント24の近くにごみ箱があり、それにごみが投入され、さらにエージェント24のCPU用する机の上がきれいになったという、空間状況が表示されている。
このように、エージェント空間26において、エージェント24の動作だけでなく、空間状況も表示するようにしているので、ユーザ14がエージェント空間26において表示されているアニメーションの内容、すなわちエージェント空間26での動作をより正確に理解することができる。
実験概要
この実施例におけるエージェントの先行行動提示によるユーザ行動誘発効果と、自発行動促進による習慣化に関する効果について検証した。
実験仮説
実験に先立って、次のような仮説を立てた。
仮説1:エージェントが先行して行動を示すことでユーザの行動を誘発できる。
仮説2:エージェントが継続的に先行して行動を示した場合には、その後も行動誘発効果が持続し、行動を示さない場面でもユーザの自発行動を促進する。対して、エージェントが行動するよう指示する場合は行動誘発効果が持続せず、指示がある場面でのみ被験者の行動を誘発できる。
仮説3:エージェントが行動するように指示することで、ユーザに煩わしさを感じさせ、行動意欲を減退させる。
実験手順
実験参加者は大学生16名(21歳‐23歳、男性13名女性3名)である。ユーザとしての被験者は、仕切られたブース内の机で、コンピュータの作業ウィンドウ(外部ウィンドウ)の見本映像に倣って紙からパーツを切り出し台紙に貼りつけるという作業をした後、作業ウィンドウを閉じてから1分間その場で自由に待機した。作業から待機までのタスクを1タームとし、ターム毎にブース外の椅子に移動し1分間休憩を挟んで、1日に4タームずつ4日間で計16ターム繰り返した。ブース外での休憩時には実験者がごみ箱とその中のごみの重さを計測した。
実験中、エージェント空間26すなわちエージェント24は常にコンピュータ画面に表示され、ユーザと同じ作業を行っている。2日目と3日目において、外部ウィンドウの削除時にエージェント空間26において、条件に応じたエージェントの行動(A1:ごみを捨てる、A2:「ごみを捨ててください」と指示、A3:うつむいて作業を提示した。1日目と4日目は、全ての条件においてエージェントがうつむいて作業を提示した。
考察
捨てられたごみ量の分析結果から、エージェントが先行して行動を示すことでユーザのごみ捨て行動を誘発し、その後の先行行動の提示がない場面でも誘発効果が持続する可能性が示唆された。これにより仮説1、2が共に支持された。
さらに、カメラ映像より、エージェントが先行行動を示す特定条件のユーザは作業終了時にごみ捨てを行っていたことから、エージェントが継続的に先行して行動を示すことで、作業の終了をきっかけとした自発的なごみ捨てを誘発できた可能性があると考える。
仮説2に反する結果として、ごみ捨ての回数と捨てられたごみ量の分析結果から、被験者のタスク終了時にエージェントが行動するよう直接的に指示することでユーザの行動を誘発し、その後の指示が無い場面でも誘発効果が持続する可能性が示された。
また、仮説3に反して、この行動指示が煩わしく感じられた可能性は示されず、それによる行動意欲減退も示されなかった。
次に、図5のステップS21における学習アニメーションの表示の実施例について説明する。
この実施例では、後に詳しく説明するように、e‐ラーニングにおいて共に学習する複数のエージェントを用いて集団を構成し学習と休憩の行動を割り振ることによって、学習意欲の促進と適度な休憩を促すe‐ラーニング環境を形成する。つまり、共に学習する相手の存在が学習者の学習意欲を促進する点に着目し、エージェント24にユーザ14と共に学習する姿を提示させる。また、先行行動提示によりユーザの行動が促される点に着目し、たとえば集中度の低下などによるユーザの休憩の必要度に合わせてエージェントに休憩行動を取らせることにより、適度な休憩を促す。
ただし、1体のエージェントを用いて、ユーザに行動提示を行う場合、ユーザに行動の強制感を与える恐れがあると考え、この実施例では、エージェント空間26において複数のエージェントにより集団を構成し、ユーザ14に促す行動の割合に合わせて学習と休憩の行動を割り振り、ユーザに対し複数の行動を提示することで、行動選択の余地を残し、強制感を与える可能性を軽減することとした。
具体的には、エージェント空間26として、図14に示すように、複数のエージェント24が存在する自習室を仮定し、一辺に5体のエージェントが座ることができる机を二つ配置した。そのため提示できるエージェント24の数は最大で15体であるが、ユーザの正面にエージェントを配置した場合、後ろにいるエージェントの存在を大きく隠してしまうことから、正面のエージェントを除いた最大14体になるよう配置した。
この実施例では、上述のようにユーザの集中度を考慮する必要があるので、図13に示すように、メモリ30のプログラム記憶領域30aに、先に説明した各プログラム50,52、54および56に加えて、集中度推定プログラム68を予め設定しておく。
他方で、この実施例では、内蔵カメラ38によるユーザ14の顔の向きとマウス(図示せず)による作業速度の2つのパラメータを用いてユーザ14の集中度を推定できるようにするために、所定時間期間、たとえばエージェント空間26の表示更新間隔である1分間、積算して、メモリ30のパラメータデータ領域70(図13)に記憶させた。
したがって、集中度推定プログラム68は、このパラメータデータ領域70のパラメータデータを利用して、ユーザ14の集中度を推定する。
集中度を推定するための研究がいくつか存在するが、この実施例では、ユーザ14の顔の向きを1つのパラメータとした。集中度が高い場合、ユーザ14は学習対象(コンピュータ16の外部ウィンドウ)を向いているため顔は正面を向いている。逆に集中度が低い場合、ユーザ14の顔はうつむいていることが多くなり顔は正面から回転する。ただし、顔向きを内蔵カメラ38に写る肌色の面積から算出する手法では肌色の検出精度やユーザ14の髪型の違いによって誤差が発生する恐れがあるので、実施例では、FaceAPI(マイクロソフト社(会社名)が提供する顔認識アプリケーション)を用いてユーザ14の顔の向きを取得し、顔が学習対象を向いているかを集中度の推定に用いる。
具体的には、顔がコンピュータ16の画面を向いている時間の1分間における割合を顔の向きによる集中度として用いる。顔の向きは、FaceAPIにより得られた顔の回転角を図15に示すように(α、β)とし、顔座標を(Fx、Fy、Fz)とし、ユーザの顔が向いている位置を(Vx、Vy)として、数1および数2の2つの式を用いて算出する。
[数1]
Vx=Fx+Fz * tanα…(1)
[数2]
Vy=Fy+Fz * tanβ…(2)
テキストを用いた学習では、講義と異なり耳からの情報が入ってこない。よって余所見をした場合学習に関する情報は全く入らないため、集中度は限りなく低いと考えられる。そこで実施例では、ユーザ14の顔がコンピュータ16の画面の外部ウィンドウをを向いている場合は集中している、向いていない場合は集中していないと推定する。
さらに、たとえばe‐ラーニング中のマウスの動きがユーザの注視点に近い軌跡をたどることから、集中度などのユーザの内部状態をマウスの動きから取得できる可能性について示唆されている。そこで、この実施例では、ユーザ14の一定時間で読み進めることができるテキスト量をユーザの学習速度と考え、予め取得しておいた集中時の変化量と現在のマウス位置の変化量を比較することで、集中度を評価できると考える。
具体的には、システム利用前にあらかじめ取得したユーザの集中時の進捗量に対する現在の進捗量の割合を、学習進捗度による集中度として用いる。ユーザの学習位置は、テキストのページ数とマウス座標を用いて計測し、過去の学習位置と現在の学習位置の差を進捗量として用いる。
このようにして、集中度推定プログラム68は、このパラメータデータ領域70のパラメータデータを利用して、ユーザ14の集中度を推定する。
次に、図16を参照して、この実施例のエージェント空間26におけるアニメーションの表示処理について説明する。
最初のステップS31で、CPU28は、目標学習時間をタイマ(図示せず)に設定する。
続くステップS33で、CPU28は、アニメーションにプログラム52に従って、過半のエージェント24が学習しているエージェント空間26をたとえばコンピュータ16のディスプレイの表示ウィンドウ20(図2)に表示する。図17のエージェント空間26では、すべてのエージェント24が学習している。
そして、ステップS35で35分経過したかどうか判断する。つまり、ステップS33でのエージェント空間26の表示が開始から30分間継続される。
ステップS35で“YES”と判断されたとき、つまり、30分経過したとき、ステップS37で、CPU28は、先に設定したタイマを見て、ステップS31で設定した目標学習時間に未達かどうか判断する。“NO”なら、つまり、目標到達しセンサ杆に達していたら、そのまま終了する。
“YES”なら、つまり、目標学習時間に未達なら、次のステップS39で、集中度推定プログラム68に従って、CPU28が、上で述べた方法で、ユーザ14の集中度を推定する。
続いて、ステップS41でCPU28は、ユーザ14の集中度が低下してきたかどうか判断する。このステップS41では、ユーザの集中度が一定以上低下していると判断したとき、“YES”が判断される。
集中度が一定以上低下したことが判断されると、CPU28は次のステップS43で、エージェント空間26内において、たとえば図18に示すように、休憩するエージェントを増やしたエージェント空間26のアニメーションを表示する。図18では、前の3体のエージェントが机に伏せて(寝て)、「休憩」していることを表現している。
そして、ステップS45で、CPU28は、内蔵カメラ38からの映像に基づいて、状態認識プログラム50に従って、ユーザ14が休憩したかどうか判断する。“NO”なら、ステップS43で、休憩しているエージェントの数をさらに増やして、ユーザ14に休憩することを促す。つまり、休憩が必要なユーザに対してエージェントが先行して休憩を行うことにより休憩を促す。ここで、ユーザに対して単一の行動を提示した場合、そのエージェントと同じ行動をとらなくてはいけないという強制感を与える恐れがあるので、実施例では、複数のエージェントを用いて集団を構成し、学習と休憩の割合をユーザの必要性に合わせて各エージェントに割り振り、ユーザが適宜行動を選択する余地を残す。そして、休憩するエージェントの数を徐々に増やすことによって、ユーザ14に緩やかに休憩を促すことができる。
この実施例では、最も集中できる時間とされる学習開始30分間の平均集中度をユーザ毎に推定し、ユーザの集中度がこれを下回った場合その下がり具合に応じて休憩していエージェントの数を増やしてユーザ14に対して休憩の促しを行う。
ステップS45で“YES”を判断したら、CPU28はステップS47での休憩時間の経過後、先のステップS33に戻って、ユーザ14が学習する行動を選択するように、過半のエージェントが学習しているエージェント空間26を表示する。
[実験1]
概要
被験者すなわちユーザの主観評価による集中度とシステムが推定した集中度の相関を調べ、顔向きおよび学習進捗によるユーザの集中度推定が有効であるかどうかを検証する。
手順
実験参加者は情報系大学の大学生9名(20歳‐24歳 男性6名 女性3名)である。ユーザをパーティションで区切られたコンピュータの席に座らせ、e‐ラーニングを起動した。6分間で一問一答問題を用いて漢検(商標)1級相当の漢字20問の読み方と意味をできる限り暗記させた。次に、先の6分間の学習の主観集中度遷移を、1分毎に目盛が書かれた学習集中度を縦軸、経過時間を横軸とした二次元座標上にフリーハンドで描かせた。さらに3分間で、暗記した20問の漢字の読み方と意味を問うテストに解答させた。これら10分間の一連の流れを1タームとし、合計6ターム繰り返した。はじめの1‐3ターム目では、顔向きによる集中度推定のみ行った。
30分目に当たる3ターム目の学習進捗を集中のピークと考え、次の4‐6ターム目では学習進捗による集中度推定を行った。顔向きと学習進捗両方の集中度推定を行った 4‐6ターム目について、ユーザの主観的な学習集中度とシステムにより推定された学習集中度の相関を調べた。VAS(Visual analog scale)法の分析手法に基づき、グラフから1分毎の集中度を抽出した。4‐6ターム目のグラフから抽出した18個の集中度のデータと、1分毎にシステムが推定したデータとの相関を調べた。
考察
ほとんどの被験者(ユーザ)に対して弱い相関が見られたことから、実施例における手法は集中度推定にある程度の有効性がある可能性がある。
[実験2]
概要
複数のエージェントで構成された集団における行動割合の変化が、ユーザの行動に与える影響を検証した。また、エージェント集団が複数の行動を提示する場合と単一の行動のみを提示する場合で、ユーザがその行動に対して、強制感を受けるかを検証した。
仮説
仮説1:エージェント集団の提示する行動割合の高さでユーザはその行動意欲を持つ。
仮説2:複数の行動を提示することにより、単一の行動を提示する場合に比べ強制感が少ない。
条件
被験者内要因として、学習中に提示されるエージェント集団における行動(学習、休憩)の割合に従って、14体のエージェントの内、学習するエージェントの数と休憩するエージェントの数の比(人数比)(1)0:14、(2)1:13、(3)4:10、(4)7:7、(5)10:4、(6)13:1、(7)14:0の7条件を設定した。
手順
実験参加者は情報系大学の大学生14名(20歳‐24歳男性11名 女性3名)である。被験者すなわちユーザをパーティションで区切られたコンピュータの前に座らせ、e‐ラーニングシステムを起動し、システムと共に提示されているエージェント集団を確認させた。このとき、エージェントがユーザと共に学習する学習者であることを説明した。続いて、実験者の指示でe‐ラーニングを用いて学習させた。まずユーザに対して、漢字検定(商標)1級相当の問題を10問ランダムに提示し、漢字の読みと意味を頭の中で考えた後で正答と照合するという作業を行わせた。このとき、間違えたり解らなかった問題には、読みと意味を確認させたのちチェックをつけさせた。10問全てに対してこの作業が終わった後、復習としてチェックがついた問題に再度回答させた。学習終了後、再度エージェント集団を確認させ、評価項目に回答させた。また、顔映像の撮影あらかじめユーザに許可を取り、コンピュータの内蔵カメラで記録した。
考察
エージェント集団における行動割合の変化はユーザに認識されているが、割合の変化を認識させるためには、ある程度以上の変化が必要であることがわかった。
次に学習意欲とエージェント集団の行動割合の関係について考察する。エージェント空間26において学習するエージェントが増えることで、ユーザの学習意欲が促進される可能性が示された。ただし、エージェント集団における割合の変化が大きい場合にのみ、学習意欲が促進される可能性が示された。また、 エージェント集団における休憩エージェントが増えることで、ユーザに休憩を促すことができる可能性が示された。
これらのことから、エージェント空間26において学習や休憩をするエージェント数の増減によりユーザの学習や休憩を促進できる可能性が示された。
このようにして、図5のステップS21での学習アニメーション所定が実行され得る。
上述の実施例では、ユーザ14の使用するコンピュータ16の画面にエージェント空間26を表示するようにしたが、エージェント空間26はプロジェクタで投射、表示することもできる。
図19に示す実施例では、コンピュータ16によって制御されるプロジェクタ72が、部屋12の天井74に取り付けられる。プロジェクタ72は、部屋12の壁76にエージェント空間26を表示する。
このエージェント空間26には複数のエージェント24が、たとえば3次元アニメーションによって表示される。エージェント空間26の複数エージェント24は、コンピュータ16の制御に従って、ユーザ14の行動を誘発する動作を表現するように表示される。そして、この実施例の行動誘発システム10においても、先の実施例と同様に、複数のエージェント24がアニメーションによって反復的かつ継続的に提示する先行行動によって、ユーザ14の行動変容を促す。
なお、もし部屋12の壁76に余白部分がなければ、エージェント空間26は、たとえばロールスクリーンやカーテンなどに投射されて表示されてもよい。
図20に示すように、上述のプロジェクタ72は、プロジェクタインタフェース(I/F)78を通してバス29に接続される。したがって、プロジェクタ72は、CPU28がメモリ30から読み出した映像データによって、エージェント空間26に3D映像としてアニメーションに映出する。
この実施例ではさらに、図20に示すように、センサインタフェース(I/F)80を通して種々のセンサ82が接続される。各種センサ82としては、いずれも図示しないが、たとえば部屋の明るさを直接検出できる明るさセンサ、窓や扉の開閉を検出できる開閉センサ、部屋12内での電気の使用状態を検出するスイッチなどが考えられる。
先に図6で説明したように、エージェント空間26のアニメーションに表示は、ユーザ14の居住する部屋12との一体感を演出するために、たとえば部屋12からの光がエージェント24が寝ているエージェント空間26に漏れるようにアニメーションを表示するようにしたり、図5のステップS29でエージェント空間26内に埃が舞うアニメーションにを表示することがあることを説明した。
この実施例では、CPU28は、内蔵カメラ38(デプスカメラ(図示せず)も併用できる)や内蔵マイク34、さらにはセンサ82などからの映像や音声さらには検知信号に基づいて、ユーザ14の部屋12内での行動(オプティカルフローなども利用して)、部屋12の環境の変化、部屋12内のオブジェクト(机や家具、家電品など)の増加や配置の変化、そして、コンピュータ16のRTCからの現在時刻などを検出する。
そして、部屋12内でオブジェクトが増加されたことを判断すると、CPU28は、エージェント空間26の入り口周辺にも散らかったオブジェクトがこぼれ、エージェント24もこれに迷惑な様子を示すアニメーションを表示する。
さらに、CPU28は、たとえば1週間のような一定期間ユーザ24が掃除をしたことを検出しなかったとき、エージェント空間26の入り口周辺に綿ぼこりなどが表示され始め、時間がたつと増えていき、エージェン24がこれに迷惑な様子を示すアニメーションを表示する。
CPU28は、ユーザ24が部屋12の窓を開けたことを検出しなかったとき、エージェント空間26の入り口周辺において空気中を飛ぶダストが流れ、エージェント24がこれに迷惑な様子を示すアニメーションを表示する。
図6と同様だが、就寝時間(24時‐7時)にユーザ14が部屋12でまだ電灯などを使っていることを検出したとき、CPU28は、エージェント空間26の入り口周辺に光が漏れ、エージェント24が寝苦しいような寝返りの様子や布団の音さらには寝苦しそうな声を発するアニメーションを表示する。
なお、ユーザ14や部屋12の状態を検知するために、ユーザ14の場所(人物認識)および行動認識を適用する。上述の窓や扉の開閉センサや部屋の明るさを検知する光センサの他、ベッドメイキングや布団の片付けを検知するためには、ユーザの場所とベッドや布団の場所(既知)を比較してユーザが布団にいるか検出し、さらにユーザ以外のオブジェクトが変動しているか(背景差分など)を検知する。上述の掃除をしたかどうかは、掃除機のオン/オフを電気的に、または内蔵マイク34からの入力音声に基づいて検出する。部屋12が片付いているかどうかは、部屋の床領域の散らかり具合を画像認識することによって検出できる。机の上の散らかり具合を画像認識することによって、机の上が片付いているかどうか判断できる。さらに、ユーザ14がテレビを見ているか、ゲームをしているかは、テレビのチャンネルチェックと、ユーザの顔向きチェックを屁羽陽することによって、判断できる。
図19に示すように、この実施例ではエージェント空間26に複数のエージェント24を表示することができるので、先の学習アニメーションの処理について説明したように、ユーザ14の次の行動を誘発するために、複数のエージェントがすべて同じ先行行動をするのではなく、複数のエージェントの行動割合を変化し、ユーザ14の選択肢を残しながら誘導することができる。たとえば、今はユーザ14がテレビを見てもよい時間だとして、ユーザ14にテレビを見るという行動を誘発したいとき、一緒に見るエージェントの数を60%とし、残りの40%のエージェントは部屋を片付けたり勉強したりする、という行動割合に従ったアニメーションをエージェント空間26に表示する。それによって、強制的ではなく、ユーザの次の行動を誘発することができる。ただし、このような「行動割合」は、以下に説明するようなユーザパラメータおよび/またはエージェントパラメータに応じて、CPU28が決定する。
この場合は、複数のエージェントはすべて同じ重みをもつものとして扱ったが、エージェント空間26内で共同生活をするエージェントの集団において、パラメータ(エージェントパラメータ)を設定するなどして、各エージェントに個性を設定することが考えられる。
このようなエージェントパラメータとしては、たとえば、特に親しい立場のエージェントを「親友」として設定し、そのエージェントと他エージェントの影響力の重みを変化させたり、あるいはエージェント集団の中に序列や親しさの度合い、生活パターン類似度のパラメータを個別に設定することによって、各エージェントの個性に従ってユーザ14に対する先行行動の確率を割り振ることも可能である。
詳しく説明すると、図19のような行動誘発システム10において、初期入力データとして、ユーザ14の生活スケジュール(生活リズム)、ユーザの生活行動履歴およびユーザのまじめさ(たとえば、5段階評価として)を入力し、それをメモリ30のデータ記憶領域30bの適宜の領域に記憶しておく。このうちたとえばユーザのまじめさは、ユーザの個性を示すユーザパラメータと考えられる。ユーザパラメータとしては、ユーザを特徴付ける他の任意のパラメータを設定することができる。
他方で、エージェント毎の親しさの度合いを示すパラメータ(0‐1)を設定する。ただし、バリエーションを設ける。さらに、エージェント毎のまじめさ(正確に生活スケジュールを刻むか。0‐1)を表わすパラメータを設ける。
エージェント空間26にたとえば9体のエージェントを表示するとしたら、まじめさ「1」のエージェントを5体、親しさを「0」、「0.2」、「0.4」、「0.6」、「1」として,まじめさ「0.5」のエージェント4体にそれぞれ、親しさを「0.2」、「0.5」、「0.8」、「1」とする。バリエーションの生成時には、親しさとまじめさに弱い負の相関を持たせることもできる。
これらの設定したパラメータは、上述の初期入力データと同様に、メモリ30のデータ記憶領域30bの適宜の記憶場所に記憶される。
エージェントに序列を設ける場合には、親しいエージェントをトップに持ってこないで、まじめなエージェントを持ってくることが考えられる。
そして、CPU28は、コンピュータ16のRTCでの現在時刻、たとえばオプティカルフロー計算によるユーザの行動状態、ユーザの行動継続状態と継続時間、カメラなどのセンサでの検出に基づくユーザの関心(動いていないけれどテレビを見ている、など)、現在時刻やこれまでのタスク(行動)完了に合わせて取るべき行動リストの決定、現在の実際のユーザの行動などのデータを取得する。
(シンタラクション)
たとえば、ユーザ14が取るべき行動リストのいずれかと、ユーザ14の現在の行動状態が違うとき、CPU28は、エージェント空間26にエージェントのアニメーションを表示して、先行行動を提示する。これに対して、取るべき行動リストのいずれかとユーザの現在の行動状態が同じであるとき、CPU28は、そのユーザ14の行動の継続時間に応じて、エージェント空間26に、エージェントにその行動への追従行動を提示させるアニメーションを表示する。ただし、継続時間が長くなれば、エージェント空間26内のエージェントをその追従行動から脱落させる。どのエージェントを脱落させるかの確立は、上記パラメータで計算する。
このように、この発明では、エージェント空間26の複数のエージェント24の先行行動によってユーザ14の行動を誘発する場合と、ユーザ24の行動に追従する追従行動をエージェント空間26の1または複数のエージェント24が取る場合の両方を含むので、図1や図19に示すシステム10は、親近アンビエントエージェントシステムと呼ぶことにする。
さらに、取るべき行動リストのいずれかへのユーザの行動遷移が確認できたとき、CPU28は、エージェント空間26の複数のエージェントたちの何割かに笑顔のアニメーションを表示する。このときの笑顔になる割合し、上記の親しさを示すパラメータに応じて変化させることが考えられる。
エージェント空間26において、親しいエージェント(パラメータが示す)が時々ユーザのほうを見る(親しさに応じて見る時間間隔を変更)アニメーションを表示することができる。
(序列に応じたやりとりの表示)
CPU28は、エージェント空間26において、上で説明した序列の高いエージェントが他のエージェントより早めに先行行動を示し、他のエージェントたちに視線を配るようなアニメーションを表示することができる。
(先行行動や追従行動の提示割合決定手法)
CPU28は、まず、メモリ30に初期入力データとして設定されている取るべき行動リストのいずれかを現在時刻に応じて決定するとともに、取るべき行動リストではなく取らなくてもいい行動リスト(寝ている、ぼーっとする、遊ぶ)(1つだけに決定しなくてよい)を取得する。
その後、CPU28は、取るべき行動をユーザのたとえばまじめさ(ユーザパラメータ)に応じてエージェントの行動割合を決定し、その行動割合を反映させて、エージェント空間26にアニメーションを表示する。
たとえば、ユーザ14のまじめさが「1」のとき、行動割合は50%程度とし、エージェント空間26の複数のエージェントの内、50%のエージェントのアニメーションを取るべき行動のアニメーションとし、残りの50%のエージェントには取らなくてもいい行動のアニメーションをを表示させる。ユーザのまじめさが「0.5」であれば、行動割合は70%程度とし30%のエージェントは取らなくてもいい行動を示すように、エージェント空間を表示する。まじめさが「0」のとき、行動割合は90%程度とし10%は取らなくてもいい行動を示すように、エージェント空間を表示する。
このような行動割合は、取るべき行動をユーザが継続して時間がたつと、どんどん下がるように設定する。CPU28は、まじめな傾向のエージェントにはそれでもなお次の先行行動を提示させ、ふまじめなエージェントには取らなくてもいい行動を提示させるように、エージェント空間26を表示する。
この中で、ユーザの状況に比較的寄り添うエージェントは親しさパラメータの高いものとする。たとえば、ユーザが取るべき行動を先駆けて行ったときは、エージェント空間26において、エージェントたちがその行動に対する追従行動をとるようなアニメーションを表示する。ただし、親しさパラメータの高いものから順に追従行動を生起させることにする。つまり、追従行動を開始するまでの時間差に親しさパラメータを反映させる。
なお、上述したように、エージェント空間26で提示する先行行動は、それに倣ってユーザの行動を誘導または誘発するという効果がある。これに対して、追従行動は、ユーザの行動を誘発するというよりは、追従されると人は自分の行動にある程度の安心を得るので、ユーザ14に、自分が先導して行動したという満足感、自信、安心感を持たせる上で有用である。
この実施例におけるパラメータ設定やそれに応じた行動割合の決め方などは、先の学習行動の場合のように複数エージェントをエージェント空間に表示する場合にもそのまま適用できることは容易に理解できよう。
なお、上述の実施例では、エージェント空間26は、ユーザ14が使用するコンピュータ16のディスプレイ18か、またはプロジェクタ72によって部屋12の壁76などに表示するものとして説明した。しかしながら、エージェント空間表示場所はこれらに限られるものではない。
たとえば、ユーザ14の部屋12に置かれたテレビ(図示せず)にエージェント空間26を表示することもできる。そのためには、CPU28は通信モジュール44を用いてテレビにアニメーション映像を送る必要がある。映像出力用のHDMI(登録商標)ポートがコンピュータ16にあればそれを使うこともできるし、USBからのデータを映像信号に変換する「USBマルチディスプレイアダプタ」などを使うこともできる。
さらに、ユーザ14の部屋12に置かれたテレビ(図示せず)に映像などのコンテンツの右半分を表示し、プロジェクタ72により左半分に位置を合わせて表示することで仮想空間内にテレビがめり込んだようなメディアを形成したり、図19の壁76にテレビの半分がエージェント空間26になるよう、ユーザの位置に応じた投影を行うことで、テレビや学習コンテンツモニタとしてエージェントと共有するコンテンツ提示メディアを構成する。これによって、ユーザが学習していないときに、エージェントが勉強を開始することを示すため、上記コンテンツ提示メディアの中にエージェント用コンテンツを現わすことができる。
上述の実施例で挙げた具体的な数値等は一例であり、特に限定を意味するものではない。