解读特斯拉Autopilot的核心技术:视觉信息的处理

自动驾驶领域中,把模式识别交给神经网络,完成从学习到应用再到反馈和应用升级的闭环,这种做法目前是业内主流。

作者 / 车右智能 出品 / 公众号“车右智能”(ID:gh_666664197ab6)

1、视觉之路

时至2020年初,Elon Musk春风得意马蹄疾。 

几个月前,FCC正式批准马斯克的超级星座——星链计划,随后SpaceX顺风顺水把第二组共60颗星链卫星送入轨道,从而让SpaceX和他个人,成为拥有最多航天器个体的公司和个人(加上之前的60颗,共120颗)。作为地球人,我们已经无法想象SpaceX能在500Km的近地轨道上具体做些什么了。近日,特斯拉在上海的超级工厂宣布正式下线第一辆中国组装的“Model3”……超级工厂从意向、到签约、再到开工建设和完工、最终来到了投产的节点,这一切都不超过一年半。 

因此对于Musk而言,这是一个愉快的圣诞假期。可当打开他的twitter时,却赫然看到,原来无所不能的钢铁侠,却有着这个小小的烦恼: 

在人工智能的计算机视觉领域,这是个比较知名的“数据集”,提供各种各样迷惑级别的视觉信息(包含各种静态和动态的视觉数据),用以挑战和衡量视觉识别的算法能力。Musk在推中抱怨,“Dam now rly want choc chip muffin.”/“该死的,弄得我都想吃块巧克力松饼了!” 

其实这还不算地狱级别的,小编还见到过“Mop or Dog”的一个数据集合,那里面的家用拖布和那种长毛白狗,别说AI了,就是人也看不出来。 

在这个本来应该庆祝上海超级工厂下线实体Model3的时刻(Elon Musk仅仅转发了其他人的相关信息),Elon Musk却在Twitter上抱怨 or 调侃无法识别出的视觉数据集难度。其实,这个就是我们今天要讨论的焦点问题:对于视觉系信息赖以至深的Tesla AutoPilot自动驾驶算法和一众传感器而言,如何面对和处理这些极限的视觉信号输入情况,是至关重要的! 

参见上图,在Tesla车中的有这么一个关于Autopilot误报的case。在巴西某地,一辆Tesla车主发现当前的Autopilot软件版本,赫然在驾驶面板上把一个站在路侧的小男孩(穿着橙色TShirt)捕捉、识别并显示为一个安全三角锥(A Cone),或者识别为一个手持三角锥的司机/施工人员。考虑到反光三角锥在公路交通范畴内的特殊含义,类似的这种错误,似乎……不太容易被人接受。所以,也许这就是Elon Musk的烦恼了。 

作为从MobileEYE视觉自动驾驶技术起家的Tesla和他的掌门人Elon Musk,一个无可争议的事实是,对于视觉信息的处理,是Tesla自动驾驶体系Autopilot的绝对核心技术。Elon Musk本人在各种各样的场合下反复强调“视觉”才是自动驾驶最有价值的信息获取方法,甚至不惜为此揶揄激光雷达Lidar的整个测距类传感器产业体系,“获取信息不够丰富、细节丢失严重、为了测距而做出不可容忍的信息丢失、严重失真….”,“只有傻瓜才会在自动驾驶系统中采用又贵又笨的Lidar,必定失败!”。 

““Lidar is a fool’s errand,” Elon Musk said. “Anyone relying on lidar isdoomed. Doomed! [They are] expensive sensors that are unnecessary. It’s likehaving a whole bunch of expensive appendices. Like, one appendix is bad, wellnow you have a whole bunch of them, it’s ridiculous, you’ll see.””(原话出在2019年四月份的Tesla自动驾驶开放日,Musk串讲AP技术进展) 

考虑到Elon Musk几乎一贯正确的技术眼光,小编认为其言论不无道理。如果视觉信号都无法处理橙色T恤衫男孩儿和橙色三角锥的差异,则Lidar更加不能;如果视觉信号+AI技术无法区分巧克力松饼和吉娃娃的差别,则Lidar更加不能。从数据获取的丰富度和深度来说,Video信息毫无疑问是比Lidar回波信号图更合适的技术,就更不用考虑二者的成本和安装难易程度上天壤之别的差异了。 

