0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PCL中最远点采样是什么

麦辣鸡腿堡 来源:古月居 作者:敢敢のwings 2023-11-21 17:18 次阅读

最远点采样(Farthest Point Sampling)
这里我们来单独看一下调用代码,这里可以看到PCL中支持直接调用farthest_sampling这个函数可以实现最远点采样。

最远点采样(Farthest Point Sampling)是一种非常常用的采样算法,由于能够保证对样本的均匀采样,被广泛使用,像3D点云深度学习框架中的PointNet++对样本点进行FPS采样再聚类作为感受野,3D目标检测网络VoteNet对投票得到的散乱点进行FPS采样再进行聚类,6D位姿估计算法PVN3D中用于选择物体的8个特征点进行投票并计算位姿。FPS算法原理:

1、输入点云有N个点,从点云中选取一个点P0作为起始点,得到采样点集合S={P0};

2、计算所有点到P0的距离,构成N维数组L,从中选择最大值对应的点作为P1,更新采样点集合S={P0,P1};

3、计算所有点到P1的距离,对于每一个点Pi,其距离P1的距离如果小于L[i],则更新L[i] = d(Pi, P1),因此,数组L中存储的一直是每一个点到采样点集合S的最近距离;

3、选取L中最大值对应的点作为P2,更新采样点集合S={P0,P1,P2};

4、重复2-4步,一直采样到N’个目标采样点为止。

std::vector< pcl::PointCloud< pcl::PointXYZ >> input_point_clouds(1);
  std::vector< pcl::PointCloud< pcl::PointXYZ >> output_point_clouds;


  ASSERT_NE(pcl::io::loadPLYFile< pcl::PointXYZ >(STR(INPUT_POINT_CLOUD_PATH),
            input_point_clouds[0]), -1) < < "Couldn't read file test point cloud file";
  farthest_sampling::samplePointCloudsCuda(input_point_clouds, output_point_clouds, 4096);
  boost::filesystem::path output_path = STR(OUTPUT_POINT_CLOUD_PATH);
  if (output_path.has_parent_path() && !boost::filesystem::exists(output_path.parent_path()))
  {
    boost::filesystem::create_directories(output_path.parent_path());
  }
  pcl::io::savePLYFile(STR(OUTPUT_POINT_CLOUD_PATH), output_point_clouds[0]);
  ASSERT_EQ(output_point_clouds[0].size(), 4096);
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4975

    文章

    12257

    浏览量

    454928
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310
  • 采样
    +关注

    关注

    1

    文章

    109

    浏览量

    25371
收藏 人收藏

    评论

    相关推荐

    PCL翻转PCLATH不增加,PC中的这个翻转不改变PCLATH位

    你好。PIC16F87具有PCL存储的13位PC、LSB字节、PCLSATE中的MSB 5位。问题是当PCL翻转PCLATH不增加时。请记住,PC中的这个翻转不改变PCLATH位:它们必须显式地更改
    发表于 09-26 10:33

    关于232的NCL,PCL的疑问

    有没有大神接触过这种232通讯的仪表,上面有NCL RXD,NCL TXD;PCL RXD,PCL TXD。这种能用DB9的芯片去采集数据吗?我用DB9的RXD去接它的 NCL TXD,数据偶尔会有一位的偏移,请问该怎么正确的采集它的数据,拜谢
    发表于 11-07 16:15

    PCL点云库介绍及项目配置方式

    关于PCL点云库,大家百度的时候可以找到很多相关的介绍,反正一堆专业性概念,相关的技术层面以及一些强大的应用叙述云云,不过关于这些小编实在不感冒,能先把这个工具好好用起来再说吧。关于PCL相关的论坛
    发表于 07-02 07:44

    如何去配置PCL

    PCL是什么?怎样去编写并调试PCL程序?
    发表于 10-09 08:19

    PCL6143运动控制器原理及应用

    PCL6143运动控制器的原理及应用 可以用于设计开发相应的芯片电路。介绍了PCL6143 的功能结构、主要寄存器以及指令系统。设计了一款基于PC104总线的四轴运动控制卡, 介绍了如何编写运动控制卡的功能函数库。
    发表于 09-26 08:14

    PCL86牛输出耳放电路图

      PCL86牛输出耳放电路图
    发表于 09-29 22:30 4150次阅读
    <b class='flag-5'>PCL</b>86牛输出耳放电路图

    系统辨识中最采样间隔的确定

    针对如何确定连续系统辨识中最采样间隔的问题,根据复平面中辨识模型的特征值到原点的距离判断采样间隔是否合理,利用折半查找算法,设计了一种在给定的范围内寻找系统辨识
    发表于 07-24 15:41 0次下载

    车载自组网中最远转发机制的可靠性改进

    车载自组网是传统的移动自组织网络在交通道路上的应用。在车载自组网中,最远转发机制口3能够有效降低数据传播跳数,减少冗余发送,但最远转发机制的可靠性将因最远节点失效而受到影响。在分析和实验验证节点高速
    发表于 11-25 11:52 0次下载

    Lane Tech HS PCL自动灯开源

    电子发烧友网站提供《Lane Tech HS PCL自动灯开源.zip》资料免费下载
    发表于 02-08 15:28 0次下载
    Lane Tech HS <b class='flag-5'>PCL</b>自动灯开源

    Point-NN: 即插即用,无需训练的非参数点云分析网络!

    从PointNet++起,包括最远点采样(FPS)、k近邻(k-NN)和池化操作在内,所有可学习模块背后的非参数框架几乎保持相同。很少有研究去探索它们的疗效,论文提出了一个问题
    的头像 发表于 03-28 11:22 1876次阅读

    在Ubuntu上编译安装pcl教程

    编译安装PCL(Point Cloud Library)是在Ubuntu上使用自定义选项进行安装的一种方式。
    的头像 发表于 10-26 09:36 437次阅读

    PCL中基础下采样介绍

    顾名思义,随机下采样就似乎在原始点云中随机采样一定点数的点。这种方法最终得到的点云数量也是固定的。 pcl::PointCloud ::Ptr cloud_sub( new pcl
    的头像 发表于 11-21 17:03 444次阅读
    <b class='flag-5'>PCL</b>中基础下<b class='flag-5'>采样</b>介绍

    PCL中法线空间采样介绍

    法线空间采样 NormalSpaceSampling即:法线空间采样,它在法向量空间内均匀随机抽样,使所选点之间的法线分布尽可能大,结果表现为地物特征变化大的地方剩余点较多,变化小的地方剩余点稀少
    的头像 发表于 11-21 17:28 337次阅读

    PCL泊松盘采样具体流程

    泊松盘采样 泊松盘采样(possion disk sampling)的特点是任何两个点的距离都不会隔得太近。 比如下图,左边是随机生成的点,右边是泊松盘采样生成的点。 具体流程如下: 1、设定好两个
    的头像 发表于 11-21 17:42 447次阅读
    <b class='flag-5'>PCL</b>泊松盘<b class='flag-5'>采样</b>具体流程

    PCL中非均匀体素采样介绍

    非均匀体素采样 SamplingSurfaceNormal,将输入空间划分为网格,直到每个网格中最多包含N个点,并在每个网格中随机采样点。 使用每个网格的N个点计算法线。 在网格内采样
    的头像 发表于 11-21 17:50 435次阅读