MiDaS
MiDaS là mô hình ước lượng độ sâu tương đối đơn ảnh được huấn luyện bằng loss bất biến theo scale và shift trên các dataset hỗn hợp, hướng nghiên cứu đã thiết lập giao thức transfer độ sâu zero-shot mà các họ sau này dùng lại. LibreYOLO hỗ trợ mô hình 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, l at 256 to 384 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.
- Giấy phép
- Mã nguồn MIT, trọng số MIT. Sử dụng thương mại
Cài đặt
MiDaS 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
MiDaS là họ độ sâu duy nhất mà LibreYOLO không phát hành lại trên tổ chức Hugging Face riêng. Yêu cầu checkpoint bằng tên tệp LibreYOLO sẽ tải trực tiếp artifact chính thức tương ứng từ các bản phát hành GitHub isl-org/MiDaS, kiểm tra theo SHA-256 cố định và bọc bằng metadata checkpoint của LibreYOLO trước lần sử dụng đầu tiên; các lượt sau dùng lại tệp cục bộ trong bộ nhớ đệm. Xem phần Giấy phép để biết lý do.
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Khi chưa có trên đĩa: LibreYOLO tải từ bản phát hành GitHub chính thức# của isl-org/MiDaS và kiểm tra theo SHA-256 cố định trước khi sử dụng.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, nhỏ và nhanh hơn kích thước l DPT-Large.model = LibreYOLO("LibreMiDaSs-depth.pt")result = model(SAMPLE_IMAGE, save=True)result.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. Xem dự đoán để biết về nguồn, xử lý luồng và kết quả.
Biến thể
Có hai biến thể với encoder khác nhau, không chỉ là các scale khác nhau của cùng một encoder. s là MiDaS v2.1 Small, một encoder EfficientNet-Lite3. l là DPT-Large, encoder ViT-L/16 với decoder DPT mà MiDaS đưa vào cho dự đoán dense. Chúng cũng tiền xử lý khác nhau: s dùng phép đổi kích thước theo tỷ lệ với giới hạn trên cùng chuẩn hóa mean/std ImageNet, còn l dùng phép đổi kích thước theo tỷ lệ tối thiểu với mean và std 0.5. Chọn s cho CNN nhẹ hơn, l cho độ chính xác của transformer decoder.
Họ mô hình này không cung cấp huấn luyện. LibreMiDaS.train() luôn phát sinh NotImplementedError.
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("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.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: được hỗ trợ | depth to TFLite: không được hỗ trợ | depth to CoreML: không được hỗ trợ | depth to Core AI: không đượ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.
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 # 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("LibreMiDaSl-depth.onnx")result = model(SAMPLE_IMAGE) print(result.depth_map.data.shape)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
- MiDaS, Intel Intelligent Systems Lab (Intel ISL)
- Giấy phép thượng nguồn
- MIT
- Nguồn thượng nguồn
- github.com/isl-org/MiDaS
- Mã nguồn LibreYOLO
- MIT
- Trọng số
- MIT, do tác giả phân phối. LibreYOLO không lưu trữ hoặc sao chép chúng.
- Diễn giải
- 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.
Trích dẫn
@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},
}Được sao chép từ khối trích dẫn của tác giả tại github.com/isl-org/MiDaS#citation.