Ver como markdown

Depth Anything V2

O Depth Anything V2 é um encoder DINOv2 combinado com um decoder DPT que prediz um mapa denso de profundidade inversa relativa a partir de uma única imagem. O LibreYOLO oferece suporte a ele na tarefa de profundidade: predição e validação zero-shot, sem caminho de treinamento.

Tarefas
depth
Tamanhos
s, b, l, g at 518 px
Instalação
pip install libreyolo
Nível de suporte
Somente inferência, desde a v. Somente predição, validação e exportação. Os recursos de treinamento não se aplicam.
Origem
Depth Anything V2 por The University of Hong Kong and TikTok, Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints). Artigo, código-fonte
Licenças
Código Apache-2.0, pesos Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints). Uso comercial

Instalação

O Depth Anything V2 não precisa de nenhum extra opcional. Tudo o que ele importa está na instalação base.

bash
pip install libreyolo

Predição

Os pesos são baixados do Hugging Face no primeiro uso e ficam em cache 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
Ler o mapa de profundidade
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDepthAnythingV2s-depth.pt")result = model(SAMPLE_IMAGE) depth = result.depth_map    # DepthMap: denso (H, W), maior = mais pertoraw = depth.data                # tensor, sem unidade métrica nem escala entre imagensnormalized = depth.normalized() # reescalado para [0, 1] para visualização

result.depth_map carrega um mapa denso de profundidade inversa relativa: valores maiores significam mais perto da câmera, e os valores não têm unidade métrica nem escala entre imagens. save=True grava em disco uma visualização desse mapa com mapa de cores; Results.plot() não cobre esta família, já que está definido apenas para normais de superfície e bordas. A resolução de entrada precisa ser divisível por 14, a grade de patches do DINOv2 sobre a qual a cabeça DPT é construída; o LibreYOLO confere isso antes de rodar e levanta um erro se não for. Veja predição para fontes, streaming e tratamento de resultados.

Variantes

Quatro tamanhos de encoder, s/b/l/g, correspondendo a ViT-S/B/L/G. A tabela de checkpoints abaixo lista apenas s, b e l; nenhum checkpoint Giant foi publicado. Os quatro compartilham a mesma resolução de entrada, então escolher um tamanho troca capacidade do encoder, não tamanho de imagem. O licenciamento também pesa: o checkpoint Small é Apache-2.0, enquanto Base e Large são CC-BY-NC-4.0, veja Licenciamento abaixo.

Treinamento e fine-tuning não são oferecidos para esta família. LibreDepthAnythingV2.train() levanta NotImplementedError incondicionalmente; em vez disso, converta um checkpoint upstream compatível com weights/convert_depth_anything_v2_weights.py.

Validação

val() roda o validador de profundidade compartilhado: ele alinha cada predição ao seu ground truth com uma escala e um deslocamento de mínimos quadrados por imagem, e depois reporta as métricas padrão de profundidade relativa zero-shot, AbsRel, RMSE e os três limiares 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

Exportação

TarefaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
depthdepth to ONNX: compatíveldepth to TorchScript: compatíveldepth to ExecuTorch: compatíveldepth to TensorRT: compatíveldepth to OpenVINO: compatíveldepth to Paddle: incompatíveldepth to MNN: incompatíveldepth to RKNN: incompatíveldepth to ncnn: incompatíveldepth to TFLite: incompatíveldepth to CoreML: incompatíveldepth to Core AI: compatível

Um artefato exportado é carregado de volta por LibreYOLO() pelo sufixo do arquivo, então um arquivo .onnx ou .engine se comporta como um checkpoint e devolve o mesmo Results, com depth_map no lugar dos boxes. Exportação lista os argumentos que todo formato aceita.

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 o arquivo exportado
from libreyolo import LibreYOLO, SAMPLE_IMAGE # A factory roteia pelo sufixo do arquivo, então um artefato exportado# carrega como qualquer checkpoint e devolve o mesmo objeto Results.model = LibreYOLO("LibreDepthAnythingV2s-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)

Checkpoints

Todos os arquivos de pesos publicados desta família.

ArquivoEntrada (px)Licença dos pesos
depth
LibreDepthAnythingV2s-depth.ptapache-2.0
LibreDepthAnythingV2l-depth.ptcc-by-nc-4.0
LibreDepthAnythingV2b-depth.ptcc-by-nc-4.0

Todos os arquivos acima existem hoje na organização LibreYOLO e são baixados no primeiro uso.

Licenciamento

Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.

Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.

Trabalho original
Depth Anything V2, The University of Hong Kong and TikTok
Licença original
Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints)
Código do LibreYOLO
MIT
Pesos
Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints), republicado em huggingface.co/LibreYOLO
Interpretação
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ção

@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 do bloco de citação dos autores em github.com/DepthAnything/Depth-Anything-V2#citation.

Verificado com o LibreYOLO v1.5.0. As tabelas de suporte, os checkpoints e os números de benchmark desta página são gerados a partir da biblioteca lançada e dos pesos publicados, não escritos à mão.