首页/文章/ 详情

LumaAI+CARLA=无痛拥有自己的3DGS自动驾驶仿真器

8月前浏览678


作者 | 张峻川
编辑 | 自动驾驶之心

"今天自动驾驶之心很荣幸邀请来了仿真算法专家—张峻川,为大家分享如何无痛拥有自己的3DGS自动驾驶仿真器,完全使用开源的学术研究,且无需程序编写!"

背景

无疑,NERF和3DGS等神经渲染相关技术是自动驾驶仿真领域讨论最火热的前沿技术。NERF和3DGS使用神经网络表达空间,其在新视角合成方面的优越表现直击自动驾驶仿真的一大痛点:传感器仿真。如果这一类深度学习技术能够推广应用,就能够很大程度上解决传统计算机图形学渲染出的图像缺乏真实性的问题,可以广泛应用在自动驾驶算法的闭环测试和训练中。
目前已经有一些研究项目在围绕NERF和3DGS技术打造全新的面向闭环测试的自动驾驶仿真框架,例如以NERF为核心的OASim【1】、NeuroNCAP【2】以及更早的UniSim(在此不再贴出UniSim的论文链接,【1】项目中有UniSim的非官方实现,以及另一个非官方实现【3】)。目前笔者还没有发现围绕3DGS展开的相关工作。
完全新开发一个仿真框架,使其具有现行场景仿真软件类似的功能将会有巨大的工作量。因此另一个应用场景合成新技术的思路是:将NERF和3DGS训练出的模型嵌入到现有场景仿真软件的框架中去,在保证实时渲染的前提下,将NERF和3DGS的渲染结果作为背景,动态物体仍然使用原有的3D数字资产,最终合成出新的真实程度更高的图像,整体框架如图1所示。
 
目前,一个匈牙利公司的仿真软件产品aiSim已经以此为卖点展开了宣传(效果如图2、图3),在NeRF和3DGS生成静态场景后,aiSim将基于外部渲染API进一步增加动态元素,不仅可以重建原始场景,也可以根据测试需求构建不同的交通状态。
 
图3
那么,像图2、图3这种仿真效果,我们普通人是不是也能拥有呢?
本文就将通过笔者的一个小实验告诉你,这是有可能的!本文实验全程“无痛”:完全使用开源的学术研究,且无需程序编写。

CARLA插件

在NERF和3DGS的研究兴起之初,就已经有相关的工程工作旨在将训练好的模型嵌入到现行游戏引擎的渲染框架中去,以作为一个方便编辑的数字资产,在运行时达到实时渲染的效果。较早的工作例如【4】,只需要花几十美元就可以在Unreal的市场中买到这个插件。后续工作包括元象科技的【5】,应用于windows平台的UE5之上,以及一个高校研究项目中的NERF插件【6】,应用于windows平台的UE4。
那么是否有一款合适的插件可以直接应用于基于Unreal的开源场景仿真软件CARLA呢?
笔者通过比较,最终选择了LumaAI的3DGS插件【7】,主要是因为从网站中我们可以下载到源码,方便我们和CARLA一起执行编译。
由于LumaAI只支持UE 5.0.0以上版本,而最新CARLA发行版0.9.15仍然使用UE4,因此本次实验只能选择CARLA代码库中仍在开发中的UE5分支进行测试。具体选择的分支是CARLA【8】和UE-CARLA【9】(请注意,笔者测试的是以上两个仓库中截至2024年4月8日的版本)。
安装编译之前,需要从【7】中下载LumaAI的源码包,例如名为LumaAI_2023_25_12_marketplace_5.0.zip的压缩文件,解压缩后将内容复 制到CARLA根目录下的Unreal/CarlaUnreal/Plugins路径下。
在这些开发分支中,官方教程中的编译方法不再适用,但CARLA根目录下的Setup.sh中记载了开发分支的编译过程。笔者的实验环境为ubuntu 22.04。编译过程中会提示图4中的内容,点击yes就好,让插件和CARLA一起编译。编译成功后,CARLA的UE editor会启动,你此时可以在Plugins列表中看到LumaAI,如图5。LumaAI的插件可以将任何3DGS模型输出的点云ply文件或者专门的luma文件导入UE editor,成为资产库中的一类Blueprint Class,比如将我们都很熟悉的狐狸头导入Town10(图6)。
 
 
 
