NoPoSplat根據未設定的稀疏影像預測規範空間中的 3D 高斯分佈,
實現高品質的新穎視圖合成和準確的姿態估計。
安裝
預訓練檢查點
相機約定
數據集
運行程式碼
致謝
引文
我們的程式碼依賴 Python 3.10+,並基於 PyTorch 2.1.2 和 CUDA 11.8 開發,但它也應該適用於更高的 Pytorch/CUDA 版本。
克隆 NoPoSplat。
git 克隆 https://github.com/cvg/NoPoSplatcd NoPoSplat
創建環境,這裡我們展示使用 conda 的範例。
conda 建立-y -n noposplat python=3.10 conda 啟動 noposplat pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118 pip install -r 要求.txt
可選,為 RoPE 編譯 cuda 核心(如 CroCo v2 中)。
# NoPoSplat 依賴 RoPE 位置嵌入,您可以為此編譯一些 cuda 核心以獲得更快的運行時間。 python setup.py build_ext --inplacecd ../../../../../..
我們的模式託管在 Hugging Face 上?
型號名稱 | 培訓決議 | 訓練資料 |
---|---|---|
re10k.ckpt | 256x256 | 重新10k |
酸檢測 | 256x256 | 酸 |
mixRe10kDl3dv.ckpt | 256x256 | re10k、dl3dv |
mixRe10kDl3dv_512x512.ckpt | 512x512 | re10k、dl3dv |
我們假設下載的權重位於pretrained_weights
目錄中。
我們的相機系統與 PixelSplat 相同。相機固有矩陣被歸一化(第一行除以影像寬度,第二行除以影像高度)。相機外部矩陣是 OpenCV 風格的相機到世界矩陣(+X 向右,+Y 向下,+Z 相機看著螢幕)。
資料集準備請參考DATASETS.md。
主要入口點是src/main.py
。透過以下方式調用:
# 8 個 GPU,每個批次大小 = 16。
此預設訓練配置需要 8 個 GPU,每個 GPU 上的批次大小為 16(>=80GB 記憶體)。培訓大約需要 6 小時才能完成。您可以調整批次大小以適合您的硬件,但請注意,更改總批量大小可能需要修改初始學習率才能保持效能。您可以參考re10k_1x8在1個A6000 GPU(48GB記憶體)上進行訓練,這將產生類似的效能。
# RealEstate10Kpython -m src.main +experiment=re10k mode=test wandb.name=re10k dataset/[email protected]_sampler=evaluation dataset.re10k.view_sampler.index_pathd/cmloading. /re10k.ckpt test.save_image=true# RealEstate10Kpython -m src.main +experiment=acid mode=test wandb.name=acid dataset/[email protected]_sampler=評估資料集.re10k.view_sampler evaluation_index_acid .json checkpointing.load=./pretrained_weights/acid.ckpt test.save_image=true
您可以設定wandb.name=SAVE_FOLDER_NAME
來指定儲存路徑。
要評估位姿估計性能,可以執行以下命令:
# RealEstate10Kpython -m src.eval_pose +experiment=re10k +evaluation=eval_pose checkpointing.load=./pretrained_weights/mixRe10kDl3dv.ckpt dataset/[email protected]_s3dv.D. _re10k.json # ACIDpython -m src.eval_pose +experiment=acid +evaluation=eval_pose checkpointing.load=./pretrained_weights/mixRe10kDl3dv.ckpt dataset/[email protected]_sampler=d. json # ScanNet-1500python -m src.eval_pose +experiment=scannet_pose +evaluation=eval_pose checkpointing.load=./pretrained_weights/mixRe10kDl3dv.ckpt
請注意,這裡我們展示了使用在 RealEstate10K 和 DL3DV 上訓練的混合模型進行的評估。您可以用其他經過訓練的模型替換檢查點路徑。
該專案是使用幾個出色的儲存庫開發的:pixelSplat、DUSt3R 和 CroCo。我們感謝原作者的出色工作。我們感謝 David Charatan 的善意幫助,為之前的一些方法提供了評估代碼和預訓練模型。
@article{ye2024noposplat, title = {No Pose, No Problem: Surprisingly Simple 3D Gaussian Splats from Sparse Unposed Images}, author = {Ye, Botao and Liu, Sifei and Xu, Haofei and Xueting, Li and Pollefeys, Marc and Yang, Ming-Hsuan and Songyou, Peng}, journal = {arXiv preprint arXiv:xxxx.xxxx}, year = {2024} }