潘余曦:自动驾驶仿真应用与探索

财经 (3) 2024-11-13 11:31:40

  11月7日-8日,2024中国汽车软件大会在上海嘉定召开。安徽深信技术有限公司CTO潘余曦发表演讲。

  以下内容为现场发言实录:

  大家下午好!我是深信科创的潘余曦,我们深信科创主要是提供仿真以及数据闭环相应的工具链,给车企和自动驾驶企业。

  今天我想介绍一些基础的关于仿真方面应用的内容,以及我们在做开源CARLA仿真器的一些研发的现状。

  首先对于智能驾驶这种解决方案的开发,我们从最初硬件驱动这种简单逻辑单传感器演化到现在的数据驱动大规模的数据,甚至知识驱动,配合上比较大的模型。整个这套研发体系的变更、变革也带来了对我们相应的工具链方面的要求。

  基于这些数据驱动的变革,我们其实主要关注于以下这么几个方面,这也是我们公司目前在做的一些软硬件的产品。

  一个是最上游的采集系统,基于素材的测试车队、量产车队这么一套采集方案,以及在云端的数据平台做数据大规模的筛选、清洗、标注,甚至场景重建、仿真,到最后我们仿真来做数据的增值,我们从关键少量的安全关键场景,通过仿真的泛化建模,来生成更大量供开发训练以及测试验证的场景,以及相应的数据。

  下面我想介绍一下我们参与开源CARLA仿真器项目。CARLA是开源仿真框架,也是一个平台,它是基于目前虚幻引擎4,当前也在迭代到虚幻引擎5这样一个游戏引擎驱动的仿真测试平台。它的好处当然一个是开源,一个是架构非常具有弹性和可扩展性,它具有比较统一规范的pythonC++这样一套API,也可以同时支持很快速在CARLA里面搭建不同的静态以及动态的仿真场景,提供具有不同标注、不同标注格式、不同场景形式的这么一套仿真工具链。

  同时,支持不同的仿真场景这样的城市级,以及非铺装道路的仿真都同时的支持。

  一些简单的统计数据,从2017年CARLA第一次上线,从北美丰田研究院孵化,至今已经有超过100万的下载量,这在我们的科研高校这样的环境,以及企业研发环境当中,其实大家试用,或者使用的频率还是比较高的。

  CARLA本身是一套仿真器,需要基于CARLA需要做一些二次开发,以及包装把它打造成完整的仿真测试平台。

  现在在国内外一些活跃的用户,大概每天有1000活跃用户都集聚在网上讨论区,以及线上线下的活动当中。

  CARLA的生态也是比较丰富的,基于CARLA可以做很多联合仿真的项目,比如交通流仿真可以支持VCM、SM,包括我们自己打造交通流仿真的软件和模型。在传感器仿真方面,它可以支持像ACS,还有国内外仿真模型做联合仿真。基于CARLA之上,不同的生态伙伴、企业打造了不同的仿真软件,以及测试管理软件,比如FTLKS、AVL都做了相应基于open SNR2这样抽象场景的仿真,以及动力学仿真。

  CARLA平台刚才我也提到了,它是一个比较有弹性的这么一个仿真的框架,它采取是一个CS这样一个架构,通过在server端可以进行一些传感器分布式的仿真,比如多传感器、多摄像头的仿真,在hel的情况下需要达到实时性,它可以通过并行多图栈这样一些分布式的仿真来实现。

  同时客户端是支持不同这样一些外部仿真软件,以及一些通讯的集成,比如通过python,通过C++可以集成一些交通流仿真的模块,集成一些传感器仿真的模块。

  基于游戏引擎的仿真,其中一个使用的原因,或者是一个亮点是可以支持一些高精度的摄像头的物理模型。这里面高精度摄像头仿真首先需要有高精度的素材,这里面CARLA支持一些无论是程序化建模生成的人工手动打造的素材,还有一些现在支持的基于场景重建NeRF 3D高清自动化AI的方法重建出来的素材,都可以在这样的引擎环境当中进行场景的搭建。

  另外,在传感器仿真方面支持一些物理的仿真模型,通过camera lighter的一些物理模型来支持传感器点云数据的生成。

  因为是基于游戏引擎的仿真,所以用户对于仿真场景和仿真内容具有完全的可控能力,它可以根据程序化建模,根据一些命令的方式搭建相应的测试场景,城市级的场景,高速的,不同的港口、非铺装道路这样一些场景,都可以精确的控制。

  这样控制的好处,它的数据生成的内容是完全天然带ground truth这样的标签,像实例分割、语义分割,以及检测、深度图,以及光流这样的标签,都是随着仿真场景搭建是免费可以提供的。

  另外一个好处是可以对精确的天气进行场景的建模和模型。这里面可以控制光照,可以控制降雨量,可以控制沙尘。还有一方面对所有的场景抽象程度有很好的控制,可以根据需要搭建不同抽象层级,不同复杂度的这样一些场景。

  另一方面,在做对抗性的数据攻击方面,很多人研究如何实时替换场景里面这样一些材质,我们做一些像交通模型、交通一些标识牌,以及车辆车身的一些材质,都可以通过实时API的方案,以及路面的材质,都可以通过一些API实时更迭,达到不同泛化性测试的目的。

  另一方面,做交通流仿真软件的供应商也有很多,也有一些开源的方案,现在CARLA支持跟不同的交通流仿真软件做联合仿真,像开源的sumo,还有一些商业的软件VCM、road runner,还有一些第三方的基于云端API这样一些交流流仿真,包括我们自己在CARLA上面集成不同自然,以及具有对抗性交流流仿真的模型。

  当前版本CARLA有13个城市地图,我们在最近一个版本捐献了一些野外、山区、矿山的一些地图。

  这是最近几天将在11月初发布基于Unreal5虚幻引擎5和具有全局光照这样特性的一些仿真的效果,从UE4到UE5大概花了大半年的时间,我们在中间是贡献了很多相应核心代码。

  UE5的好处是支持全局光照,不同LOD等级,以及支持更多的素材和更高效硬件资源的使用。我们在UE5之上贡献了矿山的地图,还有一些新的车辆的模型,以及一些行人的模型。

  在CARLA仿真生态里面,不仅支持像ros这样的操作系统,通过ros可以跟auto wear,通过silberRT可以跟apollo进行一些联合仿真,同时跟AVL做过关于车辆动力学方面的一些联合仿真的试验。

  我们基于CARLA也是打造了一些商用的仿真软件平台,我们的OSS SIM后面也会做相应的介绍。

  OSS SIM是基于CARLA开发这么一个完整的仿真平台,和CARLA不同的地方在于一些传感器模型的二次开发和场景编辑、地图编辑、场景回看,以及云端云仿真资源管理这样一些功能来支持整个V字流程里面的模型在环、软件在环、硬件在环,甚至于整车在环这样一些不同的仿真等级。

  在物理仿真方面,我们不仅加入了一些新的物理仿真模型,包括鱼眼摄像头,带有不同模型的鱼眼摄像头和产生CMOS端的噪声模型和ISP。我们开发了基于AI二次渲染这样一些风格迁移的模型,来减少我们仿真数据和真实数据之间的domain GAP。

  在激光雷达方面,我们支持不同半固态的一些旋转式、机械式激光雷达的扫描点序,和在不同材质上面的折射反射率,以及在空气当中的衰减。我们现在已经能够支持一些不同量产级激光雷达的数据协议和相应物理模型。

  在AI仿真方面,我们基于CARLA开发了一些交通流模型,来提供可交互的场景。这是在我们最近L3、L3以上高阶自动驾驶功能性测试里面,是非常需要这样一些交互性的场景。我们这里不仅可以提供比较自然的交通流,能够和主车发生一些天然的自然性交互,我们还做了一些交互的优化,来提供一些对抗性的交通参与者。

  这里面比如像右侧展示的一些对抗性车辆,可以对主车的规划控制产生一些具有挑战性的行为,使得我们能够在更短的测试里程里面暴露出更多的主车的规划,决策控制系统方面的缺陷。

  基于CARLA我们还是开发了一些简化整个场景,生成场景编辑的流程,我们图形化场景编辑器、场景泛化工具,以及地图编辑器都是开放性使用的。

  同样测试评价我们也是基于一些模板,为用户提供定制化的测试评价的指标,在整个仿真过程当中,我们会提供很多仿真过程数据,基于这些过程数据,用户可以写不同的断言来成为测试是否通过的这样一些判断。

  在场景素材方面,我们不仅提供一些新的基于程序化建模的场景地图,比如停车场、城区、矿区,我们还提供基于NeRF 3D高斯重建出来的场景,可以在UE引擎里面进行联合的仿真。

  今天我的介绍大概就这些,希望下来能跟大家有更多的讨论和研讨机会。感谢!

  (注:本文根据现场速记整理,未经演讲嘉宾审阅)

THE END