yolov5训练自己的数据(详细)

已经说过了yolov3的编译、训练的流程了。那今天就来说说yolov5的训练过程了。

1.环境准备

centos=7.9.2009
python=3.7.0
cuda=10.2.89
cudnn=7.6.5
torch=1.6.0
torchvision=0.7.0

2.源码下载

1.通过以下的命令来下载源码和相关以来库的安装:

git clone https://github.com/ultralytics/yolov5
# 如果网速不够快的可以尝试
git clone https://github.com.cnpmjs.org/ultralytics/yolov5
cd yolov5

2.安装依赖库:

pip install -r requirements.txt

具体的环境要求请参考

3.数据准备

数据准备工作可以参考yolov3
具体的文件如下:

yolov5
coco128
----images
--------train2017 # 图片来自JPEGImages
------------xxx.jpg
------------xxx.jpg
----labels
--------train2017
------------xxx.txt
------------xxx.txt

4.预训练模型下载和参数的修改

1.通过运行sh yolov5/weights/download_weights.sh下载预训练模型,或者直接下载模型放入yolov5/weights/。这里有s、m、l、x分别代small, medium, large, super-large在COCO数据集上的表现。可以看出yolov5s是最快的,参数最少的,同时准确率也是最低的。在本文中我们使用yolov5s.pt.
2.参数修改
    ①.修改yolov5/models/yolov5s.yaml

# parameters
nc: 80  # number of classes 修改为自己的类(好像不修改也没影响)
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple

    ②.修改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/coco128.yaml', help='data.yaml path') #参数的修改参考③
    parser.add_argument('--hyp', type=str, default='data/hyp.scratch.yaml', help='hyperparameters path')
    parser.add_argument('--epochs', type=int, default=500) #迭代次数
    parser.add_argument('--batch-size', type=int, default=26, help='total batch size for all GPUs') #batch_size

    ③.修改yolov5/data/coco128.yaml

# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: ../coco128/images/train2017/  # 修改为自己的路径
val: ../coco128/images/train2017/  # 128 修改为自己的路径

# number of classes
nc: 2 #修改为自己的类

# class names
names: ["person","car"] #修改自己的类

5.训练和测试

1.训练数据集

python train.py

训练的模型保存在yolov5/runs/train或者也可以在train.py中进行修改。
2.测试数据

python test.py #相关参数的修改参考train.py
# 同时--weights 修改为自己保存的模型 yolov5/runs/train/exp/weights/best.pt

3.测试demo
修改detect.py

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', nargs='+', type=str, default='yolov5s.pt', help='model.pt path(s)')# 修改为自己的模型位置
    parser.add_argument('--source', type=str, default='data/images', help='source')  # file/folder, 0 for webcam 输入单张图像或者图片文件夹
python detect.py

输出的结果为

115|print(f'{s}Done. ({t2 - t1:.3f}s)')中的s

输出的结果保存在yolov5/runs/detect1207/

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值