|
|
@@ -0,0 +1,159 @@
|
|
|
+# Runtime
|
|
|
+epoch: 50
|
|
|
+log_iter: 1
|
|
|
+find_unused_parameters: true
|
|
|
+use_gpu: true
|
|
|
+use_xpu: false
|
|
|
+use_mlu: false
|
|
|
+use_npu: false
|
|
|
+use_ema: true
|
|
|
+save_dir: output
|
|
|
+snapshot_epoch: 1
|
|
|
+cycle_epoch: 10
|
|
|
+print_flops: false
|
|
|
+print_params: false
|
|
|
+
|
|
|
+# Dataset
|
|
|
+metric: COCO
|
|
|
+num_classes: 5
|
|
|
+
|
|
|
+worker_num: 8
|
|
|
+
|
|
|
+TrainDataset:
|
|
|
+ name: COCODetDataset
|
|
|
+ image_dir: images
|
|
|
+ anno_path: annotations/instance_train.json
|
|
|
+ dataset_dir: datasets/COCO
|
|
|
+ data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']
|
|
|
+
|
|
|
+EvalDataset:
|
|
|
+ name: COCODetDataset
|
|
|
+ image_dir: images
|
|
|
+ anno_path: annotations/instance_val.json
|
|
|
+ dataset_dir: datasets/COCO
|
|
|
+ allow_empty: true
|
|
|
+
|
|
|
+TestDataset:
|
|
|
+ name: ImageFolder
|
|
|
+ anno_path: annotations/instance_val.json
|
|
|
+ dataset_dir: datasets/COCO
|
|
|
+
|
|
|
+TrainReader:
|
|
|
+ sample_transforms:
|
|
|
+ - Decode: {}
|
|
|
+ - RandomCrop: {}
|
|
|
+ - RandomFlip: {prob: 0.5}
|
|
|
+ - RandomDistort: {}
|
|
|
+ batch_transforms:
|
|
|
+ - BatchRandomResize: {target_size: [[768, 576], [800, 608], [832, 640]], random_size: True, random_interp: True, keep_ratio: False}
|
|
|
+ - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]}
|
|
|
+ - Permute: {}
|
|
|
+ batch_size: 24
|
|
|
+ shuffle: true
|
|
|
+ drop_last: true
|
|
|
+ collate_batch: false
|
|
|
+
|
|
|
+EvalReader:
|
|
|
+ sample_transforms:
|
|
|
+ - Decode: {}
|
|
|
+ - Resize: {interp: 2, target_size: [800, 608], keep_ratio: False}
|
|
|
+ - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]}
|
|
|
+ - Permute: {}
|
|
|
+ batch_transforms:
|
|
|
+ - PadBatch: {pad_to_stride: 32}
|
|
|
+ batch_size: 8
|
|
|
+ shuffle: false
|
|
|
+
|
|
|
+TestReader:
|
|
|
+ inputs_def:
|
|
|
+ image_shape: [3, 800, 608]
|
|
|
+ sample_transforms:
|
|
|
+ - Decode: {}
|
|
|
+ - Resize: {interp: 2, target_size: [800, 608], keep_ratio: False}
|
|
|
+ - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]}
|
|
|
+ - Permute: {}
|
|
|
+ batch_transforms:
|
|
|
+ - PadBatch: {pad_to_stride: 32}
|
|
|
+ batch_size: 1
|
|
|
+ shuffle: false
|
|
|
+
|
|
|
+# Model
|
|
|
+architecture: PicoDet
|
|
|
+pretrain_weights: https://paddleocr.bj.bcebos.com/ppstructure/models/layout/picodet_lcnet_x1_0_fgd_layout.pdparams
|
|
|
+
|
|
|
+PicoDet:
|
|
|
+ backbone: LCNet
|
|
|
+ neck: CSPPAN
|
|
|
+ head: PicoHead
|
|
|
+ nms_cpu: true
|
|
|
+
|
|
|
+LCNet:
|
|
|
+ scale: 1.0
|
|
|
+ feature_maps: [3, 4, 5]
|
|
|
+
|
|
|
+CSPPAN:
|
|
|
+ out_channels: 128
|
|
|
+ use_depthwise: True
|
|
|
+ num_csp_blocks: 1
|
|
|
+ num_features: 4
|
|
|
+
|
|
|
+PicoHead:
|
|
|
+ conv_feat:
|
|
|
+ name: PicoFeat
|
|
|
+ feat_in: 128
|
|
|
+ feat_out: 128
|
|
|
+ num_convs: 4
|
|
|
+ num_fpn_stride: 4
|
|
|
+ norm_type: bn
|
|
|
+ share_cls_reg: True
|
|
|
+ fpn_stride: [8, 16, 32, 64]
|
|
|
+ feat_in_chan: 128
|
|
|
+ prior_prob: 0.01
|
|
|
+ reg_max: 7
|
|
|
+ cell_offset: 0.5
|
|
|
+ loss_class:
|
|
|
+ name: VarifocalLoss
|
|
|
+ use_sigmoid: True
|
|
|
+ iou_weighted: True
|
|
|
+ loss_weight: 1.0
|
|
|
+ loss_dfl:
|
|
|
+ name: DistributionFocalLoss
|
|
|
+ loss_weight: 0.25
|
|
|
+ loss_bbox:
|
|
|
+ name: GIoULoss
|
|
|
+ loss_weight: 2.0
|
|
|
+ assigner:
|
|
|
+ name: SimOTAAssigner
|
|
|
+ candidate_topk: 10
|
|
|
+ iou_weight: 6
|
|
|
+ nms:
|
|
|
+ name: MultiClassNMS
|
|
|
+ nms_top_k: 1000
|
|
|
+ keep_top_k: 100
|
|
|
+ score_threshold: 0.025
|
|
|
+ nms_threshold: 0.6
|
|
|
+
|
|
|
+# Optimizer
|
|
|
+LearningRate:
|
|
|
+ base_lr: 0.4
|
|
|
+ schedulers:
|
|
|
+ - name: CosineDecay
|
|
|
+ max_epochs: 100
|
|
|
+ - name: LinearWarmup
|
|
|
+ start_factor: 0.1
|
|
|
+ steps: 100
|
|
|
+
|
|
|
+OptimizerBuilder:
|
|
|
+ optimizer:
|
|
|
+ momentum: 0.9
|
|
|
+ type: Momentum
|
|
|
+ regularizer:
|
|
|
+ factor: 0.00004
|
|
|
+ type: L2
|
|
|
+
|
|
|
+# Export
|
|
|
+export:
|
|
|
+ post_process: true
|
|
|
+ nms: true
|
|
|
+ benchmark: false
|
|
|
+ fuse_conv_bn: false
|