在我们的这个短系列的文章中,不会试图去评判Video/Camera和Lidar的传感器之争谁对谁错,也不会去逐一比较二者的技术优劣。因为我们更关心的是,不断观察Tesla的Autopilot自动驾驶体系的技术演进,是如何改进视觉信号的捕捉和处理技术,Elon Musk的“视觉之路”一步一步到底怎么走,才能最终满足已达百万辆的各型Tesla车辆的安全和可持续的运行,才能支撑整个Tesla庞大的车队和未来呼之欲出的RobotTaxi计划?这几乎已经是当下自动驾驶行业中,最大最典型的技术门派了。 

这才是我们最最关心的问题。 

2、感知和定位模块

在典型的自动驾驶控制回路中,具体的算法落地可以是以下不同的两种落地模式:

图片的(a)部分是广为流行的分体式自动驾驶体系实现,而(b)是在AI技术应用于自动驾驶行业之后才出现的所谓“端到端”自动驾驶体系实现。关于端到端的自动驾驶体系,在我们之前的文章中曾经有过涉及,不是我们今天的重点。但无论分体式还是端到端的自动驾驶体系,其本质在当下都是和机器学习紧密结合的,这是没有差别的。在“分体式”的自动驾驶算法当中,核心的功能模块包含:

  • Perception and Localization/感知和模式识别以及定位模块;
  • High Level Path Planning/高层次的路径规划模块;
  • Behavior Arbitration/低层次的行为决策模块;
  • Motion Controllers/运动控制模块;

以上四大软件功能模块最终会驱动目标车辆进入自动驾驶状态,需要关注的是,独立存在的Safety Monitor监控模块现在已经被广泛接受,不论在“分体式”还是“端到端式”,两种自动驾驶体系都需要人类指定的安全准则保驾护航。本质上,这和阿西莫夫鼎鼎大名的“机器人三原则”非常类似,如果可以针对不同的模块建立人类经验为准绳的安全准则(必须合理),则可以在相对处于“黑盒”状态的机器学习外围增加安全防护边界,在数据训练领域(在理论上),永远也无法穷尽实际道路状况的前提下,最大限度去保证车辆乘客和路人的安全。举个实际的技术实现案例,很长一段时间来,视觉识别的领先者MobileEye一直在坚持的RSS模型即是一个良好的Safety Monitor模块的实现。从本质上看,Responsibility Sensitive Safety/责任安全模型是将人类对于安全驾驶的理念和概念转化成为数学公式和计算方式,用以界定什么样的驾驶行为才是安全的驾驶。 

而对于我们今天的话题来说,我们关注的正是Tesla Autopilot自动驾驶算法中的“感知和定位模块”的具体实现。 

在2019年4月份的特斯拉自动驾驶开放日活动当中,Autopilot部门的技术负责人在Musk的压阵下,系统性地阐述了Tesla在感知模块和数据搜集体系上的建设成果。其中有很多有价值的信息可以让我们管中窥豹。

毫无疑问,Tesla Autopilot的算法实现是依赖其背后的神经网络的,全新的FSD硬件保证了在每一辆行驶中的Tesla车辆上,有充分的计算力去执行足够快速的模式识别计算。但是这个计算的准确性,却需要具体的“模式识别模型”的保障。因此模式识别的准确性和完备性,即构成了不同厂家/不同算法之间最大的能力差距分水岭。 

对于特斯拉来说,上图明确显示了其位于“模式识别模型”建立领域绝对领先地位的技术保障,即超级的数据规模、变化多样的数据覆盖度和绝对真实的场景数据捕获。这几点归根结底都是依赖于庞大的、现实存在的Tesla车队(高于100万辆)。

目前特斯拉车队的活跃度主要集中在北美、欧洲(西欧和北欧)和亚洲(东亚),特斯拉的庞大数据库建立也基本是依赖这三个市场。如果我们以一个实际的“稀有案例”为例,可以选择如下图所示:

在Tesla车辆每天上报的视觉捕捉信息中,极端特殊的“稀有案例”受到特殊的关注。上图中表现出Tesla的车载前置摄像头捕捉到一辆运动自行车悬挂在一辆机动车的尾部,并且特斯拉地机器学习方法按照标准的视觉识别算法将其分类为机动车辆(红色框)和自行车(黄色框)两种。对于横穿马路的自行车和行人,自动驾驶算法会非常敏感,不论是识别模块还是运动控制模块,都会特别关注类似场景以避免严重的交通事故。因此,这种罕见的“稀有案例”将会被特斯拉的自动驾驶训练算法特意标注:自行车目标体在没有径向速度(或者轮胎不接触地面)、且轴向速度和背景关联的车辆目标体一致时,将会被学习为新的目标体“车辆挂载自行车”目标体。对于“车辆挂载自行车”的组合目标体,经过特定训练的Tesla Autopilot自动驾驶算法将不再犹犹豫豫,而是按照正常的机动车行驶规则进行自动驾驶。

