《论文阅读》PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection

留个笔记自用

PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection

做什么

3D object detection。3维目标检测
在这里插入图片描述
对于输入的3D点云,像2D一样使用一个bounding box去将相应的物体包围起来,不过这里使用的bounding box也同样变成了3维的

做了什么

在这里插入图片描述
本文将=Voxel-based的方法和Point-based的方法优缺点结合了起来,包括体素到关键点的3D场景编码和关键点到网格的RoI特征提取

怎么做

在这里插入图片描述
整体结构分为三个部分, 3D Voxel CNN for Efficient Feature Encodingand Proposal Generation(EP)部分,Voxel-to-keypoint Scene Encoding via Voxel Set Abstraction(VTK)部分,Keypoint-to-grid RoI Feature Abstraction for Proposal Refinement(KTG)部分
首先是EP部分
输入的原始点云定义为P,这里首先是老样子需要一个feature extractor。首先先将P分割成多个小的voxel,voxel的分辨率是L×W×H,非空的voxel的特征就由该voxel内所有的平均得到。
在这里插入图片描述
这里的feature extractor由多个3×3×3的3D sparse卷积组成就是稀疏卷积,前一篇了解过
稀疏卷积
然后就是将3D特征映射成2D特征鸟瞰图,高度变为通道,然后使用每个cell每个类别设置两个anchor,角度分别为0和90度。
在这里插入图片描述
在这里通常就使用3D特征和2Dgrid合并ROI特征,但这里存在一个问题,3D特征的分辨率往往都比较低,最多只能支持下采样8次,不然整体的分辨率较低会影响定位
于是这里就提出了最主要的两个步骤,首先将整个场景不同层的voxel编码为关键点,然后将关键点特征聚合到ROI网格中进行框优化
所以接下来就是VTK部分
首先是第一步骤,关键点采样,这里采用的是 Furthest Point-Sampling(FPS)采样的方法
在这里插入图片描述
简单来说就是很简单,取一个随机点,然后取与这个点距离最远的点,以此进行迭代
在这里也展示了FPS的结果👇
在这里插入图片描述
然后是Voxel Set Abstraction(VSA)模块,这个模块的作用是将多层次的voxel特征关键点编码
在这里插入图片描述
这里定义在这里插入图片描述
为上面的多层3D CNN中第k层的每个voxel的特征向量集合
在这里插入图片描述
上下一一对应👆
然后定义一个voxel的3D坐标索引
在这里插入图片描述
这里面上下两个Nk均表示非空voxel的个数(第k层中)
对于每个关键点pi,首先在第k层中找到它半径rk范围内的非空voxel邻居
在这里插入图片描述
这里的意思是将局部相对坐标v-p。也就是上面的非空voxel的位置到关键点p的距离和指示该voxel的特征concatenate到一起,当然选中的voxel是由半径范围rk来限制的
然后由这个S来得到该关键点pi的规范特征
在这里插入图片描述
这里的M表示从相邻集合中随机采用最多Tk个voxel,G表示一个多层的网络,这里甚至还设置了多个不同的半径rk来获得不同大小视野的信息
将每层也就是每个3D sparse CNN得到的特征融合在一起
在这里插入图片描述
这样,我们就得到了一个多尺度且包含了索引位置信息的上下文特征f(pv)
在这里插入图片描述
最后
在这里插入图片描述
这里的fpv为刚刚得到的key point的特征,fraw为原始点云通过同样的计算方法得到的👇(但仅仅只有单尺度)
在这里插入图片描述
最后是fbev是二维鸟瞰图的特征,最后得到的fp将具有很强大的保存三维信息和局部信息的能力
然后是这个部分的第二个模块,PKW预测关键点加权模块,简单来说就是在整个场景通过少量关键点编码后,需要进行进一步的选择优化。利用来自点云分割的额外监督来重新加权关键点特征,分割标签可由3D检测框注释直接生成,即检查这个关键点是否处于GT的3D bounding box内
在这里插入图片描述
A是一个三层MLP来得到attention的,然后使用focal loss来训练它,这里主要是为了区分每个点的特征是前景还背景
在这里插入图片描述
在这里插入图片描述
到此,我们有了Proposal和n个点的坐标和对应的feature。
然后就是第三部分,KTG部分
在这里插入图片描述首先,先将上面得到的对应特征concat起来,然后就可以ROI特征编码了,对每个刚刚得到的3D proposal可以sample6×6×6的grid。分格后
在这里插入图片描述
像前面那样定义一个邻域,这里的p-g的意思也同样,p是keypoint,g是和p距离小于设定半径r的其余点。f就是关键点的proposal feature。一样将他们两个concatenate起来后,我们就能得到它的特征信息和它的坐标信息。
在这里插入图片描述
然后也是同样的方法对它进行
跟上面的在这里插入图片描述
计算方法是一样的,同样也设置了多个r为了使它能拥有多尺度的感受野。最后还是concatenate在一起,得到cell的最终特征。所有的ROI特征再经过一个两层的MLP后使特征整个向量化,作为最后的overall proposal。文中说这样设置proposal的好处是能更好的捕获关键点周围的特征,同样也是多尺度的操作。
在这里插入图片描述
得到了ROI特征后,接下来使用一个refinement net来学习它的大小和位置,这里使用的是一个两层的多branch的MLP
在这里插入图片描述
首先是左路Confidence路,借鉴了以前别的论文的做法,这里采用了3D IOU的方式来对GT和3D ROI作为训练方式
在这里插入图片描述
其中,IOUk是对第k个ORI和GT的IOU计算,至于IOU计算就是非常常见的交叉区域的那种
在这里插入图片描述
也就是定义了一个IOU loss在这里插入图片描述
这里的yk就是预测的分数,也就是前面定义的那个yk
然后是另外一条路box refinement
这里文中说就是用的传统的方法,然后使用L1 loss来进行的训练
最后就是整个模型的LOSS部分,分为两个部分
在这里插入图片描述
首先是这个模块的训练LOSS
在这里插入图片描述
这里的Lcls就是常见的focal LOSS分类损失。smooth-L1损失是用于box回归的。至于Δa~是预测的残差,Δr是target
然后是第二个模块的LOSS
在这里插入图片描述
在这里插入图片描述
Δr~是预测的box残差,Δr是proposal的target,这两者的编码方式和上面的相同

总结

1.不愧是排行榜第一的论文。。工程量实在巨大,各种多尺度,各种结合,将两种方法优缺点互补

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值