驭势科技吴甘沙:如何完成辅助驾驶到自动驾驶的跃迁

  • 吴甘沙
  • 发表于: 2016/08/05 08:54:00 来源:车云网

让自动驾驶变得安全可靠,在3-5年内实现商用。

车云按:8月4日-8月5日由车云和佐思产研联合主办的2016年自动驾驶汽车开发及测试技术研讨会在上海举行。驭势科技(北京)有限公司CEO吴甘沙在会上发表了名为《探索2020年自动驾驶汽车之路》的演讲,介绍了从辅助驾驶到高度自动驾驶乃至无人驾驶的跃迁中,驭势的技术进展。本文由现场演讲整理而成。

驭势科技(北京)有限公司CEO吴甘沙驭势科技(北京)有限公司CEO吴甘沙

这次我的题目是探索2020的自动驾驶之路。首先跟大家做一个术语的定义,现在大家都在做自动驾驶、无人驾驶。到底什么是更准确的定义呢?

八月份会有自动驾驶、无人驾驶的技术标准和路线图,所以我借用它的定义。首先从2007年开始Mobileye开始有驾驶辅助,2015年第一个量产的辅助驾驶Autopilot来自特斯拉。我们期待2020年,会有高度自动驾驶。特斯拉Autopilot主要是在封闭结构化的高速公路上,或者是在停车的时候。到高度自动驾驶,车会开到大街小巷,会与行人、自行车和其他车的关系,会处理路口等非结构化道路场景。谷歌为代表的互联网企业直接切入了无人驾驶。他们也会在2020年推出限定场景的无人驾驶,所谓的限定场景,是城市区域,其次是中低速。再往下走,大家可以看到,203X年的时候会有全天候全区域的无人驾驶。辅助驾驶和高度自动驾驶可以归为自动驾驶,更高的是无人驾驶。这个是现在官方比较推崇的术语的界定。

从驾驶辅助到辅助驾驶

从今天的驾驶辅助,再到辅助驾驶,这里面需要做什么?很显然,我需要更好的识别算法,驾驶辅助很重要的一个指标——误报率,必须很低,不然大家就把这么一套系统关掉了。漏报率可能并不是最重要的一个指标,因为当你变成辅助驾驶之后,漏报率,必须是零。因为出现一起漏报,可能就会车毁人亡。但同时误报率也必须很低。辅助驾驶里面有一个AEB,如果老是误刹,也很麻烦,很危险,所以要求更好的算法和多传感器的融合,尤其是视觉加上雷达。再其次它不仅仅是警告,还加入了规划和控制。这个是从驾驶辅助到辅助驾驶需要做的。

但是特斯拉的这一起车祸告诉我们,光做到这一些还不够。特斯拉的这起车祸大家都知道,一辆横着的拖车,特斯拉就迎面从车肚子直接钻过去了。为什么出了问题呢?首先特斯拉Autopilot用的车辆识别技术还比较原始。它基本上看本车道或者是相邻车道的车屁股。车屁股有非常明显的特征,车屁股下有阴影,有车灯,车是一个对称的几何体。这些特征使得它在夜晚也能比较清晰的识别出来。但是问题出的事故的现场,大家可以看到是一辆横着的车。这个车的色彩很难跟背景区分开来。所以视觉这一块实际上是需要进一步提升的。

另外大家说有雷达,为什么雷达没有起作用呢?这里面马斯克回应了,雷达远处的时候是看到这辆车,但是把它归类成为横跨马路的道路标志。从普通的雷达算法的角度上说,它是希望在靠近的时候能够做出更准确的判断。但是很可惜,这个拖车的底盘非常高,而雷达安装的位置比较低,所以靠近的时候没有发现。实际上更早的时候出现过特斯拉的雷达没有判断出前面较高底盘的车的情况。

我们认识到这些之后,怎么做呢?