类似的“稀有案例”除了训练自动驾驶算法本身,还在Tesla的云平台上被用来实现具体的“离线算法”,离线算法将会通知所有在线的Tesla车辆,在本地如果发现类似的场景,应当及时上报。因此Tesla的云中心最终可以在一个可接受的时间周期内获取大量的类似场景,则理所当然,针对类似组合体的算法判断将会日趋完善,直到达到具体的商用标准。 这是特斯拉独一无二的庞大车队和技术优势。

3、完善算法

除了在上期内容中我们特别介绍的关于“机动车附加自行车”的实际案例,实际上Tesla的这种自我训练方法同样适用于很多种对类似道路情况的机器学习过程。比如:对于道路不明碎片的学习,对于道路上意外闯入的动物得学习、对于道路上各种各样的临时施工的场景的学习。

在上图中,我们可以看到针对“道路不明碎片”的学习输入。基于庞大的特斯拉车队上报信息,各种符合“不明碎片”标准的上报信息(图片和短视频)送到云基础设施之后,被自动甄别算法(可能也是另一种CNN卷积神经网络)所分类,在确认之后执行“Label/标注”动作,然后作为合格的数据,再次被送入Tesla的自动驾驶神经网络的训练过程中去,去修正和完善已有的Tesla自动驾驶算法。 

大致的闭环过程可以参考下图:

初始的自动驾驶神经网络模型被送到车端之后,庞大的车队开始进入“使用/试用”阶段,当然现在AutoPilot对外至少还是必须驾驶员手不能离开方向盘的。在这种严格的有人监督环境下,自驾神经模型开始以各种模式开始“运作”(比如影子模式Shadow Mode),并且不断以单车为单位进行各种自动驾驶级别的命令输出……在这个过程中,一旦输出的命令或者模式/语义识别的处于“Inaccuracy”状态(在上图中特意举了在隧道中行驶的场景为例子),则有两种方法进行干预。 

第一是局部模式,即以单车为单位,将侦测到的Inaccuracy场景通过网络向上导入到云端的Unit Tests进程中去处理,处理之后的模型更新,会反馈通知到全体车队;第二则是全局模式,即以整个Tesla自动驾驶训练系统为Inaccuracy扩散范围,快速将问题场景在全体车队内扩散,搜集大量类似信息,并一同上报到自动驾驶神经网络的训练模型内,做统一处理。并最终将处理结果通知给全体车队。 

很明显,第二种方法由于综合考量了大量的类似的“极端案例/Conner case”,因此云端的自动驾驶神经网络模型将会得到更充分的锻炼和修正,但是这种处理方法是其他厂商所无法借鉴的,是Tesla的天然竞争壁垒,这也是没办法的事情。 

但是细心的行业内的专家可能会发现这种处理方法同样会带来问题,那就是对于大量的上报数据,在Tesla的云平台侧必须要有足够的计算力/人力做Labeling处理,否则类似的训练,可能会因为上报数据的错误分类而导致已有的自动驾驶模型在局部恶化。这个代价是Tesla所不能承受的,因此Tesla也承认这种方法必须要准备足够的人力做“标签/Label”动作,所以是昂贵的且耗时的。

Tesla的AutoPilot后台负责人解释说,他们已经认识到这个问题会随着特斯拉车队的进一步扩张而不断被放大,如果处理不好就无法发挥AutoPilot算法自我演进的最大特色,因此如何降低人力成本、提高训练闭环的自动化比例,是他们当下最重点考虑的任务。例如,在对待邻车道车辆Cut-In和Cut-Out(切入和切出)细分场景,Tesla重点发展了Shadow Mode/影子模式,在神经网络的模型更新中,大幅度提升自动化处理的比例。 

下段讲解对于Shadow Mode的。

4、Cut-in模型

如果希望大规模降低自动驾驶神经网络在后台的训练成本,同时还不影响模型的训练速度和准确性,实际上Tesla需要解决的首要问题就是对于高价值场景(所谓的Corner Cases)“自动标注”的问题。

