Project Icon

Infusion

基于扩散先验的3D高斯体场景修复技术

InFusion项目提出了一种创新的3D场景修复方法,通过学习扩散先验的深度完成来修复3D高斯体。该技术实现了对不完整3D场景的高质量修复,能够处理复杂的遮挡情况。InFusion为3D重建和虚拟现实等领域提供了新的解决方案,项目开源了推理代码和预训练模型,为相关研究和开发提供了重要资源。

InFusion: 通过从扩散先验学习深度补全来修复3D高斯

刘志恒* · 欧阳浩* · 王秋雨 · 郑嘉良 · 肖杰 · 朱凯 · 薛楠 · 刘宇 · 沈昱君 · 曹杨

论文PDF 项目主页
中国科学技术大学 | 香港科技大学 | 蚂蚁集团 | 阿里巴巴集团

新闻

  • [2024.4.18] 🔥 发布论文、推理代码和预训练检查点。
  • [进行中] 整理并组织实验中使用的数据集对应的掩码。
  • [进行中] 使用更多训练数据扩展模型,并发布更强大的模型作为下游任务的基础模型。
  • [待办] 发布训练代码。

安装

使用conda安装:

conda env create -f environment.yaml
conda activate infusion
  • 🛠️ 对于深度渲染,我们使用来自FSGSdiff-gaussian-rasterization-confidence,感谢他们的工作!:)

下载检查点

下载Infusion检查点并将其放在'checkpoints'文件夹中:

数据准备

我们的实验在Mip-NeRFInstruct-NeRF2NeRFSPIn-NeRF提供的数据集上进行。 我们将在几天内上传实验中使用的掩码和我们自己拍摄的挑战场景。

Mip-NeRF中的"garden"为例,每个场景文件夹应按如下方式组织。

garden
├── images # RGB数据
│   ├── DSC07956.JPG
│   ├── DSC07957.JPG
│   └── ...                   
├── seg # 掩码 
│   ├── DSC07956.JPG
│   ├── DSC07957.JPG
│   └── ... 
│   # 需要修复的部分为白色
└── sparse # Colmap
│   └── 0
│       └── ...
  • 🛠️ 您可以按照这样的结构准备自己的数据。此外,准确的掩码非常重要。在这里,我们推荐两个图像分割工具:Segment and Track AnythingGrounded SAM

  • 🛠️ 要获取相机参数和初始点云,请参考Gaussian-Splatting中的'convert.py' :)

使用说明

整个流程分为三个阶段:

  • 训练不完整的高斯。
  • 通过扩散先验修复高斯。
  • 结合修复的高斯和不完整的高斯。

🌺 第1阶段

使用预先标注的掩码来训练不完整的高斯。

cd gaussian_splatting
# 训练不完整的高斯
python train.py -s <场景文件夹路径> -m <输出文件夹路径> -u nothing --mask_training
#--color_aug

# 获取c2w矩阵、内参矩阵、不完整深度和rgb渲染图像
python render.py -s <场景文件夹路径> -m <输出文件夹路径> -u nothing
  • 🛠️ 提示:有时,渲染的深度可能会有太多空白点。您可以在训练时使用--color_aug,这将在渲染深度时随机选择背景颜色,可能会使深度图更可靠。

  • 🛠️ 最近,一些工作专注于如何分割高斯。这不是本工作的重点,所以选择了一种相对简单的方法。:)

🌺 第2阶段

使用深度修复模型修复高斯。

  • 📢 您需要在*'输出文件夹路径/train/ours_30000/renders'中选择一个单一图像,并标记需要修复的区域,并将其保存为*'mask.png'**。(它不必精确,但需要覆盖所有缺失的部分。
  • 📢 接下来,你需要对单张图像进行修复。这里有一些很好的工具可以用来修复单张图像:Stable Diffusion XL InpaintingPhotoroom。以下是一个例子:
# 假设选定的单张图像名为"DSC07956.JPG"。
cd depth_inpainting/run
input_rgb_path=<修复后的单张图像路径>
input_mask_path=<'mask.png'的路径>
input_depth_path=<输出文件夹/train/ours_30000/depth_dis/DSC07956.npy的路径>
c2w=<输出文件夹/train/ours_30000/c2w/DSC07956.npy的路径>
intri=<输出文件夹/train/ours_30000/intri/DSC07956.npy的路径>
model_path=<深度修复模型检查点的路径>  # 绝对路径
output_dir=<输出文件夹的路径>


CUDA_VISIBLE_DEVICES=0 python run_inference_inpainting.py \
            --input_rgb_path $input_rgb_path \
            --input_mask $input_mask_path \
            --input_depth_path $input_depth_path \
            --model_path $model_path \
            --output_dir $output_dir \
            --denoise_steps 20 \
            --intri $intri \
            --c2w $c2w \
            --use_mask\
            --blend  # 是否在推理过程中使用'混合扩散(https://arxiv.org/abs/2111.14818)'。 
  • 🛠️ 提示:如果你觉得一次推理获得的深度图不够理想,你可以使用新获得的output_dir/<inpainted_image_name>_depth_dis.npy作为新的$input_depth_path,循环两三次以获得更好的结果。

🌺 第3阶段

合并修复后的高斯点和不完整的高斯点,并在修复后的单张图像上快速微调。

# 假设选定的单张图像名为"DSC07956.JPG"。
origin_ply="输出文件夹/point_cloud/iteration_30000/point_cloud.ply的路径"
supp_ply="输出文件夹/DSC07956_mask.ply的路径"
save_ply="输出文件夹/point_cloud/iteration_30001/point_cloud.ply的路径"
# 合并修复后的高斯点和不完整的高斯点。
python compose.py --original_ply $origin_ply  --supp_ply $supp_ply --save_ply $save_ply --nb_points 100 --threshold 1.0
# 在修复后的单张图像上微调150次迭代。
python train.py -s <场景文件夹路径> -m <输出文件夹路径> -u DSC07956.JPG -n <修复后的单张图像路径> --load_iteration 30001 --iteration 150
# 渲染
python render.py -s <场景文件夹路径> -m <输出文件夹路径> -u nothing --iteration 150
  • 🛠️ 参数--nb_points--threshold用于去除漂浮点。增加它们的值会移除更多周围的点。去除漂浮点对最终渲染结果非常重要。在这里,我们需要找到最适合从场景中去除漂浮点的参数。

  • 🛠️ 作为显式点,高斯点可以在实际应用中直接编辑和裁剪,例如在KIRI Engine中。

致谢

本项目基于Gaussian-SplattingMarigoldMagicboomliu的代码库开发。我们感谢他们的出色工作!

引用

如果你发现这个仓库对你的工作有帮助,请考虑引用以下论文,并给公共仓库一个⭐,让更多人发现这个仓库:

@article{liu2024infusion,
  title={InFusion: Inpainting 3D Gaussians via Learning Depth Completion from Diffusion Prior},
  author={Liu, Zhiheng and Ouyang, Hao and Wang, Qiuyu and Cheng, Ka Leong and Xiao, Jie and Zhu, Kai and Xue, Nan and Liu, Yu and Shen, Yujun and Cao, Yang},
  journal={arXiv preprint arXiv:2404.11613},
  year={2024}
}

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号