点群から単純な外れ値除去したい

概要

点群データから最も単純な外れ値処理をする方法についてまとめています。センサにもよりますが、一般的にセンサから入力されるデータには多くの場合ノイズが混じっており外れ値が多いため、それらを除去する必要があります。
Facebookシェア Twitterツイート LINEで送る このエントリーをはてなブックマークに追加
この章を学ぶ前に必要な知識
0
条件
  • 点群を入力にして外れ値を除去した点群を出力
効果
  • 外れ値になっている点を除去
  • 実装が容易

解 説

センサから取得できる生の点群データはノイズが多く、外れ値処理が必要になります。ここでは、実装が良い、処理が単純なものについて紹介します。
外れ値処理について

1.とりえない距離を設定して外れ値除去

近くの1mほど以内にしか物体がない時にも、物体の反射等で5mほどのところに点が出現する時がある。そういった時は、単純にx,y,zでとり得る距離で除去するだけでも十分に効果を得られる。 0.1 < x < 0.8等しておくことで余計な点群を簡単に除去することができる。実装も各点データに対して同様の条件で除去を繰り返すのみ。
とりえない距離で外れ値除去

2.距離閾値と近接点数を設定して外れ値除去

1. 特定の距離の閾値を設定します。(ある点から10cm以内等) 2. 対象の点からの距離の閾値以内にある隣接する点群数の下限値を設定して除去します。(10cm以内に5点以上ないとき除去等)
近くの点群数で外れ値除去
点と近くにある点群数の概念 (PointCloudLibraryより引用)
上記の方法は、実装がシンプル(高速にするなら近くの点群を探す部分の実装のみ外部ライブラリが必要)であるが、閾値の距離を設定するのが難しい。 デメリット 点群は通常四角錐状に点が広がっていくため、センサから遠い点ほど点データの空間に対する密度が落ちていってしまう。そうなると距離が離れたところと距離が近いところで点群の密度が異なるため、適切な距離の設定と適切な点群数の下限値の設定が難しくなってしまう。 センサからの距離に応じて閾値を変える等場合によっては何らかの工夫が必要かもしれない。
近くの点群数で外れ値除去特徴
この章を学んで新たに学べる
Comments

Reasons
>>隠す