MiDaS

MiDaS es estimación de profundidad relativa monocular entrenada con una loss invariante a escala y desplazamiento sobre datasets mezclados, la línea de trabajo que estableció el protocolo de transferencia de profundidad zero-shot que reutilizan las familias posteriores. LibreYOLO lo soporta para la tarea de profundidad: predicción y validación zero-shot, sin ruta de entrenamiento.

Tareas
depth
Tamaños
s, l at 256 to 384 px
Instalación
pip install "libreyolo[midas]"
Nivel de compatibilidad
Solo inferencia, desde v1.5.0. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
Proyecto original
MiDaS de Intel Intelligent Systems Lab (Intel ISL), MIT. Artículo, fuente
Licencias
Código MIT, pesos MIT. Uso comercial

Instalación

MiDaS necesita el extra midas para sus encoders de timm.

bash
pip install "libreyolo[midas]"

Predicción

Los checkpoints s y l se descargan de los mirrors de LibreYOLO bajo la licencia MIT del editor y se guardan en la caché local.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Descarga el checkpoint replicado en el primer uso.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, más pequeño y rápido que el tamaño l, DPT-Large.model = LibreYOLO("LibreMiDaSs-depth.pt")result = model(SAMPLE_IMAGE, save=True)

result.depth_map lleva un mapa denso de profundidad inversa relativa: los valores más altos significan más cerca de la cámara, y los valores no tienen unidad métrica ni escala común entre imágenes. save=True escribe en disco una visualización de ese mapa con un mapa de color; Results.plot() renderiza el mapa de profundidad. Consulta predicción para fuentes, streaming y manejo de resultados.

Variantes

Dos variantes con encoders diferentes, no solo escalas distintas del mismo encoder. s es MiDaS v2.1 Small, un encoder EfficientNet-Lite3. l es DPT-Large, un encoder ViT-L/16 con el decoder DPT que MiDaS introdujo para predicción densa. También preprocesan de forma distinta: s usa un redimensionado con cota superior de aspecto y normalización con la media/desviación típica de ImageNet, l usa un redimensionado de aspecto mínimo con media y desviación típica de 0.5. Elige s para una CNN más ligera, l para la precisión del decoder transformer.

El entrenamiento no se ofrece para esta familia. LibreMiDaS.train() lanza NotImplementedError de forma incondicional.

Validación

val() ejecuta el validador de profundidad compartido: alinea cada predicción con su ground truth mediante una escala y un desplazamiento por mínimos cuadrados calculados para cada imagen, y después reporta las métricas estándar de profundidad relativa zero-shot, AbsRel, RMSE y los tres umbrales 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

Exportación

TareaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DepthDepth to ONNX: compatibleDepth to TorchScript: compatibleDepth to ExecuTorch: compatibleDepth to TensorRT: compatibleDepth to OpenVINO: compatibleDepth to Paddle: no compatibleDepth to MNN: no compatibleDepth to RKNN: no compatibleDepth to ncnn: compatibleDepth to TFLite: no compatibleDepth to CoreML: no compatibleDepth to Core AI: no compatible

Un artefacto exportado se vuelve a cargar con LibreYOLO() según su extensión de archivo, así que un archivo .onnx o .engine se comporta como un checkpoint y devuelve el mismo Results, con depth_map en lugar de boxes.

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
Usar el archivo exportado
from libreyolo import LibreYOLO, SAMPLE_IMAGE # La factoría enruta según la extensión del archivo, así que un artefacto# exportado se carga como cualquier checkpoint y devuelve el mismo objeto Results.model = LibreYOLO("LibreMiDaSl-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)

Licencia

Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.

Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.

Trabajo original
MiDaS, Intel Intelligent Systems Lab (Intel ISL)
Licencia del proyecto original
MIT
Fuente del proyecto original
github.com/isl-org/MiDaS
Código de LibreYOLO
MIT
Pesos
MIT, republicados en huggingface.co/LibreYOLO
Interpretación
The upstream repository and released weights declare MIT. LibreYOLO mirrors the s and l checkpoints under that publisher grant.

Cita

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

Copiado del bloque de cita de los autores en github.com/isl-org/MiDaS#citation.

Verificado con LibreYOLO v1.6.0. Las tablas de compatibilidad, los checkpoints y las cifras de rendimiento de esta página se generan a partir de la biblioteca publicada y los pesos publicados; no se escriben a mano.

Arquitectura de MiDaS

Elige una variante o la vista de la familia y selecciona un bloque para ver los detalles. Abre el diagrama completo para ampliar o descargar SVG y PNG. Los diagramas están en inglés.