fabiotosi92/ZipDepth
[ECCV 2026] Official implementation of "ZipDepth: Bringing Lightweight Zero-Shot Monocular Depth Anywhere, on Any Device". A compact 6.1M-parameter network for zero-shot monocular depth estimation, running in real time from server GPUs to mobile phones via knowledge distillation from foundation models.
📦 ZipDepth とは何ですか?
ZipDepth は ECCV 2026 で発表された軽量でゼロショットの単眼深度推定モデルです。特定のタスクに合わせた微調整なしに、単一の RGB 画像から密な深度マップを予測します。最大の特徴はその 精度と効率のトレードオフ です:非常に大きなトランスフォーマー基盤モデルと同等の性能を達成しながら、モデルサイズは約 6 M パラメータに抑え、現代の GPU で 1 k FPS 以上 の速度で動作します(モバイル/エッジハードウェアでも快適に動作)。
🔑 コアアイデア
| コンポーネント | 機能 |
|---|---|
| エンコーダ | RepVGG 再パラメータ化可能な畳み込みから構成される4段階階層。初期段階では ストリッププーリングアテンション で水平/垂直方向の文脈を捉え、後段では シグマ・アンド・エキサイト と グローバルコンテキストブロック を追加。 |
| ネック | マルチスケールプーリング(SPPF)と クロススケール融合 モジュールで特徴量を統合してからデコード。 |
| デコーダ | コンパクトな特徴マップピラミッド(FPN)と 凸アップサンプリング ヘッドを搭載し、サブピクセル精度の深度マップを生成。 |
| 2つのチェックポイント | zipdepth_base.pth(GPU対応、torch.nn.Unfold を使用)と zipdepth_base_npu.pth(Unfold不要、ONNX/CoreML/TFLite への変換が容易でモバイル/NPU向け)。 |
🚀 使い始め
# クローンとインストール
git clone https://github.com/fabiotosi92/ZipDepth
cd ZipDepth
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt # PyTorch ≥2.4 が必要
pip install -e .
推論(単一画像、フォルダ、または動画)
python scripts/infer.py \
--checkpoint checkpoints/zipdepth_base.pth \
--input assets/examples/im0.jpg \
--input-size 384 # 短辺、32の倍数に丸められる
オプションフラグ:--fp16(半精度)、--compile(torch.compile)、--npu(NPU対応チェックポイント使用)、--no-colormap / --save-raw で .npy 形式の生深度出力を取得。
モデルのエクスポート
- ONNX(モバイル/エッジ向け推奨):
python scripts/export.py \ --ckpt checkpoints/zipdepth_base_npu.pth \ --format onnx --height 384 --width 384 --npu - TorchScript(トレースまたはフリーズ):純粋な PyTorch 配備用。
📊 パフォーマンス概要
| データセット | パラメータ数 | GFLOPs(384×384) | 通常の遅延(RTX 3090) |
|---|---|---|---|
| NYUv2, KITTI, ETH3D, ScanNet, DIODE | ~6.1 M | ~0.9 G | 0.8 ms(TensorRT FP16)→ 約1300 FPS |
論文のパレートプロットでは、ZipDepth が軽量モデル領域を支配しつつ、最良の大型モデルと数パーセント以内の差で競合していることが示されています。
🛠️ 学習(研究志向)
- データ:17の公開画像ドメイン(例:COCO、Cityscapes、MegaDepth など)で Depth Anything V2 Large からの知識蒸留により生成された 1400 万件の RGB-深度ペア。ファイルパスのリストは
training_files.txt.gzとして提供。実際の画像は元のデータセットから入手する必要があります。 - パイプライン:
scripts/prepare_index.pyで JSON インデックスを構築 → オプションで NumPy メモリマップに変換して高速 I/O を実現。 - 起動(単一GPU例):
Multi-GPU はpython scripts/train.py --config configs/default.jsontorchrunと標準 DDP を使用。 - 損失関数:スケール・シフト不変深度損失 + グラデント正則化、AdamW と One-Cycle LR スケジュールで最適化。
📱 オンデバイスでのデプロイ
- NPU対応チェックポイント(
zipdepth_base_npu.pth)を選択。 - ONNX にエクスポート(
scripts/export.py --format onnx --npu)。 - ONNX モデルを対象ランタイム(ONNX Runtime Mobile、CoreML、TFLite、NCNN など)に変換。
- アップサンプリングヘッドはモバイル NPU で広くサポートされている演算子のみを使用しており、クリーンな変換が保証されます。
🙏 謝辞と引用
著者らは Marigold(評価プロトコル提供)および Depth Anything V2(擬似ラベル提供)の作成者に感謝します。ZipDepth を研究で使用する場合、以下の引用を記載してください:
@inproceedings{tosi2026zipdepth,
title = {ZipDepth: Bringing Lightweight Zero-Shot Monocular Depth Anywhere, on Any Device},
author = {Tosi, Fabio and Bartolomei, Luca and Poggi, Matteo and Mattoccia, Stefano},
booktitle = {European Conference on Computer Vision (ECCV)},
year = {2026}
}
📧 お問い合わせ
質問がある場合は、README に記載されたメールアドレスまでご連絡ください。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト