kperrynrel commited on
Commit
4e377ee
·
verified ·
1 Parent(s): 8579dcb

Upload 2 files

Browse files
Files changed (2) hide show
  1. autogeotag_model_2.pth +3 -0
  2. autogeotag_model_2.py +659 -0
autogeotag_model_2.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f14284c95d6809624427e5d6642dabf52271532329de2673db057129ed1a02fe
3
+ size 878059181
autogeotag_model_2.py ADDED
@@ -0,0 +1,659 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 = '/kfs2/projects/pvfleets24/repos/cv-dl-framework/checkpoints/rtmdet-ins_x_8xb16-300e_coco_20221124_111313-33d4595b.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
+ 'substation',
102
+ 'switch',
103
+ 'other',
104
+ 'tracker-cable',
105
+ 'transformer',
106
+ 'battery',
107
+ 'carport',
108
+ 'rooftop',
109
+ ))
110
+ model = dict(
111
+ backbone=dict(
112
+ act_cfg=dict(inplace=True, type='SiLU'),
113
+ arch='P5',
114
+ channel_attention=True,
115
+ deepen_factor=1.33,
116
+ expand_ratio=0.5,
117
+ norm_cfg=dict(type='SyncBN'),
118
+ type='CSPNeXt',
119
+ widen_factor=1.25),
120
+ bbox_head=dict(
121
+ act_cfg=dict(inplace=True, type='SiLU'),
122
+ anchor_generator=dict(
123
+ offset=0, strides=[
124
+ 8,
125
+ 16,
126
+ 32,
127
+ ], type='MlvlPointGenerator'),
128
+ bbox_coder=dict(type='DistancePointBBoxCoder'),
129
+ feat_channels=320,
130
+ in_channels=320,
131
+ loss_bbox=dict(loss_weight=2.0, type='GIoULoss'),
132
+ loss_cls=dict(
133
+ beta=2.0,
134
+ loss_weight=1.0,
135
+ type='QualityFocalLoss',
136
+ use_sigmoid=True),
137
+ loss_mask=dict(
138
+ eps=5e-06, loss_weight=2.0, reduction='mean', type='DiceLoss'),
139
+ norm_cfg=dict(requires_grad=True, type='SyncBN'),
140
+ num_classes=12,
141
+ pred_kernel_size=1,
142
+ share_conv=True,
143
+ stacked_convs=2,
144
+ type='RTMDetInsSepBNHead'),
145
+ data_preprocessor=dict(
146
+ batch_augments=None,
147
+ bgr_to_rgb=False,
148
+ mean=[
149
+ 103.53,
150
+ 116.28,
151
+ 123.675,
152
+ ],
153
+ std=[
154
+ 57.375,
155
+ 57.12,
156
+ 58.395,
157
+ ],
158
+ type='DetDataPreprocessor'),
159
+ neck=dict(
160
+ act_cfg=dict(inplace=True, type='SiLU'),
161
+ expand_ratio=0.5,
162
+ in_channels=[
163
+ 320,
164
+ 640,
165
+ 1280,
166
+ ],
167
+ norm_cfg=dict(type='SyncBN'),
168
+ num_csp_blocks=4,
169
+ out_channels=320,
170
+ type='CSPNeXtPAFPN'),
171
+ test_cfg=dict(
172
+ mask_thr_binary=0.5,
173
+ max_per_img=100,
174
+ min_bbox_size=0,
175
+ nms=dict(iou_threshold=0.6, type='nms'),
176
+ nms_pre=1000,
177
+ score_thr=0.05),
178
+ train_cfg=dict(
179
+ allowed_border=-1,
180
+ assigner=dict(topk=13, type='DynamicSoftLabelAssigner'),
181
+ debug=False,
182
+ pos_weight=-1),
183
+ type='RTMDet')
184
+ optim_wrapper = dict(
185
+ optimizer=dict(lr=0.002, type='AdamW', weight_decay=0.05),
186
+ paramwise_cfg=dict(
187
+ bias_decay_mult=0, bypass_duplicate=True, norm_decay_mult=0),
188
+ type='OptimWrapper')
189
+ param_scheduler = [
190
+ dict(
191
+ begin=0, by_epoch=False, end=1000, start_factor=1e-05,
192
+ type='LinearLR'),
193
+ dict(
194
+ T_max=150,
195
+ begin=150,
196
+ by_epoch=True,
197
+ convert_to_iter_based=True,
198
+ end=300,
199
+ eta_min=0.0001,
200
+ type='CosineAnnealingLR'),
201
+ ]
202
+ resume = False
203
+ stage2_num_epochs = 20
204
+ test_cfg = dict(type='TestLoop')
205
+ test_dataloader = dict(
206
+ batch_size=5,
207
+ dataset=dict(
208
+ ann_file=
209
+ '/kfs2/projects/pvfleets24/repos/cv-dl-framework/valid/label_json.json',
210
+ backend_args=None,
211
+ data_prefix=dict(
212
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/valid/images/'
213
+ ),
214
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
215
+ metainfo=dict(
216
+ classes=(
217
+ 'tracker-row',
218
+ 'inverter',
219
+ 'dual-axis-tracker',
220
+ 'fix-tilt-row',
221
+ 'substation',
222
+ 'switch',
223
+ 'other',
224
+ 'tracker-cable',
225
+ 'transformer',
226
+ 'battery',
227
+ 'carport',
228
+ 'rooftop',
229
+ )),
230
+ pipeline=[
231
+ dict(backend_args=None, type='LoadImageFromFile'),
232
+ dict(keep_ratio=True, scale=(
233
+ 640,
234
+ 640,
235
+ ), type='Resize'),
236
+ dict(
237
+ pad_val=dict(img=(
238
+ 114,
239
+ 114,
240
+ 114,
241
+ )),
242
+ size=(
243
+ 640,
244
+ 640,
245
+ ),
246
+ type='Pad'),
247
+ dict(type='LoadAnnotations', with_bbox=True),
248
+ dict(
249
+ meta_keys=(
250
+ 'img_id',
251
+ 'img_path',
252
+ 'ori_shape',
253
+ 'img_shape',
254
+ 'scale_factor',
255
+ ),
256
+ type='PackDetInputs'),
257
+ ],
258
+ test_mode=True,
259
+ type='CocoDataset'),
260
+ drop_last=False,
261
+ num_workers=10,
262
+ persistent_workers=True,
263
+ sampler=dict(shuffle=False, type='DefaultSampler'))
264
+ test_evaluator = dict(
265
+ ann_file=
266
+ '/kfs2/projects/pvfleets24/repos/cv-dl-framework/valid/label_json.json',
267
+ backend_args=None,
268
+ format_only=False,
269
+ metric=[
270
+ 'bbox',
271
+ 'segm',
272
+ ],
273
+ proposal_nums=(
274
+ 100,
275
+ 1,
276
+ 10,
277
+ ),
278
+ type='CocoMetric')
279
+ test_pipeline = [
280
+ dict(backend_args=None, type='LoadImageFromFile'),
281
+ dict(keep_ratio=True, scale=(
282
+ 640,
283
+ 640,
284
+ ), type='Resize'),
285
+ dict(pad_val=dict(img=(
286
+ 114,
287
+ 114,
288
+ 114,
289
+ )), size=(
290
+ 640,
291
+ 640,
292
+ ), type='Pad'),
293
+ dict(type='LoadAnnotations', with_bbox=True),
294
+ dict(
295
+ meta_keys=(
296
+ 'img_id',
297
+ 'img_path',
298
+ 'ori_shape',
299
+ 'img_shape',
300
+ 'scale_factor',
301
+ ),
302
+ type='PackDetInputs'),
303
+ ]
304
+ train_cfg = dict(
305
+ dynamic_intervals=[
306
+ (
307
+ 280,
308
+ 1,
309
+ ),
310
+ ],
311
+ max_epochs=300,
312
+ type='EpochBasedTrainLoop',
313
+ val_interval=3)
314
+ train_dataloader = dict(
315
+ batch_sampler=None,
316
+ batch_size=4,
317
+ dataset=dict(
318
+ ann_file=
319
+ '/kfs2/projects/pvfleets24/repos/cv-dl-framework/train/label_json.json',
320
+ backend_args=None,
321
+ data_prefix=dict(
322
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/train/images/'
323
+ ),
324
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
325
+ filter_cfg=dict(filter_empty_gt=True, min_size=32),
326
+ metainfo=dict(
327
+ classes=(
328
+ 'tracker-row',
329
+ 'inverter',
330
+ 'dual-axis-tracker',
331
+ 'fix-tilt-row',
332
+ 'substation',
333
+ 'switch',
334
+ 'other',
335
+ 'tracker-cable',
336
+ 'transformer',
337
+ 'battery',
338
+ 'carport',
339
+ 'rooftop',
340
+ )),
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(img_scale=(
349
+ 640,
350
+ 640,
351
+ ), pad_val=114.0, type='CachedMosaic'),
352
+ dict(
353
+ keep_ratio=True,
354
+ ratio_range=(
355
+ 0.1,
356
+ 2.0,
357
+ ),
358
+ scale=(
359
+ 1280,
360
+ 1280,
361
+ ),
362
+ type='RandomResize'),
363
+ dict(
364
+ allow_negative_crop=True,
365
+ crop_size=(
366
+ 640,
367
+ 640,
368
+ ),
369
+ recompute_bbox=True,
370
+ type='RandomCrop'),
371
+ dict(type='YOLOXHSVRandomAug'),
372
+ dict(prob=0.5, type='RandomFlip'),
373
+ dict(
374
+ pad_val=dict(img=(
375
+ 114,
376
+ 114,
377
+ 114,
378
+ )),
379
+ size=(
380
+ 640,
381
+ 640,
382
+ ),
383
+ type='Pad'),
384
+ dict(
385
+ img_scale=(
386
+ 640,
387
+ 640,
388
+ ),
389
+ max_cached_images=20,
390
+ pad_val=(
391
+ 114,
392
+ 114,
393
+ 114,
394
+ ),
395
+ ratio_range=(
396
+ 1.0,
397
+ 1.0,
398
+ ),
399
+ type='CachedMixUp'),
400
+ dict(min_gt_bbox_wh=(
401
+ 1,
402
+ 1,
403
+ ), type='FilterAnnotations'),
404
+ dict(type='PackDetInputs'),
405
+ ],
406
+ type='CocoDataset'),
407
+ num_workers=10,
408
+ persistent_workers=True,
409
+ pin_memory=True,
410
+ sampler=dict(shuffle=True, type='DefaultSampler'))
411
+ train_pipeline = [
412
+ dict(backend_args=None, type='LoadImageFromFile'),
413
+ dict(
414
+ poly2mask=False,
415
+ type='LoadAnnotations',
416
+ with_bbox=True,
417
+ with_mask=True),
418
+ dict(img_scale=(
419
+ 640,
420
+ 640,
421
+ ), pad_val=114.0, type='CachedMosaic'),
422
+ dict(
423
+ keep_ratio=True,
424
+ ratio_range=(
425
+ 0.1,
426
+ 2.0,
427
+ ),
428
+ scale=(
429
+ 1280,
430
+ 1280,
431
+ ),
432
+ type='RandomResize'),
433
+ dict(
434
+ allow_negative_crop=True,
435
+ crop_size=(
436
+ 640,
437
+ 640,
438
+ ),
439
+ recompute_bbox=True,
440
+ type='RandomCrop'),
441
+ dict(type='YOLOXHSVRandomAug'),
442
+ dict(prob=0.5, type='RandomFlip'),
443
+ dict(pad_val=dict(img=(
444
+ 114,
445
+ 114,
446
+ 114,
447
+ )), size=(
448
+ 640,
449
+ 640,
450
+ ), type='Pad'),
451
+ dict(
452
+ img_scale=(
453
+ 640,
454
+ 640,
455
+ ),
456
+ max_cached_images=20,
457
+ pad_val=(
458
+ 114,
459
+ 114,
460
+ 114,
461
+ ),
462
+ ratio_range=(
463
+ 1.0,
464
+ 1.0,
465
+ ),
466
+ type='CachedMixUp'),
467
+ dict(min_gt_bbox_wh=(
468
+ 1,
469
+ 1,
470
+ ), type='FilterAnnotations'),
471
+ dict(type='PackDetInputs'),
472
+ ]
473
+ train_pipeline_stage2 = [
474
+ dict(backend_args=None, type='LoadImageFromFile'),
475
+ dict(
476
+ poly2mask=False,
477
+ type='LoadAnnotations',
478
+ with_bbox=True,
479
+ with_mask=True),
480
+ dict(
481
+ keep_ratio=True,
482
+ ratio_range=(
483
+ 0.1,
484
+ 2.0,
485
+ ),
486
+ scale=(
487
+ 640,
488
+ 640,
489
+ ),
490
+ type='RandomResize'),
491
+ dict(
492
+ allow_negative_crop=True,
493
+ crop_size=(
494
+ 640,
495
+ 640,
496
+ ),
497
+ recompute_bbox=True,
498
+ type='RandomCrop'),
499
+ dict(min_gt_bbox_wh=(
500
+ 1,
501
+ 1,
502
+ ), type='FilterAnnotations'),
503
+ dict(type='YOLOXHSVRandomAug'),
504
+ dict(prob=0.5, type='RandomFlip'),
505
+ dict(pad_val=dict(img=(
506
+ 114,
507
+ 114,
508
+ 114,
509
+ )), size=(
510
+ 640,
511
+ 640,
512
+ ), type='Pad'),
513
+ dict(type='PackDetInputs'),
514
+ ]
515
+ tta_model = dict(
516
+ tta_cfg=dict(max_per_img=100, nms=dict(iou_threshold=0.6, type='nms')),
517
+ type='DetTTAModel')
518
+ tta_pipeline = [
519
+ dict(backend_args=None, type='LoadImageFromFile'),
520
+ dict(
521
+ transforms=[
522
+ [
523
+ dict(keep_ratio=True, scale=(
524
+ 640,
525
+ 640,
526
+ ), type='Resize'),
527
+ dict(keep_ratio=True, scale=(
528
+ 320,
529
+ 320,
530
+ ), type='Resize'),
531
+ dict(keep_ratio=True, scale=(
532
+ 960,
533
+ 960,
534
+ ), type='Resize'),
535
+ ],
536
+ [
537
+ dict(prob=1.0, type='RandomFlip'),
538
+ dict(prob=0.0, type='RandomFlip'),
539
+ ],
540
+ [
541
+ dict(
542
+ pad_val=dict(img=(
543
+ 114,
544
+ 114,
545
+ 114,
546
+ )),
547
+ size=(
548
+ 960,
549
+ 960,
550
+ ),
551
+ type='Pad'),
552
+ ],
553
+ [
554
+ dict(type='LoadAnnotations', with_bbox=True),
555
+ ],
556
+ [
557
+ dict(
558
+ meta_keys=(
559
+ 'img_id',
560
+ 'img_path',
561
+ 'ori_shape',
562
+ 'img_shape',
563
+ 'scale_factor',
564
+ 'flip',
565
+ 'flip_direction',
566
+ ),
567
+ type='PackDetInputs'),
568
+ ],
569
+ ],
570
+ type='TestTimeAug'),
571
+ ]
572
+ val_cfg = dict(type='ValLoop')
573
+ val_dataloader = dict(
574
+ batch_size=5,
575
+ dataset=dict(
576
+ ann_file=
577
+ '/kfs2/projects/pvfleets24/repos/cv-dl-framework/valid/label_json.json',
578
+ backend_args=None,
579
+ data_prefix=dict(
580
+ img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/valid/images/'
581
+ ),
582
+ data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework',
583
+ metainfo=dict(
584
+ classes=(
585
+ 'tracker-row',
586
+ 'inverter',
587
+ 'dual-axis-tracker',
588
+ 'fix-tilt-row',
589
+ 'substation',
590
+ 'switch',
591
+ 'other',
592
+ 'tracker-cable',
593
+ 'transformer',
594
+ 'battery',
595
+ 'carport',
596
+ 'rooftop',
597
+ )),
598
+ pipeline=[
599
+ dict(backend_args=None, type='LoadImageFromFile'),
600
+ dict(keep_ratio=True, scale=(
601
+ 640,
602
+ 640,
603
+ ), type='Resize'),
604
+ dict(
605
+ pad_val=dict(img=(
606
+ 114,
607
+ 114,
608
+ 114,
609
+ )),
610
+ size=(
611
+ 640,
612
+ 640,
613
+ ),
614
+ type='Pad'),
615
+ dict(type='LoadAnnotations', with_bbox=True),
616
+ dict(
617
+ meta_keys=(
618
+ 'img_id',
619
+ 'img_path',
620
+ 'ori_shape',
621
+ 'img_shape',
622
+ 'scale_factor',
623
+ ),
624
+ type='PackDetInputs'),
625
+ ],
626
+ test_mode=True,
627
+ type='CocoDataset'),
628
+ drop_last=False,
629
+ num_workers=10,
630
+ persistent_workers=True,
631
+ sampler=dict(shuffle=False, type='DefaultSampler'))
632
+ val_evaluator = dict(
633
+ ann_file=
634
+ '/kfs2/projects/pvfleets24/repos/cv-dl-framework/valid/label_json.json',
635
+ backend_args=None,
636
+ format_only=False,
637
+ metric=[
638
+ 'bbox',
639
+ 'segm',
640
+ ],
641
+ proposal_nums=(
642
+ 100,
643
+ 1,
644
+ 10,
645
+ ),
646
+ type='CocoMetric')
647
+ vis_backends = [
648
+ dict(type='LocalVisBackend'),
649
+ ]
650
+ visualizer = dict(
651
+ name='visualizer',
652
+ type='DetLocalVisualizer',
653
+ vis_backends=[
654
+ dict(
655
+ save_dir=
656
+ '/kfs2/projects/pvfleets24/repos/cv-dl-framework/runs/automated_geotagging/23_04_2026_15_55_15',
657
+ type='LocalVisBackend'),
658
+ ])
659
+ work_dir = '/kfs2/projects/pvfleets24/repos/cv-dl-framework/runs/automated_geotagging/23_04_2026_15_55_15'