(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下、本発明の各実施例を図面に基づいて説明する。
[実施例]
<システム>
図1は、実施例における情報処理システムの一例を示す図である。
図1に示すシステムは、複数の装置が通信回線を介して接続され、コミュニケーションを行うシステムであり、例えば遠隔会議システムなどである。
【0018】
図1に示す例では、情報処理システム1は、各情報処理装置10−n(n=1〜3、nは複数の任意の数)が通信回線5を介して接続されている。通信回線5は、データ通信可能であればいずれでもよく、有線又は無線のLAN(Local Area Network)、WANなどやネットワーク通信網などでもよい。なお、各情報処理装置10−nは、それぞれを区別する必要がなければ、情報処理装置10として表記する。
【0019】
情報処理装置10は、クライアント端末とも称され、ネットワークを介した会議を行う際の端末である。情報処理装置10は、例えば、PC(Personal Computer)やタブレット端末、テレビ会議用の専用端末などである。
【0020】
ここで、通信回線5を介したコミュニケーションとしてテレビ会議を例にする。ユーザが利用している情報処理装置同士で、ネットワークを介した会議を行う際に、各情報処理装置10は、通信における送受信の遅延を取得する。
【0021】
情報処理装置10は、取得した遅延と、端末内に記憶されている遅延に関する閾値とを比較する。情報処理装置10は、この比較結果と、自装置及び相手装置のユーザの動作情報とに基づいて、オブジェクトをどのように表示するかの判定を行う。
【0022】
情報処理装置10は、判定結果を基に、必要に応じて、オブジェクトを修正したうえでユーザに表示する。オブジェクトとは、例えばアバターなどの2D又は3Dのキャラクターである。
【0023】
なお、情報処理システム1は、各情報処理装置10とのコミュニケーションを制御するサーバを設けてもよい。
【0024】
<構成>
図2は、実施例における情報処理装置10の構成の一例を示すブロック図である。
図2に示す情報処理装置10は、制御部101、主記憶部102、補助記憶部103、ドライブ装置104、ネットワークI/F部106、入力部107、及び表示部108を有する。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【0025】
制御部101は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPUである。また、制御部101は、主記憶部102や補助記憶部103に記憶されたコミュニケーション制御プログラムを実行する演算装置であり、入力部107や記憶装置からデータを受け取り、演算、加工した上で、表示部108や記憶装置などに出力する。
【0026】
主記憶部102は、ROM(Read Only Memory)やRAM(Random Access Memory)などであり、制御部101が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【0027】
補助記憶部103は、HDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【0028】
ドライブ装置104は、記録媒体105、例えばSDカードなどからプログラムを読み出し、記憶装置にインストールする。また、記録媒体105に、例えばコミュニケーション制御プログラムを格納し、コミュニケーション制御プログラムはドライブ装置104を介して情報処理装置10にインストールされる。インストールされたコミュニケーション制御プログラムは、情報処理装置10により実行可能となる。
【0029】
ネットワークI/F部106は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN、WANなどのネットワークを介して接続された通信機能を有する周辺機器と情報処理装置10とのインターフェースである。
【0030】
入力部107は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部108の表示画面上でキーの選択等を行うためのマウスやスライドパッド等を有する。
【0031】
表示部108は、LCD(Liquid Crystal Display)等を有し、制御部101から入力される表示データに応じた表示が行われる。また、表示部108は、情報処理装置10と別体でもよく、この場合は、情報処理装置10には、表示部108を制御する表示制御部が設けられる。
【0032】
<機能>
図3は、実施例における情報処理装置10−1の機能の一例を示すブロック図である。各情報処理装置10の機能は、同様であるため、情報処理装置10−1を例にして、機能を説明する。
【0033】
図3に示す例では、情報処理装置10−1は、入力機器20からユーザの動作を表す情報を取得する。入力機器20は、ユーザの動作を認識可能なデバイスであり、例えば、カメラや深度センサやマイクなどのデバイスである。
【0034】
また、情報処理装置10−1は、生成したオブジェクトを出力機器30に出力する。出力機器30は、例えば、表示部108やスピーカーなどのデバイスである。
【0035】
図3に示す情報処理装置10−1は、動作情報生成手段201、通信手段202、通信遅延検出手段203、動作検出手段204、記憶手段205、判定手段206、修正手段207、及びオブジェクト生成手段208を備える。
【0036】
動作情報生成手段201、通信遅延検出手段203、動作検出手段204、判定手段206、修正手段207、及びオブジェクト生成手段208は、
図2に示す制御部101が例えばコミュニケーション制御プログラムを実行することで機能する。このとき、主記憶部102は、ワークメモリとして使用される。
【0037】
また、通信手段202は、例えばネットワークI/F部106により実現され、記憶手段205は、例えば補助記憶部103及び/又は主記憶部102により実現されうる。
【0038】
動作情報生成手段201は、入力機器20から得られる情報を基に、身体の動作のみではなく音声も含むコミュニケーションにおいてやりとりされる情報を示す動作情報(例えば第1動作情報)を生成する。生成された動作情報は、通信手段202及び動作検出手段204に送信される。
【0039】
通信手段202は、通信回線5を介して他の情報処理装置10−2とコミュニケーションを行うために必要な情報の送受信を行うものである。よって、通信手段202は、送信手段及び受信手段として機能する。
【0040】
ここで、コミュニケーションを行うために必要な情報とは、動作に関する情報と音声を含む。実施例では、通信手段202は、入力機器20からの情報を基に、動作に関する情報(第1動作情報)を構成してから他の情報処理装置10−2に送信する。通信手段202は、他の情報処理装置10−2から動作情報(例えば第2動作情報)を受信する。
【0041】
動作に関する情報とは、例えば、3Dモデルで構成されたアバターであれば、各オブジェクトに対して基部の座標とX,Y,Zの3次元で表わされるオブジェクトの向きおよび回転角の4次元の情報(Quaternion)である。
【0042】
この4次元の情報あれば、オブジェクトの様態を一意に定めることができるため、各フレームにおけるQuaternionが、送受信されればよい。このとき、3Dモデルの情報は、事前に共有したり利用者が独自に調達したりすることで準備したものを利用する。
【0043】
ただし、表情については、位置情報から構成すると不自然になる場合がある。これは、アニメーションなどで一般的にみられるように、写実的ではないアバターの表情にともなう動作は、実際の人間が行う動作と同じ意図を伝える際に同じ動作をすればいいとは限らないからである。
【0044】
そのため、情報処理装置10は、特許第3593067号公報のような手法で表情を判断したうえで、表情の種類(喜怒哀楽等)の情報を送信し、受信側で使用しているモデルにその表情を適用する形をとってもよい。
【0045】
また、情報処理装置10は、音声については音声認識手段および音声合成手段を搭載し、音声をテキストデータとして送受信し、受信したデータから音声を再合成してもよい。
【0046】
通信遅延検出手段203は、通信回線5の状態から、通信遅延を検出する。通信遅延検出手段203が提供する通信遅延情報とは、通信回線5を介して接続された自端末と相手側端末との間をデータが往復するのに要する時間のことである。
【0047】
通信遅延検出手段203は、例えばPingを打ち、その遅延時間を測るといった形で通信遅延を測定することができる。通信遅延検出手段203は、検出した通信遅延を判定手段206に出力する。
【0048】
動作検出手段204は、動作情報と動作種類とを対応付けた動作対応情報に基づいて、第1動作情報に対応する第1動作種類、及び第2動作情報に対応する第2動作種類を検出する。第1動作種類は、自装置側のユーザの動作の種類を示し、第2動作種類は、相手装置側のユーザの動作の種類を示す。動作対応情報は、後述する記憶手段205に記憶されている。
【0049】
例えば、動作検出手段204は、通信手段202から伝送されてきた動作情報(第2動作情報)に対して、動作対応情報の動作情報と一致するかどうかの判断を行い、一致する動作情報に対応する動作種類(第2動作種類)を特定する。
【0050】
動作検出手段204は、特定した動作種類を、例えばメタデータ(例えば、発話中・うなずいている・首を左右に振っている・よそ見している・手を動かしている・動作なし・動作不明など)を動作情報に付加したうえで、判定手段206に出力する。
【0051】
また、動作検出手段204は、動作情報生成手段201から取得した動作情報(第1動作情報)に対しても、上記と同様の処理を行い、第1動作種類を付加した第1動作情報を判定手段206に出力する。
【0052】
記憶手段205は、上述した動作対応情報を記憶しておく。動作対応情報は、動作情報の基準値、例えば、3Dモデルの各部の座標の時系列データの基準値と、動作の種類が対応付けられている。
【0053】
例えば、オブジェクトを3Dモデルのアバターとした場合、3Dモデルは、複数のボーンが結節し、親オブジェクトに対する結節点の位置情報とボーン毎にQuaternionが与えられる形で構成される。
【0054】
例えば、前腕であれば上腕との結節点である肘関節が基点となり、その基点に対してQuaternionが与えられれば前腕を描画する位置を特定できる。ここでは、オブジェクトは、基点を腰の一点とし、主に実際の人間の骨格に類似した形と方向にボーンを配置したアバターとする。
【0055】
このとき、各ボーンの回転角は、直立しカメラに正対しているときに0度となるように設定される。上述した3Dモデルの構成は、オープンソースの3DCGソフトウェアであるBlender(http://www.blender.org/)などで作成することができる。
【0056】
また、記憶手段205は、第1動作種類に基づき反応要求を行うか否かを判定するための反応要求情報と、第2動作種類に基づき、第2動作情報を修正しても良いか否かを判定するための修正可否情報とを記憶する。また、記憶手段205は、動作情報をどのように修正するかを示す動作修正情報を記憶する。記憶手段205が記憶する各情報の詳細は、
図7〜12を用いて後述する。
【0057】
判定手段206は、第1動作種類、第2動作種類、及び通信遅延に基づいて、表示対象のオブジェクトの修正が必要か否かを判定する。判定手段206は、例えば、過去の第1動作種類から現在の第1動作種類への動作変化による反応要求の有無と、第2動作種類を修正してよいか否かの修正可否結果と、通信遅延と閾値との判定結果とに基づいて判定を行う。判定手段206は、上記判定により、ユーザが動作に対する反応を欲すると判定した場合に、オブジェクトの修正が必要であると判定する。
【0058】
判定手段206は、修正が必要であると判定した場合には、判定に用いた情報を修正手段207に出力し、修正が必要でないと判定した場合には、第2動作情報をオブジェクト生成手段208に出力する。判定手段206は、必要であれば、第1動作情報をオブジェクト生成手段208に出力してもよい。
【0059】
修正手段207は、判定手段206から修正要と判定された場合に、第2動作情報を修正する。修正手段207は、例えば、記憶手段205に記憶された動作修正情報に基づいて、第1動作種類の変化に応じて、第2動作情報の修正内容及び修正開始時間を決定してもよい。これにより、自装置側の動作に応じて相手装置側の動作の修正内容や開始時間を決定することができる。
【0060】
また、修正手段207は、例えば、記憶手段205に記憶された動作修正情報に基づいて、第1動作種類の変化に応じた修正内容を複数有し、ランダムに修正内容を選択してもよい。これにより、修正時に、毎回同じ反応を示すオブジェクトとなることを防止することができる。
【0061】
また、修正手段207は、例えば、記憶手段205に記憶された動作修正情報に基づいて、第1動作種類の変化、及び遅延時間に応じて、第2動作情報の修正内容及び修正開始時間を決定してもよい。これにより、通信遅延の長さに応じて、動作の修正内容や開始時間を変えることができる。
【0062】
修正手段207は、上述したいずれかの方法により修正した第2動作情報を、オブジェクト生成手段208に出力する。
【0063】
オブジェクト生成手段208は、修正手段207により修正された第2動作情報、又は判定手段206から取得した第2動作情報に基づいてオブジェクトを生成する。オブジェクト生成手段208は、生成したオブジェクトを出力機器30に出力する。出力機器30に表示するオブジェクトの情報は、事前に情報処理装置10−1に保存されていてもよいし、会議開始時に相手側の装置から提供されていてもよい。
【0064】
ここで、修正手段207による動作の修正の一例を説明する。
図4は、動作修正の一例を示す図である。
図4(A)は、受話者がよそ見をしているときに、発話者が発話を開始したときの受話者を表す図である。
【0065】
対面でのコミュニケーションであれば、受話者は直ちに発話者に視線を移すなどの反応をみせる。これにより、発話者と受話者はアイコンタクトをすることができる。しかしながら、通信遅延が大きい場合には、受話者が視線を移した結果の映像が表示部108に表示されるのが遅くなる。よって、情報処理装置10は、閾値以上の通信遅延が生じると予め分かっている場合には、受話者の動作を修正する。
【0066】
図4(B)は、動作修正後の受話者を表す図である。
図4(B)に示すように、修正手段207は、受話者の視線が発話者を見るように動作を修正する。これにより、オブジェクト生成手段208は、自然なアイコンタクトを可能にするオブジェクトを表示部108に出力する。
【0067】
通信回線5を用いたコミュニケーション手法であって、表情や身体動作を送受信する手法は、多く提案されている。本システムの動作情報生成手段による動作情報生成や、通信手段によるその情報の送受信、ならびに通信遅延検出手段による通信遅延検出については、これらの一般的な手法を用いてもよい。
【0068】
例えば、これらの手法の例として、特開2003−016475号公報、特開2009−77380号公報、特開2010−239393号公報などがある。特に、特開2010−239393は、通信遅延を通信回線5から取得する手段を備え、モデルを利用することで会議を行うことが可能なシステムである。
【0069】
<修正が必要なタイミング>
次に、動作の修正が必要となるタイミングについて説明する。
図5は、発話者が発話を開始したときの遅延の影響を示す図である。対面式のコミュニケーションであれば、発話直後から受話者の反応があるのに対し、
図5に示すように、遅延のある環境下での会話は、会話の反応が返ってくるまでに時間がかかる。よって、参加者Aは、応答が無いことを知覚できてしまうため、コミュニケーションに違和感を覚えてしまう。
【0070】
図5に示す応答無に見える時間帯(斜線部分)の間、受話者である参加者Bは、会話を無視しているわけではないが、通信遅延の影響で、発話者は、
図4(A)の画面を見ることになる。参加者Aである発話者は、会話をしているのに、
図4(A)に示す画面が表示されることで、参加者Bである受話者が会話を無視していると感じてしまう。
【0071】
一方、
図6は、動作の修正を加えるタイミングを示す図である。
図6に示す例では、遅延により反応が返ってこない時間帯に、受話者の動作情報を修正して発話者に見せることで、遅延によって受話者の反応が返ってきていないことを発話者に知覚させないようにする。
【0072】
例えば、
図5に示した応答無に見える時間帯(斜線部分)に、
図6に示すように受話者の動作を修正することで、受話者が発話に気付いていないときの動作を発話者に見せないようにする。これにより、参加者Aが違和感を覚えはじめる会話の遅延を減らすことが可能となる。
【0073】
<各種データの例>
次に、記憶手段205に記憶される各データの一例を説明する。
図7は、動作対応情報の一例を示す図である。
図7に示す動作対応情報は、ラベルと、動作種類と、動作情報の基準と、を対応付けている。
【0074】
例えば、ラベル「2」には、動作種類「よそ見」、動作情報の基準「ある時点において、正対方向に対する顔の回転角が閾値以上であるとき」が対応付けられている。動作検出手段204は、取得した動作情報が動作情報の基準に一致又は該当するとき、一致又は該当した動作情報に対応するラベルや動作種類を特定する。なお、
図7に示す動作対応情報は、一例にすぎず、
図7に示す以外の動作種類を含んでもよい。
【0075】
図8は、修正可否情報の一例を示す図である。
図8に示す修正可否情報は、ラベルと、動作種類と、修正の可否と、を対応付けている。例えば、ラベル「2」には、動作種類「よそ見」、修正の可否「○」が対応付けられている。修正の可否は、0又は1などで表現されてもよい。
【0076】
判定手段206は、動作検出手段204から取得した第2動作種類に対応する修正の可否を、
図8に示す修正可否情報を参照して判定する。
【0077】
図9は、反応要求情報の一例を示す図である。
図9に示す反応要求情報は、要求動作ラベルと、反応要求動作とする動作変化と、を対応付けている。例えば、ラベル「2」には、反応要求動作とする動作変化「非発話中→発話中」が対応付けられている。
【0078】
判定手段206は、例えば直前の第1動作種類から現在の第1動作種類への動作変化が、
図9に示す動作変化に一致するかを判定する。判定手段206は、一致すると判定した場合、ユーザの動作は反応を要求する動作(反応要求動作とも称す)であると判定する。
【0079】
図10は、動作修正情報(その1)の一例を示す図である。
図10に示す動作修正情報は、要求動作ラベルに、修正動作の内容と、修正開始時間とを対応付けている。例えば、要求動作ラベル「2」には、修正動作「話者に注目」、修正開始時間「150ms後」が対応付けられている。
【0080】
修正手段207は、判定手段206から取得した要求動作のラベルに応じて、修正動作と、修正開始時間とを決定する。これにより、自装置側の動作に応じて相手装置側の動作の修正内容や開始時間を決定することができる。
【0081】
図11は、動作修正情報(その2)の一例を示す図である。
図11に示す動作修正情報は、要求動作ラベルに、1又は複数の修正動作の内容と、修正開始時間とを対応付けている。例えば、要求動作ラベル「2」には、修正動作を示す「話者に注目」又は「うなずく」と、修正開始時間「150ms後」とが対応付けられている。
【0082】
修正手段207は、判定手段206から取得した要求動作のラベルに応じて特定した修正動作が複数ある場合、何れの修正動作にするかをランダムに選択する。これにより、修正時に、毎回同じ反応を示すオブジェクトとなることを防止することができる。
【0083】
図12は、動作修正情報(その3)の一例を示す図である。
図12に示す動作修正情報は、要求動作ラベル及び遅延時間に対し、修正動作及び修正開始時間を対応付けている。例えば、要求動作ラベル「2」及び遅延時間「300〜600ms」には、修正動作「話者に注目」、修正開始時間「150ms後」が対応付けられている。
【0084】
つまり、同じ要求動作のラベルであっても、遅延時間の長さによって、修正動作や修正開始時間が異なる。修正手段207は、判定手段206から取得した要求動作のラベル及び遅延時間に応じて、修正動作及び修正開始時間を判定する。これにより、通信遅延の長さに応じて、動作の修正内容や開始時間を変えることができる。
【0085】
<動作>
次に、実施例における情報処理装置10の動作について説明する。以下では、全体の情報処理を説明した後に、各処理の詳細について説明する。
【0086】
図13は、実施例における画像処理の一例を示すフローチャートである。
図13に示すステップS101で、通信手段202は、他の情報処理装置10から第2動作情報を受信する。
【0087】
ステップS102で、通信手段202は、受信した第2動作情報を動作検出手段204に伝送する。また、動作情報生成手段201は、入力機器20から取得した情報に基づく第1動作情報を動作検出手段204に出力する。
【0088】
ステップS103で、動作検出手段204は、取得した第1動作情報及び第2動作情報それぞれに対応する第1動作種類及び第2動作種類を、記憶手段205に記憶されている動作対応情報を参照して特定する。特定された第1動作種類及び第2動作種類を含む動作検出情報は、判定手段206に伝送される。
【0089】
ステップS104で、通信手段202は、第2動作情報受信時の通信情報を通信遅延検出手段203に伝送する。
【0090】
ステップS105で、通信遅延検出手段203は、取得した通信情報を基に、通信遅延を検出し、検出した通信遅延を蓄積しておく。通信遅延検出手段203は、判定手段206が判定を行うときに、最新の通信遅延に関する情報を判定手段206に伝送する。最新の通信遅延に関する情報は、直前の通信遅延でもよいし、直前の所定時間内に計測された通信遅延の平均値でもよい。
【0091】
ステップS106で、判定手段206は、第1動作種類、第2動作種類、及び通信遅延に基づいて、第2動作情報を修正するか否かを判定する。例えば、判定手段206は、通信遅延が閾値(例えば300ms)以上であり、第2動作種類が修正可能であり、第1動作種類の動作変化が反応要求動作であれば、修正が必要と判定する。
【0092】
判定手段206により修正が必要と判定されれば(ステップS106−YES)ステップS107に進み、修正が不要と判定されれば(ステップS106−NO)ステップS108に進む。
【0093】
ステップS107で、修正手段207は、動作修正情報に基づいて、第2動作情報を修正する。修正手段207は、動作修正情報内の修正動作になるように、第2動作情報を修正する。
【0094】
ステップS108で、オブジェクト生成手段208は、判定手段206から取得した第2動作情報、又は修正手段207から取得した第2動作情報に基づき、オブジェクトを生成する。
【0095】
ステップS109で、オブジェクト生成手段208は、生成したオブジェクトを出力機器30に出力する。
【0096】
次に、主要な各部の処理を、動作検出手段204、判定手段206、修正手段207の順に説明する。
【0097】
《動作検出処理》
まず、他の情報処理装置10から受信された第2動作情報に対する処理について説明する。動作検出手段204は、ユーザがコミュニケーションを行う際に、意識的・無意識的に行う動作(以下では、所定動作とも称す。)について、検出する。
【0098】
例えば、コミュニケーションを行っている相手の言行への反応として、うなずいたり手を動かしたりするなどの動作が所定動作に相当する。所定動作の検出は、例えば、
図7に示す動作対応情報の基準に適合する動作であれば、そのラベルを付与するという形で行われる。
【0099】
ここで行われる動作の検出では、複数のラベルを付与することも可能である。例えば、発話しながら手を動かすことは、
図7に示す動作情報の基準を同時に満たすことが可能であるため、一連の動作情報に対して、同時にラベル4と5とが付与できる。動作検出手段204は、このラベルが付与された第2動作情報を、判定手段206に出力する。このラベルは、第2動作種類に対応する。
【0100】
なお、動作検出手段204は、動作情報生成手段201から取得した第1動作情報に対しても、上述した処理と同様の処理を行う。つまり、動作検出手段204は、必要に応じてラベルが付与された第1動作情報を、判定手段204に出力する。このラベルは、第1動作種類に対応する。
【0101】
例えば、上述した動作検出処理は、モーション認識、及び表情認識をもとに行われる。モーション認識、及び表情認識は、予め設定された適当な数秒程度以下の時間の動作に対して、記憶手段205に記憶された動作対応情報に含まれる基準との比較等の処理によって行われる。
【0102】
《判定処理》
判定手段206は、修正可否判定、反応要求動作判定、通信遅延閾値判定、動作修正判定を行う。以下では、各判定を順に説明する。
【0103】
判定手段206は、第2動作情報に対して修正を加えてよいか否かを、
図8に示す修正可否情報を参照して判定する。ここで、ユーザの動作は、特有の意味を持つかどうかで区別することができる。
【0104】
例えば、相槌をうったり、自然に身体を動かしたりといった動作であれば、修正によって置き換わったり、新たに動作が生成されたり、もしくは動作をなくしたりしても、あまり問題はないと考えられる。
【0105】
しかし、手の動作によって物の形を表現しているような場合には別の動作が加えられたり、別の動作に置き換わったりするとコミュニケーションが成立しない。したがって、判定手段206では、まず相手側のユーザの動作を修正していい状態かどうかを判定する。
【0106】
例えば、動作検出手段204により、身体を軽く揺らすこと(
図8に示す例では「動作なし=ラベル6」に含まれる)や、話を聞きながらうなずくといった動作(
図8に示す例では「頷き=ラベル1」)が検出されたとする。
【0107】
これらの動作は、コミュニケーションにおいて特に意味を持たなかったり、タイミングによるものであったりする。よって、
図8に示す修正可否情報では、ラベル1と6の修正可否は、いずれも○であり、修正可状態とする。
【0108】
また、動作検出手段204により検出された、発話しながら手を動かしているといった動作(
図7に示すラベル4と5)は、非言語情報として意味がある可能性が高い。そのため、ラベル4と5は、
図8に示す修正可否情報で×となっているので、修正不可状態とする。これにより、判定手段206は、第2動作種類に基づいて、第2動作情報に修正を加えてよいか否かを判定できる。
【0109】
判定手段206は、受信された第2動作情報に修正が必要かどうかの判断は、さらに、自装置側のユーザの動作がどのように変化したのかから判断する。これは、自装置側のユーザの動作が、相手側に反応を要求しないような動作であれば、相手側の動作を修正する必要がないからである。以下では、相手側に反応を要求する一連の動作を、反応要求動作とも称す。
【0110】
判定手段206は、第1動作の変化に基づいて、反応要求動作か否かを判定する。例えば、判定手段206は、所定時間内に第1動作種類が変化した場合に、この変化の内容が、
図9に示す反応要求情報に含まれれば、その動作変化は反応要求動作であると判定する。なお、
図9に示す「非発話中」は、例えばラベル5以外のラベルを表し、「非よそ見」は、例えばラベル「2」以外のラベルを表す。
【0111】
判定手段206は、反応要求動作を検出、つまり、反応を欲するタイミングであると判定したときには、要求動作ラベルを第2動作情報に付加して修正手段207に出力する。判定手段206は、反応要求動作を検出しなければ、第2動作情報をオブジェクト生成手段208に出力する。
【0112】
図14は、実施例における反応要求動作の判定処理の一例を示すフローチャートである。
図14に示すステップS201で、判定手段206は、所定時間内で第1動作種類の変化を検出した場合、この動作変化が
図9に示す反応要求情報に含まれる動作変化であるか否かを判定する。
【0113】
判定手段206は、検出した動作変化が反応要求情報に含まれれば反応要求動作を検出し(ステップS201−YES)、ステップS202に進み、動作変化が反応要求情報に含まれなければ反応要求動作を非検出とする(ステップS201−NO)。
【0114】
ステップS202で、判定手段206は、検出した要求動作ラベルを、第2動作情報に付加する。これにより、要求動作ラベルが、第2動作情報に付加されていれば、反応が要求されていると判断することができる。
【0115】
また、判定手段206は、通信遅延が閾値以上であるか否かを判定する。判定手段206は、コミュニケーション開始前は、通信相手のクライアント端末との遅延を測定できないため、通信遅延検出手段203の初期値が閾値以下と判定した状態にする。
【0116】
判定手段206は、コミュニケーション開始後、通信遅延が、予め設定された閾値以上であるか否かを判定する。閾値について、装置や出力機器30の情報処理による遅延やユーザの個人差などにより、コミュニケーションを行ううえで問題となる遅延が異なることが考えられる。そのため、判定に用いる閾値は、設定により適宜変更することができるようにする。
【0117】
判定手段206は、修正可否判定、反応要求動作判定、及び通信遅延閾値判定の判定結果に基づいて、動作修正判定を行う。
図15は、実施例における動作修正の判定処理の一例を示すフローチャートである。
【0118】
図15に示すステップS301で、判定手段206は、第1動作種類の変化が反応要求動作であるか否かを判定する。反応要求動作であれば(ステップS301−YES)ステップS302に進み、反応要求動作でなければ(ステップS301−NO)ステップS305に進む。
【0119】
ステップS302で、判定手段206は、通信遅延が閾値以上であるか否かを判定する。通信遅延が閾値以上であれば(ステップS302−YES)ステップS303に進み、通信遅延が閾値未満であれば(ステップS302−NO)ステップS305に進む。
【0120】
ステップS303で、判定手段206は、他の装置から受信された動作が修正可能か否かを判定する。受信動作が修正可能であれば(ステップS303−YES)ステップS304に進み、受信動作が修正不可能であれば(ステップS303−NO)ステップS305に進む。なお、ステップS301〜S303の処理は、順不同である。
【0121】
ステップS304で、判定手段206は、動作修正が必要であると判定する。ステップS305で、判定手段206は、動作修正が不要であると判定する。これにより、判定手段206は、動作修正が必要な適切なタイミングを判定することができる。
【0122】
《動作修正処理》
まず、どのような動作に修正するかを決定する必要がある。例えば、修正する動作としては、「うなずく動作を実行する」、「現在行っている動作を停止する」、「視線を移動させる」、「表情を変える」などが挙げられる。これらの動作を修正動作と称す。
【0123】
修正手段207は、修正動作の選択方法として、予め設定された修正動作を選択しても、ランダムに選択しても、実行時に動的に選択してもよい。例えば、修正手段207は、記憶手段205に記憶された動作修正情報に基づいて、修正動作を選択してもよい。
【0124】
図16は、実施例における動作修正処理の一例を示すフローチャートである。
図16に示すステップS401で、修正手段207は、修正する動作を選択する。修正手段207は、
図10〜12に示す動作修正情報のいずれかを用いて、第1動作種類の変化に応じて、修正する動作を選択する。
【0125】
ステップS402で、修正手段207は、修正動作を選択した後、記憶手段205から、選択した修正動作の動作情報を、動作対応情報から取得する。
【0126】
ステップS403で、修正手段207は、修正動作の動作情報を用いて第2動作情報を修正する。修正手段207は、例えば動作の合成を行って動作を修正する。動作の合成方法は、記憶手段205から取得した動作情報を上書きする形で行う。
【0127】
ただし、修正手段207は、記憶手段205から取得した動作において動作が規定されていない部位があった場合、その部分については何も行わない。つまり、修正手段207は、その部位に動作があった場合に静止させるようなことは行わない。
【0128】
動作の修正の例として、例えば、修正手段207は、
図10に示す動作修正情報を用いて、要求動作ラベルに応じた修正内容や修正時間を選択する。また、修正手段207は、
図11に示す動作修正情報を用いて、2つ以上の修正内容から1つを選んで修正することや、要求があっても修正しないことや、修正開始時間に幅を持たせるといった修正でもよい。また、修正手段207は、
図12に示す動作修正情報を用いて、複数の修正を同時に行うことや、同じ要求動作ラベルを持った動作に対する修正であっても、遅延時間によって修正内容を変えることを行ってもよい。
【0129】
また、修正手段207は、動作の修正を、乱数などによって修正の有無やタイミングを調整してもよい。修正手段207は、例えば、−2から5までの乱数を発生させ、負の場合は動作を修正せず、零の場合は動作をずらさず、正の場合はその値の大きさに応じた時間分(例えば、5であれば50ms)動作を遅らせてもよい。
【0130】
修正の有無やタイミングを調整する理由は、人間の反応は常に同じタイミングで同じ反応を返すとは限らないため、そのような人間の特性に合わせて、動作の修正をしない場合を発生させたり、動作修正が行なわれるタイミングをずらしたりするためである。モデルの動作を修正する既存技術としては、例えば特開2009−077380号公報がある。
【0131】
<具体例>
次に、上記実施例を用いたシステムでの修正動作及びタイミングについての具体例を説明する。具体例では、入力機器20としてカメラと深度センサを用いる。具体例におけるシステム1では、カメラから撮影された動画像をもとにした動作情報の生成と、深度センサによる深度画像をもとにした動作情報の生成を行う。
【0132】
動作の修正のタイミングとして、発話の開始と終了とが設定される。動作の修正は、通信遅延の時間程度継続して行う。その後は、修正を行わない状態に遷移する。
【0133】
図17は、通信遅延による影響を示す図である。
図17に示すように、通信遅延により、発話者にとって応答が無い時間帯と、応答が継続する時間帯とがある。
図18は、動作の修正を行う時間帯の一例を示す図である。
図18に示す例では、
図17に示す応答無しの時間帯と、応答継続の時間帯とに対し、動作の修正が加えられる。
【0134】
なお、発話の開始は、自装置の利用者の発話開始であるため、発話開始時の音声により判断すればよい。ただし、会話によるコミュニケーションを行っている際には発話開始前に準備動作があることが知られており、その準備動作を発話開始判定に用いてもよい(資料:Web会議における話者交替円滑化手法の検討[玉木ら, 画像電子学会VMA研究会29th, pp.9-18, 2011])。
【0135】
修正手段207は、発話の開始時および終了時のような発話者が期待する受話者の反応になるように、動作に修正を加える。
【0136】
図19は、修正のタイミングと、修正前後の動作の一例を示す図である。
図19に示す例では、判定手段206は、反応要求動作の検出として、発話開始か発話終了を判定する。
図19に示す例では、修正手段207は、発話開始時であれば、受話者の動作を、発話者に注目するように修正する。また、修正手段207は、発話終了時であれば、受話者の動作を、軽く頷いた後、発話者への傾聴応答をやめるように修正する。
【0137】
なお、上述した情報処理装置10は、発話しているかどうかだけでなく、参加者の動作情報も検出しているので、発話開始時や発話終了時などのタイミングとは異なる形で修正を入れるように設定することも可能である。
【0138】
また、情報処理装置10は、複数の受話者が同時に同様の動作を行うことは不自然であるため、修正動作の種類・有無・タイミングを設定により調節することもできる。
【0139】
・修正のタイミングであっても動作修正を行わない例
修正手段207は、発話者の発話終了時に、受話者が記憶手段205に記憶された動作で上書きできないとされている動作や判別できない動作を行っているときには修正を行わない。これは、前述した動作の修正を行うことは、受話者の行動が発話を遮ったり終了させたりすることを意図していた場合に限っては適切であるが、動作の意図を正確に解釈することは困難であるためである。
【0140】
予め規定されていて上書きできない動作の例として、大きくうなずいている(肯定の意思表示と考えるのが妥当であるため)や、首を振っている(同じく否定の意思表示)などが挙げられる。
【0141】
・記憶手段で記憶する動作の実施例
例えばオブジェクトが、剛体で構成された3Dモデルで表現されているとき、各剛体は四元数によって三次元空間の位置と回転が一意に定まる。うなずく動作であれば、顔や首などの剛体の四元数が時系列によって変化することで表現することができる。
【0142】
この四元数の時系列は記憶手段205に記憶されている。また、通信手段202がこの情報を送受信することで動作情報を送受信することができる。
以上、実施例によれば、通信回線を介したコミュニケーションにおいて、帯域の負荷をかけずに、円滑で自然なコミュニケーションを可能にすることができる。
【0143】
なお、実施例の情報処理装置10で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0144】
また、実施例の情報処理装置10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施例の情報処理装置10で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0145】
また、実施例の情報処理装置10で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0146】
なお、実施例の情報処理装置、情報処理システム及びプログラムは、上記各施例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施例に示される全構成要素からいくつかの構成要素を削除してもよい。