| _base_ = '../_base_/default_runtime.py' |
| |
| model = dict( |
| type='YOLOV3', |
| backbone=dict( |
| type='Darknet', |
| depth=53, |
| out_indices=(3, 4, 5), |
| init_cfg=dict(type='Pretrained', checkpoint='open-mmlab://darknet53')), |
| neck=dict( |
| type='YOLOV3Neck', |
| num_scales=3, |
| in_channels=[1024, 512, 256], |
| out_channels=[512, 256, 128]), |
| bbox_head=dict( |
| type='YOLOV3Head', |
| num_classes=14, |
| in_channels=[512, 256, 128], |
| out_channels=[1024, 512, 256], |
| anchor_generator=dict( |
| type='YOLOAnchorGenerator', |
| base_sizes=[[(116, 90), (156, 198), (373, 326)], |
| [(30, 61), (62, 45), (59, 119)], |
| [(10, 13), (16, 30), (33, 23)]], |
| strides=[32, 16, 8]), |
| bbox_coder=dict(type='YOLOBBoxCoder'), |
| featmap_strides=[32, 16, 8], |
| loss_cls=dict( |
| type='CrossEntropyLoss', |
| use_sigmoid=True, |
| loss_weight=1.0, |
| reduction='sum'), |
| loss_conf=dict( |
| type='CrossEntropyLoss', |
| use_sigmoid=True, |
| loss_weight=1.0, |
| reduction='sum'), |
| loss_xy=dict( |
| type='CrossEntropyLoss', |
| use_sigmoid=True, |
| loss_weight=2.0, |
| reduction='sum'), |
| loss_wh=dict(type='MSELoss', loss_weight=2.0, reduction='sum')), |
| |
| train_cfg=dict( |
| assigner=dict( |
| type='GridAssigner', |
| pos_iou_thr=0.5, |
| neg_iou_thr=0.5, |
| min_pos_iou=0)), |
| test_cfg=dict( |
| nms_pre=1000, |
| min_bbox_size=0, |
| score_thr=0.05, |
| conf_thr=0.005, |
| nms=dict(type='nms', iou_threshold=0.45), |
| max_per_img=100)) |
| |
| data_root = './' |
| work_dir = './result/yolov3' |
| load_from = 'result/yolov3/latest.pth' |
| resume_from = 'result/yolov3/latest.pth' |
| img_norm_cfg = dict(mean=[0, 0, 0], std=[255., 255., 255.], to_rgb=True) |
| train_pipeline = [ |
| dict(type='LoadImageFromFile', to_float32=True), |
| dict(type='LoadAnnotations', with_bbox=True), |
| dict( |
| type='Expand', |
| mean=img_norm_cfg['mean'], |
| to_rgb=img_norm_cfg['to_rgb'], |
| ratio_range=(1, 2)), |
| dict( |
| type='MinIoURandomCrop', |
| min_ious=(0.4, 0.5, 0.6, 0.7, 0.8, 0.9), |
| min_crop_size=0.3), |
| dict(type='Resize', img_scale=[(320, 320), (608, 608)], keep_ratio=True), |
| dict(type='RandomFlip', flip_ratio=0.5), |
| dict(type='PhotoMetricDistortion'), |
| dict(type='Normalize', **img_norm_cfg), |
| dict(type='Pad', size_divisor=32), |
| dict(type='DefaultFormatBundle'), |
| dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']) |
| ] |
| test_pipeline = [ |
| dict(type='LoadImageFromFile'), |
| dict(type='LoadAnnotations', with_bbox=True), |
| dict( |
| type='MultiScaleFlipAug', |
| img_scale=(608, 608), |
| flip=False, |
| transforms=[ |
| dict(type='Resize', keep_ratio=True), |
| dict(type='RandomFlip'), |
| dict(type='Normalize', **img_norm_cfg), |
| dict(type='Pad', size_divisor=32), |
| dict(type='ImageToTensor', keys=['img']), |
| dict(type='Collect', keys=['img']) |
| ]) |
| ] |
| classes = ('person bev', 'car bev', 'van bev', 'bus bev', 'truck bev','aeroplane','train' , 'bird', 'boat', 'car', 'person', 'bus', 'truck','camouflage man') |
|
|
| data = dict( |
| samples_per_gpu=8, |
| workers_per_gpu=4, |
| train=dict( |
|
|
| classes=classes, |
| ann_file='./final_train_dataset/label/train_final_with_js.json', |
| img_prefix='./final_train_dataset/images', |
| pipeline=train_pipeline), |
| val=dict( |
|
|
| classes=classes, |
| ann_file='./final_train_dataset/label/val_final_with_js.json', |
| img_prefix='./final_train_dataset/images', |
|
|
| pipeline=test_pipeline), |
| test=dict( |
|
|
| classes=classes, |
| ann_file='./final_train_dataset/label/val_final_with_js.json', |
| img_prefix='./final_train_dataset/images', |
|
|
| pipeline=test_pipeline)) |
| |
| optimizer = dict(type='SGD', lr=0.001, momentum=0.9, weight_decay=0.0005) |
| optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2)) |
| |
| lr_config = dict( |
| policy='step', |
| warmup='linear', |
| warmup_iters=2000, |
| warmup_ratio=0.1, |
| step=[218, 246]) |
| |
| |
| runner = dict(type='EpochBasedRunner', max_epochs=300) |
| evaluation = dict(interval=10, metric=['bbox']) |
|
|
| log_config = dict(interval=100) |
| checkpoint_config = dict(interval=10) |
|
|
| seed = 0 |
| gpu_ids = range(1) |