(58)【調査した分野】(Int.Cl.,DB名)
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第1の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第2の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
前記第1の指標に基づく前記物体の3次元位置及び姿勢の第1の推定結果と、前記第2の指標に基づく前記物体の3次元位置及び姿勢の第2の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第2の推定結果との比較に基づいて、前記第1の推定結果又は前記第2の推定結果を選択し、
選択した前記第1の推定結果又は前記第2の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータに実行させるための表示制御プログラム。
前記撮影時刻以前の所定時間内の複数の検出時刻に検出された前記第2の指標に基づく前記第2の推定結果のうち、前記第1の推定結果を示すベクトルと、前記第2の推定結果を示すベクトルとの差が予め定めた閾値以内で最小となる前記第2の推定結果を、前記第1の推定結果と対応する前記第2の推定結果とする請求項1に記載の表示制御プログラム。
前記第1の推定結果と対応する前記第2の推定結果が存在する場合、前記第1の推定結果を選択し、前記第1の推定結果と対応する前記第2の推定結果が存在しない場合、前記第2の推定結果を選択する請求項2に記載の表示制御プログラム。
前記第2の推定結果を選択する場合、過去に前記第1の推定結果を選択した際の前記第1の推定結果と、前記第1の推定結果と対応する前記第2の推定結果との差を、選択した前記第2の推定結果に加算した値が示す前記物体の3次元位置及び姿勢に基づいて、前記仮想オブジェクトを重畳する請求項3に記載の表示制御プログラム。
前記閾値を、前記第1の指標の全体が含まれるように撮影された画像から検出された前記第1の指標に基づいて推定した前記第1の推定結果と、前記第1の指標の全体が含まれるように撮影された画像の撮影時刻と対応する検出時刻に検出された第2の指標に基づく前記第2の推定結果との差に基づいて算出する請求項2〜請求項4のいずれか1項に記載の表示制御プログラム。
複数の異なる前記第1の指標の各々を、複数の前記物体の各々に配置し、前記第2の指標を、前記物体を保持する部位に配置する請求項1〜請求項5のいずれか1項に記載の表示制御プログラム。
前記第1の指標は、前記物体の3次元位置及び姿勢に対して既知の3次元位置及び姿勢で配置されたマーカであり、前記撮影された画像上での前記マーカの位置及び姿勢に基づいて、前記物体の3次元位置及び姿勢を推定する請求項1〜請求項6のいずれか1項に記載の表示制御プログラム。
前記第2の指標は、VRトラッカーであり、前記検出装置は、前記VRトラッカーの方向及び距離の情報を含むトラッキングデータを検出する請求項1〜請求項7のいずれか1項に記載の表示制御プログラム。
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第1の指標を検出することにより、前記物体の3次元位置及び姿勢を推定する第1推定部と、
検出装置により、前記物体に対応付けて配置された第2の指標を検出することにより、前記物体の3次元位置及び姿勢を推定する第2推定部と、
前記第1の指標に基づく前記物体の3次元位置及び姿勢の第1の推定結果と、前記第2の指標に基づく前記物体の3次元位置及び姿勢の第2の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第2の推定結果との比較に基づいて、前記第1の推定結果又は前記第2の推定結果を選択する選択部と、
選択した前記第1の推定結果又は前記第2の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する表示制御部と、
を含む表示制御装置。
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第1の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第2の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
前記第1の指標に基づく前記物体の3次元位置及び姿勢の第1の推定結果と、前記第2の指標に基づく前記物体の3次元位置及び姿勢の第2の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第2の推定結果との比較に基づいて、前記第1の推定結果又は前記第2の推定結果を選択し、
選択した前記第1の推定結果又は前記第2の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータが実行する表示制御方法。
【発明を実施するための形態】
【0012】
以下、図面を参照して開示の技術に係る実施形態の一例を詳細に説明する。
【0013】
<第1実施形態>
第1実施形態では、一例として、消火器の使い方を仮想体験するためのVR画像を表示する場合について説明する。なお、現実空間において取り扱い可能な物体を、消火器のハンドル部分を模した模型とする。また、そのハンドル部分に対応した消火器全体の仮想的な3次元のオブジェクト(以下、「仮想オブジェクト」という)を、現実空間の画像に重畳して描画する場合について説明する。
【0014】
図1に示すように、第1実施形態に係るVirtual Reality(VR)システム100は、表示制御装置10と、VRトラッキング装置31と、ステレオカメラ32と、Head Mounted Display(HMD)33とを含む。さらに、VRシステム100は、ハンドル模型34と、Augmented Reality(AR)マーカ35と、VRトラッカー36とを含む。
【0015】
VRトラッキング装置31は、例えば、1又は複数のレーザレーダで実現することができる。各レーザレーダは、レーザを照射し、HMD33及びVRトラッカー36の各々の受光部で反射したレーザを受光し、レーザの照射方向及び受光部までの距離の情報を含むトラッキングデータを計測する。VRトラッキング装置31は、計測したトラッキングデータを表示制御装置10へ出力する。なお、VRトラッキング装置31は、開示の技術の検出装置の一例である。
【0016】
ステレオカメラ32は、HMD33に取り付けられており、右眼用及び左眼用の可視光カメラの各々により、HMD33を装着した装着者40の視界を想定した範囲を、所定のフレームレートで撮影する。ステレオカメラ32は、撮影により得られた右眼用画像及び左眼用画像を表示制御装置10へ出力する。なお、ステレオカメラ32は、開示の技術の撮影装置の一例である。
【0017】
HMD33は、表示制御装置10から出力された右眼用VR画像及び左眼用VR画像を取得し、ディスプレイに立体視画像を表示する。なお、本実施形態におけるVR画像とは、ステレオカメラ32で撮影された現実空間の画像に、対象物である消火器を示す仮想的な3次元のオブジェクトが重畳された画像である。なお、HMD33は、開示の技術の表示装置の一例である。
【0018】
ハンドル模型34は、HMD33の装着者が実際に保持したり操作したりして取り扱うことが可能な物体であり、本実施形態では、消火器のハンドル部分に相当する物体である。なお、ハンドル模型34は、開示の技術の物体の一例である。
【0019】
ARマーカ35は、予め登録された図形のマーカであり、ハンドル模型34との位置関係が固定された予め定めた位置に配置される。例えば、
図2に示すように、ARマーカ35は、ハンドル模型34を支える支柱37に設けられ台座38に貼付される。また、色々な角度から撮影された場合でも、ステレオカメラ32の画角内に、
図26のAに示すような良好な状態のARマーカ35が含まれるように、複数の面を持つ台座38に複数のARマーカ35を貼付することができる。なお、ARマーカ35は、開示の技術の第1の指標の一例である。
【0020】
VRトラッカー36は、VRトラッキング装置31から照射されるレーザを受光する受光部を有し、VRトラッカー36が取り付けられた物体の位置及び姿勢を検出するための装置である。VRトラッカー36は、ハンドル模型34との位置関係が固定された予め定めた位置に配置される。例えば、
図3に示すように、VRトラッカー36は、ハンドル模型34を支える支柱37の端部に取り付けることができる。なお、VRトラッカー36は、開示の技術の第2の指標の一例である。
【0021】
図4に、VRシステム100の各構成の配置の一例を概略的に示す。ステレオカメラ32付きのHMD33は、装着者40の頭部に装着される。ハンドル模型34は、
図5に示すように、装着者40に保持又は操作される。VRトラッキング装置31は、各レーザレーダの計測範囲に、装着者40に装着されたHMD33、及び装着者40に保持されたハンドル模型34に対応する位置に配置されたVRトラッカー36が含まれる位置に配置される。例えば、装着者40が立つことが想定される位置を挟む対角線上の位置に配置される。
【0022】
表示制御装置10は、機能的には、
図6に示すように、ARマーカ推定部12と、トラッキング推定部14と、閾値算出部15と、選択部16と、表示制御部18とを含む。ARマーカ推定部12は、開示の技術の第1推定部の一例であり、トラッキング推定部14は、開示の技術の第2推定部の一例であり、閾値算出部15は、開示の技術の算出部の一例である。また、表示制御装置10の所定の記憶領域には、閾値データベース(DB)21と、オブジェクトDB22とが記憶される。
【0023】
閾値DB21には、後述する選択部16で使用される閾値が記憶されている(詳細は後述)。
【0024】
オブジェクトDB22には、現実空間の映像に重畳表示する仮想オブジェクトの3次元データが記憶されている。本実施形態では、仮想オブジェクトには、消火器を示す仮想オブジェクトが含まれる。より具体的には、
図7に示すように、消火器全体を示す仮想オブジェクト39に含まれるハンドル部分は、現実空間におけるハンドル模型34に対応する形状である。また、オブジェクトDB22には、消火器を示す仮想オブジェクト39以外のオブジェクト(例えば、炎を示すオブジェクト等)が含まれていてもよい。
【0025】
ARマーカ推定部12は、ステレオカメラ32から出力された右眼用画像及び左眼用画像の各々を取得し、右眼用画像及び左眼用画像の各々から、パターンマッチングなどの画像認識処理により、予め登録された図形であるARマーカ35を検出する。ARマーカ推定部12は、右眼用画像及び左眼用画像の各々から検出したARマーカ35と、ステレオカメラ32の両眼視差とに基づいて、カメラ座標系におけるARマーカ35の3次元位置及び姿勢(各座標軸に対する角度)を推定する。
【0026】
トラッキング推定部14は、トラッキング装置31から出力されたトラッキングデータを取得する。そして、トラッキング推定部14は、トラッキングデータに基づいて、ワールド座標系(仮想空間座標系)におけるHMD33及びVRトラッカー36の各々の3次元位置及び姿勢を推定する。
【0027】
また、トラッキング推定部14は、後述する選択部16の処理で使用するため、所定時間分のVRトラッカー36についての推定結果の履歴を保持する。
図8に、トラッキング推定部14が保持する履歴テーブル23の一例を示す。
図8の例では、履歴テーブル23は、N個分の推定結果を保持可能である。「履歴番号」は、推定された時刻が新しい順に各推定結果に付与された、1、2、・・・、Nの番号である。「3次元位置」及び「姿勢」は、各履歴番号に対応する推定結果である。Nの値は、ステレオカメラ32のフレームレート、及び後述するARマーカ推定部12による推定と、トラッキング推定部14による推定との処理時間の差の最大値に基づく値を設定することができる。
【0028】
なお、ハンドル模型34に対するARマーカ35及びVRトラッカー36の各々の配置は既知である。そのため、ARマーカ35及びVRトラッカー36の3次元位置及び姿勢を推定することは、ハンドル模型34の3次元位置及び姿勢を推定することに対応する。さらに、消火器を示す仮想オブジェクト39は、
図7に示すように、現実空間のハンドル模型34に対応する。すなわち、ARマーカ35及びVRトラッカー36の3次元位置及び姿勢を推定することは、消火器を示す仮想オブジェクト39の3次元位置及び姿勢を推定することに相当する。
【0029】
閾値算出部15は、ARマーカ35が、例えば
図26のAに示すように良好に含まれる画像から検出されたARマーカ35に基づいて、ARマーカ推定部12により推定された推定結果を取得する。また、閾値算出部15は、ARマーカ35が良好に含まれる画像が撮影された際に検出されトラッキングデータに基づいてトラッキング推定部14により推定された推定結果も取得する。
【0030】
例えば、ARマーカ35及びVRトラッカー36が対応付けて配置されたハンドル模型34を、
図9に示すように、装着者40に対して左上、右上、中央、左下、及び右下となる位置の各々に配置する。この際、HMD33を装着した装着者40が中央を注視した状態で、HMD33に配置されたステレオカメラ32により撮影される画像に、ARマーカ35の全体が含まれるように配置する。そして、閾値算出部15は、各位置で撮影された画像に基づいてARマーカ推定部12で推定された推定結果、及び各位置で検出されたトラッキングデータに基づいてトラッキング推定部14で推定された推定結果を取得する。なお、閾値の算出では、後述するARマーカ推定部12による推定と、トラッキング推定部14による推定との処理時間の差を考慮する。具体的には、ARマーカ35及びVRトラッカー36が対応付けて配置されたハンドル模型34を、各位置に所定時間停止させた状態で、画像の撮影及びトラッキングデータの検出を行う。
【0031】
そして、閾値算出部15は、各位置について推定されたARマーカ推定部12の推定結果とトラッキング推定部14の推定結果との差の最大値を、後述する選択部16において、推定結果の対応付けを行う際の閾値として算出する。閾値算出部15は、算出した閾値を、閾値DB21に記憶する。
【0032】
図10に、閾値DB21の一例を示す。
図10の例では、各位置(左上、右上、中央、左下、及び右下)において、ARマーカ推定部12及びトラッキング推定部14の各々で推定された3次元位置間の距離の最大値が、「距離閾値」として記憶されている。同様に、各位置において、ARマーカ推定部12及びトラッキング推定部14の各々で推定された姿勢間の差の最大値が、「姿勢閾値」として記憶されている。
【0033】
なお、上記の例では、消火器(ハンドル模型34)が手に持って操作するものであることを考慮して、手を伸ばした範囲内の数点の位置で、画像の撮影及びトラッキングデータの検出を行うこととしているが、この例に限定されない。4点以下の位置で画像の撮影及びトラッキングデータの検出を行ってもよいし、6点以上の位置で行ってもよい。また、各位置でハンドル模型34の姿勢を変更してもよい。また、N領域に分割した領域毎に閾値を算出してもよい。
図11に、この場合の閾値DB21Aの一例を示す。「領域」は、仮想空間を複数の領域に分割した際の各領域を識別する情報である。ARマーカ35又はVRトラッカー36について推定された位置が、仮想空間のいずれの領域に含まれるかに応じて、対応する閾値が利用される。
【0034】
選択部16は、ARマーカ推定部12の推定結果と、そのARマーカ推定部12と対応するトラッキング推定部14の推定結果との比較に基づいて、いずれかの推定結果を選択する。
【0035】
ここで、ARマーカ推定部12の推定結果と、トラッキング推定部14の推定結果との対応関係について説明する。
【0036】
トラッキング推定部14が、トラッキング装置31から取得したトラッキングデータに基づいてハンドル模型34の位置及び姿勢を推定する処理は、トラッキングデータの検出時刻に対してほぼリアルタイムで処理可能である。一方、ARマーカ推定部12が、ステレオカメラ32で撮影された画像から検出したARマーカ35に基づいてハンドル模型34の位置及び姿勢を推定する処理は、所定の処理時間を要する。すなわち、ARマーカ推定部12による推定と、トラッキング推定部14による推定とは同期していない。そこで、画像の撮影時刻とトラッキングデータの検出時刻とが同一である推定結果同士を対応付ける。
【0037】
図12に、各時刻において、ARマーカ推定部12及びトラッキング推定部14の各々で推定された推定結果の軌跡を概略的に示す。なお、
図12では、説明を簡単にするため、推定結果を2次元で表している。トラッキングデータの検出からトラッキング推定部14による推定結果が得られるまでの処理時間を0とし、ステレオカメラ32による撮影から、ARマーカ推定部12による推定結果が得られるまでの処理時間をxとする。この場合、
図12に示すように、時刻tiにおけるARマーカ推定部12の推定結果は、時刻ti−xにおけるトラッキング推定部14の推定結果に対応することになる。
【0038】
ただし、上記の処理時間xは、常に一定ではないため、選択部16は、以下のように、画像の撮影時刻とトラッキングデータの検出時刻とが同一である推定結果同士を対応付ける。
【0039】
図13に示すように、選択部16は、時刻ti以前の所定時間内の複数の時刻の各々におけるトラッキング推定部14の推定結果の各々と、時刻tiにおけるARマーカ推定部12の推定結果とを比較する。具体的には、選択部16は、トラッキング推定部14の推定結果を示すベクトルの各々と、時刻tiにおけるARマーカ推定部12の推定結果を示すベクトルとを各々比較する。そして、ベクトル間の差が、閾値DB21に記憶された閾値以下で最小となる場合におけるトラッキング推定部14の推定結果を、時刻tiにおけるARマーカ推定部12の推定結果に対応するトラッキング推定部14の推定結果とする。ベクトル間の差は、例えば、推定結果同士の3次元位置間の距離、及び推定結果同士の姿勢の差である。
【0040】
例えば、
図26のB〜Dに示すように、ARマーカ35が良好に検出されなかった場合には、ARマーカ35に基づくハンドル模型34の3次元位置及び姿勢の推定は失敗する。そこで、選択部16は、上記のように、時刻tiにおいてARマーカ推定部12により推定された推定結果に、対応するトラッキング推定部14による推定結果が存在するか否かにより、ARマーカ推定部12による推定結果の信頼性を評価する。
【0041】
選択部16は、対応するトラッキング推定部14による推定結果が存在する場合には、ARマーカ推定部12による推定結果は信頼性ありと判断して、ARマーカ推定部12による推定結果を選択する。一方、選択部16は、対応するトラッキング推定部14による推定結果が存在しない場合には、ARマーカ推定部12による推定結果は信頼性なしと判断して、トラッキング推定部14による推定結果を選択する。選択部16は、選択結果を表示制御部18へ通知する。
【0042】
また、選択部16は、ARマーカ推定部12の推定結果を選択した場合、ARマーカ推定部12の推定結果と、そのARマーカ推定部12の推定結果に対応するトラッキング推定部14の推定結果との差分をオフセット値として保持する。
【0043】
表示制御部18は、HMD33に表示する右眼用VR画像及び左眼用VR画像の各々を生成する。各VR画像の生成方法を以下に示す。表示制御部18は、HMD33に表示するVR画像のサイズに対応した描画領域を用意する。表示制御部18は、ステレオカメラ32から取得された画像を背景画像として描画領域に描画する。
【0044】
また、表示制御部18は、選択部16から、ARマーカ推定部12の推定結果を選択した旨が通知された場合、オブジェクトDB22から、消火器を示す仮想オブジェクト39の3次元データを読み出す。そして、表示制御部18は、ARマーカ推定部12により推定されたカメラ座標系におけるハンドル模型34の3次元位置及び姿勢に対応させた消火器を示す仮想オブジェクト39を、背景画像が描画された描画領域に重畳して描画する。
【0045】
また、表示制御部18は、選択部16から、トラッキング推定部14の推定結果を選択した旨が通知された場合、オブジェクトDB22から、消火器を示す仮想オブジェクト39の3次元データを読み出す。また、表示制御部18は、トラッキング推定部14による推定結果に、選択部16が保持するオフセット値を加算する。そして、表示制御部18は、オフセット値を加算したトラッキング推定部14の推定結果が示すハンドル模型34のワールド座標系の3次元位置に、オフセット値加算後の推定結果が示す姿勢で、消火器を示す仮想オブジェクト39を配置する。さらに、表示制御部18は、トラッキング推定部14で推定されたHMD33の3次元位置及び姿勢に対応する装着者40の視線方向で仮想空間を見た場合の仮想オブジェクト39を、背景画像が描画された描画領域に重畳して描画する。
【0046】
また、表示制御部18は、ステレオカメラ32により撮影された画像から、装着者40の腕領域の画像を抽出し、抽出した腕領域の画像を、背景画像及び消火器を示す仮想オブジェクト39が描画された描画領域に重畳して描画する。
【0047】
また、表示制御部18は、オブジェクトDB22に記憶されている、炎などの他の仮想オブジェクトを、描画領域に重畳して描画してもよい。
【0048】
表示制御部18は、上記の描画を右眼用及び左眼用の各々について行うことにより、右眼用VR画像及び左眼用VR画像の各々を生成する。表示制御部18は、生成した右眼用VR画像及び左眼用VR画像をHMD33に出力する。
【0049】
これにより、HMD33には、例えば
図14に示すようなVR画像が表示される。
図14の例では、消火器及び炎が仮想オブジェクトであり、それ以外の部分(壁、床、ホワイトボード、机、腕等)は、ステレオカメラ32で撮影された現実空間を映した画像である。
【0050】
表示制御装置10は、例えば
図15に示すコンピュータ50で実現することができる。コンピュータ50は、Central Processing Unit(CPU)51と、一時記憶領域としてのメモリ52と、不揮発性の記憶部53とを備える。また、コンピュータ50は、入力装置、表示装置等の入出力装置54と、記憶媒体59に対するデータの読み込み及び書き込みを制御するRead/Write(R/W)部55と、インターネット等のネットワークに接続される通信Interface(I/F)56とを備える。CPU51、メモリ52、記憶部53、入出力装置54、R/W部55、及び通信I/F56は、バス57を介して互いに接続される。
【0051】
記憶部53は、Hard Disk Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部53には、コンピュータ50を、表示制御装置10として機能させるための表示制御プログラム60が記憶される。表示制御プログラム60は、ARマーカ推定プロセス62と、トラッキング推定プロセス64と、閾値算出プロセス65と、選択プロセス66と、表示制御プロセス68とを有する。また、記憶部53は、閾値DB21及びオブジェクトDB22の各々を構成する情報が記憶される情報記憶領域70を有する。
【0052】
CPU51は、表示制御プログラム60を記憶部53から読み出してメモリ52に展開し、表示制御プログラム60が有するプロセスを順次実行する。CPU51は、ARマーカ推定プロセス62を実行することで、
図6に示すARマーカ推定部12として動作する。また、CPU51は、トラッキング推定プロセス64を実行することで、
図6に示すトラッキング推定部14として動作する。また、CPU51は、閾値算出プロセス65を実行することで、
図6に示す閾値算出部15として動作する。また、CPU51は、選択プロセス66を実行することで、
図6に示す選択部16として動作する。また、CPU51は、表示制御プロセス68を実行することで、
図6に示す表示制御部18として動作する。また、CPU51は、情報記憶領域70から情報を読み出して、閾値DB21及びオブジェクトDB22をメモリ52に展開する。また、CPU51は、トラッキング推定プロセス64の実行時に、履歴テーブル23をメモリ52上に作成する。これにより、表示制御プログラム60を実行したコンピュータ50が、表示制御装置10として機能することになる。なお、プログラムを実行するCPU51はハードウェアである。
【0053】
なお、表示制御プログラム60により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit(ASIC)等で実現することも可能である。
【0054】
次に、第1実施形態に係る表示制御装置10の作用について説明する。VRシステム100が起動されると、VRトラッキング装置31がVRトラッキングを開始し、トラッキングデータを出力すると共に、ステレオカメラ32が撮影を開始し、右眼用画像及び左眼用画像を出力する。そして、表示制御装置10が、
図16に示す閾値算出処理を実行した後に、
図17に示す表示制御処理を実行する。なお、閾値算出処理及び表示制御処理は、開示の技術の表示制御方法の一例である。
【0055】
まず、
図16に示す閾値算出処理について説明する。
【0056】
ステップS12で、ARマーカ推定部12が、ARマーカ35及びVRトラッカー36が対応付けて配置されたハンドル模型34を所定の位置の各々に配置したときにステレオカメラ32で撮影された画像を取得する。この際、HMD33を装着した装着者40が中央を注視した状態で、HMD33に配置されたステレオカメラ32により撮影される画像に、ARマーカ35の全体が含まれるように配置する。また、トラッキング推定部14が、各位置で検出されたトラッキングデータを取得する。
【0057】
次に、ステップS14で、閾値算出部15が、各位置で撮影された画像に基づいてARマーカ推定部12で推定されたカメラ座標系の推定結果を取得し、仮想空間座標系に変換する。また、閾値算出部15が、各位置で検出されたトラッキングデータに基づいてトラッキング推定部14で推定された仮想空間座標系の推定結果を取得する。
【0058】
次に、ステップS16で、閾値算出部15が、各位置について推定されたARマーカ推定部12の推定結果とトラッキング推定部14の推定結果との差の最大値を、後述する選択部16において、推定結果の対応付けを行う際の閾値として算出する。そして、閾値算出部15は、算出した閾値を、閾値DB21に記憶し、閾値算出処理は終了する。
【0059】
次に、
図17に示す表示制御処理について説明する。
【0060】
ステップS22で、ARマーカ推定部12及び表示制御部18が、ステレオカメラ32から出力された右眼用画像及び左眼用画像の各々を取得する。
【0061】
次に、ステップS24で、表示制御部18が、HMD33に表示するVR画像のサイズに対応した描画領域を用意する。表示制御部18は、ステレオカメラ32から取得された画像を背景画像として描画領域に描画する。
【0062】
次に、ステップS26で、トラッキング推定部14が、トラッキング装置31から出力された、HMD33についてのトラッキングデータを取得する。そして、トラッキング推定部14が、取得したトラッキングデータに基づいて、仮想空間座標系におけるHMD33の3次元位置及び姿勢を推定する。
【0063】
次に、ステップS28で、トラッキング推定部14が、トラッキング装置31から出力されたVRトラッカー36についてのトラッキングデータを取得する。そして、トラッキング推定部14が、取得したトラッキングデータに基づいて、仮想空間座標系におけるVRトラッカー36の3次元位置及び姿勢を推定する。
【0064】
次に、ステップS30で、トラッキング推定部14が、VRトラッカー36の3次元位置及び姿勢の推定結果を、例えば、
図8に示すような履歴テーブル23に保持する。この際、トラッキング推定部14は、履歴テーブル23に保持されている最も古い推定結果を破棄し、上記ステップS28で推定された推定結果を履歴テーブル23に追加する。
【0065】
次に、ステップS32で、ARマーカ推定部12が、取得した右眼用画像及び左眼用画像の各々から、パターンマッチングなどの画像認識処理により、予め登録された図形であるARマーカ35が検出されたか否かを判定する。ARマーカ35が検出された場合には、処理はステップS36へ移行し、検出されない場合には、処理はステップS46へ移行する。
【0066】
ステップS36では、ARマーカ推定部12が、右眼用画像及び左眼用画像の各々から検出したARマーカ35と、ステレオカメラ32の両眼視差とに基づいて、カメラ座標系におけるARマーカ35の3次元位置及び姿勢を推定する。
【0067】
次に、ステップS38で、選択部16が、ARマーカ推定部12による推定結果の信頼性を評価する。具体的には、選択部16が、上記ステップS36でARマーカ推定部12により推定されたカメラ座標系の推定結果を仮想空間座標系に変換する。そして、選択部16が、履歴テーブル23に保持したトラッキング推定部14の推定結果の各々と、上記ステップS36で推定されたARマーカ推定部12の推定結果(座標変換後)とを比較する。選択部16は、トラッキング推定部14の推定結果を示すベクトルの各々と、ARマーカ推定部12の推定結果を示すベクトルとの差が、閾値DB21に記憶された閾値以下で最小となる場合におけるトラッキング推定部14の推定結果を特定する。
【0068】
次に、ステップS40で、選択部16が、ARマーカ推定部12の推定結果は信頼性ありか否かを判定する。上記ステップS38において、ARマーカ推定部12の推定結果に対応するトラッキング推定部14の推定結果が特定されている場合には、ARマーカ推定部12の推定結果は信頼性ありと判定され、処理はステップS42へ移行する。一方、ARマーカ推定部12の推定結果に対応するトラッキング推定部14の推定結果が特定されていない場合には、ARマーカ推定部12の推定結果は信頼性なしと判定され、処理はステップS46へ移行する。
【0069】
ステップS42では、表示制御部18が、オブジェクトDB22から、消火器を示す仮想オブジェクト39の3次元データを読み出す。そして、表示制御部18は、ARマーカ推定部12により推定されたカメラ座標系におけるハンドル模型34の3次元位置及び姿勢に対応させた消火器を示す仮想オブジェクト39を、背景画像が描画された描画領域に重畳して描画する。
【0070】
次に、ステップS44で、選択部16が、ARマーカ推定部12の推定結果と、対応するトラッキング推定部14の推定結果との差分をオフセット値として保持する。
【0071】
一方、ステップS46では、表示制御部18が、オブジェクトDB22から、消火器を示す仮想オブジェクト39の3次元データを読み出す。そして、表示制御部18は、トラッキング推定部14による推定結果に、選択部16が保持するオフセット値を加算する。 次に、ステップS48で、表示制御部18が、オフセット値を加算したトラッキング推定部14の推定結果が示すハンドル模型34のワールド座標系の3次元位置に、オフセット値加算後の推定結果が示す姿勢で、消火器を示す仮想オブジェクト39を配置する。そして、表示制御部18は、トラッキング推定部14で推定されたHMD33の3次元位置及び姿勢に対応する装着者40の視線方向で仮想空間を見た場合の仮想オブジェクト39を、背景画像が描画された描画領域に重畳して描画する。
【0072】
次に、ステップS50で、表示制御部18が、取得した右眼用画像及び左眼用画像の各々から、例えば、肌色の領域を抽出するなどして、装着者40の腕部を示す腕領域を抽出する。そして、表示制御部18は、抽出した腕領域の画像を、背景画像及び消火器を示す仮想オブジェクト39が描画された描画領域に重畳して描画する。
【0073】
次に、ステップS52で、表示制御部18が、オブジェクトDB22に記憶されている、炎などの他の仮想オブジェクトの3次元データを読み出し、描画領域に重畳して描画する。
【0074】
表示制御部18は、上記の処理を右眼用及び左眼用の各々について行うことにより、右眼用VR画像及び左眼用VR画像の各々を生成する。
【0075】
次に、ステップS54で、表示制御部18が、生成した右眼用VR画像及び左眼用VR画像をHMD33に出力する。これにより、HMD33には、例えば
図14に示すようなVR画像が表示される。そして、表示制御処理は終了する。
【0076】
表示制御部18は、VRシステム100の終了が指示されるまで、上記の表示制御処理を所定時間間隔(例えば、ステレオカメラのフレームレートと同じ間隔)で繰り返し実行する。
【0077】
以上説明したように、第1実施形態におけるVRシステム100によれば、表示制御装置10が、時刻tiに推定されたARマーカに基づく推定結果についての信頼性を評価する。具体的には、推定結果が示すベクトル間の差が閾値以内となるVRトラッカーに基づく推定結果が、時刻ti以前の所定期間内の各時刻に推定されたVRトラッカーに基づく推定結果に存在する場合に、信頼性ありと評価する。ARマーカに基づく推定結果に信頼性がある場合、カメラ画像との位置ずれが少ないARマーカに基づく推定結果を用いて対象物の仮想オブジェクトを描画する。
【0078】
一方、ARマーカに基づく推定結果に信頼性がない場合に、ARマーカに基づく推定結果を用いて、対象物の仮想オブジェクトを描画したとする。この場合、例えば、
図18に示すように、現実空間の画像に重畳される対象物の仮想オブジェクトに、一瞬、位置ずれや方向違い等が生じ、対象物がバタ付いて見える。そこで、本実施形態に係る表示制御装置10は、ARマーカに基づく推定結果に信頼性がない場合には、カメラ画像との位置ずれ以外は安定して位置を検出できるVRトラッカーに基づく推定結果を用いて、対象物の仮想オブジェクトを描画する。これにより、現実空間において取り扱い可能な物体に対応する対象物の仮想オブジェクトを現実空間の画像に重畳する場合における表示の違和感を緩和することができる。
【0079】
<第2実施形態>
次に、第2実施形態について説明する。第2実施形態では、現実空間において取り扱い可能な物体を、消火器のノズル部分を模した模型とし、現実空間の画像に重畳して描画する仮想オブジェクトも、消火器のノズル部分である場合について説明する。なお、第2実施形態に係るVRシステムにおいて、第1実施形態に係るVRシステム100と同様の部分については、同一符号を付して詳細な説明を省略する。
【0080】
図19に示すように、第2実施形態に係るVRシステム200は、表示制御装置210と、VRトラッキング装置31と、ステレオカメラ32が取り付けられたHMD33とを含む。さらに、VRシステム200は、複数のノズル模型34A、34B、34Cと、複数のARマーカ35A、35B、35Cと、1つのVRトラッカー36とを含む。なお、ノズル模型及びARマーカの数は、
図19の例に限定されず、2個でも4個以上でもよい。なお、以下では、ノズル模型34A、34B、34Cを区別なく説明する場合には、代表してノズル模型34Aについて説明する。同様に、ARマーカ35A、35B、35Cを区別なく説明する場合には、代表してARマーカ35Aについて説明する。
【0081】
ノズル模型34Aは、HMD33の装着者が実際に保持したり操作したりして取り扱うことが可能な物体であり、本実施形態では、消火器のノズル部分に相当する棒状の物体である。ノズル模型34A、34B、34Cの各々は、対応付けて配置されているARマーカ35A、35B、35Cが異なるだけであり、形状等は同一の物体である。なお、ノズル模型34Aは、開示の技術の物体の一例である。
【0082】
ARマーカ35Aは、ノズル模型34Aとの位置関係が固定された予め定めた位置に配置される。例えば、
図20に示すように、ARマーカ35Aは、ノズル模型34Aの先端に貼付される。また、第1実施形態のARマーカ35と同様に、複数の面を持つ台座38に複数のARマーカ35を貼付することができる(
図21参照)。
【0083】
VRトラッカー36は、
図20及び
図21に示すように、ノズル模型34Aを保持する装着者40の手首等の位置に固定して取り付けられる。これにより、ノズル模型34Aを装着者40が保持した場合、ノズル模型34Aと、手首等に取り付けられたVRトラッカー36とは、ほぼ固定された位置関係となる。
【0084】
表示制御装置210は、機能的には、
図22に示すように、ARマーカ推定部12と、トラッキング推定部14と、閾値算出部15と、選択部16と、表示制御部218と、切替部219とを含む。また、表示制御装置210の所定の記憶領域には、閾値DB21と、オブジェクトDB222とが記憶される。
【0085】
オブジェクトDB222には、消火器のノズルを示す仮想オブジェクトの3次元データが記憶されている。ノズルを示す仮想オブジェクトは、
図23に示すように、ARマーカ35A、35B、35Cの各々に対応して、それぞれ異なる形状の仮想オブジェクト39A、39B、39Cが用意される。仮想オブジェクト39A、39B、39Cの各々には、ARマーカ35A、35B、35Cの各々に対応する識別番号が付与されている。
【0086】
切替部219は、装着者40がノズル模型34A、34B、34Cを持ち替えたことを検知すると、持ち替えた後のノズル模型34A、34B、34Cに貼付されたARマーカ35A、35B、35C対応する識別番号を表示制御部218へ通知する。具体的には、切替部219は、ARマーカ推定部12で、ARマーカ35Aが検出されない期間が一定期間継続した場合に、次に検出されたARマーカ35A、35B、35Cを、切替後のARマーカ35A、35B、35Cと判定する。
【0087】
表示制御部218は、ノズルの仮想オブジェクトを描画する際、切替部219から通知された識別番号が付与された仮想オブジェクト39A、39B、39Cの3次元データをオブジェクトDB222から読み出して描画する。これにより、
図24に示すように、現実空間では、異なるARマーカ35A、35B、35Cが貼付されたノズル模型34A、34B、34Cに持ち替えるだけで、VR画像上で、異なる形状のノズルの仮想オブジェクト39A、39B、39Cが描画される。
【0088】
表示制御装置210は、例えば
図15に示すコンピュータ50で実現することができる。コンピュータ50の記憶部53には、コンピュータ50を、表示制御装置210として機能させるための表示制御プログラム260が記憶される。表示制御プログラム260は、ARマーカ推定プロセス62と、トラッキング推定プロセス64と、閾値算出プロセス65と、選択プロセス66と、表示制御プロセス268と、切替プロセス269とを有する。また、記憶部53は、閾値DB21及びオブジェクトDB222の各々を構成する情報が記憶される情報記憶領域70を有する。
【0089】
CPU51は、表示制御プログラム260を記憶部53から読み出してメモリ52に展開し、表示制御プログラム260が有するプロセスを順次実行する。CPU51は、表示制御プロセス268を実行することで、
図22に示す表示制御部218として動作する。また、CPU51は、切替プロセス269を実行することで、
図22に示す切替部219として動作する。また、CPU51は、情報記憶領域70から情報を読み出して、閾値DB21及びオブジェクトDB222の各々をメモリ52に展開する。他のプロセスについては、第1実施形態に係る表示制御プログラム60と同様である。これにより、表示制御プログラム260を実行したコンピュータ50が、表示制御装置210として機能することになる。
【0090】
なお、表示制御プログラム260により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
【0091】
次に、第2実施形態に係る表示制御装置210の作用について説明する。第2実施形態においても、第1実施形態と同様に、閾値算出処理(
図16)及び表示制御処理(
図17)が実行される。また、表示制御処理と並行して、
図25に示す切替処理が実行される。
【0092】
図25に示す切替処理のステップS62で、切替部219が、ARマーカ推定部12で、ARマーカ35Aが検出されない期間が一定期間継続したか否かを判定する。継続した場合には、処理はステップS64へ移行し、継続していない場合には、本ステップの判定を繰り返す。
【0093】
ステップS64では、切替部219が、ARマーカ推定部12で、ARマーカ35Aが検出されたか否かを判定する。検出された場合には、処理はステップS66へ移行し、検出されない場合には、本ステップの判定を繰り返す。
【0094】
ステップS66では、切替部219が、検出されたARマーカ35A、35B、35Cに対応する識別番号を表示制御部218へ通知し、ステップS62に戻る。
【0095】
第2実施形態における閾値算出処理では、いずれかのARマーカ35A、35B、35Cのいずれかについて、第1実施形態と同様の閾値算出処理を実行してもよい。また、ARマーカ35A、35B、35Cの各々について、第1実施形態と同様の閾値算出処理を実行し、ARマーカ35A、35B、35C毎の閾値を設定してもよい。
【0096】
また、第2実施形態における表示制御処理(
図17)では、ステップS42又はS48で仮想オブジェクト39A、39B、39Cの3次元データをオブジェクトDB222から読み出す。この際に、上記の切替処理のステップS66で通知された識別番号に対応する仮想オブジェクト39A、39B、39Cの3次元データを読み出すようにすればよい。
【0097】
以上説明したように、第2実施形態に係るVRシステム200によれば、1つのVRトラッカーと複数のARマーカの各々とを独立に設け、VRトラッカーを装着者の手首等に取り付け、その手でいずれかのARマーカが貼付されたノズル模型を保持する。これにより、保持したノズル模型に貼付されたARマーカに応じて、異なる仮想オブジェクトを描画することができる。また、描画したい仮想オブジェクト数分のVRトラッカーを用意する必要がなく、コストを削減することができる。
【0098】
なお、上記第1及び第2実施形態では、消火器又は消火器のノズルを仮想オブジェクトとして描画する場合について説明したが、仮想オブジェクトとする対象物はこれに限定されるものではない。
【0099】
また、上記各実施形態では、対象物の位置及び姿勢の推定にARマーカを用いる場合について説明したが、これに限定されない。ARマーカ以外のマーカを用いてもよいし、マーカを用いることなく、対象物自体の特徴点を検出して、特徴点の配置などから、対象物の位置及び姿勢を推定してもよい。
【0100】
また、上記各実施形態では、ステレオカメラで撮影された画像を用いてARマーカの位置及び姿勢を推定する場合について説明したが、これに限定されない。例えば、単眼の可視光カメラで撮影された画像から検出したARマーカの画像内での位置、サイズ、及び傾き(歪み)と、ARマーカの実際のサイズと、カメラの焦点距離とに基づいて、ARマーカの位置及び姿勢を推定してもよい。また、赤外線カメラを用いてもよい。この場合、VR画像に表示する背景画像を撮影するための可視光カメラを別途も受けてもよい。
【0101】
なお、ステレオカメラを用いる場合には、ARマーカの位置及び姿勢を推定するための画像と、VR画像に表示する背景画像とを撮影するためのカメラを別々に設ける必要がない。
【0102】
また、上記各実施形態では、表示制御プログラム60、260が記憶部53に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD−ROM、DVD−ROM、USBメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【0103】
以上の各実施形態に関し、更に以下の付記を開示する。
【0104】
(付記1)
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第1の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第2の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
前記第1の指標に基づく前記物体の3次元位置及び姿勢の第1の推定結果と、前記第2の指標に基づく前記物体の3次元位置及び姿勢の第2の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第2の推定結果との比較に基づいて、前記第1の推定結果又は前記第2の推定結果を選択し、
選択した前記第1の推定結果又は前記第2の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータに実行させるための表示制御プログラム。
【0105】
(付記2)
前記撮影時刻以前の所定時間内の複数の検出時刻に検出された前記第2の指標に基づく前記第2の推定結果のうち、前記第1の推定結果を示すベクトルと、前記第2の推定結果を示すベクトルとの差が予め定めた閾値以内で最小となる前記第2の推定結果を、前記第1の推定結果と対応する前記第2の推定結果とする付記1に記載の表示制御プログラム。
【0106】
(付記3)
前記第1の推定結果と対応する前記第2の推定結果が存在する場合、前記第1の推定結果を選択し、前記第1の推定結果と対応する前記第2の推定結果が存在しない場合、前記第2の推定結果を選択する付記2に記載の表示制御プログラム。
【0107】
(付記4)
前記第2の推定結果を選択する場合、過去に前記第1の推定結果を選択した際の前記第1の推定結果と、前記第1の推定結果と対応する前記第2の推定結果との差を、選択した前記第2の推定結果に加算した値が示す前記物体の3次元位置及び姿勢に基づいて、前記仮想オブジェクトを重畳する付記3に記載の表示制御プログラム。
【0108】
(付記5)
前記閾値を、前記第1の指標の全体が含まれるように撮影された画像から検出された前記第1の指標に基づいて推定した前記第1の推定結果と、前記第1の指標の全体が含まれるように撮影された画像の撮影時刻と対応する検出時刻に検出された第2の指標に基づく前記第2の推定結果との差に基づいて算出する付記2〜付記4のいずれか1項に記載の表示制御プログラム。
【0109】
(付記6)
複数の異なる前記第1の指標の各々を、複数の前記物体の各々に配置し、前記第2の指標を、前記物体を保持する部位に配置する付記1〜付記5のいずれか1項に記載の表示制御プログラム。
【0110】
(付記7)
前記第1の指標は、前記物体の3次元位置及び姿勢に対して既知の3次元位置及び姿勢で配置されたマーカであり、前記撮影された画像上での前記マーカの位置及び姿勢に基づいて、前記物体の3次元位置及び姿勢を推定する付記1〜付記6のいずれか1項に記載の表示制御プログラム。
【0111】
(付記8)
前記第2の指標は、VRトラッカーであり、前記検出装置は、前記VRトラッカーの方向及び距離の情報を含むトラッキングデータを検出する付記1〜付記7のいずれか1項に記載の表示制御プログラム。
【0112】
(付記9)
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第1の指標を検出することにより、前記物体の3次元位置及び姿勢を推定する第1推定部と、
検出装置により、前記物体に対応付けて配置された第2の指標を検出することにより、前記物体の3次元位置及び姿勢を推定する第2推定部と、
前記第1の指標に基づく前記物体の3次元位置及び姿勢の第1の推定結果と、前記第2の指標に基づく前記物体の3次元位置及び姿勢の第2の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第2の推定結果との比較に基づいて、前記第1の推定結果又は前記第2の推定結果を選択する選択部と、
選択した前記第1の推定結果又は前記第2の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する表示制御部と、
を含む表示制御装置。
【0113】
(付記10)
前記選択部は、前記撮影時刻以前の所定時間内の複数の検出時刻に検出された前記第2の指標に基づく前記第2の推定結果のうち、前記第1の推定結果を示すベクトルと、前記第2の推定結果を示すベクトルとの差が予め定めた閾値以内で最小となる前記第2の推定結果を、前記第1の推定結果と対応する前記第2の推定結果とする付記9に記載の表示制御装置。
【0114】
(付記11)
前記選択部は、前記第1の推定結果と対応する前記第2の推定結果が存在する場合、前記第1の推定結果を選択し、前記第1の推定結果と対応する前記第2の推定結果が存在しない場合、前記第2の推定結果を選択する付記10に記載の表示制御装置。
【0115】
(付記12)
前記表示制御部は、前記第2の推定結果を選択される場合、過去に前記第1の推定結果を選択した際の前記第1の推定結果と、前記第1の推定結果と対応する前記第2の推定結果との差を、選択した前記第2の推定結果に加算した値が示す前記物体の3次元位置及び姿勢に基づいて、前記仮想オブジェクトを重畳する付記11に記載の表示制御装置。
【0116】
(付記13)
前記閾値を、前記第1の指標の全体が含まれるように撮影された画像から検出された前記第1の指標に基づいて推定した前記第1の推定結果と、前記第1の指標の全体が含まれるように撮影された画像の撮影時刻と対応する検出時刻に検出された第2の指標に基づく前記第2の推定結果との差に基づいて算出する算出部を含む付記10〜付記12のいずれか1項に記載の表示制御装置。
【0117】
(付記14)
複数の異なる前記第1の指標の各々を、複数の前記物体の各々に配置し、前記第2の指標を、前記物体を保持する部位に配置する付記9〜付記13のいずれか1項に記載の表示制御装置。
【0118】
(付記15)
前記第1の指標は、前記物体の3次元位置及び姿勢に対して既知の3次元位置及び姿勢で配置されたマーカであり、
前記第1推定部は、前記撮影された画像上での前記マーカの位置及び姿勢に基づいて、前記物体の3次元位置及び姿勢を推定する
付記9〜付記14のいずれか1項に記載の表示制御装置。
【0119】
(付記16)
前記第2の指標は、VRトラッカーであり、前記検出装置は、前記VRトラッカーの方向及び距離の情報を含むトラッキングデータを検出する付記9〜付記15のいずれか1項に記載の表示制御装置。
【0120】
(付記17)
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第1の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第2の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
前記第1の指標に基づく前記物体の3次元位置及び姿勢の第1の推定結果と、前記第2の指標に基づく前記物体の3次元位置及び姿勢の第2の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第2の推定結果との比較に基づいて、前記第1の推定結果又は前記第2の推定結果を選択し、
選択した前記第1の推定結果又は前記第2の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータが実行する表示制御方法。
【0121】
(付記18)
前記撮影時刻以前の所定時間内の複数の検出時刻に検出された前記第2の指標に基づく前記第2の推定結果のうち、前記第1の推定結果を示すベクトルと、前記第2の推定結果を示すベクトルとの差が予め定めた閾値以内で最小となる前記第2の推定結果を、前記第1の推定結果と対応する前記第2の推定結果とする付記17に記載の表示制御方法。
【0122】
(付記19)
前記第1の推定結果と対応する前記第2の推定結果が存在する場合、前記第1の推定結果を選択し、前記第1の推定結果と対応する前記第2の推定結果が存在しない場合、前記第2の推定結果を選択する付記18に記載の表示制御方法。
【0123】
(付記20)
撮影装置によって現実空間を撮影した画像から、前記現実空間に存在する取り扱い可能な物体に対応付けて配置された第1の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
検出装置により、前記物体に対応付けて配置された第2の指標を検出することにより、前記物体の3次元位置及び姿勢を推定し、
前記第1の指標に基づく前記物体の3次元位置及び姿勢の第1の推定結果と、前記第2の指標に基づく前記物体の3次元位置及び姿勢の第2の推定結果であって、前記検出装置による検出時刻が前記撮影装置による前記画像の撮影時刻と対応する前記第2の推定結果との比較に基づいて、前記第1の推定結果又は前記第2の推定結果を選択し、
選択した前記第1の推定結果又は前記第2の推定結果に基づいて、前記現実空間を撮影した画像に、前記物体に対応する仮想オブジェクトを重畳した画像を表示装置に表示する
ことを含む処理をコンピュータに実行させるための表示制御プログラムを記憶した記憶媒体。