(57)【要約】【課題】  ３次元点群から建物以外の構造物について３次元モデルを生成する。【解決手段】  建物の内部について取得された３次元点群を読み込む。この点群を、点群間の距離に応じてクラスタに分け、各クラスタに基づいて、床面、天井面、壁面を順次ポリゴン化する。次に、こうして生成されたポリゴンとの位置関係に基づき、床面、天井面、壁面以外の構造物の３次元点群を分離する。分離した３次元点群については、構造物用に予め用意されたプリミティブを用いて、３次元モデルを生成する。【選択図】  図１
2019168976.tif 000002
【特許請求の範囲】
【請求項１】
建造物の構造面、該構造面以外の構造物を含む３次元点群に基づいて、前記構造物の３次元モデルを生成する３次元モデル生成装置であって、
前記３次元点群を表す３次元点群データを記憶する３次元点群データ記憶部と、
前記３次元点群データに基づいて、前記構造面ポリゴンを生成する構造面ポリゴン生成部と、
前記構造面ポリゴンとの位置関係に基づいて、前記３次元点群データから、前記構造物を表す３次元点群データを構造物点群データとして分離する分離処理部と、
予め前記構造物に対応する基本形状を表す３次元モデルであるプリミティブデータを記憶するプリミティブデータ記憶部と、
前記構造物点群データと前記プリミティブデータとに基づいて、前記構造物の３次元モデルを生成する生成部とを備える３次元モデル生成装置。
【請求項２】
請求項１記載の３次元モデル生成装置であって、
前記プリミティブデータは複数用意されており、
前記生成部は、前記プリミティブデータと前記構造物点群データとの一致率に基づいて、前記３次元モデルの生成に利用するプリミティブデータを選択する３次元モデル生成装置。
【請求項３】
請求項１または２記載の３次元モデル生成装置であって、
前記一致率は、前記構造物点群データから前記プリミティブデータまでの最小距離が閾値を超える点の数と、全ての構造物点群データの数との比で求められる３次元モデル生成装置。
【請求項４】
請求項２または３記載の３次元モデル生成装置であって、
前記プリミティブデータは、予め複数のグループに分類されており、
前記生成部は、前記一致率が各グループごとに設定された閾値を超えるプリミティブデータを対象として前記選択を行う３次元モデル生成装置。
【請求項５】
建造物の構造面、該構造面以外の構造物を含む３次元点群に基づいて、前記構造物の３次元モデルをコンピュータによって生成する３次元モデル生成方法であって、
前記コンピュータが実行するステップとして、
前記３次元点群を表す３次元点群データを記憶した３次元点群データ記憶部から前記３次元点群データを読み込むステップと、
前記３次元点群データに基づいて、前記構造面ポリゴンを生成するステップと、
前記構造面ポリゴンとの位置関係に基づいて、前記３次元点群データから、前記構造物を表す３次元点群データを構造物点群データとして分離するステップと、
予め前記構造物に対応する基本形状を表す３次元モデルであるプリミティブデータを記憶するプリミティブデータ記憶部を参照するステップと、
前記構造物点群データと前記プリミティブデータとに基づいて、前記構造物の３次元モデルを生成するステップとを備える３次元モデル生成方法。
【請求項６】
建造物の構造面、該構造面以外の構造物を含む３次元点群に基づいて、前記構造物の３次元モデルをコンピュータによって生成するためのコンピュータプログラムであって、
前記３次元点群を表す３次元点群データを記憶した３次元点群データ記憶部から前記３次元点群データを読み込む機能と、
前記３次元点群データに基づいて、前記構造面ポリゴンを生成する機能と、
前記構造面ポリゴンとの位置関係に基づいて、前記３次元点群データから、前記構造物を表す３次元点群データを構造物点群データとして分離する機能と、
予め前記構造物に対応する基本形状を表す３次元モデルであるプリミティブデータを記憶するプリミティブデータ記憶部を参照する機能と、
前記構造物点群データと前記プリミティブデータとに基づいて、前記構造物の３次元モデルを生成する機能とをコンピュータによって実現するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、建造物の構造面および構造面以外の構造物を含む３次元点群に基づいて、構造物の３次元モデルを生成する技術に関する。
【背景技術】
【０００２】
地物の形状を３次元的に表した３次元地図においては、地物の３次元モデルを精度良く、かつ低い処理負荷で生成することが求められる。このような技術の一つとして、３次元復元の利用が検討されている。
３次元復元処理とは、複数の地点から撮影した複数の画像間の特徴点の対応関係に基づいて、撮影された地物の３次元点群を得る処理である。３次元復元を利用すれば、処理の対象範囲内の画像を航空機等から複数撮影し、この画像を解析することで、対象範囲を表す３次元の点群を得ることができる。かかる点群が得られれば、それを解析することによって３次元モデルを生成することも可能となる。画像間の特徴点の対応関係を判断するための技術として、ＳＩＦＴ（Scale-Invariant Feature Transform）などが利用される。特許文献１は、３次元復元による３次元モデルの生成技術について開示している。
また、近年、建造物の外部だけでなく、建造物の内部構造についての３次元モデルの生成も要請されている。特許文献２は、建造物の内部を表す３次元点群に基づいて、建造物の壁のみならず家具などの内部構造についても３次元モデルを生成する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１８６５６５号公報
【特許文献２】特開２０１５−１６５４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、建造物の内部構造などの３次元モデルについては、建造物自体よりも複雑な形状をしたものも存在しているため、３次元モデルの精度向上という点で改善の余地が残されていた。かかる課題は、内部構造に限らず、建造物に付属される看板その他の付属構造物や、路上に存在する標識、樹木などの構造物についても同様であった。本発明は、かかる課題に基づき、３次元点群を利用して建造物以外の構造物の３次元モデルを生成可能とすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、
建造物の構造面、該構造面以外の構造物を含む３次元点群に基づいて、前記構造物の３次元モデルを生成する３次元モデル生成装置であって、
前記３次元点群を表す３次元点群データを記憶する３次元点群データ記憶部と、
前記３次元点群データに基づいて、前記構造面ポリゴンを生成する構造面ポリゴン生成部と、
前記構造面ポリゴンとの位置関係に基づいて、前記３次元点群データから、前記構造物を表す３次元点群データを構造物点群データとして分離する分離処理部と、
予め前記構造物に対応する基本形状を表す３次元モデルであるプリミティブデータを記憶するプリミティブデータ記憶部と、
前記構造物点群データと前記プリミティブデータとに基づいて、前記構造物の３次元モデルを生成する生成部とを備える３次元モデル生成装置として構成することができる。
【０００６】
本発明によれば、構造物を表す構造物点群データを分離した後、プリミティブデータを利用して構造物の３次元モデルを生成することにより、その精度向上を図ることができる。つまり、３次元点群データには、一般に、誤差が含まれているため、単純に３次元点群データを忠実に用いて３次元モデルを生成したとしても、それが本来の構造物を精度良く表しているとは限らない。建造物の壁面などについては、平面またはある程度なめらかな曲面で構成されるという前提の下、３次元点群データの誤差を補正または補完して３次元モデルを生成することが可能となるが、構造物の場合には、形状も多様であるため、このような単純な前提条件が成立するとは限らない。これに対し、本発明では、予め３次元モデルの生成対象となる構造物を表すプリミティブデータを用意しておき、これを利用して３次元モデルを生成するのである。従って、構造物についても３次元点群データの誤差を補正または補完して３次元モデルの精度向上を図ることができる。
【０００７】
本発明において、建造物の構造面とは、建造物を構成する内壁面または外壁面を表すものであり、内壁面としては、建造物の床面、天井面、壁面（いわゆる側壁面）が該当する。外壁面としては、屋根面、壁面（いわゆる側壁面）が該当する。
構造物とは、内部構造については、什器、家具その他建造物内に置かれている物、照明器具その他建造物内に取り付けられている物、建造物の柱などが該当する。外部構造については、看板など建造物に取り付けられている物、門・道路標識・電柱など建造物とは別に地面に設置されている物などが該当する。
３次元点群データは、種々の方法で取得されたものを利用可能である。３次元点群データを得る方法としては、例えば、ＳＩＦＴ、レーザースキャンなどを利用することができる。
【０００８】
プリミティブデータと構造物点群データを用いた３次元モデルの生成は、種々の方法を採用することができる。
例えば、構造物点群データに可能な限り一致させるようプリミティブデータを変形させる方法をとってもよい。この場合、プリミティブデータは、縦方向、横方向、高さ方向に独立して拡大・縮小可能とすることが好ましい。
また、プリミティブデータを構成するポリゴンとの位置関係に基づいて構造物点群データをクラスタに分類し、各クラスタに対して対応するポリゴンを拡大・縮小・位置合わせすることにより、ポリゴンごとにモデル化を図り、得られたポリゴンを一つの３次元モデルに結合する方法をとってもよい。
【０００９】
３次元モデルの生成に先立って、構造物点群を点間の距離に基づいてクラスタに分け、クラスタごとに３次元モデルを生成するようにしてもよい。
また、３次元モデルの生成の際に、構造物点群データとプリミティブデータとの位置合わせを行うようにしてもよい。例えば、構造物点群の重心と、プリミティブデータの重心とを合わせる方法などをとることができる。また、構造物点群を主成分分析した結果を用いてプリミティブデータの方向を合わせるようにしてもよい。
【００１０】
本発明においては、
前記プリミティブデータは複数用意されており、
前記生成部は、前記プリミティブデータと前記構造物点群データとの一致率に基づいて、前記３次元モデルの生成に利用するプリミティブデータを選択するものとしてもよい。
【００１１】
建造物の内部構造物に対するプリミティブデータとして、例えば、机、イス、ロッカーなどを用意しておく態様である。こうすることにより、多様な構造物に対応することが可能となる。
プリミティブデータの選択は、構造物点群データとの一致率によって行うことにより、３次元モデルの生成に適したプリミティブデータの選択が可能となる。
【００１２】
一致率は、種々の方法で求めることができるが、例えば、
前記一致率は、前記構造物点群データから前記プリミティブデータまでの最小距離が閾値を超える点の数と、全ての構造物点群データの数との比で求められるものとしてもよい。
【００１３】
即ち、構造物点群データが誤差範囲を超えるほどプリミティブデータから離れている点の数と、全体の数との比を算出することになる。従って、一致率の算出に用いる閾値は、構造物点群データの誤差範囲を考慮して設定することができる。閾値を小さくすれば、構造物点群データの誤差が原因で、本来のプリミティブデータが選択されなくなるおそれが生じる。逆に、閾値を大きくすれば、全く異なる形状のプリミティブデータまで高い一致率であると誤評価される可能性が生じる。閾値は、双方の可能性を考慮して定めることが好ましい。
一致率は、数値が大きいほど一致しているように定義してもよいし、その逆でもよいが、本明細書において「一致率が高い」というときは、「低い」ときよりも、構造物点群データとプリミティブがより一致していると評価できる状態であることを意味するものとする。
一致率は、このように閾値を用いて設定する他、例えば、点群からプリミティブデータまでの最小距離の全点についての平均値を用いるようにしてもよい。平均値が小さければ、点群がプリミティブによく一致していることになり、平均値が大きければ、ずれが大きいことを意味する。最小距離に代えて、最小二乗距離を用いるものとしてもよい。
【００１４】
プリミティブデータが複数用意されている場合においては、
前記プリミティブデータは、予め複数のグループに分類されており、
前記生成部は、前記一致率が各グループごとに設定された閾値を超えるプリミティブデータを対象として前記選択を行うものとしてもよい。
【００１５】
例えば、柱などのグループ、種々の形状・サイズのテーブルのグループというようにプリミティブデータを分け、それぞれに閾値を設定する態様である。ここで用いる閾値は、一致率の計算に用いる閾値とは異なり、得られた一致率を評価するための閾値である。一般に、柱などのように比較的単純な形状の構造物については期待される一致率が高く、イスなどのように比較的複雑な形状の構造物については期待される一致率が低いと考えられる。本態様のようにグループごとに閾値を設定しておけば、期待される一致率を踏まえたプリミティブの選択が可能となり、より３次元モデルの精度向上を図ることが可能となる。
【００１６】
本発明は、上述した特徴を必ずしも全てを備えている必要はなく、適宜、その一部を省略したり、組み合わせたりしてもよい。上述した３次元モデルの生成をコンピュータによって実行する３次元モデル生成方法として構成してもよいし、かかる方法をコンピュータに行わせるためのコンピュータプログラムとして構成してもよい。さらに、かかるコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体として構成してもよい。
【図面の簡単な説明】
【００１７】
【図１】３次元モデル生成装置の構成を示す説明図である。
【図２】３次元モデル生成例を示す説明図である。
【図３】屋内３次元モデル生成処理のフローチャートである。
【図４】クラスタ生成処理のフローチャートである。
【図５】床面ポリゴン生成処理のフローチャートである。
【図６】天井面ポリゴン生成処理のフローチャートである。
【図７】壁面ポリゴン生成処理のフローチャートである。
【図８】内部構造点群分離処理のフローチャートである。
【図９】内部構造ポリゴン生成処理のフローチャートである。
【発明を実施するための形態】
【実施例１】
【００１８】
Ａ．システム構成：
図１は、３次元モデル生成装置の構成を示す説明図である。本実施例においては、建造物の内部を表す３次元点群に基づいて内部構造の３次元モデルを生成する装置としての構成を例示する。
３次元モデル生成装置１００には、図示する機能ブロックが備えられている。これらの機能ブロックは、それぞれの機能を実現するためのコンピュータプログラムを、コンピュータにインストールすることによって構成されるし、ハードウェア的に構成してもよい。本実施例では、スタンドアロンで稼働する装置としての構成例を示すが、３次元モデル生成装置１００は、複数のサーバまたはコンピュータをネットワークで接続して構成することも可能である。
以下、各機能ブロックの機能について説明する。
【００１９】
３次元点群記憶部１１０は、建造物の内部の３次元点群を記憶する。３次元点群とは、それぞれ３次元の座標値および法線ベクトルが付与された多数の点である。法線ベクトルとは、各点が存在すると推定される面の法線ベクトルを意味する。３次元点群は、レーザを利用した技術など種々の方法で取得可能であるが、本実施例では、複数の撮影点から撮影した複数の画像データを用いて、ＳＩＦＴ（Scale-Invariant Feature Transform）と呼ばれる公知の技術により取得するものとした。３次元点群には、床面、天井面、壁面などの建造物の構造面を表すもの、および柱、什器、家具など構造面以外の構造物を表すものが含まれている。
【００２０】
クラスタ生成部１２０は、３次元点群に基づいて、各平面のクラスタを生成する。建造物の内部は、床面、天井面、壁面などの構造面、即ち平面で区画されているのが通常であるから、クラスタ生成部１２０は、３次元点群をこれらの構造面の点群に分類する機能を奏することになる。
床面ポリゴン生成部１２１は、クラスタに基づいて床面のポリゴンを特定する機能を奏する。
天井面ポリゴン生成部１２２は、クラスタおよび床面ポリゴンを用いて天井面のポリゴンを特定する機能を奏する。
壁面ポリゴン生成部１２３は、クラスタおよび床面ポリゴン、天井面ポリゴンを用いて壁面のポリゴンを特定する機能を奏する。
内部構造点群分離処理部１２４は、クラスタおよび床面ポリゴン、天井面ポリゴン、壁面ポリゴンの位置関係に基づいて、構造物を構成する３次元点群（以下、内部構造点群と呼ぶこともある）を分離する機能を奏する。
内部構造ポリゴン生成部１２５は、内部構造点群に基づいて構造物の３次元モデルを生成する機能を奏する。この際、本実施例では、プリミティブデータ記憶部１１２に予め構造物の基本形状を表すプリミティブデータを記憶しておき、これを利用して構造物の３次元モデルを生成しているのである。本実施例では、プリミティブデータとしては、柱、机、椅子、ロッカーなど構造物の種類ごとにグループ化され、それぞれ基本的な形状が記憶されている。また、柱としては、円柱状、角柱状など多様な形状が記憶されている。机についても、折りたたみ可能な長机、応接机、事務机など多様な形状が記憶されている。
３次元モデルデータ記憶部１１１は、生成された構造物の３次元モデルデータを記憶する。併せて、床面ポリゴン、天井面ポリゴンを用いて壁面のポリゴンを記憶するようにしてもよい。
【００２１】
Ｂ．３次元モデル生成例：
図２は、３次元モデル生成例を示す説明図である。
図２（ａ）には、３次元モデルの生成対象となる建造物内部の３次元点群を示した。図示するように、部屋内には構造物としての机、ロッカーなどが存在している。なお、室内に柱があるような場合、柱は建造物に固定された物であるが、建造物の構造面（床面、天井面、壁面）とは異なるため構造物として扱うものとしてもよい。
図２（ｂ）は、構造面のポリゴンを生成した状態を示している。３次元点群とポリゴンとを重畳して示した。図中の線分Ｌは、それぞれ床面ポリゴン、天井面ポリゴン、壁面ポリゴンの境界線を表している。柱は、構造面ではなくポリゴン化されていないため、ここには表示されていない。
図２（ｃ）は、机、ロッカーなどの構造物の３次元ポリゴンを生成する場合を例にとり、構造物に対応する３次元点群が分離された状態を示した。全体に塗りつぶした状態で表されているものが構造物に対応する３次元点群である。位置、形状が把握しやすいよう部屋全体の３次元点群と重畳して示してある。
図２（ｄ）は、構造物の３次元モデルを表している。全体の３次元点群と重畳して示した。このように構造物に対応する３次元点群から、ポリゴンが生成される。
以上で説明したように、本実施例では、３次元点群から構成面のポリゴンを生成し（図２（ｂ））、構造物の３次元点群を分離し（図２（ｃ））、その３次元モデルを生成する（図２（ｄ））。以下では、この過程を具体的に説明する。
【００２２】
Ｃ．屋内３次元モデル生成処理：
図３は、屋内３次元モデル生成処理のフローチャートである。図２に示したように、３次元点群データに基づいて屋内の３次元モデルを生成するための処理である。この処理は、図１に示した各機能ブロックによって実現される処理であり、ハードウェア的には、３次元モデル生成装置１００のＣＰＵが実行する処理となる。
【００２３】
図３には、全体の処理の流れを示した。それぞれの処理内容については、後で詳述する。
クラスタ生成処理（ステップＳ１０）は、３次元点群に基づいて、各平面のクラスタを生成する処理である。
床面ポリゴン生成処理（ステップＳ２０）は、クラスタに基づいて床面のポリゴンを特定する処理である。
天井面ポリゴン生成処理（ステップＳ３０）は、クラスタおよび床面ポリゴンを用いて天井面のポリゴンを特定する処理である。
壁面ポリゴン生成処理（ステップＳ４０）は、クラスタおよび床面ポリゴン、天井面ポリゴンを用いて壁面のポリゴンを特定する処理である。
内部構造点群分離処理（ステップＳ５０）は、クラスタおよび床面ポリゴン、天井面ポリゴン、壁面ポリゴンの位置関係に基づいて、構造物を構成する３次元点群（内部構造点群）を分離する処理である。
内部構造ポリゴン生成処理（ステップＳ６０）は、内部構造点群に基づいて構造物の３次元モデルを生成する処理である。
以上の処理によって、建造物の内部構造の３次元モデルが生成される。
以下、それぞれの処理について順に内容を詳述する。
【００２４】
Ｃ１．クラスタ生成処理：
クラスタ生成処理は、３次元点群に基づいて、各平面のクラスタを生成する処理であり、屋内３次元モデル生成処理のステップＳ１０に相当する処理である。主として、クラスタ生成部１２０が実行する処理である。
処理を開始すると３次元モデル生成装置１００は、３次元点群データを読み込む（ステップＳ１１）。そして、平面抽出に一般に用いられる手法であるランダムサンプルコンセンサスにより平面を抽出し（ステップＳ１２）、抽出結果を平面クラスタとして分離する（ステップＳ１３）。平面抽出は、他の方法を用いるものとしても良い。３次元モデル生成装置１００は、以上の処理を、全ての３次元点群データについて完了するまで繰り返し実行する（ステップＳ１４）。ここまでの処理により、３次元点群データから、床面に相当するクラスタ、天井面に相当するクラスタ、壁面に相当するクラスタが抽出されることになる。もっとも抽出されるクラスタには、什器の一部の平面を構成するクラスタなども含まれることになる。
【００２５】
次に、３次元モデル生成装置１００は、各平面クラスタについて、主成分分析を行い平面に対する法線ベクトルを決定する（ステップＳ１５）。図中にこの処理の概要を模式的に示した。主成分分析とは、３次元空間内における３次元点群の分布を特徴づける方向を求めるものであり、３次元点群の分布が大きい方向から順に第１主成分、第２主成分、第３主成分となる。平たい領域に分布した３次元点群については、水平方向の分布に基づいて第１主成分、第２主成分が求まり、それに直交する方向が第３主成分となる。従って、第３主成分は、平面にたいする法線ベクトルを表すことになる。
【００２６】
３次元モデル生成装置１００は、壁面を特定する（ステップＳ１６）。壁面を特定するための条件は、面の法線ベクトルと重力ベクトルとの角度が約９０度となることである。法線ベクトルと重力ベクトルとの内積がほぼ０になることを条件とすればよい。こうすることで、垂直に屹立する平面を壁面として特定することができる。この処理では、什器の垂直面なども壁面として抽出される可能性があるが、それで差し支えない。
【００２７】
次に、３次元モデル生成装置１００は、床面を特定する（ステップＳ１７）。床面を特定するための条件（１）は、法線ベクトルと重力ベクトルがほぼ平行となることである。こうすることで、ほぼ水平の面を抽出することができる。条件（２）は高さが所定の閾値１よりも小さいことである。こうすることにより、高さの低い部分にある水平面を抽出することができる。閾値１は、床面を構成する３次元点群の誤差範囲を考慮して設定すればよい。そして、条件（３）は、超点数が閾値２よりも大きいことである。床面である以上、十分に広い面積を有しているとの前提の下、そのような広い面であれば多数の３次元点群によって構成されるであろうとの評価に基づく条件である。これによって、例えば、テーブルの天板など、高さが低い位置にある水平面のうち狭いものが除去されることになる。閾値２は、床面と他の構造物の水平面とを分別するための値であるため、想定される最大の構造物に基づいて設定すればよい。
【００２８】
３次元モデル生成装置１００は、最後に天井面を特定する（ステップＳ１８）。天井面を特定するための条件（１）は、法線ベクトルと重力ベクトルがほぼ平行となることである。こうすることで、ほぼ水平の面を抽出することができる。条件（２）は高さが所定の閾値１よりも高いことである。こうすることにより、高さの高い部分にある水平面を抽出することができる。閾値１について、本実施例では、床面を特定するための値と同一とした、が異なる値を用いてもよい。そして、条件（３）は、超点数が閾値２よりも大きいことである。床面と同様、十分に広い面を抽出するための条件である。閾値２についても、床面と同じ値を用いたが、異なる値としてもよい。
以上の処理によって、床面、壁面、天井面を構成する平面クラスタを得ることができる。
【００２９】
Ｃ２．床面ポリゴン生成処理：
床面ポリゴン生成処理は、クラスタに基づいて床面のポリゴンを特定する処理であり、屋内３次元モデル生成処理のステップＳ２０に相当する処理である。主として、床面ポリゴン生成部１２１が実行する処理である。
３次元モデル生成装置１００は、床面クラスタを読み込む（ステップＳ２１）。
次に、３次元モデル生成装置１００は、床面クラスタにグリッドを配置し、グリッド上に床面クラスタの点群を投影する（ステップＳ２２）。グリッドは、任意に配置すればよいが、例えば、次の方法で配置してもよい。つまり、第１に、グリッドを仮配置した上で、点群が属している格子を抽出し、この格子がグリッドの縦または横方向に並ぶ最長の長さを評価値として求める。第２に、グリッドの配置方向を回転させながら、同様にして評価値を求め、この評価値が最大となる方向を求める。こうすることによって、グリッドを構成する２軸が床面の形状に沿うようにグリッドを配置することができる。
また、グリッドの格子サイズは任意に設定可能である。格子サイズが小さければ、建物形状を精度良く表すことができる一方、処理負荷が高くなる。格子サイズが大きければ、建物形状を表す精度が粗くなるが、処理負荷が軽減される。これらを考慮しながら、格子サイズは決定すればよい。
図中に点群を投影した状態を示した。点は×で表してある。各グリッド内に１個または複数の点群が存在する格子、全く点が存在しない格子が表れる。
【００３０】
次に、３次元モデル生成装置１００は、点群が存在するグリッドを抽出することで、床面を決定する（ステップＳ２３）。
図中に処理の様子を示した。ステップＳ７３に示した点群の投影結果に基づき、１又は複数の点が存在する格子を抽出する。ステップＳ２３内の図では、このような格子にハッチングを付して示した。３次元モデル生成装置１００は、ハッチングを付した各格子の代表点を結ぶことによって床面を特定する。本実施例では、格子の重心（図中の●で示した点）を代表点として用いた。
この処理によって、処理対象となるべき点数は、床面に対応する位置にある格子点の数にまで減少される。
【００３１】
３次元モデル生成装置１００は、さらに、頂点を間引く処理を行う（ステップＳ２４）。
本実施例では、図中の左側に示すように、ほぼ直線的に配列されていると判断される部分について、中央に位置する頂点を削除する方法を採用した。例えば、頂点ａ、ｂ、ｃが存在する場合、線分ａｂ、ｂｃの外角αを求める。そして、α＜閾値３の場合には、これらの３点がほぼ直線的に並んでいるものと判断し、頂点ｂを削除するのである。閾値３は、頂点ｂを削除するか否かの判断基準となる値であり、頂点ｂを削除することによって建物枠に有意な形状変化を与えるか否かという観点から任意に設定することができる。
図の右側には、頂点を削除した結果を例示した。この処理によって、ステップＳ２３で示した形状に対し、ステップＳ２４の図中に示すように、頂点Ｐ１〜Ｐ４の４点に削除することができる。
以上の処理によって、３次元モデル生成装置１００は、床面を決定することができる。
【００３２】
Ｃ３．天井面ポリゴン生成処理：
天井面ポリゴン生成処理は、クラスタおよび床面ポリゴンを用いて天井面のポリゴンを特定する処理であり、屋内３次元モデル生成処理のステップＳ３０に相当する処理である。主として、天井面ポリゴン生成部１２２が実行する処理である。
処理を開始すると、３次元モデル生成装置１００は、天井面クラスタおよび床面ポリゴンを読み込む（ステップＳ３１）。そして、床面ポリゴンを天井面クラスタの高さまで平行移動する（ステップＳ３２）。平行移動の方向は、重力と逆方向である。図中に処理の概要を模式的に示した。床面ポリゴンを平行移動して天井面ポリゴンとすることにより、床面ポリゴンと天井面ポリゴンの形状を一致させることができる。多くの建造物では、両者の形状は一致しているため、かかる方法をとることにより、床面ポリゴンと天井面ポリゴンとを個別に生成するよりも構造面のポリゴン化の精度を向上させることができるのである。
天井面の高さは、種々の設定をとることができる。例えば、天井面クラスタの中心部分の高さを使用してもよい。また、天井面クラスタに属する点群のうち最低高さ、最高高さの中央値としてもよい。天井面クラスタに属する各点の高さの平均値としてもよい。
３次元モデル生成装置１００は、以上の処理によって天井面ポリゴンの生成を完了する。
【００３３】
Ｃ４．壁面ポリゴン生成処理：
壁面ポリゴン生成処理は、クラスタおよび床面ポリゴン、天井面ポリゴンを用いて壁面のポリゴンを特定する処理であり、屋内３次元モデル生成処理のステップＳ４０に相当する処理である。主として、壁面ポリゴン生成部１２３が実行する処理である。
処理を開始すると、３次元モデル生成装置１００は、天井面ポリゴン、床面ポリゴンを読み込む（ステップＳ４１）。そして、天井面ポリゴンと床面ポリゴンの対応する頂点を接続する（ステップＳ４２）。こうして天井面ポリゴンと床面ポリゴンとの間に定義される平面を、壁面仮ポリゴンと呼ぶものとする。図中に処理の概要を示した。図中には、壁面クラスタに属する点群を併せて示しているが、壁面仮ポリゴンの生成に、これらの点群が利用される訳ではない。
【００３４】
以下の動作は、壁面を生成する際の処理モードによって、２つに分かれる。本実施例では、壁面ポリゴンの生成判定を行うモードと、無条件で壁面ポリゴンを生成するモードの２種類をオペレータが適宜、切り替え可能とした。
生成判定を行わない場合（ステップＳ４３）、即ち、無条件で壁面ポリゴンを生成するモードの場合、３次元モデル生成装置１００は、ステップＳ４２で生成された壁面仮ポリゴンを壁面ポリゴンとし（ステップＳ４６）、この処理を終了する。
【００３５】
一方、生成判定を行う場合（ステップＳ４３）、３次元モデル生成装置１００は、壁面クラスタに属する点群のうち、壁面仮ポリゴンから所定距離内にあるものを抽出する（ステップＳ４４）。そして、抽出された点群の密度が閾値４よりも大きい場合は（ステップＳ４５）、壁面仮ポリゴンを壁面ポリゴンとし（ステップＳ４６）、そうでない場合は、壁面ポリゴンを生成せずに（ステップＳ４７）、この処理を終了する。つまり、壁面仮ポリゴンから所定距離内に、閾値４を超える密度で点群が存在する場合には、壁面仮ポリゴンは、３次元点群に対応したポリゴンであると考えられるため、壁面ポリゴンを生成するのである。一方、点群密度が閾値４以下の場合には、壁面仮ポリゴンには、対応する３次元点群が十分に存在しないと考えられるため、壁面ポリゴンを生成しない。閾値４は、壁面ポリゴンを生成するか否かの評価値となるため、例えば、床面ポリゴン、天井面ポリゴンなど、生成済みのポリゴンにおける３次元点群の密度などを基準として任意に設定することができる。
このような生成判定を行うことにより、３次元点群が存在する箇所を壁面ポリゴンとすることができるため、架空の壁面ポリゴンが生成されることを回避できる利点がある。逆に、生成判定を行わずに壁面ポリゴンを生成するモードの場合には、例えば、壁面の前にロッカーなどの障害物が設置されており壁面の３次元点群が得られていない場合でも壁面ポリゴンが生成されることになるから、障害物がある場合でも適切な壁面ポリゴンを生成できる利点がある。
オペレータは、両モードの利点を活かすよう、例えば、構造物の少ない部屋のモデル化では、生成判定処理を行い、構造物が多い部屋のモデル化では、生成判定処理を行わない、というように使い分けることができる。
【００３６】
Ｃ５．内部構造点群分離処理：
内部構造点群分離処理は、クラスタおよび床面ポリゴン、天井面ポリゴン、壁面ポリゴンの位置関係に基づいて、構造物を構成する３次元点群（内部構造点群）を分離する処理であり、屋内３次元モデル生成処理のステップＳ５０に相当する処理である。主として、内部構造点群分離処理部１２４が実行する処理である。
処理を開始すると、３次元モデル生成装置１００は、３次元点群と生成されたポリゴン（床面ポリゴン、天井面ポリゴンおよび壁面ポリゴン）を読み込む（ステップＳ５０）。
そして、構造物を構成する点群を分離する（ステップＳ５１）。分離の条件は、全てのポリゴンからの距離＞閾値５となる点群を抽出するというものである。生成済みのいずれのポリゴンからも離れている３次元点群は、これらのポリゴンに属さないと考えられ、構造物を構成する点群であると判断できるからである。閾値５は、ポリゴンを構成する点群の誤差範囲に基づいて任意に設定することができる。
【００３７】
こうして構造物を構成する点群が抽出できると、３次元モデル生成装置１００は、抽出された点群について、点間の距離によるクラスタリングを行う（ステップＳ５２）。つまり、比較的近くにある点群同士をクラスタ化することによって、点群を構造物単位で分離するのである。
図中にクラスタリングの方法を模式的に示した。３次元モデル生成装置１００は、処理対象となる点群の中から、任意に1つの点Ｐ１を選択し、固有のラベル（図の例では「Ａ」）を付与する。そして、この点Ｐ１から所定の距離ｒａ内にある点を探索し、これらに同じラベルを付与する。図の例では、点Ｐ２，Ｐ３に対してラベル「Ａ」が付与されている。距離ｒａは、クラスタリングするか否かの判断基準となる距離である。クラスタリングの目的は、点群を構造物ごとに分離することであるから、距離ｒａは、処理対象となる領域における構造物の間隔よりも小さい範囲で任意に設定することができる。
点Ｐ２、Ｐ３にラベルを付すと、３次元モデル生成装置１００は、これらの点からさらに距離ｒａ内の点を探索し、これらの同じラベルを付与する。図の例では、点Ｐ４、Ｐ５にラベル「Ａ」が付与されている。かかる処理を繰り返し実行することによって、相互に距離ｒａ内にある点を探索することができ、それらに同じラベルを付与することができる。距離ｒａ内にある点が探索できなくなった時点で、ラベルの付与されていない未処理の点を選択し、新たなラベル（例えば、「Ｂ」）を付与しながら、同様の処理を実行することによって、点間の距離によるクラスタリングを行うことができる。
【００３８】
Ｃ６．内部構造ポリゴン生成処理：
内部構造ポリゴン生成処理は、内部構造点群に基づいて構造物の３次元モデルを生成する処理であり、屋内３次元モデル生成処理のステップＳ６０に相当する処理である。主として、内部構造ポリゴン生成部１２５が実行する処理である。
処理を開始すると、３次元モデル生成装置１００は、内部構造点群を読み込む（ステップＳ６１）。内部構造点群とは、内部構造点群分離処理（図５）で各構造物ごとにクラスタリングされた３次元点群である。
３次元モデル生成装置１００は、次に処理対象となるプリミティブを選択する（ステップＳ６２）。図１で説明した通り、本実施例では、プリミティブデータは、柱、机、椅子、ロッカーなど構造物の種類ごとにグループ化され、それぞれ基本的な形状が記憶されている。また、柱、机などの各グループについて、種々の形状が記憶されている。プリミティブの選択は、これらの多数のプリミティブからいずれか一つを選択する処理であり、選択方法はどのようなものであってもよい。また、オペレータの指示や、構造物に属する３次元点群の広がりの大きさ、即ち平面積や高さなどに応じて、いずれかのグループを優先的に選択するようにしてもよい。
【００３９】
処理対象となるプリミティブを選択すると、３次元モデル生成装置１００は、処理対象のプリミティブの重心と、内部構造点群の重心を合わせることによって、両者の位置合わせを行う（ステップＳ６３）。そして、３次元モデル生成装置１００は、内部構造点群の各点ごとにプリミティブまでの最短距離を算出する（ステップＳ６４）。図中に処理の様子を示した。図に示す机の形状が処理対象となるプリミティブである。●は、内部構造点群を示している。また、図の例では、例えば、点ｐ１については、最も近傍の脚までの距離Ｌ１が最短距離となる。点ｐ２については、点ｐ１とは異なる脚までの距離Ｌ２が最短距離となる。このようにして、全ての点について、最短距離を算出するのである。
【００４０】
最短距離が算出されると、３次元モデル生成装置１００は、その結果を用いて一致率を算出する（ステップＳ６５）。
本実施例では、一致率＝（距離＞閾値６となる点の数）／クラスタ内の点の数、という式で求めるものとした。つまり、クラスタ内の点のうち、プリミティブから明らかに離れていると判断される点がどの程度あるか、という値である。この値が小さいほど、一致率が「高い」、即ち点群とプリミティブがよく一致していることを意味する。閾値６を大きく設定すれば、プリミティブから離れた点もプリミティブに一致していると評価されやすくなる。逆に閾値６を小さく設定すれば、３次元点群は、いずれのプリミティブとも一致していないと評価されるおそれが高くなる。閾値６の値は、これらの効果を考慮して、任意の値を設定すればよい。
【００４１】
一致率は、点群データとプリミティブの相対的な角度によっても変化する。例えば、ステップＳ６４に示した例において、机のプリミティブをヨー方向に回転させれば、回転角度に応じて、一致率が変化することが分かる。また、点群データとプリミティブとは必ずしも相似関係にあるとも限らないため、プリミティブの縦横高さ方向（ｘｙｚ方向）の比率を変化させると、一致率が変化し得る。そこで、３次元モデル生成装置１００は、点群とプリミティブの相対的角度およびプリミティブのｘｙｚ方向の倍率を変化させて、一致率が最も高くなるときの値を算出する（ステップＳ６６）。つまり、プリミティブを、点群データに最も一致した状態に合わせた上で、一致率を評価するのである。
【００４２】
３次元モデル生成装置１００は、以上の処理を全プリミティブに対して繰り返し実行する（ステップＳ６７）。この処理は、用意されたプリミティブデータ全てを対象として実行してもよいし、いずれかのグループ内のプリミティブ全てを対象として実行するようにしてもよい。
こうして、全プリミティブデータに対して一致率が求まると、３次元モデル生成装置１００は、一致率が最も高いプリミティブ、即ち点群に最も一致していると評価されるプリミティブを選択し、これに基づいて内部構造ポリゴンを生成する（ステップＳ６８）。
【００４３】
以上で説明した実施例の処理によれば、３次元点群から構造物の点群を分離することができ、プリミティブを用いてその３次元モデルを生成することができる。従って、構造物の３次元モデルの精度を向上することが可能となる。
【００４４】
本実施例において、上述した種々の特徴は、必ずしも全てを備えている必要はなく、適宜、その一部を省略したり、組み合わせたりして構成してもよい。また、実施例においてソフトウェア的に実現されている部分は、ハードウェア的に実現してもよいし、その逆も可能である。
また、本実施例は、その趣旨を逸脱しない範囲で種々の変形例を構成することも可能である。
【００４５】
＜変形例１＞  本実施例においては、一致率が高いプリミティブを選択しているが（図９のステップＳ６８）、この時に、条件を追加し、プリミティブごとまたはプリミティブが属するグループごとに所定の閾値を設定しておき、算出された一致率が、この閾値よりも高い場合（点群がプリミティブに一致していると評価される場合）に、当該プリミティブを選択するようにしてもよい。例えば、０〜１．０の範囲で数値が高いほど点群とプリミティブが一致するように一致率が定義されているとして、柱のグループについては０．９以上の一致率であることを条件とし、机のグループについては０．７以上の一致率であることを条件とするのである。かかる場合に、点群と柱プリミティブの一致率が０．８であり、点群と机プリミティブの一致率が０．７５と求められたとする。この場合、柱プリミティブに対する一致率０．８は、柱グループに設定された０．９という条件を満たしていないため、柱プリミティブを選択して３次元モデルを生成することは行われない。一方、机プリミティブに対する一致率０．７５は、机グループに設定された０．７を超えているため、机プリミティブに対する３次元モデルが生成される。このように、グループごとに選択されるための一致率の閾値を設定しておけば、グループに属するプリミティブの形状の複雑さなどを考慮し、期待される一致率を踏まえたプリミティブの選択が可能となり、より３次元モデルの精度向上を図ることが可能となる。
【００４６】
＜変形例２＞  本実施例においては、建造物の内部構造についての３次元モデルの生成を例にとって説明した。本実施例は、建造物の外部に存在する構造物についての３次元モデルの生成に適用することもできる。かかる構造物としては、例えば、建造物に付属される看板その他の付属構造物や、路上に存在する標識、樹木などの構造物についても同様であった。本発明は、かかる課題に基づき、３次元点群を利用して建造物以外の構造物の３次元モデルが考えられる。外部の付属構造物に適用する場合、実施例と同様の方法で、建造物の床面ポリゴン、屋根ポリゴン、壁面ポリゴンを生成し、構造物の３次元点群を分離すればよい。床面ポリゴンに相当する３次元点群が得られていない場合、屋根ポリゴンを平行移動して床面ポリゴンとしてもよいし、地面を構成する３次元点群が得られている場合には、逆に、地面の３次元点群が存在しない部分が床面であると判断して処理するようにしてもよい。
【産業上の利用可能性】
【００４７】
本発明は、建造物の構造面および構造面以外の構造物を含む３次元点群に基づいて、構造物の３次元モデルを生成するために利用することができる。
【符号の説明】
【００４８】
１００…３次元モデル生成装置
１１０…３次元点群データ記憶部
１１１…３次元モデルデータ記憶部
１１２…プリミティブデータ記憶部
１２０…クラスタ生成部
１２１…床面ポリゴン生成部
１２２…天井面ポリゴン生成部
１２３…壁面ポリゴン生成部
１２４…内部構造点群分離処理部
１２５…内部構造ポリゴン生成部
【図１】
2019168976.tif 000003
【図２】
2019168976.tif 000004
【図３】
2019168976.tif 000005
【図４】
2019168976.tif 000006
【図５】
2019168976.tif 000007
【図６】
2019168976.tif 000008
【図７】
2019168976.tif 000009
【図８】
2019168976.tif 000010
【図９】
2019168976.tif 000011