首页/文章/ 详情

实战演练|最新版CARLA 0.9.16结合NVIDIA COSMOS进行数据合成

9月前浏览626

作者 | 张峻川

编辑 | 李慢慢

出品 | 车路漫漫


仿真最前沿干货来袭,建议先收藏。


CARLA官方最新发布的版本 《CARLA 0.9.16 发布啦》 大家都看了嘛?其中包含了和NVIDIA联合开发的三项重大前沿功能:Cos mos Transfer,SimReady和NuRec,今天笔者就Cos mos Transfer合成数据功能进行简单尝试。不知道Cos mos的小伙伴戳这个链接可以补补课《英伟达的Cos mos是个什么东东》。


CARLA和Cos mos的联合仿真的官方文档可见文末参考链接[1]。首先进行整体思路介绍:

1、CARLA根据保存的场景回放或新搭建场景录制数据,产生如物体边缘edge视频、深度depth视频、分割semantic_segmentation视频等;

2、上面这些视频作为NVIDIA cos mos transfer1的控制条件输送给推理模型,推理模型根据提示词prompts生成所需要风格的视频数据。


如下是实操过程,想看效果的请直接跳转至文末。

1. CARLA视频生成

安装编译CARLA 0.9.16版本软件后,根目录下包含以下脚本PythonAPI/examples/nvidia/cos mos/client/carla_cos mos_gen.py,该脚本可以读取PythonAPI/examples/nvidia/cos mos/client/example_data/logs/inverted_ai路径下CARLA提供的示例场景记录log,还原仿真场景并渲染出传感器数据,合成视频输出。命令如下:

python carla_cos mos_gen.py \ 
-f ${PWD}/example_data/logs/inverted_ai/iai_carla_synthetic_log_1731622446_actorPOV4641_startTime3.7s_log.log \ 
--sensors cos mos_aov.yaml \
--class-filter-config filter_semantic_classes.yaml \
-c 4641 -s 0.0 -d 5.0 -o output


需要注意的是,在carla_cos mos_gen.py脚本的video_writer_worker函数中,记录视频的长度被固定成了120帧(帧率fps是24,120帧也就是5s时长),读者可按需修改。但需要注意增长时长给后面cos mos transfer1推理带来的性能压力。


carla_cos mos_gen.py运行成功后,会在执行目录下保存rgb、rgb_edge、semantic_segmentation、depth、rgb_masked、instance_segmentation等视频,部分效果如图1所示。


图1-CARLA仿真生成的视频


2. cos mos transfer1推理部署

官方文档给出了两个进行cos mos transfer1推理的option:一个是使用官方在NVIDIA Brev云服务器上部署好的服务(图2),另一个是将官方提供的推理docker部署在用户本地。

图2-NVIDIA Brev云服务器


CARLA官方在NVIDIA Brev配备的是H100多卡算力,价格昂贵,所以笔者决定使用第二种方法。


由于笔者没有本地的高算力显卡,所以也需要在云服务器上做部署,但在云服务器中再部署docker,需要处理复杂的网络proxy问题,因此第二种方法也不太方便实现。


通过研究PythonAPI/examples/nvidia/cos mos下的client和server两个文件夹下的代码,我发现,CARLA在server端使用web应用开发框架gradio实现了一个app interface,包裹了一下cos mos transfer1的模型调用代码,在client端cos mos_client.py也将通过gradio将一次推理所需的提示词、控制条件等传输给server,server再调用co s mos transfer1完成推理。


cos mos_client.py的调用示例如下:

python cos mos_client.py http://url_to_server:port \
example_data/prompts/rain.toml \
--output outputs/ \
--input-video example_data/artifacts/rgb.mp4 \
--edge-video example_data/artifacts/edges.mp4 \
--depth-video example_data/artifacts/depth.mp4 \ 
# optional
--seg-video example_data/artifacts/semantic_segmentation.mp4 \
--vis-video example_data/artifacts/vis_control.mp4 \ 
# optional
--seed 2048


因此我们完全可以省略官方docker和其中的gradio框架,直接将cos mos transfer1部署在所选用的云服务器上。


cos mos transfer1的github链接[2]中有详细的部署步骤,在此不再赘述。[2]中的examples文件夹下有cos mos transfer1推理的详细介绍,只要和[1]进行对照,我们就可以很方便地将[1]中cos mos_client.py给server输入的参数转换成cos mos transfer1所需要的输入,直接调用模型进行推理。


在此补充一些笔者实际部署时的配置:

