文章解读 -- FlowNet3D:Learning Scene Flow in 3D Point Clouds

文章解读 – FlowNet3D:Learning Scene Flow in 3D Point Clouds

参考
1. FlowNet3D: Learning Scene Flow in 3D Point Clouds学习笔记(CVPR2019)
2. FlowNet3D论文阅读
3. FlowNet3D论文学习笔记
4. “FlowNet3D”

一. 摘要

机器人和人机交互技术中的许多应用都受益于动态环境中 3D 运动的理解,广泛称为场景流。虽然大多数以前的方法都专注于立体视觉和 RGB-D 图像,将这些作为输入,但很少有人尝试直接从点云估计场景流。在这项工作中,我们提出了一种名为 FlowNet3D 的新型深度神经网络,它以端到端的方式从点云中学习场景流。我们的网络同时学习点云的深层层次特征和表示点云运动的流嵌入(flow embedding),由两个新提出的针对点云的学习层支持。我们根据来自 FlyingThings3D 的具有挑战性的合成数据和来自 KITTI 的真实激光雷达扫描来评估网络。我们仅在合成数据上进行训练,便成功地推广到真实激光雷达数据,优于各种基线算法,并显示出与现有技术相媲美的结果。我们还展示了场景流输出的两个应用(点云配准和运动分割),以展示其潜在的广泛应用。

二. 介绍

我们提出了一个名叫FlowNet3D的新颖网络,能够端到端的针对一对连续帧点云进行场景流估计。
我们在点云上引入了两个新的学习层:

  • 流向量映射层(flow embedding):学习关联两帧点云,给出flow embedding特征
  • set up conv层:将特征向量从一组点扩展到另一组点(用于升采样获得整个点云场景流数据)

我们展示了如何使用提出的 FlowNet3D, 使用大规模合成数据集(FlyingThings3D)进行训练,并将其应用在KITTI 的真实点云数据集上。与传统方法相比,在 3D 场景流估计方面取得了很大的改进。

三. 问题描述

动态采样的两组3D点云场景,在两个连续的时间帧:P = {xi|i =1, . . . , n1} (点云 1) 和 Q = {yj|j = 1, . . . , n2}(点云 2),其中 xi, yj ∈ R3 是 点云XYZ 坐标。 注意由于物体运动和视角变化,两个点云不一定有相同数量的点或它们的点之间有任何对应关系。
现在考虑一个采样后的真实点坐标xi 在第二帧移动到位置 x′ i ,则该点的平移运动矢量为 di = x′ i - xi。 我们的目标是,给定点云 P 和 Q,恢复第一帧中的每一个采样点的场景流:D = {di|i = 1, . . . , n1}

四. 网络结构

在本节中,我们将介绍 FlowNet3D,这是一种基于点云的端到端场景流估计网络。 该模型具有三个关键模块,分别用来 :

  • (1) 点云特征学习
  • (2) 点云信息混合
  • (3) 点云流上采样

这些模块包含三个关键的深度点云处理层:设置conv层、flow embedding层和设置upconv层。
在这里插入图片描述

4.1 层次点云特征学习

set abstraction = sampling + grouping + pointnet

由于点云是一组不规则且无序的点的集合,传统的卷积不适合。 因此我们遵循最近提出的 PointNet++ 架构,它是一个具有平移不变性的分层学习特征的网络。 虽然设置conv 层 进行 3D 的分类和分割,我们发现它的特征学习层对于场景流任务也很有优势。

该层首先对输入点云进行最远距离采样,得到 n’ 个区域(区域中心为 x′ j),然后对每个区域分组(由半径r指定的邻域),最后使用对称函数提取其局部特征。

4.2 点云信息混合

点云,你没法知道前一帧的采样点到了下一帧是哪一个点,甚至由于采集的稀疏性和遮挡等问题,可能下一帧都没有相同语义的点,所以很难去找到真正对应的点。于是作者提出使用软策略,也就是找一些相似的点,采用投票方法给出场景流估计。

4.3 点云流上采样

引入set upconv layer对结果进行上采样,将部分点的运动信息转化到整个点云上。
本层将 flow embedding 层中的点上采样回原来输入网络的个数,每个输出代表该点的场景流。

猜你喜欢

转载自blog.csdn.net/weixin_36354875/article/details/126096628