注:根目录下的CMakeLists.txt中显示,通过增加BUILD_PYTHON_API编译选项,可以对pythonAPI进行编译,成功后可以在pythonAPI目录下产生carla.so文件以供引用。

街景重建

原版的3DGS(过于著名不再贴出链接)就可以完成街景重建,但3DGS项目本身不处理动态场景,也不是为街景这种开放式环境设计的。学术界一直有针对自动驾驶场景3DGS的研究项目,目前开源的有PVG【10】GaussianPro【11】S3Gaussian【12】等。本文实验中笔者选用的是有标注框监督派的代表,浙大的street gaussian方法,虽然原项目并未开源,但光轮科技已经将他们的复现版street-gaussians-ns发布到了github上:【13】。
street-gaussians-ns的训练过程不再赘述。为了在Unreal中呈现更好的效果,可以选择使用waymo的全部5路摄像头数据进行训练。训练完成后,street-gaussians-ns还提供了方法可以将场景的点云ply文件提取出来。
接下来我们就可以打开CARLA的UE editor,使用LumaAI插件,将street-gaussians-ns导出的ply插入仿真环境看下效果了。
安装了LumaAI插件的UE editor打开后,在左下角的content browser中,可以看到Import功能按钮,点击Import,可以在本地目录下寻找ply文件,导入到content browser中,如图7。导入成功后,点云就成为了资产库中的一个Blueprint Class,如图8,此时把Blueprint Class拖入场景,就可以在场景里对其进行编辑操作了。
 
 
在UE editor中编辑以及Unreal场景运行起来后的效果如图9-13(图13使用的是方法【11】训练的结果)。至此你就拥有了一个自己的3DGS自动驾驶仿真器,过程是不是完全“无痛”!
 
 
 
 
 
理论上讲,接下来只要我们能够根据以上waymo场景做出简单的CARLA地图,再对插入的3DGS点云模型进行一点“微调”使其贴合地图,就可以流畅地在上面安排3D数字资产运行动态场景了!操作过程如图14。
 

未来

如果真的想要严肃考虑以这个思路做神经渲染在自动驾驶仿真中的技术落地,笔者认为还需要解决的问题有:
  1. 前景动态物体的渲染:
尽管已经有研究项目在解决虚拟前景物体和真实合成背景间的融合问题了,如ChatSim【14】中的McLight方法,但笔者认为真实度仍然不够。我们是否也可以用NERF和3DGS训练出的模型来表示前景动态物体呢?在CARLA的框架下目前这一点比较难,因为LumaAI导入的点云Blueprint Class和Car等actor的Blueprint Class截然不同,应用难度较大。不过我们也看到了一些研究项目如gaustudio【15】,可以对3DGS方法训练出的模型提取mesh、texture等素材,也许这样我们就可以用CARLA原本的建立车辆模型的pipeline来建立一个“点云版”的车辆actor。再辅以另外一些解决少视角重建的研究如GaussianObject【16】,也许在CARLA中导入神经渲染动态物体有一天也会成为可能。
  1. 地图:
仿真场景离不开地图,除手工搭建外,也许也可以用一些诸如MapTR(过于著名不再贴出链接)的方法解决。
  1. 更多传感器:
截止到目前为止我们只讨论了相机图像的仿真,尽管自动驾驶进入了重视觉时代,但其他一些传感器仍然是不可或缺的,我们仍然需要其他途径来模拟这些传感器。

参考文献:

