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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容