一文读懂特斯拉Autopilot神经网络的核心武器

来源:无人车情报局
2020-03-24
2356


这一期开始,我们会介绍一下Tesla的Data Pipeline专利内容,技术含量可能不会特别高,毕竟对于我们来说,Tesla和它的Autopilot系统是个黑盒,还只能处在摸索中。但这个摸索的过程本身是有价值的,因为Autopilot的训练方法和收敛速度和迭代速度,都是行业代表,甚至可以说是“自成一派”,技术参考价值很大。


 这是我们进行分析的初衷。

1.特斯拉传感器配置

在谈及Tesla的专利之前,我们还是有必要再回顾一下Tesla现在各型车辆的传感器配置(太早的型号可能和这个配置对不上),因为这个是Autopilot工作的基础和起点,不清楚具体的传感器配置,对于理解Autopilot的工作原理很不利。 


以下这副传感器图片来自于Tesla中国公众号的公开资料,基本是按照传感器覆盖范围的比例绘制的,还是比较准确的,可以参考并建立一个直观的传感器阵列概念。 


                 

  可以看到,传感器分为三个类型:视觉摄像头(Camera)、超声波(Ultrasonic)和毫米波雷达(mmWave Radar)。Tesla这三种传感器的选择是有她的道理的,毕竟是存量近百万量汽车实体的供货商,传感器种类和数量的取舍必须要考虑性能、可靠性、成本、安装等一系列问题。从这个角度看,Tesla毫无疑问是行业翘楚,强过Waymo。所谓有产品才有发言权,Tesla卖的是产品和服务,而Waymo只卖服务。 


Waymo可以用那种夸张的车顶激光雷达,Tesla是绝对不会在量产产品里部署还处在“实验级别”的车顶360度高线数高价格的Lidar的,既不安全更不划算。所以大家应该理解,所谓屁股决定脑袋,Elon Musk对于Lidar的立场必然是反对,除非Lidar有划时代的产品进步。


 除去超声波(8m半径)和毫米波雷达(160m工作距离)之外,可以看到Tesla的车辆完全使用单纯的视觉系统(8个摄像头)覆盖周身360度空间,这和早期采用Mobileeye系统相关,也代表了极致的视觉传感器流派。 


如何利用这多台三种传感器的捕捉数据,如何挖掘这庞大车队(60万辆)和每日接近2000万英里的里程数据,就成了Tesla训练Autopilot神经网络的核心问题。我们要探讨的Data Pipeline专利,也正是围绕这个问题而进行设计的。 


在“DataPipeline and Deep Learning System for Autonomous Driving”专利的基本描述中,Tesla提供如下说明:


[0011]公开了一种数据管道(Data Pipeline),该数据管道提取传感器数据并将其作为单独的组件(components)提供给深度学习网络以进行自动驾驶。在一些实施例中,使用深度学习网络和从传感器接收的输入数据来实现自动驾驶。例如,固定在车辆上的传感器将车辆周围环境的实时传感器数据(例如视觉,雷达和超声数据)提供给神经网络,以用于确定车辆控制响应。在一些实施例中,使用多层来实现网络。基于数据的信号信息,将传感器数据提取为两个或更多个不同的数据分量。例如,特征和/或边缘数据可以与全局数据(例如全局照明数据)分为不同的数据成分。不同的数据组件保留目标相关数据,例如,深度学习网络最终将用于识别边缘和其他特征的数据。在一些实施例中,不同的数据组件用作存储与识别某些目标特征高度相关的数据的容器,但是它们本身并不识别或检测特征。不同的数据组件提取数据以确保在机器学习网络的适当阶段进行准确的特征检测。在一些实施例中,然后可以对不同的数据分量进行预处理以增强它们所包含的特定信号信息。数据分量可以被压缩和/或下采样以增加资源和计算效率。 


以上的专利描述可能有些晦涩,专业名词比较多,但是其主旨很明确,就是将车辆传感器获取的数据按照“组件/Components”的形式组织起来,然后按照不同的需求分发给后台的Autopilot神经网络进行学习和训练。而这个从头到尾的数据采样、分类、预处理和分发流程,Tesla称其为“Data Pipeline”。Data Pipeline中的这一句话可以充分体现这个设计思路“不同的数据组件用作存储与识别某些目标特征高度相关的数据的容器,但是它们本身并不识别或检测特征。不同的数据组件提取数据以确保在机器学习网络的适当阶段进行准确的特征检测。”


2.Pipeline的实质内容