第一,可以做更好的识别的算法。比如基于深度学习的识别算法。这个视频实际上是比较老了。是我们一月份的时候做的视频,这里面大家可以看到,它能够对各种各样的车辆进行识别。对于右边车刚刚出现的时候,露出1/3它能识别出来。左边白车即便有遮挡,也能识别出来。所以深度学习能从车的各个角度,对车的类型进行识别。

三目的摄象头三目的摄象头

第二,我们做了基于立体视觉的视觉雷达。大家知道激光雷达非常好,但是它非常好。立体视觉,尤其是双目摄像头,实际上可以充当一个廉价版的穷人激光雷达。我们的一套系统上面装了一个三目的摄象头,边上形成了立体视觉,看到的世界可能是这样。我们把路面的一些信息都过滤掉了。其他的静态动态的物体都有点云,近处是暖色调,远处是冷色调。车刚出现的时候是暖色调,车开远的时候是冷色调。

这样一种视觉雷达好处是在哪里呢?刚才我们说过用深度学习识别的话,它车露出1/3才能够识别出来。现在边上只要露出一点点的迹象,我们就用点云把它抓住了。当然了未来立体视觉要看路面,路面的坑坑洼洼也可以通过这样的方式识别出来。

而且深度学习和视觉雷达可以结合起来用。这个是深度学习,它是一个多任务的网络,它可以识别行人,识别自行车,识别汽车等等。它本身的工作已经相当不错了,但是有行人的情况下,视觉雷达,基于立体视觉的视觉雷达还是非常好的。这个是对行人的检测,大家看到远处的时候是冷色调,近处是暖色调,这两种结合可以达到非常可靠的识别的结果。

同时我们觉得,摄象头也需要演化,因为传统摄象头拍出来的东西是给人看的。而现在的摄象头需要给算法看。怎么样把摄象头调校到算法工作的更好。当我们工作的时候,一会拍到阳光底下,一会拍到树荫底下,一会拍到隧道,非常暗,快出隧道会有非常强的逆光,所以要对摄象头做调校。

同时雷达也可以有挖潜的。奔驰两三年前装了两个远距离雷达和两个近距离的雷达。两个近距离雷达进行融合,可以对行人和汽车做非常好的识别和分类。这个是超出我们原来的想象。就是雷达能对行人和汽车进行分类。另外远距离的雷达,经过算法调教,可以识别车道线和道路边界。雷达上还有可以挖掘的空间。这家以色列公司做了4D的雷达,传统雷达多测速,4D雷达可以测XYZ加速度。所以我们希望在雷达上看到更好的设备。

从辅助驾驶到高度自动驾驶

刚才讲了驾驶辅助到辅助驾驶,那么从辅助驾驶到高度自动驾驶到无人驾驶,要做一些什么呢?

第一要做地图和定位的工作。怎么能做好更好的地图和定位呢?我们传统上,大家知道地图就是导航地图。有道路信息,有路口信息,有一些交通规则的信息就够了。但是要做到高度的自动驾驶,可能需要更多的信息。比如交通信号,车道线数目、坡度和曲率等等等等。要做到无人驾驶的话,可能需要进一步需要高精度地图。这里面要对环境更精细的建模,把各种各样的路标、道路语义都能体现进去。同时它还能给出一些驾驶建议。比如这里需要减速,那个地方需要换道等等。

现在所有这些解决方案,无外乎这5个参数:采集用什么样的设备,定位用什么设备,地图多大,存放位置(到底是云里还是本地),能否实时更新。

我们不妨看谷歌的方案。大家可以看到这是一个非常稠密的点云的地图,信息非常丰富。采集设备是昂贵的激光雷达,定位设备也是昂贵的激光雷达。地图很大(一公里几个Gb),只能存在本地,而且更新会有延迟。

典型图商做的,地图不如谷歌这么稠密,但是信息也非常丰富。它需要更加昂贵的激光雷达采集,同时他们希望用更便宜的设备定位。地图大小中等,决定地图还是要存放在本地。扫街的车毕竟是有限的,所以它更新会延迟。 

