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- Nivel de compatibilidad
- Solo inferencia, desde v. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
- Licencias
- Código MIT, pesos MIT. Uso comercial
Instalación
MiDaS no necesita ningún extra opcional. Todo lo que importa está en la instalación base.
pip install libreyoloPredicción
MiDaS es la única familia de profundidad que LibreYOLO no republica en su propia
organización de Hugging Face. Pedir un checkpoint por su nombre de archivo de
LibreYOLO descarga el asset oficial correspondiente directamente de las releases
de GitHub de isl-org/MiDaS, lo comprueba contra un SHA-256 fijado y lo envuelve
con los metadatos de checkpoint de LibreYOLO antes del primer uso; las
ejecuciones posteriores reutilizan el archivo local en caché. Consulta Licencia
para saber por qué.
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Aún no está en disco: LibreYOLO lo descarga de la release oficial de# isl-org/MiDaS en GitHub y lo comprueba contra un SHA-256 fijado antes de usarlo.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 # 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() no cubre esta
familia, ya que está definido solo para normales de superficie y bordes.
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.
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.yamlExportación
| Tarea | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| depth | depth to ONNX: compatible | depth to TorchScript: compatible | depth to ExecuTorch: compatible | depth to TensorRT: compatible | depth to OpenVINO: compatible | depth to Paddle: no compatible | depth to MNN: no compatible | depth to RKNN: no compatible | depth to ncnn: compatible | depth to TFLite: no compatible | depth to CoreML: no compatible | depth 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.
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 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, distribuidos por sus autores. LibreYOLO no los aloja ni los replica.
- Interpretación
- 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.
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.