(57)【特許請求の範囲】
【請求項１】
物体の表面上の位置を計測した計測結果である複数の位置を表す入力３次元点群を複数の領域に分類した前記領域の各々について、前記領域の周辺に位置する３次元点群である周辺３次元点群に基づいて、前記領域の最小曲率方向を推定する最小曲率方向推定部と、
前記領域の各々について、前記領域の前記周辺３次元点群を、複数の部分領域の各々に含まれる３次元点群に分割し、前記部分領域毎に、前記部分領域に含まれる３次元点群を、前記最小曲率方向推定部により推定された前記領域の最小曲率方向に射影した結果に基づいて、前記部分領域の特徴量を算出し、前記部分領域の各々について算出された特徴量の自己相関値を算出する自己相関値算出部と、
前記自己相関値算出部により算出された自己相関値が、予め定められた閾値より大きい値である前記領域の各々を、スイープ形状候補領域と判定するスイープ形状候補領域判定部と、
前記スイープ形状候補領域判定部によりスイープ形状候補領域であると判定された領域の各々について、前記領域の周辺に位置する領域である周辺領域を取得し、前記周辺領域毎に、前記領域についての前記部分領域の各々の前記自己相関値算出部によって算出された特徴量と前記周辺領域についての前記部分領域の各々の前記自己相関値算出部によって算出された特徴量とに基づいて、前記領域との相互相関値を算出し、前記算出された相互相関値に基づいて、前記領域と前記周辺領域とを統合し統合領域とする領域統合処理部と、
前記領域統合処理部によりスイープ形状候補領域が統合された統合領域の各々について、前記統合領域の最小曲率方向の長さに基づいて、前記統合領域が、スイープ形状であるか否かを判定するスイープ形状判定部と、
を含む、点群解析処理装置。
【請求項２】
前記最小曲率方向推定部は、
前記領域の各々について、前記領域の周辺３次元点群に含まれる２点の位置に基づいて決定される仮最小曲率方向のうち、前記仮最小曲率方向に垂直な平面に対して、前記領域に属する３次元点群及び前記領域の周辺３次元点群に含まれる点の各々を前記仮最小曲率方向に射影した位置を表す射影形状画像の射影位置の画素数が最小になる前記仮最小曲率方向を前記領域の最小曲率方向として推定し、又は、
前記領域の各々について、前記点を含む平面の前記領域の周辺３次元点群に含まれる点の各々の法線方向のベクトルの外積の総和により算出される自己相関行列を固有値分解したときの最小固有値に対応する固有値ベクトルを最小曲率方向として推定する請求項１記載の点群解析処理装置。
【請求項３】
前記スイープ形状候補領域判定部は、更に、スイープ形状候補領域と判定された前記領域の各々について、前記領域の前記周辺３次元点群に基づいて算出される前記領域の平面度合いを示す値に基づいて、前記領域が、１方向のスイープ形状候補領域、及び２軸方向のスイープ形状候補領域の何れであるかを判定し、
前記領域統合処理部は、前記スイープ形状候補領域判定部により１方向のスイープ形状候補領域であると判定された領域の各々について、前記領域の周辺に位置する領域であって、かつ、１方向のスイープ形状候補領域であると判定された領域である周辺領域を取得し、前記周辺領域毎に、前記領域についての前記部分領域の各々の前記自己相関値算出部によって算出された特徴量と前記周辺領域についての前記部分領域の各々の前記自己相関値算出部によって算出された特徴量とに基づいて、前記領域との相互相関値を算出し、前記算出された相互相関値に基づいて、前記領域と前記周辺領域とを統合し統合領域とし、前記スイープ形状候補領域判定部により２軸方向のスイープ形状候補領域であると判定された領域の各々について、前記領域の周辺に位置する領域であって、かつ、２軸方向のスイープ形状候補領域であると判定された領域である周辺領域を取得し、前記周辺領域毎に、前記領域についての前記部分領域の各々の前記自己相関値算出部によって算出された特徴量と前記周辺領域についての前記部分領域の各々の前記自己相関値算出部によって算出された特徴量とに基づいて、前記領域との相互相関値を算出し、前記算出された相互相関値に基づいて、前記領域と前記周辺領域とを統合し統合領域とし、
前記スイープ形状判定部は、前記領域統合処理部により１方向のスイープ形状候補領域が統合された統合領域の各々について、前記統合領域の最小曲率方向の長さに基づいて、前記統合領域が、１方向のスイープ形状であるか否かを判定し、前記領域統合処理部により２軸方向のスイープ形状候補領域が統合された統合領域の各々について、前記統合領域の大きさに基づいて、前記統合領域が、２軸方向のスイープ形状であるか否かを判定する請求項１又は２に記載の点群解析処理装置。
【請求項４】
前記領域統合処理部は、
１方向のスイープ形状候補領域であると判定された領域の各々について、前記自己相関値算出部により算出された自己相関値が高い順に、統合する処理を行い、２軸方向のスイープ形状候補領域であると判定された領域の各々について、前記自己相関値算出部により算出された自己相関値が高い順に、統合する処理を行い、
前記スイープ形状判定部は、前記領域統合処理部により１方向のスイープ形状候補領域が統合された統合領域の各々について、前記統合領域に属する３次元点群と、前記統合領域に属さない点であって、かつ、前記統合領域の周辺に位置する点とを切り離した場合の切り離しコストを算出し、前記算出された３次元点群の切り離しコストと、前記統合領域の最小曲率方向の長さとに基づいて、前記統合領域が、１方向のスイープ形状であるか否かを判定する請求項３記載の点群解析処理装置。
【請求項５】
最小曲率方向推定部と、自己相関値算出部と、スイープ形状候補領域判定部と、領域統合処理部と、スイープ形状判定部と、を含む点群解析処理装置における、点群解析処理方法において、
前記最小曲率方向推定部により推定することは、物体の表面上の位置を計測した計測結果である複数の位置を表す入力３次元点群を複数の領域に分類した前記領域の各々について、前記領域の周辺に位置する３次元点群である周辺３次元点群に基づいて、前記領域の最小曲率方向を推定し、
前記自己相関値算出部により算出することは、前記領域の各々について、前記領域の前記周辺３次元点群を、複数の部分領域の各々に含まれる３次元点群に分割し、前記部分領域毎に、前記部分領域に含まれる３次元点群を、前記最小曲率方向推定部により推定された前記領域の最小曲率方向に射影した結果に基づいて、前記部分領域の特徴量を算出し、前記部分領域の各々について算出された特徴量の自己相関値を算出し、
前記スイープ形状候補領域判定部により判定することは、前記自己相関値算出部により算出された自己相関値が、予め定められた閾値より大きい値である前記領域の各々を、スイープ形状候補領域と判定し、
前記領域統合処理部により統合することは、前記スイープ形状候補領域判定部によりスイープ形状候補領域であると判定された領域の各々について、前記領域の周辺に位置する領域である周辺領域を取得し、前記周辺領域毎に、前記領域についての前記部分領域の各々の前記自己相関値算出部によって算出された特徴量と前記周辺領域についての前記部分領域の各々の前記自己相関値算出部によって算出された特徴量とに基づいて、前記領域との相互相関値を算出し、前記算出された相互相関値に基づいて、前記領域と前記周辺領域とを統合し統合領域とし、
前記スイープ形状判定部により判定することは、前記領域統合処理部によりスイープ形状候補領域が統合された統合領域の各々について、前記統合領域の最小曲率方向の長さに基づいて、前記統合領域が、スイープ形状であるか否かを判定する
点群解析処理方法。
【請求項６】
コンピュータを、請求項１〜４の何れか１項記載の点群解析装置を構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、点群解析処理装置、方法、及びプログラムに係り、特に、入力３次元点群からスイープ形状を検出する点群解析処理装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
モバイルマッピングシステム（ＭＭＳ）と呼ばれるカメラやレーザースキャナを搭載した車が、街中を走行することで道路周辺の構造物である建造物や道路などの物体の表面の形状を計測できるシステムが利用されつつある。このシステムは、ＧＰＳ（全地球測位システム）やＩＭＳ(慣性計測装置)を用いて、計測した被写体の表面形状を３次元の座標情報として記録できる。この技術を利用して、道路周辺の建造物や道路の検出による３次元の地図作成や、信号機や標識などのインフラ設備の保守・保全業務への活用が期待されている。
【０００３】
屋外にあるインフラ設備の形状は、プリミティブな３次元形状、例えば円や直線など特定の形状の断面を一定の方向に押し出したような３次元形状（以下、スイープ形状と呼ぶ）であることが多い。図１９に例示するように、任意形状についてある特定の方向に押し出した形状のことをスイープ形状とし、任意形状とは曲線、円、点、連結した直線などを意味する。
【０００４】
近年では、電柱や信号機の柱は円筒形状、通信線や電線は懸垂線形状、標識や道路情報板は平面形状と考え、これら形状を特徴として用いたインフラ設備の検出技術が研究開発されている。
【０００５】
従来技術では、柱状構造物である電柱を円筒形状と近似することで、ＲＡＮＳＡＣによるモデルフィッティングの技術を用いて電柱を検出している（非特許文献１）。ＲＡＮＳＡＣによるモデルフィッティングでは、検出したい幾何形状の３次元モデルを事前に定義し、入力した３次元点群からサンプリングした点群を用いて仮説モデルを推定する処理と、仮説モデルの妥当性を評価する処理で構成される。
【０００６】
非特許文献１の技術においては、局所的な領域の点群形状から円筒表面領域に属する点群を事前に検出し、モデル当てはめを行う処理対象点群を絞り込むことで、計算量削減およびモデル当てはめ精度の向上を行っている。
【０００７】
また、入力点群をある一定の大きさの領域に分割し、その領域ごとに直線モデルを検出し、次に検出した直線を連結して、高圧線（ケーブル）上の点群を検出する。その後、検出した点群についてのみ懸垂線モデルをフィッティングすることで、モデル推定精度向上を行っている従来技術もある（非特許文献２）。
【０００８】
また、局所的な領域の点群形状について平面であるか判定を行い、平面近似しやすい局所領域から優先して周辺の点群（局所領域）を統合することで、複数の平面が隣接する状況でも精度よく建造物の壁面を検出する技術もある（非特許文献３）。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】新垣、島村、新井、谷口、「３次元点群からの局所形状と大域的な形状モデルを用いた柱状物体検出」、信学技報, vol. 112, no. 441, PRMU2012-131, pp. 7-12, 2013年2月.
【非特許文献２】Jwa, Y.; Sohn, G.; Kim, H.B. Automatic 3D powerline reconstruction using airborne lidar data. Int. Arch. Photogramm. Remote Sens. 2009, 38, 105−110.
【非特許文献３】Pu S. and G. Vosselman  Automatic Extraction of Building Features from Terrestrial Laser Scanning”, International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 36(5), pp. 33-39.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述の技術においては、平面や円筒、また懸垂線など検出したい形状ごとに特化したモデルを当てはめることを前提としているため、検出したい形状の種類が多い程、計算量が増加するという問題がある。
【００１１】
また、検出したい形状について、直線や円筒のように方程式で表現できるプリミティブな幾何形状であれば、非特許文献１、及び非特許文献３のようにサンプリングした少数の点群から仮説モデルを推定できる。しかし、ガードレールのような複雑な形状の場合には、方程式等で表現することは困難であるという問題がある。
【００１２】
この場合、上記複雑な形状を検出するためには、検出対象となる幾何形状のＣＡＤモデルやスイープ方向に点群を射影した射影形状のテンプレート画像を、辞書データとして事前に登録することが必要となるが、当該テンプレート画像が登録されていない場合は、登録されていないテンプレート画像に対応するスイープ形状物体を検出することができないという問題がある。ここで、図１９の例に示すように、射影形状と点群との関係は、射影形状が図１９のＡで示した任意曲線に対応し、スイープ形状が図１９のＢの３次元物体に対応する。
【００１３】
本発明では、上記問題を解決するために成されたものであり、計算量の増加を抑制しつつ、また事前に辞書データを登録しなくても、入力３次元点群からスイープ形状を検出することができる点群解析処理装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、第１の発明に係る点群解析処理装置は、物体の表面上の位置を計測した計測結果である複数の位置を表す入力３次元点群を複数の領域に分類した前記領域の各々について、前記領域の周辺に位置する３次元点群である周辺３次元点群に基づいて、前記領域の最小曲率方向を推定する最小曲率方向推定部と、前記領域の各々について、前記領域の前記周辺３次元点群を、複数の部分領域の各々に含まれる３次元点群に分割し、前記部分領域毎に、前記部分領域に含まれる３次元点群を、前記最小曲率方向推定部により推定された前記領域の最小曲率方向に射影した結果に基づいて、前記部分領域の特徴量を算出し、前記部分領域の各々について算出された特徴量の自己相関値を算出する自己相関値算出部と、前記自己相関値算出部により算出された自己相関値が、予め定められた閾値より大きい値である前記領域の各々を、スイープ形状候補領域と判定するスイープ形状候補領域判定部と、前記スイープ形状候補領域判定部によりスイープ形状候補領域であると判定された領域の各々について、前記領域の周辺に位置する領域である周辺領域を取得し、前記周辺領域毎に、前記領域についての前記部分領域の各々の特徴量と前記周辺領域についての前記部分領域の各々の特徴量とに基づいて、前記領域との相互相関値を算出し、前記算出された相互相関値に基づいて、前記領域と前記周辺領域とを統合し統合領域とする領域統合処理部と、前記領域統合処理部によりスイープ形状候補領域が統合された統合領域の各々について、前記統合領域の最小曲率方向の長さに基づいて、前記統合領域が、スイープ形状であるか否かを判定するスイープ形状判定部と、を含んで構成されている。
【００１５】
第２の発明に係る点群解析処理方法は、最小曲率方向推定部と、自己相関値算出部と、スイープ形状候補領域判定部と、領域統合処理部と、スイープ形状判定部と、を含む点群解析処理装置における、点群解析処理方法において、前記最小曲率方向推定部により推定することは、物体の表面上の位置を計測した計測結果である複数の位置を表す入力３次元点群を複数の領域に分類した前記領域の各々について、前記領域の周辺に位置する３次元点群である周辺３次元点群に基づいて、前記領域の最小曲率方向を推定し、前記自己相関値算出部により算出することは、前記領域の各々について、前記領域の前記周辺３次元点群を、複数の部分領域の各々に含まれる３次元点群に分割し、前記部分領域毎に、前記部分領域に含まれる３次元点群を、前記最小曲率方向推定部により推定された前記領域の最小曲率方向に射影した結果に基づいて、前記部分領域の特徴量を算出し、前記部分領域の各々について算出された特徴量の自己相関値を算出し、前記スイープ形状候補領域判定部により判定することは、前記自己相関値算出部により算出された自己相関値が、予め定められた閾値より大きい値である前記領域の各々を、スイープ形状候補領域と判定し、前記領域統合処理部により統合することは、前記スイープ形状候補領域判定部によりスイープ形状候補領域であると判定された領域の各々について、前記領域の周辺に位置する領域である周辺領域を取得し、前記周辺領域毎に、前記領域についての前記部分領域の各々の特徴量と前記周辺領域についての前記部分領域の各々の特徴量とに基づいて、前記領域との相互相関値を算出し、前記算出された相互相関値に基づいて、前記領域と前記周辺領域とを統合し統合領域とし、前記スイープ形状判定部により判定することは、前記領域統合処理部によりスイープ形状候補領域が統合された統合領域の各々について、前記統合領域の最小曲率方向の長さに基づいて、前記統合領域が、スイープ形状であるか否かを判定する。
【００１６】
第１及び第２の発明によれば、最小曲率方向推定部により、物体の表面上の位置を計測した計測結果である複数の位置を表す入力３次元点群を複数の領域に分類した領域の各々について、領域の周辺に位置する３次元点群である周辺３次元点群に基づいて、領域の最小曲率方向を推定し、自己相関値算出部により、領域の各々について、領域の周辺３次元点群を、複数の部分領域の各々に含まれる３次元点群に分割し、部分領域毎に、部分領域に含まれる３次元点群を、最小曲率方向推定部により推定された領域の最小曲率方向に射影した結果に基づいて、部分領域の特徴量を算出し、部分領域の各々について算出された特徴量の自己相関値を算出し、スイープ形状候補領域判定部により、自己相関値算出部により算出された自己相関値が、予め定められた閾値より大きい値である領域の各々を、スイープ形状候補領域と判定し、領域統合処理部により、スイープ形状候補領域判定部によりスイープ形状候補領域であると判定された領域の各々について、領域の周辺に位置する領域である周辺領域を取得し、周辺領域毎に、領域についての部分領域の各々の特徴量と周辺領域についての部分領域の各々の特徴量とに基づいて、領域との相互相関値を算出し、算出された相互相関値に基づいて、領域と周辺領域とを統合し統合領域とし、スイープ形状判定部により、領域統合処理部によりスイープ形状候補領域が統合された統合領域の各々について、統合領域の最小曲率方向の長さに基づいて、統合領域が、スイープ形状であるか否かを判定する。
【００１７】
このように、入力３次元点群を複数の領域に分類した領域の各々について、周辺３次元点群に基づいて、領域の最小曲率方向を推定し、領域の各々について、部分領域の特徴量の自己相関値を算出し、自己相関値が、予め定められた閾値より大きい値である領域の各々を、スイープ形状候補領域と判定し、スイープ形状候補領域と判定された領域の各々について、領域の平面度合いを示す値に基づいて、領域が、スイープ形状候補領域であるかを判定し、スイープ形状候補領域であると判定された領域を、特徴量に基づく相互相関値に基づいて統合し、統合領域の最小曲率方向の長さに基づいて、統合領域がスイープ形状であるか否かを判定することにより、計算量の増加を抑制しつつ、また事前に辞書データを登録しなくても、入力３次元点群からスイープ形状を検出することができる。
【００１８】
また、第１の発明において、前記最小曲率方向推定部は、前記領域の各々について、前記領域の周辺３次元点群に含まれる２点の位置に基づいて決定される仮最小曲率方向のうち、前記仮最小曲率方向に垂直な平面に対して、前記領域に属する３次元点群及び前記領域の周辺３次元点群に含まれる点の各々を前記仮最小曲率方向に射影した位置を表す射影形状画像の射影位置の画素数が最小になる前記仮最小曲率方向を前記領域の最小曲率方向として推定し、又は、前記領域の各々について、前記点を含む平面の前記領域の周辺３次元点群に含まれる点の各々の法線方向のベクトルの外積の総和により算出される自己相関行列を固有値分解したときの最小固有値に対応する固有値ベクトルを最小曲率方向として推定してもよい。
【００１９】
また、第１の発明において、前記スイープ形状候補領域判定部は、更に、スイープ形状候補領域と判定された前記領域の各々について、前記領域の前記周辺３次元点群に基づいて算出される前記領域の平面度合いを示す値に基づいて、前記領域が、１方向のスイープ形状候補領域、及び２軸方向のスイープ形状候補領域の何れであるかを判定し、前記領域統合処理部は、前記スイープ形状候補領域判定部により１方向のスイープ形状候補領域であると判定された領域の各々について、前記領域の周辺に位置する領域であって、かつ、１方向のスイープ形状候補領域であると判定された領域である周辺領域を取得し、前記周辺領域毎に、前記領域についての前記部分領域の各々の特徴量と前記周辺領域についての前記部分領域の各々の特徴量とに基づいて、前記領域との相互相関値を算出し、前記算出された相互相関値に基づいて、前記領域と前記周辺領域とを統合し統合領域とし、前記スイープ形状候補領域判定部により２軸方向のスイープ形状候補領域であると判定された領域の各々について、前記領域の周辺に位置する領域であって、かつ、２軸方向のスイープ形状候補領域であると判定された領域である周辺領域を取得し、前記周辺領域毎に、前記領域についての前記部分領域の各々の特徴量と前記周辺領域についての前記部分領域の各々の特徴量とに基づいて、前記領域との相互相関値を算出し、前記算出された相互相関値に基づいて、前記領域と前記周辺領域とを統合し統合領域とし、前記スイープ形状判定部は、前記領域統合処理部により１方向のスイープ形状候補領域が統合された統合領域の各々について、前記統合領域の最小曲率方向の長さに基づいて、前記統合領域が、１方向のスイープ形状であるか否かを判定し、前記領域統合処理部により２軸方向のスイープ形状候補領域が統合された統合領域の各々について、前記統合領域の大きさに基づいて、前記統合領域が、２軸方向のスイープ形状であるか否かを判定してもよい。
【００２０】
また、第１の発明において、前記領域統合処理部は、１方向のスイープ形状候補領域であると判定された領域の各々について、前記自己相関値算出部により算出された自己相関値が高い順に、統合する処理を行い、２軸方向のスイープ形状候補領域であると判定された領域の各々について、前記自己相関値算出部により算出された自己相関値が高い順に、統合する処理を行い、前記スイープ形状判定部は、前記領域統合処理部により１方向のスイープ形状候補領域が統合された統合領域の各々について、前記統合領域に属する３次元点群と、前記統合領域に属さない点であって、かつ、前記統合領域の周辺に位置する点とを切り離した場合の切り離しコストを算出し、前記算出された３次元点群の切り離しコストと、前記統合領域の最小曲率方向の長さとに基づいて、前記統合領域が、１方向のスイープ形状であるか否かを判定してもよい。
【００２１】
また、本発明のプログラムは、コンピュータを、上記の点群解析処理装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【００２２】
以上説明したように、本発明の点群解析処理装置、方法、及びプログラムによれば、入力３次元点群を複数の領域に分類した領域の各々について、周辺３次元点群に基づいて、領域の最小曲率方向を推定し、領域の各々について、部分領域の特徴量の自己相関値を算出し、自己相関値が、予め定められた閾値より大きい値である領域の各々を、スイープ形状候補領域と判定し、スイープ形状候補領域と判定された領域の各々について、領域の平面度合いを示す値に基づいて、領域が、スイープ形状候補領域であるかを判定し、スイープ形状候補領域であると判定された領域を、特徴量に基づく相互相関値に基づいて統合し、統合領域の最小曲率方向の長さに基づいて、統合領域がスイープ形状であるか否かを判定することにより、計算量の増加を抑制しつつ、また事前に辞書データを登録しなくても、入力３次元点群からスイープ形状を検出することができる。
【図面の簡単な説明】
【００２３】
【図１】射影ベクトルと射影後の面積の概念図である。
【図２】本発明の第１の実施の形態に係る点群解析処理装置の機能的構成を示すブロック図である。
【図３】部分領域の特徴ベクトルによる自己相関値の算出の例を示す図である。
【図４】ラスタースキャンにより作成した射影形状画像とその部分領域特徴ベクトルの算出の例を示す図である。
【図５】領域と周辺領域の相互相関値の算出の例を示す図である。
【図６】統合された領域のスイープ形状の判定の例を示す図である。
【図７】本発明の第１の実施の形態に係る点群解析処理装置における点群解析処理ルーチンを示すフローチャート図である。
【図８】本発明の第１の実施の形態に係る点群解析処理装置における最小曲率方向の推定処理ルーチンを示すフローチャート図である。
【図９】本発明の第１の実施の形態に係る点群解析処理装置における自己相関値の算出処理ルーチンを示すフローチャート図である。
【図１０】本発明の第１の実施の形態に係る点群解析処理装置におけるスイープ形状候補領域の判定処理ルーチンを示すフローチャート図である。
【図１１】本発明の第１の実施の形態に係る点群解析処理装置における領域の統合処理ルーチンを示すフローチャート図である。
【図１２】本発明の第１の実施の形態に係る点群解析処理装置における１方向のスイープ形状の判定処理ルーチンを示すフローチャート図である。
【図１３】本発明の第１の実施の形態に係る点群解析処理装置における２軸方向のスイープ形状の判定処理ルーチンを示すフローチャート図である。
【図１４】本発明の第２の実施の形態に係る点群解析処理装置の機能的構成を示すブロック図である。
【図１５】本発明の第２の実施の形態に係る点群解析処理装置における点群解析処理ルーチンを示すフローチャート図である。
【図１６】本発明の第２の実施の形態に係る点群解析処理装置における最小曲率方向の推定処理ルーチンを示すフローチャート図である。
【図１７】本発明の第３の実施の形態に係る点群解析処理装置の機能的構成を示すブロック図である。
【図１８】本発明の第３の実施の形態に係る点群解析処理装置における点群解析処理ルーチンを示すフローチャート図である。
【図１９】任意曲線のスイープ形状の概念図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２５】
＜本発明の実施の形態に係る点群解析処理装置の原理＞
まず、本発明の実施の形態に係る点群解析処理装置の原理について説明する。
【００２６】
任意の射影形状を押し出して形成されるような３次元形状（以下、スイープ形状と呼ぶ）の物体は、最小曲率方向には共通の断面形状（当該断面形状が射影形状に相当する）を有しているという特徴がある。
【００２７】
また、本実施の形態に係る点群解析処理装置においては、局所領域ごとに、最小曲率方向における射影形状特徴の自己相関値の期待値を算出し、この自己相関の期待値が高いほどスイープ形状であると判定する。そのため、木の枝や葉っぱのような不規則な形状の場合、自己相関値は非常に低くなる傾向があるため、事前にスイープ形状とは適さない領域として判定することが可能である。
【００２８】
さらに、最小曲率方向が同じ方向であり、かつ類似した射影形状を有する３次元点群が、同一のスイープ形状に属している３次元点群であると考え、本実施の形態に係る点群解析処理装置においては、射影形状の類似性および最小曲率方向の類似性を用いて３次元点群を統合する。平面形状については、任意の２つのベクトルが張る平面方向に直線形状がスイープしたものであると判断し、本実施の形態に係る点群解析処理装置においては、射影形状の類似性および最小曲率方向の類似性を用いて３次元点群を統合する。これにより、スイープ形状を有する多様な３次元形状を同一のフレームワークで検出することが可能となる。
【００２９】
本実施の形態に係る点群解析処理装置においては、レーザースキャナ等で計測された３次元点群を入力としてスイープ形状を検出する。本実施の形態においては、電柱、ケーブル、建造物の壁面、ガードレール等をスイープ形状物体の一例として示すが、それ以外のスイープ形状を検出することも可能である。ここで、「スイープ形状を検出する」ことの物理的な意味について次のように定義する。
【００３０】
スイープ形状を検出するとは、入力された３次元点群からスイープ形状の表面に存在する３次元点群を見つけること、もしくはスイープ形状を規定する３次元モデルのパラメータを推定することを意味する。上記スイープ形状表面上の３次元点群で表現される３次元空間や３次元モデルのパラメータを、本実施の形態においては、スイープ形状領域と記載する。
【００３１】
また、３次元情報（位置情報）とは、緯度、経度、海抜（高さ）情報でもよいし、ユーザーが設定した特定の位置を原点とした３次元ユークリッド座標系でも極座標系でもよい。本実施の形態においては、ユーザーが設定した原点における３次元ユークリッド座標系（各方向をＸ，Ｙ，Ｚ座標とする）を想定する。
【００３２】
各座標の単位はメートル(m)やセンチメートル(cm)、ミリメートル(mm)で表現するが、他の単位でもよい。３次元点とは、上記の３次元座標に、その点が撮影された時刻、レーザーの反射強度、赤・青・緑などの色情報等が付与された点である。３次元点に付与される情報に制限はないが、少なくとも位置情報（Ｘ，Ｙ，Ｚ座標）は付与されたものであり、３次元点群とは、少なくとも１点の３次元点からなる集合である。
【００３３】
また、本実施の形態においては、ユークリッド座標系のＺ軸の方向は鉛直（高さ）方向を意味し、Ｘ軸とＹ軸の張る二次元平面は水平面を意味するものとする。また、３次元点群はレーザースキャナ以外にも、距離情報を取得できるセンサであればよく、例えばステレオカメラにより取得した奥行き情報から求めた３次元点群でもよい。
【００３４】
＜第１の実施の形態に係る点群解析処理装置について＞
スイープ形状の場合、ある特定の方向についてのみ共通の断面を持っており、その方向が最小曲率方向である。３次元点群の密度が非常に高い場合には、従来技術である曲面当てはめの推定により、領域ｃの各点での位置での最小曲率方向は推定することができる。
【００３５】
しかしながら、ＭＭＳのように車載に搭載されたレーザーで計測した３次元点群では、走行速度が速いときにはレーザースキャンの間隔が広くなるため、３次元点群が疎になりやすい。そのため、計測ノイズの影響が大きくなり、局所領域での最小曲率方向の推定精度は低くなる傾向がある。
【００３６】
第１の実施の形態においては、計測ノイズに頑健に推定するために、領域ｃの重心位置からある一定の大きさの周辺領域に含まれる３次元点群を用いて最小曲率方向を推定する。スイープ形状は、最小曲率方向に垂直な射影形状は類似した形状であるため、最小曲率方向に射影したときには３次元点群の面積、又は画素数が最も小さくなるという特徴がある。
【００３７】
そこで、第１の実施の形態では、様々な方向に射影後の３次元点群の面積、又は画素数を評価し、図１に示すように、最も小さいときの方向を最小曲率方向として算出する。
【００３８】
また、工学分野において、自己相関関数というものがある。これは、音声認識などの波形解析の手段として幅広く利用されており、波形を時間方向にずらしたときに相関の高低を算出する関数である。第１の実施の形態においては、この概念を拡張し、３次元点群に適用する。時間の代わりに、最小曲率方向について３次元点群形状をずらして相関が高いか調べる。しかし、ＭＭＳで計測した３次元点群そのものは計測が疎である（密でない）ため、最小曲率方向に微小にずらして相関を計算しても、相関値が正確に計算できない。そこで、第１の実施の形態においては、スキャンラインの間隔以上の大きさで最小曲率方向に分割した部分領域ごとに、形状の特徴（以下、分割領域特徴とも称する）を推定し、部分領域間の形状の特徴の相関を計算する。これにより、計測点が疎であっても頑健に相関値を推定することが可能となる。
【００３９】
＜第１の実施の形態に係る点群解析処理装置の構成＞
次に、本発明の第１の実施の形態に係る点群解析処理装置の構成について説明する。図２に示すように、第１の実施の形態に係る点群解析処理装置１００は、ＣＰＵと、ＲＡＭと、後述する点群解析処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この点群解析処理装置１００は、機能的には、被写体計測部１０と、入力部１２と、演算部２０と、出力部９０とを含んで構成されている。
【００４０】
被写体計測部１０は、３次元点群を計測するものであり、レーザーレンジファインダや、赤外線センサ、または超音波センサなど、被写体とセンサとの距離を測定可能な装置である。例えば、レーザーレンジファインダをＧＰＳ（Global Positioning System）が搭載された車の上、もしくはＧＰＳの搭載された飛行機に搭載し、移動しながら計測することで、屋外の環境の地物を被写体とし、例えばケーブル、建物、ガードレール、道路地面などであり、これら被写体表面の３次元位置を計測するシステムである。第１の実施の形態においては、被写体計測部１０として、車上にＧＰＳとレーザーレンジファインダとが搭載されているＭＭＳ（Mobile Mapping System）を用い、被写体の物体の表面上の位置を計測した計測結果である複数の位置を表す３次元点群を取得する。なお、被写体計測部１０は、ある特定の位置（交差点など）１箇所からの計測部であってもよい。
【００４１】
入力部１２は、マウスやキーボードなどのユーザーインターフェースであり、点群解析処理装置１００で使用するパラメータを入力するものである。また、パラメータを記憶したＵＳＢメモリなどの外部記憶媒体でもよく、記憶部３０にパラメータを供給する。例えば、地図上の柱状構造物の位置情報などが登録されている。また、第１の実施の形態においては、パラメータとして、半径Ｒｃｕｔの値、閾値ｔｈ＿Ｐｏｉｎｔの値、繰り返し処理の回数Ｔの値、Δｄの値、閾値ｔｈ＿Ｅａｕｔоの値、閾値ｔｈ＿Ｐｌａｎｅの値、εの値、ｋの値、距離Ｒｎｅａｒの値、閾値ｔｈ＿νの値、閾値ｔｈ＿Ｅｃｒоｓｓの値、閾値ｔｈ＿Ｅｃｏｓｔの値、閾値ｔｈ＿Ｌｅｎｇの値、及び閾値ｔｈ＿Ａｒｅａの値が入力されるものとする。
【００４２】
演算部２０は、記憶部３０と、スイープ形状検出部４０と、を含んで構成されている。
【００４３】
記憶部３０は、３次元点群記憶部３２と、演算処理用パラメータ記憶部３４と、スイープ形状領域情報記憶部３６と、を含んで構成されている。また、記憶部３０は、例えば、ＨＤＤ（Hard Disk Drive）や、ＳＳＤ（Solid State Drive）等のハードウェアによる記憶装置である。
【００４４】
３次元点群記憶部３２には、被写体計測部１０から入力された３次元点群が記憶されている。
【００４５】
演算処理用パラメータ記憶部３４には、入力部１２により受け付けた半径Ｒｃｕｔの値、閾値ｔｈ＿Ｐｏｉｎｔの値、繰り返し処理の回数Ｔの値、Δｄの値、閾値ｔｈ＿Ｅａｕｔоの値、閾値ｔｈ＿Ｐｌａｎｅの値、εの値、ｋの値、距離Ｒｎｅａｒの値、閾値ｔｈ＿νの値、閾値ｔｈ＿Ｅｃｒоｓｓの値、閾値ｔｈ＿Ｅｃｏｓｔの値、閾値ｔｈ＿Ｌｅｎｇの値、及び閾値ｔｈ＿Ａｒｅａの値、が記憶されている。このようなパラメータは、実験的に決めるパラメータである。
【００４６】
スイープ形状領域情報記憶部３６には、スイープ形状検出部４０において検出されたスイープ形状が存在する３次元位置や、３次元空間の領域、若しくは検出したスイープ形状が存在する３次元点群の番号などの情報が記憶されている。
【００４７】
スイープ形状検出部４０は、初期領域決定部４２と、最小曲率方向推定部４４と、自己相関値算出部４６と、スイープ形状候補領域判定部４８と、領域統合処理部５０と、スイープ形状判定部５２とを含んで構成されている。
【００４８】
初期領域決定部４２は、３次元点群記憶部３２に記憶されている３次元点群をクラスタリングし、クラスタリングされた点群（クラスタを意味する）を領域とする。なお、各領域を区別する番号をｃ（∈１，２，３，．．．，Ｃ）、入力３次元点群Ｐｐоｉｎｔｓの点の各々を区別する番号をｉ、入力３次元点群の総数をＮｉ、各点の３次元位置を下記（１）で表現するものとする。ただし、［ｘｉ，ｙｉ，ｚｉ］Ｔは、Ｘ軸、Ｙ軸、及びＺ軸の座標成分を意味し、右上の添え字の記号「Ｔ」は転置を意味する。また、領域ｃに属する点は、下記（２）式のように、右上の添え字に領域の番号を示すことで陽に表記することもある。また、点そのものも１つの点からなる３次元点群と考え、第１の実施の形態においては、点そのものであっても３次元点群と称する場合もある。第１の実施の形態においては、領域ｃに属する点は１点のみからなる３次元点群とし、初期領域決定部４２において作成される領域数はＮｉ、つまり入力点群の総数と等しいとする。
【００４９】
【数１】
0006322564.tif 000002
0006322564.tif 000003
【００５０】
最小曲率方向推定部４４は、初期領域決定部４２により取得した各領域ｃについて周辺３次元点群Ｑｃｐоｉｎｔｓを取得すると共に、ノイズとなる領域ｃを判定し、ノイズとなる領域を、以後の処理の処理対象として除外する。具体的には、領域ｃの各々について、入力３次元点群Ｐｐоｉｎｔｓから、下記（３）式を満たす、当該領域ｃに属する３次元点群の重心位置から、演算処理用パラメータ記憶部３４に記憶されている半径Ｒｃｕｔ以内に含まれる３次元点群を、周辺３次元点群Ｑｃｐоｉｎｔｓとして取得する。そして、領域ｃの各々について、当該領域ｃの周辺３次元点群Ｑｃｐоｉｎｔｓに含まれる点の数が演算処理用パラメータ記憶部３４に記憶されている閾値ｔｈ＿Ｐｏｉｎｔの値以下か否かを判定し、閾値ｔｈ＿Ｐｏｉｎｔ（例えば、第１の実施の形態においてはｔｈ＿Ｐｏｉｎｔ＝１０（点）とする。）の値以下である領域ｃをノイズとして判定し、当該領域ｃを、以後の処理の処理対象としないとする。なお、第１の実施の形態においては、Ｒｃｕｔ＝０．５（ｍ）とする。
【００５１】
【数２】
0006322564.tif 000004
【００５２】
ここで、上記（３）式は、
【００５３】
【数３】
0006322564.tif 000005
【００５４】
を満たす点ｐｉ（∈Ｐｐоｉｎｔｓ）からなる集合を周辺点ｑｃｊ（∈Ｑｃｐоｉｎｔｓ）とすることを意味する。また、
【００５５】
【数４】
0006322564.tif 000006
【００５６】
はベクトルの２ノルムを意味し、
【００５７】
【数５】
0006322564.tif 000007
【００５８】
は領域ｃに属する３次元点群の重心ベクトルであり、下記（４）式に従って、領域ｃに属する３次元点群の３次元位置の平均値として求まる。
【００５９】
【数６】
0006322564.tif 000008
【００６０】
ただし、Ｎｊｃは領域ｃに属する点の数とする。第１の実施の形態においては、領域に属する点の数の初期値は１点なので、重心ベクトルは所属している点のベクトルそのものとなる。
【００６１】
また、最小曲率方向推定部４４は、領域ｃの各々について、当該領域ｃの周辺３次元点群Ｑｃｐоｉｎｔｓを用いて、繰り返し処理により最小曲率方向を推定する。具体的には、まず、領域ｃの周辺３次元点群Ｑｃｐоｉｎｔｓから、ランダムサンプリングにより２点（ｑ１ｃ及びｑ２ｃ）を取得する。次に、取得した２点に基づいて、下記（５）式に従って、仮最小曲率方向
【００６２】
【数７】
0006322564.tif 000009
【００６３】
を推定する。
【００６４】
【数８】
0006322564.tif 000010
【００６５】
ただし、右上の添え字（ｔ）は、繰り返し処理がｔ回目であることを意味する。なお、演算処理用パラメータ記憶部３４に記憶されている、繰り返し処理の回数であるＴの値は実験で定める。Ｔの値は大きければ大きいほど精度は向上するが、全ての領域について計算するため計算時間に影響する。第１の実施の形態において、Ｔ＝１００（回）としたが、オフライン処理で計算時間が長くても問題ない場合はＴの値はこれ以上でも問題ない。また、ランダムサンプリングした際には、３次元点群を射影して生成する画像（射影形状画像）の初期値は、全画素について０とする。
【００６６】
次に、推定した仮最小曲率方向
【００６７】
【数９】
0006322564.tif 000011
【００６８】
のベクトルに垂直な平面の基底ベクトルを、
【００６９】
【数１０】
0006322564.tif 000012
【００７０】
とすると、周辺点ｑｊｃを射影した射影形状の位置は、射影形状画像の位置
【００７１】
【数１１】
0006322564.tif 000013
【００７２】
として、下記（６）式に従って求まる。
【００７３】
【数１２】
0006322564.tif 000014
【００７４】
ただし、ｒоｕｎｄ（）は、入力した実数値の小数点を四捨五入することを意味し、Δｄは画像座標を求める際の量子化の幅であり、演算処理用パラメータ記憶部３４に記憶されている。第１の実施の形態においては、Δｄ＝０．０２（ｍ）とする。
【００７５】
次に、繰り返し処理ｔ回目の射影形状画像Ｉｓ（ｔ）について、周辺点ｑｊｃの射影後の画素の位置
【００７６】
【数１３】
0006322564.tif 000015
【００７７】
の画素値について下記（７）式に従って、値を更新する。なお、下記（７）式による画素値の更新は、周辺点ｑｊｃの全てを射影するまで行う。なお、記号「←」は、代入して値を更新することを意味する。
【００７８】
【数１４】
0006322564.tif 000016
【００７９】
次に、上記ランダムサンプリングによる仮最小曲率方向の算出、及び作成された射影形状画像の対象となる画素の各々の画素値の更新の処理を、Ｔ回繰り返す。そして、下記（８）式を満たす方向を、当該領域ｃの最小曲率方向として推定する。
【００８０】
【数１５】
0006322564.tif 000017
【００８１】
自己相関値算出部４６は、図３に示すように、領域ｃの各々について、最小曲率方向推定部４４において取得した当該領域ｃの最小曲率方向における、当該領域ｃの部分領域毎の部分領域特徴の自己相関値の期待値を算出する。具体的には、まず、領域ｃにおいて、領域ｃの周辺３次元点群をＮｓ個の部分領域に属するように分割する。次に、分割した部分領域毎に、特徴量として部分特徴ベクトル
【００８２】
【数１６】
0006322564.tif 000018
【００８３】
を抽出する。次に、それぞれの部分特徴ベクトル
【００８４】
【数１７】
0006322564.tif 000019
【００８５】
の相関値を算出することにより、当該領域ｃの自己相関値を算出する。第１の実施の形態においては、部分領域毎の部分特徴ベクトルを取得するために、まず、部分領域に属する周辺点ｑｊｃを、最小曲率方向推定部４４と同様に、当該部分領域の領域ｃについて取得した最小曲率方向に射影し、下記（９）式に従って、対象となる画素の画素値を更新しながら、射影形状画像Ｉｓを作成する。
【００８６】
【数１８】
0006322564.tif 000020
【００８７】
次に、作成された射影形状画像Ｉｓを、図４に示すようにラスタースキャンして作成される部分領域特徴ベクトル
【００８８】
【数１９】
0006322564.tif 000021
【００８９】
を取得する。なお、第１の実施の形態においては、３次元点群が疎な場合でも頑健になるように、射影形状画像から算出した部分領域特徴ベクトルを用いる。
【００９０】
また、第１の実施の形態においては、領域ｃ毎に、当該領域ｃの部分領域毎に取得した部分領域特徴ベクトル
【００９１】
【数２０】
0006322564.tif 000022
【００９２】
に基づいて、下記（１０）式に従って、自己相関値Ｅａｕｔоを算出する。
【００９３】
【数２１】
0006322564.tif 000023
【００９４】
ただし、部分領域特徴ベクトル
【００９５】
【数２２】
0006322564.tif 000024
【００９６】
は、ｓとは異なる位置での部分領域特徴ベクトルを示し、記号「→」はベクトルのノルムが１．０に正規化されていることを示し、関数Ｎｕｍ（ｓ）は部分領域特徴ベクトルの組み合わせの数を意味する。分割した部分領域の数がＮｓ個の場合、Ｎｕｍ（ｓ）は下記（１１）式に従って算出される。
【００９７】
【数２３】
0006322564.tif 000025
【００９８】
なお、ノルムは下記（１２）式により１．０に正規化できる。
【００９９】
【数２４】
0006322564.tif 000026
【０１００】
スイープ形状候補領域判定部４８は、各領域ｃについて、当該領域ｃがスイープ形状候補領域か否かの判定を行う。具体的には、下記（１３）式に示すように、領域ｃについて、自己相関値算出部４６において取得した当該領域ｃの自己相関値が、演算処理用パラメータ記憶部３４に記憶されている閾値ｔｈ＿Ｅａｕｔоの値より大きい場合にスイープ形状候補領域と判定する。なお、第１の実施の形態においては、閾値ｔｈ＿Ｅａｕｔо＝０．２とする。
【０１０１】
【数２５】
0006322564.tif 000027
【０１０２】
また、スイープ形状候補領域判定部４８は、スイープ形状候補領域と判定された領域ｃの各々について、１方向のスイープ形状候補領域及び２軸方向のスイープ形状候補領域（平面）の何れであるかの判定を行う。第１の実施の形態においては、スイープ形状候補領域と判定された領域ｃに含まれる３次元点群形状を推定し、平面度合いが、演算処理用パラメータ記憶部３４に記憶されている閾値ｔｈ＿Ｐｌａｎｅの値より小さいものを２軸方向のスイープ形状候補領域ｃ（平面）と判定し、平面度合いが、閾値ｔｈ＿Ｐｌａｎｅの値以上のものを１方向のスイープ形状候補領域ｃと判定する。具体的には、スイープ形状候補領域と判定された領域ｃについて、当該領域ｃに属する３次元点群の重心と、当該領域ｃの周辺３次元点群Ｑｃｐоｉｎｔｓと基づいて、下記（１４）式に従って、共分散行列ＰＱｃоｒｒを算出し、算出された共分散行列ＰＱｃоｒｒを固有値分解して算出される固有値λ０ｃ，λ１ｃ，λ２ｃ（λ０ｃ＞λ１ｃ＞λ２ｃ）に基づいて、下記（１５）式に従って、判定する。
【０１０３】
【数２６】
0006322564.tif 000028
0006322564.tif 000029
【０１０４】
なお、第１の実施の形態においては、閾値ｔｈ＿Ｐｌａｎｅ＝０．０２とし、εは演算処理用パラメータ記憶部３４に記憶されており、０割りを防ぐための微小値であり、第１の実施の形態においては、例えば、ε＝０．００００１とする。
【０１０５】
また、スイープ形状候補領域判定部４８は、スイープ形状候補領域と判定された領域ｃの各々について、統合特徴方向νｃを取得する。具体的には、１方向のスイープ形状候補領域と判定された領域ｃについては、最小曲率方向推定部４４において取得した当該領域ｃの最小曲率方向ｍｃを、統合特徴方向νｃとして取得する。一方、２軸方向のスイープ形状候補領域と判定された領域ｃについては、当該スイープ形状候補領域について取得した固有値の最小固有値λ２ｃに対応する固有ベクトル方向を、統合特徴方向νｃとして取得する。
【０１０６】
領域統合処理部５０は、スイープ形状候補領域判定部４８において取得した、１方向のスイープ形状候補領域ｃの各々、及び２軸方向のスイープ形状候補領域ｃの各々について、領域統合処理を行う。具体的には、まず、スイープ形状候補領域判定部４８において取得した、１方向のスイープ形状候補領域ｃの各々について、自己相関値算出部４６において取得した自己相関値が大きい順に並べる。次に、処理対象となる１方向のスイープ形状候補領域ｃを、自己相関値が大きい順番に未処理の１方向のスイープ形状候補領域ｃの各々のうちから１つ選択する。次に、処理対象となる１方向のスイープ形状候補領域ｃにおける周辺領域を検出する。ここで、周辺領域を区別する番号をｂ（∈１，２，３，４，．．．，Ｂ）、処理対象となる１方向のスイープ形状候補領域ｃに対する周辺領域の数をＢで表現する。第１の実施の形態においては、処理対象となる１方向のスイープ形状候補領域ｃに属する点から、演算処理用パラメータ記憶部３４に記憶されている距離Ｒｎｅａｒに存在する、１方向のスイープ候補領域ｃを周辺領域ｂとする。つまり、距離Ｒｎｅａｒに３次元点群が存在する領域であり、かつ当該領域が１方向のスイープ形状候補領域ｃの場合、周辺領域ｂとする。なお、第１の実施の形態においては、距離Ｒｎｅａｒ＝１．０（ｍ）とする。
【０１０７】
次に、取得した周辺領域ｂの各々について、自己相関値算出部４６において取得した自己相関値が大きい順に並べる。次に、処理対象となる１方向のスイープ候補領域ｃの領域特徴ベクトルを算出する。ここで、処理対象となる１方向のスイープ候補領域ｃの領域特徴ベクトルとは、下記（１６）式に従って算出される、最小曲率方向推定部４４において取得した１方向のスイープ候補領域ｃについて取得した当該領域の部分領域毎の部分特徴ベクトルの平均ベクトル
【０１０８】
【数２７】
0006322564.tif 000030
【０１０９】
である。
【０１１０】
【数２８】
0006322564.tif 000031
【０１１１】
次に、処理対象となる周辺領域ｂを、自己相関値が大きい順番に未処理の周辺領域ｂの各々のうちから１つ選択する。
【０１１２】
次に、処理対象となる周辺領域ｂの領域特徴ベクトルを算出する。第１の実施の形態においては、領域の領域特徴ベクトルとして、射影形状特徴ベクトルを用いているため、スイープ方向に垂直なＸ´軸及びＹ´軸の作成方法によって、処理対象となる１方向のスイープ候補領域ｃと処理対象となる周辺領域ｂとで射影形状特徴ベクトルが異なるために、相関値が低くなる。そのため、処理対象となる周辺領域ｂの領域特徴ベクトルは、以下のように作成される。
【０１１３】
まず、図５に示すように、処理対象となる１方向のスイープ候補領域ｃで用いた射影画像を作成するときに使用した
【０１１４】
【数２９】
0006322564.tif 000032
【０１１５】
をＸ´軸、及びＹ´軸として、処理対象となる周辺領域ｂの部分領域毎の部分特徴ベクトルを再度生成する。そして、生成された処理対象となる周辺領域ｂの部分領域毎の部分特徴ベクトルに基づいて、上記（１６）式に従って、平均ベクトルを算出し、処理対象となる周辺領域ｂの領域特徴ベクトル
【０１１６】
【数３０】
0006322564.tif 000033
【０１１７】
とする。なお、上述の処理対象となる１方向のスイープ候補領域ｃと同様に、上記（１６）式に従って算出される、最小曲率方向推定部４４において取得した処理対象となる周辺領域ｂについて取得した当該領域の部分領域毎の部分特徴ベクトルの平均ベクトルを算出し、処理対象となる１方向のスイープ候補領域ｃで用いた射影画像を作成するときに使用した
【０１１８】
【数３１】
0006322564.tif 000034
【０１１９】
と、処理対象となる周辺領域ｂで用いた射影画像を作成するときに使用した
【０１２０】
【数３２】
0006322564.tif 000035
【０１２１】
とに基づいて、算出した平均ベクトルを変換して、処理対象となる周辺領域ｂの領域特徴ベクトル
【０１２２】
【数３３】
0006322564.tif 000036
【０１２３】
を作成するようにしてもよい。
【０１２４】
そして、領域統合処理部５０は、取得した処理対象となる１方向のスイープ候補領域ｃの領域特徴ベクトル、又は前回更新された処理対象となる１方向のスイープ形状候補領域ｃの領域特徴ベクトル、及び処理対象となる周辺領域ｂの領域特徴ベクトルに基づいて、下記（１７）式に従って、内積計算により両領域間の相互相関値を算出する。
【０１２５】
【数３４】
0006322564.tif 000037
【０１２６】
次に、領域統合処理部５０は、処理対象となる１方向のスイープ候補領域ｃに、処理対象となる周辺領域ｂを統合するか否かを判定する。具体的には、算出した両領域間の相互相関値と、スイープ形状候補領域判定部４８において取得した処理対象となる１方向のスイープ候補領域ｃの統合特徴方向νｃ、又は前回更新された処理対象となる１方向のスイープ候補領域ｃの統合特徴方向νｃと、スイープ形状候補領域判定部４８において取得した処理対象となる周辺領域ｂの統合特徴方向νｂとの内積として求められる統合特徴方向の類似度を用いて、下記（１８）式、及び下記（１９）式に従って、下記（１８）式、及び下記（１９）式の条件を満たす場合には、処理対象となる１方向のスイープ候補領域ｃに、処理対象となる周辺領域ｂを統合すると判定する。第１の実施の形態においては、閾値ｔｈ＿ν＝０．９９、閾値ｔｈ＿Ｅｃｒоｓｓ＝０．６とし、閾値ｔｈ＿ν、及び閾値ｔｈ＿Ｅｃｒоｓｓは、演算処理用パラメータ記憶部３４に記憶されている。
【０１２７】
【数３５】
0006322564.tif 000038
【０１２８】
上記（１８）式、及び上記（１９）式の条件を満たすと判定され、処理対象となる１方向のスイープ候補領域ｃに処理対象となる周辺領域ｂを統合する場合には、周辺領域ｂに属する３次元点群の全てを領域ｃに属する３次元点群として変更する。統合時における領域特徴ベクトルの更新は、更新パラメータをαとし、下記（２０）式、及び下記（２１）式に従って算出される。
【０１２９】
【数３６】
0006322564.tif 000039
【０１３０】
なお、第１の実施の形態においては、例えば、更新パラメータαは、処理対象となる１方向のスイープ候補領域ｃと統合する周辺領域ｂとの３次元点群数の比率から、下記（２２）式に従って、算出される。各領域に含まれる３次元点群数をＮｕｍｂｅｒ（ｃ）、Ｎｕｍｂｅｒ（ｂ）と表記する。
【０１３１】
【数３７】
0006322564.tif 000040
【０１３２】
次に、処理対象となる１方向のスイープ候補領域ｃについて、上記統合処理を全ての処理対象となる周辺領域ｂについて終了するまで繰り返す。そして、上記統合処理を、全ての処理対象となる１方向のスイープ候補領域ｃについて終了するまで繰り返す。
【０１３３】
また、２軸方向のスイープ候補領域の統合についても、１方向のスイープ候補領域と同様に行う。すなわち、処理対象となる２軸方向のスイープ候補領域ｃについて、１方向のスイープ候補領域と同様の統合処理を、２軸方向のスイープ候補領域である全ての処理対象となる周辺領域ｂについて終了するまで繰り返す。そして、同様の統合処理を、全ての処理対象となる２軸方向のスイープ候補領域ｃについて終了するまで繰り返す。
【０１３４】
なお、処理対象となる領域が領域Ａであり、統合される周辺領域が領域Ｂとなる処理後に、処理対象となる領域が領域Ｂとなり、統合される周辺領域が領域Ｃとなった場合、最終的に、領域Ａに領域Ｂと領域Ｃとが統合されることになる。また、他の領域に統合すると判定された領域についても処理対象となる１方向のスイープ候補領域ｃ、又は２軸方向のスイープ候補領域ｃとなる。
【０１３５】
スイープ形状判定部５２は、領域統合処理部５０において統合された１方向のスイープ候補領域ｃの各々について、１方向のスイープ形状であるか否かの判定を行う。これは、領域統合処理部５０において統合された１方向のスイープ候補領域ｃには、図６に示すような、段差のある平面に挟まれた３次元点群領域も１方向のスイープ形状候補領域と判定されているためである。以下、このような３次元点群領域を疑似スイープ形状と定義する。例えば、道路と歩道との間の段差部分や建造物の壁面の交差したコーナー等が該当する。
【０１３６】
まず、１方向のスイープ形状か疑似スイープ形状かを判定する処理について説明する。具体的には、統合された１方向のスイープ候補領域ｃの各々について、まず、当該１方向のスイープ候補領域ｃに属する３次元点群ｐｊｃの各々について、全ての３次元点群から、ｋ近傍の３次元点群を周辺３次元点群として取得する。周辺３次元点群には、１方向のスイープ候補領域ｃに属する３次元点群、及びそれ以外の領域の３次元点群が含まれる。次に、当該１方向のスイープ候補領域ｃに属する３次元点群ｐｊｃの各々についての周辺３次元点群を用いて、下記（２３）式〜下記（２５）式に従って、当該１方向のスイープ候補領域ｃが周辺領域と切り離した場合のコストを評価する関数Ｅｃоｓｔを算出する。ここで、１方向のスイープ候補領域ｃに属するｐｊｃについて、１方向のスイープ候補領域ｃに属していないｋ近傍の周辺点を有する点をｐｆｃとし、点ｐｊｃのｋ近傍の点について、１方向のスイープ候補領域ｃに属している点をｐｆ（ｋ）とし、１方向のスイープ候補領域ｃに属していない点をｐｈ（ｋ）と表記する。第１の実施の形態においては、ｋ＝２０とし、ｋの値は、演算処理用パラメータ記憶部３４に記憶されている。
【０１３７】
【数３８】
0006322564.tif 000041
【０１３８】
ここで、上記（２３）式により求まる関数Ｅｃоｓｔ（ｃ）は、１方向のスイープ候補領域ｃの境界上（周辺領域に近い場所）に存在する３次元点群について、１方向のスイープ候補領域ｃ以外に含まれる３次元点群と密に接している場合には、上記（２５）式により求まるＥｃоｓｔ＿ＮｏｔＲｅｇｉｏｎ（ｃ）が大きな値になりやすい。
【０１３９】
次に、１方向のスイープ候補領域ｃのスイープ方向における長さＬｅｎｇ（ｃ）を下記（２６）式に従って、算出する。ここで、スイープ方向における長さは、１方向のスイープ候補領域ｃに属する３次元点群を最小曲率方向に射影したとき（つまり、最小曲率方向のベクトルとの内積）の最大値と最小値の差分である。
【０１４０】
【数３９】
0006322564.tif 000042
【０１４１】
次に、算出したＥｃоｓｔ（ｃ）、及びＬｅｎｇ（ｃ）に基づいて、下記（２７）式及び下記（２８）式に従って、当該１方向のスイープ候補領域ｃが１方向のスイープ形状か否かを判定する。下記（２７）式及び下記（２８）式の条件を満たす場合には、当該１方向のスイープ候補領域ｃは１方向のスイープ形状と判定する。一方、下記（２７）式及び下記（２８）式の条件を満たさない場合は、当該１方向のスイープ候補領域ｃは疑似スイープ形状と判定する。そして、１方向のスイープ形状と判定された場合には、当該１方向のスイープ候補領域ｃに属する３次元点群の３次元位置や３次元空間の領域を１方向のスイープ形状と対応付けてスイープ形状領域情報記憶部３６に記憶すると共に、出力部９０に出力する。
【０１４２】
【数４０】
0006322564.tif 000043
【０１４３】
次に、２軸方向のスイープ形状であるか否かを判定する処理について説明する。具体的には、統合された２軸方向のスイープ形状候補領域ｃの各々について、まず、当該２軸方向のスイープ形状候補領域ｃに属する３次元点群ｐｊｃの各々に基づいて、下記（２９）式〜下記（３１）式に従って、当該２軸方向のスイープ形状候補領域ｃの平面領域の大きさＡｒｅａ（ｃ）を算出する。
【０１４４】
【数４１】
0006322564.tif 000044
【０１４５】
ここで、Ａｒｅａ（ｃ）は、スイープ形状候補領域判定部４８において、２軸方向のスイープ形状候補領域ｃの平面度を計算した際に取得した第１固有ベクトル、及び第２固有ベクトル上に、当該２軸方向のスイープ形状候補領域ｃに属する３次元点群を最小曲率方向に射影したときの最大値と最小値との差分が縦幅Ｌｅｎｇ（ｃ）、横幅Ｗｉｄｔｈ（ｃ）として算出される。ただし、ベクトル
【０１４６】
【数４２】
0006322564.tif 000045
【０１４７】
は平面度を算出する際に取得した、固有値λ０ｃ，λ１ｃ，λ２ｃの第二固有値λ１ｃに対応する固有ベクトルとする。
【０１４８】
次に、算出したＡｒｅａ（ｃ）に基づいて、下記（３２）式に従って、当該２軸方向のスイープ形状候補領域ｃが２軸方向のスイープ形状か否かを判定する。下記（３２）式の条件を満たす場合には、当該２軸方向のスイープ形状候補領域ｃは２軸方向のスイープ形状と判定する。一方、下記（３２）式の条件を満たさない場合は、当該２軸方向のスイープ形状候補領域ｃは２軸方向のスイープ形状でないと判定する。そして、２軸方向のスイープ形状と判定された場合には、当該２軸方向のスイープ形状候補領域ｃに属する３次元点群の３次元位置や３次元空間の領域を２軸方向のスイープ形状と対応付けてスイープ形状領域情報記憶部３６に記憶すると共に、出力部９０に出力する。第１の実施の形態においては、閾値ｔｈ＿Ｅｃｏｓｔ＝０．３、閾値ｔｈ＿Ｌｅｎｇ＝１．０（ｍ）、閾値ｔｈ＿Ａｒｅａ＝０．４とし、閾値ｔｈ＿Ｅｃｏｓｔ、閾値ｔｈ＿Ｌｅｎｇ、及び閾値ｔｈ＿Ａｒｅａは、演算処理用パラメータ記憶部３４に記憶されている。
【０１４９】
【数４３】
0006322564.tif 000046
【０１５０】
＜第１の実施の形態に係る点群解析処理装置の作用＞
次に、第１の実施の形態に係る点群解析処理装置１００の作用について説明する。まず、被写体計測部１０により被写体の物体の表面上の位置を計測した計測結果である複数の位置を表す３次元点群を取得し、３次元点群記憶部３２に記憶する。次に、入力部１２により、演算処理用パラメータの各々を受け付け、演算処理用パラメータ記憶部３４に記憶する。そして、スイープ形状検出部４０により、３次元点群記憶部３２に記憶されている３次元点群と、演算処理用パラメータ記憶部３４に記憶されている演算処理用パラメータの各々とを読み込むと、点群解析処理装置１００によって、図７に示す点群解析処理ルーチンが実行される。
【０１５１】
まず、ステップＳ１００では、読み込んだ３次元点群をクラスタリングし、クラスタリングされた各クラスタを各領域ｃとする。
【０１５２】
次に、ステップＳ１０２では、ステップＳ１００において取得した領域ｃの各々について、繰り返し処理により最小曲率方向を推定する。
【０１５３】
上記ステップＳ１０２は、図８に示す最小曲率方向の推定処理ルーチンにおいて詳細に説明する。
【０１５４】
図８のステップＳ２００では、ステップＳ１００において取得した各領域ｃのうち、処理対象となる領域ｃを決定する。
【０１５５】
次に、ステップＳ２０２では、処理対象となる領域ｃについて、読み込んだ３次元点群、及び半径Ｒｃｕｔの値に基づいて、上記（３）式に従って、当該領域ｃの周辺３次元点群Ｑｃｐоｉｎｔｓを取得する。
【０１５６】
次に、ステップＳ２０４では、処理対象となる領域ｃについて、ステップＳ２０２において取得した当該領域ｃの周辺３次元点群Ｑｃｐоｉｎｔｓに含まれる点の数が、読み込んだ閾値ｔｈ＿Ｐоｉｎｔの値以下であるか否か判定する。点の数が閾値ｔｈ＿Ｐоｉｎｔ以下である場合には、ステップＳ２０６へ移行する。一方、点の数が閾値ｔｈ＿Ｐоｉｎｔより大きい場合には、ステップＳ２０８へ移行する。
【０１５７】
ステップＳ２０６では、処理対象となる領域ｃを削除し、以後の処理において当該領域ｃを処理対象としない領域として決定する。
【０１５８】
ステップＳ２０８では、処理対象となる全ての領域ｃについてステップＳ２００〜ステップＳ２０４までの処理を終了したか否かを判定する。処理対象となる全ての領域ｃについてステップＳ２００〜ステップＳ２０４までの処理を終了している場合には、ステップＳ２１０へ移行する。一方、処理対象となる全ての領域ｃについてステップＳ２００〜ステップＳ２０４までの処理を終了していない場合には、ステップＳ２００へ移行し、処理対象となる領域ｃを変更して、ステップＳ２０２〜ステップＳ２０８までの処理を繰り返す。
【０１５９】
次に、ステップＳ２１０では、処理対象となる領域ｃを決定する。
【０１６０】
次に、ステップＳ２１２では、ｔの値を１に設定する。
【０１６１】
次に、ステップＳ２１４では、処理対象となる領域ｃのステップＳ２０２において取得した周辺３次元点群Ｑｃｐоｉｎｔｓからランダムサンプリングにより２点（ｑ１ｃ及びｑ２ｃ）を取得する。
【０１６２】
次に、ステップＳ２１６では、処理対象となる領域ｃについて、ステップＳ２１４において取得した２点に基づいて、上記（５）式に従って、仮最小曲率方向を推定する。
【０１６３】
次に、ステップＳ２１８では、処理対象となる領域ｃについて、ステップＳ２１６において取得した仮最小曲率方向に基づいて、当該仮最小曲率方向のベクトルに垂直な平面の基底ベクトルを取得する。
【０１６４】
次に、ステップＳ２２０では、処理対象となる領域ｃについて、ステップＳ２０２において取得した当該領域ｃの周辺３次元点群Ｑｃｐоｉｎｔｓのうち、処理対象となる周辺点ｑｊｃを決定する。
【０１６５】
次に、ステップＳ２２２では、ステップＳ２２０において取得した処理対象となる周辺点ｑｊｃを、ステップＳ２１６において取得した仮最小曲率方向に射影した射影形状の位置を、処理対象となる周辺点ｑｊｃと、処理対象となる領域ｃに属する３次元点群と、ステップＳ２１８において取得した基底ベクトルと、読み込んだΔｄの値とに基づいて、上記（６）式に従って算出する。
【０１６６】
次に、ステップＳ２２４では、処理対象となる周辺点ｑｊｃについて、ステップＳ２２２において取得した射影形状画像の位置に基づいて、上記（７）式に従って、当該射影形状画像Ｉｓの画素の画素値を更新する。
【０１６７】
次に、ステップＳ２２６では、処理対象となる領域ｃの、ステップＳ２０２において取得した周辺３次元点群Ｑｃｐоｉｎｔｓに含まれる全ての周辺点ｑｊｃについて、ステップＳ２２０〜ステップＳ２２４までの処理を終了したか否かを判定する。全ての周辺点ｑｊｃについてステップＳ２２０〜ステップＳ２２４までの処理を終了している場合には、ステップＳ２２８へ移行する。一方、全ての周辺点ｑｊｃについて処理を終了していない場合には、ステップＳ２２０へ移行し、処理対象となる周辺点ｑｊｃを変更して、ステップＳ２２２〜ステップＳ２２６までの処理を繰り返す。
【０１６８】
次に、ステップＳ２２８では、ｔの値が、読み込んだ繰り返しの数Ｔ（Ｔ＝１００）の値であるか否かを判定する。ｔの値が繰り返しの数Ｔの値である場合には、ステップＳ２３２へ移行する。一方、ｔの値が繰り返しの数Ｔの値でない場合には、ステップＳ２３０へ移行する。
【０１６９】
ステップＳ２３０では、ｔの値をｔ＋１と設定する。
【０１７０】
ステップＳ２３２では、処理対象となる領域ｃについて、ステップＳ２２４において取得した繰り返し回数ｔ毎の周辺点の各々に対応する射影形状画像の画素の画素値に基づいて、上記（８）式に従って、当該領域ｃの最小曲率方向を推定する。
【０１７１】
次に、ステップＳ２３４では、処理対象となる全ての領域ｃについてステップＳ２１０〜ステップＳ２３２までの処理を終了したか否かを判定する。処理対象となる全ての領域ｃについてステップＳ２１０〜ステップＳ２３２までの処理を終了した場合には、最小曲率方向の推定処理ルーチンを終了する。一方、処理対象となる全ての領域ｃについてステップＳ２１０〜ステップＳ２３２までの処理を終了していない場合には、ステップＳ２１０へ移行し、処理対象となる領域ｃを変更して、ステップＳ２１２〜ステップＳ２３４までの処理を繰り返す。
【０１７２】
図７のステップＳ１０４では、処理対象となる領域ｃの各々について、ステップＳ１０２において取得した当該領域ｃの最小曲率方向における、当該領域ｃの部分領域毎の部分領域特徴の自己相関値を算出する。
【０１７３】
上記ステップＳ１０４は、図９に示す自己相関値の算出処理ルーチンにおいて詳細に説明する。
【０１７４】
図９のステップＳ３００では、処理対象となる領域ｃを決定する。
【０１７５】
次に、ステップＳ３０２では、処理対象となる領域ｃの、ステップＳ２０２において取得した周辺３次元点群ＱｃｐоｉｎｔｓをＮｓ個の部分領域に分割する。
【０１７６】
次に、ステップＳ３０４では、ステップＳ３０２において取得した部分領域の各々のうち、処理対象となる部分領域を決定する。
【０１７７】
次に、ステップＳ３０６では、処理対象となる部分領域に属する、周辺点ｑｊｃのうち、処理対象となる周辺点ｑｊｃを決定する。
【０１７８】
次に、ステップＳ３０８では、処理対象となる周辺点ｑｊｃを、ステップＳ１０２において取得した、処理対象となる領域ｃの最小曲率方向に射影して、射影形状の位置を、処理対象となる周辺点ｑｊｃと、処理対象となる領域ｃに属する３次元点群と、ステップＳ２１８において取得した基底ベクトルと、読み込んだΔｄの値とに基づいて、上記（６）式に従って算出する。
【０１７９】
次に、ステップＳ３０９では、ステップＳ３０８において取得した射影形状の位置に基づいて、上記（９）式に従って、当該周辺点ｑｊｃに対応する画素の画素値を更新する。
【０１８０】
次に、ステップＳ３１０では、処理対象となる部分領域に含まれる全ての周辺点ｑｊｃについてステップＳ３０６〜ステップＳ３０９までの処理を終了したか否かを判定する。全ての周辺点ｑｊｃについてステップＳ３０６〜ステップＳ３０９までの処理を終了している場合には、ステップＳ３１２へ移行する。一方、全ての周辺点ｑｊｃについてステップＳ３０６〜ステップＳ３０９までの処理を終了していない場合には、ステップＳ３０６へ移行し、処理対象となる周辺点ｑｊｃを変更し、ステップＳ３０８〜ステップＳ３１０までの処理を繰り返す。
【０１８１】
次に、ステップＳ３１２では、処理対象となる部分領域について、ステップＳ３０９において取得した画素値が更新されている当該部分領域に対応する射影形状画像をラスタースキャンし、当該部分領域の部分領域特徴ベクトルを作成する。
【０１８２】
次に、ステップＳ３１４では、処理対象となる領域ｃの全ての部分領域についてステップＳ３０４〜ステップＳ３１２までの処理を終了したか否かを判定する。全ての部分領域についてステップＳ３０４〜ステップＳ３１２までの処理を終了している場合には、ステップＳ３１６へ移行する。一方、全ての部分領域についてステップＳ３０４〜ステップＳ３１２までの処理を終了していない場合には、ステップＳ３０４へ移行し、処理対象となる部分領域を変更して、ステップＳ３０６〜ステップＳ３１４までの処理を繰り返す。
【０１８３】
次に、ステップＳ３１６では、処理対象となる領域ｃについて、ステップＳ３１２において取得した、当該領域ｃの部分領域の各々についての部分領域特徴ベクトルに基づいて、上記（１０）式に従って、当該領域ｃの自己相関値を算出する。
【０１８４】
次に、ステップＳ３１８では、処理対象となる全ての領域ｃについてステップＳ３００〜ステップＳ３１６までの処理を終了したか否かを判定する。処理対象となる全ての領域ｃについてステップＳ３００〜ステップＳ３１６までの処理を終了している場合には、自己相関値の算出処理ルーチンを終了し、処理対象となる全ての領域ｃについてステップＳ３００〜ステップＳ３１６までの処理を終了していない場合には、ステップＳ３００へ移行し、処理対象となる領域ｃを変更して、ステップＳ３０２〜ステップＳ３１８までの処理を繰り返す。
【０１８５】
図７のステップＳ１０６は、領域ｃの各々について、ステップＳ１０４において取得した当該領域ｃの自己相関値と、読み込んだ閾値ｔｈ＝Ｅａｕｔоの値とに基づいて、当該領域ｃがスイープ形状候補領域か否かの判定を行う。
【０１８６】
上記ステップＳ１０６は、図１０のスイープ形状候補領域の判定処理ルーチンにおいて詳細に説明する。
【０１８７】
図１０のステップＳ４００では、処理対象となる領域ｃを決定する。
【０１８８】
次に、ステップＳ４０２では、処理対象となる領域ｃについて、ステップＳ１０４において取得した、当該領域ｃの自己相関値が、読み込んだ閾値ｔｈ＿Ｅａｕｔоの値より大きいか否かを判定する。自己相関値が閾値ｔｈ＿Ｅａｕｔоの値より大きい場合には、ステップＳ４０６へ移行する。一方、自己相関値が閾値ｔｈ＿Ｅａｕｔоの値以下の場合には、ステップＳ４０４へ移行する。
【０１８９】
ステップＳ４０４では、処理対象となる領域ｃをスイープ形状候補領域以外の領域ｃと判定する。
【０１９０】
ステップＳ４０６では、処理対象となる領域ｃをスイープ形状候補領域ｃと判定する。
【０１９１】
次に、ステップＳ４０８では、処理対象となる領域ｃについて、当該領域ｃに属する３次元点群の重心と、ステップＳ２０２において取得した、当該領域ｃについての周辺３次元点群Ｑｃｐоｉｎｔｓと基づいて、上記（１４）式に従って、共分散行列ＰＱｃоｒｒを算出する。
【０１９２】
次に、ステップＳ４１０では、処理対象となる領域ｃについて、ステップＳ４０８において取得した当該領域ｃの共分散行列ＰＱｃоｒｒを固有値分解し、固有値λ０ｃ，λ１ｃ，λ２ｃ（λ０ｃ＞λ１ｃ＞λ２ｃ）を取得する。
【０１９３】
次に、ステップＳ４１２では、処理対象となる領域ｃについて、ステップＳ４１０において取得した固有値λ１ｃ、及びλ２ｃと、読み込んだεの値とに基づいて、上記（１５）式に従って、平面度を算出する。
【０１９４】
次に、ステップＳ４１４では、処理対象となる領域ｃについて、ステップＳ４１２において取得した当該領域ｃの平面度が、読み込んだ閾値ｔｈ＿Ｐｌａｎｅの値よりも小さいか否かを判定する。当該領域ｃの平面度が、読み込んだ閾値ｔｈ＿Ｐｌａｎｅの値よりも小さい場合には、ステップＳ４１６へ移行する。一方、当該領域ｃの平面度が、読み込んだ閾値ｔｈ＿Ｐｌａｎｅの値以上である場合には、ステップＳ４２０へ移行する。
【０１９５】
ステップＳ４１６では、処理対象となる領域ｃを、２軸方向のスイープ形状候補領域ｃと判定する。
【０１９６】
次に、ステップＳ４１８では、処理対象となる領域ｃについて、当該領域ｃの統合特徴方向νｃを、ステップＳ４１０において取得した固有値λ２ｃに対応する固有ベクトル方向とする。
【０１９７】
ステップＳ４２０では、処理対象となる領域ｃを、１方向のスイープ形状候補領域ｃと判定する。
【０１９８】
次に、ステップＳ４２２では、処理対象となる領域ｃについて、当該領域ｃの統合特徴方向νｃを、ステップＳ１０２において取得した当該領域ｃの最小曲率方向ｍｃとする。
【０１９９】
次に、ステップＳ４２４では、処理対象となる全ての領域ｃについてステップＳ４００〜ステップＳ４１８又はステップＳ４２２までの処理を終了したか否かを判定する。処理対象となる全ての領域ｃについてステップＳ４００〜ステップＳ４１８又はステップＳ４２２までの処理を終了している場合には、スイープ形状候補領域の判定処理ルーチンを終了する。一方、処理対象となる全ての領域ｃについてステップＳ４００〜ステップＳ４１８又はステップＳ４２２までの処理を終了していない場合には、ステップＳ４００へ移行し、処理対象となる領域ｃを変更し、ステップＳ４０２〜ステップＳ４２４までの処理を繰り返す。
【０２００】
図７のステップＳ１０８では、ステップＳ１０６において取得した、１方向のスイープ形状候補領域ｃ、及び２軸方向のスイープ形状候補領域ｃの各々について、領域統合処理を行う。
【０２０１】
上記ステップＳ１０８は、図１１の領域の統合処理ルーチンにおいて詳細に説明する。
【０２０２】
図１１のステップＳ５００では、ステップＳ１０６において取得した、１方向のスイープ形状候補領域ｃの各々を、ステップＳ１０４において取得した当該１方向のスイープ形状候補領域ｃの自己相関値が大きい順に並べる。また、ステップＳ１０６において取得した、２軸方向のスイープ形状候補領域ｃの各々を、ステップＳ１０４において取得した当該２軸方向のスイープ形状候補領域ｃの自己相関値が大きい順に並べる。
【０２０３】
次に、ステップＳ５０２では、ステップＳ５００において取得した、自己相関値の大きい順に並べた１方向のスイープ形状候補領域ｃの各々と、自己相関値の大きい順に並べた２軸方向の形状候補領域ｃの各々と、から処理対象となる領域を取得する。なお、第１の実施の形態においては、まず、１方向のスイープ形状候補領域ｃの各々から、自己相関値の大きい順に処理対象となる１方向のスイープ形状候補領域ｃとして決定される。そして、１方向のスイープ形状候補領域ｃの全てについて、処理が終了した後に、２軸方向のスイープ形状候補ｃの各々から、自己相関値の大きい順に処理対象となる２軸方向のスイープ形状候補ｃとして決定される。
【０２０４】
次に、ステップＳ５０４では、処理対象となる領域ｃについて、読み込んだ距離Ｒｎｅａｒの値と、当該領域ｃに属する点とに基づいて、周辺領域ｂの各々を取得する。なお、処理対象となる領域ｃが１方向のスイープ形状候補領域ｃの場合には、処理対象となる領域ｃに属する点から距離Ｒｎｅａｒに存在する、１方向のスイープ候補領域を周辺領域ｂとして取得する。一方、処理対象となる領域ｃが２軸方向のスイープ形状候補領域ｃの場合には、処理対象となる領域ｃに属する点から距離Ｒｎｅａｒに存在する、２軸方向のスイープ候補領域を周辺領域ｂとして取得する。
【０２０５】
次に、ステップＳ５０５では、ステップＳ５０４において取得した処理対象となる領域ｃの周辺領域ｂの各々について、ステップＳ１０４において取得した当該周辺領域の自己相関値が大きい順に並べる。
【０２０６】
次に、ステップＳ５０６では、ステップＳ５０５において並べ替えられた周辺領域を、自己相関値が大きい順に処理対象となる周辺領域として決定する。
【０２０７】
次に、ステップＳ５０８では、処理対象となる領域ｃについて、ステップＳ３１２において取得した当該領域ｃの部分領域毎の部分領域特徴ベクトルの各々の平均ベクトルを、上記（１６）式に従って、領域特徴ベクトルとして算出する。
【０２０８】
次に、ステップＳ５１０では、ステップＳ５０６において取得した自己相関値が大きい順に並べ替えられた周辺領域ｂの各々から、自己相関値が大きい順に、処理対象となる周辺領域ｂとして決定する。
【０２０９】
次に、ステップＳ５１２では、処理対象となる周辺領域ｂについて、ステップＳ２１８において取得した処理対象となる領域ｃ及び周辺領域ｂの基底ベクトルの各々と、ステップＳ３１２において取得した当該周辺領域ｂの部分領域毎の部分領域特徴ベクトルの各々と、に基づいて、当該周辺領域ｂの領域特徴ベクトルを作成する。
【０２１０】
次に、ステップＳ５１３では、ステップＳ５０８において取得した、又は、前回のステップＳ５１８の処理において取得した処理対象となる領域ｃの領域特徴ベクトルと、ステップＳ５１２において取得した、処理対象となる周辺領域ｂの領域特徴ベクトルとに基づいて、上記（１７）式に従って、処理対象となる領域ｃと、処理対象となる周辺領域ｂとの相互相関値を算出する。
【０２１１】
次に、ステップＳ５１４では、読み込んだ閾値ｔｈ＿Ｅｃｒｏｓｓの値、及び閾値ｔｈ＿νの値と、ステップＳ５１３において取得した処理対象となる領域ｃと、処理対象となる周辺領域ｂとの相互相関値と、ステップＳ４１８又はステップＳ４２０において取得した、若しくは、前回のステップＳ５２０の処理において更新された処理対象となる領域ｃの統合特徴方向と、ステップＳ４１８又はステップＳ４２０において取得した処理対象となる周辺領域ｂの統合特徴方向とに基づいて、上記（１８）式及び上記（１９）式に従って、処理対象となる領域ｃに、処理対象となる周辺領域ｂを統合するか否かを判定する。処理対象となる領域ｃに、処理対象となる周辺領域ｂを統合すると判定された場合には、ステップＳ５１６へ移行する。一方、処理対象となる領域ｃに、処理対象となる周辺領域ｂを統合しないと判定した場合には、ステップＳ５２２へ移行する。
【０２１２】
ステップＳ５１６では、処理対象となる領域ｃの属する３次元点群と、処理対象となる周辺領域ｂに属する３次元点群とに基づいて、上記（２２）式に従って、αを算出する。
【０２１３】
次に、ステップＳ５１８では、ステップＳ５０８において取得した、又は前回のステップＳ５１８の処理において取得した処理対象となる領域ｃの領域特徴ベクトルと、ステップＳ５１２において取得した、処理対象となる周辺領域ｂの領域特徴ベクトルと、ステップＳ５１６において取得したαとに基づいて、上記（２０）式に従って、処理対象となる領域ｃの領域特徴ベクトルを更新する。
【０２１４】
次に、ステップＳ５２０では、ステップＳ４１８又はステップＳ４２０において取得した、若しくは、前回のステップＳ５２０の処理において更新された処理対象となる領域ｃの統合特徴方向と、ステップＳ４１８又はステップＳ４２０において取得した処理対象となる周辺領域ｂの統合特徴方向と、ステップＳ５１６において取得したαとに基づいて、上記（２１）式に従って、処理対象となる領域ｃの統合特徴方向νｃを更新する。
【０２１５】
次に、ステップＳ５２１では、処理対象となる領域ｃに、処理対象となる周辺領域ｂに属する３次元点群の全てを当該領域ｃに属する３次元点群とするように統合する。
【０２１６】
ステップＳ５２２では、処理対象となる領域ｃの、ステップＳ５０４において取得した周辺領域の全てについてステップＳ５１０〜ステップＳ５１４又はステップＳ５２１までの処理を終了したか否かを判定する。ステップＳ５０４において取得した周辺領域の全てについてステップＳ５１０〜ステップＳ５１４又はステップＳ５２１までの処理を終了している場合には、ステップＳ５２４へ移行する。一方、ステップＳ５０４において取得した周辺領域の全てについてステップＳ５１０〜ステップＳ５１４又はステップＳ５２１までの処理を終了していない場合には、ステップＳ５１０へ移行し、処理対象となる周辺領域ｂを変更し、ステップＳ５１２〜ステップＳ５２２までの処理を繰り返す。
【０２１７】
次に、ステップＳ５２４では、処理対象となる全ての領域ｃについてステップＳ５０２〜ステップＳ５２２までの処理を終了したか否かを判定する。処理対象となる全ての領域ｃについてステップＳ５０２〜ステップＳ５２２までの処理を終了している場合には、領域の統合処理ルーチンを終了する。一方、処理対象となる全ての領域ｃについてステップＳ５０２〜ステップＳ５２２までの処理を終了していない場合には、ステップＳ５０２へ移行し、処理対象となる１方向のスイープ候補領域ｃ、又は２軸方向のスイープ候補領域ｃを変更し、ステップＳ５０４〜ステップＳ５２４の処理を繰り返す。
【０２１８】
図７のステップＳ１１０では、ステップＳ１０８において統合された１方向のスイープ候補領域ｃの各々について、１方向のスイープ形状であるか否かの判定を行う。また、ステップＳ１０８に統合された２軸方向のスイープ候補領域ｃの各々について、２軸方向のスイープ形状であるか否かの判定を行う。
【０２１９】
上記ステップＳ１１０は、図１２の１方向のスイープ形状の判定処理ルーチン、又は図１３の２軸方向のスイープ形状の判定処理ルーチンにおいて詳細に説明する。なお、処理対象が統合された１方向のスイープ形状候補領域ｃである場合には、図１２に示す１方向のスイープ形状の判定処理ルーチンによる処理を行う。一方、処理対象が統合された２軸方向のスイープ形状候補領域ｃである場合には、図１３に示す２軸方向のスイープ形状の判定処理ルーチンによる処理を行う。
【０２２０】
図１２のステップＳ６００では、ステップＳ１０８において統合された１方向のスイープ候補領域ｃの各々から、処理対象となる１方向のスイープ候補領域ｃを決定する。
【０２２１】
次に、ステップＳ６０２では、処理対象となる１方向のスイープ候補領域ｃについて、当該１方向のスイープ候補領域ｃに属する３次元点群の各々について、全ての３次元点群から、ｋ近傍の３次元点群を周辺３次元点群として取得する。
【０２２２】
次に、ステップＳ６０４では、処理対象となる１方向のスイープ候補領域ｃについて、当該１方向のスイープ候補領域ｃに属する３次元点群と、ステップＳ６０２において取得した当該１方向のスイープ候補領域ｃの周辺３次元点群とに基づいて、上記（２３）式〜上記（２５）式に従って、Ｅｃｏｓｔ（ｃ）を算出する。
【０２２３】
次に、ステップＳ６０６では、処理対象となる１方向のスイープ候補領域ｃについて、ステップＳ１０２において当該１方向のスイープ候補領域ｃについて取得した最小曲率方向と、当該１方向のスイープ候補領域ｃに属する３次元点群とに基づいて、上記（２６）式に従って、Ｌｅｎｇ（ｃ）を算出する。
【０２２４】
次に、ステップＳ６０８では、処理対象となる１方向のスイープ候補領域ｃについて、ステップＳ６０４において取得した当該１方向のスイープ候補領域ｃのＥｃｏｓｔ（ｃ）が、読み込んだ閾値ｔｈ＿Ｅｃｏｓｔの値よりも小さく、かつ、ステップＳ６０６において取得した当該１方向のスイープ候補領域ｃｃのＬｅｎｇ（ｃ）が、読み込んだ閾値ｔｈ＿Ｌｅｎｇの値よりも大きいか否かを判定する。ステップＳ６０４において取得した当該１方向のスイープ候補領域ｃのＥｃｏｓｔ（ｃ）が、読み込んだ閾値ｔｈ＿Ｅｃｏｓｔの値よりも小さく、かつ、ステップＳ６０６において取得した当該１方向のスイープ候補領域ｃのＬｅｎｇ（ｃ）が、読み込んだ閾値ｔｈ＿Ｌｅｎｇの値よりも大きい場合には、ステップＳ６１０へ移行する。一方、ステップＳ６０４において取得した当該１方向のスイープ候補領域ｃのＥｃｏｓｔ（ｃ）が、読み込んだ閾値ｔｈ＿Ｅｃｏｓｔの値以上、又は、ステップＳ６０６において取得した当該１方向のスイープ候補領域ｃのＬｅｎｇ（ｃ）が、読み込んだ閾値ｔｈ＿Ｌｅｎｇの値以下である場合には、ステップＳ６１２へ移行する。
【０２２５】
ステップ６１０では、処理対象となる１方向のスイープ候補領域ｃを１方向のスイープ形状と判定する。
【０２２６】
ステップＳ６１２では、処理対象となる１方向のスイープ候補領域ｃを疑似スイープ形状と判定する。
【０２２７】
次に、ステップＳ６１４では、ステップＳ１０８において統合された１方向のスイープ候補領域ｃの全てについてステップＳ６００〜ステップＳ６１０又はステップＳ６１２までの処理を終了したか否かを判定する。ステップＳ１０８において統合された１方向のスイープ候補領域ｃの全てについてステップＳ６００〜ステップＳ６１０又はステップＳ６１２までの処理を終了している場合には、１方向のスイープ形状の判定処理ルーチンを終了する。一方、ステップＳ１０８において統合された１方向のスイープ候補領域ｃの全てについてステップＳ６００〜ステップＳ６１０又はステップＳ６１２までの処理を終了していない場合には、ステップＳ６００へ移行し、処理対象となる１方向のスイープ候補領域ｃを変更して、ステップＳ６０２〜ステップＳ６１４までの処理を繰り返す。
【０２２８】
図１３のステップＳ７００では、ステップＳ１０８において統合された２軸方向のスイープ候補領域ｃの各々から、処理対象となる２軸方向のスイープ候補領域ｃを決定する。
【０２２９】
次に、ステップＳ７０２では、処理対象となる２軸方向のスイープ候補領域ｃについて、当該２軸方向のスイープ候補領域ｃに属する３次元点群の各々について、全ての３次元点群から、ｋ近傍の３次元点群を周辺３次元点群として取得する。
【０２３０】
次に、ステップＳ７０４では、処理対象となる２軸方向のスイープ候補領域ｃについて、ステップＳ１０２において当該２軸方向のスイープ候補領域ｃについて取得した最小曲率方向と、当該２軸方向のスイープ候補領域ｃに属する３次元点群とに基づいて、上記（３０）式に従って、Ｌｅｎｇ（ｃ）を算出する。
【０２３１】
次に、ステップＳ７０６では、処理対象となる２軸方向のスイープ候補領域ｃについて、ステップＳ４１０において取得した当該２軸方向のスイープ候補領域ｃの第二固有値λ１ｃに対応する固有ベクトルと、処理対象となる２軸方向のスイープ候補領域ｃに属する３次元点群と、に基づいて、上記（３１）式に従って、Ｗｉｄｔｈ（ｃ）を算出する。
【０２３２】
次に、ステップＳ７０８では、処理対象となる２軸方向のスイープ候補領域ｃについて、ステップＳ７０４において取得した当該２軸方向のスイープ候補領域ｃのＬｅｎｇ（ｃ）と、ステップＳ７０６において取得した当該２軸方向のスイープ候補領域ｃのＷｉｄｔｈ（ｃ）とに基づいて、上記（２９）式に従って、当該２軸方向のスイープ候補領域ｃのＡｒｅａ（ｃ）を算出する。
【０２３３】
次に、ステップＳ７１０では、処理対象となる２軸方向のスイープ候補領域ｃについて、ステップＳ７０８において取得したＡｒｅａ（ｃ）の値が、読み込んだ閾値ｔｈ＿Ａｒｅａの値より大きいか否かを判定する。Ａｒｅａ（ｃ）の値が、読み込んだ閾値ｔｈ＿Ａｒｅａの値より大きい場合には、ステップＳ７１４へ移行する。一方、Ａｒｅａ（ｃ）の値が、読み込んだ閾値ｔｈ＿Ａｒｅａの値以下である場合には、ステップＳ７１２へ移行する。
【０２３４】
ステップＳ７１２では、処理対象となる２軸方向のスイープ候補領域ｃを、２軸方向のスイープ形状でないと判定する。
【０２３５】
ステップＳ７１４では、処理対象となる２軸方向のスイープ候補領域ｃを、２軸方向のスイープ形状と判定する。
【０２３６】
次に、ステップＳ７１６では、ステップＳ１０８において統合された２軸方向のスイープ候補領域ｃの全てについて、ステップＳ７００〜ステップＳ７１２又はステップＳ７１４までの処理を終了したか否かを判定する。統合された２軸方向のスイープ候補領域ｃの全てについて、ステップＳ７００〜ステップＳ７１２又はステップＳ７１４までの処理を終了している場合には、２軸方向のスイープ形状の判定処理ルーチンを終了する。一方、統合された２軸方向のスイープ候補領域ｃの全てについて、ステップＳ７００〜ステップＳ７１２又はステップＳ７１４までの処理を終了していない場合には、ステップＳ７００へ移行し、処理対象となる統合された２軸方向のスイープ候補領域ｃを変更し、ステップＳ７０２〜ステップＳ７１２又はステップＳ７１４までの処理を繰り返す。
【０２３７】
図７のステップＳ１１２では、ステップＳ１１０において１方向のスイープ形状と判定された１方向のスイープ形状候補領域ｃ、又は２軸方向のスイープ形状と判定された２軸方向のスイープ候補領域ｃに属する３次元点群の３次元位置や３次元空間の領域を、判定された１方向のスイープ形状、又は２軸方向のスイープ形状と対応付けてスイープ形状領域情報記憶部３６に記憶すると共に、出力部９０に出力し、点群解析処理ルーチンを終了する。
【０２３８】
以上説明したように、本発明の第１の実施の形態に係る点群解析処理装置によれば、入力３次元点群を複数の領域に分類した領域の各々について、周辺３次元点群に基づいて、領域の最小曲率方向を推定し、領域の各々について、部分領域の特徴量の自己相関値を算出し、自己相関値が、予め定められた閾値より大きい値である領域の各々を、スイープ形状候補領域と判定し、スイープ形状候補領域と判定された領域の各々について、領域の平面度合いを示す値に基づいて、領域が、１方向のスイープ形状候補領域、及び２軸方向のスイープ形状候補領域の何れであるかを判定し、１方向のスイープ形状候補領域であると判定された領域を、特徴量に基づく相互相関値に基づいて統合し、２軸方向のスイープ形状候補領域であると判定された領域を、特徴量に基づく相互相関値に基づいて統合し、統合領域の最小曲率方向の長さ又は大きさに基づいて、統合領域が１方向のスイープ形状であるか否か、又は統合領域が２軸方向のスイープ形状であるか否かを判定することにより、計算量の増加を抑制しつつ、また事前に辞書データを、例えばＣＡＤモデルや点群形状データ、検出対象となる幾何形状を規定する方程式を、登録しなくても、入力３次元点群からスイープ形状を検出することができる。
【０２３９】
また、検出対象である物体形状を規定する方程式やテンプレート画像を事前登録しなくても、スイープ形状物を検出することが可能である。また、検出したいスイープ形状の種類が増えても、計算量の増加を抑制できる。
【０２４０】
また、ノイズが多い点群やレーザースキャンの間隔が広い点群において有効である。
【０２４１】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０２４２】
例えば、第１の実施の形態においては、統合前の領域ｃに属する点は１点のみからなる３次元点群とする場合について説明したが、これに限定されるものではなく、領域ｃに属する点は複数の点からなる３次元点群としてもよい。この場合、第１の実施の形態において属する点を基準として処理を行った箇所については、当該領域ｃに属する３次元点群の重心を基準として処理を行うものとする。
【０２４３】
また、第１の実施の形態においては、ｔｈ＿Ｐоｉｎｔの値を１０とする場合について説明したが、これに限定されるものではない。領域の最小曲率方向を推定する処理を行うためには、当該領域について周辺３次元点群の数が２点以上であればよい。つまり、ｔｈ＿Ｐｏｉｎｔの値は２以上であればよい。
【０２４４】
また、第１の実施の形態においては、更新パラメータを上記（２２）式に基づいて、算出される場合について説明したが、これに限定されるものではない。例えば、実験的に決定してもよい。
【０２４５】
また、第１の実施の形態においては、ｋ近傍の点を用いてＥｃоｓｔ（ｃ）を算出する場合について説明したが、これに限定されるものではない。例えば、半径ΔＲ以内の３次元点群を用いて評価してもよい。具体的には、領域ｃに属する点から半径ΔＲ以内の点について、Ｅｃｏｓｔ（ｃ）を算出してもよい。
【０２４６】
本実施の形態においては、部分領域毎に取得した射影形状画像Ｉｓをラスタースキャンして作成される射影形状画像ベクトルを、当該部分領域の特徴量として取得する場合について説明したが、これに限定されるものではない。例えば、３次元形状から直接特徴量を算出する Point Feature Histograms(PFH)descriptorやRotational Projection Statistics feature (RoPs)などを用いてもよい。なお、これらの特徴量は３次元点群の位置関係や法線ベクトルの位置関係を統計的に記述するものであり、ノイズには頑健になる。ただし、統計的な値を算出しているため、３次元点群が疎な場合には周辺領域に含まれる点数が少なくなり、逆に精度が低下する恐れがある。なお、当該特徴量を用いる場合には、周辺領域ｂの領域特徴ベクトルを、変換する必要がないため、上記（１７）式で算出されるＥｃｒｏｓｓ（ｃ，ｂ）は、下記（３３）式に従って算出される。また、当該特徴量を用いる場合は、上記（２０）式で更新される領域ｃの領域特徴ベクトルは、下記（３４）式に従って更新されるものとする。
【０２４７】
【数４４】
0006322564.tif 000047
【０２４８】
また、第１の実施の形態においては、統合された領域についてのみ、スイープ形状か否かの判定を行っているが、これに限定されるものではない。例えば、統合された領域と、統合されていない領域の全ての領域について、スイープ形状か否かの判定を行ってもよい。
【０２４９】
次に、第２の実施の形態に係る点群解析処理装置について説明する。
【０２５０】
第２の実施の形態においては、最小曲率方向を、領域の周辺３次元点群に含まれる周辺点の各々に対応する法線方向の自己相関行列を固有値分解して推定する点が第１の実施の形態と異なる。これは、スイープ形状の場合、最小曲率方向は、法線方向のベクトルの外積を累積して算出される自己相関行列を固有値分解した際の第２固有値ベクトルの方向と等しくなる特徴があることからである。なお、第１の実施の形態に係る点群解析処理装置１００と同様の構成及び作用については、同一の符号を付して説明を省略する。
【０２５１】
また、第２の実施の形態においては、領域ｃにおける周辺３次元点群に含まれる周辺点の各々に対応する法線の固有値展開を１度行えばよく、繰り返し処理がないため、第１の実施の形態に比べて計算量が小さい。ただし、第２の実施の形態においては、法線方向の推定精度が高いことが求められるため、計測ノイズの影響が大きい状況では、法線の推定精度が低くなるため、ノイズが多いことが見込まれる場合には、第１の実施の形態による最小曲率方向の推定方法を利用する方が望ましい。
【０２５２】
＜本発明の第２の実施の形態に係る点群解析処理装置の構成＞
次に、本発明の第２の実施の形態に係る点群解析処理装置の構成について説明する。図１３に示すように、本発明の第２の実施の形態に係る点群解析処理装置２００は、ＣＰＵと、ＲＡＭと、後述する点群解析処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することができる。この点群解析処理装置は、機能的には図１４に示すように被写体計測部１０と、入力部１２と、演算部２２０と、出力部９０とを含んで構成されている。
【０２５３】
演算部２２０は、記憶部３０と、スイープ形状検出部２４０と、を含んで構成されている。
【０２５４】
スイープ形状検出部２４０は、初期領域決定部４２と、最小曲率方向推定部２４４と、自己相関値算出部４６と、スイープ形状候補領域判定部４８と、領域統合処理部５０と、スイープ形状判定部５２と、を含んで構成されている。
【０２５５】
最小曲率方向推定部２４４は、初期領域決定部４２により取得した各領域ｃについて周辺３次元点群Ｑｃｐоｉｎｔｓを取得すると共に、ノイズとなる領域ｃを以後の処理の処理対象として除外する。また、最小曲率方向推定部２４４は、領域ｃの各々について、当該領域ｃの周辺点ｑｊｃの各々に対応する法線方向ｎｊｃの各々に基づいて、最小曲率方向を推定する。具体的には、まず、領域ｃに属する周辺点ｑｊｃの各々を含む平面の法線方向ベクトルｎｊｃの各々に基づいて、自己相関行列ＮＱｃоｒｒｅｌａｔｉоｎを下記（３５）式に従って算出する。なお、周辺点ｑｊｃを含む平面の法線方向は、当該周辺点と、周辺に位置する何点かの点とにより決定される。
【０２５６】
【数４５】
0006322564.tif 000048
【０２５７】
そして、算出した自己相関行列ＮＱｃоｒｒｅｌａｔｉоｎを固有値分解し、固有値分解した結果取得した最小固有値ｍ２に対応する固有値ベクトル方向を、当該領域ｃの最小曲率方向として推定する。
【０２５８】
＜第２の実施の形態に係る点群解析処理装置の作用＞
次に、第２の実施の形態に係る点群解析処理装置２００の作用について説明する。まず、被写体計測部１０により被写体の物体の表面上の位置を計測した計測結果である複数の位置を表す３次元点群を取得し、３次元点群記憶部３２に記憶する。次に、入力部１２により、演算処理用パラメータの各々を受け付け、演算処理用パラメータ記憶部３４に記憶する。そして、スイープ形状検出部２４０により、３次元点群記憶部３２に記憶されている３次元点群と、演算処理用パラメータ記憶部３４に記憶されている演算処理用パラメータの各々とを読み込むと、点群解析処理装置２００によって、図１５に示す点群解析処理ルーチンが実行される。
【０２５９】
図１５のステップＳ８００では、ステップＳ１００において取得した領域ｃの各々について、最小曲率方向を推定する。
【０２６０】
上記ステップＳ８００は、図１６に示す最小曲率方向の推定処理ルーチンにおいて詳細に説明する。
【０２６１】
図１６のステップＳ９００では、処理対象となる領域ｃについて、ステップＳ２０２において取得した周辺３次元点群Ｑｃｐоｉｎｔｓに含まれる周辺点ｑｊｃの各々に対応する法線方向ｎｊｃを取得する。
【０２６２】
次に、ステップＳ９０２では、処理対象となる領域ｃについて、ステップＳ９００において取得した、当該領域ｃの周辺３次元点群Ｑｃｐоｉｎｔｓに含まれる周辺点ｑｊｃの各々に対応する法線方向ｎｊｃに基づいて、上記（３５）式に従って、自己相関行列ＮＱｃоｒｒｅｌａｔｉоｎを算出する。
【０２６３】
次に、ステップＳ９０４では、処理対象となる領域ｃについて、ステップＳ９０２において取得した自己相関行列ＮＱｃоｒｒｅｌａｔｉоｎを固有値分解し、最小固有値に対応する固有値ベクトル方向を取得する。
【０２６４】
次に、ステップＳ９０６では、処理対象となる領域ｃについて、ステップＳ９０４において取得した最小固有値に対応する固有値ベクトル方向を、当該領域ｃの最小曲率方向として推定する。
【０２６５】
次に、ステップＳ９０８では、処理対象となる全ての領域ｃについて、ステップＳ２１０〜ステップＳ９０６までの処理を終了したか否かを判定する。処理対象となる全ての領域ｃについて、ステップＳ２１０〜ステップＳ９０６までの処理を終了した場合には、最小曲率方向の推定処理ルーチンを終了する。一方、処理対象となる全ての領域ｃについて、ステップＳ２１０〜ステップＳ９０６までの処理を終了していない場合には、ステップＳ２１０へ移行し、処理対象となる領域ｃを変更し、ステップＳ９００〜ステップＳ９０８までの処理を繰り返す。
【０２６６】
以上説明したように、本発明の第２の実施の形態に係る点群解析処理装置によれば、入力３次元点群を複数の領域に分類した領域の各々について、周辺３次元点群に基づいて、領域の最小曲率方向を推定し、領域の各々について、部分領域の特徴量の自己相関値を算出し、自己相関値が、予め定められた閾値より大きい値である領域の各々を、スイープ形状候補領域と判定し、スイープ形状候補領域と判定された領域の各々について、領域の平面度合いを示す値に基づいて、領域が、１方向のスイープ形状候補領域、及び２軸方向のスイープ形状候補領域の何れであるかを判定し、１方向のスイープ形状候補領域であると判定された領域を、特徴量に基づく相互相関値に基づいて統合し、２軸方向のスイープ形状候補領域であると判定された領域を、特徴量に基づく相互相関値に基づいて統合し、統合領域の最小曲率方向の長さ又は大きさに基づいて、統合領域が１方向のスイープ形状であるか否か、又は統合領域が２軸方向のスイープ形状であるか否かを判定することにより、計算量の増加を抑制しつつ、また事前に辞書データを登録しなくても、入力３次元点群からスイープ形状を検出することができる。
【０２６７】
次に、第３の実施の形態に係る点群解析処理装置について説明する。
【０２６８】
第３の実施の形態においては、スイープ形状検出部により検出したスイープ形状の領域について、当該スイープ形状の領域に属する３次元点群についてのみ強調表示処理を行い、出力部から出力する点が、第１及び第２の実施の形態と異なる。なお、第１及び第２の実施の形態に係る点群解析処理装置と同様の構成及び作用については、同一の符号を付して説明を省略する。
【０２６９】
＜本発明の第３の実施の形態に係る点群解析処理装置の構成＞
次に、本発明の第３の実施の形態に係る点群解析処理装置の構成について説明する。図１７に示すように、本発明の第３の実施の形態に係る点群解析処理装置３００は、ＣＰＵと、ＲＡＭと、後述する点群解析処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することができる。この点群解析処理装置は、機能的には図１７に示すように被写体計測部１０と、入力部１２と、演算部３２０と、出力部３９０とを含んで構成されている。
【０２７０】
演算部３２０は、記憶部３０と、スイープ形状検出部４０と、スイープ形状領域強調表示処理部３５０と、を含んで構成されている。
【０２７１】
スイープ形状領域強調表示処理部３５０は、スイープ形状領域情報記憶部３６に記憶されている、スイープ形状領域（１方向のスイープ形状、及び２軸方向のスイープ形状）と判定された領域に属する３次元点群について強調表示処理を行い、出力部３９０に出力する。強調表示処理として、例えば、３次元点群の色を人目につく色に変更する、３次元点群の表示の大きさを大きくする。３次元点群の形状を通常は球のところを直方体に変更する等、人間が見たときにスイープ形状領域とそれ以外の領域との違いを強調する処理とする。
【０２７２】
出力部３９０は、スイープ形状領域強調表示処理部３５０から入力された３次元点群を表示する。なお、出力部３９０は、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）等のディスプレイやプリンタなどであり、スイープ形状検出部４０により検出したスイープ形状領域を表示する機能を有するハードウェアである。
【０２７３】
＜第３の実施の形態に係る点群解析処理装置の作用＞
次に、第３の実施の形態に係る点群解析処理装置３００の作用について説明する。まず、被写体計測部１０により被写体の物体の表面上の位置を計測した計測結果である複数の位置を表す３次元点群を取得し、３次元点群記憶部３２に記憶する。次に、入力部１２により、演算処理用パラメータの各々を受け付け、演算処理用パラメータ記憶部３４に記憶する。そして、スイープ形状検出部４０により、３次元点群記憶部３２に記憶されている３次元点群と、演算処理用パラメータ記憶部３４に記憶されている演算処理用パラメータの各々とを読み込むと、点群解析処理装置３００によって、図１８に示す点群解析処理ルーチンが実行される。
【０２７４】
図１８のステップＳ１０００では、スイープ形状領域情報記憶部３６に記憶されている、スイープ形状領域（１方向のスイープ形状、及び２軸方向のスイープ形状）と判定された領域に属する３次元点群を読み込み、当該スイープ形状領域と判定された領域に属する３次元点群について強調表示処理を行う。
【０２７５】
次に、ステップＳ１００２では、ステップＳ１０００において強調表示処理済みの３次元点群を出力部３９０から出力して、点群解析処理ルーチンの処理を終了する。
【０２７６】
以上説明したように、本発明の第３の実施の形態に係る点群解析処理装置によれば、入力３次元点群を複数の領域に分類した領域の各々について、周辺３次元点群に基づいて、領域の最小曲率方向を推定し、領域の各々について、部分領域の特徴量の自己相関値を算出し、自己相関値が、予め定められた閾値より大きい値である領域の各々を、スイープ形状候補領域と判定し、スイープ形状候補領域と判定された領域の各々について、領域の平面度合いを示す値に基づいて、領域が、１方向のスイープ形状候補領域、及び２軸方向のスイープ形状候補領域の何れであるかを判定し、１方向のスイープ形状候補領域であると判定された領域を、特徴量に基づく相互相関値に基づいて統合し、２軸方向のスイープ形状候補領域であると判定された領域を、特徴量に基づく相互相関値に基づいて統合し、統合領域の最小曲率方向の長さ又は大きさに基づいて、統合領域が１方向のスイープ形状であるか否か、又は統合領域が２軸方向のスイープ形状であるか否かを判定することにより、計算量の増加を抑制しつつ、また事前に辞書データを登録しなくても、入力３次元点群からスイープ形状を検出することができる。
【０２７７】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
【符号の説明】
【０２７８】
１０   被写体計測部
１２   入力部
２０   演算部
３０   記憶部
３２   次元点群記憶部
３４   演算処理用パラメータ記憶部
３６   スイープ形状領域情報記憶部
４０   スイープ形状検出部
４２   初期領域決定部
４４   最小曲率方向推定部
４６   自己相関値算出部
４８   スイープ形状候補領域判定部
５０   領域統合処理部
５２   スイープ形状判定部
９０   出力部
１００ 点群解析処理装置
２００ 点群解析処理装置
２２０ 演算部
２４０ スイープ形状検出部
２４４ 最小曲率方向推定部
３００ 点群解析処理装置
３２０ 演算部
３５０ スイープ形状領域強調表示処理部
３９０ 出力部
【図１】
0006322564.tif 000049
【図２】
0006322564.tif 000050
【図３】
0006322564.tif 000051
【図４】
0006322564.tif 000052
【図５】
0006322564.tif 000053
【図６】
0006322564.tif 000054
【図７】
0006322564.tif 000055
【図８】
0006322564.tif 000056
【図９】
0006322564.tif 000057
【図１０】
0006322564.tif 000058
【図１１】
0006322564.tif 000059
【図１２】
0006322564.tif 000060
【図１３】
0006322564.tif 000061
【図１４】
0006322564.tif 000062
【図１５】
0006322564.tif 000063
【図１６】
0006322564.tif 000064
【図１７】
0006322564.tif 000065
【図１８】
0006322564.tif 000066
【図１９】
0006322564.tif 000067