我们觉得第三种思路会比较好,它是实时同步的地图构建和定位系统。现在这套系统最早从奔驰上看到,后来从Mobileye roadbook也看到,我们从15年开始也做了这套系统,这套系统怎么工作呢?就像奔驰的这套系统,下面是地图,上面是实时拍过去的情况,它通过一种叫Video Slam的技术,这种技术多数用在机器人里面,找出特征点,可能一张图有五千个特征点,通过这些特征点的额匹配,知道自己在什么地方。 

这种方法的缺点是计算量特别大,而且在某些场合没办法找出来明显的特征点。我们做了一套系统,是基于交通标志的识别。交通标志是一个很好的参考点。车在开的时候可以找到很好的点,并且可以匹配上,定位自己在什么地方。

但是有时候高速上交通标志每过一公里才有一个,这时该怎么办,这种方法最早也是奔驰探索,他会看地面非常丰富的道路线条,这些线条跟地图里进行匹配之后,就能知道自己在什么样的地方。

我们也做了这样一套系统,基于双目的立体视觉。通过空间的几何变换之后,变成从下往上看的视频,地面的这些图形,我们会把它贴起来,变成一条一条的路面的图,并且从路面的图里面,抽取出来明显的视觉特征。这些视觉特征就是地图了。我在开的时候,跟视觉特征做一些匹配的话,就可以做到横向纵向十厘米的定位精度。

即使地面上有很多的阴影,也能做到基本匹配。这样一种基于交通标志牌的匹配,以及基于地面标示这样特征的匹配,使得我们能做到很好的定位。它采集设备是摄象头,定位设备也是摄象头。因为每一辆车都可以装摄象头,所以可以通过众包方式采集。地图非常小,每公里只有几十KB,它存在云里,而且可以实时更新。我们地图和传统地图并不一样,我们的地图只是特定的参考标志,来帮助你做局部的十厘米精度的定位。它跟传统的长距离的定位、导航地图,并不一样。 

除了定位之外还需要更好的认知算法。我们知道自动驾驶分为感知、规划、控制三阶段。在感知的高级阶段和规划的一部分,需要更好的认知算法。我们不妨看高级的感知,首先我们传统的辅助驾驶,只需要认知特定的目标。比如高速上,我只需要认知汽车,在一些十字路口,需要认知行人。高度自动驾驶可能开到很多非常复杂的工况里面,就没办法有一个有限的数据库,在数据库里面能认得出来。传统的视觉方案需要有数据库,高度自动驾驶需要对世界更加复杂的建模。

现在我们尝试一些深度学习的算法,大家可以看到,它能够做相对比较准确的语意的分割,比如路面、车、树、天空。电线杆等等等等。有时候虽然在比较远的地方,大家可以看到,在这么一个分割里面,天桥没有识别出来。但是靠近的时候,还是有非常明显的一个视觉的特征把这个天桥识别出来的。所以这样一些基于深度学习的语意分割会越来越多使用到,并且能做到实时。

Mobileye做过一个工作,在典型的双向路,没有物理隔离,知道自己可以行驶的区域。还有很多场景下,车道线并不清晰,都不是结构化路线,甚至道路边界都很难看出来,就需要深度学习。把可行驶路径找出来。 

再看规划这块,这是我们合伙人姜岩老师拍的一个视频,实现了3环上,48公里的自动驾驶。它展现的不仅仅是繁忙车流里可以自由行驶,还展示了自动驾驶汽车可以从这个车道换到那个车道,但最主要目的还是说,自动驾驶不仅要考虑安全性,还要考虑舒适性,测试结束后,三样东西显示还稳稳被放在车顶。