在特斯拉的自动驾驶开放日当中,自动驾驶神经网络的负责人给出了实际的案例,来解释Tesla的Autopilot算法中的“Cut-in”模块是如何搜集数据并完成自我训练的。

Autopilot算法当中,负责处理相邻车道的车辆“切入”动作判断/识别的模块是独立运作的。如果希望这个模块(或者说是模型)能够非常好地模仿人类的预判和分析水准,就需要提供大规模的实际道路数据去对它进行训练。 

Tesla在这个模块上的做法如下:

1 车辆的前置摄像头将会捕捉前向所有车道的车辆信息,包括本道和临道;
2 车辆的前置摄像头(双目)对于所有视线范围内的运动车辆实体进行测量,测量数据包含车辆位置(相对于本车)和车辆速度;
3 一旦发生临道车辆的Cut-in/切入动作时,即临道前车的轮胎压线触发,则本次行为被本车判定为Cut-in动作,即图中显示红色框的时刻,并记录并上报云端服务器(是否实时上报不详);
4 上报的数据中包含本次Cut-in动作完整的Pattern数据,比如:本车速度、位置,邻车速度、位置,车道线的变化(是否有车道合并或者分叉),红绿灯状态、邻车的前后车速度、位置………等等。 

可以想象,Tesla庞大的现有车队,保障了以上Cut-in数据必然会发生大规模的上报。在这些大量的数据喂养之下,位于云端的Cut-in模块会迅速成型并不断进行自我完善。犹如人类驾驶员一样,如果这位隐藏在幕后的驾驶员算法看过足够多的车辆Cut-in场景,它就足够强大。同时,我们看到在这个Cut-in的模型训练过程中,几乎无需人工干预,自动化的目标识别技术可以准确识别每一个Cut-in场景中的结构化数据,尔省掉了人工标注的繁琐。 

当把训练好的Cut-in模型下发到车队中的每一台车辆上时,Tesla采取了所谓的Shadow Mode的方式,来“离线”地对Cut-in模块进行校准。

Shadow Mode/阴影模式意味着,Cut-in更新的模型即便被下载到车队,也不会实际指挥Tesla的车辆执行实际的“换道”类别操作,包括“自适应巡航”和“换道超车”等标准的ADAS功能。而是活跃在后台默默进行相关判断。比如上图中,Cut-in模块在Shadow mode下工作,监控到右侧前方车辆之后(上图中的那辆车),会使用当前的模型来判断/预测目标车辆的动作趋势,并在合适的时机(时间和位置点)上给出最终的判断。如果这个对于目标车辆的Cut-in切入换道操作正确了,则无需上报任何数据;如果对这个目标车辆的Cut-in切入换道操作判断失误了(Negative),即上图中的有前方车辆并没有在指定时间和预测位置上切入本车道,则此数据被自动标识为Negative Sample而被送到云端,继续对Cut-in模块进行修正性训练,直到达到下一个可以接受的阶段,再次将模型下发车队。 

因此,Shadow Mode状态中的模型训练数据搜集和判别,并不会实际生效,因此在训练过程中是安全的。而且总管整个模型训练——部署——ShadowMode激活——修正——矫正性训练——部署……这个闭环当中,可以看到人力资源基本是不消耗的,系统效率得到大幅度提升。【具体Cut-in模型为例的这些功能模块将在何时达到商用部署标准,并且具体存活在哪些当前的自动驾驶功能模块当中去,本文不做探讨。】 

自动驾驶领域中,把模式识别交给神经网络,完成从学习到应用再到反馈和应用升级的闭环,这种做法目前是业内主流。从Mobileye派生出来的Tesla自主视觉识别体系延续这条道路并不意外。但Tesla车辆实际运营数量的绝对优势,给了Tesla独辟蹊径在更大的范围内扩展这个闭环的可能性,这是Tesla的绝对优势。 

近期的专利曝光期内,又有Tesla的相关专利浮出水面,而且Tesla在神经网络模型的传递方式上也投入不少,包括收购同行业创业公司,目标只有一个,就是不断完善Tesla Autopilot自动驾驶算法大闭环的生存能力。

本文已注明来源和出处,版权归作者所有,如有侵权,您可以告知我们(点击此处)

参与评论

请输入你的评论!
请在这里输入你的名字