您当前的位置: 首页 >  3d

3D物体检测|Fast PointRCNN论文解读

发布时间:2021-04-26 07:00:00 ,浏览量:0

作者丨周威@知乎

来源丨https://zhuanlan.zhihu.com/p/363926237

编辑丨3D视觉工坊

1 前言

前面的相关文章中,我们简单解析了自2017年来相关的3D视觉/点云算法。按照处理点云数据的方式,我们将其分为三类:

分别为

(1)将点云数据空间划分为一个个的Voxel(体素),并利用三维卷积/稀疏三维卷积进行特征提取与RPN。这类方法的不足很明显,首先是该类方法的检测精度取决于体素的大小,体素越小,分辨率越大,预测结果就越准确。但是体素越小就意味着数量越多,那么运算量也会更大,模型速度越慢。(包括以下文章)

https://zhuanlan.zhihu.com/p/352419316;

https://zhuanlan.zhihu.com/p/356892010;

https://zhuanlan.zhihu.com/p/357626425。

(2)将三维点云数据从BEV视角和前视图视角分析。这类方法从BEV的2D点云图中进行特征提取和RPN,获得粗略的候选框。接着利用这些粗略的候选框从前视图视角中进行ROI提取与Pooling。最后进行特征融合和进一步的检测框位置精炼。(包括以下文章)

https://zhuanlan.zhihu.com/p/353955895;

https://zhuanlan.zhihu.com/p/354842740。

(3)基于PointNet系列网络直接对原始点云数据进行特征提取。该类方法一般分为两个步骤,第一步骤往往进行比较粗略的候选框提议,第二步骤进行候选框的位置调整和精炼。(包括以下文章)

https://zhuanlan.zhihu.com/p/336496973;

https://zhuanlan.zhihu.com/p/361973979。

渐渐有种成体系的感觉了哈!

本文要介绍的模型叫做Fast PointRCNN,乍一看觉得是PointRCNN的升级版,但是和PointRCNN差别还挺大的(虽然也有不少共同点)。所以到底Fast PointRCNN是属于上面三类中的哪一类呢?这里留一个悬念,看完这篇文章大家应该就知道了。

该模型的论文地址为:https://arxiv.org/abs/1908.02990

2 模型解析

下面给出该模型的结构图。可见该模型也是一个双阶段的网络,分为(1)VoxelRPN(2)RefinerNet。

这里我们简单回顾下PointRCNN中的网络结构(结构图如下)。

这个网络也是个双阶段的网络,首先是一个基于原始点云特征提取的前景分割和粗略RPN层。

接着作者对每一个proposal,进行Canonical变换和特征提取,实现对每个proposal更精细化的调整。

那么Fast PointRCNN也是这样的吗?

从整体流程来看,两者是相似的,均采用了双阶段的方法进行精细化的候选框提议,且都在第一阶段采用粗略的候选框提议(保证较高的召回率),在第二阶段对粗候选框中的点进行特征提取,实现位置和方向上的调整,获得更精准的候选框。

(1)VoxelRPN

不同的是,PointRCNN在第一阶段太慢了,又是前景分割,又是前景点的RPN回归。索性在FastPointRCNN中,作者直接利用基于Voxel的数据处理方式进行点云结构化,然后利用三维卷积和二维卷积的堆叠实现Voxel特征的提取。

至于为什么使用这种三维卷积和二维卷积的堆叠方式呢?直接用全三维卷积或者二维卷积有什么问题呢?

全三维卷积可以保留Z轴的信息,但是效率会比较低,因为运算量大。

全二维卷积直接就忽略了Z轴的信息了,虽然速度快,但是精度也受到了影响。

所以作者先采用这种“三维卷积-二维卷积”的网络结构,先利用“三维卷积”保留Z轴的信息,然后为了提高效率,采用了"二维卷积”进行特征提取。

实验表明,这种方式确实可以提高效率,而且精度也不会降低。

