測量利用を見据えた点群ノイズ分類・フィルタリングの検証
近年、SLAM LiDARは測量・調査分野でも急速に普及しています。
機器を持って歩くだけで短時間に高密度な3次元点群を取得でき、従来の地上レーザースキャナとは異なる機動力があります。広範囲を効率よく3次元化できることは、SLAM LiDARの大きなメリットです。
今、最も旬で活躍の機会が増えるアイテムではないでしょうか
しかし、実際に測量用途でデータを扱っていると、「点群を取得できた」ことと「その点群をそのまま測量に利用できる」ことは別問題だと感じます。
SLAM LiDAR特有の「浮き」が問題になる
SLAM LiDARのRAW点群を全景で表示すると、一見すると非常にきれいに取得できているように見えます。

ところが、建物の壁面などを拡大したり断面方向から確認すると、本来の面から数cm程度浮いた点や、面の周囲にまとわりつくような点が確認できる場合があります。


特に断面で確認すると、本来は薄い一枚の面として表現されるはずの壁に「厚み」が生じていることが分かります。
このようなノイズは、単純な孤立点とは性質が異なります。正常な壁面のすぐ近くに存在しているため、一般的な孤立点除去だけでは十分に分離できないケースがあります。
測量では「見た目がきれい」だけでは足りない
3D表示で全体を眺めるだけなら、この程度のノイズが大きな問題にならない場合もあります。
しかし、点群から平面図を作成したり、断面を取得したり、構造物の位置や形状を確認したりする測量用途では事情が変わります。
数cm離れた位置に不要点が存在すれば、どちらが実際の構造物表面なのか判断しにくくなります。
そこで当社では、SLAM LiDAR点群を測量データとして利用するための独自ノイズ分類処理について検証を進めています。
ノイズを「削除」するのではなく「分類」する
今回の処理では、最初からノイズと判断した点を削除してしまう方式にはしていません。
点群が持つ局所的な幾何特性や反射強度など、複数の情報を利用してノイズの可能性を評価し、LASのClassificationとして分類します。

これにより、
1-「正常点」
2-「ノイズ候補」
3-「強いノイズ候補」
4-「確認が必要な点」
5-「浮遊・ゴースト状のノイズ候補」
などを分けて確認できます。
自動処理によって点を消してしまうのではなく、元の点を残したまま判定結果を付加することを重視しています。
各ベンダー様のフィルタリング処理も優秀ですが、ユーザの意図する仕上げに至るフィルタリング処理が少ないのが現状で、フィードバックしてもなかなか改善されるものでもない。なので作るしか・・・ない。

各ノイズレイヤーを非表示にしてみる。見えなった壁面の造形も浮き出てくる。人影や車は既存の処理でだいたいどこのベンダー様のフィルタリング処理でも対応できるので有難い。
処理後の壁面を断面で比較
実際に校舎の壁面を部分的に抽出して、処理前後を比較しました。

処理前には、本来の壁面の周囲に薄く浮いた点群が存在しています。
これに対してノイズ分類結果を利用して表示すると、

壁面周辺の浮遊点が大幅に減少し、本来の面形状がより明瞭になりました。
全景表示では差が分かりにくい場合でも、断面方向から比較すると処理効果が明確に確認できます。
数千万点・億点クラスをどう処理するか
もう一つの課題が処理速度です。
SLAM LiDARでは短時間の計測でも数千万点規模になることがあり、現場規模によっては億単位の点群になります。
すべての点について高度な近傍解析を行えば、処理時間とメモリ消費が大きくなります。
そこで現在の処理では、大容量点群への対応として解析処理を軽量化する仕組みも導入しています。
ここで重要なのは、
解析を軽量化しても、最終成果の点群を間引くわけではない
という点です。
解析用には空間的に整理した代表データを使用して計算量を削減し、その解析結果を元の高密度点群へ反映します。
したがって、処理後も元点群の点数・密度を維持したまま、Classificationを利用できます。
高密度なSLAM点群では、非常に近接した多数の点について同じような重い解析を繰り返す必要性は低く、「計算に必要な情報量」と「成果として残したい情報量」を分けて考えることが重要だと考えています。
Intensityだけに依存しない
反射強度(Intensity)はノイズを判断するうえで有効な情報の一つです。
しかし、すべての点群データにIntensityが存在するとは限りません。
そのため今回の処理では、Intensityだけに依存するのではなく、点群そのものの空間的・幾何的な特徴からも判定できるよう検証しています。
Intensityを持つ点群では利用できる属性を活用し、持たない点群では形状情報を主体として解析する考え方です。
SLAM LiDARは「RAW点群が取得できた」その先へ
SLAM LiDARの計測技術は非常に進歩しており、短時間で大量の3次元データを取得できるようになりました。
一方、測量用途では取得したRAW点群をどのように整理し、どの点を成果として利用するのかという後処理も同じくらい重要です。
特に、



