论文阅读:Deep MANTA: A Coarse-to-fine Many-Task Network for joint 2D and 3D vehicle analysis

这篇论文是在2017年3月22日发表在CVPR上的,作者在这篇论文中提出了一个叫做深度从粗糙到精细化的多任务卷积神经网络(Deep MANTA),该模型可以用于对一张图片中的车辆进行多任务的分析。该网络同时执行的多任务包括:车辆检测、部件定位、可见性描述和三维形状位置和方向估计。整个架构是用一种新颖的从粗糙到精细化的候选区域提取的深度网络,类似于候选区域生成网络(RPN),但是基于此进行了改进。另外,该方法能够定位车辆的一些重要特征部位,即便这些部位可能是不可见的。
在推断阶段,通过一个实时的匹配估计算法利用该网络的输出进行较精准的方向估计和三维车辆定位。
最后作者通过KITTI数据集验证了该模型比其他优秀的单摄像头算法更优秀。

1. 引言

由于CNN的出现,很多对二维目标检测和定位的模型不断涌现,但是这篇文章能够通过单个摄像头同时得到2D和3D的车辆分析结果。对于自动驾驶来说,能够很好的理解周边的交通状况并对紧急状况作出提前预判是非常重要的。另外,如果不仅仅是知道车辆所在的位置,还能知道它各个部件的位置(比如方向盘在哪儿?保险杠在哪儿?备胎在哪儿?等等),这对于无人驾驶去理解整个交通环境就会是很有帮助的。因此,我们需要判断车辆的各个重要部件是否可见?是不是被自身部件遮挡住了?被其他物体遮挡住了?还是超出了图片范围的?作者就此提出一个方法,在给定一张交通图片的时候,预测出以下6点:

  • 2D车辆检测
  • 车辆重要部件定位
  • 车辆重要部件的可见性
  • 车辆方向判断
  • 3D定位
  • 3D模板相似度

请看下图

模型输出图例

  1. 首先,作者能在原图中用bounding box圈出2D的车辆目标
  2. 图中每个被圈出来的车辆里面用不同颜色的点标记出相应的特征部件是否可见(如红色表示从这个角度可见,绿色点表示被其他不属于该车辆的物体遮挡住了,蓝色表示被该车辆自身挡住了,当然还有可能有第4种情况就是该特征部件可能不在该图中,后面论文有说到一共分成4种结果)
  3. 再看下半部分的图,蓝色的多边形是摄像机的位置
  4. 3D的车辆定位也是用立方体红框框标记出来了,对应的特征部件也用4种颜色的点点标记出来了(注意这里的视角是以摄像机位置为参照物的)
  5. 3D模板的输出这里没有明示,后面有说明。

Deep MANTA方法的三个突出贡献点

  1. 用车辆的一些特征部件点的位置信息来表示整个车辆的3D信息。因为车辆是刚体,有比较确定的形状的,作者推测可以从单张图片上推断出相应的车辆的3D信息。这些特征部件是怎样确定的呢?用回归方法。作者用了2个数据集,一个就是原始图片的训练数据集,但是标记出了每一个车辆的3D标定框。另外一个数据集是M=103个汽车模型,每个汽车N=36个特征部件的3D CAD数据。通过最后预测出来的3D框,和CAD数据集的3D框计算相似度来选出最有可能的汽车模型m,和相应的位置映射关系,那么就可以在图中计算出相应的特征部件的2D信息,以及这些点是否可见。
  2. 第二个突出贡献就是提出了Deep MANTA网络,正如之前摘要所述,它能够同时进行多任务预测输出。首先,该网络是借鉴了Region Proposal Network,同样预测出很多个比较粗糙的anchor box,只不过作者继续对这些box迭代2次,通过另外2个子网络进行计算,得出精细化的box。另外,该网络能同时预测多个任务,这就意味着同样的特征向量可以被用于多项任务,之间并无冲突。
  3. 第三个突出贡献就是前面第一点后半段提到过的这种标记方式。因为大家都知道深度学习依赖于大量的样本数据和标记信息。而作者通过一种被称为半自动标注的方式对图中的3D框的车辆的其他信息进行标注,这样就节省了非常多的人工劳动。

2. Deep MANTA方法介绍

  1. 输入图像经过Deep MANTA网络,输出相应的2D的带有分值的边框,车辆特征部件坐标,3D的模板相似度向量和可见性等信息。
  2. 推断过程:使用前面Deep MANTA网络的输出内容和3D CAD数据来恢复车辆3D的方向和坐标等信息。

2.1 3D形状和模板数据集

作者使用了有M = 103个汽车模型(如SUV,小轿车等)的数据,每个汽车模型被标记出N=36个特征部件的3D坐标。每一个汽车模型m在cononical视角下被表示为一个长度为N的向量,其中每一个值是该特征部件位置的3D坐标,如:

S¯3dm=(p1,p2,...,pN)

其中
pk=(xk,yk,zk)

是对应的第k个特征部件的3D坐标。
除了上面这个向量以外,对于每一个汽车模型,还有一个叫做3D模板的三元组,描述了该汽车模型对应的宽高长信息:
t¯3Dm=(wm,hm,lm)

参看图2,有相应的展示:

3D模型

如图,第一行是汽车模型在统一视角下的图例,第二行是相应的3D模板(宽高长)方框,第三行是每一个特征部件的位置,包括连线(shape vector)。

2.2 2D/3D车辆模型

这里是对真实的输入图像的每一个车辆建模,使用一个5元组来表述:

(B,B3d,S,S3d,V)

其中 B=(cx,cy,w,h) 是描述的图片中车辆的2D边框, (cx,cy) 是边框的中心坐标, (w,h) 是宽和高。
B3d=(cx,cy,cz,θ,t) 是车辆的3D边框位置, θ 是车辆在3D空间中相对于原先统一视角的方向 t 是相应的3D模板,即宽高长。
S={qk=(uk,vk)}k{1,...,N} 是描述该车辆每一个特征部件的2D坐标的向量。
S3d={ pk=(xk,yk,zk)}k{ 1,...,N} 是描述该车辆每一个特征部件的3D坐标的向量。
V={ vk}k{ 1,...,N} 是描述每一个特征部件的可见性的向量,一共4种取值:
- 在图片中能观测到,则可见;
- 被非该车辆的物体遮挡住;
- 被该车辆自身部件遮挡住;
- 不在图片中。
结合下图,就一目了然了:
2D/3D车辆模型

2.3 Deep MANTA网络

该网络是通过从粗糙到精细化的边框提取来检测车辆,并同时输出多个结果。

从粗糙到精细化的前向传播

首先使用RPN生成第一组的K个边框。从某一层feature map上提取了相应的区域之后,通过ROI池化生成固定大小的feature map(比如在Faster R-CNN就是用ROI得到7*7大小的map),这样池化后的区域再经过第二个网络(与第一个RPN网络有部分参数共享),得到第二次的K个候选边框。如此再经过一个类似的网络,得到第三次的K个候选边框 B3={ Bi,2}i{ 1,.

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值