虽然官方文档中强调需要使用H100进行推理,但实践证明A100单卡也可以完成推理任务。笔者的配置是CPU 64核,96G内存,A100,80G显存。运行推理时的巅峰内存消耗在50G+,显存消耗60G。完成一个CARLA toml配置文件中的任务,合成5s视频所需时长约20分钟。关键配置参数中,减少num_steps也就是减少diffusion步数会显著缩短推理时间,但显然也会导致输出质量下降。


3. cos mos transfer1合成效果


最后,附上几个视频展示cos mos transfer1的视频合成效果。以下CARLA视频全部来自PythonAPI/examples/nvidia/cos mos/client/example_data/logs/中的记录,提示词等输入全部来自PythonAPI/examples/nvidia/cos mos/client/example_data/prompts/文件夹。


效果1:右转


效果2:左转


效果3:直行


参考链接:

1. https://carla.readthedocs.io/en/latest/nvidia_cos mos_transfer/
2. https://github.com/nvidia-cos mos/cos mos-transfer1

以上,本文完。


后续,车路漫漫还会继续推出关于世界模型/3DGS等新型仿真技术的应用探索,欢迎各位小伙伴持续关注。

来源:车路漫漫
ACTSTEPSpythonUM控制渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-01-08
最近编辑:9月前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 14粉丝 93文章 322课程 0
点赞
收藏
作者推荐

CARLA 0.9.16 发布啦,快来看看有哪些更新吧!

