雷锋网新智驾按:本文由公众号“中国自动化学会”整理自西安交通大学人工智能与机器人研究所、视觉信息处理与应用国家工程实验室郑南宁教授今年11月23日在国家智能车论坛(常熟)上的报告。雷锋网新智驾经授权发布,转载请联系出处。
以下为郑南宁教授演讲内容:
我们人在开车的时候,实际上是有一个选择性注意的,也就是说,无论车外的场景怎么千变万化,但是我们人首先是要找哪些地方可以行驶,哪些地方不可以行驶。
也就是说,车外状态是无限状态空间,但我们要把车外的无限状态空间抽象成可描述的“0、1”的状态。要实现这一基本目的,就要从人的认知角度重新定义自主驾驶。
这是2002年,我们研发的思源1号无人驾驶智能车。
到2005年,当时我们雄心勃勃,认为在校园里面可以跑了,它就可以上路了。实际上驶出校门,情况就完全不一样了。我们当时制定了一个“新丝绸之路挑战”的计划。
这是当年在学校的四大发明广场出征的照片(如上图)。选择从西安行驶到敦煌,其目的一是在实际的交通场景中验证我们的系统,二是为研究工作采集更多的真实交通环境的数据,总距离1700多公里。
但是出了校门以后,大多数时间需要人工干预,是人在开,只是在沙漠的道路上,几乎没有来往的车辆和行人,交通场景相当简单,这个无人车才能平稳缓慢地行驶(这是当时在路上的一段视频)。
上述介绍的是12年前的研究工作。 从2000年初以来,我们始终坚持在这个方向,从基础研究到关键技术不断地向前发展。
这是2016年在一个比较复杂的环境中进一步验证我们研究的基本模型,这是在非结构化的道路来验证无人车的控制系统。当时后面还有一个裁判车,裁判车遇到这种路面情况要不断地换档,适应路况,有时候就陷在泥路上,但是这辆无人车可以平稳的行驶,也就是说,它的感知和控制是适应这样环境的。
我们再来看一下夸父号无人车在城市交通环境中的表现。当然这个交通场景也并不复杂,它还可以超车,可以实现一个非常平稳的拐弯。我们再来看一下在GPS信号缺失的情况下,无人车如何找出地下车库的出口。
从2016年进展来看,2005年我们的无人车就是一只“丑小鸭”,许多科学研究工作就是这样,总是从一步一步的走向更加完善的阶段。
尽管我们看到夸父号可以在城市道路上行驶,也可以从车库里出来,但是面对更为复杂交通环境的情况,它没有办法作出可靠的响应和判断。
这里给出的是城市中复杂交通场景的情况,我们可以看到在这些无交通指示路口、环岛路口,还有交通指示复杂的状况,各种车辆的行驶的不同状态,无人车无法在这些环境做到准确的判断。那么人是怎么判断的呢?
这个场景有行人,有非机动车,也有机动车,我们看一看它的状态是怎么形成的。十字路口的交通场景是不可预测的,但是每个OBJECT相互关联形成一个稳定的系统,这里就反映出,人在这些场景中能够迅速的理解和判断各个对象之间的关联性,而无人车也必须要能够抽象和表述这种关联性才能做出准确的判断。
我们来看看无人驾驶要适应这些复杂的交通环境所面临的五大挑战。
第一,复杂交通场景的周密感知。自主驾驶要在所有条件下都要能作出安全的判断,无论是天气变化,路况的复杂,它要非常周密的感知周围的场景。
第二,意外的遭遇的理解和判断。自主驾驶必须能够抽象,所谓抽象就是能够根据环境或其他语境的线索来理解交通情境。
目前自主驾驶很难解释异常现象,比如说城市经常交通管制,交通管制有时并不提前通知;比如无人车来到这个十字路口,遇上交通管制,交警用手势指挥车辆的停止和行驶。
另外由计算机来判断路边的行人或非机动车是不是很快要闯入到自己前进的方向?这些现象说明仅仅基于简单规则的自主驾驶是不可能为每个场景进行编码。
第三,预行为理解。什么叫预行为呢?人类驾驶员是根据预行为来传达我们行驶的意图。
比如,我们开车在路上走,前方的车,我们能判断出前方开车的是一个老司机还是一个新手,如果是新手,有时候要离它远一点。但是目前在自主驾驶技术很难解释或理解这些细微的预行为。
第四,网络安全的风险。这里给大家展现的这个现象在未来一定会出现。当你早上起来到车库,让无人车开出车库,这个时候你手机上就接到一个短信,要你在今天几点以前支付比特币才能让你的车门打开。
虽然黑客的这种行为不会影响你的生命安全,但是你没有办法使用自己的车。因此,通过云端的获取和更新地图的自主驾驶将面临更大的风险。这种风险的存在使得我们在研究自主驾驶无人车的时,必须要考虑:怎么样提供更加可靠,更加安全的自主驾驶。
第五,人-车的自然交互。自主驾驶必须以自然的方式与人类交流,要实现车辆与乘客之间的无障碍交流。
比如,乘客上了无人车,自主驾驶系统知晓乘客要去的目的地,理解并回答乘客提出的问题,比如我还有多少时间能到达目的地?请播放一首歌等等。
也就是说,自然的人-车交互的可以为乘客提供更加舒适、愉快、直观的、人性化的体验,而不是一个简单的点到点的行驶。
从我前面所谈的这些问题可以清楚地看到,自主驾驶面临的许多问题是具有不确定性、脆弱性和开放性。而带来的不确定性、脆弱性和开放性是存在着两个问题,即,对于驾驶行为来讲存在:
1、条件问题。因为我们不可能枚举出规划一个行为的所有先决条件。
2、分支问题,我们不可能枚举出产生一个行为的所有分支。因此我们需要将车外复杂未知的现实世界的描述转变成有限的语义“推理”,这是一个直观的理解。人开车在很多场合下是一种直觉的判断。直觉判断就是要使得机器也要有对环境有直观的理解。
这里展现的图是目前绝大多数自主驾驶采用的基本技术框架。首先是场景感知,然后是定位,随着给出驾驶决策、规划和行为的控制。但是我们人在开车的时候并不是按照这样一个简单的串型的方式进行的。
人类驾驶员开车是一个对交通情境认知理解的连续过程。因此我们需要探讨类人自主驾驶的一种新的方法,也就是说,自主驾驶不是简单的AI的形式,不是简单的一种形式化问题的求解。
既然不是一个简单的形式化问题的求解,那么,怎样定义自主驾驶这个问题?
这里我们把场景感知和情境认知区别开来,所谓“场景”是指某个交通场合在一个特定的时间和特定的空间中的具体情形或景象。它可以定义为一组实体,当然这种实体的描述是通过传感器的数据来获得的。
“情境”,它是指某一段时间和空间许多具体情形的概括。“情境”的“境”是指构成和蕴含在场景中的那些相互交织的因素及其相互之间的关系。所以情境计算是对场景各个对象相互关系的解释。交通环境中各种物体(或对象)关系的描述在自主驾驶中就显得非常重要。
前面我们分别谈到了场景感知和情境计算。那么我们怎么用机器来实现它?我们还要定义机器实现的基本科学问题。
这里我们从情境认知的角度来重新定义自主驾驶:如何使自主驾驶汽车像人一样理解和记忆交通情境,使其具有记忆、推理和经验更新的机制,能够应对高动态和强随机性的交通场景变化?这里谈到了记忆和理解。
那么,怎样实现理解和记忆的目的是什么?也就是说,我们要发展一种进化的、发展的自主驾驶学习系统,使自主驾驶系统像人类驾驶员一样熟能生巧。
为什么谈到“进化”,因为,如果设计一个深度学习系统来构建一个自主驾驶,你设计成什么样的算法,你的车就具有什么样的能力和属性。但是我们人不是这样,我们在驾校学习驾驶,然后取得驾驶执照,随着开车的时间增长,驾驶技术会越来越娴熟。所以这里如何把熟能生巧和系统实现结合,这就是我们现在正在做的工作。
在我们思考这个问题的时候,需要从认知的角度去了解人类驾驶员是如何注意并获取交通环境信息的?而交通环境的信息是如何在大脑中储存和加工的?特别是在产生驾驶行为的背后存在怎样的内部表征?
人对环境信息的注意是具有高度选择性,它只注意自己感兴趣的,只注意自己在下一步采取行为的时候,周围的场景因素会对自己的行为产生什么样的影响。
从这个角度来看,我们要将许多无意义的线段及场景特征组织和建立一个有意义的模型。我们从视觉获得场景的图像,实际上传感器得到的都是若干个杂乱的无意义的点、线段,那怎么把无意义的点、线段描述成有意义的实景,这就需要知识。
从认知的层面,将孤立、分别的感知事件转换成有意义的模型表征。每一个传感器是从这个感知通道得到孤立的事件,那怎么能够把各类传感器所获得的信息在事件驱动的情况下来构成有意义的模式表征?按照这样一个思路,我们逐步来实现怎么在机器上通过算法和模型表征它。
这里给出场景感知与情境记忆的基本模块。这是环境信息输入,我们可以把视觉传感器所获得的信息看成是传感器对外界场景的快速扫描,快速的扫描是一种预编码,在这面我们引入一些选择性记忆,把这样一个预编码的信息再送到短期的记忆,后面是长期记忆,长期记忆是把前面短期记忆抽象出来的知识和我们的交通规则整体形成一个长期记忆的知识库。
在信息处理模型中有四个认知过程,正如我前面所谈到的对场景的快速扫描,是一种选择性注意。对感觉记忆的一些特定信息的注意,然后进入到“学习”,而这个学习是在短期记忆中建立联系,我们又称之为“组织”。
从图像处理来看,提取了各个边缘, 把这些边缘组织形成有意义的面,这些有意义的面进而构成对一个三维物体的描述,也就是说,从线到面再到三维实体描述,实际上就是一个组织的过程。对这些组织的过程,我们还需要进行整合,这个整合实际上是把长期记忆与现场,还有与交通规则形成关联描述。
这些长期记忆还要反馈到短期记忆中,然后在短期记忆中再进行整合,这个整合过程是一个再学习的过程。也就是说在已有知识情况下扩充一种新的知识的描述。
得到这样一个结果以后,我们就可以实现把一个短期记忆转换成长期的记忆,就可以实现一种编码。在这个过程中既有前馈又有反馈,而当前主要的自主驾驶汽车框架是串型结构。
另外,人对场景的变化非常敏感,比如人开车看到右前方有一个骑自行车的,这个时候驾驶员的注意力就转移到具体的位置和视角。从人的驾驶来看,注意力在自主驾驶中是不可或缺的。
从前面讨论我们再来看看认知构建的自主驾驶,我们把它称之为直觉性AI。当前深度学习的“端到端”的自主驾驶方法在结构化或半结构化的交通场景取得了很大的成功,但是在复杂的城区道路或恶劣环境中依然面临巨大的困难。
带来这些困难的一个直接原因是,许多交通场景的复杂性和动态性并不都是可观测和可控的。特别是行驶过程中对异常情况的处理能力是无法通过事先的大量样本训练得到,而且也无法获得大量的负样本。
但是交通场景没有办法在现场采集更多的负样本,所以怎么用对抗网络来实现大量交通场景的负样本训练汽车,下午会有其专家做更深入的探讨。
对于“场景感知”与“情境认知”的融合,我们进一步给出其定义。
情境是对场景动态变化的解释,还涉及到自主驾驶的行为模型、行动结果和内部状态,包括转向、速度、意图或目标。
虽然场景是对外部环境中感知可信实体的完整描述,但是情境仅包括必须认识到情况和/或启动适当行为的相关实体。这里的描述实际上谈到就是选择性,因为传感器是对周围场景所有数据的采集,但是对于情境认知而言,我们并不需要对所有场景进行计算。
那机器怎么实现?我们需要要建立世界模型,即情境认知地图的构建。这里要给出各个场景的影响关系、因果关系和控制关系。融合先验信息的概率模型,这里就是记忆与学习。这里我们提到了成本函数和预测与优化。
什么叫认知地图?这里举一个简单的例子,人类理解或描述物理世界时,大脑总会形成一种对时间的“可视化”图像。我们把这种可视化图像称之为认知地图。
左边这幅图,大家看到就很快会记住,而右边这个图你就很难记住,因为右边这个图,我们无法按照常识去解释他们相互之间的关系。也就是说,在物理世界中,各个物体依存的关系是记忆的基础,这里又进一步强调了对场景中各个实体相互关联的描述是自主驾驶中内部表征一个极其重要的因素。
构建起无人驾驶的认知地图,包括车辆、交通标识、障碍物行人等构成的可行驶区域的基本属性。同时也包括递归网络所学习得到的关于预注意机制、驾驶意图等高级认知属性。我们把车辆当前状态与交通知识也作为认知地图的一部分。也就是说,在这样一个场景中,根据场景动态的变化来形成时间上的认知地图的一种序列。
上面讨论了在认知地图基础上构成的基于认知构建的自主驾驶基本框架。这个基本框架有深度卷积神经网络、LSTM单元等,利用这样一个框架把场景感知与情境计算融合在一起 。
如何检测可行驶区域?这里展现的方法是我们提出的智能计算前移技术的实现,即:使不同传感器在数据端进行融合处理。
这里我们提出一个模型叫“共点映射”,就是把激光雷达数据和图象数据进行融合,因为这里面有一个假设,也就是说,深度的不连续往往发生在图像分割的边缘上,所谓深度不连续区域,就是我们看到物体的正面和侧面显然不是在一个深度上。
依据“共点映射”, 把激光雷达的数据经处理投影到二维图像的数据中,这样可以把物体,即前面我们谈到的场景中每一个实体准确的分割出来。我们就可以可靠地找到车的前方哪些是可行驶的区域,哪些是周围的路沿、建筑物、树木等等。
共点映射的计算有三个层次:
第一,数据层面上进行融合;
第二,特征提取;
第三,特征融合。
这里再简单介绍一下我们在自主驾驶领域开展的一些基础理论研究。这是我们用眼动仪检测人类驾驶员的注意力是怎么转移的,他怎么关注周围场景的,也就是说,要寻找注意力与视觉线索的关系。
这是眼动仪给出的驾驶员在驾驶过程中不断关注的点。做了这样一个实验,我们可以看到有一个基本的规律,也就是说在多数情况下特征基本上与目标大小无关,而且注意过程中,它有一个预备性搜索的作用与序列搜索之间的关系,而这种关系是需要一个连续绑定的步骤。
这里谈的绑定是什么意思?实际上我们从认知角度来看,人在判断前方目标时,它判断这个区域大小和目标的形状,和看见这个目标的颜色分类,实际上在脑部不同区域实现的。
从这个意义上来讲,我们在构建这样一个认知过程时,就需要多个模型对场景特征并行进行描述。
下面再来看一看自主驾驶混合学习网络。
先是用人在这个环境中开一遍,训练自主驾驶系统,然后再让这个自主驾驶系统再在这个环境中行驶一遍。这些点是场景中的显著性注视点,左边给出的是它行驶的路径。
我们用人开车的情况来训练这个网络,让这个网络能够逐步形成一个拟人驾驶的状态。除了人来训练自主驾驶汽车,我们再来看看用游戏来训练无人驾驶学习网络的情况。
这是学习两个小时后,这个车基本上就没有正常行驶过,不断地出交通事故,学习四个小时以后比刚才要好一些了。这是学习六个小时以后。这是学习十个小时以后,这个网络慢慢能够学会驾驶了。
上图看到的视频片段是无人机与无人车的协同作业。
中国智能车未来挑战赛是2009年开始的。在2008年国家自然科学基金委设立了一个重大研发研究计划,计划的名称是“视听觉信息的认知计算”,在这个计划中我们把无人驾驶平台作为这个重大计划的验证平台。它的目的是把视听觉认知计算的一些模型、一些理论和一些新的方法能够在这个平台上进行验证。也就是说,让实验室一些研究成果走向真实的物理世界。
2009年是在西安,当时在一个酒店的小区。2010年依然是在西安,在长安大学的试车场。
第一届和第二届比赛的内容和水平是非常简单的。因为那个时候的传感器没有像今天这样丰富,当时的计算机的计算能力还非常低下。第三届我们移师到鄂尔多斯,在鄂尔多斯的挑战赛有城区道路,也有乡村道路。第四届就到了赤峰。在鄂尔多斯和赤峰都是在真实道路上来进行比赛。
第五届开始就到了常熟,常熟已经连续举办了四届,这个周末在常熟举办今年的比赛,赛事安排有高架道路和城乡道路上。这一届挑战赛增加了无人车在高架道路上要汇入众多的有人驾驶车辆的交通流中、躲避障碍、通过收费站等,在城乡道路又通过含有障碍的隧道、路遇行人让行、自主泊车等15项考核。
实现完全自主的无人驾驶是一个令人兴奋却又望而生畏的艰难挑战。
当然,目前自主驾驶的一些技术已经可以为有人驾驶的车提供先进的辅助安全驾驶系统,无人驾驶汽车也可以在一些特定的区域、小区、城市指定的专用道路或者高速公路正常交通车流的情况下实现自主的驾驶。但是我们要让无人车能够进入寻常百姓家,能够非常自如的进入地下车库,也能够停到小街小巷,能够进入非常复杂的十字路口,我们还面临着很艰难的挑战。
当前,一些公司和车企都在进行无人驾驶的路试,一些商业行为表现出的前景很诱人,诱人的前景使人容易忽视发展自主驾驶所面临的挑战,也使得社会公众认为具有高智能的无人驾驶很快就能进入寻常百姓家庭。
以目前的交通状况和技术水平来看,无人驾驶技术要得到大规模的普及,一方面有待于低成本、高性能的传感技术方面取得突破;另一方面还需要大幅提升无人驾驶的计算能力。因此,我们可能需要十几年甚至更长的时间完善无人驾驶在复杂的城市道路交通环境中的安全性能。
在这些挑战的背后,我们需要用什么样的方法、什么样的新模型,的确需要我们加强基础研究。还有,无人车的发展离不开企业,特别是整车制造企业一定要成为自主驾驶技术成果转化落地和创新发展的主体。
近年来,我们与广汽研究院在无人驾驶技术领域开始了合作,他们在智能车的改装和平台控制方面走在国内车企的前面。
高校、研究院所和企业一定要紧密的合作,毕竟无人车的研发不同于一般的科研协同,不是简单的在实验室或有限的、简单的环境中实现就行了,它必须要到一个真实、复杂、开放、动态,在不可预测的环境中去实现它。
在会后的讨论中,郑南宁教授进一步谈到:
真实的交通环境复杂多变,很难预测车辆在行驶过程中会遇到什么样的问题。因此无人车想要投入实际应用,必须在真实的环境下不断测试。我们面临的另一个无法回避的问题是,目前有关交通的法律法规不允许没有牌照的无人车上路测试,我们只能在特定的试验场测试。现行《中华人民共和国公路法》第五十一条规定,机动车制造厂和其他单位不得将公路作为检验机动车制动性能的试车场地。
所以,当前在国内公共道路上进行无人驾驶车的测试还是违法的。实验模拟路况和真实路况有很大差距,在对无人驾驶智能车的创新研发上,需要政府和主管部门给予更多政策法规上的支持和提供更加开放的研发环境。比如:能否开放一个指定的区域,给无人驾驶智能车提供临时牌照允许其上路测试?
从创新驱动发展的意义上来说,在体制上为新技术的发展提供空间和政策支持,与提供充足的科研经费同等重要。
PS:自动驾驶汽车是人工智能和机器学习领域研究者们数十年科研的成果汇聚,郑南宁教授的分享报告便是其中的缩影。尤其是以智能未来车挑战赛为代表的这些参与者、亲历者们,他们这段漫长而丰富的研究过程,值得我们一起重新领略。
2018年1月16日,在中国的另一端,雷锋网新智驾将在美国硅谷举办GAIR硅谷智能驾驶峰会,我们也邀请了重磅嘉宾、2005 年 DAPRA 挑战赛冠军斯坦福车队成员,无人驾驶行业萌芽的亲历者 Adrian Kaehler 进行主题演讲。详情请点击 https://gair.leiphone.com/gair/gairsv2018。
这些探索者们、先锋们在自动驾驶探索过程中的精彩点滴无疑值得我们细细回味。
雷锋网推荐阅读: