(57)【要約】【課題】複数の表示端末が同一の仮想オブジェクトを表示する場合の表示位置の相違を軽減することが可能な情報処理装置の提供。【解決手段】実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御する制御部、を備え、前記制御部は、第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定する、情報処理装置。【選択図】図３
2020173656.tif 000002
【特許請求の範囲】
【請求項１】
実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御する制御部、
を備え、
前記制御部は、第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定する、情報処理装置。
【請求項２】
前記制御部は、前記第１の動作状態と前記第２の動作状態とが類似しているか否かに応じて、前記第１の空間情報及び前記第２の空間情報を更新するか否かを決定する、請求項１に記載の情報処理装置。
【請求項３】
前記第１の動作状態と前記第２の動作状態とが類似している場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新しないと決定し、
前記第１の動作状態と前記第２の動作状態とが類似していない場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新すると決定する、請求項２に記載の情報処理装置。
【請求項４】
前記制御部は、前記第１の動作状態と前記第２の動作状態との類似度を算出し、前記類似度と第１の閾値との比較結果に応じて、前記第１の動作状態と前記第２の動作状態とが類似しているか否かを判定する、請求項２に記載の情報処理装置。
【請求項５】
前記制御部は、前記第１の動作状態において前記第１の表示端末が取得した更新先候補である第３の空間情報と、前記第２の動作状態において前記第２の表示端末が取得した更新先候補である第４の空間情報とに基づき、前記類似度を算出する、請求項４に記載の情報処理装置。
【請求項６】
前記制御部は、前記第３の空間情報に含まれる特徴点と、前記第４の空間情報に含まれる特徴点とのマッチング処理を行い、マッチングした特徴点の数に基づいて前記類似度を算出する、請求項５に記載の情報処理装置。
【請求項７】
前記制御部は、前記第１の表示端末と前記第２の表示端末との位置関係に応じて、前記第１の閾値を変更する、請求項４に記載の情報処理装置。
【請求項８】
前記制御部は、前記類似度が第３の閾値を超えるか否かに応じて、前記第１の空間情報及び前記第２の空間情報を更新するか否かをさらに決定し、
前記第３の閾値は、所定の条件が満たされる期間において算出された類似度の最大値である、請求項４に記載の情報処理装置。
【請求項９】
前記類似度が前記第３の閾値を超える場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新すると決定し、
前記類似度が前記第３の閾値を超えない場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新しないと決定する、請求項８に記載の情報処理装置。
【請求項１０】
前記制御部は、前記第１の空間情報及び前記第２の空間情報の前回更新時以降の前記第１の表示端末の移動距離または前記第２の表示端末の移動距離に応じて、前記第１の空間情報及び前記第２の空間情報を更新するか否かをさらに決定する、請求項２に記載の情報処理装置。
【請求項１１】
前記移動距離が第２の閾値以上である場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新すると決定し、
前記移動距離が第２の閾値以上でない場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新しないと決定する、請求項１０に記載の情報処理装置。
【請求項１２】
前記制御部は、所定の位置と特定の位置関係にある前記第１の動作状態と、前記第１の動作状態とは異なる時系列における前記所定の位置と特定の関係にある前記第２の動作状態との前記類似度を算出する、請求項４に記載の情報処理装置。
【請求項１３】
第１のユーザに対して、仮想オブジェクトを提示する第１の出力装置を有する出力部と、
実空間に関連付けた座標系に配置する前記仮想オブジェクトの位置を決定する制御部と、
を備え、
前記制御部は、前記第１の出力装置の第１の動作状態と、前記第１の出力装置と前記仮想オブジェクトを共有する外部の第２の出力装置の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の出力装置の第１の空間情報及び前記第２の出力装置の第２の空間情報を更新するか否かを決定する、情報処理装置。
【請求項１４】
実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御することと、
第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定することと、
を含む、プロセッサにより実行される情報処理方法。
【請求項１５】
コンピュータに、
実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御することと、
第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定することと、
を実行させるためのプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法及び記録媒体に関する。
【背景技術】
【０００２】
近年、実空間に付加的な情報（以下、仮想オブジェクトとも称する）を重畳してユーザに提示する拡張現実（ＡＲ：Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）と呼ばれる技術が注目されている。ＡＲ技術を用いた情報提示には、ＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）等の表示端末が利用される。提示される仮想オブジェクトには、グローバル座標系における位置が与えられる場合がある。その場合、表示端末は、グローバル座標系における自己位置を推定した上で、仮想オブジェクトに与えられたグローバル座標系における位置に仮想オブジェクトが表示されるように、仮想オブジェクトの表示位置を決定する。
【０００３】
表示端末の自己位置を推定する手法は種々存在するが、その一例として、下記特許文献１には、キーフレームベースのＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ）技術を用いる手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１６−５２８４７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
表示端末の自己位置の推定結果には誤差が生じ得る。その結果、仮想オブジェクトに与えられたグローバル座標系における位置と、表示端末が表示した仮想オブジェクトのグローバル座標系における位置との間に、誤差が生じ得る。ここで、複数の表示端末において同一の仮想オブジェクトを表示しようとすると、表示端末ごとの自己位置の推定精度及び推定結果のばらつきに起因して、各々の表示端末において表示される仮想オブジェクトのグローバル座標系における位置が相違し得る。
【０００６】
そこで、本開示では、複数の表示端末が同一の仮想オブジェクトを表示する場合の表示位置の相違を軽減することが可能な、新規かつ改良された情報処理装置、情報処理方法、及び記録媒体を提案する。
【課題を解決するための手段】
【０００７】
本開示によれば、実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御する制御部、を備え、前記制御部は、第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定する、情報処理装置が提供される。
【０００８】
また、本開示によれば、第１のユーザに対して、仮想オブジェクトを提示する第１の出力装置を有する出力部と、実空間に関連付けた座標系に配置する前記仮想オブジェクトの位置を決定する制御部と、を備え、前記制御部は、前記第１の出力装置の第１の動作状態と、前記第１の出力装置と前記仮想オブジェクトを共有する外部の第２の出力装置の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の出力装置の第１の空間情報及び前記第２の出力装置の第２の空間情報を更新するか否かを決定する、情報処理装置が提供される。
【０００９】
また、本開示によれば、実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御することと、第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定することと、を含む、プロセッサにより実行される情報処理方法が提供される。
【００１０】
また、本開示によれば、コンピュータに、実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御することと、第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定することと、を実行させるためのプログラムが記録された記録媒体が提供される。
【図面の簡単な説明】
【００１１】
【図１】本開示の実施形態に係る情報処理システムのシステム構成例を示す図である。
【図２】同実施形態に係るＡＲ端末のハードウェア構成例を示すブロック図である。
【図３】同実施形態に係る情報処理システムの機能構成例を示すブロック図である。
【図４】標準的なローカライズ処理の流れを示すフローチャートである。
【図５】本開示の実施形態に係るローカライズ処理の流れを示すフローチャートである。
【図６】同実施形態に係るキーフレーム更新判定処理の流れを示すフローチャートである。
【図７】同実施形態に係る情報処理システムにおける処理の流れを示すシーケンス図である。
【図８ａ】同実施形態に係る第１の具体例における複数のユーザの位置関係を示す図である。
【図８ｂ】同実施形態に係る第１の具体例における各々のユーザの見え方を示す図である。
【図９ａ】同実施形態に係る第２の具体例における複数のユーザの位置関係を示す図である。
【図９ｂ】同実施形態に係る第２の具体例における各々のユーザの見え方を示す図である。
【図１０ａ】同実施形態に係る第３の具体例における複数のユーザの位置関係を示す図である。
【図１０ｂ】同実施形態に係る第３の具体例における各々のユーザの見え方を示す図である。
【図１１】同実施形態に係る第４の具体例におけるキーフレームの時系列変化を示す図である。
【図１２】同実施形態に係る第１の変形例におけるキーフレーム更新判定処理の流れを示すフローチャートである。
【図１３】同実施形態に係る第２の変形例におけるキーフレーム更新判定処理の流れを示すフローチャートである。
【図１４】同実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１３】
なお、説明は以下の順序で行うものとする。
１．第１の実施形態
２．第２の実施形態
３．ハードウェア構成例
【００１４】
＜＜１．第１の実施形態＞＞
本開示の実施形態に係る技術は、複数の表示端末における同一の仮想オブジェクトの表示を制御する情報処理装置に関する。以下では、一例として、表示端末がＡＲ端末により実現され、情報処理装置がサーバにより実現されるものとする。
【００１５】
＜１−１．システム構成例＞
まず、図１及び図２を参照しながら、本開示の実施形態に係る情報処理システムのシステム構成例について説明する。図１は、本開示の実施形態に係る情報処理システムのシステム構成例を示す図である。図１に示すように、本実施形態に係る情報処理システム１０００は、ＡＲ端末１０、サーバ２０、及びネットワーク３０を備える。なお、本実施形態では、図１に示すように、ユーザ１２ａがＡＲ端末１０ａ（第１の表示端末）を装着し、ユーザ１２ｂがＡＲ端末１０ｂ（第２の表示端末）を装着しているものとする。また、ＡＲ端末１０ａとＡＲ端末１０ｂは、同一の仮想オブジェクトを共有して表示するものとする。
【００１６】
（１）ＡＲ端末１０
ＡＲ端末１０は、仮想オブジェクトを表示する端末である。本実施形態に係るＡＲ端末１０は、例えば、頭部装着型の端末（ＨＭＤ：Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）等により実現される。ＡＲ端末１０に適用可能なＨＭＤの一例としては、例えば、シースルー型ＨＭＤ、ビデオシースルー型ＨＭＤ、及び網膜投射型ＨＭＤが挙げられる。
【００１７】
シースルー型ＨＭＤは、例えば、ハーフミラーや透明な導光板を用いて、透明な導光部等からなる虚像光学系をユーザ１２の眼前に保持し、当該虚像光学系の内側に画像を表示させる。そのため、シースルー型ＨＭＤを装着したユーザ１２は、虚像光学系の内側に表示された画像を視聴している間も、外部の風景を視野に入れることが可能となる。このような構成により、シースルー型ＨＭＤは、例えば、ＡＲ技術に基づき、当該シースルー型ＨＭＤの位置及び姿勢のうち少なくともいずれかの認識結果に応じて、実空間に位置する実オブジェクトの光学像に対して仮想オブジェクトの画像を重畳させることも可能となる。なお、シースルー型ＨＭＤの具体的な一例として、メガネのレンズに相当する部分を虚像光学系として構成した、所謂メガネ型のウェアラブルデバイスが挙げられる。
【００１８】
ビデオシースルー型ＨＭＤは、ユーザ１２の頭部または顔部に装着された場合に、ユーザ１２の眼を覆うように装着され、ユーザ１２の眼前にディスプレイ等の表示部が保持される。また、ビデオシースルー型ＨＭＤは、周囲の風景を撮像するための撮像部を有し、当該撮像部により撮像されたユーザ１２の前方の風景の画像を表示部に表示させる。このような構成により、ビデオシースルー型ＨＭＤを装着したユーザ１２は、外部の風景を直接視野に入れることは困難ではあるが、表示部に表示された画像により、外部の風景を確認することが可能となる。また、このときビデオシースルー型ＨＭＤは、例えば、ＡＲ技術に基づき、当該ビデオシースルー型ＨＭＤの位置及び姿勢のうち少なくともいずれかの認識結果に応じて、外部の風景の画像に対して仮想オブジェクトを重畳させてもよい。
【００１９】
網膜投射型ＨＭＤは、ユーザ１２の眼前に投影部が保持されており、当該投影部からユーザ１２の眼に向けて、外部の風景に対して画像が重畳するように当該画像が投影される。より具体的には、網膜投射型ＨＭＤでは、ユーザ１２の眼の網膜に対して、投影部から画像が直接投射され、当該画像が網膜上で結像する。このような構成により、近視や遠視のユーザ１２の場合においても、より鮮明な画像を視聴することが可能となる。また、網膜投射型ＨＭＤを装着したユーザ１２は、投影部から投影される画像を視聴している間も、外部の風景を視野に入れることが可能となる。このような構成により、網膜投射型ＨＭＤは、例えば、ＡＲ技術に基づき、当該網膜投射型ＨＭＤの位置や姿勢のうち少なくともいずれかの認識結果に応じて、実空間に位置する実オブジェクトの光学像に対して仮想オブジェクトの画像を重畳させることも可能となる。
【００２０】
また、上記に説明した例以外にも、没入型ＨＭＤと呼ばれるＨＭＤが挙げられる。没入型ＨＭＤは、ビデオシースルー型ＨＭＤと同様に、ユーザ１２の眼を覆うように装着され、ユーザ１２の眼前にディスプレイ等の表示部が保持される。そのため、没入型ＨＭＤを装着したユーザ１２は、外部の風景（即ち、現実世界の風景）を直接視野に入れることが困難であり、表示部に表示された画像のみが視界に入ることとなる。このような構成により、没入型ＨＭＤは、画像を視聴しているユーザ１２に対して没入感を与えることが可能となる。そのため、没入型ＨＭＤは、例えば、主にＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）技術に基づき情報を提示する場合に適用され得る。
【００２１】
なお、ＡＲ端末１０は、上述のＨＭＤに限定されない。例えば、ＡＲ端末１０は、表示部を備えるスマートフォン、タブレット端末、ウェアラブル端末、又はエージェントデバイス等の端末装置であってもよい。
【００２２】
ＡＲ端末１０は、ネットワーク３０を介してサーバ２０と接続されており、サーバ２０と情報の送受信を行える。
【００２３】
（ＡＲ端末１０のハードウェア構成）
ここで、図２を参照しながら、ＡＲ端末１０のハードウェア構成例について説明する。図２は、本開示の実施形態に係るＡＲ端末１０のハードウェア構成例を示すブロック図である。なお、ＡＲ端末１０のハードウェア構成例は、かかる例に限定されない。
【００２４】
図２に示すように、ＡＲ端末１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２、及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０４を備える。また、ＡＲ端末１０は、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）コントローラ１０６、入力画像コントローラ１０８、カメラ１１０、周辺状況情報入力コントローラ１１２、周辺状況情報検知センサ１１４、出力画像コントローラ１１６、及びディスプレイ１１８を備える。
【００２５】
ＣＰＵ１００は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ１０２、ＲＡＭ１０４、又はストレージ装置に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ１０２は、ＣＰＵ１００に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ１０４には、例えば、ＣＰＵ１００に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【００２６】
通信Ｉ／Ｆコントローラ１０６は、通信に関する制御を行うコントローラである。例えば、通信Ｉ／Ｆコントローラ１０６は、ネットワーク３０を介した外部装置との通信を制御する。
【００２７】
入力画像コントローラ１０８は、画像（静止画像又は動画像）の入力に関する制御を行うコントローラである。例えば、入力画像コントローラ１０８は、カメラ１１０が撮像した撮像画像の入力を制御する。また、入力画像コントローラ１０８は、カメラ１１０による撮像処理を制御してもよい。
【００２８】
カメラ１１０は、ＡＲ端末１０の周辺を撮像する撮像装置である。当該撮像装置により、ＡＲ端末１０は、ユーザ１２の周辺を示す撮像画像を取得することができる。なお、ＡＲ端末１０に設けられるカメラ１１０の数は特に限定されず、任意の数のカメラ１１０が設けられてもよい。本実施形態に係るＡＲ端末１０には、例えば、右目用のカメラと左目用のカメラが設けられる。
【００２９】
周辺状況情報入力コントローラ１１２は、ＡＲ端末１０の周辺の状況を示す情報（以下、「周辺状況情報」とも称される）の入力に関する制御を行うコントローラである。例えば、周辺状況情報入力コントローラ１１２は、周辺状況情報検知センサ１１４が取得する周辺状況情報の入力を制御する。また、周辺状況情報入力コントローラ１１２は、周辺状況情報検知センサ１１４による周辺状況情報の取得処理を制御してもよい。
【００３０】
周辺状況情報検知センサ１１４は、周辺状況情報をセンシングするセンサ装置である。周辺状況情報検知センサ１１４は、例えば、カメラにより、ＡＲ端末１０の周辺の状況を示す撮像画像を周辺状況情報として取得する。なお、当該カメラは、上述したカメラ１１０であってもよいし、カメラ１１０とは異なるカメラであってもよい。
【００３１】
出力画像コントローラ１１６は、画像の出力に関する制御を行うコントローラである。例えば、出力画像コントローラ１１６は、ディスプレイ１１８における出力画像の出力を制御する。また、出力画像コントローラ１１６は、ディスプレイ１１８が出力する出力画像の生成に関する処理を制御してもよい。
【００３２】
ディスプレイ１１８は、出力画像を出力する装置である。ディスプレイ１１８の一例として、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置等が挙げられる。なお、ＡＲ端末１０に設けられるディスプレイ１１８の数は特に限定されず、任意の数のディスプレイが設けられてもよい。本実施形態に係るＡＲ端末１０には、例えば、右目用のディスプレイと左目用のディスプレイが設けられる。
【００３３】
（２）サーバ２０
サーバ２０は、複数のＡＲ端末１０における仮想オブジェクトの表示を制御する機能を有する情報処理装置である。例えば、サーバ２０は、ＡＲ端末１０の動作状態を示す情報に基づき、ＡＲ端末１０における仮想オブジェクトの表示を制御するための判定処理を行う。具体的に、サーバ２０は、ＡＲ端末１０ａの動作状態（第１の動作状態）と、ＡＲ端末１０ｂの動作状態（第２の動作状態）とに基づき、仮想オブジェクトの位置の決定に用いられるキーフレーム（空間情報）を更新するか否かを決定する処理を行う。そして、ＡＲ端末１０は、サーバ２０による決定に従いキーフレームを逐次的に更新しながら、仮想オブジェクトの位置の決定及び表示を行う。仮想オブジェクトの位置の決定に用いられるキーフレームは、以下では、「位置決定キーフレーム」とも称される。位置決定キーフレームを更新するか否かを決定する処理は、以下では、「キーフレーム更新判定処理」とも称される。キーフレーム更新判定処理にて、位置決定キーフレームを更新させるとサーバ２０が判定した場合、ＡＲ端末１０ａの位置決定キーフレーム（第１の空間情報）とＡＲ端末１０ｂの位置決定キーフレーム（第２の空間情報）の両方が更新される。
【００３４】
キーフレームには、撮像画像、当該撮像画像の特徴点、当該撮像画像を撮像した際のカメラの自己位置を示す情報が含まれ得る。当該キーフレームは、例えば、上述したＡＲ端末１０のカメラ１１０が撮像する度に、ＡＲ端末１０が備える記憶部に保存される。ＡＲ端末１０の記憶部に記憶されている複数のキーフレームは、以下では、「キーフレーム群」とも称される。
【００３５】
複数のＡＲ端末１０の各々では、キーフレーム群の中から、位置決定キーフレームの更新に用いられる候補となるキーフレーム（以下、「更新先候補キーフレーム」と称される）が取得される。例えば、ＡＲ端末１０ａは、ＡＲ端末１０ａのキーフレーム群から、ＡＲ端末１０ａの更新先候補キーフレーム（第３の空間情報）を取得する。また、ＡＲ端末１０ｂは、ＡＲ端末１０ｂのキーフレーム群から、ＡＲ端末１０ｂの更新先候補キーフレーム（第４の空間情報）を取得する。サーバ２０は、複数のＡＲ端末１０の各々が取得した更新先候補キーフレームを受信し、受信した更新先候補キーフレームに基づき、キーフレーム更新判定処理を行う。
【００３６】
更新先候補キーフレームは、ＡＲ端末１０の動作状態を示す情報に基づき、ＡＲ端末１０により取得される。ＡＲ端末１０の動作状態は、例えば、ＡＲ端末１０の姿勢のことである。ＡＲ端末１０の姿勢には、ＡＲ端末１０の自己位置を示す情報も含まれ得る。例えば、動作状態を示す情報は、例えば、ＡＲ端末１０が備えるカメラ１１０が取得する撮像画像である。ＡＲ端末１０は、例えば、キーフレーム更新判定処理の直前に撮像された撮像画像の特徴点と、キーフレーム群の各々のキーフレームに含まれる撮像画像の特徴点とのマッチングを行い、マッチングしたキーフレームを更新先候補キーフレームとして取得する。
【００３７】
サーバ２０は、ネットワーク３０を介してＡＲ端末１０と接続されており、ＡＲ端末１０と情報の送受信を行える。例えば、サーバ２０は、ＡＲ端末１０ａとＡＲ端末１０ｂから更新先候補キーフレームを受信する。また、サーバ２０は、判定処理における判定結果をＡＲ端末１０ａとＡＲ端末１０ｂに対して送信する。
【００３８】
（３）ネットワーク３０
ネットワーク３０は、ＡＲ端末１０とサーバ２０を接続する機能を有する。また、ネットワーク３０は、複数のＡＲ端末１０同士を接続する機能を有してもよい。例えば、ネットワーク３０は、ＡＲ端末１０ａとＡＲ端末１０ｂを接続する。
【００３９】
ネットワーク３０は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ｅｔｈｅｒｎｅｔ（登録商標）を含む各種のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを含んでもよい。また、ネットワーク３０は、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などの専用回線網を含んでもよい。また、ネットワーク３０は、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）など無線通信網を含んでもよい。
【００４０】
＜１−２．機能構成例＞
以上、本実施形態に係るシステム構成例について説明した。続いて、図３を参照しながら、本開示の実施形態に係る情報処理システム１０００の機能構成例について説明する。図３は、本開示の実施形態に係る情報処理システム１０００の機能構成例を示すブロック図である。
【００４１】
＜１−２−１．ＡＲ端末の機能構成＞
図３に示すように、本実施形態に係るＡＲ端末１０は、通信部１２０、センサ部１３０、制御部１４０、記憶部１５０、及び出力部１６０を備える。
【００４２】
（１）通信部１２０
通信部１２０は、外部装置と通信を行う機能を有する。通信部１２０は、例えば、外部装置との通信において、外部装置から受信する情報を制御部１４０へ出力する。一例として、通信部１２０は、ネットワーク３０を介したサーバ２０との通信において、サーバ２０から判定結果を受信し、制御部１４０へ出力する。
【００４３】
通信部１２０は、例えば、外部装置との通信において、制御部１４０から入力される情報を外部装置へ送信する。一例として、通信部１２０は、更新先候補キーフレームをサーバ２０へ送信する。
【００４４】
（２）センサ部１３０
センサ部１３０は、制御部１４０における処理に用いられる情報をセンシングする機能を有する。センシング後、センサ部１３０は、各種センサがセンシングにより取得したセンシング情報を制御部１４０へ出力する。
【００４５】
センサ部１３０は、多様なセンサ装置を備え得る。一例として、センサ部１３０は、カメラ、デプスセンサ、加速度センサ、ジャイロセンサ等を備え得る。なお、センサ部１３０が備えるセンサ装置は上述の例に限定されず、他の任意のセンサ装置を備えてもよい。
【００４６】
カメラは、ＲＧＢカメラ等のレンズ系、駆動系、及び撮像素子を有し、撮像画像を撮像する撮像装置である。かかる撮像装置は、ＡＲ端末１０の周辺を撮像可能にＡＲ端末１０に備えられ得る。かかる構成により、センサ部１３０は、ＡＲ端末１０の周辺の撮像画像を取得することができる。なお、ユーザ１２がＡＲ端末１０を装着または携帯している場合、センサ部１３０が取得するＡＲ端末１０の周辺の撮像画像は、即ちユーザ１２の周辺の撮像画像でもある。
【００４７】
デプスセンサは、赤外線測距装置、超音波測距装置、ＬｉＤＡＲ（Ｌａｓｅｒ  Ｉｍａｇｉｎｇ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）又はステレオカメラ等の深度情報を取得する装置である。センサ部１３０は、当該デプスセンサにより取得される情報に基づき、ＡＲ端末１０の位置情報を取得することができる。なお、ユーザ１２がＡＲ端末１０を装着または携帯している場合、センサ部１３０が取得するＡＲ端末１０の位置情報は、即ちユーザ１２の位置情報でもある。
【００４８】
加速度センサは、加速度を取得する装置である。例えば、加速度センサは、対象が移動した際の速度の変化量である加速度を計測する。ジャイロセンサは、角速度を取得する装置である。例えば、ジャイロセンサは、対象の姿勢の変化量である角速度を計測する。加速度センサ及びジャイロセンサにより取得される情報は、以下では、「慣性情報」とも称される。かかる構成により、センサ部１３０は、ＡＲ端末１０の慣性情報を取得することができる。なお、ユーザ１２がＡＲ端末１０を装着または携帯している場合、センサ部１３０が取得する慣性情報は、即ちユーザ１２の慣性情報でもある。
【００４９】
（３）制御部１４０
制御部１４０は、ＡＲ端末１０全体の動作を制御する機能を有する。当該機能を実現するために、制御部１４０は、図３に示すように、周辺状況情報取得部１４０２、周辺状況情報管理部１４０４、空間情報取得部１４０６、空間情報管理部１４０８、画像出力制御部１４１０、及び出力画像生成部１４１２を有する。
【００５０】
（３−１）周辺状況情報取得部１４０２
周辺状況情報取得部１４０２は、ＡＲ端末１０の周辺状況情報の取得を制御する機能を有する。例えば、周辺状況情報取得部１４０２は、センサ部１３０の動作を制御し、センサ部１３０に周辺状況情報を取得させる。また、周辺状況情報取得部１４０２は、通信部１２０の動作を制御し、通信部１２０を介してＡＲ端末１０と接続されている外部装置から周辺状況情報を取得してもよい。当該外部装置の一例として、ＡＲ端末１０の外部に設置されているセンサ装置、サーバ２０等が挙げられる。
【００５１】
（３−２）周辺状況情報管理部１４０４
周辺状況情報管理部１４０４は、周辺状況情報を管理する機能を有する。例えば、周辺状況情報管理部１４０４は、記憶部１５０が有する周辺状況情報が記憶されるデータベース（以下、「周辺状況情報ＤＢ」とも称される）の更新処理を行う。一例として、周辺状況情報管理部１４０４は、周辺状況情報取得部１４０２が取得する周辺状況情報を記憶部１５０に周辺状況情報ＤＢへ追加させる。
【００５２】
（３−３）空間情報取得部１４０６
空間情報取得部１４０６は、ＡＲ端末１０の空間情報に関する情報の取得を制御する機能を有する。例えば、空間情報取得部１４０６は、センサ部１３０の動作を制御し、センサ部１３０に空間情報に関する情報を取得させる。一例として、空間情報取得部１４０６は、センサ部１３０に設けられたカメラを制御し、ＡＲ端末１０の動作状態を示す撮像画像を撮像させる。
【００５３】
（３−４）空間情報管理部１４０８
空間情報管理部１４０８は、空間情報を管理する機能を有する。例えば、空間情報管理部１４０８は、空間情報に関する処理の制御を行う。一例として、空間情報管理部１４０８は、クエリ画像の生成、更新先候補キーフレームの取得、位置決定キーフレームの更新、初期ポーズ推定、及び最終ポーズ推定等の処理を行う。
【００５４】
（クエリ画像の生成）
空間情報管理部１４０８は、クエリ画像の生成に関する処理を行う。例えば、空間情報管理部１４０８は、空間情報取得部１４０６が取得する撮像画像に基づき、クエリ画像を生成する。当該クエリ画像は、キーフレーム群から更新先候補キーフレームを取得する際に用いられる。
【００５５】
クエリ画像の生成時、空間情報管理部１４０８は、撮像画像に基づき、撮像時のカメラの自己位置（ＡＲ端末１０の自己位置）を推定する。さらに、空間情報管理部１４０８は、撮像画像の特徴点の検出と特徴量の記述を行い、２次元特徴点を取得する。
【００５６】
（更新先候補キーフレームの取得）
空間情報管理部１４０８は、ＡＲ端末１０の動作状態に基づき、ＡＲ端末１０の更新先候補キーフレームを取得する。例えば、空間情報管理部１４０８は、センサ部１３０のカメラが撮像するＡＲ端末１０の動作状態を示す撮像画像から生成されたクエリ画像を用いて、記憶部１５０に記憶されているキーフレーム群から更新先候補キーフレームを検索する。更新先候補キーフレームを検索する際、空間情報管理部１４０８は、クエリ画像の生成時に取得された２次元特徴点と、キーフレーム群の各々のキーフレームに含まれる２次元特徴点とのマッチングを行う。そして、空間情報管理部１４０８は、２次元特徴点がマッチングしたキーフレームを更新先候補キーフレームとして取得する。
【００５７】
（位置決定キーフレームの更新）
空間情報管理部１４０８は、サーバ２０におけるキーフレーム更新判定処理の判定結果に基づき、位置決定キーフレームの更新処理を行う。キーフレーム更新判定処理にて位置決定キーフレームを更新すると判定された場合、空間情報管理部１４０８は、位置決定キーフレームを更新先候補キーフレームで更新する。一方、キーフレーム更新判定処理にて位置決定キーフレームを更新しないと判定された場合、空間情報管理部１４０８は、位置決定キーフレームを更新しない。
【００５８】
（初期ポーズ推定）
空間情報管理部１４０８は、位置決定キーフレームに基づき、ＡＲ端末１０の初期ポーズを推定する。ポーズは、ＡＲ端末１０の位置姿勢を示す。また、初期ポーズは、カメラが撮像画像を撮像した時のＡＲ端末１０の位置姿勢を示す。例えば、空間情報管理部１４０８は、位置決定キーフレームと関連付けられた自己位置を示す情報から、ＡＲ端末１０の初期ポーズを推定する。
【００５９】
この時、空間情報管理部１４０８は、センサ部１３０のカメラが撮像した撮像画像の２次元特徴点と、位置決定キーフレームの２次元特徴点との特徴点マッチングを行う。特徴点マッチングが成功した場合、空間情報管理部１４０８は、位置決定キーフレームに含まれる自己位置を示す情報をＡＲ端末１０の初期ポーズとして用いる。特徴点マッチングが成功しなかった場合、空間情報管理部１４０８は、位置決定キーフレームを更新し、成功するまで特徴点マッチングを繰り返す。
【００６０】
（最終ポーズ推定）
空間情報管理部１４０８は、推定した初期ポーズを補正することで、ＡＲ端末１０の最終ポーズを推定する。最終ポーズは、現時刻におけるＡＲ端末１０の位置姿勢を示す。最終ポーズは、例えば、空間情報管理部１４０８は、センサ部１３０のカメラが撮像した撮像画像と、位置決定キーフレームに含まれる撮像画像との画像マッチングを行う。画像マッチングの結果、両画像間の差分が検出された場合、空間情報管理部１４０８は、当該差分に基づき初期ポーズを補正し、補正後のポーズをＡＲ端末１０の最終ポーズとする。
【００６１】
（３−５）画像出力制御部１４１０
画像出力制御部１４１０は、画像の出力を制御する機能を有する。例えば、画像出力制御部１４１０は、出力画像生成部１４１２が生成する出力画像を、出力部１６０に出力させる。ＡＲ端末１０に右目用のディスプレイと左目用のディスプレイが設けられる場合、画像出力制御部１４１０は、各々のディスプレイに、各々のディスプレイに応じた形式で出力画像を出力させる。
【００６２】
（３−６）出力画像生成部１４１２
出力画像生成部１４１２は、画像を生成する機能を有する。例えば、出力画像生成部１４１２は、出力部１６０が出力する出力画像を生成する。例えば、出力画像生成部１４１２は、空間情報管理部１４０８が推定したＡＲ端末１０の最終ポーズに基づき、仮想オブジェクトを配置した出力画像を生成する。
【００６３】
（４）記憶部１５０
記憶部１５０は、ＡＲ端末１０における処理に関する情報を記憶する機能を有する。例えば、記憶部１５０は、周辺状況情報取得部１４０２が取得した周辺状況情報を、周辺状況情報管理部１４０４の制御により周辺状況情報ＤＢに記憶する。また、記憶部１５０は、あらかじめ用意されたマップＤＢ（キーフレーム群）を空間情報ＤＢに記憶する。
【００６４】
なお、記憶部１５０が記憶する情報は、かかる例に限定されない。例えば、記憶部１５０は、各種アプリケーション等のプログラムを記憶してもよい。
【００６５】
（５）出力部１６０
出力部１６０は、画像を出力する機能を有する。例えば、出力部１６０は、出力画像生成部１４１２が生成した出力画像を、画像出力制御部１４１０の制御に基づき出力する。
【００６６】
＜１−２−２．サーバの機能構成＞
図３に示すように、本実施形態に係るサーバ２０は、通信部２１０、制御部２２０、及び記憶部２３０を備える。
【００６７】
（１）通信部２１０
通信部２１０は、外部装置と通信を行う機能を有する。通信部２１０は、例えば、外部装置との通信において、外部装置から受信する情報を制御部２２０へ出力する。一例として、通信部２１０は、ネットワーク３０を介したＡＲ端末１０との通信において、ＡＲ端末１０から更新先候補キーフレームを受信し、制御部２２０へ出力する。
【００６８】
通信部２１０は、例えば、外部装置との通信において、制御部２２０から入力される情報を外部装置へ送信する。一例として、通信部２１０は、判定結果をＡＲ端末１０へ送信する。
【００６９】
（２）制御部２２０
制御部２２０は、サーバ２０全体の動作を制御する機能を有する情報処理装置である。例えば、制御部２２０は、ＡＲ端末１０における仮想オブジェクトの配置の制御に関する処理を行う機能を有する。当該処理の一例として、制御部２２０は、キーフレーム更新判定処理を行う。
【００７０】
（キーフレーム更新判定処理）
キーフレーム更新判定処理では、制御部２２０は、ＡＲ端末１０ａの動作状態とＡＲ端末１０ｂの動作状態とに基づき、ＡＲ端末１０ａの位置決定キーフレーム及びＡＲ端末１０ｂの位置決定キーフレームを更新するか否かを決定する。ＡＲ端末１０ａの位置決定キーフレーム及びＡＲ端末１０ｂの位置決定キーフレームを更新するか否かは、ＡＲ端末１０ａの動作状態とＡＲ端末１０ｂの動作状態とが類似しているか否かに応じて決定される。
【００７１】
動作状態が類似していることは、即ち、ユーザ１２ａとユーザ１２ｂが見ている方向が類似していることを示している。よって、ＡＲ端末１０ａの動作状態とＡＲ端末１０ｂの動作状態とが類似している場合、制御部２２０は、ＡＲ端末１０ａの位置決定キーフレーム及びＡＲ端末１０ｂの位置決定キーフレームを更新しないと決定する。キーフレームを更新しないことにより、動作状態が類似している間は、少なくとも類似した位置決定キーフレーム（正確には、動作状態が類似した状態で得られたキーフレーム）をＡＲ端末１０ａ及びＡＲ端末１０ｂに継続して使用させることが可能となる。これにより、ＡＲ端末１０ごとの自己位置の推定精度及び推定結果のばらつきを軽減することができ、それに伴い、複数のＡＲ端末１０間での同一の仮想オブジェクトの表示位置の相違を軽減することができる。
【００７２】
一方、動作状態が類似していないことは、即ち、ユーザ１２ａとユーザ１２ｂが見ている方向が類似していないことを示している。よって、ＡＲ端末１０ａの動作状態とＡＲ端末１０ｂの動作状態とが類似していない場合、制御部２２０は、ＡＲ端末１０ａの位置決定キーフレーム及びＡＲ端末１０ｂの位置決定キーフレームを更新すると決定する。かかる構成により、各々のユーザに対して、各々のユーザが見ている方向に応じた位置に仮想オブジェクトを表示することができる。
【００７３】
−類似度による判定
ＡＲ端末１０ａの動作状態とＡＲ端末１０ｂの動作状態とが類似しているか否かは、制御部２２０が算出するＡＲ端末１０ａの動作状態とＡＲ端末１０ｂの動作状態との類似度と、第１の閾値との比較結果に応じて決定される。類似度が第１の閾値以上である場合、制御部２２０は、ＡＲ端末１０ａの動作状態とＡＲ端末１０ｂの動作状態とが類似していると判定する。一方、類似度が第１の閾値以上でない場合、制御部２２０は、ＡＲ端末１０ａの動作状態とＡＲ端末１０ｂの動作状態とが類似していないと判定する。
【００７４】
制御部２２０は、ＡＲ端末１０ａの動作状態においてＡＲ端末１０ａが取得した位置決定キーフレームと、ＡＲ端末１０ｂの動作状態においてＡＲ端末１０ｂが取得した位置決定キーフレームとに基づき、類似度を算出する。具体的に、制御部２２０は、ＡＲ端末１０ａが取得した位置決定キーフレームに含まれる特徴点と、ＡＲ端末１０ｂが取得した位置決定キーフレームに含まれる特徴点との特徴点マッチングを行い、マッチングした特徴点の数に基づいて類似度を算出する。類似度を示す具体的な値として、制御部２２０は、例えば、スコアを算出する。一例として、制御部２２０は、マッチングした特徴点の数をスコアとして算出する。
【００７５】
なお、類似度を算出する方法は、かかる例に限定されない。例えば、更新先候補キーフレームに対応するカメラの３次元座標系における位置姿勢行列（３×４の行列）の一致度を類似度として算出してもよい。なお、行列の一致度は、行列の各要素の２乗和とする。
【００７６】
また、第１の閾値に設定される値は特に限定されず、任意の値が設定されてよい。例えば、複数のＡＲ端末が同一の仮想オブジェクトを表示する場合の表示位置の相違をより軽減したい場合、第１の閾値は、高く設定されることが望ましい。
【００７７】
また、第１の閾値は動的に変更されてもよい。例えば、制御部２２０は、ＡＲ端末１０ａとＡＲ端末１０ｂとの位置関係、即ち、ユーザ１２ａとユーザ１２ｂとの位置関係に応じて、第１の閾値を変更する。
【００７８】
ユーザ１２ａとユーザ１２ｂとが近い位置関係にある場合、仮想オブジェクトの表示位置の相違を知覚しやすくなり得る。そこで、ユーザ１２ａとユーザ１２ｂとが近い位置にいる場合、制御部２２０は、第１の閾値を高く設定してもよい。これにより、表示位置の相違が軽減されるため、仮想オブジェクトの表示位置の装置をユーザ１２ａとユーザ１２ｂに知覚されにくくすることができる。
【００７９】
一方、ユーザ１２ａとユーザ１２ｂとが遠い位置関係にある場合、仮想オブジェクトの表示位置の相違を知覚しづらくなり得る。そこで、ユーザ１２ａとユーザ１２ｂとが遠い位置関係にある場合、制御部２２０は、第１の閾値を低く設定してもよい。これにより、表示位置の相違が増加するが、仮想オブジェクトの表示位置の装置がユーザ１２ａとユーザ１２ｂに知覚されにくい状態を維持することができる。
【００８０】
−類似度の最大値判定
キーフレーム更新判定処理にて、位置決定キーフレームを更新するか否かは、類似度のスコアが最大値であるか否かに基づき決定されてもよい。例えば、制御部２２０は、類似度が最大値（第３の閾値）を超えるか否かに応じて、ＡＲ端末１０ａの位置決定キーフレーム及びＡＲ端末１０ｂの位置決定キーフレームを更新するか否かをさらに決定する。
【００８１】
なお、最大値は、所定の条件が満たされる期間において算出された類似度の最大値である。所定の期間とは、例えば、後述する移動距離判定にて、位置決定キーフレームを更新しないと判定され続けている機関である。
【００８２】
判定の結果、類似度が最大値を超える場合、制御部２２０は、ＡＲ端末１０ａの位置決定キーフレーム及びＡＲ端末１０ｂの位置決定キーフレームを更新すると決定する。一方、類似度が最大値を超えない場合、制御部２２０は、ＡＲ端末１０ａの位置決定キーフレーム及びＡＲ端末１０ｂの位置決定キーフレームを更新しないと決定する。
【００８３】
更新先候補キーフレームの類似度が最大値を示すということは、即ち、当該更新先候補キーフレームの類似度が、現在使用されている位置決定キーフレームの類似度よりも高いことを示している。よって、現在使用されている位置決定キーフレームを類似度が最大の更新先候補キーフレームで更新することで、仮想オブジェクトの表示位置の相違を軽減することができる。
【００８４】
−移動距離判定
キーフレーム更新判定処理にて、位置決定キーフレームを更新するか否かは、前回位置決定キーフレームの更新時以降のＡＲ端末１０の移動距離に基づき決定されてもよい。例えば、制御部２２０は、ＡＲ端末１０ａの位置決定キーフレームの前回更新時以降のＡＲ端末１０ａの移動距離と、ＡＲ端末１０ｂの位置決定キーフレームの前回更新時以降のＡＲ端末１０ｂの移動距離を算出する。
【００８５】
なお、移動距離は、位置決定キーフレームの前回更新時の位置と、現在キーフレーム更新判定処理を行っている位置とを結ぶ直線の距離である。当該移動距離は、例えば、位置決定キーフレームの前回更新時のＡＲ端末１０の自己位置と、現在キーフレーム更新判定処理が行われている時のＡＲ端末１０の自己位置との差分から算出することができる。そのため、制御部２２０は、位置決定キーフレームの更新時のＡＲ端末１０の自己位置を取得し、記憶部２３０に保持しておく。
【００８６】
移動距離の算出後、制御部２２０は、算出した移動距離と第２の閾値とを比較し、比較結果に応じて、位置決定キーフレームを更新するか否かを決定する。
【００８７】
例えば、ＡＲ端末１０ａとＡＲ端末１０ｂの移動距離の内、すくなくとも一方の移動距離が第２の閾値以上である場合、制御部２２０は、ＡＲ端末１０ａの位置決定キーフレーム及びＡＲ端末１０ｂの位置決定キーフレームを更新すると決定する。一方、ＡＲ端末１０ａとＡＲ端末１０ｂの移動距離の内、全ての移動距離が第２の閾値以上でない場合、制御部２２０は、ＡＲ端末１０ａの位置決定キーフレーム及びＡＲ端末１０ｂの位置決定キーフレームを更新しないと決定する。
【００８８】
なお、複数のＡＲ端末１０の内、少なくとも１台のＡＲ端末１０の移動距離が第２の閾値以上であった場合、制御部２２０は、全てのＡＲ端末１０の位置決定キーフレームを更新すると決定する。
【００８９】
また、類似度による判定処理の結果と移動距離による判定処理の結果では、移動距離による判定処理の結果が優先され得る。例えば、類似度による判定処理で複数のＡＲ端末１０の更新先候補キーフレームが類似していると判定されても、移動距離による判定処理で移動距離が第２の閾値以上であると判定された場合、制御部２２０は、位置決定キーフレームを更新すると判定する。
【００９０】
これは、ＡＲ端末１０が所定の距離以上を移動したことで、ＡＲ端末１０の自己位置の推定に誤差が生じている可能性があるためである。複数のＡＲ端末１０の更新先候補キーフレームが類似していても、当該誤差により、仮想オブジェクトの表示位置に相違が生じる可能性がある。
【００９１】
なお、ＡＲ端末における自己位置推定では、例えば、ＳＬＡＭによるトラッキング処理が行われる。当該トラッキング処理では、キーフレームに対応したカメラの座標位置と、慣性計測装置等のセンサの計測値に基づき算出される移動距離に基づき、ＡＲ端末１０の移動距離が算出される。ＡＲ端末１０の移動距離が第２の閾値以上であると、ＡＲ端末１０の自己位置推定結果は慣性計測装置等のセンサの計測値に基づき算出される移動距離部分への依存が大きくなっている可能性が高い。さらに、推定結果にドリフト誤差が多く乗っている可能性も高い。
【００９２】
よって、制御部２２０は、少なくとも１台のＡＲ端末１０の移動距離が第２の閾値以上であった場合、制御部２２０は、全てのＡＲ端末１０の位置決定キーフレームを更新すると決定する。また、制御部２２０は、類似度による判定処理で複数のＡＲ端末１０の更新先候補キーフレームが類似していると判定されても、移動距離による判定処理の結果に応じて位置決定キーフレームを更新するか否かを決定する。かかる構成により、仮想オブジェクトの表示位置の相違を軽減することができる。
【００９３】
（３）記憶部２３０
記憶部２３０は、サーバ２０における処理に関する情報を記憶する機能を有する。例えば、記憶部２３０は、制御部２２０が算出したスコアの最大値を記憶する。また、記憶部２３０は、各種アプリケーション等のプログラム、及びデータ等を記憶する。なお、記憶部２３０が記憶するデータは、上述の例に限定されない。
【００９４】
＜１−３．処理例＞
以上、本実施形態に係る機能構成例について説明した。続いて、図４〜７を参照しながら、本開示の実施形態に係る情報処理システム１０００における処理例について説明する。
【００９５】
（１）ローカライズ処理
まず、図４及び図５を参照しながら、ローカライズ処理について説明する。図４は、標準的なローカライズ処理の流れを示すフローチャートである。図５は、本開示の実施形態に係るローカライズ処理の流れを示すフローチャートである。なお、標準的なローカライズ処理は、標準的なＡＲ端末により行われるものとする。また、本実施形態に係るローカライズ処理は、本実施形態に係るＡＲ端末１０により行われるものとする。
【００９６】
（１−１）標準的なローカライズ処理
図４に示すように、まず、標準的なＡＲ端末は、撮像画像に対して特徴点の検出と特徴量の記述を行い、２次元特徴点を取得する（Ｓ１０２）。次いで、標準的なＡＲ端末は、標準的なＡＲ端末の記憶部に記憶されているマップＤＢのキーフレーム群に対して、取得した２次元特徴点を用いてキーフレームの検索を行い、出力画像の生成に用いるキーフレームを取得する（Ｓ１０４）。次いで、標準的なＡＲ端末は、取得したキーフレームの特徴点と撮像画像の特徴点との特徴点マッチングを行い、標準的なＡＲ端末の初期ポーズを推定する（Ｓ１０６）。そして、標準的なＡＲ端末は、取得したキーフレームと撮像画像との画像マッチングを行い、標準的なＡＲ端末の最終ポーズを推定する（Ｓ１０８）。
【００９７】
上述の標準的なローカライズ処理は、標準的なＡＲ端末が他の標準的なＡＲ端末とキーフレーム等の情報を共有することは行われない。よって、標準的なＡＲ端末では、他の標準的なＡＲ端末との位置関係を考慮した仮想オブジェクトの表示位置の決定は行われていない。
【００９８】
（１−２）本実施形態に係るローカライズ処理
図５に示すように、まず、ＡＲ端末１０は、撮像画像に対して特徴点の検出と特徴量の記述を行い、２次元特徴点を取得する（Ｓ２０２）。次いで、ＡＲ端末１０は、ＡＲ端末１０の記憶部１５０に記憶されているマップＤＢのキーフレーム群に対して、取得した２次元特徴点を用いてキーフレームの検索を行い、更新先候補キーフレームを取得する（Ｓ２０４）。次いで、ＡＲ端末１０は、更新先候補キーフレームをサーバ２０に送信し、サーバ２０にキーフレーム更新判定処理を行わせる（Ｓ２０６）。なお、キーフレーム更新判定処理の詳細は、後述される。
【００９９】
キーフレーム更新判定処理後、ＡＲ端末１０は、判定処理にて位置決定キーフレームを更新すると判定されたか否かを確認する（Ｓ２０８）。判定処理にて位置決定キーフレームを更新すると判定された場合（Ｓ２０８／ＹＥＳ）、ＡＲ端末１０は、位置決定キーフレームを更新し（Ｓ２１０）、Ｓ２１２の処理へ進む。判定処理にて位置決定キーフレームを更新しないと判定された場合（Ｓ２０８／ＮＯ）、ＡＲ端末１０は、位置決定キーフレームを更新せず、Ｓ２１２の処理へ進む。
【０１００】
Ｓ２１２では、ＡＲ端末１０は、位置決定キーフレームの特徴点と撮像画像の特徴点との特徴点マッチングを行う（Ｓ２１２）。特徴点マッチング後、ＡＲ端末１０は、特徴点がマッチングしたか否かを確認する（Ｓ２１４）。
【０１０１】
特徴点がマッチングしなかった場合（Ｓ２１４／ＮＯ）、ＡＲ端末１０は、Ｓ２１０から処理を繰り返す。特徴点がマッチングした場合（Ｓ２１４／ＹＥＳ）、ＡＲ端末１０は、ＡＲ端末１０の初期ポーズの推定を行う（Ｓ２１６）。そして、ＡＲ端末１０は、位置決定キーフレームと撮像画像との画像マッチングを行い、ＡＲ端末１０の最終ポーズを推定する（Ｓ２１８）。
【０１０２】
上述の本実施形態に係るローカライズ処理は、ＡＲ端末１０が他のＡＲ端末１０とサーバ２０上でキーフレームを共有している。そして、ＡＲ端末１０は、サーバ２０によるキーフレーム更新判定処理の結果に基づき、他の標準的なＡＲ端末との位置関係を考慮した仮想オブジェクトの表示位置を決定している。かかる構成により、複数のＡＲ端末が同一の仮想オブジェクトを表示する場合の表示位置の相違を軽減することができる。
【０１０３】
（２）キーフレーム更新判定処理
続いて、図６を参照しながら、本開示の実施形態に係るキーフレーム更新判定処理の流れを説明する。図６は、本開示の実施形態に係るキーフレーム更新判定処理の流れを示すフローチャートである。また、本実施形態に係るキーフレーム更新判定処理は、本実施形態に係るサーバ２０により行われるものとする。
【０１０４】
図６に示すように、まず、サーバ２０は、ＡＲ端末１０ａが取得した更新先候補キーフレームとＡＲ端末１０ｂが取得した更新先候補キーフレームとの類似度を示すスコアを算出する（Ｓ３０２）。スコアの算出後、サーバ２０は、スコアが第１の閾値以上であるか否かを確認する（Ｓ３０４）。
【０１０５】
スコアが第１の閾値以上でない場合（Ｓ３０４／ＮＯ）、サーバ２０は、位置決定キーフレームを更新すると判定し（Ｓ３１４）、キーフレーム更新判定処理を終了する。
【０１０６】
スコアが第１の閾値以上である場合（Ｓ３０４／ＹＥＳ）、サーバ２０は、スコアが最大値以上であるか否かを確認する（Ｓ３０６）。スコアが最大値以上である場合（Ｓ３０６／ＹＥＳ）、サーバ２０は、スコアの最大値を更新する（Ｓ３０８）。最大値の更新後、サーバ２０は、位置決定キーフレームを更新すると判定し（Ｓ３１４）、キーフレーム更新判定処理を終了する。
【０１０７】
スコアが最大値以上でない場合（Ｓ３０６／ＮＯ）、サーバ２０は、位置決定キーフレームの前回更新時以降、ＡＲ端末１０ａまたはＡＲ端末１０ｂの移動距離が第２の閾値以上であるか否かを確認する（Ｓ３１０）。
【０１０８】
移動距離が第２の閾値以上である場合（Ｓ３１０／ＹＥＳ）、サーバ２０は、スコアの最大値を０に更新する（Ｓ３１２）。最大値の更新後、サーバ２０は、位置決定キーフレームを更新すると判定し（Ｓ３１４）、キーフレーム更新判定処理を終了する。
【０１０９】
移動距離が第２の閾値以上でない場合（Ｓ３１０／ＮＯ）、サーバ２０は、位置決定キーフレームを更新しないと判定し（Ｓ３１６）、キーフレーム更新判定処理を終了する。
【０１１０】
（３）情報処理システム１０００における処理
続いて、図７を参照しながら、本開示の実施形態に係る情報処理システム１０００における処置の流れを説明する。図７は、本開示の実施形態に係る情報処理システム１０００における処理の流れを示すシーケンス図である。
【０１１１】
図７に示すように、まず、ＡＲ端末１０ａは、Ｓ２０２〜Ｓ２０４の処理の実行により更新先候補キーフレームを取得する（Ｓ４０２）。取得後、ＡＲ端末１０ａは、取得した更新先候補キーフレームをサーバ２０へ送信する（Ｓ４０４）。同様に、ＡＲ端末１０ｂは、Ｓ２０２〜Ｓ２０４の処理の実行により更新先候補キーフレームを取得する（Ｓ４０６）。取得後、ＡＲ端末１０ｂは、取得した更新先候補キーフレームをサーバ２０へ送信する（Ｓ４０８）。
【０１１２】
ＡＲ端末１０ａとＡＲ端末１０ｂから更新先候補キーフレームを受信したサーバ２０は、Ｓ２０６の実行により、キーフレーム更新判定処理を行う（Ｓ４１０）。キーフレーム更新判定処理後、サーバ２０は、判定結果をＡＲ端末１０ａとＡＲ端末１０ｂへ送信する（Ｓ４１２、Ｓ４１６）
【０１１３】
サーバ２０から判定結果を受信したＡＲ端末１０ａは、Ｓ２０８〜Ｓ２１８の処理を実行する（Ｓ４１４）。同様に、サーバ２０から判定結果を受信したＡＲ端末１０ｂは、Ｓ２０８〜Ｓ２１８の処理を実行する（Ｓ４１８）。
【０１１４】
＜１−４．具体例＞
以上、本実施形態に係る構成例について説明した。続いて、図８ａ〜図１１を参照しながら、本実施形態に係る具体例について説明する。以下では、位置決定キーフレームの更新に関する具体例について説明する。
【０１１５】
（１）第１の具体例
まず、図８ａ及び図８ｂを参照しながら、ユーザ１２ａとユーザ１２ｂが同じ方向を見ている際の位置決定キーフレームの更新例について説明する。図８ａは、本開示の実施形態に係る第１の具体例における複数のユーザ１２の位置関係を示す図である。図８ｂは、本開示の実施形態に係る第１の具体例における各々のユーザ１２の見え方を示す図である。なお、第１の具体例における時刻は時刻ｔ１であるものとする。
【０１１６】
図８ａに示すように、ＡＲ端末１０ａを装着したユーザ１２ａの視界４０ａには、お化け５０の仮想オブジェクトと観葉植物５１の実オブジェクトが含まれている。この時、ユーザ１２ａには、図８ｂの左側に示す図のように、お化け５０と観葉植物５１が見えている。
【０１１７】
また、ＡＲ端末１０ｂを装着したユーザ１２ｂの視界４０ｂにも、お化け５０の仮想オブジェクトと観葉植物５１の実オブジェクトが含まれている。この時、ユーザ１２ｂには、図８ｂの右側に示す図のように、お化け５０と観葉植物５１が見えている。
【０１１８】
時刻ｔ１においてキーフレーム更新判定処理が行われる場合、ＡＲ端末１０ａは、図８ｂの左側の図に示す撮像画像６０ａに基づき、更新先候補キーフレームを決定する。また、ＡＲ端末１０ｂは、図８ｂの右側の図に示す撮像画像６０ｂに基づき、更新先候補キーフレームを取得する。撮像画像６０ａと撮像画像６０ｂは類似しているため、各々の撮像画像に基づき取得される更新先候補キーフレームは、類似したものが取得される。よって、サーバ２０におけるキーフレーム更新判定処理では、ＡＲ端末１０が位置決定キーフレームを更新しないと判定される。そして、ＡＲ端末１０ａとＡＲ端末１０ｂでは位置決定キーフレームが更新されず、同一のキーフレームの使用が継続される。
【０１１９】
（２）第２の具体例
続いて、図９ａ及び図９ｂを参照しながら、ユーザ１２ａとユーザ１２ｂが異なる方向を見ている際の位置決定キーフレームの更新例について説明する。図９ａは、本開示の実施形態に係る第２の具体例における複数のユーザ１２の位置関係を示す図である。図９ｂは、本開示の実施形態に係る第２の具体例における各々のユーザ１２の見え方を示す図である。なお、第２の具体例における時刻は時刻ｔ２であるものとする。
【０１２０】
ユーザ１２ａは、第１の具体例の時刻ｔ１から、視界４０ａの方向及び位置を変更していない。よって、図９ａに示すように、ＡＲ端末１０ａを装着したユーザ１２ａの視界４０ａには、お化け５０の仮想オブジェクトと観葉植物５１の実オブジェクトが含まれている。この時、ユーザ１２ａには、図９ｂの左側に示す図のように、お化け５０と観葉植物５１が見えている。
【０１２１】
一方、ユーザ１２ｂは、第１の具体例に示した時刻ｔ１から、位置を変更していないが視界４０ｂの方向を変更している。よって、図９ａに示すように、ＡＲ端末１０ｂを装着したユーザ１２ｂの視界４０ｂには、花５２の実オブジェクトのみが含まれている。この時、ユーザ１２ｂには、図９ｂの右側に示す図のように、花５２が見えている。
【０１２２】
時刻ｔ２においてキーフレーム更新判定処理が行われる場合、ＡＲ端末１０ａは、図９ｂの左側の図に示す撮像画像６０ａに基づき、更新先候補キーフレームを決定する。また、ＡＲ端末１０ｂは、図９ｂの右側の図に示す撮像画像６０ｂに基づき、更新先候補キーフレームを取得する。撮像画像６０ａと撮像画像６０ｂは類似していないため、各々の撮像画像に基づき取得される更新先候補キーフレームは、類似していないものが取得される。よって、サーバ２０におけるキーフレーム更新判定処理では、ＡＲ端末１０が位置決定キーフレームを更新すると判定される。そして、ＡＲ端末１０ａとＡＲ端末１０ｂでは位置決定キーフレームが更新される。
【０１２３】
（３）第３の具体例
続いて、図１０ａ及び図１０ｂを参照しながら、ユーザ１２ａとユーザ１２ｂの位置関係が変更した際の位置決定キーフレームの更新例について説明する。図１０ａは、本開示の実施形態に係る第３の具体例における複数のユーザ１２の位置関係を示す図である。図１０ｂは、本開示の実施形態に係る第３の具体例における各々のユーザ１２の見え方を示す図である。なお、第３の具体例における時刻は時刻ｔ３であるものとする。
【０１２４】
ユーザ１２ａは、第２の具体例の時刻ｔ２から、視界４０ａの方向及び位置を変更していない。よって、図１０ａに示すように、ＡＲ端末１０ａを装着したユーザ１２ａの視界４０ａには、お化け５０の仮想オブジェクトと観葉植物５１の実オブジェクトが含まれている。この時、ユーザ１２ａには、図１０ｂの左側に示す図のように、お化け５０と観葉植物５１が見えている。
【０１２５】
一方、ユーザ１２ｂは、第２の具体例に示した時刻ｔ２から、視界４０ｂの方向を変更しているが、第１の具体例の時刻ｔ１と同一の方向に変更している。よって、図１０ａに示すように、ＡＲ端末１０ｂを装着したユーザ１２ｂの視界４０ｂには、お化け５０の仮想オブジェクトと観葉植物５１の実オブジェクトが含まれている。この時、ユーザ１２ｂには、図１０ｂの右側に示す図のように、お化け５０と観葉植物５１が見えている。しかしながら、ユーザ１２ｂは、第２の具体例に示した時刻ｔ２から、移動距離が第２の閾値以上となるように位置を変更している。
【０１２６】
時刻ｔ２においてキーフレーム更新判定処理が行われる場合、ＡＲ端末１０ａは、図１０ｂの左側の図に示す撮像画像６０ａに基づき、更新先候補キーフレームを決定する。また、ＡＲ端末１０ｂは、図１０ｂの右側の図に示す撮像画像６０ｂに基づき、更新先候補キーフレームを取得する。撮像画像６０ａと撮像画像６０ｂは類似しているため、各々の撮像画像に基づき取得される更新先候補キーフレームは、類似しているものが取得される。しかしながら、ユーザ１２ｂの移動距離が第２の閾値以上であるため、サーバ２０におけるキーフレーム更新判定処理では、位置決定キーフレームを更新すると判定される。そして、ＡＲ端末１０ａとＡＲ端末１０ｂでは位置決定キーフレームが更新される。
【０１２７】
（４）第４の具体例
最後に、図１１を参照しながら、上述した第１の具体例〜第３の具体例における位置決定キーフレームの時系列変化について説明する。図１１は、本開示の実施形態に係る第４の具体例におけるキーフレームの時系列変化を示す図である。
【０１２８】
図１１に示す表は、ＡＲ端末１０ａとＡＲ端末１０ｂの位置決定キーフレームの時系列変化を示している。なお、ＡＲ端末１０ａでは、位置決定キーフレーム１〜５が使用され、ＡＲ端末１０ｂでは、位置決定キーフレーム６〜１０が使用されるものとする。
【０１２９】
まず、時刻ｔ０から時刻ｔ１の間では、ＡＲ端末１０ａの位置決定キーフレームは、位置決定キーフレーム３、５、４、１の順に変化している。同様にまた、ＡＲ端末１０ｂの位置決定キーフレームは、位置決定キーフレーム８、１０、９、７の順に変化している。
【０１３０】
上述の第１の具体例で示したように、時刻ｔ１におけるキーフレーム更新判定処理では、ＡＲ端末１０が位置決定キーフレームを更新しないと判定されている。そのため、時刻ｔ１から時刻ｔ２になるまで、ＡＲ端末１０ａでは位置決定キーフレーム１が使用され続け、ＡＲ端末１０ｂでは位置決定キーフレーム７が使用され続けている。
【０１３１】
上述の第２の具体例で示したように、時刻ｔ２におけるキーフレーム更新判定処理では、ＡＲ端末１０が位置決定キーフレームを更新すると判定されている。そのため、時刻ｔ２から時刻ｔ３になるまで、ＡＲ端末１０ａの位置決定キーフレームは、位置決定キーフレーム３、１、２、１、４の順に変化している。同様に、ＡＲ端末１０ｂの位置決定キーフレームは、位置決定キーフレーム６、９、６、８、１０の順に変化している。
【０１３２】
上述の第３の具体例で示したように、時刻ｔ３におけるキーフレーム更新判定処理では、ＡＲ端末１０が位置決定キーフレームを更新すると判定されている。そのため、時刻ｔ３に以降、ＡＲ端末１０ａの位置決定キーフレームは、位置決定キーフレーム４、１、３、・・・の順に変化している。同様に、ＡＲ端末１０ｂの位置決定キーフレームは、位置決定キーフレーム１０、９、１０、・・・の順に変化している。
【０１３３】
＜１−５．変形例＞
以下では、本開示の実施形態の変形例を説明する。なお、以下に説明する変形例は、単独で本開示の実施形態に適用されてもよいし、組み合わせで本開示の実施形態に適用されてもよい。また、変形例は、本開示の実施形態で説明した構成に代えて適用されてもよいし、本開示の実施形態で説明した構成に対して追加的に適用されてもよい。
【０１３４】
（１）第１の変形例
上述の実施形態では、同一の仮想オブジェクトを共有するＡＲ端末１０が２台（ユーザ１２が２人）である例について説明したが、同一の仮想オブジェクトを共有するＡＲ端末１０の台数は特に限定されず、任意の台数であってよい。以下では、図１２を参照しながら、同一の仮想オブジェクトを共有するＡＲ端末１０が３台である例について説明する。図１２は、本開示の実施形態に係る第１の変形例におけるキーフレーム更新判定処理の流れを示すフローチャートである。
【０１３５】
サーバ２０は、同一の仮想オブジェクトを共有する全てのＡＲ端末１０から、更新先候補キーフレームを受信し、受信した更新先候補キーフレームの全組み合わせを考慮したキーフレーム更新判定処理を行う。例えば、サーバ２０は、受信した更新先候補キーフレームの全組み合わせにおける類似度のスコアを算出し、算出したスコアと最大値との比較を行う。また、サーバ２０は、全てのＡＲ端末１０の移動距離と第２の閾値との比較を行う。
【０１３６】
かかる構成により、サーバ２０は、同一の仮想オブジェクトを共有するＡＲ端末１０が３台以上であっても、キーフレーム更新判定処理を行うことができる。また、３台以上のＡＲ端末１０の各々は、当該キーフレーム更新判定処理の結果に基づき、３台以上の表示端末が同一の仮想オブジェクトを表示する場合の表示位置の相違を軽減することができる。
【０１３７】
ここで、図１２を参照しながら、第１の変形例におけるキーフレーム更新判定処理の流れを説明する。図１２に示すように、サーバ２０は、まず、Ｎ台のＡＲ端末１０から２台のＡＲ端末１０を選択する場合の全組み合わせ（ＮＣ２通り）において、更新先候補キーフレームの類似度を示すスコアを算出する（Ｓ５０２）。本変形例では、ＡＲ端末１０の台数は３台であるため、組み合わせは３Ｃ２＝３通りである。
【０１３８】
ＮＣ２個のスコアの算出後、サーバ２０は、ＮＣ２個のスコアが第１の閾値以上であるか否かを確認する（Ｓ５０４）。本変形例では、３Ｃ２個のスコアが第１の閾値以上であるか否かを確認する。
【０１３９】
スコアが第１の閾値以上でない場合（Ｓ５０４／ＮＯ）、サーバ２０は、位置決定キーフレームを更新すると判定し（Ｓ５１４）、キーフレーム更新判定処理を終了する。
【０１４０】
スコアが第１の閾値以上である場合（Ｓ５０４／ＹＥＳ）、サーバ２０は、ＮＣ２個のスコアの少なくともいずれか１個のスコアが最大値以上であるか否かを確認する（Ｓ５０６）。少なくともいずれか１個のスコアが最大値以上である場合（Ｓ５０６／ＹＥＳ）、サーバ２０は、スコアの最大値を更新する（Ｓ５０８）。最大値の更新後、サーバ２０は、位置決定キーフレームを更新すると判定し（Ｓ５１４）、キーフレーム更新判定処理を終了する。
【０１４１】
全てのスコアが最大値以上でない場合（Ｓ５０６／ＮＯ）、サーバ２０は、位置決定キーフレームの前回更新時以降、Ｎ台のＡＲ端末１０の少なくともいずれか１台の移動距離が第２の閾値以上であるか否かを確認する（Ｓ５１０）。
【０１４２】
少なくともいずれか１台の移動距離が第２の閾値以上である場合（Ｓ５１０／ＹＥＳ）、サーバ２０は、スコアの最大値を０に更新する（Ｓ５１２）。最大値の更新後、サーバ２０は、位置決定キーフレームを更新すると判定し（Ｓ５１４）、キーフレーム更新判定処理を終了する。
【０１４３】
少なくともいずれか１台の移動距離が所定の閾値以上でない場合（Ｓ５１０／ＮＯ）、サーバ２０は、位置決定キーフレームを更新しないと判定し（Ｓ５１６）、キーフレーム更新判定処理を終了する。
【０１４４】
（２）第２の変形例
上述の実施形態では、複数のＡＲ端末１０が同時刻において同一の仮想オブジェクトを共有する例について説明したが、複数のＡＲ端末１０が同一の仮想オブジェクトを共有する時刻は異なっていてもよい。以下では、図１３を参照しながら、複数のＡＲ端末１０が同一の仮想オブジェクトを共有する時刻が異なる例について説明する。図１３は、本開示の実施形態に係る第２の変形例におけるキーフレーム更新判定処理の流れを示すフローチャートである。
【０１４５】
ある時刻ｔ４に、仮想オブジェクトが表示される所定の位置において、ＡＲ端末１０ａのユーザ１２ａが、仮想オブジェクトを見たとする。ユーザ１２ａが当該仮想オブジェクトを見た時刻とは異なる時刻ｔ５にて、同じ所定の位置にて同じ仮想オブジェクトを見たとする。この時、ユーザ１２ｂのＡＲ端末１０ｂには、ユーザ１２ａが仮想オブジェクトを見た時と同じように仮想オブジェクトが表示されるべきである。
【０１４６】
具体例として、ＡＲ謎解きゲームやＡＲ脱出ゲーム等が挙げられる。例えば、ユーザ１２ａが部屋のある位置に仮想物を置き、部屋から去ったとする。続いて、ユーザ１２ｂが同じ部屋に入り、ユーザ１２ａが置いた仮想物の位置を把握する必要があるとする。この時、ユーザ１２ａが置いた仮想物の位置を、ユーザ１２ｂが正確に把握しないとゲームの進行に影響を及ぼす恐れがある。例えば、部屋の中に赤い椅子と青い椅子があり、ユーザ１２ａが仮想物を赤い椅子の上に置いたとする。しかしながら、ユーザ１２ｂが当該仮想物を見た時に位置ずれが生じ、仮想物が青い椅子の上に表示されたとする。この場合、ユーザ１２ｂは、ユーザ１２ａが仮想物を置いた位置の正解を知ることができず、ゲームをクリアできなくなってしまう。
【０１４７】
これを解消するためには、異なる時系列であっても、サーバ２０がＡＲ端末１０ａの更新先候補キーフレームとＡＲ端末１０ｂの更新先候補キーフレームとに基づき、仮想オブジェクトの表示を制御する必要がある。しかしながら、時刻ｔ５には、ユーザ１２ａのＡＲ端末１０ａがユーザ１２ｂのＡＲ端末１０ｂと同じ位置にいないため、サーバ２０は、当該位置におけるＡＲ端末１０ａの更新先候補キーフレームを取得することができない。
【０１４８】
そこで、サーバ２０の制御部２２０は、所定の位置と特定の位置関係にあるＡＲ端末１０ａの動作状態と、ＡＲ端末１０ａの動作状態とは異なる時系列における所定の位置と特定の関係にあるＡＲ端末１０ｂの動作状態との類似度を算出し、キーフレーム更新判定処理を行う。
【０１４９】
所定の位置との特定の位置関係は、例えば、ユーザ１２が所定の位置に表示される仮想オブジェクトを見ている時の所定の位置とＡＲ端末１０の位置関係である。よって、所定の位置との特定の位置関係にあるＡＲ端末１０の動作状態は、言い換えれば、ユーザ１２が所定の位置に表示される仮想オブジェクトを見ている時のＡＲ端末１０の動作状態のことである。
【０１５０】
例えば、サーバ２０は、所定の位置に表示される仮想オブジェクトを最初に見たユーザ１２ａのＡＲ端末１０ａの動作状態に基づき取得された位置決定キーフレームを、リファレンスとなるキーフレーム（以下、「キーフレームＸ」とも称される）として取得しておく。ユーザ１２ａとは異なる時刻に、ユーザ１２ｂが所定の位置に表示される仮想オブジェクトを見た時、サーバ２０は、ユーザ１２ｂのＡＲ端末１０ｂの動作状態に基づき取得された更新先候補キーフレームを取得する。そして、サーバ２０は、キーフレームＸとＡＲ端末１０ｂの更新先候補キーフレームとの類似度を算出し、キーフレーム更新判定処理を行う。
【０１５１】
かかる構成により、複数のユーザが同一の仮想オブジェクトを見る時刻が同一でなくても、複数の表示端末が同一の仮想オブジェクトを表示する場合の表示位置の相違を軽減することができる。
【０１５２】
ここで、図１３を参照しながら、第２の変形例におけるキーフレーム更新判定処理の流れを説明する。なお、最初に所定の位置を見たユーザ１２ａのＡＲ端末１０ａの位置決定キーフレームが、キーフレームＸであるものとする。また、キーフレーム更新判定処理は、ユーザ１２ｂがユーザ１２ａよりも遅い時刻に所定の位置を見た時に実行されたものとする。
【０１５３】
図１３に示すように、サーバ２０は、まず、ＡＲ端末１０ｂの位置決定キーフレームとキーフレームＸとの類似度を示すスコアを算出する（Ｓ６０２）。スコアの算出後、サーバ２０は、スコアが第１の閾値以上であるか否かを確認する（Ｓ６０４）。
【０１５４】
スコアが第１の閾値以上でない場合（Ｓ６０４／ＮＯ）、サーバ２０は、位置決定キーフレームを更新すると判定し（Ｓ６１４）、キーフレーム更新判定処理を終了する。
【０１５５】
スコアが第１の閾値以上である場合（Ｓ６０４／ＹＥＳ）、サーバ２０は、スコアが最大値以上であるか否かを確認する（Ｓ６０６）。スコアが最大値以上である場合（Ｓ６０６／ＹＥＳ）、サーバ２０は、スコアの最大値を更新する（Ｓ６０８）。最大値の更新後、サーバ２０は、位置決定キーフレームを更新すると判定し（Ｓ６１４）、キーフレーム更新判定処理を終了する。
【０１５６】
スコアが最大値以上でない場合（Ｓ６０６／ＮＯ）、サーバ２０は、位置決定キーフレームの前回更新時以降、ＡＲ端末１０ａまたはＡＲ端末１０ｂの移動距離が第２の閾値以上であるか否かを確認する（Ｓ６１０）。
【０１５７】
移動距離が第２の閾値以上である場合（Ｓ６１０／ＹＥＳ）、サーバ２０は、スコアの最大値を０に更新する（Ｓ６１２）。最大値の更新後、サーバ２０は、位置決定キーフレームを更新すると判定し（Ｓ６１４）、キーフレーム更新判定処理を終了する。
【０１５８】
移動距離が第２の閾値以上でない場合（Ｓ６１０／ＮＯ）、サーバ２０は、位置決定キーフレームを更新しないと判定し（Ｓ６１６）、キーフレーム更新判定処理を終了する。
【０１５９】
＜＜２．第２の実施形態＞＞
以上、第１の実施形態について説明した。続いて、本開示の第２の実施形態について説明する。上述の実施形態では、キーフレーム更新判定処理がサーバ２０にて行われる例を説明したが、キーフレーム更新処理はＡＲ端末１０で行われてもよい。
【０１６０】
第２の実施形態に係るＡＲ端末１０は、第１の実施形態で説明したＡＲ端末１０の機能に加え、第１の実施形態で説明したサーバ２０の制御部２２０と同一の機能をさらに有する。かかる構成により、第２の実施形態に係るＡＲ端末１０は、サーバ２０に依存することなく、キーフレーム更新判定処理を行うことができる。
【０１６１】
なお、キーフレーム更新判定処理を実行可能なＡＲ端末１０が複数存在する場合、各ＡＲ端末１０の処理能力に応じて、キーフレーム更新判定処理を行うＡＲ端末が決定されてもよい。例えば、処理能力に最も余裕があるＡＲ端末が、キーフレーム更新判定処理を行うと決定される。
【０１６２】
＜＜３．ハードウェア構成例＞＞
最後に、図１４を参照しながら、本実施形態に係る情報処理装置のハードウェア構成例について説明する。図１４は、本実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。なお、図１４に示す情報処理装置９００は、例えば、図３に示したサーバ２０を実現し得る。本実施形態に係るサーバ２０に処理は、ソフトウェアと、以下に説明するハードウェアとの協働により実現される。
【０１６３】
図１４に示すように、情報処理装置９００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０２、及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３を備える。また、情報処理装置９００は、ホストバス９０４、ブリッジ９０５、外部バス９０６、インタフェース９０７、入力装置９０８、出力装置９０９、ストレージ装置９１０、ドライブ９１１、接続ポート９１２、及び通信装置９１３を備える。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ハードウェア構成は、ここで示される構成要素以外の構成要素をさらに含んでもよい。
【０１６４】
ＣＰＵ９０１は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０２、ＲＡＭ９０３、又はストレージ装置９１０に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０２は、ＣＰＵ９０１に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ９０３には、例えば、ＣＰＵ９０１に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。これらはＣＰＵバスなどから構成されるホストバス９０４により相互に接続されている。ＣＰＵ９０１、ＲＯＭ９０２およびＲＡＭ９０３は、例えば、ソフトウェアとの協働により、図３を参照して説明した制御部２２０の機能を実現し得る。
【０１６５】
ＣＰＵ９０１、ＲＯＭ９０２、及びＲＡＭ９０３は、例えば、高速なデータ伝送が可能なホストバス９０４を介して相互に接続される。一方、ホストバス９０４は、例えば、ブリッジ９０５を介して比較的データ伝送速度が低速な外部バス９０６に接続される。また、外部バス９０６は、インタフェース９０７を介して種々の構成要素と接続される。
【０１６６】
入力装置９０８は、例えば、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチ及びレバー等、ユーザによって情報が入力される装置によって実現される。また、入力装置９０８は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置９００の操作に対応した携帯電話やＰＤＡ等の外部接続機器であってもよい。さらに、入力装置９０８は、例えば、上記の入力手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、ＣＰＵ９０１に出力する入力制御回路などを含んでいてもよい。情報処理装置９００のユーザは、この入力装置９０８を操作することにより、情報処理装置９００に対して各種のデータを入力したり処理動作を指示したりすることができる。
【０１６７】
他にも、入力装置９０８は、ユーザに関する情報を検知する装置により形成され得る。例えば、入力装置９０８は、画像センサ（例えば、カメラ）、深度センサ（例えば、ステレオカメラ）、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサ、測距センサ（例えば、ＴｏＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）センサ）、力センサ等の各種のセンサを含み得る。また、入力装置９０８は、情報処理装置９００の姿勢、移動速度等、情報処理装置９００自身の状態に関する情報や、情報処理装置９００の周辺の明るさや騒音等、情報処理装置９００の周辺環境に関する情報を取得してもよい。また、入力装置９０８は、ＧＮＳＳ（Ｇｌｏｂａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ）衛星からのＧＮＳＳ信号（例えば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）衛星からのＧＰＳ信号）を受信して装置の緯度、経度及び高度を含む位置情報を測定するＧＮＳＳモジュールを含んでもよい。また、位置情報に関しては、入力装置９０８は、Ｗｉ−Ｆｉ（登録商標）、携帯電話・ＰＨＳ・スマートフォン等との送受信、または近距離通信等により位置を検知するものであってもよい。
【０１６８】
出力装置９０９は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で形成される。このような装置として、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置、レーザープロジェクタ、ＬＥＤプロジェクタ及びランプ等の表示装置や、スピーカ及びヘッドフォン等の音声出力装置や、プリンタ装置等がある。出力装置９０９は、例えば、情報処理装置９００が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置９００が行った各種処理により得られた結果を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。
【０１６９】
ストレージ装置９１０は、情報処理装置９００の記憶部の一例として形成されたデータ格納用の装置である。ストレージ装置９１０は、例えば、ＨＤＤ等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により実現される。ストレージ装置９１０は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置９１０は、ＣＰＵ９０１が実行するプログラムや各種データ及び外部から取得した各種のデータ等を格納する。ストレージ装置９１０は、例えば、図３を参照して説明した記憶部２３０の機能を実現し得る。
【０１７０】
ドライブ９１１は、記憶媒体用リーダライタであり、情報処理装置９００に内蔵、あるいは外付けされる。ドライブ９１１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、ＲＡＭ９０３に出力する。また、ドライブ９１１は、リムーバブル記憶媒体に情報を書き込むこともできる。
【０１７１】
接続ポート９１２は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器を接続するためのポートである。
【０１７２】
通信装置９１３は、例えば、ネットワーク９２０に接続するための通信デバイス等で形成された通信インタフェースである。通信装置９１３は、例えば、有線若しくは無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）又はＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード等である。また、通信装置９１３は、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ又は各種通信用のモデム等であってもよい。この通信装置９１３は、例えば、インターネットや他の通信機器との間で、例えばＴＣＰ／ＩＰ等の所定のプロトコルに則して信号等を送受信することができる。通信装置９１３は、例えば、図３を参照して説明した通信部２１０の機能を実現し得る。
【０１７３】
なお、ネットワーク９２０は、ネットワーク９２０に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク９２０は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ｅｔｈｅｒｎｅｔ（登録商標）を含む各種のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを含んでもよい。また、ネットワーク９２０は、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などの専用回線網を含んでもよい。
【０１７４】
以上、本実施形態に係る情報処理装置９００の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて実現されていてもよいし、各構成要素の機能に特化したハードウェアにより実現されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【０１７５】
＜＜４．補足＞＞
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１７６】
また、本明細書において説明した各装置による一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記録媒体（非一時的な媒体：ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｍｅｄｉａ）に予め格納される。そして、各プログラムは、例えば、コンピュータによる実行時にＲＡＭに読み込まれ、ＣＰＵなどのプロセッサにより実行される。
【０１７７】
また、本明細書においてフローチャート及びシーケンス図を用いて説明した処理は、必ずしも図示された順序で実行されなくてもよい。いくつかの処理ステップは、並列的に実行されてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。
【０１７８】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０１７９】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御する制御部、
を備え、
前記制御部は、第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定する、情報処理装置。
（２）
前記制御部は、前記第１の動作状態と前記第２の動作状態とが類似しているか否かに応じて、前記第１の空間情報及び前記第２の空間情報を更新するか否かを決定する、前記（１）に記載の情報処理装置。
（３）
前記第１の動作状態と前記第２の動作状態とが類似している場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新しないと決定し、
前記第１の動作状態と前記第２の動作状態とが類似していない場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新すると決定する、前記（２）に記載の情報処理装置。
（４）
前記制御部は、前記第１の動作状態と前記第２の動作状態との類似度を算出し、前記類似度と第１の閾値との比較結果に応じて、前記第１の動作状態と前記第２の動作状態とが類似しているか否かを判定する、前記（２）または（３）に記載の情報処理装置。
（５）
前記制御部は、前記第１の動作状態において前記第１の表示端末が取得した更新先候補である第３の空間情報と、前記第２の動作状態において前記第２の表示端末が取得した更新先候補である第４の空間情報とに基づき、前記類似度を算出する、前記（４）に記載の情報処理装置。
（６）
前記制御部は、前記第３の空間情報に含まれる特徴点と、前記第４の空間情報に含まれる特徴点とのマッチング処理を行い、マッチングした特徴点の数に基づいて前記類似度を算出する、前記（５）に記載の情報処理装置。
（７）
前記制御部は、前記第１の表示端末と前記第２の表示端末との位置関係に応じて、前記第１の閾値を変更する、前記（４）に記載の情報処理装置。
（８）
前記制御部は、前記類似度が第３の閾値を超えるか否かに応じて、前記第１の空間情報及び前記第２の空間情報を更新するか否かをさらに決定し、
前記第３の閾値は、所定の条件が満たされる期間において算出された類似度の最大値である、前記（４）〜（７）のいずれか１項に記載の情報処理装置。
（９）
前記類似度が前記第３の閾値を超える場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新すると決定し、
前記類似度が前記第３の閾値を超えない場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新しないと決定する、前記（８）に記載の情報処理装置。
（１０）
前記制御部は、前記第１の空間情報及び前記第２の空間情報の前回更新時以降の前記第１の表示端末の移動距離または前記第２の表示端末の移動距離に応じて、前記第１の空間情報及び前記第２の空間情報を更新するか否かをさらに決定する、前記（２）〜（９）のいずれか１項に記載の情報処理装置。
（１１）
前記移動距離が第２の閾値以上である場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新すると決定し、
前記移動距離が第２の閾値以上でない場合、
前記制御部は、前記第１の空間情報及び前記第２の空間情報を更新しないと決定する、前記（１０）に記載の情報処理装置。
（１２）
前記制御部は、所定の位置と特定の位置関係にある前記第１の動作状態と、前記第１の動作状態とは異なる時系列における前記所定の位置と特定の関係にある前記第２の動作状態との前記類似度を算出する、前記（４）に記載の情報処理装置。
（１３）
第１のユーザに対して、仮想オブジェクトを提示する第１の出力装置を有する出力部と、
実空間に関連付けた座標系に配置する前記仮想オブジェクトの位置を決定する制御部と、
を備え、
前記制御部は、前記第１の出力装置の第１の動作状態と、前記第１の出力装置と前記仮想オブジェクトを共有する外部の第２の出力装置の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の出力装置の第１の空間情報及び前記第２の出力装置の第２の空間情報を更新するか否かを決定する、情報処理装置。
（１４）
実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御することと、
第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定することと、
を含む、プロセッサにより実行される情報処理方法。
（１５）
コンピュータに、
実空間に関連付けられた座標系を用いて仮想オブジェクトを前記実空間に配置する表示端末を制御することと、
第１の表示端末の第１の動作状態と、前記第１の表示端末と前記仮想オブジェクトを共有する第２の表示端末の第２の動作状態とに基づき、前記仮想オブジェクトの位置の決定に用いられる前記第１の表示端末の第１の空間情報及び前記第２の表示端末の第２の空間情報を更新するか否かを決定することと、
を実行させるためのプログラムが記録された記録媒体。
【符号の説明】
【０１８０】
１０  ＡＲ端末
１２  ユーザ
２０  サーバ
３０  ネットワーク
１２０  通信部
１３０  センサ部
１４０  制御部
１５０  記憶部
１６０  出力部
２１０  通信部
２２０  制御部
２３０  記憶部
１０００  情報処理システム
１４０２  周辺状況情報取得部
１４０４  周辺状況情報管理部
１４０６  空間情報取得部
１４０８  空間情報管理部
１４１０  画像出力制御部
１４１２  出力画像生成部
【図１】
2020173656.tif 000003
【図２】
2020173656.tif 000004
【図３】
2020173656.tif 000005
【図４】
2020173656.tif 000006
【図５】
2020173656.tif 000007
【図６】
2020173656.tif 000008
【図７】
2020173656.tif 000009
【図８ａ】
2020173656.tif 000010
【図８ｂ】
2020173656.tif 000011
【図９ａ】
2020173656.tif 000012
【図９ｂ】
2020173656.tif 000013
【図１０ａ】
2020173656.tif 000014
【図１０ｂ】
2020173656.tif 000015
【図１１】
2020173656.tif 000016
【図１２】
2020173656.tif 000017
【図１３】
2020173656.tif 000018
【図１４】
2020173656.tif 000019