点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
本文是一篇来自Carnegie Mellon大学和Argo AI的合作工作,目前已经被CVPR20接收(oral),该文的主要内容是基于点云的3D目标检测,与以往的研究内容不同的是,本文基于观察发现在BEV视图中无法区分free和unknown区域,如下图中(a)展示的两个红色框所示,在BEV看上去都是不包含点的free space。但是假如通过lidar的扫描的激光对该图重新绘制如图(b),其中绿色表明为激光扫描到的区域,白色为未知的区域,即白色是被前景物体所遮挡的区域,而绿色是真正被扫描到的,因此,我们可以得到的信息是左边的红框区域表示的是未知,而右边实际上是真正的freespace。因此本文的作者正是利用freespace的信息来提高检测精度。
文章地址:https://arxiv.org/pdf/1912.04986.pdf
笔者认为,本文主要上面所述的这样一个观察,认为free-space 和unknown的信息是可以可用特征信息加入到深度学习网络中去的,因为目前的深度学习网络在BEV条件下并无法区分unkown和free-space信息,作者据此观察构建了visiblitymap,并采用pointpillars 为baseline,采用了多种融合策略及数据增广方式,最终实验表面在Nuscenes上的效果提升不少。证实了这种观察的有效性。如下是可视化的实验效果。
视频演示如下:
正如在引言中介绍到的内容,本文针对实时的lidar sweep数据的遮挡特性,表明这种2.5D的数据实际上只能采集到最表面的点,对该点之后的点实际上是存在遮挡问题的;文中表述为“once a particular sceneelement is measured at a particular depth, visibility ensures that all otherscene elements behind it along its line-of-sight are occluded”。这也是对于3Dsensor得到的数据可以采用二维结构表达的原因,实际上表示为2.5D数据更为准确。
文中指出,在很多任务中,如map-building和自动驾驶导航任务中,visibility是很重要的内容;但是在目标检测中还没有文章挖掘这一信息作为指导信息,以此来提高检测的精度。所在本文作者表示可以简单的修改深度学习架构和加入数据增广策略来实现在3D检测中对free space信息的探索。因此本文作者在目前的sota的voxel-based的方法中加入了visiblity 信息
在介绍结构前之前,作者列举了很多的目前的方法,指出这些方法有两个主要的创新,其中一是采用了Object插入到训练场景中的数据增广方法,二是融合了多帧的特征。作者也将在这两种方法上和自己的方法做对比研究。其实按照笔者的理解,多帧融合实际上可以达到3D重建的效果,也就有了作者本文提到的free space和unknown space可区分的效果。就本文的创新而言为:
1.作者首先引入了一种高效计算visibility的方法,称作raycasting algorithm
2.将上得到的visibility和当前的深度学习网络结构融合
3.1 本文的结构
如下,这里的网络结构和设计和之前voxel-based的方法是一样的,具体的流程可以表示为两部分,即predefined 3D anchors和网络结构
1.左图表示的是voxel-based方法常用的anchor-based的方法,即是对每一类的object,在BEV平面上按照一定的距离设定anchor box,其中有多少类别,anchor的数量就成线性增长,所以在19年的文章OHS和今年CVPR20的3D -SSD都采用了anchor-free的方法来减少显存消耗。
2.右图则是标准的目前的voxel-based的方法,首先从 point sweep中采用3D稀疏卷积使得高度降为1,再采用2D卷积对3D anchor box进行回归和分类。
前文说到,本文的数据增广方式主要研究对SECOND提出的“从gt base中抽取object插入到训练场景进行数据增广”,在后续的消融实验中会展示改进的效果,实验显示提高了9.1%。同样对于多帧融合,本文中同样采用了多帧融合配准,使得输入信息多一个维度表示为(x,y,z,t),实验显示最终的结果可以提高+8.6%。
前文中提到,本文通过增加了一个Visibility map信息使得检测精度得到提升,这里着重介绍如何计算该Visibility:
1.我们都知道,激光雷达朝某一个方向发射激光后,遇到物体表面反射被接收,通过激光飞行时间TOF可以计算出返回点,也就是物体表面点的位置信息。
2.作者的Visibility的方法实际上就是很直观的方法:根据point和lidar的位置,我们可以连接该两点在空间中形成一条线,该线穿过的voxel都被标记为free-space,点存在的voxel被标记为occupied,其余的则是unknown(default).在实现中,则是从最开始的voxel出发,计算从哪个面穿出该voxel,则下一个被考察的voxel就是和这个voxle共享这个接触面的voxel,直至到达最后的点结束。可以表示为下面的伪代码过程:
和上述的算法思路一致,只需要把最后的终止条件由到达end更改为遇到BLOCKED即为终止,也就是说,被增广进来的点云数据实际上是被当做BLOCKED处理。如下图所示的内容,这里的(a)表示的是原始场景,(b)是插入增广后的物体但是不加任何处理的,可以明显的看到,在墙的后面是存在一个被遮挡的object的,这是不符合常理的。因此在(c)中采用了符合常理的做法,即是把被遮挡的object删除,但是这样可能带来的问题是插入的object可能都被删除,因此正确的做法是删除前面遮挡的墙体,如图(d),这就是是上文中所说的遇到BLOCKED才结束。
上文的计算voxel 的Visibility仅仅计算了单帧的Visibility,对于连续的sweep,一个简单的想法就是,既然我们知道初始传感器的位置,我们就可以对所用帧都当做单帧处理,但是这类方法会造成比较大的time cost,作者采用了贝叶斯滤波对连续帧的visibility map就行预测。如下图所示,左图分别表示了单帧sweep的俯视图和对应的visiblitymap,其中红色表示标记为occupy,蓝色为freespace,灰色为unknown;图(b)则表示了采用贝叶斯滤波预测的多帧的点云俯视图和对应的visiblity,这里对于每一个vxole,越红则表示被占据的可能性就越大。
如下图所示,作者选择的融合方式有early fusion和late fusion,实际上也就是在原始信息上融合和语义特征上融合的区别。
这里介绍一下本文使用的backbone,为19年CVPR的Pointpillars,网络结果如下,该文章是在voxelnet的基础上改进的,将voxelnet 的voxelnet划分为了pillar,因此可以直接省略掉3D CNN的部分,同时做到的精度不下降。
如下图,作者在nuscence benchmark上进行实验,效果如下,可以看出在大部分的情形下相对baseline,都得到了不少的提升。
同样在val数据集上得到验证效果如下:
如下图所示,针对fusion的方式、对增广object的处理方式,已经多帧融合等做了如下的消融实验,综合起来“early+drilling+multi-frame”的实验效果是最好的。
本文是基于观察,发现在目前的SOTA的方法中,并没有利用freespace的信息,从而根据这个观察对baseine网络添加了对应的visilitymap;本文在nuscenes上进行实验,消融实验做的很充分;和之前很多的文章不同的是,这一篇文章的出发点不是对网络结构中的问题的改进,而是对实际中忽略的信息的观察。同样笔者认为这一篇文章和今年其他做3D检测文章对比起来,更加的接近工程和底层,利用了更加基础的信息丢失,但是同样可以思考到,对于pillar本身是丢失了深度信息的,而同样lidar扫描是具有一个角度的,我们是否可以将此信息同样利用起来?此外,笔者认为这样的一个free-spce采用voxel的表示方法,重点在这样可以对free-spce的信息表示出来,而如果采用point-based的方法,则不知到应该怎样将free-space的信息附在Point中。
上述内容,如有侵犯版权,请联系作者,会自行删文。
推荐阅读:
吐血整理|3D视觉系统化学习路线
那些精贵的3D视觉系统学习资源总结(附书籍、网址与视频教程)
超全的3D视觉数据集汇总
大盘点|6D姿态估计算法汇总(上)
大盘点|6D姿态估计算法汇总(下)
机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划
汇总|3D点云目标检测算法
汇总|3D人脸重建算法
那些年,我们一起刷过的计算机视觉比赛
总结|深度学习实现缺陷检测
深度学习在3-D环境重建中的应用
汇总|医学图像分析领域论文
大盘点|OCR算法汇总
重磅!3DCVer-知识星球和学术交流群已成立
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,830+的星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
欢迎加入我们公众号读者群一起和同行交流,目前有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加群或投稿