dronefreak commited on
Commit
a1e6b0b
·
verified ·
1 Parent(s): 13088e3

Upload 9 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,9 @@ 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
+ BoxF1_curve.png filter=lfs diff=lfs merge=lfs -text
37
+ BoxP_curve.png filter=lfs diff=lfs merge=lfs -text
38
+ BoxPR_curve.png filter=lfs diff=lfs merge=lfs -text
39
+ BoxR_curve.png filter=lfs diff=lfs merge=lfs -text
40
+ confusion_matrix.png filter=lfs diff=lfs merge=lfs -text
41
+ visdrone_showcase.gif filter=lfs diff=lfs merge=lfs -text
BoxF1_curve.png ADDED

Git LFS Details

  • SHA256: 866233b2f1e7335d95b720342e47fc716248a37285ce9ecd0719e6001542bfb7
  • Pointer size: 131 Bytes
  • Size of remote file: 315 kB
BoxPR_curve.png ADDED

Git LFS Details

  • SHA256: 689cffd578a55755b9ace7a51f487fafbd417efe72d6ec7bdf86255ad8811e9d
  • Pointer size: 131 Bytes
  • Size of remote file: 337 kB
BoxP_curve.png ADDED

Git LFS Details

  • SHA256: 9413d959fc1a99f6d89db98ca75c08d57130b9782567882c778e3db416ca4749
  • Pointer size: 131 Bytes
  • Size of remote file: 404 kB
BoxR_curve.png ADDED

Git LFS Details

  • SHA256: 3ba20648396402dd5593975245ff93db05c131e7011c15c8329b1dee3c3a54f5
  • Pointer size: 131 Bytes
  • Size of remote file: 294 kB
README.md CHANGED
@@ -1,3 +1,313 @@
1
  ---
2
  license: agpl-3.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: agpl-3.0
3
+
4
+ pipeline_tag: object-detection
5
+
6
+ library_name: ultralytics
7
+
8
+ datasets:
9
+ - Voxel51/VisDrone2019-DET
10
+
11
+ tags:
12
+ - object-detection
13
+ - aerial-imagery
14
+ - drone
15
+ - visdrone
16
+ - ultralytics
17
+ - pytorch
18
+ - computer-vision
19
+
20
+ metrics:
21
+ - map50
22
+ - map50-95
23
+ - precision
24
+ - recall
25
+ - f1
26
+
27
+ base_model: "Ultralytics/YOLOv9"
28
  ---
