写点什么

自动驾驶从 0 到 1 之路

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

    阅读完需:约 14 分钟

自动驾驶从0到1之路

About Pony.ai



从 0 说起



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


00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 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
      • 3.0x
      • 2.5x
      • 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
        • 3.0x
        • 2.5x
        • 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


        2019-07-15 17:183097

        评论 1 条评论

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

        What’s the future ofIPQ9574 with QCN9274 Solution in Industrial Communication?

        wallyslilly

        软件测试学习笔记丨HttpRunnerV4 用例转换

        测试人

        软件测试

        低代码与移动办公平台开发:重塑企业生产力

        快乐非自愿限量之名

        低代码 移动办公

        NTFS Disk by Omi NTFS for Mac(NTFS 磁盘管理器) v1.1.4激活版

        iMac小白

        Dynamic Wallpaper for Mac(视频动态壁纸) 17.1免激活版

        iMac小白

        一步一步搭建,功能最全的权限管理系统之动态路由菜单

        不在线第一只蜗牛

        Java vue.js 前端

        AI能代替软件工程师吗?

        小齐写代码

        发现数据异常波动怎么办?别慌,指标监控和归因分析来帮你

        袋鼠云数栈

        指标体系 指标监控 指标 指标管理 归因分析

        SnapGene 5 for Mac(DNA序列分析软件) v5.3.1中文永久激活版

        iMac小白

        如何做好信息化和数字化建设,看这一篇就够了

        同道说

        架构 职场 数字化 信息化 CIO

        Go高级构建指南

        俞凡

        golang

        Lightroom Classic 2022 for Mac(LrC中文版) 11.5激活版

        iMac小白

        XPath攻略:从入门到精通,告别查找困难!

        测吧(北京)科技有限公司

        测试

        Illustrator 2023 for mac(ai2023) v27.9中文激活版

        iMac小白

        iOS系统下最佳的3款HTTP抓包工具:Thor、克魔助手和Http Catcher

        Kubernetes生产集群部署指南

        俞凡

        Kubernetes 云原生

        私有化部署,支持局域网使用的im即时通讯软件

        BeeWorks

        请查收!一份Go代码优化实用指南

        伤感汤姆布利柏

        低代码平台,用拖拽让开发变得更简单

        互联网工科生

        观测云产品更新 | 监控、场景图表、链路、查看器、工单管理等

        观测云

        监控 链路

        如何使用Java代码混淆技术保护您的应用程序

        GraphPad Prism 10 for Mac(统计分析绘图软件) v10.1.1注册版

        iMac小白

        JetBrains pycharm pro 2023 for mac(Python编辑开发) v2023.3.5中文激活版

        iMac小白

        WPF自定义Panel:让拖拽变得更简单

        快乐非自愿限量之名

        大数据 WPF

        泛娱乐出海利器:即构Web端1v1方案

        ZEGO即构

        企业出海 出海社交 音视频开发 音视频通话 直播间

        Radio Silence for mac(简单好用的防火墙) v3.2激活版

        iMac小白

        成都晨云信息技术完成阿里云PolarDB数据库产品生态集成认证

        阿里云数据库开源

        数据库 阿里云 polarDB PolarDB-PG

        Typora for Mac(Markdown文本编辑器) 1.7.6中文版

        iMac小白

        JetBrains GoLand 2023 for Mac GO语言集成开发工具环境

        iMac小白

        关于Java代码混淆技术,看这篇就够了

        雪奈椰子

        低代码开发:助力企业实现数字化运维体系搭建

        EquatorCoco

        运维 低代码

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