Depth Anything V2
Depth Anything V2 est un encodeur DINOv2 associé à un décodeur DPT qui prédit une carte dense de profondeur inverse relative à partir d'une seule image. LibreYOLO le prend en charge pour la tâche de profondeur : prédiction et validation zero-shot, sans voie d'entraînement.
- Tâches
- depth
- Tailles
- s, b, l, g at 518 px
- Installer
pip install libreyolo- Niveau de support
- Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
- Origine
- Depth Anything V2 par The University of Hong Kong and TikTok, Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints). Article, source
- Licences
- Code Apache-2.0, poids Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints). Usage commercial
Installation
Depth Anything V2 ne demande aucun extra optionnel. Tout ce qu'il importe fait partie de l'installation de base.
pip install libreyoloPrédire
Les poids sont téléchargés depuis Hugging Face au premier usage, puis mis en cache localement.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDepthAnythingV2s-depth.pt")result = model(SAMPLE_IMAGE, save=True) depth = result.depth_mapprint(depth.min, depth.max, depth.mean)libreyolo predict model=LibreDepthAnythingV2s-depth.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDepthAnythingV2s-depth.pt")result = model(SAMPLE_IMAGE) depth = result.depth_map # DepthMap : dense (H, W), valeur haute = plus procheraw = depth.data # tenseur, sans unité métrique ni échelle communenormalized = depth.normalized() # ramené à [0, 1] pour la visualisationresult.depth_map porte une carte dense de profondeur inverse relative : les
valeurs élevées correspondent aux points les plus proches de la caméra, et ces
valeurs n'ont ni unité métrique ni échelle commune d'une image à l'autre.
save=True écrit sur le disque une visualisation colorisée de cette carte ;
Results.plot() ne couvre pas cette famille, puisqu'il n'est défini que pour
les normales de surface et les contours. La résolution d'entrée doit être
divisible par 14, la grille de patchs DINOv2 sur laquelle s'appuie la tête
DPT ; LibreYOLO le vérifie avant l'exécution et lève une erreur si ce n'est pas
le cas. Voir la prédiction pour les sources, le streaming et
le traitement des résultats.
Variantes
Quatre tailles d'encodeur, s/b/l/g, correspondant à ViT-S/B/L/G. Le tableau des checkpoints ci-dessous ne liste que s, b et l ; aucun checkpoint Giant n'est publié. Les quatre partagent la même résolution d'entrée, si bien que choisir une taille arbitre la capacité de l'encodeur, pas la taille d'image. La licence compte aussi : le checkpoint Small est sous Apache-2.0, tandis que Base et Large sont sous CC-BY-NC-4.0, voir Licence plus bas.
L'entraînement et le fine-tuning ne sont pas proposés pour cette famille.
LibreDepthAnythingV2.train() lève NotImplementedError sans condition ;
convertissez plutôt un checkpoint amont compatible, avec
weights/convert_depth_anything_v2_weights.py.
Valider
val() exécute le validateur de profondeur commun : il aligne chaque prédiction
sur sa vérité terrain avec une échelle et un décalage estimés aux moindres
carrés, image par image, puis rapporte les métriques standard de profondeur
relative en zero-shot, AbsRel, RMSE et les trois seuils delta.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDepthAnythingV2s-depth.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/abs_rel"])print(metrics["metrics/rmse"])print(metrics["metrics/delta1"])libreyolo val model=LibreDepthAnythingV2s-depth.pt data=my-dataset.yamlExporter
| Tâche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| depth | depth to ONNX : pris en charge | depth to TorchScript : pris en charge | depth to ExecuTorch : pris en charge | depth to TensorRT : pris en charge | depth to OpenVINO : pris en charge | depth to Paddle : non pris en charge | depth to MNN : non pris en charge | depth to RKNN : non pris en charge | depth to ncnn : non pris en charge | depth to TFLite : non pris en charge | depth to CoreML : non pris en charge | depth to Core AI : pris en charge |
Un artefact exporté se recharge via LibreYOLO() selon son extension de
fichier, si bien qu'un fichier .onnx ou .engine se comporte comme un
checkpoint et renvoie le même Results, avec depth_map à la place des
boîtes. L'export liste les arguments que chaque format accepte.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDepthAnythingV2s-depth.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreDepthAnythingV2s-depth.pt format=onnxlibreyolo export model=LibreDepthAnythingV2s-depth.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # La factory route selon l'extension du fichier : un artefact exporté# se charge comme un checkpoint et renvoie le même objet Results.model = LibreYOLO("LibreDepthAnythingV2s-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)Checkpoints
Tous les fichiers de poids publiés de cette famille.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| depth | ||
| LibreDepthAnythingV2s-depth.pt | apache-2.0 | |
| LibreDepthAnythingV2l-depth.pt | cc-by-nc-4.0 | |
| LibreDepthAnythingV2b-depth.pt | cc-by-nc-4.0 | |
Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.
Licence
Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.
Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.
- Travail d'origine
- Depth Anything V2, The University of Hong Kong and TikTok
- Licence du projet d'origine
- Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints)
- Source du projet d'origine
- github.com/DepthAnything/Depth-Anything-V2
- Code de LibreYOLO
- MIT
- Poids
- Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints), republiés sur huggingface.co/LibreYOLO
- Interprétation
- The two licenses are not interchangeable. The Small checkpoint is Apache-2.0, a permissive license: it can be used in commercial and closed-source products, it asks you to keep its license text and attribution notices with any redistributed copy, and it grants a patent license. The Base and Large checkpoints are CC-BY-NC-4.0, which forbids commercial use outright and requires attribution on any redistribution, so treat them as research and evaluation weights unless you obtain separate terms from the authors. LibreYOLO's own code for this family is MIT throughout, and training is not offered for this family so there is no self-trained-weights exception to reach for.
Citation
@article{depth_anything_v2,
title={Depth Anything V2},
author={Yang, Lihe and Kang, Bingyi and Huang, Zilong and Zhao, Zhen and Xu, Xiaogang and Feng, Jiashi and Zhao, Hengshuang},
journal={arXiv:2406.09414},
year={2024}
}Copié depuis le bloc de citation des auteurs sur github.com/DepthAnything/Depth-Anything-V2#citation.