図1に示すこの発明の一実施例のコミュニケーション誘発システム10は、たとえば認知症患者のような軽度脳障害を持つ被験者またはユーザ12からのコミュニケーションを積極的に引き出すように、このユーザ12に働きかけるぬいぐるみ14Aおよび14Bを含む。このぬいぐるみ14Aおよび14Bが擬人的媒体である。擬人的媒体とは、人間のように発話できたり、あるいは人間のような動作ができたりする媒体のことであり、典型的にはぬいぐるみや、ヒューマノイドやコミュニケーションロボットなども、この擬人的媒体として十分機能できる。
この実施例のシステム10では、ユーザ12の主として顔を撮影するカメラ16を用いて、ユーザ12の視線の方向や位置をリアルタイムで検出し、その視線の方向や位置に応じてぬいぐるみ14Aおよび14Bの発話や動作を制御することによって、ユーザ12からのぬいぐるみ14Aおよび14Bに対するコミュニケーションを誘発する。なお、ぬいぐるみ14Aおよび14Bを区別なく説明する必要があるときには、参照番号「14」として表示することがあることに留意されたい。
ユーザ12の視線方向または位置は、後に詳しく説明するように、視線サーバ18がカメラ16からの顔画像データまたは信号を処理することによって、リアルタイムで検出または判定する。
図2は図1実施例を俯瞰した状態を図解する図解図であり、図3はそれぞれを側面から見た図解図である。これらの図からわかるように、患者または被験者ないしユーザ12は部屋のような空間10Aの一方に椅子に腰掛けて存在していて、その前方の、この空間10A内の他方に、2体のぬいぐるみ14Aおよび14Bが互いの間に適宜の間隔を隔てて、一直線上に配置されている。ただし、ぬいぐるみ14Aおよび14Bの配置は、両者の間に間隔がある状態なら、直線上の配置でなくても問題ない。
そして、カメラ16は空間10Aの一隅からユーザ12の顔前面を撮影できるように設置されている。
ユーザ12の視線12Aが、ぬいぐるみ14A(14B)に正対する方向の線vlineに対してずれている角度が旋回角αであり、視線12Aが水平線hlineに対してずれている角度が俯仰角βとして図1の視線サーバ18によってリアルタイムに計算される。そして、各ぬいぐるみ14Aおよび14Bがその検出角度αおよびβからその視線12Aの方向または位置を特定し、その視線12Aの方向または位置に応じて、異なる動作および/または発話をすることによって、ユーザ12からコミュニケーションを誘発しようとするのである。
図4にはぬいぐるみ14が図示される。このぬいぐるみ14は、頭部20とそれを支える胴体22とを含む。胴体22の上部に左右の左腕24Lおよび右腕24Rが設けられ、頭部20には、前面に口26が配置され、その口26の上方には眼球28が設けられる。頭部20の上部側面は耳30が取り付けられている。
胴部20は胴体22によって、旋回・俯仰可能に支持され、また、眼球28も可動的に保持されている。口26にはスピーカ48(図5)が内蔵されていて、耳30にはマイク50(図5)が内蔵されている。なお、マイク50を両方の耳30にそれぞれ内蔵すれば、ステレオマイクとして機能し、それによって、そのステレオマイクに入力された音声の位置を必要に応じて特定することができる。
図5に示すように、実施例のぬいぐるみ14にはコンピュータ32が内蔵されていて、このコンピュータ32が、通信路の一例であるバス34を通して、図1に示す視線サーバ18に結合される。したがって、コンピュータ32は、視線サーバ18が特定または検出したユーザ12の視線方向や位置を示すデータをこのバス34を通して刻々受け取ることができる。ただし、通信路はバス34であっても、その他の形式の通信路であっても、さらには無線であっても、有線であってもよい。
コンピュータ32には、バス34を介してメモリ36が結合される。このメモリ36には図示しないROMやRAMが組み込まれていて、ROMには主として、後述のフローチャート(図20−21,23)で表現されるプログラムが予め記憶されているとともに、ぬいぐるみ14の各フェーズ(内部状態)の動作と発話(音声)とを対応的に設定している、動き-音声反応対応テーブル36Aが予め設定されている。この動き-音声反応対応テーブル36Aは、後述するぬいぐるみ14の内部状態「0」‐「4」のそれぞれにおいてぬいぐるみ14が発話する音声と実行できる動作とを対応させて設定したものである。RAMは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用され得る。
モータ制御ボード38は、たとえばDSP(Digital Signal Processor)で構成され、図2に示すぬいぐるみ14の各腕や頭部の各軸モータを制御する。すなわち、モータ制御ボード38は、コンピュータ32からの制御データを受け、右腕24R(図4)を前後や左右に動かすことができるように、X,YおよびZ軸のそれぞれの角度を制御する3つのモータ(図5ではまとめて、「右腕モータ」として示す。)40Rの回転角度を調節する。また、モータ制御ボード38は、左腕24Lの3つのモータ(図5ではまとめて、「左腕モータ」として示す。)40Lの回転角度を調節する。モータ制御ボード38は、また、頭部20の旋回角や俯仰角を制御する3のモータ(図5ではまとめて、「頭部モータ」として示す。)42の回転角度を調節する。モータ制御ボード38は、また、眼球28を動かす眼球モータ44も制御する。
なお、上述のモータは、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、直流モータであってよい。
スピーカ48には音声入力/出力ボード46を介して、コンピュータ32から、合成音声データが与えられ、それに応じて、スピーカ48からはそのデータに従った音声または声が出力される。そして、マイク50からの音声入力が、音声入力/出力ボード46を介して、コンピュータ32に取り込まれる。
センサ入力/出力ボード52も、同様に、DSPで構成され、各センサやカメラからの信号を取り込んでコンピュータ32に与えるが、実施例ではあまり関係がないので、ここでは、そのセンサなどの詳細な説明は省略する。
なお、図1に示す実施例において、ユーザ12の前方すなわちぬいぐるみ14Aおよび14Bの後方は、図6に示すように区画されている。ユーザ12の視線位置が区画A‐Iのいずれにあるかによって、ぬいぐるみ14Aおよび14Bの発話や動作を異ならせ、それによってユーザ12の積極的な関与つまりコミュニケーションを誘発しようとするものである。
実施例では、ぬいぐるみ14Aおよび14Bは、図6に示す区画XおよびYに固定的に配置されているものとする。そして、そのぬいぐるみ14Aおよび14Bすなわち区画XおよびYの上方に3つの区画A,BおよびCが設定され、区画Xを挟んで左右に区画DおよびEが設定され、その区画Eとともに区画Yを挟むように区画Fが設定されている。区画XおよびYの下方に3つの区画G,HおよびIが設定される。
ただし、区画A‐Iおよび区画XおよびY以外にユーザ12の視線が位置する場合には、「範囲外」となる。
また、これらの区画A‐IやXおよびYのそれぞれに包含される空間座標は空間10A(図2,3)に固有に決まっているので、図5に示すメモリ36の所定の記憶場所に、これら全ての区画の座標データが予め記憶されている。
なお、実施例では、ぬいぐるみ14Aおよび14Bはユーザ12との間の距離、すなわち空間座標のZ軸位置は一定なので、各区画の座標データとしては、X軸とY軸だけでよい。たとえば、区画Aについてみると、この区画Aは、(xa1−xa2,ya1−ya2)のように、X軸Y軸とも範囲を有して設定される。ここで、xa1は、区画AのX軸の開始(左端)座標で、xa2は、区画AのX軸の終了(右端)座標を示す。同様に、ya1は、区画AのY軸の開始(下端)座標で、ya2は、区画AのY軸の終了(上端)座標を示す。残りの各区画B−I,X,Yも同様に座標範囲のデータとして設定される。
また、この実施例では、ぬいぐるみ14Aおよび14Bが自律的に自己の動作や発話を制御する図5のような制御回路を持つものとして説明するが、それぞれのぬいぐるみ14Aおよび14Bを一括して、または個別的に制御するための1台またはそれ以上のコンピュータをぬいぐるみ14Aおよび14Bとは別に設けるようにしてもよい。
このような実施例において、まず、ユーザ12の視線を推定する方法について説明する。この実施例では、以下に説明するように、ユーザ12の視線方向を推定または検出するために1つのカメラ(単眼カメラ)を用いるユニークな方法を採用している。しかしながら、ユーザ12の視線12A(図2,図3)を検出する方法としては、2以上のカメラを利用する従来からの一般的な方法が採用されてもよいことは、勿論である。つまり、この発明では、ユーザ12の視線を推定したり検出したりする必要はあるが、その具体的な方法は重要な意味を持たず、どのような公知の方法が用いられてもよい。
図1に示すように、ユーザ12の前方に、たとえばCCD(Charge Coupled Device)またはCMOS(Complementary Metal-Oxide Semiconductor)センサのような固体撮像素子を含むカメラ16が設置され、このカメラ16からの顔画像信号が視線サーバ18に取り込まれ、視線サーバ18が画像処理することによって、視線12Aの角度αおよびβを推定する。
図7に示すように、カメラ16により撮影された画像は、視線サーバ18に附属して設けたディスプレイ54(図1では図示せず)の撮影画像表示領域56にリアルタイムに動画として表示される。特に限定されないが、たとえば、撮影画像表示領域56上に、視線方向を示す指標として、眉間から視線方向に延びる線分を表示してもよい。
視線サーバ18は、一般的なコンピュータであり、特に変わったハードウェア構成ではないので、ハードウェア自体は説明しないが、視線方向や視線位置の推定は、いかに説明するソフトウェアにより実現される。
視線サーバ18では、特徴点の追跡処理の安定性を確保するため、同一特徴点に関して異なるフレームにおける複数の観測テクスチャを保持している。初期校正過程では、これらの特徴点と虹彩中心の関係から顔特徴点と眼球中心の相対関係を求める。視線推定過程では、校正過程で得られた関係を元に現フレームで得られている特徴点群から眼球中心位置を推定し、その位置と虹彩中心位置から視線方向を決定する。
視線方向の推定処理の動作の前提として、まず、たとえば6分割矩形フィルタを利用して、顔検出処理が実行される。
視線サーバ18では、特に限定されないが、たとえば、顔を連続撮影したビデオ画像を処理するにあたり、横が顔幅、縦がその半分程度の大きさの矩形フィルタで画面を走査する。矩形は、たとえば、3×2に6分割されていて、各分割領域の平均明るさが計算され、それらの相対的な明暗関係がある条件を満たすとき、その矩形の中心を眉間候補とする。
連続した画素が眉間候補となるときは、それを取囲む枠の中心候補のみを眉間候補として残す。残った眉間候補を標準パターンと比較してテンプレートマッチング等を行うことで、上述した手続きで得られた眉間候補のうちから、偽の眉間候補を捨て、真の眉間を抽出する。以下、さらに詳しく説明する。
図8は、眉間候補領域を検出するためのフィルタを説明するための概念図であり、図8(a)は、上述した3×2に6分割された矩形フィルタ(以下、「6分割矩形フィルタ」と呼ぶ)を示す。
6分割矩形フィルタは、(1) 鼻筋は両目領域よりも明るい、(2) 目領域は頬部よりも暗い、という顔の特徴を抽出し、顔の眉間位置を求めるフィルタである。たとえば、1点(x、y)を中心として、横i画素、縦j画素(i,j:自然数)の矩形の枠を設ける。そして、図8(a)のように、この矩形の枠を、横に3等分、縦に2等分して、6個のブロックS1〜S6に分割する。
このような6分割矩形フィルタを顔画像の両目領域および頬部に当てはめてみると、図8(b)のようになる。
ただし、図8の6分割フィルタは書く矩形領域が等分されたものであったが、このフィルタは図9に示すように変形されてもよい。
鼻筋の部分が目の領域よりも通常は狭いことを考慮すると、ブロックS2およびS5の横幅w2は、ブロックS1,S3,S4およびS6の横幅w1よりも狭い方がより望ましい。好ましくは、幅w2は幅w1の半分とすることができる。図9は、このような場合の6分割矩形フィルタの構成を示す。また、ブロックS1、S2およびS3の縦幅h1と、ブロックS4、S5およびS6の縦幅h2とは、必ずしも同一である必要もない。
図9に示す6分割矩形フィルタにおいて、それぞれのブロックSi(1≦i≦6)について、画素の輝度の平均値「バーSi」(Siに上付きの“−”をつける)を求める。
ブロックS1に1つの目と眉が存在し、ブロックS3に他の目と眉が存在するものとすると、以下の関係式(1)および(2)が成り立つ。
そこで、これらの関係を満たす点を眉間候補(顔候補)として抽出する。
矩形枠内の画素の総和を求める処理には、公知の文献(P. Viola and M. Jones, “ Rapid Object Detection using a Boosted Cascade of Simple Features,” Proc. Of IEEE Conf. CVPR, 1, pp.511-518, 2001)において開示されている、インテグラルイメージ(Integral Image)を利用した計算の高速化手法を取り入れることができる。インテグラルイメージを利用することでフィルタの大きさに依らず高速に実行することができる。多重解像度画像に本手法を適用することにより、画像上の顔の大きさが変化した場合にも顔候補の抽出が可能となる。
このようにして得られた眉間候補(顔候補)に対しては、両目の標準パターンとのテンプレートマッチングにより、真の眉間位置(真の顔領域)を特定することができる。
なお、得られた顔候補に対して、サポートベクトルマシン(SVM)による顔モデルによる検証処理を適用し顔領域を決定することもできる。髪型の違いや髭の有無、表情変化による認識率の低下を避けるため、たとえば、図10に示すように、眉間を中心とした画像領域を利用してSVMによるモデル化を行うことができる。なお、このようなSVMによる真の顔領域の決定については、文献:S. Kawato, N. Tetsutani and K. Hosaka: “Scale-adaptive face detection and tracking in real time with ssr fi1ters and support vector machine”, IEICE Trans.on Info. and Sys., E88−D, 12, pp.2857−2863(2005)に開示されている。6分割矩形フィルタによる高速候補抽出とSVMによる処理とを組み合わせることで実時間の顔検出が可能である。
続いて、目、鼻や虹彩中心の位置を、公知の文献、たとえば『川戸、内海、安部:「4つの参照点と3枚のキャリブレーション画像に基づく単眼カメラからの視線推定」画像の認識・理解シンポジウム(MIRU2005),pp.1337−1342(2005)』あるいは、『川戸慎二郎、鉄谷信二:鼻位置の検出とリアルタイム追跡:信学技報IE2002−263、pp.25−29(2003)』などの手法を用いて抽出する。
両目の位置については、前節の顔領域検出で眉間のパターンを探索しているため、眉間の両側の暗い領域を再探索することにより、大まかな両目の位置を推定することができる。しかし、視線方向の推定のためには、虹彩中心をより正確に抽出する必要がある。ここでは、上で求まった目の周辺領域に対して、ラプラシアンにより虹彩のエッジ候補を抽出し、円のハフ変換を適用することにより、虹彩および虹彩の中心の投影位置を検出する。
鼻の位置は、鼻先が凸曲面であるため周囲に対し明るい点として観測されやすいことと、両目の位置から鼻の存在範囲が限定できることを利用して抽出する。また、両目、鼻の位置を用いて、大体の顔の向きも推定できる。
図11は顔検出結果の例を示す図である。検出された顔において、虹彩中心や鼻先や口なども検出されている。たとえば、特徴点としては、鼻先や、左右の目の目尻や目頭、口の両端、鼻腔中心などを用いることができる。
視線の推定においては、視線方向は眼球中心と虹彩中心を結ぶ3次元直線として与えられるものとする。
図12は視線方向を決定するためのモデルを説明する概念図である。画像上での眼球半径をr、画像上での眼球中心と虹彩中心との距離をdとすると、視線方向とカメラ光軸とのなす角θは次式(3)で表される。
式(3)により、視線方向を推定するためには、画像上での眼球半径と眼球中心・虹彩中心の投影位置が必要となる。ここで、虹彩中心の投影位置については、上述したとおり、ハフ変換を用いた手法により求めることができる。画像上での眼球直径rは、解剖学的なモデル(標準的な人の眼球直径)を用いてもよいし、別途キャリブレーションにより求めてもよい。
図13は、図12に示した状態からユーザがカメラを注視する状態に移行した後の虹彩中心、眼球中心および投影点の関係を示す概念図である。
眼球中心の投影位置については、一般には、画像から直接観測することはできない。しかし、ユーザ12がカメラ16を注視した場合について考えると、図13に示すとおり、カメラ、虹彩中心、眼球中心の3点が1直線上に並ぶため、画像では虹彩中心と眼球中心は同一点に投影されることがわかる。
そこで、この実施例での視線推定では、ユーザがカメラを注視しながら、顔の姿勢を変化させている画像フレーム列を撮影し、これらの画像列から虹彩位置と顔特徴点を抽出、追跡することにより、眼球中心と顔特徴点間の相対幾何関係を推定する。
後により詳しく説明するように、この実施例の視線方向の推定では、眼球中心と顔特徴点間の相対関係の推定処理と眼球中心の投影位置推定とを行なう。
視線方向の推定のための初期設定として、視線サーバ18は、図14に示すフローチャートで表現されるキャリブレーションを実行する。
まず、キャリブレーション用の画像列として、ユーザがカメラを注視しながら、顔の姿勢を変化させている画像フレーム列を撮影する(ステップS102)。図15は、このようにしてキャリブレーションにおいて撮影された4枚の画像フレームを示す。
ここでは、より一般に、N(N≧2)枚の画像列が得られたとする。各画像フレームを、フレームI1,…INとする。
次に、得られた各画像フレーム列に対して、上述したような方法によって顔検出処理を行い(ステップS104)、続いて、目や鼻の検出処理を行なう(ステップS106)。
さらに、視線サーバ18は、特徴点の抽出、追跡を行う(ステップS108)。なお、特徴点の抽出方法としては、上述したような方法の他に、たとえば、文献:J. Shi and C. Tomasi: “Good features to track”,Proc. CVPR94, pp. 593−600(1994)で提案された手法を用いることもできる。
ここで、各画像フレームIi(i=1,…,N)においてM(M≧4)点の特徴点pj(j=1,…,M)が検出・追跡できたとする。画像フレームIiにおける特徴点pjの2次元観測位置をxj (i)(太字)=[xj (i),yj (i)]t(i=1,…,N,j=1,…,M)とし、両目の虹彩中心の2次元観測位置をそれぞれxr (i)(太字)=[xr (i),yr (i)]t,xl (i)(太字)=[xl (i),yl (i)]t(i=1,…,N)とする。ここで、行列Wを以下のように定義する。
因子分解法により、特徴点の各フレームでの2次元観測位置を縦に並べた行列W(計測行列)は以下のように分解できる。
ここで、行列M(「撮影姿勢行列)と呼ぶ)にはカメラの姿勢に関する情報のみが、行列S(「相対位置関係行列」と呼ぶ)には観測対象物の形状に関する情報のみが含まれており、顔特徴点と眼球中心との3次元的な位置の相対関係は行列Sとして求まる(ステップS110)。すなわち、正射影を仮定すると、行列Mの各要素が画像フレームでのカメラの姿勢を表す単位ベクトルであって、それぞれの大きさが1であり相互には直交するとの拘束条件のもとで、行列Wは、特異値分解により一義的に行列Mと行列Sの積に分解できることが知られている。なお、このような計測行列Wを、因子分解により、カメラの運動の情報を表す行列と対象物の形状情報を表す行列へ分解する点については、文献:金出,ポールマン,森田:因子分解法による物体形状とカメラ運動の復元”,電子通信学会論文誌D−II,J76‐D−II,8,pp.1497−1505(1993)に開示がある。
図16は、リアルタイムの視線方向の推定処理のフローチャートを示す。
次に、以上で得られた結果を用いて、視線方向を推定する手順について説明する。
まず、カメラ16から画像フレームを取得すると(ステップS200)、キャリブレーション時と同様にして、顔の検出および目鼻の検出が行なわれ(ステップS202)、取得された画像フレーム中の特徴点が抽出される(ステップS204)。
画像フレームIkが得られたとする。ここで、眼球中心以外の特徴点のうちm点pj(j=j1,…,jm)が、それぞれ、xj (k)(太字)=[xj (k),yj (k)]tに観測されたとする。このとき、観測された特徴点について、上述したように特徴点近傍のテンプレートを用いたテンプレートマッチングを実施することで、キャリブレーション時に特定された特徴点と現画像フレーム中で観測された特徴点との対応付けが行なわれて、現画像フレーム中の特徴点が特定される(ステップS206)。
なお、上述のとおり、特徴点を特定するためのテンプレートは、キャリブレーションの時のものに限定されず、たとえば、最近の画像フレームの所定枚数について検出された特徴点の近傍の所定の大きさの領域内の画像を所定個数だけ保持しておき、これら所定枚数のテンプレートについてマッチングをした結果、もっとも一致度の高い特徴点に特定することとしてもよい。
顔特徴点pjの2次元観測位置xj (k)(太字)=[xj (k),yj (k)]tとキャリブレーションより求まった3次元位置sj(太字)=[Xj,Yj,Zj]t(j=1,…,M)の間には、M個の特徴点のうち観測されたm個の特徴点について注目すると、次式の関係が得られる。
ただし、行列P(k)は2×3の行列である。右辺の第2項の行列S(k)は行列Sのうち、観測された特徴点に対応する要素のみからなる部分行列である。上述の通り、カメラと顔は十分に離れているとし正射影を仮定している。ここで、4点以上の特徴点が観測されれば、行列P(k)は以下のように計算できる(ステップS208)。
画像フレームIkにおける眼球中心の投影位置xr (i)(太字),xl (i)(太字)は、行列P(k)を用いて以下のように計算できる(ステップS210)。
したがって、画像フレームIkにおいて特徴点として抽出した虹彩中心の投影位置とこの眼球中心の投影位置を用いると、視線の推定を行なうことができる(ステップS212)。
なお、行列PをQR分解により分解することで、顔の姿勢Rが、以下のように計算できる。
ただしr1、r2はそれぞれ1×3のベクトルである。このような顔の姿勢Rの検出については、文献:L.Quan: “Self-calibration of an affine camera from multiple views”,Int’l Journal of Computer Vision, 19, pp. 93−105(1996)に開示がある。
ユーザ等の指示により追跡が終了していると判断されれば(ステップS214)、処理は終了し、終了が指示されていなければ、処理はステップS202に復帰する。
以上説明した視線方向の推定装置の有効性を確認するため、実画像を用いた実験を行った結果について以下に説明する。
カメラはElmo社製PTC−400Cを用い、被験者から約150[cm]の位置に設置した。
まず、50フレームの画像列を用いて、眼球中心と顔特徴点のキャリブレーションを行った。キャリブレーション用の画像フレーム列と抽出した特徴点の例は、図15に示したとおりである。
キャリブレーション用画像フレーム列の撮影に要した時間は約3秒であった。(+印は抽出された虹彩中心(眼球中心))、×印は追跡した顔特徴点)。
次に、キャリブレーションにより求まった顔モデル(行列S)を用いて、視線推定を行った。ここで、被験者はそれぞれ右上、上、左下の方向を注視しながら、顔の位置・向きを変化させた。
図17〜図19は、視線推定結果を示す。図17は、右上方注視の状態であり、図18は、上方注視の状態であり、図19は、左下方向注視の状態である。ここで、視線方向は両目それぞれで計算された視線方向の平均値としている。結果より、顔の位置や向きの変化とは関係なく、視線方向が推定できた。
以上説明したとおり、この実施例の視線方向の推定方法では、単眼カメラの観測に基づいて顔特徴点を検出し、追跡することにより視線方向を推定する。つまり、まずキャリブレーションとして視線がカメラ方向を向いたまま顔の向きのみが異なる画像列から得られる虹彩位置と顔特徴点を利用することで、眼球中心と顔特徴点の関係をモデル化し(行列Sを特定し)、その後、その関係に基づいて推定された入力画像中の眼球中心位置と虹彩位置の関係から視線方向の角度α、βを決定する。
視線サーバ18が視線方向の角度α、βを検出した後、ぬいぐるみ14のコンピュータ32は図20−21に示すフローチャートを実行して、ぬいぐるみ14の発話や動作を制御する。ただし、この図20‐21に示すフローチャートは、視線サーバ18からの視線角度データが入力される都度、すなわちフレーム毎に繰り返し実行される。
図20の最初のステップS1で、このようにして視線サーバ18が推定した視線角度αおよびβのデータが、ぬいぐるみ14のバス34(図5)を通してコンピュータ32に与えられる。
コンピュータ32では、次のステップS3で、その角度データから視線12A(図2,3)の空間10Aにおける空間座標(x,y,z)を計算する。
一方、ぬいぐるみ14Aおよび14Bはそれぞれ、図6に示す区画XおよびYに固定的に配置されている。したがって、このぬいぐるみ14Aおよび14Bの存在する空間10A内の座標は既に計算されて、たとえばメモリ36(図5)に記憶されている。
そこで、次のステップS5で、コンピュータ32は、ステップS3で計算した視線の空間座標とメモリ36内に蓄積されている各ぬいぐるみの座標とを比較し、ユーザ12から見える範囲にぬいぐるみ14Aおよび/または14Bが存在するかどうか、つまり、そのときユーザ12にぬいぐるみ14Aおよび/または14Bが見えているかどうかを判断する。
視線の座標が図6に外枠として示す「範囲外」の領域に含まれる座標に相当する場合には、このステップS5で“NO”が判断され、次のステップS7に進む。ただし、ステップS5で“YES”なら、つまり、そのときユーザ12はぬいぐるみ14A,14Bが見えているなら、ステップS9に進む。
ステップS7で、コンピュータ32は、ぬいぐるみの内部状態を「0」に設定する。ただし、この「内部状態0」というのは「何もしない」ということであり、コンピュータ32は図5に示すモータ制御ボード38や音声入出力ボード46に何も制御データを与えない。
ステップS5で“YES”となってステップS9に進んだとき、コンピュータ32は、視線位置の座標(x,y,z)データが、先に説明した図6の各区画A‐CおよびG‐Iのそれぞれの範囲座標データのいずれかに該当するかどうか判断する。ただし、ぬいぐるみ14Aについては、さらに、区画Fに該当するかどうか、また、ぬいぐるみ14Bに対しては区画Eに該当するかどうかを、判断する。各ぬいぐるみ14Aおよび14Bにとって、区画A‐CおよびG‐Iはかなり離れたところであり、ぬいぐるみ14Aにとっての区画F、ぬいぐるみ14Bにとっての区画Eも同様に離れた場所であると認識できる。このように、ユーザ12の視線位置がぬいぐるみ14A、14Bから離れた場所にあるときには、ぬいぐるみ14Aおよび14Bに「共同注視」という動作を行なわせる。
したがって、このステップS9で“YES”が判断されたときには、次のステップS11で、コンピュータ32は、ぬいぐるみ14Aおよび14Bを、共同注視のモード、つまり内部状態「1」に設定する。共同注視とは、ユーザ12のコミュニケーションを幾分消極的に誘発する行為で、このモードでは、コンピュータ32は、ユーザ12の視線12A(図2,3)の方向を追うように、ぬいぐるみ14Aおよび/または14Bの頭部20(図4)および必要なら眼球28を動かすように、モータ制御ボード38に制御データを与える。このときの制御データは、メモリ36の動き-音声反応対応テーブル36Aに予めこのモード(内部状態1)のために設定されているものを読み出して、モータ制御ボード38に与える。そして、モータ制御ボード38から頭部モータ42および必要に応じて眼球モータ44に制御信号を与える。
なお、この実施例では、内部状態1のモードではぬいぐるみ14Aおよび14Bからは、発話するようには設定されていない。したがって、このときぬいぐるみ14Aおよび14Bのいずれも、ユーザ12に対する呼びかけのような音声を出すことはない。しかしながら、「共同注視」によってユーザ12の視線を追うような仕草をぬいぐるみ14A,14Bがするので、ユーザの視線がぬいぐるみに向かっていなくても、そのようなぬいぐるみの動きに気づき、ぬいぐるみに関心を持ち始め、そこからコミュニケーションが引き出される可能性がある。
ステップS9で“NO”と判断したとき、すなわち、ユーザ12の視線がぬいぐるみ14Aおよび/または14Bの位置からそんなに離れていないと判断したとき、コンピュータ32は、次のステップS13で、ユーザ12の視線12Aは、ぬいぐるみ14Aおよび/または14Bの隣の区画に向けられているかどうか判断する。隣の区画とは、ぬいぐるみ14Aについては区画DまたはEであり、ぬいぐるみ14Bについては区画EまたはFである。したがって、コンピュータ32は、ステップS13で、視線位置の座標(x,y,z)データが、区画DまたはE、もしくはEまたはFのそれぞれの範囲座標データのいずれかに該当するかどうか判断する。
このステップS13で“YES”が判断されるということは、ユーザ12の視線位置がぬいぐるみ14Aおよび/または14Bに隣接する区画に向けられていることを意味するので、コンピュータ32は、ユーザ12からコミュニケーションを誘発するように積極的に働きかけるように、各ぬいぐるみを制御する。
具体的には、コンピュータ32は、ぬいぐるみ14Aおよび/または14Bの内部状態を「2」に設定する。このモードでは、コンピュータ32は、メモリ36から読み出した当該モード用の制御コマンドに従って、ユーザの視線のある位置(区画)に近い方の腕を動かしたりする動作を行わせる。
たとえば、視線位置が区画Dであるときには、ぬいぐるみ14Aの右腕24Rが動くように、コンピュータ32は、ぬいぐるみ14Aのモータ制御ボード38から右腕モータ40Rに制御信号を与える。視線位置が区画Fであるときには、ぬいぐるみ14Bの左腕24Lが動くように、コンピュータ32はぬいぐるみ14Bのモータ制御ボード38から左腕モータ40Lに制御信号を与える。視線位置が区画Eであるなら、そのときコンピュータ32は、ぬいぐるみ14Aのモータ制御ボード38に制御コマンドを出力し、それによってぬいぐるみ14Aの左腕モータ40Lに制御信号を与えるとともに、ぬいぐるみ14Aのモータ制御ボード38にも制御コマンドを出力してぬいぐるみ14Bの右腕モータ40Rに制御信号を与える。したがって、この場合には、ぬいぐるみ14Aの左腕24Lおよびぬいぐるみ14Bの右腕24Rがともに動かされる。
この内部状態2のモードでは、さらに、ぬいぐるみ14Aおよび/または14Bからユーザ12に対して発話による呼びかけを行う。たとえば、コンピュータ32は、動き-音声反応対応テーブル36A(図5)から、「ねえねえ、○○さん」とか「おーい」とかの音声データを読出し、その音声データを音声入出力ボード46に与える。そうすると、この音声入出力ボードからスピーカ48に音声信号が与えられ、該当のぬいぐるみ14Aおよび/または14Bのスピーカ48からユーザ12に対して呼びかけが行われる。
このように、この実施例の内部状態2のモードでは、ユーザの視線に近いほうのぬいぐるみの腕が動かされるだけでなく、ぬいぐるみから呼びかけがあるので、ユーザ12は、先の内部状態1のときよりもさらに強く、ぬいぐるみの動きや声に気づき、ぬいぐるみに強く関心を持つ。したがって、ユーザ12からのコミュニケーションがさらに強く引き出される可能性がある。
先のステップS13で“NO”が判断されたとき、つまり、ユーザ12の視線12Aの位置がぬいぐるみ14Aおよび14Bの周辺の区画にはなくかつそれらに隣接する区画にもないときには、つまり、その視線12Aは区画XおよびYのどちらかに向けられていることを意味する。すなわち、ステップS9で“NO”、ステップS13で“NO”のときは、ユーザの視線は、ぬいぐるみ14A6および14Bのどちらかに向けられている。したがって、次のステップS17では、視線位置は区画XおよびYつまり、ぬいぐるみ14Aおよび14Bのいずれにあるかを判断する。ここでは、ぬいぐるみ14Aに対しては区画Yにあるか、ぬいぐるみ14Bに対しては区画Xにあるか、という判断をしている。
ステップS17で“NO”が判断されたとき、つまり、ぬいぐるみ14Aに対して視線位置が区画Xであるか、またはぬいぐるみ14Bに対して視線位置が区画Yであるとき、図21に示すステップS19に進み、ユーザ12によるコミュニケーションを確認するとともに、ユーザ12とのコミュニケーションを実行する。
ステップS19では、まず、該当するぬいぐるみ14Aおよび14Bのどちらかのコンピュータ32は、該当するぬいぐるみの内部状態を「3‐1」に設定する。そのため、このステップS19では、コンピュータ32は、メモリ36の動き-音声反応対応テーブル36Aから内部状態3−1のための制御コマンドを読み出して、該当のぬいぐるみの動作や発話を制御する。
具体的には、コンピュータ32はまず、テーブル36Aから読み出した音声メッセージデータを音声入出力ボード46に設定することによって、このぬいぐるみ14Aまたは14Bのスピーカ48から「どうしたの」とか「お話したい?」などを発話し、ユーザ12に呼びかけまたは問いかけを行なう。と同時に、コンピュータ32は、テーブル36Aから読み出した動作制御データをモータ制御ボード38に設定することによって、たとえば頭部モータ42を制御して、ぬいぐるみ14Aまたは14Bの首をかしげる動作を行なわせる。このときの動作は、ユーザ12のコミュニケーションを確認する動作であり、先の発話と協働して、ユーザ12に対して、ユーザからコミュニケーションするかどうかの確認の機能を果たす。
そして、次のステップS21で、まず、該当するぬいぐるみ14Aおよび14Bのどちらかのコンピュータ32は、該当するぬいぐるみの内部状態を「3‐2」に設定する。そのため、このステップS21では、コンピュータ32は、メモリ36の動き-音声反応対応テーブル36Aから内部状態3−2のための制御コマンドを読み出して、該当のぬいぐるみの動作や発話を制御する。
具体的には、コンピュータ32はまず、テーブル36Aから読み出した動作制御データをモータ制御ボード38に設定することによって、たとえば頭部モータ42や右腕モータ40Rもしくは左腕モータ40Lを制御して、該当のぬいぐるみ14Aまたは14Bにうなずく動作や、右腕24Rまたは左腕24Lを前に出して振るなどの動作を行なわせる。このときの動作は、ユーザ12とのコミュニケーションを開始する動作である。それとともに、テーブル36Aから読み出した音声メッセージデータを音声入出力ボード46に設定することによって、このぬいぐるみ14Aまたは14Bのスピーカ48から「うんうん」などの呼びかけ音声を発話し、ユーザ12に呼びかけを行なう。このように、内部状態3‐2のときのぬいぐるみ14Aまたは14Bの動作や発話によって、ユーザ12とのコミュニケーションを開始することができる。
つまり、内部状態3‐1でユーザに対してコミュニケーションを開始させる働きかけを行ない、内部状態3‐2で実際にコミュニケーションを実行することができる。
なお、ステップS17での“YES”を判断するときには、ユーザ12の視線は反対側のぬいぐるみに向けられていることを意味し、この場合には、該当するぬいぐるみ14Aまたは14Bのコンピュータ32は、該当するぬいぐるみの内部状態を「4」に設定する。具体的には、コンピュータ32は、動き-音声反応対応テーブル36Aから読み出した動作制御データをモータ制御ボード38に設定することによって、たとえば右腕モータ40Rまたは左腕モータ40Lを制御して、反対側のぬいぐるみ14Bまたは14Aに近い方の腕を動かす動作を行なわせる。このときの動作は、ユーザ12とのコミュニケーションを実行しているぬいぐるみ14Aまたは14Bとの連動した動作であり、そうさせることによってコミュニケーションをさらに継続させる効果が期待できる。
図22はこの発明の他の実施例に従った制御回路の一例を示すブロック図で、先の実施例の図5に対応するものである。
この実施例は、テレビ電話機60を設け、それをコンピュータ32によって制御データきるようにした点を除いて、図5と同じである。そして、TV電話機60は、ユーザ12の近傍に配置され、ユーザ12の全身または部分(たとえば顔など)が撮影可能なカメラ(図示せず)を有する。TV電話機60はよく知られているように、そのようなカメラで撮影した動画をたとえば光回線のような電話回線62を通して、相手方の同様のTV電話機に送信するとともに、相手方からの動画をディスプレイ(図示せず)に表示できるようにされている。
この実施例において、コンピュータ32がTV電話機60の動作を制御できる。つまり、図23に示すように、ステップS21でぬいぐるみ14Aまたは14Bの動作モードを3‐2に設定してユーザ12とのコミュニケーションを開始した後、ステップS25でその状態が一定時間、たとえば3分間継続したかどうか判断し、“YES”のとき、次のステップS27で、TV電話機60をオンして、そのTV電話機60から、予め登録している電話番号に発呼する。ここで、登録している電話番号の例としては、ユーザと離れた家族の家のTV電話機の電話番号、ユーザの介護または介助を担当している介護士などが見えるTV電話機の電話番号などが考えられる。
そして、この実施例では、ユーザ12とぬいぐるみ14Aまたは14Bとの間のコミュニケーションが一定時間以上継続的に行なわれたとき、つまり、ユーザがぬいぐるみに関心をもったとき、ユーザを撮影するTV電話機60から自動的に発呼するようにすれば、上記家族や介護士などが、その状態でのユーザをTV電話機で確認することができるので、たとえば認知症患者の行動を遠隔地で観察できる。
この図22の実施例においても先の実施例と同様に、視線サーバ18によってユーザ12の視線12Aの方向または位置を推定し、その視線位置がどの区画にあるかによって異なる動作(発話および/または動き)をぬいぐるみ(擬人的媒体)14に行わせるようにするので、ユーザからのコミュニケーションを誘発することができる。
なお、実施例で説明した、擬人的媒体すなわちぬいぐるみの動作(発話、動き)は単なる例示であり、ユーザの視線位置とそのぬいぐるみの位置との関係に応じて、任意の動作、たとえば、ユーザの関心を引くような動作、ユーザのコミュニケーションを継続させるための動作などを実行させることができる。
さらに、上述の実施例では、ユーザがぬいぐるみと一定時間コミュニケーションをしたときにTV電話機60を自動発呼させるようにしたが、ユーザの視線位置がぬいぐるみの位置になったとき、時間経過なしに直ちにTV電話機から発呼させるようにしてもよい。
また、ユーザの視線位置がぬいぐるみの位置になったことを条件とするのではなく、たとえば図6の区画A‐Iの適宜の区画にTV電話機60を設置しておき、ユーザの視線がその区画に向けられたら、そのことをトリガとしてTV電話機の発呼処理を行なうようにしてもよい。
さらに、通信手段の例としてTV電話機を挙げたが、通信手段はTV電話機に限ることはなく、通常の音声電話機や携帯電話機、さらにはインタホンなど、ユーザと他の人との間で通信できる任意のものを含むことを理解されたい。したがって、たとえば、或る区画(図6)にインタホンを置いておき、ユーザの視線位置がその区画すなわちインタホンの位置に向けられたとき、つまり、ユーザがインタホンを注視したとき、そのインタホンを介してたとえば別の部屋の家族と会話できるようにすることなども容易に考えられる。このような制御は、視線サーバ18が行なってもよいし、各ぬいぐるみの内蔵コンピュータ32が行なってもよい。さらには、そのための別のコンピュータを設置することも可能である。