【1】‍https://github.com/PJLab-ADG/OASim
【2】‍https://github.com/atonderski/neuro-ncap
【3】https://github.com/georghess/neurad-studio
【4】https://github.com/Akiya-Research-Institute/3dGaussiansPlugin-Demo
【5】https://github.com/xverse-engine/XV3DGS-UEPlugin
【6】https://github.com/JamChaos/UE4-NeRF
【7】https://lumalabs.ai/ue
【8】https://github.com/carla-simulator/carla/tree/ue5-dev
【9】https://github.com/CarlaUnreal/UnrealEngine/tree/ue5-dev-carla
【10】https://github.com/fudan-zvg/PVG
【11】https://github.com/kcheng1021/GaussianPro
【12】https://github.com/nnanhuang/S3Gaussian
【13】https://github.com/LightwheelAI/street-gaussians-ns
【14】https://github.com/yifanlu0227/ChatSim
【15】https://github.com/GAP-LAB-CUHK-SZ/gaustudio
【16】https://github.com/GaussianObject/GaussianObject
本文完。 


来源:车路漫漫
ACTUGpythonUM理论自动驾驶游戏渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-12-10
最近编辑:8月前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 14粉丝 93文章 320课程 0
点赞
收藏
作者推荐

AEB量产产品的仿真测试是怎么做的?

