本文主要是介绍【译】PCL官网教程翻译(18):估计一组点的视点特征直方图(VFH)签名 - Estimating VFH signatures for a set of points,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
英文原文查看
估计一组点的视点特征直方图(VFH)签名
本文描述了视点特征直方图([VFH])描述符,这是一种针对聚类(如对象)识别和6DOF姿态估计问题的点簇表示方法。
下图展示了一个VFH识别和姿态估计的例子。给定一组火车数据(除最左边的点云外,最上面一行、最下面一行),学习一个模型,然后使用一个云(最左边的部分)查询/测试模型。匹配的结果按从最好到最差的顺序从左到右从左下角开始。有关更多信息,请参见使用VFH描述符和/或[VFH]的集群识别和6DOF位姿估计。
理论基础
视点特征直方图(或VFH)起源于FPFH描述符(参见快速点特征直方图(FPFH)描述符)。由于其速度快、识别能力强,我们决定利用FPFH的强识别结果,在保持尺度不变的同时增加视点方差。
我们对目标识别和姿态识别问题的贡献是将整个对象集群的FPFH扩展到估计值(如下图所示),并计算视点方向和每一点估计的法线之间的额外统计量。为此,我们采用了将视点方向直接混合到FPFH中相对法线角计算中的关键思想。
视点分量是通过收集视点方向与每个法线形成的角度的直方图来计算的。注意,我们不是指每个法线的视角,因为这不是尺度不变的,而是指中心点方向到每个法线的角度。第二个分量测量快速点特征直方图(FPFH)描述符中描述的相对平移、倾斜和偏航角,但现在测量的是中心点的视点方向和表面上的每个法线之间的角度。
因此,新组合的特征称为视点特征直方图(VFH)。下图展示了这个想法,新特性由两部分组成:
1/一个视点方向分量
2/由扩展的FPFH组成的表面形状分量。
估计VFH特性
视图特征直方图在PCL中作为pcl_features库的一部分实现。
默认的VFH实现为三个扩展的FPFH值中的每一个使用45个binning子分区,为每个点到质心的距离再加上45个binning子分区,为视点组件使用128个binning子分区,这样就得到了一个308字节的浮点值数组。它们存储在pcl::VFHSignature308点类型中。
PFH/FPFH描述符与VFH之间的主要区别在于,对于给定的点云数据集,只估计一个VFH描述符,而生成的PFH/FPFH数据的条目数与云中点的个数相同。
下面的代码片段将为输入数据集中的所有点估计一组VFH特性。
#include <pcl/point_types.h>
#include <pcl/features/vfh.h>{pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::Normal>::Ptr normals (new pcl::PointCloud<pcl::Normal> ());... read, pass in or create a point cloud with normals ...... (note: you can create a single PointCloud<PointNormal> if you want) ...// 创建VFH估计类,并将输入数据集+法线传递给它pcl::VFHEstimation<pcl::PointXYZ, pcl::Normal, pcl::VFHSignature308> vfh;vfh.setInputCloud (cloud);vfh.setInputNormals (normals);// 或者,如果cloud类型为PointNormal,则执行vfh.setInputNormals(cloud);// 创建一个空的kdtree表示,并将其传递给FPFH估计对象。// 它的内容将根据给定的输入数据集填充到对象中(因为没有其他搜索表面)。pcl::search::KdTree<pcl::PointXYZ>::Ptr tree (new pcl::search::KdTree<pcl::PointXYZ> ());vfh.setSearchMethod (tree);// 输出数据集pcl::PointCloud<pcl::VFHSignature308>::Ptr vfhs (new pcl::PointCloud<pcl::VFHSignature308> ());// 计算特征vfh.compute (*vfhs);// vfhs->points.size () 应该为 1
}
可视化VFH签名
libpcl_visualization包含一个特殊的PCLHistogramVisualization类,pcl_viewer也使用这个类自动将VFH描述符显示为浮点值的直方图。有关更多信息,请参见http://www.pointclouds.org/documentation/overview/visualiz.php。
注意
[VFH] (1, 2) http://www.willowgarage.com/sites/default/files/Rusu10IROS.pdf
@InProceedings{Rusu10IROS, author = {Radu Bogdan Rusu and Gary Bradski and Romain Thibaux and John Hsu}, title = {Fast 3D Recognition and Pose Using the Viewpoint Feature Histogram}, booktitle = {Proceedings of the 23rd IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, year = {2010}, address = {Taipei, Taiwan}, month = {October} }
这篇关于【译】PCL官网教程翻译(18):估计一组点的视点特征直方图(VFH)签名 - Estimating VFH signatures for a set of points的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!