壁面断面を0.5m幅で抽出してみると・・・



処理前後の比較を繰り返しながら、正常な地物をできるだけ保持しつつ、SLAM特有の不要点をどこまで自動分類できるか検証を進めています。
今回のノイズ分類処理の考え方
今回開発した処理で重視したのは、単純に「怪しい点を削除する」ことではありません。
SLAM LiDAR点群に含まれるノイズには、孤立した点だけでなく、実際の構造物表面のすぐ近くに発生する浮きやゴーストなど、性質の異なるものがあります。
そこで、点群が持つ複数の特徴を組み合わせて評価し、ノイズの程度や性質に応じて4種類のノイズ候補へ分類する構成としました。
① ノイズを4段階・4種類に分類
正常な点群をできるだけ維持しながら、ノイズ候補を複数のClassificationに分けて記録します。
重要なのは、処理した点をいきなり削除しないことです。
自動判定された結果をクラスとして保持することで、処理後に人間が確認し、必要なクラスだけを非表示・除外することができます。
測量データを扱う以上、**「自動処理で消してしまう」のではなく「自動処理で仕分けする」**という考え方を採用しています。
② 大容量点群はVoxelを利用して解析
SLAM LiDARでは、短時間の計測でも数千万点、現場によっては億単位の点群になります。
これらすべての点について同じ重い解析を実行することは、処理時間の面で効率的とはいえません。
そこで、元の高密度点群を空間的なVoxel単位で整理し、解析に必要な代表情報を使って計算量を軽減しています。
ここでのVoxel化は、成果点群を間引くためのものではありません。
あくまで解析を高速化するための一時的な軽量化として使用します。
③ 軽量化した点群でノイズを判定
Voxelによって整理された解析用データに対して、周辺点との関係や点群の局所的な特徴などを評価し、ノイズ候補を判定します。
高密度なSLAM点群では、非常に近接した多数の点について同じような解析を繰り返す必要はありません。
つまり、
「成果として必要な点の密度」と「解析に必要な点の密度」は必ずしも同じではない
という考え方です。
ここが今回の高速化における重要なポイントです。
④ 判定結果を元の全点群へ戻す
そして最後に、軽量化した解析データで得られた判定結果を、元の高密度点群へ反映します。
イメージすると、
元の高密度点群
↓
Voxelによる解析用データの生成
↓
ノイズ分類・判定
↓
元の高密度点群へClassificationを反映
という流れです。
そのため、解析途中では点数を大幅に減らして計算負荷を軽減していても、最終成果の点群密度を解析用Voxelの密度まで落とす必要はありません。
これは大容量のSLAM LiDARデータを扱ううえで、大きなメリットだと考えています。
「取得する技術」から「使える点群にする技術」へ
SLAM LiDARは、非常に短時間で大量の3次元情報を取得できる優れた計測技術です。
しかし測量で重要なのは、点群の数そのものではありません。
必要な地物を正しく残し、不要な点を識別し、最終的に測量や図化に利用できる点群へ仕上げること。
今回の検証では、
「分類する」
→「Voxelで解析を軽量化する」
→「元の高密度点群へ判定結果を戻す」
という処理構成によって、SLAM LiDAR特有のノイズ処理と大容量点群の高速処理を両立する方向性が見えてきました。
SLAM LiDARが普及していくほど、今後は「どれだけ大量の点を取得できたか」だけではなく、
取得した点群を、どこまで信頼して使えるデータへ仕上げられるか。
という後処理技術が、より重要になってくると考えています。
SLAM LiDAR専用ノイズ分類ツール(開発中)

独自開発の解析ツールを用いて、SLAM LiDAR点群のノイズ分類・解析を行っています。
現時点ではソフトウェアとしての販売予定はありませんが、点群データをお預かりした解析・ノイズ分類業務については対応しています。
SLAM LiDAR特有の浮遊点・ゴースト状ノイズなど、取得後の点群処理でお困りの場合はお問い合わせください。


コメント