注:本文只用来记录我实习过程中积累的粗浅理解,平时抽空写写,不一定正确和全面。随着认识的增多我会不断更新修正本文内容,也欢迎大家帮我指正问题。


目录

1. 自动驾驶任务浅述

2. 轨迹预测任务

2.1 agent encoding

2.2 map encoding

2.3 trajectory decoding


1. 自动驾驶任务浅述

自动驾驶任务分为perception、prediction、planning三个阶段,目前大部分工作只单独考虑其中一个阶段,也有的工作在打通两两或三者之间的通路:例如把perception和prediction结合,直接end-to-end地用vision和lidar数据做tracking和prediction,去掉了用原始数据处理成HD map的过程,参考ViP3D;还有将prediction和planning结合,比如用pretrained transformer-based model,在考虑prediction得到的轨迹的基础上做决策,这部分用到RL的场景比较多,参考Imagination-Augmented Agents

perception的工作我目前主要了解的是用原始数据对地图和位姿建模,有rule-based的SLAM如Lego Loam和Leo Sam,也有learning-based的SLAM,还有2D转3D的工作如DETR3D,但理解不多,等以后再补。

prediction的工作主要是从HD地图数据,包括车和行人的历史轨迹,预测出目标车辆的未来轨迹。prediction目前还都是open-loop的控制,它一次性预测了整条轨迹而没有迭代式的反馈,而只是用ground truth做监督,因此能否使得预测的轨迹具有真实性、自恰性、在交互中的合理性,是当前最大难点;

planning的工作主要是执行close-loop的sequential decision,它一般不会考虑当前状态以前的历史轨迹,方法上一般用到model-based RL:agent与环境交互,学习一个表示环境的model(forward or inverse dynamic model),就可以在每个t时刻,输入当前状态、历史状态以及目标goal点,输出一个序列的actions使得agent从当前点到达目标点。由于sequential decision的建模与NLP任务相似,因此现在都会用transform来做backbone,例如Decision Transformer。

Embodied AI做的工作和planning比较相似,它以vision作为state,用NLP处理指令,用CLIP将指令关联到state上,然后和环境交互,导航到目标goal点,区别是Embodied AI以机器人或游戏agent为载体、以vision为sate,以更高层的文本指令表示goal点、且会用到AI大模型如GPT-3、ViT、CLIP等,目前的工作有LM-Nav、Say Can、MINEDOJO、VPT、LATTE等。


2. 轨迹预测任务

motion prediction task需要对intent和control两个部分建模,intent对长远意图建模,control对实际路线建模。intent的建模比较难,常见方法有:1)人为定义lane change left/right和lane keep等几种意图,2)用goal-based的方法先在heatmap上确定goal点,3)无监督建模intent,4)CVAE生成式模型来对intent建模等。

目前大多数的trajectory prediction的方法主要分为三个模块:agent encoding, map encoding, trajectory decoding。

2.1 agent encoding

agent encoding用于提取轨迹时序信息以及轨迹间的交互信息,常用的模块有LSTM, GAT和Transformer encoder;

2.2 map encoding

map encoding用于提取HD map中车道线和交通灯的信息,常用模块由map represention而定。map representation目前有rasterized map和vectorized map两种:

1) rasterized map(栅格地图)就是给地图中每个pixel赋予一个类别标签,这有利于使用像素层面的处理如CNN或MLP,但对于自动驾驶来说并不是好的表征形式;

2)vecterized map把图中的所有的车道线、车和人的轨迹等对象用polylines表示,这样一个map就是一个polylines集合,而每条polyline包含一个序列的节点,每个节点相当于是polyline的一小段(segment),节点包含了segment的起点和终点以及其他信息,这就表示了节点的连接顺序,便于在GNN中建立交互关系。这样对象化的表示,就方便用GNN和Transformer来提取polyline内的时序信息和polylines之间的交互信息,这就是目前广泛应用的VectorNet的框架。

