轨迹预测经典论文之一 TNT:Target-driveN Trajectory Prediction

前言

首先,放上论文原链接位置。
https://arxiv.org/pdf/2008.08294v2.pdf

TNT 是预测领域比较经典的论文, 已经出来两年半了,许多公司都在使用其基础上的小变种进行轨迹预测任务。它是典型的 anchor-based 方法,细分来说是属于,goal-anchor-based 。goal-anchor-based 方法之外,还有traj-anchor-based。以用统计的方法,聚类生成的固定的traj-anchor-based, 以车辆状态+动力学约束,动态生成anchor的方法,具体论文暂且不表,后面写到再说。
anchor-based 把连续空间上的预测,离散化,降低了问题的难度。

框架

请添加图片描述

如图1所示,TNT的pipeline分为三部分。
stage1: target prediction. 给所有的anchor点打分,选出top的anchor点。
stage2: target-conditioned motion estimation。
就选出的anchor点,回归出一条完整的轨迹。
stage3: scoring and selection。就上一个阶段选出的几条完整的轨迹,打分。

在这三个阶段中,最重要的是应该是第一个阶段,当一个goal选定后,未来的轨迹大致去向就定了。对于下游而言,只要goal对,意图明确了,对的规控就很有帮助。
就撒点策略而言,需要有适当的分辨率,对全部可行使区域都有很好的覆盖。由于offset的存在,撒点之外的endpoint也能照顾到一部分,但是撒点区域不合理的小,可能是第一阶段指标无法提升的原因之一。撒点方式非常灵活,论文中提到可以根据地图信息撒点,或者直接grid 网格化撒点,其他方面可以根据速度动态调整撒点范围等。
需要注意的是,第一个阶段在给goal打分的同时,还会回归出两个offset,固定的goal点加上offset才是下个阶段真正用到的 endpoint。
第二阶段回归轨迹,网络对这一步拟合难度不高。拟出来的基本合理,可能有个别拟合出来不平滑的情况出现,但即使不平滑,下游也可以有多种处理方式。当然由于传感器误差等,真值轨迹可能也有不少轨迹不平滑的情况,行人,骑行者尤为如此。
第三阶段对不同轨迹打分。文章认为第一阶段target的打分不好,不确定性高,需要对full traj 进行重新打分。

具体实现

请添加图片描述

论文中的实现是以待预测的物体为中心的,使用时候,每帧就需要pick出来感兴趣的目标进行预测。encoding部分采用的是VectorNet,把obj附近的地图和障碍物信息,编码进网络做信息融合。如果只能用 top-down image表达时,也可以采用卷积网络进行encoding。论文的重点自然在后面的decoding部分。

Target prediction

请添加图片描述

文中公式2所表达的意思是,将连续空间上概率分布的预测拆解成了两部分,一部分是离散点,也就是anchor点,另一部分是offset,是与anchor点配套的offset。两者加起来就是一个Goal点的位置。
请添加图片描述

文中提到的两个函数f(.) v(.)都是2层的MLP,第一个f用于给所有的target点打分,第二个v用于拟合回归出offset。 f 使用 cross entropy, v使用 Huber loss。u是撒的target点中,距离真值位置最近的点,u和真值的点计算的得到的offset即真值的 offset。
文章中,撒点数N是1000,M是该步选择的候选tagrt数目。

motion estimation

这个步骤有两个假设,一是未来的时间的位置互相是条件独立的,也就是是说,当前状态下,0.2s, 0.4s,0.6s…等的位置是互相独立的,而不是0.4s位置必须条件于0.2s位置(事实上还是有关联的,比如得有运动学约束规范当前状态到target点)。第二个条件是当给定未来某时刻的target点后,轨迹就不是多模态了,这点是reasonable的,有target点之后,一般就连不出差别特别大的traj了。这篇论文就是把多模放在第一阶段了。
请添加图片描述
在上述假设基础上,一切就自然而然了。依然是一个2层MLP。当用backbone输出的feature,cat上上一步骤的M个target点,回归出中间时刻的散点。
训练时,用真值轨迹的终点作为target,cat上obj feature, 作为输入,得到预测的轨迹,
与真值轨迹计算Huber loss。

Trajectory scoring and selection

第二步出来了topM的轨迹,可以按照第一步target点的分数排序,进行输出。但是文章认为,target estimated 相对于full 轨迹,是有高度的不确定性的, 所以有必要再对输出的轨迹重新rank。
该步依然是一个2层的MLP,输入是输出的轨迹和feature,输出是打分。loss依然采用cross entropy。
在这里插入图片描述

问题则是,真值的分数从何而来。文中使用预测的轨迹和真值轨迹的距离计算得到。设计的函数,距离越大,得分越小即可。上图已经解释的很清楚。

最后得到M个轨迹后,还需要设计一个选择出K的轨迹的算法。文中把M个轨迹按照第三步的score排序,依次选择,如果下一个轨迹距离已选择的轨迹距离过近,就排除它,直到选到K个。

至此,目标车辆就可以完成输出K个预测的带概率的轨迹了。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值