浅谈FPFH算法实现原理及其在点云配准中的应用

47 篇文章 26 订阅
订阅专栏
33 篇文章 50 订阅
订阅专栏
30 篇文章 26 订阅
订阅专栏

目录

一. 引言

二. PFH(Point Feature Histogram)

三. FPFH(Fast Point Feature Histogram)

四. 实验结果

五. 讨论与总结

Reference

一. 引言

在点云计算应用中,我们希望提取一些特征点,以实现对点云的一些概述性理解。最直观的想法是,我们计算点云内那些曲率变化显著的角点或基于某种几何特征的极值点,来作为特征点。这些点通常带有显著的几何信息,并且与人视觉上的感知保持一致。但是,当我们真的用这种直观的方法尝试提取特征点时,就会发现非常严重的问题:即大量的无效点被错误的识别为特征点。究其原因,其问题在于我们无法保证点云内部点的分布是光滑的,或点云内部曲率变化保持连续。一些异常的点不可避免的存在于点云,并破坏了附近的点云的曲率变化。基于曲率或法向直接定义特征点,那些异常点就会以很大的概率被错误的识别为特征点。为了解决该问题,统计分析方法被引入。

统计分析方法在看一个点是否为特征点时,除了考虑该点的几何特征,同时还会考虑该点附近的区域,一些几何特征的分布情况。这样做的好处就是避免了一些异常的点被错误识别的情况。其原理在于,一个或少数几个点带有异常值,会破坏特征识别,但是我们分析这些异常点的邻域,对邻域内的点做统计计算,就会显著降低异常权重,使得对该点或者该区域的几何特征表述,更加稳定。FPFH算法正是基于该思想所提出。下面,我们将具体展开来介绍下FPFH算法的实现以及在点云配准中的应用。