自动驾驶汽车在真正商业化应用前,需要经历大量的道路测试才能达到商用要求。但是路测存在着时间长9、成本高、道路受限、场景复现困难等缺点。因此基于场景库的仿真测试可能是解决自动驾驶研发测试挑战的主要路线,目前自动驾驶仿真测试已经被行业广泛接受并采用。PanoSim汽车自动驾驶一体化仿真测试产品和解决方案,集高精度车辆动力学模型、汽车三维行驶环境模型、汽车行驶交通模型、车载环境传感器模型、Matlab/Simulink仿真模型自动生成、图形与动画后处理工具等于一体,基于精确建模与高效计算机数值仿真相结合的原则,利用先进的虚拟现实技术逼真的模拟汽车驾驶的各种环境和工况,并基于几何模型与物理模型相结合的理念建立了高精度的环境传感模型,提供了包括支持离线仿真、实时-软硬件在环仿真和驾驶员在环仿真等在内的多平台、全流程和一揽子解决方案,支持数字仿真环境下汽车动力学与性能、汽车电子控制系统、汽车智能驾驶与主动安全系统、环境传感与感知、自动驾驶等技术和产品的研发测试和验证。PanoSim能够根据法规、经验等搭建相应的测试场景,根据市场不同车型,实现产品自动化测试。本文介绍了PanoSim仿真测试产品进行AEB量产产品测试方案。该方案对JTT1242-2019 AEB标准法规场景进行参数提取,搭建虚拟仿真测试场景,并通过参数泛化的方式生成大量测试场景,支持自动化测试和报告生成,完成产品的系统测试,并生成相应的结果与报告。 Part1 测试需求测试场景测试项为PAEB,标准场景完全满足JTT1242-2019中7.1行人测试要求;车辆不同速度:从20km/h到80km/h,每5km/h递增;行人不同速度:0km/h、3km/h、5km/h、7km/h;行人出现位置:横穿、同车道(同向、相向)、邻车道(同向、相向);行人横穿角度:-10、0、10;行人不同类型:老人、儿童、成人;天气:晴天、雨天、雪天;光照:白天、夜晚、黄昏;环境测试实时机接收场景的目标信息,转换成CAN 报文,通过P-CAN发送到待测ECU,同时通过V-CAN接收待测ECU的报警和控制信息,对模型车辆进行操作,并通过以太网传输到PC端,进行相应场景变换,达到测试ECU的目的。测试环境如下图:▲ 测试环境Part2 HIL台架测试流程采用NI工控系统实现上位机与客户ECU之间的信号交互。上位机运行PanoSim智能驾驶仿真软件,在PanoSim主控平台中搭建标准测试场景包括交通环境、主车等,虚拟主车搭载摄像头真值传感器,直接获取环境感知目标数据,通过标准CAN总线数据发送到用户待测ECU,测试验证ECU决策控制模块获取感知目标数据,进行相应的策略和控制处理,生成控制命令,通过CAN将控制信息(油门、刹车、方向盘等)发送给车辆实时仿真系统,控制实时车辆的行驶姿态,车辆实时仿真系统将实时车辆行驶数据通过Ethernet(千兆)反馈给主控平台(上位PC机),主控平台根据车辆运动状态数据刷新虚拟世界3D数字画面,形成闭环仿真测试。 ▲ HIL测试流程图 Part3 标准工况实验过程实验说明测试设备:ECU设备,内置PAEB控制算法;场景:JTT1242标准行人测试场景;测试开始时,测试车辆沿规划的车道中心线加速到60km/h,并保持一段距离,驾驶员保持加速踏板位置,保持车速,B-B为自车的车道中心线。通知控制行人从测试车辆左侧距离测试车道中心线6m远处沿A-A路径运动,其中,行人加速距离(F)为1.5m。L点为自车与行人的碰撞点,行人在距离L点4.5m时,应达到8km/h的目标速度。若自车AEBS自动制动或发生碰撞,则测试结束。测试过程如下图所示。 ▲ 行人测试示意图场景搭建根据JTT1242所述要求,设置测试车辆与行人的相对位置及其工况条件:主车测试速度为60km/h,在主车前进轨迹达到20m时行人出现。行人出现的位置相对主车横向距离为6m,根据行人出现时主车TTC=3.376s这一条件设置相对纵向距离为56.26m,行人在出现后的前1.5m内逐渐从0开始加速到8km/h,并在接下来的4.5m内维持该速度。信号交互 ▲ 信号交互过程测试过程主车在行驶在仿真时间2.305s开始预警,2.705后开始进行AEB制动控制,先后经历部分制动、紧急制动,制动过程经历2.99s后主车速度减为0并保持停止。 Part4 测试报告测试简介测试需求:本次测试主要是为了验证AEB功能。测试时间:本次测试开始时间为2021-3-1521:22:09,测试总时长为10.824秒。测试场景:本次测试场景为PAEB_60。测试参数是否碰撞:否是否预警:是是否制动:是 类型参数数值主车测试速度60.0km/h最大减速度-9.082m/s2速度减量60.0km/h制动距离29.357m制动时间2.99s最大减速度变化率4.827发生碰撞时,主车速度未碰撞制动开始时时刻2.744s预警开始时刻2.324s目标物初始位置相对主车横向距离-6m初始位置相对主车纵向距离58.5m切入角度0deg干扰模型类型PedstrianCrossing干扰触发条件At Station目标物类型People/ManStdnt_Walk目标物速度8.0km/h 测试过程本次测试场景为PEB_60,测试速度为60.0km/h,干扰模型为PedstrianCrossing,在主车的侧边-6米,前方58.5米处出现目标物People/ManStdnt_Walk,目标物的速度为8.0km/h。主车2.744秒后开始制动,2.99秒后主车停止。 ▲ 主车速度与时间关系 ▲ 目标物速度与时间的关系 ▲ 主缸压力与时间的关系 ▲ 制动减速度与时间的关系 ▲ 主车与目标物纵向距离与时间的关系 ▲ 主车与目标物横向距离与时间的关系说明:生成测试报告中部分内容涉及隐私,所以隐去。测试结果汇总本次测试,通过对各参数泛化,搭建了858种实例场景,经客户根据需求筛选出100例,输出100份测试报告。直道行驶行人横穿/同向/相向39例左侧鬼探头9例右侧鬼探头9例两侧鬼探头9例十字路口转弯十字路口转弯14例环形道路行驶行人横穿9例行人同向9例行人静止2例测试结果如下 测试场景中NG项目共例,对应场景如下案例号场景主车速度行人速度行人角度报警制动PAEB1_10_3_0十字路口低速右转1030NNPAEB1_10_5_01050NNPAEB1_10_7_01070NNPAEB1_20_5_02050YNPAEB1_20_0_0200静止YNNG场景描述 Part5 总结本次用户采用PanoSim智能驾驶虚拟仿真HIL测试系统,通过泛化和自动化工具对其量产AEB ECU进行测试,验证了其报警功能、制动效果以及硬件可靠性,并且能够输出每个场景测试实例的测试结果和报告,供用户分析场景NG原因。该测试方法获得了车企量产车型项目认可,弥补了产品在仿真测试方面的缺乏。本文完。 来源:车路慢慢

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