疫情尚未消退,但总算迎来复工,因此工作、学习、消毒、防护、顾家、带娃一把抓,所以也就焦头烂额地顾不上更新,动作慢了在此一并致歉。同时也提醒关注我们车右智能公众号的朋友们、同行们,工作一定是重要的,但工作以外,更要注意自己和家人的安全。坚持再坚持,想必迎来真正春天的时间不会太遥远了。


 在上一章节我们知道,Tesla这个Data Pipeline专利的核心内容,本质是如何有效地组织和利用Tesla车队每日所积累的巨量数据,除了实时地在每一辆Tesla上的FSD用以不断推进本地训练以外,更要在Tesla的云端平台和小一百万辆实体车辆之间构成大闭环方式的训练机制。这是Data Pipeline的核心目标。 


                           

Tesla的公开Data pipeline专利附图1(如上图)显示了用于使用深度学习流水线来执行机器学习处理的过程的流程图。图中的过程主要说明了“预处理”的必要性,通过预处理由传感器捕获的数据以用于深度学习分析。通过预处理传感器数据,可为深度学习提供有效数据,并获得更精确的结果来控制车辆。在一些具体的实施例中,预处理过程还可以解决传感器捕获的数据与神经网络期望用于深度学习的数据之间的数据失配问题。


 上图的101处,Tesla的专利表明数据获取的源头在于车辆的各类型传感器所捕获的外界数据,特别地,Tesla指出以下三点:

第一:在一些实施例中,传感器被固定到环境和/或其他车辆,并远程接收数据。这是除了车身传感器以外的数据获取方法,也可以建立以道路基建为基础的数据获取方式。国内也有相关公司和机构在研究类似数据获取场景;

第二:在一些实施例中,Lidar数据是使用激光捕获的数据,可以包括被称为光检测和测距以及激光成像、检测和测距的技术。从这个对于数据种类接纳,可以判断Tesla的神经网络训练体系当中,并不像ElonMusk一样简单粗暴地排除Lidar的存在;

第三:在一些实施例中,传感器数据的位深度超过用于深度学习分析的神经网络的位深度。通常来讲,传感器直接获取的各类型数据的“数据深度”普遍都是比较丰富的。以可视的图形获取为例,即便是只有400*400大小,也有16万个像素点,如果再考虑每个像素的颜色(一般都是多通道的彩色图像捕获),可以用红R、绿G、蓝B、透明度四个值描述,大小范围都是0 ~ 255,比如黑色是[0,0, 0, 255],白色是[255, 255, 255,255],那么图形文件的数据厚度会大大加重后端神经网络的工作量从而使得在车端本地和云端中央处理大量可视的图形文件变得不可能。 因此,提前统一考虑传感器数据的异构型、来源不同和数据位数的丰厚不一,就十分有必要。


因此有了图中的103模块——Pre-processing。 在上图的103处(Pre-processing模块),Tesla的自动驾驶系统将会对传感器数据执行数据预处理操作,这些操作包含但不限于以下:

第一:在一些实施例中,可以对传感器数据执行一个或多个预处理过程。例如,可以首先对数据进行预处理以去除噪声,校正对准问题和/或模糊等;根据目前普遍的计算机视觉技术,对于图案的噪声去除技术(相当于高频率波)和模糊技术(相当于低频滤波),通常有两种做法,一种是在图像的频域利用数字滤波技术来获取所需要的处理效果;另外一种是在图像的空间域,直接利用数字图像的卷积操作(Convolution)来获取所需要的处理效果。Tesla的具体处理方法不确定。但根据其功能所处的位置来看(Pre-processing阶段),更应该是计算力消耗较低的频域处理方法;

第二:在一些实施例中,对数据执行两次或更多次不同的滤波通过。例如,可以对数据执行高通滤波器,并且可以对数据执行低通滤波器。这个图像数字处理方法同上,在频率域上的高低通滤波或者带通滤波,都会在原始图像上捕捉到和后续处理重点相合拍的图像内容,这里不做重点描述;

第三:在一些实施例中,可以执行一个或多个带通滤波器。例如,除了高通和低通以外,还可以对数据执行一个或多个带通。同上,但此处强调的是在Pre-processing预处理阶段,Data Pipeline的相关模块化组织,不仅可以容纳单个高低通滤波操作,也还可以根据后端处理(AI神经网络的识别)的需要,提供各种各样的组合(包括一个或者多个的频域处理结果)。


 在以上的各种实施例中,传感器数据都被分成两个或多个数据集,这里所谓不同的数据集就是原始传感器数据的不同组成部分。 更具体的Data Preprocessing预处理操作,在Data pipeline的专利描述中有这样的介绍。

