RF-DETR

Một detection transformer dự đoán tập đối tượng cố định thay vì lưới dày đặc, nên không cần NMS khi suy luận. LibreYOLO hỗ trợ mô hình cho bốn tác vụ.

Tác vụ
detection, instance segmentation, pose, oriented boxes
Kích thước
n, s, m, l for detection, pose and oriented boxes; n through xx for segmentation
Cài đặt
pip install "libreyolo[rfdetr]"
Bậc hỗ trợ
Chủ lực, từ v1.0.0. Các tính năng được thiết kế và kiểm chứng đầy đủ trên GPU ở bậc này trước tiên.
Thượng nguồn
RF-DETR của Roboflow, Apache-2.0. Bài báo, mã nguồn
Giấy phép
Mã nguồn MIT, trọng số Apache-2.0. Sử dụng thương mại
LibreRFDETRs, phát hiện trên video ở 512 px.

Cài đặt

RF-DETR cần extra riêng, extra này cài thêm transformers cho backbone.

bash
pip install "libreyolo[rfdetr]"

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

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreRFDETRs.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreRFDETRs.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Video
from libreyolo import LibreYOLO model = LibreYOLO("LibreRFDETRs.pt") # Mọi nguồn thư viện chấp nhận: tệp, thư mục, URL, chỉ số webcam,# luồng RTSP hoặc danh sách .streamsfor result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

Đố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. confmax_det lọc lựa chọn query; không có bước NMS cần điều chỉnh. Xem dự đoán để biết về nguồn, streaming và xử lý kết quả.

Các biến thể

Bốn kích thước và bốn tác vụ dùng chung một kiến trúc: phân đoạn, tư thế và box định hướng dùng lại decoder phát hiện với head khác, nên nhận cùng các đối số. Các kích thước có số tham số tương tự và chủ yếu khác nhau ở độ phân giải đầu vào.

CheckpointĐầu vào (px)mAP 50-95Tham số (M)
LibreRFDETRn38451.430.47
LibreRFDETRs51255.132.11
LibreRFDETRm57657.433.69
LibreRFDETRl70458.633.93

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

Huấn luyện bắt đầu từ checkpoint đã công bố cho cả bốn tác vụ. RF-DETR liệt kê pretrained trong các đối số mà trình huấn luyện native bỏ qua, nên truyền pretrained=False không tạo mô hình khởi tạo ngẫu nhiên ở đây.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRFDETRs.pt")model.train(data="my-dataset.yaml", epochs=50, imgsz=512, batch=8, lr0=1e-4)
CLI
libreyolo train model=LibreRFDETRs.pt data=my-dataset.yaml \  epochs=50 imgsz=512 batch=8 lr0=1e-4
LoRA
from libreyolo import LibreYOLO model = LibreYOLO("LibreRFDETRs.pt")model.train(data="my-dataset.yaml", epochs=50, lora=True)
Multi-GPU
libreyolo train model=LibreRFDETRs.pt data=my-dataset.yaml \  epochs=50 device=0,1 batch=-1

Hai đối số quan trọng hơn ở đây so với detector CNN. Giữ lr0 ở mức 1e-4 trở xuống vì detector transformer phân kỳ ở learning rate mà mô hình YOLO vẫn chịu được. Giữ imgsz ở độ phân giải gốc của checkpoint trừ khi có lý do thay đổi. Đầu vào phải chia hết cho kích thước patch của backbone nhân số cửa sổ; LibreYOLO kiểm tra điều này trước khi chạy và nêu các kích thước hợp lệ gần nhất.

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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRFDETRs.pt") # val() trả về dict thông thường, không phải đối tượngmetrics = model.val(data="my-dataset.yaml", imgsz=512) print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])print(metrics["metrics/precision"], metrics["metrics/recall"])
CLI
libreyolo val model=LibreRFDETRs.pt data=my-dataset.yaml imgsz=512
Trên COCO
# 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=LibreRFDETRn.pt data=coco.yaml imgsz=384 \  allow_download_scripts=True

Xuất

