RF-DETR

Detection transformer yang memprediksi sekumpulan objek tetap, bukan grid padat, sehingga tidak memerlukan NMS saat inferensi. LibreYOLO mendukungnya untuk empat task.

Task
detection, instance segmentation, pose, oriented boxes
Ukuran
n, s, m, l for detection, pose and oriented boxes; n through xx for segmentation
Instalasi
pip install "libreyolo[rfdetr]"
Tier dukungan
Unggulan, sejak v1.0.0. Fitur dirancang dan divalidasi sepenuhnya pada GPU di sini terlebih dahulu.
Proyek upstream
RF-DETR oleh Roboflow, Apache-2.0. Makalah, sumber
Lisensi
Kode MIT, bobot Apache-2.0. Penggunaan komersial
Deteksi video dengan LibreRFDETRs pada 512 px.

Instalasi

RF-DETR memerlukan komponen tambahannya sendiri, yang memasang transformers untuk backbone.

bash
pip install "libreyolo[rfdetr]"

Prediksi

Bobot diunduh dari Hugging Face saat pertama kali digunakan dan disimpan dalam cache lokal.

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") # Sumber apa pun yang diterima library: berkas, folder, URL, indeks webcam,# stream RTSP, atau daftar .streamsfor result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

Objek Results yang dikembalikan sama dengan yang dikembalikan setiap family, jadi mengganti detektor hanya memerlukan perubahan satu baris. conf dan max_det memfilter pemilihan query; tidak ada tahap NMS yang perlu disetel. Lihat prediksi untuk sumber, streaming, dan penanganan hasil.

Varian

Empat ukuran dan empat task yang memakai satu arsitektur: segmentasi, pose, dan kotak berorientasi menggunakan kembali decoder deteksi dengan head berbeda, sehingga semuanya menerima argumen yang sama. Setiap ukuran memiliki jumlah parameter yang mirip dan terutama berbeda dalam resolusi input.

CheckpointInput (piksel)mAP 50-95Parameter (juta)
LibreRFDETRn38451.430.47
LibreRFDETRs51255.132.11
LibreRFDETRm57657.433.69
LibreRFDETRl70458.633.93

COCO val2017, 500 images. Diukur oleh perangkat benchmark LibreYOLO dan dipublikasikan di Vision Analysis, tempat latensi pada berbagai hardware dan runtime dibandingkan serta rekaman lengkap setiap pengujian tersedia.

Pelatihan

Pelatihan dimulai dari checkpoint yang dipublikasikan untuk keempat task. RF-DETR mencantumkan pretrained di antara argumen yang diabaikan pelatih native-nya, sehingga pretrained=False tidak menghasilkan model yang diinisialisasi secara acak di sini.

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

Dua argumen lebih penting di sini daripada pada detektor CNN. Pertahankan lr0 pada atau di bawah 1e-4, karena detektor transformer mengalami divergensi pada learning rate yang masih dapat ditoleransi model YOLO. Biarkan imgsz pada resolusi native checkpoint kecuali ada alasan untuk mengubahnya. Input harus habis dibagi ukuran patch backbone dikalikan jumlah window; LibreYOLO memeriksanya sebelum proses dimulai dan menyebutkan ukuran valid terdekat.

Lihat pelatihan untuk dataset, augmentasi, multi-GPU, dan logger.

Validasi

val() mengembalikan dictionary dengan key metrics/ yang mencakup presisi, recall, mAP 50, dan mAP 50-95, yang diukur terhadap dataset apa pun dalam format yang digunakan untuk pelatihan.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRFDETRs.pt") # val() mengembalikan dict biasa, bukan objekmetrics = 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
Dibandingkan dengan COCO
# YAML COCO bawaan menyertakan skrip unduhan tertanam, sehingga# memerlukan izin eksplisit kecuali dataset sudah tersedia secara lokal.libreyolo val model=LibreRFDETRn.pt data=coco.yaml imgsz=384 \  allow_download_scripts=True

Ekspor

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: didukungDetection to TorchScript: didukungDetection to ExecuTorch: didukungDetection to TensorRT: didukung. Runtime parity coverage lives in tests/e2e/test_tensorrt.py.Detection to OpenVINO: didukung. Runtime parity coverage lives in tests/e2e/test_openvino.py.Detection to Paddle: tidak didukungDetection to MNN: didukungDetection to RKNN: tidak didukungDetection to ncnn: tidak didukungDetection to TFLite: tidak didukungDetection to CoreML: didukung. Conversion is available, but runtime parity requires a macOS runner.Detection to Core AI: didukung
Instance segmentationInstance segmentation to ONNX: didukungInstance segmentation to TorchScript: didukungInstance segmentation to ExecuTorch: didukungInstance segmentation to TensorRT: didukung. A published Apache-2.0 trained segmentation checkpoint exports and reloads, but public top-k class membership changes.Instance segmentation to OpenVINO: didukung. After Hungarian query alignment, the converted-runtime element match rate is 69.0%, below the validation bar.Instance segmentation to Paddle: tidak didukungInstance segmentation to MNN: tidak didukungInstance segmentation to RKNN: tidak didukungInstance segmentation to ncnn: tidak didukungInstance segmentation to TFLite: tidak didukungInstance segmentation to CoreML: tidak didukungInstance segmentation to Core AI: tidak didukung
PosePose to ONNX: didukungPose to TorchScript: didukungPose to ExecuTorch: didukungPose to TensorRT: didukung. 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: didukung. After Hungarian query alignment, the converted-runtime element match rate is 72.75%, below the validation bar.Pose to Paddle: tidak didukungPose to MNN: tidak didukungPose to RKNN: tidak didukungPose to ncnn: tidak didukungPose to TFLite: tidak didukungPose to CoreML: tidak didukungPose to Core AI: tidak didukung
Oriented boxesOriented boxes to ONNX: didukungOriented boxes to TorchScript: didukungOriented boxes to ExecuTorch: didukungOriented boxes to TensorRT: didukung. A deterministic synthetic OBB fixture exports and reloads, but public top-k class membership changes.Oriented boxes to OpenVINO: didukung. After Hungarian query alignment, the converted-runtime element match rate is 91.25%, below the validation bar.Oriented boxes to Paddle: tidak didukungOriented boxes to MNN: tidak didukungOriented boxes to RKNN: tidak didukungOriented boxes to ncnn: tidak didukungOriented boxes to TFLite: tidak didukungOriented boxes to CoreML: tidak didukungOriented boxes to Core AI: tidak didukung

