PCL 特征模块
包含了用于点云数据估计三维特征的数据结构和功能函数,三维特征是空间中某个三维点或者位置的表示,它是基于点周围的可用信息来描述几何的图形的一种表示。在三维空间中,查询点周围的方法一般是K领域查找。三维空间的特征点物理意义上与图像类似,都是使用一些具有显著特征的点来表示整个点云
函数介绍
pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT > ShapeContext3DEstimation
实现三维点云形状描述符的表示方法,
论文介绍:
Andrea Frome, Daniel Huber, Ravi Kolluri and Thomas Bülow, Jitendra Malik Recognizing Objects in Range Data Using Regional Point Descriptors, In proceedings of the 8th European Conference on Computer Vision (ECCV), Prague, May 11-14, 2004
pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >
BOARDLocalReferenceFrameEstimation
实现用于本地参考帧估计的边界感知可重复方向算法
论文介绍:
A. Petrelli, L. Di Stefano, "On the repeatability of the local reference frame for partial shape matching", 13th International Conference on Computer Vision (ICCV), 2011
pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >
边界估计使用角度准则估计一组点是否位于曲面边界上。该代码使用输入数据集中每个点处估计的曲面法线。
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
// fill in the cloud data here
pcl::PointCloud<pcl::Normal>::Ptr normals (new pcl::PointCloud<pcl::Normal>);
// estimate normals and fill in \a normals
pcl::PointCloud<pcl::Boundary> boundaries;
pcl::BoundaryEstimation<pcl::PointXYZ, pcl::Normal, pcl::Boundary> est;
est.setInputCloud (cloud);
est.setInputNormals (normals);
est.setRadiusSearch (0.02); // 2cm radius
est.setSearchMethod (typename pcl::search::KdTree<PointXYZ>::Ptr (new pcl::search::KdTree<PointXYZ>)
est.compute (boundaries);
pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >
在原始代码和参考文献的基础上,实现了BRISK描述符
论文介绍:
Stefan Leutenegger,Margarita Chli and Roland Siegwart, BRISK: Binary Robust Invariant Scalable Keypoints, in Proceedings of the IEEE International Conference on Computer Vision (ICCV2011).
pcl::CRHEstimation< PointInT, PointNT, PointOutT >
CRHEstimation估计包含XYZ数据和法线的给定点云数据集的相机不同的滚动角直方图(CRH)描述符
论文介绍:
CAD-Model Recognition and 6 DOF Pose Estimation A. Aldoma, N. Blodow, D. Gossow, S. Gedikli, R.B. Rusu, M. Vincze and G. Bradski ICCV 2011, 3D Representation and Recognition (3dRR11) workshop Barcelona, Spain, (2011)
这篇论文 的意思是从传感器采集到的2.5D 数据与CAD数据进行匹配和对应的算法,那么CAD模型转换到2.5D数据就是通过不断的变换相机的视点,从而生成不同角度看上去的点云数据。
pcl::CVFHEstimation< PointInT, PointNT, PointOutT >
CVFHEstimation
估计包含XYZ数据和法线的给定点云数据集的(Clustered ViewPoint Feature Histogram)聚类后根据视点而统计的特征直方图(CVFH)描述符
CAD-Model Recognition and 6 DOF Pose Estimation A. Aldoma, N. Blodow, D. Gossow, S. Gedikli, R.B. Rusu, M. Vincze and G. Bradski ICCV 2011, 3D Representation and Recognition (3dRR11) workshop Barcelona, Spain, (2011)
文章与pcl::CRHEstimation的文章一致,该计算是在针对场景进行不同物体进行聚类,再进行匹配的预处理,所以这里使用了CVFH的特征点的提取
pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >
点云数据的Normals(DoN)尺度差实现分割和滤波的功能。
对于点云中的每个点,减去用不同搜索半径(sigma_s,sigma_l)估计的两条法线,这些法线的差异提供了一个基于比例的特征,可以进一步用于过滤点云,有点像图像处理中的guassian的差异,但不是在曲面上。当两个搜索半径的关系为sigma_l=10*sigma_s时,可以得到最佳结果,点云之间基于以上的两个搜索半径的差值可以作为滤波器带宽。对于适当的值和阈值,它可以用于表面边缘提取。setinputnormalsmall和setInputNormalsLarge给出的输入法线必须与setInputCloud给出的输入点云匹配。这种行为不同于从法线扩展特性的特征估计方法,后者将法线与搜索曲面匹配。
Yani Ioannou. Automatic Urban Modelling using Mobile Urban LIDAR Data. Thesis (Master, Computing), Queen's University, March, 2010.
pcl::ESFEstimation< PointInT, PointOutT >ESFEstimation
估计给定点云数据集的形状函数描述符集合。
Walter Wohlkinger and Markus Vincze, "Ensemble of Shape Functions for 3D Object Classification", IEEE International Conference on Robotics and Biomimetics (IEEE-ROBIO), 2011
pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >FeatureWithLocalReferenceFrames
为描述符提取器类提供了一个公共接口,这些类在每个输入关键点处都需要一个本地引用框架。
pcl::FPFHEstimation< PointInT, PointNT, PointOutT >
FPFHEstimation
估计包含点和法线的给定点云数据集的快速点特征直方图(FPFH)描述符。
* R.B. Rusu, N. Blodow, M. Beetz. Fast Point Feature Histograms (FPFH) for 3D Registration. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), Kobe, Japan, May 12-17 2009.
* R.B. Rusu, A. Holzbach, N. Blodow, M. Beetz. Fast Geometric Point Labeling using Conditional Random Fields. In Proceedings of the 22nd IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), St. Louis, MO, USA, October 11-15 2009.
pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >
GFPFHEstimation估计给定点云数据集,这些点云包含了包含点和标签的点云,计算Global Fast Point Feature Histogram全局快速点特征直方图(GFPFH)描述符。
R.B. Rusu, A. Holzbach, M. Beetz. Detecting and Segmenting Objects for Mobile Manipulation. In the S3DV Workshop of the 12th International Conference on Computer Vision (ICCV), 2009.
pcl::GRSDEstimation< PointInT, PointNT, PointOutT >
GRSDEstimation为包含点和法线的给定点云数据集估计基于全局半径的曲面描述符(GRSD)。
* Z.C. Marton, D. Pangercic, N. Blodow, Michael Beetz. Combined 2D-3D Categorization and Classification for Multimodal Perception Systems. In The International Journal of Robotics Research, Sage Publications pages 1378–1402, Volume 30, Number 11, September 2011.
* A. Kanezaki, Z.C. Marton, D. Pangercic, T. Harada, Y. Kuniyoshi, M. Beetz. Voxelized Shape and Color Histograms for RGB-D In the Workshop on Active Semantic Perception and Object Search in the Real World, in conjunction with the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) San Francisco, California, September 25-30, 2011.
pcl::IntensityGradientEstimation< PointInT, PointNT, PointOutT, IntensitySelectorT >
IntensityGradientEstimation
估计包含位置(xyz)和强度值(intensity)的点云的强度梯度。给定点处的强度梯度将是一个与曲面法向正交并指向局部强度最大增加方向的向量;该向量的大小表示强度变化的速率。
pcl::IntensitySpinEstimation< PointInT, PointOutT >
IntensitySpinEstimation
估计给定点云数据集包含了点和强度值,强度域自旋图像描述符。
Svetlana Lazebnik, Cordelia Schmid, and Jean Ponce. A sparse texture representation using local affine regions. In IEEE Transactions on Pattern Analysis and Machine Intelligence, volume 27, pages 1265-1278, August 2005.
pcl::MomentInvariantsEstimation< PointInT, PointOutT >
估计每个3D点的3个不变矩(j1、j2、j3)。
pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >
估计给定点云数据集的定向、唯一和可重复的聚集视点特征直方图(CVFH)描述符,给定XYZ数据和法线,
OUR-CVFH – Oriented, Unique and Repeatable Clustered Viewpoint Feature Histogram for Object Recognition and 6DOF Pose Estimation A. Aldoma, F. Tombari, R.B. Rusu and M. Vincze DAGM-OAGM 2012 Graz
pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >
PrincipalCurvaturesEstimation
估计包含点和法线的给定点云数据集的主曲面曲率的方向(特征向量)和大小(特征值)。
输出的数据结构是 pcl::PrincipalCurvatures。
pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT >
估计包含点和法线的给定点云数据集的方向直方图(SHOT)描述符的特征。
* . Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
* F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D Feature Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.
pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >
计算三维空间中点云的独立形状的上下文关系
F. Tombari, S. Salti, L. Di Stefano, "Unique Shape Context for 3D data description", International Workshop on 3D Object Retrieval (3DOR 10) - in conjuction with ACM Multimedia 2010
void pcl::solvePlaneParameters
(const Eigen::Matrix3f &covariance_matrix,
const Eigen::Vector4f &point,
Eigen::Vector4f &plane_parameters,
float &curvature
)
求解给定3x3协方差矩阵的特征值和特征向量,估计最小二乘平面法向曲率和曲面曲率
pcl::computePointNormal (const pcl::PointCloud< PointT > &cloud, Eigen::Vector4f &plane_parameters, float &curvature)
计算给定点集的最小二乘平面拟合,并返回估计的平面参数和曲面曲率,可以每几个点云做一次拟合,计算平面参数以及曲率,这应该也是在计算normal 的类函数经常使用的函数。
pcl::flipNormalTowardsViewpoint (const PointT &point, float vp_x, float vp_y, float vp_z, Eigen::Matrix< Scalar, 4, 1 > &normal)
将计算的一个点的法向量旋转到指定的视角下
pcl::computePairFeatures (const Eigen::Vector4f &p1, const Eigen::Vector4f &n1, const Eigen::Vector4f &p2, const Eigen::Vector4f &n2, float &f1, float &f2, float &f3, float &f4)
计算包含笛卡尔坐标和法线表示的三个角和两点之间的一个距离的四元数表示
pcl::getFeaturePointCloud (const std::vector< Eigen::MatrixXf, Eigen::aligned_allocator< Eigen::MatrixXf > > &histograms2D, PointCloud< Histogram< N > > &histogramsPC)
将2D矩阵列表转换为包含向量值的点云(直方图<N>)
资源
三维点云论文及相关应用分享
【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法
3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)
PCL中outofcore模块---基于核外八叉树的大规模点云的显示
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享