(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、実施例を図面を用いて説明する。
【0010】
[構成の説明]
図1は、本発明の一実施形態である3次元モデル生成装置1を示す図である。3次元モデル生成装置1は、主として、制御部11と、出力部12と、入力部13と、通信部14と、記憶部15とを有する。3次元モデル生成装置1には、主として、3次元測定器20と、部材識別モデルDB(データベース)21と、形状フィッティングDB22と、表示装置25と、図示しない3次元CADサーバとが有線又は無線で接続されている。
【0011】
制御部11は、3次元モデル生成装置1の全体を制御する処理を行う。制御部11の内部の構成については、後に詳述する。
【0012】
出力部12は、プログラムの実行状態、処理結果等の出力を行う。
【0013】
入力部13は、ユーザからのプログラム実行開始指示や中止指示等の入力を行う。
【0014】
通信部14は、3次元モデル生成装置1の各部間のデータ交換を行う。また、通信部14は、他装置(例えば図示しない3次元CADサーバ)と通信してデータ交換を行う。
【0015】
記憶部15は、取得した各種データを一時的に保存したり、作成したデータを記憶したりする。
【0016】
3次元測定器20は、プラント等の内部にある部品の各部位にレーザビームを照射し、三次元の測定結果を取得する。測定結果は、図示しない処理部等でデータ処理され、測定データ23として3次元モデル生成装置1に出力される。測定データ23は、点情報の集合体である点群データである。
【0017】
さらに、3次元モデル生成装置1には、3次元CADデータ24が図示しない3次元CADサーバから出力される。3次元CADデータ24は、プラント等の内部にある部品の3次元設計データである3次元CADデータである。なお、本実施の形態では、3次元設計データはポリゴンデータである。本実施の形態では、3次元CADサーバには、計測対象の部品のうち、全ての設計部品の3次元CADデータ24が記憶されている。
【0018】
部材識別モデルDB21は、学習データ210を格納する。学習データ210は、設計部品ではない部品、例えば配管、足場、補器等のサンプルデータである。
【0019】
図2は、学習データ210のデータ構造を示す図である。学習データ210は、部品格納領域2101と、サンプルデータ格納領域2102とを有する。部品格納領域2101と、サンプルデータ格納領域2102とは関連付けられている。
【0020】
部品格納領域2101には、配管、足場、補器等の部品名が格納される。サンプルデータ格納領域2102には、部品格納領域2101に部品名が格納された部品のサンプルデータが格納される。なお、サンプルデータは、3次元の点群データである。
図2においては、サンプルデータとして線図が記載されているが、これは説明のためであり、実際には3次元形状が認識可能な点群データである。
【0021】
学習データとして、1つの部品に対して複数のサンプルデータが格納される必要がある。そのため、部品格納領域2101には、同じ名称の部品が複数格納される。ただし、サンプルデータ格納領域2102には、すべて異なるサンプルデータが格納され、同一のサンプルデータは2個以上格納されない。
【0022】
図1の説明に戻る。形状フィッティングDB22は、部材識別モデルDB21に学習データが記憶された部品について、フィッティングに必要な情報であるフィッティング情報220が記憶される。
【0023】
図3は、フィッティング情報220のデータ構造を示す図である。フィッティング情報220は、部品格納領域2201と、フィッティングデータ格納領域2202とを有する。部品格納領域2201と、フィッティングデータ格納領域2202とは関連付けられている。
【0024】
部品格納領域2201には、配管、足場、補器等の部品名が格納される。フィッティングデータ格納領域2202には、部品格納領域2101に格納された部品についてのフィッティングに必要な情報、すなわちどういうフィッティングをすればよいかを示す情報(以下、フィッティングデータという)が記憶される。
【0025】
フィッティングデータについて、部品が足場である場合を例に説明する。足場は、鉄パイプ等の円管と、円管に取り付けられた板材とで構成される。したがって、部品格納領域2101に「足場」が格納された場合には、フィッティングデータ格納領域2202には「平面と円管との組み合わせ」という情報、すなわち平面と円管面とで点群データをフィッティングすればよいことを示すフィッティングデータが格納される。
図1の説明に戻る。表示装置25は、CRTモニタ、液晶モニタ等のディスプレイ装置により構成される。
【0026】
次に、制御部11の各構成について詳細に説明する。
図1に示すように、制御部11は、主として、セグメント算出部111と、グラフネットワーク算出部112と、グラフマッチング部113と、点群特徴量算出部114と、部品識別部115と、形状フィッティング部116と、CADフィッティング部117とを有する。
【0027】
セグメント算出部111は、測定データ23及び3次元CADデータ24のそれぞれについて、平面セグメントや曲面セグメント等の複数のセグメントに分割する。セグメント算出部111が求めたデータは、グラフネットワーク算出部112に出力される。セグメント算出部111がセグメントに分割する具体的な処理は、既に公知であるため、説明を省略する。
【0028】
グラフネットワーク算出部112は、セグメント算出部111が分割した測定データ23のセグメント及び3次元CADデータ24のセグメントのそれぞれについて、セグメントのつながり、具体的には、どのセグメントとどのセグメントが連結するか、連結の位置はどこか、連結の角度は何度か、等を算出する。グラフネットワーク算出部112は、算出したセグメントのつながり(以下、グラフネットワークという)を、構造情報としてグラフマッチング部113に出力する。なお、グラフネットワーク算出部112の行う具体的な処理は、すでに公知であるため、詳細な説明を省略する。
【0029】
グラフマッチング部113は、グラフネットワーク算出部112が生成した測定データ23のグラフネットワークと3次元CADデータ24のグラフネットワークとのマッチングを行う。具体的には、グラフマッチング部113は、測定データ23のグラフネットワークと3次元CADデータ24のグラフネットワークとを比較し、ネットワークの構造体としての近さを求める。また、グラフマッチング部113は、マッチング結果に基づいて、測定データ23の基となる部品は3次元設計データがある部品なのか、測定データ23の基となる部品は3次元設計データがない部品なのかを分類する。グラフマッチング部113が行う処理については、後に詳述する。
【0030】
点群特徴量算出部114は、グラフマッチング部113において測定データ23の基となる部品が3次元設計データのない部品であると分類された場合に、測定データ23から特徴量を算出する。例えば、点群特徴量算出部114は、測定データ23のある部分のx方向、y方向、z方向の分散、大きさ、重心距離等の点群の持っている特徴を特徴量として算出する。さらに、点群特徴量算出部114は、部材識別モデルDB21に記憶されたサンプルデータについても、特徴量を算出する。サンプルデータについて算出された特徴量は、学習モデルを作る際に用いられる。なお、点群特徴量算出部114の行う具体的な処理は、すでに公知であるため、詳細な説明を省略する。
【0031】
部品識別部115は、サポートベクトルマシン等の公知の手法を用いて、点群特徴量算出部114が算出した特徴量に基づいて部品を識別する。部品識別部115は、点群特徴量算出部114が算出した測定データ23の特徴量と、部材識別モデルDB21に記憶されたサンプルデータの特徴量とを比較し、測定データ23の基となる部品が、部材識別モデルDB21にサンプルデータが格納された部品のどの部品に該当するかを識別する。なお、部品識別部115が用いる手法は、サポートベクトルマシンに限定されず、識別規則に基づいて識別を行う識別手法であればどのような手法を用いてもよい。また、部品識別部115の行う処理には、すでに公知の方法を用いるため、詳細な説明を省略する。
【0032】
形状フィッティング部116は、部品識別部115の識別結果に基づいて、測定データ23をフィッティングする。形状フィッティング部116の処理については、後に詳述する。
【0033】
CADフィッティング部117は、3次元CADデータ24を用いて、測定データ23をフィッティングする。CADフィッティング部117の処理については、後に詳述する。
【0034】
図4は、3次元モデル生成装置1の概略構成の一例を示すブロック図である。図示するように、例えばコンピューターなどで構成される3次元モデル生成装置1は、演算装置であるCPU(Central Processing Unit)101と、揮発性の記憶装置であるRAM(Random Access Memory)や不揮発性の記憶装置であるROM(Read only Memory)からなるメモリ102と、外部記憶装置103と、外部の装置と通信を行う通信装置104と、ユーザからの入力を受け付けるキーボード、マウス、或いはタッチパネル等のユーザインターフェイスで構成される入力装置105と、ディスプレイ等の出力装置106と、CDドライブ、DVDドライブ等の読み書き装置107と、制御部11と他のユニットを接続するインターフェイス(I/F)108とを備える。
【0035】
上記の制御部11の各機能部は、例えば、CPU101がメモリ102に格納された所定のプログラムをメモリ32に読み出して実行することにより実現される。なお、所定のプログラムは、例えば、予めメモリ102にインストールされてもよいし、通信装置104を介してネットワークからダウンロードされてインストール又は更新されてもよいし、外部記憶装置103からインストール又は更新されてもよいし、読み書き装置107を介してCDドライブ、DVDドライブからインストール又は更新されてもよい。入力部13は入力装置105により実現される。出力部12及び通信部14は通信装置104及びI/F108により実現される。記憶部15はメモリ102により実現される。表示装置25は出力装置106により実現される。なお、出力装置106は3次元モデル生成装置1の構成として必須ではなく、I/F108を介して接続されていればよい。
【0036】
以上の3次元モデル生成装置1の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られなるものではない。
【0037】
[動作の説明]次に、本実施形態における3次元モデル生成装置1の動作を説明する。
図5は、本実施形態における3次元モデル生成装置1の全体の処理の流れを示すフローチャートである。
【0038】
制御部11は、通信部14を介して、3次元測定器20に指示を出し、部品の3次元計測を行う(ステップS10)。制御部11は、通信部14を介して、3次元測定器20で計測された測定データ23を取得する(ステップS12)。また、制御部11は、通信部14を介して、図示しない3次元CADサーバに記憶されたすべての3次元CADデータ24を取得する(ステップS14)。ステップS12で取得した測定データ23及びステップS14で取得した3次元CADデータ24は、記憶部15に記憶される。
【0039】
セグメント算出部111は、ステップS12で取得した測定データ23をセグメンテーション化し、かつステップS14で取得した3次元CADデータ24を要素面(セグメントと同義)に分割することにより、平面セグメントや曲面セグメント等の複数のセグメントに分割する(ステップS16)。
【0040】
グラフネットワーク算出部112は、ステップS16で複数のセグメントに分割された測定データ23及び3次元CADデータ24のそれぞれについて、グラフネットワーク化を行う(ステップS18)。具体的には、グラフネットワーク算出部112は、測定データ23のセグメントをノード、連結しているセグメント間をアーク、連結している角度をアークに付加する情報としてグラフネットワーク化する。また、グラフネットワーク算出部112は、3次元CADデータ24の要素面をノード、連結している要素面間をアーク、連結している角度をアークに付加する情報としてグラフネットワーク化する。
【0041】
グラフマッチング部113は、ステップS18で算出された測定データ23のグラフネットワークと3次元CADデータ24のグラフネットワークとのマッチングを行う(ステップS20)。以下、ステップS20について、具体的に説明する。
【0042】
図6は、マッチング処理(ステップS20)の処理の流れを示すフローチャートである。
【0043】
まず、グラフマッチング部113は、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240とを比較し、最も類似したノード、アークの集合体を抽出する(ステップS201)。測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240とを比較した結果、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240とが一致する領域が複数抽出されることがある。この場合には、グラフマッチング部113は、複数の領域のうちの最も大きい集合体、最も類似度が高い領域等を抽出する。
【0044】
図7は、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240を示す図である。グラフネットワーク230、240において、ノード(
図7の黒丸参照)がセグメントであり、アーク(
図7の線参照)がセグメントのつながりを示す。
図7に示す例においては、マッチングした結果、点線で囲まれた領域が、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240とが類似する集合体として抽出される。
【0045】
次に、グラフマッチング部113は、ステップS201で測定データ23のグラフネットワーク230から抽出された集合体に、ステップS201で3次元CADデータ24のグラフネットワーク240から抽出された集合体の部分につけられた部品名称を対応付ける(ステップS202)。ステップS201で集合体が抽出されなかった場合には、グラフマッチング部113は、ステップS202で名称を対応付けず、次のステップへ進む。
【0046】
グラフマッチング部113は、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240とを比較した結果、マッチするノード、アークの集合体があるか否かを判断する(ステップS203)。
【0047】
マッチするノード、アークの集合体がある場合(ステップS203でYES)は、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240とが複数の領域で一致する場合である。この場合には、グラフマッチング部113は、再度ステップS201を行う。
【0048】
マッチするノード、アークの集合体がない場合(ステップS203でNO)は、グラフマッチング部113は、マッチング処理を終了する。
【0049】
これにより、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240との構造体としての近さが求められる。なお、構造体としての近さは、部分一致する領域の数、領域の面積比等により算出することもできる。
【0050】
次に、グラフマッチング部113は、マッチング結果に基づいて、測定データ23の基となる部品は3次元設計データがある部品なのか、測定データ23の基となる部品は3次元設計データがない部品なのかを分類し、測定データ23の基となる部品は3次元設計データがある部品であるか否かを判断する(ステップS22)。以下、ステップS22について具体的に説明する。
【0051】
ステップS20(詳しくはステップS202)で3次元CADデータ24の部品名称と関連付けられた領域があった場合には、グラフマッチング部113は、点群データの基となる部品の3次元CADデータ24が入力されたと判断する。そして、グラフマッチング部113は、測定データ23の基となる部品を3次元設計データがある部品に分類する。
【0052】
なお、グラフマッチング部113は、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240の一致する領域が複数あった場合や、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240の一致する領域の面積比が所定の閾値(例えば70%)以上の場合に、測定データ23の基となる部品を3次元設計データがある部品に分類することもできる。
【0053】
それに対し、測定データ23のグラフネットワーク230と3次元CADデータ24のグラフネットワーク240とがほとんど一致しない場合等には、グラフマッチング部113は、点群データの基となる部品の3次元CADデータ24が入力されていないと判断する。そして、グラフマッチング部113は、測定データ23の基となる部品を3次元設計データがない部品に分類する。
【0054】
測定データ23の基となる部品が、3次元設計データがない部品に分類された場合(ステップS22でNO)には、制御部11は、測定データ23の基となる部品が3次元モデル作成の対象か否かを判断する(ステップS24)。以下、ステップS24について、具体的に説明する。
【0055】
点群特徴量算出部114は、測定データ23及び部材識別モデルDB21に記憶されたサンプルデータの特徴量を算出する。部品識別部115は、点群特徴量算出部114が算出した測定データ23の特徴量と、部材識別モデルDB21に記憶されたサンプルデータの特徴量とを比較し、測定データ23の基となる部品が、部材識別モデルDB21にサンプルデータが格納された部品のどの部品に該当するかを識別する。
【0056】
測定データ23の基となる部品が、部材識別モデルDB21にサンプルデータが格納された部品のどの部品にも該当しない場合、すなわち測定データ23の基となる部品が3次元モデル作成の対象でない場合(ステップS24でNO)は、形状フィッティング部116は、測定データ23を記憶部15から削除する(ステップS26)。
【0057】
測定データ23の基となる部品が、部材識別モデルDB21にサンプルデータが格納された部品のどれかに該当する場合、すなわち測定データ23の基となる部品が3次元モデル作成の対象である場合(ステップS24でYES)は、形状フィッティング部116は、部品識別結果に基づいてフィッティングを行い、3次元モデルを生成する(ステップS28)。以下、ステップS28について、具体的に説明する。
【0058】
図8は、部品識別結果に基づいてフィッティングを行って、3次元モデルを生成する処理の流れを示すフローチャートである。
【0059】
形状フィッティング部116は、ステップS24で識別された、測定データ23の基となる部品の特徴を、形状フィッティングDB22から取得する。例えば、ステップS24において、測定データ23の基となる部品が足場と識別された場合には、形状フィッティング部116は、フィッティングデータ格納領域2202から「平面と円管との組み合わせ」という情報を取得する(ステップS280)。
【0060】
その後、形状フィッティング部116は、ステップS280で取得された情報に基づいて測定データ23をフィッティングする(ステップS282〜S288)。
図3に示すように、本実施の形態では、3次元モデルの基となる部品は、足場に限らず、平面と円管とを結合させることにより形成することができる。したがって、形状フィッティング部116は、以下に説明するように、平面、円筒を別々にフィッティングする。
【0061】
形状フィッティング部116は、測定データ23から平面成分の点群を抽出する(ステップS282)。形状フィッティング部116は、ステップS282で抽出した点群に対して平面フィッティングを行う(ステップS284)。
【0062】
次に、形状フィッティング部116は、測定データ23から平面成分の点群を除去する(ステップS286)。これにより、測定データ23の円筒面の成分のみが残るため、形状フィッティング部116は、ステップS286で平面成分の点群を除去した点群に円筒面をフィッティングする(ステップS288)。
一般的に、平面のフィッティングの方が処理が単純で、精度が比較的高い。また、一般的に、曲面に属する点群より平面に属する点群の方が多い。したがって、平面をフィッティングした後で、曲面のフィッティングを行うことが望ましい。
【0063】
図5の説明に戻る。測定データ23の基となる部品が、3次元設計データがある部品に分類された場合(ステップS22でYES)には、CADフィッティング部117は、3次元CADデータ24を用いて測定データ23をフィッティングする(ステップS30)。
【0064】
ステップS30の処理について一例を用いて説明する。CADフィッティング部117は、グラフマッチング部113でのマッチング結果、3次元CADデータ24と一致した部分については、3次元CADデータ24と同じ形状となるように、測定データ23のフィッティングを行う。ここでいう形状は、線、平面、曲面、円管等である。その後、CADフィッティング部117は、3次元CADデータ24と一致しなかった部分についてフィッティングを行う。このように、3次元CADデータ24を用いてフィッティングすることにより、他の部分に隠れてしまう等により測定データ23がない部分についても、フィッティングを行うことができる。
【0065】
CADフィッティング部117は、3次元CADデータ24を用いて、ステップS30で生成したフィッティング結果を修正し、3次元モデルを生成する(ステップS32)。具体的には、CADフィッティング部117は、3次元CADデータ24における規格情報を用いて、フィッティング結果を修正する。規格情報とは、例えば配管の径等の大きさに関する情報である。これにより、測定結果に基づく3次元モデルと設計データとの誤差を吸収し、高精度の3次元モデルを生成することができる。
【0066】
しかしながら、ステップS32では、位置のズレ等の規格に関しない部分については、フィッティング結果の修正を行わない。本実施の形態においては、あくまで計測された結果を再現することが重要であるためである。なお、3次元CADデータ24と、生成した3次元モデルとの位置のずれの大きさ等の情報(以下、差異情報という)を保持するようにしてもよい。
【0067】
制御部11は、このようにして生成された3次元モデル及び差異情報を、記憶部15に記憶する。出力部12は、必要に応じて、3次元CADデータ24、3次元モデル及び差異情報を表示装置25に出力する。
【0068】
[出力例1]
図9は、3次元モデル及び差異情報を出力した場合の表示装置25の表示例である。
図9に示すように、表示装置25には、3次元CADデータ24及び3次元モデルに基づいて、3次元CADデータ24を表示した画像251と、生成した3次元モデルの画像252が表示される。これにより、設計データと、実際の状態とを一目で比較することができる。
【0069】
また、表示装置25には、3次元CADデータ24が存在する部品を表示する表示領域253と、3次元CADデータが存在しない部品を表示する表示領域254とが表示される。これにより、3次元CADデータ24が存在するか否かを容易に確認することができる。
【0070】
さらに、表示装置25には、差異情報に基づいて、3次元CADデータ24が存在する部品について、3次元CADデータ24と位置が異なることを表示する表示領域255と、3次元CADデータ24と形状が異なることを表示する表示領域256が表示される。これにより、3次元モデルと3次元CADデータ24との差異について容易に把握することができる。
【0071】
なお、3次元CADデータ24と位置や形状が異なる場合には、生成した3次元モデルの画像252上でも差異が分かるような表示を行ってもよい。
図9においては、3次元モデルにあって、3次元CADデータ24に無い部分については、黒塗りで表示をしている。また、3次元CADデータ24と位置や形状が異なる部分については、網掛けをしている。
【0072】
なお、
図9は、3次元モデル及び差異情報を出力した場合の表示装置25の表示の一例であり、表示形態はこれに限定されない。
【0073】
[出力例2]
図10は、3次元モデルを出力した場合の表示装置25の表示例である。
図10に示すように、表示装置25には、生成した3次元モデルの画像252が表示される。これにより、3次元モデルを確認することができる。
【0074】
本実施の形態によれば、測定結果から自動的に3次元モデルを生成することができる。3次元CADデータがある場合には、3次元CADデータを参照して3次元モデルの生成を行うため、早く、高精度に3次元モデルを生成することができる。特に、規格のある形状等については、3次元CADデータに基づいて生成した3次元モデルを修正することにより、精度の高い3次元モデルを生成することができる。
【0075】
また、本実施の形態によれば、3次元CADデータがない場合には、サンプルデータを参照して部品を識別し、部品の特徴に基づいて3次元モデルを生成することにより、精度の高い3次元モデルを生成することができる。
【0076】
また、本実施の形態によれば、3次元モデルの生成の対象外である場合には、計測データを削除することで、ノイズをなくし、処理を高速化かつ高精度にすることができる。
【0077】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0078】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば修正機会とで設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することよりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0079】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報戦を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。