(57)【要約】【課題】本発明は、複数の角度から撮影された送信利用者の映像を、送信利用者と受信利用者の仮想空間における位置関係に合わせて、動的に一枚の映像を選択して画像サイズおよびフレームレートの調整を行ったのち、ネットワークを用いて転送を行うことにより、ネットワークにかける負荷を低く抑えたまま、自由な視点位置からの映像合成を行うことを目的とする。【解決手段】複数のカメラを用いて撮影を行う撮影システ１０１と、仮想空間を背景画像として合成した映像を表示する表示システム１０２とが、ネットワーク１０３を介して結合された構成である。【効果】本発明によれば、仮想空間上の位置に合わせて角度や解像度を変化させるアバタキャラクタを視聴することが出来る。【選択図】図１
2004178036.tif 000002
【特許請求の範囲】
【請求項１】
利用者の身体映像を撮影した画像を計算機上で構成された仮想空間上に合成して、遠隔地でのコミュニケーションを行う画像表示装置において、受信者側で表示されている仮想空間内での送信者の３次元的な位置関係を基準として必要な角度、解像度、フレームレート、送信者の身体部分の情報を送信側に逐次転送し、送信者側で転送された前記情報を元に送信する画像の内容を切り替える機能を有することを特徴とする映像提示装置。
【請求項２】
利用者の身体情報を撮影した画像を計算機上で構成された仮想空間上に合成して、遠隔地でのコミュニケーションを行う画像表示装置において、受信者側で表示されている仮想空間内での送信者の３次元的な位置関係を基準として必要な角度、解像度、フレームレートの情報を送信側に逐次転送し、前記情報を元に送信された画像を画像の内容を、受信側がローカルに保有している身体部分の映像と合成し、仮想空間内に表示する機能を有することを特徴とする映像提示装置。
【請求項３】
利用者の身体情報を撮影した画像を計算機上で構成された仮想空間上に合成して、遠隔地でのコミュニケーションを行う画像表示装置において、受信者側で表示されている仮想空間内での送信者の３次元的な位置関係を基準として必要な角度、解像度、フレームレートの情報を送信側に逐次転送し、前記情報を元に送信された画像を画像の内容を、受信側がローカルに保有している身体部分の３次元形状モデルと合成し、仮想空間内に表示する機能を有することを特徴とする映像提示装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
動画をリアルタイムに転送することにより、コミュニケーションや協調作業を行う撮影・表示装置に関する。
【０００２】
【従来の技術】
利用者の画像を撮影してリアルタイムに転送し、その映像を視聴することにより、遠隔地においてもその場に居合わせているようなコミュニケーションを図る装置が実用に供されている。その最も典型的なものは、テレビ会議システムと呼ばれており、遠隔地における送信者の姿をカメラで撮影し、受信側の表示システムに、音声と共にリアルタイムで送信するものである。画像を伴うことにより、電話をはじめとする音声のみで行われる通信システムよりも、より自然で情報量の多いコミュニケーションを図ることが出来る。
【０００３】
また、この画像の人物が写っている部分を背景が写っている部分から分離して、現実の背景映像の代わりに、計算機上で構築した仮想空間の映像と人物映像とを合成することによって、遠隔映像の転送システムに、より一層の付加価値を与えるための研究が各地で行われている。これらの研究はビデオアバタと呼ばれ、多くの実施例が存在する。
【０００４】
しかし、利用者を撮影するカメラが一台である場合には、一方の方向の映像しか得ることが出来ないため、視点位置や利用者の立ち位置が変化した場合に対応するような映像の変化を得ることが出来ない。このため、利用者（送信側）の映像が常に受信システム上で正面を向いた映像になるなどの場合が現状においては多々ある。たとえば特許文献１では、このような問題を考慮したビデオアバタの改良例に関するものである。顔部分の映像を複数方向から撮影し、これらを３次元情報に変換したもの、あるいは全方向からの映像を全て送信し、体を表現する３次元形状モデルと合成することによって仮想空間内の任意の位置からの映像を得ることが出来るようにする。また、映像の転送は情報量が多く、通信ネットワークを圧迫するため、顔部分の映像に絞ることで映像転送量を削減するものである。しかし、顔などの比較的単純で一定である構造については三次元情報の再現も容易であるが、手を含めた上半身などの、複雑な形状の三次元情報を撮影される画像の情報のみから再現することは難しい。また利用者の映像を三次元化されたモデルに映像を貼り付けることで得られる簡易三次元形状のモデルは、計算精度の問題から形状が単純なものとなり、現実の形状と比較すると間違った三次元かがなされた形状部分が出来てしまうことも多いため、不自然な印象を与えることがある。
【０００５】
【特許文献１】
特許出願平１０−２５７７０２号公報
【０００６】
【発明が解決しようとする課題】
映像受信者と映像送信者が仮想空間内でどのような位置関係に存在するかによって、仮想空間の表示装置が必要とする画像の情報が異なる。例えば、仮想空間内で、受信者と送信者が離れた距離にいる場合には、送信者の全身の映像が小さく表示される。逆に受信者と送信者が非常に近い距離にいる場合には、送信者の上半身、特に顔部分のみが大きく表示される。また、受信者が送信者の正面に対してどのような角度に存在するかに応じて、見える映像が異なるならば自然な印象を与えることが出来る。例えば、受信者が送信者の横側にいる場合、受信者からみた送信者の映像は側面の映像のみとなるべきである。しかし、双方の位置関係が明確に把握できない状態でこれらの映像を再現しようとする場合、これらの映像情報はある固定された角度からのものとなり、また画像の品質も常に一定のものが送られることになる。
【０００７】
また、映像を転送するための回線の転送容量には限りがあるため、多くの要望を同時に満たした映像を転送することは困難なものとなる。例えば、滑らかな動きと大きな映像イメージを共に満たす動画を送ることは難しい。滑らかな動きを達成するためには、映像イメージは小さいものとなり、映像イメージを大きくするとフレームレートの少ない映像となってしまう。また、各方向から見た映像の全てを転送すると、回線の転送容量を大幅に圧迫することになる。
【０００８】
【課題を発明するための手段】
本発明では、受信および表示システムは、仮想空間内での送信者と受信者の位置関係を元に必要な映像の条件を判定する。この情報は撮影システムに転送され、撮影システムは複数のカメラによって撮影されたうちから選択された角度の映像を間引き処理やトリミング処理などの手法によって、時間的、空間的に適度なサイズの画像に改変し、表示システムに転送する。このことによって、必要とされる映像を少ない転送容量で送信することができる。
【０００９】
【発明の実施の形態】
図１は、当発明の一実施例を図示したものである。本発明は、大きくわけて撮影システム１０１、表示システム１０２と、その間を接続する通信ネットワーク設備１０３によって構築される。
【００１０】
図２は撮影システム１０１の詳細構成例である。複数台のカメラ機器２０１〜２０５が、送信利用者２００の周囲を取り巻くように設置されている。また、利用者２００の周囲にはクロマキー処理用に同一色の背景布２０７が設置されている。また、送信利用者２００が操作する入力機器２０９と送信利用者２００の下半身部分も、映像情報として取得を行われることがないように同一の色の布２０９によって包まれているものとする。これらのカメラの映像情報は、情報処理装置２１０に転送される。各カメラ２０１〜２０５にはそれぞれ固有のＩＤ番号が振られており、情報処理装置２１０ではこのＩＤ番号をもとに取り込む映像を選択することが出来る。情報処理装置は、これらのカメラの映像を受信する機能と、ネットワーク１０３の情報を送受信する機能、またそれらの情報を計算処理するための機能を有する。
【００１１】
図３は情報処理装置２１０の構成例を表したブロック図を挙げる。ＣＰＵ（中央演算処理装置）３０１は、主記憶装置３０２に記録されているプログラムに従い各種の処理を実行する。主記憶装置３０２と外部記憶装置３０４には制御処理を実行するにあたって必要となるプログラムやデータが記憶される。外部記憶装置３０４にはハードディスクドライブやその他の既存の大容量メディアが使用されるものとする。入出力インタフェース部３０３では、カメラ装置２０１〜２０５とネットワークへの入出力データをやり取りするために必要なデータの転送機構５０７に接続されている。出力機器３０５は、現在の処理状況を送信利用者に伝えるための出力機器である。また、入力機器２０９は、送信利用者がいくつかの命令を伝えることの出来る入力機器である。本実施例において入力機器２０９は足によって操作することの出来る入力機器であるものとする。
【００１２】
図４は表示システム部分の構成例である。映像表示装置４０１が、受信利用者４００の前に置かれる。この装置には、情報処理装置４０２が出力する映像が表示される。受信利用者４００は入力機器４０３を介して、情報処理装置４０２に命令を与えることが出来る。この情報処理装置４０２は、３次元形状データや２次元映像データ、２次元動画像データを用いて各種映像を作成する機能と、ネットワークの情報を送受信する機能、またそれらの情報のための計算処理を行うための機能を有する。
【００１３】
図５は情報処理装置４０２の構成例を表したブロック図を挙げる。ＣＰＵ（中央演算処理装置）５０１は、主記憶装置５０２に記録されているプログラムに従い各種の処理を実行する。主記憶装置５０２と外部記憶装置５０４には制御処理を実行するにあたって必要となるプログラムやデータが記憶される。外部記憶装置５０４にはハードディスクドライブやその他の既存の大容量メディアが使用されるものとする。入出力インタフェース部５０３では、ネットワーク１０３への入出力データをやり取りするために必要なデータの転送機器５０７や、映像表示装置４０１に映像を出力するための処理能力を備えているものとする。
【００１４】
図６は情報処理装置４０２並びに情報処理装置２１０の内部データによって構成される仮想空間情報の模式図を挙げる。
【００１５】
背景となる仮想空間６０１は、表示システムの保持する背景オブジェクト６０２、６０３の３次元形状データなどよって構成されている。この仮想空間内に、送信利用者２００、受信利用者４００の行動を表すキャラクタ６１０、６２０が配置されるものとする。
【００１６】
受信利用者のキャラクタが存在する仮想空間内の位置６２１と、そのキャラクタが向いている方向６２２が定義され、受信利用者の操作に従って制御される。
【００１７】
また、この仮想空間の中に送信利用者を模したキャラクタ６０３も構成され、背景空間６０１の中に配置される。この送信利用者のキャラクタが存在する仮想空間内の位置６１１と、そのキャラクタが向いている方向６１２も、送信利用者の操作に従って制御される。
【００１８】
この送信利用者のキャラクタ６１０を構成する方法を表したものが図７である。
【００１９】
キャラクタの足部分７０３は３次元形状データによって構成される。この形状データはアニメーション情報を保有し、スクリプトデータを受け取って形状を変形することが出来る。図８はアクションをあらわすアニメーションデータの構成例である。８０１に記載された数値は動作パターンをあらわすＩＤデータである。スクリプトデータでは、このＩＤデータが転送されるものとする。スクリプトデータを実行するためには、保有している一連のアニメーションデータの中から、スクリプトのＩＤ番号と、データ８０１のアニメーションが一致するものを検索する。アニメーションデータのロードは、ポリゴンモデルの各関節データの呼び出しとして行われる。アニメーションデータ８００内の８０２には基本フレームの数が記載される。また８０３にはフレームどうしの時間間隔データが記載される。８０４〜には、各関節の回転情報データが記載される。アニメーション開始時刻から表示時刻までの時間を算出し、関節の回転情報データをよみだしてポリゴンを変形させることでアニメーション動作を行う。
【００２０】
キャラクタの上半身部分７０２は、ポリゴン上に動画のあるフレーム情報を表示することで示される。この動画は送信者２００の映像を撮影した動画像の一部分７１２からクロマキー色部分を取り除いたものによって得られる。この送信者の下半身部分はカバー２０８によって囲まれているため、上記画像には取り込まれない。動画が表示されるポリゴンは送信キャラクタの仮想空間上の位置から、受信者の仮想空間上の位置に常に表面を向けるように回転する。このように向きを変化させることで映像の正面を利用者に提示するためのポリゴンを、以下ではビルボードと呼称する。
【００２１】
キャラクタの顔部分７０１は、上半身部分と同様にビルボードによって構成される。このビルボードに表示される動画は送信者２００の映像を撮影した動画像の一部分７１１からクロマキー部分を取り除いたものによって得られる。このビルボードに描かれる際の画像解像度は、キャラクタの顔部分７０１とキャラクタの上半身部分７０２とで異なり、通常、顔部分の映像７０１の方が画素の密度が高い。
【００２２】
以下、６１０のような利用者の行動を反映する仮想空間内のキャラクタをアバタと呼称する。
表示システム２１０の内部データとして構築された仮想空間６００において、位置６１１（Ｓ＿ｐ）に送信者のアバタが存在している。また、この送信者のアバタ６１０が向いている方向６１２をＳ＿ｄとする。また仮想空間６００内の別の位置６２１  （Ｏ＿ｐ）に受信者４００の仮想的な視点位置が存在している。仮想空間内で受信者の向いている方向６２２がＯ＿ｄであるものとする。これらの値はベクトル値で表現されるものとする。
【００２３】
汎用ネットワーク１０３は、表示システムが互いに転送するデータを伝達する機能を有するものとする。また、各システムが、ある特定の信号をネットワークに入力することによって、現在のネットワークで転送に利用できる転送容量の情報を得ることが出来る機能を有するものとする。
【００２４】
本実施例において表示システムから撮影システムに転送されるデータ構造体を図９に挙げる。また、撮影システムから表示システムに転送されるデータ構造体を図１０に挙げる。これらの構造体の内部データの意味に関しては、以下に述べる処理作業の解説に伴って説明を加える。
【００２５】
以下では、上記の各装置が動作する処理の流れを順序だてて解説する。図１１と図１２は一連の動作順序をブロック図として表現したものである。
【００２６】
図１１は、撮影システムから転送するデータの設定情報を定める処理を記述したものである。また、図１２は、撮影システムから、表示システムにデータを転送する処理を記述したものである。どちらの処理も、情報処理装置２１０，  ４０２がＣＰＵ３０１，  ５０１内に保有しているタイマーの機能を利用して、規定された時間毎に呼び出され、実行される処理である。
【００２７】
図１１の一連の処理を、以下では、情報取得スレッドと呼ぶ。この処理はあらかじめプログラム内で定められた設定値に従い、秒１回から数回程度の頻度で行われる。この情報取得スレッドは、情報処理４０２に置かれたプログラムと情報処理装置２１０にその作業内容が記載されており、情報処理４０２のタイマーの機能によって作業が開始される。
【００２８】
図１２の一連の処理を、以下では、画像転送スレッドと呼ぶ。この処理は秒数回から数十回の割合で呼び出される処理であり、呼び出される頻度は情報取得スレッドによって設定される。この画像転送スレッドは、情報処理２１０に置かれたプログラムと情報処理装置４０２にその作業内容が記載されており、情報処理２１０のタイマーの機能によって作業が開始される。
【００２９】
まず、図１１に従って情報取得スレッドの一連の動作を記述する。
表示利用者４００のアバタ６２０位置に対する撮影利用者２００のアバタ６１０の相対位置を位置ベクトル６１１（Ｓ＿ｐ）  から位置ベクトル６２１（Ｏ＿ｐ）を引くことにより求める（工程１１０１）。
この向きと受信者のアバタ６２０の向いている方向６２２との角度差を下式（数１）に基づいて計算する（工程１１０２）。
【００３０】
【数１】
ｃｏｓθ＝（Ｓ＿ｐ−Ｏ＿ｐ）・Ｏ＿ｄ／（｜Ｓ＿ｐ−Ｏ＿ｐ｜｜Ｏ＿ｄ｜）
アバタ６１０が表示環境の範囲内にいるかを判定するために、この値を映像表示機器４０２の画角Ｗ＿ｈと比較する（工程１１０３）。
ｃｏｓθ＜＝ｃｏｓ（Ｗ＿ｈ）ならば、工程１１０４に進む。
もしｃｏｓθ＜ｃｏｓＷ＿ｈならば、表示範囲外であるため、データ転送の必要が無い。この場合、データ構造体の距離情報に０を書きこみ（工程１１０６）、工程１１０７に進む。
工程１１０４では、送信者のアバタが受信者に向けている向きφを計算する。上方向ベクトルの周りに（Ｏ＿ｐ−Ｓ＿ｐ）を−Ｓ＿ｄだけ回転させたベクトルをＯ＿ｐ１とする。このベクトルは、送信者のアバタから見たときの受信者の相対位置を表現するものとなる。Ｏ＿ｐ１を曲座標表現に変換したものをｒφとする。φは原点から見たＯ＿ｐ１の向きを表現する単位長のベクトルであり、ｒは原点からＯ＿ｐ１までの距離（すなわちＯ＿ｐからＳ＿ｐまでの距離）をあらわす値である。
【００３１】
データ構造体１０００の送信情報１００１にｒを書き込み、また１００２にφを書き込み、工程に進む。（工程１１０５）
表示システムは撮影システム１０１に向けてデータ構造体１０００を送信する。（工程１１０７）
撮影システムは表示システムからのデータ構造体１０００を受け取る。（工程１１０８）データ構造体の角度情報１００２を読み取り、該当する角度に最も近い位置にあるカメラを選択する（工程１１０９）。このカメラＩＤと角度の関係は後述の図１４に記載されている。
工程１１１０では、データ構造体の距離情報１００１から必要な解像度を算出する。必要な解像度は撮影システム側に定義されたテーブルを参照することで得られる。このテーブルの構成例を表現したものが図１３のテーブル１３００である。
【００３２】
このテーブルでは、顔画像の転送に必要な各種のデータが、距離値に関連付けられて定義されている。
【００３３】
テーブルに記載された距離情報（列１３０１）を順に読み出していき、データ構造体１０００のデータ１００１から読みこまれた距離の値に最も近いものが見つかった場合、その距離値に関連付けられた情報を顔画像用の解像度情報として読み取る。このデータは列１３０２，１３０３に記述された二つの整数値Ｄ１，Ｄ２から構成されており、画像の解像度を変化させるためのデータとして後述の工程で用いられる。また、１フレームあたりに必要な顔画像のデータサイズを列１３０４から読み取る。これらの各値を主記憶上に記録し、工程１１１１に進む。
【００３４】
また、同様のテーブルが上半身の解像度情報を取得するために別途用意されており、これらの各データも同様に読み取る。
【００３５】
工程１１１１では、ここまでの工程で得られた解像度情報から、送信のフレームレートを算出する。ネットワーク１０３に命令を送信し、現在の回線で利用可能な一秒あたりのデータ量を受信する。一秒あたりの転送可能データ量を、顔画像用映像の転送データ転送容量と、上半身画像用の転送データ転送容量とに振り分ける。この比率値には、システム固定値として与えられた合計して１となる正の小数値が用いられる。また送信者２００が入力機器３０５で数値を入力することによって、この比率を変動させることが出来る。
【００３６】
顔画像のデータ転送容量を、工程１１１０フレームに必要なデータサイズで割ったものを顔画像のフレームレートとする。ただし、送信機構処理可能なフレームレートを超えている場合、その上限値を顔画像のフレームレートとする。また、距離情報１００１に０が記載されていた場合には、顔画像のフレームレートには０が設定される。
【００３７】
同様に、上半身画像のデータ転送容量を１フレームの上半身画像に必要なデータサイズで割ったものを上半身画像のフレームレートとする。ただし、送信機構処理可能なフレームレートを超えている場合、その上限値を上半身画像のフレームレートとし、距離情報１００１に０が記載されていた場合には、上半身画像のフレームレートには０が設定される。
顔画像のフレームレート、上半身画像のフレームレートから画像転送スレッドの呼び出し間隔をミリ秒単位で求める。この値ごとに情報処理装置２１０のタイマー機能が画像転送スレッドを呼び出すように設定する（工程１１１２）。
【００３８】
以上の工程により、送信システムからデータを転送するための設定情報が定められる。
以上のデータ受信処理のあと、次のデータ１０００が表示システム１０２からやってくるまでの間、撮影システム１０１はこれらの設定された値を用いて画像転送スレッドの処理を繰り返す。
【００３９】
続いて、画像転送スレッドの動作を記述する。
【００４０】
画像転送スレッドは、工程１１１２で設定された情報処理装置２１０のタイマー機能によって起動される。以下、顔画像転送のスレッドが起動した場合を対象にして一連の動作を記述する。
【００４１】
工程１２０１では、入力機器２０９を用いて送信者がインプットする入力情報を情報処理装置２１０に取り込む。この情報はアバタキャラクタの移動や足部分を動かすスクリプト命令として用いられる。工程１２０２では、工程１２０１で取り込んだ情報を転送用のデータ構造体９００のスクリプト記述領域９０２に書き込む。またキャラクタの移動情報を９０３に書き込む。
工程１２０３〜１２０４では、送信利用者の画像（顔画像）を作成する。
【００４２】
情報処理装置２１０にはプログラムの一部として、図１４に示すように、画像を取り込む領域を定義したテーブル１４００が定義されている。このテーブルの情報は、カメラのＩＤ番号Ｃ＿ＩＤ（列１４０１）、回転角度Ｒ（列１４０６）と４つの数値ｗ０，ｗ１，ｈ０，ｈ１（列１４０２〜１４０５）によって構成されている。
工程１１０９で選択されたカメラのＩＤを、列１４０１から検索する。この値に結び付けられた領域の情報をテーブル１４００の列１４０２〜１４０５から読み出す（工程１２０３）。
工程１２０４では、カメラ番号Ｃ＿ＩＤに相当するカメラの画像を読み取る。この画像は電子データとして情報処理装置２１０へと転送される。
【００４３】
工程１２０４で撮影された画像のうち（ｗ０，ｈ０）−（ｗ１，ｈ１）の範囲の映像が、転送映像として送信される領域である。この範囲は図７の撮影領域範囲７１１または７１２に相当する。図１５の１５０１は、この（ｗ０，ｈ０）−（ｗ１，ｈ１）でしめされる範囲の画像を表現したものである。この画像１５０１は画素１５１０によって構成されている。画素１５１０は、赤値１５１１、緑値１５１２、青値１５１３を示す３組の数と、透明度を示す数１５１４によって構成されている。この領域の映像の解像度を、距離情報１００１から算出された解像度に落として、映像を転送用データ構造体に書き込む。このために、ｈ０ライン番目の水平ラインについて、ｗ０からｗ１までの画像を図１５に示されるように画素を、工程１１１０で設定されたＤ１，Ｄ２の情報を用いて間引きしながら、データ構造体の画像領域に書き込む（工程１２０５）。ただし、図１５の画像１５０１のうち、黒で塗りつぶされた領域であり転送されない。転送される領域はそれ以外の領域であり、間引き後の映像は、画像１５０２で示される映像になる。また、この転送のさい、赤値１５１１、緑値１５１２、青値１５１３の組み合わせによって示される色情報が、クロマキー色の色情報と一致していた場合には、透明度の情報１５１４には透明をあらわす値を書き込む。それ以外の時には不透明を表す値を書き込む。
【００４４】
工程１２０６では、データ構造体９００のデータ領域９０１に画像のＩＤを書き込む。このＩＤは身体部分、顔、上半身のいずれかを現す固定値（ＩＤ＿ＦＡＣＥ，  ＩＤ＿ＵＰＰＥＲ）のうちどちらかである。また、データ領域９０４に画像１５０２の横幅、データ領域９０５に画像１５０２の縦幅の値を書き込む。
【００４５】
以上の工程１２０１〜１２０６で作成された転送用データ構造体９００の情報を送信する（工程１２０７）。
【００４６】
表示システムは、転送用データ構造体９００を受け取る（工程１２０８）。
【００４７】
工程１２０９では、キャラクタ移動データ９０３に基づいて、アバタの仮想空間内の位置データを移動させる。また、移動に伴うアニメーション処理をロードする。
【００４８】
工程１２１０では、アバタの下半身を構成する３次元形状モデル７０３に、行動情報領域のスクリプト９０２に関連付けられたアニメーション処理を行わせる。
【００４９】
既になんらかのアニメーション処理がロードされている場合や、移動のための歩行アニメーションがロードされている場合、これらのアニメーションのブレンド処理を行う。ただしアニメーションの設定とブレンド処理に関しては既存の手法を用いるものとする（（工程１２１１）。
【００５０】
工程１２１２では画像データを読み込む。ヘッダ領域のデータ９０１を確認し、ＩＤ＿ＵＰＰＥＲであった場合には、上半身画像、ＩＤ＿ＦＡＣＥであった場合には、顔画像が送られてきたものと判断し、画像領域９０６の画像データを、ポリゴン１０１、またはポリゴン１０２のテクスチャ領域上にコピーする。
【００５１】
この処理によりテクスチャ更新がされなかったポリゴンに関しては、前回と同じテクスチャを用いてレンダリングが行われる。
【００５２】
工程１２１３では、利用者４００からの入力情報読み取りを行う。
【００５３】
表示システム４０１は、受信利用者４００が入力機器４０３に入力した情報をインタフェース５０３を通して取得し、その入力情報を反映して、仮想空間内での受信者の視点位置６２１および角度６２２を変更する。
【００５４】
工程１２１４では、画面の表示を行う。背景映像とアバタモデルに対してレンダリング処理を行い、映像を作成し、映像表示装置４０１に表示する。また、このレンダリング処理の際には、画像データに記載された透明度の情報を用いてレンダリングを行うことで、人物の背景情報が正しく表示される。
【００５５】
以上で、画像転送スレッドの一連の動作が終了する。
【００５６】
呼び出された画像転送スレッドが上半身画像用のスレッドであった場合には、テーブル１３００と、テーブル１４００には上半身画像用のものが使用され、また工程１２１２ではポリゴン１０２のテクスチャ領域に画像が転送される。それ以外の点に関しては、上記で解説を行った顔画像の転送手段と同一の工程が行われる。
【００５７】
また前述の実施例において、３次元形状モデルを利用して表示したアバタの足部分１０３の代わりに、あらかじめ撮影ずみの映像の動画像で置き換えた場合の実施例を解説する。
このときのアバタキャラクタの構成は図１６の１６００のようになる。顔部分１６０１、上半身部分１６０２、下半身部分１６０３はそれぞれビルボードによって作成されている。
【００５８】
静止、歩行、走行、着席などの各アクションにおける下半身部分の映像を複数の方向から撮影した動画が、あらかじめ記憶装置５０４に保存されている。この映像において足が写っている部分は各画像で同じ大きさに見える様にスタビライズ処理が行われ、背景の切り抜き処理が行われている。また、各動画の開始部分と終了部分の映像に対してはモーフィングと呼ばれる画像処理が行われている。この動画処理により、各動画を連続して再生した際に、つながった映像として表示されるようになっている。
【００５９】
また、図１７に示されるテーブル１７００が保存され、これらの動画ファイル１６２０と、アクション内容、撮影した角度とを対応させるための情報が定義されている。キャラクタの足部分１６０３はビルボードデータによって構成されている。
前述の実施例において、工程１２０９〜１２１１で行われた３次元モデルのアニメーション処理の変わりに、以下の処理が行われる。
【００６０】
まず、構造体９００に登録されているデータ９０２に記述されている値を読み取る。この値をアクション値として保存する。
【００６１】
また、工程１１０４で定められた角度の値を参照する。
【００６２】
テーブル１７００を検索し、列１７０１に書き込まれたアクションＩＤデータが現在のアクション値９０２と同一なものの内で、参照する角度と列１７０２の角度情報が最も近いデータのファイル名を、列１７０３から読み出す。
【００６３】
ビルボード１６０３にはローカルデータとして保存された動画像１６１０〜１６１３のなかから、選択された映像が表示される。
【００６４】
各情報が変化して新たに別の動画が選択されるまでの期間、この動画映像が繰り返し表示される。
【００６５】
また前述の各実施例において、撮影システムと表示システムを互いに組み合わせることにより、双方向で映像を送りあうシステムを構成することが出来る。
【００６６】
【発明の効果】
本発明によれば、仮想空間上の位置に合わせて角度や解像度を変化させるアバタキャラクタを視聴することが出来る。
【００６７】
また、第一の実施例においてはポリゴンを、第二の実施例においてはローカル情報として蓄えられた動画映像を、アバタキャラクタの表示の一部に用いることにより、画像の転送に伴って発生するネットワーク負荷の量を削減することが出来る。
【００６８】
また、フレームレートや解像度の操作により、このシステムが動作する際にネットワークに与える負荷の量を制御することが出来る。
【図面の簡単な説明】
【図１】本発明の第一の実施例におけるシステム全体の構成
【図２】送信システム構成
【図３】送信システム用情報処理装置構成
【図４】受信システム構成
【図５】送信システム用情報処理装置構成
【図６】仮想空間構成模式図
【図７】アバタ構成模式図
【図８】アニメーションデータの構成例
【図９】画像転送スレッドでの通信用データ構造体模式図
【図１０】情報取得スレッドでの通信用データ構造体模式図
【図１１】情報取得スレッドの動作内容
【図１２】画像転送スレッドの動作内容
【図１３】アバタ間の距離情報と、解像度の間引き情報、データサイズの関係をしめすテーブル
【図１４】各カメラと、そのトリミング領域、角度の情報を示すデータ
【図１５】撮影画像から転送用画像を作成する模式図
【図１６】実施例２におけるアバタ構成模式図
【図１７】各アクションと表示角度から動画ファイル名を検索するテーブルの模式図
【符号の説明】
１０１  撮影システム、１０２  表示システム、１０３  ネットワーク、２００  画像送信側利用者、２０１  カメラ、２０２  カメラ、２０３  カメラ、２０４  カメラ、２０５  カメラ、２０７  背景用クロマキー布、２０８  下半身部分隠蔽用クロマキー布、２０９  画像送信利用者用入力装置、２１０  送信システム用情報処理装置、３０１  中央演算ユニット（ＣＰＵ）、３０２  主記憶装置、３０３  入出力インタフェース装置、３０４  外部記憶装置、３０５  画像送信利用者用出力装置、３０７  ネットワークインタフェース装置、４００  画像受信利用者、４０１  映像表示装置、４０２  受信システム用情報処理装置、４０３  画像受信利用者用入力装置、５０１  中央演算ユニット（ＣＰＵ）、５０２  主記憶装置
５０３  入出力インタフェース装置、５０４  外部記憶装置、５０５  画像受信利用者用出力装置、５０７  ネットワークインタフェース装置、６０１  仮想空間、６０２  背景オブジェクト、６０３  背景オブジェクト、６１０  送信利用者アバタ、６１１  送信利用者アバタ位置、６１２  送信利用者アバタ向き、６２０  受信利用者アバタ、６２１  受信利用者アバタ位置、６２２  受信利用者アバタ向き、７０１  顔表示用ビルボード、７０２  上半身表示用ビルボード、７０３  下半身表示用ポリゴンデータ
７１１  顔画像撮影領域、７１２  上半身撮影領域、８００  アニメーションデータ、８０１  動作パターンＩＤ、８０２  基本フレームの個数、８０３  基本フレーム間の時間間隔データ、８０４  関節の回転情報データ、９００  データ構造体、９０１  画像種類のＩＤ番号、９０２  アバタのアニメーション動作を記述するスクリプト情報の記述領域、９０３  アバタの移動情報を記述する領域、９０４  転送画像の横長さ情報、９０５  転送画像の縦長さ情報、９０６  転送される画像データの領域
１０００  データ構造体、１００１  アバタの距離情報、１００２  アバタの角度情報、１１０１  アバタ間の相対位置の算定、１１０２  相対角度の算定、１１０３  表示位置の視界内にアバタが入っているかの判定、１１０４  送信者をあらわすアバタの向けている向きと距離の計算、１１０５  データ構造体１０００への書き込み、１１０６  アバタが視界内に入っていない場合の処理、１１０７  データ構造体の送信、１１０８  データ構造体の受信、１１０９
必要な角度を写しているカメラの選択
１１１０  距離情報から解像度を算出、１１１１  フレームレートを算出、１１１２  画像転送スレッドをタイマーに設定、１２０１  入力機器からの入力情報の取得、１２０２  アバタ操作命令のデータ構造体９００への書き込み、１２０３  撮影用カメラの選択、１２０４  カメラによる画像の撮影、１２０５  トリミング処理と間引き処理によって撮影画像から必要部分を抽出する処理、１２０６  画像データのデータ構造体９００への書き込み、１２０７  データ構造体９００の送信、１２０８  データ構造体９００の受信、１２０９  アバタキャラクタの位置更新と歩行用アニメーションの読み込み、１２１０  アニメーション情報の読み込み、１２１１  アニメーションのブレンディング、１２１２  データ構造体９００からの画像の読み込み、１２１３  入力装置４０３からの入力情報の読み込みと処理、１２１４  レンダリング処理と映像の表示、１３０１  この列には、距離情報の数値が記載される、１３０２  この列には値Ｄ１の数値が記載される、１３０３  この列には値Ｄ１の数値が記載される、１３０２  この列には間引き後のデータサイズ値が記載される、１４０１  この列には、カメラのＩＤが記載される、１４０２  この列には、トリミングの左端が記載される、１４０３  この列には、トリミングの右端が記載される、１４０４  この列には、トリミングの上端が記載される、１４０５  この列には、トリミングの下端が記載される、１４０６  この列には、カメラが撮影する利用者の角度が記載される、１５０１  間引き処理前の画像（トリミングされた撮影画像）
１５０２  間引き処理後の画像（転送用画像）、１５１０  画像を構成する画素の構成、１５１１  画素の赤情報、１５１１  画素の緑情報、１５１１  画素の青情報、１５１１  画素の透明度をあらわす情報
１６０１  顔表示用ビルボード、１６０２  上半身表示用ビルボード、１６０３  下半身表示用ビルボード、１６１１  顔画像撮影領域、１６１２  上半身撮影領域、１６２０  各アクションに対応した下半身の動画映像、１７０１  アクションＩＤ、１７０２  角度情報、１７０３  動画像ファイルのファイル名
【図１】
2004178036.tif 000003
【図２】
2004178036.tif 000004
【図３】
2004178036.tif 000005
【図４】
2004178036.tif 000006
【図５】
2004178036.tif 000007
【図６】
2004178036.tif 000008
【図７】
2004178036.tif 000009
【図８】
2004178036.tif 000010
【図９】
2004178036.tif 000011
【図１０】
2004178036.tif 000012
【図１１】
2004178036.tif 000013
【図１２】
2004178036.tif 000014
【図１３】
2004178036.tif 000015
【図１４】
2004178036.tif 000016
【図１５】
2004178036.tif 000017
【図１６】
2004178036.tif 000018
【図１７】
2004178036.tif 000019