kperrynrel commited on
Commit
685cc79
·
verified ·
1 Parent(s): d8e45b0

Uploaded all the public panel-segmentation files

Browse files
automated_geotagging_config.py ADDED
@@ -0,0 +1,633 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ auto_scale_lr = dict(base_batch_size=16, enable=False)
2
+ backend_args = None
3
+ base_lr = 0.002
4
+ custom_hooks = [
5
+ dict(
6
+ ema_type='ExpMomentumEMA',
7
+ momentum=0.0002,
8
+ priority=49,
9
+ type='EMAHook',
10
+ update_buffers=True),
11
+ dict(
12
+ switch_epoch=280,
13
+ switch_pipeline=[
14
+ dict(backend_args=None, type='LoadImageFromFile'),
15
+ dict(
16
+ poly2mask=False,
17
+ type='LoadAnnotations',
18
+ with_bbox=True,
19
+ with_mask=True),
20
+ dict(
21
+ keep_ratio=True,
22
+ ratio_range=(
23
+ 0.1,
24
+ 2.0,
25
+ ),
26
+ scale=(
27
+ 640,
28
+ 640,
29
+ ),
30
+ type='RandomResize'),
31
+ dict(
32
+ allow_negative_crop=True,
33
+ crop_size=(
34
+ 640,
35
+ 640,
36
+ ),
37
+ recompute_bbox=True,
38
+ type='RandomCrop'),
39
+ dict(min_gt_bbox_wh=(
40
+ 1,
41
+ 1,
42
+ ), type='FilterAnnotations'),
43
+ dict(type='YOLOXHSVRandomAug'),
44
+ dict(prob=0.5, type='RandomFlip'),
45
+ dict(
46
+ pad_val=dict(img=(
47
+ 114,
48
+ 114,
49
+ 114,
50
+ )),
51
+ size=(
52
+ 640,
53
+ 640,
54
+ ),
55
+ type='Pad'),
56
+ dict(type='PackDetInputs'),
57
+ ],
58
+ type='PipelineSwitchHook'),
59
+ ]
60
+ data_root = '/kfs2/projects/pvfleets24/repos/cv-dl-framework'
61
+ dataset_type = 'CocoDataset'
62
+ default_hooks = dict(
63
+ checkpoint=dict(
64
+ rule='greater', save_best='coco/bbox_mAP_50', type='CheckpointHook'),
65
+ logger=dict(interval=50, type='LoggerHook'),
66
+ param_scheduler=dict(type='ParamSchedulerHook'),
67
+ sampler_seed=dict(type='DistSamplerSeedHook'),
68
+ timer=dict(type='IterTimerHook'),
69
+ visualization=dict(type='DetVisualizationHook'))
70
+ default_scope = 'mmdet'
71
+ env_cfg = dict(
72
+ cudnn_benchmark=False,
73
+ dist_cfg=dict(backend='nccl'),
74
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
75
+ img_scales = [
76
+ (
77
+ 640,
78
+ 640,
79
+ ),
80
+ (
81
+ 320,
82
+ 320,
83
+ ),
84
+ (
85
+ 960,
86
+ 960,
87
+ ),
88
+ ]
89
+ interval = 10
90
+ launcher = 'none'
91
+ load_from = '/17_10_2025_14_11_24/best_coco_bbox_mAP_50_epoch_300.pth'
92
+ log_level = 'INFO'
93
+ log_processor = dict(by_epoch=True, type='LogProcessor', window_size=50)
94
+ max_epochs = 300
95
+ metainfo = dict(
96
+ classes=(
97
+ 'tracker-row',
98
+ 'inverter',
99
+ 'dual-axis-tracker',
100
+ 'fix-tilt-row',
101
+ ))
102
+ model = dict(
103
+ backbone=dict(
104
+ act_cfg=dict(inplace=True, type='SiLU'),
105
+ arch='P5',
106
+ channel_attention=True,
107
+ deepen_factor=1.33,
108
+ expand_ratio=0.5,
109
+ norm_cfg=dict(type='SyncBN'),
110
+ type='CSPNeXt',
111
+ widen_factor=1.25),
112
+ bbox_head=dict(
113
+ act_cfg=dict(inplace=True, type='SiLU'),
114
+ anchor_generator=dict(
115
+ offset=0, strides=[
116
+ 8,
117
+ 16,
118
+ 32,
119
+ ], type='MlvlPointGenerator'),
120
+ bbox_coder=dict(type='DistancePointBBoxCoder'),
121
+ feat_channels=320,
122
+ in_channels=320,
123
+ loss_bbox=dict(loss_weight=2.0, type='GIoULoss'),
124
+ loss_cls=dict(
125
+ beta=2.0,
126
+ loss_weight=1.0,
127
+ type='QualityFocalLoss',
128
+ use_sigmoid=True),
129
+ loss_mask=dict(
130
+ eps=5e-06, loss_weight=2.0, reduction='mean', type='DiceLoss'),
131
+ norm_cfg=dict(requires_grad=True, type='SyncBN'),
132
+ num_classes=4,
133
+ pred_kernel_size=1,
134
+ share_conv=True,
135
+ stacked_convs=2,
136
+ test_cfg=dict(
137
+ mask_thr_binary=0.5,
138
+ max_per_img=100,
139
+ min_bbox_size=0,
140
+ nms=dict(iou_threshold=0.6, type='nms'),
141
+ nms_pre=1000,
142
+ score_thr=0.05),
143
+ train_cfg=dict(
144
+ allowed_border=-1,
145
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
146
+ debug=False,
147
+ pos_weight=-1),
148
+ type='RTMDetInsSepBNHead'),
149
+ data_preprocessor=dict(
150
+ batch_augments=None,
151
+ bgr_to_rgb=False,
152
+ mean=[
153
+ 103.53,
154
+ 116.28,
155
+ 123.675,
156
+ ],
157
+ std=[
158
+ 57.375,
159
+ 57.12,
160
+ 58.395,
161
+ ],
162
+ type='DetDataPreprocessor'),
163
+ neck=dict(
164
+ act_cfg=dict(inplace=True, type='SiLU'),
165
+ expand_ratio=0.5,
166
+ in_channels=[
167
+ 320,
168
+ 640,
169
+ 1280,
170
+ ],
171
+ norm_cfg=dict(type='SyncBN'),
172
+ num_csp_blocks=4,
173
+ out_channels=320,
174
+ type='CSPNeXtPAFPN'),
175
+ test_cfg=dict(
176
+ mask_thr_binary=0.5,
177
+ max_per_img=100,
178
+ min_bbox_size=0,
179
+ nms=dict(iou_threshold=0.6, type='nms'),
180
+ nms_pre=1000,
181
+ score_thr=0.05),
182
+ train_cfg=dict(
183
+ allowed_border=-1,
184
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
185
+ debug=False,
186
+ pos_weight=-1),
187
+ type='RTMDet')
188
+ optim_wrapper = dict(
189
+ optimizer=dict(lr=0.001, type='AdamW', weight_decay=0.05),
190
+ paramwise_cfg=dict(
191
+ bias_decay_mult=0, bypass_duplicate=True, norm_decay_mult=0),
192
+ type='OptimWrapper')
193
+ param_scheduler = [
194
+ dict(
195
+ begin=0, by_epoch=False, end=1000, start_factor=1e-05,
196
+ type='LinearLR'),
197
+ dict(
198
+ T_max=150,
199
+ begin=150,
200
+ by_epoch=True,
201
+ convert_to_iter_based=True,
202
+ end=300,
203
+ eta_min=0.0001,
204
+ type='CosineAnnealingLR'),
205
+ ]
206
+ resume = False
207
+ stage2_num_epochs = 20
208
+ test_cfg = dict(type='TestLoop')
209
+ test_dataloader = dict(
210
+ batch_size=5,
211
+ dataset=dict(
212
+ ann_file='/cv-dl-framework/test/label_json.json',
213
+ backend_args=None,
214
+ data_prefix=dict(
215
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/'
216
+ ),
217
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
218
+ metainfo=dict(
219
+ classes=(
220
+ 'tracker-row',
221
+ 'inverter',
222
+ 'dual-axis-tracker',
223
+ 'fix-tilt-row',
224
+ )),
225
+ pipeline=[
226
+ dict(backend_args=None, type='LoadImageFromFile'),
227
+ dict(keep_ratio=True, scale=(
228
+ 640,
229
+ 640,
230
+ ), type='Resize'),
231
+ dict(
232
+ pad_val=dict(img=(
233
+ 114,
234
+ 114,
235
+ 114,
236
+ )),
237
+ size=(
238
+ 640,
239
+ 640,
240
+ ),
241
+ type='Pad'),
242
+ dict(type='LoadAnnotations', with_bbox=True),
243
+ dict(
244
+ meta_keys=(
245
+ 'img_id',
246
+ 'img_path',
247
+ 'ori_shape',
248
+ 'img_shape',
249
+ 'scale_factor',
250
+ ),
251
+ type='PackDetInputs'),
252
+ ],
253
+ test_mode=True,
254
+ type='CocoDataset'),
255
+ drop_last=False,
256
+ num_workers=10,
257
+ persistent_workers=True,
258
+ sampler=dict(shuffle=False, type='DefaultSampler'))
259
+ test_evaluator = dict(
260
+ ann_file='/cv-dl-framework/test/label_json.json',
261
+ backend_args=None,
262
+ format_only=False,
263
+ metric=[
264
+ 'bbox',
265
+ 'segm',
266
+ ],
267
+ proposal_nums=(
268
+ 100,
269
+ 1,
270
+ 10,
271
+ ),
272
+ type='CocoMetric')
273
+ test_pipeline = [
274
+ dict(backend_args=None, type='LoadImageFromFile'),
275
+ dict(keep_ratio=True, scale=(
276
+ 640,
277
+ 640,
278
+ ), type='Resize'),
279
+ dict(pad_val=dict(img=(
280
+ 114,
281
+ 114,
282
+ 114,
283
+ )), size=(
284
+ 640,
285
+ 640,
286
+ ), type='Pad'),
287
+ dict(type='LoadAnnotations', with_bbox=True),
288
+ dict(
289
+ meta_keys=(
290
+ 'img_id',
291
+ 'img_path',
292
+ 'ori_shape',
293
+ 'img_shape',
294
+ 'scale_factor',
295
+ ),
296
+ type='PackDetInputs'),
297
+ ]
298
+ train_cfg = dict(
299
+ dynamic_intervals=[
300
+ (
301
+ 280,
302
+ 1,
303
+ ),
304
+ ],
305
+ max_epochs=300,
306
+ type='EpochBasedTrainLoop',
307
+ val_interval=3)
308
+ train_dataloader = dict(
309
+ batch_sampler=None,
310
+ batch_size=4,
311
+ dataset=dict(
312
+ ann_file='/cv-dl-framework/train/label_json.json',
313
+ backend_args=None,
314
+ data_prefix=dict(
315
+ img='/cv-dl-framework/train/images/'
316
+ ),
317
+ data_root='/cv-dl-framework',
318
+ filter_cfg=dict(filter_empty_gt=True, min_size=32),
319
+ metainfo=dict(
320
+ classes=(
321
+ 'tracker-row',
322
+ 'inverter',
323
+ 'dual-axis-tracker',
324
+ 'fix-tilt-row',
325
+ )),
326
+ pipeline=[
327
+ dict(backend_args=None, type='LoadImageFromFile'),
328
+ dict(
329
+ poly2mask=False,
330
+ type='LoadAnnotations',
331
+ with_bbox=True,
332
+ with_mask=True),
333
+ dict(img_scale=(
334
+ 640,
335
+ 640,
336
+ ), pad_val=114.0, type='CachedMosaic'),
337
+ dict(
338
+ keep_ratio=True,
339
+ ratio_range=(
340
+ 0.1,
341
+ 2.0,
342
+ ),
343
+ scale=(
344
+ 1280,
345
+ 1280,
346
+ ),
347
+ type='RandomResize'),
348
+ dict(
349
+ allow_negative_crop=True,
350
+ crop_size=(
351
+ 640,
352
+ 640,
353
+ ),
354
+ recompute_bbox=True,
355
+ type='RandomCrop'),
356
+ dict(type='YOLOXHSVRandomAug'),
357
+ dict(prob=0.5, type='RandomFlip'),
358
+ dict(
359
+ pad_val=dict(img=(
360
+ 114,
361
+ 114,
362
+ 114,
363
+ )),
364
+ size=(
365
+ 640,
366
+ 640,
367
+ ),
368
+ type='Pad'),
369
+ dict(
370
+ img_scale=(
371
+ 640,
372
+ 640,
373
+ ),
374
+ max_cached_images=20,
375
+ pad_val=(
376
+ 114,
377
+ 114,
378
+ 114,
379
+ ),
380
+ ratio_range=(
381
+ 1.0,
382
+ 1.0,
383
+ ),
384
+ type='CachedMixUp'),
385
+ dict(min_gt_bbox_wh=(
386
+ 1,
387
+ 1,
388
+ ), type='FilterAnnotations'),
389
+ dict(type='PackDetInputs'),
390
+ ],
391
+ type='CocoDataset'),
392
+ num_workers=10,
393
+ persistent_workers=True,
394
+ pin_memory=True,
395
+ sampler=dict(shuffle=True, type='DefaultSampler'))
396
+ train_pipeline = [
397
+ dict(backend_args=None, type='LoadImageFromFile'),
398
+ dict(
399
+ poly2mask=False,
400
+ type='LoadAnnotations',
401
+ with_bbox=True,
402
+ with_mask=True),
403
+ dict(img_scale=(
404
+ 640,
405
+ 640,
406
+ ), pad_val=114.0, type='CachedMosaic'),
407
+ dict(
408
+ keep_ratio=True,
409
+ ratio_range=(
410
+ 0.1,
411
+ 2.0,
412
+ ),
413
+ scale=(
414
+ 1280,
415
+ 1280,
416
+ ),
417
+ type='RandomResize'),
418
+ dict(
419
+ allow_negative_crop=True,
420
+ crop_size=(
421
+ 640,
422
+ 640,
423
+ ),
424
+ recompute_bbox=True,
425
+ type='RandomCrop'),
426
+ dict(type='YOLOXHSVRandomAug'),
427
+ dict(prob=0.5, type='RandomFlip'),
428
+ dict(pad_val=dict(img=(
429
+ 114,
430
+ 114,
431
+ 114,
432
+ )), size=(
433
+ 640,
434
+ 640,
435
+ ), type='Pad'),
436
+ dict(
437
+ img_scale=(
438
+ 640,
439
+ 640,
440
+ ),
441
+ max_cached_images=20,
442
+ pad_val=(
443
+ 114,
444
+ 114,
445
+ 114,
446
+ ),
447
+ ratio_range=(
448
+ 1.0,
449
+ 1.0,
450
+ ),
451
+ type='CachedMixUp'),
452
+ dict(min_gt_bbox_wh=(
453
+ 1,
454
+ 1,
455
+ ), type='FilterAnnotations'),
456
+ dict(type='PackDetInputs'),
457
+ ]
458
+ train_pipeline_stage2 = [
459
+ dict(backend_args=None, type='LoadImageFromFile'),
460
+ dict(
461
+ poly2mask=False,
462
+ type='LoadAnnotations',
463
+ with_bbox=True,
464
+ with_mask=True),
465
+ dict(
466
+ keep_ratio=True,
467
+ ratio_range=(
468
+ 0.1,
469
+ 2.0,
470
+ ),
471
+ scale=(
472
+ 640,
473
+ 640,
474
+ ),
475
+ type='RandomResize'),
476
+ dict(
477
+ allow_negative_crop=True,
478
+ crop_size=(
479
+ 640,
480
+ 640,
481
+ ),
482
+ recompute_bbox=True,
483
+ type='RandomCrop'),
484
+ dict(min_gt_bbox_wh=(
485
+ 1,
486
+ 1,
487
+ ), type='FilterAnnotations'),
488
+ dict(type='YOLOXHSVRandomAug'),
489
+ dict(prob=0.5, type='RandomFlip'),
490
+ dict(pad_val=dict(img=(
491
+ 114,
492
+ 114,
493
+ 114,
494
+ )), size=(
495
+ 640,
496
+ 640,
497
+ ), type='Pad'),
498
+ dict(type='PackDetInputs'),
499
+ ]
500
+ tta_model = dict(
501
+ tta_cfg=dict(max_per_img=100, nms=dict(iou_threshold=0.6, type='nms')),
502
+ type='DetTTAModel')
503
+ tta_pipeline = [
504
+ dict(backend_args=None, type='LoadImageFromFile'),
505
+ dict(
506
+ transforms=[
507
+ [
508
+ dict(keep_ratio=True, scale=(
509
+ 640,
510
+ 640,
511
+ ), type='Resize'),
512
+ dict(keep_ratio=True, scale=(
513
+ 320,
514
+ 320,
515
+ ), type='Resize'),
516
+ dict(keep_ratio=True, scale=(
517
+ 960,
518
+ 960,
519
+ ), type='Resize'),
520
+ ],
521
+ [
522
+ dict(prob=1.0, type='RandomFlip'),
523
+ dict(prob=0.0, type='RandomFlip'),
524
+ ],
525
+ [
526
+ dict(
527
+ pad_val=dict(img=(
528
+ 114,
529
+ 114,
530
+ 114,
531
+ )),
532
+ size=(
533
+ 960,
534
+ 960,
535
+ ),
536
+ type='Pad'),
537
+ ],
538
+ [
539
+ dict(type='LoadAnnotations', with_bbox=True),
540
+ ],
541
+ [
542
+ dict(
543
+ meta_keys=(
544
+ 'img_id',
545
+ 'img_path',
546
+ 'ori_shape',
547
+ 'img_shape',
548
+ 'scale_factor',
549
+ 'flip',
550
+ 'flip_direction',
551
+ ),
552
+ type='PackDetInputs'),
553
+ ],
554
+ ],
555
+ type='TestTimeAug'),
556
+ ]
557
+ val_cfg = dict(type='ValLoop')
558
+ val_dataloader = dict(
559
+ batch_size=5,
560
+ dataset=dict(
561
+ ann_file='/cv-dl-framework/test/label_json.json',
562
+ backend_args=None,
563
+ data_prefix=dict(
564
+ img='/cv-dl-framework/test/images/'
565
+ ),
566
+ data_root='/cv-dl-framework',
567
+ metainfo=dict(
568
+ classes=(
569
+ 'tracker-row',
570
+ 'inverter',
571
+ 'dual-axis-tracker',
572
+ 'fix-tilt-row',
573
+ )),
574
+ pipeline=[
575
+ dict(backend_args=None, type='LoadImageFromFile'),
576
+ dict(keep_ratio=True, scale=(
577
+ 640,
578
+ 640,
579
+ ), type='Resize'),
580
+ dict(
581
+ pad_val=dict(img=(
582
+ 114,
583
+ 114,
584
+ 114,
585
+ )),
586
+ size=(
587
+ 640,
588
+ 640,
589
+ ),
590
+ type='Pad'),
591
+ dict(type='LoadAnnotations', with_bbox=True),
592
+ dict(
593
+ meta_keys=(
594
+ 'img_id',
595
+ 'img_path',
596
+ 'ori_shape',
597
+ 'img_shape',
598
+ 'scale_factor',
599
+ ),
600
+ type='PackDetInputs'),
601
+ ],
602
+ test_mode=True,
603
+ type='CocoDataset'),
604
+ drop_last=False,
605
+ num_workers=10,
606
+ persistent_workers=True,
607
+ sampler=dict(shuffle=False, type='DefaultSampler'))
608
+ val_evaluator = dict(
609
+ ann_file='/cv-dl-framework/test/label_json.json',
610
+ backend_args=None,
611
+ format_only=False,
612
+ metric=[
613
+ 'bbox',
614
+ 'segm',
615
+ ],
616
+ proposal_nums=(
617
+ 100,
618
+ 1,
619
+ 10,
620
+ ),
621
+ type='CocoMetric')
622
+ vis_backends = [
623
+ dict(type='LocalVisBackend'),
624
+ ]
625
+ visualizer = dict(
626
+ name='visualizer',
627
+ type='DetLocalVisualizer',
628
+ vis_backends=[
629
+ dict(
630
+ save_dir='/17_10_2025_14_11_24',
631
+ type='LocalVisBackend'),
632
+ ])
633
+ work_dir = '/17_10_2025_14_11_24'
automated_geotagging_model.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3cc8086021d8884d06d68208c0cb28cf15f02af2399ee284155cb2ef524249ec
3
+ size 873105261
hail_config.py ADDED
@@ -0,0 +1,632 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ auto_scale_lr = dict(base_batch_size=16, enable=False)
2
+ backend_args = None
3
+ base_lr = 0.002
4
+ custom_hooks = [
5
+ dict(
6
+ ema_type='ExpMomentumEMA',
7
+ momentum=0.0002,
8
+ priority=49,
9
+ type='EMAHook',
10
+ update_buffers=True),
11
+ dict(
12
+ switch_epoch=280,
13
+ switch_pipeline=[
14
+ dict(backend_args=None, type='LoadImageFromFile'),
15
+ dict(
16
+ poly2mask=False,
17
+ type='LoadAnnotations',
18
+ with_bbox=True,
19
+ with_mask=True),
20
+ dict(
21
+ keep_ratio=True,
22
+ ratio_range=(
23
+ 0.1,
24
+ 2.0,
25
+ ),
26
+ scale=(
27
+ 640,
28
+ 640,
29
+ ),
30
+ type='RandomResize'),
31
+ dict(
32
+ allow_negative_crop=True,
33
+ crop_size=(
34
+ 640,
35
+ 640,
36
+ ),
37
+ recompute_bbox=True,
38
+ type='RandomCrop'),
39
+ dict(min_gt_bbox_wh=(
40
+ 1,
41
+ 1,
42
+ ), type='FilterAnnotations'),
43
+ dict(type='YOLOXHSVRandomAug'),
44
+ dict(prob=0.5, type='RandomFlip'),
45
+ dict(
46
+ pad_val=dict(img=(
47
+ 114,
48
+ 114,
49
+ 114,
50
+ )),
51
+ size=(
52
+ 640,
53
+ 640,
54
+ ),
55
+ type='Pad'),
56
+ dict(type='PackDetInputs'),
57
+ ],
58
+ type='PipelineSwitchHook'),
59
+ ]
60
+ data_root = '/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten'
61
+ dataset_type = 'CocoDataset'
62
+ default_hooks = dict(
63
+ checkpoint=dict(
64
+ rule='greater', save_best='coco/bbox_mAP_50', type='CheckpointHook'),
65
+ logger=dict(interval=50, type='LoggerHook'),
66
+ param_scheduler=dict(type='ParamSchedulerHook'),
67
+ sampler_seed=dict(type='DistSamplerSeedHook'),
68
+ timer=dict(type='IterTimerHook'),
69
+ visualization=dict(type='DetVisualizationHook'))
70
+ default_scope = 'mmdet'
71
+ env_cfg = dict(
72
+ cudnn_benchmark=False,
73
+ dist_cfg=dict(backend='nccl'),
74
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
75
+ img_scales = [
76
+ (
77
+ 640,
78
+ 640,
79
+ ),
80
+ (
81
+ 320,
82
+ 320,
83
+ ),
84
+ (
85
+ 960,
86
+ 960,
87
+ ),
88
+ ]
89
+ interval = 10
90
+ launcher = 'none'
91
+ load_from = ('/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten/runs/' +
92
+ '16_05_2025_15_06_47/best_coco_bbox_mAP_50_epoch_298.pth')
93
+ log_level = 'INFO'
94
+ log_processor = dict(by_epoch=True, type='LogProcessor', window_size=50)
95
+ max_epochs = 300
96
+ metainfo = dict(classes=(
97
+ 'damage',
98
+ 'panel',
99
+ ))
100
+ model = dict(
101
+ backbone=dict(
102
+ act_cfg=dict(inplace=True, type='SiLU'),
103
+ arch='P5',
104
+ channel_attention=True,
105
+ deepen_factor=1.33,
106
+ expand_ratio=0.5,
107
+ norm_cfg=dict(type='SyncBN'),
108
+ type='CSPNeXt',
109
+ widen_factor=1.25),
110
+ bbox_head=dict(
111
+ act_cfg=dict(inplace=True, type='SiLU'),
112
+ anchor_generator=dict(
113
+ offset=0, strides=[
114
+ 8,
115
+ 16,
116
+ 32,
117
+ ], type='MlvlPointGenerator'),
118
+ bbox_coder=dict(type='DistancePointBBoxCoder'),
119
+ feat_channels=320,
120
+ in_channels=320,
121
+ loss_bbox=dict(loss_weight=2.0, type='GIoULoss'),
122
+ loss_cls=dict(
123
+ beta=2.0,
124
+ loss_weight=1.0,
125
+ type='QualityFocalLoss',
126
+ use_sigmoid=True),
127
+ loss_mask=dict(
128
+ eps=5e-06, loss_weight=2.0, reduction='mean', type='DiceLoss'),
129
+ norm_cfg=dict(requires_grad=True, type='SyncBN'),
130
+ num_classes=2,
131
+ pred_kernel_size=1,
132
+ share_conv=True,
133
+ stacked_convs=2,
134
+ test_cfg=dict(
135
+ mask_thr_binary=0.5,
136
+ max_per_img=100,
137
+ min_bbox_size=0,
138
+ nms=dict(iou_threshold=0.6, type='nms'),
139
+ nms_pre=1000,
140
+ score_thr=0.05),
141
+ train_cfg=dict(
142
+ allowed_border=-1,
143
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
144
+ debug=False,
145
+ pos_weight=-1),
146
+ type='RTMDetInsSepBNHead'),
147
+ data_preprocessor=dict(
148
+ batch_augments=None,
149
+ bgr_to_rgb=False,
150
+ mean=[
151
+ 103.53,
152
+ 116.28,
153
+ 123.675,
154
+ ],
155
+ std=[
156
+ 57.375,
157
+ 57.12,
158
+ 58.395,
159
+ ],
160
+ type='DetDataPreprocessor'),
161
+ neck=dict(
162
+ act_cfg=dict(inplace=True, type='SiLU'),
163
+ expand_ratio=0.5,
164
+ in_channels=[
165
+ 320,
166
+ 640,
167
+ 1280,
168
+ ],
169
+ norm_cfg=dict(type='SyncBN'),
170
+ num_csp_blocks=4,
171
+ out_channels=320,
172
+ type='CSPNeXtPAFPN'),
173
+ test_cfg=dict(
174
+ mask_thr_binary=0.5,
175
+ max_per_img=100,
176
+ min_bbox_size=0,
177
+ nms=dict(iou_threshold=0.6, type='nms'),
178
+ nms_pre=1000,
179
+ score_thr=0.05),
180
+ train_cfg=dict(
181
+ allowed_border=-1,
182
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
183
+ debug=False,
184
+ pos_weight=-1),
185
+ type='RTMDet')
186
+ optim_wrapper = dict(
187
+ optimizer=dict(lr=0.002, type='AdamW', weight_decay=0.05),
188
+ paramwise_cfg=dict(
189
+ bias_decay_mult=0, bypass_duplicate=True, norm_decay_mult=0),
190
+ type='OptimWrapper')
191
+ param_scheduler = [
192
+ dict(
193
+ begin=0, by_epoch=False, end=1000, start_factor=1e-05,
194
+ type='LinearLR'),
195
+ dict(
196
+ T_max=150,
197
+ begin=150,
198
+ by_epoch=True,
199
+ convert_to_iter_based=True,
200
+ end=300,
201
+ eta_min=0.0001,
202
+ type='CosineAnnealingLR'),
203
+ ]
204
+ resume = False
205
+ stage2_num_epochs = 20
206
+ test_cfg = dict(type='TestLoop')
207
+ test_dataloader = dict(
208
+ batch_size=5,
209
+ dataset=dict(
210
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten/' +
211
+ 'test/label_json.json'),
212
+ backend_args=None,
213
+ data_prefix=dict(
214
+ img=('/kfs2/projects/pvfleets24/repos/' +
215
+ 'cv-dl-framework-kirsten/test/images/')
216
+ ),
217
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten',
218
+ metainfo=dict(classes=(
219
+ 'damage',
220
+ 'panel',
221
+ )),
222
+ pipeline=[
223
+ dict(backend_args=None, type='LoadImageFromFile'),
224
+ dict(keep_ratio=True, scale=(
225
+ 640,
226
+ 640,
227
+ ), type='Resize'),
228
+ dict(
229
+ pad_val=dict(img=(
230
+ 114,
231
+ 114,
232
+ 114,
233
+ )),
234
+ size=(
235
+ 640,
236
+ 640,
237
+ ),
238
+ type='Pad'),
239
+ dict(type='LoadAnnotations', with_bbox=True),
240
+ dict(
241
+ meta_keys=(
242
+ 'img_id',
243
+ 'img_path',
244
+ 'ori_shape',
245
+ 'img_shape',
246
+ 'scale_factor',
247
+ ),
248
+ type='PackDetInputs'),
249
+ ],
250
+ test_mode=True,
251
+ type='CocoDataset'),
252
+ drop_last=False,
253
+ num_workers=10,
254
+ persistent_workers=True,
255
+ sampler=dict(shuffle=False, type='DefaultSampler'))
256
+ test_evaluator = dict(
257
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten/' +
258
+ 'test/label_json.json'),
259
+ backend_args=None,
260
+ format_only=False,
261
+ metric=[
262
+ 'bbox',
263
+ 'segm',
264
+ ],
265
+ proposal_nums=(
266
+ 100,
267
+ 1,
268
+ 10,
269
+ ),
270
+ type='CocoMetric')
271
+ test_pipeline = [
272
+ dict(backend_args=None, type='LoadImageFromFile'),
273
+ dict(keep_ratio=True, scale=(
274
+ 640,
275
+ 640,
276
+ ), type='Resize'),
277
+ dict(pad_val=dict(img=(
278
+ 114,
279
+ 114,
280
+ 114,
281
+ )), size=(
282
+ 640,
283
+ 640,
284
+ ), type='Pad'),
285
+ dict(type='LoadAnnotations', with_bbox=True),
286
+ dict(
287
+ meta_keys=(
288
+ 'img_id',
289
+ 'img_path',
290
+ 'ori_shape',
291
+ 'img_shape',
292
+ 'scale_factor',
293
+ ),
294
+ type='PackDetInputs'),
295
+ ]
296
+ train_cfg = dict(
297
+ dynamic_intervals=[
298
+ (
299
+ 280,
300
+ 1,
301
+ ),
302
+ ],
303
+ max_epochs=300,
304
+ type='EpochBasedTrainLoop',
305
+ val_interval=3)
306
+ train_dataloader = dict(
307
+ batch_sampler=None,
308
+ batch_size=4,
309
+ dataset=dict(
310
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten/' +
311
+ 'train/label_json.json'),
312
+ backend_args=None,
313
+ data_prefix=dict(
314
+ img=('/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten/' +
315
+ 'train/images/')
316
+ ),
317
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten',
318
+ filter_cfg=dict(filter_empty_gt=True, min_size=32),
319
+ metainfo=dict(classes=(
320
+ 'damage',
321
+ 'panel',
322
+ )),
323
+ pipeline=[
324
+ dict(backend_args=None, type='LoadImageFromFile'),
325
+ dict(
326
+ poly2mask=False,
327
+ type='LoadAnnotations',
328
+ with_bbox=True,
329
+ with_mask=True),
330
+ dict(img_scale=(
331
+ 640,
332
+ 640,
333
+ ), pad_val=114.0, type='CachedMosaic'),
334
+ dict(
335
+ keep_ratio=True,
336
+ ratio_range=(
337
+ 0.1,
338
+ 2.0,
339
+ ),
340
+ scale=(
341
+ 1280,
342
+ 1280,
343
+ ),
344
+ type='RandomResize'),
345
+ dict(
346
+ allow_negative_crop=True,
347
+ crop_size=(
348
+ 640,
349
+ 640,
350
+ ),
351
+ recompute_bbox=True,
352
+ type='RandomCrop'),
353
+ dict(type='YOLOXHSVRandomAug'),
354
+ dict(prob=0.5, type='RandomFlip'),
355
+ dict(
356
+ pad_val=dict(img=(
357
+ 114,
358
+ 114,
359
+ 114,
360
+ )),
361
+ size=(
362
+ 640,
363
+ 640,
364
+ ),
365
+ type='Pad'),
366
+ dict(
367
+ img_scale=(
368
+ 640,
369
+ 640,
370
+ ),
371
+ max_cached_images=20,
372
+ pad_val=(
373
+ 114,
374
+ 114,
375
+ 114,
376
+ ),
377
+ ratio_range=(
378
+ 1.0,
379
+ 1.0,
380
+ ),
381
+ type='CachedMixUp'),
382
+ dict(min_gt_bbox_wh=(
383
+ 1,
384
+ 1,
385
+ ), type='FilterAnnotations'),
386
+ dict(type='PackDetInputs'),
387
+ ],
388
+ type='CocoDataset'),
389
+ num_workers=10,
390
+ persistent_workers=True,
391
+ pin_memory=True,
392
+ sampler=dict(shuffle=True, type='DefaultSampler'))
393
+ train_pipeline = [
394
+ dict(backend_args=None, type='LoadImageFromFile'),
395
+ dict(
396
+ poly2mask=False,
397
+ type='LoadAnnotations',
398
+ with_bbox=True,
399
+ with_mask=True),
400
+ dict(img_scale=(
401
+ 640,
402
+ 640,
403
+ ), pad_val=114.0, type='CachedMosaic'),
404
+ dict(
405
+ keep_ratio=True,
406
+ ratio_range=(
407
+ 0.1,
408
+ 2.0,
409
+ ),
410
+ scale=(
411
+ 1280,
412
+ 1280,
413
+ ),
414
+ type='RandomResize'),
415
+ dict(
416
+ allow_negative_crop=True,
417
+ crop_size=(
418
+ 640,
419
+ 640,
420
+ ),
421
+ recompute_bbox=True,
422
+ type='RandomCrop'),
423
+ dict(type='YOLOXHSVRandomAug'),
424
+ dict(prob=0.5, type='RandomFlip'),
425
+ dict(pad_val=dict(img=(
426
+ 114,
427
+ 114,
428
+ 114,
429
+ )), size=(
430
+ 640,
431
+ 640,
432
+ ), type='Pad'),
433
+ dict(
434
+ img_scale=(
435
+ 640,
436
+ 640,
437
+ ),
438
+ max_cached_images=20,
439
+ pad_val=(
440
+ 114,
441
+ 114,
442
+ 114,
443
+ ),
444
+ ratio_range=(
445
+ 1.0,
446
+ 1.0,
447
+ ),
448
+ type='CachedMixUp'),
449
+ dict(min_gt_bbox_wh=(
450
+ 1,
451
+ 1,
452
+ ), type='FilterAnnotations'),
453
+ dict(type='PackDetInputs'),
454
+ ]
455
+ train_pipeline_stage2 = [
456
+ dict(backend_args=None, type='LoadImageFromFile'),
457
+ dict(
458
+ poly2mask=False,
459
+ type='LoadAnnotations',
460
+ with_bbox=True,
461
+ with_mask=True),
462
+ dict(
463
+ keep_ratio=True,
464
+ ratio_range=(
465
+ 0.1,
466
+ 2.0,
467
+ ),
468
+ scale=(
469
+ 640,
470
+ 640,
471
+ ),
472
+ type='RandomResize'),
473
+ dict(
474
+ allow_negative_crop=True,
475
+ crop_size=(
476
+ 640,
477
+ 640,
478
+ ),
479
+ recompute_bbox=True,
480
+ type='RandomCrop'),
481
+ dict(min_gt_bbox_wh=(
482
+ 1,
483
+ 1,
484
+ ), type='FilterAnnotations'),
485
+ dict(type='YOLOXHSVRandomAug'),
486
+ dict(prob=0.5, type='RandomFlip'),
487
+ dict(pad_val=dict(img=(
488
+ 114,
489
+ 114,
490
+ 114,
491
+ )), size=(
492
+ 640,
493
+ 640,
494
+ ), type='Pad'),
495
+ dict(type='PackDetInputs'),
496
+ ]
497
+ tta_model = dict(
498
+ tta_cfg=dict(max_per_img=100, nms=dict(iou_threshold=0.6, type='nms')),
499
+ type='DetTTAModel')
500
+ tta_pipeline = [
501
+ dict(backend_args=None, type='LoadImageFromFile'),
502
+ dict(
503
+ transforms=[
504
+ [
505
+ dict(keep_ratio=True, scale=(
506
+ 640,
507
+ 640,
508
+ ), type='Resize'),
509
+ dict(keep_ratio=True, scale=(
510
+ 320,
511
+ 320,
512
+ ), type='Resize'),
513
+ dict(keep_ratio=True, scale=(
514
+ 960,
515
+ 960,
516
+ ), type='Resize'),
517
+ ],
518
+ [
519
+ dict(prob=1.0, type='RandomFlip'),
520
+ dict(prob=0.0, type='RandomFlip'),
521
+ ],
522
+ [
523
+ dict(
524
+ pad_val=dict(img=(
525
+ 114,
526
+ 114,
527
+ 114,
528
+ )),
529
+ size=(
530
+ 960,
531
+ 960,
532
+ ),
533
+ type='Pad'),
534
+ ],
535
+ [
536
+ dict(type='LoadAnnotations', with_bbox=True),
537
+ ],
538
+ [
539
+ dict(
540
+ meta_keys=(
541
+ 'img_id',
542
+ 'img_path',
543
+ 'ori_shape',
544
+ 'img_shape',
545
+ 'scale_factor',
546
+ 'flip',
547
+ 'flip_direction',
548
+ ),
549
+ type='PackDetInputs'),
550
+ ],
551
+ ],
552
+ type='TestTimeAug'),
553
+ ]
554
+ val_cfg = dict(type='ValLoop')
555
+ val_dataloader = dict(
556
+ batch_size=5,
557
+ dataset=dict(
558
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten/' +
559
+ 'test/label_json.json'),
560
+ backend_args=None,
561
+ data_prefix=dict(
562
+ img='/kfs2/projects/pvfleets24/repos/' +
563
+ 'cv-dl-framework-kirsten/test/images/'
564
+ ),
565
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten',
566
+ metainfo=dict(classes=(
567
+ 'damage',
568
+ 'panel',
569
+ )),
570
+ pipeline=[
571
+ dict(backend_args=None, type='LoadImageFromFile'),
572
+ dict(keep_ratio=True, scale=(
573
+ 640,
574
+ 640,
575
+ ), type='Resize'),
576
+ dict(
577
+ pad_val=dict(img=(
578
+ 114,
579
+ 114,
580
+ 114,
581
+ )),
582
+ size=(
583
+ 640,
584
+ 640,
585
+ ),
586
+ type='Pad'),
587
+ dict(type='LoadAnnotations', with_bbox=True),
588
+ dict(
589
+ meta_keys=(
590
+ 'img_id',
591
+ 'img_path',
592
+ 'ori_shape',
593
+ 'img_shape',
594
+ 'scale_factor',
595
+ ),
596
+ type='PackDetInputs'),
597
+ ],
598
+ test_mode=True,
599
+ type='CocoDataset'),
600
+ drop_last=False,
601
+ num_workers=10,
602
+ persistent_workers=True,
603
+ sampler=dict(shuffle=False, type='DefaultSampler'))
604
+ val_evaluator = dict(
605
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten/' +
606
+ 'test/label_json.json'),
607
+ backend_args=None,
608
+ format_only=False,
609
+ metric=[
610
+ 'bbox',
611
+ 'segm',
612
+ ],
613
+ proposal_nums=(
614
+ 100,
615
+ 1,
616
+ 10,
617
+ ),
618
+ type='CocoMetric')
619
+ vis_backends = [
620
+ dict(type='LocalVisBackend'),
621
+ ]
622
+ visualizer = dict(
623
+ name='visualizer',
624
+ type='DetLocalVisualizer',
625
+ vis_backends=[
626
+ dict(
627
+ save_dir=('/kfs2/projects/pvfleets24/repos/' +
628
+ 'cv-dl-framework-kirsten/runs/16_05_2025_15_06_47'),
629
+ type='LocalVisBackend'),
630
+ ])
631
+ work_dir = ('/kfs2/projects/pvfleets24/repos/cv-dl-framework-kirsten/' +
632
+ 'runs/16_05_2025_15_06_47')
hail_model.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ef8533aef7e34292a357c149baa1c7b2ba0cfcfaff8a3114cf80eba79c9f5e35
3
+ size 873715053
panel_detection_config.py ADDED
@@ -0,0 +1,637 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ auto_scale_lr = dict(base_batch_size=16, enable=False)
2
+ backend_args = None
3
+ base_lr = 0.002
4
+ custom_hooks = [
5
+ dict(
6
+ ema_type='ExpMomentumEMA',
7
+ momentum=0.0002,
8
+ priority=49,
9
+ type='EMAHook',
10
+ update_buffers=True),
11
+ dict(
12
+ switch_epoch=280,
13
+ switch_pipeline=[
14
+ dict(backend_args=None, type='LoadImageFromFile'),
15
+ dict(
16
+ poly2mask=False,
17
+ type='LoadAnnotations',
18
+ with_bbox=True,
19
+ with_mask=True),
20
+ dict(
21
+ keep_ratio=True,
22
+ ratio_range=(
23
+ 0.1,
24
+ 2.0,
25
+ ),
26
+ scale=(
27
+ 640,
28
+ 640,
29
+ ),
30
+ type='RandomResize'),
31
+ dict(
32
+ allow_negative_crop=True,
33
+ crop_size=(
34
+ 640,
35
+ 640,
36
+ ),
37
+ recompute_bbox=True,
38
+ type='RandomCrop'),
39
+ dict(min_gt_bbox_wh=(
40
+ 1,
41
+ 1,
42
+ ), type='FilterAnnotations'),
43
+ dict(type='YOLOXHSVRandomAug'),
44
+ dict(prob=0.5, type='RandomFlip'),
45
+ dict(
46
+ pad_val=dict(img=(
47
+ 114,
48
+ 114,
49
+ 114,
50
+ )),
51
+ size=(
52
+ 640,
53
+ 640,
54
+ ),
55
+ type='Pad'),
56
+ dict(type='PackDetInputs'),
57
+ ],
58
+ type='PipelineSwitchHook'),
59
+ ]
60
+ data_root = '/kfs2/projects/pvfleets24/repos/cv-dl-framework'
61
+ dataset_type = 'CocoDataset'
62
+ default_hooks = dict(
63
+ checkpoint=dict(
64
+ rule='greater', save_best='coco/bbox_mAP_50', type='CheckpointHook'),
65
+ logger=dict(interval=50, type='LoggerHook'),
66
+ param_scheduler=dict(type='ParamSchedulerHook'),
67
+ sampler_seed=dict(type='DistSamplerSeedHook'),
68
+ timer=dict(type='IterTimerHook'),
69
+ visualization=dict(type='DetVisualizationHook'))
70
+ default_scope = 'mmdet'
71
+ env_cfg = dict(
72
+ cudnn_benchmark=False,
73
+ dist_cfg=dict(backend='nccl'),
74
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
75
+ img_scales = [
76
+ (
77
+ 640,
78
+ 640,
79
+ ),
80
+ (
81
+ 320,
82
+ 320,
83
+ ),
84
+ (
85
+ 960,
86
+ 960,
87
+ ),
88
+ ]
89
+ interval = 10
90
+ launcher = 'none'
91
+ load_from = 'best_coco_bbox_mAP_50_epoch_291.pth'
92
+ log_level = 'INFO'
93
+ log_processor = dict(by_epoch=True, type='LogProcessor', window_size=50)
94
+ max_epochs = 300
95
+ metainfo = dict(
96
+ classes=(
97
+ 'carport-fixed-tilt',
98
+ 'ground-dual-axis-tracker',
99
+ 'ground-fixed-tilt',
100
+ 'ground-single-axis-tracker',
101
+ 'rooftop-fixed-tilt',
102
+ ))
103
+ model = dict(
104
+ backbone=dict(
105
+ act_cfg=dict(inplace=True, type='SiLU'),
106
+ arch='P5',
107
+ channel_attention=True,
108
+ deepen_factor=1.33,
109
+ expand_ratio=0.5,
110
+ norm_cfg=dict(type='SyncBN'),
111
+ type='CSPNeXt',
112
+ widen_factor=1.25),
113
+ bbox_head=dict(
114
+ act_cfg=dict(inplace=True, type='SiLU'),
115
+ anchor_generator=dict(
116
+ offset=0, strides=[
117
+ 8,
118
+ 16,
119
+ 32,
120
+ ], type='MlvlPointGenerator'),
121
+ bbox_coder=dict(type='DistancePointBBoxCoder'),
122
+ feat_channels=320,
123
+ in_channels=320,
124
+ loss_bbox=dict(loss_weight=2.0, type='GIoULoss'),
125
+ loss_cls=dict(
126
+ beta=2.0,
127
+ loss_weight=1.0,
128
+ type='QualityFocalLoss',
129
+ use_sigmoid=True),
130
+ loss_mask=dict(
131
+ eps=5e-06, loss_weight=2.0, reduction='mean', type='DiceLoss'),
132
+ norm_cfg=dict(requires_grad=True, type='SyncBN'),
133
+ num_classes=5,
134
+ pred_kernel_size=1,
135
+ share_conv=True,
136
+ stacked_convs=2,
137
+ test_cfg=dict(
138
+ mask_thr_binary=0.5,
139
+ max_per_img=100,
140
+ min_bbox_size=0,
141
+ nms=dict(iou_threshold=0.6, type='nms'),
142
+ nms_pre=1000,
143
+ score_thr=0.05),
144
+ train_cfg=dict(
145
+ allowed_border=-1,
146
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
147
+ debug=False,
148
+ pos_weight=-1),
149
+ type='RTMDetInsSepBNHead'),
150
+ data_preprocessor=dict(
151
+ batch_augments=None,
152
+ bgr_to_rgb=False,
153
+ mean=[
154
+ 103.53,
155
+ 116.28,
156
+ 123.675,
157
+ ],
158
+ std=[
159
+ 57.375,
160
+ 57.12,
161
+ 58.395,
162
+ ],
163
+ type='DetDataPreprocessor'),
164
+ neck=dict(
165
+ act_cfg=dict(inplace=True, type='SiLU'),
166
+ expand_ratio=0.5,
167
+ in_channels=[
168
+ 320,
169
+ 640,
170
+ 1280,
171
+ ],
172
+ norm_cfg=dict(type='SyncBN'),
173
+ num_csp_blocks=4,
174
+ out_channels=320,
175
+ type='CSPNeXtPAFPN'),
176
+ test_cfg=dict(
177
+ mask_thr_binary=0.5,
178
+ max_per_img=100,
179
+ min_bbox_size=0,
180
+ nms=dict(iou_threshold=0.6, type='nms'),
181
+ nms_pre=1000,
182
+ score_thr=0.05),
183
+ train_cfg=dict(
184
+ allowed_border=-1,
185
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
186
+ debug=False,
187
+ pos_weight=-1),
188
+ type='RTMDet')
189
+ optim_wrapper = dict(
190
+ optimizer=dict(lr=0.001, type='AdamW', weight_decay=0.05),
191
+ paramwise_cfg=dict(
192
+ bias_decay_mult=0, bypass_duplicate=True, norm_decay_mult=0),
193
+ type='OptimWrapper')
194
+ param_scheduler = [
195
+ dict(
196
+ begin=0, by_epoch=False, end=1000, start_factor=1e-05,
197
+ type='LinearLR'),
198
+ dict(
199
+ T_max=150,
200
+ begin=150,
201
+ by_epoch=True,
202
+ convert_to_iter_based=True,
203
+ end=300,
204
+ eta_min=0.0001,
205
+ type='CosineAnnealingLR'),
206
+ ]
207
+ resume = False
208
+ stage2_num_epochs = 20
209
+ test_cfg = dict(type='TestLoop')
210
+ test_dataloader = dict(
211
+ batch_size=5,
212
+ dataset=dict(
213
+ ann_file='/cv-dl-framework/test/label_json.json',
214
+ backend_args=None,
215
+ data_prefix=dict(
216
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/'
217
+ ),
218
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
219
+ metainfo=dict(
220
+ classes=(
221
+ 'carport-fixed-tilt',
222
+ 'ground-dual-axis-tracker',
223
+ 'ground-fixed-tilt',
224
+ 'ground-single-axis-tracker',
225
+ 'rooftop-fixed-tilt',
226
+ )),
227
+ pipeline=[
228
+ dict(backend_args=None, type='LoadImageFromFile'),
229
+ dict(keep_ratio=True, scale=(
230
+ 640,
231
+ 640,
232
+ ), type='Resize'),
233
+ dict(
234
+ pad_val=dict(img=(
235
+ 114,
236
+ 114,
237
+ 114,
238
+ )),
239
+ size=(
240
+ 640,
241
+ 640,
242
+ ),
243
+ type='Pad'),
244
+ dict(type='LoadAnnotations', with_bbox=True),
245
+ dict(
246
+ meta_keys=(
247
+ 'img_id',
248
+ 'img_path',
249
+ 'ori_shape',
250
+ 'img_shape',
251
+ 'scale_factor',
252
+ ),
253
+ type='PackDetInputs'),
254
+ ],
255
+ test_mode=True,
256
+ type='CocoDataset'),
257
+ drop_last=False,
258
+ num_workers=10,
259
+ persistent_workers=True,
260
+ sampler=dict(shuffle=False, type='DefaultSampler'))
261
+ test_evaluator = dict(
262
+ ann_file='/cv-dl-framework/test/label_json.json',
263
+ backend_args=None,
264
+ format_only=False,
265
+ metric=[
266
+ 'bbox',
267
+ 'segm',
268
+ ],
269
+ proposal_nums=(
270
+ 100,
271
+ 1,
272
+ 10,
273
+ ),
274
+ type='CocoMetric')
275
+ test_pipeline = [
276
+ dict(backend_args=None, type='LoadImageFromFile'),
277
+ dict(keep_ratio=True, scale=(
278
+ 640,
279
+ 640,
280
+ ), type='Resize'),
281
+ dict(pad_val=dict(img=(
282
+ 114,
283
+ 114,
284
+ 114,
285
+ )), size=(
286
+ 640,
287
+ 640,
288
+ ), type='Pad'),
289
+ dict(type='LoadAnnotations', with_bbox=True),
290
+ dict(
291
+ meta_keys=(
292
+ 'img_id',
293
+ 'img_path',
294
+ 'ori_shape',
295
+ 'img_shape',
296
+ 'scale_factor',
297
+ ),
298
+ type='PackDetInputs'),
299
+ ]
300
+ train_cfg = dict(
301
+ dynamic_intervals=[
302
+ (
303
+ 280,
304
+ 1,
305
+ ),
306
+ ],
307
+ max_epochs=300,
308
+ type='EpochBasedTrainLoop',
309
+ val_interval=3)
310
+ train_dataloader = dict(
311
+ batch_sampler=None,
312
+ batch_size=4,
313
+ dataset=dict(
314
+ ann_file='/cv-dl-framework/train/label_json.json',
315
+ backend_args=None,
316
+ data_prefix=dict(
317
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/train/images/'
318
+ ),
319
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
320
+ filter_cfg=dict(filter_empty_gt=True, min_size=32),
321
+ metainfo=dict(
322
+ classes=(
323
+ 'carport-fixed-tilt',
324
+ 'ground-dual-axis-tracker',
325
+ 'ground-fixed-tilt',
326
+ 'ground-single-axis-tracker',
327
+ 'rooftop-fixed-tilt',
328
+ )),
329
+ pipeline=[
330
+ dict(backend_args=None, type='LoadImageFromFile'),
331
+ dict(
332
+ poly2mask=False,
333
+ type='LoadAnnotations',
334
+ with_bbox=True,
335
+ with_mask=True),
336
+ dict(img_scale=(
337
+ 640,
338
+ 640,
339
+ ), pad_val=114.0, type='CachedMosaic'),
340
+ dict(
341
+ keep_ratio=True,
342
+ ratio_range=(
343
+ 0.1,
344
+ 2.0,
345
+ ),
346
+ scale=(
347
+ 1280,
348
+ 1280,
349
+ ),
350
+ type='RandomResize'),
351
+ dict(
352
+ allow_negative_crop=True,
353
+ crop_size=(
354
+ 640,
355
+ 640,
356
+ ),
357
+ recompute_bbox=True,
358
+ type='RandomCrop'),
359
+ dict(type='YOLOXHSVRandomAug'),
360
+ dict(prob=0.5, type='RandomFlip'),
361
+ dict(
362
+ pad_val=dict(img=(
363
+ 114,
364
+ 114,
365
+ 114,
366
+ )),
367
+ size=(
368
+ 640,
369
+ 640,
370
+ ),
371
+ type='Pad'),
372
+ dict(
373
+ img_scale=(
374
+ 640,
375
+ 640,
376
+ ),
377
+ max_cached_images=20,
378
+ pad_val=(
379
+ 114,
380
+ 114,
381
+ 114,
382
+ ),
383
+ ratio_range=(
384
+ 1.0,
385
+ 1.0,
386
+ ),
387
+ type='CachedMixUp'),
388
+ dict(min_gt_bbox_wh=(
389
+ 1,
390
+ 1,
391
+ ), type='FilterAnnotations'),
392
+ dict(type='PackDetInputs'),
393
+ ],
394
+ type='CocoDataset'),
395
+ num_workers=10,
396
+ persistent_workers=True,
397
+ pin_memory=True,
398
+ sampler=dict(shuffle=True, type='DefaultSampler'))
399
+ train_pipeline = [
400
+ dict(backend_args=None, type='LoadImageFromFile'),
401
+ dict(
402
+ poly2mask=False,
403
+ type='LoadAnnotations',
404
+ with_bbox=True,
405
+ with_mask=True),
406
+ dict(img_scale=(
407
+ 640,
408
+ 640,
409
+ ), pad_val=114.0, type='CachedMosaic'),
410
+ dict(
411
+ keep_ratio=True,
412
+ ratio_range=(
413
+ 0.1,
414
+ 2.0,
415
+ ),
416
+ scale=(
417
+ 1280,
418
+ 1280,
419
+ ),
420
+ type='RandomResize'),
421
+ dict(
422
+ allow_negative_crop=True,
423
+ crop_size=(
424
+ 640,
425
+ 640,
426
+ ),
427
+ recompute_bbox=True,
428
+ type='RandomCrop'),
429
+ dict(type='YOLOXHSVRandomAug'),
430
+ dict(prob=0.5, type='RandomFlip'),
431
+ dict(pad_val=dict(img=(
432
+ 114,
433
+ 114,
434
+ 114,
435
+ )), size=(
436
+ 640,
437
+ 640,
438
+ ), type='Pad'),
439
+ dict(
440
+ img_scale=(
441
+ 640,
442
+ 640,
443
+ ),
444
+ max_cached_images=20,
445
+ pad_val=(
446
+ 114,
447
+ 114,
448
+ 114,
449
+ ),
450
+ ratio_range=(
451
+ 1.0,
452
+ 1.0,
453
+ ),
454
+ type='CachedMixUp'),
455
+ dict(min_gt_bbox_wh=(
456
+ 1,
457
+ 1,
458
+ ), type='FilterAnnotations'),
459
+ dict(type='PackDetInputs'),
460
+ ]
461
+ train_pipeline_stage2 = [
462
+ dict(backend_args=None, type='LoadImageFromFile'),
463
+ dict(
464
+ poly2mask=False,
465
+ type='LoadAnnotations',
466
+ with_bbox=True,
467
+ with_mask=True),
468
+ dict(
469
+ keep_ratio=True,
470
+ ratio_range=(
471
+ 0.1,
472
+ 2.0,
473
+ ),
474
+ scale=(
475
+ 640,
476
+ 640,
477
+ ),
478
+ type='RandomResize'),
479
+ dict(
480
+ allow_negative_crop=True,
481
+ crop_size=(
482
+ 640,
483
+ 640,
484
+ ),
485
+ recompute_bbox=True,
486
+ type='RandomCrop'),
487
+ dict(min_gt_bbox_wh=(
488
+ 1,
489
+ 1,
490
+ ), type='FilterAnnotations'),
491
+ dict(type='YOLOXHSVRandomAug'),
492
+ dict(prob=0.5, type='RandomFlip'),
493
+ dict(pad_val=dict(img=(
494
+ 114,
495
+ 114,
496
+ 114,
497
+ )), size=(
498
+ 640,
499
+ 640,
500
+ ), type='Pad'),
501
+ dict(type='PackDetInputs'),
502
+ ]
503
+ tta_model = dict(
504
+ tta_cfg=dict(max_per_img=100, nms=dict(iou_threshold=0.6, type='nms')),
505
+ type='DetTTAModel')
506
+ tta_pipeline = [
507
+ dict(backend_args=None, type='LoadImageFromFile'),
508
+ dict(
509
+ transforms=[
510
+ [
511
+ dict(keep_ratio=True, scale=(
512
+ 640,
513
+ 640,
514
+ ), type='Resize'),
515
+ dict(keep_ratio=True, scale=(
516
+ 320,
517
+ 320,
518
+ ), type='Resize'),
519
+ dict(keep_ratio=True, scale=(
520
+ 960,
521
+ 960,
522
+ ), type='Resize'),
523
+ ],
524
+ [
525
+ dict(prob=1.0, type='RandomFlip'),
526
+ dict(prob=0.0, type='RandomFlip'),
527
+ ],
528
+ [
529
+ dict(
530
+ pad_val=dict(img=(
531
+ 114,
532
+ 114,
533
+ 114,
534
+ )),
535
+ size=(
536
+ 960,
537
+ 960,
538
+ ),
539
+ type='Pad'),
540
+ ],
541
+ [
542
+ dict(type='LoadAnnotations', with_bbox=True),
543
+ ],
544
+ [
545
+ dict(
546
+ meta_keys=(
547
+ 'img_id',
548
+ 'img_path',
549
+ 'ori_shape',
550
+ 'img_shape',
551
+ 'scale_factor',
552
+ 'flip',
553
+ 'flip_direction',
554
+ ),
555
+ type='PackDetInputs'),
556
+ ],
557
+ ],
558
+ type='TestTimeAug'),
559
+ ]
560
+ val_cfg = dict(type='ValLoop')
561
+ val_dataloader = dict(
562
+ batch_size=5,
563
+ dataset=dict(
564
+ ann_file='/cv-dl-framework/test/label_json.json',
565
+ backend_args=None,
566
+ data_prefix=dict(
567
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/'
568
+ ),
569
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
570
+ metainfo=dict(
571
+ classes=(
572
+ 'carport-fixed-tilt',
573
+ 'ground-dual-axis-tracker',
574
+ 'ground-fixed-tilt',
575
+ 'ground-single-axis-tracker',
576
+ 'rooftop-fixed-tilt',
577
+ )),
578
+ pipeline=[
579
+ dict(backend_args=None, type='LoadImageFromFile'),
580
+ dict(keep_ratio=True, scale=(
581
+ 640,
582
+ 640,
583
+ ), type='Resize'),
584
+ dict(
585
+ pad_val=dict(img=(
586
+ 114,
587
+ 114,
588
+ 114,
589
+ )),
590
+ size=(
591
+ 640,
592
+ 640,
593
+ ),
594
+ type='Pad'),
595
+ dict(type='LoadAnnotations', with_bbox=True),
596
+ dict(
597
+ meta_keys=(
598
+ 'img_id',
599
+ 'img_path',
600
+ 'ori_shape',
601
+ 'img_shape',
602
+ 'scale_factor',
603
+ ),
604
+ type='PackDetInputs'),
605
+ ],
606
+ test_mode=True,
607
+ type='CocoDataset'),
608
+ drop_last=False,
609
+ num_workers=10,
610
+ persistent_workers=True,
611
+ sampler=dict(shuffle=False, type='DefaultSampler'))
612
+ val_evaluator = dict(
613
+ ann_file='/cv-dl-framework/test/label_json.json',
614
+ backend_args=None,
615
+ format_only=False,
616
+ metric=[
617
+ 'bbox',
618
+ 'segm',
619
+ ],
620
+ proposal_nums=(
621
+ 100,
622
+ 1,
623
+ 10,
624
+ ),
625
+ type='CocoMetric')
626
+ vis_backends = [
627
+ dict(type='LocalVisBackend'),
628
+ ]
629
+ visualizer = dict(
630
+ name='visualizer',
631
+ type='DetLocalVisualizer',
632
+ vis_backends=[
633
+ dict(
634
+ save_dir='/12_03_2026_12_24_40',
635
+ type='LocalVisBackend'),
636
+ ])
637
+ work_dir = '/12_03_2026_12_24_40'
panel_detection_model.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b99123151bbe20ad02e742c91df2e4f3f3b63f0603d117a08412d5665238992c
3
+ size 870056877
post_hurricane_config.py ADDED
@@ -0,0 +1,454 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ auto_scale_lr = dict(base_batch_size=16, enable=False)
2
+ backend_args = None
3
+ data_root = '/kfs2/projects/pvfleets24/repos/cv-dl-framework'
4
+ dataset_type = 'CocoDataset'
5
+ default_hooks = dict(
6
+ checkpoint=dict(
7
+ rule='greater', save_best='coco/bbox_mAP_50', type='CheckpointHook'),
8
+ logger=dict(interval=50, type='LoggerHook'),
9
+ param_scheduler=dict(type='ParamSchedulerHook'),
10
+ sampler_seed=dict(type='DistSamplerSeedHook'),
11
+ timer=dict(type='IterTimerHook'),
12
+ visualization=dict(type='DetVisualizationHook'))
13
+ default_scope = 'mmdet'
14
+ env_cfg = dict(
15
+ cudnn_benchmark=False,
16
+ dist_cfg=dict(backend='nccl'),
17
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
18
+ launcher = 'none'
19
+ load_from = \
20
+ ('/kfs2/projects/pvfleets24/repos/cv-dl-framework/runs/' +
21
+ '02_06_2025_20_53_05/best_coco_bbox_mAP_50_epoch_15.pth')
22
+ log_level = 'INFO'
23
+ log_processor = dict(by_epoch=True, type='LogProcessor', window_size=50)
24
+ metainfo = dict(classes=('panel', ))
25
+ model = dict(
26
+ backbone=dict(
27
+ base_width=4,
28
+ depth=101,
29
+ frozen_stages=1,
30
+ groups=64,
31
+ init_cfg=None,
32
+ norm_cfg=dict(requires_grad=True, type='BN'),
33
+ norm_eval=True,
34
+ num_stages=4,
35
+ out_indices=(
36
+ 0,
37
+ 1,
38
+ 2,
39
+ 3,
40
+ ),
41
+ style='pytorch',
42
+ type='ResNeXt'),
43
+ data_preprocessor=dict(
44
+ bgr_to_rgb=True,
45
+ mean=[
46
+ 123.675,
47
+ 116.28,
48
+ 103.53,
49
+ ],
50
+ pad_mask=True,
51
+ pad_size_divisor=32,
52
+ std=[
53
+ 58.395,
54
+ 57.12,
55
+ 57.375,
56
+ ],
57
+ type='DetDataPreprocessor'),
58
+ neck=dict(
59
+ in_channels=[
60
+ 256,
61
+ 512,
62
+ 1024,
63
+ 2048,
64
+ ],
65
+ num_outs=5,
66
+ out_channels=256,
67
+ type='FPN'),
68
+ roi_head=dict(
69
+ bbox_head=dict(
70
+ bbox_coder=dict(
71
+ target_means=[
72
+ 0.0,
73
+ 0.0,
74
+ 0.0,
75
+ 0.0,
76
+ ],
77
+ target_stds=[
78
+ 0.1,
79
+ 0.1,
80
+ 0.2,
81
+ 0.2,
82
+ ],
83
+ type='DeltaXYWHBBoxCoder'),
84
+ fc_out_channels=1024,
85
+ in_channels=256,
86
+ loss_bbox=dict(loss_weight=1.0, type='L1Loss'),
87
+ loss_cls=dict(
88
+ loss_weight=1.0, type='CrossEntropyLoss', use_sigmoid=False),
89
+ num_classes=1,
90
+ reg_class_agnostic=False,
91
+ roi_feat_size=7,
92
+ type='Shared2FCBBoxHead'),
93
+ bbox_roi_extractor=dict(
94
+ featmap_strides=[
95
+ 4,
96
+ 8,
97
+ 16,
98
+ 32,
99
+ ],
100
+ out_channels=256,
101
+ roi_layer=dict(output_size=7, sampling_ratio=0, type='RoIAlign'),
102
+ type='SingleRoIExtractor'),
103
+ mask_head=dict(
104
+ conv_out_channels=256,
105
+ in_channels=256,
106
+ loss_mask=dict(
107
+ loss_weight=1.0, type='CrossEntropyLoss', use_mask=True),
108
+ num_classes=1,
109
+ num_convs=4,
110
+ type='FCNMaskHead'),
111
+ mask_roi_extractor=dict(
112
+ featmap_strides=[
113
+ 4,
114
+ 8,
115
+ 16,
116
+ 32,
117
+ ],
118
+ out_channels=256,
119
+ roi_layer=dict(output_size=14, sampling_ratio=0, type='RoIAlign'),
120
+ type='SingleRoIExtractor'),
121
+ test_cfg=dict(
122
+ mask_thr_binary=0.5,
123
+ max_per_img=100,
124
+ nms=dict(iou_threshold=0.5, type='nms'),
125
+ score_thr=0.05),
126
+ train_cfg=dict(
127
+ assigner=dict(
128
+ ignore_iof_thr=-1,
129
+ match_low_quality=True,
130
+ min_pos_iou=0.5,
131
+ neg_iou_thr=0.5,
132
+ pos_iou_thr=0.5,
133
+ type='MaxIoUAssigner'),
134
+ debug=False,
135
+ mask_size=28,
136
+ pos_weight=-1,
137
+ sampler=dict(
138
+ add_gt_as_proposals=True,
139
+ neg_pos_ub=-1,
140
+ num=512,
141
+ pos_fraction=0.25,
142
+ type='RandomSampler')),
143
+ type='StandardRoIHead'),
144
+ rpn_head=dict(
145
+ anchor_generator=dict(
146
+ ratios=[
147
+ 0.5,
148
+ 1.0,
149
+ 2.0,
150
+ ],
151
+ scales=[
152
+ 8,
153
+ ],
154
+ strides=[
155
+ 4,
156
+ 8,
157
+ 16,
158
+ 32,
159
+ 64,
160
+ ],
161
+ type='AnchorGenerator'),
162
+ bbox_coder=dict(
163
+ target_means=[
164
+ 0.0,
165
+ 0.0,
166
+ 0.0,
167
+ 0.0,
168
+ ],
169
+ target_stds=[
170
+ 1.0,
171
+ 1.0,
172
+ 1.0,
173
+ 1.0,
174
+ ],
175
+ type='DeltaXYWHBBoxCoder'),
176
+ feat_channels=256,
177
+ in_channels=256,
178
+ loss_bbox=dict(loss_weight=1.0, type='L1Loss'),
179
+ loss_cls=dict(
180
+ loss_weight=1.0, type='CrossEntropyLoss', use_sigmoid=True),
181
+ type='RPNHead'),
182
+ test_cfg=dict(
183
+ rcnn=dict(
184
+ mask_thr_binary=0.5,
185
+ max_per_img=100,
186
+ nms=dict(iou_threshold=0.5, type='nms'),
187
+ score_thr=0.05),
188
+ rpn=dict(
189
+ max_per_img=1000,
190
+ min_bbox_size=0,
191
+ nms=dict(iou_threshold=0.7, type='nms'),
192
+ nms_pre=1000)),
193
+ train_cfg=dict(
194
+ rcnn=dict(
195
+ assigner=dict(
196
+ ignore_iof_thr=-1,
197
+ match_low_quality=True,
198
+ min_pos_iou=0.5,
199
+ neg_iou_thr=0.5,
200
+ pos_iou_thr=0.5,
201
+ type='MaxIoUAssigner'),
202
+ debug=False,
203
+ mask_size=28,
204
+ pos_weight=-1,
205
+ sampler=dict(
206
+ add_gt_as_proposals=True,
207
+ neg_pos_ub=-1,
208
+ num=512,
209
+ pos_fraction=0.25,
210
+ type='RandomSampler')),
211
+ rpn=dict(
212
+ allowed_border=-1,
213
+ assigner=dict(
214
+ ignore_iof_thr=-1,
215
+ match_low_quality=True,
216
+ min_pos_iou=0.3,
217
+ neg_iou_thr=0.3,
218
+ pos_iou_thr=0.7,
219
+ type='MaxIoUAssigner'),
220
+ debug=False,
221
+ pos_weight=-1,
222
+ sampler=dict(
223
+ add_gt_as_proposals=False,
224
+ neg_pos_ub=-1,
225
+ num=256,
226
+ pos_fraction=0.5,
227
+ type='RandomSampler')),
228
+ rpn_proposal=dict(
229
+ max_per_img=1000,
230
+ min_bbox_size=0,
231
+ nms=dict(iou_threshold=0.7, type='nms'),
232
+ nms_pre=2000)),
233
+ type='MaskRCNN')
234
+ optim_wrapper = dict(
235
+ optimizer=dict(
236
+ lr=0.0006313442216876994,
237
+ momentum=0.9076082930433617,
238
+ type='SGD',
239
+ weight_decay=0.008844292412907089),
240
+ type='OptimWrapper')
241
+ param_scheduler = [
242
+ dict(
243
+ begin=0, by_epoch=False, end=500, start_factor=0.001, type='LinearLR'),
244
+ dict(
245
+ begin=0,
246
+ by_epoch=True,
247
+ end=12,
248
+ gamma=0.1,
249
+ milestones=[
250
+ 9,
251
+ 11,
252
+ ],
253
+ type='MultiStepLR'),
254
+ ]
255
+ resume = False
256
+ test_cfg = dict(type='TestLoop')
257
+ test_dataloader = dict(
258
+ batch_size=2,
259
+ dataset=dict(
260
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework' +
261
+ '/test/label_json.json'),
262
+ backend_args=None,
263
+ data_prefix=dict(
264
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/'
265
+ ),
266
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
267
+ metainfo=dict(classes=('panel', )),
268
+ pipeline=[
269
+ dict(backend_args=None, type='LoadImageFromFile'),
270
+ dict(keep_ratio=True, scale=(
271
+ 1333,
272
+ 800,
273
+ ), type='Resize'),
274
+ dict(
275
+ poly2mask=False,
276
+ type='LoadAnnotations',
277
+ with_bbox=True,
278
+ with_mask=True),
279
+ dict(
280
+ meta_keys=(
281
+ 'img_id',
282
+ 'img_path',
283
+ 'ori_shape',
284
+ 'img_shape',
285
+ 'scale_factor',
286
+ ),
287
+ type='PackDetInputs'),
288
+ ],
289
+ test_mode=True,
290
+ type='CocoDataset'),
291
+ drop_last=False,
292
+ num_workers=2,
293
+ persistent_workers=True,
294
+ sampler=dict(shuffle=False, type='DefaultSampler'))
295
+ test_evaluator = dict(
296
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
297
+ 'test/label_json.json'),
298
+ backend_args=None,
299
+ metric=[
300
+ 'bbox',
301
+ 'segm',
302
+ ],
303
+ type='CocoMetric')
304
+ test_pipeline = [
305
+ dict(backend_args=None, type='LoadImageFromFile'),
306
+ dict(keep_ratio=True, scale=(
307
+ 1333,
308
+ 800,
309
+ ), type='Resize'),
310
+ dict(
311
+ poly2mask=False,
312
+ type='LoadAnnotations',
313
+ with_bbox=True,
314
+ with_mask=True),
315
+ dict(
316
+ meta_keys=(
317
+ 'img_id',
318
+ 'img_path',
319
+ 'ori_shape',
320
+ 'img_shape',
321
+ 'scale_factor',
322
+ ),
323
+ type='PackDetInputs'),
324
+ ]
325
+ train_cfg = dict(max_epochs=80, type='EpochBasedTrainLoop', val_interval=3)
326
+ train_dataloader = dict(
327
+ batch_sampler=dict(type='AspectRatioBatchSampler'),
328
+ batch_size=2,
329
+ dataset=dict(
330
+ dataset=dict(
331
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
332
+ 'train/label_json.json'),
333
+ backend_args=None,
334
+ data_prefix=dict(
335
+ img=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
336
+ 'train/images/')
337
+ ),
338
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
339
+ filter_cfg=dict(filter_empty_gt=True, min_size=32),
340
+ metainfo=dict(classes=('panel', )),
341
+ pipeline=[
342
+ dict(backend_args=None, type='LoadImageFromFile'),
343
+ dict(
344
+ poly2mask=False,
345
+ type='LoadAnnotations',
346
+ with_bbox=True,
347
+ with_mask=True),
348
+ dict(
349
+ keep_ratio=True,
350
+ scale=[
351
+ (
352
+ 1333,
353
+ 640,
354
+ ),
355
+ (
356
+ 1333,
357
+ 800,
358
+ ),
359
+ ],
360
+ type='RandomResize'),
361
+ dict(prob=0.5, type='RandomFlip'),
362
+ dict(type='PackDetInputs'),
363
+ ],
364
+ type='CocoDataset'),
365
+ times=3,
366
+ type='RepeatDataset'),
367
+ num_workers=2,
368
+ persistent_workers=True,
369
+ sampler=dict(shuffle=True, type='DefaultSampler'))
370
+ train_pipeline = [
371
+ dict(backend_args=None, type='LoadImageFromFile'),
372
+ dict(
373
+ poly2mask=False,
374
+ type='LoadAnnotations',
375
+ with_bbox=True,
376
+ with_mask=True),
377
+ dict(
378
+ keep_ratio=True,
379
+ scale=[
380
+ (
381
+ 1333,
382
+ 640,
383
+ ),
384
+ (
385
+ 1333,
386
+ 800,
387
+ ),
388
+ ],
389
+ type='RandomResize'),
390
+ dict(prob=0.5, type='RandomFlip'),
391
+ dict(type='PackDetInputs'),
392
+ ]
393
+ val_cfg = dict(type='ValLoop')
394
+ val_dataloader = dict(
395
+ batch_size=2,
396
+ dataset=dict(
397
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
398
+ 'test/label_json.json'),
399
+ backend_args=None,
400
+ data_prefix=dict(
401
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/'
402
+ ),
403
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
404
+ metainfo=dict(classes=('panel', )),
405
+ pipeline=[
406
+ dict(backend_args=None, type='LoadImageFromFile'),
407
+ dict(keep_ratio=True, scale=(
408
+ 1333,
409
+ 800,
410
+ ), type='Resize'),
411
+ dict(
412
+ poly2mask=False,
413
+ type='LoadAnnotations',
414
+ with_bbox=True,
415
+ with_mask=True),
416
+ dict(
417
+ meta_keys=(
418
+ 'img_id',
419
+ 'img_path',
420
+ 'ori_shape',
421
+ 'img_shape',
422
+ 'scale_factor',
423
+ ),
424
+ type='PackDetInputs'),
425
+ ],
426
+ test_mode=True,
427
+ type='CocoDataset'),
428
+ drop_last=False,
429
+ num_workers=2,
430
+ persistent_workers=True,
431
+ sampler=dict(shuffle=False, type='DefaultSampler'))
432
+ val_evaluator = dict(
433
+ ann_file=('/kfs2/projects/pvfleets24/repos/' +
434
+ 'cv-dl-framework/test/label_json.json'),
435
+ backend_args=None,
436
+ metric=[
437
+ 'bbox',
438
+ 'segm',
439
+ ],
440
+ type='CocoMetric')
441
+ vis_backends = [
442
+ dict(type='LocalVisBackend'),
443
+ ]
444
+ visualizer = dict(
445
+ name='visualizer',
446
+ type='DetLocalVisualizer',
447
+ vis_backends=[
448
+ dict(
449
+ save_dir=('/kfs2/projects/pvfleets24/repos/' +
450
+ 'cv-dl-framework/runs/02_06_2025_20_53_05'),
451
+ type='LocalVisBackend'),
452
+ ])
453
+ work_dir = ('/)kfs2/projects/pvfleets24/repos/cv-dl-framework' +
454
+ '/runs/02_06_2025_20_53_05')
post_hurricane_model.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:daa29aea6fc0246aa08f044d53c5364294536e6a7ce2a5b39ce0035ede7d6738
3
+ size 409652222
pre_hurricane_config.py ADDED
@@ -0,0 +1,617 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ auto_scale_lr = dict(base_batch_size=16, enable=False)
2
+ backend_args = None
3
+ base_lr = 0.004
4
+ custom_hooks = [
5
+ dict(
6
+ ema_type='ExpMomentumEMA',
7
+ momentum=0.0002,
8
+ priority=49,
9
+ type='EMAHook',
10
+ update_buffers=True),
11
+ dict(
12
+ switch_epoch=280,
13
+ switch_pipeline=[
14
+ dict(backend_args=None, type='LoadImageFromFile'),
15
+ dict(
16
+ poly2mask=False,
17
+ type='LoadAnnotations',
18
+ with_bbox=True,
19
+ with_mask=True),
20
+ dict(
21
+ keep_ratio=True,
22
+ ratio_range=(
23
+ 0.1,
24
+ 2.0,
25
+ ),
26
+ scale=(
27
+ 640,
28
+ 640,
29
+ ),
30
+ type='RandomResize'),
31
+ dict(
32
+ allow_negative_crop=True,
33
+ crop_size=(
34
+ 640,
35
+ 640,
36
+ ),
37
+ recompute_bbox=True,
38
+ type='RandomCrop'),
39
+ dict(min_gt_bbox_wh=(
40
+ 1,
41
+ 1,
42
+ ), type='FilterAnnotations'),
43
+ dict(type='YOLOXHSVRandomAug'),
44
+ dict(prob=0.5, type='RandomFlip'),
45
+ dict(
46
+ pad_val=dict(img=(
47
+ 114,
48
+ 114,
49
+ 114,
50
+ )),
51
+ size=(
52
+ 640,
53
+ 640,
54
+ ),
55
+ type='Pad'),
56
+ dict(type='PackDetInputs'),
57
+ ],
58
+ type='PipelineSwitchHook'),
59
+ ]
60
+ data_root = '/kfs2/projects/pvfleets24/repos/cv-dl-framework'
61
+ dataset_type = 'CocoDataset'
62
+ default_hooks = dict(
63
+ checkpoint=dict(
64
+ rule='greater', save_best='coco/bbox_mAP_50', type='CheckpointHook'),
65
+ logger=dict(interval=50, type='LoggerHook'),
66
+ param_scheduler=dict(type='ParamSchedulerHook'),
67
+ sampler_seed=dict(type='DistSamplerSeedHook'),
68
+ timer=dict(type='IterTimerHook'),
69
+ visualization=dict(type='DetVisualizationHook'))
70
+ default_scope = 'mmdet'
71
+ env_cfg = dict(
72
+ cudnn_benchmark=False,
73
+ dist_cfg=dict(backend='nccl'),
74
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
75
+ img_scales = [
76
+ (
77
+ 640,
78
+ 640,
79
+ ),
80
+ (
81
+ 320,
82
+ 320,
83
+ ),
84
+ (
85
+ 960,
86
+ 960,
87
+ ),
88
+ ]
89
+ interval = 10
90
+ launcher = 'none'
91
+ load_from = ('/kfs2/projects/pvfleets24/repos/cv-dl-framework/runs/' +
92
+ '03_06_2025_11_26_36/best_coco_bbox_mAP_50_epoch_283.pth')
93
+ log_level = 'INFO'
94
+ log_processor = dict(by_epoch=True, type='LogProcessor', window_size=50)
95
+ max_epochs = 300
96
+ metainfo = dict(classes=('panel', ))
97
+ model = dict(
98
+ backbone=dict(
99
+ act_cfg=dict(inplace=True, type='SiLU'),
100
+ arch='P5',
101
+ channel_attention=True,
102
+ deepen_factor=1,
103
+ expand_ratio=0.5,
104
+ norm_cfg=dict(type='SyncBN'),
105
+ type='CSPNeXt',
106
+ widen_factor=1),
107
+ bbox_head=dict(
108
+ act_cfg=dict(inplace=True, type='SiLU'),
109
+ anchor_generator=dict(
110
+ offset=0, strides=[
111
+ 8,
112
+ 16,
113
+ 32,
114
+ ], type='MlvlPointGenerator'),
115
+ bbox_coder=dict(type='DistancePointBBoxCoder'),
116
+ feat_channels=256,
117
+ in_channels=256,
118
+ loss_bbox=dict(loss_weight=2.0, type='GIoULoss'),
119
+ loss_cls=dict(
120
+ beta=2.0,
121
+ loss_weight=1.0,
122
+ type='QualityFocalLoss',
123
+ use_sigmoid=True),
124
+ loss_mask=dict(
125
+ eps=5e-06, loss_weight=2.0, reduction='mean', type='DiceLoss'),
126
+ norm_cfg=dict(requires_grad=True, type='SyncBN'),
127
+ num_classes=1,
128
+ pred_kernel_size=1,
129
+ share_conv=True,
130
+ stacked_convs=2,
131
+ test_cfg=dict(
132
+ mask_thr_binary=0.5,
133
+ max_per_img=100,
134
+ min_bbox_size=0,
135
+ nms=dict(iou_threshold=0.6, type='nms'),
136
+ nms_pre=1000,
137
+ score_thr=0.05),
138
+ train_cfg=dict(
139
+ allowed_border=-1,
140
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
141
+ debug=False,
142
+ pos_weight=-1),
143
+ type='RTMDetInsSepBNHead'),
144
+ data_preprocessor=dict(
145
+ batch_augments=None,
146
+ bgr_to_rgb=False,
147
+ mean=[
148
+ 103.53,
149
+ 116.28,
150
+ 123.675,
151
+ ],
152
+ std=[
153
+ 57.375,
154
+ 57.12,
155
+ 58.395,
156
+ ],
157
+ type='DetDataPreprocessor'),
158
+ neck=dict(
159
+ act_cfg=dict(inplace=True, type='SiLU'),
160
+ expand_ratio=0.5,
161
+ in_channels=[
162
+ 256,
163
+ 512,
164
+ 1024,
165
+ ],
166
+ norm_cfg=dict(type='SyncBN'),
167
+ num_csp_blocks=3,
168
+ out_channels=256,
169
+ type='CSPNeXtPAFPN'),
170
+ test_cfg=dict(
171
+ mask_thr_binary=0.5,
172
+ max_per_img=100,
173
+ min_bbox_size=0,
174
+ nms=dict(iou_threshold=0.6, type='nms'),
175
+ nms_pre=1000,
176
+ score_thr=0.05),
177
+ train_cfg=dict(
178
+ allowed_border=-1,
179
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
180
+ debug=False,
181
+ pos_weight=-1),
182
+ type='RTMDet')
183
+ optim_wrapper = dict(
184
+ optimizer=dict(lr=0.004, type='AdamW', weight_decay=0.05),
185
+ paramwise_cfg=dict(
186
+ bias_decay_mult=0, bypass_duplicate=True, norm_decay_mult=0),
187
+ type='OptimWrapper')
188
+ param_scheduler = [
189
+ dict(
190
+ begin=0, by_epoch=False, end=1000, start_factor=1e-05,
191
+ type='LinearLR'),
192
+ dict(
193
+ T_max=150,
194
+ begin=150,
195
+ by_epoch=True,
196
+ convert_to_iter_based=True,
197
+ end=300,
198
+ eta_min=0.0002,
199
+ type='CosineAnnealingLR'),
200
+ ]
201
+ resume = False
202
+ stage2_num_epochs = 20
203
+ test_cfg = dict(type='TestLoop')
204
+ test_dataloader = dict(
205
+ batch_size=5,
206
+ dataset=dict(
207
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
208
+ 'test/label_json.json'),
209
+ backend_args=None,
210
+ data_prefix=dict(
211
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/'
212
+ ),
213
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
214
+ metainfo=dict(classes=('panel', )),
215
+ pipeline=[
216
+ dict(backend_args=None, type='LoadImageFromFile'),
217
+ dict(keep_ratio=True, scale=(
218
+ 640,
219
+ 640,
220
+ ), type='Resize'),
221
+ dict(
222
+ pad_val=dict(img=(
223
+ 114,
224
+ 114,
225
+ 114,
226
+ )),
227
+ size=(
228
+ 640,
229
+ 640,
230
+ ),
231
+ type='Pad'),
232
+ dict(type='LoadAnnotations', with_bbox=True),
233
+ dict(
234
+ meta_keys=(
235
+ 'img_id',
236
+ 'img_path',
237
+ 'ori_shape',
238
+ 'img_shape',
239
+ 'scale_factor',
240
+ ),
241
+ type='PackDetInputs'),
242
+ ],
243
+ test_mode=True,
244
+ type='CocoDataset'),
245
+ drop_last=False,
246
+ num_workers=10,
247
+ persistent_workers=True,
248
+ sampler=dict(shuffle=False, type='DefaultSampler'))
249
+ test_evaluator = dict(
250
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
251
+ 'test/label_json.json'),
252
+ backend_args=None,
253
+ format_only=False,
254
+ metric=[
255
+ 'bbox',
256
+ 'segm',
257
+ ],
258
+ proposal_nums=(
259
+ 100,
260
+ 1,
261
+ 10,
262
+ ),
263
+ type='CocoMetric')
264
+ test_pipeline = [
265
+ dict(backend_args=None, type='LoadImageFromFile'),
266
+ dict(keep_ratio=True, scale=(
267
+ 640,
268
+ 640,
269
+ ), type='Resize'),
270
+ dict(pad_val=dict(img=(
271
+ 114,
272
+ 114,
273
+ 114,
274
+ )), size=(
275
+ 640,
276
+ 640,
277
+ ), type='Pad'),
278
+ dict(type='LoadAnnotations', with_bbox=True),
279
+ dict(
280
+ meta_keys=(
281
+ 'img_id',
282
+ 'img_path',
283
+ 'ori_shape',
284
+ 'img_shape',
285
+ 'scale_factor',
286
+ ),
287
+ type='PackDetInputs'),
288
+ ]
289
+ train_cfg = dict(
290
+ dynamic_intervals=[
291
+ (
292
+ 280,
293
+ 1,
294
+ ),
295
+ ],
296
+ max_epochs=300,
297
+ type='EpochBasedTrainLoop',
298
+ val_interval=3)
299
+ train_dataloader = dict(
300
+ batch_sampler=None,
301
+ batch_size=32,
302
+ dataset=dict(
303
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
304
+ 'train/label_json.json'),
305
+ backend_args=None,
306
+ data_prefix=dict(
307
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/train/images/'
308
+ ),
309
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
310
+ filter_cfg=dict(filter_empty_gt=True, min_size=32),
311
+ metainfo=dict(classes=('panel', )),
312
+ pipeline=[
313
+ dict(backend_args=None, type='LoadImageFromFile'),
314
+ dict(
315
+ poly2mask=False,
316
+ type='LoadAnnotations',
317
+ with_bbox=True,
318
+ with_mask=True),
319
+ dict(img_scale=(
320
+ 640,
321
+ 640,
322
+ ), pad_val=114.0, type='CachedMosaic'),
323
+ dict(
324
+ keep_ratio=True,
325
+ ratio_range=(
326
+ 0.1,
327
+ 2.0,
328
+ ),
329
+ scale=(
330
+ 1280,
331
+ 1280,
332
+ ),
333
+ type='RandomResize'),
334
+ dict(
335
+ allow_negative_crop=True,
336
+ crop_size=(
337
+ 640,
338
+ 640,
339
+ ),
340
+ recompute_bbox=True,
341
+ type='RandomCrop'),
342
+ dict(type='YOLOXHSVRandomAug'),
343
+ dict(prob=0.5, type='RandomFlip'),
344
+ dict(
345
+ pad_val=dict(img=(
346
+ 114,
347
+ 114,
348
+ 114,
349
+ )),
350
+ size=(
351
+ 640,
352
+ 640,
353
+ ),
354
+ type='Pad'),
355
+ dict(
356
+ img_scale=(
357
+ 640,
358
+ 640,
359
+ ),
360
+ max_cached_images=20,
361
+ pad_val=(
362
+ 114,
363
+ 114,
364
+ 114,
365
+ ),
366
+ ratio_range=(
367
+ 1.0,
368
+ 1.0,
369
+ ),
370
+ type='CachedMixUp'),
371
+ dict(min_gt_bbox_wh=(
372
+ 1,
373
+ 1,
374
+ ), type='FilterAnnotations'),
375
+ dict(type='PackDetInputs'),
376
+ ],
377
+ type='CocoDataset'),
378
+ num_workers=10,
379
+ persistent_workers=True,
380
+ pin_memory=True,
381
+ sampler=dict(shuffle=True, type='DefaultSampler'))
382
+ train_pipeline = [
383
+ dict(backend_args=None, type='LoadImageFromFile'),
384
+ dict(
385
+ poly2mask=False,
386
+ type='LoadAnnotations',
387
+ with_bbox=True,
388
+ with_mask=True),
389
+ dict(img_scale=(
390
+ 640,
391
+ 640,
392
+ ), pad_val=114.0, type='CachedMosaic'),
393
+ dict(
394
+ keep_ratio=True,
395
+ ratio_range=(
396
+ 0.1,
397
+ 2.0,
398
+ ),
399
+ scale=(
400
+ 1280,
401
+ 1280,
402
+ ),
403
+ type='RandomResize'),
404
+ dict(
405
+ allow_negative_crop=True,
406
+ crop_size=(
407
+ 640,
408
+ 640,
409
+ ),
410
+ recompute_bbox=True,
411
+ type='RandomCrop'),
412
+ dict(type='YOLOXHSVRandomAug'),
413
+ dict(prob=0.5, type='RandomFlip'),
414
+ dict(pad_val=dict(img=(
415
+ 114,
416
+ 114,
417
+ 114,
418
+ )), size=(
419
+ 640,
420
+ 640,
421
+ ), type='Pad'),
422
+ dict(
423
+ img_scale=(
424
+ 640,
425
+ 640,
426
+ ),
427
+ max_cached_images=20,
428
+ pad_val=(
429
+ 114,
430
+ 114,
431
+ 114,
432
+ ),
433
+ ratio_range=(
434
+ 1.0,
435
+ 1.0,
436
+ ),
437
+ type='CachedMixUp'),
438
+ dict(min_gt_bbox_wh=(
439
+ 1,
440
+ 1,
441
+ ), type='FilterAnnotations'),
442
+ dict(type='PackDetInputs'),
443
+ ]
444
+ train_pipeline_stage2 = [
445
+ dict(backend_args=None, type='LoadImageFromFile'),
446
+ dict(
447
+ poly2mask=False,
448
+ type='LoadAnnotations',
449
+ with_bbox=True,
450
+ with_mask=True),
451
+ dict(
452
+ keep_ratio=True,
453
+ ratio_range=(
454
+ 0.1,
455
+ 2.0,
456
+ ),
457
+ scale=(
458
+ 640,
459
+ 640,
460
+ ),
461
+ type='RandomResize'),
462
+ dict(
463
+ allow_negative_crop=True,
464
+ crop_size=(
465
+ 640,
466
+ 640,
467
+ ),
468
+ recompute_bbox=True,
469
+ type='RandomCrop'),
470
+ dict(min_gt_bbox_wh=(
471
+ 1,
472
+ 1,
473
+ ), type='FilterAnnotations'),
474
+ dict(type='YOLOXHSVRandomAug'),
475
+ dict(prob=0.5, type='RandomFlip'),
476
+ dict(pad_val=dict(img=(
477
+ 114,
478
+ 114,
479
+ 114,
480
+ )), size=(
481
+ 640,
482
+ 640,
483
+ ), type='Pad'),
484
+ dict(type='PackDetInputs'),
485
+ ]
486
+ tta_model = dict(
487
+ tta_cfg=dict(max_per_img=100, nms=dict(iou_threshold=0.6, type='nms')),
488
+ type='DetTTAModel')
489
+ tta_pipeline = [
490
+ dict(backend_args=None, type='LoadImageFromFile'),
491
+ dict(
492
+ transforms=[
493
+ [
494
+ dict(keep_ratio=True, scale=(
495
+ 640,
496
+ 640,
497
+ ), type='Resize'),
498
+ dict(keep_ratio=True, scale=(
499
+ 320,
500
+ 320,
501
+ ), type='Resize'),
502
+ dict(keep_ratio=True, scale=(
503
+ 960,
504
+ 960,
505
+ ), type='Resize'),
506
+ ],
507
+ [
508
+ dict(prob=1.0, type='RandomFlip'),
509
+ dict(prob=0.0, type='RandomFlip'),
510
+ ],
511
+ [
512
+ dict(
513
+ pad_val=dict(img=(
514
+ 114,
515
+ 114,
516
+ 114,
517
+ )),
518
+ size=(
519
+ 960,
520
+ 960,
521
+ ),
522
+ type='Pad'),
523
+ ],
524
+ [
525
+ dict(type='LoadAnnotations', with_bbox=True),
526
+ ],
527
+ [
528
+ dict(
529
+ meta_keys=(
530
+ 'img_id',
531
+ 'img_path',
532
+ 'ori_shape',
533
+ 'img_shape',
534
+ 'scale_factor',
535
+ 'flip',
536
+ 'flip_direction',
537
+ ),
538
+ type='PackDetInputs'),
539
+ ],
540
+ ],
541
+ type='TestTimeAug'),
542
+ ]
543
+ val_cfg = dict(type='ValLoop')
544
+ val_dataloader = dict(
545
+ batch_size=5,
546
+ dataset=dict(
547
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
548
+ 'test/label_json.json'),
549
+ backend_args=None,
550
+ data_prefix=dict(
551
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/'
552
+ ),
553
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
554
+ metainfo=dict(classes=('panel', )),
555
+ pipeline=[
556
+ dict(backend_args=None, type='LoadImageFromFile'),
557
+ dict(keep_ratio=True, scale=(
558
+ 640,
559
+ 640,
560
+ ), type='Resize'),
561
+ dict(
562
+ pad_val=dict(img=(
563
+ 114,
564
+ 114,
565
+ 114,
566
+ )),
567
+ size=(
568
+ 640,
569
+ 640,
570
+ ),
571
+ type='Pad'),
572
+ dict(type='LoadAnnotations', with_bbox=True),
573
+ dict(
574
+ meta_keys=(
575
+ 'img_id',
576
+ 'img_path',
577
+ 'ori_shape',
578
+ 'img_shape',
579
+ 'scale_factor',
580
+ ),
581
+ type='PackDetInputs'),
582
+ ],
583
+ test_mode=True,
584
+ type='CocoDataset'),
585
+ drop_last=False,
586
+ num_workers=10,
587
+ persistent_workers=True,
588
+ sampler=dict(shuffle=False, type='DefaultSampler'))
589
+ val_evaluator = dict(
590
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
591
+ 'test/label_json.json'),
592
+ backend_args=None,
593
+ format_only=False,
594
+ metric=[
595
+ 'bbox',
596
+ 'segm',
597
+ ],
598
+ proposal_nums=(
599
+ 100,
600
+ 1,
601
+ 10,
602
+ ),
603
+ type='CocoMetric')
604
+ vis_backends = [
605
+ dict(type='LocalVisBackend'),
606
+ ]
607
+ visualizer = dict(
608
+ name='visualizer',
609
+ type='DetLocalVisualizer',
610
+ vis_backends=[
611
+ dict(
612
+ save_dir=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
613
+ 'runs/03_06_2025_11_26_36'),
614
+ type='LocalVisBackend'),
615
+ ])
616
+ work_dir = ('/kfs2/projects/pvfleets24/repos/cv-dl-framework/' +
617
+ 'runs/03_06_2025_11_26_36')
pre_hurricane_model.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a404a586b82d2afbb6c04b5ac175a7414cb992ee4da0ccebe08d1afdd7aa9d12
3
+ size 485264789
sol_searcher_config.py ADDED
@@ -0,0 +1,566 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ auto_scale_lr = dict(base_batch_size=16, enable=False)
2
+ backend_args = None
3
+ base_lr = 0.004
4
+ custom_hooks = [
5
+ dict(
6
+ ema_type='ExpMomentumEMA',
7
+ momentum=0.0002,
8
+ priority=49,
9
+ type='EMAHook',
10
+ update_buffers=True),
11
+ dict(
12
+ switch_epoch=280,
13
+ switch_pipeline=[
14
+ dict(backend_args=None, type='LoadImageFromFile'),
15
+ dict(type='LoadAnnotations', with_bbox=True),
16
+ dict(
17
+ keep_ratio=True,
18
+ ratio_range=(
19
+ 0.1,
20
+ 2.0,
21
+ ),
22
+ scale=(
23
+ 640,
24
+ 640,
25
+ ),
26
+ type='RandomResize'),
27
+ dict(crop_size=(
28
+ 640,
29
+ 640,
30
+ ), type='RandomCrop'),
31
+ dict(type='YOLOXHSVRandomAug'),
32
+ dict(prob=0.5, type='RandomFlip'),
33
+ dict(
34
+ pad_val=dict(img=(
35
+ 114,
36
+ 114,
37
+ 114,
38
+ )),
39
+ size=(
40
+ 640,
41
+ 640,
42
+ ),
43
+ type='Pad'),
44
+ dict(type='PackDetInputs'),
45
+ ],
46
+ type='PipelineSwitchHook'),
47
+ ]
48
+ data_root = '/kfs2/projects/pvfleets24/repos/cv-dl-framework'
49
+ dataset_type = 'CocoDataset'
50
+ default_hooks = dict(
51
+ checkpoint=dict(
52
+ rule='greater', save_best='coco/bbox_mAP_50', type='CheckpointHook'),
53
+ logger=dict(interval=50, type='LoggerHook'),
54
+ param_scheduler=dict(type='ParamSchedulerHook'),
55
+ sampler_seed=dict(type='DistSamplerSeedHook'),
56
+ timer=dict(type='IterTimerHook'),
57
+ visualization=dict(type='DetVisualizationHook'))
58
+ default_scope = 'mmdet'
59
+ env_cfg = dict(
60
+ cudnn_benchmark=False,
61
+ dist_cfg=dict(backend='nccl'),
62
+ mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0))
63
+ img_scales = [
64
+ (
65
+ 640,
66
+ 640,
67
+ ),
68
+ (
69
+ 320,
70
+ 320,
71
+ ),
72
+ (
73
+ 960,
74
+ 960,
75
+ ),
76
+ ]
77
+ interval = 10
78
+ launcher = 'none'
79
+ load_from = ('/kfs2/projects/pvfleets24/repos/cv-dl-framework/runs/' +
80
+ 'sol-searcher.v1i.coco-segmentation/07_06_2025_03_44_01/' +
81
+ 'best_coco_bbox_mAP_50_epoch_324.pth')
82
+ log_level = 'INFO'
83
+ log_processor = dict(by_epoch=True, type='LogProcessor', window_size=50)
84
+ max_epochs = 300
85
+ metainfo = dict(classes=('panel', ))
86
+ model = dict(
87
+ backbone=dict(
88
+ act_cfg=dict(inplace=True, type='SiLU'),
89
+ arch='P5',
90
+ channel_attention=True,
91
+ deepen_factor=1.33,
92
+ expand_ratio=0.5,
93
+ norm_cfg=dict(type='SyncBN'),
94
+ type='CSPNeXt',
95
+ widen_factor=1.25),
96
+ bbox_head=dict(
97
+ act_cfg=dict(inplace=True, type='SiLU'),
98
+ anchor_generator=dict(
99
+ offset=0, strides=[
100
+ 8,
101
+ 16,
102
+ 32,
103
+ ], type='MlvlPointGenerator'),
104
+ bbox_coder=dict(type='DistancePointBBoxCoder'),
105
+ exp_on_reg=True,
106
+ feat_channels=320,
107
+ in_channels=320,
108
+ loss_bbox=dict(loss_weight=2.0, type='GIoULoss'),
109
+ loss_cls=dict(
110
+ beta=2.0,
111
+ loss_weight=1.0,
112
+ type='QualityFocalLoss',
113
+ use_sigmoid=True),
114
+ norm_cfg=dict(type='SyncBN'),
115
+ num_classes=1,
116
+ pred_kernel_size=1,
117
+ share_conv=True,
118
+ stacked_convs=2,
119
+ test_cfg=dict(
120
+ max_per_img=300,
121
+ min_bbox_size=0,
122
+ nms=dict(iou_threshold=0.65, type='nms'),
123
+ nms_pre=30000,
124
+ score_thr=0.001),
125
+ train_cfg=dict(
126
+ allowed_border=-1,
127
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
128
+ debug=False,
129
+ pos_weight=-1),
130
+ type='RTMDetSepBNHead',
131
+ with_objectness=False),
132
+ data_preprocessor=dict(
133
+ batch_augments=None,
134
+ bgr_to_rgb=False,
135
+ mean=[
136
+ 103.53,
137
+ 116.28,
138
+ 123.675,
139
+ ],
140
+ std=[
141
+ 57.375,
142
+ 57.12,
143
+ 58.395,
144
+ ],
145
+ type='DetDataPreprocessor'),
146
+ neck=dict(
147
+ act_cfg=dict(inplace=True, type='SiLU'),
148
+ expand_ratio=0.5,
149
+ in_channels=[
150
+ 320,
151
+ 640,
152
+ 1280,
153
+ ],
154
+ norm_cfg=dict(type='SyncBN'),
155
+ num_csp_blocks=4,
156
+ out_channels=320,
157
+ type='CSPNeXtPAFPN'),
158
+ test_cfg=dict(
159
+ max_per_img=300,
160
+ min_bbox_size=0,
161
+ nms=dict(iou_threshold=0.65, type='nms'),
162
+ nms_pre=30000,
163
+ score_thr=0.001),
164
+ train_cfg=dict(
165
+ allowed_border=-1,
166
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
167
+ debug=False,
168
+ pos_weight=-1),
169
+ type='RTMDet')
170
+ optim_wrapper = dict(
171
+ optimizer=dict(
172
+ lr=0.0013396075094963768,
173
+ type='AdamW',
174
+ weight_decay=0.0764032184205418),
175
+ paramwise_cfg=dict(
176
+ bias_decay_mult=0, bypass_duplicate=True, norm_decay_mult=0),
177
+ type='OptimWrapper')
178
+ param_scheduler = [
179
+ dict(
180
+ begin=0, by_epoch=False, end=1000, start_factor=1e-05,
181
+ type='LinearLR'),
182
+ dict(
183
+ T_max=150,
184
+ begin=150,
185
+ by_epoch=True,
186
+ convert_to_iter_based=True,
187
+ end=300,
188
+ eta_min=0.0002,
189
+ type='CosineAnnealingLR'),
190
+ ]
191
+ resume = False
192
+ stage2_num_epochs = 20
193
+ test_cfg = dict(type='TestLoop')
194
+ test_dataloader = dict(
195
+ batch_size=5,
196
+ dataset=dict(
197
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework' +
198
+ '/test/label_json.json'),
199
+ backend_args=None,
200
+ data_prefix=dict(
201
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/'
202
+ ),
203
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
204
+ metainfo=dict(classes=('panel', )),
205
+ pipeline=[
206
+ dict(backend_args=None, type='LoadImageFromFile'),
207
+ dict(keep_ratio=True, scale=(
208
+ 640,
209
+ 640,
210
+ ), type='Resize'),
211
+ dict(
212
+ pad_val=dict(img=(
213
+ 114,
214
+ 114,
215
+ 114,
216
+ )),
217
+ size=(
218
+ 640,
219
+ 640,
220
+ ),
221
+ type='Pad'),
222
+ dict(type='LoadAnnotations', with_bbox=True),
223
+ dict(
224
+ meta_keys=(
225
+ 'img_id',
226
+ 'img_path',
227
+ 'ori_shape',
228
+ 'img_shape',
229
+ 'scale_factor',
230
+ ),
231
+ type='PackDetInputs'),
232
+ ],
233
+ test_mode=True,
234
+ type='CocoDataset'),
235
+ drop_last=False,
236
+ num_workers=10,
237
+ persistent_workers=True,
238
+ sampler=dict(shuffle=False, type='DefaultSampler'))
239
+ test_evaluator = dict(
240
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework' +
241
+ '/test/label_json.json'),
242
+ backend_args=None,
243
+ format_only=False,
244
+ metric='bbox',
245
+ proposal_nums=(
246
+ 100,
247
+ 1,
248
+ 10,
249
+ ),
250
+ type='CocoMetric')
251
+ test_pipeline = [
252
+ dict(backend_args=None, type='LoadImageFromFile'),
253
+ dict(keep_ratio=True, scale=(
254
+ 640,
255
+ 640,
256
+ ), type='Resize'),
257
+ dict(pad_val=dict(img=(
258
+ 114,
259
+ 114,
260
+ 114,
261
+ )), size=(
262
+ 640,
263
+ 640,
264
+ ), type='Pad'),
265
+ dict(type='LoadAnnotations', with_bbox=True),
266
+ dict(
267
+ meta_keys=(
268
+ 'img_id',
269
+ 'img_path',
270
+ 'ori_shape',
271
+ 'img_shape',
272
+ 'scale_factor',
273
+ ),
274
+ type='PackDetInputs'),
275
+ ]
276
+ train_cfg = dict(
277
+ dynamic_intervals=[
278
+ (
279
+ 280,
280
+ 1,
281
+ ),
282
+ ],
283
+ max_epochs=400,
284
+ type='EpochBasedTrainLoop',
285
+ val_interval=3)
286
+ train_dataloader = dict(
287
+ batch_sampler=None,
288
+ batch_size=32,
289
+ dataset=dict(
290
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework' +
291
+ '/train/label_json.json'),
292
+ backend_args=None,
293
+ data_prefix=dict(
294
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/train/images/'
295
+ ),
296
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
297
+ filter_cfg=dict(filter_empty_gt=True, min_size=32),
298
+ metainfo=dict(classes=('panel', )),
299
+ pipeline=[
300
+ dict(backend_args=None, type='LoadImageFromFile'),
301
+ dict(type='LoadAnnotations', with_bbox=True),
302
+ dict(img_scale=(
303
+ 640,
304
+ 640,
305
+ ), pad_val=114.0, type='CachedMosaic'),
306
+ dict(
307
+ keep_ratio=True,
308
+ ratio_range=(
309
+ 0.1,
310
+ 2.0,
311
+ ),
312
+ scale=(
313
+ 1280,
314
+ 1280,
315
+ ),
316
+ type='RandomResize'),
317
+ dict(crop_size=(
318
+ 640,
319
+ 640,
320
+ ), type='RandomCrop'),
321
+ dict(type='YOLOXHSVRandomAug'),
322
+ dict(prob=0.5, type='RandomFlip'),
323
+ dict(
324
+ pad_val=dict(img=(
325
+ 114,
326
+ 114,
327
+ 114,
328
+ )),
329
+ size=(
330
+ 640,
331
+ 640,
332
+ ),
333
+ type='Pad'),
334
+ dict(
335
+ img_scale=(
336
+ 640,
337
+ 640,
338
+ ),
339
+ max_cached_images=20,
340
+ pad_val=(
341
+ 114,
342
+ 114,
343
+ 114,
344
+ ),
345
+ ratio_range=(
346
+ 1.0,
347
+ 1.0,
348
+ ),
349
+ type='CachedMixUp'),
350
+ dict(type='PackDetInputs'),
351
+ ],
352
+ type='CocoDataset'),
353
+ num_workers=10,
354
+ persistent_workers=True,
355
+ pin_memory=True,
356
+ sampler=dict(shuffle=True, type='DefaultSampler'))
357
+ train_pipeline = [
358
+ dict(backend_args=None, type='LoadImageFromFile'),
359
+ dict(type='LoadAnnotations', with_bbox=True),
360
+ dict(img_scale=(
361
+ 640,
362
+ 640,
363
+ ), pad_val=114.0, type='CachedMosaic'),
364
+ dict(
365
+ keep_ratio=True,
366
+ ratio_range=(
367
+ 0.1,
368
+ 2.0,
369
+ ),
370
+ scale=(
371
+ 1280,
372
+ 1280,
373
+ ),
374
+ type='RandomResize'),
375
+ dict(crop_size=(
376
+ 640,
377
+ 640,
378
+ ), type='RandomCrop'),
379
+ dict(type='YOLOXHSVRandomAug'),
380
+ dict(prob=0.5, type='RandomFlip'),
381
+ dict(pad_val=dict(img=(
382
+ 114,
383
+ 114,
384
+ 114,
385
+ )), size=(
386
+ 640,
387
+ 640,
388
+ ), type='Pad'),
389
+ dict(
390
+ img_scale=(
391
+ 640,
392
+ 640,
393
+ ),
394
+ max_cached_images=20,
395
+ pad_val=(
396
+ 114,
397
+ 114,
398
+ 114,
399
+ ),
400
+ ratio_range=(
401
+ 1.0,
402
+ 1.0,
403
+ ),
404
+ type='CachedMixUp'),
405
+ dict(type='PackDetInputs'),
406
+ ]
407
+ train_pipeline_stage2 = [
408
+ dict(backend_args=None, type='LoadImageFromFile'),
409
+ dict(type='LoadAnnotations', with_bbox=True),
410
+ dict(
411
+ keep_ratio=True,
412
+ ratio_range=(
413
+ 0.1,
414
+ 2.0,
415
+ ),
416
+ scale=(
417
+ 640,
418
+ 640,
419
+ ),
420
+ type='RandomResize'),
421
+ dict(crop_size=(
422
+ 640,
423
+ 640,
424
+ ), type='RandomCrop'),
425
+ dict(type='YOLOXHSVRandomAug'),
426
+ dict(prob=0.5, type='RandomFlip'),
427
+ dict(pad_val=dict(img=(
428
+ 114,
429
+ 114,
430
+ 114,
431
+ )), size=(
432
+ 640,
433
+ 640,
434
+ ), type='Pad'),
435
+ dict(type='PackDetInputs'),
436
+ ]
437
+ tta_model = dict(
438
+ tta_cfg=dict(max_per_img=100, nms=dict(iou_threshold=0.6, type='nms')),
439
+ type='DetTTAModel')
440
+ tta_pipeline = [
441
+ dict(backend_args=None, type='LoadImageFromFile'),
442
+ dict(
443
+ transforms=[
444
+ [
445
+ dict(keep_ratio=True, scale=(
446
+ 640,
447
+ 640,
448
+ ), type='Resize'),
449
+ dict(keep_ratio=True, scale=(
450
+ 320,
451
+ 320,
452
+ ), type='Resize'),
453
+ dict(keep_ratio=True, scale=(
454
+ 960,
455
+ 960,
456
+ ), type='Resize'),
457
+ ],
458
+ [
459
+ dict(prob=1.0, type='RandomFlip'),
460
+ dict(prob=0.0, type='RandomFlip'),
461
+ ],
462
+ [
463
+ dict(
464
+ pad_val=dict(img=(
465
+ 114,
466
+ 114,
467
+ 114,
468
+ )),
469
+ size=(
470
+ 960,
471
+ 960,
472
+ ),
473
+ type='Pad'),
474
+ ],
475
+ [
476
+ dict(type='LoadAnnotations', with_bbox=True),
477
+ ],
478
+ [
479
+ dict(
480
+ meta_keys=(
481
+ 'img_id',
482
+ 'img_path',
483
+ 'ori_shape',
484
+ 'img_shape',
485
+ 'scale_factor',
486
+ 'flip',
487
+ 'flip_direction',
488
+ ),
489
+ type='PackDetInputs'),
490
+ ],
491
+ ],
492
+ type='TestTimeAug'),
493
+ ]
494
+ val_cfg = dict(type='ValLoop')
495
+ val_dataloader = dict(
496
+ batch_size=5,
497
+ dataset=dict(
498
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework' +
499
+ '/test/label_json.json'),
500
+ backend_args=None,
501
+ data_prefix=dict(
502
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/'
503
+ ),
504
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
505
+ metainfo=dict(classes=('panel', )),
506
+ pipeline=[
507
+ dict(backend_args=None, type='LoadImageFromFile'),
508
+ dict(keep_ratio=True, scale=(
509
+ 640,
510
+ 640,
511
+ ), type='Resize'),
512
+ dict(
513
+ pad_val=dict(img=(
514
+ 114,
515
+ 114,
516
+ 114,
517
+ )),
518
+ size=(
519
+ 640,
520
+ 640,
521
+ ),
522
+ type='Pad'),
523
+ dict(type='LoadAnnotations', with_bbox=True),
524
+ dict(
525
+ meta_keys=(
526
+ 'img_id',
527
+ 'img_path',
528
+ 'ori_shape',
529
+ 'img_shape',
530
+ 'scale_factor',
531
+ ),
532
+ type='PackDetInputs'),
533
+ ],
534
+ test_mode=True,
535
+ type='CocoDataset'),
536
+ drop_last=False,
537
+ num_workers=10,
538
+ persistent_workers=True,
539
+ sampler=dict(shuffle=False, type='DefaultSampler'))
540
+ val_evaluator = dict(
541
+ ann_file=('/kfs2/projects/pvfleets24/repos/cv-dl-framework' +
542
+ '/test/label_json.json'),
543
+ backend_args=None,
544
+ format_only=False,
545
+ metric='bbox',
546
+ proposal_nums=(
547
+ 100,
548
+ 1,
549
+ 10,
550
+ ),
551
+ type='CocoMetric')
552
+ vis_backends = [
553
+ dict(type='LocalVisBackend'),
554
+ ]
555
+ visualizer = dict(
556
+ name='visualizer',
557
+ type='DetLocalVisualizer',
558
+ vis_backends=[
559
+ dict(
560
+ save_dir=('/kfs2/projects/pvfleets24/repos/cv-dl-framework/runs' +
561
+ '/sol-searcher.v1i.coco-segmentation/' +
562
+ '07_06_2025_03_44_01'),
563
+ type='LocalVisBackend'),
564
+ ])
565
+ work_dir = ('/kfs2/projects/pvfleets24/repos/cv-dl-framework/runs' +
566
+ '/sol-searcher.v1i.coco-segmentation/07_06_2025_03_44_01')
sol_searcher_model.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2c71b0ecd523e78487444c19a8de0edf9748494473476cde48779b39a2693405
3
+ size 791335897