过往的vecterized map是先将传感器数据处理成rasterized map,然后编写程序处理成vectorized map,而目前有工作采用learning-based的方法直接从传感器数据检测出polylines set生成vectorized map,如HDMapNet, VectorMapNet,前者需要一些hand-designed post-preprocess算法,而后者直接端到端地生成地图。

2.3 trajectory decoding

trajectory decoding用于根据encoder提取的信息,输出预测的轨迹,常用的方法有regression-based, goal-based,heatmap-based,set-based四种。

1)regression-based: 又称variety loss,这种方法在训练的时候输出K条轨迹及对应的可能性logits,然后用离ground truth最近的那条轨迹与ground truth计算regression loss;同时以这条轨迹作为分类任务的label更新分类器(称为hard assignment,强制设置某一个类别为label),当然也可以用soft assignment,直接以K条轨迹到ground truth的距离作为分类概率,就不需要专门训练分类器了。这类模型有Scene Transforemr, Lapred, TPCN等。这种方法的缺点是没有对agent的intent做显示建模,直接端到端地训模型,缺乏可解释性,不适合落地,但在目前官方的metric上模型效果也很好。

2)anchor-based: 先人工定义或在数据集上聚类得到一些anchors,用来表征agents的intent,然后基于每个场景对anchors做分类,从而选取可行的anchors,然后回归anchors每个点的偏移dx, dy。这种方法就类似于object detection中的anchor机制了,而regression-based则类似于yolo。这类模型有Multipath等。这种方法用anchor来表示intent,但始终是有人为定义和筛选的因素在里面,因此不够合理。

3)heatmap-based或goal-based:先生成一个goal点的heatmap,表示所有可能的goal点的概率,然后用greedy类的算法、或以metric为优化目标求解优化问题、或用神经网络来选取K个最优的goal点,然后训一个轨迹生成器,基于goal点生成轨迹,而这就相当于训了一个inverse dynamic model。这类模型有DenseTNT, GOHOME等。这种方法具有很强的可解释性,但goal点的选取区域会很大程度依赖于车道信息,如果某个车没有沿着车道走,或者车附近的车道线缺失了,就不太好确定goal点,而且稠密的goal点区域也会带来很大的计算量。

4)set-based:输出轨迹的表示形式换成了GMM,未来轨迹的每个点都对应一个Gaussian Model,用均值μ和方差表示该点的分布,loss就从regression loss改成了negative log likelihood,相当于建模成set prediction的任务。这样的好处在于,轨迹预测的不确定性和随机性是非常大的,regression loss训练的模型的variance太小了,过于绝对地拟合到训练集中的轨迹分布,而用negative log likelihood来训练则可以给所有可能的预测结果都分配一个很低的cost,使模型更加鲁棒和泛化。这类模型有WIMP,Multipath++, KEMP,TENET等,基本都是近年各数据集的第一名。用GMM的表示方式也适合用ensemble learning,训练多个模型取最接近ground truth的K个结果。

