AIStudio PaddleDetection Picodet 增量训练自己数据

1 拷贝PaddleDetection

https://gitee.com/paddlepaddle/PaddleDetection.git

2 安装依赖

pip install -r requirements.txt 

3 Vott制作自己的数据,导出VOC格式

 4 修改配置文件

configs/picodet/picodet_s_320_coco_lcnet.yml 

_BASE_: [
  '../datasets/voc.yml',   -->指定voc格式数据配置
  '../runtime.yml',
  '_base_/picodet_v2.yml',
  '_base_/optimizer_300e.yml',
  '_base_/picodet_320_reader.yml',
]
use_gpu: false
pretrain_weights: /xxx/xxx -->指定训练好的权重文件
weights: output/picodet_s_320_coco_lcnet/best_model/best_model
find_unused_parameters: True
use_ema: true
epoch: 300
snapshot_epoch: 10

LCNet:
  scale: 0.75
  feature_maps: [3, 4, 5]

LCPAN:
  out_channels: 96

PicoHeadV2:
  conv_feat:
    name: PicoFeat
    feat_in: 96
    feat_out: 96
    num_convs: 2
    num_fpn_stride: 4
    norm_type: bn
    share_cls_reg: True
    use_se: True
  feat_in_chan: 96

TrainReader:
  batch_size: 64

LearningRate:
  base_lr: 0.32
  schedulers:
  - !CosineDecay
    max_epochs: 300
  - !LinearWarmup
    start_factor: 0.1
    steps: 300

 configs/datasets/voc.yml 

metric: VOC
map_type: 11point
num_classes: 1

TrainDataset:
  !VOCDataSet
    dataset_dir: /opt/code/ys7/cmd/pic/voc-PascalVOC-export
    anno_path: ImageSets/Main/person_train.txt
    label_list: pascal_label_map.pbtxt
    data_fields: ['image', 'gt_bbox','gt_class']

EvalDataset:
  !VOCDataSet
    dataset_dir: dataset/voc
    anno_path: ImageSets/Main/person_val.txt
    label_list: pascal_label_map.pbtxt
    data_fields: ['image', 'gt_bbox','gt_class']

TestDataset:
  !ImageFolder
    anno_path: dataset/voc/label_list.txt

4 修改数据Loader

ppdet/data/source/voc.py

       with open(anno_path, 'r') as fr:
            while True:
                line = fr.readline()
                if not line:
                    break
                img_file, xml_file = [os.path.join(image_dir, x) \
                        for x in line.strip().split()[:2]]

修改为:

        with open(anno_path, 'r') as fr:
            while True:
                line = fr.readline()
                if not line:
                    break
                l =  line.strip().split()[0]
                img_file = os.path.join(image_dir+"JPEGImages/", l)
                xml_file = os.path.join(image_dir+"Annotations/", l).replace(".jpeg",".xml")

5 执行训练

python tools/train.py -c   configs/picodet/picodet_s_320_coco_lcnet.yml

6 转换推理模型

python tools/export_model.py -c configs/picodet/picodet_s_320_coco_lcnet.yml --output_dir=./picodet_320

7 转换移动版推理模型

/opt/code/Paddle-Lite/build.opt/lite/api/opt --model_dir=picodet_320/picodet_s_320_coco_lcnet --valid_targets=arm --optimize_out_type=naive_buffer --optimize_out=picodet_320_lite

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值