.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ exdark_rfdetr-medium_showcase.jpg filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,292 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+
4
+ pipeline_tag: object-detection
5
+
6
+ library_name: rfdetr
7
+
8
+ datasets:
9
+ - dronefreak/ExDark
10
+
11
+ tags:
12
+ - object-detection
13
+ - detectionbench
14
+ - rfdetr
15
+ - pytorch
16
+ - computer-vision
17
+ - low-light
18
+ - night-images
19
+ - dark-images
20
+ - robustness
21
+ metrics:
22
+ - map50
23
+ - map50-95
24
+ - precision
25
+ - recall
26
+ - f1
27
+
28
+ base_model: "rf-detr-medium.pth"
29
+ ---
30
+
31
+
32
+ # RF-DETR Medium Finetuned on ExDark
33
+
34
+ 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.
35
+
36
+ <br>
37
+
38
+ <!-- ROW 1: Identity & Tech Stack -->
39
+ <div style="display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap;">
40
+ <img src="https://img.shields.io/badge/Task-Object_Detection-blue?style=flat-square" alt="Task">
41
+ <img src="https://img.shields.io/badge/Framework-RF--DETR-0aa1a7?style=flat-square" alt="Framework">
42
+ <img src="https://img.shields.io/badge/Base_Model-RF--DETR_Medium-purple?style=flat-square" alt="Base Model">
43
+ </div>
44
+
45
+ <!-- ROW 2: Performance Metrics -->
46
+ <div style="display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap;">
47
+ <img src="https://img.shields.io/badge/mAP@50-88.64%25-success?style=flat-square" alt="mAP@50">
48
+ <img src="https://img.shields.io/badge/mAP@50:95-62.55%25-orange?style=flat-square" alt="mAP@50:95">
49
+ <img src="https://img.shields.io/badge/Params-33.7M-lightgrey?style=flat-square" alt="Params">
50
+ </div>
51
+
52
+ <!-- ROW 3: Metadata -->
53
+ <div style="display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 24px; flex-wrap: wrap;">
54
+ <img src="https://img.shields.io/badge/License-Apache--2.0-lightgrey?style=flat-square" alt="License">
55
+ <a href="https://github.com/dronefreak/DetectionBench"><img src="https://img.shields.io/badge/Source-DetectionBench-black?style=flat-square" alt="Source"></a>
56
+ </div>
57
+
58
+ ---
59
+
60
+ ## Detection Showcase
61
+
62
+ <p align="center">
63
+ <img src="exdark_rfdetr-medium_showcase.jpg" alt="ExDark Detection Demo" width="900">
64
+ </p>
65
+
66
+ ---
67
+
68
+ ## Performance
69
+
70
+ | Metric | Score (%) |
71
+ | ---------- | --------------- |
72
+ | mAP@50 | 88.64 |
73
+ | mAP@50-95 | 62.55 |
74
+ | Precision | 86.6 |
75
+ | Recall | 79.46 |
76
+ | F1 Score | 82.88 |
77
+ | Parameters | 33.7M |
78
+ | FLOPs | N/A (not published upstream) |
79
+
80
+ ---
81
+
82
+ ## Evaluation Protocol
83
+
84
+ Metrics reported in this model card are computed on the ExDark **test** split, using DetectionBench's standard evaluation pipeline (`detectionbench-evaluate`).
85
+
86
+ ---
87
+
88
+ ## ExDark Model Zoo
89
+
90
+ 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.
91
+
92
+ | Rank | Model | mAP@50 | mAP@50-95 | Precision | Recall |
93
+ | -------------------------- | --------------------- | ------------- | --------------- | ----------------- | -------------- |
94
+ | 1 | RF-DETR Small | 88.98 | 61.67 | 83.07 | 81.89 |
95
+ | 2 | RF-DETR Medium | 88.64 | 62.55 | 86.6 | 79.46 |
96
+ | 3 | RF-DETR Nano | 85.27 | 58.01 | 85.18 | 74.67 |
97
+ | 4 | YOLOv26l | 77.51 | 50.88 | 80.71 | 70.72 |
98
+ | 5 | YOLOv26m | 76.54 | 50.02 | 82.29 | 68.83 |
99
+ | 6 | YOLOv8x | 75.4 | 48.39 | 81.53 | 65.86 |
100
+ | 7 | YOLOv8l | 75.26 | 48.48 | 81.44 | 67.58 |
101
+ | 8 | YOLOv8m | 74.69 | 48.05 | 78.4 | 69.17 |
102
+ | 9 | YOLOv11x | 74.41 | 48.98 | 81.87 | 67.05 |
103
+ | 10 | YOLOv9m | 74.17 | 47.38 | 76.27 | 67.94 |
104
+ | 11 | YOLOv26s | 74.0 | 48.32 | 79.11 | 65.59 |
105
+ | 12 | YOLOv11l | 73.44 | 47.56 | 78.57 | 67.09 |
106
+ | 13 | YOLOv11s | 73.35 | 46.8 | 77.93 | 66.38 |
107
+ | 14 | YOLOv11m | 73.17 | 47.16 | 74.83 | 67.23 |
108
+ | 15 | YOLOv8s | 73.01 | 45.85 | 78.26 | 65.13 |
109
+ | 16 | YOLOv26n | 72.7 | 46.27 | 81.0 | 62.67 |
110
+ | 17 | YOLOv8n | 71.29 | 44.78 | 78.25 | 62.76 |
111
+ | 18 | YOLOv11n | 70.36 | 44.72 | 76.18 | 61.15 |
112
+ ---
113
+
114
+ ## Per-Class Performance
115
+
116
+ | Class | mAP@50 | mAP@50-95 |
117
+ | -------------------------- | --------------- | ----------------- |
118
+ | Bicycle | 84.51 | 58.56 |
119
+ | Boat | 89.93 | 55.03 |
120
+ | Bottle | 81.39 | 54.66 |
121
+ | Bus | 92.25 | 75.09 |
122
+ | Car | 91.94 | 66.21 |
123
+ | Cat | 91.27 | 66.74 |
124
+ | Chair | 84.52 | 60.12 |
125
+ | Cup | 88.85 | 60.17 |
126
+ | Dog | 91.77 | 70.9 |
127
+ | Motorbike | 91.55 | 64.08 |
128
+ | People | 89.01 | 56.93 |
129
+ | Table | 86.74 | 62.17 |
130
+ ---
131
+
132
+ ## Evaluation Visualizations
133
+
134
+ 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.
135
+
136
+ ---
137
+
138
+ ## Dataset
139
+
140
+ This model was trained on **ExDark**. For the full dataset description, provenance, license, and citation, see the dataset card:
141
+
142
+ https://huggingface.co/datasets/dronefreak/ExDark
143
+
144
+ ### Classes
145
+
146
+ * Bicycle
147
+ * Boat
148
+ * Bottle
149
+ * Bus
150
+ * Car
151
+ * Cat
152
+ * Chair
153
+ * Cup
154
+ * Dog
155
+ * Motorbike
156
+ * People
157
+ * Table
158
+ ---
159
+
160
+ ## Usage
161
+
162
+ ### Install Dependencies
163
+
164
+ ```bash
165
+ pip install rfdetr huggingface_hub
166
+ ```
167
+
168
+ ### Load Model from Hugging Face
169
+
170
+ ```python
171
+ from huggingface_hub import hf_hub_download
172
+ import rfdetr
173
+
174
+ weights = hf_hub_download(
175
+ repo_id="dronefreak/exdark-rfdetr-medium",
176
+ filename="checkpoint_best_total.pth"
177
+ )
178
+
179
+ model = rfdetr.RFDETRMedium(pretrain_weights=weights)
180
+ ```
181
+
182
+ ### Run Inference
183
+
184
+ ```python
185
+ detections = model.predict("image.jpg", threshold=0.25)
186
+ ```
187
+ ---
188
+
189
+ ## Training Configuration
190
+
191
+ | Setting | Value |
192
+ | ---------------- | -------------------------------- |
193
+ | Dataset | ExDark |
194
+ | Framework | RF-DETR |
195
+ | Training Toolkit | DetectionBench |
196
+ | Epochs (configured max) | 500 |
197
+ | Epochs (actually trained) | 104 |
198
+ | Early Stopping Patience | 100 |
199
+ | Batch Size | 9 |
200
+ | Resolution | 576 |
201
+ | Optimizer | adamw |
202
+ | Learning Rate | 0.0001 |
203
+ | Seed | 42 |
204
+ ---
205
+
206
+ ## Repository Contents
207
+
208
+ ```text
209
+ checkpoint_best_total.pth
210
+ metrics.csv
211
+ config.json
212
+ exdark_rfdetr-medium_showcase.jpg
213
+ README.md
214
+ ```
215
+
216
+ ---
217
+
218
+ ## Related Resources
219
+
220
+ * [ExDark dataset card](https://huggingface.co/datasets/dronefreak/ExDark) on Hugging Face
221
+ * [DetectionBench](https://github.com/dronefreak/DetectionBench) -- reproducible benchmarks for modern object detectors on real-world datasets
222
+
223
+ ---
224
+
225
+ ## Training Framework
226
+
227
+ 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.
228
+
229
+ Features include:
230
+
231
+ * A dataset-adapter registry for converting real-world datasets into a canonical format
232
+ * Identical training/evaluation recipes across model families (Ultralytics YOLO/RT-DETR, RF-DETR)
233
+ * Hardware profiling (latency, FPS, VRAM, parameters, FLOPs)
234
+ * One-command reproducibility via versioned Hydra configs
235
+
236
+ If you find this model useful, please consider starring the repository.
237
+
238
+ ---
239
+
240
+ ## Known Limitations
241
+
242
+ * 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.
243
+ * 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.
244
+ * 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.
245
+ * 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.
246
+ ---
247
+
248
+ ## Citation
249
+
250
+ If you use this model in your research, please consider citing:
251
+
252
+ 1. The ExDark dataset (see below)
253
+ 2. The original RF-DETR Medium architecture (see below)
254
+ 3. DetectionBench, the training/evaluation framework used to produce this checkpoint
255
+
256
+ ```
257
+ @article{Exdark,
258
+ title = {Getting to Know Low-light Images with The Exclusively Dark Dataset},
259
+ author = {Loh, Yuen Peng and Chan, Chee Seng},
260
+ journal = {Computer Vision and Image Understanding},
261
+ volume = {178},
262
+ pages = {30-42},
263
+ year = {2019},
264
+ doi = {https://doi.org/10.1016/j.cviu.2018.10.010}
265
+ }
266
+ ```
267
+
268
+ ```bibtex
269
+ @inproceedings{robinson2026rfdetr,
270
+ title = {RF-DETR: Real-Time Detection Transformer},
271
+ author = {Robinson, Isaac and Robicheaux, Peter and Popov, Matvei and Ramanan, Deva and Peri, Neehar},
272
+ booktitle = {International Conference on Learning Representations (ICLR)},
273
+ year = {2026},
274
+ url = {https://arxiv.org/abs/2511.09554}
275
+ }
276
+
277
+ @article{oquab2023dinov2,
278
+ title={DINOv2: Learning Robust Visual Features without Supervision},
279
+ 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},
280
+ journal={arXiv preprint arXiv:2304.07193},
281
+ year={2023}
282
+ }
283
+ ```
284
+
285
+ ```bibtex
286
+ @software{Saksena_DetectionBench_2026,
287
+ author = {Saksena, Saumya Kumaar},
288
+ title = {DetectionBench: Reproducible Benchmarks for Modern Object Detectors on Real-World Datasets},
289
+ url = {https://github.com/dronefreak/DetectionBench},
290
+ year = {2026}
291
+ }
292
+ ```
checkpoint_best_total.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5909b9f6daea71b90f0c22d9f15b436bdf7242e2d0c146ccf1907b0c4ce6ea78
3
+ size 133838227
config.json ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "train_config": {
3
+ "lr": 0.0001,
4
+ "lr_encoder": 0.00015,
5
+ "batch_size": 9,
6
+ "grad_accum_steps": 2,
7
+ "auto_batch_target_effective": 16,
8
+ "auto_batch_max_targets_per_image": 100,
9
+ "auto_batch_ema_headroom": 0.7,
10
+ "epochs": 500,
11
+ "resume": null,
12
+ "ema_decay": 0.993,
13
+ "ema_tau": 100,
14
+ "lr_drop": 100,
15
+ "checkpoint_interval": 100,
16
+ "skip_best_epochs": 0,
17
+ "smooth_alpha": 0.0,
18
+ "warmup_epochs": 0.0,
19
+ "lr_vit_layer_decay": 0.8,
20
+ "lr_component_decay": 0.7,
21
+ "drop_path": 0.0,
22
+ "cls_loss_coef": 1.0,
23
+ "keypoint_flip_pairs": [],
24
+ "keypoint_l1_loss_coef": 0,
25
+ "keypoint_findable_loss_coef": 0,
26
+ "keypoint_visible_loss_coef": 0,
27
+ "keypoint_nll_loss_coef": 0,
28
+ "keypoint_oks_sigmas": null,
29
+ "dataset_file": "roboflow",
30
+ "square_resize_div_64": true,
31
+ "dataset_dir": "/home/saumya.saksena/projects/ExDark/data",
32
+ "output_dir": "/home/saumya.saksena/projects/DetectionBench/experiments/exdark/rfdetr-medium",
33
+ "multi_scale": true,
34
+ "expanded_scales": true,
35
+ "do_random_resize_via_padding": false,
36
+ "use_ema": true,
37
+ "ema_update_interval": 1,
38
+ "eval_ema_only": false,
39
+ "num_workers": 4,
40
+ "weight_decay": 0.0001,
41
+ "amp_dtype": "auto",
42
+ "early_stopping": true,
43
+ "early_stopping_patience": 100,
44
+ "early_stopping_min_delta": 0.001,
45
+ "early_stopping_use_ema": false,
46
+ "progress_bar": "rich",
47
+ "tensorboard": true,
48
+ "wandb": false,
49
+ "mlflow": false,
50
+ "clearml": false,
51
+ "project": null,
52
+ "run": null,
53
+ "class_names": null,
54
+ "run_test": false,
55
+ "eval_max_dets": 500,
56
+ "eval_interval": 1,
57
+ "log_per_class_metrics": true,
58
+ "eval_masks_head_resolution": false,
59
+ "aug_config": null,
60
+ "scale_jitter": true,
61
+ "augmentation_backend": "kornia",
62
+ "save_dataset_grids": false,
63
+ "notes": null,
64
+ "accelerator": "auto",
65
+ "clip_max_norm": 0.1,
66
+ "seed": 42,
67
+ "sync_bn": false,
68
+ "strategy": "auto",
69
+ "devices": 1,
70
+ "num_nodes": 1,
71
+ "fp16_eval": false,
72
+ "lr_scheduler": "step",
73
+ "lr_scheduler_kwargs": {},
74
+ "lr_scheduler_interval": "step",
75
+ "lr_scheduler_monitor": "val/loss",
76
+ "lr_min_factor": 0.0,
77
+ "optimizer": "adamw",
78
+ "optimizer_kwargs": {},
79
+ "dont_save_weights": false,
80
+ "train_log_sync_dist": false,
81
+ "train_log_on_step": false,
82
+ "compute_train_metrics": false,
83
+ "compute_val_loss": true,
84
+ "compute_test_loss": true,
85
+ "pin_memory": null,
86
+ "persistent_workers": null,
87
+ "prefetch_factor": null
88
+ },
89
+ "model_config": {
90
+ "encoder": "dinov2_windowed_small",
91
+ "out_feature_indexes": [
92
+ 3,
93
+ 6,
94
+ 9,
95
+ 12
96
+ ],
97
+ "dec_layers": 4,
98
+ "two_stage": true,
99
+ "projector_scale": [
100
+ "P4"
101
+ ],
102
+ "hidden_dim": 256,
103
+ "patch_size": 16,
104
+ "num_windows": 2,
105
+ "sa_nheads": 8,
106
+ "ca_nheads": 16,
107
+ "dec_n_points": 2,
108
+ "num_queries": 300,
109
+ "num_select": 300,
110
+ "postprocess_trace_alpha": 0.2,
111
+ "bbox_reparam": true,
112
+ "lite_refpoint_refine": true,
113
+ "layer_norm": true,
114
+ "amp": true,
115
+ "num_channels": 3,
116
+ "num_classes": 12,
117
+ "pretrain_weights": "/home/saumya.saksena/.roboflow/models/rf-detr-medium.pth",
118
+ "device": "cuda",
119
+ "resolution": 576,
120
+ "group_detr": 13,
121
+ "gradient_checkpointing": false,
122
+ "compile": false,
123
+ "fused_optimizer": true,
124
+ "positional_encoding_size": 36,
125
+ "ia_bce_loss": true,
126
+ "segmentation_head": false,
127
+ "use_grouppose_keypoints": false,
128
+ "keypoint_cross_attn": true,
129
+ "inter_instance_kp_attn": false,
130
+ "grouppose_keypoint_dim_downscale": 1,
131
+ "dual_projector": false,
132
+ "dual_projector_kp_only": false,
133
+ "num_keypoints_per_class": [],
134
+ "num_decoder_registers": 0,
135
+ "mask_downsample_ratio": 4,
136
+ "backbone_lora": false,
137
+ "freeze_encoder": false,
138
+ "license": "Apache-2.0",
139
+ "model_name": "RFDETRMedium"
140
+ },
141
+ "model_config_type": "RFDETRMediumConfig",
142
+ "class_names": [
143
+ "Bicycle",
144
+ "Boat",
145
+ "Bottle",
146
+ "Bus",
147
+ "Car",
148
+ "Cat",
149
+ "Chair",
150
+ "Cup",
151
+ "Dog",
152
+ "Motorbike",
153
+ "People",
154
+ "Table"
155
+ ],
156
+ "num_classes": 12
157
+ }
exdark_rfdetr-medium_showcase.jpg ADDED

Git LFS Details

  • SHA256: 4a818e26563c12d65c71d9dd78031fa87849f9dd5089e155f7f1776bd620332a
  • Pointer size: 131 Bytes
  • Size of remote file: 867 kB
metrics.csv ADDED
The diff for this file is too large to render. See raw diff