rfdetr-base / README.md
IMvision12's picture
docs: Unsloth-style KerasFormers model card for rfdetr-base
5705ca2 verified
|
Raw
History Blame Contribute Delete
5.06 kB
---
pipeline_tag: object-detection
license: apache-2.0
base_model: Roboflow/rf-detr-base
library_name: kerasformers
tags:
- keras
- kerasformers
- rf-detr
- detr
- object-detection
- arxiv:2511.09554
- pytorch
- jax
- tf
---
## ***See [our collection](https://huggingface.co/collections/kerasformers/rf-detr-6a69d4fc463069d0af85320b) for all versions of RF-DETR.***
# Run RF-DETR with Keras 3: JAX, PyTorch, or TensorFlow
[![GitHub](https://img.shields.io/badge/GitHub-KerasFormers-black?logo=github)](https://github.com/IMvision12/KerasFormers) [![Docs](https://img.shields.io/badge/Docs-RF--DETR-blue)](https://imvision12.github.io/KerasFormers/rf_detr/) [![Collection](https://img.shields.io/badge/HF-RF--DETR%20collection-yellow)](https://huggingface.co/collections/kerasformers/rf-detr-6a69d4fc463069d0af85320b)
# kerasformers/rfdetr-base
Paper: [RF-DETR: Neural Architecture Search for Real-Time Detection Transformers (arXiv:2511.09554)](https://arxiv.org/abs/2511.09554) · [HF Papers](https://huggingface.co/papers/2511.09554)
RF-DETR is Roboflow's real-time DETR, built on a windowed DINOv2 backbone with a lightweight deformable decoder. Configurations came out of a neural architecture search, so variants differ in resolution, patch size, window count, and decoder depth. Instance-segmentation checkpoints add a mask head.
For more details on the model, please go to Roboflow's original [model card](https://huggingface.co/Roboflow/rf-detr-base).
Pure-**Keras 3** conversion of [`Roboflow/rf-detr-base`](https://huggingface.co/Roboflow/rf-detr-base) for [kerasformers](https://github.com/IMvision12/KerasFormers). One implementation runs unmodified on **TensorFlow / Torch / JAX**.
This is an **object detection** checkpoint (`RFDETRDetect`): each query predicts a class and box.
## ✨ Quick start
```python
import os
os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow"
from PIL import Image
from kerasformers.models.rf_detr import RFDETRDetect, RFDETRImageProcessor
model = RFDETRDetect.from_weights("kerasformers/rfdetr-base")
processor = RFDETRImageProcessor.from_weights("kerasformers/rfdetr-base")
image = Image.open("your_image.jpg").convert("RGB")
inputs = processor(image)
output = model(inputs["pixel_values"], training=False)
results = processor.post_process_object_detection(
output, threshold=0.5, target_sizes=[(image.height, image.width)]
)[0]
for score, name, box in zip(
results["scores"], results["label_names"], results["boxes"]
):
print(f"{name}: {float(score):.3f} {box}")
```
Load any RF-DETR variant the same way with `from_weights("kerasformers/<variant>")` (use `RFDETRDetect` for this repo):
| Variant | Hub | Task |
|---|---|---|
| `rfdetr-nano` | [`kerasformers/rfdetr-nano`](https://huggingface.co/kerasformers/rfdetr-nano) | object detection |
| `rfdetr-small` | [`kerasformers/rfdetr-small`](https://huggingface.co/kerasformers/rfdetr-small) | object detection |
| `rfdetr-medium` | [`kerasformers/rfdetr-medium`](https://huggingface.co/kerasformers/rfdetr-medium) | object detection |
| `rfdetr-base` | [`kerasformers/rfdetr-base`](https://huggingface.co/kerasformers/rfdetr-base) | object detection |
| `rfdetr-large` | [`kerasformers/rfdetr-large`](https://huggingface.co/kerasformers/rfdetr-large) | object detection |
| `rfdetr-seg-preview` | [`kerasformers/rfdetr-seg-preview`](https://huggingface.co/kerasformers/rfdetr-seg-preview) | instance segmentation |
| `rfdetr-seg-nano` | [`kerasformers/rfdetr-seg-nano`](https://huggingface.co/kerasformers/rfdetr-seg-nano) | instance segmentation |
| `rfdetr-seg-small` | [`kerasformers/rfdetr-seg-small`](https://huggingface.co/kerasformers/rfdetr-seg-small) | instance segmentation |
| `rfdetr-seg-medium` | [`kerasformers/rfdetr-seg-medium`](https://huggingface.co/kerasformers/rfdetr-seg-medium) | instance segmentation |
| `rfdetr-seg-large` | [`kerasformers/rfdetr-seg-large`](https://huggingface.co/kerasformers/rfdetr-seg-large) | instance segmentation |
| `rfdetr-seg-xlarge` | [`kerasformers/rfdetr-seg-xlarge`](https://huggingface.co/kerasformers/rfdetr-seg-xlarge) | instance segmentation |
| `rfdetr-seg-xxlarge` | [`kerasformers/rfdetr-seg-xxlarge`](https://huggingface.co/kerasformers/rfdetr-seg-xxlarge) | instance segmentation |
## Tips
- Set `KERAS_BACKEND` **before** importing Keras / kerasformers.
- Prefer `RFDETRImageProcessor.from_weights(...)` so the processor resolution matches the variant (bare constructor defaults to base's 560).
- Detection: `RFDETRDetect` + `post_process_object_detection`.
- Segmentation: `RFDETRInstanceSegment` + `post_process_instance_segmentation`.
- See [RF-DETR docs](https://imvision12.github.io/KerasFormers/rf_detr/) and [Loading Weights](https://imvision12.github.io/KerasFormers/loading_weights/).
- Community / upstream safetensors still work via the `hf:` prefix, e.g. `RFDETRDetect.from_weights("hf:Roboflow/rf-detr-base")`.
## Special Thanks
A huge thank you to the Roboflow RF-DETR authors for creating and releasing these models.
License: Apache 2.0.