Deformable DETR
Deformable DETR thay thế cross-attention dense của DETR bằng lấy mẫu thưa, đa tỷ lệ quanh mỗi điểm tham chiếu, nhờ đó việc huấn luyện transformer detector trở nên khả thi. LibreYOLO cung cấp năm kích thước chỉ để inference phát hiện.
- Tác vụ
- detection
- Kích thước
- r50ss, r50ssdc5, r50, r50refine, r50twostage at 800 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 Apache-2.0, trọng số Apache-2.0. Sử dụng thương mại
Cài đặt
Deformable DETR 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ở, sử dụng lõi multi-scale deformable attention thuần PyTorch.
pip install libreyoloViệc cài đặt libreyolo[hub-kernels] là tùy chọn. Khi có package kernels, LibreYOLO tìm nạp một kernel multi-scale deformable attention đã biên dịch từ Hugging Face Hub tại runtime và dùng nó thay cho lõi thuần PyTorch; LIBREYOLO_HUB_KERNELS=0 sẽ tắt lại tính năng này.
Dự đ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("LibreDeformableDETRr50.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreDeformableDETRr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueĐối tượng Results trả về cũng là đối tượng mà mọi họ mô hình đều trả về, vì vậy việc chuyển sang detector khác chỉ cần thay đổi một dòng. conf và max_det lọc lựa chọn query; iou được chấp nhận để giữ tính tương đồng của API nhưng không có tác dụng vì decoder là bộ dự đoán tập hợp không có bước NMS. Xem dự đoán để biết về nguồn, xử lý luồng và kết quả.
Deformable DETR chỉ dành cho inference trong LibreYOLO. Upstream huấn luyện bằng phép ghép Hungarian và focal classification loss; công thức đó không được triển khai ở đây, vì vậy train() phát sinh NotImplementedError.
Biến thể
Năm checkpoint bao phủ các cấu hình đã phát hành, tất cả ở cùng độ phân giải đầu vào. r50ss giới hạn attention ở một tỷ lệ đặc trưng duy nhất; r50ssdc5 bổ sung giai đoạn backbone C5 giãn trên cấu hình đó. r50 là cấu hình đa tỷ lệ mặc định, lấy mẫu trên bốn cấp feature map. r50refine bổ sung tinh chỉnh bounding box lặp lại qua các lớp decoder, còn r50twostage tạo region proposal ban đầu từ đầu ra encoder thay vì các query được học.
Xác thực
val() trả về dictionary gồm các key metrics/ cho precision, recall, mAP 50 và mAP 50-95, được đo trên mọi dataset có định dạng giống định dạng bạn đã dùng để huấn luyện.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeformableDETRr50.pt") # val() trả về dict thuần túy, không phải đối tượngmetrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])print(metrics["metrics/precision"], metrics["metrics/recall"])libreyolo val model=LibreDeformableDETRr50.pt data=my-dataset.yamlXuất
| Tác vụ | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: được hỗ trợ | Detection to TorchScript: được hỗ trợ | Detection to ExecuTorch: được hỗ trợ | Detection to TensorRT: được hỗ trợ | Detection to OpenVINO: được hỗ trợ | Detection to Paddle: không được hỗ trợ | Detection to MNN: không được hỗ trợ | Detection to RKNN: không được hỗ trợ | Detection to ncnn: không được hỗ trợ | Detection to TFLite: không được hỗ trợ | Detection to CoreML: không được hỗ trợ | Detection 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. 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("LibreDeformableDETRr50.pt")model.export(format="onnx", imgsz=800)model.export(format="tensorrt", imgsz=800, half=True)libreyolo export model=LibreDeformableDETRr50.pt format=onnx imgsz=800libreyolo export model=LibreDeformableDETRr50.pt format=tensorrt imgsz=800 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("LibreDeformableDETRr50.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)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ố |
|---|---|---|
| Detection | ||
| LibreDeformableDETRr50ss.pt | 800 | apache-2.0 |
| LibreDeformableDETRr50ssdc5.pt | 800 | apache-2.0 |
| LibreDeformableDETRr50.pt | 800 | apache-2.0 |
| LibreDeformableDETRr50twostage.pt | 800 | apache-2.0 |
| LibreDeformableDETRr50refine.pt | 800 | apache-2.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
- Deformable DETR, SenseTime
- Giấy phép thượng nguồn
- Apache-2.0
- Nguồn thượng nguồn
- github.com/fundamentalvision/Deformable-DETR
- Mã nguồn LibreYOLO
- MIT
- Trọng số
- Apache-2.0, được phát hành lại tại huggingface.co/LibreYOLO
- Diễn giải
- Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code, and weights you train yourself on your own data are yours. The five checkpoints are converted from SenseTime's own Hugging Face mirrors, each of which declares apache-2.0 in its model card; that declaration, not the original repository's Google Drive release links, is the redistribution basis.
Trích dẫn
@article{zhu2020deformable,
title={Deformable DETR: Deformable Transformers for End-to-End Object Detection},
author={Zhu, Xizhou and Su, Weijie and Lu, Lewei and Li, Bin and Wang, Xiaogang and Dai, Jifeng},
journal={arXiv preprint arXiv:2010.04159},
year={2020}
}Được sao chép từ khối trích dẫn của tác giả tại github.com/fundamentalvision/Deformable-DETR#citing-deformable-detr.