3DitScene:通过语言引导的解耦高斯分布实现任意场景编辑
移动熊,并旋转相机 | 移动/移除女孩,并旋转相机 |
安装
- 安装
Python >= 3.8
。 - 安装
torch >= 1.12
。我们已在torch==2.0.1+cu118
上测试过,但其他版本应该也能正常工作。 - 克隆我们的仓库:
git clone https://github.com/zqh0253/3DitScene.git --recursive
- 安装依赖:
pip install -r requirements.txt
- 安装子模块:
pip install ./submodules/segment-anything-langsplat
pip install ./submodules/MobileSAM-lang
pip install ./submodules/langsplat-rasterization
pip install ./submodules/simple-knn
- 准备
SAM
的权重:
mkdir ckpts
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth -O ./ckpts/sam_vit_h_4b8939.pth
cp submodules/MobileSAM-lang/weights/mobile_sam.pt ./ckpts/
使用方法
运行以下命令启动优化过程:
python -u launch.py --config custom/threestudio-3dgs/configs/scene_lang.yaml --train --gpu 0 tag=3DitScene
system.geometry.geometry_convert_from=depth:${IMGPATH} system.geometry.ooi_bbox=${BBOX}
system.prompt_processor.prompt="${PROMPT}" system.empty_prompt="${EMPTY_PROMPT}" system.side_prompt="${SIDE_PROMPT}"
你需要指定图像路径 IMGPATH
、感兴趣对象的边界框 BBOX
,以及提示:PROMPT
、EMPTY_PROMPT
、SIDE_PROMPT
。这些提示分别描述图像本身、图像背后的背景区域和新视角区域的内容。
这里我们提供一张图片(./assets/teddy.png
)作为示例:
python -u launch.py --config custom/threestudio-3dgs/configs/scene_lang.yaml --train --gpu 0 tag=3DitScene
system.geometry.geometry_convert_from=depth:assets/teddy.png system.geometry.ooi_bbox=[122,119,387,495]
system.prompt_processor.prompt="a teddy bear in Times Square" system.empty_prompt="Times Square, out of focus" system.side_prompt="Times Square, out of focus"
Huggingface 演示
我们提供了一个 Huggingface 演示。你有两种方式来体验我们的演示: (1) 访问我们的在线 Hugging Face space。 (2) 按照以下步骤在本地部署:
- 按照我们的 Dockerfile 中指定的内容安装必要的包并下载所需文件,
- 运行以下命令在
localhost:10091
启动服务:
python gradio_app_single_process.py --listen --hf-space --port 10091
引用
如果你觉得我们的工作有用,请考虑引用:
inproceedings{zhang20243DitScene,
author = {Qihang Zhang and Yinghao Xu and Chaoyang Wang and Hsin-Ying Lee and Gordon Wetzstein and Bolei Zhou and Ceyuan Yang},
title = {{3DitScene}: Editing Any Scene via Language-guided Disentangled Gaussian Splatting},
booktitle = {arXiv},
year = {2024}
}