PointINet: 一种新型点云插帧网络
本文译自:
摘要:受硬件性能的限制,激光雷达点云流在时间维度上通常是稀疏的。通常,机械激光雷达传感器的帧率为10到20 Hz,这远低于其他常用的传感器(如相机)。为了克服激光雷达传感器的时间限制,本文研究了一种名为点云插帧的新的任务。给定两个连续的点云帧,点云插帧的目的是在它们之间生成中间帧。为此,我们提出了一种新颖的框架,即点云插帧网络(PointINet)。基于所提出的方法,我们可以将低帧率点云流上采样到更高的帧率。我们首先估算两个点云之间的双向3D场景流,然后根据3D场景流将它们转换到给定的时间步长。为了融合两个变换的帧并生成中间点云,我们提出了一种新颖的基于学习的点融合模块,该模块同时考虑了两个变换的点云。我们设计了定量和定性实验来评估点云插帧方法的性能,并且在两个大型室外LiDAR数据集上进行的广泛实验证明了所提出的PointINet的有效性。我们的代码发布在了https://github.com/ispc-lab/PointINet.git上。
关键词:超像素,平面特征,RANSAC
1 引言

基于以上考虑,本文研究了一个名为 "点云插帧 "的新型任务。给定两个连续的点云,点云插帧的目的是根据给定的时间步长预测中间点云帧,形成空间和时间上相干的点云流(见图1)。因此,基于点云插帧,可以将低帧率的激光雷达点云流(10~20 Hz)上采样为高帧率的点云流(50~100 Hz)。
具体来说,为了实现点云流的时空插值,我们提出了一种新型的基于学习的框架,称为PointINet(点云插帧网络)。我们提出的PointINet主要由两部分组成:点云变换模块和点融合模块。首先将两个连续的点云输入点云变换模块,将两个点云变换到给定的时间步长。为此,我们首先估计两个连续点云之间的双向三维场景流以进行运动估计。3D场景流代表了从一个点云到另一个点云的运动场。这里我们采用名为FlowNet3D的基于学习的场景流估计网络来预测3D场景流。然后根据线性插值的3D场景流,将两个点云变换到给定的时间步长。此后,关键问题是如何将两帧融合,形成新的中间点云。3D点云是非结构化且无序化的。因此,两个点云中的点之间并不像两幅图像中的像素那样存在直接的对应关系。因而,要对两个点云进行融合是非易事。为了解决这个问题,我们提出了一种新的点融合模块。该点融合模块自适应地对两个变换点云中的点进行采样,并根据时间步长为每个采样点构建k最近邻(kNN)聚类,以调整两个点云的贡献。之后,我们提出的注意点融合采用注意机制将每个聚类中的点聚集起来以生成中间点云。所提出的PointINet的整体架构如图2所示。
为了评估该方法,我们设计了定性和定量实验。 此外,还进行了应用实验,以评估生成的插值点云的质量。在两个大型室外激光雷达数据集上进行的大量实验证明了所提出的PointINet的有效性。
· 为了克服激光雷达传感器的时间限制,研究了一种新颖的任务——点云插帧。
· 提出了一种名为PointINet的基于学习的新框架,以有效地生成两个连续点云之间的中间帧。
· 通过定性和定量实验,以验证所提出方法的有效性。
2 相关工作
在本节中,我们简要回顾与点云插帧有关的文献。 我们从描述视频插帧的常用方法开始,然后回顾点云的3D场景流估计方法。
视频插帧
当前,大量视频插帧方法基于光流估计。基于光流的方法最具代表性的工作之一是Super SloMo,它利用基于学习的方法来预测双向光流来估计连续帧之间的运动。然后,将两个输入帧进一步变换并与遮挡推理结合以生成最终的中间帧。Reda et al. 利用循环一致性来支持视频插帧的无监督学习。Xu et al.提出了一种二次视频插值方法来利用视频中的加速度信息。视频插帧方法的另一部分是基于内核的(Niklaus, Mai, and Liu 2017a,b)。(Niklaus, Mai, andLiu 2017a)估计每个位置的内核,并通过对补丁进行卷积来预测输出像素的位置。Niklaus, Mai, and Liu 2017b通过使用一对一维内核将插帧公式化为输入帧上的局部可分卷积来进一步改进了该方法。最近,(Bao et al. 2019)结合了基于核和光流的方法。他们利用光流来预测像素的大致位置,然后使用估计的核来完善位置。
3D场景流估计
点云的3D场景流可以看作是3D场景中2D光流的推广,它表示点的3D运动场。与研究者对2D光流估计的高度研究兴趣相比,关于3D场景流估计的工作相对较少。FlowNet3D是基于深度学习的3D场景流估计的开创性工作。(Liu,Qi, and Guibas 2019)提出了一个流嵌入层,以对不同点云中点的运动进行建模。在FlowNet3D之后,FlowNet3D ++提出了几何约束来进一步提高精度。HPLFlowNet在场景流估计中引入了双边卷积层(BCL)。PointPWC-Net提出了一种新颖的成本方法,并以从细到精的方式估算了3D场景的流量。最近,(Mittal, Okorn, and Held 2020)提供了几个不受监督的损失函数,以支持在更真实的数据集上推广预训练的场景流估计模型。在我们的实现中,由于简单性和有效性,我们选择FlowNet3D在两个点云之间执行3D场景流估计。
3 点云插帧