29
+
30
+
31
+ # YOLOv9t Finetuned on VisDrone
32
+
33
+ Fine-tuned YOLOv9t object detector for aerial imagery using the VisDrone benchmark dataset.
34
+
35
+ This model is part of the **VisDrone Detection Model Zoo**, a collection of YOLO models trained and evaluated under a common pipeline for aerial object detection.
36
+
37
+ ## Detection Showcase
38
+
39
+ <p align="center">
40
+ <img src="visdrone_showcase.gif" alt="VisDrone Detection Demo">
41
+ </p>
42
+
43
+ ---
44
+
45
+ ## Performance
46
+
47
+ | Metric | Score (%) |
48
+ | ---------- | --------------- |
49
+ | mAP@50 | 29.09 |
50
+ | mAP@50-95 | 16.22 |
51
+ | Precision | 42.57 |
52
+ | Recall | 32.66 |
53
+ | F1 Score | 36.96 |
54
+ | Parameters | 2.1M |
55
+ | FLOPs | 8.5B |
56
+
57
+ ---
58
+
59
+ ## Evaluation Protocol
60
+
61
+ Metrics reported in this model card are computed on the VisDrone test set with ground-truth annotations available for evaluation.
62
+
63
+ ---
64
+
65
+ ## VisDrone Model Zoo
66
+
67
+ | Rank | Model | mAP@50 | mAP@50-95 | Precision | Recall |
68
+ | -------------------------- | -------------------- | ------------- | --------------- | ----------------- | -------------- |
69
+ | | | | | | |
70
+ | 1 | YOLOv9e | 40.02 | 23.73 | 54.78 | 42.42 |
71
+ | | | | | | |
72
+ | 2 | YOLOv11x | 38.44 | 22.6 | 52.41 | 41.43 |
73
+ | | | | | | |
74
+ | 3 | YOLOv26x | 38.33 | 22.48 | 52.91 | 41.06 |
75
+ | | | | | | |
76
+ | 4 | YOLOv11l | 37.14 | 21.85 | 51.87 | 40.33 |
77
+ | | | | | | |
78
+ | 5 | YOLOv10x | 37.24 | 21.81 | 52.59 | 39.84 |
79
+ | | | | | | |
80
+ | 6 | YOLOv26l | 37.65 | 21.75 | 51.6 | 40.42 |
81
+ | | | | | | |
82
+ | 7 | YOLOv9c | 37.22 | 21.73 | 51.99 | 39.77 |
83
+ | | | | | | |
84
+ | 8 | YOLOv8x | 36.81 | 21.52 | 51.91 | 39.78 |
85
+ | | | | | | |
86
+ | 9 | YOLOv26m | 36.67 | 21.22 | 51.03 | 39.79 |
87
+ | | | | | | |
88
+ | 10 | YOLOv10l | 35.95 | 21.09 | 52.13 | 38.48 |
89
+ | | | | | | |
90
+ | 11 | YOLOv11m | 36.35 | 21.02 | 50.24 | 39.46 |
91
+ | | | | | | |
92
+ | 12 | YOLOv9m | 36.19 | 20.95 | 51.05 | 39.12 |
93
+ | | | | | | |
94
+ | 13 | YOLOv8m | 34.39 | 19.95 | 48.18 | 38.2 |
95
+ | | | | | | |
96
+ | 14 | YOLOv9s | 33.52 | 19.26 | 46.16 | 37.43 |
97
+ | | | | | | |
98
+ | 15 | YOLOv11s | 32.3 | 18.47 | 45.49 | 35.31 |
99
+ | | | | | | |
100
+ | 16 | YOLOv8s | 31.95 | 18.24 | 45.99 | 35.49 |
101
+ | | | | | | |
102
+ | 17 | YOLOv26s | 32.1 | 18.06 | 45.75 | 35.05 |
103
+ | | | | | | |
104
+ | 18 | YOLOv9t | 29.09 | 16.22 | 42.57 | 32.66 |
105
+ | | | | | | |
106
+ | 19 | YOLOv8n | 28.18 | 15.77 | 40.86 | 31.81 |
107
+ | | | | | | |
108
+ | 20 | YOLOv11n | 27.59 | 15.46 | 39.58 | 31.74 |
109
+ | | | | | | |
110
+ | 21 | YOLOv10n | 27.65 | 15.32 | 41.02 | 31.68 |
111
+ | | | | | | |
112
+ | 22 | YOLOv26n | 26.73 | 14.64 | 38.6 | 31.14 |
113
+ | | | | | | |
114
+ | 23 | rt_detr_l | 21.68 | 9.34 | 35.76 | 26.3 |
115
+ | | | | | | |
116
+
117
+ ---
118
+
119
+ ## Per-Class Performance
120
+
121
+ | Class | mAP@50 | mAP@50-95 |
122
+ | -------------------------- | --------------- | ----------------- |
123
+ | | | |
124
+ | pedestrian | 22.93 | 8.61 |
125
+ | | | |
126
+ | people | 13.03 | 3.99 |
127
+ | | | |
128
+ | bicycle | 7.61 | 2.75 |
129
+ | | | |
130
+ | car | 68.05 | 41.34 |
131
+ | | | |
132
+ | van | 32.6 | 20.72 |
133
+ | | | |
134
+ | truck | 37.52 | 23.79 |
135
+ | | | |
136
+ | tricycle | 13.17 | 6.64 |
137
+ | | | |
138
+ | awning-tricycle | 16.5 | 8.17 |
139
+ | | | |
140
+ | bus | 53.62 | 36.49 |
141
+ | | | |
142
+ | motor | 25.89 | 9.75 |
143
+ | | | |
144
+
145
+ ---
146
+
147
+ ## Evaluation Visualizations
148
+
149
+ ### Precision-Recall Curve
150
+
151
+ ![PR Curve](BoxPR_curve.png)
152
+
153
+ ### F1 Curve
154
+
155
+ ![F1 Curve](BoxF1_curve.png)
156
+
157
+ ### Confusion Matrix
158
+
159
+ ![Confusion Matrix](confusion_matrix.png)
160
+
161
+ ---
162
+
163
+ ## Dataset
164
+
165
+ VisDrone is a large-scale benchmark for object detection in aerial imagery captured from unmanned aerial vehicles (UAVs).
166
+
167
+ The dataset contains diverse scenes including:
168
+
169
+ * Urban environments
170
+ * Residential areas
171
+ * Traffic intersections
172
+ * Crowded pedestrian regions
173
+
174
+ ### Classes
175
+
176
+ * pedestrian
177
+ * people
178
+ * bicycle
179
+ * car
180
+ * van
181
+ * truck
182
+ * tricycle
183
+ * awning-tricycle
184
+ * bus
185
+ * motor
186
+
187
+ ---
188
+
189
+ ## Usage
190
+
191
+ ### Install Dependencies
192
+
193
+ ```bash
194
+ pip install ultralytics huggingface_hub
195
+ ```
196
+
197
+ ### Load Model from Hugging Face
198
+
199
+ ```python
200
+ from huggingface_hub import hf_hub_download
201
+ from ultralytics import YOLO
202
+
203
+ weights = hf_hub_download(
204
+ repo_id="dronefreak/yolov9t-visdrone",
205
+ filename="best.pt"
206
+ )
207
+
208
+ model = YOLO(weights)
209
+ ```
210
+
211
+ ### Run Inference
212
+
213
+ ```python
214
+ results = model.predict(
215
+ source="image.jpg",
216
+ conf=0.25
217
+ )
218
+
219
+ results[0].show()
220
+ ```
221
+
222
+ ---
223
+
224
+ ## Training Configuration
225
+
226
+ | Setting | Value |
227
+ | ---------------- | ------------------------------- |
228
+ | Epochs | 300 |
229
+ | Dataset | VisDrone2019-DET |
230
+ | Framework | Ultralytics YOLO |
231
+ | Training Toolkit | VisDrone Dataset Python Toolkit |
232
+
233
+ ---
234
+
235
+ ## Repository Contents
236
+
237
+ ```text
238
+ best.pt
239
+ results.csv
240
+ args.yaml
241
+ BoxPR_curve.png
242
+ BoxF1_curve.png
243
+ confusion_matrix.png
244
+ assets/visdrone_showcase.gif
245
+ README.md
246
+ ```
247
+
248
+ ---
249
+
250
+ ## Related Resources
251
+
252
+ * VisDrone Detection Model Zoo (Hugging Face Collection)
253
+ * VisDrone Dataset Python Toolkit: https://github.com/dronefreak/VisDrone-dataset-python-toolkit
254
+ * VisDrone Dataset: https://github.com/VisDrone/VisDrone-Dataset
255
+
256
+ ---
257
+
258
+ ## Training Framework
259
+
260
+ These models were trained using the VisDrone Dataset Python Toolkit, an open-source framework for aerial object detection research and benchmarking on the VisDrone dataset.
261
+
262
+ Features include:
263
+
264
+ * Dataset preparation and conversion utilities
265
+ * Training and evaluation pipelines
266
+ * Detection benchmarking
267
+ * Visualization tools
268
+ * Support for multiple YOLO model families
269
+
270
+ Repository:
271
+
272
+ https://github.com/dronefreak/VisDrone-dataset-python-toolkit
273
+
274
+ If you find these models useful, please consider starring the repository.
275
+
276
+ ---
277
+
278
+ ## Known Limitations
279
+
280
+ Performance may degrade in:
281
+
282
+ * Extremely dense crowds
283
+ * Heavy occlusions
284
+ * Severe motion blur
285
+ * Very small objects occupying only a few pixels
286
+ * Night-time or low-light aerial imagery
287
+
288
+ ---
289
+
290
+ ## Citation
291
+
292
+ If you use this model in your research, please consider citing:
293
+
294
+ 1. The VisDrone dataset
295
+ 2. The original YOLO architecture
296
+ 3. The VisDrone Detection Toolkit
297
+
298
+ ```bibtex
299
+ @article{visdrone2019,
300
+ title={Vision Meets Drones: A Challenge},
301
+ author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Ling, Haibin and Hu, Qinghua},
302
+ journal={International Journal of Computer Vision},
303
+ year={2021}
304
+ }
305
+
306
+ @software{Saksena_VisDrone_Detection_Toolkit_2025,
307
+ author = {Saksena, Saumya Kumaar},
308
+ title = {VisDrone Detection Toolkit: Modern PyTorch Implementation for Aerial Object Detection},
309
+ url = {https://github.com/dronefreak/VisDrone-dataset-python-toolkit},
310
+ version = {2.0.0},
311
+ year = {2025}
312
+ }
313
+ ```
args.yaml ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ task: detect
2
+ mode: train
3
+ model: yolov9t.pt
4
+ data: /tmp/visdrone_yolo_k1cxiyad/dataset.yaml
5
+ epochs: 300
6
+ time: null
7
+ patience: 100
8
+ batch: 16
9
+ imgsz: 640
10
+ save: true
11
+ save_period: -1
12
+ cache: false
13
+ device: '0'
14
+ workers: 4
15
+ project: /home/saumya.saksena/projects/VisDrone-dataset-python-toolkit/outputs/yolov9t_300ep
16
+ name: yolov9t
17
+ exist_ok: true
18
+ pretrained: true
19
+ optimizer: auto
20
+ verbose: true
21
+ seed: 0
22
+ deterministic: true
23
+ single_cls: false
24
+ rect: false
25
+ cos_lr: false
26
+ close_mosaic: 10
27
+ resume: false
28
+ amp: true
29
+ fraction: 1.0
30
+ profile: false
31
+ freeze: null
32
+ multi_scale: 0.0
33
+ compile: false
34
+ overlap_mask: true
35
+ mask_ratio: 4
36
+ dropout: 0.0
37
+ val: true
38
+ split: val
39
+ save_json: false
40
+ conf: null
41
+ iou: 0.7
42
+ max_det: 300
43
+ half: false
44
+ dnn: false
45
+ plots: true
46
+ end2end: null
47
+ source: null
48
+ vid_stride: 1
49
+ stream_buffer: false
50
+ visualize: false
51
+ augment: false
52
+ agnostic_nms: false
53
+ classes: null
54
+ retina_masks: false
55
+ embed: null
56
+ show: false
57
+ save_frames: false
58
+ save_txt: false
59
+ save_conf: false
60
+ save_crop: false
61
+ show_labels: true
62
+ show_conf: true
63
+ show_boxes: true
64
+ line_width: null
65
+ format: torchscript
66
+ keras: false
67
+ optimize: false
68
+ int8: false
69
+ dynamic: false
70
+ simplify: true
71
+ opset: null
72
+ workspace: null
73
+ nms: false
74
+ lr0: 0.005
75
+ lrf: 0.01
76
+ momentum: 0.937
77
+ weight_decay: 0.0005
78
+ warmup_epochs: 3.0
79
+ warmup_momentum: 0.8
80
+ warmup_bias_lr: 0.1
81
+ box: 7.5
82
+ cls: 0.5
83
+ cls_pw: 0.0
84
+ dfl: 1.5
85
+ pose: 12.0
86
+ kobj: 1.0
87
+ rle: 1.0
88
+ angle: 1.0
89
+ nbs: 64
90
+ hsv_h: 0.015
91
+ hsv_s: 0.7
92
+ hsv_v: 0.4
93
+ degrees: 0.0
94
+ translate: 0.1
95
+ scale: 0.5
96
+ shear: 0.0
97
+ perspective: 0.0
98
+ flipud: 0.0
99
+ fliplr: 0.5
100
+ bgr: 0.0
101
+ mosaic: 1.0
102
+ mixup: 0.0
103
+ cutmix: 0.0
104
+ copy_paste: 0.0
105
+ copy_paste_mode: flip
106
+ auto_augment: randaugment
107
+ erasing: 0.4
108
+ cfg: null
109
+ tracker: botsort.yaml
110
+ save_dir: /home/saumya.saksena/projects/VisDrone-dataset-python-toolkit/outputs/yolov9t_300ep/yolov9t
best.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6402a987cafd9662c6ce15e8329e1388f69bb777831609864130a20c20922faa
3
+ size 4663817
confusion_matrix.png ADDED

Git LFS Details

  • SHA256: 02d8c643a942b782c5a0f1d1d30ec9601586d11af2246eaf8a62cfdb4ad360bc
  • Pointer size: 131 Bytes
  • Size of remote file: 284 kB
visdrone_showcase.gif ADDED

Git LFS Details

  • SHA256: 88250d1d890d1231de2082a0d0cc70ef6af83b6b400be371852da377c6608367
  • Pointer size: 133 Bytes
  • Size of remote file: 85.7 MB