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.
- Lisensi
- Kode MIT, bobot Apache-2.0. Penggunaan komersial
Instalasi
RF-DETR memerlukan komponen tambahannya sendiri, yang memasang transformers untuk backbone.
pip install "libreyolo[rfdetr]"Prediksi
Bobot diunduh dari Hugging Face saat pertama kali digunakan dan disimpan dalam cache lokal.
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)libreyolo predict model=LibreRFDETRs.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom 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.
| Checkpoint | Input (piksel) | mAP 50-95 | Parameter (juta) |
|---|---|---|---|
| LibreRFDETRn | 384 | 51.4 | 30.47 |
| LibreRFDETRs | 512 | 55.1 | 32.11 |
| LibreRFDETRm | 576 | 57.4 | 33.69 |
| LibreRFDETRl | 704 | 58.6 | 33.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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreRFDETRs.pt")model.train(data="my-dataset.yaml", epochs=50, imgsz=512, batch=8, lr0=1e-4)libreyolo train model=LibreRFDETRs.pt data=my-dataset.yaml \ epochs=50 imgsz=512 batch=8 lr0=1e-4from libreyolo import LibreYOLO model = LibreYOLO("LibreRFDETRs.pt")model.train(data="my-dataset.yaml", epochs=50, lora=True)libreyolo train model=LibreRFDETRs.pt data=my-dataset.yaml \ epochs=50 device=0,1 batch=-1Dua 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.
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"])libreyolo val model=LibreRFDETRs.pt data=my-dataset.yaml imgsz=512# 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=TrueEkspor
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: didukung | Detection to TorchScript: didukung | Detection to ExecuTorch: didukung | Detection 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 didukung | Detection to MNN: didukung | Detection to RKNN: tidak didukung | Detection to ncnn: tidak didukung | Detection to TFLite: tidak didukung | Detection to CoreML: didukung. Conversion is available, but runtime parity requires a macOS runner. | Detection to Core AI: didukung |
| Instance segmentation | Instance segmentation to ONNX: didukung | Instance segmentation to TorchScript: didukung | Instance segmentation to ExecuTorch: didukung | Instance 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 didukung | Instance segmentation to MNN: tidak didukung | Instance segmentation to RKNN: tidak didukung | Instance segmentation to ncnn: tidak didukung | Instance segmentation to TFLite: tidak didukung | Instance segmentation to CoreML: tidak didukung | Instance segmentation to Core AI: tidak didukung |
| Pose | Pose to ONNX: didukung | Pose to TorchScript: didukung | Pose to ExecuTorch: didukung | Pose 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 didukung | Pose to MNN: tidak didukung | Pose to RKNN: tidak didukung | Pose to ncnn: tidak didukung | Pose to TFLite: tidak didukung | Pose to CoreML: tidak didukung | Pose to Core AI: tidak didukung |
| Oriented boxes | Oriented boxes to ONNX: didukung | Oriented boxes to TorchScript: didukung | Oriented boxes to ExecuTorch: didukung | Oriented 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 didukung | Oriented boxes to MNN: tidak didukung | Oriented boxes to RKNN: tidak didukung | Oriented boxes to ncnn: tidak didukung | Oriented boxes to TFLite: tidak didukung | Oriented boxes to CoreML: tidak didukung | Oriented 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.
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.libreyolo export model=LibreRFDETRs.pt format=onnx imgsz=512libreyolo export model=LibreRFDETRs.pt format=tensorrt imgsz=512 half=Truefrom 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)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.
| Berkas | Input (piksel) | Lisensi bobot |
|---|---|---|
| Detection | ||
| LibreRFDETRl.pt | 704 | apache-2.0 |
| LibreRFDETRm.pt | 576 | apache-2.0 |
| LibreRFDETRn.pt | 384 | apache-2.0 |
| LibreRFDETRs.pt | 512 | apache-2.0 |
| Instance segmentation | ||
| LibreRFDETRn-seg.pt | 312 | apache-2.0 |
| LibreRFDETRs-seg.pt | 384 | apache-2.0 |
| LibreRFDETRm-seg.pt | 432 | apache-2.0 |
| LibreRFDETRl-seg.pt | 504 | apache-2.0 |
| LibreRFDETRx-seg.pt | 624 | apache-2.0 |
| LibreRFDETRxx-seg.pt | 768 | apache-2.0 |
| Pose | ||
| LibreRFDETRn-pose.pt | apache-2.0 | |
| LibreRFDETRs-pose.pt | apache-2.0 | |
| LibreRFDETRm-pose.pt | apache-2.0 | |
| LibreRFDETRl-pose.pt | apache-2.0 | |
| LibreRFDETRx-pose.pt | 576 | apache-2.0 |
| Oriented boxes | ||
| LibreRFDETRn-obb.pt | 384 | cc-by-4.0 |
| LibreRFDETRs-obb.pt | 512 | cc-by-4.0 |
| LibreRFDETRm-obb.pt | 576 | cc-by-4.0 |
| LibreRFDETRl-obb.pt | 704 | cc-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
- Sumber upstream
- github.com/roboflow/rf-detr
- 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.