使用扩散模型增强3D高斯重建仿真质量指南
本文逐步介绍了如何下载重建场景、设置Fixer以及运行推理来清理渲染帧。最终结果是获得一个更清晰、重建伪影更少的场景,从而实现更可靠的自动驾驶车辆开发。要使用Fixer处理机器人NuRec场景,请从Hugging Face的PhysicalAI-Robotics-NuRec数据集下载重建场景,并按照本文介绍的步骤操作。了解更多信息,探索Fixer如何针对特定的操作设计领域和传感器配置进行后训练。有
如何提升3D高斯重建质量以用于仿真
构建真正逼真的3D仿真环境具有挑战性。即使采用3D高斯溅射(3DGS)和带无迹变换的3D高斯(3DGUT)等先进的神经重建方法,渲染视图仍然可能包含伪影,例如模糊、孔洞或虚假几何体——特别是在新视角下。这些伪影会显著降低视觉质量,并可能阻碍下游任务。
某中心的Omniverse NuRec将真实世界传感器数据引入仿真,并包含一个名为Fixer的生成模型来解决此问题。Fixer是一个基于扩散的模型,构建于某中心Cosmos Predict世界基础模型之上,旨在消除场景中欠约束区域的渲染伪影并恢复细节。本文逐步介绍了如何使用Fixer将噪点多的3D场景转变为清晰、无伪影、可供自动驾驶车辆仿真的环境。涵盖了在场景重建期间离线使用Fixer和在渲染期间在线使用Fixer的方法,使用了某机构Hugging Face上某中心Physical AI开放数据集中的一个示例场景。
步骤1:下载重建的场景
首先,找到一个存在一些伪影的重建3D场景。Hugging Face上的PhysicalAI-Autonomous-Vehicles-NuRec数据集提供了超过900个从真实世界驾驶中捕获的重建场景。首先登录Hugging Face并同意数据集许可。然后下载示例场景,该场景以包含3D环境的USDZ文件形式提供。例如,使用Hugging Face CLI:
pip install huggingface_hub[cli] # 如果需要,安装HF CLI
hf auth login
# (在通过huggingface-cli登录并接受数据集许可之后)
hf download nvidia/PhysicalAI-Autonomous-Vehicles-NuRec \
--repo-type dataset \
--include "sample_set/25.07_release/Batch0005/7ae6bec8-ccf1-4397-9180-83164840fbae/camera_front_wide_120fov.mp4" \
--local-dir ./nurec-sample
此命令将场景的预览视频下载到本地机器。Fixer直接对图像而非USD或USDZ文件进行操作,因此使用视频帧提供了一组方便处理的输入图像。
接下来,使用FFmpeg提取帧,并将这些图像作为Fixer的输入:
# 为Fixer创建输入文件夹
mkdir -p nurec-sample/frames-to-fix
# 提取帧
ffmpeg -i "sample_set/25.07_release/Batch0005/7ae6bec8-ccf1-4397-9180-83164840fbae/camera_front_wide_120fov.mp4" \
-vf "fps=30" \
-qscale:v 2 \
"nurec-sample/frames-to-fix/frame_%06d.jpeg"
视频1是展示重建场景及其伪影的预览视频。在本例中,由于相机覆盖范围有限,某些表面存在孔洞或纹理模糊。这些伪影正是Fixer设计要解决的问题。
步骤2:设置Fixer环境
接下来,设置运行Fixer的环境。
在继续之前,请确保已安装Docker并启用了GPU访问。然后完成以下步骤以准备环境。
克隆Fixer仓库
这将获取后续步骤所需的必要脚本:
git clone https://github.com/nv-tlabs/Fixer.git
cd Fixer
下载预训练的Fixer检查点
预训练的Fixer模型托管在Hugging Face上。要获取此模型,请使用Hugging Face CLI:
# 为模型创建目录
mkdir -p models/
# 仅将预训练模型下载到 models/ 目录
hf download nvidia/Fixer --local-dir models
这将把推理步骤3所需的文件保存到models/文件夹。
步骤3:使用在线模式进行实时推理
在线模式是指在仿真期间使用Fixer作为神经增强器,在渲染过程中修复每一帧。使用预训练的Fixer模型进行推理,该模型可以在Cosmo2-Predict Docker容器内运行。
请注意,Fixer会增强来自场景的渲染图像。确保帧已导出(例如到examples/目录),并将该文件夹传递给--input参数。
要对目录中的所有图像运行Fixer,请执行以下步骤:
# 构建容器
docker build -t fixer-cosmos-env -f Dockerfile.cosmos .
# 运行容器进行推理
docker run -it --gpus=all --ipc=host \
-v $(pwd):/work \
-v /path/to/nurec-sample/frames-to-fix:/input \
--entrypoint python \
fixer-cosmos-env \
/work/src/inference_pretrained_model.py \
--model /work/models/pretrained/pretrained_fixer.pkl \
--input /input \
--output /work/output \
--timestep 250
此命令的细节包括:
- 当前目录被挂载到容器的
/work路径,允许容器访问文件。 - 通过FFmpeg从示例视频提取的帧目录被挂载到
/input。 - 脚本
inference_pretrained_model.py从给定路径加载预训练的Fixer模型。 --input是输入图像的文件夹。--output是增强图像将被保存的文件夹。--timestep 250表示模型用于去噪过程的噪声水平。
运行此命令后,output/目录将包含修复后的图像。请注意,前几幅图像可能处理较慢,因为模型正在初始化,但模型运行后,后续帧的推理速度会加快。
步骤4:评估输出
将Fixer应用于图像后,可以评估它提升了多少重建质量。本文报告了峰值信噪比,这是一种衡量像素级准确性的常用指标。表1提供了示例场景处理前后的对比。
| 指标 | 未使用 Fixer | 使用 Fixer |
|---|---|---|
| PSNR ↑ (准确性) | 16.5809 | 16.6147 |
表1. 应用Fixer后的PSNR提升示例(↑ 表示数值越高越好)
请注意,如果尝试使用Physical AI开放数据集中的其他NuRec场景,或自己的神经重建,可以通过这些指标衡量Fixer的质量改进。有关如何计算这些值的说明,请参阅相关指标文档。
在定性方面,经过Fixer处理的场景看起来明显更加逼真。先前模糊的表面现在以合理的细节重建,精细纹理变得更加清晰,并且这些改进在帧之间保持一致,没有引入明显的闪烁。
此外,当引入新视角合成时,Fixer在纠正伪影方面也非常有效。视频3展示了将Fixer应用于从向左移动3米的新相机视角渲染的NuRec场景。当在新视角合成输出之上运行时,Fixer减少了视角相关的伪影,并提高了重建场景的感知质量。
总结
本文逐步介绍了如何下载重建场景、设置Fixer以及运行推理来清理渲染帧。最终结果是获得一个更清晰、重建伪影更少的场景,从而实现更可靠的自动驾驶车辆开发。
要使用Fixer处理机器人NuRec场景,请从Hugging Face的PhysicalAI-Robotics-NuRec数据集下载重建场景,并按照本文介绍的步骤操作。
了解更多信息,探索Fixer如何针对特定的操作设计领域和传感器配置进行后训练。有关如何在重建期间使用Fixer的信息,请参阅相关文档。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
更多推荐

所有评论(0)