gggggraziegrazie

graizegrazieさんのやったこと、学んだことを記録する雑記帳です

PCLを使った点群の軸(直線)を推定する手法

他にも色々とあるんだと思いますが、ここではRANSACとPCAを使った点群の軸(直線)を推定する手法について紹介します。

RANSAC(RANdom SAmple Consensus)

RANSACとは、ロバスト推定の中の1つの手法です。ロバスト推定とは、データの中に外れ値が含まれていることを仮定し、その外れ値の影響を排除しながら正しいモデルを推定する手法を言います[1]。RANSACでは、モデル候補を幾つか推定し、その中から一番精度の良いモデルを選択することで、外れ値の影響を排除しています。まずモデル推定に必要な数よりも多めにサンプルを選び出します。次に選び出したサンプルを元に、幾つかのモデル候補を推定します。そして推定したモデルを評価します。最終的に、最も評価の高かったもの(誤差が少なかったもの)をモデルとして採択します。これがRANSACの概要です。詳細については、[2]や[3]をご覧ください。

PCLでは、このRANSACを使って様々なモデルの推定が可能です。詳しくはこちらをご覧ください。直線推定の実装方法については、下記のPCL中のテストコードが参考になります。
github.com

PCA(Principal Component Analysis, 主成分分析)

PCAは、分散を最大にする軸をデータから抽出します。[4][5]。