YOLOV5 代码复现以及搭载服务器运行

文章目录

  • 前言
  • 一、YOLO简介
  • 二、代码下载
  • 三、数据集准备
  • 四、配置文件的修改
    • 1.data下的yaml
    • 2.models下的yaml
    • 3.训练train
  • 五、搭载服务器训练
    • 1.上传数据
    • 2.租服务器
    • 3.pycharm连接服务器
      • 1.添加ssh
      • 2.输入密码
      • 3.配置服务器环境路径跟代码映射路径
    • 4.解压数据
    • 5.开始训练
    • 6.文件下载到本地
  • 六、测试
  • 总结

前言

在前面文章中提到,目标检测有两种方式,一种是one_stage(单阶段)如YOLO 一种是two_stage(双阶段)如Faster_Rcnn,Mask_Rcnn。之前介绍了Faster_Rcnn,这篇文章主要介绍YOLOV5 代码复现过程,以及配置文件的修改。


一、YOLO简介

YOLO是目标检测的一种网络框架,检测速度非常快,适合做一些实时检测,YOLO现在经过几代版本的更迭,现在已经到了V5版本,V5提供了5l,5m,5s,5x几种版本,这篇文章使用5s的模型。

二、代码下载

大家可以自行到百度网盘进行下载,附链接:

链接:百度网盘
提取码:qnn5
图片[1] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

三、数据集准备

在上篇文章中,介绍了xml转txt文件的代码过程,可以自行查看,附链接:
代码
转换之后,还可以分成训练集跟测试集
图片[2] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
images 放置文件
labels 放置txt文件
这里要注意的是,文件夹名称一定为images跟labels,原代码规定如下:

def img2label_paths(img_paths):# Define label paths as a function of image pathssa, sb = os.sep + 'images' + os.sep, os.sep + 'labels' + os.sep# /images/, /labels/ substringsreturn [sb.join(x.rsplit(sa, 1)).rsplit('.', 1)[0] + '.txt' for x in img_paths]

四、配置文件的修改

1.data下的yaml

图片[3] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
修改data目录下面的VOCyaml文件,

修改前:path: ../datasets/VOCtrain: # train images (relative to 'path')16551 images- images/train2012- images/train2007- images/val2012- images/val2007val: # val images (relative to 'path')4952 images- images/test2007test: # test images (optional)- images/test2007修改后train: # train images (relative to 'path')16551 images- /mnt/wu/images/trainval: # val images (relative to 'path')4952 images- /mnt/wu/images/val

这里修改数据路径
图片[4] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

修改前:nc: 20# number of classesnames: ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog','horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor']# class names修改后:nc: 4# number of classesnames: ["Traffic_Light_go","Traffic_Light_stop","Traffic_Light_warning",'Traffic_Light_ambiguous'] # class names

这里更改nc跟标签
nc:表示你训练的数据是几分类。
图片[5] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

2.models下的yaml

图片[6] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
这里使用的是5s的模型,更改yolov5s.yaml文件
图片[7] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
这里只需要更改nc可以,代表你训练的数据是几分类。

3.训练train

图片[8] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

  1. 更改YOLOV5s模型的路径
parser.add_argument('--weights', type=str, default=ROOT / 'yolov5s.pt', help='initial weights path')

2.更改上面修改过models的yaml文件路径

parser.add_argument('--cfg', type=str, default='models/traffic.yaml', help='model.yaml path')

3.更改上面修改过data的yaml文件路径

parser.add_argument('--data', type=str, default=ROOT / 'data/traffic.yaml', help='dataset.yaml path')

4.训练批次

parser.add_argument('--epochs', type=int, default=50)

5.批次大小,batch_size 如果在训练过程中出现显存不足可以降低batch_size的大小

parser.add_argument('--batch-size', type=int, default=64, help='total batch size for all GPUs, -1 for autobatch')

五、搭载服务器训练

像YOLO这种深度框架,最好搭载服务器进行训练,博主使用的是矩池云,附链接矩池云
附邀请码:BQlYmrQhDiex1lZ

1.上传数据

租服务器之前,先上传数据,数据很大的话,租服务器之后上传会浪费时间,还费钱。
进入我的网盘,上传数据。
图片[9] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

2.租服务器

这里选择显卡型号,进行租用。
图片[10] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
环境选择yolov5环境,省去配环境的环节。
图片[11] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

3.pycharm连接服务器

租用好之后,进入租用界面,显示租用服务器的详细信息。
图片[12] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
这里使用ssh连接。
图片[13] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

1.添加ssh

图片[14] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
根据租用服务器的ssh链接,输入主机,用户名,端口。
图片[15] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

2.输入密码

图片[16] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

3.配置服务器环境路径跟代码映射路径

图片[17] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
打开链接,进入终端。
图片[18] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
输入conda env list查看环境路径
图片[19] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

配置环境路径,代码映射路径
mnt路径下就是自己的网盘路径。
图片[20] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
如图所示,配置完成。
图片[21] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

4.解压数据

打开终端,cd到压缩数据集目录下,unzip 文件名 进行解压,如下图所示:

图片[22] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

5.开始训练

等待代码全部上传至服务器之后,按照服务器数据集路径,修改data下面的yaml文件中数据集路径,就可以进行训练了。

如下图所示:就是搭载服务器进行训练。
图片[23] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
图片[24] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
如图所示,开始训练。
图片[25] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
图片[26] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
训练结束。
图片[27] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
这个路径下就是训练产生的权值文件。
图片[28] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
图片[29] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
best.ph 是最好的权值文件。
last.ph 是最后一次训练的权值文件。

6.文件下载到本地

我们可以通过winscp这个软件,将训练的好的文件夹,下载到本地
1.输入主机名,端口号,用户名,密码,连接服务器
图片[30] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
如图所示,连接成功
图片[31] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
2.找到文件夹,下载到本地。图片[32] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

六、测试

我们可以根据训练好的权重进行测试。
测试代码detect.py
图片[33] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
权重文件路径

 parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'runs/train/exp6/weights/best.pt', help='model path(s)')

测试图片,视频路径,0表示开启摄像头。

parser.add_argument('--source', type=str, default="traffic.mp4", help='file/dir/URL/glob, 0 for webcam')

设置好之后就可以就行测试。
图片[34] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
图片[35] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
图片[36] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL
测试完成,会显示保存路径。
打开文件夹,查看效果。
图片[37] - YOLOV5 代码复现以及搭载服务器运行 - MaxSSL

总结

以上就是YOLOV5 搭载服务器复现的全部过程,大家在复现过程中,遇到的问题,可以反馈到评论区。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享