二. PFH(Point Feature Histogram

在介绍FPFS算法之前,我们需要先了解PFH(Point Feature Histogram)[1][2]算法。两者原理相同,而前者是后者的一种简化,目的在于提升计算效率。如上所述,对点云进行统计分析计算,即对点的邻域,针对某一种几何特征,进行统计,进而得到一种统计特征。PFH算法的设计完全基于该思路,即在点云定义一个固定的邻域,然后在这个邻域来计算一系列的特征值,建立针对特征值的直方图,已得到统计特征。下面我们来看一下具体的实现。

首先,我们需要定义一个局部坐标系。设Ps点为当前需要计算PFH的点,Pt点为它的邻域内一点。基于法向量于两线之间的向量,定义局部坐标系:

该局部坐标三个轴的计算方法如下:

ns为Ps点的法向。根据上面的公式,我们就得到了基于点Ps的一个局部坐标系。根据该坐标系,我们计算Pt点与Ps点之间的三元组特征表示:

这样,我们就得到了以Ps为源点,对Pt的三元组特征表示。PFH计算在某一点邻域内,所有点对的三元组特征,并根据这些特征,建立直方图表示,进而得到PFH特征表述子。

 如上图所示,点Pq为源点,在定义的邻域内有五个点。这六个点的点对数量为C62,即

换句话说,在邻域内共有15条线,对应15组三元组数据。对这15组三元组数据进行三维的直方图统计,以得到一个125维的特征向量,即为PFH。可以看到,PFH除了考虑源点与邻点的关系,还考虑了邻域内邻点之间的关系。可以说,对于邻域的几何特征表述是足够充分的。但是,这样的描述带来了极大的计算开销,其时间复杂度为C(nk^2),其中k为邻域内点的平均值。为了提高效率,我们希望把时间复杂度降为C(nk),为此FPFH被提出。 

三. FPFH(Fast Point Feature Histogram

FPFH的核心计算过程和PFS基本一致,都要计算三元组。所不同的是,FPFH不计算邻域内邻点之间的三元组,这样能够显著的提升计算效率。但是,如果只计算源点和邻点之间的三元组,那么就会因减少了对局部邻域的完整描述,降低特征的表示精度。

为了弥补该问题,FPFH将邻点的邻点考虑进来,以扩大统计分析的范围。这样,在对源点附近区域进行特征统计分析时,能够在更大的范围获取三元组信息,以弥补FPFH对PFH特征描述的缺陷。需要注意的是,邻点对于源点的影响权重是不同的,权重应该与邻点与源点的距离成正比。因此,在考虑邻点的邻点时,需要加上基于距离的权重。

如上图所示,当我们在计算源点Pq点三元组的时候,第一步我们只计算源点与邻点的三元组,即五组数据(标记为粉色线),之后,分别计算邻点在其邻域的三元组,并且赋以基于距离的权重,最后将三元组组合,赋值给Pq,使用与PFH同样的方法,计算直方图,得到统计特征。

基于提取的特征点,FPFH结合一个成为SAMPLE CONSENSUS INITIAL ALIGNMENT的方法,即一个贪心搜索,以建立点云之间的初步对应关系,进而实现基于FPFH的点云配准应用。实验证明,FPFH在点云配准任务中具有优越的性能。

代码如下(基于PCL库):

#include <pcl/point_types.h>
#include <pcl/features/fpfh.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) ...

  // Create the FPFH estimation class, and pass the input dataset+normals to it
  pcl::FPFHEstimation<pcl::PointXYZ, pcl::Normal, pcl::FPFHSignature33> fpfh;
  fpfh.setInputCloud (cloud);
  fpfh.setInputNormals (normals);
  // alternatively, if cloud is of tpe PointNormal, do fpfh.setInputNormals (cloud);

  // Create an empty kdtree representation, and pass it to the FPFH estimation object.
  // Its content will be filled inside the object, based on the given input dataset (as no other search surface is given).
  pcl::search::KdTree<PointXYZ>::Ptr tree (new pcl::search::KdTree<PointXYZ>);

  fpfh.setSearchMethod (tree);

  // Output datasets
  pcl::PointCloud<pcl::FPFHSignature33>::Ptr fpfhs (new pcl::PointCloud<pcl::FPFHSignature33> ());

  // Use all neighbors in a sphere of radius 5cm
  // IMPORTANT: the radius used here has to be larger than the radius used to estimate the surface normals!!!
  fpfh.setRadiusSearch (0.05);

  // Compute the features
  fpfh.compute (*fpfhs);

  // fpfhs->size () should have the same size as the input cloud->size ()*
}

四. 实验结果

五. 讨论与总结

相比传统的ICP,对于FPFS算法的改进工作不是很多,高质量的文章也比较少。即使在2022年,基于ICP的改进方法仍然能在TPAMI上发表,而基于FPFH的技术路线,在质量不能与之相比。我认为,限制FPFS应用存在两个重要的问题。第一,FPFH的提取需要法线计算,这提高了计算开销,并且使的算法本身对点云的质量敏感。第二,FPFH在实时计算上没有ICP算法和深度学习框架优秀。另外,对于有断裂的,点分布不均匀的点云,FPFH受限于特征提取的过程,必然会进一步受到影响。不过,在我最近的工作中,通过实验对比,我发现FPFH在对于具有显著姿态差异的配准任务中,能够获得非常不错的效果,可见基于FPFH的技术路线仍然具有研发潜力。我已经对改善FPFH的实现与性能提升计划有了思路,未来文章发表后,将在第一时间与各位分享,欢迎持续关注我的博客。

Reference

[1] R. B. Rusu, Z. C. Marton, N. Blodow, and M. Beetz, “Learning Informative Point Classes for the Acquisition of Object Model Maps,” in Proceedings of the 10th International Conference on Control, Automation, Robotics and Vision (ICARCV), Hanoi, Vietnam, December 17-20, 2008.

[2] R. B. Rusu, N. Blodow, Z. C. Marton, and M. Beetz, “Aligning Point Cloud Views using Persistent Feature Histograms,” in Proceedings of the 21st IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Nice, France, September 22-26, 2008.

[3] Rusu R B, Blodow N, Beetz M. Fast point feature histograms (FPFH) for 3D registration[C]//2009 IEEE international conference on robotics and automation. IEEE, 2009: 3212-3217.

Python点云处理(十五)点云粗配准算法FPFH+RANSAC
weixin_43894929的博客
09-10 4184
FPFH算法结合RANSAC算法是一种在点云配准常用的粗配准方法,适用于各种不同的应用场景。通过计算局部特征和排除局外点来提高点云配准的准确性和鲁棒性。此算法的优点在于高效计算、鲁棒性高,然而也存在一定局限性,如存在无匹配等情况。对于精确度要求较高的任务,可能需要借助精配准方法进一步提升配准效果。综上所述,FPFH算法结合RANSAC算法点云粗配准具有重要的应用价值。
点云配准PFH、FPFH、icp、NDT、3Dsc.zip
02-24
几个点云配准算法点云配准PFH、FPFH、icp、NDT、3Dsc:粗配准算法,并计算出误差 几个点云配准算法点云配准PFH、FPFH、icp、NDT、3Dsc:粗配准算法,并计算出误差
SAC粗配准+fpfh点云描述+ICP配准代码
05-20
用于目标点云与原点云之间的变换矩阵,基于PCL1.11.1版本, 修改至https://blog.csdn.net/peach_blossom/article/details/78506184
Open3D 点云配准-FPFH特征计算(原理详细版)
最新发布
纵马踏花向自由
08-11 1915
FPFH(Fast Point Feature Histograms)特征计算是通过描述点云每个点的局部几何关系来生成的,FPFH特征向量的维度是33。FPFH特征计算分为两个主要步骤:SPFH(Simplified Point Feature Histograms)和FPFH。以下是详细的步骤和几何关系描述。
快速特征点直方图描述器(FPFH)
热门推荐
海贼王
04-09 2万+
PFH的理论上的时间复杂度是O(nk的平方),n是点的数量,k是最近邻的个数。对于实时系统来说,这压根就是不行的,所以作为PFH规划的简化版本,FPFH把计算复杂度减少成O(nk),但是还具有很好的和PFH差不多的区分能力。 第一步我们先计算了每个查询点Pq的一系列值,并把它叫做SPFH(Simplified Point Feature Histgram) 第二步每个点的最近邻是重新分配,SP
PFH和FPFH
xinxiangwangzhi_的博客
05-09 1万+
目录 1.PFH由来 2.PFH原理 3.FPFH的由来 4.FPFH的原理 5.二者区别与联系 6.pcl二者的应用 1.PFH由来 点特征的描述子一般是基于点坐标、法向量、曲率来描述某个点周围的几何特征。用点特征描述子不能提供特征之间的关系,减少了全局特征信息。因此诞生了一直基于直方图的特征描述子:PFH--point feature histogram(点特征直方图)。 ...
用来描述点云局部特征的快速点特征直方图(FPFH)算法的matlab实现
04-04
[原创]自己实现的FPFH算法,效果与PCL的完全一致。输入量必须包括离散无拓扑的点云矩阵、点云法向量矩阵、关键点在离散点云的位置向量、邻域参数这么四个,另外两个量可缺省,填入ISS算法(资源已放出)步骤用到的r邻域拓扑变量时可以节省运算资源。输出量为一个矩阵,其每一行为一个33维度向量,对应一个关键点的FPFH描述符。 个人比较满意的作品,代码变量命名规范、逻辑清晰、可读性强。
FPFH提取点云特征进行配准
m0_61812914的博客
04-26 1314
FPFH提取点云特征进行配准
FPFH点云配准
11-05
FPFH方法进行点云配准,包含一个两个源文件和一个头文件,头文件包括RANSAC和FPFH特征的定义,源文件其一个是FPFH特征的提取,还有一个是主函数,主要是各种接口。通过该方法可以比较好的进行点云配准
点云配准fpfh
07-22
点云配准fpfh,初始矩阵的计算
PCLPFH、FPFH理论
phymat.nico的专栏
02-07 2701
基本概述 快速点特征直方图(Fast Point Feature Histograms,FPFH)是一种基于点及其邻域点之间法向夹角、点间连线夹角关系的特征描述子,是一种由点特征直方图(Point feature Histograms,PFH)改进的算法,保留了PFH对点描述的主要几何特性,并将计算复杂度从O(nk^2)降低到O(nk),其n为点云数据点的个数,k为每个点的邻域包含的点的个...
点云配准算法fpfh,C++,pcl库,亲测可用
04-19
点云配准算法FPFH代码,可读取pcd文件,如果要读取ply文件需要自己改代码,或者将ply文件转换为pcd
特征直方图(PFH)算法的matlab实现,以及基于PFH的点云拼接实验
04-04
[原创]根据文献使用matlab实现了PFH算法,并使用它对bunny数据进行了基于特征匹配和RANSAC的拼接实验。关键点选取和特征匹配部分是直接用的之前文献复原的内容(资源已发布),仅用来测试PFH的有效性。由于运行速度过慢,我将代码分为三块,依次运行PFH_demo.m(关键点提取)、PFH_demo2.m(PFH计算,耗时)、PFH_demo3.m(拼接实验与结果展示)。代码实现的是64维度的描述符,与PCL的略有不同。关键点如果用3D harris效果应该会更好一点。
点云配准-pfh粗配.cpp
12-25
点云配准算法
基于PCL开源库fpfh+icp算法实现点云配准
03-27
本篇文章将深入探讨如何基于PCL库FPFH(Fast Point Feature Histograms)特征匹配和ICP(Iterative Closest Point)迭代最近点算法来实现高精度的点云配准FPFH特征是一种描述点云表面几何信息的局部特征,它...
点云配准+配准+点云+用于机械臂抓取
10-07
本文将深入探讨基于Point Pair Features (PPF)的6D姿态估计方法及其在点云配准应用。 PPF是一种强大的特征描述符,它通过考虑点对之间的相对方向来捕获3D空间的几何信息。这一特性使得PPF在处理自由形态的3D...
FPFH与SAC-ICP在点云配准应用
此资源很可能是一个有关点云数据处理的程序或算法包,其包含了特征点提取、法向量估计、FPFH(Fast Point Feature Histograms)特征描述符、SAC-IA(RANSAC Iterative Alignment)粗配准和ICP(Iterative Closest ...
改进的RANSAC算法在三维点云配准应用
02-13
传统随机抽样一致性(RANSAC)算法只能进行粗配准, 且配准效率低。...本文算法相较于传统配准算法有很大优势, 在大规模三维点云配准具有很好的稳健性, 并且在保证精度的同时可大幅提高配准效率。
FPFH(Fast Point Feature Histogram)简介
qq_74117006的博客
07-14 1453
在介绍FPFH之前,必须先介绍一下PFH,PFH是对点云进行统计分析计算,即对点的邻域,针对某一种几何特征,进行统计,进而得到一种统计特征。PFH算法的设计完全基于该思路,即在点云定义一个固定的邻域,然后在这个邻域来计算一系列的特征值,建立针对特征值的直方图,已得到统计特征。点特征直方图 (PFH) 是具有丰富信息且不受姿态影响的局部特征,表示点 p 处的底层曲面模型属性。它们的计算基于p的k个最近邻之间的某些几何关系的组合。它们包含3D点坐标和估计的表面法线。
fpfh点云陪准原理
09-17
FPFH点云特征描述子是一种基于法线估计的点云特征描述子方法。它的全称是Fast Point Feature Histograms,即快速点特征直方图。 该方法的原理如下:首先,对于点云的每个点,利用曲面法线估计算法计算其法线向量。然后,对每个点周围的邻域进行采样,并计算每个采样点与心点之间的相对位置和法线之间的关系,如角度和曲率差异等。接着,将这些关系编码为直方图,并将直方图连接形成一个特征描述子向量。 FPFH点云特征描述子具有以下特点:首先,它是一种快速计算的方法,因为它只考虑了点云每个点的邻域。其次,它具有旋转不变性,即特征描述子对输入点云的旋转变换具有鲁棒性。此外,FPFH描述子还具有较强的区分度,能够有效地区分不同形状的物体。 FPFH点云特征描述子在点云处理、物体识别和三维配准等领域有着广泛的应用。在三维配准,可以通过匹配两个点云FPFH描述子来实现点云的对齐和配准。在物体识别,可以利用FPFH描述子对不同物体的点云进行特征提取和匹配,从而实现物体的自动识别和分类。总之,FPFH点云特征描述子是一种有效的点云特征提取方法,可以为点云数据的处理和分析提供有力的工具。

图形学领域优质创作者

博客专家认证

133
原创
743
点赞
3450
收藏
2万+
粉丝
关注
私信
写文章

热门文章

  • 火爆科研圈的三维重建技术:Neural radiance fields (NeRF) 34300
  • CUDA异常处理篇——invalid argument 的解决方法 30797
  • Nvidia最新三维重建技术Instant-ngp初探 26012
  • 基于Pytorch实现的图像分割算法: DeepLabV3+ 21662
  • 人工智能以及图形图像处理领域CCFA类期刊汇总与个人评价 18894

分类专栏

  • 论文阅读 30篇
  • 图形学算法 33篇
  • GPT专题介绍 1篇
  • 技术学习笔记 47篇
  • OpenGL编程技术 4篇
  • 点云深度学习 7篇
  • Deep Learning 22篇
  • 杂项 16篇
  • 并行计算 10篇

最新评论

  • Fast Marching算法及其在点云测地线计算中的应用

    gaofeimax: 代码可以参考skfmm

  • 三次样条(Cubic Spline)的C++实现以及可视化

    十九248: 师兄,请问能不能做闭合曲线的拟合

  • Neural-Pull曲面重建程序配置

    zParquet: 你可以看看评价的代码是不是写的有问题,用他提供的原始数据试试。我没碰到过问题

  • IEEE Template中引入orcid链接的方法

    qq_1162191393: buyanjin

  • Neural-Pull曲面重建程序配置

    棱129: 还想请教您一个问题,请问您在阅读capudf这篇文章的结果评价部分,他说是在生成的模型表面重采样100k个点与原始模型上采样的点进行比较,但是为什么我计算得出的F指数的精度这么低,您当时是怎么做比较的,也会出现这种问题吗

最新文章

  • 3D高斯溅射:面向三维场景的实时渲染技术
  • Point-BERT:一种基于Transformer架构的点云深度网络
  • Multidimensional Scaling(MDS多维缩放)算法及其应用
2024年1篇
2023年13篇
2022年43篇
2021年24篇
2020年36篇
2019年11篇
2018年3篇
2017年2篇

目录

目录

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿老甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家郑州玻璃钢人物景观雕塑设计汕尾公园玻璃钢雕塑户外玻璃钢雕塑厂家诚信企业推荐河南省玻璃钢人物雕塑大连玻璃钢雕塑优点辽宁商城玻璃钢造型景观雕塑制作邯郸户外玻璃钢雕塑造型深圳发光玻璃钢雕塑苏州园林玻璃钢雕塑哪家专业猪羊玻璃钢雕塑江西园林玻璃钢雕塑定制重庆时尚玻璃钢座椅雕塑杭州商场玻璃钢雕塑摆件商场美陈布置南通河北玻璃钢雕塑摆件厂家直销河南玻璃钢花盆销售厂家重庆玻璃钢雕塑制作过程标识玻璃钢卡通雕塑加工张家港玻璃钢雕塑定做河北艺术商场美陈江门卡通玻璃钢雕塑厂南京商场美陈价钱福建特色商场美陈销售公司玻璃钢花盆厂生产厂家景区玻璃钢雕塑市场大型玻璃钢雕塑图片黑龙江公园玻璃钢雕塑图片美陈商场哪个好公园主题玻璃钢卡通雕塑商场公共区域的美陈方案香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化