yolov5模型训练

YOLOv5的优势:

 

  1. 使用PyTorch进行编写。

  2. 可以轻松编译成ONNX和CoreML。

  3. 速度极快,每秒140FPS。

  4. 精度超高,可以达到0.895mAP。

  5. 体积很小:27M。

  6. 集成了YOLOv3-spp和YOLOv4部分特性。

训练环境搭建

下载工程

git clone https://github.com/ultralytics/yolov5.git
cd yolov5
git checkout -b v6.1

依赖环境安装

pip install -r requirements.txt -i https://pypi.douban.com/simple

下载模型

cd weights
wget -c https://github.com/ultralytics/yolov5/releases/download/v6.1/yolov5s.pt

不同的工程版本模型版本不同

模型训练

#!/bin/bash
cd yolov5
python train.py \
      --device 0,1\
      --epochs 10\
      --cache \
      --batch-size 32\
      --imgsz 640\
      --hyp data/hyps/hyp.scratch-high.yaml \
      --data data/coco128.yaml \
      --cfg models/yolov5s.yaml \
      --weights ./weights/yolov5s.pt \
      --project demo \
      --name yolov5s 

传参说明

--device gpu:0,1,2...

--epochs 迭代轮数

--batch-size 批大小

--imgsz 训练验证图片大小

--hyp 图像增强配置(学习率,图片翻转)

--data 指定训练数据文件

--cfg 设置网络结构的配置文件

–weights 加载预训练模型的路径

--project:工程名称

--name:保存文件名称save to project/name

数据配置文件

  • data/coco128.yaml

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Example usage: python train.py --data coco128.yaml
# parent
# ├── yolov5
# └── datasets
#     └── coco128  ← downloads here
​
​
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128  # dataset root dir 训练数据目录
train: images/train2017  # train images (relative to 'path') 128 images 训练集数据
val: images/train2017  # val images (relative to 'path') 128 images 严重集数据
test:  # test images (optional) 测试集数据
​
# Classes
nc: 80  # number of classes 分类数量
names: ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
        'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
        'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
        'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
        'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
        'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
        'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
        'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
        'hair drier', 'toothbrush']  # class names 类别名称
​
​
# Download script/URL (optional)
download: https://ultralytics.com/assets/coco128.zip

网络结构的配置文件

  1. YOLOv5x(最大的模型)

  2. YOLOv5l

  3. YOLOv5m

  4. YOLOv5s(最小的模型)

Yolov5s网络最小,速度最少,AP精度也最低。但如果检测的以大目标为主,追求速度,倒也是个不错的选择。

图片增强配置文件

hyp.scratch.yaml。

# Hyperparameters for VOC finetuning  
# python train.py --batch 64 --weights yolov5m.pt --data voc.yaml --img 512 --epochs 50  
lr0: 0.0032  #学习率  
lrf: 0.12    # 余弦退火超参数  
momentum: 0.843  # 学习率动量  
weight_decay: 0.00036  # 权重衰减系数  
warmup_epochs: 2.0  #预热学习epoch  
warmup_momentum: 0.5 #预热学习率动量  
warmup_bias_lr: 0.05 #预热学习率  
box: 0.0296  # giou损失的系数  
cls: 0.243  # 分类损失的系数  
cls_pw: 0.631 #分类BCELoss中正样本的权重  
obj: 0.301  # 有无物体损失的系数  
obj_pw: 0.911  # 有无物体BCELoss中正样本的权重  
iou_t: 0.2    # 标签与anchors的iou阈值iou training threshold  
anchor_t: 2.91  # 标签的长h宽w/anchor的长h_a宽w_a阈值, 即h/h_a, w/w_a都要在(1/2.91, 2.91)之间anchor-multiple threshold  
# anchors: 3.63  
# 下面是一些数据增强的系数, 包括颜色空间和图片空间  
fl_gamma: 0.0  
hsv_h: 0.0138  # 色调  
hsv_s: 0.664   # 饱和度  
hsv_v: 0.464   # 明度  
degrees: 0.373 #旋转角度  
translate: 0.245  # 水平和垂直平移  
scale: 0.898   # 缩放  
shear: 0.602  # 剪切  
perspective: 0.0  # 透视变换参数  
flipud: 0.00856  # 上下翻转  
fliplr: 0.5   # 左右翻转  
mosaic: 1.0   #进行mosaic的概率  
mixup: 0.243  #进行mixup的概率  

训练结果

images:模型评估图片总数;

labels:检测到对应类别的签数量;

Precision:准确率;

Recall:召回率;

mAP@0.5 & mAP@0.5:0.95:m表示平均,@后面的数表示判定iou为正负样本的阈值,@0.5:0.95表示阈值取0.5:0.05:0.95后取均值。

预览显示

问题汇总

1.cpu环境torch安装失败.torch,torchvision版本配套使用

pip install torch==1.7.1+cpu torchvision==0.8.2+cpu -f https://download.pytorch.org/whl/torch_stable.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值