[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base

摘要:

  • 本文说首次实现了大规模点云场景中基于点的模型的实时检测(<30ms);
  • 首先指出FPS采样策略进行下采样是耗时的,尤其当点云增加的时候,计算量和推理时间快速增加;
  • 本文提出IC-FPS;包含两个模块:local feature diffusion based background point filter (LFDBF)Centroid Instance Sampling Strategy (CISS);LFDBF用来排除大量的背景点,而CISS用来替代FPS;

简介:

早期的工作将点云投影为多视图,或体素点云,并通过3D卷积提取特征。这些方法虽然取得了很好的效果,但在将点云转换为block等中间表示时,不可避免地会丢失信息,导致模型性能下降。目前的方法依赖于复杂的下采样策略和SA层提取邻居特征;用来区分前景点背景点;这种方法是低效的;

  1. 首先为了提高下采样速度。提出了CISS替代FPS;
  2. 其次提出质心点偏移模块,用来恢复实例目标的原始的几何结构;
  3. LFDBF可以区分前/背景点,减少计算量;
  4. 为了进一步提高LFDBF的性能,提出了Density-Distance Focal Loss,以确保对远距离处稀疏的前景点进行有效采样;
  5. 结合CISS和LFDBF,提出IC-FPS;

相关工作:

实例质心特征扩散采样模块:

总览

3D检测更加关注目标对象;通常将大量的背景点作为输入,导致后续计算效率低下;

此外,现有的基于点的方法存在FPS等复杂的下采样策略,增加了计算成本和推理时间;

IC-FPS结合LFDBF和CISS对前景和背景区域进行分类,并对点云进行高效下采样;

邻域特征扩散模块(NFDM)进一步扩大前景块特征的扩散范围,减少下采样造成的信息损失;

IC-FPS可以插入到任何基于点的三维物体检测模型中,进行端到端训练;

[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base

图2.IC-FPS框架框图。B到P表示块中的所有点都被选中。n、m、ms、m1、m2分别表示输入的点云个数、有效块个数、选中块个数、选中质心个数、选中实例个数。橙色的块被选为前景块。c和c1分别表示输入通道数和特征通道数。

LFDBF

算法可以有效的去除背景点;

给定一组点P={pi|i=1,...,N} ∈RN×c;N表示点的数量和c表示通道数;如图2所示,我们将点P的集合划分为块,并推导出大小为[m, s, c]的矩阵,其中m为有效块的个数,s为块中的点个数;

为了高效提取每个块的局部特征,采用PointPillars方法获取块内的相对位置信息;

然后将矩阵大小折叠为[m, s, (c + 6)],其中额外的六个维度包括每个块中点到中心点的相对距离和质心位置;{∇x,∇y,∇z,xc,yc,zc}? 图2中的标注和原文不一致

有效的分类前景点和背景点需要每个块的邻居特征,而MLP仅提取每个块的特征;构造NFDM代替3D卷积,有效的提取块间的邻居信息;

NFDM采用多尺度球查询作为RANDLA-Net中KNN的替代,以提高处理速度;

如图3所示,在得到每个块的邻域范围后,将每个块的邻域特征扩散到邻域中的其他块;

[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base

图3.邻域特征扩散模块图。(a)表示块特征,(b)表示第一个NFDM有效块的特征扩散范围,(c)表示第二个NFDM有效块的特征扩散范围。黄色区域为有效块,橙色区域为特征扩散范围。每个块使用球查询来获取其邻域,并将其特征扩散到邻域内其他有效块中。

使用NFDM后得到的特征来评估每个块。采用MLP作为分类网络计算块的置信度。置信度越高,该块就越有可能是“前景块”。

将置信度大于阈值α的块视为前景块,其特征表示为Fi∈R(ms×c1),其中c1为通道数,ms为前景块数。前景块中的所有点都定义为前景点。

为了更好地对点云中距离较远的稀疏前景区域进行采样,我们提出了一种基于正态分布的密度-距离焦损失LDDFL,以防止距离较远的实例被过滤掉。密度约束MDen根据块中的点密度分配不同的权重。

[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base

其中,µ、σ为正态分布的位置参数和尺度参数。NvNmax分别表示block中的有效点数和最大值。距离约束MDis对远距离的对象赋更多的权值,表示为:

[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base

其中D为点到坐标系原点的距离,MD为最远点到原点的距离。密度-距离焦距损耗LDDFL表示为:

[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base

CISS

CISS的目标是高效采样中心点,并在第一层SA层中替代FPS。我们认为FPS的成功有两个原因:1️⃣FPS根据点密度自适应选择中心点,即在高密度区域中选择更多的中心点。2️⃣FPS从原始点云中采样样本并保留几何结构信息,有利于提高后续检测框回归的精度。

因此,我们将部分前景点添加到中心点中,以增加实例对象的样本密度。构造质心点偏移模块来恢复点云原始几何结构。

原始实例点采样:导出前景块后,计算块的质心位置,记为Di∈Rms×3。根据分类置信度从高到低对质心点进行排序,选择最高的m1点。此外,同时选择到原点距离最短的m2点。在后续模型中,将实例点和质心点作为第一SA层的中心点。算法1是CISS的详细程序。

块质心点偏移:将原始点云的位置信息逐层添加到之后的网络中,有利于适应原始点云结构。但质心与实际点云位置存在偏差。直接使用质心可能会丢失原始的位置信息,模型在回归过程中无法准确预测边界盒的大小。因此,我们提出了质心点偏移模块,将质心移动到最近的实例点,以有效地恢复目标的原始大小。质心点偏移损失函数LCB表示为:

[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base

其中b是质心点到最近实例点之间的预测偏移量,˜b表示质心点到最近实例点的实际偏移量。⌊⌋表示centroid是否出现在实例框中。

[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base

质心特征扩散采样框架

在图2中,我们应用另一个NFDM来扩大每个中心点特征的扩散范围。通过叠加两个NFDMs,IC-FPS可以有效地减少由于降采样造成的信息损失,并取代复杂的第一个SA层。

总损失包括密度-距离焦距损失LDDFL、质心点偏移损失LCB、分类损失Lcls和包围盒生成损失Lbox,如式5所示。

[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base

实验

实施细节

我们选择3DSSD [30]/SASA [3]/IA-SSD[35]作为基线构建模型。首先对输入点云进行块划分。块大小设置为[0.075,0.075,1]。在LFDBF模块中,点云通过类似于PointPillars的方法进行扩展,然后输入到三个大小为(16,16,32)的MLP层。第一个NFDM的扩散半径设置为4.0,最大扩散点个数设置为16个。置信阈值设置为0.45。我们在DDFL中设µ= 0.5和σ = 0.5(方程3)。CISS中质心偏移模块包含两个MLP层,其大小为(16,3),对于第二个NFDM,扩散半径设为[0.2,0.8],最大扩散点数设为16。

我们在实验中配置了三个不同数量的IC-FPS模块,分别是IC-FPS- S /ICFPS-M/IC-FPS- L。采样的质心点和实例点的最大个数分别为16384/2048、26000/4096和30720/8197。

我们的实验采用了相同的训练策略和每个基线的模型结构,只是第一个SA层被IC-FPS取代。在IA-SSD实验中,batch size设置为8,学习率设置为0.01,使用Adam[8]优化器,weight decay设置为0.01。在3DSSD和SASA实验中,batch size设置为2,学习率设置为0.002。实验在NVIDIA A40 GPU和AMD EPYC 7402 CPU上进行。

 

原文链接:https://www.cnblogs.com/ymzcch12/p/17292920.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:[paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Point-base - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • Python实现各种排序算法的代码示例总结

    排序算法是计算机科学中的基本算法之一。在Python中,我们可以使用各种排序算法来对列表进行排序。以下是Python实现各种排序算法的代码示例总结。 冒泡排序 冒泡排序是一简单的排序算法,它重复地遍历要排序的列表,比较相邻的元素,并交换它们的位置,直到整个列表都是有序的。以下是Python实现冒泡排序的代码示: def bubble_sort(arr): n…

    python 2023年5月13日
    00
  • Python实现迪杰斯特拉算法并生成最短路径的示例代码

    下面是详细讲解“Python实现迪杰斯特拉算法并生成最短路径的示例代码”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 Dijkstra算法是一种用于查找图中最短路径的算法。其主要思想是从起点开始,逐步扩展到其他节点,直到到达终点。在扩展的过程中,记录每个节点的最短路径和前驱节点,最终得到起点到终点的最短路径。Dijkstra算法的实现…

    python 2023年5月14日
    00
  • 如何通过python实现全排列

    下面是详细讲解“如何通过Python实现全排列”的完整攻略。 1. 什么是全排列? 全排列是指将一组数按照一定的顺序进行排列,使得每个数都在排列中出现且只出现一次。例如,对于数列[1, 2, 3],它的全排列有[1, 2, 3]、[1, 3, 2]、[2, 1, 3]、[2, 3, 1]、[3, 1, 2]和[3, 2, 1]六种。 2. Python实现全…

    python 2023年5月14日
    00
  • 斜率优化入门

    前言 斜率优化是一种经典的单调队列优化类型,虽然它的名字很高大上,但是其思想内核非常简单,这篇博客就是用来帮助各位快速入门的 提示:本博客以单调队列的思想理解斜率优化 引入 dp 优化可以怎么分类? 数据结构维护决策点集的插入与查找 算法维护决策点集大小,取出无用决策点 而斜率优化 dp 属于第二者,且常常用于优化序列分割问题 Q1 P3195 A1 先列出…

    算法与数据结构 2023年4月17日
    00
  • python编程通过蒙特卡洛法计算定积分详解

    以下是关于“Python编程通过蒙特卡洛法计算定积分详解”的完整攻略: 简介 蒙特卡洛法是一种常见的数值计算方法,可以用于计算定积分。本教程将介绍如何使用Python编程通过蒙特卡洛法计算定积分,并讨论如何使用该方法进行数值积分。 步骤 1.导入库和定义函数 首先,我们需要导入必要的库,包括numpy和matplotlib。在Python中,可以使用以下代码…

    python 2023年5月14日
    00
  • Python3 A*寻路算法实现方式

    Python3 A*寻路算法实现方式 A寻路算法是一种常用的路径规划算法,它可以用于游戏开发机器人导航等领域。在本文中,我们将详细介绍Python3中如何实现A路算法,并提供两个示例,以说明如何使用Python3实现A*寻路算法。 A*寻路算法的实现 Python3中,我们可以使用heapq库来实现A寻路算法。下面是一个使用heapq库实现A寻路算法示例: …

    python 2023年5月14日
    00
  • Python实现调度算法代码详解

    Python实现调度算法代码详解 调度算法是一种常用的算法,它可以用于优化任务的执行顺序,从而提高任务的执行效率。在Python中,可以多种法实现调度算法,如贪心算法、动态规划算等。本文将详细讲解Python实现调度算的整攻略,包括算法原理、Python实现过程和示例。 算法原理 调度算法的基本思想是根据任务的执行时间和优先级,确定任务的执行顺序,从而提任务…

    python 2023年5月14日
    00
  • python人工智能算法之决策树流程示例详解

    Python人工智能算法之决策树流程示例详解 决策树是一种常用的分类和回归算法,它可以用于解决各种问题例如预测、分类和聚类等。在Python中,我们可以使用Scikit-learn库来实现决策树算法。本文将详细讲解Python中决策树算法的流程,包括数据预处理、模型训练和模型评估等。 数据预处理 在使用决策树算法之前,我们需要对数据进行预处理。数据预处理包括…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部