Estimating Surface Normals in a Point loud

點云中的法向估計有很多方法,最簡單且常用的方法如下:

the problem of estimating the normal of a plane tangent to the surface.````

1.每個點Pi以及其最近的k鄰域點,構造covariance matrix C:

convariance matrix

求解該協方差矩陣的eigenvectors以及eigenvalues,
i.e. PCA - Principle Component Analysis:

eigen vectors/values

取前3個特征向量構成法向量。在PCL中的調用如下:

// Placeholder for the 3x3 covariance matrix at each surface patch
  Eigen::Matrix3f covariance_matrix;
  // 16-bytes aligned placeholder for the XYZ centroid of a surface patch
  Eigen::Vector4f xyz_centroid;

  // Estimate the XYZ centroid
  compute3DCentroid (cloud, xyz_centroid);

  // Compute the 3x3 covariance matrix
  computeCovarianceMatrix (cloud, xyz_centroid, covariance_matrix);

此時求解的法向的朝向不確定,會出現orientation inconsistency,可以用朝向視點的方向來進行校正。


normals orientation

使用下面的公式進行校正:



結果為:
corrected normals orientation

這個方法涉及參數包括鄰域點數目k或者鄰域搜索半徑r,如何選取這兩個參數屬于right scale factor的問題。正確的scale對于point feature representation有比較大的影響。

一般指導原則:

the scale for the determination of a point's neighborhood has to be selected
based on the level of detail required by the application;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容