我们再看一个案例,这个案例是在跟行人混合的场景,这个是新加坡跟MIT做的工作。大家可以看到,它的规划做得并不好,一顿一顿,我引入了更好的算法之后,它把各种新行使的物体包括行人,以马尔科夫决策过程的方式进行建模,这时候就开得平稳很多很多。


▲新加坡与MIT合作自动驾驶汽车在行人环境中行驶+Mobileye环岛切入

这是Mobileye的一个演示,是一个环岛的情况,你的车怎么切入,它能对不同的车进行分类预测。蓝色的车是开得比较aggressive的车,绿色的是不怎么aggressive的车,它们能适时的切入,这是利用了递归神经网络和强化学习的认知算法的一种调度。

当然谷歌事实上是目前来说最复杂的。可以看到它360度激光雷达扫描到的地上的各个物体可以预测到它的行使轨迹和下一步的动机,这个需要规划层面更好的算法。

传统的深度学习,感知一部分和规划一部分用深度学习,规划和控制的绝大部分是通过经验,通过专家系统通过查找来做的。这个做法是视频进去,通过深度学习,建立一个试验模型,包括道路上的各种目标,包括行使路上的情况,预计的轨迹等等,然后进行规划路径。这个规划路径会变成控制命令,方向盘的转动,或者油门或者刹车。 

现在非常热的做法是,前一段时间大家炒作的黑客,号称用2000行代码,实现了可以自动驾驶学习的人工智能,实际上他做的算法在2005年就已经实现了。从视频直接推出我要控制的信号。那时候深度学习还不完善,效果还不好。随着英伟达和GPU的推出,端到端的深度学习就做的非常好,从视频直接出来控制的命令。

对深度学习做个总结,一般来说用到卷积神经网络和递归神经网络和强化学习。大家都知道,递归神经网络和强化学习也用在了AlphaGo里面,做识别,做语意分割和行为的分析和预测。现在我们用到各种各样的深度学习的网络,其实规模并不是很大,大家知道深度学习最深的网络达到一千层,但是我们用十几层的网络,用定点的计算就够了,不用浮点。而且你可以和GPU、Fpga和嵌入式视觉芯片做很好的适配。

而且深度学习要解决数据来源的问题。现在对于我们来说,数据来源有很多方面,比如出租车上可以装上行车记录仪,通过众包的方式,上千人的网络给你标注,你可以像从谷歌街景的数据库里面,把一些道路图画扒出来。 

事实上赛车游戏是很好的搜集数据的方法,因为它既有场景,也有玩游戏的反馈。尤其是端到端的深度学习,这种方法非常有用。还有游戏再加上半自动的众包的标准。通过玩游戏的时候,它通过现成的算法做一定的标准,比如我把车道先给你标一部分,作为一个玩家,可以判断标得准确不准确,最后通过修改。 

最后V2X和激光雷达,可能会在未来3-5年出现,尤其是激光雷达和多摄像头,未来可能会出现融合,现在我们和中科院有一个联合的博士后项目。激光雷达主要是Velodyne、Ibeo、Quanergy,这三种我不具体说了,但是基本上从他们路线图看来的话,都会在三五年之内达到五百美金以下。

对于整套系统,除了感知、规划、控制之外,还需要驾驶员的行为学习。你会希望自动驾驶开得比较舒服,你要考虑人机接口,通过声光电振动的方式跟驾驶员进行交互。尤其是特斯拉这个事情出来之后,大家觉得需要在车里面装一个摄象头,做驾驶员注意力检测,看驾驶员的注意力在不在路上。状态的监控和数据的记录非常重要。尤其是需要确定责任的时候。大家知道特斯拉就是因为有日志的记录,免去了几起的责任。当然搜集数据,会把开头和结尾的5分钟去掉,考虑了隐私保护的问题。

