Ver como Markdown

Depth Anything V2

Depth Anything V2 es un encoder DINOv2 acompañado de un decoder DPT que predice un mapa denso de profundidad inversa relativa a partir de una sola imagen. LibreYOLO lo soporta para la tarea de profundidad: predicción y validación zero-shot, sin ruta de entrenamiento.

Tareas
depth
Tamaños
s, b, l, g at 518 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.
Proyecto original
Depth Anything V2 de The University of Hong Kong and TikTok, Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints). Artículo, fuente
Licencias
Código Apache-2.0, pesos Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints). Uso comercial

Instalación

Depth Anything V2 no necesita ningún extra opcional. Todo lo que importa está en la instalación base.

bash
pip install libreyolo

Predicción

Los pesos se descargan de Hugging Face en el primer uso y se guardan en la caché local.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDepthAnythingV2s-depth.pt")result = model(SAMPLE_IMAGE, save=True) depth = result.depth_mapprint(depth.min, depth.max, depth.mean)
CLI
libreyolo predict model=LibreDepthAnythingV2s-depth.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Leer el mapa de profundidad
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDepthAnythingV2s-depth.pt")result = model(SAMPLE_IMAGE) depth = result.depth_map    # DepthMap: denso (H, W), mayor = más cercaraw = depth.data                # tensor, sin unidad métrica ni escala entre imágenesnormalized = depth.normalized() # reescalado a [0, 1] para visualización

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. La resolución de entrada debe ser divisible por 14, la rejilla de parches de DINOv2 sobre la que se construye la cabeza DPT; LibreYOLO lo comprueba antes de ejecutar y lanza un error si no se cumple. Consulta predicción para fuentes, streaming y manejo de resultados.

Variantes

Cuatro tamaños de encoder, s/b/l/g, correspondientes a ViT-S/B/L/G. La tabla de checkpoints de abajo solo enumera s, b y l; no hay ningún checkpoint Giant publicado. Los cuatro comparten la misma resolución de entrada, así que elegir un tamaño intercambia capacidad del encoder, no tamaño de imagen. La licencia también es un factor: el checkpoint Small es Apache-2.0, mientras que Base y Large son CC-BY-NC-4.0, consulta Licencia más abajo.

El entrenamiento y el fine-tuning no se ofrecen para esta familia. LibreDepthAnythingV2.train() lanza NotImplementedError de forma incondicional; en su lugar, convierte un checkpoint upstream compatible con weights/convert_depth_anything_v2_weights.py.

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("LibreDepthAnythingV2s-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=LibreDepthAnythingV2s-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: no compatibledepth to TFLite: no compatibledepth to CoreML: no compatibledepth to Core AI: 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. Exportación enumera los argumentos que acepta cada formato.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreDepthAnythingV2s-depth.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreDepthAnythingV2s-depth.pt format=onnxlibreyolo export model=LibreDepthAnythingV2s-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("LibreDepthAnythingV2s-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)

Checkpoints

Todos los archivos de pesos publicados de esta familia.

ArchivoEntrada (px)Licencia de los pesos
depth
LibreDepthAnythingV2s-depth.ptapache-2.0
LibreDepthAnythingV2l-depth.ptcc-by-nc-4.0
LibreDepthAnythingV2b-depth.ptcc-by-nc-4.0

Todos los archivos anteriores existen hoy en la organización de LibreYOLO y se descargan la primera vez que se usan.

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
Depth Anything V2, The University of Hong Kong and TikTok
Licencia del proyecto original
Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints)
Fuente del proyecto original
github.com/DepthAnything/Depth-Anything-V2
Código de LibreYOLO
MIT
Pesos
Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints), republicados en huggingface.co/LibreYOLO
Interpretación
The two licenses are not interchangeable. The Small checkpoint is Apache-2.0, a permissive license: it can be used in commercial and closed-source products, it asks you to keep its license text and attribution notices with any redistributed copy, and it grants a patent license. The Base and Large checkpoints are CC-BY-NC-4.0, which forbids commercial use outright and requires attribution on any redistribution, so treat them as research and evaluation weights unless you obtain separate terms from the authors. LibreYOLO's own code for this family is MIT throughout, and training is not offered for this family so there is no self-trained-weights exception to reach for.

Cita

@article{depth_anything_v2,
  title={Depth Anything V2},
  author={Yang, Lihe and Kang, Bingyi and Huang, Zilong and Zhao, Zhen and Xu, Xiaogang and Feng, Jiashi and Zhao, Hengshuang},
  journal={arXiv:2406.09414},
  year={2024}
}

Copiado del bloque de cita de los autores en github.com/DepthAnything/Depth-Anything-V2#citation.

Verificado con LibreYOLO v1.5.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.