win10+cpu+yolov5实现安全帽绝缘鞋绝缘手套等的检测

学习目标:

win10+cpu+yolov5实现安全帽绝缘鞋绝缘手套等的检测


学习内容:

  1. 搭建 yolov5环境
  2. 找到合适的数据集训练
  3. 跑跑看看效果

一.搭建yolov5环境:

参考win10部署yolov5环境


之前装过anaconda 直接从(二、利用Anaconda3下载PyTorch)开始:

1.创建pytorch环境

第一条命令是:conda create --name pytorch python==3.8
输入y
第二条命令是“conda info -e
在这里插入图片描述
第三条命令:conda activate pytorch 在这里插入图片描述
base变成了pytorch环境了。

2.安装Pytorch

去网页Pytorch官网根据自己需要选择,我的是这样:
在这里插入图片描述
在刚刚的Anaconda prompt里面输入得到的命令:

conda install pytorch torchvision torchaudio cpuonly -c pytorch

输入y
在这里插入图片描述

3.验证PyTorch是否安装成功

首先激活pytorch环境,再使用python,其次调torch库,最后输出torch的版本号:
在这里插入图片描述

4.安装python-opencv

不知道为啥安装报错:
在这里插入图片描述
解决办法: pip3 install opencv-python
在这里插入图片描述
测试一下有没有安装成功:
在这里插入图片描述

5. 下载yolo

直接到github下载zip
再下载yolo模型:
下载ASSET里面的yolo(smxl)
在这里插入图片描述
反正就是下这几个。太慢了,我就直接csdn找了个资源下了。
源码下完后,下面开始安装Yolov5所需模块:python -m pip install -r requirements.txt
在这里插入图片描述
在这里插入图片描述

6.打开detect.py设置Interpreter

参照四、PyCharm环境搭建

7.运行

在这里插入图片描述
查了一下是权重文件有问题,果然不能在外面随便乱下。。
下了这个链接的网盘的yolov5s,替换以后就可以跑了
在这里插入图片描述
输出结果:
在这里插入图片描述
在这里插入图片描述

二、找到合适的数据集训练

找了两千多张变电站图片,但是这些图没有绝缘鞋,先试一下测试安全帽和绝缘手套。后续自己找一些图再标
数据集标注的类有:

badge:监护袖章(只识别红色袖章)
person:图中出现的所有在场人员
glove:绝缘手套(橡胶材质)
wrongglove:未佩戴绝缘手套(其他手套或裸露手掌)
operatingbar:操作杆
powerchecker:验电笔

标签数量
person:4792个
wrongglove:5177个
badge:789个
operatingbar:917个
glove:1847个
powerchecker:794

三、yolov5训练自己的数据集

参考链接从第四个部分划分数据集开始:

出现的问题:

问题1:3.2. XML格式转yolo_txt格式
‘NoneType’ object has no attribute ‘text’
注:原链接yolov5/data对应我的D:\cubemos_SDK\SkeletonTracking\samples\python\yolov5-master\data
myvoc.yaml文件我放在这里。

问题2:4.2.2生成anchors
下载的yolov5没有hyp.cratch.yaml文件,只有三个
在这里插入图片描述
不知道选哪个三个超参数文件运行后的对比
我就先选了hyp.scratch-low.yaml练手。

问题3:3.2 修改模型配置文件
选择yolov5s.yaml将标注类目数改成6

问题4:第五部分的时候告诉我yolov5只能在python3.7以上跑。。。
所以新建了一个Python3.8的环境开始弄。中间一直出现因为路径导致的问题:

问题4:训练过程中遇到的问题:

No labels found in D:\VOCGlovesDetection\dataSet_path\train.cache

找不到labels,查看在D:\VOCGlovesDetection\dataSet_path下生成的train文件,看看自己的图片路径里面是不是有图片。
我数据集jpg存放的文件夹实际是JPEGImages,但是上面的xml_to_yolo.py里把train.txt文件里的文件夹名设置成images了
修改xml_to_yolo.py文件,换成自己的文件名在这里插入图片描述
再次运行xml_to_yolo.py文件后可以看到文件路径是对的,重新运行train.txt文件还是不行
因为生成train.cache是要先找到labels文件夹的txt文件,labels文件夹是根据刚刚的图片路径改名得到的,改名的方式是:
在这里插入图片描述这段代码位于dataloaders.py文件,本来JPEGImages是images,如果不改成JPEGImages的话,就没办法找到Labels文件,所以一直显示missing。
更改以后train.py就可以正常运行了。但是cpu运行实在太慢了,明天试一下用云服务器跑。

四、在云服务器上训练yolov5

因为pycharm专业版有ssl功能,所以下了一个专业版,免费试用30天。不用专业版也可以直接用ssl软件登录远端服务器
参考链接:租用服务器,以及部署在pycharm专业版上的pytorch环境训练yolov5模型
pycharm ssl使用教程:注意map隐射路径的选择,尽量按官方例程来
在pycharm专业版打开远程服务器终端:工具-启动SSH会话
终端操作:

1.cd到yolov5-master所在的文件夹(在你映射的路径下,找不到就去interpreter看一下)
cd /root/autodl-tmp/yolov5-master
2.下载一下requirements.txt里的package,最好用国内源下,不然有些找不到新版本
pip install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
3.直接跑一下train.py文件,这时候肯定会说路径有问题。
  改一改然后重新运行一下之前的split_train_val.py、xml_to_yolo.py、myvoc.yaml文件
  让train.val.txt里面的路径跟远程服务器里的路径匹配就可以。
  python train.py
 4、待解决的问题:中间python train.py的时候有报错一次连接不到远程服务端,搜索csdn这个问题都是在爬虫才会遇到
   没有特别适配的解决方案,过一会重新python train.py又可以正常跑了。不知道为啥。

训练完成以后在最后一个runs/train/exp文件夹里面可以得到权重文件,通过公用网盘下载到本地进行验证。
打开detect.py改一下weight和data然后看看程序输出:
![在这里插入图片描述](https://img-blog.csdnimg.cn/efc2e4476f07449e8f9d6e3968376baa.jpeg#pic_center
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值