对于软件架构来说,强调实时高可靠高安全的软件架构。今天上午大家应该听到百度的工作,百度是基于一个ROS(Robert Operating assistant)的这套系统。我们基于另外一套系统叫RCS,这套系统是美国军方大量实施使用的一套系统,可靠性和安全性非常高。这个安全性就是从功能安全,要进一步的进入到信息系统安全。因为前一段时间大家知道,这两位黑客通过中控娱乐的联网系统,攻入到车里面,把它引擎关了。所以安全非常重要。

这需要全套的安全可靠性的设计方法,分成四步走。第一步要保证规范是准确的。第二部分要验证实现和规范是不是一致的。第三步是具体运行的时候,第一要保证软件要实时最新的,第二信息安全系统非常高,第三要有足够的冗余。最后一步叫控制。大家看一旦系统失效了,你要有办法随时夺回控制。这里面要求非常高的就是信息安全这一块,原来我是英特尔,英特尔在这一块做了很多的工作,比如能提供一个可靠的基础设施,怎么把多个域进行隔离,怎么在关键的数据通路上进行加密等等,可以借鉴过来。事实上基于ADAS的第一篇关于信息安全的白皮书就是英特尔研究院推出来的。

对于软件的安全性、可靠性很难界定。特斯拉说我开了一1.3亿英里才死了一个人,而美国的平均水平是9000万英里死一个人,世界平局水平是6万英里少一人。所以软件比人开才更安全。事实上懂数学的人都知道这是不成立的,样本空间太小了。明天要是再死一个人的话,就变成6500万英里死一个人。

所以难得它做了一个非常详尽的数学的推演,推演的结果让很多人很吃惊的,它说要跑一百亿英里左右不出事,才能够证明你比人开得安全。但是没有一家主机车厂,能跑一百亿英里,怎么办呢?

就是可以通过模拟和仿真。这是我们做的一个模拟器,就是可以把道路的的情况,你的摄像头、激光雷达、规划和控制都能在模拟器里跑出来,这是很多主机厂在做的。现在谷歌一天能在模拟器里跑300万公里,这是非常重要的。这个是我们另外一个模拟,它模拟自动停车的这样一种情况。在这个模拟器里面,现在速度实际上是提升了几倍的。因为整个的模拟,它要处理各种各样的数据,所以它的模拟是非常慢的。大概是五倍速或者是十倍速放这个模拟过程。这个有点长,我就略过了。

有时候模拟可以跟仿真结合起来。这个是模拟环境,这个是实际的执行机构,可以跟虚拟环境进行交互。

驭势控制器驭势控制器

硬件这一块,我们第一强调小型化。第一辆无人驾驶冠军的车辆斯坦利,它整个后备厢里面塞满了机器,到谷歌2010年的普瑞斯的时候就变得那么小。到雷格萨斯的时候就变得那么小。我们也做了一个控制器,现在看起来还不够小,但是大家看到跟笔记本比起来,也是相当小。第二个是要强调高性能,因为要跑大量的深度学习的算法。这个性能,未来三到五年,可以高到什么程度呢?基本上这么小小的一个盒子里面,它的计算能力可以达到一百到两百台的笔记本计算能力。第三是可靠,使用车规部件,考虑冗余,做温度和电磁干扰测试,这些东西我们也在做。 

最后做个总结,从驾驶辅助到辅助驾驶,面临第一次跃迁。从辅助驾驶到高度自动驾驶到无人驾驶,是第二次跃迁,今天跟大家讲了一下在人工智能等等方面需要做什么样的工作。自动驾驶不仅仅是算法,它是一套超级复杂的系统工程。要考虑可靠性、安全性。最后还是强调,自动驾驶在相当长的一段时间里面,还是统计上比较可靠,但是还是可能会犯低级错误的技术,需要业界和学术界的合作,政府和媒体的支持和宽容,使得它的技术在未来3-5年真正能实用。

相关标签:
ADAS
智能汽车
自动驾驶
  • 车云星
  • 空间站
  • 福特星球
  • 虫洞

加料 /

人评论 | 人参与 登录
查看更多评论