(57)【要約】  本発明の課題は、面の一部の測定点しか得られない場合でも、精度のよい形状モデルを定めることである。本発明に係るモデリング装置（１０）は、データ取得部（１１）と面抽出部（１２）とモデル化部（１３）とを備える。面抽出部（１２）は、立体物（３０）のうちの１つの面（３）と、当該１つの面（３）を囲む複数の面（３）とをそれぞれ表す数式を用いて、当該１つの面（３）を囲む境界線を求める。その後、面抽出部（１２）は、当該１つの面（３）に属する測定点のうち、境界線から当該１つの面（３）の内側に所定の幅（Ｗ１）で定めた領域（Ｄ１）内の測定点を抽出する。
2016084389.tif 000002
【特許請求の範囲】
【請求項１】
立体物の３次元計測を行う計測装置から、前記立体物に属する複数の測定点について３次元の座標値である計測データを取得するデータ取得部と、
前記計測データを用いて前記立体物を構成する面を表す数式を生成する面抽出部と、
前記数式を用いて前記立体物を表した形状モデルを生成するモデル化部とを備え、
前記面抽出部は、
前記立体物のうちの１つの面と、当該１つの面を囲む複数の面とをそれぞれ表す数式を用いて、前記１つの面を囲む境界線を求めた後、前記１つの面に属する測定点のうち、前記境界線から前記１つの面の内側に所定の幅で定めた領域内の測定点を抽出し、抽出した測定点を用いて前記１つの面を表す前記数式を求める
ことを特徴とするモデリング装置。
【請求項２】
前記立体物は、床面と天井面と複数の壁面とに囲まれた部屋であって、
前記１つの面は前記天井面であり、前記１つの面を囲む複数の面は前記壁面である
請求項１記載のモデリング装置。
【請求項３】
前記面抽出部は、
前記立体物を平面上に展開した２次元画像であって前記計測データを画素値に持つ展開画像を用い、前記展開画像を複数の単位領域に分割し、かつ前記複数の単位領域の向きをそれぞれ求める第１処理部と、
前記単位領域ごとに、前記向きを含む条件を用いて、前記単位領域が属する面に相当する面領域に分類する第２処理部と、
前記面領域ごとに前記面を表す前記数式を定める第３処理部とを備える
請求項１又は２記載のモデリング装置。
【請求項４】
前記第３処理部は、前記測定点のうち前記計測装置に対する位置について設定した制約条件を満足する測定点を用いて前記面を表す前記数式を定め、前記制約条件は、前記面の中央部における測定点を除外するように定められている
請求項３記載のモデリング装置。
【請求項５】
前記第２処理部が分類した前記面領域ごとに色情報を付与する色処理部と、
前記展開画像の画素値を前記色情報に置換したカラー画像の画像情報を出力する出力部とをさらに備える
請求項３又は４記載のモデリング装置。
【請求項６】
前記第２処理部は、
前記展開画像から前記単位領域を順に抽出し、抽出した単位領域を順に分類することにより前記面領域を定める前処理を行い、
前記前処理の後に、前記展開画像から前記単位領域を順に抽出し、前処理で定めた前記面領域に、抽出した単位領域を対応付ける
請求項３〜５のいずれか１項に記載のモデリング装置。
【請求項７】
前記面は平面であって、前記向きは前記単位領域の法線ベクトルで表される
請求項３〜６のいずれか１項に記載のモデリング装置。
【請求項８】
前記第２処理部は、
前記複数の単位領域のうちの２個ずつの単位領域について、前記法線ベクトルの内積を求め、前記内積が所定の基準値以上である場合に、前記内積を求めた２個の単位領域を同じ面領域に分類する
請求項７記載のモデリング装置。
【請求項９】
前記第２処理部は、
前記複数の単位領域のうちの２個ずつの単位領域について、前記法線ベクトルの内積と、前記立体物が存在する実空間に定めた原点から前記内積を求めた２個の単位領域それぞれまでの距離とを求め、前記内積が所定の基準値以上であって、前記距離の差が所定の基準範囲内である場合、前記内積を求めた２個の単位領域を同じ面領域に分類する
請求項７記載のモデリング装置。
【請求項１０】
前記第２処理部は、
前記複数の単位領域のうちの隣接する２個ずつの単位領域について、前記法線ベクトルの内積と、前記立体物が存在する実空間に定めた原点から前記内積を求めた２個の単位領域それぞれまでの距離とを求め、前記内積が所定の基準値以上であって、前記距離の差が所定の基準範囲内である場合、前記内積を求めた２個の単位領域を同じ面領域に分類する
請求項７記載のモデリング装置。
【請求項１１】
前記面は平面であって、前記向きは基準の向きに対する前記単位領域の角度で表され、
前記第２処理部は、
前記複数の単位領域のうちの２個ずつの単位領域について前記角度の差を求め、前記角度の差が所定の基準値以下である場合に、前記角度の差を求めた２個の単位領域を同じ面領域に分類する
請求項３〜６のいずれか１項に記載のモデリング装置。
【請求項１２】
前記第１処理部は、
前記立体物を含む所定の空間に３次元格子を設定し、前記３次元格子を構成するそれぞれの単位格子に含まれる前記測定点に関する前記計測データを用いて、前記単位格子のそれぞれを代表する計測データを求め、当該計測データを前記展開画像の画素値に用いる
請求項３〜１１のいずれか１項に記載のモデリング装置。
【請求項１３】
前記計測装置と、請求項１〜１２のいずれか１項に記載のモデリング装置と、前記モデリング装置から出力される画像情報を用いて画像を表示するモニタ装置とを備える
ことを特徴とする３次元モデル生成装置。
【請求項１４】
立体物の３次元計測を行う計測装置から、前記立体物に属する複数の測定点について３次元の座標値である計測データをデータ取得部が取得し、
前記計測データを用いて前記立体物を構成する面を表す数式を面抽出部が生成し、
前記数式を用いて前記立体物を表した形状モデルをモデル化部が生成し、
前記面抽出部は、
前記立体物のうちの１つの面と、当該１つの面を囲む複数の面とをそれぞれ表す数式を用いて、前記１つの面を囲む境界線を求めた後、前記１つの面に属する測定点のうち、前記境界線から前記１つの面の内側に所定の幅で定めた領域内の測定点を抽出し、抽出した測定点を用いて前記１つの面を表す前記数式を求める
ことを特徴とするモデリング方法。
【請求項１５】
前記面抽出部は、
前記立体物を平面上に展開した２次元画像であって前記計測データを画素値に持つ展開画像を用い、前記展開画像を複数の単位領域に分割し、かつ前記複数の単位領域の向きをそれぞれ求める第１処理と、
前記単位領域ごとに、前記向きを含む条件を用いて、前記単位領域が属する面に相当する面領域に分類する第２処理と、
前記面領域ごとに前記面を表す前記数式を定める第３処理とを行う
請求項１４記載のモデリング方法。
【請求項１６】
コンピュータを、請求項１〜１２のいずれか１項に記載のモデリング装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モデリング装置、３次元モデル生成装置、モデリング方法、プログラムに関する。
【背景技術】
【０００２】
従来、対象空間の３次元モデルを作成する技術が、提案されている（文献１［日本国公開特許公報第１９９２−１３３１８４号］参照）。文献１に記載された技術では、対象空間に格子状の光を投影し、投影像を撮像することにより、投影像における格子の交点の位置関係を用いて平面の位置および傾きを求めている。【０００３】
文献１に記載された技術では、平面の位置および傾きから、平面の隣接関係を、折れ目、段差境界、面内境界に分類し、面の境界を計算して交線を求め、室内の構造線を計算している。すなわち、文献１に記載された構成は、対象空間にすでに配置された物体を含めた室内の構造線を抽出するために、折れ目、段差境界、面内境界を抽出している。【０００４】
文献１には、このように構造線を抽出することにより、小さい障害物で遮られて画像からは検出できないような構造線も復元することが記載されている。【０００５】
ところで、室内においてクロスの張り替えを行う場合、断熱材を施工する場合などでは、室内に配置された物体を除去した計測が必要になる場合がある。【０００６】
文献１には、ノイズや小さい障害物などにより領域の一部が欠けている場合でも、構造線を安定に復元させることができるという内容の記載がある。しかしながら、文献１に記載された技術は、机のような大きな物体を、３次元モデルの構成要素とする技術であり、クロスの張り替えや断熱材の施工を行うことを目的として、室内に配置された物体を除去した立体物のモデルを生成することはできない。
【発明の概要】
【０００７】
本発明は、立体物の一部が比較的大きい物体に遮られることにより、計測装置では計測できない領域が存在する場合でも、立体物のモデルを生成することを可能にしたモデリング装置を提供することを目的とする。さらに、実空間における立体物のモデルを生成する３次元モデル生成装置、立体物のモデルを生成するモデリング方法、モデリング装置を実現するプログラムを提供することを目的とする。
【０００８】
本発明に係るモデリング装置は、立体物の３次元計測を行う計測装置から、前記立体物に属する複数の測定点について３次元の座標値である計測データを取得するデータ取得部と、前記計測データを用いて前記立体物を構成する面を表す数式を生成する面抽出部と、前記数式を用いて前記立体物を表した形状モデルを生成するモデル化部とを備え、前記面抽出部は、前記立体物のうちの１つの面と、当該１つの面を囲む複数の面とをそれぞれ表す数式を用いて、前記１つの面を囲む境界線を求めた後、前記１つの面に属する測定点のうち、前記境界線から前記１つの面の内側に所定の幅で定めた領域内の測定点を抽出し、抽出した測定点を用いて前記１つの面を表す前記数式を求めることを特徴とする。
【０００９】
本発明に係るモデリング方法は、立体物の３次元計測を行う計測装置から、前記立体物に属する複数の測定点について３次元の座標値である計測データをデータ取得部が取得し、前記計測データを用いて前記立体物を構成する面を表す数式を面抽出部が生成し、前記数式を用いて前記立体物を表した形状モデルをモデル化部が生成し、前記面抽出部は、前記立体物のうちの１つの面と、当該１つの面を囲む複数の面とをそれぞれ表す数式を用いて、前記１つの面を囲む境界線を求めた後、前記１つの面に属する測定点のうち、前記境界線から前記１つの面の内側に所定の幅で定めた領域内の測定点を抽出し、抽出した測定点を用いて前記１つの面を表す前記数式を求めることを特徴とする。
【００１０】
本発明に係るプログラムは、コンピュータを、上述したモデリング装置として機能させるものである。
【図面の簡単な説明】
【００１１】
【図１】実施形態を示す概略構成図である。
【図２】実施形態における展開画像の例を示す図である。
【図３】実施形態における単位領域と法線ベクトルとの概念を説明する図である。
【図４】実施形態における単位領域と面領域との関係を説明する図である。
【図５】実施形態における一動作例をフローチャートで示した図である。
【図６】実施形態において面領域を色で区分した状態を示す図である。
【図７】実施形態において面の形状を修正する動作例を示す図である。
【図８】図８Ａ、図８Ｂは、それぞれ実施形態において面の形状に応じた距離の変化を説明する図である。
【図９】実施形態における他の動作例をフローチャートで示した図である。
【図１０】実施形態における別の動作例を説明する図である。
【発明を実施するための形態】
【００１２】
本実施形態は、立体物の３次元計測を行った測定結果を用いて立体物の形状モデルを生成するモデリング装置に関する。さらに、本実施形態は、実空間における立体物の形状モデルを生成する３次元モデル生成装置、立体物の３次元計測の計測結果を用いて立体物のモデルを生成するモデリング方法、コンピュータをモデリング装置として機能させるためのプログラムに関する。
【００１３】
以下に説明する３次元モデル生成装置は、図１に示すように、計測装置２０とモデリング装置１０とモニタ装置（出力装置４１）とを備える。計測装置２０は、立体物３０の３次元計測を行い、モデリング装置１０は、立体物３０の形状モデルを生成し、モニタ装置は、モデリング装置１０から出力される画像情報を用いて形状モデルの画像を表示する。出力装置４１は、モニタ装置を含み、モニタ装置に加えてプリンタを含んでいることが望ましい。また、後述するように、モデリング装置１０に指示を与える入力装置４２を備えることが望ましい。
【００１４】
本実施形態は、立体物３０として建物の内部に設けられた部屋を想定している。すなわち、本実施形態は、部屋の内面に着目する。ただし、立体物３０は建物の内外のどちらであってもよく、また建物以外の立体物３０であっても、以下に説明する技術は適用可能である。本実施形態の立体物３０である部屋は、１枚の床面３１および１枚の天井面３２と、複数枚の壁面３３とを備える。以下では、床面３１、天井面３２、壁面３３を区別する必要がない場合は、面３と記載する。また、面３は、平面である場合を想定して説明するが、面３が曲面である場合にも、以下に説明する本実施形態の技術を採用することが可能である。
【００１５】
図１において、計測装置２０は、いわゆる３Ｄレーザスキャナである。この計測装置２０は、空間にビーム状のレーザを投光し、物体による反射波を受光するように構成されている。３Ｄレーザスキャナは、一般的には、タイムオブフライト方式とフェイズシフト方式とのいずれかを採用している。また、３Ｄレーザスキャナには、三角測量法の原理による方式を採用する構成もある。本実施形態では、フェイズシフト方式の計測装置２０を採用する例を想定する。ここでのフェイズシフト方式は、計測装置２０から強度を変調したレーザの連続波を空間に投光し、投光した照射波と受光した反射波との位相差（干渉波）により、レーザを反射した物体までの距離を計測する技術を意味する。この意味におけるフェイズシフト方式は、飛行時間を位相差で計測しているから、タイムオブフライト方式の一種として扱う場合もある。
【００１６】
フェイズシフト方式を採用した計測装置２０は、距離の計測を連続的に行うから、距離の計測を間欠的に行うパルス波を用いる構成と比較して、距離の計測を高速に行うことが可能である。また、この種の計測装置２０は、距離を１ｃｍ以下の誤差（たとえば、距離に対して１万分の１以下の誤差）で計測することが可能である。なお、以下に説明する本実施形態の技術では、タイムオブフライト方式、三角測量法の原理による方式を採用する場合でも同様の効果が期待できる。
【００１７】
本実施形態で用いる計測装置２０は、設置された面に沿って回転する測定部を備え、測定部は、回転途中のそれぞれの位置において、設置された面に交差する面内でレーザを走査（スキャン）するように構成されている。ここでは、測定部が回転する面を水平面とし、水平面に直交する面を垂直面とする。すなわち、計測装置２０からレーザを照射する方向は、水平面内で測定部が回転した角度と、垂直面内でレーザを走査した角度との組み合わせで表される。測定部が回転する角度は、計測装置２０に定めた基準方向に対する角度であり、垂直面内でレーザを走査した角度は、たとえば鉛直方向（水平面に直交する方向）に対する角度で定める。
【００１８】
いま、レーザを走査した角度がθであり、かつ測定部が回転した角度がψであるときに、計測装置２０が計測した距離がδであるとすると、レーザを反射した物体の位置は（δ，θ，ψ）で表される。角度θおよび角度ψは、計測装置２０が定めており、距離δは上述した原理で計測される。この構成では、レーザが照射された部位の座標値は、計測装置２０に定めた極座標系（球座標系）の座標値で表される。
【００１９】
レーザは連続波を用いているから、レーザが照射される物体が連続していれば、レーザは途切れなく物体に照射される。ただし、計測装置２０は、座標値を一定の時間間隔で求めている。この時間間隔は、レーザを垂直面内で走査する際の角度Δθに対応する。言い換えると、計測装置２０は、垂直面内において、角度Δθに相当する分解能で計測を行う。一方、水平面内では角度Δψに相当する分解能で計測を行う。角度Δθおよび角度Δψは、適宜に定められる。また、計測装置２０は、設置された面のうちの計測装置２０の周囲を除いて、ほぼ全周の空間領域について３次元計測を行う。
【００２０】
上述したように、計測装置２０は、立体物３０においてレーザが照射された部位に関する座標値を、角度Δθおよび角度Δψの分解能で計測する。言い換えると、計測装置２０は、立体物３０に関する座標値を離散的に求める。以下では、立体物３０において座標値が得られる位置を「測定点」と呼ぶ。また、計測装置２０から出力される３次元の座標値に関するデータを「計測データ」と呼ぶ。測定点は、角度Δθおよび角度Δψの間隔で多数個得られる。
【００２１】
ところで、本実施形態の計測装置２０は、上述したように計測装置２０に定めた極座標系の座標値を求めるが、モデリング装置１０は、立体物３０に関するモデルの情報を生成する際に、直交座標系の座標値を用いる。すなわち、計測装置２０が測定点について求めた極座標系の座標値は、モデリング装置１０が形状モデルを生成する処理を行うまでに、直交座標系の座標値に変換される。なお、直交座標系は、極座標系と同様に、計測装置２０に定めることが可能であるが、計測装置２０の外部に座標系が設定され、かつ当該座標系において計測装置２０の座標値を定めることができる場合は、測定点の座標値を外部の座標系で表してもよい。
【００２２】
なお、計測装置２０に定めた極座標系の座標値から直交座標系の座標値に変換する処理は、計測装置２０と、モデリング装置１０とのいずれかで行えばよい。本実施形態では、計測装置２０が、極座標系の座標値から直交座標系の座標値への変換を行う構成を想定している。
【００２３】
計測装置２０が床面３１に設置されている場合、計測装置２０は、測定部が床面に平行な面内で回転する間に、床面の一部を除く部屋の全範囲にレーザを照射する。したがって、レーザは、測定部を中心として様々な向きに照射され、結果的に、ビーム状のレーザが立体的に走査される。ただし、レーザが照射される向きとして、測定部を支持する部材に向かう向きは除外される。したがって、測定部は、床面において計測装置２０が設置されている部位の周囲にはレーザを照射しない。
【００２４】
計測装置２０は、照射したレーザが立体物３０で反射して計測装置２０に返ってくるまでの時間を位相差に変えて計測するために、時間経過に伴って強度が周期的に変化するように強度を変調したレーザを用いる。レーザは、立体物３０が存在する空間に投光される。計測装置２０は、レーザを投光した空間から立体物３０で反射されたレーザを受光すると、受光した反射波と空間に投光した照射波とについて、変調波形の位相差を求める。
【００２５】
反射波と照射波との位相差を求めるには、照射波に相当する参照波を用いる技術と、照射波の位相に相当する情報を持つ電気信号を用いる技術との一方が用いられる。計測装置２０は、反射波と照射波との位相差を求めると、この位相差を距離に換算する。
【００２６】
照射波に相当する参照波を用いるには、空間に投光するレーザを２分岐させ、分岐した一方のレーザを照射波とし、かつ分岐した他方のレーザを参照波とする。照射波は、距離を計測するために空間に投光され、参照波は、計測装置２０において既知の距離を伝播するように投光される。参照波は既知の距離を伝播されるから、参照波と反射波との位相差を求めることによって、反射波と照射波との位相差が求められる。
【００２７】
一方、照射波の位相に相当する情報を持つ電気信号としては、照射波の生成に用いた変調信号が用いられる。変調信号の位相と照射波の位相との関係は、おおむね一定であるから、参照波を用いることなく変調信号を用いることによっても、照射波と反射波との位相差を求めることが可能である。なお、本実施形態は、参照波を用いる技術を採用している。
【００２８】
上述した原理から明らかなように、３Ｄレーザスキャナで計測される測定点は、近距離ほど密度が高くなり、遠距離ほど密度が低くなる。したがって、平面格子を設定し、この平面格子の格子点をそれぞれ測定点に対応させると、隣接する測定点の間隔は、測定点までの距離が近いほど広がり、測定点までの距離が遠いほど狭まる。つまり、実空間での測定点の間隔は遠方ほど広がるのに対して、計測装置２０が計測した測定点を格子定数が一定である平面格子の格子点に一対一に対応付けると、測定点間の距離が遠方ほど縮むことになる。平面格子は、正方格子、矩形格子のほか、斜方格子、六角格子、平行体格子なども採用可能である。３Ｄレーザスキャナでの計測により得られる座標値は極座標系の座標値であり、平面格子の格子点に対応付けて展開すると実空間の横方向の直線が曲線になる歪んだ形状になる。
【００２９】
計測装置２０は、３次元計測を行うだけではなく、レーザの反射強度を出力する機能と、立体物３０を撮像する機能とを備えている。すなわち、計測装置２０は、レーザの反射強度を画素値とする濃淡画像（反射強度画像）の画像データを出力する機能を有する。この濃淡画像を２次元に展開すると、上述したように、歪んだ形状になる。また、計測装置２０は、ＣＣＤイメージセンサあるいはＣＭＯＳイメージセンサのような固体撮像素子と、固体撮像素子の前方に配置された広角の光学系とを備える。計測装置２０は、たとえば、設置面と平行な面内で測定部を２周させ、１周目ではレーザを用いて立体物３０に関する３次元の座標値を求め、２周目では立体物３０を撮像するように構成される。固体撮像素子は、カラー画像の画像データを出力する。カラー画像は、固体撮像素子で立体物３０を撮像したときの向きにより、濃淡画像の座標値との対応付けがなされ、カラー画像から得られるＲＧＢの色情報が測定点に付与される。
【００３０】
なお、上述した３Ｄレーザスキャナと同様に、計測データと画像データとを出力可能な計測装置２０としては、キネクト（登録商標）などが知られている。
【００３１】
計測装置２０から出力される画像の例を図２に示す。上述したように、計測データを平面に展開すると歪んだ画像になる。このような歪んだ画像になるのは、計測装置２０で計測された測定点を平面に展開しているからである。つまり、測定点が２次元の平面格子の格子点に対応付けられており、隣接する測定点の間隔が、近距離の測定点では広がり、遠距離の測定点では狭まっている。言い換えると、図２に示す２次元画像において、測定点の間隔は、画像内の場所に応じて異なっている。このような２次元画像を、以下では展開画像と呼ぶ。展開画像は、計測データに相当する座標値を画素値に持ち、かつ立体物３０の画像データである濃淡値（カラー値）を画素値に持つ。
【００３２】
なお、計測装置２０は、ビーム状のレーザを走査する構成に限定されず、線状、縞状、格子状などのパターンを投影する構成を採用してもよい。計測装置２０は、強度変調光の反射光をエリアイメージセンサで受光し、エリアイメージセンサの出力から画素の値が距離値である距離画像を生成する距離画像センサであってもよい。また、計測装置２０は、強度変調光を用いずに投光から受光までの飛行時間を計測してもよい。あるいは、飛行時間を計測するのではなく、ステレオ画像法のような三角測量法の原理を用いる構成などを採用してもよい。
【００３３】
計測装置２０が計測データをステレオ画像法で計測する構成である場合、計測データを得るためにカメラを用いるから、このカメラにより画像データを同時に得ることが可能である。また、計測装置２０が強度変調光を用いて計測する構成である場合、エリアイメージセンサの出力を用いて、反射光の受光強度に応じた濃淡画像を生成することができるから、この濃淡画像のデータを画像データに用いることが可能である。この構成では、反射光の受光強度が、強度変調光の１周期または複数周期にわたって積算されることにより、時間経過に伴う反射光の強度の変化が除去される。
【００３４】
なお、計測装置２０は、計測データのみを出力する構成であってもよい。計測装置２０の座標系は、立体物３０の配置に依存することなく設定される。たとえば、鉛直方向がｚ軸に定められ、ｚ軸の基準点が海抜０ｍに定められる。あるいは、計測装置２０を設置した面がｘｙ平面と平行な面に定められる。座標系の原点は、実空間において定位置に定められる。ここでは、計測装置２０が設置された位置を基準として原点が定められている。すなわち、計測装置２０が距離を計測する際の基点を原点に定めている。原点は、実空間の他の場所に定めることが可能であるが、計測装置２０が設置された位置を基準に用いた場合は、原点を定めるための計算が不要である。
【００３５】
計測データと画像データとを対応付ける処理は、計測装置２０ではなく、モデリング装置１０が行ってもよい。すなわち、計測データと画像データとを対応付ける処理と、極座標系から直交座標系への座標変換の処理とは、計測装置２０とモデリング装置１０とのどちらで行ってもよい。
【００３６】
上述したように、計測装置２０は様々な構成を採用することが可能である。ただし、以下に説明する３次元モデル生成装置では、計測装置２０は、レーザを用いて計測した３次元の座標値を計測データとして出力し、計測した立体物３０のカラー画像を画像データとして出力する構成を想定する。また、以下では、立体物３０に関して、直交座標系の座標値が得られた後の処理を説明する。
【００３７】
本実施形態において、立体物３０は、図１に示すように、床面３１と天井面３２と壁面３３とを備えた部屋である。また、床面３１と天井面３２と壁面３３とは、それぞれ平面であるか、平面の組み合わせである場合を想定して説明する。平面の組み合わせは、段差が形成された形状などに相当する。また、本実施形態の技術は、床面３１と天井面３２と壁面３３とのいずれかが曲面（たとえば、断面Ｕ字状、半球状など）である場合にも適用可能である。その場合は、後述する数式が曲面を表す数式になるか、曲面を平面の集合で近似した数式になる。
【００３８】
計測装置２０は、立体物３０の内側空間である床面３１に設置される。以下、床面３１と天井面３２と壁面３３とを区別しない場合には、単に面３と記載する。また、床面３１に対して天井面３２が平行ではない場合、あるいは、向かい合う２つの壁面３３が平行ではない場合があるが、以下では、床面３１に対して天井面３２が平行である場合を想定して説明する。また、向かい合う２つの壁面３３は、基本的には平行であるが、壁面３３の一部に、階段状の段差、凹みなどがあってもよい。言い換えると、向かい合う２つの壁面３３の距離が複数段階に変化することは許容される。
【００３９】
面３は、窓、出入口などの開口を備えていることがあり、また、スイッチ、コンセント（アウトレット）などの配線器具、照明器具などが取り付けられていることもある。さらに、家具のような物品が部屋に配置されていることも許容される。
【００４０】
モデリング装置１０は、計測装置２０から取得した計測データおよび画像データを用いて立体物３０の形状モデルを生成する。立体物３０の形状モデルは、たとえばワイヤフレームモデル、サーフェイスモデルなどから適宜に選択される。ワイヤフレームモデルは、立体物３０の表面形状を表すために、立体物３０の表面上の点を線分で結んだデータ構造のモデルである。モデリング装置１０は、形状モデルを用いて、立体物３０に関する各種情報を抽出する機能を備えていてもよい。また、立体物３０のコンピュータグラフィックスである仮想空間における面３の表面属性を変化させる機能、仮想空間に物品を配置する機能などが、モデリング装置１０に付加されると、レイアウトシミュレータとして機能させることも可能である。
【００４１】
モデリング装置１０は、プログラムに従って動作するコンピュータで構成される。コンピュータは、入力装置４２としてキーボードおよびポインティングデバイスを備え、出力装置４１としてディスプレイ装置を備えることが望ましい。また、コンピュータは、入力装置４２としてのタッチパネルが出力装置４１であるディスプレイ装置と一体化されたタブレット端末あるいはスマートフォンなどでもよい。モデリング装置１０は、汎用のコンピュータではなく、専用に設計されたコンピュータで実現することが可能である。
【００４２】
モデリング装置１０を構成するコンピュータは、独立した構成（スタンドアローン）のほか、コンピュータサーバあるいはクラウドコンピューティングシステムと端末装置とが連携する構成であってもよい。この構成を採用すると、利用者は、コンピュータサーバあるいはクラウドコンピューティングシステムとの通信が可能な端末装置を用いて、以下に説明するモデリング装置１０の機能を享受することが可能になる。
【００４３】
プログラムは、コンピュータで読み取り可能な記録媒体により提供されるか、インターネットのような電気通信回線を通して提供される。このプログラムは、コンピュータを、以下に説明するモデリング装置１０として機能させる。
【００４４】
モデリング装置１０は、図１のように、計測装置２０から計測データおよび画像データを取得するデータ取得部１１を備える。データ取得部１１は、計測データおよび画像データを、有線あるいは無線の伝送路を使って電気信号として計測装置２０から受け取る構成と、メモリカードのような記録媒体を介在させて計測装置２０から受け取る構成との少なくとも一方を備える。データ取得部１１は、計測データのみを取得する構成であってもよい。モデリング装置１０は、データ取得部１１が取得した立体物３０に関する計測データおよび画像データを記憶部１４に記憶する。また、モデリング装置１０は、立体物３０の形状モデルを生成するモデル化部１３を備える。
【００４５】
立体物３０は部屋であるから、面３の一部は、計測装置２０から見て家具、設備などの背後に隠れている場合があり、隠れている部位については計測することができない。そのため、モデリング装置１０は、面３の一部を計測することにより得られる情報と、面３に関する知識（すなわち、規則ないし法則）とを用いて、面３の全体形状を推定し、面３の全体形状から立体物３０の全体形状を推定する。
【００４６】
面３に関する知識は、面３の形状に関する知識と、面３の配置に関する知識とを含む。面３の形状に関しては、たとえば、「部屋は平面の集合で囲まれている」という知識が用いられる。この知識は、向かい合う面３の距離が一定ではない場合も含む。上述したように、面３は平面ではなく曲面であってもよいが、本実施形態は、面３が平面である場合のみを想定して説明する。面３の配置に関しては、たとえば、「隣接する２つの面３の間を仕切る境界線は、隣接する２つの面３の交線の少なくとも一部である」という知識が用いられる。さらに、面３が平面であるから、たとえば、「境界線の一端である頂点は、３枚の面３に共有される」という知識が用いられる。これらの知識は、本実施形態では、立体物３０の形状モデルを生成する際の手順（アルゴリズム）に組み込まれている。
【００４７】
上述した面３の知識によれば、立体物３０は、立体物３０を構成する個々の面３の角に相当する頂点と、２つずつの頂点を結ぶ線分とで表されることになる。また、上述した面３の知識から、３枚の面３が共有する頂点の座標値が定まると、立体物３０の形状が定まると言える。３枚の面３が共有する頂点の座標値は、それぞれの面３を数式（つまり、平面式）で表すと、３枚の面３をそれぞれ表す数式が同時に成立する座標値として求めることが可能である。言い換えると、立体物３０の形状モデルを生成するには、立体物３０を構成する個々の面３に相当する数式を求めることが必要である。
【００４８】
モデリング装置１０は、記憶部１４が記憶している計測データおよび画像データを用いて立体物３０を構成する個々の面３に相当する数式を求める面抽出部１２を備える。面抽出部１２が求めた個々の面３の数式は、モデル化部１３に引き渡され、立体物３０の形状モデルが生成される。
【００４９】
計測装置２０から出力された計測データは、立体物３０を構成する複数の面３の座標値（ここでは、直交座標系で表された座標値）を含んでいるが、座標値と面３との対応関係は不明である。したがって、面抽出部１２には、面３ごとの数式を生成する前に、座標値を面３に対応付けて分類することが要求される。
【００５０】
ここに、座標値を面３に対応付けて分類する処理は、個々の座標値について行うことが可能であるが、測定点の個数が多くなると、処理負荷が大きくなる上に、面３の状態によって誤差が生じる可能性がある。そのため、本実施形態は、同じ面３に属する可能性が高い複数個の計測データを集合としてまとめて扱い、集合を単位として面３に対応付け、面３に対応付けた集合から面３を表す数式を求めている。面抽出部１２は、このような処理を行うために、第１処理部１２１と第２処理部１２２と第３処理部１２３とを備える。
【００５１】
（動作例１）
第１処理部１２１は、立体物３０を平面上に展開した図２のような展開画像Ｐ１を分割する。展開画像は、計測データに相当する座標値を画素値に持ち、かつ立体物３０の画像データである濃淡値（望ましくは、カラーの色値）を画素値に持つ。
【００５２】
第１処理部１２１は、展開画像Ｐ１を複数個の単位領域Ｕｉに分割する。ただし、ｉ＝１、２、…である。単位領域Ｕｉは、たとえば１０画素×１０画素などに設定される。単位領域Ｕｉのように、複数画素からなる小領域は、スーパーピクセルと呼ばれている。単位領域Ｕｉに含まれる画素Ｑｎの個数は４画素以上であり、かつ展開画像Ｐ１に含まれる立体物３０を構成する面３を複数の単位領域Ｕｉに分割できる程度であればよい。ただし、ｎ＝１、２、…である。つまり、単位領域Ｕｉは、展開画像Ｐ１を数百から数千個に分割するように設定される。なお、単位領域Ｕｉの縦横比が１：１であることは必須ではない。
【００５３】
さらに、第１処理部１２１は、実空間における単位領域Ｕｉの向きを求める。単位領域Ｕｉは、たとえば１００個の画素Ｑｎを含んでいる。ここで、単位領域Ｕｉの向きを定めるために３個の画素Ｑｎの座標値のみを用いると、単位領域Ｕｉからどの画素Ｑｎを選択するかに応じて、単位領域Ｕｉの向きにばらつきが生じる可能性がある。そこで、第１処理部１２１は、図３に示すように、単位領域Ｕｉごとに、代表的な向きを表す法線ベクトルＶｉを求める。
【００５４】
本実施形態において、第１処理部１２１は、単位領域Ｕｉを代表する法線ベクトルＶｉを求める。単位領域Ｕｉの法線ベクトルＶｉは、後述するように、統計的処理（実際は、線型回帰分析）により求められる。ただし、単位領域Ｕｉを代表する法線ベクトルＶｉは、単位領域Ｕｉに含まれる画素Ｑｎを３個ずつ組み合わせて求めた法線ベクトルの度数分布から求めることが可能である。
【００５５】
単位領域Ｕｉから抽出した３個の画素Ｑｎから求める法線ベクトルは、３個の画素Ｑｎのうちの１個から残りの２個に向かう２つのベクトルの外積に相当する。したがって、法線ベクトルの絶対値（大きさ）は、３個の画素Ｑｎに囲まれる面積に比例する。一方、測定点は、原点の周りで一定の角度間隔で設定されているから、原点から測定点までの距離が遠いほど、測定点の間隔が広がる。したがって、原点からの距離が遠いほど法線ベクトルの絶対値は大きくなる。原点から単位領域Ｕｉまでの距離によらずに単位領域Ｕｉの向きにのみ着目する場合は、法線ベクトルＶｉの大きさを１にした単位法線ベクトルを用いる。以下において、法線ベクトルＶｉは、原則として単位法線ベクトルを意味する。
【００５６】
第１処理部１２１が求めた単位領域Ｕｉを代表する法線ベクトルＶｉは、第２処理部１２２に引き渡される。ここに、本実施形態では、第１処理部１２１が展開画像Ｐ１に含まれる単位領域Ｕｉを走査し、第１処理部１２１が１つの単位領域Ｕｉについて法線ベクトルＶｉを求めるたびに、求めた法線ベクトルＶｉを第２処理部１２２に引き渡す構成を想定している。
【００５７】
第２処理部１２２は、第１処理部１２１から引き渡された単位領域Ｕｉごとの法線ベクトルＶｉを用いて、図４のように、ほぼ同じ向きの単位領域Ｕｉを面領域Ｓｋに統合する。ただし、ｋ＝１、２、…である。言い換えると、面領域Ｓｋは、ほぼ同じ向きの法線ベクトルＶｉを持つ単位領域Ｕｉをまとめることにより形成される。
【００５８】
面領域Ｓｋには、単位領域Ｕｉと同様に、面領域Ｓｋを代表する法線ベクトルＴｋが定められる。面領域Ｓｋを代表する法線ベクトルＴｋは、面領域Ｓｋを構成する単位領域Ｕｉの法線ベクトルＶｉから求めた平均値、中央値、最頻値などから選択される。なお、法線ベクトルＴｋは、原則として単位法線ベクトルが用いられる。
【００５９】
通常、展開画像Ｐ１には、複数の面領域Ｓｋが形成される。第２処理部１２２は、第１処理部１２１から引き渡された単位領域Ｕｉを、既存の面領域Ｓｋに含めるか否かの判断を行う。この判断は、単位領域Ｕｉと面領域Ｓｋとの内積の大きさ、および面領域Ｓｋと単位領域Ｕｉの代表点との距離を用いる。この距離は、面領域Ｓｋに含まれるすべての単位領域Ｕｉの代表点と、第１処理部１２１から引き渡された単位領域Ｕｉの代表点との距離のうちの最小値を用いることが望ましい。距離の最小値を評価するための演算は、四則演算でよいから、処理負荷が大幅に増加することはない。
【００６０】
第２処理部１２２は、内積が所定の基準値以上、かつ距離が所定の基準距離以下である場合、第１処理部１２１から引き渡された単位領域Ｕｉを、該当する面領域Ｓｋに統合する候補とする。また、内積が所定の基準値未満、あるいは距離が所定の基準距離を超える場合、第２処理部１２２は、第１処理部１２１から引き渡された単位領域Ｕｉを、新規の面領域Ｓｋとして面領域Ｓｋのリストに加える（つまり、記憶する）。単位領域Ｕｉの法線ベクトルＶｉと面領域Ｓｋの法線ベクトルＴｋとは、ともに単位法線ベクトルを用いているから、内積と比較する基準値は、０と１との間に設定すればよく、たとえば０．９に設定される。
【００６１】
第１処理部１２１から引き渡された単位領域Ｕｉを統合する面領域Ｓｋの候補が複数存在する場合、第２処理部１２２は、内積と距離とを用いた評価関数を用いて、いずれかの面領域Ｓｋを選択する。評価関数は、たとえば、（内積／距離）とし、第２処理部１２２は、この評価関数が最大になる面領域Ｓｋを選択する。評価関数および評価関数を用いた判断は、この例に限らず適宜に定められる。
【００６２】
第２処理部１２２は、上述の処理によって、展開画像Ｐ１に含まれるすべての単位領域Ｕｉを面領域Ｓｋに分類する。第２処理部１２２が展開画像Ｐ１に含まれる単位領域Ｕｉを分類すると、展開画像Ｐ１に含まれる単位領域Ｕｉは、複数の面領域Ｓｋ（ｋ＝１、２、…）に区分される。個々の面領域Ｓｋは、同じ面３に属するとみなせる単位領域Ｕｉの集合であり、複数個の単位領域Ｕｉを含む。
【００６３】
ここで、面領域Ｓｋは、立体物３０を構成する面３に対応しているとは限らず、家具、窓あるいは出入口のような開口部、配線器具あるいは照明器具などに対応している可能性もある。さらに、面領域Ｓｋには、計測誤差などにより生じたノイズが含まれている可能性もある。そのため、第２処理部１２２は、面領域Ｓｋに含まれる単位領域Ｕｉの個数を所定の閾値と比較し、閾値以下である面領域Ｓｋは処理の対象外として面領域Ｓｋのリストから除外する（すなわち、記憶した内容を削除する）。閾値は、１個でもよいが、一般的には、立体物３０の面３に含まれる単位領域Ｕｉの個数は比較的多いから、床面３１、天井面３２、壁面３３などと、家具などにより生じる面とを区別する場合には、閾値を比較的大きく設定すればよい。
【００６４】
また、立体物３０を構成する面３に対応する面領域Ｓｋと、家具などにより形成された面領域Ｓｋとを区別する必要がある。そのため、第２処理部１２２は、入力装置４２からの操作入力を入力部１６を通して受け、面３に対応する面領域Ｓｋのみを抽出するように構成することが可能である。第２処理部１２２は、入力部１６を通して受け取った入力装置４２からの操作入力により面領域Ｓｋの中の１点のみが指定されると、該当する面領域Ｓｋの全体を処理の対象とするように構成されている。
【００６５】
上述した処理で抽出された面領域Ｓｋは、立体物３０の面３に対応している可能性が高い。第２処理部１２２は、面領域Ｓｋごとに、面領域Ｓｋを代表する法線ベクトルＴｋをあらためて算出する。
【００６６】
ここまでの第２処理部１２２の動作を図５に簡単にまとめる。展開画像Ｐ１から面領域Ｓｋを生成するために、第２処理部１２２は、展開画像Ｐ１を走査し、単位領域Ｕｉを順に抽出する（Ｓ１０１）。第２処理部１２２は、抽出した単位領域Ｕｉとリストに記憶された面領域Ｓｋとについて、法線ベクトルの内積と距離とを評価する（Ｓ１０２）。内積が基準値以上かつ距離が基準距離以下である場合（Ｓ１０２：ｙｅｓ）、第２処理部１２２は、評価関数での評価結果に基づいて、単位領域Ｕｉを面領域Ｓｋに統合する（Ｓ１０３）。また、内積が基準値未満または距離が基準距離を超える場合（Ｓ１０２：ｎｏ）、第２処理部１２２は、単位領域Ｕｉを新たな面領域Ｓｋとしてリストに加える（Ｓ１０４）。この処理は、展開画像Ｐ１のすべての単位領域Ｕｉについて行われる（Ｓ１０５）。
【００６７】
展開画像Ｐ１のすべての単位領域Ｕｉを面領域Ｓｋに分類する処理が終了すると（Ｓ１０５：ｙｅｓ）、面領域Ｓｋに含まれる単位領域Ｕｉの個数が閾値以下である面領域Ｓｋは、不要な面領域Ｓｋとして処理の対象から除外される（Ｓ１０６）。その後、面領域Ｓｋの法線ベクトルがあらためて計算される（Ｓ１０７）。
【００６８】
ところで、モデリング装置１０は、第２処理部１２２が分類した面領域Ｓｋごとに色情報を付与する色処理部１７を備えることが望ましい。色処理部１７が設けられる場合、展開画像Ｐ１の画素値を色処理部１７が付与した色情報に置換した画像情報を出力する出力部１５を備えることが望ましい。出力部１５は、この画像情報を出力装置４１に出力し、この画像情報に基づくカラー画像を出力装置４１に表示させる。図６は、色処理部１７で面領域Ｓｋごとに色を付与した画像を模式的に表している。図６には６個の面領域Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｓ５、Ｓ６にのみ符号を付して、色が異なることを領域に付した模様で表しているが、実際には他の部位からも面領域Ｓｋが抽出される。
【００６９】
色処理部１７および出力部１５を備えていると、利用者は、第２処理部１２２が分類した面領域Ｓｋを色で区別することが可能になり、所望の面領域Ｓｋを入力装置４２で指定する作業が容易になる。なお、出力部１５は、計測装置２０から出力された画像データに対応した画像を出力装置４１に表示させる機能も有する。
【００７０】
第３処理部１２３は、指定された面領域Ｓｋに含まれるすべての画素を、立体物３０の特定の面３に含まれる画素と推定し、指定された面領域Ｓｋの画素の座標値を用いて、面３を表す数式を定める。面３を表す数式を定めるには、統計的処理（実際は、線型回帰分析）を行う。面３を表す数式を求める手順を以下に説明する。
【００７１】
面３は平面を想定しているから、座標値が（ｘ，ｙ，ｚ）で表される直交座標系において、面３を表す一般式は、ａｘ＋ｂｙ＋ｃｚ＝１である。この平面は、ｘ切片が１／ａ、ｙ切片が１／ｂ、ｚ切片が１／ｃである。測定点の座標値を用いて面３を表す数式を求めることは、ａ、ｂ、ｃの推定値を求めることである。言い換えると、ａ、ｂ、ｃの推定値を求めることは、測定点ごとの座標値（ｘｉ，ｙｉ，ｚｉ）が観測値であり、誤差項がｅｉである線型回帰モデルにおいて、線型回帰分析（linear regresison analysis）を行うことに相当する。線型回帰モデルは、ａｘｉ＋ｂｙｉ＋ｃｚｉ＋ｅｉ＝１と表される。一般的な線型回帰モデルでは、誤差項ｅｉの期待値が０、観測値ごとの誤差項ｅｉは無相関で等分散をもつと仮定される。この仮定（ガウス・マルコフ模型）において、ａ、ｂ、ｃの推定値は、最小二乗推定量（least squares estimator）で表される。
【００７２】
ここで、観測値（ｘｉ，ｙｉ，ｚｉ）の行列を［Ｘ］、（ａ、ｂ、ｃ）を要素に持つ列ベクトルを［Ａ］、誤差項ｅｉを要素に持つ列ベクトルを［Ｅ］、すべての要素が１である列ベクトルを［１］と表すことにする。行列とベクトルとを用いることにより、上述した線型回帰モデルは、［Ｘ］［Ａ］＋［Ｅ］＝［１］と書き換えられる。［Ａ］の最小二乗推定量［〜Ａ］は、［〜Ａ］＝（［Ｘ］Ｔ［Ｘ］）−１［Ｘ］Ｔ［１］という関係になることが知られている。ここに、［Ｘ］Ｔは［Ｘ］の転置行列を表す。［Ａ］の最小二乗推定量［〜Ａ］を求めるために用いた（［Ｘ］Ｔ［Ｘ］）−１［Ｘ］Ｔは、ムーア・ペンローズの逆行列と呼ばれ、逆行列を一般化した疑似逆行列であって、本実施形態では、３×３の正方行列になる。
【００７３】
ここに、第１処理部１２１において、単位領域Ｕｉの法線ベクトルＶｉを求める際も、同様の処理が可能である。すなわち、単位領域Ｕｉに含まれる画素の座標値を、上述した計算に当て嵌めると、単位領域Ｕｉについても、上述したａ、ｂ、ｃに相当する値が求められる。これらの値は、面の向きを表しているから、単位領域Ｕｉに含まれる画素に対応付けた座標値を用いて、ａ、ｂ、ｃに相当する値を求めることは、単位領域Ｕｉを代表する法線の向きを求めることと等価である。
【００７４】
立体物３０を構成しているすべての面３について面３を表す数式が求められると、これらの面３の数式はモデル化部１３に引き渡される。モデル化部１３は、２枚の面３が共有する交線と、３枚の面３が共有する頂点とを抽出することにより、立体物３０を構成している面３の輪郭線を抽出する。すなわち、モデル化部１３は、立体物３０を表す形状モデルの情報を生成する。この形状モデルは、立体物３０の頂点ごとの座標値と、２個ずつの頂点を結ぶ線分である面３の境界線に相当する数式との集合で表されたワイヤフレームモデルに相当する。モデル化部１３は、面３を表す数式と、面３を囲む頂点とで表されるサーフェイスモデルに相当する形状モデルを形成してもよい。
【００７５】
本実施形態の立体物３０は部屋であるから、数式で表される面３は、通常、床面３１、天井面３２、壁面３３のいずれかである。したがって、部屋の形状モデルを生成する際には、面３を、床面３１、天井面３２、壁面３３のいずれかに対応付ける必要がある。面３を床面３１、天井面３２、壁面３３のいずれかに対応付ける場合、モデル化部１３は、出力装置４１であるモニタ装置の画面に形状モデルを表示し、形状モデルにおける面ごとに入力装置４２から種類の情報を受け付ければよい。つまり、床面３１、天井面３２、壁面３３のいずれかの種類を、形状モデルの面ごとに利用者が特定する。たとえば、右回りに、天井面３２、床面３１、壁面３３というように、選択する順番で形状モデルの面の種類を定めてもよい。
【００７６】
また、モデル化部１３は、計測データである座標値に基づいて、床面３１と天井面３２とのように部屋の上下に位置する面３を識別してもよい。つまり、モデル化部１３は、部屋の形状モデルにおいて床面３１と天井面３２とを自動的に割り当て、形状モデルに含まれる面３のうち床面３１と天井面３２とを除く面３を壁面３３に割り当てればよい。このようにモデル化部１３が面３を自動的に判別する構成は、上述した利用者が面３の種類を指定する構成と組み合わせて用いることも可能である。たとえば、モデル化部１３は、自動的に判別した面３の種類について、入力装置４２による修正が可能になるように構成されていることが望ましい。
【００７７】
ところで、面３を表す数式を用いて、交線と頂点とを求めた場合、交線が直交せず、矩形状になるべき面３の形状が、平行四辺形状、台形状、あるいは不等辺四角形などになる可能性がある。利用者が、出力装置４１であるモニタ装置と、入力装置４２とを用いて、手作業で面３の形状を修正することは可能であるが、手作業が介入すると、得られた結果が利用者の熟練度などに依存して、利用者による結果のばらつきを生じる可能性がある。
【００７８】
そこで、第３処理部１２３は、図７のように、抽出された面３ごとに面３に外接する矩形領域２５を設定する。この矩形領域２５は、数式から得られた面３を拡張する最大の範囲として定められ、矩形領域２５に含まれる測定点を面３に含めてよいか否かが評価される。つまり、第３処理部１２３は、面３の法線方向において、矩形領域２５に含まれる測定点と面３との距離を求め、距離が所定の基準距離以下であれば、該当する測定点を、面３に加える候補とする。
【００７９】
候補が複数得られると、第３処理部１２３は、面３を表す数式を求めた処理と同様にして、候補を含む面を表す数式の再計算を行う。再計算に用いる測定点は、矩形領域２５の設定によって対象となった測定点だけでよい。次に、面３から適宜に抽出した３点を、再計算によって求められた面に投影し、面３から抽出した３点の座標値を、投影後の座標値に変換する。この処理により、面３から抽出した３点には新たな座標値が設定される。第３処理部１２３は、３点の座標値を用いて、面３に相当する数式の再計算を行う。隣接する面３について同様の再計算を行って面３を表す数式を求め、さらに、再計算後の数式を用いて交線および頂点を求める。
【００８０】
このように矩形領域２５を用いて測定点をあらためて抽出し、抽出した測定点を用いて面３を表す数式を修正すると、立体物３０において矩形状になるべき面３が矩形状になるように修正される。しかも、面３の形状を修正する作業は、利用者が介在することなく行われるから、立体物３０の形状モデルを再現性よく生成することが可能になる。
【００８１】
３次元の形状モデルが生成されると、モデル化部１３は、モデリング装置１０が構築した仮想の３次元空間に、３次元の座標値で表された立体物３０を配置することが可能になる。モデル化部１３が生成した３次元の形状モデルは、モデル化部１３に設けたモデル記憶部１３１に格納される。
【００８２】
モデル記憶部１３１に格納された形状モデルのデータは、出力部１５を通して出力装置４１に出力することが可能である。すなわち、出力部１５は、出力装置４１にコンピュータグラフィックスによる仮想の３次元空間を形成し、この３次元空間に３次元の座標値で表した仮想の立体物３０を配置する。出力装置４１がモニタ装置である場合には、利用者は、３次元空間の座標軸を変更するか、立体物３０を見込む視点の位置を変更するように入力装置４２を用いて操作することにより、立体物３０を様々な方向から見ることが可能になる。
【００８３】
ところで、形状モデルのデータは、面３を表す数式と、隣り合う２つの面３の境界線を表す数式と、隣接した３つの面３の交点の座標値と、測定点の座標値とを含んでいる。出力部１５は、これらのデータを用いることにより、出力装置４１であるモニタ装置に表示する際に、部屋の内側から見た形状モデルを表示することが可能である。
【００８４】
部屋の内側から見た形状モデルを用いると、室内のリフォームなどを行う場合のシミュレーションに利用することが可能になる。すなわち、クロス、カーテン、照明器具など、室内を装飾する機能を有した部材の変更により、室内の様子がどのように変化するかを、出力装置４１であるモニタ装置の画面上で確認することが可能になる。
【００８５】
上述した動作例では、単位領域Ｕｉの集合である面領域Ｓｋのうち、立体物３０を構成する面３に対応する面領域Ｓｋを利用者が指定しているから、面領域Ｓｋの指定が適切であれば、面３を表す数式を適正に定めることが可能である。ただし、面３と面領域Ｓｋとが一対一に対応しているとは限らず、面３に対応する面領域Ｓｋが複数に分割される場合もある。この場合、面３を表す数式を求めるために他の情報も用いることができるにもかかわらず、使用可能な情報を十分に活用できていない可能性がある。
【００８６】
したがって、第３処理部１２３が数式を定める際に用いる情報量を増やすために、第２処理部１２２は、同じ面３に対応した面領域Ｓｋを統合する機能を有していることが望ましい。つまり、いずれかの面領域Ｓｋに含まれる画素を利用者が指定したときに、同じ面３に対応した他の面領域Ｓｋが存在すると、第２処理部１２２は、同じ面３に対応した他の面領域Ｓｋの画素も同時に抽出することが望ましい。
【００８７】
（動作例２）
上述した動作例では、向きが同じである単位領域Ｕｉを１つの面領域Ｓｋにまとめているから、壁面３３に段差がある場合のように、互いに平行であっても異なる面３に対応した単位領域Ｕｉを区別することができない。したがって、単位領域Ｕｉの向きのみの情報を用いて単位領域Ｕｉを統合した面領域Ｓｋを形成すると、複数の面３を１つの面領域Ｓｋに統合する可能性が残る。
【００８８】
そこで、第２処理部１２２は、単位領域Ｕｉの向き以外の付加情報を併せて用いることが望ましい。つまり、第２処理部１２２は、単位領域Ｕｉを向きの情報で分類することにより形成された面領域Ｓｋの候補について、付加情報を用いることにより、複数の面３が１つの面領域Ｓｋに統合されているか否かを検証することが望ましい。ただし、面３が連続した１枚の面であることが明らかである場合は、付加情報を用いる処理は不要である。付加情報は、たとえば、原点から単位領域Ｕｉまでの距離であり、また、付加情報は、原点から単位領域Ｕｉまでの距離と、複数の単位領域Ｕｉの間の距離とであってもよい。
【００８９】
付加情報が原点から単位領域Ｕｉまでの距離である場合、第２処理部１２２は、展開画像Ｐ１に対して形成した複数の単位領域Ｕｉのうちの２個ずつの単位領域Ｕｉを抽出する。次に、第２処理部１２２は、抽出した２個の単位領域Ｕｉの法線ベクトルの内積を求め、内積が基準値以上である２個の単位領域Ｕｉについて、それぞれ原点からの距離を求める。さらに、第２処理部１２２は、原点から２個の単位領域Ｕｉそれぞれまでの距離の差を求め、差が基準範囲内であれば、２個の単位領域Ｕｉを同じ面領域Ｓｋに分類する。
【００９０】
単位領域Ｕｉの原点からの距離は、単位領域Ｕｉの代表点と原点との間の距離が用いられる。代表点には、展開画像Ｐ１における単位領域Ｕｉの中心の画素、あるいは展開画像Ｐ１における単位領域Ｕｉの角（たとえば、左上角）の画素などが用いられる。
【００９１】
いま、床面３１に平行な面で壁面３３を切断した線を想定し、この線上での単位領域Ｕｉの座標値と距離との関係を模式的に表すと、たとえば、図８Ａ、図８Ｂのようになる。ここに、計測装置２０は、立体物３０である部屋の中心付近に配置されていると仮定する。また、上述したように、距離を計測する原点は計測装置２０が設置された場所に設定される。このような条件下では、計測装置２０が壁面３３に正対する位置で距離が最小であり、壁面３３の両端付近で距離が最大である曲線になる。
【００９２】
壁面３３が平面であれば、図８Ａのように、滑らかな曲線が得られる。この曲線は、理想的には、原点から壁面３３を見込む角度に応じた正割曲線（余弦の逆数である曲線）になる。一方、図８Ｂに示す例は、壁面３３の２箇所に凹みがある場合を示しており、凹みに対応する部位では、距離が不連続に増加している。内積を求めた単位領域Ｕｉの一方が凹みではない部位に存在し、他方が凹みに対応する部位に存在するとき、法線ベクトルの内積は基準値以上になる可能性があるものの、原点からの距離の差は比較的大きくなる。したがって、第２処理部１２２は、単位領域Ｕｉは同じ面３に属していないと判断する。このように、単位領域Ｕｉごとの原点からの距離を用いると、同じ向きの単位領域Ｕｉであっても、距離の相違によって分離することが可能になる。
【００９３】
ところで、距離を求める２個の単位領域Ｕｉの間隔は、法線ベクトルの内積が基準値以上であるという制約条件によって、比較的小さいことが保証されるが、他の単位領域Ｕｉが存在することは排除されていない。したがって、面領域Ｓｋを分離する精度は、単位領域Ｕｉの大きさよりも大きくなる可能性がある。
【００９４】
付加情報が、原点から単位領域Ｕｉまでの距離だけではなく、複数の単位領域Ｕｉの間の距離を含んでいれば、第２処理部１２２が判断に用いる情報量はさらに増加する。ここで、複数の単位領域Ｕｉの間の距離は、２つの単位領域Ｕｉの代表点の間の距離であり、付加情報は、この距離が基準距離の範囲内であるか否かという判断結果である。すなわち、付加情報は、法線ベクトルの内積を求めた２つの単位領域Ｕｉが隣接しているか否かという情報である。基準距離は単位領域Ｕｉの大きさによって定まり、たとえば、単位領域Ｕｉの一辺の画素数に数画素を加えた距離が基準距離になる。
【００９５】
第２処理部１２２は、展開画像Ｐ１に対して形成した複数の単位領域Ｕｉのうちの２個ずつの単位領域Ｕｉを抽出する。第２処理部１２２が抽出する２個の単位領域Ｕｉは、代表点間の距離が基準距離の範囲内であると判定された単位領域Ｕｉであり、言い換えると、隣接している単位領域Ｕｉである。隣接している２個の単位領域Ｕｉの法線ベクトルの内積が基準値以上であれば、２つの単位領域Ｕｉはほぼ同じ向きであると推定される。さらに、それぞれの単位領域Ｕｉと原点との距離の差が基準範囲内であれば、２つの単位領域Ｕｉは同じ面３に属していると推定される。動作例２の他の動作は動作例１と同様である。
【００９６】
なお、上述した動作例では、２つの単位領域Ｕｉの距離が基準距離の範囲内であることを判定する処理の後に、２つの単位領域Ｕｉの法線ベクトルの内積を求めているが、これらの処理の順序は逆でもよい。
【００９７】
（動作例３）
上述した動作例は、第２処理部１２２において、第１処理部１２１から引き渡された１個ずつの単位領域Ｕｉを、先にリストに加えられている面領域Ｓｋに属するか否かを評価している。つまり、単位領域Ｕｉの法線ベクトルＶｉとリスト中の面領域Ｓｋの法線ベクトルＴｋとの内積、および単位領域Ｕｉと面領域Ｓｋとの距離を用いて、単位領域Ｕｉを面領域Ｓｋに統合するか否かが決められている。このような逐次処理を行うと、面領域Ｓｋに単位領域Ｕｉが統合されるに従って、面領域Ｓｋの法線ベクトルＴｋが変化し、法線ベクトルＴｋが本来の面３の法線ベクトルから逸脱する可能性がある。
【００９８】
そこで、第２処理部１２２は、動作例１の処理によって、面領域Ｓｋが抽出された後、展開画像Ｐ１のすべての単位領域Ｕｉについて、すでに抽出されている面領域Ｓｋに属するか否かを再評価する処理を行うことが望ましい。すなわち、第２処理部１２２は、展開画像Ｐ１に含まれるすべての単位領域Ｕｉを、すでに抽出された既存の面領域Ｓｋに統合すべきか否かを順に評価する。ここにおいて、単位領域Ｕｉを既存の面領域Ｓｋに統合することは、実際には、面領域Ｓｋに付与したラベルを単位領域Ｕｉに与えることを意味している。
【００９９】
評価方法は、動作例１と同様であって、単位領域Ｕｉの法線ベクトルＶｉと、面領域Ｓｋの法線ベクトルＴｋとの内積が基準値以下、かつ単位領域Ｕｉと面領域Ｓｋとの距離が基準距離以上であることを、面領域Ｓｋへの統合の条件とする。条件を満足しない単位領域Ｕｉは、すでに面領域Ｓｋに統合されていても、面領域Ｓｋから除外される。
【０１００】
第２処理部１２２は、上述した条件を満足した単位領域Ｕｉを統合する候補の面領域Ｓｋが複数存在する場合は、動作例１と同様に、内積と距離とを含む評価関数を用いて、単位領域Ｕｉを統合する面領域Ｓｋを決定する。展開画像Ｐ１におけるすべての単位領域Ｕｉについて、統合先である面領域Ｓｋが決まると、面領域Ｓｋごとに法線ベクトルＴｋが計算される。面領域Ｓｋの法線ベクトルＴｋは、上述したように、平均値、中央値、最頻値などから選択される。
【０１０１】
動作例３は、動作例１または動作例２において第２処理部１２２が面領域Ｓｋを求めた処理を前処理とし、前処理に上述した処理を付加することによって、展開画像Ｐ１から面領域Ｓｋを抽出する精度を高めている。前処理後の動作例３の処理を図９に簡単にまとめる。前処理（Ｓ１１０）の後、展開画像Ｐ１から面領域Ｓｋを生成するために、第２処理部１２２は、展開画像Ｐ１をふたたび走査し、単位領域Ｕｉを順に抽出する（Ｓ１１１）。第２処理部１２２は、抽出した単位領域Ｕｉとリストに記憶された既存の面領域Ｓｋとについて、法線ベクトルの内積と距離とを評価する（Ｓ１１２）。内積が基準値以上かつ距離が基準距離以下である場合（Ｓ１１２：ｙｅｓ）、第２処理部１２２は、評価関数での評価結果に基づいて、単位領域Ｕｉを既存の面領域Ｓｋに統合する（Ｓ１１３）。また、内積が基準値未満または距離が基準距離を超える場合（Ｓ１１２：ｎｏ）、第２処理部１２２は、該当する単位領域Ｕｉを破棄する。以上の処理は、展開画像Ｐ１のすべての単位領域Ｕｉについて行われる（Ｓ１１４）。
【０１０２】
展開画像Ｐ１のすべての単位領域Ｕｉを面領域Ｓｋに分類する処理が終了すると（Ｓ１１４：ｙｅｓ）、面領域Ｓｋが確定したことになり、面領域Ｓｋの法線ベクトルがあらためて計算される（Ｓ１１５）。
【０１０３】
ところで、動作例１、動作例２、動作例３では、単位領域Ｕｉを分類して面領域Ｓｋを形成するために、単位領域Ｕｉの法線ベクトルＶｉと面領域Ｓｋの法線ベクトルＴｋとの内積を用いている。つまり、法線ベクトルＶｉ、Ｔｋにより単位領域Ｕｉおよび面領域Ｓｋの向きを評価している。これに対して、単位領域Ｕｉおよび面領域Ｓｋの向きを、基準の向きに対する角度で表すことも可能である。すなわち、直交座標系の座標値で表した面３の数式から法線ベクトルを求める代わりに、極座標（すなわち、球座標）で表すことにより、単位領域Ｕｉおよび面領域Ｓｋの向きを２つの角度の組で表すようにしてもよい。面３の向きを極座標で表す場合には、測定点の座標値を、極座標系の座標値から直交座標系の座標値に変換せずに、極座標のままで扱うことが可能である。
【０１０４】
極座標では、単位領域Ｕｉの向きは２つの角度の組で表される。ｘ軸とｙ軸とｚ軸とを持つ直交座標空間であれば、法線ベクトルをｘｙ平面に投影した直線がｘ軸に対してなす角度と、法線ベクトルがｚ軸に対してなす角度との２個の角度により、単位領域Ｕｉの向きが表される。ｘｙ平面を地面に見立てると、前者の角度は方位角に相当し、後者の角度は仰角または伏角に相当する。
【０１０５】
ここでは、前者の角度を第１角度、後者の角度を第２角度と呼ぶ。２個の単位領域Ｕｉについて同じ向きとみなせるか否かを評価するには、第１角度の差分の二乗と、第２角度の差分の二乗とを加算した値を用いればよい。つまり、第２処理部１２２は、第１角度の差分と第２角度の差分の二乗和が、適宜に設定した閾値以下であるときに、２個の単位領域Ｕｉを同じ面領域Ｓｋに属すると判断すればよい。２個の単位領域Ｕｉを同じ向きとみなすか否かを判断する技術は、１つの単位領域Ｕｉが面領域Ｓｋに属するか否かを判断する技術にも適用可能である。
【０１０６】
ところで、計測装置２０が計測した測定点の分布密度にはばらつきがある。そこで、立体物３０を含む空間に３次元格子を設定し、３次元格子を構成する単位格子ごとに代表となる計測データを定めてもよい。３次元格子の単位格子は、立方体であることが望ましい。このような単位格子は、いわゆるボクセルと同様に扱われる。格子定数は、複数個の測定点が含まれるように設定され、たとえば１０ｍｍに定められる。単位格子は、立方体以外の形状であってもよい。
【０１０７】
立体物３０を含む空間に３次元格子を設定することは、当該空間を単位格子で満たすことと等価である。単位格子には、複数個の測定点が含まれる場合と、測定点が含まれない場合とがある。測定点が含まれる場合、それぞれの単位格子を代表する計測データが求められる。単位格子を代表する計測データは、単位格子に含まれる測定点の座標値から求められる座標値の平均値あるいは重心の座標値とする。つまり、単位格子ごとに１個の計測データが得られる。
【０１０８】
単位格子を代表する計測データを展開画像Ｐ１に適用すると、展開画像Ｐ１における計測データの分布密度のばらつきが抑制され、かつ展開画像Ｐ１における測定データの個数が低減される。展開画像Ｐ１に単位格子ごとの計測データを設定した後の処理は、上述した通りである。つまり、展開画像Ｐ１が単位領域Ｕｉに分割され、単位領域Ｕｉごとに面領域Ｓｋに分類され、面領域Ｓｋから面３を表す数式が求められ、最終的に形状モデルが生成される。
【０１０９】
（動作例４）
上述した動作例において求めた平面式（面３の数式）について、さらに頑健性（robustness）の高い推定を行うために、第３処理部１２３は以下の処理（Ｍ推定という）を行うことが可能である。Ｍ推定を行うために、まず、推定の範囲（たとえば、±５ｍｍ）、収束条件（たとえば、±１ｍｍ）、繰り返し回数が定められる。
【０１１０】
（１）第３処理部１２３は、いずれかの面領域Ｓｋに含まれる測定点（単位格子を代表する測定点でもよい）を用いて動作例１と同様の手順で面３を表す数式を求める。以下、この数式で表される面３を候補面と呼ぶ。さらに、（２）第３処理部１２３は、候補面から推定の範囲の立体空間に含まれる測定点を用いて、面３の数式を再計算する。
【０１１１】
次に、（３）第３処理部１２３は、再計算の用いた測定点について候補面との距離（つまり、候補面に対する誤差）を求め、距離に応じた重み係数を定める。重み係数は、１以下の値であって、たとえば、｛１−（距離／推定の範囲）２｝２などの値に設定される。第３処理部１２３は、（４）この重み係数を測定点の座標値に乗じた値を、測定点の座標値に用いて面３の数式を再計算する。
【０１１２】
そして、第３処理部１２３は、求めた数式で表される面３を次の候補面とし、上述した（２）から（４）の処理を、収束条件が満たされるか、繰り返し回数に達するまで繰り返す。このような処理によって、面３の数式に対する寄与度に応じた重み係数を測定点に適用し、面３の数式を決定する際に、誤差の大きい異常値の影響を低減させ、結果的に頑健性の高い面３の推定が可能になる。なお、他の処理については、上述した動作例と同様に行えばよい。
【０１１３】
（動作例５）
動作例３において説明したように、計測装置２０が計測した測定点の分布密度にはばらつきがある。すなわち、計測装置２０は、上述したように、極座標系の座標値を計測しているから、立体物３０までの距離が近いと測定点の分布密度が高くなり、立体物３０までの距離が遠いと測定点の分布密度が低くなる。一方、面３として平面を想定しているにもかかわらず、計測装置２０が計測した面３に歪み（平面からのずれ）があると、面３の数式を求めるために用いる測定点には、求めようとする平面からずれた測定点が含まれることになる。
【０１１４】
ここで、計測装置２０から近い部位の測定点は、計測装置２０から遠い部位の測定点に比べて分布密度が高いから、面３の数式には、計測装置２０から近い部位の測定点の情報が反映されやすくなる。すなわち、計測装置２０から近い部位において面３に歪みがあると、得られた面３の数式は、求めようとする面３の数式からずれる可能性が高くなる。
【０１１５】
また、本実施形態で計測装置２０として使用している３Ｄレーザスキャナは、測定部が水平面に沿って回転し、レーザを垂直面に沿って走査する。そのため、計測装置２０の直上付近をレーザが多数回通過し、計測装置２０の直上付近の走査点の密度が高くなる。つまり、計測装置２０の直上付近の測定点の分布密度は、計測装置２０の特性上から必然的に高くなる。
【０１１６】
また、天井面３２は、計測装置２０の直上付近において計測装置２０からの距離がもっとも小さくなるから、上述した計測装置２０の特定に加えて、計測装置２０からの距離が近いことによって、計測装置２０の直上付近の測定点の分布密度は非常に高くなる。そして、測定点の分布密度が高い領域が、天井面３２の歪みの部分と重なった場合、このような測定点を含む測定点群から求めた面３の数式は、求めようとする天井面３２の数式に対して大幅にずれることになる。その結果、求めた天井面３２の数式を用いて部屋のモデリングを行うと、部屋の寸法に大きな誤差を生み出すことになる。
【０１１７】
ところで、計測装置２０を用いて部屋を囲む面３を計測する場合、計測装置２０は、通常は、部屋の壁面３３から離れた部位に配置される。また、部屋を囲む面３のうち、床面３１および壁面３３は、歪みが生じる可能性が比較的低いが、天井面３２は、歪みが生じる可能性が床面３１および壁面３３に比べて高くなる。一般の住宅であれば、天井を構成する天井材に下向きに作用する荷重は、壁を構成する部材などが受けており、天井材の中央部は照明器具などによる下向きの荷重が作用しているにもかかわらず下から支えられていない。そのため、天井材は、周部よりも中央部が下がりやすくなる。
【０１１８】
以上のことから、天井材に上述のような歪みが生じる場合を考慮すれば、天井面３２に属する測定点を用いて天井面３２を表す数式を求める際には、天井面３２の中央部から求めた測定点を除外することが望ましいと言える。部屋を囲む面３の歪みは、天井面３２に生じやすいから、天井面３２のみを対象にしているが、床面３１あるいは壁面３３であっても、以下に説明する処理を適用することが可能である。
【０１１９】
すなわち、天井面３２の数式を求める際には、図１０に示すように、天井面３２の中央部の領域Ｄ２に含まれる測定点を除外し、天井面３２の周部に定めた領域Ｄ１に含まれる測定点のみを用いる。領域Ｄ１の大きさは、天井面３２の面積によらず、天井面３２の境界線（天井面３２を囲む辺）からおおむね４０ｃｍから５０ｃｍ程度の幅Ｗ１を持つことが望ましい。
【０１２０】
面３の数式を求めるために用いる測定点を、領域Ｄ１に含まれる測定点の範囲に制限するには、天井面３２と壁面３３との境界線をあらかじめ求めることが必要である。一方、境界線を求めるには面３の数式を求めることが必要である。そこで、天井面３２と壁面３３との境界線を求めるために、動作例１と同様の手順で求めた面３を表す数式を求め、この数式で表される面３を候補面とし、候補面に基づいて境界線を仮に求める。
【０１２１】
求めた境界線は、天井面３２と壁面３３との真の境界線に一致しないまでも、真の境界線がこの境界線から所定の距離内（たとえば、１０ｃｍ内）に存在すると推定することには妥当性がある。したがって、天井面３２を囲む境界線を基準にして定めた所定の幅Ｗ１の領域Ｄ１に含まれる測定点を用いた場合でも、天井面３２の中央部の領域Ｄ２に含まれる測定点を除外していることになる。すなわち、候補面に基づいて求めた境界線を用いて領域Ｄ１を設定しても、天井面３２の中央部の測定点を除外し、天井面３２の周部の測定点を抽出することが可能である。
【０１２２】
上述のように、天井面３２のうち面３の数式を求めるために用いる測定点を、天井面３２の周部に関する測定点に制限することによって、求めようとする面３の数式からずれる可能性が高い測定点を除外することが可能になる。すなわち、誤差が生じる可能性のある測定点を除外して面３の数式を求めることにより、面３の数式を精度よく求めることが可能になる。このように天井面３２の周部の領域Ｄ１における測定点を抽出し、抽出した測定点から面３の数式を求める処理は、面抽出部１２の第３処理部１２３が行う。ただし、境界線を抽出する処理は、モデル化部１３が行う処理であるから、第３処理部１２３が、モデル化部１３の処理の一部をサブルーチンとして使用するようにプログラムが構成されていることが望ましい。動作例５では、第１処理部１２１、第２処理部１２２に相当する構成は省略してもよい。つまり、面抽出部１２は、領域Ｄ１における測定点を抽出するほか、第３処理部１２３に相当する処理が可能であればよい。
【０１２３】
ところで、天井面３２の周部の領域Ｄ１における測定点を抽出する場合、上述したように、候補面に基づいて境界線を仮に求める処理が必要である。これに対して、計測装置２０を配置する場所を制限し、かつ計測装置２０が計測した測定点の座標値に制約条件を設定すると、面３の数式を算出するために用いる測定点を制限することが可能である。
【０１２４】
計測装置２０を配置する場所については、たとえば、部屋のすべての壁面３３から計測装置２０までの距離を所定値以上にするという条件を定める。また、測定点の座標値（極座標系の座標値）について、たとえば、計測装置２０がレーザを走査した角度θが所定の角度以上（角度θが鉛直方向を基準にしている場合）であることを制約条件とする。あるいは、測定点の座標値について、測定点までの距離δが所定値以上（極座標系の座標値）であること、または測定点までの距離δについて最小距離に対して１より大きい所定倍率以上であることを制約条件とする。
【０１２５】
制約条件は、天井面３２の周部の測定点を抽出するために定められる。計測装置２０は床面３１の中央に配置することが望ましいが、壁面３３から十分に離してあればよい。部屋が５ｍ×３．５ｍであるとすれば、壁面３３から計測装置２０までの最小距離は、たとえば１．５ｍ以上などに設定される。また、計測装置２０および天井面３２の床面３１からの高さなどによって異なるが、一例を示すと、制約条件は、天井面３２として指定された面領域Ｓｋにおいて、角度θが３５°以上、距離が２．５ｍ以上、または天井面３２と計測装置２０との最小距離の１２０％以上などの形式で定められる。もちろん、これらの数値は一例であり、天井面３２の中央分の測定点を除外し、天井面３２の周部の測定点を抽出するという目的を達成する範囲において、適宜に定めることが可能である。
【０１２６】
天井面３２の周部の領域Ｄ１における測定点を抽出する処理を行う場合には、第３処理部１２３が境界線を仮に定め、さらにこの境界線を用いて領域Ｄ１を定めることが必要である。これに対して、測定点の座標値（角度θあるいは距離δ）に制約条件を設定する場合には、境界線を仮に求める処理が不要であるから、処理負荷が軽減される。すなわち、面３の数式を求める処理において、測定点の個数が制限されることにより処理負荷が軽減される。
【０１２７】
また、制約条件を満足する測定点を抽出する処理は、第３処理部１２３に前置させることが可能である。すなわち、面抽出部１２において面３の数式を求める処理を行う前に、誤差が生じる可能性のある測定点を除外しておくことによって、面３の数式を精度よく求めることが可能になる。なお、動作例５は、上述した他の動作例と組み合わせて用いることが可能である。
【０１２８】
動作例５のように、天井面３２について測定点を抽出する範囲を、壁面３３に比較的近い天井面３２の周部に制限することによって、天井面３２の歪みの影響が軽減され、天井面３２に関する数式を精度よく定めることが可能になる。たとえば、天井面３２のすべての測定点を用いて定めた面３の数式から天井面３２の高さ（床面３１を基準にした高さ）を求めると、高さの実測値に対して１％から２％の誤差が生じている場合でも、上述した処理を行うと、誤差が０．１％から０．２％程度まで改善された。すなわち、一般的に、住宅の天井面３２は床面３１からの高さが２４００ｍｍから〜２７００ｍｍ程度であるから、誤差を±１０ｍｍ以下に抑えることができた。
【０１２９】
なお、上述したように、動作例５では天井面３２の数式を求める場合について説明したが、床面３１あるいは壁面３３の数式を求める場合でも、必要に応じて同様の技術を採用することが可能である。また、動作例５のように、面３の数式を求める際に精度を低下させる可能性がある測定点を除外して面３の数式を求めた後、該当する面３に分布する測定点と面３との関係を求めることによって、面３の歪みを計測することが可能である。
【０１３０】
以上説明したように、本実施形態のモデリング方法は、以下の手順により立体物３０の形状モデルを生成する。すなわち、立体物３０の３次元計測を行う計測装置２０から、立体物３０に属する複数の測定点について３次元の座標値である計測データをデータ取得部１１が取得する。次に、計測データを用いて立体物３０を構成する面３を表す数式を面抽出部１２が生成する。その後、数式を用いて立体物３０を表した形状モデルをモデル化部１３が生成する。
【０１３１】
面抽出部１２は、第１処理と第２処理と第３処理とを行うことが望ましい。第１処理部１２１が行う第１処理では、立体物３０を平面上に展開した２次元画像であって計測データを画素値に持つ展開画像Ｐ１を用い、展開画像Ｐ１を複数の単位領域Ｕｉに分割し、かつ複数の単位領域Ｕｉの向きをそれぞれ求める。第２処理部１２２が行う第２処理では、単位領域Ｕｉごとに、向きを含む条件を用いて、単位領域Ｕｉが属する面３に相当する面領域Ｓｋに分類する。第３処理部１２３が行う第３処理では、面領域Ｓｋごとに面３を表す数式を定める。
【０１３２】
また、本実施形態のモデリング装置１０は、データ取得部１１と面抽出部１２とモデル化部１３とを備える。データ取得部１１は、立体物３０の３次元計測を行う計測装置２０から、立体物３０に属する複数の測定点について３次元の座標値である計測データを取得する。面抽出部１２は、計測データを用いて立体物３０を構成する面３を表す数式を生成する。モデル化部１３は、数式を用いて立体物３０を表した形状モデルを生成する。
【０１３３】
面抽出部１２は、第１処理部１２１と第２処理部１２２と第３処理部１２３とを備えていることが望ましい。第１処理部１２１は、立体物３０を平面上に展開した２次元画像であって計測データを画素値に持つ展開画像Ｐ１を用い、展開画像Ｐ１を複数の単位領域Ｕｉに分割し、かつ複数の単位領域Ｕｉの向きをそれぞれ求める。第２処理部１２２は、単位領域Ｕｉごとに、向きを含む条件を用いて、単位領域Ｕｉが属する面３に相当する面領域Ｓｋに分類する。第３処理部１２３は、面領域Ｓｋごとに面３を表す数式を定める。
【０１３４】
上述の方法および構成では、展開画像Ｐ１を分割した単位領域Ｕｉを、ほぼ同じ向きの単位領域Ｕｉごとにまとめ、まとめた単位領域Ｕｉにより面領域Ｓｋを形成しているから、立体物３０の面３に相当する面領域Ｓｋは、通常は複数個の単位領域Ｕｉを含む。したがって、このような面領域Ｓｋを用いて面３を表す数式を定めると、数個程度の測定点を用いて面３を表す数式を定める場合に比べて外れ値の影響が軽減され、結果的に、立体物３０の形状モデルを精度よく生成することが可能になる。また、立体物３０を構成する面３の一部に関する測定点しか得られない場合でも、面３に関する情報を持つ単位領域Ｕｉを集積して面領域Ｓｋが形成される。したがって、面３を表す数式を定めるために用いることができる情報量が多くなり、それだけ精度のよい数式を定めることが可能になる。
【０１３５】
また、単位領域Ｕｉは、複数の画素を含むスーパーピクセルであって、個々の測定点を個別に扱う場合と比較すると処理の負荷が少ない。しかも、上述したように、単位領域Ｕｉの向きを定める処理と、面領域Ｓｋから面３を表す数式を求める処理とにおいて、統計的処理を行うことができるから、測定点に外れ値が含まれている場合でも、外れ値の影響を軽減ないし除去することが可能である。つまり、立体物３０を構成する面３を表す適正な数式を得ることができ、結果的に、生成される形状モデルの精度が高くなる。
【０１３６】
面抽出部１２は、以下の条件で抽出した測定点を用いて当該１つの面３を表す数式を求める。すなわち、面抽出部１２は、立体物３０のうちの１つの面３と、当該１つの面３を囲む複数の面３とをそれぞれ表す数式を用いて、当該１つの面３を囲む境界線を求める。その後、面抽出部１２は、当該１つの面３に属する測定点のうち、境界線から当該１つの面３の内側に所定の幅Ｗ１で定めた領域Ｄ１内の測定点を抽出する。
【０１３７】
この構成によれば、立体物の１つの面３の周部の測定点のみを用いて当該１つの面３の数式を求めるから、当該１つの面３の中央部に歪みが生じていても、歪みの影響を軽減して当該１つの面３の数式を精度よく求めることが可能になる。
【０１３８】
立体物３０は、床面３１と天井面３２と複数の壁面３３とに囲まれた部屋であってもよい。この場合、上述した１つの面３は天井面３２であり、１つの面３を囲む複数の面３は壁面３３であることが望ましい。
【０１３９】
この構成によれば、天井面３２の周部の測定点のみを用いて天井面３２の数式を求めるから、天井面３２の中央部に歪みが生じていても、歪みの影響を軽減して天井面３２の数式を精度よく求めることが可能になる。
【０１４０】
第３処理部１２３は、測定点のうち計測装置２０に対する位置について設定した制約条件を満足する測定点を用いて面３を表す数式を定めることが望ましい。制約条件は、面３の中央部における測定点を除外するように定められていることが望ましい。
【０１４１】
この構成によれば、立体物３０を構成する面３の中央部の測定点を除外し、面３の境界線に近い周部の測定点のみを用いて面３の数式を定めている。したがって、立体物３０を面３の境界線で表すことによって立体物３０のモデリングを行う場合に、面３の数式を精度よく定めることが可能になる。
【０１４２】
モデリング装置１０は、第２処理部１２２が分類した面領域ごとに色情報を付与する色処理部１７と、展開画像Ｐ１の画素値を色情報に置換したカラー画像の画像情報を出力する出力部１５とを備えることが望ましい。
【０１４３】
この構成によれば、面領域Ｓｋを色によって識別することが可能になるから、出力されたカラー画像の画像情報をモニタ装置の画面に表示するか、プリンタで印刷すると、利用者にとって面領域Ｓｋの認識が容易になる。たとえば、利用者が特定の面領域Ｓｋを指定する場合に、色で区別されるから、不要な面領域Ｓｋを誤って指定する可能性が低減される。
【０１４４】
第２処理部１２２は、前処理の後に、展開画像Ｐ１から単位領域Ｕｉを順に抽出し、前処理で定めた面領域Ｓｋに、抽出した単位領域Ｕｉを対応付けることが望ましい。第２処理部１２２は、前処理において、展開画像Ｐ１から単位領域Ｕｉを順に抽出し、抽出した単位領域Ｕｉを順に分類することにより面領域Ｓｋを定める。
【０１４５】
この構成によれば、展開画像Ｐ１から単位領域Ｕｉを順に抽出して面領域Ｓｋに振り分ける前処理を行っており、単位領域Ｕｉが統合されるに従って面領域Ｓｋの向きが変化することがある。つまり、前処理のみでは、単位領域Ｕｉが面領域Ｓｋに統合されるタイミングによって、統合される単位領域Ｕｉの向きの範囲に相違が生じる可能性がある。言い換えると、前処理のみでは、単位領域Ｕｉが面領域Ｓｋに統合されるタイミングによっては、統合のための条件が変化し、不要な単位領域Ｕｉが面領域Ｓｋに統合される可能性がある。
【０１４６】
これに対して、上述した構成によれば、前処理の後に、面領域Ｓｋの向きを固定した状態で、単位領域Ｕｉを面領域Ｓｋに組み入れる処理を行うから、単位領域Ｕｉを面領域Ｓｋに統合する際の条件が変化しない。つまり、面領域Ｓｋに統合された単位領域Ｕｉは、ほぼ同じ向きであることが保証され、結果的に、面３を表す数式の精度が高くなり、立体物３０を表す形状モデルの精度が高くなる。
【０１４７】
本実施形態のモデリング装置１０において、面３は平面であって、向きは単位領域Ｕｉの法線ベクトルＶｉで表されることが望ましい。
【０１４８】
この構成によれば、面３が平面であるから、数式は線型式になる。しかも、単位領域Ｕｉの法線ベクトルＶｉも平面について求めればよいから、計算量が比較的少なく、多くの測定点の情報を用いて形状モデルを生成するにもかかわらず、処理負荷は比較的小さく、実用的な時間内で処理を行うことが可能である。
【０１４９】
第２処理部１２２は、複数の単位領域Ｕｉのうちの２個ずつの単位領域Ｕｉについて、法線ベクトルＶｉの内積を求め、内積が所定の基準値以上である場合に、内積を求めた２個の単位領域Ｕｉを同じ面領域Ｓｋに分類すればよい。
【０１５０】
この構成によれば、２個の単位領域Ｕｉの向きを評価するために内積を用いており、内積が基準値以上であれば、ほぼ同じ向きであるとみなして、同じ面領域Ｓｋに分類している。つまり、法線ベクトルが求められた後は、内積を求めるという単純な処理で、２つの単位領域Ｕｉの向きがほぼ同じか否かを評価するから、処理負荷の増大が抑制される。
【０１５１】
また、第２処理部１２２は、複数の単位領域Ｕｉのうちの２個ずつの単位領域Ｕｉについて、法線ベクトルＶｉの内積と、立体物３０が存在する実空間に定めた原点から内積を求めた２個の単位領域Ｕｉそれぞれまでの距離とを求めてもよい。第２処理部１２２は、内積が所定の基準値以上であって、距離の差が所定の基準範囲内である場合、内積を求めた２個の単位領域Ｕｉを同じ面領域に分類する。
【０１５２】
この構成によれば、２個の単位領域Ｕｉの向きを評価するために内積だけではなく、個々の単位領域Ｕｉの原点からの距離を用いている。内積が基準値以上であれば、２個の単位領域Ｕｉをほぼ同じ向きであるとみなすが、距離が基準範囲を超えて異なる場合は、２個の単位領域Ｕｉは同じ面を構成していないと判断される。このように、内積に加えて原点からの距離を用いることによって、情報量が増加し、単位領域Ｕｉを分類する精度が高められる。
【０１５３】
あるいは、第２処理部１２２は、複数の単位領域Ｕｉのうちの隣接する２個ずつの単位領域Ｕｉについて、法線ベクトルＶｉの内積と、立体物３０が存在する実空間に定めた原点から内積を求めた２個の単位領域Ｕｉそれぞれまでの距離とを求めてもよい。第２処理部１２２は、この場合も、内積が所定の基準値以上であって、距離の差が所定の基準範囲内である場合、内積を求めた２個の単位領域Ｕｉを同じ面領域に分類する。
【０１５４】
この構成によれば、２個の単位領域Ｕｉの向きを評価するために内積だけではなく、個々の単位領域Ｕｉの原点からの距離を用いている。しかも、単位領域Ｕｉが隣接していることを制限条件に加えている。すなわち、離れた場所に存在する単位領域Ｕｉは同じ面を構成していないと判断される。この構成では、内積に加えて、原点からの距離および２個の単位領域Ｕｉの間の距離を用いるから、情報量が増加し、単位領域Ｕｉを分類する精度が高められる。
【０１５５】
本実施形態のモデリング装置１０において、面３は平面であって、向きは基準の向きに対する単位領域Ｕｉの角度で表されていてもよい。この場合、第２処理部１２２は、複数の単位領域Ｕｉのうちの２個ずつの単位領域Ｕｉについて角度の差を求め、角度の差が所定の基準値以下である場合に、角度の差を求めた２個の単位領域Ｕｉを同じ面領域Ｓｋに分類する。
【０１５６】
この構成によれば、単位領域Ｕｉの向きを角度で表すから、定点から立体物３０を計測し、測定点の座標を定点からの極座標で表す計測装置２０を用いる場合には、座標値を直交座標系に変換する必要がなく、それだけ処理負荷の軽減が可能になる。
【０１５７】
なお、上述した構成例において、立体物３０を構成する面３が平面である場合を例にしたが、面３が数式で表される曲面であれば、上述した技術は曲面に適用することも可能である。また、曲面を適宜の区間に分割し、分割した区間ごとに平面で表すことにより、曲面を複数の平面で近似すれば、上述した技術を適用することが可能である。
【０１５８】
第１処理部１２１は、立体物３０を含む空間に３次元格子を設定し、３次元格子を構成するそれぞれの単位格子に含まれる測定点に関する計測データを用いて、単位格子のそれぞれを代表する計測データを求めてもよい。この場合、当該計測データを展開画像Ｐ１の画素値に用いる。
【０１５９】
この構成では、３次元格子に複数の測定点が含まれるように格子定数を定め、単位格子を代表する測定点を計測データに用いるから、計測装置２０で実測した測定点の分布密度にばらつきがあっても、ほぼ一定間隔で計測データを得ることが可能になる。
【０１６０】
なお、上述した実施形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることはもちろんのことである。
【図１】
2016084389.tif 000003
【図２】
2016084389.tif 000004
【図３】
2016084389.tif 000005
【図４】
2016084389.tif 000006
【図５】
2016084389.tif 000007
【図６】
2016084389.tif 000008
【図７】
2016084389.tif 000009
【図８】
2016084389.tif 000010
【図９】
2016084389.tif 000011
【図１０】
2016084389.tif 000012
【国際調査報告】
2016084389.tif 000013
2016084389.tif 000014
2016084389.tif 000015
2016084389.tif 000016