阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

自动驾驶从 0 到 1 之路

  • 2019-07-15
  • 本文字数:4128 字

    阅读完需:约 14 分钟

自动驾驶从0到1之路

About Pony.ai



从 0 说起



汽车是 1886 年诞生的,卡尔本茨先生建造的人类历史上的第一辆汽车,到现在只有短短 130 多年的历史。人类首次尝试无人驾驶的时间为 1925 年,当然这不是为了展示人工智能,而是用来展示无线电技术,它是用后面一辆车的无线电来控制前面一辆车的行为。之后的很多年,技术还是达不到让车辆自主行驶的水平。往往很多新事物的产生,都发端于科幻。比如,小说海底两万里中的潜水艇,成书的时候还没有潜水艇,但是在短短的一段时间之后潜水艇就出现了,所以科幻和科学是有密切关系的。自动驾驶也一样,在现实中还没有出现自动驾驶车辆的时候,科幻先描绘了自动驾驶的未来:


00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    这个是 1982 年的美剧《霹雳游侠》,90 年代引入中国,当时也是比较火热的一部剧,里面就有描绘自动驾驶的片段,如上。



    很快过了 20 年以后,在科研上,就出现了这样的汽车,最著名的就是 DARPA Challenge,DARPA 是美国国防部下属的研究机构,现在所使用的 GPS 系统,就是这家机构在 70 年代资助的。DARPA 在 2004 年第一次举办了无人车挑战赛,在一个沙漠路段,让自动驾驶汽车完成行驶,当时没有车辆完成挑战。但是到了 2005 年,有 5 个团队达成了目标,到 2007 年,开始挑战模拟的城市道路,并且需要在限定时间内完成。这个挑战赛的难度越来越大,并且开始有科研机构参与进来,其中最著名的就是斯坦福大学和卡耐基梅隆大学的研究团队,现在很多自动驾驶领域的领导者,都是当时研究团队里的研究生和教授。他们也贡献了自动驾驶领域最有参考价值的文献,如:


    • “Towards 3D Object Recognition via Classification of Arbitrary Object Tracks”

    • “Tracking-based semi-supervised learning”

    • “Towards fully autonomous driving: Systems and algorithms”



    所以在科研之后,工业界就开始关注这件事情,在最近的十几年还有很多事情让无人驾驶成为可能:


    • 车辆技术:汽车的电子化和电动化。因为自动驾驶很多程序是需要电控系统的,如果是传统的液压或者机械控制方式,在反应速度和控制难度都会大很多。

    • 算力 &芯片:算力的提升和芯片技术的进步,最优代表性的就是 CPU。

    • 传感器:比如激光雷达,让自动驾驶能够达到更好的感知效果。

    • 大数据:互联网带来的大数据技术。


    所有的这些再结合机器学习算法的进步,让自动驾驶成为可能,并让工业界进入这一领域。



    第一个是 Google,在 2009 年进入这一领域,并且收购了上述两个最优秀的大学科研团队。因此 Google 的无人车领先于世界,直到今天。


    其他的公司也陆续进入了这一领域:



    主要分为三类公司:高科技公司、汽车的一级供应商和主机厂。通过早期的文献,这些公司打造了自己的原型车。



    当原型车出来之后,是否就是实现了从 0 到 1?不是的,原因可以参考上面的例子:现实非常骨感,即使我们根据前面的论文做出了原型车,在路上会遇到这样的情况,如逆行的电动车,这在挑战赛里是没有的。



    还有这个场景,可以看到晚上会有一辆三轮车,并且上面会有非常庞大的物体,这对人工智能会是一个很大的挑战:如何判断这到底是个什么物体。



    还有红绿灯,我们会发现每个城市,甚至不同的区域,红绿灯都有不同的模式,有各种的形状,以及逆光等等,都需要算法来解决,还有个更可怕的情况,如最右边的红绿灯,大家可以看到是个绿灯,但是真实的情况这个红绿灯坏了是不亮的,但是反绿。如果自动驾驶汽车要安全行驶就必须要解决这些问题,这些都是前面那些论文里不曾提及的。



    工业界打造自动驾驶汽车,一定会商业化,并且创造市场价值,这不是做一个研究,所以最终的目标一定是:扩大车辆的数量,覆盖的范围,行驶的里程,运营的时段。所以这就带来了很多工程上的挑战。这里只是列举了其中一些:稳定性、可靠性、可扩展性、自动化、复杂场景处理、Corner case、大规模地图生成、地图增量快速更新、大数据存储和计算、BI、HMI、Control Center,所有的这些都需要我们去面对。



    打个比方,就是从第一辆的奔驰车->5、60 年代的奔驰车->到现在的奔驰车。我们需要一次次的迭代。类比一下汽车换代,也许我们做出的第一辆原型车就是左边这辆车,但是我们最终的目标,是达到最右边或者中间的状态,虽然都是自动驾驶汽车,但是有非常大的不同。比汽车换代更难的是,我们的系统在升级换代时,是需要保持同步的测试的。



    方法是我们会有一个非常快的迭代和流程,一个工程师如果要开发一个功能,或者修复一个 bug,会先在代码上做更新,然后在模拟仿真的环境下测试,测试的环境或者场景来自我们从各个地方采集的数据,如果都完成了之后,我们会进行场地测试或者路测,来验证是否达到预期,中间任何步骤如果不符合预期,会重新回到第一步骤,然后再次验证。实际这个流程是非常快的,一般当天就会有结果。如果测试结果 OK,每周都会同步到我们所有的测试车辆上。并且每个工程师都可以独立、并行的来做这件事情,这就保证了一个非常快的迭代节奏。


    这是软件的迭代节奏,硬件上虽然不如软件这么快,但是我们也在保持一个非常快的节奏。



    在技术上,我们也做了很多的创新,比如车载操作系统,我们放弃了 ROS,打造了自己的 PonyBrain 操作系统,目的是让系统更好的适应自动驾驶的场景。ROS 是一个分布式系统,并且它的时序是无法保证的,跟自动驾驶集中式的处理是相悖的,所以用我们自己打造的系统会有更高的效率,从我们实测来看,在同样的场景,我们系统的性能要高一个数量级。保证了车辆会有更大的空间去做算法的开发,并且能够保证安全性。如果实时性比较差的话,车辆在高速行驶中的安全性就得不到保证,因为 0.1 秒的差距就有产生很大距离的误差。



    在数据上,我们也面临非常大的挑战,首先它跟互联网数据一样都很大,单辆车就会产生 PB 级的数据,远远多于一个互联网用户产生的数据,并且来源和互联网数据也不同,它的数据来自于客户端、大量的传感器数据以及模块运行日志。所以我们会自己打造一套数据系统,当然我们会利用之前已经有的技术,以及互联网的经验积累。



    仿真系统,这个对我们也是非常重要,如果要保证算法的快速迭代,没有仿真的验证就会很慢,原因是很多的验证不可能去做实测,左边显示的是我们路测时候的场景,所有我们在路测过中认为是很重要的场景或者 case,都会收集到仿真系统中,所有代码的改动,都会触发重新测试这些 case,它可以保证我们的系统是进化的,而不是解决了一个问题,又冒出另外一个问题。仿真系统还有另外一个功能就是可以创造一些场景,因为某些场景在现实中是很难收集得到的。



    高精地图也是一个绕不开的话题,与传统导航地图相比,我们的数据量非常大,并且要求厘米级的精度,而导航地图到米就足够了。最后就是更新的频率,导航地图可能一个月更新一次,对于自动驾驶,我们最早是天级别的,后来发现不够,又采用增量和全量更新的方式做到了小时级别,后来发现小时级还是不够,因为经常会有人把路封住,比如修路,这时单纯靠感知的能力不是特别理想,如果我们的第一辆车感知到这个场景,我们就会下发到其他所有车辆,告诉他们这个地方是不通的,所以我们可以达到分钟级别的响应。



    传感器的融合,最核心的传感器有毫米波雷达,摄像头,激光雷达等,这几个传感器都有各自的优点,目前还无法互相取代。那么如何去使用这些传感器,达到安全驾驶,我们的思路是把传感器的数据融合起来,这里展示的是,把激光雷达的数据和摄像头的数据进行了融合。激光雷达的一个特性是有非常准确的距离数据,摄像头的优点是分辨率非常高,并且有色彩和纹理,如果能把更多类的传感器数据融合在一起,那么后面无论是传统方法还是深度学习方法,都能取得一个更好的效果,从源头上解决感知效果的问题。当然这里有很多很难的技术,比如传感器的标定,我们需要把所有的传感器结果投影到一起,它们之间的 3D 关系,是一个很难的问题。还有就是时间的同步,每种传感器触发的时间都是不一致的,如果误差在零点零几秒,我们就无法做到图中的情况,做不到时间上的同步。



    这是我们通过一系列创新和迭代达到的效果,这是加州车辆管理局(DMV)公布的,各家在加州获得牌照进行测试的一些自动驾驶公司的数据(不包括中国路测的数据),最重要的两个数据是里程和 MPI ( 平均多少公里以后需要人工接管,这个数据越高越好,表示车辆智能化程度越高 ) 。


    这是 Pony.ai 部分路测片段,包含了晚高峰、动态寻路和雨夜等场景:


    00:00 / 00:00
      1.0x
      • 2.0x
      • 1.5x
      • 1.25x
      • 1.0x
      • 0.75x
      • 0.5x
      网页全屏
      全屏
      00:00


      Pony.ai 部分路测片段



      Pony.ai 在做的一个未来自动驾驶的可能落地模式:自动驾驶出租车(Robotaxi)。这里的技术挑战是什么呢?在很多公司的展示中,我们看到的是从 A 点到 B 点的展示,它只有一条固定路线,甚至是固定车道,并且容易过度拟合。而区域内出租车是多点动态寻路,面临的场景是该地区内的任何路线或车道,复杂性呈指数级增长。


      2018 年 12 月,我们发布了 PonyPilot 项目的同名内测版小程序。通过小程序,试乘者在覆盖区域内可以自由选择想去的目的地。目前除了内部员工外,该小程序的权限为邀请制,未来考虑开放为可自由下载。


      00:00 / 00:00
        1.0x
        • 2.0x
        • 1.5x
        • 1.25x
        • 1.0x
        • 0.75x
        • 0.5x
        网页全屏
        全屏
        00:00


        PonyPilot 体验



        PonyPilot 内测版小程序


        离 1 还有多远



        我们自己认为自动驾驶会有这样的几个阶段:最早的就是原型车或者普通的展示,然后有些公司会往前走,做一个优秀的展示,第三个阶段就是我们现在在努力实现的,打造的无人驾驶车队的运营,只有通过这个阶段来验证系统的可靠性,去不断的收集数据,不断的算法迭代,才有可能达到商业化,它无法从一个优秀的展示,直接跨越到商业化产品,所以中间的阶段是目前头部公司一直在努力达到的一个阶段,这个阶段做好之后就会尝试在某个区域进行商业化的运营,这时自动驾驶就会真正进入到人们的生活,到最后才是自动驾驶进入城市或者千家万户。最终的目标还非常遥远(10 年计),但是自动驾驶的商业化没有那么远。



        最终自动驾驶会成为一个现实,我们的智慧交通、智慧城市也会真正的实现,也许到那时在道路上开一辆非自动驾驶的汽车是非法的,比如现在在马路上骑马就是非法的。我们期待着这一天的实现,谢谢大家。


        作者介绍


        李衡宇,Pony.ai 北京研发中心负责人,四川大学电子信息学硕士,前百度广告搜索部和自动驾驶事业部资深工程师,曾获“百度最高奖(百万美元大奖)”,目前在 Pony.ai 负责自动驾驶整体技术研发。


        本文来自 DataFun 社区


        原文链接


        https://mp.weixin.qq.com/s/_0wlfAE_Ccf3WOl-DUA1XA


        公众号推荐:

        跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

        2019-07-15 17:182915

        评论 1 条评论

        发布
        用户头像
        最好的实施方案是与交通部的系统进行对接,比如 红绿灯控制系统对接,各种系统对接后进行实施。
        2019-07-25 16:44
        回复
        没有更多了
        发现更多内容

        「架构师训练营」食堂就餐卡系统设计-week1

        隆隆

        常见的几种广告形式以及 OTT 广告与在线广告区别

        子悠

        计算广告 互联网广告

        成为一名架构师

        谭焜鹏

        第一周作业

        lwy

        小白学软件架构

        鸠摩智

        架构 UML

        架构总结

        高高

        Week01 食堂就餐卡系统设计

        极客大学架构师训练营

        【架构师训练营 - week1 -1】食堂就餐卡系统设计

        早睡早起

        作业一:食堂就餐卡系统设计

        叶荣添CANADA

        极客大学架构师训练营

        食堂就餐系统设计

        石刻掌纹

        UML

        架构学习第一周总结

        云峰

        架构师训练营第一周总结作业

        兔狲

        极客大学架构师训练营

        作业二:根据当周学习情况,完成一篇学习总结

        叶荣添CANADA

        食堂就餐卡系统设计

        Vincent

        极客时间

        架构学习第一周学习总结

        乐天

        作业一:食堂就餐卡系统设计

        Melo

        极客大学架构师训练营

        架构师训练营第1周-心得体会

        Larry

        食堂就餐卡系统设计

        哼哼

        架构设计心得

        吴吴

        第一周学习总结

        Vincent

        极客时间

        架构师训练Week1 - 食堂就餐卡系统架构设计

        伊利是个圈

        架构设计 极客大学架构师训练营 UML 作业

        【架构师训练营-Week-1】总结

        Andy

        第一周学习总结

        Jeremy

        食堂就餐卡设计

        吴吴

        第一周作业一:食堂就餐卡系统设计

        iHai

        架构是训练营

        餐卡管理系统关键设计图

        lei Shi

        架构师训练 - 20200610 - 学习总结

        lei Shi

        2020-06-10-第一周学习总结

        路易斯李李李

        食堂就餐系统架构设计

        K先生

        「架构师训练营」架构方法:架构师如何做架构-总结

        隆隆

        命题架构设计 - 食堂就餐卡系统

        知识乞丐

        极客大学架构师训练营

        自动驾驶从0到1之路_文化 & 方法_DataFunTalk_InfoQ精选文章