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

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

Project Cover

Kimi

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

Project Cover

阿里绘蛙

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

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

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