开始做点云识别了,在matlab 上自己写了一个点云特征提取脚本,跑出来的效果还不错,于是想跟pcl官网的点云特征提取算法比较一下,看看两者在识别上谁会好一点。

vfh代码我参考某位博主的,忘记是谁了阿。

我封装成了一个函数,输入点云,返回308维的点云特征。

#include <pcl/features/vfh.h>
#include <pcl/features/normal_3d.h>//法线特征pcl::PointCloud<pcl::VFHSignature308> GetVFHFeature(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_ptr)
{pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> ne;ne.setInputCloud(cloud_ptr);pcl::search::KdTree<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>());ne.setSearchMethod(tree);//设置近邻搜索算法 pcl::PointCloud<pcl::Normal>::Ptr cloud_normals_ptr(new pcl::PointCloud<pcl::Normal>);pcl::PointCloud<pcl::Normal>& cloud_normals = *cloud_normals_ptr;ne.setKSearch(40);  // 临近值50// 计算表面法线特征ne.compute(cloud_normals);pcl::VFHEstimation<pcl::PointXYZ, pcl::Normal, pcl::VFHSignature308> vfh;vfh.setInputCloud(cloud_ptr);vfh.setInputNormals(cloud_normals_ptr);pcl::search::KdTree<pcl::PointXYZ>::Ptr tree2(new pcl::search::KdTree<pcl::PointXYZ>());vfh.setSearchMethod(tree2);//设置近邻搜索算法 pcl::PointCloud<pcl::VFHSignature308>::Ptr vfh_fe_ptr(new pcl::PointCloud<pcl::VFHSignature308>());//vhf特征vfh.compute(*vfh_fe_ptr);return *vfh_fe_ptr;
}

然后主函数调用就行了。

pcl::PointCloud<pcl::VFHSignature308>::Ptr vfh_fe_ptr(new pcl::PointCloud<pcl::VFHSignature308>());*vfh_fe_ptr = GetVFHFeature(cloud_ptr);

tttt是返回的特征长度,后面的for循环将每一个bin的值(每一维的特征值)输出来。

 int tttt = vfh_fe_ptr->points[0].descriptorSize(); cout << tttt << endl;for (size_t temi = 0; temi < tttt; ++temi)cout << vfh_fe_ptr->points[0].histogram[temi] <<" "<< endl;

我将点云在pcl+vs中将特征提取出来,然后在matlab中训练测试其识别率。下面是随便选的几类样本的vfh特征画出来。

0很多,可以适当降一下维,我忘记了。其实我感觉整体的特征区别貌似不是很大。。反正测试结果正确率是80多。。

不过跟法向量的估值有很大关系,适当调一下法向量那一步的参数效果可能会好一点。

显示的代码的话,参考fpfh的代码吧,类似的,改一下就好了

 #include<pcl/visualization/pcl_plotter.h>  // plotterint main()
{pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);pcl::io::loadPCDFile("D:\\VS_Files\\Lidar\\Project2\\cloud_point\\train_sample\\RGB_dataset_pcd\\banana_train\\banana_1.pcd", *cloud);pcl::PointCloud<pcl::FPFHSignature33>::Ptr fphf_ (new pcl::PointCloud<pcl::FPFHSignature33>());;*fphf_ = Get_FPFH_Feature(cloud);pcl::visualization::PCLPlotter *plotter = new pcl::visualization::PCLPlotter("My Plotter");//设置特性plotter->setShowLegend(true);std::cout << pcl::getFieldsList<pcl::FPFHSignature33>(*fphf_);//显示plotter->addFeatureHistogram<pcl::FPFHSignature33>(*fphf_, "fpfh", 0);plotter->spin();plotter->clearPlots();system("pause");return 0;
}

