(57)【要約】【課題】現実空間において取り扱い可能な物体に対応する対象物の仮想オブジェクトを現実空間の画像に重畳する場合における表示の違和感を緩和する。【解決手段】ＡＲマーカ推定部１２が、撮影装置によって現実空間を撮影した画像から、現実空間に存在する取り扱い可能な物体に対応付けて配置された第１の指標を検出することにより、物体の３次元位置及び姿勢を推定し、トラッキング推定部１４が、検出装置により、物体に対応付けて配置された第２の指標を検出することにより、物体の３次元位置及び姿勢を推定し、選択部１６が、第１の指標に基づく第１の推定結果と、検出時刻が撮影時刻と対応する第２の指標に基づく第２の推定結果との比較に基づいて、第１の推定結果又は第２の推定結果を選択し、表示制御部１８が、選択した推定結果に基づいて、現実空間を撮影した画像に、物体に対応する仮想オブジェクトを重畳した画像を表示する。【選択図】図６
2019175294.tif 000002
【特許請求の範囲】
【請求項１】
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第１の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第２の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
前記第１の指標に基づく前記物体の３次元位置及び姿勢の第１の推定結果と、前記第２の指標に基づく前記物体の３次元位置及び姿勢の第２の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第２の推定結果との比較に基づいて、前記第１の推定結果又は前記第２の推定結果を選択し、
選択した前記第１の推定結果又は前記第２の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータに実行させるための表示制御プログラム。
【請求項２】
前記撮影時刻以前の所定時間内の複数の検出時刻に検出された前記第２の指標に基づく前記第２の推定結果のうち、前記第１の推定結果を示すベクトルと、前記第２の推定結果を示すベクトルとの差が予め定めた閾値以内で最小となる前記第２の推定結果を、前記第１の推定結果と対応する前記第２の推定結果とする請求項１に記載の表示制御プログラム。
【請求項３】
前記第１の推定結果と対応する前記第２の推定結果が存在する場合、前記第１の推定結果を選択し、前記第１の推定結果と対応する前記第２の推定結果が存在しない場合、前記第２の推定結果を選択する請求項２に記載の表示制御プログラム。
【請求項４】
前記第２の推定結果を選択する場合、過去に前記第１の推定結果を選択した際の前記第１の推定結果と、前記第１の推定結果と対応する前記第２の推定結果との差を、選択した前記第２の推定結果に加算した値が示す前記物体の３次元位置及び姿勢に基づいて、前記仮想オブジェクトを重畳する請求項３に記載の表示制御プログラム。
【請求項５】
前記閾値を、前記第１の指標の全体が含まれるように撮影された画像から検出された前記第１の指標に基づいて推定した前記第１の推定結果と、前記第１の指標の全体が含まれるように撮影された画像の撮影時刻と対応する検出時刻に検出された第２の指標に基づく前記第２の推定結果との差に基づいて算出する請求項２〜請求項４のいずれか１項に記載の表示制御プログラム。
【請求項６】
複数の異なる前記第１の指標の各々を、複数の前記物体の各々に配置し、前記第２の指標を、前記物体を保持する部位に配置する請求項１〜請求項５のいずれか１項に記載の表示制御プログラム。
【請求項７】
前記第１の指標は、前記物体の３次元位置及び姿勢に対して既知の３次元位置及び姿勢で配置されたマーカであり、前記撮影された画像上での前記マーカの位置及び姿勢に基づいて、前記物体の３次元位置及び姿勢を推定する請求項１〜請求項６のいずれか１項に記載の表示制御プログラム。
【請求項８】
前記第２の指標は、ＶＲトラッカーであり、前記検出装置は、前記ＶＲトラッカーの方向及び距離の情報を含むトラッキングデータを検出する請求項１〜請求項７のいずれか１項に記載の表示制御プログラム。
【請求項９】
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第１の指標を検出することにより、前記物体の３次元位置及び姿勢を推定する第１推定部と、
検出装置により、前記物体に対応付けて配置された第２の指標を検出することにより、前記物体の３次元位置及び姿勢を推定する第２推定部と、
前記第１の指標に基づく前記物体の３次元位置及び姿勢の第１の推定結果と、前記第２の指標に基づく前記物体の３次元位置及び姿勢の第２の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第２の推定結果との比較に基づいて、前記第１の推定結果又は前記第２の推定結果を選択する選択部と、
選択した前記第１の推定結果又は前記第２の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する表示制御部と、
を含む表示制御装置。
【請求項１０】
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第１の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第２の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
前記第１の指標に基づく前記物体の３次元位置及び姿勢の第１の推定結果と、前記第２の指標に基づく前記物体の３次元位置及び姿勢の第２の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第２の推定結果との比較に基づいて、前記第１の推定結果又は前記第２の推定結果を選択し、
選択した前記第１の推定結果又は前記第２の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータが実行する表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、表示制御プログラム、表示制御装置、及び表示制御方法に関する。
【背景技術】
【０００２】
作業手順や工具類使用技術の習得を行う上で、特に工具類が危険であったり、大がかりであったり、高所作業や火災現場といった危険を伴う場所であったりする場合、実際に同じ条件で技術習得の場を用意するには、安全面の確保等も含め、手間やコストがかかる。
【０００３】
それらの問題を解決するために、Virtual Reality（ＶＲ）技術を利用して、仮想的に体験やトレーニングさせることが提案、及び一部製品化され始めている。これらの多くは、操作対象物を操作する自身の手も含め全てが仮想空間内での表現であることが多く、臨場感の点で弱い部分がある。
【０００４】
そこで、Head Mounted Display（ＨＭＤ）にカメラを装着し、実映像を仮想空間に持ち込む、いわゆるMixed Reality（ＭＲ）を適用することが考えられる。例えば、ＭＲに関する従来技術として、広い範囲で移動するプレーヤを精度良く補足して複合現実感を提示する装置が提案されている。この装置は、既知の位置に配置された複数のマーカを有する作業台と、プレーヤの頭部姿勢を検出するためにプレーヤに装着される姿勢センサと、複数のマーカのうちの少なくとも１つが視野に入るように設定されたカメラとを具備する。そして、この装置は、姿勢センサからの出力に基づいて頭部位置を検出すると共に、検出された頭部位置信号を、カメラの画像信号を画像処理してカメラの位置を検出することにより補正する。さらに、この装置は、補正された頭部位置に応じた視点位置に複合現実感を提示するように仮想画像を生成する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１３６７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ＶＲトラッキングセンサ（従来技術における姿勢センサ）は、利用者が装着しているＨＭＤの位置や向き等の値を一定の精度で取得することができるが、ＭＲにおいては、カメラがとらえた対象物と仮想空間上の対象物との位置のズレが、利用者に違和感を与える。特に、利用者が対象物を保持したり、操作したりする場合、仮想空間上の対象物に対する視覚と、実際の対象物に対する触覚とのズレが発生する。なお、現実物を仮想空間に持ち込まず、仮想物のみを表示する場合には、実際の対象物の位置と仮想空間上の対象物の位置とのズレは、利用者に大きな影響を与えない。
【０００７】
また、マーカを使用して対象物の位置を検出する場合、例えば、図２６のＡに示すように、画像内にマーカが良好に映る場合には、対象物の位置及び姿勢を精度良く検出することができる。しかし、例えば、図２６のＢに示すように、マーカの一部しか映っていない場合には、対象物の位置を精度良く検出することができない。図２６のＣに示すように、マーカがカメラから離れた位置にあり、画像内でのマーカのサイズが小さ過ぎる場合、及び図２６のＤに示すように、カメラ映像のブレにより、画像内にマーカが映っていても、マーカを検出できない場合も同様である。これを補うために、従来技術のように、マーカを多数配置する場合には、複数のマーカの各々についてキャリブレーションや配置の管理などを行う必要があり、処理負荷が増大する。
【０００８】
一つの側面として、現実空間において取り扱い可能な物体に対応する対象物の仮想オブジェクトを現実空間の画像に重畳する場合における表示の違和感を緩和することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様として、開示の技術は、撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第１の指標を検出することにより、前記物体の３次元位置及び姿勢を推定する。また、検出装置により、前記物体に対応付けて配置された第２の指標を検出することにより、前記物体の３次元位置及び姿勢を推定する。そして、前記第１の指標に基づく前記物体の３次元位置及び姿勢の第１の推定結果と、前記第２の指標に基づく前記物体の３次元位置及び姿勢の第２の推定結果との比較に基づいて、前記第１の推定結果又は前記第２の推定結果を選択する。第２の推定結果は、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第２の推定結果である。そして、選択した前記第１の推定結果又は前記第２の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する。
【発明の効果】
【００１０】
開示の技術は、一つの側面として、現実空間において取り扱い可能な物体に対応する仮想オブジェクトを現実空間の画像に重畳する場合における表示の違和感を緩和することができる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係るＶＲシステムの構成を示す概略図である。
【図２】ハンドル模型及びＡＲマーカを説明するための図である。
【図３】ハンドル模型、ＡＲマーカ、及びＶＲトラッカーを説明するための図である。
【図４】第１実施形態に係るＶＲシステムの各構成の配置の一例を示す概略図である。
【図５】ハンドル模型の取り扱いを説明するための図である。
【図６】第１実施形態に係る表示制御装置の機能ブロック図である。
【図７】第１実施形態における仮想オブジェクトを説明するための図である。
【図８】トラッキング推定部が保持する履歴テーブルの一例を示す図である。
【図９】閾値の算出を説明するための図である。
【図１０】閾値データベースの一例を示す図である。
【図１１】閾値データベースの他の例を示す図である。
【図１２】ＡＲマーカ推定部の推定結果とトラッキング推定部の推定結果との対応を説明するための図である。
【図１３】ＡＲマーカ推定部の推定結果とトラッキング推定部の推定結果との対応を説明するための図である。
【図１４】第１実施形態におけるＶＲ画像の一例を示す図である。
【図１５】第１及び第２実施形態に係る表示制御装置として機能するコンピュータの概略構成を示すブロック図である。
【図１６】第１実施形態における閾値算出処理の一例を示すフローチャートである。
【図１７】第１実施形態における表示制御処理の一例を示すフローチャートである。
【図１８】信頼性のないＡＲマーカに基づく推定結果を用いた場合のＶＲ画像の一例を示す図である。
【図１９】第２実施形態に係るＶＲシステムの構成を示す概略図である。
【図２０】ノズル模型、ＡＲマーカ、及びＶＲトラッカーを説明するための図である。
【図２１】ノズル模型、ＡＲマーカ、及びＶＲトラッカーを説明するための図である。
【図２２】第２実施形態に係る表示制御装置の機能ブロック図である。
【図２３】第２実施形態における仮想オブジェクトを説明するための図である。
【図２４】仮想オブジェクトの切り替えを説明するための図である。
【図２５】第２実施形態における切替処理の一例を示すフローチャートである。
【図２６】画像からのマーカの検出を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して開示の技術に係る実施形態の一例を詳細に説明する。
【００１３】
＜第１実施形態＞
第１実施形態では、一例として、消火器の使い方を仮想体験するためのＶＲ画像を表示する場合について説明する。なお、現実空間において取り扱い可能な物体を、消火器のハンドル部分を模した模型とする。また、そのハンドル部分に対応した消火器全体の仮想的な３次元のオブジェクト（以下、「仮想オブジェクト」という）を、現実空間の画像に重畳して描画する場合について説明する。
【００１４】
図１に示すように、第１実施形態に係るVirtual Reality（ＶＲ）システム１００は、表示制御装置１０と、ＶＲトラッキング装置３１と、ステレオカメラ３２と、Head Mounted Display（ＨＭＤ）３３とを含む。さらに、ＶＲシステム１００は、ハンドル模型３４と、Augmented Reality（ＡＲ）マーカ３５と、ＶＲトラッカー３６とを含む。
【００１５】
ＶＲトラッキング装置３１は、例えば、１又は複数のレーザレーダで実現することができる。各レーザレーダは、レーザを照射し、ＨＭＤ３３及びＶＲトラッカー３６の各々の受光部で反射したレーザを受光し、レーザの照射方向及び受光部までの距離の情報を含むトラッキングデータを計測する。ＶＲトラッキング装置３１は、計測したトラッキングデータを表示制御装置１０へ出力する。なお、ＶＲトラッキング装置３１は、開示の技術の検出装置の一例である。
【００１６】
ステレオカメラ３２は、ＨＭＤ３３に取り付けられており、右眼用及び左眼用の可視光カメラの各々により、ＨＭＤ３３を装着した装着者４０の視界を想定した範囲を、所定のフレームレートで撮影する。ステレオカメラ３２は、撮影により得られた右眼用画像及び左眼用画像を表示制御装置１０へ出力する。なお、ステレオカメラ３２は、開示の技術の撮影装置の一例である。
【００１７】
ＨＭＤ３３は、表示制御装置１０から出力された右眼用ＶＲ画像及び左眼用ＶＲ画像を取得し、ディスプレイに立体視画像を表示する。なお、本実施形態におけるＶＲ画像とは、ステレオカメラ３２で撮影された現実空間の画像に、対象物である消火器を示す仮想的な３次元のオブジェクトが重畳された画像である。なお、ＨＭＤ３３は、開示の技術の表示装置の一例である。
【００１８】
ハンドル模型３４は、ＨＭＤ３３の装着者が実際に保持したり操作したりして取り扱うことが可能な物体であり、本実施形態では、消火器のハンドル部分に相当する物体である。なお、ハンドル模型３４は、開示の技術の物体の一例である。
【００１９】
ＡＲマーカ３５は、予め登録された図形のマーカであり、ハンドル模型３４との位置関係が固定された予め定めた位置に配置される。例えば、図２に示すように、ＡＲマーカ３５は、ハンドル模型３４を支える支柱３７に設けられ台座３８に貼付される。また、色々な角度から撮影された場合でも、ステレオカメラ３２の画角内に、図２６のＡに示すような良好な状態のＡＲマーカ３５が含まれるように、複数の面を持つ台座３８に複数のＡＲマーカ３５を貼付することができる。なお、ＡＲマーカ３５は、開示の技術の第１の指標の一例である。
【００２０】
ＶＲトラッカー３６は、ＶＲトラッキング装置３１から照射されるレーザを受光する受光部を有し、ＶＲトラッカー３６が取り付けられた物体の位置及び姿勢を検出するための装置である。ＶＲトラッカー３６は、ハンドル模型３４との位置関係が固定された予め定めた位置に配置される。例えば、図３に示すように、ＶＲトラッカー３６は、ハンドル模型３４を支える支柱３７の端部に取り付けることができる。なお、ＶＲトラッカー３６は、開示の技術の第２の指標の一例である。
【００２１】
図４に、ＶＲシステム１００の各構成の配置の一例を概略的に示す。ステレオカメラ３２付きのＨＭＤ３３は、装着者４０の頭部に装着される。ハンドル模型３４は、図５に示すように、装着者４０に保持又は操作される。ＶＲトラッキング装置３１は、各レーザレーダの計測範囲に、装着者４０に装着されたＨＭＤ３３、及び装着者４０に保持されたハンドル模型３４に対応する位置に配置されたＶＲトラッカー３６が含まれる位置に配置される。例えば、装着者４０が立つことが想定される位置を挟む対角線上の位置に配置される。
【００２２】
表示制御装置１０は、機能的には、図６に示すように、ＡＲマーカ推定部１２と、トラッキング推定部１４と、閾値算出部１５と、選択部１６と、表示制御部１８とを含む。ＡＲマーカ推定部１２は、開示の技術の第１推定部の一例であり、トラッキング推定部１４は、開示の技術の第２推定部の一例であり、閾値算出部１５は、開示の技術の算出部の一例である。また、表示制御装置１０の所定の記憶領域には、閾値データベース（ＤＢ）２１と、オブジェクトＤＢ２２とが記憶される。
【００２３】
閾値ＤＢ２１には、後述する選択部１６で使用される閾値が記憶されている（詳細は後述）。
【００２４】
オブジェクトＤＢ２２には、現実空間の映像に重畳表示する仮想オブジェクトの３次元データが記憶されている。本実施形態では、仮想オブジェクトには、消火器を示す仮想オブジェクトが含まれる。より具体的には、図７に示すように、消火器全体を示す仮想オブジェクト３９に含まれるハンドル部分は、現実空間におけるハンドル模型３４に対応する形状である。また、オブジェクトＤＢ２２には、消火器を示す仮想オブジェクト３９以外のオブジェクト（例えば、炎を示すオブジェクト等）が含まれていてもよい。
【００２５】
ＡＲマーカ推定部１２は、ステレオカメラ３２から出力された右眼用画像及び左眼用画像の各々を取得し、右眼用画像及び左眼用画像の各々から、パターンマッチングなどの画像認識処理により、予め登録された図形であるＡＲマーカ３５を検出する。ＡＲマーカ推定部１２は、右眼用画像及び左眼用画像の各々から検出したＡＲマーカ３５と、ステレオカメラ３２の両眼視差とに基づいて、カメラ座標系におけるＡＲマーカ３５の３次元位置及び姿勢（各座標軸に対する角度）を推定する。
【００２６】
トラッキング推定部１４は、トラッキング装置３１から出力されたトラッキングデータを取得する。そして、トラッキング推定部１４は、トラッキングデータに基づいて、ワールド座標系（仮想空間座標系）におけるＨＭＤ３３及びＶＲトラッカー３６の各々の３次元位置及び姿勢を推定する。
【００２７】
また、トラッキング推定部１４は、後述する選択部１６の処理で使用するため、所定時間分のＶＲトラッカー３６についての推定結果の履歴を保持する。図８に、トラッキング推定部１４が保持する履歴テーブル２３の一例を示す。図８の例では、履歴テーブル２３は、Ｎ個分の推定結果を保持可能である。「履歴番号」は、推定された時刻が新しい順に各推定結果に付与された、１、２、・・・、Ｎの番号である。「３次元位置」及び「姿勢」は、各履歴番号に対応する推定結果である。Ｎの値は、ステレオカメラ３２のフレームレート、及び後述するＡＲマーカ推定部１２による推定と、トラッキング推定部１４による推定との処理時間の差の最大値に基づく値を設定することができる。
【００２８】
なお、ハンドル模型３４に対するＡＲマーカ３５及びＶＲトラッカー３６の各々の配置は既知である。そのため、ＡＲマーカ３５及びＶＲトラッカー３６の３次元位置及び姿勢を推定することは、ハンドル模型３４の３次元位置及び姿勢を推定することに対応する。さらに、消火器を示す仮想オブジェクト３９は、図７に示すように、現実空間のハンドル模型３４に対応する。すなわち、ＡＲマーカ３５及びＶＲトラッカー３６の３次元位置及び姿勢を推定することは、消火器を示す仮想オブジェクト３９の３次元位置及び姿勢を推定することに相当する。
【００２９】
閾値算出部１５は、ＡＲマーカ３５が、例えば図２６のＡに示すように良好に含まれる画像から検出されたＡＲマーカ３５に基づいて、ＡＲマーカ推定部１２により推定された推定結果を取得する。また、閾値算出部１５は、ＡＲマーカ３５が良好に含まれる画像が撮影された際に検出されトラッキングデータに基づいてトラッキング推定部１４により推定された推定結果も取得する。
【００３０】
例えば、ＡＲマーカ３５及びＶＲトラッカー３６が対応付けて配置されたハンドル模型３４を、図９に示すように、装着者４０に対して左上、右上、中央、左下、及び右下となる位置の各々に配置する。この際、ＨＭＤ３３を装着した装着者４０が中央を注視した状態で、ＨＭＤ３３に配置されたステレオカメラ３２により撮影される画像に、ＡＲマーカ３５の全体が含まれるように配置する。そして、閾値算出部１５は、各位置で撮影された画像に基づいてＡＲマーカ推定部１２で推定された推定結果、及び各位置で検出されたトラッキングデータに基づいてトラッキング推定部１４で推定された推定結果を取得する。なお、閾値の算出では、後述するＡＲマーカ推定部１２による推定と、トラッキング推定部１４による推定との処理時間の差を考慮する。具体的には、ＡＲマーカ３５及びＶＲトラッカー３６が対応付けて配置されたハンドル模型３４を、各位置に所定時間停止させた状態で、画像の撮影及びトラッキングデータの検出を行う。
【００３１】
そして、閾値算出部１５は、各位置について推定されたＡＲマーカ推定部１２の推定結果とトラッキング推定部１４の推定結果との差の最大値を、後述する選択部１６において、推定結果の対応付けを行う際の閾値として算出する。閾値算出部１５は、算出した閾値を、閾値ＤＢ２１に記憶する。
【００３２】
図１０に、閾値ＤＢ２１の一例を示す。図１０の例では、各位置（左上、右上、中央、左下、及び右下）において、ＡＲマーカ推定部１２及びトラッキング推定部１４の各々で推定された３次元位置間の距離の最大値が、「距離閾値」として記憶されている。同様に、各位置において、ＡＲマーカ推定部１２及びトラッキング推定部１４の各々で推定された姿勢間の差の最大値が、「姿勢閾値」として記憶されている。
【００３３】
なお、上記の例では、消火器（ハンドル模型３４）が手に持って操作するものであることを考慮して、手を伸ばした範囲内の数点の位置で、画像の撮影及びトラッキングデータの検出を行うこととしているが、この例に限定されない。４点以下の位置で画像の撮影及びトラッキングデータの検出を行ってもよいし、６点以上の位置で行ってもよい。また、各位置でハンドル模型３４の姿勢を変更してもよい。また、Ｎ領域に分割した領域毎に閾値を算出してもよい。図１１に、この場合の閾値ＤＢ２１Ａの一例を示す。「領域」は、仮想空間を複数の領域に分割した際の各領域を識別する情報である。ＡＲマーカ３５又はＶＲトラッカー３６について推定された位置が、仮想空間のいずれの領域に含まれるかに応じて、対応する閾値が利用される。
【００３４】
選択部１６は、ＡＲマーカ推定部１２の推定結果と、そのＡＲマーカ推定部１２と対応するトラッキング推定部１４の推定結果との比較に基づいて、いずれかの推定結果を選択する。
【００３５】
ここで、ＡＲマーカ推定部１２の推定結果と、トラッキング推定部１４の推定結果との対応関係について説明する。
【００３６】
トラッキング推定部１４が、トラッキング装置３１から取得したトラッキングデータに基づいてハンドル模型３４の位置及び姿勢を推定する処理は、トラッキングデータの検出時刻に対してほぼリアルタイムで処理可能である。一方、ＡＲマーカ推定部１２が、ステレオカメラ３２で撮影された画像から検出したＡＲマーカ３５に基づいてハンドル模型３４の位置及び姿勢を推定する処理は、所定の処理時間を要する。すなわち、ＡＲマーカ推定部１２による推定と、トラッキング推定部１４による推定とは同期していない。そこで、画像の撮影時刻とトラッキングデータの検出時刻とが同一である推定結果同士を対応付ける。
【００３７】
図１２に、各時刻において、ＡＲマーカ推定部１２及びトラッキング推定部１４の各々で推定された推定結果の軌跡を概略的に示す。なお、図１２では、説明を簡単にするため、推定結果を２次元で表している。トラッキングデータの検出からトラッキング推定部１４による推定結果が得られるまでの処理時間を０とし、ステレオカメラ３２による撮影から、ＡＲマーカ推定部１２による推定結果が得られるまでの処理時間をｘとする。この場合、図１２に示すように、時刻ｔｉにおけるＡＲマーカ推定部１２の推定結果は、時刻ｔｉ−ｘにおけるトラッキング推定部１４の推定結果に対応することになる。
【００３８】
ただし、上記の処理時間ｘは、常に一定ではないため、選択部１６は、以下のように、画像の撮影時刻とトラッキングデータの検出時刻とが同一である推定結果同士を対応付ける。
【００３９】
図１３に示すように、選択部１６は、時刻ｔｉ以前の所定時間内の複数の時刻の各々におけるトラッキング推定部１４の推定結果の各々と、時刻ｔｉにおけるＡＲマーカ推定部１２の推定結果とを比較する。具体的には、選択部１６は、トラッキング推定部１４の推定結果を示すベクトルの各々と、時刻ｔｉにおけるＡＲマーカ推定部１２の推定結果を示すベクトルとを各々比較する。そして、ベクトル間の差が、閾値ＤＢ２１に記憶された閾値以下で最小となる場合におけるトラッキング推定部１４の推定結果を、時刻ｔｉにおけるＡＲマーカ推定部１２の推定結果に対応するトラッキング推定部１４の推定結果とする。ベクトル間の差は、例えば、推定結果同士の３次元位置間の距離、及び推定結果同士の姿勢の差である。
【００４０】
例えば、図２６のＢ〜Ｄに示すように、ＡＲマーカ３５が良好に検出されなかった場合には、ＡＲマーカ３５に基づくハンドル模型３４の３次元位置及び姿勢の推定は失敗する。そこで、選択部１６は、上記のように、時刻ｔｉにおいてＡＲマーカ推定部１２により推定された推定結果に、対応するトラッキング推定部１４による推定結果が存在するか否かにより、ＡＲマーカ推定部１２による推定結果の信頼性を評価する。
【００４１】
選択部１６は、対応するトラッキング推定部１４による推定結果が存在する場合には、ＡＲマーカ推定部１２による推定結果は信頼性ありと判断して、ＡＲマーカ推定部１２による推定結果を選択する。一方、選択部１６は、対応するトラッキング推定部１４による推定結果が存在しない場合には、ＡＲマーカ推定部１２による推定結果は信頼性なしと判断して、トラッキング推定部１４による推定結果を選択する。選択部１６は、選択結果を表示制御部１８へ通知する。
【００４２】
また、選択部１６は、ＡＲマーカ推定部１２の推定結果を選択した場合、ＡＲマーカ推定部１２の推定結果と、そのＡＲマーカ推定部１２の推定結果に対応するトラッキング推定部１４の推定結果との差分をオフセット値として保持する。
【００４３】
表示制御部１８は、ＨＭＤ３３に表示する右眼用ＶＲ画像及び左眼用ＶＲ画像の各々を生成する。各ＶＲ画像の生成方法を以下に示す。表示制御部１８は、ＨＭＤ３３に表示するＶＲ画像のサイズに対応した描画領域を用意する。表示制御部１８は、ステレオカメラ３２から取得された画像を背景画像として描画領域に描画する。
【００４４】
また、表示制御部１８は、選択部１６から、ＡＲマーカ推定部１２の推定結果を選択した旨が通知された場合、オブジェクトＤＢ２２から、消火器を示す仮想オブジェクト３９の３次元データを読み出す。そして、表示制御部１８は、ＡＲマーカ推定部１２により推定されたカメラ座標系におけるハンドル模型３４の３次元位置及び姿勢に対応させた消火器を示す仮想オブジェクト３９を、背景画像が描画された描画領域に重畳して描画する。
【００４５】
また、表示制御部１８は、選択部１６から、トラッキング推定部１４の推定結果を選択した旨が通知された場合、オブジェクトＤＢ２２から、消火器を示す仮想オブジェクト３９の３次元データを読み出す。また、表示制御部１８は、トラッキング推定部１４による推定結果に、選択部１６が保持するオフセット値を加算する。そして、表示制御部１８は、オフセット値を加算したトラッキング推定部１４の推定結果が示すハンドル模型３４のワールド座標系の３次元位置に、オフセット値加算後の推定結果が示す姿勢で、消火器を示す仮想オブジェクト３９を配置する。さらに、表示制御部１８は、トラッキング推定部１４で推定されたＨＭＤ３３の３次元位置及び姿勢に対応する装着者４０の視線方向で仮想空間を見た場合の仮想オブジェクト３９を、背景画像が描画された描画領域に重畳して描画する。
【００４６】
また、表示制御部１８は、ステレオカメラ３２により撮影された画像から、装着者４０の腕領域の画像を抽出し、抽出した腕領域の画像を、背景画像及び消火器を示す仮想オブジェクト３９が描画された描画領域に重畳して描画する。
【００４７】
また、表示制御部１８は、オブジェクトＤＢ２２に記憶されている、炎などの他の仮想オブジェクトを、描画領域に重畳して描画してもよい。
【００４８】
表示制御部１８は、上記の描画を右眼用及び左眼用の各々について行うことにより、右眼用ＶＲ画像及び左眼用ＶＲ画像の各々を生成する。表示制御部１８は、生成した右眼用ＶＲ画像及び左眼用ＶＲ画像をＨＭＤ３３に出力する。
【００４９】
これにより、ＨＭＤ３３には、例えば図１４に示すようなＶＲ画像が表示される。図１４の例では、消火器及び炎が仮想オブジェクトであり、それ以外の部分（壁、床、ホワイトボード、机、腕等）は、ステレオカメラ３２で撮影された現実空間を映した画像である。
【００５０】
表示制御装置１０は、例えば図１５に示すコンピュータ５０で実現することができる。コンピュータ５０は、Central Processing Unit（ＣＰＵ）５１と、一時記憶領域としてのメモリ５２と、不揮発性の記憶部５３とを備える。また、コンピュータ５０は、入力装置、表示装置等の入出力装置５４と、記憶媒体５９に対するデータの読み込み及び書き込みを制御するRead/Write（Ｒ／Ｗ）部５５と、インターネット等のネットワークに接続される通信Interface（Ｉ／Ｆ）５６とを備える。ＣＰＵ５１、メモリ５２、記憶部５３、入出力装置５４、Ｒ／Ｗ部５５、及び通信Ｉ／Ｆ５６は、バス５７を介して互いに接続される。
【００５１】
記憶部５３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部５３には、コンピュータ５０を、表示制御装置１０として機能させるための表示制御プログラム６０が記憶される。表示制御プログラム６０は、ＡＲマーカ推定プロセス６２と、トラッキング推定プロセス６４と、閾値算出プロセス６５と、選択プロセス６６と、表示制御プロセス６８とを有する。また、記憶部５３は、閾値ＤＢ２１及びオブジェクトＤＢ２２の各々を構成する情報が記憶される情報記憶領域７０を有する。
【００５２】
ＣＰＵ５１は、表示制御プログラム６０を記憶部５３から読み出してメモリ５２に展開し、表示制御プログラム６０が有するプロセスを順次実行する。ＣＰＵ５１は、ＡＲマーカ推定プロセス６２を実行することで、図６に示すＡＲマーカ推定部１２として動作する。また、ＣＰＵ５１は、トラッキング推定プロセス６４を実行することで、図６に示すトラッキング推定部１４として動作する。また、ＣＰＵ５１は、閾値算出プロセス６５を実行することで、図６に示す閾値算出部１５として動作する。また、ＣＰＵ５１は、選択プロセス６６を実行することで、図６に示す選択部１６として動作する。また、ＣＰＵ５１は、表示制御プロセス６８を実行することで、図６に示す表示制御部１８として動作する。また、ＣＰＵ５１は、情報記憶領域７０から情報を読み出して、閾値ＤＢ２１及びオブジェクトＤＢ２２をメモリ５２に展開する。また、ＣＰＵ５１は、トラッキング推定プロセス６４の実行時に、履歴テーブル２３をメモリ５２上に作成する。これにより、表示制御プログラム６０を実行したコンピュータ５０が、表示制御装置１０として機能することになる。なお、プログラムを実行するＣＰＵ５１はハードウェアである。
【００５３】
なお、表示制御プログラム６０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００５４】
次に、第１実施形態に係る表示制御装置１０の作用について説明する。ＶＲシステム１００が起動されると、ＶＲトラッキング装置３１がＶＲトラッキングを開始し、トラッキングデータを出力すると共に、ステレオカメラ３２が撮影を開始し、右眼用画像及び左眼用画像を出力する。そして、表示制御装置１０が、図１６に示す閾値算出処理を実行した後に、図１７に示す表示制御処理を実行する。なお、閾値算出処理及び表示制御処理は、開示の技術の表示制御方法の一例である。
【００５５】
まず、図１６に示す閾値算出処理について説明する。
【００５６】
ステップＳ１２で、ＡＲマーカ推定部１２が、ＡＲマーカ３５及びＶＲトラッカー３６が対応付けて配置されたハンドル模型３４を所定の位置の各々に配置したときにステレオカメラ３２で撮影された画像を取得する。この際、ＨＭＤ３３を装着した装着者４０が中央を注視した状態で、ＨＭＤ３３に配置されたステレオカメラ３２により撮影される画像に、ＡＲマーカ３５の全体が含まれるように配置する。また、トラッキング推定部１４が、各位置で検出されたトラッキングデータを取得する。
【００５７】
次に、ステップＳ１４で、閾値算出部１５が、各位置で撮影された画像に基づいてＡＲマーカ推定部１２で推定されたカメラ座標系の推定結果を取得し、仮想空間座標系に変換する。また、閾値算出部１５が、各位置で検出されたトラッキングデータに基づいてトラッキング推定部１４で推定された仮想空間座標系の推定結果を取得する。
【００５８】
次に、ステップＳ１６で、閾値算出部１５が、各位置について推定されたＡＲマーカ推定部１２の推定結果とトラッキング推定部１４の推定結果との差の最大値を、後述する選択部１６において、推定結果の対応付けを行う際の閾値として算出する。そして、閾値算出部１５は、算出した閾値を、閾値ＤＢ２１に記憶し、閾値算出処理は終了する。
【００５９】
次に、図１７に示す表示制御処理について説明する。
【００６０】
ステップＳ２２で、ＡＲマーカ推定部１２及び表示制御部１８が、ステレオカメラ３２から出力された右眼用画像及び左眼用画像の各々を取得する。
【００６１】
次に、ステップＳ２４で、表示制御部１８が、ＨＭＤ３３に表示するＶＲ画像のサイズに対応した描画領域を用意する。表示制御部１８は、ステレオカメラ３２から取得された画像を背景画像として描画領域に描画する。
【００６２】
次に、ステップＳ２６で、トラッキング推定部１４が、トラッキング装置３１から出力された、ＨＭＤ３３についてのトラッキングデータを取得する。そして、トラッキング推定部１４が、取得したトラッキングデータに基づいて、仮想空間座標系におけるＨＭＤ３３の３次元位置及び姿勢を推定する。
【００６３】
次に、ステップＳ２８で、トラッキング推定部１４が、トラッキング装置３１から出力されたＶＲトラッカー３６についてのトラッキングデータを取得する。そして、トラッキング推定部１４が、取得したトラッキングデータに基づいて、仮想空間座標系におけるＶＲトラッカー３６の３次元位置及び姿勢を推定する。
【００６４】
次に、ステップＳ３０で、トラッキング推定部１４が、ＶＲトラッカー３６の３次元位置及び姿勢の推定結果を、例えば、図８に示すような履歴テーブル２３に保持する。この際、トラッキング推定部１４は、履歴テーブル２３に保持されている最も古い推定結果を破棄し、上記ステップＳ２８で推定された推定結果を履歴テーブル２３に追加する。
【００６５】
次に、ステップＳ３２で、ＡＲマーカ推定部１２が、取得した右眼用画像及び左眼用画像の各々から、パターンマッチングなどの画像認識処理により、予め登録された図形であるＡＲマーカ３５が検出されたか否かを判定する。ＡＲマーカ３５が検出された場合には、処理はステップＳ３６へ移行し、検出されない場合には、処理はステップＳ４６へ移行する。
【００６６】
ステップＳ３６では、ＡＲマーカ推定部１２が、右眼用画像及び左眼用画像の各々から検出したＡＲマーカ３５と、ステレオカメラ３２の両眼視差とに基づいて、カメラ座標系におけるＡＲマーカ３５の３次元位置及び姿勢を推定する。
【００６７】
次に、ステップＳ３８で、選択部１６が、ＡＲマーカ推定部１２による推定結果の信頼性を評価する。具体的には、選択部１６が、上記ステップＳ３６でＡＲマーカ推定部１２により推定されたカメラ座標系の推定結果を仮想空間座標系に変換する。そして、選択部１６が、履歴テーブル２３に保持したトラッキング推定部１４の推定結果の各々と、上記ステップＳ３６で推定されたＡＲマーカ推定部１２の推定結果（座標変換後）とを比較する。選択部１６は、トラッキング推定部１４の推定結果を示すベクトルの各々と、ＡＲマーカ推定部１２の推定結果を示すベクトルとの差が、閾値ＤＢ２１に記憶された閾値以下で最小となる場合におけるトラッキング推定部１４の推定結果を特定する。
【００６８】
次に、ステップＳ４０で、選択部１６が、ＡＲマーカ推定部１２の推定結果は信頼性ありか否かを判定する。上記ステップＳ３８において、ＡＲマーカ推定部１２の推定結果に対応するトラッキング推定部１４の推定結果が特定されている場合には、ＡＲマーカ推定部１２の推定結果は信頼性ありと判定され、処理はステップＳ４２へ移行する。一方、ＡＲマーカ推定部１２の推定結果に対応するトラッキング推定部１４の推定結果が特定されていない場合には、ＡＲマーカ推定部１２の推定結果は信頼性なしと判定され、処理はステップＳ４６へ移行する。
【００６９】
ステップＳ４２では、表示制御部１８が、オブジェクトＤＢ２２から、消火器を示す仮想オブジェクト３９の３次元データを読み出す。そして、表示制御部１８は、ＡＲマーカ推定部１２により推定されたカメラ座標系におけるハンドル模型３４の３次元位置及び姿勢に対応させた消火器を示す仮想オブジェクト３９を、背景画像が描画された描画領域に重畳して描画する。
【００７０】
次に、ステップＳ４４で、選択部１６が、ＡＲマーカ推定部１２の推定結果と、対応するトラッキング推定部１４の推定結果との差分をオフセット値として保持する。
【００７１】
一方、ステップＳ４６では、表示制御部１８が、オブジェクトＤＢ２２から、消火器を示す仮想オブジェクト３９の３次元データを読み出す。そして、表示制御部１８は、トラッキング推定部１４による推定結果に、選択部１６が保持するオフセット値を加算する。  次に、ステップＳ４８で、表示制御部１８が、オフセット値を加算したトラッキング推定部１４の推定結果が示すハンドル模型３４のワールド座標系の３次元位置に、オフセット値加算後の推定結果が示す姿勢で、消火器を示す仮想オブジェクト３９を配置する。そして、表示制御部１８は、トラッキング推定部１４で推定されたＨＭＤ３３の３次元位置及び姿勢に対応する装着者４０の視線方向で仮想空間を見た場合の仮想オブジェクト３９を、背景画像が描画された描画領域に重畳して描画する。
【００７２】
次に、ステップＳ５０で、表示制御部１８が、取得した右眼用画像及び左眼用画像の各々から、例えば、肌色の領域を抽出するなどして、装着者４０の腕部を示す腕領域を抽出する。そして、表示制御部１８は、抽出した腕領域の画像を、背景画像及び消火器を示す仮想オブジェクト３９が描画された描画領域に重畳して描画する。
【００７３】
次に、ステップＳ５２で、表示制御部１８が、オブジェクトＤＢ２２に記憶されている、炎などの他の仮想オブジェクトの３次元データを読み出し、描画領域に重畳して描画する。
【００７４】
表示制御部１８は、上記の処理を右眼用及び左眼用の各々について行うことにより、右眼用ＶＲ画像及び左眼用ＶＲ画像の各々を生成する。
【００７５】
次に、ステップＳ５４で、表示制御部１８が、生成した右眼用ＶＲ画像及び左眼用ＶＲ画像をＨＭＤ３３に出力する。これにより、ＨＭＤ３３には、例えば図１４に示すようなＶＲ画像が表示される。そして、表示制御処理は終了する。
【００７６】
表示制御部１８は、ＶＲシステム１００の終了が指示されるまで、上記の表示制御処理を所定時間間隔（例えば、ステレオカメラのフレームレートと同じ間隔）で繰り返し実行する。
【００７７】
以上説明したように、第１実施形態におけるＶＲシステム１００によれば、表示制御装置１０が、時刻ｔｉに推定されたＡＲマーカに基づく推定結果についての信頼性を評価する。具体的には、推定結果が示すベクトル間の差が閾値以内となるＶＲトラッカーに基づく推定結果が、時刻ｔｉ以前の所定期間内の各時刻に推定されたＶＲトラッカーに基づく推定結果に存在する場合に、信頼性ありと評価する。ＡＲマーカに基づく推定結果に信頼性がある場合、カメラ画像との位置ずれが少ないＡＲマーカに基づく推定結果を用いて対象物の仮想オブジェクトを描画する。
【００７８】
一方、ＡＲマーカに基づく推定結果に信頼性がない場合に、ＡＲマーカに基づく推定結果を用いて、対象物の仮想オブジェクトを描画したとする。この場合、例えば、図１８に示すように、現実空間の画像に重畳される対象物の仮想オブジェクトに、一瞬、位置ずれや方向違い等が生じ、対象物がバタ付いて見える。そこで、本実施形態に係る表示制御装置１０は、ＡＲマーカに基づく推定結果に信頼性がない場合には、カメラ画像との位置ずれ以外は安定して位置を検出できるＶＲトラッカーに基づく推定結果を用いて、対象物の仮想オブジェクトを描画する。これにより、現実空間において取り扱い可能な物体に対応する対象物の仮想オブジェクトを現実空間の画像に重畳する場合における表示の違和感を緩和することができる。
【００７９】
＜第２実施形態＞
次に、第２実施形態について説明する。第２実施形態では、現実空間において取り扱い可能な物体を、消火器のノズル部分を模した模型とし、現実空間の画像に重畳して描画する仮想オブジェクトも、消火器のノズル部分である場合について説明する。なお、第２実施形態に係るＶＲシステムにおいて、第１実施形態に係るＶＲシステム１００と同様の部分については、同一符号を付して詳細な説明を省略する。
【００８０】
図１９に示すように、第２実施形態に係るＶＲシステム２００は、表示制御装置２１０と、ＶＲトラッキング装置３１と、ステレオカメラ３２が取り付けられたＨＭＤ３３とを含む。さらに、ＶＲシステム２００は、複数のノズル模型３４Ａ、３４Ｂ、３４Ｃと、複数のＡＲマーカ３５Ａ、３５Ｂ、３５Ｃと、１つのＶＲトラッカー３６とを含む。なお、ノズル模型及びＡＲマーカの数は、図１９の例に限定されず、２個でも４個以上でもよい。なお、以下では、ノズル模型３４Ａ、３４Ｂ、３４Ｃを区別なく説明する場合には、代表してノズル模型３４Ａについて説明する。同様に、ＡＲマーカ３５Ａ、３５Ｂ、３５Ｃを区別なく説明する場合には、代表してＡＲマーカ３５Ａについて説明する。
【００８１】
ノズル模型３４Ａは、ＨＭＤ３３の装着者が実際に保持したり操作したりして取り扱うことが可能な物体であり、本実施形態では、消火器のノズル部分に相当する棒状の物体である。ノズル模型３４Ａ、３４Ｂ、３４Ｃの各々は、対応付けて配置されているＡＲマーカ３５Ａ、３５Ｂ、３５Ｃが異なるだけであり、形状等は同一の物体である。なお、ノズル模型３４Ａは、開示の技術の物体の一例である。
【００８２】
ＡＲマーカ３５Ａは、ノズル模型３４Ａとの位置関係が固定された予め定めた位置に配置される。例えば、図２０に示すように、ＡＲマーカ３５Ａは、ノズル模型３４Ａの先端に貼付される。また、第１実施形態のＡＲマーカ３５と同様に、複数の面を持つ台座３８に複数のＡＲマーカ３５を貼付することができる（図２１参照）。
【００８３】
ＶＲトラッカー３６は、図２０及び図２１に示すように、ノズル模型３４Ａを保持する装着者４０の手首等の位置に固定して取り付けられる。これにより、ノズル模型３４Ａを装着者４０が保持した場合、ノズル模型３４Ａと、手首等に取り付けられたＶＲトラッカー３６とは、ほぼ固定された位置関係となる。
【００８４】
表示制御装置２１０は、機能的には、図２２に示すように、ＡＲマーカ推定部１２と、トラッキング推定部１４と、閾値算出部１５と、選択部１６と、表示制御部２１８と、切替部２１９とを含む。また、表示制御装置２１０の所定の記憶領域には、閾値ＤＢ２１と、オブジェクトＤＢ２２２とが記憶される。
【００８５】
オブジェクトＤＢ２２２には、消火器のノズルを示す仮想オブジェクトの３次元データが記憶されている。ノズルを示す仮想オブジェクトは、図２３に示すように、ＡＲマーカ３５Ａ、３５Ｂ、３５Ｃの各々に対応して、それぞれ異なる形状の仮想オブジェクト３９Ａ、３９Ｂ、３９Ｃが用意される。仮想オブジェクト３９Ａ、３９Ｂ、３９Ｃの各々には、ＡＲマーカ３５Ａ、３５Ｂ、３５Ｃの各々に対応する識別番号が付与されている。
【００８６】
切替部２１９は、装着者４０がノズル模型３４Ａ、３４Ｂ、３４Ｃを持ち替えたことを検知すると、持ち替えた後のノズル模型３４Ａ、３４Ｂ、３４Ｃに貼付されたＡＲマーカ３５Ａ、３５Ｂ、３５Ｃ対応する識別番号を表示制御部２１８へ通知する。具体的には、切替部２１９は、ＡＲマーカ推定部１２で、ＡＲマーカ３５Ａが検出されない期間が一定期間継続した場合に、次に検出されたＡＲマーカ３５Ａ、３５Ｂ、３５Ｃを、切替後のＡＲマーカ３５Ａ、３５Ｂ、３５Ｃと判定する。
【００８７】
表示制御部２１８は、ノズルの仮想オブジェクトを描画する際、切替部２１９から通知された識別番号が付与された仮想オブジェクト３９Ａ、３９Ｂ、３９Ｃの３次元データをオブジェクトＤＢ２２２から読み出して描画する。これにより、図２４に示すように、現実空間では、異なるＡＲマーカ３５Ａ、３５Ｂ、３５Ｃが貼付されたノズル模型３４Ａ、３４Ｂ、３４Ｃに持ち替えるだけで、ＶＲ画像上で、異なる形状のノズルの仮想オブジェクト３９Ａ、３９Ｂ、３９Ｃが描画される。
【００８８】
表示制御装置２１０は、例えば図１５に示すコンピュータ５０で実現することができる。コンピュータ５０の記憶部５３には、コンピュータ５０を、表示制御装置２１０として機能させるための表示制御プログラム２６０が記憶される。表示制御プログラム２６０は、ＡＲマーカ推定プロセス６２と、トラッキング推定プロセス６４と、閾値算出プロセス６５と、選択プロセス６６と、表示制御プロセス２６８と、切替プロセス２６９とを有する。また、記憶部５３は、閾値ＤＢ２１及びオブジェクトＤＢ２２２の各々を構成する情報が記憶される情報記憶領域７０を有する。
【００８９】
ＣＰＵ５１は、表示制御プログラム２６０を記憶部５３から読み出してメモリ５２に展開し、表示制御プログラム２６０が有するプロセスを順次実行する。ＣＰＵ５１は、表示制御プロセス２６８を実行することで、図２２に示す表示制御部２１８として動作する。また、ＣＰＵ５１は、切替プロセス２６９を実行することで、図２２に示す切替部２１９として動作する。また、ＣＰＵ５１は、情報記憶領域７０から情報を読み出して、閾値ＤＢ２１及びオブジェクトＤＢ２２２の各々をメモリ５２に展開する。他のプロセスについては、第１実施形態に係る表示制御プログラム６０と同様である。これにより、表示制御プログラム２６０を実行したコンピュータ５０が、表示制御装置２１０として機能することになる。
【００９０】
なお、表示制御プログラム２６０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【００９１】
次に、第２実施形態に係る表示制御装置２１０の作用について説明する。第２実施形態においても、第１実施形態と同様に、閾値算出処理（図１６）及び表示制御処理（図１７）が実行される。また、表示制御処理と並行して、図２５に示す切替処理が実行される。
【００９２】
図２５に示す切替処理のステップＳ６２で、切替部２１９が、ＡＲマーカ推定部１２で、ＡＲマーカ３５Ａが検出されない期間が一定期間継続したか否かを判定する。継続した場合には、処理はステップＳ６４へ移行し、継続していない場合には、本ステップの判定を繰り返す。
【００９３】
ステップＳ６４では、切替部２１９が、ＡＲマーカ推定部１２で、ＡＲマーカ３５Ａが検出されたか否かを判定する。検出された場合には、処理はステップＳ６６へ移行し、検出されない場合には、本ステップの判定を繰り返す。
【００９４】
ステップＳ６６では、切替部２１９が、検出されたＡＲマーカ３５Ａ、３５Ｂ、３５Ｃに対応する識別番号を表示制御部２１８へ通知し、ステップＳ６２に戻る。
【００９５】
第２実施形態における閾値算出処理では、いずれかのＡＲマーカ３５Ａ、３５Ｂ、３５Ｃのいずれかについて、第１実施形態と同様の閾値算出処理を実行してもよい。また、ＡＲマーカ３５Ａ、３５Ｂ、３５Ｃの各々について、第１実施形態と同様の閾値算出処理を実行し、ＡＲマーカ３５Ａ、３５Ｂ、３５Ｃ毎の閾値を設定してもよい。
【００９６】
また、第２実施形態における表示制御処理（図１７）では、ステップＳ４２又はＳ４８で仮想オブジェクト３９Ａ、３９Ｂ、３９Ｃの３次元データをオブジェクトＤＢ２２２から読み出す。この際に、上記の切替処理のステップＳ６６で通知された識別番号に対応する仮想オブジェクト３９Ａ、３９Ｂ、３９Ｃの３次元データを読み出すようにすればよい。
【００９７】
以上説明したように、第２実施形態に係るＶＲシステム２００によれば、１つのＶＲトラッカーと複数のＡＲマーカの各々とを独立に設け、ＶＲトラッカーを装着者の手首等に取り付け、その手でいずれかのＡＲマーカが貼付されたノズル模型を保持する。これにより、保持したノズル模型に貼付されたＡＲマーカに応じて、異なる仮想オブジェクトを描画することができる。また、描画したい仮想オブジェクト数分のＶＲトラッカーを用意する必要がなく、コストを削減することができる。
【００９８】
なお、上記第１及び第２実施形態では、消火器又は消火器のノズルを仮想オブジェクトとして描画する場合について説明したが、仮想オブジェクトとする対象物はこれに限定されるものではない。
【００９９】
また、上記各実施形態では、対象物の位置及び姿勢の推定にＡＲマーカを用いる場合について説明したが、これに限定されない。ＡＲマーカ以外のマーカを用いてもよいし、マーカを用いることなく、対象物自体の特徴点を検出して、特徴点の配置などから、対象物の位置及び姿勢を推定してもよい。
【０１００】
また、上記各実施形態では、ステレオカメラで撮影された画像を用いてＡＲマーカの位置及び姿勢を推定する場合について説明したが、これに限定されない。例えば、単眼の可視光カメラで撮影された画像から検出したＡＲマーカの画像内での位置、サイズ、及び傾き（歪み）と、ＡＲマーカの実際のサイズと、カメラの焦点距離とに基づいて、ＡＲマーカの位置及び姿勢を推定してもよい。また、赤外線カメラを用いてもよい。この場合、ＶＲ画像に表示する背景画像を撮影するための可視光カメラを別途も受けてもよい。
【０１０１】
なお、ステレオカメラを用いる場合には、ＡＲマーカの位置及び姿勢を推定するための画像と、ＶＲ画像に表示する背景画像とを撮影するためのカメラを別々に設ける必要がない。
【０１０２】
また、上記各実施形態では、表示制御プログラム６０、２６０が記憶部５３に予め記憶（インストール）されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【０１０３】
以上の各実施形態に関し、更に以下の付記を開示する。
【０１０４】
（付記１）
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第１の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第２の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
前記第１の指標に基づく前記物体の３次元位置及び姿勢の第１の推定結果と、前記第２の指標に基づく前記物体の３次元位置及び姿勢の第２の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第２の推定結果との比較に基づいて、前記第１の推定結果又は前記第２の推定結果を選択し、
選択した前記第１の推定結果又は前記第２の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータに実行させるための表示制御プログラム。
【０１０５】
（付記２）
前記撮影時刻以前の所定時間内の複数の検出時刻に検出された前記第２の指標に基づく前記第２の推定結果のうち、前記第１の推定結果を示すベクトルと、前記第２の推定結果を示すベクトルとの差が予め定めた閾値以内で最小となる前記第２の推定結果を、前記第１の推定結果と対応する前記第２の推定結果とする付記１に記載の表示制御プログラム。
【０１０６】
（付記３）
前記第１の推定結果と対応する前記第２の推定結果が存在する場合、前記第１の推定結果を選択し、前記第１の推定結果と対応する前記第２の推定結果が存在しない場合、前記第２の推定結果を選択する付記２に記載の表示制御プログラム。
【０１０７】
（付記４）
前記第２の推定結果を選択する場合、過去に前記第１の推定結果を選択した際の前記第１の推定結果と、前記第１の推定結果と対応する前記第２の推定結果との差を、選択した前記第２の推定結果に加算した値が示す前記物体の３次元位置及び姿勢に基づいて、前記仮想オブジェクトを重畳する付記３に記載の表示制御プログラム。
【０１０８】
（付記５）
前記閾値を、前記第１の指標の全体が含まれるように撮影された画像から検出された前記第１の指標に基づいて推定した前記第１の推定結果と、前記第１の指標の全体が含まれるように撮影された画像の撮影時刻と対応する検出時刻に検出された第２の指標に基づく前記第２の推定結果との差に基づいて算出する付記２〜付記４のいずれか１項に記載の表示制御プログラム。
【０１０９】
（付記６）
複数の異なる前記第１の指標の各々を、複数の前記物体の各々に配置し、前記第２の指標を、前記物体を保持する部位に配置する付記１〜付記５のいずれか１項に記載の表示制御プログラム。
【０１１０】
（付記７）
前記第１の指標は、前記物体の３次元位置及び姿勢に対して既知の３次元位置及び姿勢で配置されたマーカであり、前記撮影された画像上での前記マーカの位置及び姿勢に基づいて、前記物体の３次元位置及び姿勢を推定する付記１〜付記６のいずれか１項に記載の表示制御プログラム。
【０１１１】
（付記８）
前記第２の指標は、ＶＲトラッカーであり、前記検出装置は、前記ＶＲトラッカーの方向及び距離の情報を含むトラッキングデータを検出する付記１〜付記７のいずれか１項に記載の表示制御プログラム。
【０１１２】
（付記９）
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第１の指標を検出することにより、前記物体の３次元位置及び姿勢を推定する第１推定部と、
検出装置により、前記物体に対応付けて配置された第２の指標を検出することにより、前記物体の３次元位置及び姿勢を推定する第２推定部と、
前記第１の指標に基づく前記物体の３次元位置及び姿勢の第１の推定結果と、前記第２の指標に基づく前記物体の３次元位置及び姿勢の第２の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第２の推定結果との比較に基づいて、前記第１の推定結果又は前記第２の推定結果を選択する選択部と、
選択した前記第１の推定結果又は前記第２の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する表示制御部と、
を含む表示制御装置。
【０１１３】
（付記１０）
前記選択部は、前記撮影時刻以前の所定時間内の複数の検出時刻に検出された前記第２の指標に基づく前記第２の推定結果のうち、前記第１の推定結果を示すベクトルと、前記第２の推定結果を示すベクトルとの差が予め定めた閾値以内で最小となる前記第２の推定結果を、前記第１の推定結果と対応する前記第２の推定結果とする付記９に記載の表示制御装置。
【０１１４】
（付記１１）
前記選択部は、前記第１の推定結果と対応する前記第２の推定結果が存在する場合、前記第１の推定結果を選択し、前記第１の推定結果と対応する前記第２の推定結果が存在しない場合、前記第２の推定結果を選択する付記１０に記載の表示制御装置。
【０１１５】
（付記１２）
前記表示制御部は、前記第２の推定結果を選択される場合、過去に前記第１の推定結果を選択した際の前記第１の推定結果と、前記第１の推定結果と対応する前記第２の推定結果との差を、選択した前記第２の推定結果に加算した値が示す前記物体の３次元位置及び姿勢に基づいて、前記仮想オブジェクトを重畳する付記１１に記載の表示制御装置。
【０１１６】
（付記１３）
前記閾値を、前記第１の指標の全体が含まれるように撮影された画像から検出された前記第１の指標に基づいて推定した前記第１の推定結果と、前記第１の指標の全体が含まれるように撮影された画像の撮影時刻と対応する検出時刻に検出された第２の指標に基づく前記第２の推定結果との差に基づいて算出する算出部を含む付記１０〜付記１２のいずれか１項に記載の表示制御装置。
【０１１７】
（付記１４）
複数の異なる前記第１の指標の各々を、複数の前記物体の各々に配置し、前記第２の指標を、前記物体を保持する部位に配置する付記９〜付記１３のいずれか１項に記載の表示制御装置。
【０１１８】
（付記１５）
前記第１の指標は、前記物体の３次元位置及び姿勢に対して既知の３次元位置及び姿勢で配置されたマーカであり、
前記第１推定部は、前記撮影された画像上での前記マーカの位置及び姿勢に基づいて、前記物体の３次元位置及び姿勢を推定する
付記９〜付記１４のいずれか１項に記載の表示制御装置。
【０１１９】
（付記１６）
前記第２の指標は、ＶＲトラッカーであり、前記検出装置は、前記ＶＲトラッカーの方向及び距離の情報を含むトラッキングデータを検出する付記９〜付記１５のいずれか１項に記載の表示制御装置。
【０１２０】
（付記１７）
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第１の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第２の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
前記第１の指標に基づく前記物体の３次元位置及び姿勢の第１の推定結果と、前記第２の指標に基づく前記物体の３次元位置及び姿勢の第２の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第２の推定結果との比較に基づいて、前記第１の推定結果又は前記第２の推定結果を選択し、
選択した前記第１の推定結果又は前記第２の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータが実行する表示制御方法。
【０１２１】
（付記１８）
前記撮影時刻以前の所定時間内の複数の検出時刻に検出された前記第２の指標に基づく前記第２の推定結果のうち、前記第１の推定結果を示すベクトルと、前記第２の推定結果を示すベクトルとの差が予め定めた閾値以内で最小となる前記第２の推定結果を、前記第１の推定結果と対応する前記第２の推定結果とする付記１７に記載の表示制御方法。
【０１２２】
（付記１９）
前記第１の推定結果と対応する前記第２の推定結果が存在する場合、前記第１の推定結果を選択し、前記第１の推定結果と対応する前記第２の推定結果が存在しない場合、前記第２の推定結果を選択する付記１８に記載の表示制御方法。
【０１２３】
（付記２０）
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第１の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第２の指標を検出することにより、前記物体の３次元位置及び姿勢を推定し、
前記第１の指標に基づく前記物体の３次元位置及び姿勢の第１の推定結果と、前記第２の指標に基づく前記物体の３次元位置及び姿勢の第２の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第２の推定結果との比較に基づいて、前記第１の推定結果又は前記第２の推定結果を選択し、
選択した前記第１の推定結果又は前記第２の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータに実行させるための表示制御プログラムを記憶した記憶媒体。
【符号の説明】
【０１２４】
１０、２１０  表示制御装置
１２   ＡＲマーカ推定部
１４   トラッキング推定部
１５   閾値算出部
１６   選択部
１８、２１８  表示制御部
２１９ 切替部
２１   閾値ＤＢ
２２、２２２  オブジェクトＤＢ
２３   履歴テーブル
３１   ＶＲトラッキング装置
３２   ステレオカメラ
３３   ＨＭＤ
３４   ハンドル模型
３４Ａ、３４Ｂ、３４Ｃ      ノズル模型
３５、３５Ａ、３５Ｂ、３５Ｃ       ＡＲマーカ
３６   ＶＲトラッカー
３９、３９Ａ、３９Ｂ        仮想オブジェクト
４０   装着者
５０   コンピュータ
５１   ＣＰＵ
５２   メモリ
５３   記憶部
５９   記憶媒体
６０、２６０  表示制御プログラム
１００、２００       ＶＲシステム
【図１】
2019175294.tif 000003
【図２】
2019175294.tif 000004
【図３】
2019175294.tif 000005
【図４】
2019175294.tif 000006
【図５】
2019175294.tif 000007
【図６】
2019175294.tif 000008
【図７】
2019175294.tif 000009
【図８】
2019175294.tif 000010
【図９】
2019175294.tif 000011
【図１０】
2019175294.tif 000012
【図１１】
2019175294.tif 000013
【図１２】
2019175294.tif 000014
【図１３】
2019175294.tif 000015
【図１４】
2019175294.tif 000016
【図１５】
2019175294.tif 000017
【図１６】
2019175294.tif 000018
【図１７】
2019175294.tif 000019
【図１８】
2019175294.tif 000020
【図１９】
2019175294.tif 000021
【図２０】
2019175294.tif 000022
【図２１】
2019175294.tif 000023
【図２２】
2019175294.tif 000024
【図２３】
2019175294.tif 000025
【図２４】
2019175294.tif 000026
【図２５】
2019175294.tif 000027
【図２６】
2019175294.tif 000028