在过去的十多年里,智能手机可以说是发展最迅速的一款智能产品。
之所以造就了智能手机的蓬勃发展,这离不开十多年前开源 Android 系统这一项创举,开源意味着各大厂商可以针对各自的用户需求,对系统进行魔改,不做任何商业限制,这样才使得智能手机遍地开花。
这就是开源的价值,Android 系统开源之后,让更多的开发者参与了 Android 系统的开发,加速了 Android 系统的发展,同时也建立起了开发者与用户社区,众人拾柴火焰高,通过协作,打造活跃而广泛的生态,促进项目的高速、可持续发展。
【资料图】
回过头看现在,越来越多人把智能汽车作为下一个时代重点发展的智能产品,但是智能汽车相比智能手机的智能化还要更上一个层次,就是需要自动驾驶,这一下就把技术难度提高了很多,因为自动驾驶技术背后涉及的领域非常多,比如人工智能、机器学习、深度学习等等。
自动驾驶领域也已经聚集了非常多的技术公司,有大厂、也有初创,但大多是做技术和产品方面的研究,做平台和生态的比较少,在国内比较典型的就是百度 Apollo 开放平台,这个平台面向开发者开放,如果你对自动驾驶技术感兴趣,可以在这个平台上完成开发、测试、部署自动驾驶车辆等一系列工作——这对开发者来说可以说是比较方便,比较友好的了。
从 2017 年 Apollo 开源计划发布以来,Apollo已经迭代了 11 个版本,这迭代速度如果不是开源的话,很难做到的,这又一次体现的开源的价值。
这 5 年迭代的情况可以分为三个阶段:第一个阶段聚焦基础能力、第二个阶段聚焦场景能力、第三个阶段聚焦工程易用。
就在今天,百度再次面向所有开发者发布了 Apollo 第 12 个版本 Apollo 开发平台 8.0 ,从平台的架构和能力两个层面带来了很多新升级,整体的效果是让开发者使用起来更方便、更好上手了。
Apollo 开发平台 8.0 有哪些新能力?这次,我就带大家解读一下, Apollo 开发平台 8.0 有哪些新能力?
一套更好跑流程、提高效率的“新架构”Apollo 开发平台 8.0 对架构做了一次全新升级,从之前面向技术分层的架构,升级为结合技术与生态分层的新架构。
上面这张图,就诠释了架构的升级变化。我们逐层来看每一层具体升级了什么,从下往上开始说起。
现在的「硬件设备」是由之前的「硬件开发」与「车辆认证」组合而成的,该平台可以通过开放标准协议与认证吸引生态合作伙伴,为开发者提供丰富的自动驾驶设备选择。
之前的「软件」层细分为了「软件核心」和「软件应用」这两个新的层级。「软件核心」提供了自动驾驶车端软件系统框架与技术栈。「软件应用」提供了面向不同应用场景的工程以及自动驾驶应用模块的能力扩展。这样细分的好处,软件应用层面的扩展不会影响到软件核心。
现在的「云端服务」相比之前,新增了模型训练能力,并升级了实训、仿真能力。
自动驾驶与传统互联网软件研发不同,一是实车测试成本高,二是数据量非常大。而一套能够满足自动驾驶开发流程需求,并提升研发效率的研发基础设施就非常之重要。
Apollo 「云端服务平台」通过云端的方式解决了数据利用效率的问题,通过与仿真结合降低了实车测试成本,能够极大的提升基于 Apollo 的自动驾驶研发效率。
从开发者需求出发,引入三项“新能力”Apollo 开放平台 8.0 除了对架构做了全新升级外,还新增了三大新能力,这三大新能力都是按开发者的需求出发的,目的是让开发者更好更快的使用 Apollo 开放平台。
新能力一:软件包管理机制我们在部署项目到目标设备的时候,如果采用编译部署的方式,也就是在目标设备进行编译代码,然后部署项目,这是极其耗费时间的。
因为当代码量很庞大的时候,这时候编译的时间就可能达到天级别,而且随着项目的发展,编译的时长只增不减。
那为了解决这个问题,Apollo开放平台8.0在工程框架引入软件包管理机制,使用软件包的方式安装,节省大量编译时间,让安装部署从原本需要天级别的时间,缩短至 30 分钟以内,直接达到一键体验Apollo 的效果。
除此之外,软件包管理还提供了全新的二次扩展方案,开发者可以选择apollo 主代码库的源码模块编译的软件包,再加上生态贡献的软件包以及开发者自定义的软件包来构建自己的场景工程。
作为开发者来说,软件包管理的加入,是一件好事,它可以有效地减轻我们部署系统的工作,不仅极大缩短了部署的时间,而且也简化了部署的流程,因为只需要安装软件包就完成了。
新能力二:感知框架与开发流程升级自动驾驶很关键的一步,就是让汽车能准确的感知这个世界,因为这样才能保证行驶安全。
我们人感知这个世界,靠的是视觉和听觉,但是汽车并不是碳基生物,没有这些器官来感知世界,它们需要靠外加设备来获取周围的信息,比如摄像头、激光雷达等设备。
但是要通过这些设备准确感知周遭事物,还离不开精度更高的感知模型。
Apollo 开放平台 8.0 对感知模型进行的升级,新增了更多丰富新模型,主要新增了这三种感知模型。
在激光雷达感知上,实现了「 CenterPoint 激光点云障碍物识别模型」,相比 7.0 发布的 MaskPillars 模型,CenterPoint 不需要人为设定物体尺寸,而是基于关键点检测的方式回归物体的尺寸、方向和速度,在物体尺寸多样的复杂场景提供更高精度。在摄像头感知上,实现了 「CaDDN 视觉障碍物识别模型」,通过预测图像中每个像素深度分布,结合鸟瞰投影相比 7.0 发布的SMOKE 模型精度更高。在摄像头感知上,同时实现了「视觉 BEV 感知模型」,模型创新性地将 3D 坐标信息与图像特征相融合,实现了基于视觉的 360° 障碍物感知,在速度和精度之间取得了很好的平衡。更重要的是,本次开放了感知的全流程开发环节,让开发者除了能使用平台自带的模型,还能基于自己的需求扩展更多模型。
开发者自定义的模型可以按照这三个环节进行:
第一步,模型训练环节。通过 Paddle3D,用户开箱即用,不需要苦于自己复现模型,同时 Paddle3D 还提供了性能指标,供开发者参考。针对用户需要自己训练模型二次开发的场景,平台引入了模型meta 信息,规范了模型的输入、输出、预处理等信息,用户只需要按照模型 meta 要求设计模型,可以保证模型的兼容性,减少接入成本。第二步,模型部署环节。模型 meta 信息使得模型引入更加规范,通过模型管理工具可以一键部署模型。同时结合了感知框架,通过配置文件来设置感知任务流程,提高模块复用度。第三步,验证环节。通过统一训练数据和验证数据,用户本地通过数据包来验证算法的效果,并丰富了感知结果可视化工具。通过这三个环节,开发者自定义的模型能快速完成开发,开发效率提升一倍。
新能力三:全新 PnC ⼯具链自动驾驶系统终究是需要部署到真实的汽车上的,但是开发中的自动驾驶系统未必是安全,如果每一次测试都拿真实的汽车来测试,那这样的测试成本会飙升,更重要的是安全问题。
要解决这个问题就是需要有一个仿真的平台,模拟真实世界的路况,从而测试自动驾驶系统的稳定性和安全性。
所以更多企业和开发者都更看重仿真测试。仿真测试更加高效灵活、测试场景覆盖率高。
Apollo开放平台8.0支持了本地仿真,提供了 PnC 仿真测试的本地调试功能,在本地通过 dreamview 的仿真器模拟车辆行驶以及再现各种场景。
仿真测试完成后,还会生成评测报告给开发者参考,开发中可以从这份评测报告进一步的优化系统。
同时,还提供了云端仿真场景管理的功能,开发者可以自由创建符合自己测试仿真需求的场景及障碍物。云端场景可以一键下载⾄本地Dreamview 仿真器,通过这种方式,PnC 仿真调试效率提升 1 倍以上。
本地仿真测试的新能力,是一项很有意义的升级,不仅降低了实车测试成本,而且也提升测试的效率。另外,开发者还可以构建多种多样的测试场景,能够更加全面的进行覆盖测试。
经过全面的仿真测试后,再拿到实车进行测试的效果,肯定比以前开发完直接进行实车测试的效果好,因为在仿真测试环节,就可以规避掉很多问题。
Apollo Studio新社区体验分享聊完 Apollo 开发平台 8.0 的新能力后,应该有不少读者好奇,如何才能学习 Apollo 呢?
Apollo 在建设社区生态方面也做了很多努力,因为只有一个好的开发者生态,才能吸引新的开发者加入,当越来越多人涌入社区后,Apollo 才能更好的发展下去。
截至目前,Apollo 开放平台已经有 10 万开发者参与。
可以感受到,Apollo 开源社区的群体还是很庞大的,Apollo 开放平台已经快速成长为全球最活跃的自动驾驶开放平台,从某种意义上来说,这跟Apollo对开发者的开放、友好态度息息相关。
在这次 Apollo 开放平台 8.0 的发布会上,百度还官宣推出了一个全新的开发者社区——Apollo Studio ,这是一个针对自动驾驶领域的一站式学习实践社区,可以为开发者提供技术分享交流、实践成⻓、⼯具资源等服务。
Apollo Studio 开发者社区包含的内容还是很多的,技术学习课堂、技术文章、社区交流论坛、开发者工具等等都汇聚在了社区里。
如果你想在 Apollo Studio 社区学习自动驾驶技术,那么你可以进入首页->学堂首页,这里汇聚了自动驾驶入门、体验、基础、专项全系列精品课程,都是免费开放给所有人的。
在学堂首页里,就可以轻松找到 Apollo 自动驾驶入门课程了。
课程的内容是以视频为主,直接在线进行学习就行,左侧可以看到课程的大纲内容。
除了视频教学之外,Apollo Studio 开发者社区还提供了云实验,供大家进行实践学习。
我选择做了下《快速上手,五部入门自动驾驶》的实验,全程实验都是在浏览器就可以完成,而且还有详细的说明文档。
体验了 Apollo Studio 新社区后,我能感觉到它是一个技术学习氛围很浓厚的开发者社区,在 Apollo Studio 社区里,不仅有课程内容学习,还有实验可以做,通过理论+实践的方式,可以帮助开发者更好的掌握自动驾驶技术。
另外,Apollo Studio 还会组织开发者活动,比如会组织开发者的免费培训活动,面向开发者的竞赛活动,面向开发者的技术交流活动。这些活动,你都可以在 Apollo Studio 社区找到详细的介绍。
Apollo Studio 社区地址:https://apollo.baidu.com/,快收藏起来吧!
总的来说,想学习和实践自动驾驶的同学,Apollo Studio 社区绝对是你不可错过的宝藏资源。