Artefak hasil ekspor dimuat kembali melalui LibreYOLO() berdasarkan sufiks berkasnya, sehingga berkas .onnx atau .engine berperilaku seperti checkpoint dan mengembalikan Results yang sama. Menjalankan graph pada runtime mandiri tanpa memasang LibreYOLO juga didukung, tetapi prapemrosesan dan pascapemrosesannya harus ditulis sendiri.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRFDETRs.pt")model.export(format="onnx", imgsz=512)model.export(format="tensorrt", imgsz=512, half=True) # Argumen yang diterima untuk setiap format:##   format    "onnx" | "torchscript" | "executorch" | "tensorrt"#             | "openvino" | "paddle" | "mnn" | "rknn" | "ncnn"#             | "tflite" | "coreml" | "coreai".#             "engine" adalah alias untuk tensorrt, "litert" untuk tflite.#   imgsz     int, atau (height, width). Default-nya resolusi native#             checkpoint.#   batch     int, default 1.#   half      bool, ekspor dalam FP16. Default False.#   int8      bool, ekspor dalam INT8. Default False. Memerlukan `data`.#   data      path ke YAML dataset, digunakan untuk kalibrasi int8.#   fraction  float, bagian set kalibrasi yang digunakan. Default 1.0.#   dynamic   bool, sumbu dinamis. Default True.#   simplify  bool, jalankan penyederhanaan graph ONNX. Default True.#   opset     int, opset ONNX. Dipilih per family jika tidak diberikan.#   device    str, perangkat untuk tracing. Default-nya perangkat model.#   output_path  str, default-nya nama yang diturunkan dari checkpoint.#   verbose   bool, default False.#   allow_download_scripts  bool, default False. Mengizinkan Python#             tertanam dalam YAML dataset yang harus diunduh.## Beberapa format menerima argumen tambahan sendiri, seperti platform# target RKNN. Argumen tersebut didokumentasikan di halaman tiap format.
CLI
libreyolo export model=LibreRFDETRs.pt format=onnx imgsz=512libreyolo export model=LibreRFDETRs.pt format=tensorrt imgsz=512 half=True
Gunakan berkas hasil ekspor
from libreyolo import LibreYOLO # Factory merutekan berdasarkan sufiks berkas, sehingga artefak hasil ekspor# dimuat seperti checkpoint lain dan mengembalikan objek Results yang sama.model = LibreYOLO("LibreRFDETRs.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)
Tanpa LibreYOLO
import numpy as npimport onnxruntime as ort # Menjalankan graph secara langsung berarti melakukan prapemrosesan dan# pascapemrosesan sendiri. Periksa signature sebelum menghubungkannya.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

Setiap berkas bobot yang dipublikasikan untuk family ini.

BerkasInput (piksel)Lisensi bobot
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

Setiap berkas di atas saat ini tersedia di organisasi LibreYOLO dan diunduh saat pertama kali digunakan.

Lisensi

Periksa lisensi di repositori Hugging Face untuk bobot tertentu yang diunduh. Setiap checkpoint di organisasi LibreYOLO memiliki lisensi, dan lisensinya tidak selalu sama dalam satu family. Repositori tersebut adalah sumber resmi. Ringkasan di bawah menjelaskan ketentuan yang berlaku saat halaman ini terakhir diverifikasi.

Ini adalah deskripsi lisensi yang terlibat, bukan nasihat hukum. Jika jawabannya penting secara komersial, baca sendiri lisensinya dan mintalah nasihat dari penasihat hukum Anda.

Karya asli
RF-DETR, Roboflow
Lisensi upstream
Apache-2.0
Kode LibreYOLO
MIT
Bobot
Apache-2.0, dipublikasikan ulang di huggingface.co/LibreYOLO
Interpretasi
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.

Sitasi

@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}
}

Disalin dari blok sitasi penulis di github.com/roboflow/rf-detr#citation.

Diverifikasi dengan LibreYOLO v1.5.0. Tabel dukungan, checkpoint, dan angka benchmark di halaman ini dihasilkan dari library yang telah dirilis dan bobot yang dipublikasikan, bukan ditulis manual.