自动驾驶轨迹预测任务浅述相关推荐

  1. 自动驾驶轨迹预测论文阅读(二)TPNet: Trajectory Proposal Network for Motion Prediction

    论文链接:https://openaccess.thecvf.com/content_CVPR_2020/papers/Fang_TPNet_Trajectory_Proposal_Network_f ...

  2. 自动驾驶轨迹预测论文阅读(一)Deep Learning-based Vehicle Behaviour Prediction For Autonomous Driving Applications

    论文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9158529(如果链接无法打开可以通过论文DOI从scihub下载 ...

  3. 自动驾驶轨迹预测论文阅读(三)Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks

    [略读]GUPTA A, JOHNSON J, FEI-FEI L, et al., 2018. Social GAN: Socially Acceptable Trajectories with G ...

  4. 【自动驾驶轨迹预测】一文熟悉自动驾驶轨迹预测发展现状!

    来源 | 自动驾驶之心 来源 | https://zhuanlan.zhihu.com/p/365881810 知圈 | 进"滑板底盘群"请加微yanzhi-6,备注底盘 目录 何 ...

  5. 【自动驾驶轨迹规划之地图结构】

    目录 1 基础地图结构的分类 1.1 2D地图 1.1.1 栅格地图 1.1.2 拓扑地图 1.1.3 导航网格图 1.2 3D地图 1.2.1 栅格地图 1.2.2 八叉树地图 1.2.3 点云地图 ...

  6. 【自动驾驶轨迹规划之安全行驶走廊】

    目录 1 原理剖析 1.1 安全飞行走廊(SFC) 1.2 安全行驶走廊(STC) 1.2.1 车辆外形建模 1.2.2 环境建模 1.3 生成安全行驶走廊的伪代码 1.4 建立约束限制 1.5最优控 ...

  7. 《整体决策的统一框架和基于时空的高速路自动驾驶轨迹规划》论文分析

    文献分析 这篇<整体决策的统一框架和基于时空的高速路自动驾驶轨迹规划>论文,针对过往前任研究的一些不足,建立了决策规划的三个模块,这三个模块针对短期(10hz,一秒运行十次),中期(1hz ...

  8. 【自动驾驶轨迹规划之dubins曲线与reeds-shepp曲线】

    目录 1 dubins曲线的简介 2 dubins 曲线的实现与计算 2.1 找到圆心 2.2 找到切点 2.3 画出dubins曲线并计算路径长度 2.4 车辆外形建模 2.5 车辆沿dubins曲 ...

  9. 特斯拉CEO对自动驾驶发表预测,专家:别扰乱公众的认知了

    https://www.toutiao.com/a6684401073920147982/ 2019-04-27 10:50:04 这两天,美国电动汽车公司特斯拉的首席执行官埃隆·马斯克,就特斯拉汽车 ...

最新文章

  1. spi时序图怎么分析,怎么看懂spi时序图
  2. redis命令_Redis 命令执行过程(下)
  3. MyClass a,b[2],*p[2]调用了几次构造函数
  4. 数据结构与算法(C++)– 贪婪算法(Greedy algorithm)
  5. 排序学习(LTR)经典算法:RankNet、LambdaRank和LambdaMart
  6. Qtum量子链漏洞赏金计划正式开启
  7. 如何进行基于Anolis OS的企业级Java应用规模化实践?|龙蜥技术
  8. 004-controller的使用
  9. Q - Tour - hdu 3488(最小匹配值)
  10. android 测试工具,安卓测试工具的几种实现方式
  11. python表单文件请求_python处理multipart/form-data的请求方法
  12. 浅析ServiceMesh Istio
  13. java unsafe cas_java并发Unsafe和CAS
  14. Python GUI之tkinter 教程大集合
  15. Java利用HttpPost工具类提交数据
  16. 写给学生看的系统分析与验证笔记(一)——形式化基础
  17. linux中buff/cache占用高
  18. Centos升级安装Openssh9.0p1
  19. 光合作用9月五星推荐图书
  20. 445端口telnet不通经验总结

热门文章

  1. “图解服务器端网络架构”小结
  2. 抖音大火的AI虚拟人,画的猫为啥这么丑?
  3. Stall Reservations POJ
  4. 隐藏CNZZ统计代码
  5. SMT激光钢网制作开孔厚度有哪些?
  6. 热烈庆祝菏泽市牡丹区女企业家协会成立 太爱肽吴霞董事长当选第一届名誉会长
  7. 广联达bim5d手机端_【广联达BIM5D使用帮助】广联达BIM5D手机端操作说明-生产首页...
  8. Latex输入罗马数字
  9. gp338信令_GP/GM338 1200信令设置攻略
  10. 半年报信号!良品铺子的稳健增长与长期势能