以下に図面を参照して、本発明にかかる重畳画像生成プログラム、重畳画像生成方法、および情報処理装置の実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる重畳画像生成方法の一実施例を示す説明図である。図1において、情報処理装置101は、立体構造物を撮像した画像と、立体構造物に対応するモデル情報とに基づき、立体構造物とモデルとを含む重畳画像を生成するコンピュータである。
立体構造物は、1以上の部品、部材等から構成される立体の構造物である。立体構造物を撮像した画像は、撮像装置(例えば、後述の図4に示すカメラ403)によって立体構造物を撮像して得られる画像データであり、例えば、モノクロ画像であってもカラー画像であってもよい。モデル情報は、立体構造物の3次元形状(モデル)をあらわす情報であり、例えば、3次元CADシステムを利用して作成される3次元CADデータである。
モデル情報には、例えば、立体構造物の構成要素である部材単位の情報が含まれる。部材単位の情報は、例えば、3次元座標系における各部材の頂点の位置や、穴の位置・大きさ等を特定する情報を含む。モデルは、モデル情報があらわす立体構造物の3次元モデルである。重畳画像は、立体構造物を撮像した画像に含まれる立体構造物と、モデル情報があらわすモデルとを重ねて表示する画像である。
ここで、製造された立体構造物が、設計図に合ったものとなっているかを確認するために、仮組などの作業が行われることがある。仮組は、構造物の一部または全部を仮に組み上げて、部品精度や組立精度を確認する作業である。例えば、送電鉄塔やドーム状構造物などの大型の立体構造物は、組み立て後の搬送が困難なため、出荷前に工場内において仮組が実施されることが多い。
仮組工程では、作業員が、CAD図面と仮組みされた現物とを目視により比較して、部材精度や組立精度などを確認することが多い。ところが、CAD図面と現物とを比較しながら、差異のある箇所を判断するには、作業者のスキルや熟練度が必要となることがある。また、立体構造物が大型になるほど、チェックすべき箇所は増える傾向にある。
このようなことから、CAD図面と現物とを目視により比較する従来のやり方では、部材精度や組立精度を確認する際に、作業者がCAD図面と立体構造物との差異を把握しきれず、診断ミスや診断漏れなどのヒューマンエラーを招くおそれがある。
そこで、本実施の形態では、立体構造物とモデルとのズレを視認し易くさせる重畳画像生成方法について説明する。以下、情報処理装置101の処理例について説明する。
(1)情報処理装置101は、立体構造物を撮像した画像を取得する。具体的には、例えば、情報処理装置101は、撮像装置によって立体構造物Sを撮像した画像を取得する。撮像装置は、情報処理装置101が有することにしてもよく、他のコンピュータが有することにしてもよい。
(2)情報処理装置101は、立体構造物に対応するモデル情報に基づいて、取得した画像に含まれる立体構造物とモデルとを含む重畳画像を生成する。具体的には、例えば、情報処理装置101は、取得した画像に含まれる立体構造物とモデルとを、決定された配置態様で重畳させる際に、モデルの少なくとも一部を透過させ、画像のうちモデルと重なる部分について視認可能とした重畳画像を生成する。
配置態様の決定には、例えば、モデルの位置、向き、サイズのうち少なくとも1つの決定が含まれる。配置態様の決定は、例えば、ユーザの操作入力により行われてもよく、また、立体構造物に対応するモデル情報をもとに自動実行されることにしてもよい。
(3)情報処理装置101は、生成した重畳画像を出力する。具体的には、例えば、情報処理装置101は、生成した重畳画像をディスプレイ110に表示する。この際、情報処理装置101は、重畳画像における立体構造物とモデルとのズレの方向、および/または、ズレ量を示すマークを表示することにしてもよい。
図1の例では、取得された画像に含まれる立体構造物120に対して、決定された配置態様で、輪郭線のみが表示されたモデル130が重畳された重畳画像140が、ディスプレイ110に表示されている。なお、ディスプレイ110は、情報処理装置101が有していてもよく、また、情報処理装置101に接続される他のコンピュータが有することにしてもよい。
このように、情報処理装置101によれば、ある配置態様で画像に含まれる立体構造物とモデルを重畳させる際に、モデルの少なくとも一部を透過させ、画像のうちモデルと重なる部分について視認可能とした重畳画像を生成することができる。これにより、立体構造物とモデルとのズレを視認し易くさせることができる。
図1の例では、立体構造物120に対して、輪郭線のみが表示されたモデル130が重畳表示されており、立体構造物120を撮像した画像のうちモデル130と重なる部分が視認可能となっている。このため、仮組工程などにおいて、作業者が重畳画像140を参照することで、立体構造物120とモデル130とのズレを把握し易くなる。
例えば、モデル130の部材131に対して、立体構造物120の部材121の位置が大きくずれていることがわかる。また、モデル130の部材132に対して、立体構造物120の部材122の向きがずれていることがわかる。このように、重畳画像140によれば、立体構造物120とモデル130との差異を容易に判断することが可能となり、部材精度や組立精度を確認する際の診断ミスや診断漏れを防ぐことができる。また、立体構造物120とモデル130との差異をユーザが容易に把握できるようになることで、ディスプレイ110への重畳画像140の表示時間を抑えて消費電力の増大を抑制することができる。
(システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を、実施の形態にかかるシステム200に適用した場合を例に挙げて説明する。
図2は、システム200のシステム構成例を示す説明図である。図2において、システム200は、情報処理装置101と、クライアント装置201とを含む。システム200において、情報処理装置101およびクライアント装置201は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
ここで、情報処理装置101は、立体構造物SとモデルMとを含む重畳画像Iを生成する。立体構造物Sは、構成要素である複数の部材(部品)を含む立体の構造物である。また、情報処理装置101は、線分テーブル220、面テーブル230、および、ズレ判定条件テーブル240を有する。なお、各種テーブルの記憶内容については、図5〜図7を用いて後述する。
以下の説明では、立体構造物Sに含まれる複数の部材を「部材C1〜Cn」と表記する場合がある(n:2以上の自然数)。また、部材C1〜Cnのうちの任意の部材を「部材Ci」と表記する場合がある(i=1,2,…,n)。
クライアント装置201は、PC(パーソナル・コンピュータ)、タブレット端末、スマートフォンなどのコンピュータである。クライアント装置201は、例えば、立体構造物Sの部材精度や組立精度を確認する作業を行うユーザにより使用される。
システム200において、情報処理装置101は、例えば、クライアント装置201から各種画面の表示要求を受信したことに応じて、各種画面の画面情報を生成して、クライアント装置201に送信する。これにより、クライアント装置201に各種画面を表示することができる。
なお、ここでは、情報処理装置101とクライアント装置201とを別体に設けることにしたが、これに限らない。例えば、情報処理装置101は、クライアント装置201によって実現されることにしてもよい。この場合、クライアント装置201が、線分テーブル220、面テーブル230、および、ズレ判定条件テーブル240を有する。
(情報処理装置101のハードウェア構成例)
図3は、情報処理装置101のハードウェア構成例を示すブロック図である。図3において、情報処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、ディスクドライブ304と、ディスク305と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他の装置(例えば、図2に示したクライアント装置201)に接続される。そして、I/F303は、ネットワーク210と自装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
なお、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、キーボード、マウス、ディスプレイなどを有することにしてもよい。
(クライアント装置201のハードウェア構成例)
図4は、クライアント装置201のハードウェア構成例を示すブロック図である。図4において、クライアント装置201は、CPU401と、メモリ402と、カメラ403と、I/F404と、ディスプレイ405と、入力装置406と、を有する。また、各構成部はバス400によってそれぞれ接続される。
ここで、CPU401は、クライアント装置201の全体の制御を司る。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
カメラ403は、被写体を撮像する撮像装置である。被写体は、例えば、立体構造物Sである。I/F404は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他の装置(例えば、図2に示した情報処理装置101)に接続される。そして、I/F404は、ネットワーク210と自装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。
ディスプレイ405は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ405としては、例えば、液晶ディスプレイ、有機EL(Electroluminescence)ディスプレイなどを採用することができる。図1に示したディスプレイ110は、例えば、ディスプレイ405に対応する。
入力装置406は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置406は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
なお、クライアント装置201は、上述した構成部のほかに、例えば、ディスク、ディスクドライブ、SSDなどを有することにしてもよい。また、クライアント装置201は、上述した構成部のうち、例えば、カメラ403を有さないことにしてもよい。
(各種テーブルの記憶内容)
つぎに、図5〜図7を用いて、図2に示した各種テーブル220,230,240の記憶内容について説明する。各種テーブル220,230,240は、例えば、図3に示したメモリ302、ディスク305などの記憶装置により実現される。
図5は、線分テーブル220の記憶内容の一例を示す説明図である。図5において、線分テーブル220は、部材ID、輪郭線ID、エッジ線IDおよびズレ量のフィールドを有し、各フィールドに情報を設定することで、線分情報500−1〜500−nをレコードとして記憶する。
ここで、部材IDは、立体構造物Sの構成要素である部材Ciを一意に識別する識別子である。輪郭線IDは、立体構造物Sに対応するモデル情報Dがあらわす部材Ciの輪郭線を一意に識別する識別子である。エッジ線IDは、立体構造物Sを撮像した撮像画像Pから検出されるエッジ線を一意に識別する識別子である。ズレ量は、輪郭線IDの輪郭線と、エッジ線IDのエッジ線とのズレ量zを示す。なお、ズレ量として、輪郭線IDの輪郭線と、エッジ線IDのエッジ線とがなす角度のズレ量θを記憶することにしてもよい。
例えば、線分情報500−1は、立体構造物Sに対応するモデル情報Dがあらわす部材C1の各輪郭線(例えば、輪郭線s1〜s3)と、各輪郭線に対応する各エッジ線(例えば、エッジ線es1〜es3)とのズレ量(例えば、ズレ量z1〜z3)を示す。
図6は、面テーブル230の記憶内容の一例を示す説明図である。図6において、面テーブル230は、部材ID、輪郭面ID、エッジ面IDおよびズレ量のフィールドを有し、各フィールドに情報を設定することで、面情報600−1〜600−nをレコードとして記憶する。
ここで、部材IDは、立体構造物Sの構成要素である部材Ciを一意に識別する識別子である。輪郭面IDは、立体構造物Sに対応するモデル情報Dがあらわす部材Ciの面、すなわち、部材Ciの輪郭線により形成される面(輪郭面)を一意に識別する識別子である。エッジ面IDは、立体構造物Sを撮像した撮像画像Pから検出されるエッジ線により形成される面(エッジ面)を一意に識別する識別子である。ズレ量は、面IDの輪郭面と、エッジ面IDのエッジ面との面積のズレ量z’を示す。
例えば、面情報600−1は、立体構造物Sに対応するモデル情報Dがあらわす部材C1の輪郭線により形成される輪郭面(例えば、輪郭面f1〜f3)と、各輪郭線に対応する各エッジ線により形成されるエッジ面(例えば、エッジ面ef1〜ef3)とのズレ量(例えば、ズレ量z’1〜z’3)を示す。
図7は、ズレ判定条件テーブル240の記憶内容の一例を示す説明図である。図7において、ズレ判定条件テーブル240は、ズレ判定、線分、角度および面積のフィールドを有し、各フィールドに情報を設定することで、ズレ判定条件情報700−1〜700−3をレコードとして記憶する。
ズレ判定は、ズレについての判定結果を示す。ここでは、ズレ判定として、「正しい」、「怪しい」および「間違い」のいずれかが設定される。線分は、線分間(輪郭線とエッジ線との間)のズレ量zについて、「正しい」、「怪しい」および「間違い」のいずれかのズレ判定が得られる条件を示す。
角度は、線分間の角度のズレ量θについて、「正しい」、「怪しい」および「間違い」のいずれかのズレ判定が得られる条件を示す。面積は、面間(輪郭面とエッジ面との間)のズレ量z’について、「正しい」、「怪しい」および「間違い」のいずれかのズレ判定が得られる条件を示す。
各ズレ判定が得られる条件は、任意に設定可能である。例えば、ズレ判定「正しい」が得られる条件は、モデルMと現物との間にほぼズレがないといえるズレ量(z,θ,z’)をもとに設定される。また、ズレ判定「怪しい」が得られる条件は、現物に誤りがあると疑われるズレ量z(z,θ,z’)をもとに設定される。また、ズレ判定「間違い」が得られる条件は、現物に誤りがある可能性が高いズレ量z(z,θ,z’)をもとに設定される。
例えば、ズレ判定条件情報700−1は、線分間のズレ量zが閾値α1未満であれば、ズレ判定「正しい」が得られることを示す。また、ズレ判定条件情報700−1は、線分間の角度のズレ量θが閾値β1未満であれば、ズレ判定「正しい」が得られることを示す。また、ズレ判定条件情報700−1は、面間の面積のズレ量z’が閾値γ1未満であれば、ズレ判定「正しい」が得られることを示す。
(情報処理装置101の機能的構成例)
図8は、情報処理装置101の機能的構成例を示すブロック図である。図8において、情報処理装置101は、取得部801と、決定部802と、生成部803と、出力部804と、を含む構成である。取得部801〜出力部804は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク305などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F303により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク305などの記憶装置に記憶される。
取得部801は、立体構造物Sを撮像した撮像画像Pを取得する。具体的には、例えば、取得部801は、図4に示したカメラ403によって立体構造物Sを撮像した撮像画像Pをクライアント装置201から受信することにより、撮像画像Pを取得する。また、取得部801は、例えば、不図示の入力装置を用いたユーザの操作入力により、立体構造物Sを撮像した撮像画像Pを取得することにしてもよい。
また、取得部801は、立体構造物Sに対応するモデル情報Dを取得する。ここで、モデル情報Dは、立体構造物Sの3次元形状をあらわす情報であり、例えば、3次元CADシステムを利用して作成される3次元CADデータである。より具体的には、例えば、モデル情報Dは、立体構造物Sの頂点情報と線分情報とを含む。
頂点情報は、例えば、立体構造物Sの構成要素である各部材Ciの3次元形状をあらわす各頂点の3次元座標を示す。線分情報は、例えば、立体構造物Sの構成要素である各部材Ciの3次元形状をあらわす各線分の両端の頂点を示す。モデル情報Dによれば、3次元空間における各部材Ciの位置、形状(穴を含む)等を特定することができる。
具体的には、例えば、取得部801は、他のコンピュータから立体構造物Sに対応するモデル情報Dを受信することにより、モデル情報Dを取得する。他のコンピュータは、例えば、クライアント装置201であってもよく、また、モデル情報Dを管理するサーバ等であってもよい。また、取得部801は、例えば、不図示の入力装置を用いたユーザの操作入力により、モデル情報Dを取得することにしてもよい。
決定部802は、立体構造物Sを撮像した撮像画像Pと重畳表示させるモデルMの配置態様を決定する。ここで、モデルMは、モデル情報Dがあらわす立体構造物Sの3次元モデルである。モデルMの配置態様の決定には、例えば、モデルMの位置、向き、サイズのうち少なくとも1つの決定が含まれる。
具体的には、例えば、決定部802は、ユーザの操作入力に応じて、立体構造物Sを撮像した撮像画像Pと重畳表示させるモデルMの配置態様を決定することにしてもよい。ユーザの操作入力は、例えば、クライアント装置201において入力装置406を用いて行われ、クライアント装置201から情報処理装置101に通知される。
より詳細に説明すると、ユーザの操作入力は、例えば、クライアント装置201のディスプレイ405に表示される、撮像画像PとモデルMとが表示された操作画面において行われる。この操作画面において、ユーザは、撮像画像Pを参照しながら、モデルMの位置、向き、サイズ等を調整することにより、モデルMの配置態様を決定することができる。
また、例えば、決定部802は、撮像画像Pに対するモデルMの配置態様を示す配置情報を取得することにしてもよい。配置情報は、例えば、他のコンピュータから受信することにより、または、不図示の入力装置を用いたユーザの操作入力により取得される。この場合、決定部802は、取得した配置情報に従って、撮像画像Pと重畳表示させるモデルMの配置態様を決定する。
また、例えば、決定部802は、立体構造物Sに対応するモデル情報Dに基づいて、撮像画像Pと重畳表示させるモデルMの配置態様を決定することにしてもよい。具体的には、例えば、決定部802は、エッジ検出処理を行って、撮像画像Pから複数のエッジ線を検出し、検出したエッジ線を特徴線としてメモリ302に格納する。
また、決定部802は、モデル情報Dに含まれる複数の線分を検出し、検出した複数の線分を複数の候補線としてメモリ302に格納する。なお、撮像画像Pに対するエッジ検出処理は、他のコンピュータで行われることにしてもよい。この場合、情報処理装置101は、他のコンピュータから撮像画像Pに対するエッジ検出処理の結果を取得する。
つぎに、決定部802は、撮像画像Pから検出された特徴線のうち、所定の条件を満たす複数の特徴線を抽出する。所定の条件としては、例えば、特徴線の少なくとも一部分が撮像画像P内の指定領域に含まれる、特徴線が撮像画像P内の基準位置から所定距離の範囲内に存在するなどの条件が用いられる。
また、決定部802は、モデル情報Dから検出された候補線のうち、第1のパラメータが表す位置および姿勢から観察される複数の候補線を抽出する。ここで、第1のパラメータは、3次元空間内において予め指定されたカメラ403の位置および姿勢をあらわす。第1のパラメータがあらわす位置および姿勢は、仮の位置および姿勢であり、撮像画像Pを撮影したときのカメラ403の位置および姿勢と一致しているとは限らない。
つぎに、決定部802は、抽出した候補線のうちN本(N:2以上の整数)の候補線それぞれと、抽出した特徴線のうちN本の特徴線それぞれとを対応付けた、N個の組み合わせを生成する。そして、決定部802は、生成したN個の組み合わせをN個の対応ペアとしてメモリ302に格納する。
そして、決定部802は、N個の対応ペアを用いて、撮像画像Pを撮影したときのカメラ403の位置および姿勢を計算し、計算した位置および姿勢を第2のパラメータとしてメモリ302に格納する。このとき、決定部802は、カメラ403の位置および姿勢をあらわす変数を所定値ずつ変更しながら、各対応ペアに含まれる候補線を撮像画像P上に投影することで、投影線を生成する。
つぎに、決定部802は、生成した投影線の位置と、その対応ペアに含まれる特徴線の位置との間のズレをあらわす誤差を計算する。そして、決定部802は、計算した誤差の総和が最小となる変数の値を、第2のパラメータとして求める。決定部802は、N個の対応ペアの選択を変更しながら、第2のパラメータを計算する処理を複数回繰り返す。
決定部802は、第2のパラメータが計算される度に、その第2のパラメータがあらわすカメラ403の位置および姿勢を用いて、選択したN個の対応ペアに含まれる候補線を撮像画像P上に投影することで、N本の投影線を生成する。そして、決定部802は、N本の投影線の位置とN本の特徴線の位置との間の誤差の総和を計算し、計算した誤差の総和を指標としてメモリ302に格納する。
なお、2本の線(ここでは、投影線と特徴線)の間の誤差を算出する具体的な処理内容については、図9および図10を用いて後述する。
つぎに、決定部802は、それぞれの第2のパラメータを用いて計算した指標に基づいて、誤差の総和が最小となるN個の対応ペアを決定する。そして、決定部802は、決定したN個の対応ペアを用いて、3次元空間内におけるカメラ403の位置および姿勢を計算し、計算した位置および姿勢を第3のパラメータとしてメモリ302に格納する。
これにより、モデル情報Dから検出される候補線と撮像画像Pから検出される特徴線とのN個(例えば、4個)の対応ペアを自動生成することができる。そして、決定部802は、第3のパラメータが示すカメラ403の位置および姿勢に合わせて、撮像画像Pと重畳表示させるモデルMの配置態様を決定することにしてもよい。具体的には、例えば、決定部802は、カメラ403の位置および姿勢に合わせて、N個の対応ペアが略一致するように、モデル情報Dがあらわす輪郭線を、撮像画像Pに含まれる立体構造物Sに重畳する。
なお、複数の候補線を抽出する際に、決定部802は、例えば、第1のパラメータがあらわす位置および姿勢をカメラ403の位置および姿勢として用いて、既存の方法により複数の候補線から隠れ線を除去し、残りの候補線を抽出することにしてもよい。隠れ線はカメラ403からは観察されないため、隠れ線に対応する特徴線は撮像画像Pから検出されないことが多い。そこで、候補線から隠れ線を除去することで、対応ペアの生成に用いる候補線を効果的に絞り込むことができる。また、N個の対応ペアの決定は、ユーザの操作入力により行われることにしてもよい。
生成部803は、立体構造物Sを撮像した撮像画像Pとモデル情報Dとに基づき、立体構造物SとモデルMとを含む重畳画像Iを生成する。具体的には、例えば、生成部803は、モデル情報Dに基づいて、撮像画像Pに含まれる立体構造物SとモデルMとを、決定された配置態様で重畳させる際に、モデルMの少なくとも一部を透過させ、撮像画像PのうちモデルMと重なる部分について視認可能とした重畳画像Iを生成する。
より具体的には、例えば、生成部803は、モデルMについては、輪郭線のみを表示する重畳画像Iを生成することにしてもよい。輪郭線の線種としては、例えば、実線、点線、一点鎖線、二点鎖線などを用いることができる。これにより、撮像画像PのうちモデルMと重なる部分について視認可能とした重畳画像Iを生成することができる。
また、生成部803は、重畳画像Iにおける立体構造物SとモデルMとのズレの方向、および/または、ズレ量を示すマークkを表示可能な重畳画像Iを生成することにしてもよい。ここで、マークkは、例えば、図形や記号、または、それらの組み合わせなどである。マークkには、ズレの方向やズレ量を特定し易くさせるメッセージが付与されてもよい。
また、マークkは、例えば、モデルM全体に対して付与されるものであってもよく、部材Ciに対して付与されるものであってもよい。さらに、マークkは、例えば、部材Ciの輪郭線、あるいは、輪郭線によって形成される面(輪郭面)それぞれに対して付与されるものであってもよい。
具体的には、例えば、まず、生成部803は、撮像画像Pから検出される複数のエッジ線のうち、モデルMから検出される部材Ciの輪郭線(線分)に対応するエッジ線を特定する。より具体的には、例えば、生成部803は、部材Ciの輪郭線と、各エッジ線との誤差Eを算出し、算出した誤差Eが最小となるエッジ線を、部材Ciの輪郭線に対応するエッジ線として特定する。
ただし、最小の誤差Eが所定の閾値以上の場合には、生成部803は、部材Ciの輪郭線に対応するエッジ線は存在しないと判断することにしてもよい。対応する輪郭線とエッジ線との誤差E(最小の誤差E)は、例えば、部材Ciの輪郭線とエッジ線とのズレ量zとして、部材ID、輪郭線IDおよびエッジ線IDの組み合わせに対応付けて、図5に示した線分テーブル220に記憶される。
なお、線分間の誤差Eは、例えば、図9または図10に示すような算出方法により求めることができる。
図9は、線分間の誤差の算出方法の一例を示す説明図(その1)である。図9において、線分901は、モデルMから検出される輪郭線の一例である。線分902は、撮像画像Pから検出されるエッジ線の一例である。また、線分903および線分904は、線分901の両端と線分902の両端とをそれぞれ結ぶ線分である。
この場合、生成部803は、例えば、線分901〜904によって囲まれた領域の面積Aを、線分901と線分902との誤差Eとして算出することができる。誤差Eは、面積Aが小さいほど小さくなる。そして、線分901が線分902に重なっている場合、誤差Eは「0」になる。
図10は、線分間の誤差の算出方法の一例を示す説明図(その2)である。図10において、線分1001は、モデルMから検出される輪郭線の一例である。線分1002は、撮像画像Pから検出されるエッジ線の一例である。ここで、線分1002の両端から線分1001上へ下ろした垂線1003および垂線1004の長さを、それぞれL1およびL2とする。
この場合、生成部803は、例えば、垂線1003の長さL1と垂線1004の長さL2との和を、誤差Eとして算出することができる。誤差Eは、長さL1と長さL2との和が小さいほど小さくなる。そして、線分1001が線分1002に重なっている場合、誤差Eは「0」になる。
図8の説明に戻り、また、生成部803は、対応する輪郭線とエッジ線とがなす角度を算出することにしてもよい。具体的には、例えば、生成部803は、輪郭線とエッジ線の両方の始点が原点となるように平行移動して、輪郭線に対するエッジ線の角度を算出する。対応する輪郭線とエッジ線とがなす角度は、例えば、部材Ciの輪郭線とエッジ線とのズレ量θとして、部材ID、輪郭線IDおよびエッジ線IDの組み合わせに対応付けて、線分テーブル220に記憶される。
また、生成部803は、輪郭面とエッジ面とのズレ量z’を算出することにしてもよい。ここで、輪郭面とは、モデル情報Dがあらわす部材Ciの輪郭線により形成される部材Ciの面である。エッジ面とは、部材Ciの輪郭線に対応するエッジ線により形成される面である。ズレ量z’は、例えば、輪郭面の面積とエッジ面の面積との差分の絶対値によってあらわされる。面積は、例えば、ピクセル数によってあらわされる。
部材Ciの各面が、どの輪郭線(線分)から形成されるのかは、例えば、モデル情報Dから特定される。算出された輪郭面とエッジ面とのズレ量z’は、例えば、部材ID、面IDおよびエッジ面IDの組み合わせに対応付けて、図6に示した面テーブル230に記憶される。
そして、生成部803は、例えば、算出したズレ量z、ズレ量z’およびズレ量θのうちの少なくともいずれかに基づいて、マークkを表示可能な重畳画像Iを生成する。より具体的には、例えば、生成部803は、ズレの大きさに応じて、長さまたは大きさが制御されるマークkを表示可能な重畳画像Iを生成することにしてもよい。
マークkの形状は、任意に設定可能である。マークkの形状としては、例えば、円形、楕円形、星形、矩形などが挙げられる。例えば、マークkが円形の場合、ズレが大きいほど、マークkの直径が大きくなる。また、マークkが楕円形の場合、ズレが大きいほど、マークkの長径や短径が大きくなる。
また、例えば、生成部803は、ズレの方向に応じて、傾きが制御されるマークkを表示可能な重畳画像Iを生成することにしてもよい。ズレの方向とは、例えば、部材Ciの輪郭線に対する、対応するエッジ線の方向である。例えば、輪郭線に対してエッジ線が右にずれている場合は、ズレの方向は「右」となり、マークkの傾きは、右に傾くように制御される。
また、マークkの始点は、モデルMのズレに対応する位置とすることにしてもよい。モデルMのズレに対応する位置とは、例えば、対応するエッジ線との間にズレがある輪郭線(あるいは、輪郭面)の位置である。また、マークkは、ズレ量が閾値以上か否かを識別可能に表示されることにしてもよい。
以下、部材単位でマークkを付与する場合を例に挙げて説明する。
より具体的には、例えば、生成部803は、図7に示したズレ判定条件テーブル240を参照して、ズレ判定「怪しい」となる線分の条件「α1≦z<α2」と、ズレ判定「間違い」となる線分の条件「α2≦z」とを特定する。つぎに、生成部803は、線分テーブル220を参照して、ズレ量zが「α1≦z<α2」または「α2≦z」となる輪郭線を含む部材Ciを特定する。
そして、生成部803は、特定した部材Ciについて、ズレ判定に応じたマークkを表示可能な重畳画像Iを生成する。ズレ判定に応じたマークkとは、例えば、ズレ判定に応じて、色や大きさが異なる図形や記号である。例えば、ズレ判定「間違い」に応じたマークkは、ズレ判定「怪しい」に応じたマークkよりも、色が濃く、かつ、大きいマークであってもよい。
一例として、部材Ciが、ズレ量zが「α2≦z」となる輪郭線を含む場合を想定する。この場合、生成部803は、例えば、ズレ量zが「α1≦z<α2」となる輪郭線を含む場合に比べて、色が濃く、かつ、大きいマークkを部材Ciに対して表示可能な重畳画像Iを生成する。マークkの始点は、例えば、部材Ciのいずれかの位置であってもよく、また、部材Ciのズレ量zが「α2≦z」となる輪郭線の位置(例えば、輪郭線の端点や中心点)であってもよい。
これにより、ズレ量zが閾値α2以上か否かを識別可能に、マークkを表示することができる。また、マークkの始点を、モデルMのズレに対応する位置、すなわち、部材Ciの位置とすることができる。
なお、部材Ciが、ズレ判定「怪しい」となる輪郭線と、ズレ判定「間違い」となる輪郭線との両方を含む場合がある。この場合、生成部803は、部材Ciについて、ズレ判定「間違い」に応じたマークkを表示可能な重畳画像Iを生成することにしてもよい。
また、上述した説明では、ズレ量zが「α1≦z<α2」または「α2≦z」となる輪郭線を含む部材Ciを特定することにしたが、これに限らない。例えば、生成部803は、部材Ciの輪郭線のズレ量zの総和が、ズレ判定「怪しい」または「間違い」となる線分の条件を満たすか否かを判断することにしてもよい。
また、例えば、生成部803は、ズレ判定条件テーブル240を参照して、ズレ判定「怪しい」となる角度の条件「β1≦θ<β2」と、ズレ判定「間違い」となる角度の条件「β2≦θ」とを特定する。つぎに、生成部803は、線分テーブル220を参照して、ズレ量θが「β1≦θ<β2」または「β2≦θ」となる輪郭線を含む部材Ciを特定する。
そして、生成部803は、特定した部材Ciについて、ズレ判定に応じたマークkを表示可能な重畳画像Iを生成する。一例として、部材Ciが、ズレ量θが「β2≦θ」となる輪郭線を含む場合を想定する。この場合、生成部803は、例えば、ズレ量θが「β1≦θ<β2」となる輪郭線を含む場合に比べて、色が濃く、かつ、大きいマークkを部材Ciに対して表示可能な重畳画像Iを生成する。
マークkの始点は、例えば、部材Ciのいずれかの位置であってもよく、また、部材Ciのズレ量θが「β2≦θ」となる輪郭線の位置であってもよい。また、生成部803は、例えば、ズレ量θが「β2≦θ」となる輪郭線から、対応するエッジ線の方向に傾くように、マークkの傾きを制御する。
これにより、ズレ量θが閾値β2以上か否かを識別可能に、マークkを表示することができる。また、マークkの始点を、モデルMのズレに対応する位置、すなわち、部材Ciの位置とすることができる。また、ズレの方向に応じて、マークkの傾きを制御することができる。
なお、上述した説明では、ズレ量θが「β1≦θ<β2」または「β2≦θ」となる輪郭線を含む部材Ciを特定することにしたが、これに限らない。例えば、生成部803は、部材Ciの輪郭線のズレ量θの総和が、ズレ判定「怪しい」または「間違い」となる角度の条件を満たすか否かを判断することにしてもよい。
また、例えば、生成部803は、ズレ判定条件テーブル240を参照して、ズレ判定「怪しい」となる面の条件「γ1≦z’<γ2」と、ズレ判定「間違い」となる面の条件「γ2≦z’」とを特定する。つぎに、生成部803は、面テーブル230を参照して、ズレ量z’が「γ1≦z’<γ2」または「γ2≦z’」となる面を含む部材Ciを特定する。
そして、生成部803は、特定した部材Ciについて、ズレ判定に応じたマークkを表示可能な重畳画像Iを生成する。一例として、部材Ciが、ズレ量z’が「γ2≦z’」となる面を含む場合を想定する。この場合、生成部803は、例えば、ズレ量z’が「γ1≦z’<γ2」となる面を含む場合に比べて、色が濃く、かつ、大きいマークkを部材Ciに対して表示可能な重畳画像Iを生成する。マークkの始点は、例えば、部材Ciのいずれかの位置であってもよく、また、部材Ciのズレ量z’が「γ2≦z’」となる輪郭面の位置(例えば、輪郭面の中心点)であってもよい。
これにより、ズレ量z’が閾値γ2以上か否かを識別可能に、マークkを表示することができる。また、マークkの始点を、モデルMのズレに対応する位置、すなわち、部材Ciの位置とすることができる。
なお、部材Ciが、ズレ判定「怪しい」となる面と、ズレ判定「間違い」となる面との両方を含む場合がある。この場合、生成部803は、部材Ciについて、ズレ判定「間違い」に応じたマークkを表示可能な重畳画像Iを生成することにしてもよい。
また、上述した説明では、ズレ量z’が「γ1≦z’<γ2」または「γ2≦z’」となる面を含む部材Ciを特定することにしたが、これに限らない。例えば、生成部803は、部材Ciの面のズレ量z’の総和が、ズレ判定「怪しい」または「間違い」となる面の条件を満たすか否かを判断することにしてもよい。
なお、部材Ciについて、ズレ判定に応じたマークkを表示した重畳画像Iの表示例については、図14を用いて後述する。
また、生成部803は、線分テーブル220を参照して、ズレ量zが「α1≦z<α2」または「α2≦z」となる輪郭線とエッジ線との組み合わせを特定することにしてもよい。そして、生成部803は、例えば、特定した輪郭線とエッジ線のうちの少なくともいずれかの線分を強調表示した重畳画像Iを生成することにしてもよい。線分を強調表示するとは、例えば、線分の太さや色を他の線分とは異なる太さや色にすることである。
また、生成部803は、線分テーブル220を参照して、ズレ量θが「β1≦θ<β2」または「β2≦θ」となる輪郭線とエッジ線との組み合わせを特定することにしてもよい。そして、生成部803は、例えば、特定した輪郭線とエッジ線のうちの少なくともいずれかの線分を強調表示した重畳画像Iを生成することにしてもよい。
なお、線分を強調表示した重畳画像Iの表示例については、図11を用いて後述する。
また、例えば、生成部803は、面テーブル230を参照して、ズレ量z’が「γ1≦z’<γ2」または「γ2≦z’」となる輪郭面とエッジ面との組み合わせを特定することにしてもよい。そして、生成部803は、例えば、特定した輪郭面とエッジ面のうちの少なくともいずれかの面を強調表示した重畳画像Iを生成することにしてもよい。面を強調表示するとは、例えば、面の色を他の面とは異なる色にしたり、面を構成する線分の太さや色を他の線分とは異なる太さや色にしたりすることである。
なお、面を強調表示した重畳画像Iの表示例については、図12を用いて後述する。
また、例えば、生成部803は、部材Ciの輪郭線に対応するエッジ線がない場合には、部材Ciの輪郭線に対応するエッジ線がないことを判別可能な重畳画像Iを生成することにしてもよい。具体的には、例えば、生成部803は、モデルMの部材Ciに対応する部分が存在しないことを示すアラートを表示可能な重畳画像Iを生成することにしてもよい。
なお、部材Ciの輪郭線に対応するエッジ線がないことを判別可能な重畳画像Iの表示例については、図13を用いて後述する。
また、生成部803は、撮像画像Pとモデル情報Dとを重ね合わせた基準位置を併せて表示する重畳画像Iを生成することにしてもよい。基準位置の指定は、例えば、モデルMの配置態様を決定する際に、ユーザの操作入力により行われる。基準位置としては、重畳画像Iにおける立体構造物SとズレのないモデルM上の位置、例えば、ある部材の位置や、ある部材の穴の位置などが指定される。
また、生成部803は、立体構造物SとモデルMとのズレ量が相対的に大きい箇所を少なくとも含む所定の範囲内の階調を、当該箇所からの距離に応じて変化させた重畳画像Iを生成することにしてもよい。ズレ量が相対的に大きい箇所とは、例えば、立体構造物Sとのズレ量が大きい上位X個の箇所である。Xは、任意に設定可能である。
例えば、「X=1」とすると、ズレ量が相対的に大きい箇所は、立体構造物Sとのズレ量が最大のモデルM上の箇所である。ただし、ズレ量が閾値以下となる箇所、例えば、ズレ判定「正しい」となる箇所は、ズレ量が相対的に大きい箇所として扱わないことにしてもよい。
一例として、ズレ量を「ズレ量z」とすると、ズレ量が相対的に大きい箇所は、ズレ量zが最大の輪郭線の位置(例えば、輪郭線の端点や中心点)である。また、ズレ量を「ズレ量θ」とすると、ズレ量が相対的に大きい箇所は、ズレ量θが最大の輪郭線の位置(例えば、輪郭線の端点や中心点)である。また、ズレ量を「ズレ量z’」とすると、ズレ量が相対的に大きい箇所は、ズレ量z’が最大の輪郭面の位置(例えば、輪郭面の中心点)である。
また、ズレ量は、部材単位のズレ量としてもよい。部材単位のズレ量とは、部材Ciについてのズレ量z、ズレ量z’およびズレ量θのうちの少なくともいずれかのズレ量を累計したものである。部材単位のズレ量として、部材Ciについてのズレ量z、ズレ量z’およびズレ量θのうちのいずれかのズレ量の最大値を用いることにしてもよい。部材単位のズレ量を用いる場合、ズレ量が相対的に大きい箇所は、例えば、部材C1〜Cnのうちのズレ量が最大の部材Ciの位置となる。
所定の範囲は、任意に設定可能である。所定の範囲は、例えば、モデルM全体を囲う範囲であってもよく、また、ズレ量が相対的に大きい箇所を含むモデルMの一部分を囲う範囲であってもよい。また、所定の範囲の形状としては、例えば、円形、矩形などが挙げられる。
具体的には、例えば、生成部803は、所定の範囲内の階調を、ズレ量が相対的に大きい箇所からの距離が長くなるにつれて薄くなるように段階的に変化させた重畳画像Iを生成することにしてもよい。なお、所定の範囲内の階調を段階的に変化させた重畳画像Iの表示例については、図15を用いて後述する。
出力部804は、生成された重畳画像Iを出力する。出力部804の出力形式としては、例えば、I/F303による外部のコンピュータ(例えば、クライアント装置201)への送信、メモリ302、ディスク305などの記憶装置への記憶、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。
具体的には、例えば、出力部804は、生成された重畳画像Iをクライアント装置201に送信する。この結果、クライアント装置201において、後述の図11〜図15に示すような重畳画像Iがディスプレイ405に表示される。なお、重畳画像Iの送信は、例えば、クライアント装置201からのユーザの操作入力による表示要求に応じて行われる。
(重畳画像Iの表示例)
つぎに、図11〜図15を用いて、クライアント装置201のディスプレイ405に表示される重畳画像Iの表示例について説明する。
図11は、重畳画像Iの表示例を示す説明図(その1)である。図11において、重畳画像I1は、撮像画像Pに含まれる立体構造物Sと、モデル情報DがあらわすモデルMとを含む。重畳画像I1において、モデルMは、輪郭線(図11中、点線)のみ表示されている。
ここでは、輪郭線1111が、ズレ量zが「α1≦z<α2」または「α2≦z」となる輪郭線である場合を想定する。また、輪郭線1112が、ズレ量zが「α1≦z<α2」または「α2≦z」となる輪郭線である場合を想定する。輪郭線1113が、ズレ量zが「α1≦z<α2」または「α2≦z」となる輪郭線である場合を想定する。
この場合、各輪郭線1111〜1113に対応する各エッジ線1121〜1123が強調表示される。具体的には、各エッジ線1121〜1123が太線で表示されている。また、穴1130は、立体構造物SとモデルMとの間にズレがない基準位置として指定されたモデルM上の位置である。
重畳画像I1によれば、ユーザは、立体構造物Sのうちエッジ線1121〜1123の部分が、モデルMとずれていることを直感的に把握することができる。また、ユーザは、撮像画像Pに含まれる立体構造物SとモデルMとのズレが、穴1130を基準にしたものであることを把握することができる。
図12は、重畳画像Iの表示例を示す説明図(その2)である。図12において、重畳画像I2は、撮像画像Pに含まれる立体構造物Sと、モデル情報DがあらわすモデルMとを含む。重畳画像I2において、モデルMは、輪郭線(図12中、点線)のみ表示されている。
ここでは、輪郭面1211が、ズレ量z’が「γ1≦z’<γ2」または「γ2≦z’」となる輪郭面である場合を想定する。この場合、輪郭面1211に対応するエッジ面1221が強調表示される。具体的には、エッジ面1221が、他の面とは異なる色で表示されている。
重畳画像I2によれば、ユーザは、立体構造物Sのうちエッジ面1221の部分が、モデルMとずれていることを直感的に把握することができる。
図13は、重畳画像Iの表示例を示す説明図(その3)である。図13において、重畳画像I3は、撮像画像Pに含まれる立体構造物Sと、モデル情報DがあらわすモデルMとを含む。重畳画像I3において、モデルMは、輪郭線(図13中、点線)のみ表示されている。
ここで、アラート1301は、モデルMの部材Czに対応する部分が存在しないことを示す情報である。重畳画像I3によれば、ユーザは、モデルMの部材Czに対応する部分が、立体構造物Sにないことを把握することができる。
図14は、重畳画像Iの表示例を示す説明図(その4)である。図14において、重畳画像I4は、撮像画像Pに含まれる立体構造物Sと、モデル情報DがあらわすモデルMとを含む。重畳画像I4において、モデルMは、輪郭線(図14中、点線)のみ表示されている。
ここで、モデルMは、部材Cxと、部材Cyと、部材Czと、を含む。部材Cyは、輪郭線1411と輪郭面1421とを含む。ここでは、輪郭線1411が、ズレ量zが「α2≦z」となる輪郭線である場合を想定する。また、輪郭面1421が、ズレ量z’が「γ1≦z’<γ2」となる輪郭面である場合を想定する。
このため、部材Cyに対してマークk1,k2が表示されている。マークk1は、ズレ量zが「α2≦z」となる輪郭線1411に対応しており、ズレ判定「間違い」に応じた色・大きさで表示されている。また、マークk1の傾きは、輪郭線1411から、輪郭線1411に対応するエッジ線1412の方向に傾けられている。
マークk2は、ズレ量z’が「γ1≦z’<γ2」となる輪郭面1421に対応しており、ズレ判定「怪しい」に応じた色・大きさで表示されている。例えば、色は、ズレ判定「間違い」に応じた色よりも薄い色で表示されている。各マークk1,k2の始点は、輪郭線1411、輪郭面1421を含む部材Cyの上端に設定されている。
重畳画像I4によれば、ユーザは、マークk1,k2から、部材Cyの部分が、立体構造物SとモデルMとの間でずれている箇所であることを直感的に把握することができる。また、ユーザは、マークk1の色や大きさから、部材Cyについて、誤りが生じている可能性が高いといえる程度に大きな線分のズレがあることを把握することができる。
また、ユーザは、マークk1とマークk2との色や大きさを比較することにより、部材Cyについて、面(面積)のズレよりも、線分のズレのほうが大きいことを把握することができる。また、ユーザは、マークk1の傾きから、部材Cyに対応する部分のズレの方向を把握することができる。
図15は、重畳画像Iの表示例を示す説明図(その5)である。図15において、重畳画像I5は、撮像画像Pに含まれる立体構造物Sと、モデル情報DがあらわすモデルMとを含む。重畳画像I5において、モデルMは、輪郭線(図15中、点線)のみ表示されている。
ここで、モデルMは、部材Cxと、部材Cyと、部材Czと、を含む。ここでは、部材Cx、Cy,Czのうち、部材Czが、ズレ量が最大の部材である場合を想定する。この場合、例えば、グラデーション画像1510が表示される。グラデーション画像1510は、所定範囲1500内の階調を、ズレ量が大きい部材Czからの距離が長くなるにつれて薄くなるように段階的に変化させた画像である。所定範囲1500は、モデルM全体を囲う円形の範囲である。
重畳画像I5によれば、ユーザは、モデルM全体(あるいは、立体構造物S全体)におけるどの辺りにズレ量の大きい箇所(部材Cz)があるのかを直感的に把握することができる。このため、立体構造物Sが、例えば、送電鉄塔やドーム上構造物などの大型構造物であっても、ズレ量が大きい部材を容易に特定することができる。
なお、ズレ量が相対的に大きい箇所として、立体構造物Sとのズレ量が大きい複数の箇所が存在する場合がある(例えば、上記Xの値が2以上)。この場合、例えば、ユーザの操作入力に応じて、所定範囲1500内の階調を変化させる際に基準となる箇所を順次変化させることにしてもよい(例えば、部材Cz⇒部材Cy⇒部材Cx)。
(情報処理装置101の重畳画像生成処理手順)
つぎに、情報処理装置101の重畳画像生成処理手順について説明する。
図16および図17は、情報処理装置101の重畳画像生成処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、情報処理装置101は、立体構造物Sに対応するモデル情報Dを取得する(ステップS1601)。つぎに、情報処理装置101は、立体構造物Sを撮像した撮像画像Pを取得する(ステップS1602)。
そして、情報処理装置101は、立体構造物Sを撮像した撮像画像Pと重畳表示させるモデルMの配置態様を決定する(ステップS1603)。つぎに、情報処理装置101は、撮像画像Pから検出される複数のエッジ線のうち、モデルMに含まれる部材Ciの輪郭線に対応するエッジ線を特定する(ステップS1604)。
そして、情報処理装置101は、特定した部材Ciの輪郭線とエッジ線とのズレ量z(あるいは、ズレ量θ)を線分テーブル220に記憶する(ステップS1605)。つぎに、情報処理装置101は、モデルMに含まれる部材Ciの輪郭面に対応するエッジ面を特定する(ステップS1606)。
そして、情報処理装置101は、特定した輪郭面とエッジ面とのズレ量z’を面テーブル230に記憶する(ステップS1607)。つぎに、情報処理装置101は、ズレの表現方式が選択されたか否かを判断する(ステップS1608)。
なお、ズレの表現方式とは、立体構造物SとモデルMとのズレを表現する方式である。ズレの表現方式の選択は、例えば、ユーザの操作入力により行われる。ここでは、ズレの表現方式として、線分表現、マーク表現およびグラデーション表現のいずれかが選択される場合を想定する。
ここで、情報処理装置101は、ズレの表現方式が選択されるのを待つ(ステップS1608:No)。そして、情報処理装置101は、ズレの表現方式が選択された場合(ステップS1608:Yes)、図17に示すステップS1701に移行する。
図17のフローチャートにおいて、まず、情報処理装置101は、ズレの表現方式として線分表現が選択されたか否かを判断する(ステップS1701)。ここで、線分表現が選択された場合(ステップS1701:Yes)、情報処理装置101は、ズレ量zが大きい、例えば、「α2≦z」となる輪郭線とエッジ線との組み合わせを特定する(ステップS1702)。
つぎに、情報処理装置101は、特定した輪郭線とエッジ線のうちの少なくともいずれかの線分を強調表示した重畳画像Iを生成する(ステップS1703)。重畳画像Iは、ステップS1603において決定された配置態様で重畳させる際に、モデルMの少なくとも一部を透過させ、撮像画像PのうちモデルMと重なる部分について視認可能とした画像である。
そして、情報処理装置101は、生成した重畳画像Iを出力して(ステップS1704)、本フローチャートによる一連の処理を終了する。
また、ステップS1701において、線分表現が選択されていない場合(ステップS1701:No)、情報処理装置101は、ズレの表現方式としてマーク表現が選択されたか否かを判断する(ステップS1705)。ここで、マーク表現が選択された場合(ステップS1705:Yes)、情報処理装置101は、線分テーブル220を参照して、ズレ量zが大きい、例えば、「α1≦z<α2」または「α2≦z」となる輪郭線を含む部材Ciを特定する(ステップS1706)。
そして、情報処理装置101は、特定した部材Ciについて、ズレ量z(ズレ判定)に応じたマークkを表示可能な重畳画像Iを生成して(ステップS1707)、ステップS1704に移行する。
また、ステップS1705において、マーク表現が選択されていない場合(ステップS1705:No)、情報処理装置101は、線分テーブル220を参照して、ズレ量zが最大の輪郭線を含む部材Ciを特定する(ステップS1708)。そして、情報処理装置101は、所定の範囲内の階調を、特定した部材Ciからの距離に応じて変化させた重畳画像Iを生成して(ステップS1709)、ステップS1704に移行する。
これにより、ズレの表現方式に応じた重畳画像Iを生成して、例えば、クライアント装置201のディスプレイ405に表示することができる。
なお、ステップS1702において、情報処理装置101は、ズレ量zが「α1≦z<α2」となる輪郭線とエッジ線との組み合わせについても特定することにしてもよい。
また、ステップS1701において、線分表現が選択された場合(ステップS1701:Yes)、情報処理装置101は、ズレ量z’が「γ1≦z’<γ2」または「γ2≦z’」となる輪郭面とエッジ面との組み合わせを特定することにしてもよい。そして、情報処理装置101は、特定した輪郭面とエッジ面のうちの少なくともいずれかの面を強調表示した重畳画像Iを生成することにしてもよい。
また、ステップS1705において、マーク表現が選択された場合(ステップS1705:Yes)、情報処理装置101は、面テーブル230を参照して、ズレ量z’が大きい、例えば、「γ1≦z’<γ2」または「γ2≦z’」となる面を含む部材Ciを特定することにしてもよい。そして、情報処理装置101は、特定した部材Ciについて、ズレ量z’に応じたマークkを表示可能な重畳画像Iを生成することにしてもよい。
また、ステップS1705において、マーク表現が選択されていない場合(ステップS1705:No)、情報処理装置101は、面テーブル230を参照して、ズレ量z’が最大の輪郭面を含む部材Ciを特定することにしてもよい。
以上説明したように、実施の形態にかかる情報処理装置101によれば、立体構造物Sに対応するモデル情報Dに基づいて、立体構造物Sを撮像した撮像画像Pに含まれる立体構造物SとモデルMとを、決定された配置態様で重畳させる際に、モデルMの少なくとも一部を透過させ、撮像画像PのうちモデルMと重なる部分について視認可能とした重畳画像Iを生成することができる。また、情報処理装置101によれば、生成した重畳画像Iを出力することができる。これにより、立体構造物SとモデルMとのズレを視認し易く表示させることができる。
また、情報処理装置101によれば、立体構造物Sに対応するモデル情報Dに基づいて、撮像画像Pと重畳表示させるモデルMの配置態様を決定することができる。配置態様の決定には、例えば、モデルMの位置、向き、サイズのうち少なくとも1つの決定が含まれる。これにより、撮像画像Pに含まれる立体構造物SとモデルMとを比較しやすいように、立体構造物Sに対するモデルMの配置態様を自動決定することができる。
また、情報処理装置101によれば、撮像画像Pとモデル情報Dとに基づき、立体構造物SとモデルMとのズレの方向、および/または、ズレ量を示すマークkを表示可能な重畳画像Iを生成することができる。これにより、立体構造物SとモデルMとの間でズレが生じている箇所を直感的に把握可能な重畳画像Iを表示することができる。
また、情報処理装置101によれば、マークkの始点をモデルMのズレに対応する位置とすることができる。これにより、マークkに対応するズレが、モデルM上のどの部分に対応するものであるかを特定し易くさせることができる。
また、情報処理装置101によれば、マークkの傾きを、ズレの方向に応じて制御することができる。これにより、重畳画像Iにおける立体構造物SとモデルMとを細かく見比べることなく、マークkの傾きから、マークkに対応するズレの方向を特定可能にすることができる。
また、情報処理装置101によれば、マークkの長さまたは大きさを、ズレの大きさに応じて制御することができる。これにより、重畳画像Iにおける立体構造物SとモデルMとを細かく見比べることなく、マークkの長さや大きさから、マークkに対応するズレの大きさを特定可能にすることができる。
また、情報処理装置101によれば、ズレ量が閾値以上か否かを識別可能に、マークkを表示することができる。これにより、何らかの誤りが生じている可能性が高いといえる程度にズレ量が大きい箇所を即座に見つけることが可能となる。
また、情報処理装置101によれば、撮像画像Pとモデル情報Dとを重ね合わせた基準位置を併せて表示することができる。これにより、立体構造物SとモデルMとのズレが、どこを基準にしたものであるかを把握可能にすることができる。
また、情報処理装置101によれば、立体構造物SとモデルMとのズレ量が相対的に大きい箇所を少なくとも含む所定の範囲内の階調を、当該箇所からの距離に応じて変化させた重畳画像Iを生成することができる。これにより、モデルM全体(あるいは、立体構造物S全体)におけるどの辺りにズレ量の大きい箇所があるのかを直感的に把握可能な重畳画像Iを表示することができる。
これらのことから、実施の形態にかかる重畳画像生成プログラム、重畳画像生成方法、および情報処理装置によれば、立体構造物SとモデルMとのズレを視認し易くさせることができ、部材精度や組立精度を確認する際の診断ミスや診断漏れを防ぐことができる。この結果、立体構造物Sを製造する際の手戻りを防いで作業負荷や作業時間を削減することができる。
なお、本実施の形態で説明した重畳画像生成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本重畳画像生成プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本重畳画像生成プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)立体構造物を撮像した画像を取得し、
前記立体構造物に対応するモデル情報に基づいて、取得した前記画像に含まれる前記立体構造物とモデルとを、決定された配置態様で重畳させる際に、前記モデルの少なくとも一部を透過させ、前記画像のうち前記モデルと重なる部分について視認可能とした重畳画像を生成する、
処理をコンピュータに実行させることを特徴とする重畳画像生成プログラム。
(付記2)前記立体構造物に対応するモデル情報に基づいて、取得した前記画像と重畳表示させるモデルの配置態様を決定する、
処理を前記コンピュータに実行させることを特徴とする付記1に記載の重畳画像生成プログラム。
(付記3)前記配置態様の決定には、前記モデルの位置、向き、サイズのうち少なくとも1つの決定が含まれる、ことを特徴とする付記1または2に記載の重畳画像生成プログラム。
(付記4)立体構造物を撮像した画像とモデル情報とに基づき、前記立体構造物とモデルとを含む重畳画像を生成し、
前記重畳画像における前記立体構造物と前記モデルとのずれの方向、及び/又は、ずれ量を示すマークを表示する、
処理をコンピュータに実行させることを特徴とする重畳画像生成プログラム。
(付記5)前記マークの始点を前記モデルの前記ずれに対応する位置とする、
処理を前記コンピュータに実行させることを特徴とする付記4に記載の重畳画像生成プログラム。
(付記6)前記マークは、前記ずれの方向に応じて、傾きが制御される、
ことを特徴とする付記4または5に記載の重畳画像生成プログラム。
(付記7)前記マークは、前記ずれの大きさに応じて、長さ又は大きさが制御される、
ことを特徴とする付記4〜6のいずれか一つに記載の重畳画像生成プログラム。
(付記8)前記マークは、ずれ量が閾値以上か否かを識別可能に表示される、
ことを特徴とする付記4〜7のいずれか一つに記載の重畳画像生成プログラム。
(付記9)前記画像と前記モデル情報を重ね合わせた基準位置を併せて表示する、
処理を前記コンピュータに実行させることを特徴とする付記4〜8のいずれか一つに記載の重畳画像生成プログラム。
(付記10)前記立体構造物と前記モデルとのずれ量が相対的に大きい箇所を少なくとも含む所定の範囲内の階調を前記箇所からの距離に応じて変化させる、
処理を前記コンピュータに実行させることを特徴とする付記4〜9のいずれか一つに記載の重畳画像生成プログラム。
(付記11)立体構造物を撮像した画像を取得し、
前記立体構造物に対応するモデル情報に基づいて、取得した前記画像に含まれる前記立体構造物とモデルとを、決定された配置態様で重畳させる際に、前記モデルの少なくとも一部を透過させ、前記画像のうち前記モデルと重なる部分について視認可能とした重畳画像を生成する、
処理をコンピュータが実行することを特徴とする重畳画像生成方法。
(付記12)立体構造物を撮像した画像とモデル情報とに基づき、前記立体構造物とモデルとを含む重畳画像を生成し、
前記重畳画像における前記立体構造物と前記モデルとのずれの方向、及び/又は、ずれ量を示すマークを表示する、
処理をコンピュータが実行することを特徴とする重畳画像生成方法。
(付記13)立体構造物を撮像した画像を取得し、
前記立体構造物に対応するモデル情報に基づいて、取得した前記画像に含まれる前記立体構造物とモデルとを、決定された配置態様で重畳させる際に、前記モデルの少なくとも一部を透過させ、前記画像のうち前記モデルと重なる部分について視認可能とした重畳画像を生成する、
制御部を有することを特徴とする情報処理装置。
(付記14)立体構造物を撮像した画像とモデル情報とに基づき、前記立体構造物とモデルとを含む重畳画像を生成し、
前記重畳画像における前記立体構造物と前記モデルとのずれの方向、及び/又は、ずれ量を示すマークを表示する、
制御部を有することを特徴とする情報処理装置。