(57)【要約】【課題】  複数の複合現実空間を端末間で共有するときの処理遅延を軽減するための技術を提供する。【解決手段】  現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する端末と、当該端末との間で通信が可能なサーバ装置とを備える情報処理システムにあって、サーバ装置が、複数の現実空間の各々について、当該現実空間を識別する情報と、現実空間における仮想空間の重畳位置を規定するためのアンカー情報とを管理し、端末から第１の現実空間に対応するアンカー情報の取得要求を受信した場合に、第１の現実空間に対応するアンカー情報と、第１の現実空間に隣接する第２の現実空間に対応するアンカー情報とを含む回答情報を端末に送信し、端末は、サーバ装置から受信した回答情報を記憶し、第２の現実空間に入った場合にそれに対応するアンカー情報に基づいて複合現実空間を表す画像を表示するようにした。【選択図】図１２
2020177338.tif 000002
【特許請求の範囲】
【請求項１】
現実空間を表す空間情報を取得し、前記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末と、前記情報処理端末との間で通信が可能なサーバ装置と、を備える情報処理システムであって、
前記サーバ装置は、
複数の現実空間の各々について、当該現実空間を識別する情報と、前記現実空間における前記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報をそれぞれ作成し管理する複合空間管理部と、
前記情報処理端末から前記複数の現実空間のうち第１の現実空間に対応するアンカー情報の取得要求を受信した場合に、前記第１の現実空間に対応する複合空間管理情報に基づいて、前記第１の現実空間に対応する第１のアンカー情報および前記第１の現実空間に隣接する第２の現実空間に対応する第２のアンカー情報を含む回答情報を、前記要求元の情報処理端末へ送信する回答部と
を備え、
前記情報処理端末は、
前記複数の現実空間のうち第１の現実空間に入った場合に、前記アンカー情報の取得要求を前記サーバ装置へ送信して、前記サーバ装置から前記回答情報を取得する回答情報取得部と、
前記取得された回答情報を記憶媒体に記憶し、前記第２の現実空間に入った場合に、前記記憶媒体に記憶された回答情報に含まれる前記第２のアンカー情報に基づいて、前記第２の現実空間に前記仮想空間を重畳させた複合現実空間を表す情報を生成する複合空間情報生成部と
を備える、
情報処理システム。
【請求項２】
前記現実空間を識別する情報は、前記情報処理端末により取得された前記現実空間を表す空間情報を含み、
前記複合空間管理情報は、前記情報処理端末から受信した空間情報に基づいて推定された、当該情報処理端末がどの現実空間に位置するかを表す端末状態情報をさらに含む、
請求項１に記載の情報処理システム。
【請求項３】
前記サーバ装置は、
前記端末状態情報と、前記情報処理端末から新たに受信した空間情報とに基づいて、前記複数の現実空間に関する隣接関係を推定し、推定結果を前記複合空間管理部に出力する、隣接関係推定部をさらに備える、
請求項２に記載の情報処理システム。
【請求項４】
現実空間を表す空間情報を取得して前記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末との間で通信が可能な、プロセッサと、前記プロセッサに接続されたメモリとを備えるサーバ装置であって、
前記メモリは、
複数の現実空間の各々について、当該現実空間を識別する情報と、前記現実空間における前記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報を記憶する記憶部を備え、
前記プロセッサは、
前記情報処理端末から前記複数の現実空間のうち第１の現実空間に対応するアンカー情報の取得要求を受信した場合に、前記第１の現実空間に対応する複合空間管理情報に基づいて、前記第１の現実空間に対応する第１のアンカー情報および前記第１の現実空間に隣接する第２の現実空間に対応する第２のアンカー情報を含む回答情報を、前記要求元の情報処理端末へ送信する処理を実行するように構成される、
サーバ装置。
【請求項５】
現実空間に仮想空間を重畳させた複合現実空間を構築するための重畳位置を規定するアンカー情報を管理するサーバ装置との間で通信が可能な、プロセッサと、前記プロセッサに接続されたメモリと、前記アンカー情報に基づいて構築された前記複合現実空間を表す画像を表示する表示部とを備える、情報処理端末であって、
前記プロセッサは、
前記情報処理端末が複数の現実空間のうち第１の現実空間に入った場合に、当該第１の現実空間を表す空間情報を取得し、
前記取得した空間情報を前記サーバ装置へ送信して前記アンカー情報を要求し、
前記アンカー情報の要求に対して前記サーバ装置から受信した回答に基づいて、前記第１の現実空間に対応する第１のアンカー情報および前記第１の現実空間に隣接する第２の現実空間に対応する第２のアンカー情報を前記メモリに記憶させ、
前記情報処理端末が前記第２の現実空間に入った場合に、前記メモリに記憶された前記第２のアンカー情報に基づいて、前記第２の現実空間に前記仮想空間を重畳させた複合現実空間を表す情報を生成し前記表示部に表示させる
ように構成される、情報処理端末。
【請求項６】
現実空間を表す空間情報を取得し、前記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末と、前記情報処理端末との間で通信が可能なサーバ装置と、を備える情報処理システムが実行する情報処理方法であって、
前記サーバ装置が、複数の現実空間の各々について、当該現実空間を識別する情報と、前記現実空間における前記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報をそれぞれ作成し管理することと、
前記サーバ装置が、前記情報処理端末から前記複数の現実空間のうち第１の現実空間に対応するアンカー情報の取得要求を受信した場合に、前記第１の現実空間に対応する複合空間管理情報に基づいて、前記第１の現実空間に対応する第１のアンカー情報および前記第１の現実空間に隣接する第２の現実空間に対応する第２のアンカー情報を含む回答情報を、前記要求元の情報処理端末へ送信することと
前記情報処理端末が、前記複数の現実空間のうち第１の現実空間に入った場合に、前記アンカー情報の取得要求を前記サーバ装置へ送信して、前記サーバ装置から前記回答情報を取得ることと、
前記情報処理端末が、前記取得された回答情報を記憶媒体に記憶し、前記第２の現実空間に入った場合に、前記記憶媒体に記憶された回答情報に含まれる前記第２のアンカー情報に基づいて、前記第２の現実空間に前記仮想空間を重畳させた複合現実空間を表す情報を生成することと
を備える、情報処理方法。
【請求項７】
請求項４に記載のサーバ装置により実行される各処理をプロセッサに実行させるためのプログラム。
【請求項８】
請求項５に記載の情報処理端末により実行される各処理をプロセッサに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の一態様は、複合現実（ＭＲ：Mixed Reality）空間の構築に用いられる情報処理のための情報処理システムと、このシステムで使用される情報処理端末およびサーバ、ならびに情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、拡張現実（ＡＲ：Augmented Reality）／仮想現実（ＶＲ：Virtual Reality）技術の進化に伴い、これらを統合した複合現実（ＭＲ：Mixed Reality）が注目されている。ＭＲとは、仮想情報を現実空間上に投影することで、仮想空間と現実空間が混合した空間（以下、「複合現実空間」と言う。）を構築する技術のことを指し、その市場規模は年々増加している。
【０００３】
このようなＭＲを実現する代表的なデバイスとして、Ｍｉｃｒｏｓｏｆｔ社のＨｏｌｏＬｅｎｓ（登録商標）が知られている（例えば、非特許文献１参照）。ＨｏｌｏＬｅｎｓには、現実空間を表す情報を３Ｄ情報として取得するためのセンサが搭載されており、このセンサが取得した情報に基づいて生成された現実空間の３Ｄモデルに対して仮想情報をマッピングすることによって、仮想空間と現実空間を混合する。このようにして構築された複合現実空間を、透過型のホログラムレンズに投影することによって、ユーザに複合現実空間を体験させている。
【０００４】
また、ＨｏｌｏＬｅｎｓをはじめとするＭＲ端末は、スマートフォンに代わる次世代モバイル端末としても注目を浴びつつある（例えば、非特許文献２，３，４参照）。したがって、将来的には上記の例に限らず、より汎用的に、かつ屋外屋内問わず様々な場所で使われるものと考えられる。
【０００５】
ＭＲの応用例として、「室内に３Ｄモデルを投影し、レイアウトをシミュレーションする」といった個人で完結するもの（例えば、非特許文献５参照）、「建設業や製造業において、オペレータからの指示を現場作業員の視界に仮想情報として提示するもの」（例えば、非特許文献６参照）、「不動産業において、ビルの建設予定地に完成後のビルの姿を３Ｄオブジェクトとして顧客の視界に提示するもの」（例えば、非特許文献７参照）などが提案されている。
【０００６】
このように、ＭＲは、複数人での協調作業や意思決定の際に現実空間内で仮想情報を共有するための技術として注目を浴びている。
【０００７】
このような背景のもと、Ｍｉｃｒｏｓｏｆｔ社は「コラボラティブ・コンピューティング」を提唱している。コラボラティブ・コンピューティングとは、個々人がＰＣを介して見ている情報を現実空間に投影し、その情報とあたかも現実物体に触れるかのようにインタラクションしながら複数人で共有する、コンピューティングモデルである。このコンピューティングモデルが浸透すれば、情報を見たり共有したりする場所が、ＰＣやスマートフォンのディスプレイではなく、現実空間そのものになる。このように、ＭＲにおいて複合現実空間を複数人で共有する技術は、今後ますます重要になっていくものと考えられる。
【０００８】
Ｍｉｃｒｏｓｏｆｔ社は、複合現実空間の共有を簡単に実現できるように、空間共有サービス（以下、「シェアリングサービス」と言う。）を提供している（例えば、非特許文献８参照）。このシェアリングサービスでは、仮想物体を複合現実空間内に固定するための情報（アンカー情報）を、サーバを介してＭＲ端末間で共有する。アンカー情報を受け取った各ＭＲ端末は、アンカー情報をもとに計算された座標からの相対位置に仮想物体を表示する。これにより、各ＭＲ端末は現実空間内の同じ位置に仮想物体を表示できるため、複数のユーザが同じ複合現実空間を見ることができる。
【０００９】
また、サーバプログラム内では、共有する複合現実空間に関する情報が「ルーム」として管理されており、アンカー情報もこのルーム内に保存されている。プログラム上では、同じルームに紐づけられたＭＲ端末へ当該アンカー情報を送信することによって、複合現実空間の共有を実現している。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】インターネット  <URL: https://www.microsoft.com/ja-jp/hololens>
【非特許文献２】Taleb, Tarik, et al. “PERMIT: Network slicing for personalized 5G mobile telecommunications,” IEEE Communications Magazine, 55(5), pp.88-93, 2017.
【非特許文献３】Debandi, Federico, et al. “Enhancing cultural tourism by a mixed reality application for outdoor navigation and information browsing using immersive devices,” IOP Conference Series: Materials Science and Engineering, 364(1), pp.12-48, 2018.
【非特許文献４】インターネット  <URL: https://www.bloomberg.com/news/features/2017-05-03/microsoft-gets-hardware-religion>
【非特許文献５】インターネット  <URL: https://dynamics.microsoft.com/ja-jp/mixed-reality/layout/>
【非特許文献６】インターネット  <URL: https://dynamics.microsoft.com/ja-jp/mixed-reality/remote-assist/>
【非特許文献７】インターネット  <URL: https://www.nextscape.net/news/2017/05/20170523>
【非特許文献８】インターネット  <URL: https://github.com/Microsoft/MixedRealityToolkit/tree/c562ff9582cd10ea0448fd846f7b2bb261e8f551>
【非特許文献９】インターネット  <URL: https://www.nngroup.com/articles/response-times-3-important-limits/>
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従来のシステムにおいても、ＭＲ端末との間で通信可能なマシン上でサーバプログラムが起動している状態で、異なるＭＲ端末間で複合現実空間を共有することができる。ここで、そのようなＭＲ端末間で複合現実空間の共有を実施する従来の処理の一例について説明する。以下では、サーバプログラムが動作しているマシンを「サーバ」と言う。
【００１２】
まず、従来のシステムに係るクライアント（ＭＲ端末）側の処理の一例について説明する。
ＭＲ端末との間で通信可能なサーバ上でサーバプログラムが起動している状態で、サーバに接続したＭＲ端末は、共有したい空間のルームが既にあるか否かの確認を行うために、当該ルームの名前をサーバへ送信する。該当するルームがサーバ内にない場合、ＭＲ端末は、サーバに対し、サーバ上にルームの作成を要求する。その後、ＭＲ端末は、自端末上で計算したアンカー情報をルームへアップロードする。
【００１３】
一方、当該ルームがサーバ内に見つかった場合、ＭＲ端末は、サーバに対し、当該ルームのアンカー情報を要求し、アンカー情報をダウンロードする。
【００１４】
その後、ＭＲ端末は、自身が認識している複合現実空間に、ダウンロードしたアンカー情報を取り付ける。これにより、同じルームに入ったＭＲ端末は、同じアンカー情報を取得でき、結果として同じ複合現実空間をＭＲ端末のユーザに体験させることができる。また一度取得したアンカー情報はローカルに保存できるので、２回目以降に対象の複合現実空間を訪れた場合、アンカー情報のダウンロードなしに複合現実空間を共有することができる。
【００１５】
続いて、従来のシステムに係るサーバ側の処理の一例について説明する。
サーバは、ＭＲ端末からルームの名前を含む確認メッセージを受信した場合、当該ルームの有無を確認し、ＭＲ端末へ返信する。このとき、当該ルームが存在すれば、サーバは、確認メッセージの送信元であるＭＲ端末とそのルームを紐づける。以降ではこの処理を、「ＭＲ端末をルームに入れる」と表現する。当該ルームが存在しない場合、上述のようにＭＲ端末からルーム作成要求が送信されるので、サーバは、このルーム作成要求の受信に応答して、要求されたルームを作成する。
【００１６】
その後、サーバは、ＭＲ端末から受信したアンカー情報を、作成したルームに紐づけて保存する。以後、サーバは、同じルームに入っている別のＭＲ端末からアンカー情報の要求を受信した場合、そのアンカー情報をＭＲ端末へ送信する。
【００１７】
このように、従来のシステムでも、複数人に１つの複合現実空間を共有させることができる。しかしながら、ＨｏｌｏＬｅｎｓをはじめとするＭＲ端末がスマートフォンのように普及した場合、屋内屋外問わず様々な場所で複合現実空間を共有したいとの要望が増加するものと考えられる。このような状況を想定していない従来技術では、複数の複合現実空間の共有を実現するためには、以下のような課題がある。
（課題１）従来技術では、ルーム名によって共有したいルームの存在を確認しているので、ＭＲ端末が今後自身の訪れるルーム名をすべて事前に把握しておく必要がある。
（課題２）あるルーム（例えば、ルームＡ）に入っているＭＲ端末が、ルームＡの複合現実空間の外に出たことを検知できない。
（課題３）複数存在する複合現実空間のうち、ＭＲ端末自身が今どの空間内に位置しているかが判断できない。そのため、上記課題１〜２が解決されたとしても、どのルーム名をサーバに問い合わせればよいかが判断できない。
（課題４）課題１〜３が解決されたとしても、新しいルームに入るたびに、サーバからアンカー情報を取得しなおさなければならず、共有開始までに、ユーザに不快感を与えてしまうほどの遅延が発生する場合がある（例えば、非特許文献９参照）。例えば、検証実験により、ＭＲ端末の隣に設置したパーソナルコンピュータ（ＰＣ）とＵＤＰ（User Datagram Protocol）通信でアンカー情報を取得した場合や、都内のデータセンターにあるマシン上でシェアリングサービスを動作させ、同じく都内からモバイル網を用いてＴＣＰ通信でアンカー情報を取得した場合に、十数秒の遅延発生が計測された。
【００１８】
これらの課題を解決するためには、ＭＲ端末が現実空間を移動するのに応じて、共有対象の複合現実空間、すなわちルームを切り替えることができ、かつ複数の複合現実空間を高速に共有できるようにするための技術が必要になる。
【００１９】
この発明は上記事情に着目してなされたもので、その目的とするところは、複数の複合現実空間を複数の端末で共有するときに生じる情報処理の遅延を軽減する技術を提供することにある。
【課題を解決するための手段】
【００２０】
上記課題を解決するために、この発明の第１の態様は、現実空間を表す空間情報を取得して、上記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末と、上記情報処理端末との間で通信が可能なサーバ装置とを備える情報処理システムにあって、上記サーバ装置が、複数の現実空間の各々について、当該現実空間を識別する情報と、上記現実空間における上記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報をそれぞれ作成し管理する複合空間管理部と、上記情報処理端末から上記複数の現実空間のうち第１の現実空間に対応するアンカー情報の取得要求を受信した場合に、上記第１の現実空間に対応する複合空間管理情報に基づいて、上記第１の現実空間に対応する第１のアンカー情報および上記第１の現実空間に隣接する第２の現実空間に対応する第２のアンカー情報を含む回答情報を、上記要求元の情報処理端末へ送信する回答部とを備え、上記情報処理端末が、上記複数の現実空間のうち第１の現実空間に入った場合に、上記アンカー情報の取得要求を上記サーバ装置へ送信して、上記サーバ装置から上記回答情報を取得する回答情報取得部と、上記取得された回答情報を記憶媒体に記憶し、上記第２の現実空間に入った場合に、上記記憶媒体に記憶された回答情報に含まれる上記第２のアンカー情報に基づいて、上記第２の現実空間に上記仮想空間を重畳させた複合現実空間を表す情報を生成する複合空間情報生成部とを備えるようにしたものである。
【００２１】
この発明の第２の態様は、上記現実空間を識別する情報が、上記情報処理端末により取得された上記現実空間を表す空間情報を含み、上記複合空間管理情報が、上記情報処理端末から受信した空間情報に基づいて推定された、当該情報処理端末がどの現実空間に位置するかを表す端末状態情報をさらに含むようにしたものである。
【００２２】
この発明の第３の態様は、上記サーバ装置が、上記端末状態情報と、上記情報処理端末から新たに受信した空間情報とに基づいて、上記複数の現実空間に関する隣接関係を推定し、推定結果を上記複合空間管理部に出力する、隣接関係推定部をさらに備えるようにしたものである。
【００２３】
この発明の第４の態様は、現実空間を表す空間情報を取得して上記現実空間に仮想空間を重畳させた複合現実空間を表す画像を表示する情報処理端末との間で通信が可能な、プロセッサと、上記プロセッサに接続されたメモリとを備えるサーバ装置にあって、上記メモリが、複数の現実空間の各々について、当該現実空間を識別する情報と、上記現実空間における上記仮想空間の重畳位置を規定するためのアンカー情報と、隣接する現実空間に対応するアンカー情報とを関連付ける複合空間管理情報を記憶する記憶部を備え、上記プロセッサが、上記情報処理端末から上記複数の現実空間のうち第１の現実空間に対応するアンカー情報の取得要求を受信した場合に、上記第１の現実空間に対応する複合空間管理情報に基づいて、上記第１の現実空間に対応する第１のアンカー情報および上記第１の現実空間に隣接する第２の現実空間に対応する第２のアンカー情報を含む回答情報を、上記要求元の情報処理端末へ送信する処理を実行するように構成されるようにしたものである。
【００２４】
この発明の第５の態様は、現実空間に仮想空間を重畳させた複合現実空間を構築するための重畳位置を規定するアンカー情報を管理するサーバ装置との間で通信が可能な、プロセッサと、上記プロセッサに接続されたメモリと、上記アンカー情報に基づいて構築された上記複合現実空間を表す画像を表示する表示部とを備える情報処理端末にあって、上記プロセッサが、上記情報処理端末が複数の現実空間のうち第１の現実空間に入った場合に、当該第１の現実空間を表す空間情報を取得し、上記取得した空間情報を上記サーバ装置へ送信して上記アンカー情報を要求し、上記アンカー情報の要求に対して上記サーバ装置から受信した回答に基づいて、上記第１の現実空間に対応する第１のアンカー情報および上記第１の現実空間に隣接する第２の現実空間に対応する第２のアンカー情報を上記メモリに記憶させ、上記情報処理端末が上記第２の現実空間に入った場合に、上記メモリに記憶された上記第２のアンカー情報に基づいて、上記第２の現実空間に上記仮想空間を重畳させた複合現実空間を表す情報を生成し上記表示部に表示させるように構成されるようにしたものである。
【発明の効果】
【００２５】
この発明の第１および第４の態様によれば、アンカー情報を管理するサーバ装置は、情報処理端末から第１の現実空間に対応するアンカー情報の取得要求を受信した場合に、その取得要求に応答して、第１の現実空間に対応するアンカー情報と、第１の現実空間に隣接する第２の現実空間に対応するアンカー情報とを含む回答を情報処理端末に送信する。回答を受信した情報処理端末は、第１の現実空間に対応するアンカー情報と、第１の現実空間に隣接する第２の現実空間に対応するアンカー情報とを、第２の現実空間に入る前に取得し、記憶することができる。
【００２６】
このように、情報処理端末は、複合現実空間を共有するために必要なアンカー情報を、現在入っている現実空間に対応するものだけでなく、次に移動する可能性のある他の現実空間に対応するアンカー情報もあらかじめ取得して記憶しておくことができる。したがって、情報処理端末は、他の現実空間に移動したときに、記憶されたアンカー情報に基づいて複合現実空間を表す画像を生成し表示することができ、他の現実空間に移動した後で必要なアンカー情報を取得する場合に比べて、複合現実空間を共有する際の処理遅延を大幅に軽減することができる。
【００２７】
この発明の第２の態様によれば、サーバ装置は、複合空間管理部により管理される複合空間管理情報において、情報処理端末によって取得された現実空間を表す空間情報を、現実空間を識別する情報として管理し、またさらに、情報処理端末から受信した空間情報に基づいて情報処理端末がどの現実空間に位置するかの推定結果を表す端末状態情報も管理する。
【００２８】
このように、サーバ装置は、情報処理端末から受信した空間情報と、アンカー情報を含む複合空間管理情報とを関連付けて管理しているので、情報処理端末からのアンカー情報の要求に対して、その要求に含まれる空間情報に基づき容易に応答することができる。また、サーバ装置は、情報処理端末が位置する現実空間の推定結果を管理しているので、情報処理端末からの要求に対し、位置関係を考慮した適切な情報を送信することができる。情報処理端末は、取得した空間情報をもとにサーバ装置に問い合わせることによって、自身がどの現実空間に位置するか、新たなアンカー情報を取得する必要があるかを確認することができ、複合現実空間の共有を円滑にすることができる。
【００２９】
この発明の第３の態様によれば、サーバ装置は、管理している端末状態情報と、情報処理端末から新たに受信した空間情報とをもとに、現実空間の隣接関係を推定し、その推定結果を、上記アンカー情報を管理する複合空間管理部に出力する。これにより、あらかじめサーバ装置に現実空間の隣接関係を登録するなどの煩雑な操作を要することなく、サーバ装置は、現実空間の隣接関係を推定し、アンカー情報を適切に管理することができる。また情報処理端末は、適時にサーバ装置に問い合わせることによって隣接関係にあるアンカー情報だけを記憶することができ、複合現実空間の高速共有を実現しつつ、ストレージを節約し、通信量を抑えることもできる。
【００３０】
この発明の第５の態様によれば、アンカー情報を管理するサーバ装置との間で通信可能な情報処理端末は、第１の現実空間に入ったとき、第１の現実空間を表す空間情報を取得し、サーバ装置にこの空間情報を送信してアンカー情報を要求する。そして、情報処理端末は、この要求に対してサーバ装置から得られた回答に基づいて、上記第１の現実空間に対応するアンカー情報と、第１の現実空間に隣接する第２の現実空間に対応するアンカー情報とをメモリに記憶させる。これにより、情報処理端末は、第２の現実空間に入ったときには、あらかじめ記憶していた第２の現実空間に対応するアンカー情報を用いて複合現実空間を表す情報を生成して表示させることができる。したがって、情報処理端末が第２の現実空間に入った後で必要なアンカー情報をサーバ装置から取得する場合に比べて、その処理に要する遅延をなくすことができ、複合現実空間の高速共有を実現することができる。
【００３１】
すなわちこの発明の各態様によれば、複数の複合現実空間を複数の端末で共有するときに生じる情報処理の遅延を軽減する技術を提供することができる。
【図面の簡単な説明】
【００３２】
【図１】図１は、この発明の一実施形態に係る情報処理システムの全体構成を示す図である。
【図２】図２は、この発明の一実施形態に係る情報処理端末としてのＭＲ端末のハードウェア構成を示すブロック図である。
【図３】図３は、この発明の一実施形態に係る情報処理端末としてのＭＲ端末のソフトウェア構成を示すブロック図である。
【図４】図４は、この発明の一実施形態に係るサーバ装置のハードウェア構成を示すブロック図である。
【図５】図５は、この発明の一実施形態に係るサーバ装置のソフトウェア構成を示すブロック図である。
【図６】図６は、この発明の一実施形態に係る複合現実空間を共有する動作の第１の例を示す図である。
【図７】図７は、この発明の一実施形態に係る複合現実空間を共有する動作の第２の例を示す図である。
【図８】図８は、この発明の一実施形態に係るルームの隣接関係を設定する動作の第１の例を示す図である。
【図９】図９は、この発明の一実施形態に係るルームの隣接関係を設定する動作の第２の例を示す図である。
【図１０】図１０は、この発明の一実施形態に係るルームの隣接関係を設定する動作の第３の例を示す図である。
【図１１】図１１は、この発明の一実施形態に係るルームの確認および作成ならびに隣接関係の設定の処理の一例を示す図である。
【図１２】図１２は、この発明の一実施形態に係る複合現実空間を共有する処理の一例を示す図である。
【図１３】図１３は、図５に示した情報処理端末による起動からルーム情報を取得するまでの処理手順と処理内容の一例を示すフローチャートである。
【図１４】図１４は、図１３に示したフローチャートのうちルーム確認処理の一例を示すフローチャートである。
【図１５】図１５は、図１３に示したフローチャートのうち隣接ルーム情報取得処理の一例を示すフローチャートである。
【図１６】図１６は、図３に示したサーバによる処理手順と処理内容の一例を示すフローチャートである。
【図１７】図１７は、図１６に示したフローチャートのうち隣接関係設定処理の一例を示すフローチャートである。
【図１８】図１８は、待機時間を変化させたときの遅延時間の検証結果を示す図である。
【図１９】図１９は、待機時間を変化させたときのアンカー情報要求回数の検証結果を示す図である。
【図２０】図２０は、アンカーの保存数を変化させたときの遅延時間の検証結果を示す図である。
【図２１】図２１は、アンカーの保存数を変化させたときのアンカー情報要求回数の検証結果を示す図である。
【図２２】図２２は、ルームの隣接数を変化させたときの遅延時間の検証結果を示す図である。
【図２３】図２３は、ルームの隣接数を変化させたときのアンカー情報要求回数の検証結果を示す図である。
【発明を実施するための形態】
【００３３】
以下、図面を参照してこの発明に係わる実施形態を説明する。
［一実施形態］
（１）構成
（１−１）システム
図１は、この発明の一実施形態に係る情報処理システムの全体構成の一例を示す図である。  
このシステムは、ネットワークＮＷを介して互いに通信可能な、サーバ装置としてのサーバ１０と、情報処理端末としての複合現実（ＭＲ）端末１００−１，１００−２，・・・（以下、まとめて「ＭＲ端末１００」と言う）とを備えている。
【００３４】
ネットワークＮＷは、例えば中継網と、この中継網に対しアクセスするための複数のアクセス網とから構成される。中継網としては、一般的なインターネットのような公衆網や限られた機器などからのみアクセスできるよう制御された閉域網が用いられる。アクセス網としては、例えば、無線ＬＡＮ（Local Area Network）、携帯電話網、有線電話網、ＦＴＴＨ（Fiber To The Home）、ＣＡＴＶ（Cable Television）網が用いられる。
【００３５】
ＭＲ端末１００は、現実空間を表す空間情報を３Ｄ情報として取得し、取得した３Ｄ情報に基づいて構築された複合現実空間をユーザに体験させるもので、例えば、Ｍｉｃｒｏｓｏｆｔ社のＨｏｌｏＬｅｎｓのようなヘッドマウントディスプレイ型の情報処理端末である。
【００３６】
サーバ１０は、ＭＲ端末１００と通信し、複合現実空間を複数のＭＲ端末１００に共有させるための情報の生成および管理を行うもので、例えば、ゲームやアプリケーションなどを開発／提供する事業者が運営管理するサーバコンピュータである。
【００３７】
サーバ１０は、複数のＭＲ端末１００に対し、複合現実空間に対して仮想物体を固定するために使用される「アンカー」の情報（「アンカー情報」）を共有させることにより、複合現実空間を共有させる。サーバ１０は、このようなアンカー情報を、ＭＲ端末により取得された現実空間の３Ｄ情報とともに、各現実空間に対応する複合現実空間を表す「ルーム」として管理する。
【００３８】
（１−２）ＭＲ端末
（１−２−１）ハードウェア構成
図２は、この発明の一実施形態に係る情報処理端末としてのＭＲ端末１００のハードウェア構成の一例を示すブロック図である。
【００３９】
ＭＲ端末１００は、例えば、ＣＰＵ（Central Processing Unit）、ＧＰＵ、ホログラフィ用のプロセッサ等のハードウェアプロセッサを組み合わせたハードウェアプロセッサ１２０Ａを有する。そして、このハードウェアプロセッサ１２０Ａに対し、プログラムメモリ１２０Ｂ、データメモリ１３０、通信インタフェース１４０、および入出力インタフェース１５０を、バス１８０を介して接続したものとなっている。
【００４０】
通信インタフェース１４０は、例えば１つ以上の有線または無線の通信インタフェースユニットを含んでおり、ネットワークＮＷにより規定される通信プロトコルにしたがいサーバ１０との間でデータ伝送を行う。有線インタフェースとしては、例えば有線ＬＡＮが使用され、また無線インタフェースとしては、例えば無線ＬＡＮやＢｌｕｅｔｏｏｔｈ（登録商標）などの小電力無線データ通信規格を採用したインタフェースが使用される。
【００４１】
入出力インタフェース１５０には、ＭＲ端末１００に付設された入力デバイス１６０および出力デバイス１７０が接続される。入出力インタフェース１５０は、例えば、入力デバイス１６０を通じて、ＭＲ端末１００のユーザが入力した操作データや、センサを通じて計測された現実空間を表す３Ｄ情報を取り込むとともに、ハードウェアプロセッサ１２０Ａにより作成された出力データを出力デバイス１７０へ出力する処理を行う。
【００４２】
入力デバイス１６０は、例えば、センサ、タッチパネル、タッチパッド、マイクロフォン、キーボード、マウスである。センサは、例えば、加速度センサ、深度センサ、ジャイロスコープ、磁気センサ、赤外線センサ、カメラなどを含み得る。
【００４３】
出力デバイス１７０は、例えば、ハードウェアプロセッサ１２０Ａにより生成された、メニュー画面、ＧＵＩ、オブジェクトなどを含む複合現実空間を表す画像を表示する、透過型の液晶または有機ＥＬ（Electro Luminescence）ディスプレイである。出力デバイス１７０はまた、ハードウェアプロセッサ１２０Ａにより生成された音声情報を出力するスピーカを含むことができる。
【００４４】
なお、入力デバイス１６０および出力デバイス１７０は、ＭＲ端末１００に内蔵されたデバイスを使用してもよく、スマートフォンなど、ネットワークを介して通信可能な他の情報端末の入力デバイスおよび出力デバイスを使用してもよい。
【００４５】
プログラムメモリ１２０Ｂは、記憶媒体として、例えば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）等の随時書込みおよび読出しが可能な不揮発性メモリと、ＲＯＭ等の不揮発性メモリとを組み合わせて使用したもので、一実施形態に係る各種制御処理を実行するために必要なプログラムが格納されている。
【００４６】
データメモリ１３０は、記憶媒体として、例えば、ＨＤＤまたはＳＳＤ等の随時書込みおよび読出しが可能な不揮発性メモリと、ＲＡＭ（Random Access Memory）等の揮発性メモリとを組み合わせて使用したもので、情報処理の過程で取得および作成された各種データを記憶するために用いられる。
【００４７】
（１−２−２）ソフトウェア構成
図３は、この発明の一実施形態に係るＭＲ端末１００のソフトウェア構成を、図２に示したハードウェア構成と関連付けて示したブロック図である。
データメモリ１３０の記憶領域には、アンカー情報記憶部１３１が設けられている。
【００４８】
アンカー情報記憶部１３１は、複合現実空間に仮想物体を固定するためのアンカー情報を、対応する複合現実空間を識別する情報に紐づけて格納する。なお、アンカー情報記憶部１３１は、必ずしもＭＲ端末１００に内蔵されている必要はなく、ＵＳＢメモリなどの外付け記憶媒体であってもよい。
【００４９】
制御ユニット１２０は、上記ハードウェアプロセッサ１２０Ａと、上記プログラムメモリ１２０Ｂとから構成され、ソフトウェアによる処理機能部として、空間情報取得部２０１と、ルーム確認部２０２と、ルーム作成要求部２０３と、アンカー情報管理部２０４と、アンカー情報アップロード（ＵＬ）部２０５と、アンカー情報ダウンロード（ＤＬ）部２０６と、アンカー情報展開部２０７と、隣接情報要求部２０８と、隣接情報格納処理部２０９と、退出判定部２１０と、出力画像生成部２１１とを備えている。これらの処理機能部は、いずれもプログラムメモリ１２０Ｂに格納されたプログラムを、上記ハードウェアプロセッサ１２０Ａに実行させることにより実現される。制御ユニット２０は、また、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（field-programmable gate array）などの集積回路を含む、他の多様な形式で実現されてもよい。
【００５０】
空間情報取得部２０１は、入出力インタフェース１５０を通じて、深度センサやカメラなどの入力デバイス１６０により計測された、現実空間を表す空間情報としての３Ｄ情報を取得し、ルーム確認部２０２に渡す処理を行う。
【００５１】
ルーム確認部２０２は、取得した３Ｄ情報をサーバ１０に送信し、その３Ｄ情報を表す現実空間に対応する複合現実空間の情報を格納するための「ルーム」がすでに生成されているか否かを問い合わせる処理を行う。
【００５２】
ルーム作成要求部２０３は、送信した３Ｄ情報に対応するルームがないと判定された場合に、サーバ１０に対し、ルームの作成を要求する処理を行う。
【００５３】
アンカー情報管理部２０４は、アンカー情報記憶部１３１内に格納されたアンカー情報を管理する処理を行う。
【００５４】
アンカー情報アップロード（ＵＬ）部２０５は、共有したい空間のルームがサーバ１０に見つからなかった場合に、取得した３Ｄ情報に基づいてアンカー情報を計算し、共有のためにサーバ１０にアップロードする処理を行う。
【００５５】
アンカー情報ダウンロード（ＤＬ）部２０６は、共有したい空間のルームがサーバ１０に見つかった場合に、サーバ１０から当該空間に対応するアンカー情報をダウンロードする処理を行う。
【００５６】
アンカー情報展開部２０７は、認識された複合現実空間にアンカー情報を取り付ける処理を行う。
【００５７】
隣接情報要求部２０８は、現在の空間に対応するルームと隣接関係にある他のルームの情報をサーバ１０に対して要求する処理を行う。
【００５８】
隣接情報格納処理部２０９は、サーバ１０から受信した、現在の空間に対応するルームと隣接関係にある他のルームの情報をアンカー情報記憶部１３１に格納する処理を行う。
【００５９】
退出判定部２１０は、自己位置がルームの対象となっている空間内にあるか否かを判定する処理を行う。退出判定部２１０は、例えば、所定の時間ごとに３Ｄ情報を取得し、サーバ１０に送信して照合を要求することにより、自己位置がルームの対象となっている空間内にあるか否かを判定することができる。
【００６０】
出力画像生成部２１１は、アンカー情報展開部２０７によって複合現実空間に取り付けられたアンカー情報に基づき、構築された複合現実空間を表す情報を含む出力データを生成して、出力デバイス１７０に渡す処理を行う。例えば、出力画像生成部２１１は、アンカー情報をもとに算出された座標に基づいて仮想物体が適切な位置および向きに配置された複合現実空間を表す画像データを生成し、出力デバイス１７０としてのディスプレイに表示させる。３Ｄ情報に基づく空間メッシュの生成、アンカー情報の計算、展開、画像データの生成など、複合現実空間を構築する詳細な処理は、一般的に知られている技術を使用できるので、ここでは詳細には説明しない（例えば、上記非特許文献１参照）。
【００６１】
（１−３）サーバ
（１−３−１）ハードウェア構成
図４は、この発明の一実施形態に係るサーバ装置としてのサーバ１０のハードウェア構成の一例を示すブロック図である。
【００６２】
サーバ１０は、例えば、ＣＰＵ等のハードウェアプロセッサ２０Ａを有する。そして、このハードウェアプロセッサ２０Ａに対し、プログラムメモリ２０Ｂ、データメモリ３０、通信インタフェース１１を、バス５０を介して接続したものとなっている。
【００６３】
通信インタフェース１１は、例えば１つ以上の有線または無線の通信インタフェースユニットを含み、ネットワークＮＷにより規定される通信プロトコルにしたがいＭＲ端末１００との間でデータ伝送を行う。有線インタフェースとしては、例えば有線ＬＡＮが使用され、また無線インタフェースとしては、例えば無線ＬＡＮやＢｌｕｅｔｏｏｔｈなどの小電力無線データ通信規格を採用したインタフェースが使用される。
【００６４】
プログラムメモリ２０Ｂは、記憶媒体として、例えば、ＨＤＤやＳＳＤ等の随時書込みおよび読出しが可能な不揮発性メモリと、ＲＯＭ等の不揮発性メモリとを組み合わせて使用したもので、一実施形態に係る各種制御処理を実行するために必要なプログラムが格納されている。
【００６５】
データメモリ３０は、記憶媒体として、例えば、ＨＤＤまたはＳＳＤ等の随時書込みおよび読出しが可能な不揮発性メモリと、ＲＡＭ等の揮発性メモリとを組み合わせて使用したもので、情報処理の過程で取得および作成された各種データを記憶するために用いられる。
【００６６】
（１−３−２）ソフトウェア構成
図５は、この発明の一実施形態に係るサーバ１０のソフトウェア構成を、図４に示したハードウェア構成と関連付けて示したブロック図である。
データメモリ３０の記憶領域には、ルーム情報記憶部３１が設けられている。
【００６７】
ルーム情報記憶部３１は、ＭＲ端末１００から受信した３Ｄ情報およびアンカー情報を、対応する複合現実空間ごとに「ルーム」として格納する。ルーム情報記憶部３１はまた、各ルームについて、隣接関係にあるルームを識別する隣接空間情報を格納することができる。ルーム情報記憶部３１は、これらの３Ｄ情報、アンカー情報、および隣接空間情報を、各ルームを識別する情報に紐づけて格納することができる。なお、ルーム情報記憶部３１は、外付け記憶媒体や、クラウドに配置されたデータベースサーバ等の記憶装置として設けられたものであってもよい。
【００６８】
制御ユニット２０は、上記ハードウェアプロセッサ２０Ａと、上記プログラムメモリ２０Ｂとから構成され、ソフトウェアによる処理機能部として、ルーム管理部２１と、ルーム作成部２２と、端末状態参照部２３と、端末状態管理部２４と、端末状態更新部２５と、アンカー情報共有部２６と、隣接関係設定部２７と、送信制御部２８とを備えている。これらの処理機能部は、いずれもプログラムメモリ２０Ｂに格納されたプログラムを、上記ハードウェアプロセッサ２０Ａに実行させることにより実現される。制御ユニット２０は、また、ＡＳＩＣやＦＰＧＡなどの集積回路を含む、他の多様な形式で実現されてもよい。
【００６９】
ルーム管理部２１は、複合空間管理部として機能し、ＭＲ端末１００から受信した３Ｄ情報をもとに、ルーム情報記憶部３１に格納された情報を照合することにより、対応するルームがあるか否かを判定し、その判定結果をＭＲ端末１００に返す処理を行う。また、ルーム管理部２１は、ＭＲ端末１００がどのルームに入っているかを示す情報を、例えばＭＲ端末１００から３Ｄ情報を受信するたびに、端末状態管理部２４に渡す処理を行う。
【００７０】
ルーム作成部２２は、ＭＲ端末１００からルーム作成要求を受信した場合に、その要求に応じてルームを作成する処理を行う。
【００７１】
端末状態参照部２３は、ルーム情報記憶部３１に格納された情報を検索し、ＭＲ端末１００が直前までどのルームに入っていたかを確認する処理を行う。端末状態参照部２３は、例えば、ＭＲ端末１００からルーム作成要求または３Ｄ情報を受信するたびに、送信元のＭＲ端末１００がルームを移動した可能性があるものとして、ＭＲ端末１００が直前までどのルームに入っていたかを確認する処理を行う。
【００７２】
端末状態管理部２４は、ＭＲ端末１００が現在どのルームに入っているかを示す情報を受け取り、ルーム情報記憶部３１に格納された情報を管理する処理を行う。
【００７３】
端末状態更新部２５は、ＭＲ端末１００が移動したと判定されたときに、ルーム情報記憶部３１にアクセスし、当該ＭＲ端末１００が入っているルームを変更する処理を行う。なお、端末状態更新部２５は、端末状態管理部２４と連携して情報の管理および更新を行うようにしてもよい。
【００７４】
アンカー情報共有部２６は、ＭＲ端末１００から受信したアンカー情報を複数のＭＲ端末間で共有できるよう、対応するルームに紐づけてルーム情報記憶部３１に格納する処理を行う。
【００７５】
隣接関係設定部２７は、ＭＲ端末１００が新たなルームに移動したと判定され、かつ当該ＭＲ端末１００がその直前まで別のルームに入っていたとの記録がある場合に、上記新たなルームと別のルームとの間に隣接関係があるものと推定し、ルーム情報記憶部３１に格納された情報に推定された隣接関係を設定する処理を行う。
【００７６】
送信制御部２８は、ＭＲ端末１００からの要求に応じて、種々の情報、例えば、ルームを識別する情報、現実空間を識別する情報、指示された空間のアンカー情報、および隣接する空間のアンカー情報などを送信する処理を行う。
【００７７】
（２）動作
（２−１）システムの動作の概要
はじめに、システム全体の動作として、複数の複合現実空間を高速に共有するための動作の概要と、この複合現実空間の高速共有のために必要なルーム間の隣接関係を設定するための動作の概要について説明する。
（２−１−１）複合現実空間の共有
図６および図７は、それぞれ、この発明の一実施形態に係る複合現実空間を共有するためのシステム全体の動作の例を示す。
【００７８】
図６では、現実空間としての４つの部屋ａ，ｂ，ｃ，ｄに対し、それぞれルームＡ，Ｂ，Ｃ，Ｄがサーバ１０に作成されている。これらのルームＡ，Ｂ，Ｃ，Ｄは、例えば、上記ルーム情報記憶部３１に保存される。図６に示されるように、各ルームが持つ情報は、対応する部屋（現実空間）の形状の３Ｄ情報、当該ルームに入っているＭＲ端末１００の識別情報、アンカー情報、および各ルーム間の隣接関係である。また、ＭＲ端末１００が持つ情報は、現在自分がいる空間の３Ｄ情報、アンカー情報、隣接するルームのアンカー情報である。
【００７９】
まず図６において、部屋ｂにいるユーザがＭＲ端末１００−２（以下、ＭＲ端末＃２）を起動し、サーバ１０に接続した場合、ＭＲ端末＃２は、部屋ｂに紐づけられたルームがサーバ１０上に存在するか否かを確認するために、部屋ｂの形状に関する３Ｄ情報をサーバ１０へ送信する（矢印Ｃ１）。
【００８０】
サーバ１０は、ＭＲ端末＃２から受信した３Ｄ情報と自身が保持している３Ｄ情報との照合を行い、形状の類似度が所定の閾値以上の中で最も大きい３Ｄ情報を持つルーム（すなわち、一定の基準を上回る、最も類似するルーム）を探し、その結果をＭＲ端末＃２へ返す。図６では、サーバ１０はＭＲ端末＃２がいる部屋に該当するルーム（ルームＢ）があると判断し、その結果をＭＲ端末＃２へ返す。また、サーバ１０は、ＭＲ端末＃２がルームＢにいると判断し、ルームＢにＭＲ端末＃２を入れる。
【００８１】
ここで、ＭＲ端末＃２がルームＢに入った場合、ＭＲ端末＃２は、サーバ１０に対し、ルームＢのアンカー情報（Ｂ）だけではなく、ルームＢと隣接するルーム（ルームＡ，ルームＣ）のアンカー情報（Ａ，Ｃ）も問合せ、取得する（矢印Ｃ２）。
【００８２】
その後、図７に示したように、部屋ｂにいたＭＲ端末＃２が、部屋ｂから部屋ａへ移動した場合、ＭＲ端末＃２は、自身が部屋ｂの外に出たことを、部屋ｂの３Ｄ情報をもとに検知する。そして、現在いる空間について確認するために、ＭＲ端末＃２は、現在いる空間（部屋ａ）の３Ｄ情報をサーバ１０へ送信する（矢印Ｃ３）。その後、サーバ１０からこの３Ｄ情報に対応するルームＡが存在するというメッセージが返ってきた場合、ＭＲ端末＃２は、ルームＡのアンカー情報（Ａ）をすでに所持しているため、すぐに部屋Ａにいる他のＭＲ端末１００−１（ＭＲ端末＃１）と複合現実空間の共有を開始することができる。
【００８３】
なお、上記の動作例は、屋内や同一の現実空間内に限られるものではなく、屋外での複合現実空間の共有や、異なる現実空間で同じ仮想情報を共有する場合にも適用可能である。屋外への適用例としては、街を歩きながら、仮想化された広告を複数人で共有することなどが挙げられる。異なる現実空間の間での共有への適用例としては、学校の教室間で同じコンテンツを生徒に見せることなどが挙げられる。
（２−１−２）ルーム間の隣接関係の設定
図８〜図１０は、それぞれ、この発明の一実施形態に係るルームの隣接関係を設定するためのシステム全体の動作の例を示す。
【００８４】
図８において、ユーザが部屋ａでＭＲ端末１００−１（ＭＲ端末＃１）を起動した場合、ＭＲ端末＃１は、上記と同様にまず部屋ａに紐づけられたルームがサーバ１０上に存在するか否かを確認するため、部屋ａの３Ｄ情報を取得し、サーバ１０に送信する（矢印Ｃ４）。当該ルームがない場合、ＭＲ端末＃１は、ルームの作成要求および自身が計算したアンカー情報をサーバ１０に送信する（矢印Ｃ５）。これらを受信したサーバ１０は、当該ルーム（図８ではルームＡ）を作成し、受信した３Ｄ情報とアンカー情報（Ａ）を紐づける。また、サーバ１０は、ルームＡ内にＭＲ端末＃１がいると判断し、ルームＡとＭＲ端末＃１を紐づける。
【００８５】
その後、図９において、ＭＲ端末＃１が部屋ａから部屋ｂへ移動した場合、ＭＲ端末＃１は、上記と同様の手順で部屋ｂの３Ｄ情報をサーバ１０に対して送信する（矢印Ｃ６）。また上記と同様に、部屋ｂに対応するルームがない場合、ＭＲ端末＃１は、サーバ１０に対してルーム作成要求を送信し（矢印Ｃ７）、また計算したアンカー情報の送信を行い（矢印Ｃ７）、サーバ１０はこれに応じてルームＢを作成する。ここでサーバ１０は、ＭＲ端末＃１が直前に入っていたルームＡと新たに作成したルームＢが空間的に隣接しているものと判断し、ルームＡとルームＢの間に隣接関係を設定する。すなわち、ルームＡに紐づけられた「隣接」情報として「ルームＢ」を追加し、ルームＢに紐づけられた「隣接」情報として「ルームＡ」を追加する。
【００８６】
さらに同様の手順で、図１０に示したように、ルームＣ，ルームＤが作成され、それぞれに隣接関係が設定されたとする。ここで、図１０に示したように、ＭＲ端末＃１が部屋ｄからｃへ移動して部屋ｃのルームが存在するか否かを確認した場合（すなわち部屋ｃの３Ｄ情報をサーバ１０に送信した場合）（矢印Ｃ８）、サーバ１０は、ＭＲ端末＃１がいる部屋に該当するルーム（ルームＣ）があると判断し、その結果をＭＲ端末＃１に返す。またこれと同時に、ＭＲ端末＃１が直前までいたルームＤとルームＣが空間的に隣接しているものと判断し、隣接関係を設定する。
【００８７】
上記により、隣接ルームのアンカー情報の事前取得に必要なルーム間の隣接関係の情報を構築することができる。
【００８８】
このように、この発明の一実施形態に係る情報処理システムでは、ＭＲ端末１００が自身の入っているルームのアンカー情報だけでなく、隣接するルームのアンカー情報も取得できるようにしている。さらに、ＭＲ端末１００が現在どのルームに該当する空間にいるかを確認可能にするとともに、サーバ１０においてルーム間に隣接関係を設定できるようにしている。
【００８９】
（２−１−３）ルームの確認および隣接関係設定処理の流れ
続いて、ルームの確認および作成ならびにルーム間に隣接関係を設定するシステム全体の処理の流れについて説明する。図１１は、そのような処理の一例を示す図である。
【００９０】
クライアントとしてのＭＲ端末１００は、起動されると、まずサーバ１０に接続する。サーバ１０に接続したＭＲ端末１００は、はじめに、判定ブロックＤ１において、自身がいずれかのルームに入っているか否かを確認する。例えば、ＭＲ端末１００は、アンカー情報記憶部１３１に格納された情報（例えば、最後に確認されたルームの情報）を読み出すことによって、いずれかのルームに入っているとの記録があるか否かを確認する。
【００９１】
まだどのルームにも入っていないと判定された場合（Ｄ１−ＹＥＳ）、ＭＲ端末１００は、ルーム確認部２０２において、自身が今いる現実空間の３Ｄ情報を取得してサーバ１０に送信し、その空間のルームが既にあるか否かの確認を行う（Ｓ１）。一方、あるルーム（例えばルームＢ）に入っていると判定された場合（Ｄ１−ＮＯ）、退出判定部２１０の制御の下、例えば所定の時間間隔で定期的に、自身がもつ３Ｄ情報のどこに自己位置があるかを確認する（Ｓ２）。
【００９２】
判定ブロックＤ２において、ルームＢの対象となっている空間の外に自己位置があると判定された場合（Ｄ２−ＹＥＳ）、当該ルームを出たと判断し、ルーム確認部２０２において、３Ｄ情報をサーバ１０に送信することにより、現在いる空間に該当するルームがあるか否かの確認を行う（Ｓ１）。ルームＢの対象となっている空間内に自己位置があると判定された場合（Ｄ２−ＮＯ）、引き続き、退出判定部２１０の制御の下、所定の時間間隔で、対象空間内にいるか否かの判定を行う。
【００９３】
ルーム確認部２０２により３Ｄ情報をサーバ１０に送信した（Ｓ１）後、サーバ１０から受け取った応答（Ｓ３）が、その３Ｄ情報に対応するルームがないことを示す場合（Ｄ３−ＮＯ）、ルーム作成要求部２０３は、サーバ１０に対してルームの作成を要求する（Ｓ４）。ルームがあることを示す場合（Ｄ３−ＹＥＳ）、アンカー情報を共有するための処理に移行する。
【００９４】
一方、サーバ１０は、ＭＲ端末１００から３Ｄ情報を受信した場合（Ｓ１）、ルーム管理部２１において、受信した３Ｄ情報と自身が保持している３Ｄ情報との照合を行い、形状の類似度が閾値以上の中で最も大きい３Ｄ情報を持つルームを探す。当該ルームがある場合、サーバ１０は、その結果をＭＲ端末１００へ返し（Ｓ３）、受信した３Ｄ情報とそのルームを紐づける。当該ルームがなかった場合、サーバ１０がその結果をＭＲ端末１００へ返す（Ｓ３）と、ＭＲ端末１００のルーム作成要求部２０３からルーム作成要求を受信する（Ｓ４）。
【００９５】
ルーム作成要求を受信したサーバ１０は、ルーム作成部２２により新たなルームを作成し、受信した３Ｄ情報に紐づけて、ルーム情報記憶部３１に保存する。またサーバ１０は、ＭＲ端末１００からアンカー情報を受信したら、作成したルームにこのアンカー情報をさらに紐づけて保存する。
【００９６】
次いで、ルーム作成部２２は、作成したルームに関する情報をＭＲ端末１００に返す（Ｓ５）とともに、端末状態参照部２３に対してルームを作成した旨を通知する（Ｓ６）。そして、端末状態参照部２３において、隣接関係を推定するため、ルーム管理部２１から情報を取得し（Ｓ７）、またはルーム情報記憶部３１に格納された情報を読み出して、判定ブロックＤ４に移行する（Ｓ８）。そして、判定ブロックＤ４において、サーバ１０は、３Ｄ情報またはルーム作成要求を送信したＭＲ端末１００がその直前までいずれかのルームにいた記録があるか否かを判定する。別のルーム（例えばルームＡ）にいた記録がある場合（Ｄ４−ＹＥＳ）、隣接関係設定部２７において、現在入っているルーム（ルームＢ）とルームＡとの間に隣接関係を設定し、また端末状態更新部２５において、当該ＭＲ端末１００が入っているルームをＡからＢに更新する。判定ブロックＤ４において別のルームにいた記録がなければ処理を終了する。
【００９７】
（２−１−４）複合現実空間の共有処理の流れ
続いて、複合現実空間を共有するシステム全体の処理の流れについて説明する。図１２は、そのような処理の一例を示す図である。
【００９８】
クライアントとしてのＭＲ端末１００が起動され、サーバ１０に接続されると、ＭＲ端末１００は、ルーム確認部２０２において、共有したい空間のルームが既にあるか否かの確認を行うために、取得した３Ｄ情報をサーバ１０へ送信する（Ｓ１１）。サーバ１０から応答を受信（Ｓ１２）したＭＲ端末１００は、該当するルームがサーバ内にない場合（Ｄ１１−ＮＯ）、ルーム作成要求部２０３においてサーバ１０に対してサーバ１０上へのルームの作成を要求する（Ｓ１３）。その後、サーバ１０から作成されたルームの情報を受信すると（Ｓ１４）、ＭＲ端末１００は、アンカー情報アップロード（ＵＬ）部２０５において、自端末上で計算したアンカー情報をルームへアップロードする（Ｓ１５）。
【００９９】
一方、当該ルームがサーバ内で見つかった場合（Ｄ１１−ＹＥＳ）、アンカー情報管理部２０４において、当該ルームのアンカー情報が自端末上（例えばアンカー情報記憶部１３１上）に保存されているか否かを確認するために判定ブロックＤ１２へ移行する（Ｓ１６）。
【０１００】
アンカー情報が自端末上に保存されている場合（Ｄ１２−ＹＥＳ）、当該アンカー情報を読み出し、アンカー情報展開部２０７に渡す。アンカー情報が保存されてない場合（Ｄ１２−ＮＯ）、アンカー情報ダウンロード（ＤＬ）部２０６において、サーバ１０へ当該ルームのアンカー情報を要求し（Ｓ１７）、アンカー情報をダウンロードして（Ｓ１８）、アンカー情報展開部２０７に渡す（Ｓ１９）。
【０１０１】
その後、アンカー情報展開部２０７において、自身が認識している複合現実空間に、読み出したまたはダウンロードしたアンカー情報を取り付ける。これにより、同じルームに入ったＭＲ端末１００は同じアンカー情報を取得でき、結果として同じ複合現実空間を見ることができる。また一度取得したアンカー情報はローカルに保存できるため、２回目以降に対象の複合現実空間を訪れる場合、アンカー情報のダウンロードなしに複合現実空間を共有できる。
【０１０２】
ここでさらに、ＭＲ端末１００は、自端末上に他のアンカー情報を格納できるだけのストレージが空いているかを判定するために判定ブロックＤ１３へ移行する（Ｓ２０）。判定ブロックＤ１３において、ストレージに空きがあると判定された場合には（Ｄ１３−ＹＥＳ）、隣接情報要求部２０８において、サーバ１０に対し、隣接ルームの情報およびそのルームに紐づけられているアンカー情報を要求し（Ｓ２１）、サーバ１０からダウンロードし（Ｓ２２）、隣接情報格納処理部２０９において、自端末上に保存する。その後任意で、再び判定ブロックＤ１３に戻り（Ｓ２３）、まだストレージに空きがあれば、さらに他の隣接ルームの情報およびアンカー情報を要求するようにしてもよい。なお、判定ブロックＤ１３においてストレージに空きがなければ処理を終了する。
【０１０３】
続いて、サーバ１０側のフローを説明する。サーバ１０は、ＭＲ端末１００から３Ｄ情報を含む確認メッセージを受信した場合（Ｓ１１）、ルーム管理部２１において、当該ルームの有無を確認し、ＭＲ端末１００へ返信する（Ｓ１２）。ここで、当該ルームが存在する場合、サーバ１０は、ルーム管理部２１から端末状態管理部２４に対し、ＭＲ端末１００がどのルームにいるかの最新の情報を送り（Ｓ２４）、端末状態管理部２４は、ルーム情報記憶部３１にこの情報を追加する。当該ルームが存在しない場合、ＭＲ端末からルーム作成要求を受信するため（Ｓ１３）、ルーム作成部２２において、要求されたルームを作成し、ＭＲ端末１００に作成したルームの情報を送信する（Ｓ１４）。
【０１０４】
サーバ１０は、ＭＲ端末１００からアンカー情報を受信すると（Ｓ１５）、アンカー情報共有部２６において、受信したアンカー情報を、作成したルームに紐づけて保存する。その後、サーバ１０は、同じルームに入っている別のＭＲ端末１００（例えばＭＲ端末＃２）からアンカー情報の要求を受信した場合、アンカー情報を当該ＭＲ端末＃２へ送信することができる。
【０１０５】
なお、上述のように、隣接関係設定部２７は、端末状態管理部２４からの情報（Ｓ２５）またはルーム作成部２２からの情報（Ｓ２６）をもとに、ＭＲ端末１００がルームを移動したと判定された場合に、その直前まで別のルームに入っていたとの記録があるか否かを確認し、別のルームに入っていたとの記録がある場合にはその記録をもとにルーム間の隣接関係を設定する。
【０１０６】
サーバ１０は、ＭＲ端末１００から隣接ルームに関する情報の要求を受信すると（Ｓ２１）、アンカー情報が共有されていない隣接ルームがあるか否かを判定し（Ｄ１４）、ある場合には（Ｄ１４−ＹＥＳ）、送信制御部２８において、隣接するルームの情報とそのルームに紐づけられたアンカー情報をＭＲ端末１００へ送信する（Ｓ２２）。判定ブロックＤ１４においてアンカー情報が共有されていない隣接ルームがない場合、処理を終了する。このとき、隣接ルームがないことを示すメッセージを生成して、サーバ１０からＭＲ端末１００へ応答するようにしてもよい。
【０１０７】
（２−２）情報処理端末の動作
次に、以上のように構成された情報処理端末としてのＭＲ端末１００による情報処理動作についてさらに説明する。図１３は、その処理手順と処理内容を示すフローチャートである。
【０１０８】
まず、ＭＲ端末１００が起動されると、ステップＳ１１において、ＭＲ端末１００は、制御ユニット１２０の制御の下、サーバ１０への接続を確立する処理を行う。
【０１０９】
次いで、ステップＳ１２において、ＭＲ端末１００は、制御ユニット１２０の制御の下、自端末がすでにルームに入っているか否かを判定する。まだルームに入っていないと判定された場合（ＮＯ）、現在いる部屋がどのルームに対応するかを確認するために、ステップＳ１５のルーム確認処理に移行する。他方、すでにルームに入っていると判定された場合（ＹＥＳ）、ステップＳ１３に移行する。
【０１１０】
ステップＳ１３において、ＭＲ端末１００は、制御ユニット１２０の制御の下、退出判定部２１０により、自身がもつ３Ｄ情報のどこに自己位置があるかを確認する。
【０１１１】
そして、ステップＳ１４において、ＭＲ端末１００は、退出判定部２１０によりルームの対象空間外にいるか否かを判定し、対象空間内にいると判定された場合（ＮＯ）、引き続き、例えば所定の時間間隔で、退出したか否かを確認する処理を行う。一方、対象空間外にいると判定された場合（ＹＥＳ）、現在いる部屋がどのルームに対応するかを確認するために、ステップＳ１５のルーム確認処理に移行する。
【０１１２】
ステップＳ１５において、ＭＲ端末１００は、制御ユニット１２０の制御の下、ルーム確認処理を行う。図１４は、ステップＳ１５のルーム確認処理の一例を示すフローチャートである。
【０１１３】
ステップＳ１５０１において、ＭＲ端末１００は、制御ユニット１２０の制御の下、空間情報取得部２０１により、今いる現実空間を表す空間情報としての３Ｄ情報を取得する。３Ｄ情報は、例えば、空間の形状情報を含むことができる。
【０１１４】
ステップＳ１５０２において、ＭＲ端末１００は、制御ユニット１２０の制御の下、ルーム確認部２０２により、取得した３Ｄ情報をサーバ１０に送信する。
【０１１５】
ステップＳ１５０３において、ＭＲ端末１００は、サーバ１０からルームの有無に関する回答を受信する。この回答は、例えば、ルームがある場合には当該ルームを識別する情報（ルームＩＤ）を含む。
【０１１６】
ステップＳ１５０４において、ＭＲ端末１００は、ルーム確認部２０２により、サーバ１０から受信した回答が、送信した３Ｄ情報に対応するルームがサーバ１０上にあることを示すか否かを判定する。ルームがあると判定された場合（ＹＥＳ）、ステップＳ１５０５に移行する。
【０１１７】
次いでステップＳ１５０５において、ＭＲ端末１００は、制御ユニット１２０の制御の下、アンカー情報管理部２０４により、必要なアンカー情報が自端末に保存されているか否かを判定する。例えば、アンカー情報管理部２０４は、サーバ１０から受信した応答に含まれていたルームＩＤをもとに、当該ルームに対応するアンカー情報がアンカー情報記憶部１３１に格納されているか否かを判定する。アンカー情報が保存されている場合（ＹＥＳ）、ステップＳ１５０８に移行する。他方、アンカー情報が保存されていない場合（ＮＯ）、必要なアンカー情報を取得するためにステップＳ１５０６に移行する。
【０１１８】
ステップＳ１５０６において、ＭＲ端末１００は、制御ユニット１２０の制御の下、アンカー情報ＤＬ部２０６により、上記ルームＩＤに対応するアンカー情報をサーバ１０に要求する。
【０１１９】
ステップＳ１５０７において、ＭＲ端末１００は、サーバ１０からアンカー情報を取得（ダウンロード）する。
【０１２０】
一方、ステップＳ１５０４においてルームがないと判定された場合（ＮＯ）、ステップＳ１５０９に移行する。
【０１２１】
ステップＳ１５０９において、ＭＲ端末１００は、制御ユニット１２０の制御の下、ルーム作成要求部２０３により、ルーム作成要求をサーバ１０に送信する。これに対し、サーバ１０から、例えば、新たに作成されたルームを識別するルームＩＤが、ＭＲ端末１００に対して送信される。
【０１２２】
ステップＳ１５１０において、ＭＲ端末１００は、制御ユニット１２０の制御の下、アンカー情報を計算し、アンカー情報記憶部１３１に格納する。計算したアンカー情報は、受信した新たに作成されたルームのルームＩＤがあれば、それに紐づけて格納されてもよい。あるいは、計算したアンカー情報は、取得した３Ｄ情報に紐づけて格納されてもよい。
【０１２３】
ステップＳ１５１１において、ＭＲ端末１００は、制御ユニット１２０の制御の下、アンカー情報ＵＬ部２０５により、計算したアンカー情報をサーバ１０にアップロードする。
【０１２４】
ステップＳ１５０７においてアンカー情報をサーバ１０からダウンロードした後、またはステップＳ１５１０においてアンカー情報を計算した後（もしくはさらにステップＳ１５１１において計算したアンカー情報をサーバ１０にアップロードした後）、ＭＲ端末１００は、ステップＳ１５０８に移行する。
【０１２５】
そして、ステップＳ１５０８において、ＭＲ端末１００は、制御ユニット１２０の制御の下、アンカー情報展開部２０７により、取得したアンカー情報を複合現実空間に取り付ける処理を行う。この後、アンカー情報展開部２０７が処理後のデータを出力画像生成部２１１に渡すことによって、出力画像生成部２１１は、例えば、任意のタイミングで、複合現実空間を表す画像などの出力データを生成し、出力デバイス１７０に出力させることができる。
【０１２６】
以上のように、現在いるルームを確認し、必要なアンカー情報を取得した後、ＭＲ端末１００は、図１３のステップＳ１６に移行する。ステップＳ１６において、ＭＲ端末１００は、制御ユニット１２０の制御の下、隣接ルーム情報取得処理を行う。図１５は、図１３に示したステップＳ１６の隣接ルーム情報取得処理の一例を示すフローチャートである。
【０１２７】
ステップＳ１６０１において、ＭＲ端末１００は、制御ユニット１２０の制御の下、他のアンカー情報を格納できるストレージが空いているか否かを判定する。ストレージ（例えばアンカー情報記憶部１３１）に空きがないと判定された場合（ＮＯ）、処理は終了する。ストレージに空きがあると判定された場合（ＹＥＳ）、ステップＳ１６０２に移行する。
【０１２８】
ステップＳ１６０２において、ＭＲ端末１００は、制御ユニット１２０の制御の下、隣接情報要求部２０８により、現在入っているルームと隣接関係にある隣接ルームの情報（例えばルームＩＤ）およびその隣接ルームのアンカー情報を要求する。このとき、ストレージの空きに応じて、１つの隣接ルームおよびそのアンカー情報を要求するようにしてもよいし、複数の隣接ルームがある場合には複数の隣接ルームおよび各々のアンカー情報を要求するようにしてもよい。
【０１２９】
ステップＳ１６０３において、ＭＲ端末１００は、制御ユニット１２０の制御の下、要求した隣接ルームの情報およびその隣接ルームのアンカー情報を取得し、隣接情報格納処理部２０９の制御の下、アンカー情報記憶部１３１に保存する。アンカー情報記憶部１３１は、例えば、ルームＩＤとアンカー情報を紐づけて記憶することができる。アンカー情報記憶部１３１は、さらに、取得された空間情報のすべてまたは一部をルームＩＤに紐づけて記憶するようにしてもよい。
【０１３０】
なお、図１３〜１５に示した各処理は、図示した順序に限定されるものではなく、同じ効果が達成されるのであれば、順序を入れ替えて、または複数の処理を同時並行して実施するようにしてもよい。また処理のいくつかを省略し、または類似の処理に置換してもよい。あるいは、１つのステップで示した処理を複数のステップで実施してもよいし、複数のステップで示した処理を１つのステップで実施するようにしてもよい。
【０１３１】
（２−３）サーバの動作
次に、以上のように構成されたサーバ１０による情報処理動作について説明する。図１６は、その処理手順と処理内容の一例を示すフローチャートである。サーバ１０は、あらかじめＭＲ端末１００との接続を確立しているものとする。
【０１３２】
まず、サーバ１０は、ステップＳ１０１において、制御ユニット２０の制御の下、ＭＲ端末１００からの３Ｄ情報の受信を監視している。この状態で、ＭＲ端末１００から３Ｄ情報を受信すると（ＹＥＳ）、ステップＳ１０２に移行する。
【０１３３】
次いでステップＳ１０２において、サーバ１０は、制御ユニット２０の制御の下、ルーム管理部２１により、ＭＲ端末１００から受信した３Ｄ情報に対応するルームがルーム情報記憶部３１内にあるか否かの判定を行う。上述したように、ルーム管理部２１は、例えば、３Ｄ情報の照合を行って、形状の類似度が一定レベル以上の中で最も大きいルームを探す。ルームがあると判定された場合（ＹＥＳ）、ステップＳ１０３に移行する。
【０１３４】
ステップＳ１０３において、サーバ１０は、制御ユニット２０の制御の下、ＭＲ端末１００に対して判定結果を返す処理を行う。例えば、サーバ１０は、ルームを識別する情報（例えばルームＩＤ）を含むメッセージを生成してＭＲ端末１００に送信する。
【０１３５】
次いでステップＳ１０４において、サーバ１０は、制御ユニット２０の制御の下、当該ルームと３Ｄ情報の送信元であるＭＲ端末１００とを紐づける処理を行う。
【０１３６】
ステップＳ１０５において、サーバ１０は、制御ユニット２０の制御の下、ＭＲ端末１００からアンカー情報の要求を受信したか否かを判定する。上述したように、ＭＲ端末１００は、サーバ１０により送信されたメッセージに含まれるルームＩＤに基づいて、自端末上に当該ルームＩＤに対応するアンカー情報を保存しているかを判定し、保存していない場合にはサーバ１０に対してアンカー情報を要求する。サーバ１０は、ＭＲ端末１００からアンカー情報を要求するメッセージを受信した場合（ＹＥＳ）、ステップＳ１０６に移行し、受信しなかった場合（ＮＯ）、隣接関係設定処理のためにステップＳ１０７に移行する。一実施形態では、サーバ１０は、ＭＲ端末１００に対してルームの有無の判定結果を返してから一定時間待機し、その時間内に要求を受信しなかった場合に、ステップＳ１０７に移行するように構成される（判定ステップＳ１０５においてＮＯに進む）。
【０１３７】
ステップＳ１０６において、サーバ１０は、制御ユニット２０の制御の下、アンカー情報共有部２６により、ＭＲ端末１００から要求されたアンカー情報を、ルームＩＤをもとにルーム情報記憶部３１から読み出し、要求元のＭＲ端末１００に送信した後、隣接関係設定処理のためにステップＳ１０７に移行する。
【０１３８】
ここで、ステップＳ１０２において、ルーム管理部２１によりルームがないと判定された場合（ＮＯ）、ステップＳ１０８に移行する。
【０１３９】
ステップＳ１０８において、サーバ１０は、制御ユニット２０の制御の下、ＭＲ端末１００に対して判定結果を返す処理を行う。例えば、サーバ１０は、該当ルームがなかったことを示すメッセージを生成してＭＲ端末１００に送信する。
【０１４０】
次いでステップＳ１０９において、サーバ１０は、制御ユニット２０の制御の下、ＭＲ端末１００からルーム作成要求の受信を監視し、ルーム作成要求が受信されたら（ＹＥＳ）、ステップＳ１１０に移行する。ステップＳ１０９において一定時間経過してもルーム作成要求が受信されなかった場合、サーバ１０は、再度ＭＲ端末１００に対して判定結果を返す処理を行うようにしてもよいし、処理を終了するようにしてもよい。
【０１４１】
ＭＲ端末１００からのルーム作成要求を受信したサーバ１０は、ステップＳ１１０において、制御ユニット２０の制御の下、ルーム作成部２２により、新たなルームを作成する処理を行う。なお、このときサーバ１０は、ステップＳ１０１で受信した３Ｄ情報を、新たに作成したルームに紐づけて、ルーム情報記憶部３１に保存する。
【０１４２】
次いでステップＳ１１１において、サーバ１０は、制御ユニット２０の制御の下、ＭＲ端末１００からのアンカー情報の受信を監視する。アンカー情報を受信したら（ＹＥＳ）、ステップＳ１１２に移行する。ステップＳ１１１において一定時間経過してもアンカー情報が受信されなかった場合、サーバ１０は、ＭＲ端末１００に対してアンカー情報のアップロードを要求するようにしてもよいし、処理を終了するようにしてもよい。
【０１４３】
次いでステップＳ１１２において、サーバ１０は、制御ユニット２０の制御の下、アンカー情報共有部２６により、受信したアンカー情報を新たに作成したルームに紐づけてルーム情報記憶部３１に保存する。その後、サーバ１０は、隣接関係設定処理のためにステップＳ１０７に移行する。
【０１４４】
ステップＳ１０７において、サーバ１０は、制御ユニット２０の制御の下、隣接関係設定処理を行う。図１７は、図１６に示したステップＳ１０７の隣接関係設定処理の一例を示すフローチャートである。
【０１４５】
まずステップＳ７０１において、サーバ１０は、制御ユニット２０の制御の下、端末状態参照部２３により、ルーム情報記憶部３１内に３Ｄ情報の送信元であるＭＲ端末１００が直前まで別のルームにいた記録があるか否かを確認する。別のルームにいた記録があれば（ＹＥＳ）、ステップＳ７０２に移行し、別のルームにいた記録がなければ（ＮＯ）、ステップＳ７０２をスキップしてステップＳ７０３に移行する。
【０１４６】
ステップＳ７０２において、サーバ１０は、制御ユニット２０の制御の下、隣接関係設定部２７により、受信した３Ｄ情報に対応するルームと、記録されていた上記別のルームとが隣接しているものと推定し、それぞれのルームについてルーム情報記憶部３１に格納された情報に隣接関係を設定する。
【０１４７】
次いでステップＳ７０３において、サーバ１０は、制御ユニット２０の制御の下、端末状態更新部２５により、ＭＲ端末１００が入っているルームを、受信した最新の３Ｄ情報に対応するルームへと変更する。
【０１４８】
（３）検証
上記実施形態に係る情報処理システム１において、隣接するルームのアンカー情報を事前にダウンロードする処理の有効性を確認するために、以下の環境をＨｏｌｏＬｅｎｓ内で摸擬してシミュレーション実験を行った。
【０１４９】
なお、サーバプログラムはノートＰＣ（メモリ：１６ＧＢ、ＣＰＵ：Ｉｎｔｅｌ（登録商標）Ｃｏｒｅ  ｉ７，２．８ＧＨｚ、ＯＳ：Ｗｉｎｄｏｗｓ（登録商標）１０，６４ｂｉｔ）上で動作しており、ＨｏｌｏＬｅｎｓとノートＰＣはＷｉ−Ｆｉで接続されている。また、ＨｏｌｏＬｅｎｓとノートＰＣ間の通信はＵＤＰで行った。
（条件１）サーバ１０上には８１個のルームが作成されており、そのそれぞれにアンカー情報がアップロードされているものとする。
（条件２）ＭＲ端末１００は、あるルームの複合現実空間外に出たこと、および別のルームに入ったことを認識できるものとする。
（条件３）ルーム間の隣接関係は設定済みであり、かつその隣接関係はＭＲ端末１００も認識済みである。あるルームに隣接するルームはＮ個あり、ＭＲ端末１００がルームを移動する際は、自身が現在入っているルームと隣接するルームの中からランダムに１つ選んで移動するものとする。
（条件４）ルーム移動後、ＭＲ端末１００は、Ｔ秒待機した後に、次のルームへ移動する。この移動を計１０回行う。
（条件５）ＭＲ端末１００上にはＫ個のアンカー情報を保存できるものとする。
【０１５０】
上記の環境は、同一建物内の各部屋や廊下を一つの共有対象の空間として、それぞれ別のルームに紐づけた状況を想定したものである。以上の環境において、乱数を毎回変えながら５回試行を行い、以下の指標の平均値を計算した。
（指標１）遅延時間：ＭＲ端末１００がルームに入ってからアンカー情報の取り付けが完了するまでに要した時間
（指標２）アンカー情報要求回数：ＭＲ端末１００がサーバ１０に対してアンカー情報を要求した回数
【０１５１】
また、比較手法として、アンカー情報のダウンロードに関する処理は、従来技術と同様に、新しいルームに入るたびにそのルームのアンカー情報をサーバ１０からダウンロードする手法を用いた。
【０１５２】
図１８，図１９は、アンカーの保存数を５（Ｋ＝５）、ルームの隣接数を４（Ｎ＝４）としたときに、各ルームでの待機時間Ｔを変化させた場合の結果を示す。図１８は、各ルームでの待機時間Ｔ［分］に対する遅延時間［秒］の変化を示しており、図１９は、各ルームでの待機時間Ｔ［分］に対するアンカー情報要求回数の変化を示している。
【０１５３】
図１８の結果より、上記実施形態に係る情報処理システム１では、従来技術と比較して、複合現実空間共有開始までの遅延時間を約半分にできていることがわかる。これは、情報処理システム１では、サーバ１０内で構築したルーム間の隣接関係をもとに、現在のルームと隣接しているルームのアンカー情報をそのルームに移動する前にダウンロードできるためである。
【０１５４】
一方、図１９の結果より、上記実施形態に係る情報処理システム１では、サーバ１０へアンカー情報を要求する回数が従来技術よりも増加していることがわかる。これは、上述の通り、現在のルームのアンカー情報だけでなく、隣接したルームのアンカー情報もダウンロードするためである。
【０１５５】
図２０，図２１に、各ルームでの待機時間を２分（Ｔ＝２分）、ルームの隣接数を４（Ｎ＝４）としたときに、ＭＲ端末１００上に保存できるアンカー数Ｋを変化させた場合の結果を示す。図２０は、アンカー保存数Ｋに対する遅延時間［秒］の変化を示しており、図２１は、アンカー保存数Ｋに対するアンカー情報要求回数の変化を示している。
【０１５６】
図２０の結果より、自端末上に保存できるアンカー数が増加するほど、複合現実空間共有開始までの遅延時間が短くなっていることがわかる。一方で、保存可能なアンカー数が１のときは従来技術と同程度の遅延時間が発生している。これは、ＭＲ端末１００が自端末上に１つしかアンカー情報を保存できない場合、現在のルームのアンカー情報しか保存できず、隣接ルームのアンカーを取得できないためである。その結果、図２１の通り、アンカー情報要求回数も従来技術とほぼ同等の値になっている。
【０１５７】
図２２，図２３に、アンカーの保存数をＮ＋１（Ｋ＝Ｎ＋１）、各ルームにおける待機時間を２分（Ｔ＝２分）としたときに、ルームの隣接数Ｎを変化させた場合の結果を示す。図２２は、ルームの隣接数に対する遅延時間［秒］の変化を示しており、図２３は、ルームの隣接数に対するアンカー情報要求回数の変化を示している。なお、従来技術ではＮを変化させても性能が変わらないため、上記実施形態に係る情報処理システム１を用いた場合の性能値のみを示している。
【０１５８】
図２２の結果より、隣接数が多くなるほど、複合現実空間共有開始までの遅延時間が長くなることがわかる。これは、ルーム内の待機時間に対して隣接数が多いと、隣接するルームのアンカー情報のダウンロードがルーム間の移動に間に合わない場合が発生するためである。また図２３の結果より、隣接数が多くなるほどアンカー情報要求回数も増加することがわかる。
【０１５９】
（４）効果
従来技術を用いた場合でも、複数のＭＲ端末１００の間で１つの複合現実空間を共有でき、各ユーザが同じ複合現実空間を見ることができる。しかし、共有対象の複合現実空間が複数になった場合、従来技術では、ＭＲ端末１００側で自身が今どの複合現実空間に位置しているかが判断できないため、ＭＲ端末１００はサーバ１０上のどのルームに入ればよいかがわからず、複合現実空間の共有ができない。
【０１６０】
そこで、上記一実施形態では、サーバ１０上で管理している各ルームに、対応する現実空間の形状の３Ｄ情報を持たせておき、ＭＲ端末１００が取得した３Ｄ情報と照合を行うようにした。これにより、ＭＲ端末１００は、自身が今どの複合現実空間に位置しているかを識別することができる（課題１、３の解決）。
【０１６１】
さらに、ＭＲ端末１００側で、自身がもつ３Ｄ情報のどこに自己位置があるかを定期的に確認するようにした。これにより、ＭＲ端末１００は、自身が入っているルームの対象となっている空間の内側に自己位置があるのか、外側にあるのかを認識することができる（課題２の解決）。
【０１６２】
上記技術を用いることで、複数のＭＲ端末１００間で複数の複合現実空間が共有可能となる。しかし、ルームごとに必要となるアンカー情報が異なるため、単純に（従来技術と同様の方法で）複数の複合現実空間を共有しようとすると、ルームが変わるたびにサーバ１０からアンカー情報をダウンロードすることになり、共有開始までに大きな遅延が発生してしまう。
【０１６３】
そこで上記一実施形態では、ＭＲ端末１００の移動をもとにルーム間の隣接関係を構築しつつ、その隣接関係の情報を利活用して、事前に隣接するルームのアンカー情報をダウンロードしておくようにした。これによって、ＭＲ端末１００がルームを移動した後、複合現実空間共有までに発生する遅延を軽減することができる（課題４の解決）。
【０１６４】
なお、上記課題１〜３が解決された状態で複数の複合現実空間を共有する際に、複合現実空間の共有開始までの遅延を単純に削減する方法として、サーバ１０に格納されているすべてのアンカー情報を事前にＭＲ端末１００に取得させる方法も考えられる。しかし、屋内外問わず複合現実空間を共有する環境では、アンカー情報の数が膨大になると考えられるため、ＭＲ端末１００がすべてのアンカー情報を事前に取得することは非現実的である。
【０１６５】
この課題に対して、上記一実施形態では、あるルームを生成したＭＲ端末１００がこれまでに滞在していたルームの情報をもとに、ルーム間の隣接関係を構築することによって、そのＭＲ端末１００を装着したユーザが次に移動する空間を絞り込むようにしている。これにより、ＭＲ端末１００（を装着したユーザ）が次に移動する可能性がある空間の情報のみを移動前に取得できるため、サーバ１０に格納されているすべてのアンカー情報を取得するよりも少ない通信量で、複数の複合現実空間の共有に要する遅延を削減することができる。
【０１６６】
［他の実施形態］
なお、この発明は上記実施形態に限定されるものではない。例えば、ＭＲ端末１００が備える各機能部２０１〜２１１を、複数の装置に分散配置し、これらの装置が互いに連携することにより処理を行うようにしてもよい。例えば、ＭＲ端末１００が備える機能部のうちのいくつかをサーバ１０に設けることも可能であり、あるいはスマートフォン等のユーザ端末（図示せず）にいくつかの機能部を設けることも可能である。また各機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【０１６７】
同様に、サーバ１０が備える各機能部２１〜２８を複数の装置に分散配置してもよい。
【０１６８】
サーバ１０の隣接関係設定部２７による隣接関係設定処理は、図示しないデータベースに記憶された建物のレイアウト情報やオペレータにより入力された位置関係を表す情報を利用するものであってもよい。
【０１６９】
ＭＲ端末１００は、上述のＨｏｌｏＬｅｎｓのような光学透過式に限られるものではなく、カメラによって撮影された映像を用いるビデオ透過式の端末であってもよい。またＭＲ端末１００は、ヘッドマウントディスプレイに限定されるものではなく、ハンドヘルドディスプレイや、他の形式のウェアラブルコンピュータや、スマートフォン、タブレット端末などであってもよい。
【０１７０】
ＭＲ端末１００は、本体をシャットダウンさせるたびに、最後に保存したアンカー情報をストレージから消去するようにしてもよいし、保持するようにしてもよい。シャットダウン後にＭＲ端末１００を再び同じ部屋で起動させる場合、最後に保存した情報をストレージに保持しておくことによって、起動後にサーバ１０から新たにアンカー情報を取得する処理を省略することができる。
【０１７１】
またＭＲ端末１００は、定期的にサーバ１０に３Ｄ情報を送信して問い合わせることによってルームからの退出を判定するようにしてもよいし、取得した３Ｄ情報を一定時間保持し、自身が保持している３Ｄ情報との対比によって自己の位置を推定し、ルームからの退出を判定するようにしてもよい。あるいは、ＭＲ端末１００は、各部屋に設置されたビーコンから信号を受信することによって、現実空間としての部屋の移動を検知するようにしてもよい。この場合、ＭＲ端末１００は、部屋の移動が検知されるたびに３Ｄ情報を取得し直し、ルーム確認のためにサーバ１０に送信するようにしてもよい。
【０１７２】
なお、上記実施形態では、現実空間の一例として「部屋」を挙げて説明したが、複合現実空間の構築のベースとなる現実空間は、壁などで囲まれた屋内の部屋に限定されるものではない。上記実施形態は、仮想物体をマッピングするためのアンカーを配置可能な任意の空間に適用することができ、屋外であってもよいし、部屋の一部の領域であってもよい。また上述のように、学校の教室間など異なる現実空間の間で同じ仮想情報を共有するためにも上記実施形態を適用することができる。
【０１７３】
また上記実施形態は、上述の情報処理システム１、サーバ１０またはＭＲ端末１００だけに限定されるものではなく、現在いる空間の空間情報に対応するアンカー情報を共有する、他の情報処理システム、サーバ、情報処理装置または端末等にも適用可能である。
【０１７４】
その他、ＭＲ端末１００における複合現実空間の構築処理についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
【０１７５】
要するにこの発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【符号の説明】
【０１７６】
１…情報処理システム
１０…サーバ
１１…通信インタフェース
２０…制御ユニット
２０Ａ…ハードウェアプロセッサ
２０Ｂ…プログラムメモリ
２１…ルーム管理部
２２…ルーム作成部
２３…端末状態参照部
２４…端末状態管理部
２５…端末状態更新部
２６…アンカー情報共有部
２７…隣接関係設定部
２８…送信制御部
３０…データメモリ
３１…ルーム情報記憶部
５０…バス
１００…情報処理端末、ＭＲ端末、クライアント
１２０…制御ユニット
１２０Ａ…ハードウェアプロセッサ
１２０Ｂ…プログラムメモリ
１３０…データメモリ
１３１…アンカー情報記憶部
１４０…通信インタフェース
１５０…入出力インタフェース
１６０…入力デバイス
１７０…出力デバイス
１８０…バス
２０１…空間情報取得部
２０２…ルーム確認部
２０３…ルーム作成要求部
２０４…アンカー情報管理部
２０５…アンカー情報アップロード（ＵＬ）部
２０６…アンカー情報ダウンロード（ＤＬ）部
２０７…アンカー情報展開部
２０８…隣接情報要求部
２０９…隣接情報格納処理部
２１０…退出判定部
２１１…出力画像生成部
【図１】
2020177338.tif 000003
【図２】
2020177338.tif 000004
【図３】
2020177338.tif 000005
【図４】
2020177338.tif 000006
【図５】
2020177338.tif 000007
【図６】
2020177338.tif 000008
【図７】
2020177338.tif 000009
【図８】
2020177338.tif 000010
【図９】
2020177338.tif 000011
【図１０】
2020177338.tif 000012
【図１１】
2020177338.tif 000013
【図１２】
2020177338.tif 000014
【図１３】
2020177338.tif 000015
【図１４】
2020177338.tif 000016
【図１５】
2020177338.tif 000017
【図１６】
2020177338.tif 000018
【図１７】
2020177338.tif 000019
【図１８】
2020177338.tif 000020
【図１９】
2020177338.tif 000021
【図２０】
2020177338.tif 000022
【図２１】
2020177338.tif 000023
【図２２】
2020177338.tif 000024
【図２３】
2020177338.tif 000025