(57)【要約】【課題】物体の位置とモデルの位置を精度良く対応付ける。【解決手段】コンピュータは、まず、空間内に存在する物体を撮像して得られた撮像画像と撮像位置とを取得する。次に、コンピュータは、物体の構造データに基づいて生成されるモデルを仮想撮像位置から撮像した場合に得られる仮想撮像画像が、取得した前記撮像画像と所定の対応関係を満たす際の仮想撮像位置を特定する。その後、コンピュータは、取得した前記撮像位置と、前記モデル及び前記仮想撮像位置間の位置関係とに基づいて、前記モデルを対応付ける前記空間内の位置を特定する。【選択図】図１
2019185475.tif 000002
【特許請求の範囲】
【請求項１】
空間内に存在する物体を撮像して得られた撮像画像と撮像位置とを取得し、
前記物体の構造データに基づいて生成されるモデルを仮想撮像位置から撮像した場合に得られる仮想撮像画像が、取得した前記撮像画像と所定の対応関係を満たす際の仮想撮像位置を特定し、
取得した前記撮像位置と、前記モデル及び前記仮想撮像位置間の位置関係とに基づいて、前記モデルを対応付ける前記空間内の位置を特定する、
処理をコンピュータに実行させることを特徴とする特定プログラム。
【請求項２】
前記所定の対応関係は、前記仮想撮像位置から見た前記仮想撮像画像と、前記取得した前記撮像画像に含まれる前記物体の画像との一致度が基準を満たす位置関係である
ことを特徴とする請求項１に記載の特定プログラム。
【請求項３】
前記モデル及び前記仮想撮像位置間の位置関係が、前記物体及び前記撮像位置間の位置関係に対応するように、前記モデルの前記空間内の位置の特定をする
ことを特徴とする請求項１又は２に記載の特定プログラム。
【請求項４】
前記構造データは、物体を設計する際に予め作成される設計データであり、
前記モデルは、前記構造データに応じた３次元モデルである
ことを特徴とする請求項１〜３の何れかに記載の特定プログラム。
【請求項５】
空間内に存在する物体を撮像して撮像画像を得る撮像部と、
前記物体を撮像した際の撮像位置を検出する座標検出部と、
物体の構造データに基づいて生成されるモデルを仮想撮像位置から撮像した場合に得られる仮想撮像画像が、取得した前記撮像画像と所定の対応関係を満たす際の仮想撮像位置を特定する特定部と、
取得した前記撮像位置と、前記モデルと前記仮想撮像位置間の位置関係とに基づいて、前記モデルを対応付ける前記空間内の位置を特定する推定部と、を備える
ことを特徴とする情報処理装置。
【請求項６】
情報処理装置が、
空間内に存在する物体を撮像して得られた撮像画像と撮像位置とを取得し、
前記物体の構造データに基づいて生成されるモデルを仮想撮像位置から撮像した場合に得られる仮想撮像画像が、取得した前記撮像画像と所定の対応関係を満たす際の仮想撮像位置を特定し、
取得した前記撮像位置と、前記モデルと前記仮想撮像位置間の位置関係とに基づいて、前記モデルを対応付ける前記空間内の位置を特定する、
ことを特徴とする特定方法。
【請求項７】
特定の方向からみた物体の構造モデルを表示させる指定を受け付け、
前記物体の構造データを記憶する記憶部を参照して、前記物体に含まれる部位のうち、指定された前記方向から前記物体を見た場合に他の部位により隠れる第１の部位と、前記第１の部位以外の第２の部位とを特定し、
前記構造モデルのうち、特定した前記第１の部位に対応する領域を第１の透過率で表示するとともに、特定した前記第２の部位に対応する領域を前記第１の透過率よりも低い第２の透過率で表示する、
処理をコンピュータに実行させることを特徴とする表示制御プログラム。
【請求項８】
特定の方向からみた物体の構造モデルを表示させる指定を受け付け、
前記物体の構造データを記憶する記憶部を参照して、前記物体に含まれる部位のうち、指定された前記方向から前記物体を見た場合に他の部位により隠れる第１の部位と、前記第１の部位以外の第２の部位とを特定する描画処理部と、
前記構造モデルのうち、特定した前記第１の部位に対応する領域を第１の透過率で表示するとともに、特定した前記第２の部位に対応する領域を前記第１の透過率よりも低い第２の透過率で表示する表示部と、を備える
ことを特徴とする表示制御装置。
【請求項９】
情報処理装置が、
特定の方向からみた物体の構造モデルを表示させる指定を受け付け、
前記物体の構造データを記憶する記憶部を参照して、前記物体に含まれる部位のうち、指定された前記方向から前記物体を見た場合に他の部位により隠れる第１の部位と、前記第１の部位以外の第２の部位とを特定し、
前記構造モデルのうち、特定した前記第１の部位に対応する領域を第１の透過率で表示するとともに、特定した前記第２の部位に対応する領域を前記第１の透過率よりも低い第２の透過率で表示する、
ことを特徴とする表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定プログラム、特定方法及び情報処理装置に関する。
【背景技術】
【０００２】
近年、拡張現実（Augmented Reality、ＡＲ）技術を用いて画像を表示するシステムが普及してきている。ＡＲ技術と共に、複合現実（Mixed Reality、ＭＲ）技術が用いられることもある。ＡＲ技術とＭＲ技術を用いたシステム（ＡＲ／ＭＲ技術）では、例えば、スマートフォンなどに搭載されたカメラを用いて物体を撮影することによって得られた現実世界の画像と、Computer Graphic（CG）データを同時に表示することができる。従って、ユーザは、スマートフォンやHead Mounted Display(HMD)のモニタを通して、現実世界とCGデータとが同時に表示されたAR/VR画像又は映像を見ることができる。
【０００３】
関連する技術として、物体を構成する複数の線分を含む3次元モデルデータを保持し、撮像装置により撮像された物体の画像を取得して、取得された画像から、3次元モデルデータに含まれる線分に対応する線分を検出する情報処理装置が提案されている。情報処理装置は、当該検出された線分と、保持された線分との対応に基づいて位置姿勢算出処理を実施し撮像装置により撮像される物体に対する撮像装置の位置及び姿勢の情報を算出する（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２６６７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＡＲ／ＭＲ技術を用いると、物体の近傍に、その物体の設計中に使用される設計データを用いて生成されたモデルを表示することも可能である。しかし、物体とモデルを比較するときに、両者を並べて表示するよりも、物体とモデルを重ね合わせて表示するほうが、物体とモデルの差分に気付きやすい場合がある。この場合、物体とモデルの差分をユーザが探す場合に、物体とモデルの両者の位置を精度良く対応付けて表示することが好ましい。しかし、物体の位置とモデルの表示位置を精度良く対応付けることは困難である。
【０００６】
本発明は１つの側面において、物体の位置とモデルの位置を精度良く対応付けることを目的とする。
【課題を解決するための手段】
【０００７】
コンピュータは、空間内に存在する物体を撮像して得られた撮像画像と撮像位置とを取得する。コンピュータは、物体の構造データに基づいて生成されるモデルを仮想撮像位置から撮像した場合に得られる仮想撮像画像が、取得した撮像画像と所定の対応関係を満たす際の仮想撮像位置を特定する。コンピュータは、取得した撮像位置と、モデル及び仮想撮像位置間の位置関係とに基づいて、モデルを対応付ける空間内の位置を特定する。
【発明の効果】
【０００８】
本発明によれば、物体の位置とモデルの位置を精度良く対応付けることができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る表示デバイスにおけるモデルの設置位置を推定する処理の例を説明するブロック図である。
【図２Ａ】本実施形態に係るモデルの設置位置を推定する処理の例を説明する図である。
【図２Ｂ】本実施形態に係るモデルの設置位置を推定する処理の例を説明する図である。
【図２Ｃ】本実施形態に係るモデルの設置位置を推定する処理の例を説明する図である。
【図２Ｄ】本実施形態に係るモデルの設置位置を推定する処理の例を説明する図である。
【図２Ｅ】本実施形態に係るモデルの設置位置を推定する処理の例を説明する図である。
【図３】本実施形態に係る表示デバイスを用いてモデル及び物体を見た場合の例を説明する図である。
【図４Ａ】本実施形態に係る表示デバイスにおけるモデルの設置位置を推定する処理の例を説明するフローチャートである。
【図４Ｂ】本実施形態に係る表示デバイスにおけるモデルの設置位置を推定する処理の例を説明するフローチャートである。
【図５】モデルと物体とを重ねて表示する処理の例を説明するブロック図である。
【図６】表示部におけるモデルと物体の表示の例を説明する図である。
【図７】描画処理部の処理の例を説明するフローチャートである。
【図８】本実施形態に係る表示デバイスのハードウェア構成の例を説明する図である。
【発明を実施するための形態】
【００１０】
物体とモデルの差分を探すためには、スマートフォンやHMDなどの表示デバイスが、物体とモデルとが正確に同じ位置に重なるようにモデルの位置を調整して表示することが好ましい。
【００１１】
以下、本実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態に係る表示デバイスにおけるモデルの設置位置を推定する処理の例を説明するブロック図である。表示デバイス２００は、撮像部２１０、記憶部２３０、座標姿勢検出部２１３、画像特徴線抽出部２１５、モデル特徴線抽出部２１６、描画処理部２１７、表示部２１８、入力部２１９、移動回転行列算出部２２０、カメラ座標特定部２２１、実座標推定部２２２を備える。
【００１２】
記憶部２３０は、物体を作成する際に予め作られたモデルのモデルデータ２３３（ARオブジェクト、構造データ）を記憶している。モデルの設置位置を推定する処理では、はじめに、撮像部２１０が物体を撮像する。撮像して得られた撮像画像の画像データ２３１は、記憶部２３０に送られる。記憶部２３０は、撮像して得られた画像データ２３１、及びその撮像条件である内部パラメータ２３２を記憶する。又、座標姿勢検出部２１３は、物体を撮像した際の世界座標系での表示デバイス２００自身の位置座標と向きを検出する。記憶部２３０は、物体を撮像した際の世界座標系での表示デバイス２００自身の位置座標と向きを実座標データ２３４として記憶する。
【００１３】
画像特徴線抽出部２１５は、記憶部２３０から画像データ２３１を読み出し、撮像画像内の物体中の特徴線を抽出する。ここで、特徴線は、物体の位置とモデルの位置の対応付けに使用する線分であって、例えば、物体の輪郭線や物体中の特徴的な形状を表わす線などである。モデル特徴線抽出部２１６は、記憶部２３０からモデルデータ２３３を読み出し、ARオブジェクトにおける特徴線を抽出する。
【００１４】
画像特徴線抽出部２１５及びモデル特徴線抽出部２１６が特徴線を抽出すると、描画処理部２１７は、撮像画像、ARオブジェクト、及び夫々に対して抽出された特徴線を描画する。表示部２１８は、描画処理部２１７で描画される撮像画像、ARオブジェクト、及び夫々に対して抽出された特徴線をモニタに表示する。
【００１５】
入力部２１９は、コントローラ３００の操作により得られる撮像画像に対して抽出された特徴線とARオブジェクトに対して抽出された特徴線との組（ペア）に係る情報を受け付ける。ここでは、ユーザは、撮像画像に撮像されている物体とARオブジェクトを重ねた際に同じ線となる特徴線を、１つのペアとして指定する。
【００１６】
移動回転行列算出部２２０は、入力部２１９から入力された情報から移動回転行列を算出する。なお、移動回転行列については、図２Ｂで後述する。
【００１７】
カメラ座標特定部２２１は、仮想世界における撮像位置から見た撮像画像とARオブジェクトが一致している位置関係を特定する。以降、仮想世界における撮像位置を「仮想撮像位置」、仮想世界における撮像画像を「仮想撮像画像」と称す。カメラ座標特定部２２１は、ARオブジェクトを固定して仮想カメラの座標（仮想撮像位置）を変更することで、仮想撮像位置から見た仮想撮像画像とARオブジェクトが一致している位置関係を形成してもよい。又、カメラ座標特定部２２１は、仮想カメラを固定して、ARオブジェクトの座標を変更することで、仮想撮像位置から見た仮想撮像画像とARオブジェクトが一致している位置関係を形成してもよい。なお、仮想撮像位置から見た仮想撮像画像とARオブジェクトの位置関係は、一致度が基準を満たす位置関係であればよい。
【００１８】
実座標推定部２２２は、特定された仮想撮像位置とARオブジェクトの座標の位置関係と、記憶部２３０に記憶されている表示デバイス２００の位置座標と向きから、実座標（世界座標系）でARオブジェクトを表示する位置を推定する。例えば、実座標推定部２２２は、特定された仮想撮像位置とARオブジェクトとの位置関係を、実際に物体を撮像した際の物体とカメラの位置関係に一致させるようにARオブジェクトの位置を設定する。実座標推定部２２２で実座標（世界座標系）でARオブジェクトを表示する位置が推定されると、描画処理部２１７は、ARオブジェクトを表示部２１８に表示させる。これにより、ユーザは、表示部２１８を通して物体と重なった状態のARオブジェクトを見ることができる。言い換えると、実座標推定部２２２は、実座標（世界座標系）でARオブジェクトを表示する推定位置を特定している。
【００１９】
図２Ａ〜図２Ｅは、本実施形態に係るモデルの設置位置を推定する処理の例を説明する図である。モデルの設置位置を推定する処理は、表示デバイス２００で図２Ａ〜図２Ｅの順で実行される。
【００２０】
図２Ａは、表示デバイス２００に搭載されている撮像部２１０から物体４００を撮像した際の例を表す図である。撮像部２１０は、例えば、カメラ４１０で実現される。物体４００を撮像する際に、座標姿勢検出部２１３は、物体４００を撮像した際の世界座標系での表示デバイス２００自身の位置座標（ｘcamera、ｙcamera、ｚcamera）と向き（αcamera、βcamera、γcamera）を検出する。記憶部２３０は、表示デバイス２００自身の位置座標（ｘcamera、ｙcamera、ｚcamera）と向き（αcamera、βcamera、γcamera）を記憶する。なお、図２Ａの時点では、表示デバイス２００は、物体４００の位置を把握していない。
【００２１】
さらに、カメラ４１０の物体４００を撮像した際の撮像条件も、記憶部２３０に記憶される。以下の説明では、カメラ４１０の物体４００を撮像した際の撮像条件のことを、「内部パラメータ」と記載することがある。内部パラメータには、例えば、写角４１１ａ〜４１１ｄ、解像度、焦点距離などがある。写角４１１ａ〜４１１ｄは、カメラ４１０において実際に画面に写り込む範囲を表した角度を表したものである。焦点距離は、カメラ４１０の焦点を物体４００にあわせて撮像した際の焦点距離である。ここで、図２Ａでは、カメラ４１０から焦点距離分離れた位置で、且つ、写角４１１ａ〜４１１ｄに入るサイズの撮像画像４２０があると仮定している。
【００２２】
図２Ｂは、図２Ａで物体４００を撮像した後に、表示部２１８に表示される画面の例である。図２Ｂの例では、表示部２１８は、撮像画像４２０とARオブジェクト４３０を表示している。
【００２３】
本実施形態では、ユーザは、コントローラ３００を操作することで、物体の特徴を表す特徴線と一致する撮像画像中の特徴線を指定する。さらに、撮像画像中で指定した特徴線に対応するARオブジェクト中の特徴線も指定する。この場合、撮像画像に写っている物体の特徴線とARオブジェクトの特徴線とは、物体の同じ特徴を表す線に相当する。以降、このように、撮像画像に写っている物体の特徴線を指定し、指定した特徴線と同じ特徴を表わしているARオブジェクト中の特徴線を対応付けた組を作ることを、「ペアリング」と称す。撮像画像とＡＲオブジェクトの表示位置を合わせるために、ユーザは１つ以上の特徴線の組を指定する。すると、後述するように、指定した組の各々で各組に含まれている特徴線の表示位置が一致するように表示位置が決定される。一例として、ユーザは、物体の４つの特徴線に対応する像画像に写っている物体の特徴線とARオブジェクトの特徴線の組を指定する。
【００２４】
図２Ｂの例では、特徴線の表示位置を一致させるために表示部２１８は、画像特徴線抽出部２１５が抽出した特徴線を撮像画像４２０に重ねて表示する。且つ、表示部２１８は、モデル特徴線抽出部２１６が抽出した特徴線をARオブジェクト４３０に重ねて表示する。
【００２５】
ユーザが表示部２１８を確認し、撮像画像に対して抽出された特徴線とARオブジェクトに対して抽出された特徴線とのペアを作成し、ペアリング情報をコントローラ３００に入力すると、入力部２１９は、ペアリング情報を受け付ける。図２Ｂの例では、４つの組（ペア）が指定されているが、ペアリングする特徴線の数は任意である。図２Ｂの例では、以下のペアが指定されているとする。
【００２６】
撮像画像中の（ｘ１、ｙ１）〜（ｘ２、ｙ２）の特徴線と、ＡＲオブジェクト中の（Ｘ１、Ｙ１、Ｚ１）〜（Ｘ２、Ｙ２、Ｚ２）の特徴線のペア
撮像画像中の（ｘ２、ｙ２）〜（ｘ３、ｙ３）の特徴線と、ＡＲオブジェクト中の（Ｘ２、Ｙ２、Ｚ２）〜（Ｘ３、Ｙ３、Ｚ３）の特徴線のペア
撮像画像中の（ｘ３、ｙ３）〜（ｘ４、ｙ４）の特徴線と、ＡＲオブジェクト中の（Ｘ３、Ｙ３、Ｚ３）〜（Ｘ４、Ｙ４、Ｚ４）の特徴線のペア
撮像画像中の（ｘ４、ｙ４）〜（ｘ１、ｙ１）の特徴線と、ＡＲオブジェクト中の（Ｘ４、Ｙ４、Ｚ４）〜（Ｘ１、Ｙ１、Ｚ１）の特徴線のペア
【００２７】
移動回転行列算出部２２０は、指定された特徴線の組から移動回転行列を算出する。移動回転行列は、仮想撮像画像上の物体の点座標と３次元座標とを変換する際に用いられる行列である。例えば、移動回転行列算出部２２０は、４つの組にPerspective-n-Line（PnL）法を用いることで移動回転行列を算出する。なお、ＰｎＬ法を用いた移動回転行列の算出の際に使用される特徴線のペアの数も任意に変更可能である。
【００２８】
図２Ｃ及び図２Ｄは、カメラ座標特定部２２１の仮想世界における撮像位置、撮像画像４２０、ARオブジェクトの各々の座標を特定する処理を、分かりやすく図示したものである。図２Ｃは、仮想世界におけるカメラ座標系に仮想カメラ４１０´と撮像画像４２０の位置関係を例示したものである。ここでは仮に、仮想カメラ４１０´の仮想撮像位置を、カメラ座標系の（０、０、０）の位置に設定する。
【００２９】
記憶部２３０は、カメラ４１０が物体４００を撮像した際の内部パラメータ２３２を用いて、仮想カメラ４１０´と撮像画像４２０の位置関係を設定する。例えば、以下の内部パラメータ２３２が記憶されているとする。
【００３０】
ｆｘ：ｘ方向に対するカメラの焦点距離
ｆｙ：ｙ方向に対するカメラの焦点距離
ｕ０：撮像画像４２０のｘ方向における中心点座標
ｖ０：撮像画像４２０のｙ方向における中心点座標
【００３１】
カメラ座標特定部２２１は、内部パラメータ２３２の焦点距離を参照し、撮像画像４２０を仮想撮像位置（仮想カメラ４１０´の位置）から焦点距離（ｆｘ、ｆｙ）離れた位置に設定する。又、カメラ座標特定部２２１は、内部パラメータ２３２の解像度を参照することにより、撮像画像４２０を、横幅２ｕ０、縦幅２ｖ０のサイズの画像として設定する。
【００３２】
図２Ｃのように仮想カメラ４１０´、撮像画像４２０が設定されると、カメラ座標特定部２２１は、数１を用いて算出された位置に、ARオブジェクト４３０´を設置する。
【００３３】
【数１】
2019185475.tif 000003
【００３４】
数１は、ピンホールカメラモデルのモデル式の例である。数１の左辺における行列内のｕは、画像平面上の点のｘ座標の値である。数１の左辺における行列内のｖは、画像平面上の点のｙ座標の値である。一例として、ｕとｖには、撮像画像４２０の点座標の（ｘ１、ｙ１）、（ｘ２、ｙ２）、（ｘ３、ｙ３）、（ｘ４、ｙ４）などが代入される。
【００３５】
数１の右辺は、左から順に内部パラメータ、移動回転行列、３次元座標を含む行列である。内部パラメータ内のｆｘはｘ方向における焦点距離をピクセル単位で表した値であり、ｆｙはｙ方向における焦点距離をピクセル単位で表した値である。内部パラメータ内のｕ０、ｖ０は、撮像画像４２０の中心を表す点座標である。数１の右辺の移動回転行列は、移動回転行列算出部２２０で特徴線のペアから算出された行列である。数１の右辺の３次元座標を含む行列内のｘ、ｙ、ｚは、ARオブジェクト４３０´の３次元座標の値である。
【００３６】
一例として、カメラ座標特定部２２１は、数１のｕとｖに撮像画像４２０の点座標（ｘ１、ｙ１）を代入することで、代入した座標に対応するARオブジェクト４３０´のカメラ座標における位置として、（Ｘ１´、Ｙ１´、Ｚ１´）を算出することができる（図２Ｄ）。同様に、カメラ座標特定部２２１は、カメラ座標におけるARオブジェクト４３０の座標（Ｘ１、Ｙ１、Ｚ１）を数１に代入することができる。この場合、カメラ座標特定部２２１は、ARオブジェクト４３０中の座標（Ｘ１、Ｙ１、Ｚ１）に対応する位置が、撮像画像４２０の点座標（ｘ１´、ｙ１´）に表示された位置に対応することを求めることができる。
【００３７】
このような計算を行うことにより、カメラ座標特定部２２１は、図２Ｄのように仮想世界における撮像位置（仮想カメラの位置）から見た撮像画像４２０とＡＲオブジェクト４３０’が一致している位置関係を特定する。
【００３８】
図２Ｅでは、実座標推定部２２２は、特定された仮想撮像位置とARオブジェクトの座標の位置関係と、記憶部２３０に記憶されている表示デバイス２００の位置座標と向きから、実座標（世界座標系）でARオブジェクトを表示する位置を推定する。例えば、実座標推定部２２２は、特定された仮想撮像位置とARオブジェクトとの位置関係を、実際に物体を撮像した際の物体とカメラの位置関係に一致させるようにARオブジェクトの位置を設定する。実座標推定部２２２で実座標（世界座標系）でARオブジェクトを表示する位置が推定されると、描画処理部２１７は、ARオブジェクトを表示部２１８に表示させる。これにより、ユーザは、表示部２１８を通して物体と重なった状態のARオブジェクトを見ることができる。
【００３９】
このように、本実施形態に係る表示デバイス２００は、物体の構造データに基づいて生成されるモデルについて、モデルを仮想カメラで撮像した場合に得られる撮像画像が、取得した撮像画像と所定の対応関係を満たすように、撮像位置を特定する。所定の対応関係は、カメラ座標特定部２２１が特定した仮想世界における撮像位置（仮想カメラの位置）から見た撮像画像４２０とＡＲオブジェクト４３０’が一致している位置関係である。その後、表示デバイス２００は、取得した撮像位置と、特定したモデルと仮想世界における撮像位置との間の位置関係とに基づいて、モデルの空間内の位置を推定する。そのため、本実施形態に係る発明を用いることで、表示デバイス２００は、物体とモデルを精度良く重畳表示させることができる。又、表示デバイス２００は、自身の位置座標、向きなどを測定できるため、ユーザが別の位置や角度からモデルを見た場合でも物体とモデルの位置を差分なく表示することが可能になる。以下、図３を参照して説明する。
【００４０】
図３は、本実施形態に係る表示デバイスを用いてモデル及び物体を見た場合の例を説明する図である。図３は、位置Ａに表示デバイス２００があるときに、図２Ａ〜図２Ｅの処理でARオブジェクト４３０´´の設置位置を推定した場合の例である。物体４００に重ねて立体的なモデル（ARオブジェクト４３０´´）が表示されているため、物体４００の全ての位置でARオブジェクト４３０´´が重畳表示される。そのため、ユーザは、表示デバイス２００を通して、物体４００と同じ位置で、且つ、同じ姿勢（向き）でARオブジェクト４３０´´を見ることができる。
【００４１】
本実施形態では、表示デバイス２００は、物体４００の全ての位置でARオブジェクト４３０´´が重畳表示する。又、表示デバイス２００は、自身の位置座標（ｘcamera、ｙcamera、ｚcamera）と向き（αcamera、βcamera、γcamera）を検出可能な装置である。そのため、ユーザが位置Ａから位置Ｂに移動した場合であっても、表示デバイス２００は、位置Ａから位置Ｂに移動した場合の位置座標と向きの変化を記憶する。そして、ARオブジェクト４３０´´の位置と向きは、既に物体４００と同じ位置、同じ姿勢で設定されている。そのため、ユーザは、位置Ｂから表示デバイス２００を通して、物体４００と同じ位置、同じ姿勢のARオブジェクト４３０´´を見ることができる。
【００４２】
従来技術の一例として、物体を撮像して得られた画像から線分を抽出し、併せてモデルの線分と抽出した画像の線分とでペアとなる組を作り、線分のペアが重なって見えるようなモデルの位置と向きを数学的方法で算出する方法がある。この方法では、算出されたモデルの位置と向きを適用したモデルを画像と重ねて表示する。この手法を用いて画像とモデルを重ねて表示した場合、物体を撮像した位置以外からユーザが物体画像及びモデルを見ると物体画像とモデルがズレてしまう。即ち、単に画像とモデルを重ねて表示しているため、平面的な対応付けがされているにすぎない。このため、違う位置から物体とモデルを見る場合、違う位置の方向でも画像を撮像し、その画像とモデルを重ねる処理が求められる。これに対して本実施形態に係る表示デバイス２００を用いると、物体をモデルと精度良く対応づけている。そのため、表示デバイス２００は、様々な角度からもモデルと物体の位置及び姿勢に差分なく表示することができる。
【００４３】
また、従来技術の一例として、ARマーカーを使用してARマーカーから相対位置にモデルを表示させ、モデルを物体と重ねて表示する技術も存在する。この方法では、物体とARマーカーの位置関係がとても重要になる。しかし、物体とARマーカーの位置を一度調整した後に、物体の位置に変更があった場合、併せてARマーカーの位置調整が求められる。この手法では、ARマーカーを人が移動させるものである。そのため、物体の位置の変更に伴い、ARマーカーを調整することは、大変手間である。これに対して本実施形態に係る表示デバイス２００を用いると、物体をモデルと精度良く対応づけている。そのため、表示デバイス２００は、様々な角度からもモデルと物体の位置及び姿勢に差分なく表示することができる。
【００４４】
従来技術の一例として、モデルの位置をユーザの予想値を用いて設定し、設定結果の物体との一致度を目視した結果に基づいて予想値を変更しながらモデルの位置を調整し、モデルと物体と重ね合わせて表示する技術もある。しかし、モデルの位置調整には6軸（ポジションの(x、y、z）軸と、ローテンションの（α、β、γ）軸)の制御が求められるため、姿勢決めに時間がかかる上に位置合わせの精度も低くなってしまう。これに対して本実施形態に係る表示デバイス２００を用いると、物体をモデルと精度良く対応づけている。そのため、表示デバイス２００は、様々な角度からもモデルと物体の位置及び姿勢に差分なく表示することができる。
【００４５】
このように、本実施形態に係る表示デバイス２００を用いることで、いずれの従来技術よりも精度よく物体とモデルを重畳することができ、人手もかからないことから手間も少ない。さらに、表示デバイス２００は、物体とモデルを重畳しているため、様々な角度からもモデルと物体の位置及び姿勢に差分なく表示することができる。
【００４６】
図４Ａ及び図４Ｂは、本実施形態に係る表示デバイスにおけるモデルの設置位置を推定する処理の例を説明するフローチャートである。
【００４７】
モデルの設置位置を推定する処理では、撮像部２１０が物体４００（図２Ａ）を撮像する（ステップＳ１０１）。座標姿勢検出部２１３は、物体４００を撮像した際の世界座標系での自身の位置座標（ｘcamera、ｙcamera、ｚcamera）と向き（αcamera、βcamera、γcamera）を検出する（ステップＳ１０２）。記憶部２３０は、物体４００を撮像した際の世界座標系での自身の位置座標（ｘcamera、ｙcamera、ｚcamera）と向き（αcamera、βcamera、γcamera）を記憶する（ステップＳ１０３）。
【００４８】
画像特徴線抽出部２１５は、記憶部２３０に記憶された画像データ２３１を読み出し、画像データ２３１に対応する画像から物体４００の特徴線を抽出する（ステップＳ１０４）。モデル特徴線抽出部３１６は、記憶部２３０からモデルデータ２３３を読み出し、モデルデータ２３３に対応するARオブジェクト４３０から物体４００の特徴線を抽出する（ステップＳ１０５）。
【００４９】
描画処理部２１７は、撮像画像４２０、ARオブジェクト４３０、及び夫々に対して抽出された特徴線を描画する（ステップＳ１０６）。ペアリング処理において、入力部２１９は、撮像画像４２０に対して抽出された特徴線とARオブジェクト４３０に対して抽出された特徴線との組（ペア）に係る情報をユーザからコントローラ操作により受け付ける（ステップＳ１０７）。移動回転行列算出部２２０は、入力部２１９から入力された組から移動回転行列を算出する（ステップＳ１０８）。
【００５０】
仮想世界における撮像位置から見た撮像画像とARオブジェクトが一致している位置関係を特定する（ステップＳ１０９）。
【００５１】
実座標推定部２２２は、特定された仮想撮像位置とARオブジェクトとの位置関係を、実際に物体を撮像した際の物体とカメラの位置関係に一致させるようにARオブジェクトの位置を設定する（ステップＳ１１０）。描画処理部２１７は、ARオブジェクト４３０´´を物体４００と重畳して表示部２１８に表示させる（ステップＳ１１１）。
【００５２】
このように、本実施形態に係る表示デバイス２００は、物体の構造データに基づいて生成されるモデルを仮想世界の撮像位置から撮像した場合に得られる撮像画像が、取得した撮像画像と所定の対応関係を満たす際の撮像位置を特定する。その後、表示デバイス２００は、取得した撮像位置と、特定したモデルと仮想世界における撮像位置との間の位置関係とに基づいて、モデルの空間内の位置を推定する。そのため、本実施形態に係る発明を用いることで、表示デバイス２００は、物体の位置とモデルを設置する空間内の位置を精度よく一致させることができる。ここで表示デバイス２００を用いた際の物体とモデルの位置の一致精度は、画像とモデルをあわせた場合やユーザの予想値に基づいた表示を行う場合よりも向上している。又、表示デバイス２００は、自身の位置座標、向きなどを測定できるため、ユーザが別の位置や角度からモデルを見た場合でも物体とモデルの位置を差分なく表示することが可能になる。
【００５３】
＜重ね合わせ手法＞
図５は、モデルと物体とを重ねて表示する処理の例を説明するブロック図である。表示デバイス２００でモデルを透過にせずに物体と重畳表示した場合、ユーザは、物体がモデルに隠れるため、物体を見えなくなる。一方、表示デバイス２００でモデルを透過して物体と重畳表示した場合、ユーザは、本来、物体の表面で見えなくなる物体の内部構造に対応するモデルも見えてしまう。そのため、本実施形態に係る描画処理部２１７は、ユーザの視点から本来見えない位置にあるモデルの内部構造を、物体の表面に対応するモデルの表面よりも高い透過度で表示する。すると、ユーザは、本来見えない物体の内部構造に対応するモデルが見えなくなり、物体とモデルの違いを判断しやすくなる。
【００５４】
図５では、図１の表示デバイス２００から更に、特定部２４０を備える。特定部２４０は、例えば、描画処理部２１７のステップＳ１１１（図４Ｂ）の処理の前に処理を実行する。なお、図５の表示デバイス２００において、図１と同一のものには同一の番号を付している。
【００５５】
実座標推定部２２２は、実座標（世界座標系）でモデルを表示する位置を推定すると、特定の方向から見た物体のモデルを表示させる指令を描画処理部２１７に送る。しかし、この時点では、モデルには内部構造、表面構造の両方に透過度の違いがない状態であるため、モデルの内部構造が見えてしまう状態である。そのため、描画処理部２１７は、特定部２４０に対して、モデルの部位（内部構造、表面）を特定する処理を実行するよう要求する。すると、特定部２４０は、物体の構造データを記憶する記憶部２３０を参照しモデルデータ２３３を読み込む。特定部２４０は、モデルの内部構造である第１の部位とモデルの表面部である第２の部位を特定する。特定部２４０の処理は、詳しくは図６で後述する。
【００５６】
特定部２４０は、特定したモデルの第１の部位と第２の部位の情報を描画処理部２１７に送る。描画処理部２１７は、モデルの第１の部位に対応する領域を第１の透過率で表示するとともに、モデルの第２の部位に対応する領域を第１の透過率よりも低い第２の透過率を用いてモデルを描画する。表示部２１８は、描画処理部２１７の処理に基づいて、物体とモデルとを重畳表示する。
【００５７】
このように、第１の部位（内部構造）とその他の第２の部位とで異なる透過率でモデルを重畳表示することで、本実施形態に係る表示デバイス２００は、半透明なモデルの内部構造を表示せずに重なった物体とモデルを表示可能となる。
【００５８】
図６は、表示部におけるモデルと物体の表示の例を説明する図である。表示例６１０は、モデル６０１に対して透過処理を行った場合の表示例である。このように、モデル６０１に透過処理を行うと、モデル６０１の内部構造である第１の部位６４０が見えてしまうという問題がある。
【００５９】
ここで、特定部２４０が、第１の部位６４０と第２の部位６５０を特定する処理を説明する。仮に、ある視点Ａ（カメラの位置）からモデル６０１のモデルを見た場合に、視点Ａからモデル６０１の各部位に対して線を引く。すると、線とモデル６０１のモデルとは、点Ｂ、点Ｃ、点Ｄで交差する。特定部２４０は、これらの点Ｃ〜点Ｄから、モデルの内部構造である第１の部位とモデルの表面部である第２の部位を特定する。具体的には、特定部２４０は、点Ｂ〜点Ｄのうち、最も視点Ａに近い点を含む面を第２の部位として特定する。表示例６１０では、点Ｂを含む面が第２の部位として特定できる。実際には、様々な方向から同様の処理を行う。そのため、特定部２４０は、点Ｃを内部構造である第１の部位６４０として特定する。
【００６０】
本実施形態に係る描画処理部２１７は、表示例６２０のようにモデル６０１に対して陰影処理を行う。なお、陰影処理の事前処理として特定部２４０は、物体６０２のモデルデータ２３３を記憶部２３０から参照し、指定された方向から物体６０２を見た際に他の部位により隠れる第１の部位６４０（内部構造）と、第１の部位６４０以外の第２の部位６５０を特定する。その後、描画処理部２１７は、第２の部位に陰影をつける処理を行う。このようにすることで、モデル６０１の第１の部位６４０（内部構造）は見えなくなる。しかし、モデル６０１に陰影処理を行っただけでは、表示例６２０のように、モデル６０１に完全に物体６０２が隠れてしまう。
【００６１】
そのため、本実施形態に係る描画処理部２１７は、モデル６０１に対して陰影処理を行った後に、透過処理を行う。言い換えると、描画処理部２１７は、モデル６０１の第１の部位６４０に対応する領域を第１の透過率で表示するとともに、モデル６０１の第２の部位６５０に対応する領域を第１の透過率よりも低い第２の透過率を用いてモデル６０１を描画する。表示例６３０は、モデル６０１に対して陰影処理を行った後に、透過処理を行った場合のモデル６０１と物体６０２の例である。このように、陰影処理を行った後に透過処理を行うことで、モデル６０１は第１の部位（内部構造）を隠しつつ、物体６０２と重なった状態で表示されるようになる。
【００６２】
図７は、描画処理部の処理の例を説明するフローチャートである。描画処理部２１７は、ステップＳ１１１（図４Ｂ）の処理の際に以下の処理を実行する。
【００６３】
描画処理部２１７は、モデル６０１を描画する際に、陰影処理を実行する（ステップＳ２０１）。描画処理部２１７は、陰影処理がなされたモデル６０１に対して透過処理を実行する（ステップＳ２０２）。
【００６４】
このように、第１の部位（内部構造）とその他の第２の部位とで異なる透過率でモデル６０１を表示するように陰影処理と透過処理を実行することで、本実施形態に係る表示デバイス２００は、半透明なモデル６０１の内部構造を表示せずに重なった物体６０２とモデル６０１を表示可能となる。
【００６５】
図８は、本実施形態に係る表示デバイスのハードウェア構成の例を説明する図である。表示デバイス２００は、主たる構成要素として、プロセッサ１０、メモリ１１、ストレージ１２、入出力インターフェイス１３、通信インターフェイス１４、センサ１６、カメラ１７、モニタ１８を備える。各構成要素は、それぞれ、バス１５に接続されている。表示デバイス２００は、情報処理装置として実現される。
【００６６】
プロセッサ１０は、表示デバイス２００に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ１１またはストレージ１２に格納されているプログラムに含まれる一連の命令を実行する。プロセッサ１０は、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processor  Unit）、ＦＰＧＡ（Field-Programmable  Gate  Array）その他のデバイスとして実現される。プロセッサ１０は、本実施形態に係る表示デバイス２００の画像特徴線抽出部２１５、モデル特徴線抽出部２１６、描画処理部２１７、移動回転行列算出部２２０、カメラ座標特定部２２１、実座標推定部２２２、特定部２４０の各機能を実現する。
【００６７】
メモリ１１は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ１２からロードされる。データは、表示デバイス２００に入力されたデータと、プロセッサ１０によって生成されたデータとを含む。メモリ１１は、ＲＡＭ（Random  Access  Memory）その他の揮発メモリとして実現される。
【００６８】
ストレージ１２は、プログラムおよびデータを永続的に保持する。ストレージ１２は、例えば、ＲＯＭ（Read-Only  Memory）、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ１２に格納されるプログラムは、表示デバイス２００において仮想空間を提供するためのプログラム、シミュレーションプログラム、他のコンピュータとの通信を実現するためのプログラムを含む。ストレージ１２に格納されるデータは、仮想空間を規定するためのデータおよびオブジェクト等を含む。ストレージ１２は、表示デバイス２００の記憶部２３０として動作する。
【００６９】
又、ストレージ１２は、メモリカードのように着脱可能な記憶装置として実現されてもよい。更に、表示デバイス２００に内蔵されたストレージ１２の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。
【００７０】
入出力インターフェイス１３は、コントローラ１９からの操作情報の入力を受け付ける。コントローラ１９は、図２Ｂのコントローラ３００として動作する。入出力インターフェイス１３は、入力部２１９として動作する。入出力インターフェイス１３は、ＵＳＢ（Universal  Serial  Bus）インターフェイス、ＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High-Definition  Multimedia  Interface）その他の端子を用いて実現される。なお、入出力インターフェイス１３は上述のものに限られない。
【００７１】
通信インターフェイス１４は、ネットワークに接続されて、ネットワークに接続されている他のコンピュータと通信する。通信インターフェイス１４は、例えば、ＬＡＮ（Local  Area  Network）その他の有線通信インターフェイス、あるいは、ＷｉＦｉ（Wireless  Fidelity）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ（Near  Field  Communication）その他の無線通信インターフェイスとして実現される。なお、通信インターフェイス１４は上述のものに限られない。
【００７２】
表示デバイス２００では、世界座標系が予め設定されている。世界座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、３つの基準方向（軸）を有する。本実施の形態では、世界座標系は視点座標系の一つである。そこで、世界座標系における水平方向、鉛直方向（上下方向）、および前後方向は、それぞれ、ｘ軸、ｙ軸、ｚ軸と規定される。より具体的には、世界座標系において、ｘ軸は現実空間の水平方向に平行である。ｙ軸は、現実空間の鉛直方向に平行である。ｚ軸は現実空間の前後方向に平行である。
【００７３】
センサ１６は、各点の値（世界座標系における各座標値）に基づいて、表示デバイス２００を装着したユーザの動きに応じた、現実空間内における表示デバイス２００の位置および傾きを検出する。より詳しくは、センサ１６は、経時的に検出された各値を用いて、表示デバイス２００の位置および傾きの時間的変化を検出できる。センサ１６は、座標姿勢検出部２１３として動作する。
【００７４】
モニタ１８は、ユーザの両目の前方に位置するように表示デバイス２００の本体に配置され、例えば、非透過型の表示装置として実現される。したがって、ユーザは、モニタ１８に表示される３次元画像を視認すると、仮想空間に没入することができる。ある実施の形態において、仮想空間は、例えば、背景、ユーザが操作可能なオブジェクト、ユーザが選択可能なメニューの画像を含む。ある実施の形態において、モニタ１８は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機ＥＬ（Electro  Luminescence）モニタとして実現され得る。モニタ１８は、表示部２１８として動作する。
【００７５】
カメラ１７は、ユーザの目の視線方向を撮像するように表示デバイス２００の本体に配置される。カメラ１７で撮像された画像又は映像は、モニタ１８に表示される。カメラ１７は、撮像部２１０として動作する。
【符号の説明】
【００７６】
２００  表示デバイス
２１０  撮像部
２１３  座標姿勢検出部
２１５  画像特徴線抽出部
２１６  モデル特徴線抽出部
２１７  描画処理部
２１８  表示部
２１９  入力部
２２０  移動回転行列算出部
２２１  カメラ座標特定部
２２２  実座標推定部
２３０  記憶部
２４０  特定部
３００  コントローラ
【図１】
2019185475.tif 000004
【図２Ａ】
2019185475.tif 000005
【図２Ｂ】
2019185475.tif 000006
【図２Ｃ】
2019185475.tif 000007
【図２Ｄ】
2019185475.tif 000008
【図２Ｅ】
2019185475.tif 000009
【図３】
2019185475.tif 000010
【図４Ａ】
2019185475.tif 000011
【図４Ｂ】
2019185475.tif 000012
【図５】
2019185475.tif 000013
【図６】
2019185475.tif 000014
【図７】
2019185475.tif 000015
【図８】
2019185475.tif 000016