(58)【調査した分野】(Int.Cl.,DB名)
複数の点群について各点ごとに3次元の位置座標を保持した3次元点群データから、該3次元点群データで表されるオブジェクトの3次元モデルを生成する3次元モデル生成装置であって、
前記3次元点群データに基づいて前記3次元モデルを構成する3次元ポリゴンを生成するポリゴン生成部と、
前記3次元ポリゴンの生成に用いられ、該生成結果に影響を与える生成パラメータを設定する生成パラメータ設定部と、
前記生成パラメータを複数通りに変化させて前記ポリゴン生成部に前記3次元ポリゴンの生成を行わせる処理を経て、前記3次元ポリゴンの形状を決定するポリゴン形状決定部とを備え、
前記ポリゴン生成部は、前記3次元ポリゴンを複数通りの方法で生成可能であり、
前記ポリゴン形状決定部は、前記3次元点群データの特性に基づいて、前記3次元ポリゴンの生成方法を切り換える3次元モデル生成装置。
コンピュータによって、複数の点群について各点ごとに3次元の位置座標を保持した3次元点群データから、該3次元点群データで表されるオブジェクトの3次元モデルを生成する3次元モデル生成方法であって、
前記コンピュータが実行するステップとして、
前記3次元点群データに基づいて前記3次元モデルを構成する3次元ポリゴンを生成するポリゴン生成ステップと、
前記3次元ポリゴンの生成に用いられ、該生成結果に影響を与える生成パラメータを設定する生成パラメータ設定ステップと、
前記生成パラメータを複数通りに変化させて前記ポリゴン生成ステップに前記3次元ポリゴンの生成を行わせる処理を経て、前記3次元ポリゴンの形状を決定するポリゴン形状決定ステップとを備え、
前記ポリゴン生成ステップは、前記3次元ポリゴンを複数通りの方法で生成可能であり、
前記ポリゴン形状決定ステップは、前記3次元点群データの特性に基づいて、前記3次元ポリゴンの生成方法を切り換える3次元モデル生成方法。
複数の点群について各点ごとに3次元の位置座標を保持した3次元点群データから、該3次元点群データで表されるオブジェクトの3次元モデルを生成する機能をコンピュータに実現させるためのコンピュータプログラムであって、
前記3次元点群データに基づいて前記3次元モデルを構成する3次元ポリゴンを生成するポリゴン生成機能と、
前記3次元ポリゴンの生成に用いられ、該生成結果に影響を与える生成パラメータを設定する生成パラメータ設定機能と、
前記生成パラメータを複数通りに変化させて前記ポリゴン生成機能に前記3次元ポリゴンの生成を行わせる処理を経て、前記3次元ポリゴンの形状を決定するポリゴン形状決定機能とをコンピュータによって実現させ、
前記ポリゴン生成機能は、前記3次元ポリゴンを複数通りの方法で生成可能であり、
前記ポリゴン形状決定機能は、前記3次元点群データの特性に基づいて、前記3次元ポリゴンの生成方法を切り換える機能であるコンピュータプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、3次元復元に用いられる3次元点群データは、その密度や精度は必ずしも均一とは限らない。複数の地物を含む3次元点群データにおいては、地物ごとに密度や精度が異なることもある。また、一つの地物を表す3次元点群データにおいても、局所的に密度や精度が異なることがある。従来技術では、3次元点群データを良好に復元した3次元モデルが生成できる場合もあれば、不良となる場合もあるというように、3次元点群データの不均一性に基づいて、3次元モデルの生成結果が不安定となることがあった。かかる課題は、地物に限らず、広汎なオブジェクトについて共通の課題であった。本発明は、3次元点群データの不均一性に関わらず、3次元点群データを良好に復元した3次元モデルを安定して生成可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明は、
複数の点群について各点ごとに3次元の位置座標を保持した3次元点群データから、該3次元点群データで表されるオブジェクトの3次元モデルを生成する3次元モデル生成装置であって、
前記3次元点群データに基づいて前記3次元モデルを構成する3次元ポリゴンを生成するポリゴン生成部と、
前記3次元ポリゴンの生成に用いられ、該生成結果に影響を与える生成パラメータを設定する生成パラメータ設定部と、
前記生成パラメータを複数通りに変化させて前記ポリゴン生成部に前記3次元ポリゴンの生成を行わせる処理を経て、前記3次元ポリゴンの形状を決定するポリゴン形状決定部とを備える構成とすることができる。
【0006】
本明細書において、3次元ポリゴンは、3次元モデルを構成する面を意味する。3次元モデルは、オブジェクトを表す1または複数の3次元ポリゴンの集合を意味する。オブジェクトとしては、3次元地図を構成する地物の場合もあれば、建物内の壁、柱などの構造物、ロッカー、机などの物体など種々の対象物が挙げられる。また、3次元点群データは、単一のオブジェクトを表すものであってもよいし、複数のオブジェクトを包含するものであってもよい。
【0007】
3次元ポリゴンを生成する際には、種々の生成パラメータが用いられる。3次元点群データを良好に復元する3次元モデルを生成するためには、この生成パラメータを3次元点群データに応じて適正に設定することが重要となる。
本発明によれば、生成パラメータを複数通りに変化させて3次元ポリゴンの生成を行わせるため、これによって3次元ポリゴンの生成結果も変化する。本発明によれば、この中から、最良のものを選択することができ、3次元点群データを良好に反映した3次元モデルを安定して得ることができる。
生成パラメータは、3次元ポリゴンの生成方法に応じて定めることができる。生成パラメータとしては、例えば、3次元点群データが生成された3次元ポリゴンに属するか否かを判定するための距離閾値、当該距離閾値の限界値、3次元点群データと3次元ポリゴンとのずれが良好か否かの判断基準となる形状一致率閾値、3次元ポリゴンを生成する根拠となる程の3次元点群データが確保されているか否かの判断基準となる頂点数閾値、形状一致率を算出するための角度閾値などが挙げられる。生成パラメータは、これらに限定されるものではなく、また、これらの一部または全部の生成パラメータを用いなくてはならないというものでもない。
生成パラメータを複数通りに変化させる方法も、種々の方法をとり得る。例えば、予め所定の定数を設定しておき、生成パラメータに対して、この定数を用いた演算を行って変化させてもよい。かかる方法では、生成パラメータを比較的容易に変化させることができる利点がある。また、生成パラメータの変化が予測可能であるため、生成パラメータが異常値となることを回避しやすい利点もある。
また、3次元点群データと生成された3次元ポリゴンとのずれなど、生成結果を評価した評価値を用いた演算によって生成パラメータを変化させてもよい。こうすれば、最適な生成パラメータに収束させやすい利点がある。
【0008】
本発明においては、
前記ポリゴン形状決定部は、前記生成された3次元ポリゴンを評価し、該評価の結果が所定の基準を満たさないときに前記生成パラメータを変化させた上で前記3次元ポリゴンの再生成を行わせるものとしてもよい。
【0009】
かかる態様によれば、所定の基準を満たす3次元ポリゴンが得られるまで処理を繰り返すことになるため、安定的に良好な結果が得られる利点がある。また、所定の基準を満たす3次元ポリゴンが早期に得られた場合には、早期に処理を終了することができ、無用な処理負荷がかかることを抑制できる利点もある。
本発明において、生成パラメータを変化させる方法は、上述の態様に限らず、他の態様をとってもよい。例えば、生成パラメータを複数通りに変化させて3次元ポリゴンを生成し、その中から評価が最良のもの、または所定の基準を満たすものを選択する方法をとってもよい。かかる方法によれば、比較的処理が簡略化できる利点があり、所定の基準を満たす3次元ポリゴンがなかなか得られない場合に、何度も処理が繰り返され、処理時間が長期化することを抑制できる利点もある。
なお、上述のいずれの態様においても、評価における「所定の基準」としても、種々の基準を用いることができる。例えば、3次元点群データと生成された3次元ポリゴンとの形状一致率を評価の指標としてもよい。生成された3次元ポリゴンが3次元点群データを、いかに良好に復元しているかを、画像処理や人工知能を用いて評価させてもよい。
【0010】
本発明においては、
前記ポリゴン形状決定部は、前記3次元ポリゴンの形状が決定された場合、前記3次元点群データから該3次元ポリゴンに対応するものを除外し、残余の3次元点群データを対象として再度、前記3次元ポリゴンの形状を決定する処理を実行するものとしてもよい。
【0011】
3次元点群データの密度や精度など生成パラメータに影響を与えうる特性が局所的に異なる場合、良好な3次元ポリゴンを得るための生成パラメータも、3次元点群データの部位に応じて変化させる必要がある。上記態様によれば、良好な3次元ポリゴンが得られた3次元点群データを除去しながら3次元ポリゴンを生成するため、3次元点群データの部分ごとに生成パラメータを変化させることが可能となり、それぞれ良好な3次元ポリゴンを生成することが可能となる。
なお、上記態様においては、3次元点群データを除去することにより、徐々に3次元点群データの数が減少することになる。従って、残余の3次元点群データの数が所定値を下回った場合には、処理を停止するようにしてもよい。こうすることにより、3次元ポリゴンを定義できない程の小数の3次元点群データしか残っていない状況下で、無駄に処理が繰り返されることを回避できる利点がある。また、処理を停止するための判断に用いられる所定値は、3次元点群データの当初の密度、精度、対象とするオブジェクトのサイズなど種々の要素に基づいて設定するようにしてもよく、また、所定の過程で変更可能としてもよい。
【0012】
本発明においては、
前記3次元ポリゴン形状決定部は、生成された前記3次元ポリゴンと前記3次元点群データとのずれを表す形状一致率に基づいて、前記3次元ポリゴンの形状を決定するものとしてもよい。
【0013】
こうすることにより、3次元点群データと3次元ポリゴンとの一致性を客観的に評価できる利点がある。形状一致率の算出は、種々の方法をとり得る。その例は後述する。
【0014】
本発明においては、
前記ポリゴン生成部は、前記3次元ポリゴンを複数通りの方法で生成可能であり、
前記ポリゴン形状決定部は、前記3次元点群データの特性に基づいて、前記3次元ポリゴンの生成方法を切り換えるものとしてもよい。
【0015】
こうすることにより、3次元点群データの特性に応じた生成方法を用いることが可能となり、より良好な3次元ポリゴンを得ることが可能となる。
複数通りの方法としては、特許文献1、2に記載されている方法その他の従来技術における方法、プリミティブを用いる方法、人工知能を利用する方法など種々の方法が挙げられる。また、同一の方法の中で、生成に用いる判断基準を異ならせるものとしてもよい。
【0016】
上述の通り、複数通りの方法で3次元ポリゴンを生成する場合、
前記ポリゴン生成部による前記3次元ポリゴンの生成には、予め用意された3次元のプリミティブを前記3次元点群データに適合させる方法を含むものとしてもよい。
【0017】
こうすることにより、比較的容易にポリゴンを生成することが可能となる。3次元点群データに適合させるようプリミティブを配置し、その形状を変化させる方法は、公知の種々の方法を用いることができる。
上記態様では、予めプリミティブを用意しておくことになる。3次元モデルの生成時には、かかるプリミティブからいずれかを選択することになる。この選択は、例えば、予め用意された全プリミティブを3次元点群データに適合させる処理を行った上で、その適合率が最大となるように選択してもよい。また、3次元点群データを包含する領域のサイズに基づいて、プリミティブを絞り込むようにしてもよい。さらに、3次元点群データを平面に投影することにより概略の平面形状を特定し、それに平面形状が近似するプリミティブを選択するようにしてもよい。
【0018】
3次元のプリミティブを用いる場合には、
前記3次元ポリゴン生成部は、3次元ポリゴンと3次元点群データとの形状一致率が高くなるように前記プリミティブの適合を行う方法、および生成されるべき3次元ポリゴンのサイズが大きいものを優先して前記プリミティブの適合を行う方法を含むものとしてもよい。
【0019】
この態様では、3次元のプリミティブを用いるという点では共通の方法であるが、3次元ポリゴンを生成する際に用いる判断基準が、形状一致率を優先するか、3次元ポリゴンのサイズを優先するかで異なる2つの方法を使い分けることになる。こうすることで、プリミティブを用いて比較的簡易な処理によって3次元ポリゴンを生成できるという利点を活かしつつ、3次元点群データの特性に応じた生成を実現することができる。
一例として、建物のようなサイズの大きい3次元点群を対象とする場合には、3次元ポリゴンのサイズを優先するようにしてもよい。かかる場合には、3次元点群と3次元ポリゴンとのずれは、全体の比率で見れば相対的に小さなものと評価されるから、3次元ポリゴンのサイズを優先することにより、良好な結果を得やすくなる。もっとも、この場合であっても、形状一致率を考慮することが、より好ましいことは当然である。
一方、建物の一部や、建物以外の物体など、比較的サイズの小さい3次元点群を対象とする場合には、形状一致率を優先する方法をとることにより、良好な結果を得ることができる。
【0020】
上記種々の態様において、形状一致率を評価の基準として用いる例を示した。形状一致率は、3次元点群データと3次元ポリゴンとのずれを表す指標であり、種々の定義が可能である。単純に、両者の距離の2乗平均などを指標として用いることもできる。また、両者の距離の絶対値の分布を示す統計値、例えば、平均値、中央値、標準偏差などを指標として用いてもよい。
【0021】
また、別の態様として、
前記3次元点群データは、各点ごとに、3次元の位置座標に加えて法線ベクトルのデータを保持している場合には、
前記形状一致率は、前記3次元点群データおよび前記3次元ポリゴンとの距離、および前記3次元点群データの法線ベクトルと前記3次元ポリゴンの法線ベクトルのなす角度の2つを用いて算出されるものとしてもよい。
【0022】
3次元点群データが有する法線ベクトルとは、3次元点群データを取得する際に、各点が属すると判断される面の法線ベクトルを意味する。例えば、SIFT(Scale-Invariant Feature Transform)によって得られる3次元点群データは、3次元座標の他、この法線ベクトルが取得されることが知られている。
上記態様によれば、3次元点群データと3次元ポリゴンとの距離のみならず、法線ベクトルのなす角度も考慮するため、形状一致率の評価において、対象とする3次元ポリゴンに属さない3次元点群データを除外することができ、より適切な評価結果を算出することが可能となる。
【0023】
本発明は、上述した特徴を必ずしも全てを備えている必要はなく、適宜、その一部を省略したり、組み合わせたりしてもよい。上述した3次元モデルの生成をコンピュータによって実行する3次元モデル生成方法として構成してもよいし、かかる方法をコンピュータに行わせるためのコンピュータプログラムとして構成してもよい。さらに、かかるコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体として構成してもよい。
【発明を実施するための形態】
【0025】
以下、本発明の実施例について、建物を表す3次元点群データに対し、プリミティブを用いて3次元モデルを生成するための装置を例示する。以下の本発明は、建物以外のオブジェクトを対象とする場合にも適用可能である。また、3次元モデルの生成は、プリミティブを用いる方法に限られるものでもない。
【0026】
図1は、3次元モデル生成装置10の構成を示す説明図である。本実施例では、コンピュータに、図示する各機能を実現するためのコンピュータプログラムをインストールすることによって、ソフトウェア的に構成した。各機能の一部または全部をハードウェア的に構成しても差し支えない。また、本実施例では、スタンドアロンで稼働する装置として例示するが、複数のコンピュータまたはサーバをネットワークで接続することで構成してもよい。
【0027】
以下、図中の各機能について説明する。
3次元点群データ記憶部11は、3次元点群データを読み込み、記憶する機能を奏する。3次元点群データは、処理対象となる建物の外観形状を表す3次元の点の集合体であり、各点ごとに3次元の座標値および法線ベクトルを有するデータである。3次元点群データは、SIFT(Scale-Invariant Feature Transform)を利用することによって得ることができる。その他、レーザなどを利用して生成した3次元点群データを用いても良い。
【0028】
3次元モデル生成部12は、3次元点群データに基づいて建物を表す3次元モデルを生成する。本実施例における3次元モデルの概略の生成過程は、次の通りである。まず、3次元点群データに対してプリミティブを配置し、その形状を適合させることにより3次元ポリゴンを生成する。そして、得られた3次元ポリゴンを評価し、所定の基準を満たさない場合には、生成パラメータを変更して、再度、3次元モデルを生成する。これを繰り返すことによって、良好な3次元ポリゴンが得られると、得られた3次元ポリゴンに対応する3次元点群データは、処理対象から除外する。そして、残った3次元点群データを対象として、同様の処理を繰り返す。こうすることで、3次元点群データ全体に対して3次元ポリゴンを生成し、その集合体として建物に対する3次元モデルを得るのである。本実施例では、こうして得られた3次元モデルを再度評価し、良好と言えない場合には、改めて生成パラメータを変更して処理を実行する。
3次元モデル生成部12は、以上の処理を、以下に示す各機能を利用して実行するのである。
【0029】
プリミティブデータベース15は、3次元モデルの生成に用いられる3次元のプリミティブを予め格納するデータベースである。本実施例では、ビルや家屋などを表す代表的な形状の3次元ポリゴンをプリミティブとして用意した。
プリミティブ配置部14は、本発明におけるポリゴン生成部に該当する機能であり、プリミティブを3次元点群データに合わせて配置し、その形状を適合させる機能を奏する。この処理によって、3次元ポリゴンが生成されることになる。
【0030】
ポリゴン形状決定部13は、プリミティブ配置部14で得られた3次元ポリゴンを評価する。3次元ポリゴンが、所定の基準を満たさない場合には、生成パラメータを変更して、再度、プリミティブ配置部14に、3次元モデルを生成させる。また、良好な3次元ポリゴンが得られた場合には、それに対応する3次元点群データを除去し、残余の3次元点群データを対象として、プリミティブ配置部14に、3次元モデルを生成させる。
【0031】
3次元ポリゴン記憶部16は、以上の過程において得られる3次元ポリゴンを逐次記憶する。
生成パラメータ設定部17は、以上の処理で用いられる生成パラメータの初期設定を行い、また、生成パラメータの変更を行う。
形状一致率算出部18は、得られた3次元ポリゴンを評価するための指標として形状一致率を算出する。
【0032】
以下、本実施例における3次元モデルの生成処理について具体的に説明する。以下の各処理は、
図1に示した各機能によって実現されるものであり、ハードウェア的には、3次元モデル生成装置10によって実行される処理である。
【0033】
図2は、3次元モデル生成処理のフローチャートである。主として3次元ポリゴン生成部12に対応する処理である。
処理を開始すると、3次元モデル生成装置10は、生成パラメータの初期化を行う(ステップS10)。そして、ポリゴン化の対象となる3次元点群を設定する(ステップS11)。本実施例では、複数の建物に対する3次元点群データが含まれているため、建物単位で処理対象となる3次元点群データを設定するものとした。設定方法は、例えば、3次元点群データを地平面に投影し、その密度が所定値以上となる領域をクラスタ化する方法、または点間の距離が所定値以下となる点群をクラスタ化する方法などをとることができる。
【0034】
そして、3次元モデル生成装置10は、ポリゴン化処理を実行する(ステップS12)。処理対象の3次元点群データに対して3次元ポリゴンを生成する処理である。処理の詳細については後述する。ポリゴン化処理によって、処理対象となった3次元点群データで表される建物の3次元モデルが得られることになる。
ポリゴン化処理が完了すると、3次元モデル生成装置10は、ポリゴン化の評価処理を行う(ステップS13)。ポリゴン化の評価処理は、種々の方法で行うことができる。例えば、3次元点群データと3次元ポリゴンとの形状一致率に基づいて評価を行ってもよい。また、人工知能や画像処理を利用して、3次元点群データがどれほど良好に復元されているかを評価してもよい。本実施例では、形状一致率に基づく評価を行うものとした。形状一致率の算出方法は、後述する。
【0035】
評価結果がOKの場合、即ち、形状一致率が所定値以上の場合には、ポリゴン化の結果を反映させる(ステップS15)、即ち、得られた3次元ポリゴンを格納し、これに対応する3次元点群データは、処理済みと扱うことになる。そして、未処理の3次元点群データが残っている場合には、まだ終了に至っていないと判断し(ステップS17)、以上の処理を繰り返す。3次元点群データが3次元ポリゴンを生成できるほど、残っていない場合には、3次元モデル生成処理を終了する。
一方、形状一致率が所定値に満たず、評価脚気がNGの場合には、生成パラメータを再設定して(ステップS16)、以上の処理を繰り返すことになる。
【0036】
なお、後述する通り、本実施例では、3次元ポリゴンの生成過程において、形状一致率により、結果の適否を判断する。また、その結果に応じて、生成パラメータの再設定も行う。従って、上述のステップS13〜S16の処理は省略しても差し支えない。
ただし、ステップS13〜S16を行い、3次元ポリゴンの生成過程とは異なる評価を行うことにより、さらに良好な3次元モデルを得ることが可能となる。例えば、3次元モデル全体を対象として形状一致率を算出することにより、3次元モデルを構成する3次元ポリゴンごとに得られていた形状一致率とは異なる値が得られることになる。また、3次元モデルを構成する3次元ポリゴンごとに形状一致率を算出した上で、形状一致率のばらつきなどを評価に加えてもよい。これらの処理を行うことにより、それぞれの3次元ポリゴンの生成結果の適否だけでなく、全体としてのバランス等が良好な3次元モデルを得ることが可能となる。
【0037】
生成パラメータの再設定(ステップS16)についても、同様である。本実施例では、後述する通り、3次元ポリゴンを生成する際にも、生成パラメータの再設定を行っている。具体的には、距離閾値という生成パラメータに対して所定の係数を乗じることにより変更しているのである。従って、ステップS16では、これとは異なる方法で、生成パラメータの再設定を行うことが好ましい。例えば、距離閾値とは異なる生成パラメータを再設定したり、係数を乗じる以外の方法によって生成パラメータを再設定する方法が考えられる。
【0038】
次に、ポリゴン化処理について説明する。この処理は、3次元モデル生成処理(
図2のステップS12)に相当する処理である。主として
図1の3次元モデル生成部12が実行する処理となる。
図3は、ポリゴン化処理のフローチャートである。処理を開始すると、3次元モデル生成装置10は、所定対象となる3次元点群データおよびプリミティブデータを読み込む(ステップS20、S21)。
【0039】
そして、入力した点群データの密度に基づいて、生成パラメータの初期値を設定する(ステップS22)。図中に本実施例で用いる生成パラメータを示した。
距離閾値(Thd)は、3次元ポリゴンに対応する3次元点群データを抽出するために使用されるパラメータである。距離閾値が大きい場合は、抽出範囲が広くなるため、3次元点群データに、ノイズや誤差が含まれている場合でも適切な抽出が可能となる。一方、距離閾値が小さい場合は、抽出範囲が狭くなるため、3次元ポリゴンに、よりフィットした点を抽出可能となる。
距離閾値の限界値(Thlim)は、距離閾値を再設定する際に、距離閾値が正常値であるかの判定に使用されるパラメータである。即ち、距離閾値が距離閾値の限界値の範囲内の場合は正常値と判定され、そうでない場合は不正値と判定されることになる。
距離閾値の変更倍率(VThd)は、距離閾値の再設定に用いられるパラメータである。
形状一致率閾値(Thf)は、3次元ポリゴンと3次元点群データの形状が一致しているかの判定に使用されるパラメータである。即ち、形状一致率が、形状一致率閾値より大きい場合は、3次元ポリゴンと3次元点群データの一致率は良好であると判定され、そうでない場合は、一致率は良好ではないと判定されることになる。
頂点数閾値(Thp)は、ポリゴン化できるだけの3次元点群データが残っているか否かの判定に使用されるパラメータである。即ち、3次元点群データの頂点数が閾値より大きい場合は、3次元ポリゴンの生成が可能であると判定され、そうでない場合には、3次元ポリゴンの生成ができないものと判定される。
角度閾値(Tha)は、形状一致率の算出において使用されるパラメータである。即ち、3次元点群データの法線ベクトルと3次元ポリゴンの法線ベクトルのなす角が角度閾値未満である場合は、その点は、3次元ポリゴンに属する頂点の1つとして判定され、そうでない場合には、3次元ポリゴンに属さない頂点であると判定される。
生成パラメータは、これら以外を用いてもよい。また、これらの生成パラメータを必ずしも全て用いる必要もない。3次元ポリゴンの生成方法に応じて、生成パラメータの種類も適宜、決めることができる。
【0040】
以上の前処理が完了すると、3次元モデル生成装置10は、ポリゴン形状生成処理を実行する(ステップS23)。
【0041】
図4は、ポリゴン形状決定処理のフローチャートである。
図3のステップS23に相当する処理である。また、主として
図1のポリゴン形状決定部13が実行する処理である。
処理を開始すると3次元モデル生成装置10は、プリミティブ配置処理を実行する(ステップS30)。これは、予め用意されたプリミティブを、3次元点群データに合わせるように配置し、その形状を変形させて適合させる処理である。処理の内容は後述する。プリミティブ配置処理では、生成された3次元ポリゴンと、その形状一致率が出力される。
【0042】
次に、3次元モデル生成装置10は、形状一致率と形状一致率閾値Thfの比較により、生成された3次元ポリゴンが良好か否かを判断する。形状一致率が形状一致率閾値Thfよりも大きい場合には(ステップS31)、3次元ポリゴンが良好であると判断し、プリミティブ配置処理の結果を格納する(ステップS32)。また、3次元点群データから、生成された3次元ポリゴンを構成する点群を、処理済みのものとして除去する(ステップS33)。こうして、残った点数が頂点数閾値Thpよりも大きい場合には、まださらに3次元ポリゴンの生成を行うべきと判断し、再帰的に、ポリゴン形状決定処理を実行する(ステップS37)。
【0043】
また、形状一致率が形状一致率閾値Thf以下である場合(ステップS31)、3次元ポリゴン生成装置10は、生成された3次元ポリゴンが良好ではないと判断し、生成パラメータの一つである距離閾値Thdを再設定する(ステップS35)。距離閾値Thd以外の生成パラメータについても再設定の対象としてもよい。距離閾値Thdの再設定は、従前の距離閾値Thd×距離閾値の変更倍率(VThd)によって行われる。再設定は、他の演算によって行っても良い。また、形状一致率に応じて距離閾値の変更倍率(VThd)を変更してもよい。
3次元モデル生成装置10は、再設定された距離閾値Thdが距離閾値の限界値(Thlim)よりも小さい場合には、距離閾値Thdが正常値であると判断し(ステップS36)、ポリゴン形状決定処理を再帰的に実行する(ステップS37)。これによって、新たな生成パラメータに基づいて、再度、3次元ポリゴンが生成されることになる。一方、距離閾値Thdが距離閾値の限界値(Thlim)以上の場合には、距離閾値Thdが不正常値であると判断し(ステップS36)、ポリゴン形状決定処理を終了する。
【0044】
ポリゴン形状決定処理では、上述の通り、3次元ポリゴンの生成が良好に行われなかった場合には、生成パラメータを再設定して、再度、3次元ポリゴンを生成する。この処理を繰り返し実行することにより、良好な3次元ポリゴンが生成されることになる。
また、良好な3次元ポリゴンが生成された場合には、それに対応する3次元点群を除去した上で、残余の3次元点群に対する3次元ポリゴンの生成が引き続き行われる。こうすることにより、3次元点群に対して、部分ごとに3次元ポリゴンを生成することができる。また、その際に、用いる生成パラメータは、部分ごとに異なる設定値を用いることが可能となる。従って、3次元点群の密度や精度が局所的に偏っている場合であっても、それぞれの部分で良好な3次元ポリゴンを得ることが可能となる。
【0045】
次に、プリミティブ配置処理について説明する。これは、ポリゴン形状決定処理(
図4)のステップS30に対応する処理である。主として、
図1のプリミティブ配置部14によって実行される処理である。
図5は、プリミティブ配置処理(1)のフローチャートである。処理を開始すると、3次元モデル生成装置10は、プリミティブデータベース15から、プリミティブを読み出し、3次元点群データの形状にマッチングさせる(ステップS40)。具体的には、3次元点群データに重なるよう、プリミティブを配置し、さらに、その形状を変形させるのである。本実施例では、プリミティブを3次元のx、y、z方向に伸縮することで変形するものとした。プリミティブをマッチングさせる方法は、公知の種々の方法を適用可能である。
【0046】
次に、3次元モデル生成装置10は、3次元点群データの各点について、プリミティブの各面との最近傍距離を算出し、最近傍距離が距離閾値Thdよりも小さくなる点を抽出する(ステップS41)。最近傍距離とは、点から3次元ポリゴンの各面までの距離の最小値を言う。そして、最近傍距離が距離閾値Thdよりも小さい点は、その3次元ポリゴンに属する3次元点群であると考えられる。つまり、ステップS41の処理は、生成された3次元ポリゴンについて、各面に属すると判定される3次元点群を抽出する処理ということになる。
【0047】
3次元モデル生成装置10は、抽出した点群の数が、頂点数閾値(Thp)よりも大きい場合には(ステップS42)、ポリゴン化できるだけの3次元点群データに基づいて3次元ポリゴンが生成されたものと判断し、ポリゴン決定、形状一致率算出処理を実行する(ステップS43)。ポリゴン決定とは、抽出された点群に一致するようプリミティブのポリゴンを決定する処理である。点群を抽出する際に用いられる距離閾値Thdが大きい値の場合には、本来は同一のポリゴンを構成しない点が抽出される可能性もある。従って、抽出された全点群に一致するポリゴンを決定することはできない。ポリゴン決定の処理では、抽出された点群との誤差を許容しつつ、できる限り多くの点群に一致するようにプリミティブを変形させることによってポリゴンを決定することになる。形状一致率算出処理は、3次元点群データと3次元ポリゴンとの形状一致率を算出する処理である。その内容については後述する。抽出した点群の数が、頂点数閾値(Thp)以下である場合には(ステップS42)、3次元ポリゴンの生成を行えるほどの3次元点群データが利用されていないと判断し、形状一致率算出処理(ステップS43)をスキップする。この場合は、そもそもプリミティブの選択が不適切であったことになる。
【0048】
以上の処理によって、不適切なプリミティブが用いられた場合を除き、プリミティブを用いて生成された3次元ポリゴンに対して形状一致率が得られる。3次元モデル生成装置10は、以上の処理を全プリミティブについて繰り返し実行する(ステップS44)。そして、得られた結果の中から、形状一致率が最大となるプリミティブを選択する(ステップS45)。ここで言うプリミティブとは、3次元点群データにマッチングを行った後の状態を意味する。
【0049】
本実施例では、上述の通り、予め用意されている全プリミティブについてプリミティブ配置処理を行うものとした。これに対し、処理対象となるプリミティブを絞り込んでも良い。例えば、3次元点群データが、ビルに対するものであれば、ビルを表す直方体などのプリミティブを利用するようにしてもよい。この選択は、プリミティブに、予め「ビル」などの属性を設定しておき、これに基づいてオペレータが選択、絞り込みを行うようにしてもよい。また、3次元点群データを平面に投影し、投影された点群と一致する平面形状を有するプリミティブを選択するようにしてもよい。このように予め絞り込むことにより、プリミティブ配置処理の負荷を軽減することができる。
【0050】
図6は、プリミティブ配置処理(2)のフローチャートである。
図5で説明した処理の変形例に相当する。変形例におけるプリミティブ配置処理(
図6)のステップS50〜ステップS54は、
図5のステップS40〜S44の処理と同一である。
プリミティブ配置処理(2)では、全プリミティブについて3次元ポリゴンの生成が完了すると、3次元モデル生成装置10は、2つの条件に基づいて、プリミティブを選択する。条件1としては、形状一致率が形状一致率閾値(Thf)よりも大きいことである。この条件を入れることにより、3次元点群データとあまりにも形状が離れているプリミティブは排除されることになる。そして、条件2は、スケール最大という条件である。即ち、プリミティブの中から、サイズが最も大きいものを選択するのである。プリミティブ配置処理(1)(
図5)では、形状一致率が最大という条件により、3次元点群データと一致していることを優先してプリミティブを選択した。これに対し、プリミティブ配置処理(2)では、スケール最大、即ち、形状一致率が多少低いとしても、より大きいプリミティブであることを優先して選択を行うのである。
【0051】
以上の2つのプリミティブ配置処理の特徴について説明する。
プリミティブ配置処理(1)は形状一致率が最大となるプリミティブを選択するため、3次元点群データによく一致した3次元ポリゴンが生成される特徴がある。従って、3次元点群データの精度が十分に高いと判断される場合には、良好な3次元ポリゴンが得られることになる。一方、3次元点群データの精度が低い場合には、かかる3次元点群データに一致させることにより、かえって、本来再現されるべき形状から外れた3次元ポリゴンが生成されるおそれがある。従って、プリミティブ配置処理(1)は、精度が良いと考えられる3次元点群データに用いられることが好ましい処理であると言える。
これに対し、プリミティブ配置処理(2)は、形状一致率よりもスケールを優先し、スケール最大のプリミティブを選択する。上述の通り、3次元点群データにノイズが含まれていたり、その精度が低い場合には、形状一致率を重視することはかえって好ましくない結果を招くことになる。また、3次元点群データのノイズや精度の低さの影響は、プリミティブのスケールが大きいほど、相対的に小さくなる。従って、プリミティブ配置処理(2)は、ノイズが含まれていたり、精度が低い3次元点群データに基づいて3次元ポリゴンを生成する際に適した処理であると言える。しかも、プリミティブ配置処理(2)は、形状一致率が形状一致率閾値(Thf)よりも大きいことを条件としているため、3次元点群データと全く形状の異なる3次元ポリゴンの生成は回避することができる利点もある。
【0052】
ポリゴン形状決定処理(
図4)のステップS30においては、上述したプリミティブ配置処理(1)(
図5)、およびプリミティブ配置処理(2)(
図6)のいずれか一方を用いるものとしてもよいし、両者を3次元点群データの特性に応じて使い分けるものとしてもよい。使い分けは、例えば、オペレータが選択するようにしてもよいが、3次元点群データのノイズや精度に応じて、自動的に判断するものとしてもよい。例えば、3次元点群データと各面との最近傍距離の分布を求め、その最大値、ばらつきなどに基づいて、3次元点群データの精度を評価し、これに基づいて、2つの処理の一方を選択するようにしてもよい。
また、本実施例では、生成された3次元ポリゴンに対応する3次元点群データは順次、除去されていくため(
図4)、残余の3次元点群データの精度も順次、変わっていくことになる。従って、例えば、ポリゴン形状決定処理の開始当初は、プリミティブ配置処理(2)によってスケールの大きいプリミティブを用いる処理を行い、ある程度、3次元点群データが除去された後は、プリミティブ配置処理(1)によって形状一致率が高いプリミティブを用いる処理を行うというように、途中で処理を切り換えるようにしても構わない。
【0053】
図7は、形状一致率算出処理のフローチャートである。形状一致率は、ポリゴンの評価(
図2のステップS13)、ポリゴン形状決定処理(
図4のステップS31)、プリミティブの選択(
図5のステップS45、S55)などで、生成されたポリゴンの評価に用いられる値である。形状一致率算出処理は、プリミティブ配置処理(1)(
図5のステップS43)、プリミティブ配置処理(2)(
図6のステップS53)に相当する処理である。主として、
図1の形状一致率算出部18によって実行される処理である。
【0054】
処理を開始すると、3次元モデル生成装置10は、3次元点群データの中の一点を選択する(ステップS60)。また、選択された点の最近傍距離となるポリゴンを選択する(ステップS61)。
そして、選択された点およびポリゴンの法線ベクトルのなす角度ANGを算出する(ステップS62)。
以上の処理を、対象となる3次元点群データの全てについて完了するまで繰り返す(ステップS63)。
【0055】
3次元モデル生成装置10は、以上の結果に基づいて、次式により、形状一致率を算出する(ステップS64)。
形状一致率=N/Ntotal
ここで、Nは、なす角度ANG<角度閾値Thaとなる点の数である。つまり、Nは、ポリゴンに属すると判断される点の数を表している。
Ntotalは、対象となる3次元点群の全点数である。
つまり、以上の処理により、形状一致率は、3次元点群データのうち、3次元ポリゴンに属すると判断される点の割合を算出していることになる。形状一致率は、かかる定義に限らず、他にも種々の定義をとることが可能である。
【0056】
次に具体的な処理例を示す。
図8及び
図9は、3次元モデル生成例を示す説明図である。
図8(a)には、処理前の3次元点群を示した。図示する点群は、ビルを構成するものである。このビルは、概略、本体部分D1と、屋上にある若干平たい構造体D2と、さらにその上にある構造体D3を重ねた形状をなしている。
本実施例の3次元モデル生成処理を実行すると、まず、ビルの本体に近い直方体のプリミティブが用いられ、
図8(b)に示すように、マッチングされる。この状態では、プリミティブP1は、本体D1とは比較的良好にマッチングしているものの、構造体D2、D3とはマッチングしていない状態である。このときは、距離閾値Thdを3mとした。この結果、ポリゴンを構成する点群として、本体D1に属する点群のみならず、構造体D2、D3に属する点群も抽出されているのである。そして、これらの点群にできる限り一致させるようにプリミティブP1の各ポリゴンが決定されるため、プリミティブP1の高さは、構造体D2、D3を含むほど高く設定されることになる。このように構造体D2、D3とはマッチングしていないため、プリミティブP1の形状一致率は比較的低い値となる。
そこで、ポリゴン形状決定処理(
図4のステップS35)にあるように、距離閾値Thdを再設定して、再度、プリミティブ配置処理を行うことになる。
図8の例では、距離閾値Thdを2mに再設定した。この結果が、
図8(c)に示すプリミティブP2である。距離閾値Thdを再設定することにより、
図8(b)の時とは異なり、ポリゴンを構成する点群として本体D1に属する点群のみが抽出され、構造体D2、D3に属する点群は抽出されなくなる。この結果、本体部分D1に良好にマッチングしたプリミティブが得られる。このプリミティブの各面が、本体部分を構成する3次元ポリゴンとなる。
【0057】
良好な3次元ポリゴンが得られると、ポリゴン形状決定処理(
図4)のステップS33に示した通り、得られたポリゴンに対応する3次元点群データを処理済みのものとして除去する。つまり、本体部分D1の3次元点群データを除去し、構造体D2、D3の3次元点群データが残ることになる。
次に、構造体D2、D3を対象として、プリミティブ配置処理を実行すると、
図9(d)に示すプリミティブP3が得られる。距離閾値Thdは、
図8(c)のときと同じ値であり、この例では、2mのままであるが、改めて3mから開始するようにしても良い。距離閾値Thdが大きい状態では、構造体D2、D3に属する点群が抽出され、これに基づいてプリミティブP3が決定されることになる。従って、
図9(d)に示される通り、プリミティブP3は、構造体D2、D3との形状一致率が低い。
そこで、再度、距離閾値Thdを再設定する。この例では、距離閾値Thdを1mとした。このように距離閾値Thdを再設定して、再度、プリミティブ配置処理を実行すると、
図9(e)に示すように、構造体D2に良好に一致するプリミティブP4、および、その各面を構成するとしての3次元ポリゴンが得られる。良好な3次元ポリゴンが得られたので、それに対応する構造体D2の部分の3次元点群データを除去する。
こうして残った構造体D3の3次元点群データを対象にしてプリミティブ配置処理を実行すると、
図9(f)に示すようにプリミティブP5が得られる。こうして、3次元点群データに対するビルの本体部分D1、構造体D2、D3をそれぞれ構成する3次元ポリゴンが得られるのである。
【0058】
以上で説明した本実施例の3次元モデル生成装置10によれば、3次元点群データから3次元モデルを生成する際に、3次元ポリゴンの生成結果を評価して、生成パラメータを再設定し、3次元ポリゴンの生成を再度行う処理を繰り返すことにより、3次元点群データに良好に一致した3次元ポリゴンを生成することが可能となる。
以上の実施例で説明した種々の特徴は、必ずしも全てを備えている必要はなく、適宜、その一部を省略したり、組み合わせたりしてもよい。また、本発明は、上述の実施例に限らず、種々の変形例を構成することが可能である。