我们满怀欣喜地向您呈现 CARLA 0.9.16 版本!该版本对基于虚幻引擎 4.26(Unreal Engine 4.26)的 CARLA 进行了多项重大升级,有望优化您的 CARLA 工作流程,并提升仿真数据的多样性!CARLA 0.9.16 集成了英伟达(NVIDIA)推出的强大新型渲染技术与导出选项。全新的 Cos mos Transfer1 基础风格迁移模型,支持通过文本提示生成 CARLA 仿真输出的多种风格变体,涵盖建筑、车辆、天气及光照条件等方面的差异。借助 Cos mos Transfer1,仅需一组仿真输入数据,就能大幅提升 CARLA 生成的训练数据集的多样性!英伟达 NuRec 技术将神经重建功能引入 CARLA 引擎,可基于从真实世界传感器数据中学习到的信息,对 3D 场景进行重新渲染,支持调整视角、相机配置或轨迹扰动等参数!英伟达 SimReady 转换工具(SimReady Converter Tool)支持以通用场景描述格式(Universal Scene Description format,简称 USD)导出 SimReady 资产,便于将其无缝迁移至 Omniverse 生态系统中其他兼容 USD 格式的应用程序。CARLA 服务器现原生支持与 ROS 2(机器人操作系统 2)的连接,无需再使用桥接工具,能降低与 ROS 节点连接的延迟,实现更流畅的仿真过程。CARLA 0.9.16 新增左舵交通(Left-Handed Traffic)支持功能!这一期待已久的功能终于上线,可对英国、日本等采用左舵交通规则的国家的交通状况进行仿真。此外,新版本还新增了轮椅模型,能将弱势道路使用者纳入 CARLA 生成的训练数据集中。无论您是在构建复杂的自动驾驶系统架构(autonomy stacks)、开展数字孪生(digital twins)相关实验,还是向其他平台导出 CARLA 内容,本版本都能助力您更接近生产级别的仿真工作流程。🎯 更新概览• NVIDIA NuRec神经渲染:实现照片级真实感仿真的关键技术• NVIDIA Cos mos Transfer支持:通过简单提示生成超逼真视频变体• SimReady USD导出器:跨平台资产无缝迁移解决方案• 原生ROS2支持:与现代机器人技术栈无缝集成🧪 NVIDIA Cos mos Transfer1 集成此次 CARLA 版本更新的一大亮点是集成了英伟达 Cos mos Transfer1 技术。Cos mos Transfer1 是一款基础风格迁移模型,旨在增强仿真输出效果。借助 Transfer1,用户只需通过简单的文本提示,就能从 CARLA 序列中生成无数超写实的视频变体。该功能的优势适用于以下场景:1. 增加感知数据集的视觉多样性2. 缩小仿真到现实(sim-to-real)训练中的领域差距3. 结合超写实纹理、光照和天气变化,探索边缘场景此外,将此功能与 Inverted AIDRIVE API 结合使用,可生成具有无限视觉变化的真实行为表现。这是训练自动驾驶系统栈的理想组合!🎥 借助英伟达NuRec 实现神经重建CARLA 0.9.16 引入对 NVIDIA NuRec 25.07 的实验性支持,这是一套先进的神经渲染管线。借助该集成,CARLA 场景可利用学习得到的光照与几何表征实现如下功能:• 从任意视角生成逼真渲染• 提升回放速度和视图合成效率• 实现与合成数据集的神经图形集成这是实现照片级真实感仿真的重要进展,尤其适用于感知模型的训练与评估。随着神经渲染管线持续演进,后续版本将带来更多优化。关于 NuRec 及其在 CARLA 中的使用方法,可参考CARLA 文档[3]。 🧭 原生 ROS2 支持 CARLA 现已提供原生 ROS2 集成,支持以下功能:• 开箱即用兼容性,适配现代机器人技术栈• 基于 DDS 的消息传递和时间同步• 内置集成示例用户可将 CARLA 与 ROS2 Foxy、Galactic、Humble 等版本无缝连接,将传感器数据流、自车控制和世界状态集成至 ROS2 节点中。📦 SimReady USD 导出器 如需将 CARLA 环境或资产导出至其他仿真器或可视化平台,新增的USD SimReady 导出器可将场景和资产打包为 SimReady[6] 格式,实现向 OpenUSD 生态系统及其他平台的无缝迁移。主要特点:• 将环境几何、材质、纹理和元数据导出为 USD 格式• 保留物理属性和 SimReady 命名规范• 适用于数字孪生重用、联合仿真以及 Omniverse 或 Isaac Sim 等工具中的可视化无论用户是在多平台进行仿真、渲染还是智能体训练,该工具都能降低使用门槛、提高资源复用率。该功能得益于 NVIDIA 团队的贡献。🎯 左舵交通支持CARLA 0.9.16 的 API 新增左舵交通支持功能。如今,CARLA 仿真器可支持带有左舵交通规则标签的 OpenDRIVE 道路,这意味着 CARLA 能精准仿真英国、印度、日本等左舵驾驶国家的交通状况。我们很高兴能推出这一用户期待已久的功能,希望能为您提供帮助!🎯 弱势道路使用者CARLA 0.9.16 新增轮椅模型,该模型与大多数现有行人模型兼容,可将弱势道路使用者纳入 CARLA 生成的训练数据中。这一改进有助于避免将轮椅使用者误分类为骑行者或其他个人交通工具使用者的情况。特别感谢来自 Itemis 公司的马克・托伊伯(Marc Teuber)、安德烈亚斯・格拉夫(Andreas Graf)与哈姆扎・本・哈伊・阿马尔(Hamza Ben Haj Ammar),他们为社区贡献了这一出色功能!# Choose a pedestrian blueprint pedestrian_bp = blueprint_library.find('walker.pedestrian.0041')# Check if the pedestrian model supports the wheelchair option if pedestrian_bp.has_attribute('can_use_wheelchair'): # Set the use_wheelchair attribute to true and spawn pedestrian_bp.set_attribute('use_wheelchair','True') pedestrian = world.spawn_actor(pedestrian_bp, spawn_point) 🗺️Coming Soon: 数字孪生工具 v2:基于 OpenStreetMap 构建虚拟世界 数字孪生工具现已完成全面重构,用户可更轻松地基于真实世界数据生成完整环境。新版本以 OpenStreetMap 作为主要数据源,提供以下功能:• 道路网络、交叉口和拓扑的自动解析• 从地形数据集获取的高度图和语义信息• 交通设施、道具和建筑物的灵活参数化• 模板化城市布局,用于填充缺失几何体同时保留地理参考用户仅需简单操作即可生成基于真实世界的 CARLA 环境,非常适用于地理特定实验、合规性测试和仿真到现实的流程。该工具现已作为独立且易用的应用程序发布。这一进展标志着数字孪生与程序化仿真技术融合的重要一步,而这仅仅只是开始。🎯 0.9.16版本的其它改进 1. Project Chrono 更新:现支持本地安装 Chrono 6 版本 2. Python wheel 支持:新增对 Python 3.10、3.11 及 3.12 版本的支持 3. Python egg 弃用:不再支持 Python egg 格式(现仅提供 wheel 格式) 4. 实例分割中的掩码材质:支持对复杂物体(如树叶、围栏)进行细粒度标注 5. 样条网格修复:解决了实例分割中样条网格不可见的问题 6. Inverted AI 交通示例:更新 Python API 脚本,新增对路径点引导的 Inverted AI 车辆的支持 7. 调试绘图:扩展功能支持直接在 HUD(平视显示器)层渲染图元 8. 新增植被道具:在道具库中添加了 3 种新的树木模型 以上,本文完。来源:车路漫漫

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