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.
pip install libreyoloPredicción
Los pesos se descargan de Hugging Face en el primer uso y se guardan en la caché local.
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)libreyolo predict model=LibreDepthAnythingV2s-depth.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom 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ónresult.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.
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"])libreyolo val model=LibreDepthAnythingV2s-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: no compatible | depth to TFLite: no compatible | depth to CoreML: no compatible | depth 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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDepthAnythingV2s-depth.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreDepthAnythingV2s-depth.pt format=onnxlibreyolo export model=LibreDepthAnythingV2s-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("LibreDepthAnythingV2s-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)Checkpoints
Todos los archivos de pesos publicados de esta familia.
| Archivo | Entrada (px) | Licencia de los pesos |
|---|---|---|
| depth | ||
| LibreDepthAnythingV2s-depth.pt | apache-2.0 | |
| LibreDepthAnythingV2l-depth.pt | cc-by-nc-4.0 | |
| LibreDepthAnythingV2b-depth.pt | cc-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.