yolov5的安装、测试和训练自己的数据

主要参考

(0)注意voc格式xml文件的转换见下文

yolov5数据集制作之xml转txt,数据集划分程序,一键转换,搞不定联系我,我帮你搞_大鹏要高飞的博客-CSDN博客

(1)

YoloV5实战:手把手教物体检测——YoloV5_AI浩的博客-CSDN博客_yolov5实战

(2)

YOLOv5训练自己的数据集(超详细完整版)_深度学习菜鸟的博客-CSDN博客_yolov5训练自己数据集

(3)

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

一、安装和测试

(1)安装

git clone https://github.com/ultralytics/yolov5
pip install -r requirements.txt

(2)可以先迅雷下载,放在weights目录下

https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt

(3)测试

python3 detect.py --source ./data/images/zidane.jpg --weights ./weights/yolov5s.pt

(4)如果出现错误
mportError cannot import name _imaging from PIL



pip install --upgrade pillow

二、训练自己的数据

(1)数据集的制作

主要参考了YoloV5实战:手把手教物体检测——YoloV5_AI浩的博客-CSDN博客_yolov5实战

注意,voc和yolov5在平及的目录下,

VOC   yolov5

(2)修改models/yolov5s.yaml的nc为2

# parameters
nc: 2  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple

(3)修改data/voc.yaml的内容如下:

# PASCAL VOC dataset http://host.robots.ox.ac.uk/pascal/VOC/
# Train command: python train.py --data voc.yaml
# Default dataset location is next to YOLOv5:
#   /parent_folder
#     /VOC
#     /yolov5


# download command/URL (optional)
#download: bash data/scripts/get_voc.sh

# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: ../VOC/images/train/  # 16551 images
val: ../VOC/images/val/  # 4952 images

# number of classes
nc: 2

# class names
#类别的名称,和转换数据集时的list对应
names: ["aircraft", "oiltank"]

(4)训练在train.py进行以下几个修改,主要参考了YOLOv5训练自己的数据集(超详细完整版)_深度学习菜鸟的博客-CSDN博客_yolov5训练自己数据集

在train.py进行以下几个修改:

实际关键修改如下

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', type=str, default='weights/yolov5s.pt', help='initial weights path')
    parser.add_argument('--cfg', type=str, default='models/yolov5s.yaml', help='model.yaml path')
    parser.add_argument('--data', type=str, default='data/voc.yaml', help='dataset.yaml path')
    parser.add_argument('--hyp', type=str, default='data/hyp.scratch.yaml', help='hyperparameters path')
    parser.add_argument('--epochs', type=int, default=300)
    parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs')
    parser.add_argument('--img-size', nargs='+', type=int, default=[640, 640], help='[train, test] image sizes')
    parser.add_argument('--rect', action='store_true', help='rectangular training')
    parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume most recent training')
    parser.add_argument('--nosave', action='store_true', help='only save final checkpoint')
    parser.add_argument('--notest', action='store_true', help='only test final epoch')

参考如下


以上参数解释如下:
epochs:指的就是训练过程中整个数据集将被迭代多少次,显卡不行你就调小点。
batch-size:一次看完多少张图片才进行权重更新,梯度下降的mini-batch,显卡不行你就调小点。
cfg:存储模型结构的配置文件
data:存储训练、测试数据的文件
img-size:输入图片宽高,显卡不行你就调小点。
rect:进行矩形训练
resume:恢复最近保存的模型开始训练
nosave:仅保存最终checkpoint
notest:仅测试最后的epoch
evolve:进化超参数
bucket:gsutil bucket
cache-images:缓存图像以加快训练速度
weights:权重文件路径
name: 重命名results.txt to results_name.txt
device:cuda device, i.e. 0 or 0,1,2,3 or cpu
adam:使用adam优化
multi-scale:多尺度训练,img-size +/- 50%
single-cls:单类别的训练集

(5)训练的指令

python3 train.py --img 640 --batch 16 --epoch 300 --data data/voc.yaml --cfg models/yolov5s.yaml --weights weights/yolov5s.pt --device 0,1     # 0号GPU和1号GPU

或者

python3 train.py --img 640 --batch 16 --epoch 300 --data data/voc.yaml --cfg models/yolov5s.yaml --weights weights/yolov5s.pt --device 0    # 0号GPU

-----上次可能有问题如下----

python3 train.py --img 640 --batch 16 --epoch 300 --data data/voc.yaml --cfg models/yolov5s.yaml --weights weights/yolov5s.pt --device '0'     # 0号GPU

三/训练过程可视化
利用tensorboard可视化训练过程,训练开始会在yolov5目录生成一个runs文件夹,利用tensorboard打开即可查看训练日志,命令如下

tensorboard --logdir=runs

四.模型测试

XXXX

五.模型推理

XXXX

六/单幅图测试

python3 detect.py --source ./testimg/aircraft_23.jpg --weight runs/train/exp3/weights/best.pt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值