(57)【要約】【課題】撮像画像上にモデルを重畳表示する操作を容易化できる表示制御プログラム、表示制御方法および表示制御装置を提供する。【解決手段】表示制御プログラムは、以下の処理をコンピュータに実行させる。コンピュータは、撮像装置により撮像された構造物を含む撮像画像を取得する。コンピュータは、取得した撮像画像から複数のエッジ線を抽出する。コンピュータは、取得した撮像画像に基準物が含まれることを検出すると、抽出した複数のエッジ線のうち、基準物の位置に応じた所定数のエッジ線を取得する。コンピュータは、構造物の構造データを記憶する記憶部を参照して、取得した所定数のエッジ線それぞれを、構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付ける。コンピュータは、所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢でモデルを撮像画像に重畳表示する。【選択図】図１
2018142109.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置により撮像された構造物を含む撮像画像を取得し、
取得した前記撮像画像から複数のエッジ線を抽出し、
取得した前記撮像画像に基準物が含まれることを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の位置に応じた所定数のエッジ線を取得し、
前記構造物の構造データを記憶する記憶部を参照して、取得した前記所定数のエッジ線それぞれを、前記構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付け、
前記所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢で前記モデルを前記撮像画像に重畳表示する、
処理をコンピュータに実行させることを特徴とする表示制御プログラム。
【請求項２】
前記対応付ける処理は、前記所定数のエッジ線それぞれを、前記モデルに含まれる複数の稜線のうち、稜線間の位置関係が前記所定数のエッジ線間の位置関係に対応する前記所定数の稜線それぞれに対応付ける、
ことを特徴とする請求項１に記載の表示制御プログラム。
【請求項３】
前記所定数のエッジ線を取得する処理は、前記基準物が前記構造物上に位置することを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の周囲の前記所定数のエッジ線を取得する、
ことを特徴とする請求項１または２に記載の表示制御プログラム。
【請求項４】
前記所定数のエッジ線を取得する処理は、前記基準物を取り囲む形状を構成する前記所定数のエッジ線を取得する、
ことを特徴とする請求項３に記載の表示制御プログラム。
【請求項５】
前記モデルは、前記撮像画像に含まれる前記基準物に対応する基準物を有し、
前記対応付ける処理は、前記撮像画像に含まれる前記基準物と、前記モデルに含まれる前記基準物とに基づいて、前記構造物および前記モデルの各座標軸を特定し、特定した前記各座標軸に基づいて、前記所定数のエッジ線それぞれを、前記複数の稜線のいずれかに対応付ける、
ことを特徴とする請求項１〜４のいずれか１つに記載の表示制御プログラム。
【請求項６】
撮像装置により撮像された構造物を含む撮像画像を取得し、
取得した前記撮像画像から複数のエッジ線を抽出し、
取得した前記撮像画像に基準物が含まれることを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の位置に応じた所定数のエッジ線を取得し、
前記構造物の構造データを記憶する記憶部を参照して、取得した前記所定数のエッジ線それぞれを、前記構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付け、
前記所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢で前記モデルを前記撮像画像に重畳表示する、
処理をコンピュータが実行することを特徴とする表示制御方法。
【請求項７】
撮像装置により撮像された構造物を含む撮像画像を取得する第１取得部と、
取得した前記撮像画像から複数のエッジ線を抽出する抽出部と、
取得した前記撮像画像に基準物が含まれることを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の位置に応じた所定数のエッジ線を取得する第２取得部と、
前記構造物の構造データを記憶する記憶部を参照して、取得した前記所定数のエッジ線それぞれを、前記構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付ける対応付け部と、
前記所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢で前記モデルを前記撮像画像に重畳表示する表示制御部と、
を有することを特徴とする表示制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示制御プログラム、表示制御方法および表示制御装置に関する。
【背景技術】
【０００２】
各種の部品等の構造物、例えば、パーソナルコンピュータのケースやヒートシンク、スマートフォンの外装部品等や、これらを製造するための金型等の設計では、３次元ＣＡＤ（Computer  Aided  Design）が用いられている。３次元ＣＡＤのデータに基づいて製作された構造物について、３次元ＣＡＤ上の構造物のモデル通りに製作されているか否かを確認したい場合がある。この場合、例えば、製作された構造物を撮像した撮像画像と、３次元ＣＡＤの構造物のモデルとを重ね合わせると確認しやすくなる。
【０００３】
また、例えば、撮像画像とモデルとを重ね合わせる方法として、実在する建物等の３Ｄモデルに撮像画像であるテクスチャを貼り付けることが提案されている。また、例えば、対象物体の位置姿勢を計測する際に、画像から取得した概略位置姿勢に基づいて初期値の位置姿勢候補を生成し、対象物体のモデル情報を用いて位置姿勢候補を画像中の対象物体に対応付けることで位置姿勢を導出することが提案されている。また、画像から製品資材のエッジを抽出し、抽出したエッジの情報から製品資材モデルを抽出し、当該製品資材の設計時に作成した三次元モデル情報等と照合することで、製品資材のプラント建設サイトへの到着を判定することが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１１５０５７号公報
【特許文献２】特開２０１４−１６９９９０号公報
【特許文献３】国際公開第２０１２／１１７８３３号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、撮像画像の構造物と、３次元ＣＡＤの構造物のモデルとを重ね合わせる際に、例えば、構造物の形状が上下左右線対称である場合には、構造物に重ね合わせるモデルの向きが正しい向きであるかをユーザが容易に判断することが難しいことがある。このため、ユーザは、例えばモデルの向きを変えつつ重ね合わせの操作を試行錯誤する等、撮像画像上の構造物にモデルを重畳表示するための操作が煩雑になる場合がある。
【０００６】
一つの側面では、撮像画像上にモデルを重畳表示する操作を容易化できる表示制御プログラム、表示制御方法および表示制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
一つの態様では、表示制御プログラムは、撮像装置により撮像された構造物を含む撮像画像を取得する処理をコンピュータに実行させる。表示制御プログラムは、取得した前記撮像画像から複数のエッジ線を抽出する処理をコンピュータに実行させる。表示制御プログラムは、取得した前記撮像画像に基準物が含まれることを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の位置に応じた所定数のエッジ線を取得する処理をコンピュータに実行させる。表示制御プログラムは、前記構造物の構造データを記憶する記憶部を参照して、取得した前記所定数のエッジ線それぞれを、前記構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付ける処理をコンピュータに実行させる。表示制御プログラムは、前記所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢で前記モデルを前記撮像画像に重畳表示する処理をコンピュータに実行させる。
【発明の効果】
【０００８】
撮像画像上にモデルを重畳表示する操作を容易化できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例の表示制御装置の構成の一例を示すブロック図である。
【図２】図２は、撮像された構造物およびエッジ線の一例を示す図である。
【図３】図３は、基準物の位置に応じたエッジ線の一例を示す図である。
【図４】図４は、モデルの一例を示す図である。
【図５】図５は、モデルを撮像画像上の構造物に重畳表示した場合の一例を示す図である。
【図６】図６は、モデルを撮像画像上の構造物に重畳表示した場合の他の一例を示す図である。
【図７】図７は、実施例の表示制御処理の一例を示すフローチャートである。
【図８】図８は、表示制御プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて、本願の開示する表示制御プログラム、表示制御方法および表示制御装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例】
【００１１】
図１は、実施例の表示制御装置の構成の一例を示すブロック図である。図１に示す表示制御装置１００は、構造物を撮像した撮像画像と、３次元ＣＡＤの構造物のモデルとを重ね合わせる表示制御処理を行うアプリケーションを実行するコンピュータの一例である。表示制御装置１００の一例としては、据置型のパーソナルコンピュータを採用できる。表示制御装置１００は、上記の据置型のパーソナルコンピュータの他にも、例えば、可搬型のパーソナルコンピュータや、タブレット端末等を採用することもできる。
【００１２】
表示制御装置１００は、撮像装置により撮像された構造物を含む撮像画像を取得する。表示制御装置１００は、取得した撮像画像から複数のエッジ線を抽出する。表示制御装置１００は、取得した撮像画像に基準物が含まれることを検出すると、抽出した複数のエッジ線のうち、基準物の位置に応じた所定数のエッジ線を取得する。表示制御装置１００は、構造物の構造データ（以下、ＣＡＤデータともいう。）を記憶する記憶部を参照して、取得した所定数のエッジ線それぞれを、構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付ける。表示制御装置１００は、所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢でモデルを撮像画像に重畳表示する。これにより、表示制御装置１００は、撮像画像上にモデルを重畳表示する操作を容易化できる。
【００１３】
図１に示すように、表示制御装置１００は、通信部１１０と、表示部１１１と、操作部１１２と、入出力部１１３と、記憶部１２０と、制御部１３０とを有する。なお、表示制御装置１００は、図１に示す機能部以外にも、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
【００１４】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、図示しないネットワークを介して他の情報処理装置と有線または無線で接続され、他の情報処理装置との間で情報の通信を司る通信インタフェースである。
【００１５】
表示部１１１は、各種情報を表示するための表示デバイスである。表示部１１１は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部１１１は、制御部１３０から入力された表示画面等の各種画面を表示する。
【００１６】
操作部１１２は、表示制御装置１００のユーザから各種操作を受け付ける入力デバイスである。操作部１１２は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部１１２は、ユーザによって入力された操作を操作情報として制御部１３０に出力する。なお、操作部１１２は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部１１１の表示デバイスと、操作部１１２の入力デバイスとは、一体化されるようにしてもよい。
【００１７】
入出力部１１３は、例えば、メモリカードＲ／Ｗ（Reader/Writer）である。入出力部１１３は、メモリカードに記憶された撮像画像およびＣＡＤデータを読み出して制御部１３０に出力する。また、入出力部１１３は、例えば、制御部１３０から出力された重畳画像をメモリカードに記憶する。なお、メモリカードとしては、例えばＳＤメモリカード等を用いることができる。
【００１８】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、撮像画像記憶部１２１と、ＣＡＤデータ記憶部１２２とを有する。また、記憶部１２０は、制御部１３０での処理に用いる情報を記憶する。
【００１９】
撮像画像記憶部１２１は、入力された撮像画像を記憶する。撮像画像記憶部１２１は、例えば、３次元ＣＡＤのＣＡＤデータに基づいて製作された構造物を撮像装置で撮像した撮像画像を記憶する。
【００２０】
ＣＡＤデータ記憶部１２２は、入力されたＣＡＤデータを記憶する。ＣＡＤデータ記憶部１２２は、例えば、３次元ＣＡＤを実行するコンピュータで生成された構造物の構造データであるＣＡＤデータを記憶する。また、ＣＡＤデータ記憶部１２２は、ＣＡＤデータに基づいて生成された構造物のモデルの情報をＣＡＤデータと対応付けて記憶する。なお、ＣＡＤデータは、例えばメートル法のＭＫＳ単位系等を利用し、撮像画像に含まれる基準物も同じ単位系とすることで、構造物とモデルとのマッチングを容易化させる。また、ＣＡＤデータと基準物とを同じ単位系とするのであれば、他の単位系、例えばヤード・ポンド法を用いてもよい。
【００２１】
制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。
【００２２】
制御部１３０は、第１取得部１３１と、抽出部１３２と、第２取得部１３３と、対応付け部１３４と、表示制御部１３５とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部１３０は、入出力部１１３から入力された撮像画像およびＣＡＤデータを、それぞれ撮像画像記憶部１２１およびＣＡＤデータ記憶部１２２に記憶する。なお、制御部１３０は、入出力部１１３からの撮像画像およびＣＡＤデータの入力に代えて、通信部１１０を介して、他の情報処理装置から撮像画像およびＣＡＤデータを取得するようにしてもよい。
【００２３】
第１取得部１３１は、ユーザによってアプリケーションの起動が指示されると、表示制御処理を行うアプリケーションを起動する。第１取得部１３１は、アプリケーションを起動すると、ユーザから撮像画像およびＣＡＤデータの指定を受け付ける。第１取得部１３１は、撮像画像およびＣＡＤデータの指定を受け付けると、前処理を実行する。第１取得部１３１は、前処理として、指定された撮像画像を撮像画像記憶部１２１から取得して表示部１１１に表示させる。また、第１取得部１３１は、取得した撮像画像を抽出部１３２に出力する。すなわち、第１取得部１３１は、撮像装置により撮像された構造物を含む撮像画像を取得する。
【００２４】
第１取得部１３１は、前処理として、指定されたＣＡＤデータをＣＡＤデータ記憶部１２２から読み込んで、ＣＡＤデータを解析し、ＣＡＤデータに基づいて、ＡＲ（Augmented  Reality）表示が可能な構造物のモデルを生成する。なお、生成したモデルには、モデルの外形を示す稜線と、当該モデルを識別するための基準物、つまりマーカが含まれる。すなわち、モデルは、撮像画像に含まれる基準物に対応する基準物を有する。また、モデルに含まれる基準物は、ＣＡＤデータにも含まれ、ＣＡＤデータの生成時に予め構造物上の位置が指定されている。つまり、構造物に含まれる基準物と、モデルに含まれる基準物とは、同一箇所に設定される。第１取得部１３１は、生成したモデルの情報を、解析対象のＣＡＤデータと対応付けてＣＡＤデータ記憶部１２２に記憶する。なお、モデルは、対応付け部１３４において、モデルの稜線を用いる際に生成するようにしてもよい。
【００２５】
抽出部１３２は、第１取得部１３１から取得した撮像画像が入力されると、当該撮像画像から複数のエッジ線を抽出する。なお、抽出部１３２は、抽出するエッジ線として、例えば直線を用いる。抽出部１３２は、複数のエッジ線を抽出すると、撮像画像と、抽出した複数のエッジ線とを第２取得部１３３に出力する。
【００２６】
第２取得部１３３は、抽出部１３２から撮像画像と、抽出した複数のエッジ線とが入力されると、撮像画像に対して基準物、例えばマーカの検出処理を実行する。第２取得部１３３は、撮像画像からの基準物の検出に成功したか否かを判定する。第２取得部１３３は、撮像画像からの基準物の検出に失敗した場合には、手動で対応付けを行う旨を指示する手動指示と、抽出した複数のエッジ線と、撮像画像とを対応付け部１３４に出力する。
【００２７】
第２取得部１３３は、撮像画像からの基準物の検出に成功した場合には、抽出した複数のエッジ線のうち、基準物の位置に応じた所定数のエッジ線を取得する。第２取得部１３３は、例えば、撮像画像の構造物上に位置する基準物の周囲の４つのエッジ線を取得する。なお、第２取得部１３３は、例えば、基準物の周囲の複数のエッジ線を４近傍検索等の処理で抽出することで取得できる。また、所定数のエッジ線は、撮像画像上の構造物の位置、方向および大きさが特定できれば何本でもよい。また、所定数のエッジ線は、基準物を取り囲む形状、例えば矩形であることが好ましい。第２取得部１３３は、撮像画像と、検出した基準物の情報と、取得した所定数のエッジ線とを対応付け部１３４に出力する。
【００２８】
言い換えると、第２取得部１３３は、取得した撮像画像に基準物が含まれることを検出すると、抽出した複数のエッジ線のうち、基準物の位置に応じた所定数のエッジ線を取得する。また、第２取得部１３３は、基準物が構造物上に位置することを検出すると、抽出した複数のエッジ線のうち、基準物の周囲の所定数のエッジ線を取得する。また、第２取得部１３３は、基準物を取り囲む形状を構成する所定数のエッジ線を取得する。
【００２９】
対応付け部１３４は、第２取得部１３３から撮像画像と、検出した基準物の情報と、取得した所定数のエッジ線とが入力されると、ＣＡＤデータ記憶部１２２から指定されたＣＡＤデータに対応するモデルの情報を読み込む。対応付け部１３４は、検出した基準物の情報、つまり基準物の方向および大きさを含む情報であるキャリブレーションパターンに基づいて、撮像画像上の構造物の各座標軸、例えばＸ軸、Ｙ軸およびＺ軸を特定する。また、対応付け部１３４は、読み込んだモデルの情報に基づいて、モデルの各座標軸、例えばＸ軸、Ｙ軸およびＺ軸を特定する。
【００３０】
対応付け部１３４は、特定した構造物およびモデルの各座標軸に基づいて、取得した所定数のエッジ線のそれぞれを、モデルの複数の稜線のいずれかに対応付ける。すなわち、対応付け部１３４は、基準物を基準として取得した所定数のエッジ線を、モデルの対応する稜線、つまり、稜線間の位置関係が所定数のエッジ線間の位置関係に対応する稜線に、それぞれ対応付ける。すなわち、対応付け部１３４は、構造物に含まれる基準物と、モデルに含まれる基準物との位置関係が若干ずれていたとしても、基準物の周囲のエッジ線および対応する稜線を用いて構造物とモデルとを重ね合わせることができる。
【００３１】
一方、対応付け部１３４は、第２取得部１３３から手動指示と、抽出した複数のエッジ線と、撮像画像とが入力されると、ＣＡＤデータ記憶部１２２から指定されたＣＡＤデータに対応するモデルの情報を読み込む。対応付け部１３４は、例えば、撮像画像の構造物と、モデルとを並べて表示し、抽出した複数のエッジ線と、モデルの複数の稜線とを、それぞれ選択可能に表示部１１１に表示させる。
【００３２】
対応付け部１３４は、表示された撮像画像上の構造物およびモデルにおいて、ユーザから所定数のエッジ線と、所定数のエッジ線それぞれに対応付けられる稜線の選択を受け付ける。対応付け部１３４は、受け付けた選択に応じて、所定数のエッジ線のそれぞれを、モデルの複数の稜線のいずれかに対応付ける。
【００３３】
対応付け部１３４は、対応付けを行うと、所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢となるように、モデルの拡縮および回転を行う。すなわち、対応付け部１３４は、エッジ線に対応する稜線に基づいて、モデルの移動回転行列を算出する。対応付け部１３４は、算出した移動回転行列に基づいて、モデルの各稜線が撮像画像上の構造物の対応する各エッジ線と重なるように、モデルの大きさを調整して３次元での移動および回転を行う。対応付け部１３４は、撮像画像および調整後のモデルを表示制御部１３５に出力する。すなわち、対応付け部１３４は、算出した移動回転行列に基づいて、モデルの位置、大きさおよび姿勢を調整し、調整後のモデルを表示制御部１３５に出力する。なお、モデルの調整は、表示制御部１３５で行ってもよい。
【００３４】
言い換えると、対応付け部１３４は、構造物の構造データを記憶するＣＡＤデータ記憶部１２２を参照して、取得した所定数のエッジ線それぞれを、構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付ける。また、対応付け部１３４は、所定数のエッジ線それぞれを、モデルに含まれる複数の稜線のうち、稜線間の位置関係が所定数のエッジ線間の位置関係に対応する所定数の稜線それぞれに対応付ける。また、対応付け部１３４は、撮像画像に含まれる基準物と、モデルに含まれる基準物とに基づいて、構造物およびモデルの各座標軸を特定し、特定した各座標軸に基づいて、所定数のエッジ線それぞれを、複数の稜線のいずれかに対応付ける。
【００３５】
表示制御部１３５は、対応付け部１３４から撮像画像および調整後のモデルが入力されると、撮像画像上に調整後のモデルを重畳表示した表示画面を生成し、生成した表示画面を表示部１１１に表示させる。すなわち、表示制御部１３５は、所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢でモデルを撮像画像に重畳表示する。表示制御部１３５は、例えば、ユーザの指示により、重畳表示中の表示画面を、重畳画像として入出力部１１３のメモリカードに保存する。
【００３６】
また、表示制御部１３５は、重畳表示を行うと、例えばユーザからの入力に基づいて、アプリケーションを終了するか否かを判定する。表示制御部１３５は、アプリケーションを終了しないと判定した場合には、第１取得部１３１に対して、次の撮像画像およびＣＡＤデータの指定を受け付けるように指示する。表示制御部１３５は、アプリケーションを終了すると判定した場合には、アプリケーションの終了処理を行って表示制御処理を終了する。
【００３７】
ここで、図２から図６を用いて、具体例を説明する。図２は、撮像された構造物およびエッジ線の一例を示す図である。図２に示すように撮像画像２０には、構造物２１が含まれている。また、構造物２１には、基準物としてマーカ２２が付されている。抽出部１３２は、撮像画像２０から複数のエッジ線２３を抽出する。なお、図２の例では、エッジ線として直線を用いるので、構造物上部の球の部分の境界はエッジ線として抽出しないが、直線が存在しないような構造物では、直線以外のエッジ線を抽出するようにしてもよい。抽出部１３２は、複数のエッジ線２３を抽出すると、撮像画像２０と、抽出した複数のエッジ線２３とを第２取得部１３３に出力する。
【００３８】
第２取得部１３３は、抽出部１３２から撮像画像２０と、抽出した複数のエッジ線２３とが入力されると、撮像画像２０に対してマーカ２２の検出処理を実行する。図３は、基準物の位置に応じたエッジ線の一例を示す図である。図３に示すように、第２取得部１３３は、撮像画像２０からマーカ２２を検出すると、抽出した複数のエッジ線２３のうち、マーカ２２の周囲の４つのエッジ線２３ａを取得する。第２取得部１３３は、撮像画像２０と、マーカ２２の情報と、４つのエッジ線２３ａとを対応付け部１３４に出力する。
【００３９】
対応付け部１３４は、第２取得部１３３から撮像画像２０と、マーカ２２の情報と、４つのエッジ線２３ａとが入力されると、ＣＡＤデータ記憶部１２２から指定されたＣＡＤデータに対応するモデルの情報を読み込む。図４は、モデルの一例を示す図である。図４に示すように、モデル３１は、撮像画像２０に含まれる構造物２１のＣＡＤデータから生成されたＡＲ表示が可能な構造物２１のモデルである。また、モデル３１には、構造物２１のマーカ２２と同じ位置にマーカ３２が付されている。
【００４０】
対応付け部１３４は、マーカ２２および３２の情報、例えば、方向（傾き）および大きさに基づいて、構造物２１およびモデル３１の各座標軸を特定する。対応付け部１３４は、特定した構造物２１およびモデル３１の各座標軸に基づいて、稜線間の位置関係が４つのエッジ線２３ａ間の位置関係に対応するモデル３１の複数の稜線３３ａに、当該４つのエッジ線２３ａをそれぞれ対応付ける。
【００４１】
対応付け部１３４は、対応付けを行うと、４つのエッジ線２３ａそれぞれに対応付けられた稜線３３ａの位置が、該稜線３３ａに対応付けられたエッジ線２３ａの位置に対応する姿勢となるように、モデル３１の拡縮および回転を行う。すなわち、対応付け部１３４は、モデル３１の各稜線３３ａが構造物２１の対応する各エッジ線２３ａと重なるように、モデル３１の大きさを調整して３次元での移動および回転を行う。対応付け部１３４は、撮像画像２０および調整後のモデル３１を表示制御部１３５に出力する。
【００４２】
表示制御部１３５は、対応付け部１３４から撮像画像２０および調整後のモデル３１が入力されると、撮像画像２０上に調整後のモデル３１を重畳表示した表示画面を生成し、生成した表示画面を表示部１１１に表示させる。図５は、モデルを撮像画像上の構造物に重畳表示した場合の一例を示す図である。図５に示すように、表示画面４０には、撮像画像２０の構造物２１と、モデル３１とが重なるように表示される。このとき、マーカ２２とマーカ３２、および、４つのエッジ線２３ａと、対応付けられた４つの稜線３３ａとは、重なっている状態である。このように、表示制御装置１００は、ユーザから撮像画像とＣＡＤデータとの指定を受け付けるだけで、撮像画像２０上の構造物２１にモデル３１を重畳表示できるので、重畳表示を行う場合のユーザの操作を容易化できる。また、図５の例では、構造物２１の部材２４がＣＡＤデータに基づくモデル３１には存在しないことが一目で判明するので、構造物２１がＣＡＤデータ通りに製作されているか否かを容易に確認できる。なお、図５では、部材２４と接する稜線３３ａは、エッジ線２３ａと重なる部分のみ太線で表示しているが、エッジ線２３ａと重ならない部分も図４と同様に太線等で表示するようにしてもよい。
【００４３】
図６は、モデルを撮像画像上の構造物に重畳表示した場合の他の一例を示す図である。図６に示す表示画面５０は、撮像画像２０の構造物２１と、モデル３１とが重なるように表示されているが、構造物２１とモデル３１との間で、ずれが発生している場合の一例である。このとき、例えば、マーカ２２とマーカ３２とは、重なっている状態であるが、４つのエッジ線２３ａと、対応付けられた４つの稜線３３ａとは、近傍にあるが重なっていない状態である。また、図５と同様に、構造物２１の部材２４がＣＡＤデータに基づくモデル３１には存在しないことも判る。このように、図６の例では、構造物２１とモデル３１とのずれが容易に確認できる。
【００４４】
次に、実施例１の表示制御装置１００の動作について説明する。図７は、実施例の表示制御処理の一例を示すフローチャートである。
【００４５】
第１取得部１３１は、ユーザによってアプリケーションの起動が指示されると、表示制御処理を行うアプリケーションを起動する（ステップＳ１）。第１取得部１３１は、アプリケーションを起動すると、ユーザから撮像画像およびＣＡＤデータの指定を受け付ける。第１取得部１３１は、撮像画像およびＣＡＤデータの指定を受け付けると、前処理を実行する（ステップＳ２）。すなわち、第１取得部１３１は、撮像画像記憶部１２１から撮像画像を取得して、取得した撮像画像を抽出部１３２に出力する。また、第１取得部１３１は、ＣＡＤデータ記憶部１２２を参照して構造物のモデルを生成して、生成したモデルの情報をＣＡＤデータ記憶部１２２に記憶する。
【００４６】
抽出部１３２は、第１取得部１３１から取得した撮像画像が入力されると、当該撮像画像から複数のエッジ線を抽出する（ステップＳ３）。抽出部１３２は、複数のエッジ線を抽出すると、撮像画像と、抽出した複数のエッジ線とを第２取得部１３３に出力する。
【００４７】
第２取得部１３３は、抽出部１３２から撮像画像と、抽出した複数のエッジ線とが入力されると、撮像画像に対して基準物の検出処理を実行する（ステップＳ４）。第２取得部１３３は、撮像画像からの基準物の検出に成功したか否かを判定する（ステップＳ５）。第２取得部１３３は、撮像画像からの基準物の検出に成功した場合には（ステップＳ５：肯定）、抽出した複数のエッジ線のうち、基準物の位置に応じた所定数のエッジ線を取得する。第２取得部１３３は、撮像画像と、検出した基準物の情報と、取得した所定数のエッジ線とを対応付け部１３４に出力する。
【００４８】
対応付け部１３４は、第２取得部１３３から撮像画像と、検出した基準物の情報と、取得した所定数のエッジ線とが入力されると、ＣＡＤデータ記憶部１２２から指定されたＣＡＤデータに対応するモデルの情報を読み込む。対応付け部１３４は、撮像画像に含まれる基準物の周囲のエッジ線と、モデルに含まれる基準物の周囲の稜線とを対応付ける（ステップＳ６）。
【００４９】
対応付け部１３４は、対応付けを行うと、所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢となるように、モデルの拡縮および回転を行う（ステップＳ７）。対応付け部１３４は、撮像画像と、拡縮および回転を行った調整後のモデルとを表示制御部１３５に出力する。
【００５０】
ステップＳ５の説明に戻って、第２取得部１３３は、撮像画像からの基準物の検出に失敗した場合には（ステップＳ５：否定）、手動で対応付けを行う旨を指示する手動指示と、抽出した複数のエッジ線と、撮像画像とを対応付け部１３４に出力する。対応付け部１３４は、第２取得部１３３から手動指示と、抽出した複数のエッジ線と、撮像画像とが入力されると、構造物のエッジ線と、モデルの稜線とを選択可能に表示させる。対応付け部１３４は、ユーザの操作によって手動で構造物のエッジ線と、モデルの稜線とを対応付け（ステップＳ８）、ステップＳ７に進む。
【００５１】
表示制御部１３５は、対応付け部１３４から撮像画像および調整後のモデルが入力されると、撮像画像上に調整後のモデルを重畳表示した表示画面を生成し、生成した表示画面を表示部１１１に表示させる（ステップＳ９）。表示制御部１３５は、重畳表示を行うと、例えばユーザからの入力に基づいて、アプリケーションを終了するか否かを判定する（ステップＳ１０）。
【００５２】
表示制御部１３５は、アプリケーションを終了しないと判定した場合には（ステップＳ１０：否定）、第１取得部１３１に対して、次の撮像画像およびＣＡＤデータの指定を受け付けるように指示し、ステップＳ２に戻る。表示制御部１３５は、アプリケーションを終了すると判定した場合には（ステップＳ１０：肯定）、アプリケーションの終了処理を行って表示制御処理を終了する。これにより、表示制御装置１００は、撮像画像上にモデルを重畳表示する操作を容易化できる。
【００５３】
なお、上記実施例では、予め撮像された撮像画像を取得したが、これに限定されない。例えば、表示制御装置１００に撮像装置を設け、表示制御装置１００で撮像した撮像画像に含まれる構造物に、当該構造物のＣＡＤデータに基づくモデルを調整して重畳表示するようにしてもよい。
【００５４】
また、上記実施例では、撮像画像に含まれる構造物に付された基準物の検出に成功すると、基準物の周囲のエッジ線を用いて自動的にモデルを撮像画像上の構造物に重畳表示したが、これに限定されない。例えば、撮像画像に含まれる構造物に付された基準物の検出に成功すると、撮像画像に含まれる構造物およびモデルのそれぞれに対応する各座標軸を表示して、ユーザが所定数のエッジ線および稜線を任意に選択できるようにしてもよい。これにより、表示制御装置１００は、任意のエッジ線に対応する稜線を対応付けることができる。
【００５５】
このように、表示制御装置１００は、撮像装置により撮像された構造物を含む撮像画像を取得する。また、表示制御装置１００は、取得した撮像画像から複数のエッジ線を抽出する。また、表示制御装置１００は、取得した撮像画像に基準物が含まれることを検出すると、抽出した複数のエッジ線のうち、基準物の位置に応じた所定数のエッジ線を取得する。また、表示制御装置１００は、構造物の構造データを記憶するＣＡＤデータ記憶部１２２を参照して、取得した所定数のエッジ線それぞれを、構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付ける。また、表示制御装置１００は、所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢でモデルを撮像画像に重畳表示する。その結果、表示制御装置１００は、撮像画像上にモデルを重畳表示する操作を容易化できる。
【００５６】
また、表示制御装置１００は、所定数のエッジ線それぞれを、モデルに含まれる複数の稜線のうち、稜線間の位置関係が所定数のエッジ線間の位置関係に対応する所定数の稜線それぞれに対応付ける。その結果、表示制御装置１００は、エッジ線間および稜線間の位置関係に応じて、撮像画像上の構造物にモデルを重畳表示できる。
【００５７】
また、表示制御装置１００は、基準物が構造物上に位置することを検出すると、抽出した複数のエッジ線のうち、基準物の周囲の所定数のエッジ線を取得する。その結果、表示制御装置１００は、基準物の周囲のエッジ線に基づいて、撮像画像上の構造物にモデルを重畳表示できる。
【００５８】
また、表示制御装置１００は、基準物を取り囲む形状を構成する所定数のエッジ線を取得する。その結果、表示制御装置１００は、基準物が設置された面に基づいて、撮像画像上の構造物にモデルを重畳表示できる。
【００５９】
また、表示制御装置１００では、モデルは、撮像画像に含まれる基準物に対応する基準物を有する。また、表示制御装置１００は、撮像画像に含まれる基準物と、モデルに含まれる基準物とに基づいて、構造物およびモデルの各座標軸を特定し、特定した各座標軸に基づいて、所定数のエッジ線それぞれを、複数の稜線のいずれかに対応付ける。その結果、表示制御装置１００は、基準物を重ね合わせの基準として、撮像画像上の構造物にモデルを重畳表示できる。
【００６０】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第１取得部１３１と抽出部１３２と第２取得部１３３とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【００６１】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【００６２】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図８は、表示制御プログラムを実行するコンピュータの一例を示す図である。
【００６３】
図８に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線または無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【００６４】
ハードディスク装置２０８には、図１に示した第１取得部１３１、抽出部１３２、第２取得部１３３、対応付け部１３４および表示制御部１３５の各処理部と同様の機能を有する表示制御プログラムが記憶される。また、ハードディスク装置２０８には、撮像画像記憶部１２１、ＣＡＤデータ記憶部１２２、および、表示制御プログラムを実現するための各種データが記憶される。入力装置２０２は、例えば、コンピュータ２００のユーザから操作情報等の各種情報の入力を受け付ける。モニタ２０３は、例えば、コンピュータ２００のユーザに対して表示画面等の各種画面を表示する。媒体読取装置２０４は、撮像画像およびＣＡＤデータ等の各種データを読み取る。インタフェース装置２０５は、例えば印刷装置等が接続される。通信装置２０６は、例えば、図１に示した通信部１１０と同様の機能を有し図示しないネットワークと接続され、図示しない他の情報処理装置と各種情報をやりとりする。
【００６５】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図１に示した第１取得部１３１、抽出部１３２、第２取得部１３３、対応付け部１３４および表示制御部１３５として機能させることができる。
【００６６】
なお、上記の表示制御プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの表示制御プログラムを記憶させておき、コンピュータ２００がこれらから表示制御プログラムを読み出して実行するようにしてもよい。
【００６７】
以上、本実施例を含む実施の形態に関し、さらに以下の付記を開示する。
【００６８】
（付記１）撮像装置により撮像された構造物を含む撮像画像を取得し、
取得した前記撮像画像から複数のエッジ線を抽出し、
取得した前記撮像画像に基準物が含まれることを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の位置に応じた所定数のエッジ線を取得し、
前記構造物の構造データを記憶する記憶部を参照して、取得した前記所定数のエッジ線それぞれを、前記構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付け、
前記所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢で前記モデルを前記撮像画像に重畳表示する、
処理をコンピュータに実行させることを特徴とする表示制御プログラム。
【００６９】
（付記２）前記対応付ける処理は、前記所定数のエッジ線それぞれを、前記モデルに含まれる複数の稜線のうち、稜線間の位置関係が前記所定数のエッジ線間の位置関係に対応する前記所定数の稜線それぞれに対応付ける、
ことを特徴とする付記１に記載の表示制御プログラム。
【００７０】
（付記３）前記所定数のエッジ線を取得する処理は、前記基準物が前記構造物上に位置することを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の周囲の前記所定数のエッジ線を取得する、
ことを特徴とする付記１または２に記載の表示制御プログラム。
【００７１】
（付記４）前記所定数のエッジ線を取得する処理は、前記基準物を取り囲む形状を構成する前記所定数のエッジ線を取得する、
ことを特徴とする付記３に記載の表示制御プログラム。
【００７２】
（付記５）前記モデルは、前記撮像画像に含まれる前記基準物に対応する基準物を有し、
前記対応付ける処理は、前記撮像画像に含まれる前記基準物と、前記モデルに含まれる前記基準物とに基づいて、前記構造物および前記モデルの各座標軸を特定し、特定した前記各座標軸に基づいて、前記所定数のエッジ線それぞれを、前記複数の稜線のいずれかに対応付ける、
ことを特徴とする付記１〜４のいずれか１つに記載の表示制御プログラム。
【００７３】
（付記６）撮像装置により撮像された構造物を含む撮像画像を取得し、
取得した前記撮像画像から複数のエッジ線を抽出し、
取得した前記撮像画像に基準物が含まれることを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の位置に応じた所定数のエッジ線を取得し、
前記構造物の構造データを記憶する記憶部を参照して、取得した前記所定数のエッジ線それぞれを、前記構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付け、
前記所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢で前記モデルを前記撮像画像に重畳表示する、
処理をコンピュータが実行することを特徴とする表示制御方法。
【００７４】
（付記７）前記対応付ける処理は、前記所定数のエッジ線それぞれを、前記モデルに含まれる複数の稜線のうち、稜線間の位置関係が前記所定数のエッジ線間の位置関係に対応する前記所定数の稜線それぞれに対応付ける、
ことを特徴とする付記６に記載の表示制御方法。
【００７５】
（付記８）前記所定数のエッジ線を取得する処理は、前記基準物が前記構造物上に位置することを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の周囲の前記所定数のエッジ線を取得する、
ことを特徴とする付記６または７に記載の表示制御方法。
【００７６】
（付記９）前記所定数のエッジ線を取得する処理は、前記基準物を取り囲む形状を構成する前記所定数のエッジ線を取得する、
ことを特徴とする付記８に記載の表示制御方法。
【００７７】
（付記１０）前記モデルは、前記撮像画像に含まれる前記基準物に対応する基準物を有し、
前記対応付ける処理は、前記撮像画像に含まれる前記基準物と、前記モデルに含まれる前記基準物とに基づいて、前記構造物および前記モデルの各座標軸を特定し、特定した前記各座標軸に基づいて、前記所定数のエッジ線それぞれを、前記複数の稜線のいずれかに対応付ける、
ことを特徴とする付記６〜９のいずれか１つに記載の表示制御方法。
【００７８】
（付記１１）撮像装置により撮像された構造物を含む撮像画像を取得する第１取得部と、
取得した前記撮像画像から複数のエッジ線を抽出する抽出部と、
取得した前記撮像画像に基準物が含まれることを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の位置に応じた所定数のエッジ線を取得する第２取得部と、
前記構造物の構造データを記憶する記憶部を参照して、取得した前記所定数のエッジ線それぞれを、前記構造データに応じたモデルに含まれる複数の稜線のいずれかに対応付ける対応付け部と、
前記所定数のエッジ線それぞれに対応付けられた稜線の位置が、該稜線に対応付けられたエッジ線の位置に対応する姿勢で前記モデルを前記撮像画像に重畳表示する表示制御部と、
を有することを特徴とする表示制御装置。
【００７９】
（付記１２）前記対応付け部は、前記所定数のエッジ線それぞれを、前記モデルに含まれる複数の稜線のうち、稜線間の位置関係が前記所定数のエッジ線間の位置関係に対応する前記所定数の稜線それぞれに対応付ける、
ことを特徴とする付記１１に記載の表示制御装置。
【００８０】
（付記１３）前記第２取得部は、前記基準物が前記構造物上に位置することを検出すると、抽出した前記複数のエッジ線のうち、前記基準物の周囲の前記所定数のエッジ線を取得する、
ことを特徴とする付記１１または１２に記載の表示制御装置。
【００８１】
（付記１４）前記第２取得部は、前記基準物を取り囲む形状を構成する前記所定数のエッジ線を取得する、
ことを特徴とする付記１３に記載の表示制御装置。
【００８２】
（付記１５）前記モデルは、前記撮像画像に含まれる前記基準物に対応する基準物を有し、
前記対応付け部は、前記撮像画像に含まれる前記基準物と、前記モデルに含まれる前記基準物とに基づいて、前記構造物および前記モデルの各座標軸を特定し、特定した前記各座標軸に基づいて、前記所定数のエッジ線それぞれを、前記複数の稜線のいずれかに対応付ける、
ことを特徴とする付記１１〜１４のいずれか１つに記載の表示制御装置。
【符号の説明】
【００８３】
１００  表示制御装置
１１０  通信部
１１１  表示部
１１２  操作部
１１３  入出力部
１２０  記憶部
１２１  撮像画像記憶部
１２２  ＣＡＤデータ記憶部
１３０  制御部
１３１  第１取得部
１３２  抽出部
１３３  第２取得部
１３４  対応付け部
１３５  表示制御部
【図１】
2018142109.tif 000003
【図２】
2018142109.tif 000004
【図３】
2018142109.tif 000005
【図４】
2018142109.tif 000006
【図５】
2018142109.tif 000007
【図６】
2018142109.tif 000008
【図７】
2018142109.tif 000009
【図８】
2018142109.tif 000010