第一:在一些实施例中,通过对传感器数据执行高通或带通滤波器来创建特征和/或边缘分量,并且通过对传感器数据执行低通或带通滤波器来创建全局数据分量;例如,可以通过从图像数据去除噪声和/或增强图像数据的局部对比度来处理高通分量;

第二:在一些实施例中,不同的分量(可以是高通分量也可以是低通分量)被压缩和/或下采样。例如,可以适当地压缩,调整大小和/或下采样组件,以调整数据的大小和/或分辨率,以将数据输入到机器学习模型的某一层。具体来说,预处理模块快可以调整传感器数据的位深度。例如,将以20位或另一适当位深度捕获数据的相机的数据通道压缩或量化为8位,以为8位机器学习模型准备通道。同样可以实现的是,一个或多个传感器以12位,16位,20位,32位…… 


在上图103处执行的预处理的模块,物理基础为图像预处理器。需要关注的是,“图像预处理器”不是一个固定的硬件资源,而是根据不同的预处理任务的需求不同而灵活调度的相关硬件资源。例如:在一些实施例中,图像预处理器可以是图形处理单元(GPU),或者中央处理单元(CPU),或者人工智能(AI)处理器,专用的图像信号处理器、色调映射器处理器或其他类似的硬件处理器。在各种实施例中,不同的图像预处理资源用于并行地提取和/或预处理不同的数据分量。


在上图中的105处,Data pipeline跳出了“预处理”过程而进入真正的Deep Learning模块而开始执行深度学习分析。使用机器学习模型(例如人工神经网络)执行深度学习分析。在各种实施例中,深度学习分析模块接收来自103预处理的传感器数据作为输入。 


在一些具体的实施例中,在105处以多个不同的分量(诸如高通数据分量和低通数据分量)接收经处理的传感器数据。而在另一些实施例中,接收不同的数据分量作为对机器学习模型的不同层的输入。例如,神经网络接收高通分量作为对网络第一层的初始输入,而低通分量作为对网络后继层的输入。


 以上专利中的技术描述为例,基本上就是目前我们所熟知的卷积神经网络体系结构,而卷积网络正是目前深度学习技术领域中非常具有代表性的神经网络之一,在图像分析和处理领域取得了众多突破性的进展。在学术界常用的标准图像标注集ImageNet上(一个某种或者某几种题材的图形库,包含图片的语义分析的训练图片部分和内容未标注的测试图片部分),基于卷积神经网络取得了很多成就,包括图像特征提取分类、场景识别等。 


卷积神经网络相较于传统的图像处理算法的优点之一在于避免了对图像复杂的前期预处理过程,尤其是人工参与图像预处理过程,卷积神经网络可以直接输入原始图像进行一系列工作,至今己经广泛应用于各类图像相关的应用中。


 Tesla的Data Pipeline流程,其本质就是卷积神经网络在对于图形文件特征提取(卷积操作)和图像压缩/下采样(池化操作)的重新梳理和组织。当然Data pipeline一定会针对Tesla的神经网络结构,而做出具体的调整。比如上述的,“神经网络接收高通分量作为对网络第一层的初始输入,而低通分量作为对网络后继层的输入。”即使一种比较新颖的数据喂养方式。 


在最后的107处,Tesla的Data pipeline提供了深度学习分析的结果用于车辆控制。例如,可以将结果提供给车辆控制模块以调节车辆的速度和/或转向,以实现完全或者部分的自主驾驶功能。也可以将Data pipeline的输出结果指示神经网络应通过操纵车辆避免的物体,或者通过制动和改变车辆在车道上的位置来避免车辆危险变道等行为。 


后续,我们将继续挖掘Data Pipeline中有价值的部分,加深我们对与神经网络和Tesla独有的数据提取和整理方法的理解。 


备注:

1 题图来自于互联网搜索,;

2 文中图一,来自Tesla China的微信公众号;

3 文中专利内容描述,来自于美国的专利站点,https://patentscope2.wipo.int/search/en/detail.jsf?docId=WO2019245618&tab=PCTDESCRIPTION

1 题图来自于互联网搜索,;

2 文中图一,来自Tesla的Data pipeline专利描述插图;

3 文中专利内容描述,来自于美国的专利站点,https://patentscope2.wipo.int/search/en/detail.jsf?docId=WO2019245618&tab=PCTDESCRIPTION4 文中关于卷积神经网络的一般描述来自于CSDN博主zsffuture。

收藏
点赞
2000