zju3dv/InfiniDepth

[CVPR 2026] InfiniDepth: Arbitrary-Resolution and Fine-Grained Depth Estimation with Neural Implicit Fields

InfiniDepth

InfiniDepth 是一個用於單影像 3D 感知的研究級程式碼庫。它利用神經隱式場(neural implicit fields)產生任意解析度的深度圖,並合成 3D Gaussian‑splatting (3DGS) 表示,亦可選擇融合感測器的稀疏深度以獲得公制尺度(metric-scale)的結果。

功能特色

功能 輸入 輸出
任意解析度深度 RGB 影像 任意解析度的深度圖(相對或公制)
單眼視角合成 RGB 影像 3D Gaussian‑splatting 模型 + 可選的新視角影片
深度感測器增強 RGB + 稀疏深度 公制深度 + 3DGS

快速開始

  1. 安裝 – 請依照 INSTALL.md 中的步驟指南進行(Python, PyTorch, 所需檢查點)。
  2. 嘗試演示 – 公開的 Gradio 應用程式託管於 Hugging Face:
    python app.py   # 在本地執行相同的介面
    
    上傳一張 RGB 影像(若有深度圖亦可上傳),並選擇 Depth3DGS
  3. 從命令列執行推論example_scripts/ 下提供了範例腳本:
    # 從單張 RGB 影像取得相對深度
    bash example_scripts/infer_depth/courtyard_infinidepth.sh
    
    # 從單張 RGB 影像取得 3D Gaussian
    bash example_scripts/infer_gs/courtyard_infinidepth_gs.sh
    
    # 使用深度感測器取得公制深度
    bash example_scripts/infer_depth/eth3d_infinidepth_depthsensor.sh
    
    這些腳本以預設參數呼叫 inference_depth.pyinference_gs.py;您可以透過 README 中記載的命令列旗標來更改輸出解析度、啟用天空遮罩或匯出點雲。

多視角 / 影片支援

inference_multi_view_depth.py 可以處理影像資料夾或影片,產生逐幀深度圖、對齊的點雲以及合併後的全域點雲。它既可以依賴 DA3 depth‑anything 模型進行尺度對齊,也可以使用明確的相機內參/外參(Waymo 風格的 txt 檔案)。

訓練與微調

本儲存庫包含完整的訓練流程 (main.py)。在設定環境變數 workspace(儲存實驗輸出)與 commonspace(共享資料集/預訓練權重)後,您可以:

  • 微調 現有的檢查點:
    python3 main.py \
      --cfg_file training/exp_configs/exps/infinidepth.yaml \
      --include training/exp_configs/components/data/train/infinidepth_train_hypersim.yaml \
      ckpt_path=checkpoints/depth/infinidepth.ckpt \
      exp_name=finetune_infinidepth_on_hypersim \
      pl_trainer.devices=8
    
  • 從頭開始訓練:省略 ckpt_path 即可。
  • 驗證會在每個 epoch 後於混合真實資料基準上自動執行。

資源


InfiniDepth 旨在為需要從單張影像進行高品質深度或 3D‑Gaussian 重建的研究人員與開發者提供服務,並支援選配感測器融合以達到公制精度。

相關

  • 專案
  • 專案
  • 專案
  • 專案