JP6773126B2 - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP6773126B2
JP6773126B2 JP2018551042A JP2018551042A JP6773126B2 JP 6773126 B2 JP6773126 B2 JP 6773126B2 JP 2018551042 A JP2018551042 A JP 2018551042A JP 2018551042 A JP2018551042 A JP 2018551042A JP 6773126 B2 JP6773126 B2 JP 6773126B2
Authority
JP
Japan
Prior art keywords
space
real
unit
user
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018551042A
Other languages
English (en)
Other versions
JPWO2018092384A1 (ja
Inventor
浩丈 市川
浩丈 市川
佐藤 直之
直之 佐藤
誠司 鈴木
誠司 鈴木
真人 島川
真人 島川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of JPWO2018092384A1 publication Critical patent/JPWO2018092384A1/ja
Application granted granted Critical
Publication of JP6773126B2 publication Critical patent/JP6773126B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/004Annotating, labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Description

本開示は、情報処理装置、情報処理方法、およびプログラムに関する。
従来、例えば臨場感の高いコンテンツを生成することを目的として、実空間をセンシングした結果に基づいてコンテンツを生成する技術が各種提案されている。
例えば、下記特許文献1には、複数のカメラにより撮影された画像に基づいて、自由視点映像を生成する技術が記載されている。
特開2005−4487号公報
しかしながら、特許文献1に記載の技術では、実空間においてセンシングされた全てのオブジェクトが自由視点映像に表示される。このため、例えば、表示されることが望ましくないオブジェクトも自由視点映像に表示されてしまう。
そこで、本開示では、実空間のセンシングに基づいて生成される仮想空間内に配置されるオブジェクトを適切に決定することが可能な、新規かつ改良された情報処理装置、情報処理方法、およびプログラムを提案する。
本開示によれば、第1のユーザに関連し少なくとも1つの第1の実オブジェクトを含む第1の実空間のセンシング結果と、第2のユーザに関連し少なくとも1つの第2の実オブジェクトを含む第2の実空間のセンシング結果とに基づいて前記第1のユーザと前記第2のユーザの間のコミュニケーションのために生成される仮想空間内に配置される共有オブジェクトを、所定の基準に基づいて決定する決定部、を備える、情報処理装置が提供される。
また、本開示によれば、第1のユーザに関連し少なくとも1つの第1の実オブジェクトを含む第1の実空間のセンシング結果と、第2のユーザに関連し少なくとも1つの第2の実オブジェクトを含む第2の実空間のセンシング結果とに基づいて前記第1のユーザと前記第2のユーザの間のコミュニケーションのために生成される仮想空間内に配置される共有オブジェクトを、所定の基準に基づいてプロセッサが決定すること、を含む、情報処理方法が提供される。
また、本開示によれば、コンピュータを、第1のユーザに関連し少なくとも1つの第1の実オブジェクトを含む第1の実空間のセンシング結果と、第2のユーザに関連し少なくとも1つの第2の実オブジェクトを含む第2の実空間のセンシング結果とに基づいて前記第1のユーザと前記第2のユーザの間のコミュニケーションのために生成される仮想空間内に配置される共有オブジェクトを、所定の基準に基づいて決定する決定部、として機能させるための、プログラムが提供される。
以上説明したように本開示によれば、実空間のセンシングに基づいて生成される仮想空間内に配置されるオブジェクトを適切に決定することができる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
第1の実施形態による情報処理システムの構成例を示した説明図である。 第1の実施形態によるクライアント20の構成例を示した機能ブロック図である。 空間2内に位置するオブジェクトのセグメンテーションの例を示した説明図である。 第1の実施形態によるFrameデータの構成例を示した説明図である。 第1の実施形態によるメタ情報306の構成例を示した説明図である。 第1の実施形態による共有空間の生成例を示した説明図である。 第1の実施形態によるサーバ10‐1の構成例を示した機能ブロック図である。 第1の実施形態による共有空間管理部100‐1の詳細な構成例を示した機能ブロック図である。 第1の実施形態の課題を説明するための説明図である。 第1の実施形態による共有空間合成部152の構成例を示した機能ブロック図である。 各オブジェクトに関して算出された優先度の例を示した説明図である。 共有空間におけるオブジェクト42の配置例を示した説明図である。 第1の実施形態の応用例の課題を説明するための説明図である。 先行するフレームのメタ情報を使用する例を示した説明図である。 新たなオブジェクトの表示が開始されることを示すアニメーションの一例を示した図である。 新たなオブジェクトの表示が開始されることを示すアニメーションの一例を示した図である。 新たなオブジェクトの表示が開始されることを示すアニメーションの一例を示した図である。 削除対象のオブジェクトの表示が終了されることを示すアニメーションの一例を示した図である。 削除対象のオブジェクトの表示が終了されることを示すアニメーションの一例を示した図である。 削除対象のオブジェクトの表示が終了されることを示すアニメーションの一例を示した図である。 第2の実施形態による共有空間管理部100‐2の構成例を示した機能ブロック図である。 共有空間管理用DB110の構成例を示した説明図である。 ベース空間レイアウト情報160の構成例を示した説明図である。 レイアウトポリシー情報DB162の構成例を示した説明図である。 オブジェクト管理情報DB164の構成例を示した説明図である。 共有オブジェクトテーブル180の構成例を示した説明図である。 共有オブジェクト関連情報182の構成例を示した説明図である。 第2の実施形態による共有空間の生成例の一部を示した説明図である。 第2の実施形態による共有空間の生成例の一部を示した説明図である。 第2の実施形態による共有空間の生成例の一部を示した説明図である。 第2の実施形態による処理の流れを示したフローチャートである。 第2の実施形態による「ベース空間レイアウト生成処理」の流れを示したフローチャートである。 第2の実施形態による「オブジェクトトラッキング補償処理」の流れを示したフローチャートである。 第2の実施形態による「オブジェクト優先度計算処理」の流れを示したフローチャートである。 第2の実施形態による「オブジェクトレイアウト処理」の流れを示したフローチャートである。 オブジェクトレイアウト評価グラフの生成例を示した説明図である。 レイアウト処理が終了した時点のオブジェクトレイアウト評価グラフの例を示した説明図である。 実空間2におけるユーザ4、複数の実オブジェクト330、および、複数の仮想オブジェクト340の位置関係の例を示した説明図である。 図37に示した状況において上書き表現を用いて自由視点のコンテンツが表示される例を示した説明図である。 図37に示した状況において遮蔽表現を用いて自由視点のコンテンツが表示される例を示した説明図である。 共有空間に参加中の実空間Aおよび実空間Bを示した説明図である。 ユーザ4aから所定の範囲内では遮蔽表現を用い、かつ、ユーザ4aから所定の範囲外では上書き表現を用いて自由視点のコンテンツを表示させる例を示した説明図である。 遮蔽表現の対象となった実オブジェクトを示す表示を自由視点のコンテンツに重畳して表示させる例を示した説明図である。 第2の実施形態の応用例2による共有空間管理用DB110の構成例を示した図である。 同応用例2による設定情報DB112の構成例を示した説明図である。 実空間2a内のユーザ4aが、空間共有を行うことを促す招待メッセージを実空間2b内のユーザ4bに対して発行する例を示した説明図である。 実空間ごとの、当該実空間内のユーザの、ベース空間への集合状態を管理するためのテーブル360の構成例を示した説明図である。 同応用例2による、ベース空間が切り替わることを示すアニメーションの一例を示した図である。 同応用例2による、ベース空間が切り替わることを示すアニメーションの一例を示した図である。 同応用例2による、空間共有の開始時の処理(空間共有の開始時の設定情報を用いた例)の流れの一部を示したフローチャートである。 同応用例2による、空間共有の開始時の処理(空間共有の開始時の設定情報を用いた例)の流れの一部を示したフローチャートである。 同応用例2による、空間共有の開始時の処理(招待用UIを用いた例)の流れの一部を示したフローチャートである。 同応用例2による「共有空間への追加参加時の処理」の流れを示したフローチャートである。 第3の実施形態のストリーム生成部130による処理例を示したフローチャートである。 第3の実施形態の制御情報送信部122による処理例を示したフローチャートである。 第3の実施形態のストリーム生成部226による処理例を示したフローチャートである。 第3の実施形態の認識部224による処理例を示したフローチャートである。 第4の実施形態によるベース空間レイアウト情報160の構成例を示した説明図である。 第4の実施形態によるベース空間レイアウトの例を示した説明図である。 第4の実施形態による情報処理システムの構成例を示した説明図である。 自由視点動画コンテンツサーバ50および自由視点ライブコンテンツサーバ52の構成例を示した機能ブロック図である。 ベース空間レイアウトサーバ54の構成例を示した機能ブロック図である。 第4の実施形態による共有空間管理部100‐4の構成例を示した機能ブロック図である。 第5の実施形態によるベース空間レイアウトエディタの使用例を示した説明図である。 第5の実施形態によるベース空間レイアウトエディタの使用例を示した説明図である。 第6の実施形態による入力部22の構成例を示した機能ブロック図である。 第6の実施形態による表示可否設定エディタの使用例を示した説明図である。 第7の実施形態による二つの空間の合成例を示した説明図である。 第7の実施形態による二つの空間の合成例を示した説明図である。 指差しジェスチャーによる空間合成時の位置関係の指定例を示した説明図である。 握手のジェスチャーによる空間合成時の位置関係の指定例を示した説明図である。 第7の実施形態による処理の流れを示したフローチャートである。 各実施形態に共通するサーバ10のハードウェア構成を示した説明図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書及び図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットを付して区別する場合もある。例えば、実質的に同一の機能構成を有する複数の構成を、必要に応じて入力部22aおよび入力部22bのように区別する。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。例えば、入力部22aおよび入力部22bを特に区別する必要が無い場合には、単に入力部22と称する。
また、以下に示す項目順序に従って当該「発明を実施するための形態」を説明する。
1.第1の実施形態
2.第2の実施形態
3.第3の実施形態
4.第4の実施形態
5.第5の実施形態
6.第6の実施形態
7.第7の実施形態
8.ハードウェア構成
9.変形例
なお、本明細書及び図面において、第1の実施形態によるサーバ10‐1〜第7の実施形態によるサーバ10‐7を総称して、サーバ10と称する場合がある。
<<1.第1の実施形態>>
<1−1.情報処理システムの構成>
{1−1−1.概要}
まず、第1の実施形態について説明する。図1は、第1の実施形態による情報処理システムの構成例を示した説明図である。図1に示すように、第1の実施形態による情報処理システムは、サーバ10‐1、複数のクライアント20、および、通信網26を含む。また、各クライアント20は、入力部22および出力部24を有する。
図1に示すように、第1の実施形態では、複数の実空間2が予め定められており、そして、複数の実空間2の各々には、クライアント20が配置されていることを想定する。ここで、実空間2は、例えば家、店舗、オフィスビル、駅、または、レジャー施設などの施設内の部屋(例えばリビングルームや会議室など)や廊下などであり得る。なお、図1では、実空間2が二つ設けられている例を示しているが、かかる例に限定されず、実空間は三つ以上設けられてもよい。ここで、各実空間は、少なくとも1つの実オブジェクトを含み得る。また、各実空間はそれぞれ、互いに異なる少なくとも1人のユーザに関連し得る。例えば、各実空間内には、一以上のユーザが存在する。但し、かかる例に限定されず、ユーザが存在しない実空間があってもよい。
また、サーバ10‐1と各クライアント20とは、通信網26を介してそれぞれ接続され、そして、データの送受信を行うことが可能である。
ところで、異なる実空間2内に位置するユーザ同士がコミュニケーションを行う場面では、相手のユーザに実物を見せながら話をすることにより、より円滑なコミュニケーションが実現可能となる。例えば、ユーザが商品の説明を行う場面では、商品自体や商品の模型などを相手のユーザに見せながら説明する方が、相手のユーザは説明をより理解しやすい。
また、コミュニケーションの状況によっては、ユーザの近くに位置する物体だけでなく、当該ユーザから離れて位置する物体(例えばコミュニケーションを行うユーザ間で話題になっている物体など)も相手のユーザに閲覧させることが望ましい場合もある。そこで、サーバ10‐1は、コミュニケーションを行う各ユーザが位置する各実空間2の略全体の3Dデータを合成することにより、自由視点のコンテンツを生成する。そして、各ユーザは自由視点のコンテンツを同時に視聴することにより、あたかも同じ空間内に位置するような体験をしながら、自由にコミュニケーションを行うことができる。以下、クライアント20およびサーバ10‐1の内容についてより詳細に説明を行う。
{1−1−2.入力部22}
入力部22は、入力部22が配置されている実空間をセンシングする。例えば、入力部22は、当該実空間をセンシングすることにより、当該実空間内の各オブジェクト(物体)の3Dデータなどをセンシング結果として取得する。そして、入力部22は、取得したセンシング結果をサーバ10‐1へ送信する。なお、センシング結果は、センシングされるデータ、または、センシングによって得られる信号を含み得る。
図2は、クライアント20(入力部22および出力部24)の構成例を示した機能ブロック図である。図2に示すように、入力部22は、センサ部220、制御情報受信部222、認識部224、ストリーム生成部226、および、送信部228を有する。
(1−1−2−1.センサ部220)
センサ部220は、センサ部220が配置されている実空間内の3Dデータなどの各種の情報をセンシングする。例えば、センサ部220は、複数のデプスカメラ、および、複数のRGBカメラを有し得る。そして、当該複数のデプスカメラの各々が、当該デプスカメラの前方に位置するオブジェクトまでの距離情報を検出することにより、センサ部220は、該当の実空間の略全体の3Dデータを取得し得る。また、当該複数のRGBカメラの各々は、撮像することにより2D画像を取得し得る。ここで、3Dデータの形式は、例えばポイントクラウド(点群)や3Dメッシュ(ポリゴン)など、任意の形式であり得る。なお、センサ部220が有する複数のカメラ間は相互に接続され、フレーム同期が行われ得る。
‐セグメンテーション処理
例えば、センサ部220は、フレーム単位で、まず、ポイントクラウドデータを生成し、そして、生成したポイントクラウドデータに基づいて、オブジェクトの分離処理(セグメンテーション処理)を行う。そして、センサ部220は、分離された各オブジェクトに関して、センサ部220が配置されている実空間2において当該オブジェクトが占める領域の情報を特定する。さらに、センサ部220は、当該各オブジェクトに対してオブジェクトIDを付与する。ここで、オブジェクトIDは、各オブジェクトを一意に識別するためのIDである。
ここで、図3を参照して、上記の内容についてより詳細に説明する。図3に示したように、例えば、実空間2a内のセンサ部220aは、オブジェクト42aおよびオブジェクト42bをそれぞれセグメンテーションし、そして、オブジェクト42aのオブジェクトIDとして「1」、オブジェクト42bのオブジェクトIDとして「2」をそれぞれ設定する。同様に、実空間2b内のセンサ部220bは、図3に示したように、オブジェクト42cおよびオブジェクト42dをそれぞれセグメンテーションし、そして、オブジェクト42cのオブジェクトIDとして「1」、オブジェクト42dのオブジェクトIDとして「2」をそれぞれ設定する。
‐モデリング処理
また、センサ部220は、分離された各オブジェクトに関してモデリング処理を行い、3Dメッシュを生成することが可能である。
また、センサ部220は、当該各オブジェクトと、センサ部220が撮影した2D画像との対応関係を示す2D画像相関情報をさらに生成する。ここで、2D画像相関情報は、各オブジェクトが、撮影された2D画像内のいずれの位置にそれぞれ対応するかを示す情報である。
また、センサ部220は、分離された各オブジェクトの特徴量などに基づいて、各オブジェクトのトラッキング処理を行うことも可能である。そして、センサ部220は、連続するフレーム間で同一と判定されるオブジェクトに関しては、当該オブジェクトに付与されているオブジェクトIDを変更しない。
また、センサ部220は、一以上のマイクロフォンをさらに有し得る。そして、センサ部220は、該当の実空間内の音を集音し得る。
‐出力
また、センサ部220は、一フレームごとにセンシング結果を出力する。例えば、センサ部220は、一フレームごとに、撮影した2D画像、取得した各オブジェクトの3Dデータ、および2D画像相関情報を含むFrameデータを出力する。なお、当該Frameデータは、集音された音声データをさらに含んでもよい。
なお、センサ部220は、単一のデバイス(例えばカメラなど)により構成されてもよいし、または、複数のデバイスにより構成されてもよい。なお、複数のデバイスにより構成される場合には、当該複数のデバイスによりセンシングされるデータ(3Dデータなど)が、例えばキャリブレーションやフレーム同期処理などにより精度良く合成され得る。
(1−1−2−2.制御情報受信部222)
制御情報受信部222は、サーバ10‐1から第1の制御情報を受信する。また、制御情報受信部222は、受信した第1の制御情報を認識部224およびストリーム生成部226へ伝達する。ここで、第1の制御情報は、例えば、後述する認識部224による認識処理に関する指示の情報や、後述するストリーム生成部226によるストリームの生成に関する指示の情報を含み得る。
(1−1−2−3.認識部224)
‐認識
認識部224は、センサ部220から伝達されるFrameデータに基づいて、各種の認識処理を行う。例えば、認識部224は、当該Frameデータに含まれる3Dデータに基づいて認識処理を行ってもよいし、または、当該Frameデータに含まれる2D画像に基づいて認識処理を行ってもよい。
例えば、認識部224は、当該Frameデータに基づいてオブジェクトの種別の認識を行う。そして、認識部224は、人と判定したオブジェクトに対しては顔認識、ボーン認識、および、手指認識をさらに行う。また、認識部224は、(サーバ10により生成される)自由視点のコンテンツの利用を開始するためのユーザの操作や、当該自由視点のコンテンツの利用を終了するためのユーザの操作を認識することが可能である。なお、これらの操作の具体的な内容については後述する。
また、第1の制御情報が制御情報受信部222から伝達された場合には、認識部224は、さらに当該第1の制御情報に従って、認識処理を行うことも可能である。
‐出力
また、認識部224は、認識処理の結果を、伝達されたFrameデータに付加し、そして、付加後のFrameデータをストリーム生成部226へ伝達する。例えば、認識部224は、まず、例えば人と判定されたオブジェクトに対する認識処理の結果に基づいてメタ情報、ボーン認識情報、および、手指認識情報を生成する。そして、認識部224は、これらの情報を、伝達されたFrameデータに付加する。
図4は、Frameデータの構成例(Frameデータ30)を示した説明図である。図4に示すように、Frameデータ30は、例えば、2Dカメラ画像300、3Dオブジェクト302、オーディオデータ304、メタ情報306、ボーン認識情報308、および、手指認識情報310を有する。ここで、2Dカメラ画像300は、センサ部220により撮影された、該当のフレームの2D画像が格納される。また、3Dオブジェクト302は、センサ部220による撮影に基づいて、該当のフレームにおいて特定された個々のオブジェクトの3Dデータが格納される。例えば、3Dオブジェクト302は、オブジェクトごとに、オブジェクトID、当該オブジェクトの点(位置および色)、および、当該オブジェクトの面の情報を有する。さらに、3Dオブジェクト302は、2D画像相関情報を有する。なお、ここで述べる3Dオブジェクトには、床や壁といった実空間から移動できない平面的なオブジェクトは含まないものと見做されても良い。
また、オーディオデータ304は、センサ部220により録音された、該当のフレーム時の音声のデータが格納される。また、ボーン認識情報308には、例えば認識部224により認識された、個々のオブジェクトに関するボーン認識の結果が格納される。例えば、ボーン認識情報308には、認識されたボーンごとに、当該ボーンを有するオブジェクトのオブジェクトID、当該オブジェクトの種類、および、当該ボーンの領域の情報などが格納される。また、手指認識情報310には、例えば認識部224により認識された、個々のオブジェクトに関する手や指の認識の結果が格納される。例えば、手指認識情報310には、認識された手や指ごとに、当該手または指を有するオブジェクト(人など)のオブジェクトID、当該オブジェクトの種類、および、当該手または指の領域の情報などが格納される。
また、メタ情報306は、3Dオブジェクト302に格納されている個々のオブジェクトに関する情報(例えば属性など)である。図5は、メタ情報306の構成例を示した説明図である。図5に示したように、メタ情報306は、例えば、オブジェクトID3060、領域3064、種類3066、元空間3068、人物3070、接触情報3072、および、近隣情報3074を含む。ここで、オブジェクトID3060には、該当のオブジェクトに割り当てられているオブジェクトIDが格納される。また、領域3064には、該当のオブジェクトが位置する領域の情報が格納される。また、種類3066には、予め認識された該当のオブジェクトの種類が格納される。また、元空間3068には、該当の実空間の識別情報が記録される。また、人物3070には、該当のオブジェクトが人である場合に、予め顔認識などにより特定された当該人の識別情報(名前など)が格納される。また、接触情報3072には、該当の実空間において該当のオブジェクトと接触していると認識されたオブジェクトの情報(例えばオブジェクトIDなど)が格納される。また、近隣情報3074には、該当の実空間において該当のオブジェクトの近くに位置すると認識されたオブジェクトの情報(例えばオブジェクトIDなど)が格納される。
(1−1−2−4.ストリーム生成部226)
ストリーム生成部226は、認識部224から伝達されるFrameデータに基づいて、ストリームを生成する。そして、ストリーム生成部226は、生成したストリームを送信部228へ伝達する。例えば、ストリーム生成部226は、まず、認識部224から伝達される各種の情報を多重化することにより一つのストリームを生成し、そして、当該一つのストリームを送信部228へ伝達してもよい。または、ストリーム生成部226は、認識部224から伝達される各種の情報からそれぞれ別々のストリームを生成し、そして、生成した各ストリームを送信部228へ伝達してもよい。
なお、第1の制御情報が制御情報受信部222から伝達された場合には、ストリーム生成部226は、認識部224から伝達された情報の中から、当該第1の制御情報が指定する一部の情報を抽出し、そして、抽出した情報のみを含むストリームを生成してもよい。そして、ストリーム生成部226は、当該ストリームを送信部228へ伝達してもよい。
(1−1−2−5.送信部228)
送信部228は、ストリーム生成部226から伝達されたストリームをサーバ10‐1へ送信する。
{1−1−3.サーバ10‐1}
サーバ10‐1は、本開示における情報処理装置の一例である。サーバ10‐1は、ユーザ4aが位置する実空間2aのセンシング結果と、ユーザ4bが位置する実空間2bのセンシング結果とに基づいて、ユーザ4aおよびユーザ4bの間のコミュニケーションのための(仮想の)共有空間を生成し得る。ここで、実空間2aは、本開示における第1の実空間の一例であり、また、実空間2bは、本開示における第2の実空間の一例である。例えば、サーバ10‐1は、複数の実空間2の各々の入力部22から受信されるストリーム(つまり、当該実空間2のセンシング結果)に基づいて当該共有空間を生成し得る。一例として、サーバ10‐1は、各実空間2内の入力部22から受信されるストリームを合成することにより共有空間を生成する。
また、サーバ10‐1は、実空間2a内の第1の実オブジェクトに対応する第1の仮想オブジェクト、および、実空間2b内の第2の実オブジェクトに対応する第2の仮想オブジェクトのうちの少なくとも一以上を、共有オブジェクトとして当該共有空間内に配置し得る。
図6は、共有空間の生成例を示した説明図である。図6に示したように、例えば、共有空間生成部102は、実空間2aの入力部22から受信されるストリームに含まれるオブジェクト42aおよびオブジェクト42bの3Dデータと、実空間2bの入力部22から受信されるストリームに含まれるオブジェクト42cおよびオブジェクト42dの3Dデータとを、共有オブジェクトとして共有空間40内にそれぞれ配置することにより、共有空間40を生成する。
また、サーバ10‐1は、生成した共有空間に基づいて自由視点のコンテンツを生成し、そして、当該コンテンツを各実空間2の出力部24へそれぞれ送信する。
図7は、サーバ10‐1の構成例を示した機能ブロック図である。図7に示すように、サーバ10‐1は、共有空間管理部100‐1、および、複数のクライアント接続部120を有する。なお、配置されているクライアント20ごとに、クライアント接続部120は一つずつ設けられ得る。また、クライアント接続部120とクライアント20との組(接続関係)は予め定められ得る。
(1−1−3−1.クライアント接続部120)
クライアント接続部120は、共有空間管理部100‐1から伝達される情報を接続先のクライアント20へ送信する。また、クライアント接続部120は、接続先のクライアント20から受信される情報を共有空間管理部100‐1へ伝達する。
また、図7に示すように、各クライアント接続部120は、制御情報送信部122、ストリーム分離部124、受信部126、制御情報受信部128、ストリーム生成部130、および、送信部132を有する。
(1−1−3−2.受信部126)
受信部126は、接続先の入力部22からストリームを受信する。そして、受信部126は、受信したストリームをストリーム分離部124へ伝達する。
(1−1−3−3.ストリーム分離部124)
ストリーム分離部124は、受信部126から伝達されたストリームに対して例えば逆多重化などを行うことにより、一フレームごとに3Dデータとメタ情報とに分離する。そして、ストリーム分離部124は、分離後の3Dデータとメタ情報とを、後述する共有空間生成部102へ伝達する。
(1−1−3−4.制御情報送信部122)
制御情報送信部122は、共有空間生成部102の指示に基づいて、接続先のクライアント20(入力部22)へ第1の制御情報を送信する。例えば、制御情報送信部122は、共有空間生成部102により決定される、望ましい3Dデータまたはメタ情報に関する情報を第1の制御情報として生成し、そして、当該第1の制御情報を入力部22へ送信する。これにより、ネットワーク帯域の利用を節約したり、また、クライアント20側での認識処理を軽減させることが可能となる。
例えば、特定の実空間の3Dデータの一部を共有空間生成部102が利用しないことが決定された場合には、制御情報送信部122は、当該決定の内容を第1の制御情報に含めて、第1の制御情報を生成し、そして、当該第1の制御情報を該当の実空間の入力部22へ送信する。これにより、送信先の入力部22は、該当のデータをサーバ10‐1へ送信しないように制御することが可能となる。
(1−1−3−5.制御情報受信部128)
制御情報受信部128は、接続先の出力部24から第2の制御情報を受信する。また、制御情報受信部128は、受信した第2の制御情報を共有空間生成部102およびストリーム生成部130へ伝達する。ここで、第2の制御情報は、例えば、後述する(出力部24の)表示部246の位置や姿勢などの検出結果などの情報を含み得る。
(1−1−3−6.ストリーム生成部130)
ストリーム生成部130は、共有空間生成部102により生成される共有空間Frameデータに基づいて、接続先のクライアント20用のストリームを生成する。ここで、共有空間Frameデータは、共有空間に関する自由視点のコンテンツの、一フレーム分のデータであり得る。例えば、共有空間Frameデータは、共有空間内の各オブジェクトの3Dデータおよびメタ情報などを含む。
例えば、ストリーム生成部130は、生成された共有空間の3Dデータおよびメタ情報などを多重化することにより、当該ストリームを生成する。なお、第2の制御情報が制御情報受信部128から伝達された場合には、ストリーム生成部130は、さらに当該第2の制御情報に基づいて、当該ストリームを生成することも可能である。例えば、ストリーム生成部130は、当該第2の制御情報が指示する、表示不要な3Dデータを生成対象のストリームから除外したり、または、画質を低下させるなどの処理を行うことにより、当該ストリームを生成する。
また、ストリーム生成部130は、生成したストリームを送信部132へ伝達する。
(1−1−3−7.送信部132)
送信部132は、ストリーム生成部130から伝達されたストリームを、接続先のクライアント20の出力部24へ送信する。
(1−1−3−8.共有空間管理部100‐1)
共有空間管理部100‐1は、後述するCPU(Central Processing Unit)900やRAM(Random Access Memory)904などを用いて、サーバ10‐1の動作を統括的に制御する。また、共有空間管理部100‐1は、各クライアント接続部120から伝達される、各実空間2内のクライアント20から受信されたFrameデータおよび第2の制御情報に基づいて、自由視点のコンテンツ(共有空間Frameデータ)を生成する。また、共有空間管理部100‐1は、生成した自由視点のコンテンツを各クライアント接続部120へ伝達する。
図8は、共有空間管理部100‐1のより詳細な構成例を示した機能ブロック図である。図8に示すように、共有空間管理部100‐1は、共有空間生成部102、認識部104、イベント認識部106、および、制御部108を有する。
(1−1−3−9.認識部104)
認識部104は、共有空間生成部102により生成される共有空間Frameデータに基づいて、例えば顔認識、手指認識、または、ボーン認識などの各種の認識処理を行う。詳細については後述するが、例えば、認識部104は、まず、共有空間Frameデータを共有空間FrameデータDB156からフレーム順に取得する。そして、認識部104は、取得した共有空間Frameデータに基づいて各種の認識処理を行い、そして、認識した結果をイベント認識部106へ伝達する。
なお、認識部104は、複数のクライアント20の各々から受信されたストリームから得られるメタ情報を用いることにより、認識処理を軽減すること(一部の処理を省略するなど)も可能である。
(1−1−3−10.イベント認識部106)
イベント認識部106は、認識部104から伝達される時系列の情報に基づいて、イベント情報を生成する。例えば、生成された共有空間にユーザが参加しており、かつ、当該共有空間上に配置されている机に対してユーザが指差したことが認識された場合には、イベント認識部106は、当該机を指差したことをイベント情報として生成する。また、あるユーザが位置する実空間内の机の上のラップトップ型PC(Personal Computer)を当該ユーザが持ち上げたことが認識された場合には、イベント認識部106は、当該ラップトップ型PCを持ち上げたことをイベント情報として生成する。
また、イベント認識部106は、生成したイベント情報を制御部108へ伝達する。
(1−1−3−11.制御部108)
制御部108は、イベント認識部106から伝達されるイベント情報に基づいて、第3の制御情報を生成する。そして、制御部108は、生成した第3の制御情報を共有空間生成部102へ伝達する。ここで、第3の制御情報は、共有空間生成部102による共有空間の生成時に利用される情報であり得る。
(1−1−3−12.共有空間生成部102)
共有空間生成部102は、複数のクライアント20の各々から受信されたストリームから得られるFrameデータおよびメタ情報に基づいて、共有空間Frameデータを生成する。また、図8に示すように、共有空間生成部102は、同期部150、共有空間合成部152、配信部154、および、共有空間FrameデータDB156を有する。
(1−1−3−13.同期部150)
同期部150は、複数のクライアント20の各々から受信されたFrameデータおよび第2の制御情報に関して、タイミングが同じである情報ごと(例えば、一フレームごと)に纏めて共有空間合成部152へ順次伝達する。
(1−1−3−14.共有空間合成部152)
共有空間合成部152は、同期部150から伝達される各実空間のFrameデータに基づいて、共有空間Frameデータを生成する。また、共有空間合成部152は、生成した共有空間Frameデータを共有空間FrameデータDB156へ格納する。
例えば、自由視点のコンテンツが未生成である場合には、共有空間合成部152は、まず、所定の開始条件に基づいて、自由視点のコンテンツを生成するか否かを決定する。そして、自由視点のコンテンツを生成することを決定した場合には、共有空間合成部152は、自由視点のコンテンツ(共有空間Frameデータ)を生成する。一例として、所定の開始条件が成立した場合には、共有空間合成部152は、自由視点のコンテンツを生成することを決定する。また、所定の開始条件が成立しない場合には、共有空間合成部152は、自由視点のコンテンツを生成しないことを決定する。
‐開始条件:相手のユーザの選択
ここで、所定の開始条件は、共有空間が生成されていない(以下、空間共有が開始されていないと称する場合がある)状況において、あるユーザ4aが、(空間共有を開始するために)空間共有を希望する相手のユーザ4bを選択する操作を行ったことが検出されることを含み得る。なお、相手のユーザの選択方法としては、例えば、ユーザ4aが閲覧する表示部246に表示されるユーザリストの中から、例えば所定の入力装置に対する操作、ジェスチャー、視線操作、または、発話などにより相手のユーザ4bを選択することであってもよい。または、ユーザ4aが相手のユーザ名を直接発話することにより相手のユーザ4bが選択されてもよい。
‐開始条件:空間の選択
また、所定の開始条件は、空間共有がなされていない状況において、あるユーザ4aが、(空間共有を開始するために)共有空間の基となる実空間を選択する操作を行ったことが検出されることを含み得る。なお、実空間の選択方法としては、例えば、ユーザ4aが閲覧する表示部246に表示される空間リストの中から、例えば所定の入力装置に対する操作、ジェスチャー、視線操作、または、発話などにより、空間共有を希望する実空間をユーザ4aが選択することであってもよい。または、ユーザ4aが、所望の実空間の名前を直接発話することにより、当該実空間が選択されてもよい。
(1−1−3−15.配信部154)
配信部154は、共有空間合成部152により生成された共有空間Frameデータに基づいて、実空間ごとに、当該実空間内の出力部24へ送信されるFrameデータを生成する。そして、配信部154は、生成した各Frameデータを、当該Frameデータの送信先の実空間に対応するクライアント接続部120へそれぞれ伝達する。
{1−1−4.出力部24}
出力部24は、サーバ10‐1から受信されるストリーム(例えば自由視点のコンテンツ)を出力する。これにより、該当の実空間内のユーザは、出力されたコンテンツを視聴することにより、あたかも、生成された共有空間の内部に位置するような体験をすることができる。
出力部24は、例えばHMD(Head Mounted Display)やAR(Augumented Reality)グラスなどのウェアラブルデバイスであり得る。なお、HMDは遮蔽型であってもよいし、ビデオ透過型であってもよい。また、出力部24は、ウェアラブルデバイスである例に限定されず、例えばプロジェクタであり、かつ、サーバ10から受信されるストリームを、該当の実空間内の投影対象(例えば壁など)に投影してもよい。または、出力部24は、複数のデバイスの組み合わせ(例えば、ARグラスおよびプロジェクタの組み合わせなど)により構成されてもよい。なお、以下では、出力部24がウェアラブルデバイスである例を中心として説明を行う。
ここで、図2を再び参照して、出力部24の構成について具体的に説明する。図2に示すように、出力部24は、受信部240、ストリーム分離部242、合成部244、表示部246、センサ部248、認識部250、および、制御情報送信部252を有する。
(1−1−4−1.受信部240)
受信部240は、サーバ10‐1からストリームを受信する。また、受信部240は、受信したストリームをストリーム分離部242へ伝達する。
(1−1−4−2.ストリーム分離部242)
ストリーム分離部242は、受信部240から伝達されたストリームに対して例えば逆多重化などを行うことにより、当該ストリームを分離する。また、ストリーム分離部242は、分離したデータを合成部244へ伝達する。または、ストリーム分離部242は、分離したデータを表示部246へ伝達してもよい。
(1−1−4−3.合成部244)
合成部244は、ストリーム分離部242から伝達されるデータと、認識部250から伝達される認識結果(例えば、表示部246の位置や姿勢などの認識結果など)とに基づいて、3D映像(例えばVR(Virtual Reality)映像やAR映像など)を生成(レンダリング)する。また、合成部244は、生成した映像を表示部246へ伝達する。
(1−1−4−4.表示部246)
表示部246は、合成部244により生成された映像、または、ストリーム分離部242から伝達される映像データを表示する。
表示部246は、例えば液晶ディスプレイ(LCD:Liquid Crystal Display)や、OLED(Organic Light Emitting Diode)などから構成され得る。または、表示部246は、透過型のディスプレイ上に映像を表示してもよい。または、表示部246は、プロジェクタであってもよい。
(1−1−4−5.センサ部248)
センサ部248は、例えばRGBカメラ、GPS(Global Positioning System)受信機、加速度センサ、ジャイロスコープ、および、地磁気センサなどの各種のセンサを含み得る。例えば、センサ部248は、表示部246の位置および姿勢などに関する情報を検出する。また、センサ部248は、検出した情報を認識部250へ伝達する。
なお、センサ部248は、単一のデバイスにより構成されてもよいし、または、複数のデバイスにより構成されてもよい。なお、複数のデバイスにより構成される場合には、当該複数のデバイスによりセンシングされる情報(画像など)が、キャリブレーションやフレーム同期処理などにより精度良く合成され得る。
(1−1−4−6.認識部250)
認識部250は、センサ部248から伝達される情報に基づいて、表示部246の位置および姿勢などの認識処理を行う。また、認識部250は、さらに、ユーザの視点位置の認識を行ってもよい。
また、認識部250は、認識した結果を合成部244および制御情報送信部252へ伝達する。
(1−1−4−7.制御情報送信部252)
制御情報送信部252は、認識部250から伝達される認識結果(表示部246の位置および姿勢の認識結果など)を第2の制御情報としてサーバ10‐1へ送信する。
{1−1−5.通信網26}
通信網26は、通信網26に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、通信網26は、電話回線網、インターネット、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、通信網26は、IP−VPN(Internet Protocol−Virtual Private Network)などの専用回線網を含んでもよい。
{1−1−6.変形例}
(1−1−6−1.変形例1)
なお、第1の実施形態による情報処理システムの構成は、上述した例に限定されない。例えば、上記の説明では、入力部22および出力部24が実空間ごとにそれぞれ一つずつ配置される例を説明したが、かかる例に限定されず、入力部22および出力部24は、当該情報処理システムにおいてそれぞれ一以上配置されればよい。また、入力部22のみ、または、出力部24のみが配置される実空間が存在してもよい。
(1−1−6−2.変形例2)
また、サーバ10‐1は、クラウド上のサーバとして構成されてもよいし、または、関連するクライアント20上に構成されてもよい。
また、上記の説明では、共有空間管理部100‐1が、一つのサーバ(つまりサーバ10‐1)に含まれる例を説明したが、かかる例に限定されない。例えば、複数台のコンピュータ(図示省略)が協同して動作することにより、共有空間管理部100‐1の機能が実現されてもよい。または、上述した共有空間管理部100の機能は、各クライアント20上に分散配置され、かつ、それらが協調して動作するように構成されてもよい。
(1−1−6−3.変形例3)
また、クライアント20は、単一のデバイスとして構成されてもよいし、または、複数のデバイスにより構成されてもよい。
また、上記の説明では、入力部22のセンサ部220と、出力部24のセンサ部248とが別々に設けられる例について説明したが、かかる例に限定されない。例えば、センサ部220およびセンサ部248は一体的に構成され、かつ、このセンサ部を入力部22と出力部24とが共有してもよい。同様に、入力部22の認識部224、および、出力部24の認識部250は一体的に構成され、かつ、この認識部を入力部22と出力部24とが共有してもよい。
(1−1−6−4.変形例4)
また、上記の説明では、(入力部22の)認識部224、(出力部24の)認識部250、および、(サーバ10の)認識部104が設けられる例について説明したが、かかる例に限定されず、認識部224、認識部250、および、認識部104のうちいずれか一個または二個は設けられなくてもよい。そして、この場合、他の認識部が、設置されない認識部に対応する処理をさらに行うように構成されてもよい。
(1−1−6−5.変形例5)
また、上記の説明では、入力部22のストリーム生成部226、および、サーバ10‐1のストリーム生成部130が多重化処理を行う例について説明したが、かかる例に限定されず、ストリーム生成部226およびストリーム生成部130は、多重化処理を行わなくてもよい。つまり、多重化処理がされずに、サーバ10‐1とクライアント20との間でデータが送信されてもよい。
{1−1−7.課題の整理}
以上、第1の実施形態による情報処理システムの構成について説明した。ところで、複数の実空間の入力部22から送信された3Dデータを合成する際に、仮に無条件に3Dデータを合成すると、異なる実空間内のオブジェクト同士が重なり得る。例えば、図9に示したように、実空間A内のオブジェクト42aと実空間B内のオブジェクト42dとが、共有空間40内で同じ位置に配置されることにより重なってしまう。その結果、表示される映像がユーザに不自然に知覚され得る。
そこで、上記事情を一着眼点にして、第1の実施形態によるサーバ10‐1を創作するに至った。第1の実施形態によれば、サーバ10‐1は、第1の実空間のセンシング結果と、第2の実空間のセンシング結果とに基づいて生成される共有空間内に配置される共有オブジェクトを所定の基準に基づいて決定する。例えば、サーバ10‐1は、各実空間内に位置する各オブジェクトに対して優先度を算出し、そして、算出した優先度に基づいて当該共有空間内に配置される共有オブジェクトを決定する。これにより、オブジェクトが重なって表示されることを防止することができる。
<1−2.構成>
第1の実施形態によるサーバ10‐1の構成の特徴は、特に共有空間合成部152の構成に関する。以下では、図10を参照して、共有空間合成部152の構成についてさらに詳細に説明する。図10に示すように、共有空間合成部152は、優先度算出部400、および、決定部402を含む。
{1−2−1.優先度算出部400}
(1−2−1−1.全体的な優先度)
優先度算出部400は、各実空間から受信されるFrameデータに基づいて、各実空間内の各オブジェクトの優先度を算出する。例えば、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトの属性に関する優先度に応じた値を当該オブジェクトの優先度として算出する。また、優先度算出部400は、さらに、他のオブジェクトとの関係性に関する当該オブジェクトの優先度に応じた値を、当該オブジェクトの優先度として算出する。また、優先度算出部400は、さらに、共有空間上でのコンテキストに関する当該オブジェクトの優先度に応じた値を、当該オブジェクトの優先度として算出する。
例えば、優先度算出部400は、各実空間内の各オブジェクトに関して、上述した3種類の優先度(すなわち、「オブジェクトの属性に関する優先度」(以下、優先度Aと称する場合がある)、「他のオブジェクトとの関係性に関する優先度」(以下、優先度Bと称する場合がある)、および、「共有空間上でのコンテキストに関する優先度」(以下、優先度Cと称する場合がある))の重み付け和を算出することにより、当該オブジェクトの最終的な優先度を計算する。一例として、当該3種類の優先度の各々に関して所定の重みが予め登録され得る。そして、優先度算出部400は、各実空間内の各オブジェクトに関して、以下の数式(1)のように、当該オブジェクトに関して算出された当該3種類の優先度と、各優先度に対応する重みとに基づいて重み付け和を算出し、そして、算出した値を、当該オブジェクトの最終的な優先度とする。
Figure 0006773126
ここで、Priority(i)は、i番目のオブジェクトの最終的な優先度である。また、PriorityA(i)、PriorityB(i)、および、PriorityC(i)はそれぞれ、i番目のオブジェクトの優先度A、優先度B、または、優先度Cである。また、KA、KB、および、KCはそれぞれ、優先度Aに対応する重み(定数)、優先度Bに対応する重み(定数)、または、優先度Cに対応する重み(定数)である。
(1−2−1−2.オブジェクトの属性に関する優先度)
以下では、当該3種類の優先度の各々の具体的な算出方法について説明を行う。例えば、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトの属性に関する指標に基づいて当該オブジェクトの優先度Aを算出する。
‐サイズ
ここで、「オブジェクトの属性に関する指標」は、オブジェクトのサイズを含み得る。例えば、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトのサイズ(体積など)に基づいて、当該オブジェクトの優先度Aを算出する。一例として、優先度算出部400は、オブジェクトのサイズが大きいほど優先度が高くなるように、当該オブジェクトの優先度Aを算出する。この算出例によれば、サイズが大きいオブジェクトほど優先して共有空間上に配置される。従って、サイズの小さいオブジェクトが共有空間上に多数配置されることに伴う(コンテンツの表示時における)視認性の低下を防止することができる。
または、オブジェクトのサイズ別に優先度が予めテーブルに登録され得る。そして、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトのサイズの認識結果と、当該テーブルの登録内容とに基づいて当該オブジェクトの優先度Aを算出してもよい。
なお、オブジェクトのサイズの認識は、3Dデータに基づいて行われてもよいし、または、2D画像に基づいて行われ、かつ、対応する3Dデータに認識結果がマッピングされてもよい。
‐種類
また、「オブジェクトの属性に関する指標」は、オブジェクトの種類を含み得る。例えば、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトの種類の認識結果に基づいて当該オブジェクトの優先度Aを算出する。例えば、オブジェクトの種類ごとに優先度が予めテーブルに登録され得る。そして、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトの種類の認識結果と、当該テーブルの登録内容とに基づいて当該オブジェクトの優先度Aを算出する。なお、オブジェクトの種類の認識は、3Dデータに基づいて行われてもよいし、または、2D画像に基づいて行われ、かつ、対応する3Dデータに認識結果がマッピングされてもよい。
‐空間
また、「オブジェクトの属性に関する指標」は、オブジェクトが位置する実空間(元空間)を含み得る。例えば、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトが位置する実空間に基づいて当該オブジェクトの優先度Aを算出する。例えば、空間ごとに優先度が予めテーブルに登録され得る。そして、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトが位置する実空間と、当該テーブルの登録内容とに基づいて当該オブジェクトの優先度Aを算出する。
‐人物
また、「オブジェクトの属性に関する指標」は、オブジェクトが人である場合に当該人の識別情報を含み得る。例えば、各実空間内の各オブジェクトに関して、当該オブジェクトが人である場合には、優先度算出部400は、当該人物(オブジェクト)に基づいて、当該オブジェクトの優先度Aを算出する。例えば、人物ごとに優先度が予めテーブルに登録され得る。そして、オブジェクトが人である場合には、優先度算出部400は、当該人物と、当該テーブルの登録内容とに基づいて当該オブジェクトの優先度Aを算出する。なお、オブジェクトが人でない場合には、優先度算出部400は、当該オブジェクトの優先度Aを「0」と算出してもよい。
なお、人物の識別は、3Dデータに基づいて行われてもよいし、または、2D画像に基づいて行われ、かつ、対応する3Dデータに識別結果がマッピングされてもよい。
‐組み合わせ
または、優先度算出部400は、オブジェクトごとに、複数の「オブジェクトの属性に関する指標」の各々の優先度を算出することにより、当該オブジェクトの優先度Aを算出してもよい。例えば、優先度算出部400は、オブジェクトごとに、まず、当該オブジェクトに関して、当該複数の「オブジェクトの属性に関する指標」の各々の優先度を算出する。そして、優先度算出部400は、オブジェクトごとに、当該オブジェクトに関して算出された当該複数の指標の各々の優先度と、当該複数の指標の各々に関する所定の重みとに基づいて重み付け和を算出し、そして、算出した値を、当該オブジェクトの優先度Aとしてもよい。
(1−2−1−3.他のオブジェクトとの関係性に関する優先度)
また、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトの近隣に位置する他のオブジェクトと当該オブジェクトとの関係性に関する指標に基づいて、当該オブジェクトの優先度Bを算出することが可能である。
‐人との接触の有無
ここで、「他のオブジェクトとの関係性に関する指標」は、元空間における人との接触の有無を含み得る。例えば、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトが位置する元空間内で当該オブジェクトが人と接触しているか否かに基づいて、当該オブジェクトの優先度Bを算出する。ここで、当該オブジェクトが人と接触している場合の例としては、人が当該オブジェクトを持っている場合や、人が当該オブジェクトの上に座っている場合などが挙げられる。
例えば、人ごとに優先度が予めテーブルに登録され得る。そして、各実空間(元空間)内の各オブジェクトに関して、当該オブジェクトが元空間内で人と接触している場合には、優先度算出部400は、該当の人と、当該テーブルの登録内容とに基づいて当該オブジェクトの優先度Bを算出する。なお、当該オブジェクトが元空間内で人と接触していない場合には、優先度算出部400は、当該オブジェクトの優先度Bを「0」と算出してもよい。
一般的に、元空間が異なるユーザ同士が共有空間上で会話する場面では、少なくともいずれかのユーザが元空間内で何らかのオブジェクトと接触している場合(例えば当該オブジェクトを持っている場合など)には、当該会話において当該オブジェクトが話題になっている可能性が高い。この算出例によれば、話題になっている可能性が高いオブジェクトをより優先して表示させることができる。
‐人との距離
また、「他のオブジェクトとの関係性に関する指標」は、元空間における人との距離を含み得る。例えば、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトが位置する元空間における当該オブジェクトと人との距離に基づいて、当該オブジェクトの優先度Bを算出する。一例として、優先度算出部400は、各実空間内の各オブジェクトに関して、元空間内で当該オブジェクトの最も近くに位置する人と当該オブジェクトとの間の距離と、当該人の識別情報とに基づいて当該オブジェクトの優先度Bを算出する。
例えば、人ごとに優先度が予めテーブルに登録され得る。そして、各実空間内の各オブジェクトに関して、元空間内で当該オブジェクトの最も近くに位置する人と当該オブジェクトとの間の距離が所定の閾値以下である場合には、優先度算出部400は、当該テーブルにおいて当該人に関連付けて登録されている内容に基づいて、当該オブジェクトの優先度Bを算出する。なお、元空間内で当該オブジェクトの最も近くに位置する人と当該オブジェクトとの間の距離が所定の閾値よりも大きい場合には、優先度算出部400は、当該オブジェクトの優先度Bを「0」と算出してもよい。
‐組み合わせ
または、優先度算出部400は、オブジェクトごとに、複数の「他のオブジェクトとの関係性に関する指標」の各々の優先度を算出することにより、当該オブジェクトの優先度Bを算出してもよい。例えば、優先度算出部400は、オブジェクトごとに、まず、当該複数の「他のオブジェクトとの関係性に関する指標」の各々に関して、当該オブジェクトの優先度を算出する。そして、優先度算出部400は、オブジェクトごとに、当該複数の指標の各々の優先度と、当該複数の指標の各々に関する所定の重みとに基づいて重み付け和を算出し、そして、算出した値を、当該オブジェクトの優先度Bとしてもよい。
(1−2−1−4.共有空間上でのコンテキストに関する優先度)
ところで、元空間が異なるユーザ間で今まさに話題になっているオブジェクトが仮に突然表示されなくなると、ユーザに不自然に知覚され得るので、望ましくない。また、共有空間において、他のオブジェクトと依存関係にあるオブジェクトが仮に突然表示されなくなると、やはりユーザに不自然に知覚され得る。ここで、当該依存関係の例としては、共有空間において元空間が異なるオブジェクトが対象のオブジェクトの上に配置されている場合(例えば共有空間において実空間2aのコンピュータが実空間2bの机の上に配置されている場合など)が挙げられる。
そこで、優先度算出部400は、各実空間内の各オブジェクトに関して、共有空間におけるコンテキストを示す情報(以下、コンテキスト情報と称する)に基づいて、当該オブジェクトの優先度Cを算出することが可能である。例えば、優先度算出部400は、各実空間内の各オブジェクトに関して、コンテキスト情報と、共有空間上でのコンテキストに関する指標とに基づいて、当該オブジェクトの優先度Cを算出する。
‐ユーザ間の会話時の話題
ここで、当該コンテキスト情報は、共有空間上での複数のユーザ間の会話時の話題を示す情報を含み、そして、「共有空間上でのコンテキストに関する指標」は、共有空間上での複数のユーザ間の会話時の話題を含み得る。この場合、優先度算出部400は、各実空間内の各オブジェクトに関して、共有空間上での複数のユーザ間の会話時の話題に基づいて、当該オブジェクトの優先度Cを算出する。一例として、各実空間内の各オブジェクトに関して、当該会話時に発せられた少なくともいずれかの単語が当該オブジェクトを示す場合には、優先度算出部400は、当該オブジェクトの優先度Cを、「0」よりも大きい所定の値として算出する。なお、ユーザ間の会話時に発せられたいずれの単語も当該オブジェクトを示さない場合には、優先度算出部400は、当該オブジェクトの優先度Cを「0」と算出してもよい。また、ユーザ間の会話時に発せられた単語は、例えば、入力部22(センサ部220)により集音された音声の認識の結果に基づいて特定され得る。
‐共有空間上でのユーザのポインティング
また、当該コンテキスト情報は、共有空間上でのユーザのポインティングの検出の有無を示す情報を含み、そして、「共有空間上でのコンテキストに関する指標」は、共有空間上でのユーザのポインティングの検出の有無を含み得る。この場合、優先度算出部400は、各実空間内の各オブジェクトに関して、共有空間上で当該オブジェクトがユーザによりポインティングされているか否かに基づいて、当該オブジェクトの優先度Cを算出する。例えば、当該オブジェクトがユーザによりポインティングされている場合には、優先度算出部400は、当該オブジェクトの優先度Cを、「0」よりも大きい所定の値として算出する。なお、当該オブジェクトがユーザによりポインティングされていない場合には、優先度算出部400は、当該オブジェクトの優先度Cを「0」と算出してもよい。また、当該オブジェクトがユーザによりポインティングされているか否かに関しては、ユーザのジェスチャーの認識結果や、ユーザの手指の認識結果などに基づいて特定され得る。
‐共有空間上でのオブジェクト間の依存関係
また、当該コンテキスト情報は、共有空間上でのオブジェクト間の依存関係を示す情報を含み、そして、「共有空間上でのコンテキストに関する指標」は、共有空間上でのオブジェクト間の依存関係を含み得る。この場合、優先度算出部400は、各実空間内の各オブジェクトに関して、共有空間上でのオブジェクト間の依存関係に基づいて、当該オブジェクトの優先度Cを算出する。一例として、各実空間内の各オブジェクトに関して、当該オブジェクトが共有空間上で他のオブジェクトと依存関係にある場合には、優先度算出部400は、当該オブジェクトの優先度Cを、「0」よりも大きい所定の値として算出する。なお、当該オブジェクトが共有空間上で他のオブジェクトと依存関係にない場合には、優先度算出部400は、当該オブジェクトの優先度Cを「0」と算出してもよい。
‐他の例
また、当該コンテキスト情報は、ユーザの表情(怒っている、笑っているなど)、時間帯(昼、夜など)、および、曜日(平日、休日など)などを示す情報を含み、そして、「共有空間上でのコンテキストに関する指標」は、ユーザの表情、時間帯、および、曜日などを含み得る。
また、当該コンテキスト情報は、共有空間に参加中のユーザ、または、共有空間上で会話をしているユーザのプロファイルを示す情報を含み、そして、「共有空間上でのコンテキストに関する指標」は、共有空間に参加中のユーザ、または、共有空間上で会話をしているユーザのプロファイルを含み得る。この場合、優先度算出部400は、各実空間内の各オブジェクトに関して、共有空間上に位置するユーザ(または、共有空間上で会話をしているユーザ)に関して予め登録されているプロファイル情報に基づいて、当該オブジェクトの優先度Cを算出してもよい。ここで、プロファイル情報は、該当のユーザの例えば年齢、性別、国籍、趣味、および、嗜好などの情報を含み得る。
‐組み合わせ
または、優先度算出部400は、オブジェクトごとに、複数の「共有空間上でのコンテキストに関する指標」の各々の優先度を算出することにより、当該オブジェクトの優先度Cを算出してもよい。例えば、優先度算出部400は、オブジェクトごとに、まず、複数の「共有空間上でのコンテキストに関する指標」の各々に関して、当該オブジェクトの優先度を算出する。そして、優先度算出部400は、オブジェクトごとに、当該複数の指標の各々の優先度と、当該複数の指標の各々に関する所定の重みとに基づいて重み付け和を算出し、そして、算出した値を、当該オブジェクトの優先度Cとしてもよい。
{1−2−2.決定部402}
決定部402は、優先度算出部400により算出された各オブジェクトの優先度に基づいて、共有空間内に配置される共有オブジェクト(以下、「表示対象のオブジェクト」とも称する)を決定する。例えば、各オブジェクトに関して、当該オブジェクトよりも優先度が高い他のオブジェクトと共有空間上の配置位置が重ならない場合にのみ、決定部402は、当該オブジェクトを表示対象のオブジェクトとして決定する。なお、第1の実施形態では、基本的に、各オブジェクトに関して、当該オブジェクトの元空間上の位置に対応する共有空間上の位置に、当該オブジェクトは配置され得る。
図11は、優先度算出部400により算出された各オブジェクトの優先度の例を示した説明図である。図11に示した例では、優先度が高いオブジェクトの順番は、(1)実空間A内のオブジェクトIDが「1」であるオブジェクト42a(優先度1000)、(2)実空間B内のオブジェクトIDが「1」であるオブジェクト42c(優先度1000)、(3)実空間A内のオブジェクトIDが「2」であるオブジェクト42b(優先度500)、(4)実空間B内のオブジェクトIDが「2」であるオブジェクト42d(優先度300)である。また、図11に示したように、共有空間においてオブジェクト42aが配置されるべき領域(つまり、実空間Aにおいてオブジェクト42aが位置する領域に対応する共有空間の領域)と、共有空間においてオブジェクト42dが配置されるべき領域(つまり、実空間Bにおいてオブジェクト42dが位置する領域に対応する共有空間の領域)とは重複する。そこで、共有空間合成部152は、図12に示したように、優先度が高い順、つまりオブジェクト42a、オブジェクト42c、オブジェクト42bの順に、オブジェクト42を共有空間上に配置する。また、共有空間合成部152は、(オブジェクト42aと位置が重複するので)オブジェクト42dを配置しないことを決定する。これにより、共有空間において複数のオブジェクトが重なって配置されることを防止することができる。
<1−3.効果>
以上説明したように、第1の実施形態によれば、サーバ10‐1は、各実空間内の各オブジェクトに関して優先度を算出し、そして、算出した優先度に基づいて表示対象のオブジェクトを決定する。これにより、各実空間内の各オブジェクトを一意に順位付けを行うことができる。そして、サーバ10‐1は、例えば優先度の高い順に各オブジェクトを共有空間上に配置することができる。従って、共有空間において複数のオブジェクトが重なって配置されることを防止することができるので、オブジェクトが重なって表示されることを防止することができる。
<1−4.応用例1>
{1−4−1.概要}
上記の説明では、優先度算出部400が、フレーム単位で、各オブジェクトの優先度を算出する例について説明した。ところで、オブジェクト自体は同じであっても、当該オブジェクトに対する認識結果はフレームごとに異なり得る。特に、顔認識では、人の顔の向きが変わると認識結果が大きく変わり得る。このため、同じオブジェクトであっても、算出される優先度はフレームごとに異なり得る。その結果、連続するフレーム間で、表示対象として選択されるオブジェクトが頻繁に変化し得るので、ちらつきが生じ得る。
ここで、図13を参照して、上記の内容についてより詳細に説明する。図13に示したように、N−1番目のフレームでは、オブジェクト42aの優先度が高く算出されることにより、オブジェクト42aが表示される。一方、N番目のフレームでは、オブジェクト42dの方がオブジェクト42aよりも優先度が高く算出されることにより、オブジェクト42dが優先して表示され、かつ、オブジェクト42aが非表示になる。その結果、表示部246に表示される映像がちらつき得る。
次に、第1の実施形態の応用例1について説明する。応用例1によるサーバ10‐1は、先行するフレームにおいて表示対象となっていたオブジェクトに関する情報にさらに基づいて、対象のフレームにおける表示対象のオブジェクトを決定する。これにより、連続するフレームにおいて、表示対象として決定されるオブジェクトの変動を抑制することができる。
なお、応用例1によるクライアント20およびサーバ10‐1に含まれる構成要素は、上記の説明と同様である。以下では、上記の説明と異なる機能を有する構成要素についてのみ説明を行う。
{1−4−2.決定部402}
応用例1による決定部402は、連続するフレームにおける、各実空間内の各オブジェクトのトラッキングの結果に基づいて、表示対象のオブジェクトを決定する。例えば、決定部402は、以下のように、先行するフレームにおいて表示対象であったオブジェクトを、表示対象ではなかったオブジェクトよりも優先して、対象のフレームにおける表示対象のオブジェクトを決定する。
まず、決定部402は、フレームごとに、各実空間内の各オブジェクトをトラッキングする。そして、対象のフレームに含まれる各オブジェクトに関して、(トラッキングの結果に基づいて)先行するフレーム内に同一のオブジェクトが存在することが推定される場合には、決定部402は、先行するフレームにおける該当のオブジェクトと同一のオブジェクトIDを(対象のフレームにおける)当該オブジェクトに対して付与する。
続いて、決定部402は、先行するフレームにおいて表示対象であったオブジェクトを表示対象のオブジェクトの候補として設定する。そして、決定部402は、優先度算出部400により算出された優先度が高い順に、当該表示対象のオブジェクトの候補を共有空間上に配置する。なお、この際、すでに配置済みのオブジェクトと位置が重なる場合には、決定部402は、該当のオブジェクトを表示対象としない。
続いて、決定部402は、先行するフレームにおいて表示対象ではなかったオブジェクトを、表示対象のオブジェクトの候補として設定する。そして、決定部402は、優先度算出部400により算出された優先度が高い順に、当該表示対象のオブジェクトの候補を共有空間上に配置していく。なお、この際、すでに配置済みのオブジェクトと位置が重なる場合には、決定部402は、該当のオブジェクトを表示対象としない。
{1−4−3.効果}
以上説明したように、応用例1によるサーバ10‐1は、先行するフレームにおいて表示対象であったオブジェクトを、表示対象ではなかったオブジェクトよりも優先して、対象のフレームにおける表示対象のオブジェクトを決定する。このため、連続するフレームにおいて、表示対象として決定されるオブジェクトの変動を抑制することができる。そして、視認性の低下を防止することができる。
{1−4−4.変形例1}
なお、応用例1は、上述した例に限定されず、複数の変形例が適用可能である。例えば、各オブジェクトに関して、当該オブジェクトの認識結果の精度が低い場合には、サーバ10‐1は、先行するフレームにおける当該オブジェクトの認識結果を、対象のフレームにおける当該オブジェクトの認識結果として代用してもよい。
(1−4−4−1.認識部224・認識部104)
この変形例1による入力部22の認識部224、および/または、サーバ10‐1の認識部104は、各オブジェクトに関して認識を行った際に、認識結果の信頼度が所定の閾値よりも低い場合には当該認識結果をメタ情報に付与(格納)しない。
(1−4−4−2.共有空間合成部152)
変形例1による共有空間合成部152は、各実空間内の各オブジェクトに関して、一以上の認識結果がメタ情報内に格納されていない場合には、先行するフレームのメタ情報内の当該オブジェクトの該当の認識結果を、対象のフレームにおける当該オブジェクトの該当の認識結果として利用する。例えば、この場合、決定部402は、まず、先行するフレームのメタ情報内に当該オブジェクトの認識結果が付与されているか否かを確認する。そして、認識結果が付与されている場合には、決定部402は、当該認識結果を、対象のフレームにおける当該オブジェクトの認識結果として使用する。
図14は、N−1番目のフレームおよびN番目のフレームにおけるメタ情報306の例を示した説明図である。図14に示したように、N番目のフレームにおいて、実空間A内のオブジェクトIDが「2」番のオブジェクト42a、および、実空間B内のオブジェクトIDが「2」番のオブジェクトに関して「オブジェクトの種類」がメタ情報306に格納されていない(つまり、認識結果の精度が所定の精度よりも低かった)とする。この場合、図14において矢印で示したように、決定部402は、N−1番目のフレームにおけるメタ情報内のオブジェクト42aの「種類」の認識結果(「Chair(L)」)およびオブジェクト42bの「種類」の認識結果(「Chair(M)」)をそれぞれ、N番目のフレームにおけるオブジェクト42aの「種類」またはオブジェクト42bの「種類」として使用する。
{1−4−5.変形例2}
また、上記の説明では、決定部402が、連続するフレーム間の各オブジェクトのトラッキングの結果に基づいて、表示対象のオブジェクトを決定する例について説明したが、かかる例に限定されない。別の変形例として、サーバ10‐1は、各実空間内の各オブジェクトに関して、当該オブジェクトの表示状況に関する優先度(以下、優先度Dと称する場合がある)をさらに計算し、そして、優先度Dに基づいて、対象のフレームにおける表示対象のオブジェクトを決定してもよい。
(優先度算出部400)
この変形例2による優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトの優先度Dをさらに計算する。例えば、各実空間内の各オブジェクトに関して、直前の表示フレームにおいて当該オブジェクトが表示されている場合には、優先度算出部400は、当該オブジェクトの優先度Dを、「0」よりも大きい所定の値として算出する。また、直前の表示フレームにおいて当該オブジェクトが表示されていない場合には、優先度算出部400は、当該オブジェクトの優先度Dを「0」と算出する。
そして、優先度算出部400は、各実空間内の各オブジェクトに関して、当該オブジェクトの優先度D、および、1−2−1節で述べた3種類の優先度(つまり、合計4種類の優先度)の重み付け和を算出することにより、当該オブジェクトの最終的な優先度を計算することが可能である。例えば、優先度の種類ごとに所定の重みが予め登録され得る。そして、優先度算出部400は、各実空間内の各オブジェクトに関して、4種類の優先度と、各優先度の種類に対応する重みとに基づいて重み付け和を算出し、そして、算出した値を、当該オブジェクトの最終的な優先度としてもよい。
この変形例によれば、オブジェクトが直前の表示フレームで表示されている場合の方が、直前の表示フレームで表示されていない場合よりも(最終的な)優先度が高くなる。従って、直前の表示フレームで表示されているオブジェクトが優先して表示対象として(継続して)決定され得る。
{1−4−6.変形例3}
ところで、通常、実空間では物体が突然消滅することは考え難い。そこで、別の変形例として、先行するフレームにおいて存在していた単一のオブジェクトが対象のフレームにおいて消滅し、かつ、当該オブジェクトと同じ位置に複数のオブジェクトが位置している場合には、サーバ10‐1(共有空間合成部152)は、先行するフレーム内のオブジェクトが当該複数のオブジェクトに分割したとみなすことが可能である。例えば、共有空間合成部152は、対象のフレームにおいて同一の場所に位置する複数のオブジェクト全てを、先行するフレーム内の、対応する一つのオブジェクトと同一とみなしてもよい。
また、通常、実空間では物体が突然出現することも考え難い。そこで、先行するフレームにおいて存在していた複数のオブジェクトが対象のフレームにおいて消滅し、かつ、当該複数のオブジェクトと同じ位置に一つのオブジェクトだけが位置している場合には、サーバ10‐1(共有空間合成部152)は、先行するフレーム内の当該複数のオブジェクトが当該一つのオブジェクトに結合したとみなすことが可能である。例えば、共有空間合成部152は、対象のフレームにおいて同一の場所に位置する一つのオブジェクトを、先行するフレーム内の、対応する当該複数のオブジェクトと同一とみなしてもよい。
この変形例3によれば、オブジェクトが消滅したり、または、結合したと推定される場合において、先行するフレームとの間での表示の安定性を向上させることができる。
{1−4−7.変形例4}
また、上記の説明では、決定部402が表示対象のオブジェクトをフレームごとに決定する例について説明したが、かかる例に限定されない。別の変形例として、サーバ10‐1(共有空間合成部152)は、所定の条件が満たされる場合にのみ表示対象のオブジェクトの決定処理(表示判定処理)を行うことも可能である。
ここで、所定の条件は、例えば、ユーザの指示などに基づいて、空間の共有(つまり共有空間の生成)が開始されることであってもよい。または、所定の条件は、生成済みの共有空間に対して、新たな実空間が合成の対象として追加されること、または、当該共有空間の生成のために用いられている複数の実空間のうちのいずれかが削除されることであってもよい。または、所定の条件は、ユーザによる所定の指示(例えばコンテンツの表示を更新するための指示など)が検出されることであってもよい。または、所定の条件は、オブジェクトが新たに現れること、または、先行するフレームにおいて存在していたオブジェクトが消滅することであってもよい。または、所定の条件は、或るオブジェクトが出現してから一定期間継続して当該オブジェクトが存在すること(例えば3フレーム連続で存在する場合など)であってもよいし、または、或るオブジェクトが消滅してから一定期間継続して当該オブジェクトが消滅したままであること(例えば「3フレーム」連続で消滅している場合など)であってもよい。または、所定の条件は、或るオブジェクトのサイズが直前の表示フレームから所定のサイズ以上大きくなること、または、所定のサイズ以上小さくなることであってもよい。
この変形例4によれば、連続するフレーム間でのオブジェクトの表示の安定性をさらに向上させることができる。
<1−5.応用例2>
以上、応用例1について説明した。ところで、オブジェクトが突然新たに表示されたり、または突然表示されなくなると、ユーザは違和感を抱き得る。次に、応用例2について説明する。
応用例2による共有空間合成部152は、先行するフレームからオブジェクトが新たに表示されたり、または、オブジェクトが消滅する場合には、当該自由視点のコンテンツの変化をユーザが知覚可能なように、当該自由視点のコンテンツを加工する。
{1−5−1.オブジェクトの追加時}
例えば、オブジェクト(ユーザ4を含む)が新たに表示される場合には、共有空間合成部152は、当該新たなオブジェクトが表示されることを、当該共有空間に参加中のユーザが知覚可能なように、当該自由視点のコンテンツを加工する。一例として、共有空間合成部152は、当該新たなオブジェクトの表示が開始されることを示す、所定の時間(例えば1分など)のアニメーションを表示させるように、当該自由視点のコンテンツを加工する。
例えば、新たなオブジェクト42cの表示が開始される場合には、共有空間合成部152は、まず、透過度が初期値(例えば100%)に設定された、当該新たなオブジェクト42cを表示させ、そして、図15に示したように、当該新たなオブジェクト42cの透過度を当該初期値から0%へと所定の時間をかけて徐々に下げる処理を行う。または、共有空間合成部152は、図16に示したように、新たなオブジェクト42cの表示を開始してから所定の時間だけ、当該新たなオブジェクト42cの周囲にパーティクル44を表示させるように、当該自由視点のコンテンツを加工する。または、共有空間合成部152は、図17に示したように、小さなパーティクル群46が共有空間40の外部から飛んできて、パーティクル群46が共有空間40内で徐々に大きくなった後に、当該パーティクル群46がオブジェクト42cの映像に切り替わるアニメーションを表示させるように、当該自由視点のコンテンツを加工する。これらの処理例によれば、例えば新たなオブジェクトが共有空間内に配置される場合に、当該オブジェクトが突然表示されることがない。このため、共有空間にすでに参加中の各ユーザが違和感を抱いたり、驚くことを防止することができる。
また、共有空間合成部152は、新たなオブジェクトが表示されるタイミングに所定の効果音(例えば、新たなオブジェクトの表示に対応する効果音など)を出力させるように、当該自由視点のコンテンツを加工してもよい。
{1−5−2.オブジェクトの削除時}
また、当該共有空間内の一以上のオブジェクト(ユーザ4を含む)が当該共有空間から削除されることが決定された場合(例えば共有空間に参加中のユーザが共有空間から退出する際など)には、共有空間合成部152は、該当のオブジェクトが削除されることを、当該共有空間に参加中のユーザが知覚可能なように、当該自由視点のコンテンツを加工する。例えば、共有空間合成部152は、該当のオブジェクトの表示が終了されることを示す、所定の時間(例えば1分など)のアニメーションを表示させるように、当該自由視点のコンテンツを加工する。
一例として、オブジェクト42cが削除されることが決定された場合には、共有空間合成部152は、図18に示したように、オブジェクト42cの透過度が0%から100%へと徐々に上がり、その後、オブジェクト42cが非表示になるようなアニメーションを表示させるように、当該自由視点のコンテンツを加工する。または、共有空間合成部152は、図19に示したように、削除対象のオブジェクト42cの周囲にパーティクル44が所定の時間だけ表示され、その後、オブジェクト42cが非表示になるようなアニメーションを表示させるように、当該自由視点のコンテンツを加工する。または、共有空間合成部152は、図20に示したように、削除対象のオブジェクト42cがパーティクル群46に変形し、かつ、パーティクル群46のサイズが徐々に小さくなりながら共有空間40の外部へと飛んでいき、その後、パーティクル群46が消滅するようなアニメーションを表示させるように、当該自由視点のコンテンツを加工する。これらの処理例によれば、共有空間に配置されている削除対象のオブジェクト(退出ユーザ4など)が突然非表示になることがない。このため、共有空間にすでに参加中の各ユーザが違和感を抱いたり、驚くことを防止することができる。
また、共有空間合成部152は、削除対象のオブジェクトが非表示になるタイミングに所定の効果音(例えば、オブジェクトの削除に対応する効果音など)を出力させるように、当該自由視点のコンテンツを加工してもよい。
<1−6.応用例3>
以上、応用例2について説明した。ところで、実空間2aに位置するユーザ4aと実空間2bに位置するユーザ4bとが共有空間内でコミュニケーションをしている際に、別の実空間2cに位置するユーザ4cが当該共有空間内に参加することを希望する場面も想定される。このような場面では、3つの実空間(実空間2a、実空間2b、および、実空間2c)の3Dデータが合成されることにより、共有空間が再生成されることが望まれる。一方で、例えばすでに参加している二人のユーザの元空間内の多数のオブジェクトが表示されなくなるなど、今までの共有空間が突然大きく変化することは望ましくない。
次に、第2の実施形態の応用例3について説明する。応用例3による共有空間合成部152は、共有空間に未参加のユーザが当該共有空間に参加するための操作が検出された場合に、オブジェクト優先ポリシー1624における、空間別の優先度テーブル(優先度テーブル「area」)の登録内容を変更する。例えば、共有空間に新たに参加するユーザが検出され、かつ、当該共有空間にすでに参加している全てのユーザの元空間2aと、新たに参加するユーザの元空間2bとが異なる場合には、共有空間合成部152は、すでに参加している全てのユーザの元空間2aよりも、新たに参加するユーザの元空間2bの方が優先度が低くなるように、優先度テーブル「area」の登録内容を変更する。
以上説明したように、応用例3によれば、共有空間に対して新たなユーザが参加する場合に、当該新たなユーザの元空間内のオブジェクトよりも、すでに共有空間に参加しているユーザの元空間内のオブジェクトが優先して、当該共有空間上に配置され得る。従って、共有空間が突然大きく変化することを防止しつつ、新たなユーザの元空間内の一部のオブジェクトを共有空間上に適切に配置することができる。
<<2.第2の実施形態>>
<2−1.概要>
以上、第1の実施形態について説明した。ところで、参加するユーザごとに、利用する表示デバイス(例えば表示部246など)が異なることも想定される。例えば、実空間2a内に位置するユーザ4aは遮蔽型のウェアラブルデバイス(以下、VRデバイスと称する場合がある)を利用しており、かつ、実空間2b内に位置するユーザ4bは、ARデバイスを利用することが想定される。この場合、(ユーザ4aが位置する)実空間2a内の任意のオブジェクトをユーザ4aに見せないようにVRデバイスの表示を制御することが可能であるのに対して、(ユーザ4bが位置する)実空間2b内のオブジェクトをユーザ4bに見せないようにARデバイスの表示を制御することは大変難しい。そこで、実空間2b内のオブジェクトを実空間2a内のオブジェクトよりも優先して表示する方が、ユーザ4aおよびユーザ4bの双方にとって満足感が向上し得る。
次に、第2の実施形態について説明する。後述するように、第2の実施形態によるサーバ10‐2は、複数の実空間のうちのいずれかをベース空間として決定し、そして、ベース空間内に位置するオブジェクトを優先して共有空間上に配置することが可能である。ここで、ベース空間は、生成される共有空間の基礎となる空間である。例えば、共有空間に参加する各ユーザが位置する複数の実空間のうちのいずれかがベース空間として決定され得る。また、当該複数の実空間のうち、ベース空間に選択されなかった全ての実空間内のオブジェクトのうちの一部が当該ベース空間上(例えばベース空間上の空き領域)に配置され得る。なお、ベース空間は、基本的には、実在する空間であるが、かかる例に限定されず、仮想空間(例えば完全な空き領域など)であってもよい。
<2−2.構成>
まず、第2の実施形態によるサーバ10‐2の構成について説明する。なお、以下では、第1の実施形態と異なる内容についてのみ説明を行う。
{2−2−1.共有空間管理部100‐2}
図21は、第2の実施形態による共有空間管理部100‐2の構成例を示した機能ブロック図である。図21に示すように、共有空間管理部100‐2は、図8に示した共有空間管理部100‐1と比較して、ベース空間レイアウト生成部158、および、共有空間管理用DB110をさらに含む。
共有空間管理用DB110は、共有空間の生成や更新などの管理のために用いられるデータベースである。図22は、共有空間管理用DB110の構成例を示した図である。図22に示したように、共有空間管理用DB110は、例えば、ベース空間レイアウト情報160、レイアウトポリシー情報DB162、および、オブジェクト管理情報DB164を含む。なお、これらのデータベースの具体的な内容については後述する。
{2−2−2.ベース空間レイアウト生成部158}
(2−2−2−1.ベース空間の決定)
‐決定例1
ベース空間レイアウト生成部158は、所定の条件に基づいて、ベース空間を(自動的に)決定する。例えば、空間共有の開始時において、共有空間への参加を希望している各ユーザが利用する表示デバイスに応じてベース空間を決定する。一例として、(共有空間への参加を希望している)全てのユーザがVRデバイスを装着している場合には、ベース空間レイアウト生成部158は、当該全てのユーザのうちのいずれかの元空間、または、任意の仮想空間をベース空間として決定する。また、一人のユーザ4aだけがARデバイスを装着しており、かつ、残りの全てのユーザ4bがVRデバイスを装着している場合には、ベース空間レイアウト生成部158は、当該ユーザ4aの元空間をベース空間として決定する。また、互いに異なる実空間2に位置する複数のユーザがARデバイスを装着している場合には、ベース空間レイアウト生成部158は、当該複数のユーザのうちのいずれかの元空間をベース空間として決定する。これらの決定例によれば、少なくともいずれかのユーザがARデバイスを利用している場合には、該当のユーザの元空間がベース空間として決定される。
‐決定例2
または、ベース空間レイアウト生成部158は、レイアウトポリシー情報DB162に格納されているベース空間選択ポリシー1620に基づいてベース空間を決定することが可能である。ここで、ベース空間選択ポリシー1620には、ベース空間を選択するための基準(を示すデータ)が予め格納される。例えば、ベース空間選択ポリシー1620には、複数の評価指標が登録されており、かつ、評価指標ごとに、当該評価指標と当該評価指標の係数とが関連付けられている。ここで、評価指標の種類は、例えば、(対象の実空間内の)空き領域の底面積の合計、および、(対象の実空間内の)最大の、連続する空き領域の底面積などである。
例えば、ベース空間レイアウト生成部158は、共有空間への参加を希望している各ユーザが位置する元空間ごとに、まず、ベース空間選択ポリシー1620に格納されている複数の評価指標の各々の値を算出する。そして、ベース空間レイアウト生成部158は、元空間ごとに、当該元空間に関して算出された当該複数の評価指標の各々の値と、当該複数の評価指標の各々の係数との重み付け和を算出することにより、ベース空間を決定する。例えば、ベース空間レイアウト生成部158は、算出された重み付け和が最大である元空間をベース空間として決定する。
‐変形例
なお、変形例として、ベース空間レイアウト生成部158は、共有空間への参加対象の各ユーザの行動認識の結果に応じて、ベース空間を決定することも可能である。例えば、共有空間への参加対象の複数のユーザのうち、所定の行動(掃除や料理など)をしているユーザがいる場合には、ベース空間レイアウト生成部158は、当該ユーザが位置する実空間をベース空間として決定してもよい。これにより、当該ユーザに対して自由視点のコンテンツが提示される場合に、当該ユーザが不便になったり、また、当該ユーザの危険性が高まることを防止することができる。
また、別の変形例として、ベース空間レイアウト生成部158は、例えばベース空間レイアウト情報160にレイアウトが格納されていない(つまり空である)場合に限り、ベース空間を決定してもよい。
(2−2−2−2.ベース空間の生成)
また、ベース空間レイアウト生成部158は、決定したベース空間に基づいて、ベース空間のレイアウト情報を生成する。そして、ベース空間レイアウト生成部158は、生成したレイアウト情報をベース空間レイアウト情報160に格納する。
{2−2−3.ベース空間レイアウト情報160}
ベース空間レイアウト情報160は、ベース空間レイアウト生成部158により生成されたレイアウト情報を格納する。図23は、ベース空間レイアウト情報160の構成例を示した説明図である。図23に示すように、ベース空間レイアウト情報160では、静的オブジェクト1600、空き領域情報1602、および、メタ情報1604が格納される。ここで、静的オブジェクト1600には、ベース空間内に事前に位置するオブジェクトの情報が格納される。例えば、静的オブジェクト1600には、オブジェクトごとに、オブジェクトID、当該オブジェクトの点の情報(座標や色情報など)、および、当該オブジェクトの面の情報が格納される。また、空き領域情報1602には、ベース空間における空き領域の情報が格納される。また、メタ情報1604には、静的オブジェクト1600に格納されている全てのオブジェクトに関するメタ情報が格納される。なお、メタ情報1604の具体的な内容は、図5に示したメタ情報306と概略同様であり得る。
{2−2−4.レイアウトポリシー情報DB162}
レイアウトポリシー情報DB162は、共有空間上にオブジェクトをレイアウトするためのポリシー(基準)を格納するデータベースである。図24は、レイアウトポリシー情報DB162の構成例を示した説明図である。図24に示したように、レイアウトポリシー情報DB162は、ベース空間選択ポリシー1620、ベース空間オブジェクト選択ポリシー1622、オブジェクト優先ポリシー1624、オブジェクトレイアウト評価ポリシー1626、および、レイアウト終了判定ポリシー1628を含む。
ここで、ベース空間オブジェクト選択ポリシー1622は、ベース空間内に配置するオブジェクトを選択するためのポリシー(条件)を格納する。例えば、ベース空間オブジェクト選択ポリシー1622には、オブジェクトの種類と、(当該オブジェクトが)ベース空間に配置可能か否かなどの条件とが関連付けて格納され得る。
また、オブジェクト優先ポリシー1624は、1−2−1節で述べた3種類の優先度に関する指標(「オブジェクトの属性に関する指標」、「他のオブジェクトとの関係性に関する指標」、および「共有空間上でのコンテキストに関する指標」)の各々に関して、当該指標の値と、予め定められている優先度とを関連付けて格納する。例えば、オブジェクト優先ポリシー1624は、オブジェクトの種類ごとの優先度を格納した「優先度テーブル「type」」、および、人ごとの優先度を格納した「優先度テーブル「face」」などを格納する。ここで、優先度テーブル「type」では、例えばオブジェクトの種類が「人」である場合には優先度が「1000」、また、オブジェクトの種類が「椅子(L)」である場合には優先度が「500」などのように、オブジェクトの種類と優先度とが関連付けられ得る。また、優先度テーブル「face」では、例えば(対象の)人物が「Becky」である場合には優先度が「1000」、また、人物が「Beth」である場合には優先度が「800」などのように、人物と優先度とが関連付けられ得る。
また、オブジェクトレイアウト評価ポリシー1626は、オブジェクトのレイアウトを評価するためのポリシー(基準)を格納する。例えば、オブジェクトレイアウト評価ポリシー1626には、複数の評価指標が登録されており、かつ、評価指標ごとに、当該評価指標と当該評価指標の係数とが関連付けられている。ここで、評価指標の種類は、例えば、空き領域の底面積の合計、および、人の向きなどである。
また、レイアウト終了判定ポリシー1628は、ベース空間におけるオブジェクトの配置(レイアウト)の終了を判定するためのポリシー(判定条件)を格納する。例えば、レイアウト終了判定ポリシー1628には、(ベース空間の)空き領域の底面積の割合が「30%未満」になった場合や、(ベース空間の)空き領域の体積の割合が「50%未満」になった場合などに、ベース空間におけるオブジェクトの配置を終了することが登録され得る。
なお、上述した各ポリシーは、(一種類の基準だけでなく)複数の種類の基準をそれぞれ格納してもよい。また、ポリシーごとに、(当該ポリシーに関連する)複数の種類の基準の中からユーザにより選択された基準のみを格納してもよい。または、サーバ10‐2(共有空間生成部102)は、ポリシーごとに、(当該ポリシーに関連する)複数の種類の基準のうちのいずれを使用するかを自動的に決定してもよい。例えば、共有空間生成部102は、共有空間上でのコンテキストに基づいて、ポリシーごとに、(当該ポリシーに関連する)複数の種類の基準のうちのいずれを使用するかを決定してもよいし、または、共有空間に参加中のユーザに予め関連付けられている基準を使用することを決定してもよい。
{2−2−5.制御部108}
第2の実施形態による制御部108は、第3の制御情報を生成した際に、当該第3の制御情報に基づいて、後述するオブジェクト管理情報DB164内の共有オブジェクト関連情報182の登録内容を更新する。例えば、元空間内でユーザがラップトップ型PCを持ち上げたイベントがイベント認識部106から伝達された場合には、制御部108は、当該ラップトップ型PCの優先度がより高く算出されるように指示するための第3の制御情報を生成し、かつ、当該第3の制御情報に基づいて共有オブジェクト関連情報182の内容を更新する。これにより、優先度算出部400は、次の優先度の算出時において、当該第3の制御情報に基づいて、当該ラップトップ型PCに関する優先度Bをより高く算出し得る。従って、認識されたイベントに対応するオブジェクトを優先して表示させることが可能となる。
{2−2−6.オブジェクト管理情報DB164}
オブジェクト管理情報DB164は、共有空間内に配置される共有オブジェクトに関する情報を格納するデータベースである。図25は、オブジェクト管理情報DB164の構成例を示した説明図である。図25に示すように、オブジェクト管理情報DB164は、共有オブジェクトテーブル180、および、共有オブジェクト関連情報182を含む。
(2−2−6−1.共有オブジェクトテーブル180)
共有オブジェクトテーブル180は、共有空間内に配置される各オブジェクトに関する情報を格納するテーブルである。図26は、共有オブジェクトテーブル180の構成例を示した説明図である。図26に示したように、共有オブジェクトテーブル180では、オブジェクトID1800、元空間1802、メタ情報1804、および、共有空間情報1806が関連付けられている。ここで、共有空間情報1806は、優先度1808、表示判定結果1810、および、領域情報1812などを含む。優先度1808には、該当のオブジェクトに関して算出された優先度が記録される。また、表示判定結果1810には、該当のオブジェクトが表示対象と判定されたか否かが記録される。また、領域情報1812には、共有空間において該当のオブジェクトが配置される領域(空間)の情報が記録される。
(2−2−6−2.共有オブジェクト関連情報182)
共有オブジェクト関連情報182は、共有空間内に配置される共有オブジェクトごとの、他のオブジェクトとの関係性を示す情報を格納する。
図27は、共有オブジェクト関連情報182の構成例を示した説明図である。図27に示したように、共有オブジェクト関連情報182では、オブジェクトID1822、元空間1824、オブジェクトID1826、元空間1828、関係性1830、および、原因1832が関連付けられている。ここで、オブジェクトID1822には、各オブジェクトのオブジェクトIDが記録される。また、元空間1824には、該当のオブジェクトの元空間が記録される。また、オブジェクトID1826および元空間1828には、該当のオブジェクトと共有空間上で何らかの関係性を有する他のオブジェクトのオブジェクトIDおよび元空間がそれぞれ記録される。また、関係性1830には、該当のオブジェクトと他のオブジェクトとの関係性を示す情報が記録される。例えば、関係性1830には、共有空間において、該当のオブジェクトが他のオブジェクト(例えば人)に参照されていること、他のオブジェクト(例えば人)にポインティングされていること、または、該当のオブジェクトと他のオブジェクトとが依存関係にあることなどが記録される。また、原因1832には、関係性1830に記録されている関係性が特定された方法や、当該関係性が発生した原因などが記録される。例えば、原因1832には、音声認識やジェスチャー認識などが記録される。
{2−2−7.共有空間合成部152}
(2−2−7−1.共有空間の生成)
第2の実施形態による共有空間合成部152は、同期部150から伝達される複数の実空間のFrameデータと、共有空間管理用DB110の登録内容とに基づいて、共有空間Frameデータ(自由視点のコンテンツ)を生成する。例えば、共有空間合成部152は、まず、ベース空間のレイアウト情報をベース空間レイアウト情報160から抽出する。続いて、共有空間合成部152は、レイアウトポリシー情報DB162の登録内容に基づいて、ベース空間以外の実空間(元空間)内の複数のオブジェクトの中から表示対象のオブジェクトを決定し、そして、当該表示対象のオブジェクトをベース空間上に配置することにより、共有空間を生成する。そして、共有空間合成部152は、当該共有空間に基づいて共有空間Frameデータを生成する。
ここで、図28A、図28B、および図29を参照して、共有空間の生成例についてより詳細に説明する。なお、図28A、図28B、および図29では、実空間2aがベース空間として決定されたことを前提としている。また、図28A、図28B、および図29では、実空間2b内のオブジェクトがベース空間上に配置されることにより、共有空間が生成される例を示している。なお、図28A、図28B、および図29では、実空間2aおよび実空間2bの上面図を示している。
例えば、図28Aに示したように、ベース空間レイアウト生成部158は、まず、(ベース空間として決定された)実空間2aに関して、(入力部22による)各オブジェクトの認識の結果に基づいて、図28Aの右図に示したようにレイアウト情報を生成し、そして、当該レイアウト情報をベース空間レイアウト情報160に格納する。この際、ベース空間レイアウト生成部158は、図28Aの右図に示したように、ベース空間内の空き領域の情報1602(位置や底面積など)も特定し、そして、特定した結果を含めてレイアウト情報を生成する。なお、変形例として、ベース空間レイアウト生成部158は、(ベース空間として決定された)該当の実空間2aにおいて、オブジェクトが配置されていない領域だけでなく、オブジェクトが配置されている一部または全部の領域も空き領域とみなしてレイアウト情報を生成してもよい。
また、図28Bに示したように、実空間2bに関しては、(入力部22による)オブジェクトの認識の結果に基づいて、図28Bの右図に示したように、実空間2b内の各オブジェクト42が特定され得る。
その後、優先度算出部400は、オブジェクト優先ポリシー1624の登録内容に基づいて、実空間2b内の各オブジェクト42の優先度を算出する。そして、共有空間合成部152は、オブジェクトレイアウト評価ポリシー1626の登録内容に基づいて、算出された優先度が高いオブジェクト42の順に、各オブジェクト42を(ベース空間レイアウト情報160が示す)レイアウト上に配置する。例えば、レイアウト終了判定ポリシー1628に格納されている、(オブジェクトの配置を終了するための)いずれかの判定条件が満たされるまで、共有空間合成部152は、当該レイアウト上に、実空間2b内のオブジェクト42を一つずつ配置する。図29は、生成後の共有空間40の一例を示した図(上面図)である。図29では、実空間2b内の椅子42d、サイドテーブル42c、およびユーザ42eが空き領域1602aに配置され、かつ、他のオブジェクトは共有空間40上に配置されなかった例を示している。
この生成例によれば、ベース空間上のオブジェクトと、ベース空間以外の実空間2内のオブジェクトとがベース空間上に適切に配置されることにより、共有空間を生成することができる。
(2−2−7−2.ユーザへの権限の付与)
‐空間共有の開始時
また、共有空間合成部152は、共有空間に参加する一以上のユーザ4のうち、決定されたベース空間以外の実空間内に位置するユーザ4bに対して当該ベース空間中のオブジェクトのアクセス権限を付与することが可能である。例えば、共有空間合成部152は、当該ベース空間中の機器のアクセス権をユーザ4bに対して(無条件で)付与する。ここで、機器は、ホームネットワーク機器やIoT(Internet Of Things)機器などを含み得る。例えば、機器は、AV(Audio−Visual)機器、照明機器、または、エア・コンディショナーなどを含む。
また、自由視点のコンテンツの生成後、当該ベース空間中で何らかのコンテンツの再生が開始された場合には、共有空間合成部152は、当該ベース空間以外の実空間内で当該コンテンツを再生可能とするための情報(以下、再生用情報と称する)を、当該実空間内に位置するユーザ4bに対して提供(共有)することが可能である。ここで、当該再生用情報は、例えば、当該共有空間内のテレビジョン受信機により表示されている番組のチャンネル情報や、当該共有空間内の所定の端末上で起動しているWebブラウザに表示されているWebページのURL(Uniform Resource Locator)を含み得る。また、当該再生用情報は、ネットワークストリーミングコンテンツ(例えばVideo Streamingコンテンツなど)のURL、現在の再生時刻の情報や、ベース空間(と同じ実空間)に位置するユーザ4aの当該ネットワークストリーミングコンテンツに関する権利情報などを含み得る。この処理例によれば、当該ベース空間とは異なる実空間内に位置するユーザ4bもベース空間上の機器や、ベース空間内の共有コンテンツに対して自由にアクセスすることができる。例えば、ユーザ4bは、ベース空間内で再生されている共有コンテンツの再生タイミングと同じタイミングで当該コンテンツを実空間2bにおいて再生することができる。従って、あたかも同一の空間内に一緒にいるかのような感覚をユーザ4bに対して与えることができる。
‐新たなユーザへの権限の付与
また、共有空間に未参加のユーザ4aが当該共有空間に参加するための操作が検出された場合には、共有空間合成部152は、当該ベース空間中のオブジェクトのアクセス権限を当該ユーザ4aに付与したり、また、上述した再生用情報を当該ユーザ4aに提供することが可能である。
<2−3.処理の流れ>
{2−3−1.処理の全体的な流れ}
以上、第2の実施形態の構成について説明した。次に、第2の実施形態による処理の流れについて、図30〜図36を参照して説明する。図30は、第2の実施形態による処理の全体的な流れを示したフローチャートである。図30に示したように、まず、サーバ10‐2は、共有空間に参加する各ユーザの元空間の各々の入力部22からFrameデータを受信する(S2001)。続いて、ベース空間レイアウト情報160が作成済みである場合には(S2003:Yes)、共有空間管理部100‐2は、後述するS2007の処理を行う。
一方、ベース空間レイアウト情報160が作成されていない場合には(S2003:No)、ベース空間レイアウト生成部158は、後述する「ベース空間レイアウト生成処理」を行う(S2005)。
その後、共有空間合成部152は、後述する「オブジェクトトラッキング補償処理」を行う(S2007)。続いて、共有空間合成部152は、後述する「オブジェクト優先度計算処理」を行う(S2009)。続いて、共有空間合成部152は、後述する「オブジェクトレイアウト処理」を行う(S2011)。
その後、配信部154は、S2011で生成された共有空間Frameデータに基づいて、実空間(元空間)ごとに、当該実空間内の出力部24に送信されるFrameデータを生成する。そして、サーバ10‐2は、実空間ごとに、当該実空間に対応するFrameデータを当該実空間の出力部24へ送信する(S2013)。
{2−3−2.ベース空間レイアウト生成処理}
次に、図31を参照して、S2005における「ベース空間レイアウト生成処理」の内容について詳細に説明する。図31に示したように、まず、ベース空間レイアウト生成部158は、処理対象の元空間の番号を示す変数Iに「1」を設定する(S2101)。そして、ベース空間レイアウト生成部158は、元空間の総数をNに設定する(S2103)。
そして、IがN以下である限り(S2105:Yes)、ベース空間レイアウト生成部158は、以下のS2107〜S2111の処理を繰り返す。具体的には、ベース空間レイアウト生成部158は、まず、I番目の元空間をコピーすることによりI番目のベース空間候補を生成する(S2107)。次に、ベース空間レイアウト生成部158は、I番目のベース空間候補に含まれる各オブジェクトに関して、ベース空間オブジェクト選択ポリシー1622に基づいて表示対象であるか否かを判定し、そして、表示対象外と判定したオブジェクトをI番目のベース空間候補から削除する(S2109)。そして、ベース空間レイアウト生成部158は、Iに「1」を加算する(S2111)。その後、ベース空間レイアウト生成部158は、再びS2105の処理を行う。
S2105において、IがNよりも大きくなった場合には(S2105:No)、ベース空間レイアウト生成部158は、Iに「1」を再設定する(S2113)。
そして、IがN以下である限り(S2115:Yes)、ベース空間レイアウト生成部158は、以下のS2117〜S2119の処理を繰り返す。具体的には、ベース空間レイアウト生成部158は、まず、ベース空間選択ポリシー1620に基づいて、I番目のベース空間候補の評価値を計算する(S2117)。そして、ベース空間レイアウト生成部158は、Iに「1」を加算する(S2119)。その後、ベース空間レイアウト生成部158は、再びS2115の処理を繰り返す。
S2115において、IがNよりも大きくなった場合には(S2115:No)、ベース空間レイアウト生成部158は、S2117で算出された各ベース空間候補の評価値のうち、評価値が最大であるベース空間候補を特定する。そして、ベース空間レイアウト生成部158は、特定したベース空間候補をベース空間として決定する(S2121)。
その後、ベース空間レイアウト生成部158は、決定したベース空間のレイアウトをベース空間レイアウト情報160に格納する(S2123)。
{2−3−3.オブジェクトトラッキング補償処理}
次に、図32を参照して、S2007における「オブジェクトトラッキング補償処理」の内容を詳細に説明する。図32に示したように、まず、同期部150は、各元空間の入力部22から受信されたFrameデータを共有空間合成部152へ伝達する(S2201)。
続いて、共有空間合成部152は、処理対象のオブジェクトの番号を示す変数Iに「1」を設定する(S2203)。そして、共有空間合成部152は、S2201で取得された全てのFrameデータに含まれるオブジェクトの総数をNに設定する(S2205)。
そして、IがN以下である限り(S2207:Yes)、共有空間合成部152は、以下のS2209〜S2219の処理を繰り返す。なお、IがNよりも大きくなった場合には(S2207:No)、当該「オブジェクトトラッキング補償処理」は終了する。
具体的には、まず、共有空間合成部152は、前のフレームの情報をオブジェクト管理情報DB164から抽出する(S2209)。そして、共有空間合成部152は、I番目のオブジェクトとオブジェクトIDが同一である情報が、S2209で抽出した情報の中に存在するか否かを判定する(S2211)。
オブジェクトIDが一致する情報が存在する場合には(S2211:Yes)、まず、共有空間合成部152は、I番目のオブジェクトのメタ情報に含まれる各項目について、値が未定義(ブランク)の項目があるか否かを判定する。そして、値が未定義の項目が存在する場合には、共有空間合成部152は、S2209で抽出した情報に含まれる該当の項目の値を抽出し、そして、抽出した値を、当該メタ情報における該当の項目に設定する(S2213)。そして、共有空間合成部152は、後述するS2219の処理を行う。
一方、S2211において、オブジェクトIDが一致する情報が存在しない場合には(S2211:No)、次に、共有空間合成部152は、I番目のオブジェクトと領域が重なるオブジェクトが、S2209で抽出された、前のフレームに存在するか否かを判定する(S2215)。領域が重なるオブジェクトが前のフレームに存在しない場合には(S2215:No)、共有空間合成部152は、後述するS2219の処理を行う。
一方、領域が重なるオブジェクトが前のフレームに存在する場合には(S2215:Yes)、共有空間合成部152は、I番目のオブジェクトの先行オブジェクトIDリストに、当該領域が重なるオブジェクトのオブジェクトIDを追加する(S2217)。
そして、共有空間合成部152は、Iに「1」を加算する(S2219)。その後、共有空間合成部152は、再びS2207の処理を行う。
{2−3−4.オブジェクト優先度計算処理}
次に、図33を参照して、S2009における「オブジェクト優先度計算処理」の内容を詳細に説明する。図33に示したように、まず、共有空間合成部152は、処理対象のオブジェクトの番号を示す変数Iに「1」を設定する(S2301)。そして、共有空間合成部152は、各元空間の入力部22から受信されたFrameデータに含まれるオブジェクトの総数をNに設定する(S2303)。
そして、IがN以下である限り(S2305:Yes)、共有空間合成部152は、以下のS2307〜S2317の処理を行う。なお、IがNよりも大きくなった場合には(S2305:No)、当該「オブジェクト優先度計算処理」は終了する。
具体的には、まず、優先度算出部400は、各元空間から取得されたFrameデータからI番目のオブジェクトを抽出する。そして、優先度算出部400は、オブジェクト優先ポリシー1624に基づいて、I番目のオブジェクトの属性に関する優先度(以下、I番目のオブジェクトの優先度Aと称する場合がある)を計算する(S2307)。
続いて、優先度算出部400は、オブジェクト優先ポリシー1624に基づいて、他のオブジェクトとの関係性に関するI番目のオブジェクトの優先度(以下、I番目のオブジェクトの優先度Bと称する場合がある)を計算する(S2309)。
続いて、優先度算出部400は、オブジェクト優先ポリシー1624と、オブジェクト管理情報DB164とに基づいて、共有空間上でのコンテキストに関するI番目のオブジェクトの優先度(以下、I番目のオブジェクトの優先度Cと称する場合がある)を計算する(S2311)。
続いて、優先度算出部400は、I番目のオブジェクトの先行オブジェクトIDリストと、オブジェクト管理情報DB164とに基づいて、I番目のオブジェクトの表示状況に関する優先度(以下、I番目のオブジェクトの優先度Dと称する場合がある)を計算する(S2313)。例えば、I番目のオブジェクトが前のフレームで表示されていれば、優先度算出部400は、I番目のオブジェクトの優先度Dを(「0」よりも大きい)所定の値と算出する。また、I番目のオブジェクトが前のフレームで表示されていなければ、優先度算出部400は、I番目のオブジェクトの優先度Dを「0」と算出する。
続いて、優先度算出部400は、S2307〜S2313で計算された、I番目のオブジェクトの優先度A、優先度B、優先度C、および優先度Dに基づいて、I番目のオブジェクトの最終的な優先度を計算する(S2315)。
続いて、優先度算出部400は、Iに「1」を加算する(S2317)。その後、優先度算出部400は、再びS2305の処理を行う。
{2−3−5.オブジェクトレイアウト処理}
次に、図34〜図36を参照して、S2011における「オブジェクトレイアウト処理」の内容を詳細に説明する。図34に示したように、まず、共有空間合成部152は、空の共有空間Frameデータを生成する(S2401)。
続いて、共有空間合成部152は、ベース空間レイアウト情報160に格納されている全てのオブジェクトを、生成した共有空間Frameデータにコピーする(S2403)。
続いて、共有空間合成部152は、ベース空間以外の全ての元空間の各々から取得されたFrameデータに含まれるオブジェクトに関して、S2009で算出された優先度の高いオブジェクトの順を示すリストを生成する(S2405)。
続いて、共有空間合成部152は、処理対象のオブジェクトの番号を示す変数Iに「1」を設定する(S2407)。
続いて、共有空間合成部152は、S2405で生成されたリストから、優先度がI番目に高いオブジェクトを抽出する(S2409)。そして、共有空間合成部152は、抽出したオブジェクトに関して、共有空間上の配置位置の候補を複数生成する(S2411)。そして、共有空間合成部152は、生成した各候補に関して、例えば図35に示したようなオブジェクトレイアウト評価グラフ上にノードを追加する(S2413)。例えば、図35では、Iが「1」である場合(「オブジェクト1」)では、「オブジェクト1」が配置可能な位置の候補が3個(Pos1、Pos2、および、Pos3)生成された例を示している。この場合、図35に示したように、共有空間合成部152は、3個の候補の各々に対応するノードをオブジェクトレイアウト評価グラフ上に追加する。
続いて、共有空間合成部152は、生成した各候補に関して、オブジェクトレイアウト評価ポリシー1626に基づいて当該候補のオブジェクトレイアウト評価値を計算し、そして、計算したオブジェクトレイアウト評価値を、当該候補に対応するノードに記録する(S2415)。
続いて、共有空間合成部152は、オブジェクトレイアウト評価値の高い候補の順に、ノードを並べる(S2417)。例えば、図35に示した例では、共有空間合成部152は、「オブジェクト1」に関する3個の候補に関して、オブジェクトレイアウト評価値が高い順(つまりPos1、Pos2、Pos3の順)に、各候補に対応するノードを並べる。
続いて、共有空間合成部152は、Iに「1」を加算する(S2419)。そして、共有空間合成部152は、レイアウト終了判定ポリシー1628に基づいて、レイアウト処理を終了するか否かを判定する(S2421)。レイアウト処理を終了しないことを判定した場合には(S2421:No)、共有空間合成部152は、再びS2409以降の処理を行う。
一方、レイアウト処理を終了することを判定した場合には(S2421:Yes)、共有空間合成部152は、まず、最後のノードに関して、オブジェクトレイアウト評価グラフ上での評価値が最大である配置位置を特定する。図36は、レイアウト処理が終了した時点のオブジェクトレイアウト評価グラフの例を示した説明図である。図36に示した例では、共有空間合成部152は、レイアウト処理が終了した時点の最後のオブジェクトである「オブジェクトX」に関して、評価値が最大である配置位置が「Pos14」であることを特定する。
その後、共有空間合成部152は、例えば図36において破線の矢印で示したように、最後のノードからルートノードに遡りながら、レイアウト対象となった各オブジェクトの配置位置を順次特定する。そして、共有空間合成部152は、特定した各オブジェクトの情報(配置位置など)を共有空間Frameデータおよびオブジェクト管理情報DB164に順次記録する(S2423)。
<2−4.効果>
以上説明したように、第2の実施形態によれば、サーバ10‐2は、レイアウトポリシー情報DB162に基づいてベース空間を決定し、そして、ベース空間内に位置するオブジェクトを優先しつつ、ベース空間内のオブジェクトと他の元空間内のオブジェクトとを共有空間上に配置する。例えば、空間2a内のユーザ4aがARデバイスを装着しており、かつ、空間2b内のユーザ4bがVRデバイスを装着している場合には、サーバ10‐2は、空間2aをベース空間として決定し、そして、空間2a内のオブジェクトを(空間2b内のオブジェクトよりも)優先して共有空間上に配置する。これにより、ユーザ4aおよびユーザ4bの双方にとって満足感が高い共有空間を生成することができる。
<2−5.応用例1>
{2−5−1.ARデバイス使用時のオブジェクトの表示制御}
以上、第2の実施形態について説明した。次に、第2の実施形態の応用例1について説明する。この応用例1によれば、表示部246がARデバイスである場合には、ARデバイスにより適した映像が表示部246に表示されるように制御することが可能である。
例えば、表示部246がARデバイスである実空間に関しては、入力部22のセンサ部220は、Frameデータの生成時に、当該実空間内の全てのオブジェクトを「ARオブジェクト」として設定して、メタ情報内に記録する。そして、サーバ10‐2の共有空間合成部152は、「ARオブジェクト」として設定されているオブジェクトを(「ARオブジェクト」として設定されていないオブジェクトよりも)優先して配置する。
なお、サーバ10‐2は、「ARオブジェクト」として設定されているオブジェクトの元空間に対して、当該オブジェクトの映像を含まない自由視点のコンテンツを送信するように制御してもよい。例えば、生成された共有空間Frameデータに含まれるオブジェクトが「ARオブジェクト」として設定されており、かつ、送信先の実空間が当該オブジェクトの元空間である場合には、サーバ10‐2は、当該オブジェクトを除外してストリームを生成し、そして、生成したストリームを当該実空間へ送信する。これにより、「ARオブジェクト」として設定されているオブジェクトの映像は、当該オブジェクトの元空間において表示されないことになる。
あるいは、出力部24が該当の「ARオブジェクト」を表示しないように制御することも可能である。例えば、表示部246がARデバイスである場合には、出力部24は、まず、サーバ10‐2から受信されたストリーム(共有空間Frameデータ)に含まれる複数のオブジェクトのうち、「ARオブジェクト」として設定されており、かつ、出力部24が位置する実空間内のオブジェクトを特定する。そして、出力部24は、特定したオブジェクトを表示部246に表示させないように制御する。
{2−5−2.遮蔽表現・上書き表現}
また、表示部246がARデバイスである場合には、サーバ10(制御情報送信部122など)、または、当該表示部246を含んでいる出力部24は、当該自由視点のコンテンツを上書き表現または遮蔽表現を用いて表示部246に表示させることが可能である。ここで、上書き表現は、原則として当該自由視点のコンテンツのみが視認されるように表示部246に表示させる表示方法である。つまり、上書き表現が用いられる場合には、ユーザが位置する実空間内の実オブジェクトが表示対象として選択されていない限り、当該実オブジェクトは、原則として当該ユーザに視認されない。また、遮蔽表現は、実空間内のユーザの位置、当該実空間内の実オブジェクトの位置、および、当該自由視点のコンテンツ内の仮想オブジェクトの位置の関係性に基づいて、当該自由視点のコンテンツ内の一部の仮想オブジェクトが当該実空間内の実オブジェクトにより遮蔽されるように当該自由視点のコンテンツを表示部246に表示させる表示方法である。
(2−5−2−1.上書き表現)
ここで、図37〜図38Bを参照して、「上書き表現」および「遮蔽表現」の内容についてより詳細に説明する。図37は、実空間2内のユーザ4と、実空間2内の複数の実オブジェクト330と、(ユーザ4が視聴している)自由視点のコンテンツ内の複数の仮想オブジェクト340との位置関係の例を示した説明図である。例えば、図37に示した状況において、自由視点のコンテンツが上書き表現を用いて表示される場合には、ユーザ4は、図38Aに示したような景観を表示部246を介して視認する。ここで、破線で示したように、実空間2内の実オブジェクト330aおよび実オブジェクト330bは、あたかも自由視点のコンテンツにより上書きされるような映像が表示部246に表示され得る。このため、実オブジェクト330aおよび実オブジェクト330bはユーザ4に視認されない。従って、ユーザ4は、あたかも共有空間内に位置しているかのような感覚を強く抱き得る。
(2−5−2−2.遮蔽表現)
一方、例えば、図37に示した状況において、自由視点のコンテンツが遮蔽表現を用いて表示される場合には、ユーザ4は、図38Bに示したような景観を表示部246を介して視認する。図38Bに示したように、図37に示した複数の実オブジェクト330および複数の仮想オブジェクト340のうち、例えばユーザ4の視点位置および視線方向の検出結果に基づいて、より手前側に位置するオブジェクトが、表示部246を介してユーザ4に視認され得る。これにより、例えば、ユーザ4は、自由視点のコンテンツを視聴しながら、周囲の実オブジェクトを確認することができる。このため、ユーザ4が周囲の実オブジェクトに誤って衝突する危険性が減少する。
(2−5−2−3.上書き表現と遮蔽表現との併用)
または、サーバ10(制御情報送信部122など)、または、当該表示部246を含んでいる出力部24は、上書き表現と遮蔽表現とを併用して、当該自由視点のコンテンツを表示部246に表示させることも可能である。
ここで、図39〜図41を参照して、上記の機能についてより詳細に説明する。なお、ここでは、図39に示した実空間2bがベース空間として設定され、そして、実空間2a内の複数の実オブジェクト330、および、実空間2b内の複数の実オブジェクト332に基づいて、共有空間および自由視点のコンテンツが生成されることを前提とする。また、実空間2a内の表示部246aはARデバイスであることを前提とする。
この場合、図40に示したように、サーバ10、または、実空間2a内の出力部24aは、実空間2内のユーザ4aの位置から所定の範囲(図40に示した例では距離“d”)内では遮蔽表現を用い、かつ、ユーザ4aの位置から所定の範囲外では上書き表現を用いることにより、当該自由視点のコンテンツを表示部246aに表示させてもよい。なお、図40では、自由視点のコンテンツ内の各仮想オブジェクト342を網掛けで示し、かつ、実空間2a内の実オブジェクトを網掛けをせずに示している。図40に示したように、ユーザ4aの位置から所定の範囲内に位置する実オブジェクト330dは、例えば当該所定の範囲内の部分のみ(当該自由視点のコンテンツ内の仮想オブジェクト342dにより上書きされずに)ユーザ4aに視認され得る。これにより、共有空間内に位置しているかのような体験をユーザ4aに対して提供しつつ、かつ、ユーザ4aの安全性を確保することができる。ここで、当該所定の範囲は、自動的に設定されてもよいし、または、例えば表示部246に表示されるUIに対する操作などにより、ユーザにより指定されてもよい。
なお、この場合、サーバ10(制御情報送信部122など)、または、実空間2b内の出力部24bは、例えば、図41に示したように、該当の実空間2aにおいて、遮蔽表現の対象となった実オブジェクトを示す表示を当該自由視点のコンテンツに重畳して表示させてもよい。例えば、サーバ10、または、実空間2b内の出力部24bは、図41に示したように、遮蔽表現の対象となった実オブジェクト330dに対応する仮想オブジェクト340dを当該自由視点のコンテンツに重畳して表示させてもよい。この表示例によれば、ユーザ4bは、相手のユーザ4aが実際に視認している映像を知る(共有する)ことができる。その結果、例えば、ユーザ4aとユーザ4bとが会話をする場合に、仮にユーザ4aが実オブジェクト330dを話題にしたとしても、話が噛合わなくなることを防ぐことができる。
{2−5−3.輝度の調整}
なお、変形例として、表示部246がARデバイスである場合には、当該表示部246を含んでいる出力部24は、出力部24が位置する実空間(ここでは、実空間2aと称する)におけるセンサ部220によるセンシング結果に基づいて特定された実空間2aの輝度に基づいて、受信されたストリーム(つまり、自由視点のコンテンツ)内の各オブジェクトの表示輝度を調整することも可能である。例えば、特定された実空間2aの輝度が高いほど、出力部24は、受信された自由視点のコンテンツ内の各オブジェクトの表示輝度をより高くする。これにより、実空間2a内の実オブジェクトと、自由視点のコンテンツ内の各オブジェクトとの視認性を概ね一致させて表示させることができる。
また、自由視点のコンテンツ内の各オブジェクトが実空間2aにおいて表示される位置における(実空間2aの)輝度が、例えばセンサ部220により撮影された画像に対する画像認識などにより特定される場合には、出力部24は、特定された各位置の輝度と整合するように、当該自由視点のコンテンツ内の各オブジェクトの表示輝度を調整してもよい。これにより、例えば、当該自由視点のコンテンツ内の、あるオブジェクトが実空間2a内の物陰に配置される場合には、当該オブジェクトの表示輝度は相対的に低く設定され得る。従って、実空間2aにおいて自由視点のコンテンツが表示される際の視認性(統一感)を良好に調整することができる。
<2−6.応用例2>
次に、第2の実施形態の応用例2について説明する。この応用例2によれば、サーバ10‐2は、例えばユーザごとに予め設定されている情報に基づいてベース空間を決定することができる。
図42は、応用例2による共有空間管理用DB110の構成例を示した図である。図42に示したように、応用例2による共有空間管理用DB110は、設定情報DB112をさらに含む。
{2−6−1.設定情報DB112}
設定情報DB112は、例えばユーザによる自由視点のコンテンツの利用開始時や利用終了時における、当該自由視点のコンテンツに対応する共有空間の生成や変更に関する設定情報を格納するデータベースである。図43は、設定情報DB112の構成例を示した図である。図43に示したように、設定情報DB112は、例えば、ベース空間選択設定テーブル114、および、参加時ベース空間切り替え設定テーブル116を含む。なお、各テーブルの具体的な内容については後述する。
なお、設定情報DB112の登録内容は、各実空間2内のユーザによりクライアント20を介して参照されたり、変更され得る。例えば、各実空間2内の出力部24が設定画面を表示している際に、所定の入力方法(例えば、所定の入力装置に対する操作、ジェスチャー、視線操作、または、発話など)により、各実空間2内のユーザが設定情報DB112の登録内容を参照したり、変更することが可能であってもよい。または、ユーザが共有空間に参加している場合に、当該ユーザの共有空間上でのジェスチャーや音声が認識されることにより、当該ユーザは設定情報DB112の登録内容を参照したり、変更することが可能であってもよい。なお、各ユーザは、設定情報DB112において、当該ユーザまたは当該ユーザの元空間に関連付けられている設定値のみを変更可能であってもよい。
{2−6−2.共有空間合成部152}
(2−6−2−1.ベース空間の決定例:空間共有の開始時)
応用例2による共有空間合成部152は、例えば空間共有の開始時において、設定情報DB112の登録内容に基づいてベース空間を決定する。
‐空間共有の開始時の設定情報:ユーザの選択
例えば、あるユーザ4aが相手のユーザ4bを選択し、かつ、空間共有を開始するための操作を行ったことが検出された際には、共有空間合成部152は、設定情報DB112内のベース空間選択設定テーブル114の登録内容に基づいてベース空間を決定する。
一例として、共有空間合成部152は、ベース空間選択設定テーブル114において、ユーザ4aに関連付けられている設定値と、ユーザ4bに関連付けられている設定値との比較に基づいてベース空間を決定する。例えば、ベース空間選択設定テーブル114において、ユーザ4aに関連付けられている、希望のベース空間の候補と、ユーザ4bに関連付けられている、希望のベース空間の候補とが少なくとも一以上一致する場合には、共有空間合成部152は、一致したベース空間の候補をベース空間として決定し、かつ、自由視点のコンテンツを生成することを決定する。
より詳細には、一致するベース空間の候補が一つだけ存在する場合には、共有空間合成部152は、当該ベース空間の候補をベース空間として決定する。また、一致するベース空間の候補が複数存在する場合には、共有空間合成部152は、当該複数のベース空間の候補をユーザ4aおよびユーザ4bのうちのいずれかに提示し、そして、該当のユーザにより選択されたベース空間の候補をベース空間として決定する。ここで、提示対象のユーザは、例えば空間共有の開始の操作を行ったユーザ4であってもよいし、または、予め定められている優先順位がより高いユーザであってもよい。または、共有空間合成部152は、二人のユーザ4(ユーザ4aおよびユーザ4b)に対して当該複数のベース空間の候補を提示し、そして、当該二人のユーザ4が合意したベース空間の候補をベース空間として決定してもよい。
また、ベース空間選択設定テーブル114において、ユーザ4aに関連付けられている、希望のベース空間の候補と、ユーザ4bに関連付けられている、希望のベース空間の候補とが一致しない場合には、共有空間合成部152は、自由視点のコンテンツを生成しないことを決定し、かつ、ベース空間を決定しない。なお、この際、共有空間合成部152は、ユーザ4aが位置する実空間2a内の出力部24a、および、ユーザ4bが位置する実空間2b内の出力部24bに、エラーを示す情報を出力させてもよい。
‐空間共有の開始時の設定情報:実空間の選択
または、あるユーザ4が実空間を選択し、かつ、空間共有を開始するための操作を行ったことが検出された際にも、共有空間合成部152は、設定情報DB112内のベース空間選択設定テーブル114の登録内容に基づいてベース空間を決定することが可能である。
例えば、共有空間合成部152は、後述するベース空間選択設定テーブル114において、当該ユーザ4aに関連付けられている設定値と、当該選択された実空間内に位置するユーザ4bまたは当該実空間に関連付けられている設定値との比較に基づいてベース空間を決定する。例えば、ベース空間選択設定テーブル114において、ユーザ4aに関連付けられている設定値が「他のユーザの実空間をベース空間として利用する」であり、かつ、当該選択された実空間内に位置するユーザ4bに関連付けられている設定値が「どちらでもよい」である場合には、共有空間合成部152は、当該選択された実空間をベース空間として決定し、かつ、自由視点のコンテンツを生成することを決定する。
‐‐ベース空間選択設定テーブル114
ベース空間選択設定テーブル114は、ベース空間の選択に関する設定情報が格納されるテーブルである。例えば、ベース空間選択設定テーブル114では、ユーザIDと設定値とが関連付けられていてもよいし、または、実空間と設定値とが関連付けられていてもよい。なお、後者の場合、実空間内に位置するユーザが誰であっても、また、当該実空間内にユーザがいない場合であっても、ベース空間の選択に関して同じ設定値が適用される。または、ベース空間選択設定テーブル114では、ユーザID、実空間、および、設定値が関連付けられていてもよい。
ここで、当該設定値には、例えば「自分の実空間をベース空間として利用する」、「他のユーザの実空間をベース空間として利用する」、および、「どちらでもよい」などが登録され得る。例えば、ベース空間選択設定テーブル114においてユーザ4aに関連付けられている設定値が「自分の実空間をベース空間として利用する」であり、かつ、ユーザ4bに関連付けられている設定値が「どちらでもよい」である場合には、共有空間合成部152は、(ユーザ4aが位置する)実空間2aをベース空間として決定する。
または、当該設定値には、例えば「実空間A」、「実空間B」、および「実空間C」など、実空間の識別情報が登録され得る。この場合、ベース空間選択設定テーブル114において、ユーザ4aに関連付けられている設定値が「実空間A、実空間C、実空間D」であり、かつ、ユーザ4bに関連付けられている設定値が「実空間B、実空間C」である場合には、両者の間で「実空間C」のみが一致する。そこで、共有空間合成部152は、「実空間C」をベース空間として決定する。
‐招待用UI
なお、変形例として、実空間2a内に位置するユーザ4aが、他の実空間2b内に位置するユーザ4bに対して招待メッセージを発行し、そして、共有空間合成部152は、当該招待メッセージに対するユーザ4bの回答に基づいて、ベース空間を決定することも可能である。
例えば、図44に示したように、実空間2a内のユーザ4aは、まず、実空間2aをベース空間として設定して空間共有を一緒に行うことを促す招待メッセージを、実空間2b内のユーザ4bに対して発行したとする。この場合、ユーザ4bが閲覧する表示部246には、例えば図44に示したような招待用UI350が表示され得る。そして、招待用UI350に対して、承諾する旨の回答(図44に示した例では“Yes”)をユーザ4bが入力した場合には、サーバ10(共有空間合成部152)は、実空間2aをベース空間として決定する。
なお、他の実空間2b内に複数のユーザが存在する場合には、実空間2a内のユーザは、他の実空間2b内の全てのユーザに対して同じ招待メッセージを発行することも可能である。これにより、当該他の実空間2b内に位置するユーザごとに、表示される映像の種類が異なることを防止することができる。
なお、上記の説明では、ベース空間が決定される前に、ユーザ4aが招待メッセージを相手のユーザ4bに対して発行する例を説明したが、かかる例に限定されない。例えば、ベース空間が決定された後(または、共有空間が生成された後)に、ユーザ4aは、当該ベース空間に対応する共有空間に参加することを促す招待メッセージを相手のユーザ4bに対して発行してもよい。この場合、相手のユーザ4bが当該招待メッセージに対して承諾する旨の回答をした場合には、サーバ10は、当該相手のユーザ4bが当該共有空間に参加することを許可することが可能である。
‐‐集合状態の管理
なお、サーバ10は、複数の実空間の各々に関して共有空間への参加状況を管理し得る。例えば、サーバ10は、実空間ごとに、当該実空間内のユーザのベース空間への集合状態を管理する。図45は、実空間ごとの、当該実空間内のユーザの、ベース空間への集合状態を管理するためのテーブル360の構成例を示した説明図である。図45に示したように、テーブル360では、実空間370と、集合エリア372とが関連付けられ得る。また、集合エリア372は、状態374、および、エリア376を含む。ここで、状態374には、該当の実空間内のユーザがベース空間に集合している状態であるか否か(「集合あり」もしくは「集合なし」)が記録され得る。また、エリア376には、該当の実空間が「集合あり」である場合には「集合している空間」の識別情報(つまり、ベース空間の(元空間の)識別情報)が記録され得る。なお、該当の実空間が「集合なし」である場合には、エリア376には、ブランク(空白)が設定され得る。
例えば、図45に示した例では、「実空間B」がベース空間として設定されており、そして、「実空間A」および「実空間D」内の各ユーザが当該ベース空間へ集合していることを示している。また、「実空間C」内の各ユーザは、当該ベース空間へ集合していない(つまり、当該ベース空間に対応する共有空間へ参加していない)ことを示している。なお、図45に示したように、当該ベース空間の元空間である「実空間B」では、「集合なし」が状態374に設定され得る。
(2−6−2−2.ベース空間の決定例:共有空間へのユーザの追加参加時)
また、応用例2による共有空間合成部152は、生成済みの共有空間に対する新たなユーザの参加時において、設定情報DB112の登録内容に基づいてベース空間を決定することも可能である。例えば、自由視点のコンテンツの生成後で、かつ、当該自由視点のコンテンツに対応する共有空間へ新たなユーザ4aが参加するための操作が検出された場合には、共有空間合成部152は、当該共有空間に対応するベース空間を変更するか否かを所定の条件に基づいて決定する。
ここで、当該共有空間へ新たなユーザ4aが参加するための操作は、例えば、当該新たなユーザ4aが閲覧する表示部246に表示される共有空間リストの中から、例えば所定の入力装置に対する操作、ジェスチャー、視線操作、または、発話などにより、参加を希望する共有空間を当該新たなユーザ4aが選択することであってもよい。または、当該操作は、当該新たなユーザ4aが、所望の共有空間(または当該共有空間に対応するベース空間)の名前を直接発話することであってもよい。なお、新たなユーザ4aが閲覧する表示部246には、当該共有空間に対応するベース空間の識別情報や、当該共有空間に現在参加中のユーザの識別情報などが、当該共有空間へ参加する前に表示されてもよい。
‐決定例1
以下、共有空間合成部152による、ベース空間の変更の決定例についてより詳細に説明する。例えば、共有空間合成部152は、ベース空間選択設定テーブル114において当該新たなユーザ4aに関連付けられている設定値に基づいて、現在のベース空間を変更するか否かを決定する。例えば、ベース空間選択設定テーブル114において当該新たなユーザ4aに関連付けられている設定値が「他のユーザの実空間をベース空間として利用する」または「どちらでもよい」である場合には、共有空間合成部152は、現在のベース空間を変更しないことを決定する。または、ベース空間選択設定テーブル114において当該新たなユーザ4aに関連付けて、希望のベース空間の候補が登録されている場合で、かつ、当該希望のベース空間の候補の中に、当該共有空間に対応するベース空間が存在する場合には、共有空間合成部152は、現在のベース空間を変更しないことを決定する。つまり、現在のベース空間が優先される。これにより、ベース空間が頻繁に切り替わることが回避されるので、共有空間に参加中のユーザの活動に影響が生じることを抑制することができる。なお、この際、当該共有空間への当該新たなユーザ4aの参加は許可され得る。
また、ベース空間選択設定テーブル114において当該新たなユーザ4aに関連付けられている、希望のベース空間の候補の中に、当該共有空間に対応するベース空間が存在しない場合には、共有空間合成部152は、当該共有空間に参加中の全てのユーザ4bに対する、ベース空間の切り替えに関する問い合わせに対する回答に基づいて、現在のベース空間を変更するか否かを決定してもよい。例えば、共有空間合成部152は、まず、ベース空間選択設定テーブル114において当該新たなユーザ4aに関連付けられている、希望する一以上のベース空間の候補を、当該共有空間に参加中の全てのユーザ4bに提示する。そして、当該一以上のベース空間の候補のうちのいずれかにベース空間を切り替えることを全てのユーザ4bが合意した場合に限り、共有空間合成部152は、現在のベース空間を、該当のベース空間の候補に切り替えることを決定してもよい。
‐決定例2
また、共有空間合成部152は、参加時ベース空間切り替え設定テーブル116において、当該共有空間に参加中の全てのユーザ4bの各々に関連付けられている設定値に基づいて、現在のベース空間を変更するか否かを決定することも可能である。ここで、参加時ベース空間切り替え設定テーブル116は、別のユーザが共有空間に新たに参加しようとする際の、ベース空間の切り替えを許可するか否かに関する設定情報が格納されるテーブルである。例えば、参加時ベース空間切り替え設定テーブル116では、ユーザIDと設定値とが関連付けられていてもよいし、実空間と設定値とが関連付けられていてもよいし、または、ユーザID、実空間、および、設定値が関連付けられていてもよい。ここで、当該設定値には、例えば「ベース空間の切り替えを許可する」、および、「ベース空間の切り替えを許可しない」などが登録され得る。
例えば、参加時ベース空間切り替え設定テーブル116において、当該共有空間に参加中の全てのユーザ4bの各々に関連付けられている設定値のうちの少なくとも一以上が「ベース空間の切り替えを許可しない」である場合には、共有空間合成部152は、現在のベース空間を変更しないことを決定する。また、参加時ベース空間切り替え設定テーブル116において当該共有空間に参加中の全てのユーザ4bの各々に関連付けられている設定値の全てが「ベース空間の切り替えを許可する」である場合には、共有空間合成部152は、上述したような、当該共有空間に参加中の全てのユーザ4bに対する、ベース空間の切り替えに関する問い合わせに対する回答に基づいて、現在のベース空間を変更するか否かを決定してもよい。この決定例2によれば、他のユーザが共有空間に参加を希望する場合に、当該共有空間にすでに参加中の各ユーザが、ベース空間の切り替えの是非に関する回答を毎回要求されることを回避することが可能となる。このため、各ユーザの負担が軽減される。
‐招待用UI
なお、変形例として、当該共有空間に参加中の少なくとも一人のユーザ4aが、共有空間に未参加のユーザ4bに対して共有空間への参加を促す招待メッセージを発行し、そして、当該招待メッセージに対する、当該未参加のユーザ4bが承諾する旨を回答した場合には、サーバ10は、当該未参加のユーザ4bが当該共有空間に参加することを可能としてもよい。なお、この場合、共有空間合成部152は、現在のベース空間を変更しないことを決定する。
(2−6−2−3.ベース空間の切り替えに基づくコンテンツの加工)
また、ベース空間を切り替えることが決定された場合には、共有空間合成部152は、当該ベース空間が切り替えられることを、当該共有空間に参加中のユーザが知覚可能なように、当該自由視点のコンテンツを加工する。例えば、共有空間合成部152は、当該ベース空間が切り替わることを示す、所定の時間(例えば10秒など)のアニメーションを表示させるように、当該自由視点のコンテンツを加工する。
一例として、ベース空間を切り替えることが決定された場合には、共有空間合成部152は、図46に示したように、まず、透過度が初期値(例えば100%など)に設定された、変更後のベース空間を、変更前のベース空間に重畳して表示させる。そして、共有空間合成部152は、所定の時間をかけて、当該変更前のベース空間の透過度を0%から100%へと徐々に上げ、かつ、当該変更後のベース空間の透過度を初期値から0%へと徐々に下げる処理を行う。なお、図46では、オブジェクト42cが当該変更前のベース空間内に位置しており、かつ、オブジェクト42dが当該変更後のベース空間内に位置している例を示している。
また、図47に示したように、共有空間合成部152は、ベース空間の変更前後で共に表示されるオブジェクト全て(例えば、ベース空間の変更後に共有空間内に残るユーザなど)が変更前のベース空間から変更後のベース空間へと飛んで移動するようなアニメーションを表示させるように、当該自由視点のコンテンツを加工してもよい。これらの処理例によれば、ベース空間が切り替えられる場合に、該当の自由視点のコンテンツの映像がシームレスに知覚されるように表示される。このため、共有空間にすでに参加中の各ユーザが違和感を抱いたり、驚くことを防止することができる。
また、共有空間合成部152は、ベース空間の切り替えのタイミングに、所定の効果音を出力させるように、当該自由視点のコンテンツを加工してもよい。
(2−6−2−4.その他)
‐未参加中のユーザの表示
なお、変形例として、共有空間合成部152は、例えば所定の条件が満たされる場合には、共有空間に参加していない実空間内のユーザ4を示す情報(例えば、当該実空間内のユーザ4の映像や名前など)を、自由視点のコンテンツに含めるように当該自由視点のコンテンツを加工してもよい。
例えば、共有空間合成部152は、共有空間に参加していない実空間内のユーザ4に対応する共有オブジェクトを共有空間内に配置し、かつ、当該共有オブジェクトの透過度を上げることにより、自由視点のコンテンツを生成してもよい。これにより、共有空間に参加中のユーザは、自由視点のコンテンツを視聴しながら、共有空間に参加していないユーザ4を知ることができる。
また、この場合、サーバ10は、さらに、共有空間に参加している実空間内のユーザ4の映像を、共有空間に参加していない実空間内の出力部24に表示させてもよい。これにより、共有空間に参加していない実空間内のユーザは、現在共有空間に参加していないことを知ることができたり、また、共有空間に参加している(実空間内の)ユーザを知ることができる。
{2−6−3.処理の流れ}
以上、応用例2による構成について説明した。次に、応用例2による処理の流れについて、「2−6−3−1.空間共有の開始時の処理の流れ」および「2−6−3−2.共有空間への追加参加時の処理の流れ」において説明する。
(2−6−3−1.空間共有の開始時の処理の流れ)
‐(a)空間共有の開始時の設定情報を用いた例
まず、「空間共有の開始時の処理の流れ」について、2種類の例(「(a)空間共有の開始時の設定情報を用いた例」および「(b)招待用UIを用いた例」)を説明する。
まず、「(a)空間共有の開始時の設定情報を用いた例」に関する処理の流れについて、図48および図49を参照して説明する。図48に示したように、まず、実空間2a内に位置するユーザ4aが、例えば実空間2b内に位置するユーザ4bを指定することにより、空間共有を開始するための操作を行う。そして、実空間2a内の入力部22aは、当該操作が行われたことを検出し、そして、検出結果をサーバ10‐2へ送信する(S2501)。
その後、当該検出結果が受信されると、サーバ10‐2の共有空間合成部152は、ベース空間選択設定テーブル114においてユーザ4aに関連付けられている設定値をベース空間選択設定テーブル114から抽出する(S2503)。また、共有空間合成部152は、ベース空間選択設定テーブル114において相手のユーザ4bに関連付けられている設定値をベース空間選択設定テーブル114から抽出する(S2505)。
続いて、共有空間合成部152は、S2503で抽出された設定値と、S2505で抽出された設定値とに基づいて、選択可能なベース空間の候補を特定し、そして、特定したベース空間の候補のリストを生成する(S2507)。
S2507においてベース空間の候補が全く特定されなかった場合には(S2509:No)、共有空間合成部152は、自由視点のコンテンツを生成しないことを決定する。そして、サーバ10‐2は、エラーを示す情報を実空間2a内の出力部24aに出力させる(S2511)。なお、サーバ10‐2は、エラーを示す情報を実空間2b内の出力部24bにさらに出力させてもよい。その後、当該「空間共有の開始時の処理」は終了する。
一方、ベース空間の候補が一つだけ特定された場合には(S2509:Yes、S2513:No)、共有空間合成部152は、後述するS2521の処理を行う。
一方、ベース空間の候補が複数特定された場合には(S2509:Yes、S2513:Yes)、共有空間合成部152は、S2507で生成されたベース空間の候補のリストを例えばユーザ4aに対して出力部24aに提示させ、そして、希望するベース空間の候補をユーザ4aに選択させる(S2515)。なお、変形例として、共有空間合成部152は、ユーザ4aおよびユーザ4bに対して当該リストを提示させ、そして、希望するベース空間の候補を当該二人のユーザの各々に選択させてもよい。
ここで、図49を参照して、S2515よりも後の処理について説明する。S2515の後、共有空間合成部152は、S2515で選択されたベース空間の候補、または、S2507で特定されたベース空間の候補をベース空間として決定する(S2521)。
続いて、共有空間合成部152は、実空間2aおよび実空間2bのうち当該ベース空間とは異なる実空間と、S2521で決定されたベース空間とに基づいて共有空間を生成する(S2523)。そして、共有空間合成部152は、生成した共有空間に基づいて自由視点のコンテンツを生成する(S2525)。
続いて、共有空間合成部152は、S2521で決定されたベース空間上の機器のアクセス権を、当該ベース空間とは異なる実空間内に位置するユーザ4に対して付与する(S2527)。
続いて、共有空間合成部152は、S2521で決定されたベース空間上で再生され得る共有コンテンツのアクセス権を、当該ベース空間とは異なる実空間内に位置するユーザ4に対して付与する(S2529)。その後、当該「空間共有の開始時の処理」は終了する。
‐(b)招待用UIを用いた例
次に、「(b)招待用UIを用いた例」に関する処理の流れについて、図50を参照して説明する。なお、ここでは、実空間2a内に位置するユーザ4aが、例えば実空間2b内に位置するユーザ4bに対して、空間共有を一緒に行うための招待用メッセージを発行する例について説明する。
図50に示したように、まず、実空間2a内のユーザ4aが、例えば実空間2aをベース空間として設定して空間共有を一緒に開始することを、実空間2b内のユーザ4bに対して招待するための入力を行った場合には(S2551:Yes)、サーバ10は、入力された招待メッセージをユーザ4bに対して通知する(S2553)。
その後、当該招待メッセージに対してユーザ4bが承諾しなかった場合(つまり、ユーザ4aと空間共有を行うことを承諾しなかった場合)には(S2555:No)、再びS2551の処理が実行される。
一方、当該招待メッセージに対してユーザ4bが承諾した場合には(S2555:Yes)、サーバ10の共有空間合成部152は、実空間2aをベース空間として決定する(S2557)。
なお、図50に示したS2559〜S2561は、図49に示したS2523〜S2525と同様である。その後、サーバ10の送信部132は、生成された自由視点のコンテンツ(ストリーム)を実空間2aおよび実空間2bの各々の出力部24へ送信する。
そして、実空間2bに関連付けられている、遮蔽表現の使用の設定が「ON」である場合には、サーバ10または実空間2b内の出力部24は、当該設定を「OFF」へ切り替える(S2563)。
その後、実空間2aおよび実空間2b内の各々の出力部24(の表示部246)は、受信された自由視点のコンテンツをそれぞれ表示する(S2565)。
その後、サーバ10は、S2551で入力された招待要求を処理済みとして、廃棄する(S2567)。そして、再びS2551の処理が実行される。
(2−6−3−2.共有空間への追加参加時の処理の流れ)
次に、図51を参照して、「共有空間への追加参加時の処理の流れ」について説明する。なお、ここでは、実空間2c内に位置しており、かつ、共有空間に未参加であるユーザ4cが、共有空間への参加を希望する場面における処理の流れの一例について説明する。
図51に示したように、まず、ユーザ4cが、参加を希望する共有空間へ参加するための操作を行う。そして、実空間2c内の入力部22cは、当該操作が行われたことを検出し、そして、検出結果をサーバ10‐2へ送信する(S2601)。
その後、当該検出結果が受信されると、サーバ10‐2の共有空間合成部152は、ベース空間選択設定テーブル114において、ユーザ4cに関連付けられている設定値をベース空間選択設定テーブル114から抽出する(S2603)。
続いて、共有空間合成部152は、S2603で抽出された設定値が「自分の実空間をベース空間として利用する」であるか否かを判定する(S2605)。当該設定値が「自分の実空間をベース空間として利用する」ではない場合には(S2605:No)、共有空間合成部152は、該当の共有空間に対応するベース空間を変更しないことを決定する(S2607)。その後、共有空間合成部152は、後述するS2619の処理を行う。
一方、当該設定値が「自分の実空間をベース空間として利用する」である場合には(S2605:Yes)、共有空間合成部152は、参加時ベース空間切り替え設定テーブル116において、該当の共有空間に参加中の各ユーザに関連付けられている設定値を参加時ベース空間切り替え設定テーブル116からそれぞれ抽出する(S2609)。
続いて、共有空間合成部152は、S2609で抽出された、全てのユーザに関する設定値が「ベース空間の切り替えを許可する」であるか否かを判定する(S2611)。少なくとも一以上のユーザに関する設定値が「ベース空間の切り替えを許可する」ではない場合には(S2611:No)、共有空間合成部152は、現在のベース空間を切り替えないこと、および、当該共有空間へのユーザ4cの参加を許可しないことを決定する。そして、サーバ10‐2は、エラーを示す情報を実空間2c内の出力部24cに出力させる(S2613)。その後、当該「共有空間への追加参加時の処理」は終了する。
一方、全てのユーザに関する設定値が「ベース空間の切り替えを許可する」である場合には(S2611:Yes)、共有空間合成部152は、現在のベース空間を(ユーザ4cが位置する)実空間2cに切り替えることを決定する(S2615)。
続いて、共有空間合成部152は、当該ベース空間が切り替わることを示す、所定の時間のアニメーションを表示させるように、当該自由視点のコンテンツを加工する。これにより、当該共有空間に参加中の各ユーザ4が位置する実空間2内の出力部24は当該アニメーションを表示する(S2617)。
その後、共有空間合成部152は、当該共有空間内に新たに配置されることが決定された全てのオブジェクト(ユーザ4cを含む)の表示が開始されることを示す、所定の時間のアニメーションを表示させるように、当該自由視点のコンテンツを加工する。これにより、当該共有空間に参加中の各ユーザ4が位置する実空間2内の出力部24は当該アニメーションを表示する(S2619)。その後、当該「共有空間への追加参加時の処理」は終了する。
<<3.第3の実施形態>>
<3−1.概要>
以上、第2の実施形態について説明した。ところで、上述した各実施形態のように、各実空間とサーバ10との間で、当該実空間の略全体の3Dデータが送受信される場合には、ネットワーク帯域を大量に使用し得る。また、別の課題として、例えば表示対象外と判定されたオブジェクトなど、認識処理が不要な場合には認識処理を省略することが望ましい。
次に、第3の実施形態について説明する。後述するように、第3の実施形態によるサーバ10‐3は、表示対象外のオブジェクトに関しては、クライアント20とサーバ10‐3との間でデータを送信しないように制御したり、また、クライアント20に認識処理を行わせないように制御する。なお、第3の実施形態によるサーバ10‐3に含まれる構成要素は、第2の実施形態と同様である。以下では、第2の実施形態と異なる内容についてのみ説明を行う。
<3−2.構成>
{3−2−1.サーバ10‐3}
(3−2−1−1.オブジェクト管理情報DB164)
まず、第3の実施形態によるサーバ10‐3の構成について説明する。第3の実施形態によるオブジェクト管理情報DB164では、後述するように、各実空間の入力部22(送信部228)から受信される、各オブジェクトの送信に必要な帯域の情報がさらに格納される。
(3−2−1−2.共有空間管理部100‐3)
第3の実施形態による共有空間管理部100‐3は、(第2の実施形態による共有空間管理部100‐2と比較して)さらに、各オブジェクトの送信に必要な帯域の情報に基づいて、各オブジェクトを表示対象のオブジェクトに設定するか否かを判定する。そして、共有空間管理部100‐3は、表示対象と判定した各オブジェクトのオブジェクトIDのリストを制御情報送信部122へ伝達する。
また、(後述するように)入力部22の認識部224により認識処理が停止されている際に、表示対象のオブジェクトの判定処理を新たに行う場合には、共有空間管理部100‐3は、停止している認識処理を再開することを指示するように第1の制御情報を生成し、そして、当該第1の制御情報を該当の入力部22(認識部224)へ制御情報送信部122に送信させる。そして、認識処理が再開され、かつ、当該認識処理の結果が受信された時点で、共有空間管理部100‐3は、表示対象の判定処理を再び行う。
(3−2−1−3.ストリーム生成部130)
第3の実施形態によるストリーム生成部130は、表示対象外と判定されたオブジェクトを共有空間Frameデータから削除することによりストリームを生成する。そして、ストリーム生成部130は、生成したストリームを送信部132に伝達する。
また、ストリーム生成部130は、出力部24(の制御情報送信部252)から受信される第2の制御情報が示す、表示部246の位置および姿勢に応じて、共有空間Frameデータ内のオブジェクトを簡略化する処理を行い、そして、処理後の共有空間Frameデータに基づいてストリームを生成することも可能である。なお、さらに、制御情報送信部122は、当該オブジェクトの簡略化を指示するための第1の制御情報を、当該オブジェクトの元空間の入力部22へ送信してもよい。これにより、当該入力部22は、以後、受信された第1の制御情報を例えば認識部224やストリーム生成部226による処理に反映させることにより、処理の負荷を軽減させることができる。
‐処理の流れ
ここで、図52を参照して、第3の実施形態によるストリーム生成部130による処理の流れの一例について説明する。図52に示したように、ストリーム生成部130は、まず、処理対象の元空間の番号を示す変数Iに「1」を設定する(S3001)。そして、ストリーム生成部130は、元空間の総数をNに設定する(S3003)。
そして、IがN以下である限り(S3005:Yes)、ストリーム生成部130は、以下のS3007〜S3015の処理を繰り返す。なお、IがNよりも大きくなった場合には(S3005:No)、ストリーム生成部130は、当該処理を終了する。
具体的には、まず、ストリーム生成部130は、生成された共有空間Frameデータを共有空間生成部102から取得する(S3007)。
続いて、ストリーム生成部130は、オブジェクト管理情報DB164を参照することにより、表示対象外と判定されたオブジェクトを特定する。そして、ストリーム生成部130は、特定したオブジェクトのデータを、取得した共有空間Frameデータから削除する(S3009)。
続いて、ストリーム生成部130は、オブジェクト管理情報DB164を参照することにより、I番目の元空間内のオブジェクトを特定する。そして、ストリーム生成部130は、特定したオブジェクトのデータを共有空間Frameデータからさらに削除する(S3011)。
続いて、ストリーム生成部130は、S3011で変更された共有空間Frameデータに基づいて、(I番目の元空間へ送信される)ストリームを生成する。そして、送信部132は、生成されたストリームをI番目の元空間の出力部24へ送信する(S3013)。
続いて、ストリーム生成部130は、Iに「1」を加算する(S3015)。その後、ストリーム生成部130は、再びS3005の処理を行う。
(3−2−1−4.制御情報送信部122)
第3の実施形態による制御情報送信部122は、共有空間管理部100‐3から伝達される、表示対象のオブジェクトのオブジェクトIDのリストを第1の制御情報として、各実空間の出力部24へ送信する。例えば、表示対象と判定されていたオブジェクトが表示対象外と新たに判定された際には、制御情報送信部122は、当該オブジェクトが表示対象外と新たに判定されたことを示す第1の制御情報を、当該オブジェクトの元空間内の出力部24へ送信する。これにより、後述するように、該当の元空間の入力部22は、以後、当該オブジェクトの3Dデータをサーバ10‐3へ送信せず、かつ、当該オブジェクトの認識処理を停止し得る。
‐処理の流れ
ここで、図53を参照して、第3の実施形態による制御情報送信部122による処理の流れの一例について説明する。図53に示したように、制御情報送信部122は、まず、処理対象の元空間の番号を示す変数Iに「1」を設定する(S3101)。そして、制御情報送信部122は、元空間の総数をNに設定する(S3103)。
そして、IがN以下である限り(S3105:Yes)、制御情報送信部122は、以下のS3107〜S3115の処理を繰り返す。なお、IがNよりも大きくなった場合には(S3105:No)、制御情報送信部122は、当該処理を終了する。
具体的には、まず、オブジェクト管理情報DB164において表示対象のオブジェクトが変更された場合には、制御情報送信部122は、表示対象のオブジェクトが変更された旨の通知を共有空間生成部102から取得する(S3107)。
続いて、制御情報送信部122は、取得した通知に基づいて、I番目の元空間内の各オブジェクトに関して表示対象であるか否かの判定結果が変更されたか否かを確認する(S3109)。当該判定結果が変更されていない場合には(S3109:No)、制御情報送信部122は、後述するS3115の処理を行う。
一方、当該判定結果が変更された場合には(S3109:Yes)、制御情報送信部122は、当該判定結果が変更されたことを示す第1の制御情報を生成する(S3111)。
続いて、制御情報送信部122は、生成した第1の制御情報をI番目の元空間の出力部24へ送信する(S3113)。
続いて、制御情報送信部122は、Iに「1」を加算する(S3115)。その後、制御情報送信部122は、再びS3105の処理を行う。
{3−2−2.入力部22}
(3−2−2−1.センサ部220)
次に、第3の実施形態による入力部22の構成について説明する。第3の実施形態によるセンサ部220は、セグメンテーションされた各オブジェクトに関して、当該オブジェクトの送信に必要な帯域の情報を取得(または算出)し、そして、取得した情報をメタ情報内に記録する。これにより、各オブジェクトの送信に必要な帯域の情報が(Frameデータなどとともに)サーバ10‐3へ送信されることになる。
(3−2−2−2.ストリーム生成部226)
第3の実施形態によるストリーム生成部226は、サーバ10‐3から受信される第1の制御情報に基づいて、表示対象外のオブジェクトを含まないようにストリームを生成する。これにより、表示対象外のオブジェクトの3Dデータはサーバ10‐3へ送信されないことになる。
‐処理の流れ
ここで、図54を参照して、第3の実施形態によるストリーム生成部226による処理の流れの一例について説明する。図54に示したように、ストリーム生成部226は、まず、センサ部220によりセンシング(取得)され、かつ、認識部224により認識処理が行われたFrameデータを認識部224から取得する(S3201)。
続いて、ストリーム生成部226は、サーバ10‐3から受信された第1の制御情報を制御情報受信部222を介して取得する(S3203)。
続いて、ストリーム生成部226は、処理対象のオブジェクトの番号を示す変数Iに「1」を設定する(S3205)。そして、ストリーム生成部226は、S3201で取得されたFrameデータに含まれるオブジェクトの数をNに設定する(S3207)。
そして、IがN以下である限り(S3209:Yes)、ストリーム生成部226は、以下のS3211〜S3213の処理を繰り返す。具体的には、ストリーム生成部226は、まず、以前のフレームにおけるI番目のオブジェクトの情報と、S3203で取得された第1の制御情報が示す表示対象のオブジェクトのオブジェクトIDのリストとに基づいて、I番目のオブジェクトが表示対象であるか否かの情報を更新する(S3211)。そして、ストリーム生成部226は、Iに「1」を加算する(S3213)。
一方、IがNよりも大きくなった場合には(S3209:No)、ストリーム生成部226は、S3201で取得されたFrameデータから、S3211の更新後の情報に基づいて表示対象外のオブジェクトの情報を削除する(S3215)。
その後、ストリーム生成部226は、変更後のFrameデータに基づいてストリームを生成し、そして、生成したストリームを送信部228へ出力する(S3217)。
(3−2−2−3.認識部224)
第3の実施形態による認識部224は、サーバ10‐3から受信される第1の制御情報が示す表示対象のオブジェクトのIDのリストに基づいて、表示対象のオブジェクトに関してのみ認識処理を行うことが可能である。
または、認識部224は、サーバ10‐3から受信される第1の制御情報に基づいて、認識処理を実行したり、停止することも可能である。例えば、認識処理が不要であることを示す第1の制御情報が受信された場合には、認識部224は、認識処理を停止する。その後、認識処理を再開することを指示する第1の制御情報がサーバ10‐3から受信された場合には、認識部224は、認識処理を再開する。
‐処理の流れ
ここで、図55を参照して、第3の実施形態による認識部224による処理の流れの一例について説明する。図55に示したように、認識部224は、まず、センサ部220によりセンシング(取得)されたFrameデータをセンサ部220から取得する(S3301)。
続いて、認識部224は、サーバ10‐3から受信された第1の制御情報を制御情報受信部222を介して取得する(S3303)。
続いて、認識部224は、処理対象のオブジェクトの番号を示す変数Iに「1」を設定する(S3305)。そして、認識部224は、S3301で取得されたFrameデータに含まれるオブジェクトの数をNに設定する(S3307)。
そして、IがN以下である限り(S3309:Yes)、認識部224は、以下のS3311〜S3317の処理を繰り返す。具体的には、まず、認識部224は、以前のフレームにおけるI番目のオブジェクトの情報と、S3303で取得された制御情報が示す表示対象のオブジェクトのオブジェクトIDのリストとに基づいて、I番目のオブジェクトが表示対象であるか否かの情報を更新する(S3311)。そして、I番目のオブジェクトが現在表示対象ではない場合には(S3313:No)、認識部224は、後述するS3317の処理を行う。一方、I番目のオブジェクトが現在表示対象である場合には(S3313:Yes)、認識部224は、I番目のオブジェクトについて認識処理を実行する(S3315)。そして、認識部224は、Iに「1」を加算する(S3317)。
一方、IがNよりも大きくなった場合には(S3309:No)、認識部224は、S3315における認識結果に基づいて、S3301で取得されたFrameデータを更新する(S3319)。その後、認識部224は、更新後のFrameデータをストリーム生成部226へ出力する(S3321)。
<3−3.効果>
以上説明したように、第3の実施形態によれば、サーバ10‐3は、表示対象外のオブジェクトに関しては、クライアント20とサーバ10‐3との間でデータを送信しないように制御し、また、クライアント20に認識処理を行わせないように制御する。これにより、通信帯域、通信量、および、計算負荷を削減することができる。
<3−4.応用例>
ところで、ネットワーク帯域が変動すると、今まで送信可能であったオブジェクトのデータが送信不能となり得る。その結果、表示遅延やフレームレートの低下が発生し得る。次に、第3の実施形態の応用例について説明する。後述するように、本応用例によれば、ネットワーク帯域の範囲内で、サーバ10‐3とクライアント20との間でデータを送信するように制御することが可能である。
{3−4−1.構成}
本応用例による入力部22の認識部224は、オブジェクトごとに、当該オブジェクトの送信に必要なデータ量を、メタ情報内にさらに記録する。
また、本応用例によるクライアント接続部120はそれぞれ、接続先のクライアント20に関するネットワーク帯域の上限値を逐次測定する測定部(図示省略)をさらに備える。
また、本応用例による共有空間合成部152は、少なくともいずれかの元空間に関して、ネットワーク帯域が変動したことが当該測定部により測定される度に、表示対象のオブジェクトの選択処理を逐次行う。
ここで、「表示対象のオブジェクトの選択処理」の内容について説明する。例えば、共有空間合成部152は、まず、表示対象として選択されていないオブジェクトのうち優先度が最も高いオブジェクトを、表示対象のオブジェクトとして選択する。次に、共有空間合成部152は、メタ情報に記録されている当該オブジェクトのデータサイズに基づいて、現在までに選択済みの全ての表示対象のオブジェクトのデータサイズの合計を算出する。そして、当該データサイズの合計が、測定されたネットワーク帯域の上限に応じた閾値に達するまで、共有空間合成部152は、当該選択処理を繰り返す。
また、本応用例による制御情報送信部122は、(共有空間合成部152による)表示対象のオブジェクトの選択処理が終了する度に、表示対象外のオブジェクトのオブジェクトIDのリストを第1の制御情報として、当該オブジェクトの元空間の入力部22へ送信する。これにより、該当の入力部22は、選択対象外となったオブジェクトを以後サーバ10‐3へ送信しないことになる。
{3−4−2.効果}
以上説明したように、本応用例によれば、ネットワーク帯域の範囲内で、サーバ10‐3とクライアント20との間でデータを送信するように制御する。このため、ネットワーク帯域が変動した場合であっても、表示遅延やフレームレートの低下の発生を防止することができる。
<<4.第4の実施形態>>
以上、第3の実施形態について説明した。上述したように、各実施形態によるサーバ10は、複数の実空間内のオブジェクトを共有空間上に配置する。ところで、特別の考慮がないと、ユーザにとって望ましくない位置関係で各オブジェクトが共有空間上に配置され得る。例えば、異なる実空間に位置する二人のユーザが向き合わないように共有空間上に配置され得る。また、当該二人のユーザが向き合うように配置された場合でも、当該二人のユーザの間に別のオブジェクトが配置され得る。その結果、当該二人のユーザが会話をする際に支障が生じ得る。
また、空き空間がある限りオブジェクトが詰め込まれるように、多数のオブジェクトが共有空間上に配置され得る。その結果、ユーザにとって快適でない共有空間が生成され得る。
次に、第4の実施形態について説明する。後述するように、第4の実施形態によれば、予め登録されている複数のベース空間レイアウトの中からいずれかが選択され、そして、サーバ10‐4は、選択されたベース空間レイアウトに対して表示対象のオブジェクトを配置することにより、共有空間を生成することが可能である。
<4−1.概要>
まず、第4の実施形態によるベース空間に対するオブジェクトのレイアウトの概要について説明する。第4の実施形態では、(例えば第2の実施形態と比べて)ベース空間内により多くの種類のオブジェクトを配置可能とする。例えば、ベース空間内に自由視点動画オブジェクトが(ベース空間オブジェクトとして)配置可能である。ここで、自由視点動画オブジェクトは、例えば、自由視点のライブ映像コンテンツであってもよい。また、自由視点動画オブジェクトは、背景として表示されてもよい。
また、第4の実施形態では、ベース空間内に2D動画オブジェクトも(ベース空間オブジェクトとして)配置可能である。例えば、共有空間内に浮かぶディスプレイがベース空間上に配置される場合には、2D動画オブジェクトが当該ディスプレイに表示されてもよい。ここで、2D動画オブジェクトは、例えば、テレビジョン放送、ビデオ配信コンテンツ、または、Webページなどである。なお、2D動画オブジェクト(の表示情報)は外部のサーバ(図示省略)や、各クライアント20の近辺に位置するデバイス(図示省略)などから取得され得る。
また、第4の実施形態では、オブジェクトの配置を推奨する空き領域に関する情報(以下、配置推奨情報と称する)がベース空間レイアウト情報160にさらに格納され得る。ここで、配置推奨情報は、例えば、ベース空間におけるオブジェクトの配置推奨位置の情報、および、配置を推奨するオブジェクトの条件(オブジェクトの種類など)などを含む。さらに、ベース空間レイアウト情報160には、例えば人物が3人以下であることなど、ベース空間上に配置可能なオブジェクトの条件(以下、配置可能オブジェクト条件と称する場合がある)が格納され得る。
{ベース空間レイアウト情報160}
図56は、第4の実施形態によるベース空間レイアウト情報160の構成例を示した説明図である。図56に示したように、第4の実施形態によるベース空間レイアウト情報160は、(図23に示した)第2の実施形態によるベース空間レイアウト情報160と比較して、2D動画オブジェクト情報1606、および、自由視点動画オブジェクト情報1608をさらに含む。ここで、2D動画オブジェクト情報1606には、該当のベース空間内に配置される全ての2D動画オブジェクトに関する情報が記録される。例えば、2D動画オブジェクト情報1606には、2D動画オブジェクトごとに、当該2D動画オブジェクトが配置される共有オブジェクトの情報(オブジェクトID、オブジェクトを構成する点および面の座標など)、当該2D動画オブジェクトが描画される面の座標、および、当該2D動画オブジェクトが格納されているサーバ(図示省略)のURLなどが記録される。また、自由視点動画オブジェクト情報1608には、該当のベース空間内に配置される自由視点動画オブジェクトに関する情報が記録される。例えば、自由視点動画オブジェクト情報1608には、該当の自由視点動画オブジェクトが配置されるベース空間上の領域、および、該当の自由視点動画オブジェクトが格納されているサーバ(図示省略)のURLなどが記録される。
図57は、第4の実施形態によるベース空間のレイアウトの例(レイアウト60)を示した説明図である。図57に示したように、レイアウト60では、二個の植物のオブジェクト、ディスプレイのオブジェクト600、プールのオブジェクト、および、二台のデッキチェアのオブジェクトがベース空間上にそれぞれ配置されている。ここで、ディスプレイのオブジェクト600は、例えば、空中に浮かぶように配置されてもよい。また、ディスプレイのオブジェクト600は、例えば、外部のサーバから受信される2D動画オブジェクトを表示可能に構成される。また、図57に示した例では、人物の自由視点動画オブジェクト602がプールのオブジェクト上に配置されている。ここで、自由視点動画オブジェクト602は、例えば、後述する、自由視点動画コンテンツサーバ50または自由視点ライブコンテンツサーバ52などから受信される自由視点動画オブジェクトであり得る。
また、レイアウト60には、オブジェクト配置可能領域604、および、オブジェクト配置推奨領域606が設定されている。ここで、オブジェクト配置可能領域604は、例えば任意の種類の3Dオブジェクトが配置可能な領域である。また、オブジェクト配置推奨領域606には、特定の種類の3Dオブジェクト(例えば人など)の配置が推奨される領域である。
<4−2.情報処理システムの構成>
次に、第4の実施形態による情報処理システムの構成例について、図58〜図60を参照して説明する。図58に示すように、第4の実施形態による情報処理システムは、図1に示した第1の実施形態と比較して、自由視点動画コンテンツサーバ50、自由視点ライブコンテンツサーバ52、および、ベース空間レイアウトサーバ54をさらに含む。
{4−2−1.自由視点動画コンテンツサーバ50}
自由視点動画コンテンツサーバ50は、自由視点動画コンテンツを例えばサーバ10‐4などへ配信する装置である。ここで、図59を参照して、自由視点動画コンテンツサーバ50の構成例について説明する。図59に示すように、自由視点動画コンテンツサーバ50は、制御情報受信部500、ストリーム生成部502、送信部504、および、自由視点動画コンテンツDB506を有する。
(4−2−1−1.制御情報受信部500)
制御情報受信部500は、サーバ10‐4から第4の制御情報を受信する。そして、制御情報受信部500は、受信した第4の制御情報をストリーム生成部502へ伝達する。
(4−2−1−2.ストリーム生成部502)
ストリーム生成部502は、自由視点動画コンテンツDB506に格納されているコンテンツと、制御情報受信部500から伝達される第4の制御情報とに基づいて、自動視点動画オブジェクト(ストリーム)を生成する。例えば、ストリーム生成部502は、第4の制御情報が指定する種類のコンテンツを自由視点動画コンテンツDB506から抽出することにより、自動視点動画オブジェクトを生成する。
(4−2−1−3.自由視点動画コンテンツDB506)
自由視点動画コンテンツDB506は、複数の自由視点動画コンテンツを格納するデータベースである。例えば、自由視点動画コンテンツDB506では、例えばコンサート会場、イベント会場、スポーツ会場、または、街などの実空間のセンシングに基づいて生成された自由視点動画や、ユーザの移動時の撮影に基づいて生成された自由視点動画などが格納され得る。
(4−2−1−4.送信部504)
送信部504は、ストリーム生成部502により生成された自動視点動画オブジェクトをサーバ10‐4(クライアント接続部120)へ送信する。
{4−2−2.自由視点ライブコンテンツサーバ52}
自由視点ライブコンテンツサーバ52は、自由視点のライブコンテンツを例えばサーバ10‐4などへ配信する装置である。ここで、自由視点のライブコンテンツは、例えばコンサート会場、イベント会場、スポーツ会場、街、図書館、スポーツクラブ、または、飲食店などの各種の場所における、後述するセンサ部520によるセンシングに基づいて生成される自由視点コンテンツである。または、或る人の移動中の撮影に基づいてリアルタイムに生成される自由視点コンテンツであってもよい。
ここで、図59を参照して、自由視点ライブコンテンツサーバ52の構成例について説明する。図59に示すように、自由視点ライブコンテンツサーバ52は、センサ部520、制御情報受信部522、認識部524、ストリーム生成部526、および、送信部528を有する。
(4−2−2−1.センサ部520)
センサ部520は、センサ部520が配置されている実空間内の3Dデータなどの各種のデータを受信または読出し処理などを行うことにより検出する。例えば、センサ部520は、複数のデプスカメラ、および、複数のRGBカメラを有し得る。そして、当該複数のデプスカメラは、センサ部520が配置されている実空間内の3Dデータを取得する。また、センサ部520は、取得したデータを認識部524へ伝達する。なお、センサ部520の機能は、(入力部22の)センサ部220と概略同様であり得る。
(4−2−2−2.制御情報受信部522)
制御情報受信部522は、サーバ10‐4から第4の制御情報を受信する。そして、制御情報受信部500は、受信した第4の制御情報を認識部524およびストリーム生成部526へ伝達する。
(4−2−2−3.認識部524)
認識部524は、センサ部520から伝達されるデータと、制御情報受信部522から伝達される第4の制御情報とに基づいて、例えばオブジェクトの種別の認識などの各種の認識処理を行う。また、認識部524は、センサ部520から伝達されたデータと、認識処理の結果とをストリーム生成部526へ伝達する。なお、認識部524の機能は、(入力部22の)認識部224と概略同様であり得る。
(4−2−2−4.ストリーム生成部526)
ストリーム生成部526は、認識部524から伝達される情報と、制御情報受信部522から伝達される第4の制御情報とに基づいて、自動視点動画オブジェクト(ストリーム)を生成する。また、ストリーム生成部526は、生成した自動視点動画オブジェクトを送信部528へ伝達する。なお、ストリーム生成部526の機能は、(入力部22の)ストリーム生成部226と概略同様であり得る。
(4−2−2−5.送信部528)
送信部528は、ストリーム生成部526から伝達された自動視点動画オブジェクトをサーバ10‐4(クライアント接続部120)へ送信する。
{4−2−3.ベース空間レイアウトサーバ54}
ベース空間レイアウトサーバ54は、ベース空間レイアウト情報DB542を管理する装置である。ここで、図60を参照して、ベース空間レイアウトサーバ54の構成例について説明する。図60に示すように、ベース空間レイアウトサーバ54は、ベース空間レイアウト情報DB管理部540、および、ベース空間レイアウト情報DB542を有する。
(4−2−3−1.ベース空間レイアウト情報DB542)
ベース空間レイアウト情報DB542は、予め登録されている複数のレイアウトの情報を格納するデータベースである。例えば、ベース空間レイアウト情報DB542は、レイアウトの識別情報(名称など)と、レイアウトとを関連付けて格納する。
(4−2−3−2.ベース空間レイアウト情報DB管理部540)
ベース空間レイアウト情報DB管理部540は、ベース空間レイアウト情報DB542に対して、データの抽出、登録、更新などの各種の処理を行う。例えば、レイアウトの取得要求がサーバ10‐4から受信された場合には、ベース空間レイアウト情報DB管理部540は、まず、当該取得要求が示す種類のレイアウトをベース空間レイアウト情報DB542から抽出する。そして、ベース空間レイアウト情報DB管理部540は、抽出したレイアウトをサーバ10‐4へ送信する。
<4−3.構成>
以上、第4の実施形態による情報処理システムの構成について説明した。次に、第4の実施形態によるサーバ10‐4の構成について詳細に説明する。図61は、第4の実施形態による共有空間管理部100‐4の構成例を示した機能ブロック図である。図61に示すように、共有空間管理部100‐4は、(第2の実施形態による共有空間管理部100‐2と比較して)ベース空間レイアウト情報管理部166をさらに有する。
{4−3−1.制御部108}
第4の実施形態による制御部108は、イベント認識部106による認識結果に基づいて、ベース空間のレイアウトを切り替えるための制御情報を生成する。例えば、共有空間において参加ユーザが例えばジェスチャー、発話(音声コマンドなど)、または所定のUIに対する操作などによりレイアウトの変更を指示したことが認識された場合には、制御部108は、ベース空間のレイアウトを、指示された種類のレイアウトに切り替えるための第3の制御情報を生成する。そして、制御部108は、生成した制御情報をベース空間レイアウト情報管理部166へ伝達する。
{4−3−2.ベース空間レイアウト情報管理部166}
ベース空間レイアウト情報管理部166は、制御部108から伝達される第3の制御情報に基づいて、候補となるベース空間レイアウト情報をベース空間レイアウトサーバ54から取得する。
また、ベース空間レイアウト情報管理部166は、ベース空間レイアウトサーバ54から受信されたレイアウト情報をベース空間レイアウト情報160に格納することが可能である。例えば、ベース空間レイアウト情報管理部166は、ベース空間レイアウト情報160に現在格納されている情報を、受信されたレイアウト情報に置き換える。
{4−3−3.共有空間合成部152}
(4−3−3−1.オブジェクトの配置)
第4の実施形態による共有空間合成部152は、レイアウト情報をベース空間レイアウト情報160から取得し、そして、取得したレイアウト情報に基づいて共有空間を生成する。例えば、取得したベース空間レイアウト情報内に3D自由視点動画オブジェクトまたは2D動画オブジェクトが格納されている場合には、共有空間合成部152は、当該オブジェクトを(他のオブジェクトよりも)優先して表示対象のオブジェクトとして決定する。
また、取得したベース空間レイアウト情報の中に空き領域情報があり、かつ、当該空き領域情報の中に配置推奨情報がある場合には、共有空間合成部152は、(選択した表示対象のオブジェクトのうち)配置推奨情報が示す推奨のオブジェクトを、当該配置推奨情報が示す位置に配置する。そして、配置が推奨されている領域に空きが無くなった時点(つまりオブジェクトが十分配置された時点)で、共有空間合成部152は、共有空間上でのオブジェクトのレイアウトを終了する。
また、取得したベース空間レイアウト情報が、自由視点動画オブジェクトや2D動画オブジェクトの配置を指示する場合には、共有空間合成部152は、当該オブジェクト(またはFrameデータ)を自由視点動画コンテンツサーバ50、自由視点ライブコンテンツサーバ52、または、他の外部のサーバ(図示省略)から取得する。そして、共有空間合成部152は、フレームごとに、取得したオブジェクト(またはFrameデータ)と、各元空間の入力部22から受信されるFrameデータとを合成することにより、共有空間Frameデータを生成する。
(4−3−3−2.ベース空間の切り替えタイミング)
なお、共有空間合成部152は、ベース空間レイアウト情報管理部166によるベース空間レイアウト情報の取得に基づいて、共有空間におけるベース空間を切り替えることが可能である。例えば、ベース空間レイアウト情報が取得された際に、共有空間合成部152は、共有空間におけるベース空間のレイアウトを、取得されたベース空間レイアウト情報が示すレイアウトに自動的に切り替える。
<4−4.効果>
以上説明したように、第4の実施形態によれば、サーバ10‐4は、予め登録されている複数のベース空間レイアウトの中からユーザにより選択されたベース空間レイアウトに対して、表示対象のオブジェクトを配置することにより、共有空間を生成する。これにより、ユーザにとって望ましいように各オブジェクトを共有空間上にレイアウトすることができる。
例えば、互いに異なる実空間に位置する友人(二人)は、いずれかが位置する実空間をベース空間として選択することにより、いずれかの実空間内に一緒にいるような感覚を得ることができる。または、リゾート地やライブ会場をベース空間として選択することによりリゾート地やライブ会場の雰囲気を一緒に楽しむことができる。
また、サーバ10‐4は、選択されたベース空間上のディスプレイなどに、2D動画オブジェクトなどの各種のコンテンツを表示させることが可能である。これにより、共有空間上で、友人同士で各種のコンテンツを視聴して楽しむこともできる。また、友人同士でコンテンツを視聴しながら、相手の表情を確認することもできるので、お互いが共有空間内で同じ体験をし、楽しんでいることを実感できる。
<4−5.変形例>
なお、上記の説明では、予め登録されている複数のレイアウト情報のうちのいずれかをユーザが選択する例について説明したが、かかる例に限定されない。例えば、予め登録されている複数のレイアウト情報の各々には、配置可能オブジェクト条件(例えば人を3名まで配置可能など)が付与され得る。そして、サーバ10‐4は、各レイアウト情報に付与されている配置可能オブジェクト条件と、元空間に関する情報(例えば(共有空間に参加する各ユーザが位置する)元空間の数、元空間内のオブジェクト、または、ユーザの数など)とに基づいて、最適なレイアウトを自動的に選択することも可能である。
<<5.第5の実施形態>>
以上、第4の実施形態について説明した。上述したように、第4の実施形態では、ベース空間のレイアウト情報が予め登録されていることを想定する。
次に、第5の実施形態について説明する。後述するように、第5の実施形態によるサーバ10‐5は、ベース空間レイアウトエディタの起動中におけるユーザの指示に基づいて、ベース空間のレイアウト情報を編集することが可能である。これにより、ユーザは、ベース空間のレイアウト情報を希望通りに編集することができる。
<5−1.構成>
第5の実施形態によるサーバ10‐5に含まれる構成要素は、(例えば図61に示した)第4の実施形態と同様である。以下では、第4の実施形態とは異なる内容についてのみ説明を行う。
{5−1−1.ベース空間レイアウト情報管理部166}
第5の実施形態によるベース空間レイアウト情報管理部166は、ベース空間レイアウトエディタの起動中におけるユーザの指示(例えばジェスチャーや発話(音声コマンドなど)など)の認識結果に基づいて、ベース空間のレイアウト情報を生成または修正する。また、ベース空間レイアウト情報管理部166は、生成または更新されたレイアウト情報をベース空間レイアウトサーバ54へ送信することが可能である。
(5−1−1−1.ベース空間レイアウトエディタ)
ベース空間レイアウトエディタは、ベース空間のレイアウト情報を編集するためのモードである。例えば、ベース空間レイアウトエディタでは、ベース空間レイアウト情報160に格納されているオブジェクトのみが共有空間上に表示され、そして、ユーザは、表示されたオブジェクトを見ながらベース空間のレイアウト情報を編集することができる。
ベース空間レイアウトエディタの起動および終了は、例えば共有空間上における、ユーザのジェスチャーや音声コマンドの認識結果などに基づいて実行される。また、ベース空間レイアウトエディタでは、ユーザの指示(例えばジェスチャーや音声コマンドなど)の認識結果に基づいて当該レイアウト情報が編集され得る。例えば、ベース空間レイアウト情報160に格納されているオブジェクトの削除や位置の変更、当該レイアウトにおけるオブジェクトの配置可能領域の設定、表示対象のオブジェクトの指定、および、空き領域に配置可能なオブジェクトの種類の指定などが、ユーザの指示の認識結果に基づいて実行され得る。
また、ベース空間レイアウトエディタにおいて編集操作が一回なされる度に、ベース空間レイアウト情報管理部166は、ベース空間のレイアウト情報を再作成し、そして、共有空間合成部152は、再作成後のベース空間のレイアウト情報を、次のフレーム以降の共有空間を生成するために使用する。つまり、編集操作の結果は共有空間に即座に反映され、そして、反映後の映像が表示部246に表示され得る。
また、ベース空間レイアウトエディタの起動中に、ベース空間レイアウト情報の保存操作がなされると、ベース空間レイアウト情報管理部166は、現時点のレイアウト情報をベース空間レイアウトサーバ54へ送信する。これにより、編集されたレイアウト情報がベース空間レイアウト情報DB542に保存される。従って、編集されたレイアウト情報を以後いつでも利用することが可能となる。
‐ベース空間レイアウトエディタの使用例
ここで、図62および図63を参照して、ベース空間レイアウトエディタの使用例について説明する。まず、例えば共有空間上で、ベース空間レイアウトエディタの起動のための音声コマンドをユーザ4が発したことが認識されると、サーバ10‐5はベース空間レイアウトエディタを起動する。そして、図62のAに示したように、ベース空間レイアウト情報160に格納されているオブジェクトのみを含む共有空間内にユーザ4が位置する映像が、(ユーザ4が閲覧する)表示部246に表示される。
その後、例えばテーブルおよび複数の椅子620を削除することをユーザ4が希望し、そして、図62のBに示したように、ベース空間からオブジェクトを削除するための音声コマンドをユーザ4が発したとする。この場合、図62のCに示したように、サーバ10‐5は、テーブルおよび複数の椅子620をベース空間レイアウト情報160から削除する。
その後、ベース空間レイアウト情報160に登録されている配置可能領域(空き領域)の編集をユーザ4が希望し、そして、図63のAに示したように、例えば、配置可能領域を表示させるための音声コマンドをユーザ4が発したとする。この場合、図63のBに示したように、ベース空間レイアウト情報160に登録されている複数の配置可能領域624が表示部246にさらに表示される。その後、例えば、配置可能領域624bに対して「人」の配置を推奨するように設定することをユーザ4が希望し、そして、図63のBに示したように、配置可能領域624bを「人」の配置推奨領域に設定するための音声コマンドをユーザ4が発したとする。この場合、図63のCに示したように、サーバ10‐5は、配置可能領域624bを「人」の配置推奨領域として設定する。
その後、レイアウト情報を保存するための音声コマンド、および、ベース空間レイアウトエディタの終了のための音声コマンドをユーザ4が発すると、サーバ10‐5(ベース空間レイアウト情報管理部166)は、現時点のレイアウト情報をベース空間レイアウトサーバ54へ送信する。
<5−2.効果>
以上説明したように、第5の実施形態によれば、サーバ10‐5は、ユーザの指示に基づいてベース空間レイアウトエディタを起動し、そして、ベース空間レイアウトエディタの起動中におけるユーザの指示に基づいて、ベース空間のレイアウト情報を編集する。これにより、ユーザは、ベース空間のレイアウト情報を希望通りに編集することができる。
さらに、第5の実施形態によれば、編集されたレイアウト情報が(そのまま)ベース空間レイアウトサーバ54へ送信され、保存され得る。これにより、編集されたベース空間レイアウト情報を次回以降いつでも利用することが可能となる。さらに、当該ベース空間レイアウト情報をコンテンツとして流通させることも可能となる。
<<6.第6の実施形態>>
以上、第5の実施形態について説明した。ところで、空間共有中において、ユーザ4aが位置する元空間2a内の特定のオブジェクト(または人物)を(別の元空間2b内の)他のユーザ4bに見せたくない場合も想定される。このような場合、元空間2a内のオブジェクトの共有の可否をユーザ4aが指定可能であることが望ましい。
次に、第6の実施形態について説明する。後述するように、第6の実施形態によれば、ユーザが位置する元空間内のオブジェクトの共有の可否をユーザが指定することができる。
<6−1.構成>
{6−1−1.入力部22}
まず、第6の実施形態による構成について説明する。図64は、第6の実施形態による入力部22の構成例を示した機能ブロック図である。図64に示すように、第6の実施形態による入力部22は、(図2に示した)第1の実施形態と比較して、表示可否設定情報DB230をさらに含む。
(6−1−1−1.表示可否設定情報DB230)
表示可否設定情報DB230は、入力部22が位置する実空間内の各オブジェクトに関する表示の可否の設定情報を格納するデータベースである。表示可否設定情報DB230では、例えばサーバ10‐6から受信される第1の制御情報に基づいて、各オブジェクトの表示の可否が設定および変更される。例えば、サーバ10‐6は、後述する表示可否設定エディタの起動中におけるユーザの指示(ジェスチャーや音声コマンドなど)の認識結果に基づいて各オブジェクトの表示の可否を決定し、そして、決定した情報を第1の制御情報として入力部22へ送信する。これにより、入力部22は、受信した第1の制御情報に基づいて、表示可否設定情報DB230の登録内容を変更し得る。
(6−1−1−2.表示可否設定エディタ)
ここで、上述した表示可否設定エディタの内容についてより詳細に説明する。表示可否設定エディタは、ユーザが位置する実空間内の各オブジェクトの表示の可否を設定するためのモードである。例えば、表示可否設定エディタでは、ユーザが位置する実空間内の各オブジェクトが、例えば当該実空間に対応する仮想空間(例えば共有空間など)上に表示され得る。そして、ユーザは、表示されたオブジェクトの映像を見ながら、各オブジェクトの表示の可否を設定することができる。なお、表示部246に表示されている各オブジェクトの位置に、当該オブジェクトに設定されている表示可否を示すマークが表示されてもよい。または、表示不可に設定されたオブジェクトは非表示にされてもよい。
例えば、表示可否設定エディタの起動および終了は、例えば共有空間上における、ユーザのジェスチャーや音声コマンドの認識結果などに基づいて実行される。また、表示可否設定エディタでは、ユーザの指示(例えばジェスチャーや音声コマンドなど)の認識結果に基づいて、各オブジェクトの表示の可否が設定される。なお、ユーザは、各オブジェクトの表示可否を個別に指定することも可能であるし、または、例えば「ここから向こうのオブジェクトは全部表示不可!」などの発話により複数のオブジェクトの表示可否を一括して指定することも可能である。
また、表示可否設定エディタにおいて表示可否の指示が一回認識される度に、サーバ10‐6は、オブジェクト管理情報DB164における、該当のオブジェクトの共有可否に関する設定情報を変更する。なお、この場合、サーバ10‐6は、次のフレーム以降において、当該オブジェクトの表示態様を変更させて、共有空間Frameデータを生成する。例えば、サーバ10‐6は、次のフレーム以降において、当該オブジェクトの透過度を上げたり、表示色を変えたり、または、点滅させる。
また、表示可否設定エディタの起動中に、設定終了の操作がなされると、サーバ10‐6(制御情報送信部122)は、表示不可に設定されたオブジェクトの情報を第1の制御情報として、(当該オブジェクトの元空間の)入力部22へ送信する。これにより、入力部22は、受信した第1の制御情報に基づいて、表示可否設定情報DB230の登録内容を変更し得る。
‐表示可否設定エディタの使用例
ここで、図65を参照して、表示可否設定エディタの使用例について説明する。まず、例えば共有空間上で、表示可否設定エディタの起動のための音声コマンドをユーザ4が発したことが認識されると、サーバ10‐6は表示可否設定エディタを起動する。そして、図65のAに示したように、ユーザ4が位置する実空間内のオブジェクトが共有空間上に配置された映像が、(ユーザ4が閲覧する)表示部246に表示される。
その後、例えばベッド640を表示不可に設定することをユーザ4が希望し、そして、図65のBに示したように、ベッド640を表示不可に設定するための音声コマンドをユーザ4が発したとする。この場合、図65のCに示したように、サーバ10‐6は、ベッド640を表示不可に決定する。なお、この際、サーバ10‐6は、次のフレーム以降において、例えばベッド640を非表示にするなど、ベッド640の表示態様を変化させてもよい。
その後、表示可否設定エディタの終了のための音声コマンドをユーザ4が発すると、サーバ10‐6は、現時点までに表示不可に設定された全てのオブジェクトの情報を第1の制御情報として、(ユーザ4が位置する元空間の)入力部22へ送信する。
‐変形例
なお、変形例として、各オブジェクトの表示の可否は、相手のユーザごとに設定可能であってもよい。例えば、あるオブジェクトに関して、家族には表示可に設定し、かつ、友人には表示不可に設定することが可能であってもよい。
また、別の変形例として、入力部22またはサーバ10‐6が、各オブジェクトの表示の可否を所定の条件に基づいて自動的に設定してもよい。例えば、表示不可のオブジェクトの種類が予めテーブルに登録され得る。この場合、入力部22またはサーバ10‐6は、該当の種類のオブジェクトを一括して表示不可に設定してもよい。この変形例によれば、例えば多数のユーザが他のユーザに見られたくないような種類のオブジェクトに関しては、自動的に表示不可に設定することができる。そして、各ユーザは設定作業を行う必要がなく、利便性が向上する。
(6−1−1−3.認識部224)
第6の実施形態による認識部224は、表示可否設定情報DB230の登録内容に基づいて、各オブジェクトに関して認識処理を実行する。例えば、認識部224は、表示可否設定情報DB230において表示可に設定されているオブジェクトに関してのみ、当該オブジェクトの認識処理を行う。これにより、処理の負荷を削減することができる。
(6−1−1−4.ストリーム生成部226)
第6の実施形態によるストリーム生成部226は、さらに、表示可否設定情報DB230の登録内容に基づいてストリームを生成する。例えば、ストリーム生成部226は、表示可否設定情報DB230において表示不可に設定されている全てのオブジェクトの3Dデータを生成対象のストリームから除外することにより、ストリームを生成する。これにより、表示不可に設定されている全てのオブジェクトの3Dデータは、サーバ10‐6へ送信されないことになる。従って、通信量を削減することができる。
<6−2.効果>
以上説明したように、第6の実施形態によれば、ユーザが位置する元空間内の各オブジェクトに関して、(共有空間に対応する)自由視点のコンテンツにおける表示の可否をユーザは設定することができる。これにより、空間共有を可能としつつ、ユーザの元空間2a内の特定のオブジェクト(人物を含む)が、別の元空間2b内の他のユーザに見られないように制限することができる。
<6−3.変形例>
{6−3−1.変形例1}
なお、変形例として、サーバ10‐6は、ある実空間がベース空間として設定されているか否かによって、当該実空間に関して設定されている、オブジェクトの表示制限の設定を動的に変更してもよい。例えば、ある実空間がベース空間として設定されている場合には、サーバ10‐6は、当該実空間に関して設定されている、オブジェクトの表示制限の設定を動的に緩めてもよい。
{6−3−2.変形例2}
また、別の変形例として、共有空間に参加中の各実空間内のユーザは、当該共有空間に参加中の他の実空間において表示制限されているオブジェクトに関する表示の許可を、当該他の実空間内のユーザに対して(例えばUIなどを用いて)要求可能であってもよい。そして、当該表示要求に対して承諾することが(例えば、出力部24により表示されるUIなどを介して)、当該表示要求の送信先の実空間2b内のユーザにより回答された場合には、サーバ10‐6は、実空間2b内のオブジェクトの表示制限の設定を当該表示要求に応じて緩和したり、解除してもよい。
<<7.第7の実施形態>>
以上、第6の実施形態について説明した。ところで、複数の実空間を合成することにより共有空間を生成する場面では、当該複数の実空間同士の望ましい位置関係は、当該複数の実空間の各々に位置するユーザ同士の状況によって変化し得る。例えば、二つの実空間内のユーザが共有空間上でそれぞれ椅子に座りながら向かい合って話をするような状況では、当該二つの実空間内のユーザ同士の目線の高さが合っていることが望ましい。また、テーブル上に置かれたノートを別の実空間のユーザと一緒に見るような状況では、二つの実空間のテーブルの高さが合っていることが望ましい。
しかしながら、複数の空間の位置関係をユーザが状況に応じて都度設定し直すことは、ユーザの負荷が大きい。
次に、第7の実施形態について説明する。後述するように、第7の実施形態によるサーバ10‐7は、複数の実空間の各々に位置する、(互いに)類似していると認識されるオブジェクトを基準オブジェクトとしてそれぞれ決定し、そして、当該基準オブジェクトに関連付けられている基準点または基準面に基づいて、当該複数の実空間を合成することにより、共有空間を生成する。これにより、各ユーザの状況に適した位置関係で二つの実空間を合成することができる。
なお、第7の実施形態では、基本的に、複数の実空間をそのまま合成することにより、共有空間を生成することを想定する。また、表示部246がARデバイスであることを想定する。また、第7の実施形態によるベース空間は、共有空間における各オブジェクトの位置合わせのみに用いられる空間であり得る。つまり、ベース空間は、基本的に、表示部246に表示されない。
<7−1.構成>
まず、第7の実施形態によるサーバ10‐7の構成について説明する。なお、サーバ10‐7に含まれる構成要素は、(図21に示した)第2の実施形態と同様である。以下では、第2の実施形態とは異なる機能を有する構成要素についてのみ説明を行う。
{7−1−1.共有空間合成部152}
(7−1−1−1.空間の合成)
第7の実施形態では、複数の種類のオブジェクト間の一般的な類似度(または関連度)が予めテーブルに登録され得る。そして、共有空間合成部152は、別々の実空間に位置するオブジェクト同士の類似度と、各実空間におけるオブジェクトとユーザとの位置関係とに基づいて、当該複数の実空間の合成方法を決定する。
例えば、実空間2aおよび実空間2bを合成する場合には、共有空間合成部152は、まず、実空間2a内のユーザの近くに位置する各オブジェクトと、実空間2b内のユーザの近くに位置する各オブジェクトとの間の類似度に基づいて、実空間2a内の一つのオブジェクト、および、実空間2b内の一つのオブジェクトをそれぞれ基準オブジェクトとして決定する。そして、共有空間合成部152は、決定した二つの基準オブジェクトにそれぞれ関連付けられている、基準点(または基準面)の合わせ方に基づいて、当該二つの基準オブジェクトにそれぞれ対応する基準点(または基準面)を合せることにより、実空間2aおよび実空間2bを合成する。
より詳細には、共有空間合成部152は、まず、実空間2a内のユーザの近くに位置する各オブジェクトと、実空間2b内のユーザの近くに位置する各オブジェクトとの間の類似度をそれぞれ、当該テーブルを参照することにより特定する。そして、共有空間合成部152は、特定した類似度が最も高い、実空間2a内のオブジェクトと実空間2b内のオブジェクトとの組み合わせを抽出し、そして、抽出した実空間2a内の一つのオブジェクトおよび実空間2b内の一つのオブジェクトをそれぞれ基準オブジェクトとして決定する。次に、共有空間合成部152は、決定した基準オブジェクトに関連付けて当該テーブルに登録されている、基準点(または基準面)の合わせ方を特定する。そして、共有空間合成部152は、特定した基準点(または基準面)の合わせ方に従って、当該二つの基準オブジェクトの各々に関連付けられている基準点(または基準面)を合わせることにより、実空間2aおよび実空間2bを合成する。
(7−1−1−2.位置関係の決定)
また、共有空間合成部152は、複数の実空間を合成する際の位置関係を、入力部22の認識部224、または、サーバ10‐7の認識部104の認識結果に基づいて決定することが可能である。ここで、当該認識結果の例としては、オブジェクトの種類(例えば床、机、椅子、ギター、ピアノなど)の認識結果や、人に関する認識結果(例えば関節情報、顔位置、ジェスチャーなど)などが挙げられる。または、ジャイロデータと組み合わせることでの、水平面や垂直面などの幾何情報が当該認識結果として利用されてもよい。
ここで、図66および図67を参照して、上記の内容についてより詳細に説明する。なお、図66および図67では、実空間2aのセンシングに基いたFrameデータおよび実空間2bのセンシングに基いたFrameデータがそれぞれそのまま合成されることにより共有空間が生成される例を示している。
例えば、図66に示したように、共有空間合成部152は、まず、実空間2aのFrameデータおよび実空間2bのFrameデータからそれぞれ基準点として3点ずつ抽出する。例えば、共有空間合成部152は、実空間2a内のオブジェクト42a(ユーザ)の頭の点700a、点700aからオブジェクト42aの前方方向へ単位長分移動した点700b、および、点700aから重力方向へ単位長分移動した点700cをそれぞれ基準点として抽出する。また、共有空間合成部152は、実空間2b内のオブジェクト42b(ユーザ)の頭の点700d、点700dからオブジェクト42bの前方方向へ単位長分移動した点700e、および、点700dから重力方向へ単位長分移動した点700fをそれぞれ基準点として抽出する。
そして、共有空間合成部152は、例えば図67に示したように、オブジェクト42aの顔とオブジェクト42bの顔とが向き合うような位置関係で、実空間2aのFrameデータから抽出した3つの基準点、および、実空間2bのFrameデータから抽出した3つの基準点を共有空間上に配置する。
そして、共有空間合成部152は、設定した位置関係に基づいて、空間2aの座標系(ローカル座標系)から共有空間座標系(グローバル座標系)へ変換するための変換行列、および、空間2bの座標系(ローカル座標系)から共有空間座標系へ変換するための変換行列を算出する。そして、共有空間合成部152は、図67に示したように、実空間2aのFrameデータと実空間2bのFrameデータとを合成する。このように、各ユーザの元空間の認識結果を用いることで、各ユーザに適した位置関係を自動的に決定することができる。
‐オブジェクトの認識結果
以下、複数の実空間を合成する際の位置関係の決定方法の例について具体的に説明する。例えば、共有空間合成部152は、複数の実空間を合成する際の位置関係を、当該複数の実空間のうちのいずれかにおけるオブジェクトの認識結果に基づいて決定することが可能である。例えば、実空間2a内のユーザ4aがソファに座っており、かつ、実空間2aと空間2bとを合成する際には、共有空間合成部152は、実空間2b内のリビングの空き領域内に、実空間2a内のソファおよびユーザ4aを(一緒に)配置することを決定する。また、実空間2aと実空間2bとを合成する際には、共有空間合成部152は、床が一致するように実空間2aと実空間2bとを合成することを決定してもよい。
または、共有空間合成部152は、複数の実空間を合成する際の位置関係を、当該複数の実空間内のオブジェクトの認識結果に基づいて決定することも可能である。例えば、共有空間合成部152は、二つの実空間内にそれぞれ位置するテレビジョン受信機の中心部分が重なるようにそろえて、当該二つの実空間を合成することを決定する。または、共有空間合成部152は、実空間2aおよび実空間2bにそれぞれ位置する机の高さを合わせることにより、当該二つの実空間を合成することを決定する。さらに、共有空間合成部152は、実空間2a内のユーザと実空間2b内のユーザとが当該机において向き合ったり、または、隣り合うような位置関係になるように当該二つの実空間を合成することを決定する。または、共有空間合成部152は、実空間2aおよび実空間2bにそれぞれ位置するソファの座面を合わせ、かつ、実空間2aのソファと実空間2bのソファとが隣り合うように当該二つの実空間を合成することを決定する。これにより、実空間2aのユーザと実空間2bのユーザとが隣り合ってソファに座っているような共有空間が生成され得る。または、共有空間合成部152は、実空間2aおよび実空間2bにそれぞれ位置するピアノの鍵盤が重なるように当該二つの実空間を合成することを決定する。または、実空間2aおよび実空間2bにそれぞれ位置するギターの指板が重なるように当該二つの実空間を合成することを決定する。
‐人の認識結果
または、共有空間合成部152は、複数の実空間を合成する際の位置関係を、当該複数の実空間内に位置する人に関する認識結果に基づいて決定することも可能である。例えば、共有空間合成部152は、実空間2a内のユーザの目線の先に、実空間2b内のユーザが位置するような位置関係で、当該二つの実空間を合成することを決定する。または、共有空間合成部152は、実空間2a内のユーザと、実空間2b内のユーザとが顔が向かい合うような位置関係で、当該二つの実空間を合成することを決定する。
‐ジェスチャーの認識結果:一人による指定
または、共有空間合成部152は、複数の実空間を合成する際の位置関係を、当該複数の実空間のうちのいずれかに位置する一人のユーザのジェスチャーの認識結果に基づいて決定することも可能である。例えば、実空間2a内のユーザが(実空間2a内の)床を指差したことが認識された場合には、共有空間合成部152は、指差し先の床の位置に、空間2b内のユーザ(または他のオブジェクト)が位置するような位置関係で、実空間2aおよび実空間2bを合成することを決定する。
図68は、実空間2b内のユーザが指差しにより、空間合成時における、実空間2a内のユーザ4aの配置位置を指定する例を示した説明図である。例えば、図68のBに示したように、(実空間2b内の)床をユーザが指差したことが認識された場合には、共有空間合成部152は、当該指差しに基づく3点を実空間2bに関する基準点としてそれぞれ決定する。より具体的には、共有空間合成部152は、指差しの直線と床(またはソファの座面)との交点(点B1)、当該交点を床(またはソファの座面)上に差し元の方向へ単位長移動した点(点B2)、および、点B1と点B2とを結ぶ直線と直交する、床面(またはソファの座面)上の直線上の点(点B3)の3点を基準点としてそれぞれ決定する。
また、図68のAに示したように、共有空間合成部152は、実空間2a内のユーザ4aに基づく3点を実空間2aに関する基準点としてそれぞれ決定する。より具体的には、共有空間合成部152は、実空間2a内のユーザ4aの頭から床(またはソファの座面)への垂線と床(またはソファの座面)との交点(点A1)、当該交点をユーザ4aの前方方向へ単位長分移動した点(点A2)、および、点A1と点A2とを結ぶ直線と直交する床面(またはソファの座面)上の直線上の点(点A3)の3点を基準点としてそれぞれ決定する。そして、共有空間合成部152は、例えば、実空間2aに関する基準点A1、A2、およびA3と、実空間2bに関する基準点B1、B2、およびB3とがそれぞれ一致するような位置関係で、実空間2aおよび実空間2bを合成することを決定する。
なお、共有空間合成部152は、実空間2b内のユーザの指差し先に応じて、実空間2aと実空間2bとの合成方法を変更してもよい。例えば、図68に示した矢印710aのように、当該指差し先が床である場合には、共有空間合成部152は、実空間2a内のソファ42aおよびユーザ4aを当該指差し先に配置するように、実空間2aと実空間2bとを合成してもよい。また、図68に示した矢印710bのように、当該指差し先がソファ42bである場合には、共有空間合成部152は、実空間2a内のユーザ4aのみを当該指差し先に配置するように、実空間2aと実空間2bとを合成してもよい。以上の決定例によれば、別の空間内のユーザやオブジェクトの配置位置を、ユーザは指差しなどの操作により直感的に指定することができる。
‐ジェスチャーの認識結果:複数人による指定
または、複数の実空間内のユーザが所定のジェスチャーを同時に行っていることが認識された場合には、共有空間合成部152は、認識されたジェスチャーに基づいて当該複数の実空間を合成することを決定することも可能である。例えば、実空間2a内のユーザおよび実空間2b内のユーザが握手のジェスチャーを同時に行っていることが認識された場合には、共有空間合成部152は、当該二人のユーザがそれぞれ差し出した手が重なるように、実空間2aおよび実空間2bを合成することを決定する。また、実空間2a内のユーザおよび実空間2b内のユーザがハイタッチのジェスチャーを同時に行っていることが認識された場合には、共有空間合成部152は、当該二人のユーザがそれぞれ挙げた手(手の平など)が重なるように、実空間2aおよび実空間2bを合成することを決定する。また、実空間2a内のユーザおよび実空間2b内のユーザがじゃんけんのジェスチャーを同時に行っていることが認識された場合には、共有空間合成部152は、当該二人のユーザがそれぞれ差し出した手の間に一定の空隙が位置するような位置関係で、実空間2aおよび実空間2bを合成することを決定する。
図69は、実空間2a内のユーザ4aと実空間2b内のユーザ4bとが握手のジェスチャーを同時に行ったことが認識された場合における、二つの実空間の合成例(共有空間の生成例)を示した説明図である。例えば、図69のAに示したように、共有空間合成部152は、ユーザ4aが差し出した手に基づく3点を実空間2aに関する基準点として決定する。より具体的には、共有空間合成部152は、ユーザ4aが差し出した手の位置に対応する点(点C1)、点C1からユーザ4aの前方方向へ単位長分移動した点(点C2)、および、点C1から重力方向へ単位長分移動した点(点C3)の3点を基準点としてそれぞれ決定する。同様に、図69のBに示したように、共有空間合成部152は、ユーザ4bが差し出した手に基づく3点(点D1、点D2、および、点D3)を実空間2bに関する基準点としてそれぞれ決定する。そして、共有空間合成部152は、点C1と点D1とが重なり、ベクトルC1C3とベクトルD1D3とが重なり、かつ、ベクトルC1C2とベクトルD1D2とが向き合うような位置関係で、実空間2aと実空間2bとを合成することを決定する。これにより、当該共有空間に対応する自由視点のコンテンツにおいて、図69のCおよびDに示したように、ユーザが差し出した手の先に、別の実空間のユーザが表示され得る。
この決定例によれば、ジェスチャーの同時性を用いることにより、共有空間における最適な位置関係を効率的に設定することができる。例えば、共有空間における最適な位置関係を探すための、ユーザの操作数を大幅に削減することができる。
‐組み合わせ
または、共有空間合成部152は、上述したオブジェクトの認識結果、人の認識結果、および、ジェスチャーの認識結果のうちのいずれか2以上の組み合わせに基づいて、複数の実空間を合成することを決定してもよい。例えば、実空間2a内のユーザおよび実空間2b内のユーザがそれぞれの実空間内の机を同時に叩いたことが認識された場合には、共有空間合成部152は、それぞれの実空間内の机の高さが一致するような位置関係で、実空間2aおよび実空間2bを合成することを決定する。
(7−1−1−3.位置関係の変更)
‐行動認識
また、複数の実空間が合成された後(共有空間が生成された後)に、共有空間合成部152は、当該位置関係を所定の条件に基づいて変更することも可能である。例えば、実空間2a内のユーザ(生徒)と実空間2b内のユーザ(教師)との間で折り紙のレクチャを行う場合には、共有空間合成部152は、初期状態では、生徒の手元から例えば前方30cmの位置に教師の手が配置されるような位置関係で、実空間2aおよび実空間2bを合成してもよい。また、レクチャの開始後に、生徒が折り紙を持って移動することが認識された場合には、共有空間合成部152は、共有空間上での教師の手の位置が折り紙に追従して移動するように、二つの実空間の位置関係を逐次変更してもよい(共有空間を逐次再生成してもよい)。
また、位置関係変更モードの起動中において、実空間2a内のユーザが実空間2b内のオブジェクト(ユーザを含む)をつかみ動かすことが認識された場合には、共有空間合成部152は、認識結果に応じて、実空間2aおよび実空間2bの位置関係を逐次変更してもよい。なお、位置関係変更モードの起動および終了は、例えばジェスチャーや音声コマンドの認識、または、UIに対する操作などに基づいて実行される。
‐マーカの位置による指定
また、複数の実空間が合成された後に、共有空間合成部152は、所定のマーカ(位置合わせ用の物体など)の位置の変化に基づいて、当該位置関係を変更することが可能である。例えば、特定の椅子が所定のマーカとして予め登録されている場合には、共有空間合成部152は、いずれかの元空間における当該椅子の位置の変化に応じて、共有空間上での各実空間の位置関係を逐次変更してもよい。この変更例によれば、ユーザは所定のマーカを移動させることにより、別の実空間との位置関係を直感的に変更することができる。さらに、ユーザは実際にオブジェクトに触れるので、例えば仮想空間での操作と比較して、操作感(触覚など)を得ることができる。
(7−1−1−4.表示対象のオブジェクトの選択)
また、共有空間合成部152は、複数の実空間のうちの少なくともいずれかに位置するユーザのジェスチャーの認識結果に基づいて、表示対象のオブジェクトの選択と、当該オブジェクトの表示位置の決定とを同時に行うことも可能である。例えば、実空間2a内のユーザが椅子に座っており、かつ、別の実空間2b内のユーザが床を指差したことが認識された場合には、共有空間合成部152は、実空間2a内のユーザが座っている椅子および当該ユーザを共有空間上に(一緒に)配置することを決定する。また、実空間2a内のユーザが椅子を指差したことが認識された場合には、共有空間合成部152は、実空間2b内のユーザだけを(椅子に座っているポーズのまま)共有空間上に配置することを決定する。
また、共有空間合成部152は、実空間2a内のユーザのジェスチャー認識と、別の実空間2b内のオブジェクト(ユーザなど)の状況とに基づいて、表示対象のオブジェクトを(おおまかに)決定したり、当該表示対象のオブジェクトの配置位置を(おおまかに)決定することも可能である。例えば、実空間2a内のユーザが(実空間2a内の)椅子を指差し、かつ、実空間2b内のユーザが立っていることが認識された場合には、共有空間合成部152は、当該指差し先の椅子の近くの床上に、実空間2b内のユーザを(立っている姿勢のまま)配置することを決定する。この決定例によれば、例えばセンサ部220の精度が低い場合であっても、概ねユーザの意図通りにオブジェクトを選択したり、配置することができる。
(7−1−1−5.モードの切り替え)
または、複数の実空間を合成する際の位置関係の、複数の合わせ方がそれぞれ、予めモードとして登録され得る。そして、当該モードは、ユーザが手動(例えばジェスチャーや音声コマンドなど)で切り替え可能であり得る。
また、当該モードは、例えばユーザの行動認識結果などに基づいて、自動で切り替え可能であり得る。例えば、サーバ10‐7は、シーンを自動で検出し、そして、検出したシーンに対応するモードに自動的に切り替えてもよい。一例として、実空間2a内のユーザ4aおよび実空間2b内のユーザ4bが共有空間に参加しており、かつ、当該二人のユーザがそれぞれ元空間内のテーブルに座ったことが認識された場合には、サーバ10‐7は、テーブルの高さを合わせるようなモードに自動的に切り替える。この制御例によれば、ユーザが設定モードを切り替える手間が不要となる。
また、実空間2a内のユーザが、表示部246に表示されている仮想のノートの上に(実空間2a内の)実物のノートを広げ、かつ、当該仮想のノートに対して所定の閾値以下まで当該実物のノートを近づけたことが認識された場合には、サーバ10‐7は、「ノードを合せるモード」に自動的に切り替えてもよい。これにより、細かな調整にかかる手間を削減することができ、かつ、表示位置の動的な変更が可能となる。
また、オブジェクトの認識結果と、認識されたオブジェクトの合わせ方との履歴が記録され得る。そして、サーバ10‐7は、当該履歴に基づいて、位置関係の設定モードを自動的に切り替えてもよい。例えば、書道を行っているユーザが二枚の和紙を重ねたことが認識された場合には、当該操作が履歴として記録され得る。そして、次回以降に、二枚の和紙が近づけられたことが認識された場合には、サーバ10‐7は、履歴に基づいて、「二枚の和紙を重ねるモード」に自動的に設定することが可能である。また、ピアノのレッスンの時間になった場合には、サーバ10‐7は、履歴に基づいて、「鍵盤を合せるモード」に自動的に設定することが可能である。これらの制御例によれば、位置関係の設定モードをユーザが毎回指定する手間を省くことができる。また、履歴が大量に蓄積されることにより、最適なモードが自動的に選択され得る。
<7−2.処理の流れ>
以上、第7の実施形態の構成について説明した。次に、第7の実施形態による処理の流れについて、図70を参照して説明する。図70は、第7の実施形態による、各実空間のローカル座標系から共有空間座標系への変換行列を算出する処理の流れを示したフローチャートである。以下では、実空間Aに関して、実空間Aのローカル座標系から共有空間座標系への変換行列を算出する例について説明する。なお、本処理の流れは、任意の実空間に関して同様に適用され得る。
図70に示したように、まず、サーバ10‐7は、新たなFrameデータを実空間Aから受信する(S7001)。
続いて、共有空間合成部152は、入力部22の認識部224またはサーバ10‐7の認識部104による、(当該Frameデータに対応する)認識結果を取得する(S7003)。
続いて、共有空間合成部152は、S7001で受信されたFrameデータと、S7003で取得された認識結果とに基づいて、(実空間A内のオブジェクトの中から)基準オブジェクトを決定する。そして、共有空間合成部152は、実空間Aの座標系における当該基準オブジェクトの位置および姿勢を特定する(S7005)。
続いて、共有空間合成部152は、S7005で特定された基準オブジェクトの位置および姿勢に基づいて、基準点を抽出する(S7007)。
その後、共有空間合成部152は、共有空間上にすでに設定されている、複数の実空間の基準点間の位置関係と、S7007で抽出された基準点とに基づいて、実空間Aの座標系(ローカル座標系)から共有空間座標系(グローバル座標系)へ変換するための変換行列を算出する。
<7−3.効果>
以上説明したように、第7の実施形態によれば、サーバ10‐7は、複数の実空間の各々に位置する、類似していると認識されるオブジェクトを基準オブジェクトとしてそれぞれ決定し、そして、当該基準オブジェクトに関連付けられている基準点または基準面に基づいて、当該複数の実空間に関するセンシングデータを合成することにより、共有空間を生成する。これにより、各ユーザの状況に適した位置関係で当該二つの実空間を合成することができる。
<<8.ハードウェア構成>>
次に、各実施形態に共通するサーバ10のハードウェア構成について、図71を参照して説明する。図71に示すように、サーバ10は、CPU900、ROM(Read Only Memory)902、RAM904、バス906、インターフェース908、ストレージ装置910、および通信装置912を備える。
CPU900は、演算処理装置および制御装置として機能し、各種プログラムに従ってサーバ10内の動作全般を制御する。なお、CPU900は、マイクロプロセッサなどのプロセッサにより構成される。
ROM902は、CPU900が使用するプログラムや演算パラメータなどの制御用データなどを記憶する。
RAM904は、例えば、CPU900により実行されるプログラムなどを一時的に記憶する。
バス906は、CPUバスなどから構成される。このバス906は、CPU900、ROM902、およびRAM904を相互に接続する。
インターフェース908は、ストレージ装置910、および通信装置912を、バス906と接続する。
ストレージ装置910は、データ格納用の装置である。ストレージ装置910は、例えば、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置、または記憶媒体に記録されたデータを削除する削除装置などを含む。
通信装置912は、例えば通信網26などに接続するための通信デバイス等で構成された通信インターフェースである。また、通信装置912は、無線LAN対応通信装置、LTE(Long Term Evolution)対応通信装置、または有線による通信を行うワイヤー通信装置であってもよい。
<<9.変形例>>
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
<9−1.変形例1>
例えば、上述した各実施形態では、サーバ10は、(フレームごとに)共有空間を一つだけ生成する例を中心に説明したが、かかる例に限定されず、サーバ10(共有空間合成部152)は、フレームごとに、異なる共有空間を複数生成してもよい。例えば、共有空間合成部152は、実空間2a内の入力部22aから受信されたストリームと実空間2b内の入力部22bから受信されたストリームとに基づいて共有空間Aを生成し、かつ、実空間2c内の入力部22cから受信されたストリームと実空間2d内の入力部22dから受信されたストリームとに基づいて共有空間Bを生成してもよい。
また、共有空間合成部152は、各フレームに関して、共有空間に参加中のユーザごとにそれぞれ異なる共有空間を生成してもよい。例えば、共有空間合成部152は、各フレームに関して、ユーザごとに、表示対象のオブジェクトを別々に決定し、そして、決定されたオブジェクトに基づいて共有空間をそれぞれ生成してもよい。なお、この際、サーバ10(ベース空間レイアウト生成部158)は、ユーザごとにそれぞれ異なるベース空間を生成してもよい。
一例として、ユーザごとに、優先度を算出するための重みがテーブルに別々に登録され得る。そして、サーバ10(優先度算出部400)は、各実空間内の各オブジェクトに関して、ユーザごとに、当該テーブルの登録内容に基づいて、当該オブジェクトの優先度を算出する。この変形例によれば、例えば、ユーザ4aが閲覧可能なオブジェクトと、ユーザ4bが閲覧可能なオブジェクトとを異ならせることができる。
<9−2.変形例2>
また、別の変形例として、非表示とするオブジェクトの種類がユーザごとに予め設定されているフィルタが用意され得る。この場合、サーバ10は、共有空間に参加中のユーザごとに、生成された共有空間Frameデータに対して、当該ユーザに関連付けられているフィルタを適用してもよい。この変形例によれば、ユーザごとに閲覧可能なオブジェクトを異ならせることができる。
<9−3.変形例3>
また、上述した各実施形態の処理の流れにおける各ステップは、必ずしも記載された順序に沿って処理されなくてもよい。例えば、各ステップは、適宜順序が変更されて処理されてもよい。また、各ステップは、時系列的に処理される代わりに、一部並列的に又は個別的に処理されてもよい。また、記載されたステップのうちの一部が省略されたり、または、別のステップがさらに追加されてもよい。
また、上述した各実施形態によれば、CPU900、ROM902、およびRAM904などのハードウェアを、上述した各実施形態によるサーバ10の各構成と同等の機能を発揮させるためのコンピュータプログラムも提供可能である。また、当該コンピュータプログラムが記録された記録媒体も提供される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
第1のユーザに関連し少なくとも1つの第1の実オブジェクトを含む第1の実空間のセンシング結果と、第2のユーザに関連し少なくとも1つの第2の実オブジェクトを含む第2の実空間のセンシング結果とに基づいて前記第1のユーザと前記第2のユーザの間のコミュニケーションのために生成される仮想空間内に配置される共有オブジェクトを、所定の基準に基づいて決定する決定部、
を備える、情報処理装置。
(2)
前記決定部は、前記共有オブジェクトとして、前記第1の実オブジェクトに対応する第1の仮想オブジェクト、および、前記第2の実オブジェクトに対応する第2の仮想オブジェクトの少なくとも一方を前記所定の基準に基づいて選択する、前記(1)に記載の情報処理装置。
(3)
前記情報処理装置は、前記第1の実オブジェクトの優先度、および、前記第2の実オブジェクトの優先度を所定の指標に基づいて算出する優先度算出部をさらに備え、
前記所定の基準は、前記優先度算出部により算出された前記第1の実オブジェクトの優先度および前記第2の実オブジェクトの優先度を含む、前記(2)に記載の情報処理装置。
(4)
前記優先度算出部は、前記第1の実オブジェクトの属性情報および前記第2の実オブジェクトの属性情報に基づいて、前記第1の実オブジェクトの優先度および前記第2の実オブジェクトの優先度を算出する、前記(3)に記載の情報処理装置。
(5)
前記第1の実オブジェクトの属性情報は、前記第1の実オブジェクトのサイズ、前記第1の実オブジェクトの種類、または、前記第1の実空間の識別情報を含み、
前記第2の実オブジェクトの属性情報は、前記第2の実オブジェクトのサイズ、前記第2の実オブジェクトの種類、または、前記第2の実空間の識別情報を含む、前記(4)に記載の情報処理装置。
(6)
前記優先度算出部は、前記第1の実空間における前記第1の実オブジェクトと前記第1のユーザの位置関係に基づいて、前記第1の実オブジェクトの優先度を算出するとともに、前記第2の実空間における前記第2の実オブジェクトと前記第2のユーザの位置関係に基づいて、前記第2の実オブジェクトの優先度を算出する、前記(3)〜(5)のいずれか一項に記載の情報処理装置。
(7)
前記優先度算出部は、表示部により表示される前記仮想空間の直前の表示フレームにおいて前記第1の仮想オブジェクトまたは前記第2の仮想オブジェクトが前記仮想空間内に配置されていたか否かに基づいて、前記第1の実オブジェクトの優先度および前記第2の実オブジェクトの優先度を算出する、前記(3)〜(6)のいずれか一項に記載の情報処理装置。
(8)
前記優先度算出部は、前記第1の実オブジェクトの優先度および前記第2の実オブジェクトの優先度を、前記仮想空間におけるコンテキスト情報に基づいて算出する、前記(3)〜(7)のいずれか一項に記載の情報処理装置。
(9)
前記優先度算出部は、前記第1の実オブジェクトおよび前記第2の実オブジェクトのうち、前記コンテキスト情報に関連する実オブジェクトの優先度をより高く算出する、前記(8)に記載の情報処理装置。
(10)
前記第1の実空間のセンシング結果に基づいて取得される第1の三次元情報と、前記第2の実空間のセンシング結果に基づいて取得される第2の三次元情報とを合成することにより前記仮想空間を生成する空間生成部をさらに備える、前記(2)〜(9)のいずれか一項に記載の情報処理装置。
(11)
前記空間生成部は、前記仮想空間内に配置されることが前記決定部により決定された全ての共有オブジェクトをレイアウト情報に基づいて前記仮想空間内に配置する、前記(10)に記載の情報処理装置。
(12)
前記第1の実空間または前記第2の実空間のいずれかがベース空間として決定され、
前記情報処理装置は、前記ベース空間の三次元情報に基づいて前記レイアウト情報を生成するレイアウト情報生成部をさらに備える、前記(11)に記載の情報処理装置。
(13)
前記レイアウト情報は、予め登録されている複数のレイアウト情報の中から、前記第1のユーザまたは前記第2のユーザにより選択された情報である、前記(11)に記載の情報処理装置。
(14)
前記レイアウト情報を編集するための前記第1のユーザまたは前記第2のユーザによる指示の認識結果に基づいて前記レイアウト情報は編集される、前記(11)に記載の情報処理装置。
(15)
前記所定の基準は、前記第1の仮想オブジェクトの表示可否に関する設定情報、および、前記第2の仮想オブジェクトの表示可否に関する設定情報を含む、前記(2)〜(14)のいずれか一項に記載の情報処理装置。
(16)
前記所定の基準は、前記第1の実オブジェクトに関するデータ量と、前記第2の実オブジェクトに関するデータ量と、前記第1の実空間と前記情報処理装置との間のネットワーク帯域と、前記第2の実空間と前記情報処理装置との間のネットワーク帯域との関係性を含む、前記(2)〜(15)のいずれか一項に記載の情報処理装置。
(17)
前記第2の実オブジェクトは、前記第1の実オブジェクトに対して所定の類似度を有し、
前記決定部は、前記第1の実オブジェクト、および、前記第2の実オブジェクトをそれぞれ基準オブジェクトとして決定し、
前記情報処理装置は、前記第1の実空間のセンシング結果に基づいて取得される第1の三次元情報と、前記第2の実空間のセンシング結果に基づいて取得される第2の三次元情報とを、前記基準オブジェクトに応じた基準点または基準面に基づいて合成することにより前記仮想空間を生成する空間生成部をさらに備える、前記(1)〜(16)のいずれか一項に記載の情報処理装置。
(18)
前記決定部は、複数の前記第1の実オブジェクトと前記第1のユーザとの位置関係、複数の前記第2の実オブジェクトと前記第2のユーザとの位置関係、および、前記複数の第1の実オブジェクトに対する前記複数の第2の実オブジェクトの各々の類似度に基づいて、前記複数の第1の実オブジェクトの中から少なくとも1つを前記基準オブジェクトとして特定し、かつ、前記複数の第2の実オブジェクトの中から少なくとも1つを前記基準オブジェクトとして特定する、前記(17)に記載の情報処理装置。
(19)
第1のユーザに関連し少なくとも1つの第1の実オブジェクトを含む第1の実空間のセンシング結果と、第2のユーザに関連し少なくとも1つの第2の実オブジェクトを含む第2の実空間のセンシング結果とに基づいて前記第1のユーザと前記第2のユーザの間のコミュニケーションのために生成される仮想空間内に配置される共有オブジェクトを、所定の基準に基づいてプロセッサが決定すること、
を含む、情報処理方法。
(20)
コンピュータを、
第1のユーザに関連し少なくとも1つの第1の実オブジェクトを含む第1の実空間のセンシング結果と、第2のユーザに関連し少なくとも1つの第2の実オブジェクトを含む第2の実空間のセンシング結果とに基づいて前記第1のユーザと前記第2のユーザの間のコミュニケーションのために生成される仮想空間内に配置される共有オブジェクトを、所定の基準に基づいて決定する決定部、
として機能させるための、プログラム。
10‐1〜10‐7 サーバ
20 クライアント
22 入力部
24 出力部
26 通信網
50 自由視点動画コンテンツサーバ
52 自由視点ライブコンテンツサーバ
54 ベース空間レイアウトサーバ
100‐1、100‐2、100‐4 共有空間管理部
102 共有空間生成部
104、224、250、524 認識部
106 イベント認識部
108 制御部
120 クライアント接続部
122、252 制御情報送信部
124、242 ストリーム分離部
126、240 受信部
128、222、500、522 制御情報受信部
130、226、502、526 ストリーム生成部
132、228、504、528 送信部
150 同期部
152 共有空間合成部
154 配信部
156 共有空間FrameデータDB
158 ベース空間レイアウト生成部
166 ベース空間レイアウト情報管理部
220、248、520 センサ部
244 合成部
246 表示部
400 優先度算出部
402 決定部
540 ベース空間レイアウト情報DB管理部

Claims (20)

  1. 第1のユーザに関連し少なくとも1つの第1の実オブジェクトを含む第1の実空間のセンシング結果と、第2のユーザに関連し少なくとも1つの第2の実オブジェクトを含む第2の実空間のセンシング結果とに基づいて前記第1のユーザと前記第2のユーザの間のコミュニケーションのために生成される仮想空間内に配置される共有オブジェクトを、所定の基準に基づいて決定する決定部、
    を備える、情報処理装置。
  2. 前記決定部は、前記共有オブジェクトとして、前記第1の実オブジェクトに対応する第1の仮想オブジェクト、および、前記第2の実オブジェクトに対応する第2の仮想オブジェクトの少なくとも一方を前記所定の基準に基づいて選択する、請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、前記第1の実オブジェクトの優先度、および、前記第2の実オブジェクトの優先度を所定の指標に基づいて算出する優先度算出部をさらに備え、
    前記所定の基準は、前記優先度算出部により算出された前記第1の実オブジェクトの優先度および前記第2の実オブジェクトの優先度を含む、請求項2に記載の情報処理装置。
  4. 前記優先度算出部は、前記第1の実オブジェクトの属性情報および前記第2の実オブジェクトの属性情報に基づいて、前記第1の実オブジェクトの優先度および前記第2の実オブジェクトの優先度を算出する、請求項3に記載の情報処理装置。
  5. 前記第1の実オブジェクトの属性情報は、前記第1の実オブジェクトのサイズ、前記第1の実オブジェクトの種類、または、前記第1の実空間の識別情報を含み、
    前記第2の実オブジェクトの属性情報は、前記第2の実オブジェクトのサイズ、前記第2の実オブジェクトの種類、または、前記第2の実空間の識別情報を含む、請求項4に記載の情報処理装置。
  6. 前記優先度算出部は、前記第1の実空間における前記第1の実オブジェクトと前記第1のユーザの位置関係に基づいて、前記第1の実オブジェクトの優先度を算出するとともに、前記第2の実空間における前記第2の実オブジェクトと前記第2のユーザの位置関係に基づいて、前記第2の実オブジェクトの優先度を算出する、請求項3に記載の情報処理装置。
  7. 前記優先度算出部は、表示部により表示される前記仮想空間の直前の表示フレームにおいて前記第1の仮想オブジェクトまたは前記第2の仮想オブジェクトが前記仮想空間内に配置されていたか否かに基づいて、前記第1の実オブジェクトの優先度および前記第2の実オブジェクトの優先度を算出する、請求項3に記載の情報処理装置。
  8. 前記優先度算出部は、前記第1の実オブジェクトの優先度および前記第2の実オブジェクトの優先度を、前記仮想空間におけるコンテキスト情報に基づいて算出する、請求項3に記載の情報処理装置。
  9. 前記優先度算出部は、前記第1の実オブジェクトおよび前記第2の実オブジェクトのうち、前記コンテキスト情報に関連する実オブジェクトの優先度をより高く算出する、請求項8に記載の情報処理装置。
  10. 前記第1の実空間のセンシング結果に基づいて取得される第1の三次元情報と、前記第2の実空間のセンシング結果に基づいて取得される第2の三次元情報とを合成することにより前記仮想空間を生成する空間生成部をさらに備える、請求項2に記載の情報処理装置。
  11. 前記空間生成部は、前記仮想空間内に配置されることが前記決定部により決定された全ての共有オブジェクトをレイアウト情報に基づいて前記仮想空間内に配置する、請求項10に記載の情報処理装置。
  12. 前記第1の実空間または前記第2の実空間のいずれかがベース空間として決定され、
    前記情報処理装置は、前記ベース空間の三次元情報に基づいて前記レイアウト情報を生成するレイアウト情報生成部をさらに備える、請求項11に記載の情報処理装置。
  13. 前記レイアウト情報は、予め登録されている複数のレイアウト情報の中から、前記第1のユーザまたは前記第2のユーザにより選択された情報である、請求項11に記載の情報処理装置。
  14. 前記レイアウト情報を編集するための前記第1のユーザまたは前記第2のユーザによる指示の認識結果に基づいて前記レイアウト情報は編集される、請求項11に記載の情報処理装置。
  15. 前記所定の基準は、前記第1の仮想オブジェクトの表示可否に関する設定情報、および、前記第2の仮想オブジェクトの表示可否に関する設定情報を含む、請求項2に記載の情報処理装置。
  16. 前記所定の基準は、前記第1の実オブジェクトに関するデータ量と、前記第2の実オブジェクトに関するデータ量と、前記第1の実空間と前記情報処理装置との間のネットワーク帯域と、前記第2の実空間と前記情報処理装置との間のネットワーク帯域との関係性を含む、請求項2に記載の情報処理装置。
  17. 前記第2の実オブジェクトは、前記第1の実オブジェクトに対して所定の類似度を有し、
    前記決定部は、前記第1の実オブジェクト、および、前記第2の実オブジェクトをそれぞれ基準オブジェクトとして決定し、
    前記情報処理装置は、前記第1の実空間のセンシング結果に基づいて取得される第1の三次元情報と、前記第2の実空間のセンシング結果に基づいて取得される第2の三次元情報とを、前記基準オブジェクトに応じた基準点または基準面に基づいて合成することにより前記仮想空間を生成する空間生成部をさらに備える、請求項1に記載の情報処理装置。
  18. 前記決定部は、複数の前記第1の実オブジェクトと前記第1のユーザとの位置関係、複数の前記第2の実オブジェクトと前記第2のユーザとの位置関係、および、前記複数の第1の実オブジェクトに対する前記複数の第2の実オブジェクトの各々の類似度に基づいて、前記複数の第1の実オブジェクトの中から少なくとも1つを前記基準オブジェクトとして特定し、かつ、前記複数の第2の実オブジェクトの中から少なくとも1つを前記基準オブジェクトとして特定する、請求項17に記載の情報処理装置。
  19. 第1のユーザに関連し少なくとも1つの第1の実オブジェクトを含む第1の実空間のセンシング結果と、第2のユーザに関連し少なくとも1つの第2の実オブジェクトを含む第2の実空間のセンシング結果とに基づいて前記第1のユーザと前記第2のユーザの間のコミュニケーションのために生成される仮想空間内に配置される共有オブジェクトを、所定の基準に基づいてプロセッサが決定すること、
    を含む、情報処理方法。
  20. コンピュータを、
    第1のユーザに関連し少なくとも1つの第1の実オブジェクトを含む第1の実空間のセンシング結果と、第2のユーザに関連し少なくとも1つの第2の実オブジェクトを含む第2の実空間のセンシング結果とに基づいて前記第1のユーザと前記第2のユーザの間のコミュニケーションのために生成される仮想空間内に配置される共有オブジェクトを、所定の基準に基づいて決定する決定部、
    として機能させるための、プログラム。
JP2018551042A 2016-11-21 2017-08-30 情報処理装置、情報処理方法、およびプログラム Active JP6773126B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016226211 2016-11-21
JP2016226211 2016-11-21
PCT/JP2017/031043 WO2018092384A1 (ja) 2016-11-21 2017-08-30 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2018092384A1 JPWO2018092384A1 (ja) 2019-10-10
JP6773126B2 true JP6773126B2 (ja) 2020-10-21

Family

ID=62146324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018551042A Active JP6773126B2 (ja) 2016-11-21 2017-08-30 情報処理装置、情報処理方法、およびプログラム

Country Status (6)

Country Link
US (1) US11043033B2 (ja)
EP (1) EP3543961A4 (ja)
JP (1) JP6773126B2 (ja)
KR (1) KR102355175B1 (ja)
CN (1) CN109952599A (ja)
WO (1) WO2018092384A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417810B2 (en) * 2017-05-31 2019-09-17 Verizon Patent And Licensing Inc. Methods and systems for rendering virtual reality content based on two-dimensional (“2D”) captured imagery of a three-dimensional (“3D”) scene
KR102130892B1 (ko) * 2017-12-26 2020-07-07 (주)스코넥엔터테인먼트 착용형 디스플레이 장치 및 이를 이용한 이미지 제공 방법
JP6658799B2 (ja) * 2018-06-08 2020-03-04 株式会社セガゲームス 端末装置及びプログラム
US10921878B2 (en) * 2018-12-27 2021-02-16 Facebook, Inc. Virtual spaces, mixed reality spaces, and combined mixed reality spaces for improved interaction and collaboration
KR102303401B1 (ko) * 2019-02-08 2021-09-24 한양대학교 에리카산학협력단 하이브리드 홈 음성인식 시스템 및 그 제공 방법
WO2020202747A1 (ja) 2019-03-29 2020-10-08 ソニー株式会社 情報処理装置、情報処理方法、及び記録媒体
US11470017B2 (en) * 2019-07-30 2022-10-11 At&T Intellectual Property I, L.P. Immersive reality component management via a reduced competition core network component
WO2021024479A1 (ja) * 2019-08-08 2021-02-11 Graffity株式会社 情報処理装置、情報処理方法、及びプログラム
US11537351B2 (en) * 2019-08-12 2022-12-27 Magic Leap, Inc. Systems and methods for virtual and augmented reality
KR20190104282A (ko) * 2019-08-20 2019-09-09 엘지전자 주식회사 영상 기반으로 정보를 제공하는 방법 및 이를 위한 이동 단말
US11361473B1 (en) * 2019-09-25 2022-06-14 Apple Inc. Including a physical object based on context
US11151795B2 (en) * 2019-12-10 2021-10-19 Wormhole Labs, Inc. Systems and methods of creating virtual pop-up spaces
US11095855B2 (en) 2020-01-16 2021-08-17 Microsoft Technology Licensing, Llc Remote collaborations with volumetric space indications
US11206294B2 (en) * 2020-03-31 2021-12-21 Konica Minolta Business Solutions U.S.A., Inc. Method for separating local and remote content in a camera-projector based collaborative system
US20210350604A1 (en) * 2020-05-06 2021-11-11 Magic Leap, Inc. Audiovisual presence transitions in a collaborative reality environment
CN111651051B (zh) * 2020-06-10 2023-08-22 浙江商汤科技开发有限公司 一种虚拟沙盘展示方法及装置
JP2022003498A (ja) * 2020-06-23 2022-01-11 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、方法、プログラム及び情報処理システム
SE2030252A1 (en) * 2020-08-13 2022-02-14 Nagoon AB Method performed by a computer system for creation of augmented reality experiences and connection of these to the real world
US20220070239A1 (en) * 2020-08-28 2022-03-03 Tmrw Foundation Ip S. À R.L. System and method to provision cloud computing-based virtual computing resources within a virtual environment
CN112203142A (zh) * 2020-12-03 2021-01-08 浙江岩华文化科技有限公司 视频的处理方法、装置、电子装置和存储介质
WO2022244157A1 (ja) * 2021-05-19 2022-11-24 ソニーグループ株式会社 情報処理装置、情報処理プログラム、及び情報処理システム
US11733772B2 (en) * 2021-10-14 2023-08-22 Surefire, Llc Viewing a virtual world through a virtual window
JP7158781B1 (ja) 2021-11-29 2022-10-24 クラスター株式会社 端末装置、サーバ、仮想現実空間提供システム、プログラムおよび仮想現実空間提供方法
WO2023189580A1 (ja) * 2022-03-31 2023-10-05 ソニーグループ株式会社 画像処理装置及び画像処理システム
JP7299371B1 (ja) 2022-03-31 2023-06-27 Kddi株式会社 情報処理装置及び情報処理方法
KR102608117B1 (ko) * 2022-06-16 2023-11-30 주식회사 엘지유플러스 이미지 보정 방법 및 이미지 보정 시스템
EP4354262A1 (en) * 2022-10-11 2024-04-17 Meta Platforms Technologies, LLC Pre-scanning and indexing nearby objects during load

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2180891C (en) * 1995-07-12 2010-01-12 Junichi Rekimoto Notification of updates in a three-dimensional virtual reality space sharing system
JP2002305758A (ja) * 2001-04-04 2002-10-18 Nippon Telegr & Teleph Corp <Ntt> 臨場感通信装置及び臨場感通信システム
JP2003223653A (ja) * 2002-01-29 2003-08-08 Nippon Telegr & Teleph Corp <Ntt> ユーザ位置情報伝達方法およびユーザ位置情報伝達装置
JP2005004487A (ja) 2003-06-12 2005-01-06 Sony Corp 捕捉パス上で撮影されたサラウンド画像を処理する装置及び方法
JP2005182331A (ja) * 2003-12-18 2005-07-07 Sony Corp 情報処理システム、サービス提供装置および方法、情報処理装置および方法、並びに、プログラムおよび記録媒体
EP1686554A3 (en) 2005-01-31 2008-06-18 Canon Kabushiki Kaisha Virtual space generating system, image processing apparatus and information processing method
JP4553362B2 (ja) 2005-01-31 2010-09-29 キヤノン株式会社 システム、画像処理装置、情報処理方法
US20060224964A1 (en) * 2005-03-30 2006-10-05 Microsoft Corporation Method, apparatus, and system of displaying personal digital media according to display characteristics
JP4738870B2 (ja) 2005-04-08 2011-08-03 キヤノン株式会社 情報処理方法、情報処理装置および遠隔複合現実感共有装置
US7840568B2 (en) * 2006-05-16 2010-11-23 Sony Corporation Sorting media objects by similarity
US9329469B2 (en) * 2011-02-17 2016-05-03 Microsoft Technology Licensing, Llc Providing an interactive experience using a 3D depth camera and a 3D projector
JP6102215B2 (ja) * 2011-12-21 2017-03-29 株式会社リコー 画像処理装置、画像処理方法およびプログラム
KR101953306B1 (ko) * 2012-02-08 2019-03-04 삼성전자주식회사 사용자 인터랙션에 기초하여 3d 영상을 생성하기 위한 방법 및 장치
JP2014149712A (ja) * 2013-02-01 2014-08-21 Sony Corp 情報処理装置、端末装置、情報処理方法及びプログラム
US9325943B2 (en) * 2013-02-20 2016-04-26 Microsoft Technology Licensing, Llc Providing a tele-immersive experience using a mirror metaphor
JP2014203175A (ja) * 2013-04-02 2014-10-27 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム。
US9529917B2 (en) * 2013-05-21 2016-12-27 Saleforce.com, inc. System and method for generating information feed based on contextual data
US10104415B2 (en) * 2015-01-21 2018-10-16 Microsoft Technology Licensing, Llc Shared scene mesh data synchronisation

Also Published As

Publication number Publication date
KR102355175B1 (ko) 2022-01-26
JPWO2018092384A1 (ja) 2019-10-10
US20200051336A1 (en) 2020-02-13
EP3543961A1 (en) 2019-09-25
KR20190088466A (ko) 2019-07-26
CN109952599A (zh) 2019-06-28
WO2018092384A1 (ja) 2018-05-24
US11043033B2 (en) 2021-06-22
EP3543961A4 (en) 2020-02-12

Similar Documents

Publication Publication Date Title
JP6773126B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US11915670B2 (en) Systems, methods, and media for displaying interactive augmented reality presentations
US11809213B2 (en) Controlling duty cycle in wearable extended reality appliances
US20240061497A1 (en) Method and Device for Surfacing Physical Environment Interactions During Simulated Reality Sessions
CN108293073B (zh) 沉浸式临场感
WO2018092535A1 (ja) 情報処理装置、情報処理方法、およびプログラム
WO2020255767A1 (ja) 情報処理システム、情報処理方法、及び記録媒体
Rostami et al. The Normal Natural Troubles of Virtual Reality in Mixed-Reality Performances
KR102659585B1 (ko) 실내 공간 내 맞춤형 난간 벽 추천 방법
WO2022209297A1 (ja) 情報処理装置、情報処理方法および記録媒体
KR102659579B1 (ko) 진동 알림을 활용한 평면도 편집 서비스 제공 방법
Hölling et al. Audio-Visual Interactive Art: Investigating the effect of gaze-controlled audio on visual attention and short term memory
KR101802700B1 (ko) 실감 미디어 저작 방법 및 장치
KR101542402B1 (ko) 사용자 성향별 실감영상 재생 시스템
JP2023181567A (ja) 情報処理装置、情報処理方法、情報処理システム、及びデータ生成方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190515

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190522

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200713

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200901

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200914

R151 Written notification of patent or utility model registration

Ref document number: 6773126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151