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.
Origine
MiDaS par Intel Intelligent Systems Lab (Intel ISL), MIT. Article, source
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.

bash
pip install libreyolo

Pré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.

Python
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)
CLI
libreyolo predict model=LibreMiDaSl-depth.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Variante Small
from 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.

Python
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"])
CLI
libreyolo val model=LibreMiDaSl-depth.pt data=my-dataset.yaml

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
depthdepth to ONNX : pris en chargedepth to TorchScript : pris en chargedepth to ExecuTorch : pris en chargedepth to TensorRT : pris en chargedepth to OpenVINO : pris en chargedepth to Paddle : non pris en chargedepth to MNN : non pris en chargedepth to RKNN : non pris en chargedepth to ncnn : pris en chargedepth to TFLite : non pris en chargedepth to CoreML : non pris en chargedepth 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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreMiDaSl-depth.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreMiDaSl-depth.pt format=onnxlibreyolo export model=LibreMiDaSl-depth.pt format=tensorrt half=True
Utiliser le fichier exporté
from 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.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.