百度目标检测7日打卡

百度目标检测7日打卡营作业三:YOLO系列模型实战

实战数据集及框架
印刷电路板(PCB)瑕疵数据集:http://robotics.pkusz.edu.cn/resources/dataset/,是一个公共的合成PCB数据集,由北京大学发布,其中包含1386张图像以及6种缺陷(缺失孔,鼠标咬伤,开路,短路,杂散,伪铜),用于检测,分类和配准任务。我们选取了其中适用与检测任务的693张图像,随机选择593张图像作为训练集,100张图像作为验证集。
PaddleDetection:飞桨推出的PaddleDetection是端到端目标检测开发套件,旨在帮助开发者更快更好地完成检测模型的训练、精度速度优化到部署全流程。该框架中提供了丰富的数据增强、网络组件、损失函数等模块,集成了模型压缩和跨平台高性能部署能力。目前基于PaddleDetection已经完成落地的项目涉及工业质检、遥感图像检测、无人巡检等多个领域。Github地址:https://github.com/PaddlePaddle/PaddleDetection

简介

主要分享一下,自己在完成这个作业时的.yml参数。

ppyolo_r18vd.yml

architecture: YOLOv3
use_gpu: true
max_iters: 20000
log_smooth_window: 20
log_iter: 20
save_dir: output
snapshot_iter: 1000
metric: COCO
pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet18_vd_pretrained.tar
weights: output/ppyolo_tiny/model_final
num_classes: 6
use_fine_grained_loss: true
use_ema: true
ema_decay: 0.9998

YOLOv3:
backbone: ResNet
yolo_head: YOLOv3Head
use_fine_grained_loss: true

ResNet:
norm_type: sync_bn
freeze_at: 0
freeze_norm: false
norm_decay: 0.
depth: 18
feature_maps: [4, 5]
variant: d

YOLOv3Head:
anchor_masks: [[3, 4, 5], [0, 1, 2]]
anchors: [[10, 14], [23, 27], [37, 58],
[81, 82], [135, 169], [344, 319]]
norm_decay: 0.
conv_block_num: 0
scale_x_y: 1.05
yolo_loss: YOLOv3Loss
nms: MatrixNMS
drop_block: true

YOLOv3Loss:
ignore_thresh: 0.7
scale_x_y: 1.05
label_smooth: false
use_fine_grained_loss: true
iou_loss: IouLoss

IouLoss:
loss_weight: 2.5
max_height: 608
max_width: 608

MatrixNMS:
background_label: -1
keep_top_k: 100
normalized: false
score_threshold: 0.01
post_threshold: 0.01

LearningRate:
base_lr: 0.00025
schedulers:

  • !PiecewiseDecay
    gamma: 0.1
    milestones:
    • 8895
    • 11860
  • !LinearWarmup
    start_factor: 0.
    steps: 500

OptimizerBuilder:
optimizer:
momentum: 0.9
type: Momentum
regularizer:
factor: 0.0005
type: L2

READER: ‘ppyolo_reader.yml’
TrainReader:
inputs_def:
fields: [‘image’, ‘gt_bbox’, ‘gt_class’, ‘gt_score’]
num_max_boxes: 50
dataset:
!COCODataSet
image_dir: images
anno_path: Annotations/train.json
dataset_dir: /home/aistudio/work/PCB_DATASET
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
- !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
    anchor_masks: [[3, 4, 5], [0, 1, 2]]
    anchors: [[10, 14], [23, 27], [37, 58],
    [81, 82], [135, 169], [344, 319]]
    downsample_ratios: [32, 16]
    batch_size: 16
    shuffle: true
    mixup_epoch: 150
    drop_last: true
    worker_num: 2
    bufsize: 8
    use_process: true

ppyolo_reader.yml

TrainReader:
inputs_def:
fields: [‘image’, ‘gt_bbox’, ‘gt_class’, ‘gt_score’]
num_max_boxes: 50
dataset:
!COCODataSet
image_dir: images
anno_path: Annotations/train.json
dataset_dir: /home/aistudio/work/PCB_DATASET
with_background: false
sample_transforms:
- !DecodeImage
to_rgb: True
- !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
    anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]]
    anchors: [[8, 14], [13, 14], [20, 13],
    [11, 26], [15, 19], [30, 16],
    [16, 31], [23, 25], [36, 36]]
    downsample_ratios: [32, 16, 8]
    batch_size: 8
    shuffle: true
    mixup_epoch: 25000
    drop_last: true
    worker_num: 2
    bufsize: 4
    use_process: true

EvalReader:
inputs_def:
fields: [‘image’, ‘im_size’, ‘im_id’]
num_max_boxes: 50
dataset:
!COCODataSet
image_dir: images
anno_path: Annotations/val.json
dataset_dir: /home/aistudio/work/PCB_DATASET
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: 8
drop_empty: false
worker_num: 8
bufsize: 4

TestReader:
inputs_def:
image_shape: [3, 608, 608]
fields: [‘image’, ‘im_size’, ‘im_id’]
dataset:
!ImageFolder
anno_path: /home/aistudio/work/PCB_DATASET/Annotations/val.json
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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值