MiDaS

MiDaS è la stima della profondità relativa monoculare addestrata con una loss invariante a scala e shift su dataset misti, la linea di lavoro che ha definito il protocollo di trasferimento zero-shot della profondità che le famiglie successive riutilizzano. LibreYOLO lo supporta per il task depth: predizione e validazione zero-shot, senza percorso di addestramento.

Task
depth
Dimensioni
s, l at 256 to 384 px
Installa
pip install "libreyolo[midas]"
Livello di supporto
Solo inferenza, dalla v1.5.0. Solo predizione, validazione ed esportazione. Le funzionalità di addestramento non si applicano.
Origine
MiDaS di Intel Intelligent Systems Lab (Intel ISL), MIT. Articolo, sorgente
Licenze
Codice MIT, pesi MIT. Uso commerciale

Installazione

MiDaS richiede l'extra midas per i suoi encoder timm.

bash
pip install "libreyolo[midas]"

Predizione

I checkpoint s e l vengono scaricati dai mirror di LibreYOLO con la licenza MIT del distributore e memorizzati nella cache locale.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Scarica il checkpoint dal mirror al primo utilizzo.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 # Encoder EfficientNet-Lite3, più piccolo e veloce della dimensione l DPT-Large.model = LibreYOLO("LibreMiDaSs-depth.pt")result = model(SAMPLE_IMAGE, save=True)

result.depth_map contiene una mappa densa di profondità inversa relativa: valori più alti indicano una maggiore vicinanza alla camera e non hanno unità metriche né una scala comune tra immagini. save=True salva su disco una visualizzazione della mappa con una scala di colori; Results.plot() visualizza la mappa di profondità. Vedi predizione per sorgenti, streaming e gestione dei risultati.

Varianti

Due varianti con encoder diversi, non semplicemente scale diverse dello stesso encoder. s è MiDaS v2.1 Small, un encoder EfficientNet-Lite3. l è DPT-Large, un encoder ViT-L/16 con il decoder DPT che MiDaS ha introdotto per la predizione densa. Anche il preprocessing è diverso: s usa un ridimensionamento a proporzioni mantenute con vincolo superiore e normalizzazione mean/std di ImageNet, l usa un ridimensionamento minimo a proporzioni mantenute con media e deviazione standard di 0.5. Scegli s per una CNN più leggera, l per l'accuratezza del decoder transformer.

L'addestramento non è offerto per questa famiglia. LibreMiDaS.train() solleva sempre NotImplementedError.

Validazione

val() esegue il validatore depth condiviso: allinea ogni predizione al suo ground truth con una scala e uno shift ai minimi quadrati calcolati per immagine, poi riporta le metriche standard di profondità relativa zero-shot, AbsRel, RMSE e le tre soglie 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

Esportazione

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DepthDepth to ONNX: supportatoDepth to TorchScript: supportatoDepth to ExecuTorch: supportatoDepth to TensorRT: supportatoDepth to OpenVINO: supportatoDepth to Paddle: non supportatoDepth to MNN: non supportatoDepth to RKNN: non supportatoDepth to ncnn: supportatoDepth to TFLite: non supportatoDepth to CoreML: non supportatoDepth to Core AI: non supportato

Un artefatto esportato si ricarica con LibreYOLO() in base al suffisso del file, quindi un file .onnx o .engine si comporta come un checkpoint e restituisce lo stesso Results, con depth_map al posto dei box.

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
Usare il file esportato
from libreyolo import LibreYOLO, SAMPLE_IMAGE # La factory sceglie in base al suffisso del file, quindi un artefatto# esportato si carica come un qualsiasi checkpoint e restituisce lo# stesso oggetto Results.model = LibreYOLO("LibreMiDaSl-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)

Licenze

Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.

Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.

Lavoro originale
MiDaS, Intel Intelligent Systems Lab (Intel ISL)
Licenza upstream
MIT
Sorgente upstream
github.com/isl-org/MiDaS
Codice LibreYOLO
MIT
Pesi
MIT, ripubblicati su huggingface.co/LibreYOLO
Interpretazione
The upstream repository and released weights declare MIT. LibreYOLO mirrors the s and l checkpoints under that publisher grant.

Citazione

@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},
}

Copiato dal blocco di citazione degli autori disponibile su github.com/isl-org/MiDaS#citation.

Verificato con LibreYOLO v1.6.0. Le tabelle di supporto, i checkpoint e i dati dei benchmark in questa pagina vengono generati dalla libreria rilasciata e dai pesi pubblicati, non scritti a mano.

Architettura di MiDaS

Scegli una variante o la vista della famiglia, poi un blocco per i dettagli. Apri il diagramma completo per ingrandire o scaricare SVG e PNG. I diagrammi sono in inglese.