Depth Anything V2
Depth Anything V2 là encoder DINOv2 ghép với decoder DPT để dự đoán depth map nghịch đảo tương đối dense từ một ảnh. LibreYOLO hỗ trợ mô hình này cho tác vụ độ sâu: dự đoán và xác thực zero-shot, không có tuyến huấn luyện.
- Tác vụ
- depth
- Kích thước
- s, b, l, g at 518 px
- Cài đặt
pip install libreyolo- Bậc hỗ trợ
- Chỉ suy luận, từ v. Chỉ dự đoán, kiểm định và xuất. Không áp dụng các tính năng huấn luyện.
- Thượng nguồn
- Depth Anything V2 của The University of Hong Kong and TikTok, Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints). Bài báo, mã nguồn
- Giấy phép
- Mã nguồn Apache-2.0, trọng số Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints). Sử dụng thương mại
Cài đặt
Depth Anything V2 không cần extra tùy chọn. Mọi thành phần mà mô hình import đều có trong bản cài đặt cơ sở.
pip install libreyoloDự đoán
Trọng số được tải về từ Hugging Face trong lần sử dụng đầu tiên và được lưu vào bộ nhớ đệm cục bộ.
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: dense (H, W), cao hơn = gần hơnraw = depth.data # tensor, không có đơn vị mét hoặc tỷ lệ xuyên ảnhnormalized = depth.normalized() # đổi tỷ lệ thành [0, 1] để trực quan hóaresult.depth_map chứa depth map nghịch đảo tương đối dense: giá trị cao hơn nghĩa là gần camera hơn, các giá trị không có đơn vị mét hoặc tỷ lệ xuyên ảnh. save=True ghi bản trực quan hóa áp colormap của map đó ra đĩa; Results.plot() không hỗ trợ họ mô hình này vì hàm chỉ được định nghĩa cho pháp tuyến bề mặt và cạnh. Độ phân giải đầu vào phải chia hết cho 14, là lưới patch DINOv2 mà DPT head xây dựng trên đó; LibreYOLO kiểm tra điều này trước khi chạy và phát sinh lỗi nếu không đạt. Xem dự đoán để biết về nguồn, xử lý luồng và kết quả.
Biến thể
Có bốn kích thước encoder s/b/l/g, tương ứng với ViT-S/B/L/G. Bảng checkpoint bên dưới chỉ liệt kê s, b và l; không có checkpoint Giant nào được phát hành. Cả bốn dùng chung độ phân giải đầu vào, vì vậy việc chọn kích thước đánh đổi dung lượng encoder chứ không phải kích thước ảnh. Giấy phép cũng là một yếu tố: checkpoint Small dùng Apache-2.0, còn Base và Large dùng CC-BY-NC-4.0, xem phần Giấy phép bên dưới.
Họ mô hình này không cung cấp huấn luyện và tinh chỉnh. LibreDepthAnythingV2.train() luôn phát sinh NotImplementedError; thay vào đó hãy chuyển đổi một checkpoint upstream tương thích bằng weights/convert_depth_anything_v2_weights.py.
Xác thực
val() chạy trình xác thực độ sâu dùng chung: hàm căn chỉnh từng dự đoán với ground truth bằng scale và shift bình phương tối thiểu theo từng ảnh, rồi báo cáo các metric độ sâu tương đối zero-shot tiêu chuẩn là AbsRel, RMSE và ba ngưỡng 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.yamlXuất
| Tác vụ | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| depth | depth to ONNX: được hỗ trợ | depth to TorchScript: được hỗ trợ | depth to ExecuTorch: được hỗ trợ | depth to TensorRT: được hỗ trợ | depth to OpenVINO: được hỗ trợ | depth to Paddle: không được hỗ trợ | depth to MNN: không được hỗ trợ | depth to RKNN: không được hỗ trợ | depth to ncnn: không được hỗ trợ | depth to TFLite: không được hỗ trợ | depth to CoreML: không được hỗ trợ | depth to Core AI: được hỗ trợ |
Artifact đã xuất được tải lại qua LibreYOLO() dựa trên hậu tố tệp, vì vậy tệp .onnx hoặc .engine hoạt động như checkpoint và trả về cùng đối tượng Results, với depth_map thay cho box. Trang Xuất liệt kê các đối số mà mọi định dạng chấp nhận.
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 # Factory định tuyến dựa trên hậu tố tệp, vì vậy artifact đã xuất tải# như mọi checkpoint và trả về cùng đối tượng Results.model = LibreYOLO("LibreDepthAnythingV2s-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)Checkpoint
Mọi tệp trọng số đã phát hành cho họ mô hình này.
| Tệp | Đầu vào (px) | Giấy phép trọng số |
|---|---|---|
| depth | ||
| LibreDepthAnythingV2s-depth.pt | apache-2.0 | |
| LibreDepthAnythingV2l-depth.pt | cc-by-nc-4.0 | |
| LibreDepthAnythingV2b-depth.pt | cc-by-nc-4.0 | |
Mọi tệp ở trên hiện đều có trong tổ chức LibreYOLO và được tải xuống trong lần sử dụng đầu tiên.
Giấy phép
Hãy kiểm tra giấy phép trong repo Hugging Face của trọng số cụ thể mà bạn tải xuống. Mỗi checkpoint trong tổ chức LibreYOLO đều có giấy phép riêng và giấy phép có thể khác nhau trong cùng một họ. Repo đó là nguồn có thẩm quyền; phần tóm tắt dưới đây mô tả các điều khoản áp dụng khi trang này được kiểm chứng lần gần nhất.
Đây là phần mô tả các giấy phép liên quan, không phải tư vấn pháp lý. Nếu câu trả lời có ý nghĩa về mặt thương mại, hãy tự đọc các giấy phép và tham khảo cố vấn của riêng bạn.
- Công trình gốc
- Depth Anything V2, The University of Hong Kong and TikTok
- Giấy phép thượng nguồn
- Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints)
- Nguồn thượng nguồn
- github.com/DepthAnything/Depth-Anything-V2
- Mã nguồn LibreYOLO
- MIT
- Trọng số
- Apache-2.0 (Small checkpoint); CC-BY-NC-4.0 (Base and Large checkpoints), được phát hành lại tại huggingface.co/LibreYOLO
- Diễn giải
- 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.
Trích dẫn
@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}
}Được sao chép từ khối trích dẫn của tác giả tại github.com/DepthAnything/Depth-Anything-V2#citation.