MiDaS
MiDaS est un modèle d'estimation de profondeur relative monoculaire entraîné avec une loss invariante à l'échelle et au décalage sur des datasets mélangés, la lignée de travaux qui a établi le protocole de transfert de profondeur zero-shot que les familles suivantes réutilisent. 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, l at 256 to 384 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.
- Licences
- Code MIT, poids MIT. Usage commercial
Installation
MiDaS ne demande aucun extra optionnel. Tout ce qu'il importe fait partie de l'installation de base.
pip install libreyoloPrédire
MiDaS est la seule famille de profondeur que LibreYOLO ne republie pas sur sa
propre organisation Hugging Face. Demander un checkpoint par son nom de fichier
LibreYOLO télécharge le fichier officiel correspondant directement depuis les
releases GitHub isl-org/MiDaS, le vérifie contre un SHA-256 épinglé et
l'enrichit des métadonnées de checkpoint de LibreYOLO avant le premier usage ;
les exécutions suivantes réutilisent le fichier local mis en cache. Voir Licence
pour savoir pourquoi.
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Pas encore sur le disque : LibreYOLO le télécharge depuis la release# GitHub officielle isl-org/MiDaS et vérifie son SHA-256 épinglé.model = LibreYOLO("LibreMiDaSl-depth.pt")result = model(SAMPLE_IMAGE, save=True) depth = result.depth_mapprint(depth.min, depth.max, depth.mean)libreyolo predict model=LibreMiDaSl-depth.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Encodeur EfficientNet-Lite3, plus petit et plus rapide que le l DPT-Large.model = LibreYOLO("LibreMiDaSs-depth.pt")result = model(SAMPLE_IMAGE, save=True)result.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. Voir la prédiction
pour les sources, le streaming et le traitement des résultats.
Variantes
Deux variantes avec des encodeurs différents, pas seulement deux échelles du
même encodeur. s est MiDaS v2.1 Small, un encodeur EfficientNet-Lite3. l est
DPT-Large, un encodeur ViT-L/16 doté du décodeur DPT que MiDaS a introduit pour
la prédiction dense. Leur prétraitement diffère aussi : s utilise un
redimensionnement à rapport d'aspect de type upper-bound avec une normalisation
mean/std ImageNet, l utilise un redimensionnement à rapport d'aspect minimal
avec une moyenne et un écart-type de 0.5. Prenez s pour un CNN plus léger, l
pour l'exactitude du décodeur transformer.
L'entraînement n'est pas proposé pour cette famille. LibreMiDaS.train() lève
NotImplementedError sans condition.
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("LibreMiDaSl-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=LibreMiDaSl-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 : pris en charge | depth to TFLite : non pris en charge | depth to CoreML : non pris en charge | depth to Core AI : non 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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreMiDaSl-depth.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreMiDaSl-depth.pt format=onnxlibreyolo export model=LibreMiDaSl-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("LibreMiDaSl-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)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
- MiDaS, Intel Intelligent Systems Lab (Intel ISL)
- Licence du projet d'origine
- MIT
- Source du projet d'origine
- github.com/isl-org/MiDaS
- Code de LibreYOLO
- MIT
- Poids
- MIT, distribués par leurs auteurs. LibreYOLO ne les héberge pas et n'en fournit pas de miroir.
- Interprétation
- The isl-org/MiDaS repository, code and released checkpoints included, is MIT. LibreYOLO's own port code is MIT as well. LibreYOLO does not republish the checkpoints on its own Hugging Face organization, though: the family downloads the two official release assets directly from GitHub and checks them against a pinned SHA-256 before wrapping them, because an internal LibreYOLO policy (ADR 0006) requires the training-dataset mixture's commercial-redistribution terms to be cleared before LibreYOLO hosts a depth checkpoint itself, and that clearance has not happened for MiDaS. The bytes you get are upstream's own MIT-licensed release either way.
Citation
@ARTICLE {Ranftl2022,
author = "Ren\'{e} Ranftl and Katrin Lasinger and David Hafner and Konrad Schindler and Vladlen Koltun",
title = "Towards Robust Monocular Depth Estimation: Mixing Datasets for Zero-Shot Cross-Dataset Transfer",
journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence",
year = "2022",
volume = "44",
number = "3"
}
@article{Ranftl2021,
author = {Ren\'{e} Ranftl and Alexey Bochkovskiy and Vladlen Koltun},
title = {Vision Transformers for Dense Prediction},
journal = {ICCV},
year = {2021},
}Copié depuis le bloc de citation des auteurs sur github.com/isl-org/MiDaS#citation.