dronefreak's picture
Upload README.md (#2)
4a639ef
|
Raw
History Blame Contribute Delete
10 kB
---
license: apache-2.0
pipeline_tag: object-detection
library_name: rfdetr
datasets:
- dronefreak/ExDark
tags:
- object-detection
- detectionbench
- rfdetr
- pytorch
- computer-vision
- low-light
- night-images
- dark-images
- robustness
metrics:
- map50
- map50-95
- precision
- recall
- f1
base_model: "Roboflow/rf-detr-medium"
---
# RF-DETR Medium Finetuned on ExDark
Fine-tuned RF-DETR Medium object detector on the **ExDark** benchmark dataset, trained and evaluated as part of [DetectionBench](https://github.com/dronefreak/DetectionBench) -- a framework for reproducibly benchmarking modern object detectors with identical training recipes and evaluation metrics across multiple real-world datasets.
<br>
<!-- ROW 1: Identity & Tech Stack -->
<div style="display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap;">
<img src="https://img.shields.io/badge/Task-Object_Detection-blue?style=flat-square" alt="Task">
<img src="https://img.shields.io/badge/Framework-RF--DETR-0aa1a7?style=flat-square" alt="Framework">
<img src="https://img.shields.io/badge/Base_Model-RF--DETR_Medium-purple?style=flat-square" alt="Base Model">
</div>
<!-- ROW 2: Performance Metrics -->
<div style="display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap;">
<img src="https://img.shields.io/badge/mAP@50-88.64%25-success?style=flat-square" alt="mAP@50">
<img src="https://img.shields.io/badge/mAP@50:95-62.55%25-orange?style=flat-square" alt="mAP@50:95">
<img src="https://img.shields.io/badge/Params-33.7M-lightgrey?style=flat-square" alt="Params">
</div>
<!-- ROW 3: Metadata -->
<div style="display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 24px; flex-wrap: wrap;">
<img src="https://img.shields.io/badge/License-Apache--2.0-lightgrey?style=flat-square" alt="License">
<a href="https://github.com/dronefreak/DetectionBench"><img src="https://img.shields.io/badge/Source-DetectionBench-black?style=flat-square" alt="Source"></a>
</div>
---
## Detection Showcase
<p align="center">
<img src="exdark_rfdetr-medium_showcase.jpg" alt="ExDark Detection Demo" width="900">
</p>
---
## Performance
| Metric | Score (%) |
| ---------- | --------------- |
| mAP@50 | 88.64 |
| mAP@50-95 | 62.55 |
| Precision | 86.6 |
| Recall | 79.46 |
| F1 Score | 82.88 |
| Parameters | 33.7M |
| FLOPs | N/A (not published upstream) |
---
## Evaluation Protocol
Metrics reported in this model card are computed on the ExDark **test** split, using DetectionBench's standard evaluation pipeline (`detectionbench-evaluate`).
---
## ExDark Model Zoo
Every model DetectionBench has trained and evaluated on ExDark so far, for full transparency -- see [DetectionBench](https://github.com/dronefreak/DetectionBench) for the smaller, curated comparison set used on the project README.
| Rank | Model | mAP@50 | mAP@50-95 | Precision | Recall |
| -------------------------- | --------------------- | ------------- | --------------- | ----------------- | -------------- |
| 1 | RF-DETR Small | 88.98 | 61.67 | 83.07 | 81.89 |
| 2 | RF-DETR Medium | 88.64 | 62.55 | 86.6 | 79.46 |
| 3 | RF-DETR Nano | 85.27 | 58.01 | 85.18 | 74.67 |
| 4 | YOLOv26l | 77.51 | 50.88 | 80.71 | 70.72 |
| 5 | YOLOv26m | 76.54 | 50.02 | 82.29 | 68.83 |
| 6 | YOLOv8x | 75.4 | 48.39 | 81.53 | 65.86 |
| 7 | YOLOv8l | 75.26 | 48.48 | 81.44 | 67.58 |
| 8 | YOLOv8m | 74.69 | 48.05 | 78.4 | 69.17 |
| 9 | YOLOv11x | 74.41 | 48.98 | 81.87 | 67.05 |
| 10 | YOLOv9m | 74.17 | 47.38 | 76.27 | 67.94 |
| 11 | YOLOv26s | 74.0 | 48.32 | 79.11 | 65.59 |
| 12 | YOLOv11l | 73.44 | 47.56 | 78.57 | 67.09 |
| 13 | YOLOv11s | 73.35 | 46.8 | 77.93 | 66.38 |
| 14 | YOLOv11m | 73.17 | 47.16 | 74.83 | 67.23 |
| 15 | YOLOv8s | 73.01 | 45.85 | 78.26 | 65.13 |
| 16 | YOLOv26n | 72.7 | 46.27 | 81.0 | 62.67 |
| 17 | YOLOv8n | 71.29 | 44.78 | 78.25 | 62.76 |
| 18 | YOLOv11n | 70.36 | 44.72 | 76.18 | 61.15 |
---
## Per-Class Performance
| Class | mAP@50 | mAP@50-95 |
| -------------------------- | --------------- | ----------------- |
| Bicycle | 84.51 | 58.56 |
| Boat | 89.93 | 55.03 |
| Bottle | 81.39 | 54.66 |
| Bus | 92.25 | 75.09 |
| Car | 91.94 | 66.21 |
| Cat | 91.27 | 66.74 |
| Chair | 84.52 | 60.12 |
| Cup | 88.85 | 60.17 |
| Dog | 91.77 | 70.9 |
| Motorbike | 91.55 | 64.08 |
| People | 89.01 | 56.93 |
| Table | 86.74 | 62.17 |
---
## Evaluation Visualizations
This model was evaluated with [Supervision](https://github.com/roboflow/supervision)'s detection metrics, which report mAP/Precision/Recall directly but don't produce PR-curve, F1-curve, or confusion-matrix plot images the way Ultralytics' validator does. See the Performance table above for Precision/Recall/F1 and the per-class table above for the full per-class mAP breakdown.
---
## Dataset
This model was trained on **ExDark**. For the full dataset description, provenance, license, and citation, see the dataset card:
https://huggingface.co/datasets/dronefreak/ExDark
### Classes
* Bicycle
* Boat
* Bottle
* Bus
* Car
* Cat
* Chair
* Cup
* Dog
* Motorbike
* People
* Table
---
## Usage
### Install Dependencies
```bash
pip install rfdetr huggingface_hub
```
### Load Model from Hugging Face
```python
from huggingface_hub import hf_hub_download
import rfdetr
weights = hf_hub_download(
repo_id="dronefreak/exdark-rfdetr-medium",
filename="checkpoint_best_total.pth"
)
model = rfdetr.RFDETRMedium(pretrain_weights=weights)
```
### Run Inference
```python
detections = model.predict("image.jpg", threshold=0.25)
```
---
## Training Configuration
| Setting | Value |
| ---------------- | -------------------------------- |
| Dataset | ExDark |
| Framework | RF-DETR |
| Training Toolkit | DetectionBench |
| Epochs (configured max) | 500 |
| Epochs (actually trained) | 104 |
| Early Stopping Patience | 100 |
| Batch Size | 9 |
| Resolution | 576 |
| Optimizer | adamw |
| Learning Rate | 0.0001 |
| Seed | 42 |
---
## Repository Contents
```text
checkpoint_best_total.pth
metrics.csv
config.json
exdark_rfdetr-medium_showcase.jpg
README.md
```
---
## Related Resources
* [ExDark dataset card](https://huggingface.co/datasets/dronefreak/ExDark) on Hugging Face
* [DetectionBench](https://github.com/dronefreak/DetectionBench) -- reproducible benchmarks for modern object detectors on real-world datasets
---
## Training Framework
This model was trained using [DetectionBench](https://github.com/dronefreak/DetectionBench), an open-source framework for benchmarking object detectors across multiple real-world datasets with a common pipeline.
Features include:
* A dataset-adapter registry for converting real-world datasets into a canonical format
* Identical training/evaluation recipes across model families (Ultralytics YOLO/RT-DETR, RF-DETR)
* Hardware profiling (latency, FPS, VRAM, parameters, FLOPs)
* One-command reproducibility via versioned Hydra configs
If you find this model useful, please consider starring the repository.
---
## Known Limitations
* Severe class imbalance: `People` accounts for roughly 46% of all annotated boxes while `Bus` is the rarest class, so per-class accuracy on rare classes is measured on very few test examples and should be read with wide uncertainty.
* Small dataset overall (7,344 images, 734 in the test split, across 12 classes) -- limited training signal for several classes independent of the imbalance above.
* Two-hop provenance: this dataset was converted to YOLO format by a third-party Roboflow export before reaching DetectionBench, not sourced directly from the original per-class-folder release; images are pre-resized to 640x640 by that export.
* The original authors separately request non-commercial use of this dataset (beyond the BSD-3-Clause license text itself) -- this applies to any model trained on it, not only the raw images.
---
## Citation
If you use this model in your research, please consider citing:
1. The ExDark dataset (see below)
2. The original RF-DETR Medium architecture (see below)
3. DetectionBench, the training/evaluation framework used to produce this checkpoint
```
@article{Exdark,
title = {Getting to Know Low-light Images with The Exclusively Dark Dataset},
author = {Loh, Yuen Peng and Chan, Chee Seng},
journal = {Computer Vision and Image Understanding},
volume = {178},
pages = {30-42},
year = {2019},
doi = {https://doi.org/10.1016/j.cviu.2018.10.010}
}
```
```bibtex
@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}
}
@article{oquab2023dinov2,
title={DINOv2: Learning Robust Visual Features without Supervision},
author={Oquab, Maxime and Darcet, Timoth{\'e}e and Moutakanni, Theo and Vo, Huy and Szafraniec, Marc and Khalidov, Vasil and Fernandez, Pierre and Haziza, Daniel and Massa, Francisco and El-Nouby, Alaaeldin and others},
journal={arXiv preprint arXiv:2304.07193},
year={2023}
}
```
```bibtex
@software{Saksena_DetectionBench_2026,
author = {Saksena, Saumya Kumaar},
title = {DetectionBench: Reproducible Benchmarks for Modern Object Detectors on Real-World Datasets},
url = {https://github.com/dronefreak/DetectionBench},
year = {2026}
}
```