代理式 AI/生成式 AI

如何提升 3D 高斯模拟重建的质量

构建高度逼真的3D仿真环境面临巨大挑战。即便采用3D高斯点阵(3D Gaussian Splatting, 3DGS)或结合无迹变换的3D高斯方法(3D Gaussian with Unscented Transform, 3DGUT)等先进的神经重建技术,从新视角渲染的图像仍可能出现模糊、空洞或虚假几何结构等伪影。这些伪影不仅会显著降低视觉质量,还可能对后续任务造成不利影响。

NVIDIA Omniverse NuRec 能够将真实世界的传感器数据融入仿真环境,并引入了一种名为 Fixer 的生成模型来解决相关问题。Fixer 是基于 NVIDIA Cosmos Predict 世界基础模型(WFM)构建的扩散模型,可有效消除场景中受限区域的渲染伪影,并恢复细节信息。

本文将介绍如何利用 Fixer 将复杂的 3D 场景转化为清晰、无伪影的环境,为 智能汽车(AV) 仿真做好准备。文中采用 NVIDIA 物理 AI 开放数据集(发布于 Hugging Face)中的示例场景,涵盖在场景重建阶段离线使用以及在渲染过程中在线应用 Fixer 的两种方式。

第 1 步:下载重建的场景

首先,获取一个包含伪影的重建3D场景。Hugging Face 上的 PhysicalAI-Autonomous-Vehicles-NuRec 数据集提供了从真实驾驶中采集的900多个重建场景。请先登录 Hugging Face 并同意数据集的使用许可,然后下载示例场景。该场景以包含3D环境的 USDZ 文件格式提供。例如,可使用 Hugging Face CLI 进行下载。

pip install huggingface_hub[cli]  # install HF CLI if needed

hf auth login

# (After huggingface-cli login and accepting the dataset license)
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

该命令会将场景预览视频(camera_front_wide_120fov.mp4)下载到您的本地设备。由于 Fixer 处理的是图像,而非直接处理 USD 或 USDZ 文件,因此通过视频帧提取图像可更便捷地进行批量处理。

接下来,使用 FFmpeg 提取视频帧,并将这些图像作为 Fixer 的输入。

# Create an input folder for Fixer 
mkdir -p nurec-sample/frames-to-fix
# Extract frames
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旨在解决的问题。

视频1:从 Hugging Face 下载的场景重建示例预览

第 2 步:设置 Fixer 环境

接下来,设置运行 Fixer 的环境。

在继续操作前,请确认已安装 Docker 并配置好 GPU 访问权限。然后按照以下步骤完成环境准备。

克隆 Fixer 存储库

这将获取后续步骤所需的相关脚本:

git clone https://github.com/nv-tlabs/Fixer.git
cd Fixer

下载预训练的 Fixer 检查点

预训练的 Fixer 模型 已托管在 Hugging Face 平台上。如需获取该文件,可使用 Hugging Face CLI 工具。

# Create directory for the model
mkdir -p models/
# Download only the pre-trained model to models/
hf download nvidia/Fixer --local-dir models 

这将在第 3 步中把推理所需的文件保存到 models/ 文件夹中。

第 3 步:通过在线模式与 Fixer 进行实时推理

在线模式是指在渲染过程中,通过在仿真阶段逐帧调用 Fixer 作为神经增强器来提升图像质量。该模式利用预训练的 Fixer 模型进行推理,模型可运行于 Cosmo2-Predict Docker 容器中。请注意,Fixer 能够增强场景中的渲染图像。请确保已将帧序列导出(例如导出至 examples/),并将该输出文件夹路径传递给 --input

要在目录中的所有图像上运行 Fixer,请按照以下步骤操作:

# Build the container
docker build -t fixer-cosmos-env -f Dockerfile.cosmos .

# Run inference with the container
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 从示例视频中提取的图像帧。
  • 运行脚本 inference_pretrained_model.py(来自克隆的 Fixer 仓库的 src/ 目录),从指定路径加载预训练的 Fixer 模型。
  • --input 表示输入图像的文件夹(例如示例中的“示例/”目录,包含带有伪影的渲染帧),
  • --output 为保存增强后图像的输出目录,
  • --timestep 250 表示模型在降噪处理中所使用的噪声级别。

运行此命令后,output/ 目录将生成处理后的图像。需要注意的是,由于模型初始化的原因,前几帧图像的处理速度可能较慢,但随着模型进入稳定运行状态,后续帧的推理速度会明显提升。

视频2:比较使用 Fixer 在线模式增强的 NuRec 场景与重建场景的样本

第 4 步:评估输出

应用图像修复器(Fixer)后,可对其在提升重建质量方面的效果进行评估。本文采用峰值信噪比(PSNR)作为评价指标,该指标常用于衡量像素级的重建精度。表1展示了部分场景在处理前后的对比示例。

指标 无固定器 带固定器
PSNR ↑ (准确率) 16.5809 16.6147
表 1。应用 Fixer 后 PSNR 提升效果示例(↑ 表示数值越高越好)

请注意,如果您尝试使用物理 AI 开放数据集中的其他 NuRec 场景或自行构建的神经重建结果,均可通过这些指标来评估 Fixer 带来的质量提升。具体计算方法请参见 相关指标文档

从定性角度来看,经过 Fixer 处理后的场景显得更加真实。原本涂抹的区域现在能够依据合理的细节得以重建,道路标线等精细纹理也更加清晰,同时在各帧之间实现了稳定的改进,且未出现明显的闪烁现象。

此外,在引入新的视图合成时,Fixer 能够有效消除产生的伪影。视频 3 展示了 Fixer 在 NuRec 场景中的应用效果:通过将摄像机向左平移 3 米并从新视角进行渲染,Fixer 在生成的新视图上运行后,能够减轻与视角相关的伪影,显著提升重建场景的视觉质量。

视频 3:将使用 Fixer 增强的 NuRec 场景与左侧 3 米视角下的原始 NuRec 场景进行对比。

总结

本文将介绍如何下载重建的场景,配置 Fixer 并运行推理以优化渲染帧。经过处理后的场景更加清晰,重建伪影显著减少,有助于提升智能汽车开发的可靠性。

要将 Fixer 与 Robotics NuRec 场景结合使用,请先从 PhysicalAI-Robotics-NuRec 数据集下载重建的场景,再按照本文所述步骤进行操作。

准备好深入了解了吗?了解如何对 Fixer 进行后训练 以适配特定的 ODD 和传感器配置。如需了解在重建阶段(离线模式)如何使用 Fixer,请参阅 Difix3D+:使用单步扩散模型改进 3D 重建

详细了解 NVIDIA 研究在 NeurIPS 上的内容。

NVIDIA 研究团队始终活跃在人工智能创新的前沿,NVIDIA 研究 持续推动机器学习、自动驾驶、机器人、图形与仿真等领域的技术进步。立即探索这些开创性突破

订阅 NVIDIA 新闻,并在 DiscordYouTube 上关注 NVIDIA Omniverse,以便及时获取最新资讯。

使用开发者入门套件,快速构建并增强您自己的应用与服务

 

标签