Lihe Yang 1 · Bingyi Kang 2† · Zilong Huang 2
Zhen Zhao · Xiaogang Xu · Jiashi Feng 2 · Hengshuang Zhao 1*
1 HKU 2 TikTok
†pemimpin proyek *penulis yang sesuai
Karya ini menghadirkan Depth Anything V2. Ini secara signifikan mengungguli V1 dalam detail dan kekokohan yang halus. Dibandingkan dengan model berbasis SD, model ini memiliki kecepatan inferensi yang lebih cepat, parameter yang lebih sedikit, dan akurasi kedalaman yang lebih tinggi.
06-07-2024: Depth Anything V2 didukung di Transformers. Lihat petunjuk untuk penggunaan yang nyaman.
25-06-2024: Depth Anything diintegrasikan ke dalam Model Apple Core ML. Lihat petunjuk (V1, V2) untuk penggunaan.
22-06-2024: Kami merilis model kedalaman metrik yang lebih kecil berdasarkan Depth-Anything-V2-Small dan Base.
20-06-2024: Repositori dan halaman proyek kami ditandai oleh GitHub dan dihapus dari publik selama 6 hari. Maaf atas ketidaknyamanan ini.
14-06-2024: Makalah, halaman proyek, kode, model, demo, dan benchmark semuanya dirilis.
Kami menyediakan empat model skala berbeda untuk estimasi kedalaman relatif yang kuat:
Model | Param | Pos pemeriksaan |
---|---|---|
Kedalaman-Apa Saja-V2-Kecil | 24,8 juta | Unduh |
Kedalaman-Apa Saja-V2-Basis | 97,5 juta | Unduh |
Kedalaman-Apa Saja-V2-Besar | 335,3M | Unduh |
Kedalaman-Apa Saja-V2-Raksasa | 1.3B | Segera hadir |
git clone https://github.com/DepthAnything/Depth-Anything-V2cd Kedalaman-Anything-V2 instalasi pip -r persyaratan.txt
Unduh pos pemeriksaan yang tercantum di sini dan letakkan di bawah direktori checkpoints
.
import cv2import torchfrom depth_anything_v2.dpt import DepthAnythingV2DEVICE = 'cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu'model_configs = {'vits': {'encoder': 'vits', 'fitur': 64, 'saluran keluar': [48, 96, 192, 384]},'vitb': {'encoder': 'vitb', 'features': 128, 'out_channels': [96, 192, 384, 768]},'vitl': {'encoder' : 'vitl', 'fitur': 256, 'saluran_keluar': [256, 512, 1024, 1024]},'vitg': {'encoder': 'vitg', 'fitur': 384, 'out_channels': [1536, 1536, 1536, 1536]} }encoder = 'vitl' # atau 'vits', 'vitb', 'vitg'model = DepthAnythingV2(**model_configs[encoder])model.load_state_dict(torch.load(f'checkpoints/ depth_anything_v2_{encoder}.pth', map_location='cpu'))model = model.to(DEVICE).eval()raw_img = cv2.imread('your/image/path') depth = model.infer_image(raw_img) # Peta kedalaman mentah HxW dalam numpy
Jika Anda tidak ingin mengkloning repositori ini, Anda juga dapat memuat model kami melalui Transformers. Di bawah ini adalah cuplikan kode sederhana. Silakan merujuk ke halaman resmi untuk lebih jelasnya.
Catatan 1: Pastikan Anda dapat terhubung ke Hugging Face dan telah menginstal Transformers terbaru.
Catatan 2: Karena perbedaan upsampling antara OpenCV (yang kami gunakan) dan Pillow (yang digunakan HF), prediksi mungkin sedikit berbeda. Jadi Anda lebih disarankan untuk menggunakan model kami melalui cara yang diperkenalkan di atas.
dari pipa impor transformatordari PIL import Imagepipe = pipeline(task='kedalaman-estimasi', model='kedalaman-anything/Depth-Anything-V2-Small-hf')image = Image.open('your/image/path') kedalaman = pipa(gambar)["kedalaman"]
python run.py --encoder <vits | vitb | vitl | vit> --img-jalur <jalur> --keluaran <keluar> [--ukuran masukan <ukuran>] [--pred-only] [--skala abu-abu]
Pilihan:
--img-path
: Anda dapat 1) mengarahkannya ke direktori gambar yang menyimpan semua gambar yang diinginkan, 2) mengarahkannya ke satu gambar, atau 3) mengarahkannya ke file teks yang menyimpan semua jalur gambar.
--input-size
(opsional): Secara default, kami menggunakan ukuran input 518
untuk inferensi model. Anda dapat memperbesar ukurannya untuk mendapatkan hasil yang lebih halus.
--pred-only
(opsional): Hanya simpan peta kedalaman yang diprediksi, tanpa gambar mentah.
--grayscale
(opsional): Simpan peta kedalaman skala abu-abu, tanpa menerapkan palet warna.
Misalnya:
python run.py --encoder vitl --img-path aset/contoh --outdir depth_vis
python run_video.py --encoder <vits | vitb | vitl | vit> --aset jalur video/examples_video --keluar video_kedalaman_vis [--ukuran masukan <ukuran>] [--pred-only] [--skala abu-abu]
Model kami yang lebih besar memiliki konsistensi temporal yang lebih baik pada video.
Untuk menggunakan demo gradio kami secara lokal:
aplikasi python.py
Anda juga dapat mencoba demo online kami.
Catatan: Dibandingkan dengan V1, kami telah melakukan sedikit modifikasi pada arsitektur DINOv2-DPT (berasal dari masalah ini). Di V1, kami secara tidak sengaja menggunakan fitur dari empat lapisan terakhir DINOv2 untuk decoding. Di V2, kami menggunakan fitur perantara. Meskipun modifikasi ini tidak meningkatkan detail atau akurasi, kami memutuskan untuk mengikuti praktik umum ini.
Silakan lihat estimasi kedalaman metrik.
Silakan merujuk ke benchmark DA-2K.
Kami dengan tulus menghargai semua dukungan komunitas untuk seri Depth Anything kami. Terima kasih banyak!
Apple IntiML:
https://developer.apple.com/machine-learning/models
https://huggingface.co/apple/coreml-kedalaman-anything-v2-small
https://huggingface.co/apple/coreml-kedalaman-anything-small
Transformer:
https://huggingface.co/docs/transformers/main/en/model_doc/kedalaman_anything_v2
https://huggingface.co/docs/transformers/main/en/model_doc/kedalaman_anything
TensorRT:
https://github.com/spacewalk01/ depth-anything-tensorrt
https://github.com/zhujiajian98/Depth-Anythingv2-TensorRT-python
ONNX: https://github.com/fabio-sim/Depth-Anything-ONNX
UI Nyaman: https://github.com/kijai/ComfyUI-DepthAnythingV2
Transformers.js (kedalaman waktu nyata di web): https://huggingface.co/spaces/Xenova/webgpu-realtime- depth-estimation
Android:
https://github.com/shubham0204/Depth-Anything-Android
https://github.com/FeiGeChuanShu/ncnn-android- depth_anything
Kami dengan tulus berterima kasih kepada tim Hugging Face yang luar biasa (@Pedro Cuenca, @Niels Rogge, @Merve Noyan, @Amy Roberts, dkk.) atas upaya besar mereka dalam mendukung model kami di Transformers dan Apple Core ML.
Kami juga berterima kasih kepada tim DINOv2 karena telah menyumbangkan model yang mengesankan kepada komunitas kami.
Model Depth-Anything-V2-Small berada di bawah lisensi Apache-2.0. Model Depth-Anything-V2-Base/Large/Giant berada di bawah lisensi CC-BY-NC-4.0.
Jika Anda merasa proyek ini bermanfaat, mohon pertimbangkan untuk mengutip:
@article{kedalaman_anything_v2, title={Depth Anything V2}, author={Yang, Lihe dan Kang, Bingyi dan Huang, Zilong dan Zhao, Zhen dan Xu, Xiaogang dan Feng, Jiashi dan Zhao, Hengshuang}, journal={arXiv: 2406.09414}, tahun={2024}}@inproceedings{kedalaman_anything_v1, title={Kedalaman Apa Pun: Melepaskan Kekuatan Data Tak Berlabel Berskala Besar}, author={Yang, Lihe dan Kang, Bingyi dan Huang, Zilong dan Xu, Xiaogang dan Feng, Jiashi dan Zhao, Hengshuang}, booktitle={CVPR}, year={2024}}