Tác vụONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: được hỗ trợDetection to TorchScript: được hỗ trợDetection to ExecuTorch: được hỗ trợDetection to TensorRT: được hỗ trợ. Runtime parity coverage lives in tests/e2e/test_tensorrt.py.Detection to OpenVINO: được hỗ trợ. Runtime parity coverage lives in tests/e2e/test_openvino.py.Detection to Paddle: không được hỗ trợDetection to MNN: đượ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: được hỗ trợ. Conversion is available, but runtime parity requires a macOS runner.Detection to Core AI: được hỗ trợ
Instance segmentationInstance segmentation to ONNX: được hỗ trợInstance segmentation to TorchScript: được hỗ trợInstance segmentation to ExecuTorch: được hỗ trợInstance segmentation to TensorRT: được hỗ trợ. A published Apache-2.0 trained segmentation checkpoint exports and reloads, but public top-k class membership changes.Instance segmentation to OpenVINO: được hỗ trợ. After Hungarian query alignment, the converted-runtime element match rate is 69.0%, below the validation bar.Instance segmentation to Paddle: không được hỗ trợInstance segmentation to MNN: không được hỗ trợInstance segmentation to RKNN: không được hỗ trợInstance segmentation to ncnn: không được hỗ trợInstance segmentation to TFLite: không được hỗ trợInstance segmentation to CoreML: không được hỗ trợInstance segmentation to Core AI: không được hỗ trợ
PosePose to ONNX: được hỗ trợPose to TorchScript: được hỗ trợPose to ExecuTorch: được hỗ trợPose to TensorRT: được hỗ trợ. A published Apache-2.0 trained pose checkpoint exports and reloads, but matched public boxes fall to 0.704 IoU with 41.4-pixel coordinate drift.Pose to OpenVINO: được hỗ trợ. After Hungarian query alignment, the converted-runtime element match rate is 72.75%, below the validation bar.Pose to Paddle: không được hỗ trợPose to MNN: không được hỗ trợPose to RKNN: không được hỗ trợPose to ncnn: không được hỗ trợPose to TFLite: không được hỗ trợPose to CoreML: không được hỗ trợPose to Core AI: không được hỗ trợ
Oriented boxesOriented boxes to ONNX: được hỗ trợOriented boxes to TorchScript: được hỗ trợOriented boxes to ExecuTorch: được hỗ trợOriented boxes to TensorRT: được hỗ trợ. A deterministic synthetic OBB fixture exports and reloads, but public top-k class membership changes.Oriented boxes to OpenVINO: được hỗ trợ. After Hungarian query alignment, the converted-runtime element match rate is 91.25%, below the validation bar.Oriented boxes to Paddle: không được hỗ trợOriented boxes to MNN: không được hỗ trợOriented boxes to RKNN: không được hỗ trợOriented boxes to ncnn: không được hỗ trợOriented boxes to TFLite: không được hỗ trợOriented boxes to CoreML: không được hỗ trợOriented boxes 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 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ý.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRFDETRs.pt")model.export(format="onnx", imgsz=512)model.export(format="tensorrt", imgsz=512, half=True) # Các đối số được mọi định dạng chấp nhận:##   format    "onnx" | "torchscript" | "executorch" | "tensorrt"#             | "openvino" | "paddle" | "mnn" | "rknn" | "ncnn"#             | "tflite" | "coreml" | "coreai".#             "engine" is an alias for tensorrt, "litert" for tflite.#   imgsz     int hoặc (chiều cao, chiều rộng). Mặc định là#             độ phân giải gốc.#   batch     int, mặc định 1.#   half      bool, xuất ở FP16. Mặc định False.#   int8      bool, xuất ở INT8. Mặc định False. Cần `data`.#   data      đường dẫn đến YAML tập dữ liệu, dùng để hiệu chuẩn int8.#   fraction  float, phần tập hiệu chuẩn cần dùng. Mặc định 1.0.#   dynamic   bool, các trục động. Mặc định True.#   simplify  bool, chạy đơn giản hóa đồ thị ONNX. Mặc định True.#   opset     int, ONNX opset. Được chọn theo họ khi không chỉ định.#   device    str, thiết bị dùng để truy vết. Mặc định là thiết bị của mô hình.#   output_path  str, mặc định là tên suy ra từ checkpoint.#   verbose   bool, mặc định False.#   allow_download_scripts  bool, mặc định False. Cho phép mã Python#             nhúng trong YAML tập dữ liệu cần tải xuống.## Một số định dạng nhận thêm đối số riêng, chẳng hạn nền tảng đích RKNN.# Các đối số đó được ghi trong trang của từng định dạng.
CLI
libreyolo export model=LibreRFDETRs.pt format=onnx imgsz=512libreyolo export model=LibreRFDETRs.pt format=tensorrt imgsz=512 half=True
Dùng tệp đã xuất
from libreyolo import LibreYOLO # 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("LibreRFDETRs.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)
Không dùng LibreYOLO
import numpy as npimport onnxruntime as ort # Chạy trực tiếp đồ thị nghĩa là bạn tự thực hiện tiền xử lý và hậu xử lý.# Hãy kiểm tra chữ ký trước khi kết nối.session = ort.InferenceSession("LibreRFDETRs.onnx")name = session.get_inputs()[0].nameoutputs = session.run(None, {name: np.zeros((1, 3, 512, 512), dtype=np.float32)}) for meta, array in zip(session.get_outputs(), outputs):    print(meta.name, array.shape)

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
LibreRFDETRl.pt704apache-2.0
LibreRFDETRm.pt576apache-2.0
LibreRFDETRn.pt384apache-2.0
LibreRFDETRs.pt512apache-2.0
Instance segmentation
LibreRFDETRn-seg.pt312apache-2.0
LibreRFDETRs-seg.pt384apache-2.0
LibreRFDETRm-seg.pt432apache-2.0
LibreRFDETRl-seg.pt504apache-2.0
LibreRFDETRx-seg.pt624apache-2.0
LibreRFDETRxx-seg.pt768apache-2.0
Pose
LibreRFDETRn-pose.ptapache-2.0
LibreRFDETRs-pose.ptapache-2.0
LibreRFDETRm-pose.ptapache-2.0
LibreRFDETRl-pose.ptapache-2.0
LibreRFDETRx-pose.pt576apache-2.0
Oriented boxes
LibreRFDETRn-obb.pt384cc-by-4.0
LibreRFDETRs-obb.pt512cc-by-4.0
LibreRFDETRm-obb.pt576cc-by-4.0
LibreRFDETRl-obb.pt704cc-by-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
RF-DETR, Roboflow
Giấy phép thượng nguồn
Apache-2.0
Nguồn thượng nguồn
github.com/roboflow/rf-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.

Trích dẫn

@inproceedings{robinson2026rfdetr,
  title     = {RF-DETR: Real-Time Detection Transformer},
  author    = {Robinson, Isaac and Robicheaux, Peter and Popov, Matvei and Ramanan, Deva and Peri, Neehar},
  booktitle = {International Conference on Learning Representations (ICLR)},
  year      = {2026},
  url       = {https://arxiv.org/abs/2511.09554}
}

Được sao chép từ khối trích dẫn của tác giả tại github.com/roboflow/rf-detr#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.