概述
自动驾驶作为一项前沿技术,饱受期待,但也充满挑战。它有很多潜在优点,例如可以优化交通、节省能源、减少人为错误导致的事故等;但是如何保证其安全性,在复杂的交通环境下如何准确及时的做出决策等都是诸多需要解决的挑战。尽管如此,你不得不承认自动驾驶的潜力和持续发展前景。
在我的认知中,自动驾驶彷佛是一个遥远的概念,只有行业级别的大牛,才可以做自动驾驶,事实真的如此吗?还真未必,如果你不相信,打开百度,搜索自动驾驶入门,你会发现百度 Apollo 会重复的出现在页面中,你不由肯定会好奇 Apollo 是个啥,又能帮你啥?
Apollo 开放平台是一个自动驾驶领域的开源生态平台。开源、生态、平台,看到这三个词,我相信你恍然大悟,这通常意味着它为你提供了一系列完善的体系,无论你是大牛,还是初学者,都能从中受益匪浅,自动驾驶离我们并不远,只要你想。
俗话说得好,好的开始是成功的一半,选择一个好的平台对后续的成长和学习的增益也是类似的,通常我们会遵循以下原则进行选取:可用、易用、好用。
Apollo 开放平台不止可以满足这些原则,还是满足原则中的佼佼者。Apollo开放平台 刚发布了 9.0 版本,下面咱们一起来了解一下核心内容,你就能明白为什么我会如此高度评价它。
Apollo 开放平台 9.0 的核心主题是精易求精,价值共创。作为一个它的使用者,我一眼就抓住了我的核心诉求------易。易在《易经》中有三种含义:其一是简易,通俗理解就是用起来简单;其二是不易,即遵循一些不变的核心理念;其三是变易,代表无穷变化,衍生来说就是无限可能。
此次 Apollo 开放平台9.0 版本的发布,就让我感受到了浓厚的"易",那又是如何体现的呢?
简易------核心软件层大进化
工程化的探索
作为一个开发者而言,工程化这个概念肯定都不陌生,可以说是持续萦绕在脑海中的理念,工程化的程度切实的关乎到这个平台的专业度。
Apollo 开放平台9.0 对于工程化的探索是让我眼前一亮的。
Apollo 开放平台 8.0 版本发布了包管理解决方案,这意味着开发由全量代码下载编译的模式进步到初步的按需加载,这一定程度上提高的开发效率。但是弊端也是很明显的,它不够精细,没能够对包做进一步的细分。
举一个简单的例子:英文词典里面查 abandon 单词。
在 Apollo 开放平台8.0 之前,那就只能下载完整的词典,然后在里面搜索 abandon,可想这样的实现效率。
Apollo 开放平台8.0 更近了一步,它会初步的把词典按 26 个字母进行划分,abandon 首字母为 a,那么只需要下载 a 词典包即可。
Apollo 开放平台9.0 版本它不在满足于这种初步的划分,将词典划分为 a 开头、ab 开头、aba 开头的包,实现了更精细的划分,这样当你查找 abandon 下载最接近首字母的即可。
以开发者视角来看,就是将原有的 8.0 包按照功能进行了更加细粒度的划分,开发者需要什么功能,添加什么功能即可,一方面降低了源码的体量,另一方面也增加了开发的自由度。
工程化应用的提效
工程化做得再好,如果落不到具体应用层面,那便是纸上谈兵,充其量只能满足可用的原则,最终难免沦落为行业的候选方案之一。
Apollo 开放平台作为自动驾驶的领头羊,肯定是不满足与现状的。在此次更新的 9.0 版本,在工程应用方面带来了三大亮眼的变化,让我更加笃定了 Apollo 开放平台的优越之处。
Core1: 更完善的软件功能体系
在更小细粒度包的划分前提下,Apollo 开放平台9.0 提供了更完善的功能体系,提供了更简单的接口调用方式。也就是说只要按照官方提供的接口调用方式,可以很快搭建一套闭环的自动驾驶应用车辆。经过官方以及开发者的测试反馈,最快 1 天时间就可以搭建起一套完整的应用场景 demo。
耗时 1 天,第一反应怎么这么慢,平常我们开发时搭建个环境不是轻轻松松。但你要知道,这不是日常开发的软件环境,而是一套包含软硬件的完整系统,我总结了一下,大约包含下面这些内容:
这还只是一级展开,后续如果二级展开,三级展开,内容涵盖面恐怖的呦。在这么庞大体系下,Apollo开放平台 9.0 可以在 1 天内搭建完整闭环 demo,不得不赞叹它的完整工程化体系的效率。
Core2: 快速便捷的调参机制
Apollo 开放平台9.0 版本中,官方规定好了一套系统调参的流程,将全局和局部的参数结构化,同时支持保存设置的自定义参数。当我们需要切换不同的场景和应用时,同步的切换对应参数定义即可。基于这种方式我们可以有效提高调参的效率。
Core3 :插件式的功能扩展机制
Apollo 开放平台9.0 版本中,官方提供了一套插件机制,一方面将核心模块内的核心功能做了插件化管理,开发应用时,我们可以自由灵活的组装插件,实现各类应用;另一方面也可以让开发者快速的扩展功能,只需要按照符合 Apollo 制定的插件规范开发即可。
9.0 新增的插件化机制我是非常喜欢的,基于插件化的模式,开发的应用模块间的耦合度较低,更易于调试和管理,可以有效提升我们开发的效率,这点大大的赞。另外就是开发的自由度,对于可扩展的功能,最受开源小伙伴的喜爱,社区内很快就会产生很多各种各样功能的扩展,开发时就会有很多前人造的轮子,有效降低开发的难度。
更强大的算法模型能力
自动驾驶问题,为人诟病最多的就是安全性问题,自动驾驶采用的算法模型必须精上加精,准上加准。每一次自动驾驶算法模型的进步,都意味着自动驾驶离我们的日常越来越近。
Apollo 开放平台9.0 版本中,对于算法模型,主要有两大更新:
第一个更新升级了主模型,激光雷达的由原来的 CNNseg 替换成了 CenterPoint,相机由 yolo 模型到了 Yolo X + Yolo 3D 的模式。同时对升级后的主模型进行了百万量级训练微调,进一步提升了准确性。
主模型的升级固然是一大亮点,但是增量训练的模式更让我欣喜。什么是增量训练那?
举个简单例子,最近 AIGC、AI 大模型绘画盛行。AI 绘画使用的 stable diffusion 模型,如果你体验过 AI 绘画,你会发现你很少会使用 stable diffusion 系列模型,更多使用的是基于 sd 微调出的更具特点、针对不同场景的模型。例如二次元风格 anything、写实风格麦橘等。
世上没有什么东西可以一蹴而就,自动驾驶也不可能一上来就满足所有类型的车辆,最初更多的应该是针对某些特定的场景,例如 Apollo 开放平台的开发者基于增量训练检测的卡车。
更自由地人机交互界面
在自动驾驶领域,如果能有一套可以高度定制化的 HMI 的交互体系,可以帮你省一大笔功夫。
Apollo 开放平台的资深开发者李家鑫演讲时着重谈了这点,在没有 HMI 交互体系时,在以往的开发时,不得不将自动驾驶域和智能座舱域进行拆分设计,增加了开发系统的复杂度,同时还需要维护一套系统软件通信的平台。
Apollo 开放平台敏锐的捕捉到了这个核心关键问题,推出了 DreamView+,其主要作用是为开发者提供一个可视化交互界面,利用它开发者可以设置自动驾驶场景,选择不同的自动驾驶模式,加载预先录制的数据包进行回放测试,或者连接到真实的车辆进行实地测试等。这对于开发和测试自动驾驶算法来说是非常重要的,因为它能够直观地看到算法在实际环境中的表现,并据此进行调整和优化。
Apollo 开放平台 9.0 版本继续在原有 DreamView+ 的基础上,做出更多优化,提高 DreamView+ 的易用性、好用性。总结下来,主要有下面几点:
-
调试过程更高效:DreamView+ 摈弃了老版本多页面跳转的调试模式,将功能集中在一个页面上,一个页面中就可以完成调试,更加方便、简洁、高效。
-
宽口布局更灵活: 这点我很喜欢,Apollo 充分的考虑了人文的主观能动性,DreamView+ 中可以按照所需定制化的配置菜单、页面、结构、窗口等布局。
-
云端一体互通化: DreamView+ 构建了云端一体资源中心,取用资源、数据更加便捷;同时支持云端和本地端同步功能,不再需要纠结两端数据同步性的问题。
在我看来,DreamView+ 此次的更新主要就围绕于"易用和好用"展开,提高开发者的使用体验,更进一步推动开发者的使用效率。
更完善的文档平台
初学者好评,文档是评估一个平台是否专业的关键所在。
Apollo 开放平台9.0 重构和升级了文档平台,划分更加细致、专业,无论是个人开发者、院校或者企业开发者,都提供相对应的开发文档,突出一个细心、专业。
变易------赋能产业落地,助力高校产研
简易部分吹的天花乱坠,总归还都是停留在文字层面,文字层面只能得知事物的好,但到底有多好,就得需要实践来检验。
实践层面 Apollo 做了非常多,从中我可以感受到 Apollo开放平台的潜力和未来。大致可以从两个方面来简略的讲述一下。
赋能产业落地
Apollo 开放平台9.0 实现了一套通用层的软件应用,可赋能应用场景的规模化落地,尤其是在低速无人车领域和封闭园区。
这里不得不提,Apollo 与苏州金龙达成的合作案例。金龙是国内前三的客车商用制造企业,可谓是兵强马壮的一家公司。在与百度Apollo达成合作后,金龙在自动驾驶客车和低速无人作业方向投入了大量研究。
Apollo 开放平台到底是何种魅力那?通过后续我的一番查阅和深入学习,Apollo 开放平台在产业落地方向的确大有优势。
以苏州金龙为例,作为传统的制造车企,自动驾驶方向的基础薄弱,从头搭建系统没有积累,成本高,效率低。Apollo 开放平台推出的通用解决方案开箱即用,易用好用,一周内就可以实现自动驾驶车辆的全闭环。Apollo 开放平台还具备良好的扩展性,可以落地多种丰富场景,实现全方位的助力规模应用落地。
助力高校产研
这点我认为挺好的,人才是行业进步不可或缺的因素之一。Apollo 开放平台非常注重人才的培养,打造了 Apollo Studio 开发者社区,构建了"学、练、验"三个能力集于一体的学习模式,一站式的学习体验。
不易------开放、共享的核心理念
从简易和变易的环节,可以发现 Apollo 开放平台非常朝气蓬勃、活力十足,它在持续的探索更好、更卓越的方向。
变化是世界的本质,在变中维持不变是大智慧。
Apollo 开放平台求变的同时,并没有忘记最初的起点,它始终秉承的开放、共享、创新、共赢的核心理念,每次的版本更新你都可以深刻的感受到,虽然它做出了很多创新,但依旧维持着可用、易用、好用的原则,致力于推动自动驾驶领域的发展。
在不变中追求变是大决心,我在 Apollo开放平台9.0中看到了无限的可能。
其一是完善的人才体系,必将输送源源不断的人才,自动驾驶领域的发展也会高歌猛进。其二,增量训练的无限可能,随着开发者的增多,增量训练模型必将出现万花筒般的盛况。其三,大规模的产业落地,随着通用层软件的完善,应用场景的不断增加,Apollo 开放平台未来必将推动自动驾驶的大规模落地。