YOLOX
YOLOX là detector một giai đoạn không anchor, có head phân loại-hồi quy tách rời và được huấn luyện bằng phép gán nhãn SimOTA. LibreYOLO hỗ trợ mô hình cho tác vụ phát hiện.
- Tác vụ
- detection
- Kích thước
- n, t, s, m, l, x at 416 to 640 px
- Cài đặt
pip install libreyolo- Bậc hỗ trợ
- Được hỗ trợ, từ v. Các mô hình huấn luyện bổ trợ: luôn giữ CI ở trạng thái xanh, tính năng được bổ sung khi có cơ hội.
- 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
YOLOX không cần extra ngoài gói cơ sở.
pip install libreyoloDự đoán
Trọng số được tải từ Hugging Face ở lần dùng đầu tiên và lưu vào bộ nhớ đệm cục bộ.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLOXs.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreYOLOXs.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueĐối tượng Results trả về là loại mà mọi họ đều trả về, nên việc đổi sang
detector khác chỉ cần sửa một dòng. conf đặt ngưỡng độ tin cậy và iou đặt
ngưỡng NMS được áp dụng trên ba thang dự đoán tách rời. Xem
dự đoán để biết về nguồn, streaming và xử lý kết quả.
Các biến thể
Sáu kích thước dùng chung backbone CSP và neck PAFPN. Hai kích thước nhỏ nhất
n và t chạy ở độ phân giải đầu vào cố định nhỏ hơn bốn kích thước còn lại;
bảng benchmark bên dưới chứa số liệu chính xác cho từng kích thước.
| Checkpoint | Đầu vào (px) | mAP 50-95 | Tham số (M) |
|---|---|---|---|
| LibreYOLOXnano | 416 | 28.8 | 0.91 |
| LibreYOLOXtiny | 416 | 35.1 | 5.06 |
| LibreYOLOXl | 640 | 53.9 | 54.21 |
| LibreYOLOXm | 640 | 50.9 | 25.33 |
| LibreYOLOXs | 640 | 43.0 | 8.97 |
| LibreYOLOXx | 640 | 56.3 | 99.07 |
COCO val2017, 500 images. Được đo bằng bộ benchmark LibreYOLO và công bố trên Vision Analysis, nơi so sánh độ trễ giữa các phần cứng và runtime, đồng thời lưu trữ đầy đủ bản ghi của từng lần chạy.
Huấn luyện
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLOXs.pt")model.train(data="my-dataset.yaml", epochs=300, imgsz=640, batch=16, lr0=0.01)libreyolo train model=LibreYOLOXs.pt data=my-dataset.yaml \ epochs=300 imgsz=640 batch=16 lr0=0.01Nếu giữ nguyên mặc định, trình huấn luyện chạy 300 epoch ở lr0=0.01 với SGD
momentum 0.9, warmup 5 epoch và tắt tăng cường dữ liệu mosaic cùng mixup trong
15 epoch cuối. train() cũng chấp nhận đối số pretrained, nhưng giá trị không
bao giờ được đọc bên trong phương thức: quá trình huấn luyện luôn tiếp tục từ
trọng số dùng để khởi tạo mô hình, nên pretrained=False không khởi tạo lại mạng.
imgsz mặc định là giá trị cố định trong cấu hình huấn luyện cơ sở, không phải
độ phân giải gốc của checkpoint đã tải. Điều này đặc biệt ảnh hưởng đến các
checkpoint n và t: tiếp tục huấn luyện một trong hai mà không đặt rõ imgsz
sẽ chuyển lên giá trị mặc định lớn hơn thay vì kích thước nhỏ hơn khi công bố.
Xem huấn luyện để biết về tập dữ liệu, tăng cường dữ liệu, multi-GPU và logger.
Đánh giá
val() trả về từ điển các khóa metrics/ bao gồm precision, recall, mAP 50 và
mAP 50-95, được đo trên bất kỳ tập dữ liệu nào theo định dạng bạn đã huấn luyện.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLOXs.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLOXs.pt data=my-dataset.yaml# YAML COCO đi kèm chứa script tải xuống nhúng sẵn, nên cần quyền rõ ràng# trừ khi tập dữ liệu đã có cục bộ.libreyolo val model=LibreYOLOXn.pt data=coco.yaml imgsz=416 \ allow_download_scripts=TrueXuấ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: được hỗ trợ | Detection to TFLite: được hỗ trợ | Detection to CoreML: được hỗ trợ | Detection 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 Results. Cũng
hỗ trợ chạy đồ thị trong runtime độc lập không cài LibreYOLO, nhưng khi đó bạn
phải tự viết bước tiền xử lý và hậu xử lý. Bản xuất CoreML có thể nhúng NMS vào
đồ thị bằng nms=True; YOLOX và YOLOv9 là hai họ duy nhất cờ này hiện chấp nhận.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLOXs.pt")model.export(format="onnx", imgsz=640)model.export(format="tensorrt", imgsz=640, half=True)libreyolo export model=LibreYOLOXs.pt format=onnx imgsz=640libreyolo export model=LibreYOLOXs.pt format=tensorrt imgsz=640 half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory định tuyến theo hậu tố tệp, nên artifact đã xuất được tải# như mọi checkpoint và trả về cùng đối tượng Results.model = LibreYOLO("LibreYOLOXs.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoint
Mọi tệp trọng số đã công bố cho họ này.
| Tệp | Đầu vào (px) | Giấy phép trọng số |
|---|---|---|
| Detection | ||
| LibreYOLOXn.pt | 416 | apache-2.0 |
| LibreYOLOXt.pt | 416 | apache-2.0 |
| LibreYOLOXs.pt | 640 | apache-2.0 |
| LibreYOLOXm.pt | 640 | apache-2.0 |
| LibreYOLOXl.pt | 640 | apache-2.0 |
| LibreYOLOXx.pt | 640 | 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
- YOLOX, Megvii
- Giấy phép thượng nguồn
- Apache-2.0
- Nguồn thượng nguồn
- github.com/Megvii-BaseDetection/YOLOX
- 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.
Trích dẫn
@article{yolox2021,
title={YOLOX: Exceeding YOLO Series in 2021},
author={Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian},
journal={arXiv preprint arXiv:2107.08430},
year={2021}
}Được sao chép từ khối trích dẫn của tác giả tại github.com/Megvii-BaseDetection/YOLOX#cite-yolox.