深度学习-第二章-Window下Yolov5训练打电话

目录

  • 下载源码
  • 新建data目录
  • 准备训练集
  • 修改配置
    • 修改custom.yaml中类别
    • 拷贝process-date文件夹到data目录
    • 修改yolov5s.yaml设置类别
    • 在根目录新建weights权重文件
    • 修改train.py中自定义部分
    • 修改epochs训练轮数和batch-size每次读取图片数
  • 训练
    • 转换训练集为yolov5格式
    • 开始训练
    • 启用tensorbord查看参数
    • 遇到错误
      • OSError: [WinError 1455]页面文件太小,无法完成操作
  • 测试
  • 转换为瑞芯微模型
    • 生成torchscript.pt
    • 中间文件转换瑞芯微模型

下载源码

github:git clone https://github.com/ultralytics/yolov5

并用vscode打开;注意切换到V6.0的分支

新建data目录

# 新建备份data
cp -rp data data_old

准备训练集

将img.zip拷贝到刚创建的data目录下,并解压
同时拷贝custome.yaml到此文件夹
深度学习-第二章-Window下Yolov5训练打电话_第1张图片
有图片和对应的label信息
深度学习-第二章-Window下Yolov5训练打电话_第2张图片

修改配置

修改custom.yaml中类别

深度学习-第二章-Window下Yolov5训练打电话_第3张图片

拷贝process-date文件夹到data目录

深度学习-第二章-Window下Yolov5训练打电话_第4张图片

修改yolov5s.yaml设置类别

深度学习-第二章-Window下Yolov5训练打电话_第5张图片

在根目录新建weights权重文件

mkdir weights

在地址https://github.com/ultralytics/yolov5/releases下载yolov5s.pt文件。
深度学习-第二章-Window下Yolov5训练打电话_第6张图片
放入weights目录
深度学习-第二章-Window下Yolov5训练打电话_第7张图片

修改train.py中自定义部分

parser.add_argument('--weights', type=str, default=ROOT / '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=ROOT / 'data/custom.yaml', help='dataset.yaml path')
    

在这里插入图片描述

修改epochs训练轮数和batch-size每次读取图片数

在这里插入图片描述

由于本机GPU性能较差,只训练10轮,batch设置1
正常设置epochs为300,batch 16

训练

转换训练集为yolov5格式

cd D:\ai\yolov5\data\process-date
# 执行转换
python.exe .\create_all.py

转换之后提示如下:
深度学习-第二章-Window下Yolov5训练打电话_第8张图片
会在data目录下生成iamges和labels两个文件夹,分别对应图片和标注信息

开始训练

D:\ai\yolov5> python.exe .\train.py

训练结束之后
深度学习-第二章-Window下Yolov5训练打电话_第9张图片

启用tensorbord查看参数

yolov5里面有写好的tensorbord函数,可以运行命令就可以调用tensorbord,然后查看tensorbord了。首先打开pycharm的命令控制终端,输入如下命令,就会出现一个网址地址,将那行网址复制下来到浏览器打开就可以看到训练的过程了

tensorboard --logdir=runs/train

训练结束之后生成了模型文件
深度学习-第二章-Window下Yolov5训练打电话_第10张图片

遇到错误

OSError: [WinError 1455]页面文件太小,无法完成操作

参考:https://blog.csdn.net/weixin_46133643/article/details/125042903

报的错误是页面文件太小,所以需要调大页面文件的大小 (你搁这搁这呢)。其实,电脑在默认情况下没有给C盘以外的磁盘分配虚拟内存,所以如果将Anaconda装在C盘以外的话,在跑程序时,由于没有分配虚拟内存,自然就遇到了上面的问题。所以,要解决这个问题,只需要给Anaconda所在的那个磁盘分配虚拟内存即可。当然,如果就是安装在C盘,那么就将虚拟内存值调大一些。
修改Anaconda所在盘的虚拟内存空间

测试

评估模型好坏就是在有标注的测试集或者验证集上进行模型效果的评估,在目标检测中最常使用的评估指标为mAP。在test.py文件中指定数据集配置文件和训练结果模型。切记推理之前把yolo.py改回去

# 测试单张图片
python.exe detect.py --weights runs\train\exp4\weights\best.pt --source test/143.jpg
# 测试多张图片
python.exe detect.py --weights runs\train\exp4\weights\best.pt --source test/
# 结果
Results saved to runs\detect\exp
# 通过调用笔记本的摄像头来推理
python.exe detect.py --weights runs\train\exp4\weights\best.pt --source 0
# 读取,MP4推理
python.exe detect.py --weights runs\train\exp4\weights\best.pt --source D:\ai\yolov_first\yolov5\test\output_s.mp4

效果:
深度学习-第二章-Window下Yolov5训练打电话_第11张图片

转换为瑞芯微模型

生成torchscript.pt

注释models/yolo.py 49和80行forward,73行注释打开,执行如下命令生成torchscript.pt

python.exe export.py --weights weights\yolov5s.pt --include torchscript 
python.exe export.py --weights D:\ai\yolov5\runs\train\exp4\weights\best.pt --include torchscript 
python.exe export.py --weights \runs\train\exp4\weights\best.pt --include torchscript 

中间文件转换瑞芯微模型

# ubuntu下
/home/meng/cnn/rknn/rknn-toolkit-master/examples/pytorch/yolov5/test.py
# 显示如下说明成功
--> Export RKNN model
done

PT_MODEL:要转换的pt模型
RKNN_MODEL:转换后的rknn模型名字
CLASSES:检测类别
执行./test.py 生成rknn模型

你可能感兴趣的:(深度学习,深度学习,人工智能,python)