在本节中,我们首先介绍了所提出的点云插帧网络(PointINet)的整体架构,然后详细介绍了PointINet的两个关键部分,即点云变换模块和点融合模块。
架构总览
PointINet的整体架构如图2所示。给定两个连续的点云P0和P1,时间步长t∈ (0,1),PointINet的目标是预测时间步长t中的中间点云。PointINet由两个关键模块组成:点云变换模块将两个输入的点云变换到给定的时间步t,点融合模块将两个变换的点云进行融合。下面我们将详细介绍这两个模块。
点云变换
给定两个点云P0和P1,点云变换模块旨在预测P0中每个点在的位置,其中是P0的在时间步长t对应的点云(对于点云P1我们也预测)。这里的关键是估计每个点从P0到











点融合模块的目标是将两个变换的点云进行融合,生成中间点云。点融合模块的架构显示在图2的右栏中。该模块的输入是两个变换的点云



点融合模块的第一步是将两个变换的点云合并成一个新的点云。直观上,两个点云对中间点云的贡献并不总是相同的。例如,在t=0.2时的中间帧






我们将











注意点融合 注意力机制在3D点云学习中已经得到了广泛的应用。在这里,我们采用注意机制来聚合相邻点的特征来生成中间点云的新的点。注意力点融合模块的网络架构可参见图3。受PointNet和PointNet++的启发,我们将单个聚类的特征Fi输入共享多层感知器(Shared-MLP)以生成特征图。然后应用后续的maxpool层和Softmax函数对聚类中的所有邻点预测一维注意权重Wi=

。之后,新点




倒角距离通常用于测量两个点云的相似度。在这里,我们利用倒角距离来监督所提出的PointINet的训练。给定生成的中间点云



