目录
步骤流程图:
安装Anaconda Prompt
数据集采集
labelImg标注数据集
labelImg下载标记
配置labelImg环境
使用lablimg进行标记
训练自己的yolov5模型
举例Google Colaboratory
第一步:进入到Google drive新建---文件夹—yolov5helmet,用于存放项目
第二步:打开 Google Colaboratory网页,进入到 Google Colaboratory,
第三步:修改笔记本设置----设置为GPU,
第四步:安装yolov5所需的 torchvision环境
第五步:接下来就是要链接到我的Google云盘为下面进行存放yolov5
第六步:进入到 yolov5helmet 里进行下载yolov5模型:
第七步:回到Google drive可以看到再刚刚建的文件夹下有刚下载完的yolov5,在yolov5文件下上传我们标记好的数据集
第八步:在Google云盘里使用云盘自带的Editor打开,进行修改yolov5s.yaml 与coco128.yaml文件
第九步:进入到yolov5安装pyyaml
第十步:接下来是训练模型:
可参考以下博主发的内容,链接如下:
(6条消息) 史上最全最详细的Anaconda安装教程_OSurer的博客-CSDN博客_anaconda 安装
处理:收集有不同环境、施工场地与照片分辨率的安全帽佩戴与没有佩戴的图片,以及日常生活等等干扰图片,增加训练的数据集多样性与多元性,以此来增强yolov5训练模型的泛化能力。新建一个文档yolov5-master下新建traindata文件-在traindata文件下新建images与labels,把即将训练的图像放在images下:
下载链接:可在下面这个网页下载:
GitHub - tzutalin/labelImg: ️ LabelImg is a graphical image annotation tool and label object bounding boxes in images下载好,修改标签
在data/predefined_classes.txt里面修改里面的class,比如我的标签为
Without helmet
Helmet on
按下面格式修改
修改好后,需配置好labelImg环境才可以运行:
打开Anaconda Prompt,安装PyQt5,输入如下命令:
pip install PyQt5
运行结果如下图所示:
接下来是安装lxml,输入如下命令:
pip install lxml
运行结果如下图所示:
接下来到labelImg从github下载源码的地址
例如我的是E:\graduation-project\labelimg-master-master
输入如下命令,进入到该文件夹运行:
cd E:\graduation-project\labelimg-master-master
E:
pyrcc5 -o resources.py resources.qrc
运行结果如下图所示:
打开labelImg.py
可以直接在命令行,在E:\graduation-project\labelimg-master-master目录下打开,输入如下命令运行labelImg:
python labelImg.py
也可以有python的idle或pycharm直接打开代码,然后手动run
打开成这个样子:
打开文件照片,如下图步骤:
接下来,将格式改成yolo,如下图所示
打开自动保存
接下来就是大工程,一张张进行标记
按“w”键是标注,按“a”键是上一张,按“d”键是下一张
…………………………………………好几小时后……………………..
一张张标记好,文档成这个样:
在Google Colaboratory上训练速度比较快,在win10训练会比较慢
介绍:colab是google提供的一个免费的jupyter notebook工具,不需要任何配置和设置就可以直接在里面训练,它支持google drive、深度学习框架tensorflow在内的google全家桶,还可以在上面安装并使用Keras、PyTorch、OpenCV等等流行的深度学习库,来主要用于机器学习的开发和研究。colab最大的好处就是给广大的开发者提供免费的GPU资源,可以把Colab看成是一台带有GPU的Ubuntu虚拟机,可以在上面非常轻松地运行如tensorflow、pytorch、keras等深度学习框架。介绍是在网上找的简略介绍
但是使用时,每次使用Colab分配的CPU等硬件设施都会有所不同,还有的就是持续使用Colab的时长最多使用12小时,超过时间系统会强制停止正在运行的程序,并且收回占用的虚拟机,就要重新配置环境等等,如果训练比较大的模型或者运行大的程序,就要充钱了。
首先打开爬到外网登录Google网页,申请一个账号
再登陆进去https://drive.google.com/drive/my-drive
可以看到这个页面
并连接---连接到托管代码执行程,连接后网站会随机分配一个资源,
可以在notebook中查看提供的GPU资源,在代码单元格内打入!nvidia-smi,如下图所示,
!nvidia-smi
与import torch torch.__version__命令,如下图3.4.2所示,运行即可看到分配的资源,进入
注意:不同代码可使用在上方的插入---代码单元格,新的一个代码单元格里写代码运行
import torch
torch.__version__
查看tourch
import torch
torch.cuda.is_available()
!pip3 install torchvision
mport os
from google.colab import drive
drive.mount('/content/drive')
path = "/content/drive/My Drive"
os.chdir(path)
os.listdir(path)
连接到我的云盘
%cd yolov5helmet
!git clone GitHub - ultralytics/yolov5: YOLOv5 in PyTorch > ONNX > CoreML > TFLite
,如下所示,nc为识别的数,本来yolov5s自带的是80,现改为2
Train与val是训练的图像链接
Names是训练识别的名称
自己可根据自己模型进行修改
%cd yolov5
pip install -U pyyaml
训练语句的格式:
!python train.py --data 文档路径/coco128.yaml --cfg 文档路径/yolov5s.yaml --weights '' --batch-size 64
我的训练语句如下:
!python train.py --data /content/drive/MyDrive/yolov5helmet/yolov5/data/coco128.yaml --cfg /content/drive/MyDrive/yolov5helmet/yolov5/models/yolov5s.yaml --weights '' --batch-size 64
截图如下,
等待训练
注意1:试过100张训练1个小时,所以预计好时间更具你的训练量来分配好时间,别傻傻等,多的话就洗洗睡吧,明天一早就看到训练好了。但是
弊端则是:免费用量限额的问题,部分原因是由于它的用量限额是时有变化的动态限额,不能保证资源工艺与无限供应资源。总的来说就是总体用量限额、空闲超时时长、虚拟机生命周期上限、可用GPU类型以及其他因素都会不时变化,达到用量限额系统会强制停止正在运行的程序,并且收回占用的虚拟机,就需要重新配置环境,重新训练等等,这样不能继续上一次的训练,无法继续。并且系统有时会向交互使用colab或最近资源用量较少的用户优先提供,用量限额对长时间运行计算的用户或者资源用量较大的用户非常不便,遇到用量限额的情况。还有的是交互问题,隔一段时间就需要交互一次,不然也会断掉,对长时间训练的不能挂着训练,在页面的Firefox和Chrome中,在colab页面,使用快捷键Ctrl+Shit+i打开检查页面,进入 terminal标签,chrome中为Console。输入以下代码
function ConnectButton(){
console.log("Connect pushed");
document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click()
}
setInterval(ConnectButton,60000);
1分钟点击一次,若想停止点击,在检查页面上输入clearInterval(intervalId)
intervalld换成显示的数字
clearInterval()
注意2:训练时长注意好不要超过Google免费时限,不然会自动断掉
还有的是免费是有个限的,你短时间多次使用,你会成为充钱的潜在客户,分不占用的资源的时候,不会给你优先分,你想用的话只能是充钱了。
最后训练完后,在run文件里得到权重文件
若想测试一下测试可以在yolov5文件里新建一个文件test,放一张照片
!python detect.py --weight weights/best.pt --source 文档路径test /1.jpg
下载模型在本地后,在win10上,使用pycharm运行模型,修改detect.py等,使用电脑自带的摄像头进行识别如下图,如何修改有空再发......
请佩戴好头盔