码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 深度学习-第二章-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
    
    • 1
    • 2

    准备训练集

    将img.zip拷贝到刚创建的data目录下,并解压
    同时拷贝custome.yaml到此文件夹
    在这里插入图片描述
    有图片和对应的label信息
    在这里插入图片描述

    修改配置

    修改custom.yaml中类别

    在这里插入图片描述

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

    在这里插入图片描述

    修改yolov5s.yaml设置类别

    在这里插入图片描述

    在根目录新建weights权重文件

    mkdir weights
    
    • 1

    在地址https://github.com/ultralytics/yolov5/releases下载yolov5s.pt文件。
    在这里插入图片描述
    放入weights目录
    在这里插入图片描述

    修改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')
        
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

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

    在这里插入图片描述

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

    训练

    转换训练集为yolov5格式

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

    转换之后提示如下:
    在这里插入图片描述
    会在data目录下生成iamges和labels两个文件夹,分别对应图片和标注信息

    开始训练

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

    训练结束之后
    在这里插入图片描述

    启用tensorbord查看参数

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

    tensorboard --logdir=runs/train
    
    • 1

    训练结束之后生成了模型文件
    在这里插入图片描述

    遇到错误

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    效果:
    在这里插入图片描述

    转换为瑞芯微模型

    生成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 
    
    • 1
    • 2
    • 3

    中间文件转换瑞芯微模型

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

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

  • 相关阅读:
    读后感-雷军2022年度演讲全文
    三菱FX3U系列—原点回归指令
    java计算机毕业设计Web医学院校大学生就业信息管理系统源码+mysql数据库+系统+lw文档+部署1
    沃创云|让客户更精准的AI外呼客户初筛系统
    勒索病毒该如何进行防范
    【计组】处理器
    美团面试:Oracle JDK那么好,为何要用Open JDK?
    对max2900的一些了解
    java【毕业设计】项目-第117期基于SpringBoot+Shiro的通用权限管理系统-毕业设计
    如何为虚拟机添加磁盘,扩充原有分区的磁盘空间
  • 原文地址:https://blog.csdn.net/Blueeyedboy521/article/details/125455637
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号