4 实验
我们进行定性和定量实验,以证明所提出的方法的性能。 此外,我们还在两个应用上(例如,关键点检测和多帧迭代最近点(ICP))进行了实验,以更好地评估生成的中间点云的质量。
数据集
我们在两个大型室外LiDAR数据集(即KITTI里程表数据集和nuScenes数据集)上评估了该方法。KITTI里程表数据集提供了11个具有地面真实性的序列(00-10),我们使用序列00训练网络,使用01进行验证,而使用其他序列进行评估。NuScenes数据集包含850个训练场景,我们使用前100个场景进行训练,其余750个场景进行评估。由于缺乏高帧速LiDAR传感器,我们简单的将KITTI里程表数据集中的10 Hz点云下采样为2 Hz,将nuScenes数据集中的20 Hz点云下采样为4 Hz,用于训练和定量实验。因此,在降采样点云流的两个连续帧之间有4个中间点云。
实施细节
我们首先在Flythings3D数据集上训练FlowNet3D,然后在KITTI场景流数据集上优化网络。我们直接使用(Liu, Qi, and Guibas 2019)预处理的数据来训练FlowNet3D。然后,我们分别在KITTI里程表数据集和nuScenes数据集上分别完善预训练的FlowNet3D。在此过程中,将当前帧与前后Ns帧内随机选择的帧作为训练对。然后,以预测的场景流将第一帧变换到第二帧,并使用变换点云和第二点云之间的倒角距离(请参见公式4)损失函数进行监督FlowNet3D的完善。之后,在训练随后的点融合模块时,FlowNet3D的权重是固定的。在训练点融合模块的过程中,将两个连续的帧和来自4个中间点云的随机采样帧以及相应的时间步长用作训练样本。我们在训练期间将点云随机降采样为16384点,并且在我们的实现中将相邻点的数量K设置为32。注意点融合模块中Shared-MLP的层的通道设置为[64,64,128]。所有网络均使用PyTorch实现,而Adam被用作优化器。此外,点融合模块仅在KITTI里程表数据集上进行训练,我们仅将训练后的模型推广到nuScenes数据集进行评估。

定性实验
提出的PointINet的目标是从低帧率的流生成高帧率的激光雷达流。但是,没有现有的高帧率LiDAR传感器。因此,我们用Ns= 1训练FlowNet3D,以便为更近的点云提供适当的场景流估计,然后将在降采样点云流上训练的点融合模块直接应用于KITTI里程表数据集的10 Hz点云流上以生成高帧速率点云流。在这里,我们在图4中提供定性可视化,其中此处的点数设置为32768。10Hz点云流被上采样到40 Hz,中间帧的时间步长设置为0.25、0.50和0.75。根据图4,提出的PointINet很好地估计了两个云之间的点的运动,并且融合算法可以保留点云的细节。除此之外,我们还在补充材料中提供了一些演示视频,以比较高帧率点云流和低帧率点云流。根据演示视频,高帧率点云流在时间和空间上明显比低帧率点云平滑。
定量实验
评价指标 我们使用两个评估指标:倒角距离(CD)和推土机距离(EMD)来评估降采样点云流上生成的点云与地面真实云之间的相似性和一致性。CD先前在等式4中进行了描述。EMD也是比较两个点云(Weng et al. 2020)的常用度量,其是通过解决线性分配问题来实现的。给定两点云




表1 在KITTI里程表数据集上对PointINet和其他基线进行定量评估的结果


提议的PointINet的CD和EMD以及KITTI里程表数据集和nuScenes数据集上的其他基线分别显示在表1和表2中。根据结果,我们的方法的性能明显优于其他基准。例如,建议的PointINet的倒角距离约为KITTI里程表上一致性方法,对齐ICP方法和场景流方法的 1/3 ,3/5 和2/3。值得注意的是,我们的方法明显优于场景流方法,这也反映了点融合模块的有效性。注意,我们仅在KITTI里程表数据集上训练点融合模块,而在nuScenes数据集上的结果也证明了网络的泛化能力。
应用
为了更好地评估生成的中间点云的质量以及与原始点云的相似性,我们在插值点云流和原始点云流上测试了两个应用的性能,即关键点检测和多帧ICP。我们首先分别将KITTI里程表数据集中的10 Hz点云和nuScenes数据集中的20 Hz点云分别下采样到5 Hz和10 Hz,然后将它们作为内插点云流内插到原始的帧率。比较了两个不同点云流上两个应用程序的结果,以验证所提出的PointINet的有效性。
表3 KITTI里程表数据集上原始和插值点云的3个不同关键点的可重复性

