最近几年来,包括我在内的很多开发者们,都投身进入了智能汽车领域,其实不论是初学者还是大佬,接触智能汽车开发行业后都需要学习很多知识和既能。
我在最近一段时间接触到了百度的Apollo开放平台,上手的感觉很好用,恰巧百度也推出了Apollo开放平台8.0这个全新的版本,我想以个人的体验和认知抛砖引玉,和大家探讨一下对Apollo开放平台8.0的一些看法和认知。
降低开发门槛,部署时间短灵活易扩展
本次上新的Apollo开放平台8.0可谓经历了一次全方位的升级,在框架和能力方面都有着长足的进步。从框架上来看Apollo开放平台8.0从之前面向技术分层的架构,升级为结合技术与生态分层的新架构,最底下是硬件设备层,由之前的硬件开发层与车辆认证层组合而成,通过开放标准协议与认证吸引生态合作伙伴为开发者提供丰富的自动驾驶设备选择。
其上级为软件核心层,由之前的开源软件层演变而来,提供了搭建基于Apollo自动驾驶系统的最小软件子集。提供了基于本地HMI Dreamview的PnC仿真调试能力,极大提升了感知和PnC的研发效率。再往上为软件应用层,为开发者提供了全新自动驾驶模块扩展能力与扩展方式。而最顶级则为云端服务层,新增了实训、模型训练等服务能力,并升级了仿真能力。
新的架构,为Apollo开放平台8.0的技术先进奠定了良好的基础,通过“硬件-软件核心-软件应用-云端服务”的架构设定,Apollo开放平台8.0形成了闭环式的软硬件融合。在应用层面上,硬件层面可以与软件层面进行高效的协调配合,而在开发层面上,它又为开发者们提供了优渥的开发、测试环境,让整个平台拥有更强的能力。
就我个人而言,这一套结构有点像苹果的理念,不论是MAC OS还是IOS系统,都和硬件有着紧密的联系,从逻辑上来说,Apollo开放平台8.0的架构既确保了硬件运行的安全性问题,同时又能让系统按照应用层和核心层的不同级别,嵌入到硬件里面去,让软件的运行更加稳定也更加流畅,同时也能最大限度地发挥硬件的性能,不用过分堆料就可以实现很多高性能的设定和表现。
而刚才我说的让平台拥有更强的能力的这一点,想了解清楚私以为我们就要先分析一下Apollo开放平台8.0在易用性和扩展性方面的优势。Apollo开放平台8.0通过软件包管理机制、感知和PnC开发全流程的覆盖极大提升了Apollo工程易用性与开发效率,可以为个体开发者或小型工作室降低开发门槛,提供更多的开发可能。今后随着汽车OTA升级频次和整车产品迭代速度的提升,Apollo开放平台8.0的易用性优势,将会在产品开发中表现出更加高效的一面。
此外,Apollo开放平台8.0的扩展性优势也是本次升级的一大亮点,Apollo开放平台8.0通过引入了软件包管理机制,解决了之前Apollo工程编译发布耦合紧的问题,极大降低了安装与工程扩展的门槛,让安装部署时间极大缩短,且更灵活易扩展。可以缩短开发周期、降低人力资源使用率,其支持二次扩展的方案自由化程度高,既能够进行共享进行协同工作集思广益,又能够构建自己的场景工程,进行深度的定制化开发。
这方面我觉得百度的思路非常靠谱,好比说MAC OS和IOS就给了开发者们一个完整的、高度集成化的包括Xcode、Swift在内的工具包,开发者们根本不需要费力去搭建自己的私有环境,在开发效率、稳定性、协同作业方面都有保障,同时也确保了开发项目对硬件的兼容性,而Apollo开放平台8.0就有点像这些工具包的组合,当然这个类比也不是很恰当,但可以说大致类似,总而言之它让上手变得没有什么难度,有点基础的人都能熟练掌握。
此外,Apollo开放平台8.0的开源优势和社区化优势也很符合我们这些开发者们的习惯,以往我们学习代码都需要在论坛里找,甚至还需要挂梯子到Github上扒拉,但是在Apollo开放平台8.0上都可以一站解决问题,大家的智慧汇聚在一起,不管怎么说都比单打独斗强,即便是个人也有能力承包一些开发任务赚赚外快,还能学习到更多的行业与开发知识,积累到更丰富的开发经验。
框架精度提升,调试验证效率再创新高
Apollo开放平台8.0新架构的优势其实还体现在对开发品质的提升上。智能汽车的智能辅助驾驶功能和未来的自动驾驶功能目前仍然有不少技术难点,比如精度低、开发过程中可模拟的场景有限不足以覆盖真实场景、开发周期长需要耗费大量成本等,而Apollo开放平台8.0的出现,对这些痛点问题都拿出了解决方案。
比如说,Apollo开放平台8.0通过新引入3个基于深度学习的模型,在感知框架方面有新的升级,在Lidar感知上,实现了CenterPoint激光点云障碍物识别模型,相比7.0发布的MaskPillars模型,CenterPoint不需要人为设定Anchor尺寸,而是基于关键点检测的方式回归物体的尺寸、方向和速度,在物体尺寸多样的复杂场景提供更高精度。
在Camera感知上,实现了CaDDN视觉障碍物识别模型,通过预测图像中每个像素深度分布,结合鸟瞰投影相比7.0发布的SMOKE模型精度更高。同时它新增了视觉BEV感知模型PETR,模型创新性地将3D坐标信息与图像特征相融合,实现了基于视觉的360°障碍物感知,在速度和精度之间取得了很好的平衡。
此外,Apollo 开放平台8.0感知模型上的升级还在原有的基础上有效的提升了精度,同时还引入了360°视觉BEV感知,增强了视觉感知能力。可帮助开发者们实现高精度的功能开发,有效地提升了效率、降低了成本,且开发者除了能使用平台自带的模型,还能基于自己的需求扩展更多模型,开发环境更加自由且验证环节有可视化工具协助,开发难度进一步降低。
值得一提的是,Apollo开放平台8.0还采用了全新PnC工具链,在本地Dreamview集成了PnC仿真调试工具,让开发效率极大提升。系统支持本地仿真模拟调试,可通过dreamview的仿真器模拟车辆行驶以及再现各种场景。而且它还支持云端仿真场景管理的功能,开发者只需创建符合自己测试仿真需求的场景及障碍物就能进行系统模拟验证,一次建模就可以重复使用,场景还支持分类管理,能验证到更多的场景,且验证过程更简单、高效。
为了提升效率,平台在Dreamview中引入了Studio插件,通过插件可以方便将Studio上的场景和动力学模型下载本地,通过这种方式,PnC调试效率提升1倍以上。在这一生态当中,开发者将能够全身心地投入技术开发当中,其它的问题统统能交给Apollo开放平台8.0解决。可以说,Apollo开放平台8.0是一个全面升级的、高度集成化智能化的开发平台,在行业内有着极为领先的地位,是开发者们的好伙伴。
总结:
其实总结下来,Apollo开放平台8.0整体给我的感觉还是以“友好”为主,它是一个上手相对容易且不需要费力在细枝末节上的平台,尤其是对于半路出家的开发者们来说可以说相当友好,能够让更多的跨行业开发者们参与其中,而它整体精度和开发、调试效率的大幅提升,则解决了行业内的诸多痛点、难点问题,突破了技术瓶颈的限制,在技术层面上也足够先进,能开发出更有竞争力的产品,这一点对开发者来说同样很重要,可以说是一个开发利器。
最后想跟大家再分享一下这次Apollo开放平台8.0推出后,上线的一个全新社区——Apollo Studio,我也进去大概感受了一下,对于开发者来说有不少可以利用的资源,包括技术课程、跑模型训练和验证的云端资源等等,而且还会不定期举办技术竞赛,有精力的可以多关注一下,也算是技术实战的机会。社区链接放在这里,大家有空可以自己上去体验体验:
Apollo开发者社区Apollo开发者社区致力于为全球自动驾驶开发者和合作伙伴提供的一个学习、交流的平台,助力开发者快速了解并使用自动驾驶技术。https://apollo.baidu.com/