【2D/3D目标检测】PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud阅读笔记(2019)

1、为什么要做这个研究(理论走向和目前缺陷) ?
基于体素的方法会有信息损失,基于视锥的方法太过依赖2D检测的结果,且不太好应对遮挡问题。
2、他们怎么做这个研究 (方法,尤其是与之前不同之处) ?
提取利用原始点云来做3D框回归的2阶段网络。第一阶段中,首先用pointnet++对每个3D点都生成一个特征向量,然后对每个3D点做前背景分类,同时基于bin的方式回归一个3D候选框。前景点组成的所有3D候选框进行NMS。第二阶段利用第一阶段经NMS得到的3D候选框,进行一定的3D候选框的尺寸拓展,找到拓展后的3D候选框内的所有点,将这些同一个3D候选框内的点的3D坐标进行基于3D框中心点和方向的标准化,标准化后会失去和相机的距离信息,需要再补上一维距离信息,于是标准化的点坐标+距离信息+前背景标签输入到MLP后得到每个3D点的局部特征,连接上第一阶段生成的对应的特征再输入第二阶段网络中,进行和第一阶段类似的3D框精细化回归和分类。
输入到第一阶段网络的原始点云和第二阶段的每个候选框内的点都需要是固定数目的,这里要做随机采样或随机重复。
3、发现了什么(总结结果,补充和理论的关系)?
由于只在前景点上得到3D候选框,因此第一阶段网络召回率非常高,且节省了第二阶段网络的计算量。每个框内的3D点进行标准化非常重要。唯一缺点就是第一阶段网络和第二阶段网络需要分开训练。

摘要
本文提出利用原始点云(而不是体素)来做3D目标检测的两阶段检测方法。第一个阶段利用对原始点云做前背景点分割来生成3D候选框,然后在第二阶段对每个候选区的点云进行坐标系标准化,进行更精细的3D框回归与分类。

1、引言
点云的标注不像图像的标注,点云的3D框标注可以直接拿来做分割,因为框内的点都是前景点,且不同的3D框不会重叠,图像的2D框标注由于含有背景信息并不能直接用来做分割。基于此观察,可以考虑只利用点云分割得到的前景点来初步回归出少量高质量的3D候选框,然后再做精细的回归。这样就可以大大减少计算量。

2、相关研究
基于单目的3D检测:这类方法由于没有深度信息一般都不太准。
基于点云的3D检测
点云表征的学习:体素,多视角,及基于原生点云(PointNet)。

3、PointRCNN
模型架构图
在这里插入图片描述

第一阶段利用pointnet++为每个3D点生成特征向量,基于此特征向量做前背景点分割(focal loss),同时每个3D点都预测一个3D候选框。为每个3D点预测3D候选框时,只对前景点预测的3D候选框计算回归损失。为了限制每个前景点预测3D候选框的范围,首先将每个前景3D点的二维(x-z)临近范围分成不同的网格(bin),预测的3D框有两类不同的损失函数,第一类损失函数用于判断目标中心点处于这些bin中的哪一个以及朝向属于哪个bin(交叉熵损失),第二类损失函数判断用于计算相对这个预测的目标中心点所在的bin的目标的中心偏移和尺寸、中心点高度和相对bin内中心线朝向的偏移(l1损失)。下式为一个点预测目标中心(x,y,z)的预测targets:
在这里插入图片描述

一个前景3D点预测3D框的朝向theta也用了基于bin的损失,即先把朝向范围分成多个bin,先大致确定朝向属于哪个bin,再细致确定朝向相对这个bin中心朝向的偏移。预测3D框的长宽和高,以及中心点的高度时的targets是一个相对预定义的长宽和高,以及中心点的高度的偏差,用的也是L1损失。
所以,总结下来就是一个前景3D点的预测3D候选框时,框中心点在鸟瞰图视角的位置确定用的是基于bin的损失(先粗(交叉熵)后精(L1)),框的长宽高以及中心点的高度确定用的是相对预定义值的L1损失。结合下图理解:
在这里插入图片描述

总的损失表达式如下:
在这里插入图片描述

由于一个目标有多个前景点,每个前景点都预测一个3D框,太多了,故要基于BEV视角下有向的IOU做NMS,训练时保留前300个候选框,测试时保留100个候选框。

3.2 点云区域池化(Point cloud region pooling)
即把上一阶段预测的3D候选区(稍微放大一点)内的点(包含此点的3D坐标,反射率,前背景标签,特征向量)都找出来组合在一起。

3.3 标准3D框回归细化
基于预测的3D候选框的中心点和朝向,对框内的所有的点的坐标做标准化(平移和旋转,如下图所示),标准化后由于缺少了原始点距离自车的距离信息,再补上一维距离信息。
在这里插入图片描述

之后把这些经过标准化的一个3D候选框的点坐标输入到一个MLP生成针对每个点的局部特征,然后生成的每个点的局部特征和第一阶段生成的每个点的特征连接在一块。
第二阶段精细化3D框时跟第一阶段类似,损失函数也基本相同,只是多加了一个分类损失。第二阶段总损失函数:
在这里插入图片描述

4 实验
4.1 实现细节
网络架构:每帧点云随机取16384个点作为第一阶段网络输入,不够的随机重复。对于第二阶段网络,每个3D候选框内随机取512个点进行精细化的3D框的回归。
训练过程:前背景点的确定细节、bin尺寸超参数的选取、正负例候选框的确定细节(基于3D IoU)。另外,PointRCNN的两个阶段的网络是分开训练的。
4.3 KITTI实验结果
测试集上的实验结果,以及在验证集上的消融实验。消融实验结果证明第一阶段网络能搞在很低的候选框数目下实现非常高的召回率。
在这里插入图片描述

4.3 消融研究
下表消融实验结果证明了所提出的候选框3D点坐标的标准化、使用第一阶段生成的点特征向量、候选框点增加深度信息、候选框(略微扩展)点增加分割标签维度的作用,以及3D候选框扩展尺寸大小的影响。
在这里插入图片描述

下图消融实验结果比较了在第一阶段使用所提出的基于bin的3D框回归损失(BB-loss)的作用
在这里插入图片描述

一些可视化结果:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值