我们在两个点云流中执行3D关键点检测,并评估检测到的关键点的可重复性。我们选择了3个手工制作的3D关键点,即SIFT-3D,Harris-3D和ISS。使用PCL中的实现提取所有关键点。如果点云中的一个关键点到另一个点云中最近的关键点的距离(在基于地面真相姿势进行刚性变换之后)在阈值δr(δr设置为0.5 m)之内,则该点被视为可重复。在此,可重复性是可重复关键点的比率。我们计算当前点云中关键点在前后5帧中的平均可重复性,并将关键点的数量设置为256。由于nuScenes数据集中缺少每帧地面真相姿势,因此关键点检测实验为仅在KITTI里程表数据集上执行,其结果显示在表3中。根据结果,与原始点云流相比,插值点云流的可重复性仅稍有降低。例如,插值点云的Harris-3D的可重复性仅比原始点云的可重复性低0.017。结果从侧面反映了生成的中间点云与地面真点云的高度一致性。
表4 KITTI里程表数据集上原始点和内插点云流的多帧ICP性能。


根据这两个应用的实验,由于所提出的插值方法可能存在误差,因此在插值点云上算法的性能略逊于原始点云流。尽管如此,这两个应用程序的紧密性能证明了生成的点云与原始应用程序具有高度的相似性和一致性。
表6 PointINet及其组件针对不同数量的点的运行时间(ms)。


在配备NVIDIA Geforce RTX 2060的PC上评估了拟议的PointINet的效率,并在表6中显示了为包含16384、32768和65536点的点云生成一个中间帧的平均运行时间。根据结果,大多数运行时都用于变换点云,并且所提出的点融合模块需要相对较少的时间进行计算。然而,由于用于融合的每点计算,用于点融合模块的计算时间随着点的数量而增加。总体而言,建议的PointINet可以有效地生成中间帧。
消融实验
自适应采样
我们通过简单地随机采样两个变换点云中一半的点以形成一个新点云作为自适应kNN集群模块的输入来代替自适应采样策略。结果显示在表7的第二行中。根据结果,在不进行自适应采样的情况下,CD和EMD分别增加了0.123和8.54,这表明自适应采样策略显着提高了性能。
自适应kNN聚类
我们从两个变换的点云中固定地查询 K / 2 个邻居点,而不是根据时间步长 t 来查询点。根据表7第三行中显示的结果,没有自适应kNN聚类的CD和EMD分别从0.457增加到0.534,从39.46增加到41.66。结果证明了自适应kNN集群模块的有效性。
注意点融合
为了演示注意点融合模块的效果,我们直接使用自适应采样中的点云作为中间点云,并将结果显示在表格7的底行中。根据结果,注意点融合模块明显提高了最终性能。
5 结论
6 道德声明
提出的点云插帧方法可能对无人驾驶和智能机器人的发展产生积极影响,可以减轻驾驶员和工人的工作量,并减少交通事故的发生。 但是,这种发展也可能导致驾驶员和工人失业。此外,所提出的方法可能具有潜在的军事应用,例如军用无人机,可能会威胁到人类的安全。我们应该探索更多可以改善人类生活而不是有害生活的应用。
7 致谢
这项工作由中国国家自然科学基金( No. 61906138),欧盟根据特定拨款协议第945539号达成的Horizon 2020研究与创新框架计划(人脑计划SGA3)和 2 018上海AI创新发展计划资助。
参考文献:



编辑推荐
最新资讯
-
GB/T 44156-2024对后方交通穿行提示系统RCT
2025-02-24 08:29
-
联合国R46法规对电子后视镜CMS的要求
2025-02-24 08:29
-
电驱减速箱 NVH 分析及优化案例
2025-02-24 08:27
-
Elonroad在加拿大测试卡车轨道充电技术
2025-02-24 08:25
-
日本测试高速公路“自动驾驶优先车道”
2025-02-24 08:22