赞
踩
有朋友问我,如何有效学习一个新技术。笔者这么多年的经验是:1)了解国内外产业应用和标准法规现状,先建立宏观知识图谱及技术系统框架;2)根据系统框架逐块进行深入研究(横向、纵向),穿插行业内主流厂商对应模块技术方案;3)系统研究行业内TOP厂商完整解决方案;4)针对你选择的重点方向进阶研究。因此笔者建立的自动驾驶专题介绍也会按照这个思路搭建技术体系(发布内容顺序不一定能严格遵守该路线,但会力求不断更新最终能按照该思路完成自动驾驶专栏搭建)。
本文及之后几篇系列文章,旨在针对自动驾驶行业领军企业特斯拉的技术方案进行深入解读和分析(资料来源:特斯拉官网,AI Day 2021,AI Day 2022,Inventor Day 2023)。特斯拉自动驾驶技术的核心是三个点:算法、数据和硬件,以下笔者将分别介绍AI Day 2021,AI Day 2022,Inventor Day 2023三次分享的内容,然后综合梳理出目前特斯拉自动驾驶解决方案。本文主要介绍特斯拉AI Day 2021的算法部分内容。
(摄像头raw data 1280*960,12bit (HDR) @36Hz)
特斯拉的感知算法系统,取名为HydraNet(九头蛇),九头非常形象的表示了感知系统整个算法模型是一个多头任务学习神经网络架构,旨在处理自动驾驶汽车所需的多种感知任务;颈部形象的展示出整个感知模型共享特征提取部分,从而提高计算效率和感知精度。
从上图可以看到,整个算法模型的输入是来自8个摄像头提供的raw data,通过神经网络将图像实时处理转换成4D向量空间(包括自动驾驶所需一切物体的3D表示,再加上时间维度),包括线、边、道路、交通标志、行人、车辆的位置、方向、速度、角速度等。提取到的特征序列进入到特定任务头进行处理,例如使用一阶YOLO进行目标检测等,针对性完成更多任务处理。
HydraNet使用共同的共享骨干网络Backbone,再分支到多个任务头进行具体的子任务处理,具有非常明显的优势:
考虑到不同位置安装的摄像头的抖动等问题,需要对每个输入的视觉数据进行校准,就是Rectify模块的任务,将所有图片转换为虚拟通用摄像头。
Rectify校准之后的下一层是算法模型的backbone特征提取主干,使用RegNet(残差神经网络)在延迟和精度之间进行了很好的折衷,可以提供不同尺寸不同精度的特征输出。(算法底部提供高精度空间信息W*H=160*120,低通道数C=64,可以看到更多图像细节;顶部提供低精度空间信息W*H=20*15,高通道数C=512,可以看到图像的大部分而且具备更多上下文语义)
RegNet由一系列重复的网络块组成,通过一组参数(如宽度、深度、分组卷积等)来灵活调整网络规模,使得网络能够适应不同的计算资源和任务需求;在设计RegNet过程中,重点关注网络的宽度(通道数)和深度(层数)的平衡,确保在不同层次上都有足够的表达能力。
工作原理:
可调参数:
BiFPN,全称是Bi-directional Feature Pyramid Network(双向特征金字塔网络),是谷歌在EfficientDet论文中提出的一种高效的特征融合模块,旨在高效地融合来自不同尺度的特征,增强多尺度目标检测的性能,同时保持较低的计算复杂度。
BIFPN通过引入双向特征融合路径,结合加权特征融合策略,能够更有效地融合不同尺度的特征信息,增强特征的表达能力,提高了多尺度目标检测的性能。其主要思想包括:
BIFPN的结构如下
8个摄像头提供的图像数据特征融合带来了2个问题:
结合时间对多个图像数据处理和预测过程中,调整占用跟踪器及其超参数非常复杂,我们希望避免通过手写C++来进行调参,更希望在神经网络中完成,实现端到端的优化。融合的2D图像空间并不理想,希望直接在高维3D向量空间中进行处理。
如何将2D图像空间转换为向量空间,将8张图像信息输入神经网络,融合后输出得到向量空间,并通过解码得到各个任务头的输出?如何标注数据,对于基于向量的特定数据集,需要在向量空间中进行标注?
针对第一个问题,我们使用Transformer(Multi-head Attention)来解决。
Transformer是一种用于处理序列数据的神经网络架构,由Vaswani等人在2017年提出,最初用于机器翻译任务,通过引入自注意力机制(self-attention)和多头注意力机制(multi-head attention)来捕捉序列中元素之间的关系,不依赖于传统的递归神经网络(RNN)结构,从而提高了并行计算能力和长距离依赖建模能力。
Transformer架构主要包括两个部分:编码器(Encoder)和解码器(Decoder),每个部分都由若干个相同的层堆叠而成。
多头注意力机制是Transformer中的核心组件,通过并行计算多个不同的自注意力来增强模型的表现力。其主要步骤如下:
自注意力机制允许序列中的每个位置与其他所有位置进行交互,从而捕捉长距离依赖关系。其具体步骤如下:
基于融合数据后获得得3D向量空间,需要增加记忆信息获得更加准确得环境感知能力。
Feature queue基于之前获取了多尺度特征后,随着时间推移,缓存一些特征值;Feature queue同时需要获取汽车动力学数据,例如速度,加速度,了解汽车如何行驶。Video component负责融合这些临时数据,然后进入到多头任务中进行解码。
Feature queue需要每隔27ms推送time-based queue,这样即使有些目标被大车遮挡,依然可以通过历史记忆数据知道大车后面得东西;需要每隔1米推送space-based queue,这样当预测到一条转弯的道路,可以通过记忆数据识别到交通标志等信息。
Video module使用了spatial RNN (LSTM)。长短期记忆网络(Long Short-Term Memory,LSTM)是一种特殊类型的循环神经网络,通常用于处理和预测时间序列数据,如文本、语音、视频等,比标准的RNN在处理长序列数据时更有效,因为它能够捕获和记忆长期依赖关系。
LSTM网络由一系列的“门”单元组成,这些门单元可以选择性地让信息通过网络。主要的门单元包括遗忘门、输入门和输出门,它们的作用如下:
(特斯拉关于规控的介绍内容非常少)
系统的目标:safety安全,comfort舒适,efficiency高效
关键难题:action space is very non-convex, high dimensional,自动驾驶中可以操作的动作空间,例如方向盘角度、加速度、刹车力度,具备非凸性(一个空间是非凸的,意味着在该空间中,任意两点之间的连线不一定完全位于该空间内,即空间中可能存在“凹陷”或“洞”,导致标准的优化算法如梯度下降,可能会陷入局部最优解,而无法找到全局最优解),高维性(指的是维度即自由度非常高的空间,搜索和优化问题更加复杂。维度的增加导致搜索空间呈指数级增长,使得算法的计算成本和所需的数据量大幅上升)。
特斯拉的解决方案如下:需要进行搜索来规划车辆的行驶路径,考虑到车辆本身以及周围环境的情况,通过设置上下文走廊,并优化平滑路径,可以实现更高效的行驶规划,在非常短的时间内进行成千上万次搜索,支持10秒的规划。
不同地区的驾驶环境可能复杂多变,需要适应不同的场景和驾驶习惯,需要考虑其它智能体进行综合规划,另外使用基于学习的方法,如神经网络,获得更好更光滑的运动轨迹,可以更有效地解决复杂的行驶规划问题。
举例:通过训练神经网络,可以解决简单的停车问题,而无需使用导航启发式方法。神经网络能够吸收场景的全局上下文,并产生一个有效的值函数,引导车辆朝着全局最小值前进,而不是陷入局部最小值。使用蒙特卡罗树搜索(MCTS)的方法进行研究,神经网络能够在一次尝试中就取得进展,直接朝着目标前进,大大减少了搜索节点数量。
感知系统将8个摄像头稠密的图像数据进行融合转换成向量空间,送入explicit基于规则和NN基于神经网络的规控系统,生成期望的运动轨迹操作汽车方向盘和速度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。