この記事では、三次元点群処理の全体像について記述します。
個人的に、レジストレーションやセグメンテーション、物体認識の立ち位置を理解し、
これからやりたいに対して何を勉強して良いかを整理したかったことが背景にあります。
参考にどうぞ。
点群に対する基礎的な処理
点群ファイルの読み込み
点群および形状データの描画
上記二つは点群を表示して視覚的に評価するために重要な処理であり頻繁に使用する。
下記の別記事に詳細とソースコードを記述したのでご参考になれば。
回転・並進・スケール変換
- 回転行列
- オイラー角
- クゥオータニオン
サンプリング
- 等間隔サンプリング
- Farthest Point Sampling (FPS)
- Poission Disk Sampling (PDS)
- その他のサンプリング
- 外れ値除去
法線推定
様々な点群処理において、法線ベクトルはとても重要な情報になる。
たとえば以下。
- 点を表す特徴量として、法線の値が良く利用される。
- 点群の位置合わせ(レジストレーション)の際に面と面を合わせる処理が入ることがあるが、その際に法線の情報が必要になる。
主な手法
- 点群からの法線推定
- メッシュデータからの法線推定
特徴点・特徴量の抽出
当処理の目的と扱われる場面
様々な点群処理のための前工程として行うことが多い。
たとえば、点群レジストレーション(後述)において対応点探索が必要になるが、その対応点の特徴を表現する特徴点や特徴量の抽出が必要になる。
あるいは、物体認識(後述)の際にも、点群データの一部あるいは全体を表す特徴量の抽出が必要となる。
代表的な手法
特徴点(キーポイント)
- Harris3D
- Intrinsic Shape Signature (ISS)
- Light Field Descriptor (LFD)
大域特徴量
- 3D Shape Histogram
- Spherical Harmonics Representation
- LightField Descriptor (LFD)
局所特徴量
- Spin image
- SHOT
- Fast Point Feature Histograms (FPFH)
点群レジストレーション:位置合わせ
当処理の目的と扱われる場面
同じシーンの複数の3次元点群の位置を合わせて、共通の座標系にするプロセスです。
つまり、複数の点群を1つの点群の集合として変換する処理です。
代表的な手法
- ICP:Iterative Closest Point
物体認識
一般物体認識:物体のカテゴリ名称を推定する処理
特定物体認識:特定のデータベース登録物体のどれに合致するかを推定する処理
姿勢推定
物体の三次元的な位置姿勢(並進と回転の合計6パラメータ)を推定する。
姿勢推定の利用例を下記に示す。
- ロボットアームによる適切な位置の把持
- ARアプリケーション
- 異なる視点で撮影された点群同士を貼り合わせて大規模な環境地図を生成すること
プリミティブ検出
平面や球などの単純な図形を検出する処理のこと。
セグメンテーション
セグメンテーションとは、データ全体を何らかのまとまりを持った領域に分割すること。
生の3次元点群データから物体を認識するためには、このセグメンテーションの処理が必要となる。
しかし、物体に関する何らかの知識が無ければ、物体単位でのセグメンテーションは一般的に困難である。
すなわち、物体認識とセグメンテーションとの間には、鶏と卵のような「どちらが先か」という問題が発生する。
ここで、セグメンテーションを先に行う戦略においては、過度のセグメンテーション(オーバーセグメンテーション)、すなわち物体などの認識したい対象よりも細かいパーツ単位でのセグメンテーションが有効であることが知られている。
代表的な手法
- DBSCAN
参考資料
- 物体認識の基礎と研究事例(3D的認識)