点云特征提取--vfh相关推荐

  1. pcl点云特征提取 法线估计 PFH FPFH NARF 惯量偏心矩 RoPs特征 视点特征直方图VFH GASD特征

    pcl点云特征提取 法线估计 PFH FPFH NARF 惯量偏心矩  RoPs特征  视点特征直方图VFH GASD特征 博文末尾支持二维码赞赏哦 _ 如果要对一个三维点云进行描述,光有点云的位置是 ...

  2. 点云库PCL模块介绍(二)

    7.关键点 关键点也称为兴趣点,它是 2D 图像或 3D 点云或曲面模型上,可以通过定义检测标准来获取的具有稳定性.区别性的点集. 从技术上来说,关键点的数量相比于原始点云或图像的数据量减小很多,与局 ...

  3. 点云配准的端到端深度神经网络:ICCV2019论文解读

    点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...

  4. PCL点云处理算法目录

    一.点云配准 PCL中的点云配准方法:https://www.sohu.com/a/321034987_715754 点云配准资源汇总:https://mp.weixin.qq.com/s/rj090 ...

  5. PCL点云特征描述与提取(3)

    快速点特征直方图(FPFH)描述子 已知点云P中有n个点,那么它的点特征直方图(PFH)的理论计算复杂度是,其中k是点云P中每个点p计算特征向量时考虑的邻域数量.对于实时应用或接近实时应用中,密集点云 ...

  6. 点云深度学习研究现状与趋势

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:3D点云深度学习 作者:霍尔顿 在工业界,利用激光雷达获 ...

  7. 招聘|腾讯地图平台部招点云算法工程师

    腾讯地图平台部招聘点云算法工程师 岗位职责: 1.负责研发高速以及城市场景激光点云深度学习检测以及分割模型. 2.负责研发高速以及城市场景激光点云配准融合算法. 3.负责模型集群上线模型改造. 4.负 ...

  8. CVPR 2020 | 更高质量的点云补全:上海交通大学团队提出点云分形网络

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者1335授权转载,不得擅自二次转载.原文链接:https://zhuanlan.zhih ...

  9. 14.7倍推理加速、18.9倍存储节省!北航、商汤、UCSD提出首个点云二值网络 | ICLR 2021...

    允中 编辑整理 量子位 报道 | 公众号 QbitAI 编者按: 无论是在自动驾驶场景中,还是在手持移动设备上,基于点云的深度学习模型应用越来越广泛. 但这些离线边缘场景自身的限制,给模型的推理.存储 ...

最新文章

  1. 【Spring】新注解
  2. 【每日一算法】整数反转
  3. 【pmcaff】从中国到世界:移动领域的大现状
  4. /proc文件系统读出来的数据是最新的吗?
  5. Boost.Flyweight 复合设计示例
  6. Delphi Menu Designer(菜单设计器)之一
  7. 一个短小精悍的在线jshint工具
  8. android listview 数据数组制作,android – 从对象的数组列表中填充listview
  9. 为什么腾讯视频下载不了_腾讯视频如何设置背景
  10. android缩放动画后,Android ObjectAnimator:缩放后动画填充
  11. ssm框架mysql自增_手把手教你整合最优雅SSM框架
  12. 定期删除30天以前的elasticsearch的日志
  13. Linux-mysql备份
  14. 04-cmake语法-STREQUAL
  15. 移动广告聚合平台经验分享:芒果、果合、KeyMob、Adview、抓猫哪家强?
  16. 安卓脚本怎么实现在后台_用按键精灵录制微信自动摇一摇脚本
  17. win7下配置python_win7如何配置Python环境变量
  18. 软件销售公司交什么税
  19. 手机管理服务器文件夹,手机管理服务器文件夹
  20. python多图片合并pdf_Python结合ImageMagick实现多张图片合并为一个pdf文件的方法

热门文章

  1. 如何使用“迁移助理”将文件从旧 Mac 移到新Mac?
  2. 用word制作正规公文(转)
  3. 理解AMQP协议和RabbitMQ的性能和可靠平衡
  4. Python各种扩展名(py, pyc, pyw, pyo, pyd)区别
  5. 河南最新道路货物运输驾驶员考试真题及答案解析
  6. redis 无法启动
  7. 2019CCPC江苏南京女生赛 | 总结
  8. 盈余贝分享网赚项目的思维和观念
  9. Python pywifi ERROR Open handle failed 的问题
  10. 什么是温顺型人格?温顺型性格如何做职业规划?