fast and furious java_Fast and Furious,速度与激情?

作为一个科技博主,我是不会随便讲电影的。fast and furious是一篇论文:Fast and Furious: Real Time End-to-End 3D Detection, Tracking and Motion Forecasting with a Single Convolutional Net,出自Uber ATG。

讲的是在自动驾驶领域,使用一个end-to-end网络高效预测目标轨迹的方法。多帧模型相对单帧模型,精度提升6个点,且仅用30ms实现了检测、跟踪、预测3个任务。

下面先看一下论文效果。

一、问题初探

目前,在解决自动驾驶的问题时,一般分为4步:检测、跟踪、预测、规划。输入到最后一步规划的误差,是以上3步积累的误差,会比较大。

针对这个问题,作者提出将检测、跟踪、预测统一为一个end-to-end网络,这样做有以下好处:减小累积误差

多任务共享计算,提高整体流程效率

由于可以预测物体轨迹,可以提高被遮挡物体召回率

加入多帧校验,可以有效抑制误检

二、问题解决

end-to-end网络如上图所示,分为3个部分:多帧数据表达,网络结构设计,优化目标设计。

1,多帧数据表达

多帧数据是由单帧数据在时间维度累积而成,因此首先做单帧数据的特征表达,然后再进行时间累积。

1)单帧数据表达

如下图,作者使用了3D voxel(Δl*Δw*Δh)的表达方式,但是并没有使用voxelnet的方式提取特征,考虑到效率的问题,手动提取了2组特征:类似mv3d,提取了voxel中点云的高度信息

一个二值信息:pillar中是否有点云,其中pillar为相同位置处n个 voxel的组合

2)连续帧表达

模型最终目标是预测目标轨迹,而采集车和目标都是运动,不同时刻采集到的目标运动信息都是相对于采集车的运动,因此需要统一参考系。将t-1~t-n+1时刻的运动信息,通过坐标变换,统一到与t时刻相同的参考系中,然后再进行相应的特征提取处理。

2,网络结构设计

作者根据不同帧信息融合方式,设计了不同的网络结构:early fusion和late fusion,最后提出一种轨迹融合的方式,得到最后的目标检测结果和目标轨迹。

1)early fusion

early fusion流程如上图,是在数据源头将t-1~t-n+1时刻的数据与当前t时刻的数据融合。这种方式对网络结构设计没有特殊要求,但是作者考虑不同的历史时刻目标运动信息对当前时刻目标运动信息的预测贡献是不同的,因此,提出在数据组合时,通过1D卷积在时间维度上,对不同历史时刻的数据给予不同的权重,将时间长度从n降为1,在实现上,使用了group convolution来共享参数,之后再使用常规的卷积网络做特征提取.

2)late fusion

late fusion相对复杂一些,是一种逐步融合的方式,如上图所示,分了2步融合,将时间长度n降为1,融合时间维度的特征时使用了3*3*3大小的3D卷积。剩下的特征提取网络,使用了与early fusion相同的特征提取网络。

3)output

模型输出有两组信息,分别使用了2组卷积,如上图所示。预测当前位置是否存在目标(如,车),是一个二值输出

回归当前目标位置、大小、旋转角,预测t+n-1帧目标信息

4)轨迹融合

模型在输出目标位置的同时,会预测后面n-1帧的信息,因此对于任何一个目标,一般会有n个框,其中一个框为当前帧t时刻的检测框,另外n-1个框为之前模型输出的预测框。在n个框融合时,作者没有使用很复杂的方法,作者认为模型的输出是准确可信的,因此使用了平均的方式得到:即从n个目标框中选择有overlap的多个目标框,计算框的平均值,作为当前帧目标的检测框。

3,优化目标设计

作者使用了anchor-base的方式来回归目标框。由于作者使用BEV的方式做特征表达,因此,目标在特征图上大小与目标真实大小仅是一个缩放尺度的差别。在做anchor设计的时候,作者参考了真实目标的大小,设计了6组anchor:scale=5米 & ratio=1 : 1, 1 : 2, 2 : 1, 1 : 6, 6 : 1;scale=8米 & ratio=1 : 1 。

1)正负样本选择anchor与groundtruth的IoU大于阈值(0.4)时,则认为该anchor有目标,并将其label设置为1(二分类问题,0表示是背景)。

在groundtruth中,未与任何anhor的IoU大于阈值时,将与该groundtruth最大IoU的anchor的label设置为1

剩余的anchor的label设置0

hard data mining:为了平衡正负样本,训练时,使用了OHEM的方式获得固定正负样本的比例1:3,其中anchor label为1的是正样本,从剩余的样本中选取topn(满足1:3的比例)的样本作为参与目标函数优化的负样本。

2)目标函数选择

模型有两组输出:预测是否有目标(二分类),回归目标框。故loss函数为两组目标的误差和,如下式:

其中

为二分类任务,使用了“binary cross-entropy loss”作为目标函数;

为目标回归任务,使用“smooth_l1 loss”作为目标函数。

三、实验与评估

1,dataset有开源数据很少有满足作者实验条件的,因此使用了uber自己的数据库:包含2762个场景,546658帧点云,每个场景都是连续帧的信息。其中,验证集有5000帧,来自100个场景。为了验证模型的泛化能力,训练集和验证集都是来自不同场景的数据。

2,训练设置

检测范围为144米*80*5.5米,高度范围为-2米~3.5米,voxel大小为0.2米*0.2米*0.2米,最后bev图大小为720*400*29,时间维度使用了连续5帧的信息。

优化器使用Adam,学习率为1e-4,batchsize为12,硬件为4块Tian XP,一共迭代100K,学习率分别在60K和80K时减半。

3,结果分析

对比了SSD,MobileNet ,SqueezeNet网络的结果,如下表。本文提出的FaF在精度和效率上达到了良好的平衡。

作者也做不同实验参数下,对模型精度和效率的影响,如下表。其中实验参数为:单帧模型、多帧(5帧)模型、early fuion、late fusion、with predict、with tracklet fusion。其中多帧模型相对单帧模型,耗时增加22。2%,精度提高2.4个点;late fusion比early fusion耗时double,精度提升1.4个点;融合多帧结果后,模型效果最好。

四、结论与展望

作者提出了end-to-end网络,用来解决检测、跟踪、预测这3个任务,作者实验证明该网络可以高效且准确地完成这3个任务。在未来,作者打算使用two-stage检测方法获得更好的特征表达;同时也尝试将该方法用于其他类型目标(如行人)的预测,或者做更长时间的轨迹预测。

历史文章阅读

资料下载:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值