| auto_scale_lr = dict(base_batch_size=16, enable=False) | |
| backend_args = None | |
| base_lr = 0.002 | |
| custom_hooks = [ | |
| dict( | |
| ema_type='ExpMomentumEMA', | |
| momentum=0.0002, | |
| priority=49, | |
| type='EMAHook', | |
| update_buffers=True), | |
| dict( | |
| switch_epoch=280, | |
| switch_pipeline=[ | |
| dict(backend_args=None, type='LoadImageFromFile'), | |
| dict( | |
| poly2mask=False, | |
| type='LoadAnnotations', | |
| with_bbox=True, | |
| with_mask=True), | |
| dict( | |
| keep_ratio=True, | |
| ratio_range=( | |
| 0.1, | |
| 2.0, | |
| ), | |
| scale=( | |
| 640, | |
| 640, | |
| ), | |
| type='RandomResize'), | |
| dict( | |
| allow_negative_crop=True, | |
| crop_size=( | |
| 640, | |
| 640, | |
| ), | |
| recompute_bbox=True, | |
| type='RandomCrop'), | |
| dict(min_gt_bbox_wh=( | |
| 1, | |
| 1, | |
| ), type='FilterAnnotations'), | |
| dict(type='YOLOXHSVRandomAug'), | |
| dict(prob=0.5, type='RandomFlip'), | |
| dict( | |
| pad_val=dict(img=( | |
| 114, | |
| 114, | |
| 114, | |
| )), | |
| size=( | |
| 640, | |
| 640, | |
| ), | |
| type='Pad'), | |
| dict(type='PackDetInputs'), | |
| ], | |
| type='PipelineSwitchHook'), | |
| ] | |
| data_root = '/kfs2/projects/pvfleets24/repos/cv-dl-framework' | |
| dataset_type = 'CocoDataset' | |
| default_hooks = dict( | |
| checkpoint=dict( | |
| rule='greater', save_best='coco/bbox_mAP_50', type='CheckpointHook'), | |
| logger=dict(interval=50, type='LoggerHook'), | |
| param_scheduler=dict(type='ParamSchedulerHook'), | |
| sampler_seed=dict(type='DistSamplerSeedHook'), | |
| timer=dict(type='IterTimerHook'), | |
| visualization=dict(type='DetVisualizationHook')) | |
| default_scope = 'mmdet' | |
| env_cfg = dict( | |
| cudnn_benchmark=False, | |
| dist_cfg=dict(backend='nccl'), | |
| mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0)) | |
| img_scales = [ | |
| ( | |
| 640, | |
| 640, | |
| ), | |
| ( | |
| 320, | |
| 320, | |
| ), | |
| ( | |
| 960, | |
| 960, | |
| ), | |
| ] | |
| interval = 10 | |
| launcher = 'none' | |
| load_from = 'best_coco_bbox_mAP_50_epoch_291.pth' | |
| log_level = 'INFO' | |
| log_processor = dict(by_epoch=True, type='LogProcessor', window_size=50) | |
| max_epochs = 300 | |
| metainfo = dict( | |
| classes=( | |
| 'carport-fixed-tilt', | |
| 'ground-dual-axis-tracker', | |
| 'ground-fixed-tilt', | |
| 'ground-single-axis-tracker', | |
| 'rooftop-fixed-tilt', | |
| )) | |
| model = dict( | |
| backbone=dict( | |
| act_cfg=dict(inplace=True, type='SiLU'), | |
| arch='P5', | |
| channel_attention=True, | |
| deepen_factor=1.33, | |
| expand_ratio=0.5, | |
| norm_cfg=dict(type='SyncBN'), | |
| type='CSPNeXt', | |
| widen_factor=1.25), | |
| bbox_head=dict( | |
| act_cfg=dict(inplace=True, type='SiLU'), | |
| anchor_generator=dict( | |
| offset=0, strides=[ | |
| 8, | |
| 16, | |
| 32, | |
| ], type='MlvlPointGenerator'), | |
| bbox_coder=dict(type='DistancePointBBoxCoder'), | |
| feat_channels=320, | |
| in_channels=320, | |
| loss_bbox=dict(loss_weight=2.0, type='GIoULoss'), | |
| loss_cls=dict( | |
| beta=2.0, | |
| loss_weight=1.0, | |
| type='QualityFocalLoss', | |
| use_sigmoid=True), | |
| loss_mask=dict( | |
| eps=5e-06, loss_weight=2.0, reduction='mean', type='DiceLoss'), | |
| norm_cfg=dict(requires_grad=True, type='SyncBN'), | |
| num_classes=5, | |
| pred_kernel_size=1, | |
| share_conv=True, | |
| stacked_convs=2, | |
| test_cfg=dict( | |
| mask_thr_binary=0.5, | |
| max_per_img=100, | |
| min_bbox_size=0, | |
| nms=dict(iou_threshold=0.6, type='nms'), | |
| nms_pre=1000, | |
| score_thr=0.05), | |
| train_cfg=dict( | |
| allowed_border=-1, | |
| assigner=dict(topk=13, type='DynamicSoftLabelAssigner'), | |
| debug=False, | |
| pos_weight=-1), | |
| type='RTMDetInsSepBNHead'), | |
| data_preprocessor=dict( | |
| batch_augments=None, | |
| bgr_to_rgb=False, | |
| mean=[ | |
| 103.53, | |
| 116.28, | |
| 123.675, | |
| ], | |
| std=[ | |
| 57.375, | |
| 57.12, | |
| 58.395, | |
| ], | |
| type='DetDataPreprocessor'), | |
| neck=dict( | |
| act_cfg=dict(inplace=True, type='SiLU'), | |
| expand_ratio=0.5, | |
| in_channels=[ | |
| 320, | |
| 640, | |
| 1280, | |
| ], | |
| norm_cfg=dict(type='SyncBN'), | |
| num_csp_blocks=4, | |
| out_channels=320, | |
| type='CSPNeXtPAFPN'), | |
| test_cfg=dict( | |
| mask_thr_binary=0.5, | |
| max_per_img=100, | |
| min_bbox_size=0, | |
| nms=dict(iou_threshold=0.6, type='nms'), | |
| nms_pre=1000, | |
| score_thr=0.05), | |
| train_cfg=dict( | |
| allowed_border=-1, | |
| assigner=dict(topk=13, type='DynamicSoftLabelAssigner'), | |
| debug=False, | |
| pos_weight=-1), | |
| type='RTMDet') | |
| optim_wrapper = dict( | |
| optimizer=dict(lr=0.001, type='AdamW', weight_decay=0.05), | |
| paramwise_cfg=dict( | |
| bias_decay_mult=0, bypass_duplicate=True, norm_decay_mult=0), | |
| type='OptimWrapper') | |
| param_scheduler = [ | |
| dict( | |
| begin=0, by_epoch=False, end=1000, start_factor=1e-05, | |
| type='LinearLR'), | |
| dict( | |
| T_max=150, | |
| begin=150, | |
| by_epoch=True, | |
| convert_to_iter_based=True, | |
| end=300, | |
| eta_min=0.0001, | |
| type='CosineAnnealingLR'), | |
| ] | |
| resume = False | |
| stage2_num_epochs = 20 | |
| test_cfg = dict(type='TestLoop') | |
| test_dataloader = dict( | |
| batch_size=5, | |
| dataset=dict( | |
| ann_file='/cv-dl-framework/test/label_json.json', | |
| backend_args=None, | |
| data_prefix=dict( | |
| img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/' | |
| ), | |
| data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework', | |
| metainfo=dict( | |
| classes=( | |
| 'carport-fixed-tilt', | |
| 'ground-dual-axis-tracker', | |
| 'ground-fixed-tilt', | |
| 'ground-single-axis-tracker', | |
| 'rooftop-fixed-tilt', | |
| )), | |
| pipeline=[ | |
| dict(backend_args=None, type='LoadImageFromFile'), | |
| dict(keep_ratio=True, scale=( | |
| 640, | |
| 640, | |
| ), type='Resize'), | |
| dict( | |
| pad_val=dict(img=( | |
| 114, | |
| 114, | |
| 114, | |
| )), | |
| size=( | |
| 640, | |
| 640, | |
| ), | |
| type='Pad'), | |
| dict(type='LoadAnnotations', with_bbox=True), | |
| dict( | |
| meta_keys=( | |
| 'img_id', | |
| 'img_path', | |
| 'ori_shape', | |
| 'img_shape', | |
| 'scale_factor', | |
| ), | |
| type='PackDetInputs'), | |
| ], | |
| test_mode=True, | |
| type='CocoDataset'), | |
| drop_last=False, | |
| num_workers=10, | |
| persistent_workers=True, | |
| sampler=dict(shuffle=False, type='DefaultSampler')) | |
| test_evaluator = dict( | |
| ann_file='/cv-dl-framework/test/label_json.json', | |
| backend_args=None, | |
| format_only=False, | |
| metric=[ | |
| 'bbox', | |
| 'segm', | |
| ], | |
| proposal_nums=( | |
| 100, | |
| 1, | |
| 10, | |
| ), | |
| type='CocoMetric') | |
| test_pipeline = [ | |
| dict(backend_args=None, type='LoadImageFromFile'), | |
| dict(keep_ratio=True, scale=( | |
| 640, | |
| 640, | |
| ), type='Resize'), | |
| dict(pad_val=dict(img=( | |
| 114, | |
| 114, | |
| 114, | |
| )), size=( | |
| 640, | |
| 640, | |
| ), type='Pad'), | |
| dict(type='LoadAnnotations', with_bbox=True), | |
| dict( | |
| meta_keys=( | |
| 'img_id', | |
| 'img_path', | |
| 'ori_shape', | |
| 'img_shape', | |
| 'scale_factor', | |
| ), | |
| type='PackDetInputs'), | |
| ] | |
| train_cfg = dict( | |
| dynamic_intervals=[ | |
| ( | |
| 280, | |
| 1, | |
| ), | |
| ], | |
| max_epochs=300, | |
| type='EpochBasedTrainLoop', | |
| val_interval=3) | |
| train_dataloader = dict( | |
| batch_sampler=None, | |
| batch_size=4, | |
| dataset=dict( | |
| ann_file='/cv-dl-framework/train/label_json.json', | |
| backend_args=None, | |
| data_prefix=dict( | |
| img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/train/images/' | |
| ), | |
| data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework', | |
| filter_cfg=dict(filter_empty_gt=True, min_size=32), | |
| metainfo=dict( | |
| classes=( | |
| 'carport-fixed-tilt', | |
| 'ground-dual-axis-tracker', | |
| 'ground-fixed-tilt', | |
| 'ground-single-axis-tracker', | |
| 'rooftop-fixed-tilt', | |
| )), | |
| pipeline=[ | |
| dict(backend_args=None, type='LoadImageFromFile'), | |
| dict( | |
| poly2mask=False, | |
| type='LoadAnnotations', | |
| with_bbox=True, | |
| with_mask=True), | |
| dict(img_scale=( | |
| 640, | |
| 640, | |
| ), pad_val=114.0, type='CachedMosaic'), | |
| dict( | |
| keep_ratio=True, | |
| ratio_range=( | |
| 0.1, | |
| 2.0, | |
| ), | |
| scale=( | |
| 1280, | |
| 1280, | |
| ), | |
| type='RandomResize'), | |
| dict( | |
| allow_negative_crop=True, | |
| crop_size=( | |
| 640, | |
| 640, | |
| ), | |
| recompute_bbox=True, | |
| type='RandomCrop'), | |
| dict(type='YOLOXHSVRandomAug'), | |
| dict(prob=0.5, type='RandomFlip'), | |
| dict( | |
| pad_val=dict(img=( | |
| 114, | |
| 114, | |
| 114, | |
| )), | |
| size=( | |
| 640, | |
| 640, | |
| ), | |
| type='Pad'), | |
| dict( | |
| img_scale=( | |
| 640, | |
| 640, | |
| ), | |
| max_cached_images=20, | |
| pad_val=( | |
| 114, | |
| 114, | |
| 114, | |
| ), | |
| ratio_range=( | |
| 1.0, | |
| 1.0, | |
| ), | |
| type='CachedMixUp'), | |
| dict(min_gt_bbox_wh=( | |
| 1, | |
| 1, | |
| ), type='FilterAnnotations'), | |
| dict(type='PackDetInputs'), | |
| ], | |
| type='CocoDataset'), | |
| num_workers=10, | |
| persistent_workers=True, | |
| pin_memory=True, | |
| sampler=dict(shuffle=True, type='DefaultSampler')) | |
| train_pipeline = [ | |
| dict(backend_args=None, type='LoadImageFromFile'), | |
| dict( | |
| poly2mask=False, | |
| type='LoadAnnotations', | |
| with_bbox=True, | |
| with_mask=True), | |
| dict(img_scale=( | |
| 640, | |
| 640, | |
| ), pad_val=114.0, type='CachedMosaic'), | |
| dict( | |
| keep_ratio=True, | |
| ratio_range=( | |
| 0.1, | |
| 2.0, | |
| ), | |
| scale=( | |
| 1280, | |
| 1280, | |
| ), | |
| type='RandomResize'), | |
| dict( | |
| allow_negative_crop=True, | |
| crop_size=( | |
| 640, | |
| 640, | |
| ), | |
| recompute_bbox=True, | |
| type='RandomCrop'), | |
| dict(type='YOLOXHSVRandomAug'), | |
| dict(prob=0.5, type='RandomFlip'), | |
| dict(pad_val=dict(img=( | |
| 114, | |
| 114, | |
| 114, | |
| )), size=( | |
| 640, | |
| 640, | |
| ), type='Pad'), | |
| dict( | |
| img_scale=( | |
| 640, | |
| 640, | |
| ), | |
| max_cached_images=20, | |
| pad_val=( | |
| 114, | |
| 114, | |
| 114, | |
| ), | |
| ratio_range=( | |
| 1.0, | |
| 1.0, | |
| ), | |
| type='CachedMixUp'), | |
| dict(min_gt_bbox_wh=( | |
| 1, | |
| 1, | |
| ), type='FilterAnnotations'), | |
| dict(type='PackDetInputs'), | |
| ] | |
| train_pipeline_stage2 = [ | |
| dict(backend_args=None, type='LoadImageFromFile'), | |
| dict( | |
| poly2mask=False, | |
| type='LoadAnnotations', | |
| with_bbox=True, | |
| with_mask=True), | |
| dict( | |
| keep_ratio=True, | |
| ratio_range=( | |
| 0.1, | |
| 2.0, | |
| ), | |
| scale=( | |
| 640, | |
| 640, | |
| ), | |
| type='RandomResize'), | |
| dict( | |
| allow_negative_crop=True, | |
| crop_size=( | |
| 640, | |
| 640, | |
| ), | |
| recompute_bbox=True, | |
| type='RandomCrop'), | |
| dict(min_gt_bbox_wh=( | |
| 1, | |
| 1, | |
| ), type='FilterAnnotations'), | |
| dict(type='YOLOXHSVRandomAug'), | |
| dict(prob=0.5, type='RandomFlip'), | |
| dict(pad_val=dict(img=( | |
| 114, | |
| 114, | |
| 114, | |
| )), size=( | |
| 640, | |
| 640, | |
| ), type='Pad'), | |
| dict(type='PackDetInputs'), | |
| ] | |
| tta_model = dict( | |
| tta_cfg=dict(max_per_img=100, nms=dict(iou_threshold=0.6, type='nms')), | |
| type='DetTTAModel') | |
| tta_pipeline = [ | |
| dict(backend_args=None, type='LoadImageFromFile'), | |
| dict( | |
| transforms=[ | |
| [ | |
| dict(keep_ratio=True, scale=( | |
| 640, | |
| 640, | |
| ), type='Resize'), | |
| dict(keep_ratio=True, scale=( | |
| 320, | |
| 320, | |
| ), type='Resize'), | |
| dict(keep_ratio=True, scale=( | |
| 960, | |
| 960, | |
| ), type='Resize'), | |
| ], | |
| [ | |
| dict(prob=1.0, type='RandomFlip'), | |
| dict(prob=0.0, type='RandomFlip'), | |
| ], | |
| [ | |
| dict( | |
| pad_val=dict(img=( | |
| 114, | |
| 114, | |
| 114, | |
| )), | |
| size=( | |
| 960, | |
| 960, | |
| ), | |
| type='Pad'), | |
| ], | |
| [ | |
| dict(type='LoadAnnotations', with_bbox=True), | |
| ], | |
| [ | |
| dict( | |
| meta_keys=( | |
| 'img_id', | |
| 'img_path', | |
| 'ori_shape', | |
| 'img_shape', | |
| 'scale_factor', | |
| 'flip', | |
| 'flip_direction', | |
| ), | |
| type='PackDetInputs'), | |
| ], | |
| ], | |
| type='TestTimeAug'), | |
| ] | |
| val_cfg = dict(type='ValLoop') | |
| val_dataloader = dict( | |
| batch_size=5, | |
| dataset=dict( | |
| ann_file='/cv-dl-framework/test/label_json.json', | |
| backend_args=None, | |
| data_prefix=dict( | |
| img='/kfs2/projects/pvfleets24/repos/cv-dl-framework/test/images/' | |
| ), | |
| data_root='/kfs2/projects/pvfleets24/repos/cv-dl-framework', | |
| metainfo=dict( | |
| classes=( | |
| 'carport-fixed-tilt', | |
| 'ground-dual-axis-tracker', | |
| 'ground-fixed-tilt', | |
| 'ground-single-axis-tracker', | |
| 'rooftop-fixed-tilt', | |
| )), | |
| pipeline=[ | |
| dict(backend_args=None, type='LoadImageFromFile'), | |
| dict(keep_ratio=True, scale=( | |
| 640, | |
| 640, | |
| ), type='Resize'), | |
| dict( | |
| pad_val=dict(img=( | |
| 114, | |
| 114, | |
| 114, | |
| )), | |
| size=( | |
| 640, | |
| 640, | |
| ), | |
| type='Pad'), | |
| dict(type='LoadAnnotations', with_bbox=True), | |
| dict( | |
| meta_keys=( | |
| 'img_id', | |
| 'img_path', | |
| 'ori_shape', | |
| 'img_shape', | |
| 'scale_factor', | |
| ), | |
| type='PackDetInputs'), | |
| ], | |
| test_mode=True, | |
| type='CocoDataset'), | |
| drop_last=False, | |
| num_workers=10, | |
| persistent_workers=True, | |
| sampler=dict(shuffle=False, type='DefaultSampler')) | |
| val_evaluator = dict( | |
| ann_file='/cv-dl-framework/test/label_json.json', | |
| backend_args=None, | |
| format_only=False, | |
| metric=[ | |
| 'bbox', | |
| 'segm', | |
| ], | |
| proposal_nums=( | |
| 100, | |
| 1, | |
| 10, | |
| ), | |
| type='CocoMetric') | |
| vis_backends = [ | |
| dict(type='LocalVisBackend'), | |
| ] | |
| visualizer = dict( | |
| name='visualizer', | |
| type='DetLocalVisualizer', | |
| vis_backends=[ | |
| dict( | |
| save_dir='/12_03_2026_12_24_40', | |
| type='LocalVisBackend'), | |
| ]) | |
| work_dir = '/12_03_2026_12_24_40' | |