(57)【要約】【課題】複数の３次元点群データの合成精度の向上を図ること。【解決手段】情報処理装置１００は、第１点群データ１１１から抽出した複数の第１平面に含まれる第１平面と、第２点群データ１１２から抽出した複数の第２平面に含まれる第２平面と、の組み合わせの各々について、組み合わせに含まれる平面間の高さを一致させるように、複数の第２平面の高さを補正し、複数の第１平面の各々の第１平面の高さのうち、補正後の各々の第２平面の高さと一致する高さを特定する。情報処理装置１００は、組み合わせの各々について、特定した高さの２つの組み合わせのうち、高さの組み合わせに含まれる高さ間の差分が、複数の第１平面の各々の第１平面の間の各距離のうち他の距離との差分が大きい特徴的な距離と一致する組み合わせの数を特定する。情報処理装置１００は、組み合わせの各々について、特定した数に基づいて、補正に用いるオフセット量を特定する。【選択図】図１
2018159693.tif 000002
【特許請求の範囲】
【請求項１】
複数の測定位置の各々の測定位置について、前記各々の測定位置から物体までの距離に基づく３次元の点群データを取得し、
前記各々の測定位置について、取得した前記点群データから平面領域に属する点群データを抽出し、
前記複数の測定位置の間で、抽出した前記点群データが属する前記平面領域の間の垂直方向の差分が一致するオフセット量を算出し、
算出した前記オフセット量にしたがって補正された前記点群データを用いて位置合わせを行う、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項２】
前記オフセット量を算出する処理は、
前記複数の測定位置のうちの第１測定位置について、取得した前記点群データから抽出した複数の点群データの各々に属する互いに平行な複数の第１平面領域の各々の第１平面領域の間の各距離のうちの当該各距離と他の距離との差分が所定値以上である距離を特定し、
前記複数の測定位置のうちの第２測定位置について取得した前記点群データから抽出した複数の点群データの各々に属する互いに平行な複数の第２平面領域に含まれる第２平面領域と、前記複数の第１平面領域に含まれる第１平面領域と、の組み合わせの各々について、前記組み合わせに含まれる平面領域間の垂直方向の位置を一致させるように、前記複数の第２平面領域の各々の第２平面領域の垂直方向の位置を補正し、
前記組み合わせの各々について、前記各々の第１平面領域の垂直方向の位置のうち、補正後の前記各々の第２平面領域の垂直方向の位置と一致する位置を特定し、
前記組み合わせの各々について、特定した前記位置の２つの組み合わせのうち、前記位置の２つの組み合わせに含まれる位置間の距離が特定した前記距離と一致する組み合わせの数を特定し、
前記組み合わせの各々について特定した前記数に基づいて、前記オフセット量を特定する、
前記位置合わせを行う処理は、
前記第２測定位置についての前記点群データが、特定した前記オフセット量にしたがって補正された前記点群データと、前記第１測定位置についての前記点群データと、を用いて位置合わせを行う、
ことを特徴とする請求項１に記載の情報処理プログラム。
【請求項３】
前記オフセット量を算出する処理は、
さらに、前記第２測定位置について、前記各々の第２平面領域の間の各距離のうちの当該各距離と他の距離との差分が前記所定値以上である第２距離を特定し、
さらに、前記組み合わせの各々について、特定した前記位置の２つの組み合わせのうち、前記位置の２つの組み合わせに含まれる位置間の距離が特定した前記第２距離と一致する組み合わせの第２数を特定し、
前記オフセット量を算出する処理のうちの前記オフセット量を特定する処理は、
前記組み合わせの各々について特定した前記数および特定した前記第２数に基づいて、前記オフセット量を特定する、
ことを特徴とする請求項２に記載の情報処理プログラム。
【請求項４】
前記オフセット量を算出する処理のうちの前記オフセット量を特定する処理は、
前記組み合わせの各々について特定した前記数と特定した前記第２数とのうち小さい方の数に基づいて、前記オフセット量を特定する、
ことを特徴とする請求項３に記載の情報処理プログラム。
【請求項５】
複数の測定位置の各々の測定位置について、前記各々の測定位置から物体までの距離に基づく３次元の点群データを取得し、
前記各々の測定位置について、取得した前記点群データから平面領域に属する点群データを抽出し、
前記複数の測定位置の間で、抽出した前記点群データが属する前記平面領域の間の垂直方向の差分が一致するオフセット量を算出し、
算出した前記オフセット量にしたがって補正された前記点群データを用いて位置合わせを行う、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項６】
複数の測定位置の各々の測定位置について、前記各々の測定位置から物体までの距離に基づく３次元の点群データを取得する取得部と、
前記各々の測定位置について、前記取得部が取得した前記点群データから平面領域に属する点群データを抽出し、前記複数の測定位置の間で、抽出した前記点群データが属する前記平面領域の間の垂直方向の差分が一致するオフセット量を算出し、算出した前記オフセット量にしたがって補正された前記点群データを用いて位置合わせを行う制御部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理方法、および情報処理装置に関する。
【背景技術】
【０００２】
従来、物体に向けてレーザを照射し、反射光が返ってくるまでの時間を測定することにより、物体までの距離を測定する距離センサがある。また、距離センサ内で光学系を回転させて水平方向のスキャニングを行いながら物体までの距離を測定する、いわゆる２Ｄ（２次元：２−Ｄｉｍｅｎｓｉｏｎｓ）センサがある。また、駆動装置を用いて２Ｄセンサを回転させることにより立体的な物の位置や形状をデータ化する３Ｄ測定と呼ばれる技術がある。
【０００３】
また、従来、異なる測定位置において３Ｄ測定された複数の３次元点群データを１つにするために、複数の３次元点群データの位置合わせに関する技術がある。例えば、それぞれの３次元点群データによって特定される測定位置群を、水平方向に一定の高さで分けて、各水平方向に含まれる点群を２Ｄでマッチングする技術がある。例えば、３次元点群を同じ高さで水平方向に分けるためには、例えば、基準面などに基づき高さの基準を合わせる技術がある。より具体的には、例えば、複数の３次元点群データの各々において、最も大きい面、高さが最も低い面や最も高い面などを基準面として、基準面同士の高さを一致させるように一方の３次元点群データの高さを補正することにより複数の３次元点群データの水平方向の位置を合わせる。
【０００４】
先行技術としては、例えば、２つの測定位置から得た３次元点群データ間の位置合わせに適した特徴部分を含むオーバーラップ部分を算出する技術がある（例えば、以下特許文献１参照。）。また、例えば、移動体の位置情報において、移動前の３次元点群データと、現在の３次元点群データとを取得し、移動前の３次元点群データと現在の３次元点群データとの距離の差が最小となるように現在の３次元点群データの位置を修正する技術がある（例えば、以下特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−６３８６６号公報
【特許文献２】特開２０１６−４５３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、複数の３次元点群データの間で同一の基準面が見つからず、３次元点群データの合成精度が低下する場合がある。
【０００７】
１つの側面では、本発明は、３次元点群データの合成精度の向上を図ることができる情報処理プログラム、情報処理方法、および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、複数の測定位置の各々の測定位置について、前記各々の測定位置から物体までの距離に基づく３次元の点群データを取得し、前記各々の測定位置について、取得した前記点群データから平面領域に属する点群データを抽出し、前記複数の測定位置の間で、抽出した前記点群データが属する前記平面領域の間の垂直方向の差分が一致するオフセット量を算出し、算出した前記オフセット量にしたがって補正された前記点群データを用いて位置合わせを行う情報処理プログラム、情報処理方法、および情報処理装置が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、３次元点群データの合成精度の向上を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、情報処理装置による一動作例を示す説明図である。
【図２】図２は、階段を３Ｄ測定した場合の平面例を示す説明図である。
【図３】図３は、情報処理装置１００の使用例を示す説明図である。
【図４】図４は、オクルージョン例１を示す説明図である。
【図５】図５は、オクルージョン例２を示す説明図である。
【図６】図６は、複数通りの平面の組み合わせについて高さが一致する平面の数で評価した例を示す説明図である。
【図７】図７は、３Ｄ測定を行うための情報処理装置１００の一例を示す説明図である。
【図８】図８は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図９】図９は、平面上の点群および点データ例を示す説明図である。
【図１０】図１０は、情報処理装置１００の機能的構成例を示すブロック図である。
【図１１】図１１は、平面間の距離例を示す説明図である。
【図１２】図１２は、オフセット量Δｈの候補についての評価例１を示す説明図である。
【図１３】図１３は、オフセット量Δｈの候補についての評価例２を示す説明図である。
【図１４】図１４は、数ｆ1と数ｆ2とが異なる例を示す説明図である。
【図１５】図１５は、情報処理装置１００が行う処理手順例を示すフローチャートである。
【図１６】図１６は、図１５で示したオフセット量および評価値の算出処理の詳細な説明を示すフローチャート（その１）である。
【図１７】図１７は、図１５で示したオフセット量および評価値の算出処理の詳細な説明を示すフローチャート（その２）である。
【図１８】図１８は、図１５で示したレジストレーション処理の詳細な説明を示すフローチャートである。
【図１９】図１９は、システム例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下に図面を参照して、本発明にかかる情報処理プログラム、情報処理方法、および情報処理装置の実施の形態を詳細に説明する。
【００１２】
図１は、情報処理装置による一動作例を示す説明図である。情報処理装置１００は、複数の測定位置の各々の測定位置について３Ｄ測定によって得られた３Ｄ点群データを合成することを支援するコンピュータである。本実施の形態では、異なる測定位置として、第１測定位置１０１と第２測定位置１０２とを例に挙げて説明する。第１測定位置１０１について取得された３Ｄ点群データを第１点群データ１１１とする。第２測定位置１０２について取得された３Ｄ点群データを第２点群データ１１２とする。
【００１３】
従来、物体に向けてレーザを照射し、反射光が返ってくるまでの時間を測定することにより、物体までの距離を測定するセンサがある。また、センサ内で光学系を回転させて水平方向のスキャニングを行いながら物体までの距離を測定する、いわゆる２Ｄセンサがある。２Ｄセンサを駆動装置によって回転させることにより３Ｄ測定を行うことができる。
【００１４】
３次元点群データ（以下３Ｄ点群データ）は、例えば、各種シミュレータやＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）などのアプリケーションに利用される。３Ｄ点群データは、点データの集合である。点データによって点が特定可能である。ここでの点とは、２Ｄセンサによってレーザが照射された物体の点である。具体的には、点データは、少なくとも情報処理装置１００から点までの距離に基づく位置情報を含む。情報処理装置１００は、ｘ軸、ｙ軸、ｚ軸などのローカルな直交座標系を用いて各点の位置を表す。より詳細に説明すると、点データは、情報処理装置１００で用いる座標系Ｃにおける各点の位置を示す座標値であるベクトルデータを含む。座標値はｘ座標値、ｙ座標値、ｚ座標値である。また、点群と、点データの一例については、図９を用いて説明する。また、ＣＡＤなどのアプリケーションは、例えば、３Ｄ点群データに基づいてコンピュータ空間上に測定対象の空間を模擬することができる。
【００１５】
ここで、複数の測定位置によって３Ｄ測定が行われる場合における３Ｄ測定からモデルデータの生成までの一連の処理について簡単に説明する。例えば、（１）３Ｄ測定、（２）フィルタリング、（３）レジストレーション、（４）メッシュモデル化というような手順によってＣＡＤなどで用いることが可能なモデルデータが生成される。情報処理装置１００は、異なる測定位置で３Ｄ測定が実施されることにより複数の３Ｄ点群データを取得する（１）。そして、情報処理装置１００は、３Ｄ点群データごとにフィルタリングを行うことによりノイズとなる点群を除去する（２）。例えば、３Ｄ点群データによって特定される点ごとに当該点から近い順から所定数の各点との間で分散を算出する。このとき、点が物品等を形成する要素である場合、近傍の点も密集するので、ノイズとなる孤立点よりも分散が小さくなり、ノイズとなる孤立点であれば、近傍に点が存在してもまばらとなるので、物品の構成要素である点よりも分散が大きくなる。このことから、一例として、情報処理装置１００は、分散が閾値以上である点をノイズとみなして除去する。
【００１６】
そして、情報処理装置１００は、ノイズ除去後に、複数の３Ｄ点群データの位置合わせ処理を行うことにより、１つの３Ｄ点群データとして統合する（３）。情報処理装置１００は、１つに統合された３Ｄ点群データをメッシュ化処理により、３次元の面データであるモデルデータに変換する（４）。なお、メッシュ化処理については、ＣＡＤなどによって行われる。
【００１７】
異なる測定位置で測定された３Ｄ点群の位置合わせをするレジストレーションの方法として、３Ｄ点群の位置合わせにターゲットを用いる方法がある。具体的には、既知の形状のターゲットを測定対象の空間に設置しておき、各測定位置において測定された３Ｄ点群データからターゲット（基準点）を検出することにより複数の３Ｄ点群データを一つに合わせる方法がある。しかし、この方法では、ターゲットを設置する手間が発生し、どの地点にターゲットを設置するのがよいかといった判断が現場の作業員に委ねられることから使用時の手軽さが損なわれる。
【００１８】
このため、ターゲットを用いずに、３Ｄ点群データにより表現される環境の形状から位置合わせを自動的に行う方法が求められる。しかし、複数の３Ｄ点群データごとに点、線や面などの特徴を複数抽出し、ＲＡＮＳＡＣ（ＲＡＮＤＯＭ  Ｓａｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）などのアルゴリズムにしたがって複数の３Ｄ点群データ間の対応点を求めたのでは、計算時間が増大する場合がある。
【００１９】
このことから、３Ｄ点群をそのまま処理するのではなく、それぞれの３Ｄ点群を一定の高さで水平方向にスライスし、そこに含まれる点群を２次元でマッチングすることにより、計算効率を高める技術がある。
【００２０】
このような技術の場合、複数の３Ｄ点群を測定対象の空間に対して同じ高さで水平方向にスライスできることが条件となる。このとき、すべての３Ｄ測定を同じ高さで行えればよいが、測定対象の空間を死角なく測定しようとすると情報処理装置１００の脚の長さを変えて測定したい場合や、机や台に情報処理装置１００を置いて測定したい場合が出てくる。このような背景から、事前に各３Ｄ点群データの高さの基準を合わせる方法が求められる。
【００２１】
３Ｄ点群を高さ方向においてスライスする前に各３Ｄ点群データの高さの基準を合わせる方式として、多くの測定位置で観測可能な床面を検出し、その床面を基準とする方法がある。例えば、法線が鉛直上向きの点群により形成される平面を全て抽出して高さが最も低い面を基準面とする方法１と、法線が鉛直上向きの点群により形成される平面を全て抽出して面積が最も大きい面を基準面とする方法２との２つの方法がある。
【００２２】
しかしながら、上記２つの方法のいずれを採用したとしても、オクルージョンの問題で位置合わせする２つの測定位置で得られた点群データにおいて異なる平面を基準として選択してしまう状況が想定されるので、適用範囲に制約が生じる。測定の現場例については図３に示し、オクルージョン例については、図４および図５に示す。
【００２３】
そこで、情報処理装置１００では、例えば、異なる測定位置で測定される３Ｄ点群の間で測定対象の空間において平面間の相対的な位置関係、すなわち平面間の高度差が一致するオフセット量を算出して高さの基準を合わせる。そして、情報処理装置１００では、２次元のレジストレーションを実行する。これにより、情報処理装置１００は、オクルージョンのある環境下における３Ｄ点群データの合成精度を高めることができる。
【００２４】
ここで、３Ｄ点群データから抽出される互いに平行な複数の水平面領域（以下、平面と省略する。）の高さの値に関する２つの集合データは、集合データ間で３Ｄ測定が行われた際の高さが異なる。このため、同一の平面に関する高さを表していてもその高さの値は異なる。すなわち、座標系Ｃの位置が異なる。同一の平面に関する高さの差が求めたいオフセット量である。ここで、オフセット量はΔｈと表す。このとき、同一の平面であってもデータ間で高さの値は同じにならない。例えば床面と机上の平面との距離、机上の平面と天井面との距離、床面と天井面との距離などといったように同じ平面の組み合わせで距離が計算されれば３Ｄ点群データ間で多少の測定誤差はあっても略同一の値が得られる可能性が高い。よって、平面間の距離を特徴として異なる３Ｄ点群データ間で対応する面を探索することが可能である。３Ｄ点群データの間で対応する平面間の距離が同じであれば、正しい高さ方向の補正量であるオフセット量Δｈを求めて各平面の高さの値を変換すると、３Ｄ点群データの間で同じ高さの値が複数得られることになる。
【００２５】
しかし、測定対象の空間が階段のように、同じような平面が等間隔で繰り返されるような空間である場合、誤ったオフセット量Δｈにおいて異なる３Ｄ点群データの間で平面の高さが同じとなる数が多くなることがある。なお、誤ったオフセット量Δｈにおいて平面の高さが同じとなる数が多くなる例については、図６に示す。
【００２６】
そこで、情報処理装置１００は、第１点群データから得る第１平面群の１面に合わせて、異なる位置での第２点群データから得る第２面群の高さを補正した第２面群の面と高さが同じ第１面間の距離のうち、第１面群の面間の特徴的な距離と同じ距離の数からオフセット量を特定する。これにより、異なる位置での３Ｄ測定結果の合成精度を挙げることができる。
【００２７】
図１において、第１点群データ１１１から抽出される複数の第１平面の高さの集合をＨ1とし、第２点群データ１１２から抽出される複数の第２平面の高さの集合をＨ2とする。また、集合Ｈ2をオフセット量Δｈによって補正した補正後の集合は、Ｈ’2とする。
【００２８】
情報処理装置１００は、第１測定位置１０１と第２測定位置１０２の各々について、各々の測定位置から物体までの距離に基づく３次元の点群情報（第１点群データ１１１および第２点群データ１１２）を取得する。ここで、情報処理装置１００は、各測定位置の点群データごとに点群データに含まれる各点データの座標をｚ軸の正方向が抽出される水平面の法線方向となるように変換しておく。
【００２９】
情報処理装置１００は、各々の測定位置について、取得した点群データから、平面領域に属する点群情報を抽出する。具体的には、情報処理装置１００は、各々の測定位置について、取得した点群データによって特定される３Ｄ点群に基づいて、互いに平行な複数の平面を抽出する。第１点群データ１１１から抽出される互いに平行な複数の平面を、複数の第１平面とする。第２点群データ１１２から抽出される互いに平行な複数の平面を、複数の第２平面とする。ここで、平面の抽出の詳細な処理については後述する。
【００３０】
図１において、第１測定位置１０１と第２測定位置１０２は、図２に示すように階段の踊り場である。第１測定位置１０１は、例えば、図２に示すような上り階段側を測定可能である。第２測定位置１０２は、例えば、図２に示すような下り階段側を測定可能である。第１点群データ１１１から抽出される複数の第１平面は、例えば、天井面、上り階段の踏み面、踊り場の床面などが含まれる。第２点群データ１１２から抽出される複数の第２平面は、例えば、天井面、下り階段の踏み面、踊り場の床面などが含まれる。
【００３１】
ここで、情報処理装置１００は、複数の測定位置で測定された３Ｄ点群データごとに当該３Ｄ点群データから水平面を抽出することもできる。
【００３２】
第１点群データ１１１から抽出される複数の第１平面の高さの値に関する集合は、Ｈ1とする。第２点群データ１１２から抽出される複数の第２平面の高さの値に関する集合は、Ｈ2とする。例えば、複数の第１平面の高さを実線で示し、複数の第２平面の高さを点線で示す。
【００３３】
情報処理装置１００は、複数の測定位置の間で、抽出した点群情報が属する平面領域の間の垂直方向の差分が一致するオフセット量を算出する。
【００３４】
具体的には、情報処理装置１００は、第１測定位置１０１について、複数の第１平面の各々の第１平面の間の各距離のうちの他の距離との差分が所定値以上である距離を特定する。複数の第１平面は、取得した第１点群データ１１１から抽出した複数の点群データの各々に属する互いに平行な第１平面群である。複数の第１平面の各々の第１平面の間の各距離は、例えば、ｄ11，ｄ12，ｄ13，ｄ14，ｄ15，ｄ16である。所定値は、例えば、利用者によって設定されればよい。後述例では所定値をαと表す。ここでは、情報処理装置１００は、他の距離と比較して特徴的な距離を特定する。距離ｄ15と距離ｄ16とは、階段の床面間の距離であり、ほぼ同じである。情報処理装置１００は、距離ｄ15と距離ｄ16を特定しない。ここでは、情報処理装置１００は、距離ｄ11，ｄ12，ｄ13，ｄ14を特定する。特定された距離は、特徴的な距離とも称する。
【００３５】
情報処理装置１００は、第２測定位置１０２について、複数の第２平面に含まれる第２平面と、複数の第１平面に含まれる第１平面と、の組み合わせを生成する。複数の第２平面は、取得した第２点群データ１１２から抽出した複数の点群データの各々に属する互いに平行な第２平面群である。情報処理装置１００は、生成した組み合わせの各々について、組み合わせに含まれる平面の間の垂直方向（ｚ軸方向）の位置を一致させるように、複数の第２平面に含まれる第２平面の垂直方向の位置を補正する。すなわち、情報処理装置１００は、組み合わせに含まれる平面の間の高さを一致させるように、複数の第２平面の高さを補正する。
【００３６】
図１では、２つの組み合わせによる補正例を挙げる。１つ目は、複数の第１平面のうちの天井面と、複数の第２平面のうちの天井面との組み合わせにより補正した例（図１の正しい対応例）である。２つ目は、複数の第１平面のうちの上り階段の上段の床面と、複数の第２平面のうちの踊り場の床面との高さを一致させるように補正した例（図１の誤対応例）である。補正した後の複数の第２平面の高さの値に関する集合は、Ｈ’2とする。
【００３７】
次に、情報処理装置１００は、組み合わせの各々について、複数の第１平面の各々の第１平面の垂直方向の位置のうち、補正後の各々の第２平面領域の垂直方向の位置と一致する位置を特定する。換言すると、情報処理装置１００は、組み合わせの各々について、複数の第１平面の各々の第１平面の高さのうち、補正後の複数の第２平面の各々の第２平面の高さと一致する高さを特定する。
【００３８】
正しい対応例の場合、複数の第１平面に含まれる天井面の高さと、複数の第１平面に含まれる踊り場の床面の高さとが特定される。誤対応例の場合、複数の第１平面に含まれる上り階段の２つの床面の高さと、複数の第１平面に含まれる踊り場の床面の高さとが特定される。
【００３９】
情報処理装置１００は、組み合わせの各々について、特定した位置（高さ）の２つの組み合わせのうち、位置（高さ）の組み合わせに含まれる位置（高さ）間の差分が、特徴的な距離と一致する組み合わせの数を特定する。
【００４０】
正しい対応例の場合、天井面の高さと、踊り場の床面の高さと組み合わせについての差分が距離ｄ13であり、情報処理装置１００は、この差分が特徴的な距離に含まれると判断する。そして、正しい対応例の場合、情報処理装置１００は、組み合わせの数として１を特定する。
【００４１】
また、誤対応例の場合、上り階段の上段の床面の高さと上り階段の下段の床面の高さとの組み合わせについての差分が距離ｄ15であり、情報処理装置１００は、この差分が特徴的な距離に含まれないと判断する。上り階段の上段の床面の高さと踊り場の床面の高さとの組み合わせについての差分が距離ｄ14であり、情報処理装置１００は、この差分が特徴的な距離に含まれると判断する。上り階段の下段の床面の高さと踊り場の床面の高さとの組み合わせについての差分が距離ｄ16であり、情報処理装置１００は、この差分が特徴的な距離に含まれると判断する。したがって、誤対応例の場合、情報処理装置１００は、組み合わせの数として１を特定する。
【００４２】
次に、情報処理装置１００は、組み合わせの各々について特定した数に基づいて、オフセット量を特定する。具体的には、情報処理装置１００は、特定した数が最も大きい組み合わせについてのオフセット量を特定する。図１の例では、正しい対応と誤対応とのいずれの組み合わせについても特定した数が同じであるため、オフセット量として両方の組み合わせについてのオフセット量が特定されてもよいし、他の評価値を導入することによりオフセット量が特定されてもよい。
【００４３】
そして、情報処理装置１００は、特定したオフセット量にしたがって補正された点群情報を用いて位置合わせを行う。具体的には、情報処理装置１００は、第２点群データ１１２が、特定したオフセット量にしたがって補正された第２点群データ１１２と、第１点群データ１１１と、を用いて位置合わせを行う。情報処理装置１００は、第２点群データ１１２に含まれる各点データのｚ座標値に、特定したオフセット量を加算する。これにより、補正された第２点群データ１１２が得られる。なお、位置合わせについては、従来技術を用いればよい。
【００４４】
また、図２や図６を用いて後述するように、複数の第１平面のうち、補正後の複数の第２平面と高さが一致する平面の数を評価値とする場合、誤対応の方が正しい対応よりも高い評価となってしまう。これに対して、図１の例では、誤対応と正しい対応との評価が同じになるため、誤対応についてのオフセット量が選ばれるのを抑制することができる。ひいては、複数の３Ｄ点群データの合成精度の向上を図ることができる。
【００４５】
図２は、階段を３Ｄ測定した場合の平面例を示す説明図である。図２（１）には、階段の踊り場における第１測定位置１０１と、同じ踊り場における第２測定位置１０２とを示す。情報処理装置１００は、第１測定位置１０１から上りの階段を測定する。情報処理装置１００は、第２測定位置１０２から下りの階段を測定する。
【００４６】
図２（２）には、第１測定位置１０１によって測定された第１点群データ１１１から抽出される複数の第１平面と、第２測定位置１０２によって測定された第２点群データ１１２から抽出される複数の第２平面と、を示す（点のハッチングの部分）。複数の第１平面は、例えばＰ11〜Ｐ15である。複数の第２平面はＰ21〜Ｐ26である。
【００４７】
図２において、第１平面Ｐ11と第２平面Ｐ21は、踊り場の天井面である。第１平面Ｐ15と第２平面Ｐ22は、踊り場の床面である。第１平面Ｐ12から第１平面Ｐ14は、それぞれ上り階段の踏み面である。第２平面Ｐ23から第２平面Ｐ25は、それぞれ下り階段の踏み面である。第２平面Ｐ26は、下り階段を下った先にある踊り場の床面である。このように、第１平面Ｐ12から第１平面Ｐ14と、第２平面Ｐ23から第２平面Ｐ25とは、異なる階段の各踏み面である。
【００４８】
ここで、第１測定位置１０１についての複数の第１平面と、第２測定位置１０２についての高さを補正後の複数の第２平面と、の高さが一致する数を評価値とした場合について説明する。なお、この評価値の算出方法の詳細については、図６を用いて説明する。第１平面Ｐ11と第２平面Ｐ21との高さを一致させるよう複数の第２平面を補正した場合より第１平面Ｐ15と第２平面Ｐ25との高さを一致させるよう複数の第２平面を補正した場合の方が、第１平面と補正後の第２平面との高さが一致する数が多くなる。このように、階段のように同じような平面が等間隔で連続すると、誤った対応の方が正しい対応よりも評価が高くなってしまう場合がある。そして、誤ったオフセット量が最適なオフセット量として特定されてしまう。
【００４９】
図１で説明したように、本実施の形態にかかる情報処理装置１００は、階段のように同様の平面が等間隔で連続するような空間を測定対象として位置合わせを行う場合に精度のよいオフセット量を特定することができる。
【００５０】
ここで、図３を用いて、測定の現場例を示し、図４および図５を用いて、オクルージョン例を示す。
【００５１】
図３は、情報処理装置１００の使用例を示す説明図である。図３には、作業が行われる区画の一例として、現場３００Ａ〜現場３００Ｎが例示されている。なお、以下では、現場３００Ａ〜現場３００Ｎを総称する場合に「現場３００」と記載する場合がある。
【００５２】
情報処理装置１００は、例えば、作業者３０１がハンドキャリーを行うポータブル型の装置として実装される。作業者３０１が現場３００Ａ〜現場３００Ｎで作業を行う場合、１つの現場３００につき１台の情報処理装置１００を設置せずともかまわず、１台の情報処理装置１００を各現場３００で持ち回って使用することができる。すなわち、作業者３０１は、現場３００で作業が終了する度に、次の現場３００へハンドキャリー等で情報処理装置１００を持ち込み、次の現場３００の任意の位置に載置することにより、支援データの提供を受けることができる。
【００５３】
このように、情報処理装置１００は、現場３００Ａ〜現場３００Ｎに持ち込むことにより、簡単な操作で周囲の環境をくまなく測定してデジタイズ化することができる。さらに、情報処理装置１００は、環境中の人の測定を行いデジタイズ化した環境情報と紐づけることで、環境中の人の行動を記録したり、人の状態に応じた情報を提供したりするなど、様々な情報支援を可能とする。
【００５４】
図４は、オクルージョン例１を示す説明図である。図４には、上記の法線が鉛直上向きの点群により形成される平面を全て抽出して高さが最も低い面を基準面とする方法１でオクルージョンにより高さの基準合わせが失敗する場面の一例が示される。図４には、情報処理装置１００が測定位置Ｍ１に載置された状態で３Ｄ点群データの測定が実施されると共に、情報処理装置１００が測定位置Ｍ２に載置された状態で３Ｄ点群データの測定が実施される場合が示される。さらに、図４には、測定位置Ｍ１で測定された３Ｄ点群データから抽出される平面のうち高さが最も低い面が太線の実線で示される一方で、測定位置Ｍ２で測定された３Ｄ点群データから抽出される平面のうち高さが最も低い面が太線の破線で示される。図４に示す現場３００Ａには、床面よりも低い位置に階段の踊り場が存在する。かかる階段の踊り場は、測定位置Ｍ２からはレーザが届く一方で、測定位置Ｍ１からは階段が死角となってレーザが届かない。このオクルージョンによって、測定位置Ｍ１で測定された３Ｄ点群データからは床面が最低面として抽出される一方で、測定位置Ｍ２で測定された３Ｄ点群データからは階段の踊り場が最低面として抽出される。この結果、測定位置Ｍ１および測定位置Ｍ２の間で基準面にずれが生じるので、高さの位置合わせに失敗する。
【００５５】
図５は、オクルージョン例２を示す説明図である。図５には、法線が鉛直上向きの点群により形成される平面を全て抽出して面積が最も大きい面を基準面とする方法２でオクルージョンにより高さの基準合わせが失敗する場面の一例が示される。図５には、情報処理装置１００が測定位置Ｍ３に載置された状態で３Ｄ点群データの測定が実施されると共に、情報処理装置１００が測定位置Ｍ４に載置された状態で３Ｄ点群データの測定が実施される場合が示される。さらに、図５には、測定位置Ｍ３で測定された３Ｄ点群データから抽出される平面のうち面積が最も大きい面が太線の実線で示される一方で、測定位置Ｍ４で測定された３Ｄ点群データから抽出される平面のうち面積が最も大きい面が太線の破線で示される。
【００５６】
図５に示す現場３００Ｂは、会議室に大きめの会議卓が置かれており、測定位置Ｍ３では、床面に情報処理装置１００が載置される一方で、測定位置Ｍ４では、会議卓の机上に情報処理装置１００が載置される場合が示される。この場合、測定位置Ｍ３からは床面を広く走査できる一方で、会議卓の机上に載置される測定位置Ｍ４からは会議卓に隠れて床面が一部しか走査できない。かかるオクルージョンによって、測定位置Ｍ３で測定された３Ｄ点群データからは床面が最も面積の大きい面として抽出される一方で、測定位置Ｍ４で測定された３Ｄ点群データからは会議卓の机上の面が最も面積の大きい面として抽出される。この結果、測定位置Ｍ３および測定位置Ｍ４の間で基準面にずれが生じるので、高さの位置合わせに失敗する。
【００５７】
これら図４および図５に示した通り、床面に限らず環境中の特定の場所を検出して基準にする方法では、測定位置によってオクルージョンで基準とする場所が一部または全部隠される状況に弱い。情報処理装置１００では、床面などの特定の面に基準に求める高さの基準合わせは実施しない。上述したように、情報処理装置１００は、点群データ１１１から抽出した複数の第１平面に含まれる第１平面と、点群データ１１２から抽出した複数の第２平面に含まれる第２平面と、の高さが合うようなオフセット量を算出して、高さ方向の位置合わせを行う。そして、情報処理装置１００は、２次元の位置合わせを行う。
【００５８】
図６は、複数通りの平面の組み合わせについて高さが一致する平面の数で評価した例を示す説明図である。図６では、集合Ｈ1に含まれる高さと集合Ｈ2に含まれる高さと、の組み合わせごとに、組み合わせに含まれる高さに基づいてオフセット量Δｈの候補が算出される。すなわち、組み合わせに含まれる集合Ｈ1の高さに対応する平面と、組み合わせに含まれる集合Ｈ2の高さに対応する平面と、の高さが一致するようなオフセット量Δｈの候補が算出される。オフセット量Δｈの候補は、例えば、組み合わせに含まれる集合Ｈ1の高さから、組み合わせに含まれる集合Ｈ2の高さを減算した値である。
【００５９】
そして、組み合わせの各々について、集合Ｈ2を補正した補正後の集合Ｈ’2が算出される。組み合わせの各々について、集合Ｈ1の高さと、補正後の集合Ｈ’2の高さとの差分が所定の範囲に収まる個数が評価値として算出される。そして、算出された評価値が最大となる組み合わせについてのオフセット量Δｈの候補がオフセット量Δｈとして特定される。
【００６０】
図６には、第１測定位置１０１における天井面と、第２測定位置１０２における天井面との位置が合うように補正した正しい対応例を示す。また、図６には、第１測定位置１０１における上り階段の床面と第２測定位置１０２における踊り場の床面との位置が合うように補正した誤対応例を示す。正しい対応例よりも誤対応例の方が評価値が大きくなり、誤対応についてのオフセット量Δｈの候補が正しいオフセット量として特定されてしまう。
【００６１】
測定対象の空間が階段のような場所でなければ、高さが一致する数によってオフセット量を特定するとよい。しかしながら、階段のように同様の平面が等間隔で連続するような空間が測定対象であると、例えば異なる階段の踏み面同士を一致させた場合に第１平面と補正後の第２平面との高さが一致する数が多くなる場合がある。このような場合、誤ったオフセット量が最適なオフセット量として特定されてしまうことがある。
【００６２】
そこで、情報処理装置１００は、第１平面及び第２平面の組み合わせごとに、各第１平面のうち、組み合わせの高さが合うように補正した各第２平面の面と高さが一致する第１平面間の距離のうち、各第１平面間の特徴的な距離と一致する距離の数を求める。そして、情報処理装置１００は、第１平面及び第２平面の組み合わせごとに求めた一致数に基づいて、オフセット量を特定する。これにより、階段のように同様の平面が等間隔で連続する際に、特徴的な水平面間の距離が一致するか否かを判定することができる。異なる位置で３Ｄ測定した複数の点群データの合成精度の向上を図ることができる。
【００６３】
図７は、３Ｄ測定を行うための情報処理装置１００の一例を示す説明図である。図７において、情報処理装置１００は、駆動装置７０１と、測定装置７０２と、制御装置７０３と、を有する。情報処理装置１００は、例えば、水平床面に設置されて使用される。図７において、情報処理装置１００の筐体の形状については、例えば、いずれの方向から情報処理装置１００を見ても外形が略同一となる形状となっているが、これに限らない。
【００６４】
また、情報処理装置１００の３脚部分は、例えば伸縮することができる。情報処理装置１００の３脚部分の伸縮により情報処理装置１００の高さを変更することができる。情報処理装置１００は、３脚部分により、例えば、３０ｃｍから１３０ｃｍまでの高さを変更することができる。
【００６５】
駆動装置７０１は、回転軸７１０（図７中、ｚ軸に対応）を中心にパン方向ｄ１に回転するモータである。以下の説明では、パン方向ｄ１の回転角（図７中、ｘ軸に対する角度）を「回転角θh（θh＝０〜３６０°（度））」と表記する場合がある。ただし、駆動装置７０１が初期位置のときの正面方向とｘ軸方向とが一致するものとする。
【００６６】
測定装置７０２は、チルト方向ｄ２に走査しながら光を物体に向けて照射し、反射光を受光するまでの時間を用いて自装置から物体までの距離を測定する２Ｄセンサである。ここでの光とは、例えば、赤外線などのレーザである。測定装置７０２は、光が赤外線であれば、自装置から物体までの距離に限らず、赤外線の反射強度や色情報も同時に得ることができる。チルト方向ｄ２は、チルト軸７２０を中心に回転する方向である。すなわち、測定装置７０２は、チルト軸７２０を中心に光学系（例えば、後述の図８に示す発光部８１１、受光部８１２等）を回転させながら、図７中の太線矢印で示す方向（照射方向）に光を照射する。
【００６７】
情報処理装置１００において、測定装置７０２は、パン方向ｄ１に対してチルト方向ｄ２が垂直となるように駆動装置７０１に取り付けられる。そして、測定装置７０２は、回転軸７１０を中心として円軌道に沿って移動される状態で、チルト方向ｄ２に走査しながら光（以下、「レーザ」という）を物体に向けて照射して物体までの距離を測定する。
【００６８】
この際、測定装置７０２は、チルト方向ｄ２に「０〜３６０°」の範囲でレーザを照射する。チルト角θｖは、回転軸７１０に対するチルト方向ｄ２の角度である。より詳細に説明すると、例えば、測定装置７０２は、チルト方向ｄ２に０°から３６０°まで所定の角度ずつ移動される度に、この測定を行う。例えば、所定角度が０．２５°の場合、測定装置７０２は、１周当たり２５［ｍｓｅｃ］で約１４４０点の測定を行う。また、測定装置７０２は、例えば、駆動装置７０１によってパン方向ｄ１に、「０〜３６０°」まで所定の角度ずつ移動される度に、この測定を行う。ただし、チルト方向とパン方向の両方について０°から３６０°まで測定しなくてもよい。チルト方向とパン方向のどちらか一方が０から１８０°の測定を実施すれば、全方位の測定を行うことができる。また、全方位に限らず、角度を指定して測定範囲を制限してもよい。これにより、２Ｄセンサである測定装置７０２を利用して３Ｄ測定を行うことができる。
【００６９】
また、制御装置７０３は、例えば、表示部７０４を有する。表示部は、プロジェクタであってもよいし、ディスプレイなどであってもよい。
【００７０】
（情報処理装置１００のハードウェア構成例）
図８は、情報処理装置１００のハードウェア構成例を示すブロック図である。情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８０１と、メモリ８０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）８０３と、プロジェクタ８０４と、スピーカ８０５と、駆動装置７０１と、測定装置７０２と、を有する。また、各構成部は、バス８００によってそれぞれ接続される。
【００７１】
ここで、ＣＰＵ８０１は、情報処理装置１００の全体の制御を司る。メモリ８０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ８０１のワークエリアとして使用される。メモリ８０２に記憶されるプログラムは、ＣＰＵ８０１にロードされることで、コーディングされた処理をＣＰＵ８０１に実行させる。
【００７２】
Ｉ／Ｆ８０３は、有線または無線のネットワークに接続され、ネットワーク８１０を介して他のコンピュータ（例えば、利用者のパーソナル・コンピュータ）に接続される。そして、Ｉ／Ｆ８０３は、ネットワーク８１０と自装置内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。プロジェクタ８０４は、例えば、表示部７０４である。プロジェクタ８０４は、画像や映像を大型スクリーンなどに投影することにより表示する装置である。プロジェクタ８０４は、例えば、モデルデータが示すモデルをスクリーンに投影してもよい。スピーカ８０５は、電気によって音を出す。具体的には、スピーカ８０５は、例えば、音楽や音声などの音を生成する。なお、図８に示した制御装置７０３は、例えば、ＣＰＵ８０１と、メモリ８０２と、Ｉ／Ｆ８０３と、プロジェクタ８０４と、スピーカ８０５と、を含む。
【００７３】
駆動装置７０１は、回転軸７１０を中心にパン方向ｄ１に回転するモータである。測定装置７０２は、発光部８１１と、受光部８１２と、駆動部８１３と、センサ制御部８１４と、を含む。発光部８１１は、レーザを照射する光源であり、例えば、半導体レーザである。受光部８１２は、反射光を受光する。駆動部８１３は、チルト軸７２０を中心にチルト方向ｄ２に発光部８１１を回転させる。センサ制御部８１４は、チルト方向ｄ２に走査しながらレーザを物体に向けて照射し、反射光を受光するまでの時間を用いて自装置から物体までの距離を測定する。センサ制御部８１４は、距離に基づいて座標系Ｃにおける物体の座標値を点の座標データとしてメモリ８０２などに出力する。
【００７４】
なお、情報処理装置１００は、上述した構成部のほかに、例えば、ディスクドライブ、ディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などを有することにしてもよい。また、情報処理装置１００は、例えば、作業者３０１などによる操作入力を受け付けることが可能な入力装置、プロジェクタ８０４と異なるディスプレイなどを有することにしてもよい。
【００７５】
図９は、平面上の点群および点データ例を示す説明図である。まず、平面について説明する。平面Ｐ1上の点群は、｛ｐ11，ｐ12，…，ｐ1M1｝である。平面Ｐｕ上の点群は、｛ｐu1，ｐu2，…，ｐuMu｝である。
【００７６】
点ｐuvの点データは、｛ｘuv，ｎuv，ｃuv，Ｉuv｝である。ｘuvは、点ｐuvの位置ベクトルである。ｘuvは、ｘ座標値，ｙ座標値，ｚ座標値を含む。ｎuvは、点ｐuvの法線方向ベクトルである。ｃuvは、点ｐuvの色情報ベクトルである。ｃuvは、Ｒ値，Ｇ値，Ｂ値を含む。Ｉuvは、点ｐuvの赤外線反射光強度情報である。なお、点群データとは点データの集合である。例えば、各平面Ｐの面積は、各平面Ｐ上の点群数Ｍuによって近似される。例えば、ｘuv，ｎuvに基づいて、水平方向の位置合わせや最近傍点、点間の距離が計算される。
【００７７】
（情報処理装置１００の機能的構成例）
図１０は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、取得部１００１と、制御部１００２と、を有する。取得部１００１は、駆動装置７０１と測定装置７０２によって実現される。また、制御部１００２は、抽出部１０１１と、距離算出部１０１２と、オフセット量算出部１０１３と、第１算出部１０１４と、第２算出部１０１５と、特定部１０１６と、位置合わせ部１０１７と、を有する。
【００７８】
抽出部１０１１から位置合わせ部１０１７までの制御部１００２の処理は、例えば、メモリ８０２などによって実現される。図８に示すＣＰＵ８０１がアクセス可能なメモリ８０２などに記憶されたプログラムにコーディングされる。そして、ＣＰＵ８０１がメモリ８０２などから該プログラムを読み出して、プログラムにコーディングされた処理を実行する。これにより、制御部１００２の処理が実現される。また、制御部１００２の処理結果は、例えば、メモリ８０２などに記憶される。
【００７９】
取得部１００１は、複数の測定位置の各々の測定位置について、各々の測定位置から物体までの距離に基づく３Ｄ点群データを取得する。具体的には、取得部１００１は、例えば、各々の測定位置について、光を照射しながら走査すると共に物体から反射される反射光を用いて、自情報処理装置１００から物体までの距離に基づく３Ｄ点群データを取得する。
【００８０】
本実施の形態では、取得部１００１は、３Ｄ点群データとして、第１測定位置１０１についての第１点群データ１１１と、第２測定位置１０２についての第２点群データ１１２と、を取得する。なお、測定位置が３つ以上ある場合、３つの測定位置のうちの２つの測定位置における３Ｄ点群データを合成した後の３Ｄ点群データを、第１点群データ１１１としてもよい。そして、３つの測定位置のうちの残余の測定位置における３Ｄ点群データを第２点群データ１１２としてもよい。これにより３つ以上の測定位置において測定された３Ｄ点群データを精度よく合成することができる。
【００８１】
抽出部１０１１は、例えば、各々の測定位置について、各々の測定位置についての３Ｄ点群データから、測定対象の空間における平面を抽出する。具体的には、抽出部１０１１は、例えば、ＲＡＮＳＡＣなどのアルゴリズムにしたがって、取得部１００１により取得された３Ｄ点群データによって特定される３Ｄ点群が形成する平面を抽出する。
【００８２】
ＲＡＮＳＡＣなどのアルゴリズムに基づいて平面を抽出する方法について、より詳細に説明する。抽出部１０１１は、例えば、３Ｄ点群データによって特定される３Ｄ点群をサンプルとする。そして、抽出部１０１１は、サンプルから３つの点をランダムに抽出する。続いて、抽出部１０１１は、３Ｄ点群データによって特定される３Ｄ点群のうち、サンプルからランダムに抽出された３点により定まる平面モデルから所定の距離以内にある点群をさらに抽出する。所定の距離については、予め定められてあればよく、特に限定しない。同一平面モデル上の点同士であっても、情報処理装置１００からの距離が遠ければ、点間の距離は遠くなる。このため、所定の距離については、例えば、サンプルとして選択された点ｐの点データに含まれる位置ベクトルによって設定されてもよい。
【００８３】
ここで、平面モデルから所定の距離以内にある点群を平面モデル上に存在する点群とみなし、以降の処理を説明することとする。抽出部１０１１は、平面モデル上に存在する点群の数が所定の閾値以上であるか否かを判定する。抽出部１０１１は、平面モデル上の点群が閾値以上である場合、平面モデルを定義するパラメータと、この平面モデルに含まれる点群とが対応付けられた平面データをメモリ８０２に保存する。パラメータとしては、例えば３点の座標または平面の方程式等が挙げられる。一方、抽出部１０１１は、平面モデル上に存在する点群の数が閾値未満である場合、平面モデルに関する平面データを保存しない。その後、抽出部１０１１は、サンプルからの３点のランダムサンプリングおよびそれに伴う平面データの保存を所定の試行回数にわたって繰り返し実行する。このような平面抽出方法によって、一定数以上の点群が平面モデルからの法線方向へ向けて一定距離以内にある平面モデルを求めることができる。なお、一定距離は、互いに平行な複数の平面モデル間の最小の距離となる。一定距離は、平面モデルの法線方向において異なる平面モデルとして抽出されるための最小の距離である。換言すると、例えば、互いに平行な複数の平面モデル間の距離は、一定距離以上である。以下では、平面モデルにより規定される平面上で３Ｄ点群が所定の密度以上で存在する部分のことを「平面」と記載する場合がある。
【００８４】
ここで、抽出部１０１１は、複数の測定位置で測定された３Ｄ点群データごとに当該３Ｄ点群データから平面を抽出することもできる。この場合、抽出部１０１１は、各測定位置の３Ｄ点群データの間で平面の方向を算出する。そして、抽出部１０１１は、各測定位置の３Ｄ点群データごとに当該３Ｄ点群データに含まれる各点が持つ座標をｚ軸の正方向が平面の法線方向となるように変換する。その上で、抽出部１０１１は、上述の通り、ＲＡＮＳＡＣなどのアルゴリズムにしたがって、各測定位置の３Ｄ点群データごとに当該３Ｄ点群データから平面を抽出する。
【００８５】
さらに、抽出部１０１１は、次のような基準にしたがって２つ以上の任意の数の３Ｄ点群データをレジストレーションの実行対象としてグループ化できる。例えば、抽出部１０１１は、取得部１００１により３Ｄ点群データが取得される度に、３Ｄ点群データをそれまでに取得された３Ｄ点群データとグループ化することにより、レジストレーションの実行対象とすることができる。さらに、抽出部１０１１は、過去に取得された３Ｄ点群データの中でも所定の期間（例えば１０分間以内）に取得された３Ｄ点群データに絞ってグループ化してもよい。また、抽出部１０１１は、グループ化を行う３Ｄ点群データの組み合わせを入力装置（図示省略）を介して受け付けてもよい。
【００８６】
このように、各測定位置の３Ｄ点群データごとに３Ｄ点群データから平面が抽出されると、抽出部１０１１は、座標系Ｃの原点に基づいて各平面の高さ（ｚ座標）を算出する。
【００８７】
ここで、図１で説明したように、第１測定位置１０１で測定された第１点群データ１１１から抽出される複数の第１平面の高さの集合をＨ1とし、第２測定位置１０２で測定された第２点群データ１１２から抽出される複数の第２平面の高さの集合をＨ2とする。そして、集合Ｈ1と集合Ｈ2とは以下のように表す。ＭとＮは正の整数である。Ｍは複数の第１平面の数である。Ｎは複数の第２平面の数である。
【００８８】
Ｈ1＝｛ｈ11，ｈ12，・・・，ｈ1M｝
Ｈ2＝｛ｈ21，ｈ22，・・・，ｈ2N｝
【００８９】
また、後述するように、オフセット量Δｈまたはオフセット量Δｈの候補によって補正した平面の高さの集合をＨ’2とする。集合Ｈ’２は以下のように表す。
【００９０】
Ｈ’2＝｛ｈ’21，ｈ’22，…，ｈ’2N｝
＝｛ｈ21＋Δｈ，ｈ22＋Δｈ，・・・，ｈ2N＋Δｈ｝
【００９１】
図１１は、平面間の距離例を示す説明図である。図１１には、複数の第１平面の高さの集合Ｈ1と、複数の第２平面の高さの集合Ｈ2とを示す。
【００９２】
集合Ｈ1として、Ｈ1｛ｈ11，ｈ12，ｈ13，ｈ14｝が得られる。また、集合Ｈ2として、Ｈ2｛ｈ21，ｈ22，ｈ23，ｈ24｝が得られる。図１１において、集合Ｈ1に含まれる高さは、実線の太線で示される。集合Ｈ2に含まれる高さは、点線の太線で示される。
【００９３】
次に、距離算出部１０１２は、第１測定位置１０１について、互いに平行な複数の第１平面の各々の第１平面の間の各距離のうちの他の距離との差分が所定値以上である距離を特定する。また、距離算出部１０１２は、第２測定位置１０２について、互いに平行な複数の第２平面の間の各距離のうちの他の距離との差分が所定値以上である第２距離を特定する。
【００９４】
具体的には、距離算出部１０１２は、例えば、第１測定位置１０１について、複数の第１平面に含まれる２つの第１平面の組み合わせごとに、組み合わせに含まれる２つの第１水平面間の距離を算出する。具体的には、距離算出部１０１２は、例えば、第１水平面の高さの差分を第１平面間の距離として算出する。第１平面間の差分は、例えば、２つの第１平面のうち高い方の第１平面の高さから低い方の第１平面の高さを減算することにより得られる。
【００９５】
また、具体的には、距離算出部１０１２は、例えば、第２測定位置１０２について、複数の第２平面に含まれる２つの第２平面の組み合わせごとに、組み合わせに含まれる２つの第２平面間の距離を算出する。具体的には、距離算出部１０１２は、例えば、第２水平面の高さの差分を第２平面間の距離として算出する。第２平面間の差分は、例えば、２つの第２平面のうち高い方の第２平面の高さから低い方の第２平面の高さを減算することにより得られる。
【００９６】
第１測定位置１０１において、高さｈ11と高さｈ12の差分が距離ｄ11である。高さｈ11と高さｈ13との差分が距離ｄ12である。高さｈ11と高さｈ14との差分が距離ｄ13である。高さｈ12と高さｈ13との差分が距離ｄ15である。高さｈ12と高さｈ14との差分が距離ｄ14である。高さｈ13と高さｈ14との差分が距離ｄ16である。
【００９７】
第２測定位置１０２において、高さｈ21と高さｈ22の差分が距離ｄ21である。高さｈ21と高さｈ13との差分が距離ｄ22である。高さｈ21と高さｈ14との差分が距離ｄ23である。高さｈ22と高さｈ13との差分が距離ｄ25である。高さｈ22と高さｈ14との差分が距離ｄ24である。高さｈ23と高さｈ24との差分が距離ｄ26である。
【００９８】
次に、距離算出部１０１２は、例えば、各々の測定位置について、平面間の距離のうち、距離の差が閾値以下となる距離が存在しない距離を抽出する。すなわち、距離算出部１０１２は、似たような距離が存在しないような特徴的な距離を抽出する。
【００９９】
距離算出部１０１２は、第１測定位置１０１について、特徴的な距離として以下集合Ｄ1を抽出する。なお、εが閾値である。εは０に限りなく近い値である。
【０１００】
Ｄ1：｜ｄ11−ｄ1j｜≦ε（ｉ≠ｊ）となるｄ1jが存在しないｄ1iを要素とする集合
【０１０１】
第１測定位置１０１において、距離ｄ15と距離ｄ16との差は０に近いため、Ｄ1は｛ｄ11，ｄ12，ｄ13，ｄ14｝となる。
【０１０２】
また、距離算出部１０１２は、第２測定位置１０２については、特徴的な距離として以下集合Ｄ２を抽出する。
【０１０３】
Ｄ2：｜ｄ21−ｄ2j｜≦ε（ｉ≠ｊ）となるｄ2jが存在しないｄ2iを要素とする集合
【０１０４】
第２測定位置１０２において、距離ｄ25と距離ｄ26との差は０に近いため、Ｄ2は｛ｄ21，ｄ22，ｄ23，ｄ24｝となる。
【０１０５】
次に、オフセット量算出部１０１３は、複数の第１平面に含まれる第１平面と、複数の第２平面に含まれる第２平面と、の組み合わせを生成する。オフセット量算出部１０１３は、組み合わせの各々について、組み合わせに含まれる平面間の垂直方向の位置を一致させるように、複数の第２平面の垂直方向の位置を補正する。ここで、垂直方向とは、ｚ軸方向や高さ方向である。
【０１０６】
具体的には、オフセット量算出部１０１３は、組み合わせの各々について、組み合わせに含まれる平面間の距離をオフセット量Δｈとして算出する。具体的には、オフセット量算出部１０１３は、集合Ｈ1に含まれる複数の高さｈ1と、集合Ｈ2に含まれる複数の高さｈ2との組み合わせについて、組み合わせに含まれる高さｈ1と高さｈ2との差分値をオフセット量Δｈの候補として算出する。例えば、差分値とは、組み合わせに含まれる高さｈ1から高さｈ2を減算した値である。
【０１０７】
そして、オフセット量算出部１０１３は、組み合わせの各々について、複数の第２平面の高さに、算出したオフセット量Δｈの候補を加算する。これにより、組み合わせに含まれる平面間の垂直方向の位置が一致するように、複数の第２平面の垂直方向の位置が補正される。
【０１０８】
次に、第１算出部１０１４は、平面の組み合わせの各々について、各々の第１平面の垂直方向の位置のうち、補正後の記各々の第２平面領域の垂直方向の位置と一致する位置を特定する。換言すると、第１算出部１０１４は、平面の組み合わせの各々について、オフセット量Δｈの候補ごとに、集合Ｈ1とオフセット量Δｈの候補に基づき補正した集合Ｈ’2とで一致する高さが存在する平面の高さの集合を特定する。図１１における集合Ｈ2をオフセット量Δｈの候補に基づき補正した集合Ｈ’2は、｛ｈ’21，ｈ’22，ｈ’23，ｈ’24｝である。第１測定位置１０１についての一致する高さが存在する平面の高さの集合は、Ｇ1と表す。第２測定位置１０２についての一致する高さが存在する平面の高さの集合は、Ｇ2と表す。具体的には、第１算出部１０１４は、以下のように集合Ｇ1および集合Ｇ2を特定する。
【０１０９】
Ｇ1：｜ｈ1i−ｈ’2j｜≦αとなるｈ’2jが存在するｈ1iを要素とする集合
Ｇ2：｜ｈ1i−ｈ’2j｜≦αとなるｈ’1jが存在するｈ’2jを要素とする集合
【０１１０】
所定値αは、予め設定された値であり、特に限定しない。ここでは、所定値αは、例えば、水平面の抽出時に異なる水平面として抽出する水平面間の最低間隔の１／２より小さい値とする。
【０１１１】
次に、第１算出部１０１４は、組み合わせの各々について、第１測定位置１０１について特定した位置の２つの組み合わせのうち、位置の２つの組み合わせに含まれる位置間の距離が、集合Ｄ1に含まれる距離と一致する組み合わせの数を特定する。ここでの位置は、高さ方向の位置である。このため、具体的には、第１算出部１０１４は、平面の組み合わせの各々について、集合Ｇ1に含まれる高さの２つの組み合わせのうち、この組み合わせに含まれる高さの差分が集合Ｄ1に含まれる組み合わせの数を特定する。第１測定位置１０１について特定される数はｆ1と表す。
【０１１２】
また、第１算出部１０１４は、平面の組み合わせの各々について、第２測定位置１０２について特定した位置の２つの組み合わせのうち、位置の２つの組み合わせに含まれる位置間の距離が、集合Ｄ2に含まれる距離と一致する組み合わせの数を特定する。具体的には、第１算出部１０１４は、平面の組み合わせの各々について、集合Ｇ2に含まれる高さの２つの組み合わせのうち、この組み合わせに含まれる高さの差分が集合Ｄ2に含まれる組み合わせの個数を特定する。第２測定位置１０２について特定される数はｆ2と表す。
【０１１３】
第１算出部１０１４は、平面の組み合わせの各々について、各々の測定位置について算出した組み合わせの個数のうち値が小さい方を評価値とする。評価値が大きい値であるほど、評価が高いこととする。
【０１１４】
ここで、図１１および図１２を用いて、２つのオフセット量Δｈの候補について、集合Ｇ1および集合Ｇ2と数ｆ1および数ｆ2とを特定する例を説明する。
【０１１５】
図１２は、オフセット量Δｈの候補についての評価例１を示す説明図である。図１２には、オフセット量Δｈの候補がｈ11−ｈ21の場合を例に挙げて説明する。まず、第１測定位置１０１について集合Ｇ1および数ｆ1を求める例について説明する。第１算出部１０１４は、高さｈ11と高さｈ’22との差がα以下であるため、高さｈ11を集合Ｇ1に入れる。第１算出部１０１４は、高さｈ12と集合Ｈ’2に含まれる各高さとの差がαより大きいため、高さｈ12を集合Ｇ1に入れない。第１算出部１０１４は、高さｈ13と集合Ｈ’2に含まれる各高さとの差がαより大きいため、高さｈ13を集合Ｇ1に入れない。第１算出部１０１４は、高さｈ14と高さｈ’24との差がα以下であるため、高さｈ14を集合Ｇ1に入れる。集合Ｇ1は以下のようになる。
【０１１６】
Ｇ1＝｛ｈ11，ｈ14｝
【０１１７】
そして、第１算出部１０１４は、集合Ｇ1に含まれる高さの組み合わせのうち、組み合わせの高さの差分が集合Ｄ1に含まれる組み合わせの数を数ｆ1とする。
【０１１８】
集合Ｇ1に含まれる高さの組み合わせは１通りである。高さｈ11と高さｈ14との差はｄ13であり、集合Ｄ1に含まれる。このため、第１算出部１０１４は、数ｆ1を１とする。
【０１１９】
次に、第２測定位置１０２について集合Ｇ2および数ｆ2を求める例について説明する。第１算出部１０１４は、例えば、高さｈ’21と高さｈ11との差がα以下であるため、高さｈ’21を集合Ｇ2に入れる。第１算出部１０１４は、高さｈ’22と高さｈ14との差がα以下であるため、高さｈ’22を集合Ｇ2に入れる。第１算出部１０１４は、高さｈ’23と集合Ｈ1に含まれる各高さとの差がαより大きいため、高さｈ’23を集合Ｇ2に入れない。第１算出部１０１４は、高さｈ’24と集合Ｈ1に含まれる各高さとの差がαより大きいため、高さｈ’24を集合Ｇ2に入れない。集合Ｇ２は以下のようになる。
【０１２０】
Ｇ2＝｛ｈ’21，ｈ’22｝
【０１２１】
そして、第１算出部１０１４は、集合Ｇ2に含まれる高さの組み合わせのうち、組み合わせの高さの差分が集合Ｄ2に含まれる組み合わせの数をｆ2とする。
【０１２２】
集合Ｇ2に含まれる高さの組み合わせは１通りである。高さの組み合わせに含まれる高さｈ’21と高さｈ’22との差はｄ21であり、集合Ｄ2に含まれる。このため、第１算出部１０１４は、数ｆ2を１とする。
【０１２３】
第１算出部１０１４は、オフセット量の候補について、数ｆ1と数ｆ2とのうち小さい方を評価値として算出する。ここで、オフセット量Δｈの候補がｈ11−ｈ21の場合の評価値は、１である。
【０１２４】
図１３は、オフセット量Δｈの候補についての評価例２を示す説明図である。図１３には、オフセット量Δｈの候補がｈ12−ｈ22の場合を例に挙げて説明する。第２測定位置１０２について説明する。第１算出部１０１４は、高さｈ11と集合Ｈ’2に含まれる各高さとの差が所定値αより大きいため、高さｈ11を集合Ｇ1に入れない。第１算出部１０１４は、高さｈ12と高さｈ’22との差がα以下であるため、高さｈ12を集合Ｇ1に入れる。第１算出部１０１４は、高さｈ13と高さｈ’23との差がα以下であるため、高さｈ13を集合Ｇ1に入れる。第１算出部１０１４は、高さｈ14と高さｈ’24との差が所定値α以下であるため、高さｈ14を集合Ｇ1に入れる。
【０１２５】
Ｇ1＝｛ｈ12，ｈ13，ｈ14｝
【０１２６】
そして、第１算出部１０１４は、集合Ｇ1に含まれる高さの組み合わせのうち、組み合わせの高さの差分が集合Ｄ1に含まれる組み合わせの数ｆ1を特定する。
【０１２７】
集合Ｇ1に含まれる高さの組み合わせは３つある。まず、高さｈ12と高さｈ13との差はｄ15であり、集合Ｄ1に含まれない。高さｈ12と高さｈ14との差はｄ14であり、集合Ｄ1に含まれる。高さｈ13と高さｈ14との差はｄ16であり、集合Ｄ1に含まれない。このため、第１算出部１０１４は、数ｆ1を１とする。
【０１２８】
第２測定位置１０２について説明する。第１算出部１０１４は、高さｈ’21と集合Ｈ1に含まれる各高さとの差がαより大きいため、高さｈ’21を集合Ｇ2に入れない。第１算出部１０１４は、高さｈ’22と高さｈ12との差がα以下であるため、高さｈ’22を集合Ｇ2に入れる。第１算出部１０１４は、高さｈ’23と高さｈ13との差が所定値α以下であるため、高さｈ’23を集合Ｇ2に入れる。第１算出部１０１４は、高さｈ’24と高さｈ14との差がα以下であるため、高さｈ’24を集合Ｇ2に入れる。
【０１２９】
Ｇ2＝｛ｈ’22，ｈ’23，ｈ’24｝
【０１３０】
そして、第１算出部１０１４は、集合Ｇ2に含まれる高さの組み合わせのうち、組み合わせの高さの差分が集合Ｄ2に含まれる組み合わせの数ｆ2を特定する。
【０１３１】
集合Ｄ2に含まれる高さの組み合わせは３通りである。高さｈ’22と高さｈ’23との差はｄ25であり、集合Ｄ2に含まれない。高さｈ’22と高さｈ’24との差はｄ24であり、集合Ｄ2に含まれる。高さｈ’23と高さｈ’24との差はｄ26であり、集合Ｄ2に含まれない。このため、第１算出部１０１４は、数ｆ2を１とする。
【０１３２】
第１算出部１０１４は、オフセット量の候補について、数ｆ1と数ｆ2とのうち小さい方を評価値として算出する。ここで、オフセット量Δｈの候補がｈ12−ｈ22の場合の評価値は、１である。
【０１３３】
次に、特定部１０１６は、組み合わせの各々について特定した数に基づいて、オフセット量Δｈを特定する。具体的には、特定部１０１６は、平面の組み合わせのうち、評価値が最も大きい組み合わせについてのオフセット量Δｈの候補をオフセット量Δｈとして特定する。ここでは、評価値が大きいほど、評価が高い。
【０１３４】
上述したように、図１２に示すオフセット量Δｈの候補がｈ11−ｈ21である平面の組み合わせと、図１３に示すオフセット量Δｈの候補がｈ12−ｈ22である平面の組み合わせ場合とは、評価値が同じとなる。このように、図６に示した例と異なり、評価値が同じとなる。このため、誤対応についてのオフセット量Δｈの候補が特定されることを抑制することができる。
【０１３５】
図１４は、数ｆ1と数ｆ2とが異なる例を示す説明図である。図１４において集合Ｈ1は｛ｈ11，ｈ12｝であり、集合Ｈ’2は｛ｈ’21，ｈ’22，ｈ’23｝である。集合Ｄ1は、高さｈ11と高さｈ12の距離が含まれる。高さｈ’21と高さｈ’22との間の距離と、高さｈ’22と高さｈ’23との間の距離と、が同じである場合、集合Ｄ2には、何も含まれない。なお、高さｈ11と高さｈ12の距離は、高さｈ’21と高さｈ’22との間の距離および高さｈ’22と高さｈ’23との間の距離と同じである。
【０１３６】
図１４に示すような場合において、オフセット量Δｈの候補をｈ11とｈ21とした場合に、集合Ｇ1は、｛ｈ11，ｈ12｝であり、集合Ｇ２は、｛ｈ’21，ｈ’22｝である。高さｈ11と高さｈ12との距離は、集合Ｄ1に含まれるため、数ｆ1は１である。高さｈ’21と高さｈ’22との距離は、集合Ｄ2に含まれないため、数ｆ2は０である。このように、数ｆ1と数ｆ2とは必ずしも同じとならないため、第１算出部１０１４は、数ｆ1と数ｆ2とのうちいずれか小さい方の数を評価値とする。図１４の例において評価値は０となる。
【０１３７】
また、第１算出部１０１４によって算出された評価値が最も大きいオフセット量の候補が複数ある場合がある。このような場合、第２算出部１０１５は、第１算出部１０１４によって算出された評価値と異なる評価値によってオフセット量を特定する。
【０１３８】
具体的には、第２算出部１０１５は、第１算出部１０１４によって算出された評価値が最も大きいオフセット量の候補ごとに、異なる評価値を算出する。異なる評価値の算出方法として、特に限定しないが、ここでは３つの方法を例に挙げる。
【０１３９】
まず、異なる評価値の算出方法の１つ目の方法について説明する。
【０１４０】
第２算出部１０１５は、各々の測定位置について、抽出した各平面に含まれる点群の数を求める。各平面に含まれる点群の数は、階段の踏み面のような比較的狭い平面と、床面や天井面などの広い平面とを区別するのに利用することができる。
【０１４１】
そして、第２算出部１０１５は、第１算出部１０１４によって算出された評価値が最も大きいオフセット量Δｈの候補について、２つの３Ｄ測定位置群間で高さが一致する平面に含まれる点群の数の相関値を評価値として算出する。
【０１４２】
例えば、第１点群データ１１１における各平面の点の数を以下とする。
【０１４３】
平面Ｐ11（高さｈ11の平面）：３００
平面Ｐ12（高さｈ12の平面）：１００
平面Ｐ13（高さｈ13の平面）：８０
平面Ｐ14（高さｈ14の平面）：２８０
【０１４４】
例えば、第２点群データ１１２における各平面の点の数を以下とする。
【０１４５】
平面Ｐ21（高さｈ21の平面）：２８０
平面Ｐ22（高さｈ22の平面）：３００
平面Ｐ23（高さｈ23の平面）：９０
平面Ｐ24（高さｈ24の平面）：７０
【０１４６】
第１算出部１０１４によって算出された評価値が最も大きいオフセット量Δｈの候補が、ｈ11−ｈ21と、ｈ12−ｈ22とする。
【０１４７】
オフセット量Δｈの候補がｈ11−ｈ21の場合、平面Ｐ11−平面Ｐ21と、平面Ｐ１４−平面Ｐ22と、のように平面が対応する。この場合、相関値は−１となる。
【０１４８】
また、オフセット量Δｈの候補がｈ12−ｈ22の場合、平面Ｐ12−平面Ｐ22と、平面Ｐ13−平面Ｐ23と、平面Ｐ14−平面Ｐ24と、のように平面が対応する。この場合、相関値は−０．４８となる。相関値は、絶対値が１に近いほど、相関関係が強いため、特定部１０１６は、ｈ12−ｈ22であるオフセット量Δｈの候補をオフセット量Δｈとして特定する。
【０１４９】
次に、異なる評価値の算出方法の２つ目の方法について説明する。
【０１５０】
図９に示したように、測定時に、各点群について赤外線の反射強度や色情報が同時に得られる場合がある。そこで、２つ目の方法では、これらの情報が、高さが一致する平面間で似ているか否かに基づいてオフセット量Δｈを特定する。
【０１５１】
第２算出部１０１５は、オフセット量Δｈの候補の各々について、２つの３Ｄ測定位置群間で高さが一致する平面について反射強度や色情報のヒストグラムの相関値を評価値として算出する。
【０１５２】
上述したように、オフセット量Δｈの候補がｈ11−ｈ21の場合、平面Ｐ11−平面Ｐ21と、平面Ｐ14−平面Ｐ22と、のように平面間の高さが一致する。第２算出部１０１５は、例えば、平面Ｐ11と平面Ｐ14との反射強度や色情報のヒストグラムを算出する。第２算出部１０１５は、例えば、平面Ｐ21と平面Ｐ22の反射強度や色情報のヒストグラムを算出する。そして、第２算出部１０１５は、オフセット量Δｈの候補がｈ11−ｈ21についてのヒストグラムの相関値を算出する。
【０１５３】
上述したように、オフセット量Δｈの候補がｈ12−ｈ22の場合、平面Ｐ12−平面Ｐ22と、平面Ｐ13−平面Ｐ23と、平面Ｐ14−平面Ｐ24と、のように平面間の高さが一致する。第２算出部１０１５は、例えば、平面Ｐ12と平面Ｐ13と平面Ｐ14についての反射強度や色情報のヒストグラムを算出する。第２算出部１０１５は、例えば、平面Ｐ22と平面Ｐ23と平面Ｐ24についての反射強度や色情報のヒストグラムを算出する。
【０１５４】
次に、第２算出部１０１５は、平面Ｐ12のヒストグラムと平面Ｐ22のヒストグラムとの相関値を算出する。そして、第２算出部１０１５は、平面Ｐ13のヒストグラムと平面Ｐ23のヒストグラムとの相関値を算出する。そして、第２算出部１０１５は、平面Ｐ14のヒストグラムと平面Ｐ24のヒストグラムとの相関値を算出する。第２算出部１０１５は、算出した各相関値の平均値を評価値として算出する。
【０１５５】
相関値は、絶対値が１に近いほど、相関関係が強いため、特定部１０１６は、評価値が最も大きいオフセット量Δｈの候補をオフセット量Δｈとして特定する。
【０１５６】
次に、異なる評価値の算出方法の３つ目の方法について説明する。
【０１５７】
３つ目の方法では、オフセット量Δｈの候補の各々について、２Ｄの位置合わせを行うことにより得られる位置合わせ結果を評価する。位置合わせ結果がよいか否かの評価としては、２つの３Ｄ点群間で対応する点の数が多いほど高評価とする。なお、位置合わせ部１０１７による位置合わせの方法については、後述する。
【０１５８】
位置合わせ部１０１７は、オフセット量Δｈの候補の各々について、オフセット量Δｈの候補によって補正された第２の点群データを補正する。そして、位置合わせ部１０１７は、オフセット量Δｈの候補の各々について、第１点群データ１１１と、補正された第２点群データ１１２とで位置合わせを行う。
【０１５９】
第２算出部１０１５は、位置合わせ後の３Ｄ点群データのうち、第１点群データ１１１によって特定される点群（第１点群）と、位置合わせ後の第２点群データ１１２によって特定される点群（第２点群）と、の間で対応する点の数を算出する。なお、評価値は、オフセット量Δｈの候補の各々（第１平面と第２平面との組み合わせの各々）について算出される。具体的には、第２算出部１０１５は、第１点群の各々の点について、各々の点から最近傍にある第２点群に含まれるまでの距離が一定距離以内であるか否かを判定する。第２算出部１０１５は、一定距離以内であると判定された点の数を評価値とする。この評価値は、大きいほど、評価が高い。第２算出部１０１５は、最も評価が高いオフセット量Δｈの候補をオフセット量Δｈとする。
【０１６０】
ここでは、他の評価値の算出方法として３つの方法を挙げたが、これに限らない。また、例えば、３つの方法のうちいずれか一つの方法により算出された評価値によってオフセット量が特定されてもよい。または、複数の方法により算出された各評価値によってオフセット量が特定されてもよい。または、オフセット量が一意に特定されるまで３つの方法が順に行われてもよい。
【０１６１】
次に、位置合わせ部１０１７は、特定部１０１６によって特定されたオフセット量Δｈにしたがって各測定位置の３Ｄ点群データの間で高さの基準を合わせる。すなわち、位置合わせ部１０１７は、異なる測定位置で測定された３Ｄ点群データのうち集合Ｈ2が割り当てられた方の３Ｄ点群データ、すなわち第２点群データ１１２に含まれる各点にオフセット量Δｈを加算する。その後、位置合わせ部１０１７は、下記の関連文献１に記載があるように、位置合わせの対象とする３Ｄ点群データそれぞれについて所定の高さの区間に含まれる３Ｄ点群を所定の面、例えば床面に投影することにより２次元の水平方向のスライスデータを抽出する。そして、位置合わせ部１０１７は、これらのスライスデータに対して、２次元でレジストレーションを行う。
【０１６２】
［関連文献１］“大規模環境の統合点群モデルの自動生成（第三報）、点群ペア位置合せとマッチ判定による複数点群の完全自動位置合せ”、松山雄介、伊達宏昭、金井理、２０１４年度精密工学会春季大会、セッションＩＤ：  Ｅ４５
【０１６３】
このほか、位置合わせ部１０１７は、下記の関連文献２に記載された方法で、同じ高さで各３Ｄ点群をスライスして抽出した２次元点群について平面内で位置合わせすることとしてもよい。
【０１６４】
［関連文献２］友納正裕，“ユークリッド変換に不変な特徴量を用いた二次元大域スキャンマッチング方式，日本ロボット学会誌，Ｖｏｌ．  ２５，Ｎｏ．  ３，ｐｐ３９０〜４０１（２００７）”
【０１６５】
これを説明すると、２次元点群は、各点の法線を周囲の点の位置から計算することができ、位置合わせ部１０１７は、方向付き点群を得ることができる。データ間で方向付き点の対応が１つ決まると２次元の場合、位置合わせのための座標変換パラメータ（ｘ，ｙ，θ）が求まる。そこで、位置合わせ部１０１７は、方向付き点の対応候補を他の点の位置関係から評価して所定数に絞り込む。これにより、位置合わせ部１０１７は、座標変換の候補が絞り込まれるので、各候補について位置合わせの誤差を最小化する詳細位置合わせ処理を行った上で残差を評価し、最も残差が少なかった位置合わせ結果を採用する。これによって、位置合わせ部１０１７は、２次元のレジストレーションを実現できる。
【０１６６】
情報処理装置１００は、このように１つに統合された３Ｄ点群データにメッシュ化処理を行うことにより、３次元の面データに変換することもできる。これら１つに統合された３Ｄ点群データまたは３次元の面データを用いることにより、作業者３０１を支援する支援データを作成し、プロジェクションにより投影することもできる。また、情報処理装置１００は、３次元の面データが示す３次元のモデルをプロジェクタ８０４などによって表示してもよい。
【０１６７】
（情報処理装置１００が行う処理手順例）
図１５は、情報処理装置１００が行う処理手順例を示すフローチャートである。情報処理装置１００は、各々の測定位置について、３Ｄ点群データを取得する（ステップＳ１５０１）。情報処理装置１００は、各々の測定位置の３Ｄ点群データについて、水平面の方向を算出する（ステップＳ１５０２）。
【０１６８】
情報処理装置１００は、各々の測定位置について、ｚ軸正方向が水平面の法線方向になる座標変換を実行する（ステップＳ１５０３）。情報処理装置１００は、各々の測定位置について、３Ｄ点群データから平面を抽出する（ステップＳ１５０４）。情報処理装置１００は、各平面の高さ（ｚ座標）を算出する（ステップＳ１５０５）。
【０１６９】
情報処理装置１００は、オフセット量および評価値の算出処理を行う（ステップＳ１５０６）。情報処理装置１００は、評価が最も高い平面の組み合わせの数が１つか否かを判断する（ステップＳ１５０７）。評価が最も高い平面の組み合わせの数が１つであると判断された場合（ステップＳ１５０７：Ｙｅｓ）、情報処理装置１００は、ステップＳ１５０９へ移行する。
【０１７０】
評価が最も高い平面の組み合わせの数が１つでないと判断された場合（ステップＳ１５０７：Ｎｏ）、情報処理装置１００は、評価が最も高い平面の組み合わせについて他の評価値を算出する（ステップＳ１５０８）。次に、情報処理装置１００は、評価が最も高い平面の組み合わせに基づきオフセット量Δｈを特定する（ステップＳ１５０９）。
【０１７１】
次に、情報処理装置１００は、評価が最も高い平面の組み合わせについてのオフセット量に基づき一方の３Ｄ点群の位置を補正する（ステップＳ１５１０）。そして、情報処理装置１００は、水平方向に同じ高さでスライスした２Ｄ点群データを抽出する（ステップＳ１５１１）。情報処理装置１００は、レジストレーション処理を行い（ステップＳ１５１２）、一連の処理を終了する。
【０１７２】
図１６および図１７は、図１５で示したオフセット量および評価値の算出処理の詳細な説明を示すフローチャートである。まず、情報処理装置１００は、第１測定位置１０１についての複数の第１平面間の距離を算出する（ステップＳ１６０１）。次に、情報処理装置１００は、算出した各距離から特徴的な距離の集合Ｄ1を抽出する（ステップＳ１６０２）。
【０１７３】
そして、情報処理装置１００は、第２測定位置１０２についての複数の第２平面間の距離を算出する（ステップＳ１６０３）。情報処理装置１００は、算出した各距離から特徴的な距離の集合Ｄ2を抽出する（ステップＳ１６０４）。情報処理装置１００は、第１測定位置１０１の複数の第１平面に含まれる第１平面と第２測定位置１０２の複数の第２平面に含まれる第２平面とのすべての組み合わせを生成する（ステップＳ１６０５）。情報処理装置１００は、未評価の組み合わせがあるか否かを判断する（ステップＳ１６０６）。
【０１７４】
未評価の組み合わせがないと判断された場合（ステップＳ１６０６：Ｎｏ）、情報処理装置１００は、未評価の組み合わせから１つの組み合わせを評価対象として選択する（ステップＳ１７０１）。情報処理装置１００は、選択した組み合わせについて、組み合わせに含まれる平面の高さを一致させるオフセット量Δｈの候補を算出する（ステップＳ１７０２）。情報処理装置１００は、算出したオフセット量Δｈの候補によって第２測定位置１０２についての複数の第２平面の高さを補正する（ステップＳ１７０３）。
【０１７５】
そして、情報処理装置１００は、複数の第１平面のうち補正後の複数の第２平面と高さが一致する第１平面の高さの集合Ｇ1を特定する（ステップＳ１７０４）。
【０１７６】
情報処理装置１００は、複数の第１平面のうち補正後の第２平面と高さが一致する第２平面の高さの集合Ｇ2を特定する（ステップＳ１７０５）。情報処理装置１００は、集合Ｇ1に含まれる２つの高さの組み合わせごとに高さの差（距離）が集合Ｄ1に含まれる数ｆ1を算出する（ステップＳ１７０６）。そして、情報処理装置１００は、集合Ｇ2に含まれる２つの高さの組み合わせごとに高さの差（距離）が集合Ｄ2に含まれる数ｆ2を算出し（ステップＳ１７０７）、ステップＳ１６０６へ移行する。
【０１７７】
また、ステップＳ１６０６において、未評価の組み合わせがあると判断された場合（ステップＳ１６０６：Ｙｅｓ）、情報処理装置１００は、一連の処理を終了する。
【０１７８】
図１８は、図１５で示したレジストレーション処理の詳細な説明を示すフローチャートである。情報処理装置１００は、補正した一方の３Ｄ点群データによって特定される一方の３Ｄ点群（補正点群）と補正していない他方の３Ｄ点群データによって特定される３Ｄ点群（基準点群）の各点について法線方向を算出する（ステップＳ１８０１）。次に、情報処理装置１００は、基準点群と補正点群の間の点対応候補を複数抽出する（ステップＳ１８０２）。情報処理装置１００は、各点対応候補ごとに座標変換パラメータを算出する（ステップＳ１８０３）。
【０１７９】
情報処理装置１００は、複数の座標変換パラメータをクラスタリングする（ステップＳ１８０４）。情報処理装置１００は、要素数が多いクラスタの重心の座標変換パラメータを算出する（ステップＳ１８０５）。情報処理装置１００は、各パラメータで変換後の点群の位置関係を初期位置とし、ＩＣＰアルゴリズムにより位置合わせをクラスタごとに実行する（ステップＳ１８０６）。情報処理装置１００は、各位置合わせ結果の残差を評価して最もマッチした位置合わせ結果を選択し（ステップＳ１８０７）、一連の処理を終了する。
【０１８０】
図１９は、システム例を示す説明図である。本実施の形態では、情報処理装置１００は、測定機器そのものである場合を例に説明したが、これに限らない。図１０に示した情報処理装置１００の機能部のうちの一部の機能部を他の装置に実現させてもよい。
【０１８１】
システム１９００は、測定機器である情報処理装置１００と、装置１９０１と、装置１９０２と、を有する。情報処理装置１００と、装置１９０１と、装置１９０２とは、例えば、ネットワーク８１０を介して接続される。図１９の例では、装置１９０１は、ＰＣであり、装置１９０２は、携帯型の端末装置であるが、これに限らない。装置１９０１と装置１９０２としては、例えば、ＰＣ、サーバ、携帯型の端末装置などが挙げられる。例えば、取得部１００１を測定機器である情報処理装置１００によって実現させ、制御部１００２を装置１９０１によって実現させてもよい。また、制御部１００２の一部の機能を情報処理装置１００によって実現させ、制御部１００２の残余の機能を装置１９０１によって実現させてもよい。
【０１８２】
また、例えば装置１９０２は、利用者による操作入力によって受け付けた測定の開始指示を測定機器である情報処理装置１００に通知してもよい。これにより、作業者３０１は、直接測定機器を操作することなく、３Ｄ測定を行うことができる。また、装置１９０１は、３次元の面データが示す３次元のモデルをディスプレイなどに表示してもよい。
【０１８３】
装置１９０１や装置１９０２は、ＣＰＵ、ディスク、メモリ、Ｉ／Ｆ、入力装置、ディスプレイなどの出力装置などのようなハードウェア構成を有していればよく、特に限定しない。また、各種の３Ｄ点群データや各種のモデル情報については、データベースサーバ（図示省略）などに記憶および管理されてもよい。
【０１８４】
以上説明したように、情報処理装置１００は、異なる測定位置で測定された点群データの間で基準となる平面同士の高さが合うようなオフセット量にしたがって点群データを補正して２次元の位置合わせを行う。これにより、情報処理装置１００は、オクルージョンのある環境下で３Ｄ点群データの合成精度を高めることができる。
【０１８５】
情報処理装置１００は、第１点群データから得る第１平面群の１面に合わせて、第２点群データから得る第２平面群の高さを補正した第２平面群の面と高さが同じ第１平面間の距離のうち、第１平面群の面間の特徴的な距離と同じ距離の数からオフセット量を特定する。これにより、情報処理装置１００は、複数の第１平面の中で、補正後の複数の第２平面と高さが一致している第１平面の数によってオフセット量を特定する場合と比較して、高さ方向の位置合わせの精度の向上を図ることができる。
【０１８６】
また、情報処理装置１００は、補正後の複数の第２平面の中で、複数の第１平面と高さが一致する補正後の第２平面間の距離のうち、第２平面間の特徴的な距離に含まれる距離の第２数と特定した第１数とに基づいてオフセット量を特定する。これにより、第１数と第２数とは異なる場合があるため、２つの種類の数のうちの小さい方の数を評価値として用いることができる。これにより、情報処理装置１００は、より精度のよい評価値によって高さ方向の補正を行うことができる。
【０１８７】
なお、本実施の形態で説明した情報処理方法は、予め用意された情報処理プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１８８】
また、本実施の形態で説明した情報処理装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した情報処理装置１００の制御部１００２の機能をＨＤＬ記述によって機能定義し、そのＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、情報処理装置１００の制御部１００２を製造することができる。
【符号の説明】
【０１８９】
ｄ11，ｄ12，ｄ13，ｄ14，ｄ15，ｄ16，ｄ21，ｄ22，ｄ23，ｄ24，ｄ25，ｄ26  距離
ｐ1M1，ｐ11，ｐ12  点
Ｐ11，Ｐ12，Ｐ13，Ｐ14，Ｐ15  第１平面
Ｐ21，Ｐ22，Ｐ23，Ｐ24，Ｐ25，Ｐ26  第２平面
ｈ11，ｈ12，ｈ13，ｈ14  第１平面の高さ
ｈ21，ｈ22，ｈ23，ｈ24  第２平面の高さ
１００  情報処理装置
１０１  第１測定位置
１０２  第２測定位置
１１１  第１点群データ
１１２  第２点群データ
３００  現場
３０１  作業者
７０１  駆動装置
７０２  測定装置
７０３  制御装置
１００１  取得部
１００２  制御部
１０１１  抽出部
１０１２  距離算出部
１０１３  オフセット量算出部
１０１４  第１算出部
１０１５  第２算出部
１０１６  特定部
１９００  システム
１９０１，１９０２  装置
【図１】
2018159693.tif 000003
【図２】
2018159693.tif 000004
【図３】
2018159693.tif 000005
【図４】
2018159693.tif 000006
【図５】
2018159693.tif 000007
【図６】
2018159693.tif 000008
【図７】
2018159693.tif 000009
【図８】
2018159693.tif 000010
【図９】
2018159693.tif 000011
【図１０】
2018159693.tif 000012
【図１１】
2018159693.tif 000013
【図１２】
2018159693.tif 000014
【図１３】
2018159693.tif 000015
【図１４】
2018159693.tif 000016
【図１５】
2018159693.tif 000017
【図１６】
2018159693.tif 000018
【図１７】
2018159693.tif 000019
【図１８】
2018159693.tif 000020
【図１９】
2018159693.tif 000021