From 3903e78c728b2afa40f813bad272a6a941db9a0d Mon Sep 17 00:00:00 2001 From: ykkk2333 <77383312+ykkk2333@users.noreply.github.com> Date: Tue, 18 May 2021 14:06:39 +0800 Subject: [PATCH] add yolov3 darknet config to develop, test=kunlun (#3034) --- .../yolov3_darknet_roadsign_kunlun.yml | 173 ++++++++++++++++++ static/docs/tutorials/train_on_kunlun.md | 20 +- 2 files changed, 191 insertions(+), 2 deletions(-) create mode 100644 static/configs/yolov3_darknet_roadsign_kunlun.yml diff --git a/static/configs/yolov3_darknet_roadsign_kunlun.yml b/static/configs/yolov3_darknet_roadsign_kunlun.yml new file mode 100644 index 000000000..3def79eb1 --- /dev/null +++ b/static/configs/yolov3_darknet_roadsign_kunlun.yml @@ -0,0 +1,173 @@ +architecture: YOLOv3 +use_gpu: false +use_xpu: true +max_iters: 1200 +log_iter: 1 +save_dir: output +snapshot_iter: 200 +metric: VOC +map_type: integral +pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar +weights: output/yolov3_darknet_roadsign_xpu/model_final +num_classes: 4 +finetune_exclude_pretrained_params: ['yolo_output'] +use_fine_grained_loss: false + +YOLOv3: + backbone: DarkNet + yolo_head: YOLOv3Head + +DarkNet: + norm_type: bn + norm_decay: 0. + depth: 53 + +YOLOv3Head: + anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] + anchors: [[10, 13], [16, 30], [33, 23], + [30, 61], [62, 45], [59, 119], + [116, 90], [156, 198], [373, 326]] + norm_decay: 0. + yolo_loss: YOLOv3Loss + nms: + background_label: -1 + keep_top_k: 100 + nms_threshold: 0.45 + nms_top_k: 1000 + normalized: false + score_threshold: 0.01 + +YOLOv3Loss: + ignore_thresh: 0.7 + label_smooth: true + +LearningRate: + base_lr: 0.000125 #0.00025 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 800 #400 + - 1100 #550 + - !LinearWarmup + start_factor: 0. + steps: 200 #200 + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +TrainReader: + inputs_def: + fields: ['image', 'gt_bbox', 'gt_class', 'gt_score'] + num_max_boxes: 50 + dataset: + !VOCDataSet + dataset_dir: dataset/roadsign_voc + anno_path: train.txt + with_background: false + sample_transforms: + - !DecodeImage + to_rgb: True + with_mixup: True + - !MixupImage + alpha: 1.5 + beta: 1.5 + - !ColorDistort {} + - !RandomExpand + fill_value: [123.675, 116.28, 103.53] + ratio: 1.5 + - !RandomCrop {} + - !RandomFlipImage + is_normalized: false + - !NormalizeBox {} + - !PadBox + num_max_boxes: 50 + - !BboxXYXY2XYWH {} + batch_transforms: + - !RandomShape + sizes: [320, 352, 384, 416, 448, 480, 512, 544, 576, 608] + random_inter: True + - !NormalizeImage + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + is_scale: True + is_channel_first: false + - !Permute + to_bgr: false + channel_first: True + # Gt2YoloTarget is only used when use_fine_grained_loss set as true, + # this operator will be deleted automatically if use_fine_grained_loss + # is set as false + - !Gt2YoloTarget + anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] + anchors: [[10, 13], [16, 30], [33, 23], + [30, 61], [62, 45], [59, 119], + [116, 90], [156, 198], [373, 326]] + downsample_ratios: [32, 16, 8] + batch_size: 2 + shuffle: true + mixup_epoch: 250 + drop_last: true + worker_num: 2 + bufsize: 2 + use_process: false #true + + +EvalReader: + inputs_def: + fields: ['image', 'im_size', 'im_id', 'gt_bbox', 'gt_class', 'is_difficult'] + num_max_boxes: 50 + dataset: + !VOCDataSet + dataset_dir: dataset/roadsign_voc + anno_path: valid.txt + with_background: false + sample_transforms: + - !DecodeImage + to_rgb: True + - !ResizeImage + target_size: 608 + interp: 2 + - !NormalizeImage + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + is_scale: True + is_channel_first: false + - !PadBox + num_max_boxes: 50 + - !Permute + to_bgr: false + channel_first: True + batch_size: 4 + drop_empty: false + worker_num: 4 + bufsize: 2 + +TestReader: + inputs_def: + image_shape: [3, 608, 608] + fields: ['image', 'im_size', 'im_id'] + dataset: + !ImageFolder + anno_path: dataset/roadsign_voc/label_list.txt + with_background: false + sample_transforms: + - !DecodeImage + to_rgb: True + - !ResizeImage + target_size: 608 + interp: 2 + - !NormalizeImage + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + is_scale: True + is_channel_first: false + - !Permute + to_bgr: false + channel_first: True + batch_size: 1 diff --git a/static/docs/tutorials/train_on_kunlun.md b/static/docs/tutorials/train_on_kunlun.md index e0fb4ed3d..23e4e5536 100644 --- a/static/docs/tutorials/train_on_kunlun.md +++ b/static/docs/tutorials/train_on_kunlun.md @@ -6,8 +6,11 @@ ## yolov3 ### Prepare data -Prepare data roadsign - +Prepare data roadsign: +```shell +cd PaddleDetection/static/dataset/roadsign_voc/ +python3.7 download_roadsign_voc.py +``` ### Train ```shell @@ -20,6 +23,19 @@ python3.7 -u tools/train.py -c configs/yolov3_mobilenet_v1_roadsign.yml -o use_g python3.7 -u tools/eval.py -c configs/yolov3_mobilenet_v1_roadsign.yml -o weights=output/yolov3_mobilenet_v1_roadsign/model_final.pdparams use_gpu=False use_xpu=True ``` +### Train on Darknet +```shell +cd static/ +python3.7 -u tools/train.py -c configs/yolov3_datknet_roadsign_kunlun.yml -o use_gpu=False use_xpu=True +``` + + +### Eval on Darknet +```shell +cd static/ +python3.7 -u tools/eval.py -c configs/yolov3_darknet_roadsign_kunlun.yml -o weights=output/yolov3_darknet_roadsign_kunlun/model_final.pdparams use_gpu=False use_xpu=True +``` + ## ppyolo -- GitLab