在基于图片的2D物体检测任务中,通常利用特征金字塔(FPN)的网络结构实现大小不同物体的proposal。YOLO V3的一个特点就是在三个不同尺度的特征图中,分别放置负责检测不同大小物体的预设框Anchor。底层的特征因为感受野小,负责小物体检测,因此放置较小的Anchor。反之,顶层的特征因感受野较大,负责大的物体的检测任务,因此放置较大的Anchor。

受启于此,FastPointRCNN的作者也选择了这样的方式实现了对不同大小物体的同时检测,提出了一种叫做VoxelRPN的网络,实现第一阶段的候选框粗略提议。如下图所示为该网络的结构。

VoxelRPN的网络

该网络可以看成以下三部分(1)三维卷积特征提取(2)二维卷积特征提取与FPN(3)回归和分类分支。

1)三维卷积特征提取

上图灰色区域所示为三维卷积的特征提取块(BLOCK1),该模块接受体素化的点云数据为输入,通过6层三维卷积进行特征提取。这一步的作用上面已经说过了,是为了同步提取X,Y,Z方向的信息。

2)二维卷积特征提取与FPN

上面已经实现X,Y,Z方向的特征提取了。为了提高效率,作者引入了二维卷积进行特征的进一步提取与感受野提升。并且,在提取过程中,作者引出了三个不同感受野大小的特征图输出,并将这三个特征图进行缩放和堆叠,实现特征融合。

3)回归和分类分支

上述融合的特征被进一步作为回归和分类分支的特征输入。和其他RPN层一样,在VoxelPRN层中作者也使用了这两个分支实现对候选框的初步筛选。其中,回归分支的训练采用了Smooth L1损失,分类损失采用了Binary交叉熵。

有关Positive Anchor和 Negative Anchor的设置,在VoxelRPN层是这样的,作者提到

In VoxelRPN, the anchors spread on each location of the global feature map. One anchor is considered as a positive sample if its IoU with ground-truth is higher than 0.6 in BEV. The regression target is the ground-truth bounding box with the highest IoU value. One anchor is considered as negative if its IoU value with all ground-truth boxes is lower than 0.45

至此,有关VoxelRPN部分就讲解完毕了。

(2)RefinerNet

在第一阶段(也就是VoxelRPN)中我们获得了一些粗糙的候选框,虽然这些候选框的位置和方向精度有限。但是仍然保证了较高的召回率(就车辆而言,召回率达到了95%)。当然了,只有召回率合格,这样的二阶段研究才有意义。

作者将第一阶段中检测出来的3d-box投影到原始点云的BEV上,找到box内的原始点云,对这些点通过坐标映射,找到对应的box feature,这样,每一个点都有自身的坐标属性(x,y,z,i)以及其所对应的经过“三维卷积-二维卷积”编码之后的特征C。

关于这个坐标映射和特征c,我是这么理解的。假设某一个点在X,Y方向上的坐标为  以及VoxelRPN的特征图F为  ,其中  为尺度维,  为通道维。

那么该点通过坐标映射,在特征图上的位置为  , 其中 为  方向的范围。那么这个位置对应的特征  也就是该点对应的特征图特征了。

RefinerNet的输入有两个,分别为坐标属性以及特征C。和 PointRCNN中类似,在输入到该RefinerNet前,坐标点被Canonize了,目的就是保证平移不变形。

具体的RefinerNet结构如图所示。

为了融合从坐标点转换的高维特征(128维度)以及VoxelRPN输出的卷积特征C,作者没有直接采用简单的堆叠,而是采用了一种Attention的结构进行融合。

也就是将特征C转换为Attention分布,调整“高维特征与卷积特征C融合”后的特征分布。该方法获得了较简单堆叠融合更高的检测精度。

至此,RefinerNet也讲完了。

3 总结

本文,我们已经解析了Fast PointRCNN的网络结构和一些细节。Fast PointRCNN要比PointRCNN更好理解。因此,本文仅基于论文阅读后的随笔记录(并未看具体代码实现),如有理解不到位的地方,欢迎批评指正,十分感谢!

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    109769博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0486s