Yolov5项目完结篇:利用yolov5训练自己的目标检测模型(基于Yolov5的目标检测项目)

项目的克隆与依赖环境的安装

        yolov5的代码是开源的,因此可以直接在github上克隆源码即可,github上的神人们,在yolov5发布不久,便更新出了好多个yolov5的分支,本篇全程以yolov5-v5作为演示。

        项目克隆

    通过访问github对源码进行克隆,注意选择分支,点击master选择v5分支进行克隆下载。

9ca7167e2e62440b981da025cdb8d368.png

下载完成后用PyCharm打开项目

5f022dd5e447489a9ec178eb7e876481.png

         项目依赖环境的安装

在文件requirements.txt中便是我们需要的一些依赖包 

1ddda5bd201c44d980b5683558d4f1a1.png

在该文件下的一些依赖包的版本可能会根据环境版本的不同而不匹配,需要根据报错去自己调整(每个人的版本不一样报错也会不一样,根据报错去降低版本或升到最新版本即可)

在PyCharm终端输入下面命令便可将包全部下载,也可以在安装要求里选择性下载

pip install -r requirements.txt

        准备预训练权重和自己的数据集

    将标注好的数据集的包直接复制进项目即可(将VOCdevkit文件复制进去)

8b95403e92e348b595a1ae33a997864b.png

     下载预训练权重

    使用预训练权重可以加速模型的训练过程,提供更好的初始化和更好的特征表示,从而在目标检测任务中获得更好的性能。需要注意的是,预训练权重通常需要与目标检测任务的数据集进行微调,以使模型适应具体的任务和数据。这样可以进一步改善模型在目标检测任务上的性能。在yolov5中有预训练的文件,我们也可以根据项目需求下载不同的预训练文件,我使用的是yolov5s

0d2543e23b104e00abb9d54cbe68cec8.png

训练模型

    修改配置文件

1.  models/yolov5s.yaml该文件要进行修改,nc要修改成自己类别的数量

8874305f8f8742c59e0a612257cf5fd6.png

 2.  data/voc.yamlv该文件下download可以注释掉,因为该文件的服务器在国外,可能会因为下载失败而报错。train与val要替换成VOCdevkit文件夹下的images文件夹下的train文件夹和val文件夹的路径;nc要改成对应的类别数量;names下的内容要修改成对应的类别名称。

69fd939ae00e4ab89d91811be4b931a0.png

         修改参数(修改train.py文件)

    训练自己的模型需要修改如下几个参数就可以训练了。首先将weights权重的路径填写下载的yolov5.pt的文件路径,然后将修好的models模型的yolov5s.yaml文件路径填写到相应的参数里面,最后将data数据的hat.yaml文件路径填写到相对于的参数里面。这几个参数就必须要修改的参数。

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

可根据需求进行调整训练的轮数,我这里是400轮(放在自己电脑训练可能对电脑配置要求教高,否则训练速度会很慢,建议放在计算能力较强的服务器上进行训练)

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

如果有虚拟内存不够的情况时,在utils/datasets.py这个文件,将里面的第81行里面的参数改为0就可以了。

运行train.py便开始训练模型

9bfd640a055945509f148f2be60912b3.png

启用wandb查看参数

在prchrem终端输入命令下载wandb,输入密钥即可,密钥需要到wandb官网注册获得。

pip install wandb

启用wandb查看参数(到wandb官网便可查看正在进行训练模型的参数)

4bcf0c4bcd75456ead416389824a74c3.png

 验证测试

训练完成后为验证自己的模型是否可用可进行测试查看,测试程序是detect.py这个文件,但是也要修改几个默认配置。

需要修改主程序下的两行文件路径即可,weights下的default的路径修改成训练完自己生成的文件夹runs文件夹下的文件内即可,路径会是runs/train/exp/weights/last.pt

,source下的default路径修改成要验证的图片路径。

parser.add_argument('--weights', nargs='+', type=str, default='runs/train/train/exp4/weights/last.pt', help='model.pt path(s)')
parser.add_argument('--source', type=str, default='026.jpg', help='source')  # file/folder, 0 for webcam

修改完成后运行即可,运行完成后会提示你识别完的图片所保存的位置

826997488eeb448eadfcb6ee3c0ab8af.png

3b5f63073ff5453a947d298460b6ff4b.png

 识别后的数据存储

可将识别后的信息进行存储数据库方便被其它项目调用,实现数据交互可参考:python与php数据交互(基于Yolov5的目标检测项目)

进行数据存储。到此基于yolov5目标识别检测项目完结。

下一篇概括:内网映射(由租用的服务器可供外网访问得到灵感,通过将电脑本地服务器进行端口转发或映射,从而实现内网与外网之间的通信,可实现对全国各地自研联网产品的低成本远程控制和数据传输。实现不租用服务器便可跨局域网通信)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值