(58)【調査した分野】(Int.Cl.,DB名)
前記撮像方向が基準面の法線方向と異なるとき、前記三次元映像生成部は、前記映像片生成工程において、前記撮像方向にて撮像した映像に基づいて生成した前記ユーザの前記三次元映像片を、前記法線方向から仮想的に見た場合の前記三次元映像片へ変換することを特徴とする請求項6に記載の映像表示システム。
【発明を実施するための形態】
【0021】
以下、本発明の一実施形態(以下、本実施形態)について図面を参照しながら説明する。本実施形態に係る映像表示システム(以下、本システムS)は、互いに離れた部屋に居るユーザ同士が互いの姿(映像)を見ながら対話するために用いられる。より具体的に説明すると、各ユーザが居る部屋内には映像表示器としてのディスプレイが設置されており、このディスプレイに相手の映像が映し出される(表示される)。これにより、各ユーザは、ディスプレイをガラス(例えば、窓ガラスやドアガラス)と見立て、あたかもガラス越しに相手と対面しながら対話しているように感じる。
【0022】
なお、本システムSは、各ユーザが各自の自宅に居るときに利用されることになっている。つまり、本システムSは、各ユーザが自宅に居ながらにして対話相手と対話(擬似的な対面対話であって、以下、単に「対面対話」という)を行うために利用される。ただし、これに限定されるものではなく、本システムSは、ユーザが自宅以外の場所、例えば、集会所や商業施設、あるいは学校の教室や学習塾、病院等の公共施設、会社や事務所等に居るときに用いられてもよい。また、同じ建物内で互いに離れた部屋に居る者同士が対面対話するために本システムSを用いてもよい。
【0023】
以降、本システムSについて分かり易く説明するために、二人のユーザが本システムSを利用して対面対話するケースを例に挙げて説明することとし、一方のユーザをAさん、他方のユーザをBさんとする。また、以下では、Bさん側の視点、すなわち、Aさんの映像を見る立場から本システムSの構成等を説明することとする。つまり、Aさんが「ユーザ」に相当し、Bさんが「第二のユーザ」に相当する。ただし、「ユーザ」及び「第二のユーザ」は、映像を見る者及び見られる者の関係に応じて切り替わる相対的な概念である。したがって、Aさんの視点を基準としたときには、Bさんが「ユーザ」に相当し、Aさんが「第二のユーザ」に相当することとなる。
【0024】
<<本システムの基本構成>>
先ず、本システムSの基本構成について説明する。本システムSは、二人のユーザ(すなわち、Aさん及びBさん)がお互いの映像を見ながら対面対話をするために用いられ、より具体的には、各ユーザに対して対話相手の等身大の映像を表示し、対話相手の音声を再生するものである。このような視聴覚的効果を得るために、各ユーザは、通信ユニット100を保有している。つまり、本システムSは、各ユーザが保有する通信ユニット100によって構成されている。
【0025】
次に、
図1を参照しながら通信ユニット100の構成について説明する。
図1は、本システムSの構成、より具体的には各通信ユニット100の構成を示した図である。各通信ユニット100は、ホームサーバ1、撮像装置としてのカメラ2、集音装置としてのマイク3、赤外線センサ4、映像表示器としてのディスプレイ5、及び、スピーカ6を主な構成機器として有する。これらの機器のうち、カメラ2、マイク3、赤外線センサ4、ディスプレイ5及びスピーカ6は、各ユーザの自宅における所定部屋(例えば、対面対話を行う際に利用する部屋)内に配置されている。
【0026】
ホームサーバ1は、本システムSの中枢をなす装置であり、コンピュータ、具体的にはホームゲートウェイを構成するサーバコンピュータからなる。このホームサーバ1の構成については公知であり、CPU、ROMやRAM等のメモリ、通信用インタフェース及びハードディスクドライブ等によって構成されている。
【0027】
また、ホームサーバ1には、対面対話の実現に必要なデータ処理を実行するためのプログラム(以下、対話用プログラム)がインストールされている。この対話用プログラムには、三次元映像表示用のプログラムが組み込まれている。このプログラムは、三次元コンピュータグラフィックス(以下、3DCG)により三次元映像を構築して表示するためのプログラムであり、所謂レンダラーである。また、上記の3DCGレンダラーは、複数の三次元映像を合成する機能を有する。そして、複数の三次元映像を合成してなる映像、すなわち、合成映像がディスプレイ5に表示されると、合成された個々の三次元映像がディスプレイ5の奥行方向において互いに異なる位置に配置されているように映る。
【0028】
また、ホームサーバ1は、インターネット等の外部通信ネットワークGNを介して通信機器と通信可能な状態で接続されている。つまり、Aさんが保有する通信ユニット100に属するホームサーバ1は、外部通信ネットワークGNを介して、Bさんが保有する通信ユニット100に属するホームサーバ1と通信し、両サーバ間で各種データの送受信を行う。なお、ホームサーバ1が送受信するデータは、対面対話に必要なデータであり、例えば、各ユーザの映像を示す映像データや音声を示す音声データである。
【0029】
カメラ2は、公知のネットワークカメラであり、撮像範囲(画角)内にある被写体の映像を撮像する。ここで、「映像」とは、連続している複数のフレーム画像(RGB画像)の集合体によって構成されるものであるが、以下の説明では、フレーム画像の集合体を含む他、個々のフレーム画像をも含むものとする。また、本実施形態では、カメラ2の撮像範囲が固定されている。このため、カメラ2は、その起動中、常に当該カメラ2が設置された空間の所定領域の映像を撮像することになる。
【0030】
カメラ2は、撮像映像を示す信号(映像信号)を、当該カメラ2が所属する通信ユニット100と同一のユニットに属するホームサーバ1に対して出力する。なお、カメラ2の設置台数については、特に制限されるものではないが、本実施形態ではコスト面を考慮し、各通信ユニット100においてカメラ2を1台のみ備えることとした。
【0031】
また、カメラ2のレンズは、ディスプレイ5における表示画面の形成面に面している。ここで、形成面を構成するディスプレイ5のパネル(厳密には、タッチパネル5aであり、鏡面部分に相当)は、透明なガラスによって構成されている。したがって、カメラ2は、
図2に示すように、パネル越しで当該パネルの前に位置する人物の映像を撮像することになる。
図2は、本システムSの構成機器としてAさん及びBさんのそれぞれの部屋内に配置されている各種機器の配置位置を示した図である。なお、カメラ2の配置位置については、ディスプレイ5から離れた位置であってもよい。
【0032】
ここで、被写体である人物がディスプレイ5の前方位置でディスプレイ5から所定距離だけ離れているとき、カメラ2は、当該人物の顔から足までの全身像を撮像することが可能である。「全身像」とは、起立姿勢での全身像であってもよく、あるいは着座姿勢での全身像であってもよい。また、「全身像の映像」には、前方に配置された物によって身体の一部分が隠れた状態の映像が含まれる。
【0033】
なお、本システムSにおいて、カメラ2は、床面から約1m上がった高さに設置されている。このため、ディスプレイ5の前方位置に立つ人物の身長(厳密には、目の高さ)がカメラ2の設置位置よりも高くなっているとき、カメラ2は、被写体である人物の顔を下方から撮像することになる。ここで、カメラ2が設置される高さ(換言すると、鉛直方向におけるカメラ2の位置)については特に制限されるものではなく、任意の高さに設定可能である。
【0034】
マイク3は、マイク3が設置された部屋内の音声を集音し、その音声信号をホームサーバ1(厳密には、マイク3が所属する通信ユニット100と同一のユニットに属するホームサーバ1)に対して出力する。なお、本実施形態において、マイク3は、
図2に示すようにディスプレイ5の直上位置に設置されている。
【0035】
赤外線センサ4は、所謂デプスセンサであり、赤外線方式にて計測対象物(対象物に相当)の深度を計測するためのセンサである。具体的に説明すると、赤外線センサ4は、計測対象物に向けて発光部4aから赤外線を照射し、その反射光を受光部4bにて受光することにより深度を計測する。より具体的に説明すると、赤外線センサ4の発光部4a及び受光部4bは、ディスプレイ5における表示画面の形成面に面している。その一方で、形成面を構成するディスプレイ5のタッチパネル5aのうち、赤外線センサ4の直前位置にある部分には、赤外線が透過することが可能なフィルムが貼られている。発光部4aから照射された後に計測対象物にて反射された赤外光は、上記のフィルムを通過した上で受光部4bにて受光される。
【0036】
なお、本システムSでは、「深度」として、カメラ2(厳密には、カメラ2のレンズ表面)から計測対象物までの距離、すなわち、奥行距離を計測することとしている。このため、本システムSでは、赤外線センサ4の受光部4bによる受光位置が、ディスプレイ5の奥行方向(厳密には、表示画面の法線方向)において、カメラ2のレンズの表面位置と同一位置となるように設定されている。
【0037】
また、本システムSでは、深度の計測結果を、カメラ2が撮像した映像を所定数の映像片(画素)に分割した際の当該画素毎に得る。そして、画素毎に得た深度の計測結果を映像単位でまとめると、その映像についての深度データ(距離データに相当)が得られるようになる。この深度データは、カメラ2の撮像映像(厳密には、各フレーム画像)について画素別に赤外線センサ4の計測結果、すなわち深度を規定したものである。つまり、映像についての深度データとは、当該映像のデプスマップであり、当該深度データのうち、カメラ2が撮像した映像中にある対象物の映像と対応する画素群、には当該対象物の奥行距離(深度の値)が規定されている。具体的に説明すると、後述する
図5のように、背景の映像と、その前方の映像とでは奥行距離が異なるため、それぞれに対応する画素は、同図に示すように明らかに異なるようになる。なお、
図5中、黒抜きの画素は、背景映像と対応し、斜線ハッチングの画素は、背景よりも前方に在る物の映像と対応し、白抜きの画素は、さらに前方に在る人物の映像と対応している。
【0038】
以上のような深度データを利用することで、映像の中から人物の映像を抽出することが可能である。なお、深度データを利用した人物映像の抽出方法については、後述する。また、本システムSでは、深度データから人物の位置を特定することが可能である。ただし、これに限定されるものではなく、例えば、位置検知用のセンサが赤外線センサ4とは別に設置されており、かかる位置検知用のセンサの検知結果から人物の位置を特定してもよい。
【0039】
スピーカ6は、ホームサーバ1が音声データを展開することで再生される音声(再生音)を発するものであり、公知のスピーカによって構成されている。なお、本実施形態において、スピーカ6は、
図2に示すように、ディスプレイ5の横幅方向においてディスプレイ5を挟む位置に複数(
図2では4個)設置されている。
【0040】
ディスプレイ5は、映像の表示画面を形成するものである。具体的に説明すると、ディスプレイ5は、透明なガラスによって構成されたパネルを有し、当該パネルの前面に表示画面を形成する。なお、本システムSにおいて、上記のパネルは、タッチパネル5aであり、ユーザが行う操作(タッチ操作)を受け付ける。
【0041】
さらに、上記のパネルは、人の全身映像を表示するのに十分なサイズを有している。そして、本システムSによる対面対話では、上記のパネルの前面に形成された表示画面に、対話相手の全身映像が等身大のサイズで表示されることになっている。つまり、Bさん側のディスプレイ5には、Aさんの全身映像を等身大サイズにて表示することが可能である。これにより、表示画面を見ているBさんは、あたかもAさんと会っている感覚、特に、ガラス越しで対面している感覚を感じるようになる。
【0042】
さらにまた、本システムSのディスプレイ5は、通常時には部屋内に配置された家具、具体的には姿見として機能し、対面対話時にのみ表示画面を形成するものとなっている。以下、
図3の(A)及び(B)を参照しながらディスプレイ5の構成について詳しく説明する。
図3の(A)及び(B)は、本システムSで用いられているディスプレイ5の構成例を示した図であり、(A)が非対話時の状態を、(B)が対面対話時の状態をそれぞれ示している。
【0043】
ディスプレイ5が有するタッチパネル5aは、対面対話が行われる部屋内に配置された姿見の一部分、具体的には鏡面部分を構成する。そして、上記のタッチパネル5aは、
図3の(A)に示すように、対話が行われていない非対話時、すなわち映像が表示されていない間には表示画面を形成しない。すなわち、本システムSのディスプレイ5は、非対話時には姿見としての外観を現すことになる。一方、対面対話が開始されると、上記のタッチパネル5aは、その前面に表示画面を形成する。これにより、ディスプレイ5は、
図3の(B)に示すように、タッチパネル5aの前面にて対話相手及びその背景の映像を表示するようになる。
【0044】
ちなみに、表示画面のオンオフは、ホームサーバ1が赤外線センサ4の計測結果に応じて切り替えることになっている。より詳しく説明すると、対面対話を開始するにあたってユーザがディスプレイ5の正面位置に立つと、カメラ2が上記ユーザを含んだ映像(以下、実映像)を撮像すると共に、赤外線センサ4が深度を計測する。これにより、実映像についての深度データが取得され、ホームサーバ1は、当該深度データに基づいてユーザとカメラ2との間の距離、すなわち奥行距離を特定する。そして、上記の奥行距離が所定距離以下であるとき、ホームサーバ1は、ディスプレイ5を制御してタッチパネル5aの前面に表示画面を形成させる。この結果、それまで姿見として機能していたディスプレイ5のタッチパネル5aが映像表示用のスクリーンとして機能するようになる。反対に、上記の奥行距離が所定の距離以上となると、ホームサーバ1がディスプレイ5を制御し、それまで形成されていた表示画面をオフするようになる。これにより、ディスプレイ5は、再び姿見として機能するようになる。
【0045】
以上のように、本システムSでは、ディスプレイ5が非対話時には姿見として利用される。これにより、非対話時には表示画面の存在が気付かれ難くなる。その一方で、対面対話時には、表示画面が形成されて対話相手の映像が表示されるようになり、ユーザは、あたかも対話相手とガラス越しに対話しているような視覚的演出効果を得るようになる。なお、映像表示スクリーンと姿見とを兼用する構成については、例えば国際公開第2009/122716号に記載された構成のように公知の構成が利用可能である。また、ディスプレイ5については、姿見として兼用される構成に限定されるものではない。ディスプレイ5として用いられる機器については、対話相手の全身映像を表示するのに十分なサイズを有しているものであればよい。そして、非対話時に表示画面の存在を気付き難くする観点からは、対面対話用の部屋内に設置された家具や建築材料であって鏡面部分を有するものが好適であり、例えば扉(ガラス戸)や窓(ガラス窓)をディスプレイ5として利用してもよい。なお、ディスプレイ5については、扉や窓等の建築材料若しくは姿見等の家具として兼用されるものに限定されず、起動中、表示画面を常時形成する通常の表示器であってもよい。
【0046】
<<映像合成について>>
本システムSを用いた対面対話では、Bさん側のディスプレイ5にAさんの映像及びその背景の映像が表示され、Aさん側のディスプレイ5にBさんの映像及びその背景の映像が表示される。ここで、各ディスプレイ5に表示される人物映像及び背景映像は、カメラ2が同時に撮像したものではなく、異なるタイミングで撮像されたものとなっている。すなわち、各ディスプレイ5には、異なるタイミングで撮像された人物映像及び背景映像を合成した合成映像が表示されることになる。また、本システムSでは、人物映像及び背景映像に加えて、前景の映像を更に合成した合成映像を表示することとしている。
【0047】
以下、映像合成の手順について
図4を参照しながら概説する。
図4は、映像合成の手順についての説明図である。なお、以下の説明では、Aさんの映像、背景映像及び前景映像を合成するケースを具体例に挙げて説明することとする。
【0048】
合成される映像のうち、背景映像(
図4中、記号Pbにて表記)は、Aさんが対面対話を行う際に利用する部屋のうち、カメラ2の撮像範囲内にある領域の映像である。そして、本実施形態では、Aさんが上記部屋に居ないときにカメラ2が背景映像を撮像することになっている。すなわち、背景映像は、単独で撮像されることになっている。なお、背景映像の撮像タイミングについては、Aさんが上記の部屋に居ない期間内であれば任意に設定することが可能である。
【0049】
一方、人物映像(具体的にはAさんの映像であって、
図4中、記号Puにて表記)は、Aさんが上記部屋内、厳密にはカメラ2の撮像範囲内に居るときに撮像される。ここで、カメラ2が撮像する映像(すなわち、実映像)には、人物映像の他に背景映像及び前景映像が含まれている。そして、本システムSでは、実映像の中から人物映像を抽出して用いることとしている。実映像の中から人物映像を抽出する方法については特に限定されるものではないが、一例としては、上述した深度データに用いて人物映像を抽出する方法が挙げられる。以下、
図5を参照しながら、深度データを用いた人物映像の抽出方法について説明する。
図5は、撮像映像から人物映像を抽出する手順についての説明図である。なお、
図5では、図示の都合上、深度データを構成する画素が実際の画素よりも粗くなっている。
【0050】
カメラ2が映像を撮像している期間中、赤外線センサ4が、カメラ2の画角内にある計測対象物の深度を計測する。この結果、実映像についての深度データが得られる。実映像についての深度データとは、実映像を構成するフレーム画像を所定数の画素に分割したときの当該画素毎に赤外線センサ4の計測結果、すなわち深度を規定したものである。なお、実映像についての深度データでは、
図5に示すように、人物映像に属する画素(図中、白抜きの画素)とそれ以外の映像に属する画素(図中、黒抜きの画素や斜線ハッチングの画素)とでは明らかに深度が異なる。
【0051】
そして、深度データ及びカメラ2の撮像映像(厳密には、撮像映像におけるAさんの顔の映像の位置を特定するための情報)に基づいてAさんの骨格モデルを特定する。骨格モデルとは、
図5に示すようにAさんの骨格(具体的には身体中、頭部、肩、肘、手首、上半身中心、腰、膝、足首)に関する位置情報を簡易的にモデル化したものである。なお、骨格モデルを取得する方法については、公知の方法が利用可能であり、例えば、特開2014−155693号公報や特開2013−116311号公報に記載された発明において採用されている方法と同様の方法を利用してもよい。
【0052】
そして、骨格モデルを特定した後、当該骨格モデルに基づいて実映像の中から人物映像を抽出する。本明細書では、骨格モデルに基づいて実映像の中から人物映像を抽出する技法に関する詳細については説明を省略するが、大まかな手順を説明すると、特定した骨格モデルに基づいて深度データ中、Aさんの人物映像に属する画素群を特定する。その後、特定した画素群と対応する領域を実映像の中から抽出する。このような手順によって抽出された映像が実映像中のAさんの人物映像に該当する。
【0053】
また、本システムSでは、前景映像(
図4中、記号Pfにて表記)を、人物映像の場合と同様に実映像の中から抽出して用いることとしている。実映像の中から前景映像を抽出する方法については特に限定されるものではないが、一例を挙げて説明すると、人物映像と同様に深度データを用いて前景映像を抽出する方法が考えられる。具体的に説明すると、実映像についての深度データ中、人物映像に属する画素よりも奥行距離が小さい画素群を特定する。そして、実映像中、特定した画素群と対応する部分の映像を前景映像として抽出してくることになる。
【0054】
以上までに説明してきた手順により実映像から人物映像及び前景映像を抽出した後、背景映像、人物映像及び前景映像を合成する。具体的に説明すると、カメラ2が撮像した背景映像中、実際にディスプレイ5に表示される部分の映像(
図4中、破線にて囲まれた範囲であって、以下、表示範囲)を設定する。ここで、表示範囲は、カメラ2が撮像した背景映像のうち、合成映像中に含まれる部分に相当する。なお、表示範囲の大きさについては、ディスプレイ5の大きさに応じて決定される。また、本実施形態において、初期(デフォルト)の表示範囲は、背景映像の中央部分に設定されている。ただし、初期の表示範囲については特に限定されるものではなく、背景映像の中央部分以外の部分でもよい。
【0055】
そして、背景映像における上記の表示範囲と、抽出された人物映像と、抽出された前景映像を合成して合成映像(
図4中、記号Pmにて表記)を取得する。この結果、Bさん側のディスプレイ5には、
図4に示すように、背景の手前にAさんが位置し、かつ、Aさんの手前に前景が位置した映像が表示されるようになる。
【0056】
以上のように本システムSではディスプレイ5の表示映像として合成映像を表示する。そして、合成映像を表示する構成では、人物映像、背景映像及び前景映像の各々について、表示位置や表示サイズ等を個別に調整することが可能となる。具体的に説明すると、例えば、人物映像であるAさんの映像の表示サイズについては、背景映像や前景映像の表示サイズを変えずに調整することが可能である。
【0057】
なお、本システムSでは、Aさんの映像の表示サイズをAさんの実際のサイズ(等身大サイズ)と一致するように調整する。この結果、Bさん側のディスプレイ5にはAさんの映像が等身大サイズにて表示されるようになり、本システムSを用いた対面対話の臨場感がより一層向上する。ただし、人物映像の表示サイズについては、等身大サイズに限定されるものではない。ここで、等身大サイズとは、カメラ2の前方位置でカメラ2から所定距離(具体的には、後述する
図10B中の距離d1であり、以下、基準距離)だけ離れた位置にいるときに撮像された人物映像をそのままのサイズにて表示したときのサイズを意味する。また、上記の基準距離d1については、予め設定されており、ホームサーバ1のメモリに記憶されている。
【0058】
<<三次元映像の生成について>>
本システムSにおいて、ディスプレイ5には三次元映像が表示されることになっている。より具体的に説明すると、前節にて説明したように、ディスプレイ5には、背景映像、人物映像及び前景映像を合成した合成映像が表示されることになっているが、合成される各映像は、三次元化された映像(三次元映像)となっている。この三次元映像は、カメラ2が撮像した2次元映像(具体的には、RGB形式のフレーム画像からなる映像)と、その映像についての深度データと、を用いて3DCGによるレンダリング処理を実行することで得られる。ここで、レンダリング処理とは、厳密にはサーフェスレンダリング方式の映像表示処理であり、仮想的に設定された視点から見た際の三次元映像を生成するための処理である。
【0059】
そして、本システムSでは、レンダリング処理としてテクスチャマッピングを採用した処理を実行する。以下、
図6を参照しながら、三次元映像を生成する手順について説明する。
図6は、三次元映像を生成する手順についての説明図である。なお、図中のメッシュモデルは、図示の都合上、実際のメッシュサイズよりも粗くなっている。また、以下では、Aさんの三次元映像を生成するケースを例に挙げて説明することとする。
【0060】
カメラ2が撮像したAさんの映像(厳密には、実映像から抽出されたAさんの映像)は、二次元映像であり、テクスチャマッピングにおいてテクスチャとして用いられる。一方、Aさんの映像を含む実映像について取得された深度データ(すなわち、デプスマップ)は、三次元映像の骨格をなすメッシュモデルを構築するために用いられる。ここで、メッシュモデルは、ポリゴンメッシュにて人物(Aさん)を表現したものである。なお、深度データ(デプスマップ)からメッシュモデルを構築する方法については、公知の方法を利用することが可能である。
【0061】
そして、メッシュモデルが得られた後、
図6に示すように、当該メッシュモデルにテクスチャとしての二次元映像(具体的にはAさんの映像)を貼り付けることで立体的なAさんの映像、すなわち、奥行感を有する三次元映像を生成することが可能となる。このようなテクスチャマッピングにて三次元映像が生成され、さらに移動や回転等のプロセッシングを行うことで視点を変えたときの三次元映像を取得することが可能となる。これにより、Aさんの顔を下方から見たときの三次元映像や、Aさんの顔を側方から見たときの三次元映像を取得することも可能となる。
【0062】
また、背景や前景についても、人物の場合と同様の手順により、三次元映像を生成することが可能である。つまり、カメラ2が撮像した背景映像と、背景映像について取得された深度データと、を用いてテクスチャマッピングによるレンダリング処理を実行することで、背景の三次元映像が取得される。また、カメラ2が撮像した前景映像(厳密には、実映像から抽出した前景映像)と、前景映像について取得された深度データ(厳密には、前景映像を含む実映像についての深度データ)と、を用いてテクスチャマッピングによるレンダリング処理を実行することで、前景の三次元映像が取得される。
【0063】
なお、本システムSでは、テクスチャマッピングを利用しているが、三次元映像を取得するためのレンダリング処理については、テクスチャマッピングを利用したものに限られず、例えばバンプマッピングを利用したレンダリング処理であってもよい。
【0064】
また、深度データにおいては、欠損部分、すなわち、何らかの理由によって深度の計測結果が得られない画素が生じる虞がある。特に、人物映像と背景映像との境界付近(エッジ付近)では欠損部分が発生し易い。このように欠損部分が生じた場合には、欠損部分の位置が特定できるのであれば、テクスチャマッピングにおいて当該欠損部分に対してテクスチャである二次元映像をそのまま貼ればよい。あるいは、その周辺の映像を貼ってもよい。また、深度データを構成する画素のうち、人物映像と対応している画素群において、そのエッジ付近に欠損部分が生じた場合には、テクスチャマッピングにおいて上記の画素群よりも一回り大きい画素群を抽出し、当該画素群に対応する二次元映像を貼ればよい。
【0065】
<<ホームサーバの機能について>>
次に、ホームサーバ1の機能、特に、映像表示処理に関する機能について説明する。なお、Aさん側のホームサーバ1及びBさん側のホームサーバ1の双方は、同様の機能を有しており、対面対話の実施にあたり双方向通信して同様のデータ処理を実行する。このため、以下では、一方のホームサーバ1(例えば、Bさん側のホームサーバ1)の機能のみを説明することとする。
【0066】
ホームサーバ1は、同装置のCPUが対話用プログラムを実行することでホームサーバ1としての機能を発揮し、具体的には、対面対話に関する一連のデータ処理を実行する。ここで、
図7を参照しながら、ホームサーバ1の構成をその機能面、特に映像表示機能の観点から説明する。
図7は、ホームサーバ1の構成を機能面から示した図である。
【0067】
ホームサーバ1は、
図7に示すように、データ送信部11、データ受信部12、背景映像記憶部13、第1深度データ記憶部14、実映像記憶部15、人物映像抽出部16、骨格モデル記憶部17、第2深度データ記憶部18、前景映像抽出部19、高さ検知部20、三次元映像生成部21、合成映像表示部22、判定部23及び顔移動検知部24を備える。これらのデータ処理部は、それぞれ、ホームサーバ1のハードウェア機器(具体的には、CPU、メモリ、通信用インタフェース及びハードディスクドライブ等)がソフトウェアとしての対話用プログラムと協働することによって実現される。以下、各データ処理部について説明する。
【0068】
データ送信部11は、Bさん側のカメラ2が撮像した映像の信号をデジタル化し、映像データとしてAさん側のホームサーバ1へ送信する。ここで、データ送信部11が送信する映像データの種類は、2種類に分類される。一つは、背景映像の映像データであり、具体的には、背景に相当する部屋内にBさんが居ないときに撮像された同室の映像(厳密には、カメラ2の撮像範囲内にある領域の映像)を示すデータである。もう一つは、実映像の映像データであり、Bさんが上記部屋に在室している間に撮像された映像、より具体的にはBさん及びその背景や前景の映像を示すデータである。
【0069】
また、データ送信部11は、背景映像の映像データを送信するにあたり、赤外線センサ4の計測結果に基づいて、背景映像についての深度データを生成し、当該深度データを背景映像の映像データとともに送信する。この深度データは、背景の三次元映像を取得するためのレンダリング処理を実行する際に用いられると共に、背景とカメラ2との間の距離(奥行距離)を特定する際にも用いられる。同様に、データ送信部11は、実映像の映像データを送信するにあたり、赤外線センサ4の計測結果に基づいて、実映像についての深度データを生成し、当該深度データを実映像の映像データとともに送信する。この深度データは、実映像から人物映像(具体的にはBさんの映像)や前景映像を抽出する際に用いられる。また、上記の深度データは、Bさんの三次元映像を取得するためのレンダリング処理、及び、前景の三次元映像を取得するためのレンダリング処理のそれぞれの実行時に用いられる。さらに、上記の深度データは、Bさんとカメラ2との間の距離(奥行距離)を特定する際にも用いられる。
【0070】
データ受信部12は、Aさん側のホームサーバ1から送信されてくる各種データを受信する。データ受信部12が受信するデータの中には、背景映像の映像データ及び背景映像についての深度データ、並びに、実映像の映像データ及び実映像についての深度データが含まれている。ここで、データ受信部12が受信する背景映像の映像データは、背景に相当する部屋内にAさんが居ないときに撮像された同室の映像を示すデータである。このようにデータ受信部12は、背景映像の映像データを受信することで、Aさん側のカメラ2が撮像した背景の映像を取得する。かかる意味で、データ受信部12は、映像取得部に該当すると言える。
【0071】
また、データ受信部12が受信する背景映像についての深度データは、背景の三次元映像を取得するためのレンダリング処理を実行する際に用いられると共に、背景とカメラ2との間の距離(奥行距離)を特定する際にも用いられる。なお、以下では、データ受信部12が受信する背景映像についての深度データを「第1深度データ」と呼ぶこととする。
【0072】
また、データ受信部12が受信する実映像の映像データは、Aさんが上記部屋に在室している間に撮像されたAさん、背景及び前景の映像を示すデータである。また、データ受信部12が受信する実映像についての深度データは、実映像からAさんの映像や前景映像を抽出する際に用いられる。また、上記の深度データは、Aさんの三次元映像を取得するためのレンダリング処理、及び、前景の三次元映像を取得するためのレンダリング処理のそれぞれの実行時に用いられる。さらに、上記の深度データは、Aさんとカメラ2との間の距離(奥行距離)、及び、前景とカメラ2との間の距離(奥行距離)を特定する際にも用いられる。なお、以下では、データ受信部12が受信する実映像についての深度データを「第2深度データ」と呼ぶこととする。
【0073】
以上のようにデータ受信部12は、第1深度データと第2深度データとをAさん側のホームサーバ1から受信することで、背景映像についての深度データ、人物映像についての深度データ、及び前景映像についての深度データをそれぞれ取得する。かかる意味で、データ受信部12は、距離データである深度データを取得する距離データ取得部に該当すると言える。
【0074】
背景映像記憶部13は、データ受信部12が受信した背景映像の映像データを記憶する。第1深度データ記憶部14は、データ受信部12が受信した背景映像についての深度データ、すなわち、第1深度データを記憶する。実映像記憶部15は、データ受信部12が受信した実映像の映像データを記憶する。
【0075】
人物映像抽出部16は、データ受信部12が受信した実映像の映像データを展開し、当該実映像から人物映像(すなわち、Aさんの映像)を抽出する。骨格モデル記憶部17は、人物映像抽出部16が人物映像を抽出する際に用いる骨格モデル(具体的には、Aさんの骨格モデル)を記憶する。第2深度データ記憶部18は、データ受信部12が受信した実映像についての深度データ、すなわち第2深度データを記憶する。
【0076】
人物映像抽出部16は、実映像からAさんの映像を抽出するにあたり、実映像記憶部15から実映像を、第2深度データ記憶部18から実映像についての第2深度データを、それぞれ読み出す。そして、人物映像抽出部16は、読み出した第2深度データ及びカメラ2の撮像映像からAさんの骨格モデルを特定する。特定されたAさんの骨格モデルは、骨格モデル記憶部17に記憶される。その後、人物映像抽出部16は、骨格モデル記憶部17からAさんの骨格モデルを読み出し、当該骨格モデルに基づいて実映像から人物映像、すなわちAさんの映像を抽出する。このように人物映像抽出部16は、実映像から人物映像を抽出することで、Aさん側のカメラ2が撮像したAさんの映像を取得する。かかる意味で、人物映像抽出部16は、映像取得部に該当すると言える。
【0077】
前景映像抽出部19は、データ受信部12が受信した実映像の映像データを展開し、当該実映像から前景映像を抽出する。具体的に説明すると、前景映像抽出部19は、実映像から前景映像を抽出するにあたり、実映像記憶部15から実映像を、第2深度データ記憶部18から当該実映像についての第2深度データを、それぞれ読み出す。そして、前景映像抽出部19は、読み出した第2深度データ中、前景映像と対応する画素群を抽出する。ここで、前景映像と対応する画素群とは、人物映像抽出部16によって第2深度データから抽出された画素群(すなわち、人物映像と対応する画素群)よりも奥行距離が小さい画素群のことである。その後、前景映像抽出部19は、実映像記憶部15から読み出した実映像中、上記の画素群と対応する部分の映像を前景映像として抽出する。このように前景映像抽出部19は、実映像から前景映像を抽出することで、Aさん側のカメラ2が撮像した前景映像を取得する。かかる意味で、前景映像抽出部19は、映像取得部に該当すると言える。
【0078】
高さ検知部20は、Aさん側のホームサーバ1から受信したデータに基づいて、Aさんの目の高さを検知する。具体的に説明すると、高さ検知部20は、第2深度データ記憶部18から第2深度データを読み出し、読み出した第2深度データ中、人物映像と対応する画素群を抽出する。その後、高さ検知部20は、抽出した画素群の中から目に相当する画素を特定し、その特定した画素の位置から目の高さを割り出す。そして、目の高さに関する検知結果については、三次元映像生成部21に引き渡され、三次元映像生成部21は、当該検知結果に応じた三次元映像(特に、人物の三次元映像)を生成するようになる。かかる内容については、次節にて詳しく説明する。
【0079】
なお、目の高さを特定する方法については、特に制限されるものではなく、公知の方法を利用することが可能である。具体的に説明すると、本システムSでは第2深度データに基づいて目の高さを検知することとしたが、これに限定されず、例えば、Aさんの映像を含む実映像を解析して目の高さを検知してもよい。
【0080】
三次元映像生成部21は、3DCGのレンダリング処理を実行して三次元映像を取得する。具体的に説明すると、三次元映像生成部21は、背景映像記憶部13に記憶された背景映像と、第1深度データ記憶部14に記憶された背景映像についての第1深度データと、を用いたレンダリング処理を実行して背景の三次元映像を生成する。なお、三次元映像生成部21は、背景の三次元映像を生成する際、背景映像記憶部13に記憶された背景映像のうち、直近で取得された背景映像を用いることになっている。同様に、第1深度データ記憶部14に記憶された第1深度データについても、直近で取得された第1深度データを用いることになっている。
【0081】
また、三次元映像生成部21は、人物映像抽出部16が抽出した人物映像(具体的にはAさんの映像)と、第2深度データ記憶部18に記憶された第2深度データ(厳密には、第2深度データ中、人物映像と対応する画素群のデータ)とを用いたレンダリング処理を実行して人物(Aさん)の三次元映像を生成する。同様に、三次元映像生成部21は、前景映像抽出部19が抽出した前景映像と、第2深度データ記憶部18に記憶された第2深度データ(厳密には、第2深度データ中、前景映像に相当する画素群のデータ)とを用いたレンダリング処理を実行して前景の三次元映像を生成する。なお、本システムSでは、上述したように、レンダリング処理としてテクスチャマッピングを採用した処理を実行する。
【0082】
合成映像表示部22は、三次元映像生成部21によって生成された背景、人物及び前景のそれぞれの三次元映像を合成し、その合成映像をBさん側のディスプレイ5に表示させる。なお、合成映像表示部22は、三次元映像生成部21によって生成された背景の三次元映像の中から合成映像の中に含める映像、すなわち、表示範囲を選定する。そして、合成映像表示部22は、選定した表示範囲の手前にAさんが位置し、且つAさんの手前に前景が位置した合成映像を、Bさん側のディスプレイ5に表示させる。
【0083】
判定部23は、合成映像表示部22が合成映像をディスプレイ5に表示している期間中(換言すると、Aさん側のカメラ2がAさんの映像を撮像している期間中)、Aさん側のカメラ2とAさんと間の距離(すなわち、Aさんの奥行距離)が変化したかどうかを判定する。かかる判定は、第2深度データ記憶部18に記憶された第2深度データに基づいて行われる。そして、奥行距離が変化したと判定部23が判定すると、その判定結果が合成映像表示部22に引き渡され、合成映像表示部22は、当該判定結果に応じた合成映像をディスプレイ5に表示させる。かかる内容については、次節にて詳しく説明する。
【0084】
顔移動検知部24は、赤外線センサ4の計測結果に基づいて、Bさん側のカメラ2が撮像した実映像についての深度データを生成するとともに、当該深度データから、Bさんの顔の横移動の有無を検知する。具体的に説明すると、合成映像表示部22によって合成映像がディスプレイ5に表示されている期間中、顔移動検知部24は、上記の深度データからBさんの映像に相当する画素群を特定し、当該画素群の位置の変化を監視する。そして、顔移動検知部24は、当該画素群の位置の変化を認識したとき、Bさんの顔が横移動したことを検知する。なお、横移動とは、Bさんの顔がBさん側のディスプレイ5に対して左右方向(ディスプレイ5の幅方向)に移動することである。
【0085】
Bさんの顔が横移動したことの検知結果については、合成映像表示部22に引き渡され、合成映像表示部22は、当該検知結果に応じた合成映像をディスプレイ5に表示させる。かかる内容については、次節にて詳しく説明する。
【0086】
<<対面対話の臨場感を向上させるためのプロセスについて>>
本システムSでは、同システムを用いた対面対話の臨場感を向上させるために、各ユーザの目線や顔の位置に応じて、ディスプレイ5に表示させる映像やその表示サイズを調整・変更することとしている。具体的には、下記(R1)〜(R3)の映像表示プロセスを行う。
(R1)目線高さ合わせ用のプロセス
(R2)顔移動時のプロセス
(R3)奥行距離変化時のプロセス
【0087】
以下、上記3つの映像表示プロセスの各々について個別に説明することとする。なお、以下では、Aさんの三次元映像を含む合成映像をBさん側のディスプレイ5にて表示するケースを例に挙げて説明することとする。
【0088】
<目線高さ合わせ用のプロセスについて>
本システムSでは、前述したように、カメラ2が床から約1mの高さに設置されている。したがって、Aさんの身長次第では、Aさんの目の高さとカメラ2が設置されている高さとが異なってしまう。かかる場合、Bさん側のディスプレイ5に表示されるAさんの映像が、実際にAさんと対面した場合に見えるAさんの姿(像)とは異なったものとなる。
【0089】
具体的に説明すると、Aさんの目の高さがカメラ2の設置高さよりも高くなっている場合、そのカメラ2は、Aさんの顔の映像を下方から撮像することになる。この間、Aさんは、Aさん側のディスプレイ5を正面視しているため、Aさんの目線は正面を向いていることになる。以上の状況下では、
図8の(A)に示すように、Bさん側のディスプレイ5に表示されるAさんの映像(厳密には三次元映像であるが、
図8の(A)では簡略化して図示)が、Aさんの顔を仰視したような映像となってしまう。
図8は、目線高さ合わせ用のプロセスについての説明図であり、図中の(A)は、実際のカメラ位置から撮像したAさんの映像を示している。
【0090】
以上のようにAさんの顔を仰視したような映像がディスプレイ5に表示された場合、その表示映像においてAさんの顔は、
図8の(A)に示すように、目線が正面を向いておらず幾分上方を向いた状態で映し出されることになる。かかる場合には、ディスプレイ5に表示されたAさんの目線と、ディスプレイ5を見ているBさんの目線と、を一致させ難くなり、対面対話の臨場感が損なわれてしまう虞がある。
【0091】
そこで、本システムSでは、Aさんの目の高さとカメラ2の設置高さとが異なるとき、ディスプレイ5に表示されるAさんの目線とディスプレイ5を見ているBさんの目線とを一致させるために、目線高さ合わせ用のプロセスを行うこととしている。当該プロセスについて説明すると、3DCGのレンダリング処理を実行し、Aさんの目の高さと同じ高さにある仮想的な視点から見たAさんの三次元映像を取得することとしている。具体的に説明すると、目線高さ合わせ用のプロセスを行うにあたり、Bさん側のホームサーバ1(厳密には、前述の高さ検知部20)がAさんの目の高さを検知する。一方、Bさん側のホームサーバ1は、Aさん側のカメラ2が設置されている高さに関する情報を記憶している。そして、Aさんの目の高さ及びAさん側のカメラ2の設置高さの双方が異なっているとき、Bさん側のホームサーバ1(厳密には、前述の三次元映像生成部21)は、検知した目の高さにある仮想的な視点から見たときのAさんの三次元映像を取得するためのレンダリング処理を実行する。
【0092】
上記のレンダリング処理について
図8の(B)を参照しながら説明する。
図8の(B)は、カメラ2とAさんの目線との位置関係を示した図である。Bさん側のホームサーバ1は、Aさんの目の高さ及びAさん側のカメラ2の設置高さの双方が異なっているとき、当該双方の差(
図8の(B)では記号Hにて表記)を特定する。また、Bさん側のホームサーバ1は、記憶されている第2深度データに基づいて、AさんとAさん側のカメラ2との間の距離(すなわち、Aさんの奥行距離であり、
図8の(B)では記号Lにて表記)を特定する。その上で、Bさん側のホームサーバ1は、検知したAさんの目の高さと同じ高さに設置された仮想的なカメラ(
図8の(B)において破線にて示す)の撮像方向と、実際のカメラ2の撮像方向と、の間の相違を特定する。具体的には、下記の式(1)にて求められる角度αを上記の相違として算出する。
α=arctan(H/L) (1)
【0093】
そして、Bさん側のホームサーバ1は、角度αの算出結果を用いて、上記の仮想的なカメラから撮像したAさんの映像(三次元映像)を取得するためのレンダリング処理を実行する。具体的には、カメラ2が撮像したAさんの映像(厳密には、実映像から抽出したAさんの映像)と、実映像についての深度データである第2深度データと、を用いたテクスチャマッピングを行い、さらに、算出した角度αに相当する高さだけ視点を変位させる映像処理を行う。これにより、仮想的なカメラから撮像したときのAさんの三次元映像、換言すると、
図8の(C)のように目線が正面を向いたAさんの三次元映像が取得されるようになる。
図8の(C)は、仮想的なカメラ位置から撮像したAさんの映像を示している。
【0094】
その後、Bさん側のホームサーバ1(厳密には、前述の合成映像表示部22)は、上記の手順により取得したAさんの三次元映像と、背景及び前景のそれぞれの三次元映像とを合成し、その合成映像をBさん側のディスプレイ5に表示させる。
【0095】
<顔移動時のプロセスについて>
AさんとBさんとが実際に対面している場面においてBさんの顔が横移動したとき、Bさんの視界(Bさんの目に映る像)は、顔移動に伴って変化する。このような顔移動に伴う見え方の変化を映像表示システムで再現するには、ディスプレイ5に表示される映像を、ディスプレイ5を見ている者の顔の移動に連動させて変化させる必要がある。このため、従来の映像表示システムでは、
図9に示すように、ディスプレイ5を見ている者(例えば、Bさん)の顔が横移動すると、ディスプレイ5に表示されている映像が鉛直軸を中心に回転するように切り替わるようになっていた。具体的には、同図に示すように、表示映像として、左部と右部との間で奥行距離が異なった映像がディスプレイ5に表示されていた。
図9は、従来の映像表示システムの構成例を示した図であり、ディスプレイ5を見ているBさんの移動に連動して表示映像が変化する様子を図示している。
【0096】
しかしながら、AさんとBさんが実際に対面して対話を行っている場面においてBさんの顔が横移動したとき、Bさんが見ているAさんの姿は、上記のように回転することはなく、水平移動するに過ぎない。また、
図9に図示の映像表示システムでは、Bさんの顔が横移動したときに、Aさんの映像及び背景映像の双方を同じ回転量(回転角度)だけ回転させることとしている。このため、
図9に図示の映像表示システムでは、Bさんの顔が横移動した際にディスプレイ5に表示されているAさんの映像が、実際に対面しているときの見え方とは異なる映像となってしまう。
【0097】
これに対して、本システムSでは、Bさんの顔が横移動した際に顔移動時のプロセスを行うこととし、実際にAさんと対面してAさんを見ているときの見え方を正確に反映して、ディスプレイ5に表示される映像(合成映像)を遷移させることとしている。以下、顔移動時のプロセスについて
図10A、
図10B及び
図11を参照しながら説明する。
図10Aは、Bさんの顔が横移動した状況を模式的に示した図である。
図10Bは、Aさん、背景及び前景の各々の奥行距離についての説明図である。
図11は、後述の遷移処理を実行したときの合成映像の変化を示した説明図であり、(A)は、遷移処理前の合成映像を、(B)は、遷移処理後の合成映像を、それぞれ示している。
【0098】
なお、以下では、当初ディスプレイ5の略中央位置に立っていたBさんが横移動したケースを例に挙げて説明することとする。また、以下の説明中、ディスプレイ5の幅方向(すなわち、左右方向)において互いに反対向きである2つの向きの一方を「第一向き」と呼び、他方を「第二向き」と呼ぶ。ここで、第一向きと第二向きの関係は、相対的なものであり、左右方向における一方の向きを第一向きとしたときに、他方の向きが第二向きとなる。したがって、ディスプレイ5を正面視したときに左向きを第一向きとしたときには、右向きが第二向きとなり、反対に、右向きを第一向きとしたときには、左向きが第二向きとなる。
【0099】
Bさん側のホームサーバ1(厳密には、前述の顔移動検知部24)は、Bさん側のディスプレイ5に合成映像を表示している間、Bさんの顔の移動の有無を検知する。そして、Bさんの顔の横移動を検知すると、Bさん側のホームサーバ1は、移動の向き及び移動量を同時に検知する。さらに、Bさん側のホームサーバ1(厳密には、前述の合成映像表示部22)は、Bさんの顔移動に関する検知結果に応じて遷移処理を実行する。遷移処理とは、Bさん側のディスプレイ5に表示されている合成映像を、Bさんの顔の横移動を検知する前の状態から遷移させる処理である。具体的には、合成映像におけるAさんの三次元映像及び前景の三次元映像の表示位置、並びに、背景の三次元映像の中で合成映像中に含まれる範囲(すなわち、表示範囲)の双方を左右方向にずらした状態へ合成映像を遷移させる。
【0100】
遷移処理について詳しく説明すると、本処理では、先ず、合成映像におけるAさんの三次元映像及び前景の三次元映像の表示位置、並びに、背景の三次元映像の表示範囲の各々についてずれ量を設定する。ここで、Bさんの顔が第一向きに移動量xだけ移動した場合を想定すると、各々のずれ量は、Bさんの顔の移動量xと、カメラ2とその被写体(Aさんとその背景及び前景)との間の距離(すなわち、奥行距離)と、に応じて設定される。なお、本システムSでは、ずれ量を設定するにあたり、Bさんの顔の移動量xを移動角度に換算する。移動角度とは、Bさんの視線ラインの変化量を角度にて示したものである。また、視線ラインとは、Bさんの両眼の中央位置からディスプレイ5の中心に向かう仮想直線である。
【0101】
図10Aを参照しながら説明すると、一点鎖線にて図示したラインが、Bさんの顔が移動する前の視線ラインに相当し、二点鎖線にて図示したラインが、移動後の視線ラインに相当する。そして、両視線ラインがなす鋭角、すなわち、
図10A中の角度θが移動角度に相当する。なお、Bさんの顔が移動する前の視線ラインについては、
図10Aに示すように、ディスプレイ5の表示画面の法線方向に沿ったラインとなっているものとする。
【0102】
また、ずれ量を設定するにあたっては、Aさん、背景(例えば、壁)、前景(例えば、Aさんの前にある箱)の各々の奥行距離を特定する。ここで、対面対話中、Aさんの奥行距離は、
図10Bに示すように、Aさん側のカメラ2から基準距離d1だけ離れた位置に維持されるものとする。一方、背景である部屋の壁の奥行距離は、
図10Bに示すように、Aさん側のカメラ2から距離dwだけ離れている。この距離dwは、当然ながら、Aさんの奥行距離である基準距離d1よりも長い距離となっている。また、前景であるAさんの前方に置かれた箱の奥行距離は、
図10Bに示すように、Aさん側のカメラ2から距離dfだけ離れている。この距離dfは、当然ながら、Aさんの奥行距離である基準距離d1よりも短い距離となっている。
【0103】
そして、移動角度θ、並びにAさん、背景及び前景の各々の奥行距離d1、dw、dfが特定された後、合成映像におけるAさんの三次元映像の表示位置、前景の三次元映像の表示位置、及び背景の三次元映像の表示範囲の各々に対してずれ量を設定する。具体的に説明すると、Aさんの三次元映像の表示位置に対するずれ量をt1とすると、当該ずれ量t1は、下記の式(2)によって算出される。
t1=d1×sinθ (2)
【0104】
また、背景の三次元映像の表示範囲に対するずれ量をt2とすると、当該ずれ量t2は、下記の式(3)によって算出される。
t2=dw×sinθ (3)
【0105】
また、前景の三次元映像の表示位置に対するずれ量をt3とすると、当該ずれ量t3は、下記の式(4)によって算出される。
t3=df×sinθ (4)
【0106】
上記のずれ量t1、t2、t3を設定した後には、Aさんの三次元映像の表示位置をずれ量t1だけ、背景の三次元映像の表示範囲をずれ量t2だけ、前景の三次元映像の表示位置をずれ量t3だけ、それぞれ第二向きにずらした状態へ合成映像を遷移させる。これにより、Bさん側のディスプレイ5には、当初、
図11の(A)に図示した合成映像が表示されていたところ、Bさんの顔の横移動に連動して、合成映像が
図11の(B)に図示した状態へ徐々に遷移するようになる。
【0107】
以上までに説明したように、本システムSでは、Bさん側のディスプレイ5に合成映像が表示されている期間中にBさんの顔が第一向きへ移動すると、合成映像におけるAさんの三次元映像の表示位置、前景の三次元映像の表示位置、及び背景の三次元映像の表示範囲が、ともに第二向きにずれるようになる。また、Aさんの三次元映像の表示位置に対するずれ量t1よりも、背景の三次元映像の表示範囲に対するずれ量t2の方が大きくなっている。また、Aさんの三次元映像の表示位置に対するずれ量t1よりも、前景の三次元映像の表示位置に対するずれ量t3の方が小さくなっている。このようにAさんの三次元映像の表示位置、前景の三次元映像の表示位置、及び背景の三次元映像の表示範囲を、それぞれ互いに異なるずれ量だけずらした状態に合成映像を遷移させることにより、Bさん側のディスプレイ5には、Bさんが移動後の顔の位置から実際にAさんを見たときの見え方を反映した映像が表示されるようになる。
【0108】
分かり易く説明すると、仮にBさんが実際にAさんと対面して対話している場合、Bさんの顔が横移動すると、移動後のBさんの位置から見えるものは、当初の位置からずれた位置にあるように見える。ここで、Bさんに対してより近くにあるものほど小さなずれ量だけ当初の位置からずれた位置に見えるようになり、より遠くにあるものほど大きなずれ量だけ当初の位置からずれた位置に見えるようになる。本システムSでは、以上のような見え方を再現すべく、Bさんの顔が横移動したことを検知したとき、Aさんの三次元映像の表示位置、前景の三次元映像の表示位置、及び背景映像の表示範囲をそれぞれ異なるずれ量だけずらすように合成映像を遷移させる。この際、Aさんの三次元映像の表示位置に対するずれ量t1よりも、背景の三次元映像の表示範囲に対するずれ量t2の方が大きくなっている。この結果、遷移処理後の合成映像では、背景のうち、当初の合成映像(Bさんの顔が移動する前の合成映像)では表示されていなかった範囲の映像を見ること、いわゆる覗き込みが可能となる。
【0109】
<奥行距離変化時のプロセスについて>
対面対話の実行時、Aさんは、通常、Aさん側のカメラ2から基準距離d1だけ離れた位置に立っている。このとき、カメラ2が撮像したAさんの映像をディスプレイ5にて表示すると、当該映像は
図12に示すように等身大サイズで表示される。一方、Aさんが上記の位置よりも後方に移動したとき、カメラ2の撮像映像をそのままのサイズにてディスプレイ5にて表示すると、当該映像は、
図12に示すように等身大サイズよりも幾分小さいサイズで表示されるようになる。このような表示サイズの変化は、カメラ2のレンズの光学的特性に起因して不可避的に生じる。なお、
図12は、従来の映像表示システムの構成例を示した図であり、Aさんの奥行距離が大きくなるほどディスプレイ5に表示されるAさんの映像の表示サイズが小さくなる様子を図示している。
【0110】
しかし、BさんとAさんとが実際に対面している場面においてAさんがBさんに対して多少近接又は離間したとしても、Aさんの姿(大きさ)は、Bさんから見たときの見え方(見た目)では殆ど変化しないように見える。そこで、本システムSでは、Aさんの奥行距離が変化したときの実際の見え方を再現すべく、奥行距離変化時のプロセスを行うようにしている。これにより、Bさん側のディスプレイ5に表示されるAさんの映像(厳密には三次元映像)の表示サイズは、Aさんの奥行距離が変化した後にも等身大サイズのままで維持されるようになる。
【0111】
以下、奥行距離変化時のプロセスについて説明する。なお、以下では、Aさんの奥行距離が基準距離d1から、基準距離d1よりも大きい距離d2に変化したケースを想定して説明することとする。奥行距離変化時のプロセスは、Bさん側のディスプレイ5に合成映像が表示されている期間(換言すると、Aさん側のカメラ2がAさんの映像を撮像している期間)においてAさんの奥行距離が変化したときに行われる。具体的には、Bさん側のホームサーバ1(厳密には、前述の判定部23)が、上記期間中、奥行距離の変化の有無を判定する。そして、奥行距離が変化したと判定したとき、Bさん側のホームサーバ1は、これをトリガーとして奥行距離変化時のプロセスを開始する。
【0112】
奥行距離変化時のプロセスにおいて、Bさん側のホームサーバ1(厳密には、合成映像表示部22)は、合成映像におけるAさんの三次元映像の表示サイズを調整する調整処理を実行する。調整処理では、先ず、変化後の奥行距離d2を特定する。その後、特定した変化後の奥行距離d2に基づき、奥行方向においてAさんの位置が変化する前の表示サイズ、すなわち、等身大サイズとなるようにAさんの映像の表示サイズを調整する。具体的に説明すると、Aさんの奥行距離がd1からd2へ変化したとき、調整処理では、Aさんの映像の表示サイズ(厳密には、映像の縦サイズ及び横サイズの各々)に奥行距離の比(d1/d2)に乗じて上記表示サイズを補正する。
【0113】
その後、Bさん側のホームサーバ1は、サイズ補正されたAさんの三次元映像と、背景及び前景の三次元映像とを合成し、その合成映像をディスプレイ5に表示させる。これにより、
図13(A)及び(B)に示すように、Aさんの奥行距離が変化したとしても、当該奥行距離が変化する前の表示サイズにてAさんの映像が表示されるようになる。このようにAさんの奥行距離が変化したときに、実際にAさんと対面しているときの見え方を反映してAさんの三次元映像の表示サイズを調整する結果、本システムSを用いた対面対話の臨場感(リアル感)がより一層向上することとなる。なお、
図13は、調整処理の実行結果についての説明図であり、同図の(A)は、奥行距離が変化する前の合成映像を、同図の(B)は、奥行距離の変化後に調整処理が行われた合成映像を、それぞれ示している。また、
図13の(B)には、表示サイズの比較のために、奥行距離が変化した後であって調整処理が行われる前段階のAさんの映像を破線にて示している。
【0114】
<<映像表示フローについて>>
次に、本システムSを用いた対面対話のうち、映像表示に係る一連のデータ処理、すなわち映像表示フローについて、その流れを説明する。ここで、以下に説明する映像表示フォローにおいては本発明の映像表示方法が適用されている。すなわち、以下では、本発明の映像表示方法に関する説明として、当該映像表示方法を適用した映像表示フローの流れを説明することとする。換言すると、以下に述べる映像表示フロー中の各ステップは、本発明の映像表示方法の構成要素に相当する。
【0115】
なお、以下では、Aさんの三次元映像を含む合成映像をBさん側のディスプレイ5にて表示するケースを例に挙げて説明する。ちなみに、Bさんの三次元映像を含む合成映像をAさん側のディスプレイ5に表示する際の手順についても、下記の手順と略同様となる。
【0116】
映像表示フローは、コンピュータであるBさん側のホームサーバ1が、
図14及び15に示す各ステップを実施することにより進行する。
図14及び15は、映像表示フローの流れを示す図である。具体的に説明すると、先ず、Bさん側のホームサーバ1が、Aさん側のホームサーバ1と通信することで背景映像の映像データ及び背景映像についての深度データ(第1深度データ)を受信する(S001)。これにより、Bさん側のホームサーバ1は、背景映像として、Aさんが対面対話を行う際に利用する部屋の映像を取得する。これと同時に、Bさん側のホームサーバ1は、背景とカメラ2との距離を示すデータ(距離データ)としての第1データを取得する。なお、本ステップS001は、Aさん側のカメラ2が背景映像のみを撮像している間、すなわち、対面対話が行われる部屋にAさんが居ない期間中に行われる。また、取得した背景映像及び第1深度データについては、Bさん側のホームサーバ1のハードディスクドライブ等に記憶される。
【0117】
そして、Bさん側のホームサーバ1は、記憶された背景映像及び第1深度データのうち、直近で取得された背景映像及び第1深度データを読み出し、これらを用いたレンダリング処理としてテクスチャマッピングによる処理を実行する。これにより、Bさん側のホームサーバ1は、背景の三次元映像を取得する(S002)。
【0118】
一方、Aさんが対面対話用の部屋に入室して対面対話を開始すると、同室内に設置されたカメラ2が、Aさんとその背景及び前景を含む映像、すなわち、実映像を撮像する。そして、Aさん側のホームサーバ1が、カメラ2が撮像した実映像の映像データを送信し、Bさん側のホームサーバ1が当該映像データを受信する。これにより、Bさん側のホームサーバ1は、上記の実映像を取得する。また、Aさん側のホームサーバ1は、実映像の映像データの送信と同時に、実映像についての深度データ(第2深度データ)を送信し、Bさん側のホームサーバ1が当該第2深度データを受信する。これにより、Bさん側のホームサーバ1は、上記の第2深度データを、実映像とセットにした状態で取得する(S003)。なお、取得した実映像及び第2深度データについては、Bさん側のホームサーバ1のハードディスクドライブ等に記憶される。
【0119】
その後、Bさん側のホームサーバ1は、取得した実映像から人物映像、具体的にはAさんの映像を抽出する(S004)。具体的に説明すると、Bさん側のホームサーバ1は、前ステップS002で取得した第2深度データと、カメラ2の撮像映像と、に基づいてAさんの骨格モデルを特定した上で、当該骨格モデルに基づいて実映像からAさんの映像を抽出する。
【0120】
そして、Bさん側のホームサーバ1は、前ステップS004にて抽出されたAさんの映像と第2深度データとを用いたレンダリング処理を実行し、具体的にはテクスチャマッピングによる処理を実行する。これにより、Bさん側のホームサーバ1は、人物(Aさん)の三次元映像を取得する(S005)。
【0121】
また、Bさん側のホームサーバ1は、第2深度データに基づいて、ステップS003にて取得した実映像から前景映像を抽出する(S006)。その後、Bさん側のホームサーバ1は、抽出された前景映像と第2深度データとを用いたテクスチャマッピングによるレンダリング処理を実行する。これにより、Bさん側のホームサーバ1は、前景の三次元映像を取得する(S007)。
【0122】
Aさん及び前景の各々の三次元映像を取得した後、Bさん側のホームサーバ1は、これらの三次元映像と、ステップS002にて取得した背景の三次元映像中の所定範囲内にある映像(表示範囲)と、を合成する(S008)。そして、Bさん側のホームサーバ1は、Bさん側のディスプレイ5に合成映像を表示させる(S009)。これにより、Bさん側のディスプレイ5には、背景の三次元映像よりも手前位置にAさんの三次元映像が等身大サイズにて表示され、また、Aさんの三次元映像よりも手前位置に前景の三次元映像が表示されるようになる。
【0123】
ここで、以上までに述べた映像表示フローに係る一連のステップのうち、人物の三次元映像を取得するステップS005について、
図16を参照しながら、より詳細に説明する。
図16は、人物の三次元映像を取得する手順を示した図である。本ステップS005では、先ず、前ステップS004にて抽出されたAさんの映像と第2深度データとを用いたテクスチャマッピングを行う(S011)。これにより、Aさんの三次元映像として、Aさん側のカメラ2が設置されている位置から見た映像が取得される。
【0124】
次に、Bさん側のホームサーバ1が記憶している第1深度データに基づいて、Aさんの目の高さを検知する(S012)。その後、Bさん側のホームサーバ1は、検知したAさんの目の高さとAさん側のカメラ2の設定高さとを対比する(S013)。そして、双方の高さが異なる場合、Bさん側のホームサーバ1は、目線高さ合わせ用のプロセスを行う(S014)。同プロセスにおいて、Bさん側のホームサーバ1は、検知したAさんの目の高さと同じ高さにある仮想的な視点から見たAさんの三次元映像を取得するためのレンダリング処理を行う。厳密には、ステップS011にて取得した三次元映像に対して、前述した式(1)にて算出した角度αに相当する高さだけ視点を変位させる映像処理を施す。これにより、上記の仮想的な視点から見たAさんの三次元映像、すなわち、目線が正面を向いたAさんの三次元映像を取得することが可能となる(S015)。
【0125】
一方、検知したAさんの目の高さとAさん側のカメラ2の設定高さとが一致している場合、Bさん側のホームサーバ1は、ステップS011にて取得した三次元映像を、そのままの状態で以降のステップに用いる。
【0126】
ところで、映像表示フローにおいて、Bさん側のホームサーバ1は、Bさん側のカメラ2が撮像した実映像(Bさん、背景及び前景の映像)を取得すると共に、赤外線センサ4からの計測結果に基づいて上記実映像の深度データ(第2深度データ)を取得する。かかる深度データに基づいて、Bさん側のホームサーバ1は、Bさん側のディスプレイ5に合成映像が表示されている期間中にBさんの顔が横移動したか否かを判定する(S021)。そして、Bさんの顔が横移動したと判定した場合、Bさん側のホームサーバ1は、当該顔の移動の向き及び移動量を、移動前の深度データ及び移動後の深度データに基づいて特定する(S022)。
【0127】
さらに、Bさん側のホームサーバ1は、ステップS003で取得した第2深度データに基づいて、Aさん、背景及び前景の各々の奥行距離を特定する(S023)。その後、Bさん側のホームサーバ1は、ステップS022及びS023において特定した各値に基づいて、次のステップS025で実行する遷移処理において用いるずれ量を算出する(S024)。より具体的に説明すると、本ステップS024では、合成映像におけるAさんの三次元映像の表示位置に対するずれ量t1、背景の三次元映像の中で合成映像の中に含まれる範囲(表示範囲)に対するずれ量t2、及び、合成映像における前景の三次元映像の表示位置に対するずれ量t3を、それぞれ、既述の式(2)〜(4)に従って算出する。
【0128】
そして、Bさん側のホームサーバ1は、ずれ量を算出した後に遷移処理を実行する(S025)。この遷移処理の実行により、ディスプレイ5に表示されている合成映像が、Bさんの顔の横移動を検知する前の状態から遷移する。具体的に説明すると、Bさんの顔が第一向きに横移動したことを検知したとき、Bさん側のホームサーバ1は、遷移処理において、合成映像におけるAさんの三次元映像の表示位置、前景の三次元映像の表示位置、及び、背景の三次元映像の表示範囲を、それぞれ前ステップS024で算出したずれ量だけ第二向きにずらした状態へ合成映像を遷移させる。この際、Aさんの三次元映像の表示位置に対するずれ量よりも、背景の三次元映像の表示範囲に対するずれ量の方がより大きくなっている。また、Aさんの三次元映像の表示位置に対するずれ量よりも、前景の三次元映像の表示位置に対するずれ量の方がより小さくなっている。
【0129】
遷移処理が完了すると、Bさん側のホームサーバ1は、遷移処理後の合成映像、すなわち、Aさんの三次元映像の表示位置、前景の三次元映像の表示位置、及び背景の三次元映像の表示範囲を当初の状態からずらした状態の合成映像をディスプレイ5に表示させる(S026)。これにより、ディスプレイ5には、横移動後のBさんの顔の位置から見たときの見え方を再現した映像が表示されるようになる。なお、前述したように、遷移処理後の合成映像では、Aさんの三次元映像の表示位置に対するずれ量よりも、背景の三次元映像の表示範囲に対するずれ量の方が大きくなっている。このため、Bさんは、背景の三次元映像のうち、当初ディスプレイ5に表示されていなかった映像を左右に顔を動かして覗き見ることが可能となる。
【0130】
また、Bさん側のホームサーバ1は、ステップS003で取得した第2深度データに基づいて、Bさん側のディスプレイ5に合成映像が表示されている期間中にAさんの奥行距離が変化したか否かを判定する(S027)。そして、Aさんの奥行距離が変化したと判定したとき、Bさん側のホームサーバ1は、変化後の第2深度データに基づいて、変化後の奥行距離を特定する(S028)。その後、Bさん側のホームサーバ1は、特定した変化後の奥行距離に応じて、Aさんの三次元映像の表示サイズを調整する(S029)。この際、Bさん側のホームサーバ1は、奥行距離変化後のAさんの三次元映像が奥行距離変化前の表示サイズ、すなわち等身大サイズにて表示されるように表示サイズを調整する。表示サイズの調整が完了した後、Bさん側のホームサーバ1は、サイズ調整後のAさんの三次元映像と、背景及び前景のそれぞれの三次元映像とを合成し、その合成映像をディスプレイ5に表示させる(S030)。これにより、Aさんの奥行距離が変化した後にも、引き続き、ディスプレイ5に表示されるAさんの三次元映像が等身大サイズで表示されるようになる。
【0131】
<<映像表示システムの変形例>>
上述した本システムSの構成では、各ユーザの映像を撮像するカメラ2が一台ずつ設けられていることとした。すなわち、上記の実施形態では、単一のカメラ2にてユーザの映像を撮像し、ディスプレイ5には、単一のカメラ2にて撮像された映像を元にした三次元映像を表示することとした。これに対して、互いに撮像方向から異なる複数のカメラ2にてユーザの映像を撮像すれば、より多くの視点からユーザの映像を取得することが可能となる。この結果、カメラ2の撮像映像を用いたレンダリング処理によって生成されるユーザの三次元映像については、単一のカメラ2のみでは視認され得ない死角領域をより少なくし、三次元映像を見る際の視点(仮想的な視点)の設定位置に対する自由度についても高くなる。
【0132】
以下、複数のカメラ2によってユーザの映像を撮像する構成(以下、変形例)を説明することとする。なお、以下の説明では、先に説明した構成と同様の構成についての説明を省略し、異なる構成のみについて説明することとする。また、以下では、Aさんの映像を上下2台のカメラ2にて撮像するケースを例に挙げて説明することとする。なお、カメラ2の台数、設置箇所及びそれぞれの撮像方向については、以下に説明する内容に限定されず、任意に設定することが可能である。
【0133】
変形例では、
図17に示すように、Aさんの映像を上下2台のカメラ2にて撮像する。
図17は、上下2台のカメラ2にてAさんの映像を撮像する様子を模式的に示した図である。また、上下2台のカメラ2は、それぞれ、互いに異なる位置にてAさんの映像を撮像する。具体的に説明すると、上側のカメラ2は、Aさんの身長よりも幾分高い位置に設置されており、下側のカメラ2は、床面よりも若干上方に設置されている。
【0134】
また、変形例では、ディスプレイ5の映像表示画面(厳密にはタッチパネル5aの前面)を基準面としており、上下2台のカメラ2のそれぞれの撮像方向は、基準面の法線方向に対して鉛直方向に傾いている。撮像方向とは、カメラ2のレンズの光軸方向のことであり、上側のカメラ2の撮像方向は、Aさんに近付くにつれて下降する方向に設定されている。つまり、上側のカメラ2は、Aさんの身体を上方から撮像する。他方、下側のカメラ2の撮像方向は、Aさんに近付くにつれて上昇する方向に設定されている。つまり、下側のカメラ2は、Aさんの身体を下方から撮像する。
【0135】
また、変形例に係る対面対話において、Aさんは、上記の基準位置から基準距離d1だけ離れた位置に立っている。かかる位置にAさんが立っているとき、上側のカメラ2は、Aさんの頭部から腰部までの映像(以下、上半身映像)を撮像し、下側のカメラ2は、Aさんの足から腹部までの映像(以下、下半身映像)を撮像する。さらに、変形例では、カメラ2毎に赤外線センサ4が設けられている。これにより、上下2台のカメラ2の各々が撮像する映像(実映像)について、深度データ(厳密には第2深度データ)を個別に取得することが可能となる。
【0136】
一方、変形例において、Bさん側のホームサーバ1は、カメラ2別にAさんの映像を取得する。具体的に説明すると、Aさん側のホームサーバ1は、上側のカメラ2が撮像した上半身映像を含む実映像の映像データと、下側のカメラ2が撮像した下半身映像を含む実映像の映像データと、を送信する。Bさん側のホームサーバ1は、これらの映像データを取得し、それぞれの映像データが示す実映像の中からAさんの映像、具体的には上半身映像や下半身映像を抽出する。
【0137】
また、変形例において、Bさん側のホームサーバ1は、各カメラ2が撮像した実映像についての深度データを、Aさん側のホームサーバ1からカメラ別に受信する。すなわち、変形例において、Bさん側のホームサーバ1は、Aさんの上半身映像や下半身映像を含む実映像についての深度データを、カメラ別に取得することになる。さらに、変形例において、Bさん側のホームサーバ1(厳密には、三次元映像生成部21)は、カメラ別に取得した実映像及び深度データに基づいて、カメラ別の三次元映像片を生成する工程、すなわち映像片生成工程を行う。
【0138】
具体的に説明すると、映像片生成工程において、Bさん側のホームサーバ1は、上側のカメラ2が撮像した実映像から得られるAさんの上半身映像と、上側のカメラ2が撮像した実映像についての深度データと、を用いてレンダリング処理を行う。これにより、上側のカメラ2の撮像方向から見た三次元映像片、具体的には、
図18に図示したAさんの上半身の三次元映像片が取得される。同様に、映像片生成工程において、Bさん側のホームサーバ1は、下側のカメラ2が撮像した実映像から得られるAさんの下半身映像と、下側のカメラ2が撮像した実映像についての深度データと、を用いたレンダリング処理を行う。これにより、下側のカメラ2の撮像方向から見た三次元映像片、具体的には、
図18に図示したAさんの下半身の三次元映像片が取得される。
図18は、カメラ別に生成した三次元映像片と、後述する結合工程において生成されるAさんの三次元映像と、を示した図である。
【0139】
また、変形例では、Aさんの目を含む部分の映像を撮像するカメラ2(すなわち、上側のカメラ2)の設置高さとAさんの目の高さとが異なっている。このために、変形例では、上述の映像片生成工程中、Aさんの目を含む部分の三次元映像片(具体的には、上半身の三次元映像片)を生成する際に、前述の目線高さ合わせ用のプロセスを行うことになっている。つまり、変形例では、Aさんの目の高さにある仮想的な視点から見たときの上半身の三次元映像片を取得するためのレンダリング処理を実行する。以下、
図19を参照しながら、変形例においてAさんの三次元映像を取得する手順について説明する。
図19は、変形例においてAさんの三次元映像を取得する手順を示した図である。
【0140】
変形例に係る映像表示フローにおいて、Bさん側のホームサーバ1は、Aさんの三次元映像を生成するにあたり、先ず、映像片生成工程を行う(S041)。映像片生成工程において、Bさん側のホームサーバ1は、テクスチャマッピングによるレンダリング処理を実行することで、Aさんの上半身及び下半身のそれぞれの三次元映像片を生成する(S042、S043)。具体的に説明すると、Bさん側のホームサーバ1は、映像片生成工程中、上半身の三次元映像片を生成する際に、上側のカメラ2から見た上半身の三次元映像片を生成する。その後、Bさん側のホームサーバ1は、上側のカメラ2の設置高さとAさんの目の高さとの差を特定すると共に、Aさんと上側のカメラ2との間の距離(奥行距離)を特定する。さらに、Bさん側のホームサーバ1は、これらの特定結果に基づき、その後に行う映像処理で用いる回転角度αを求める。そして、Bさん側のホームサーバ1は、前ステップで生成された上半身の三次元映像片に対して、回転角度αに相当する高さだけ視点を変位させる映像処理を施す。これにより、Aさんの上半身の三次元映像片として、Aさんの目の高さにある仮想的な視点から見たときの三次元映像片が取得されるようになる。すなわち、目線が正面を向いたAさんの上半身の三次元映像片が取得される。
【0141】
また、Bさん側のホームサーバ1は、映像片生成工程中、下半身の三次元映像片を生成するにあたり、下側のカメラ2が撮像した実映像から得られる三次元映像片に対して映像回転処理を実行する。具体的に説明すると、下側のカメラ2は、基準面であるディスプレイ5の表示画面の法線方向とは異なる撮像方向からAさんの下半身の映像を撮像する。そして、Bさん側のホームサーバ1は、下側のカメラ2が撮像した実映像(すなわち、上記の撮像方向にて撮像された映像)と、当該実映像についての深度データと、を用いたテクスチャマッピングを行い、Aさんの下半身の三次元映像片を生成する。この段階で生成される三次元映像片は、下側のカメラ2の撮像方向から見たときの三次元映像片である。
【0142】
一方、Bさん側のホームサーバ1は、下側のカメラ2の撮像方向から見たときの三次元映像片に対して映像回転処理を実行する。この映像回転処理は、下側のカメラ2の撮像方向から見たときの三次元映像片を、基準面であるディスプレイ5の表示画面の法線方向から仮想的に見た場合の三次元映像片へ変換させるための処理である。具体的には、上記の法線方向に対する下側のカメラ2の撮像方向の傾き度合いを角度(傾き角度)にて特定し、当該傾き角度だけ、三次元映像片を回転させる。これにより、Aさんの下半身の三次元映像片として、基準面の法線方向から見たときの三次元映像片が取得されるようになる。なお、上記の映像回転処理は、公知の映像処理によって実現される。
【0143】
上半身及び下半身の各々の三次元映像片を取得した後、Bさん側のホームサーバ1は、Aさんの三次元映像を生成するために上記三次元映像片同士を結合する結合工程を行う(S044)。この結合工程では、上半身及び下半身の各々の三次元映像片を、当該各々の三次元映像片に含まれる共通の映像領域(具体的には、Aさんの腹部の映像を示す領域)同士が重なり合うように結合する。なお、映像片の結合に際して、上半身の三次元映像片のうち、腹部より下の映像を切り捨て、下半身の三次元映像片のうち、腹部より上の映像を切り捨てる。
【0144】
そして、結合工程が完了した時点でAさんの三次元映像が完成する(S045)。かかる三次元映像は、
図18に示すようにAさんを正面(換言すると、基準面の法線方向)から見たときの三次元映像となっている。その後、Bさん側のホームサーバ1(厳密には、合成映像表示部22)は、上記の手順により得られたAさんの三次元映像と、背景及び前景のそれぞれの三次元映像と、を合成し、その合成映像をディスプレイ5に表示させる。この際、Aさんの三次元映像中、三次元映像片の結合部分付近の映像(具体的には、腹部付近)が違和感なく表示されることとなる。
【0145】
分かり易く説明すると、上側のカメラ2が撮像した実映像及びその深度データをそのまま用いて取得した上半身の三次元映像片と、下側のカメラ2が撮像した実映像及びその深度データをそのまま用いて取得した下半身の三次元映像片と、を単に結合させたとする。この場合に得られるAさんの三次元映像をディスプレイ5に表示させると、当該三次元映像中、三次元映像片同士を結合した部分付近が屈曲しているかのように見えてしまう(つまり、直立姿勢に対してやや前屈しているかのように見えてしまう)。これに対して、本変形例では、上半身の三次元映像片を生成する際に目線高さ合わせ用のプロセスを行っている。また、下半身の三次元映像片を生成する際には、深度データを基準面の法線方向から見た映像についてのデータに変換し、変換後の深度データに基づいて三次元映像片を生成する。これにより、三次元映像片同士を結合することで取得されるAさんの三次元映像については、三次元映像片同士の結合部分付近が屈曲して見えるような違和感を抑制することが可能となる。
【0146】
なお、本変形例では、複数のカメラ2(具体的には2台のカメラ2)が上下に並んで配置されていることとしたが、これに限定されるものではない。例えば、2台のカメラ2が左右に並んで配置されていてもよい。かかる場合にも上記と同様の手順にて、三次元映像片(具体的には、左半身及び右半身のそれぞれの三次元映像片)を生成し、三次元映像片同士を結合してAさんの三次元映像を生成することになる。
【0147】
<<その他の実施形態>>
上記の実施形態では、本発明の映像表示システム及び映像表示方法について具体例を挙げて説明した。ただし、上記の実施形態は、本発明の理解を容易にするための一例に過ぎず、本発明を限定するものではない。すなわち、本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【0148】
また、上記の実施形態では、本システムSを通じて二人のユーザ(AさんとBさん)が対面対話をするケースを例に挙げて説明したが、これに限定されるものではなく、同時に対面対話をすることが可能な人数については三人以上であってもよい。
【0149】
また、上記の実施形態では、映像表示に係る一連の工程、厳密にはユーザ(例えばAさん)及びその背景や前景の各々について三次元映像を生成して当該三次元映像同士を合成する工程が、第二のユーザ(例えばBさん)側のホームサーバ1によって実施されることとした。ただし、これに限定されるものではなく、上記一連の工程が、ユーザ(Aさん)側のホームサーバ1によって実施されてもよい。
【0150】
また、上記の実施形態では、背景映像として、背景に相当する空間内にユーザが居ないときに撮像した当該空間の映像を用いることとした。ただし、これに限定されるものではなく、例えば、カメラ2がユーザとその背景を同時に撮像したときの映像、すなわち、実映像から人物映像及び背景映像をそれぞれ分離し、分離された背景映像を用いてもよい。かかる場合には、背景映像のうち、人物映像と重なっている部分の映像が欠落しているので、補完を行う必要がある。これに対して、ユーザが居ないときに撮像した背景映像を用いれば、上記のような映像の欠落がないため、映像補完を行う必要がない分、より容易に背景映像を取得することが可能となる。
【0151】
また、上記の実施形態では、第二のユーザの顔の移動を検知した場合に実行される遷移処理において、合成映像におけるユーザの三次元映像の表示位置、及び、背景の三次元映像において合成映像中に含まれる範囲(表示範囲)の双方をずらすこととした。ただし、これに限定されるものではなく、ユーザの三次元映像の表示位置及び背景の三次元映像の表示範囲のうちの一方のみをずらし、他方については固定する(ずらさない)こととしてもよい。
【0152】
また、上記の実施形態では、遷移処理において、前景の三次元映像の表示位置、Aさんの三次元映像の表示位置、背景の三次元映像の表示範囲の順でずれ量が大きくなることとした。ただし、ずれ量の大小関係については、上記の大小関係と異なっていてもよい。すなわち、背景の三次元映像の表示範囲、Aさんの三次元映像の表示位置、前景映像の表示位置の順で、ずれ量が大きくなってもよい。より具体的に説明すると、Bさん側のディスプレイ5に当初、
図20の(A)に図示した合成映像が表示されているときに、Bさんの顔が横移動すると、第二の遷移処理が実行され、この結果、合成映像が
図20の(B)に図示した状態へ徐々に遷移するようになる。
図20は、第二の遷移処理に関する説明図であり、(A)が第二の遷移処理前の合成映像を、(B)が第二の遷移処理後の合成映像を、それぞれ示している。
【0153】
ところで、先に説明した遷移処理(すなわち、
図11に図示した遷移処理)と、
図20に図示した第二の遷移処理と、では、ディスプレイ5を見ているBさんの視線の向き、厳密には視線が向いている対象が異なっている。分かり易く説明すると、仮にBさんがAさんと実際に対面している場合、Bさんの視線がAさんに向いた状態でBさんの顔が横移動すると、Bさんに対してより遠くにあるものほど大きなずれ量だけ当初の位置からずれた位置に見えるようになる。このような見え方を再現するため、先に説明した遷移処理、すなわち、
図11に図示した遷移処理では、前景の三次元映像の表示位置、Aさんの三次元映像の表示位置、背景の三次元映像の表示範囲の順でずれ量が大きくなっている。これに対して、Bさんの視線がAさんの背景に向いた状態でBさんの顔が横移動すると、Bさんに対してより近くにあるものほど大きくずれ量だけ当初の位置からずれた位置に見えるようになる。このような見え方を再現するため、第二の遷移処理では、背景の三次元映像の表示範囲、Aさんの三次元映像の表示位置、前景映像の表示位置の順で、ずれ量が大きくなっている。
【0154】
なお、遷移処理の実行モードについては、背景の三次元映像の表示範囲のずれ量を最も大きくするモード(先に説明した遷移処理に相当)と、前景の三次元映像の表示位置のずれ量を最も大きくするモード(第二の遷移処理に相当)と、の間で切り替え自在としてもよい。かかる場合には、遷移処理が、そのときのBさんの視線の向きに応じて適切に実行されるようになる。