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.
Thượng nguồn
MiDaS của Intel Intelligent Systems Lab (Intel ISL), MIT. Bài báo, mã nguồ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ở.

bash
pip install libreyolo

Dự đ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.

Python
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)
CLI
libreyolo predict model=LibreMiDaSl-depth.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Biến thể Small
from 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.

Python
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"])
CLI
libreyolo val model=LibreMiDaSl-depth.pt data=my-dataset.yaml

Xuất

Tác vụONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
depthdepth 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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreMiDaSl-depth.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreMiDaSl-depth.pt format=onnxlibreyolo export model=LibreMiDaSl-depth.pt format=tensorrt half=True
Dùng tệp đã xuất
from 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.

Đã kiểm chứng với LibreYOLO v1.5.0. Các bảng hỗ trợ, checkpoint và số liệu benchmark trên trang này được tạo từ thư viện đã phát hành và trọng số đã công bố, không phải viết thủ công.