赞
踩
目录
在训练模型前,我们需要搭建一个项目环境,这边使用Anaconda创建一个新环境
conda create -n yolo python=版本号
我们需要去获取yolov5s-6.2代码:https://github.com/ultralytics/yolov5
获取后,安装需要的库:
pip install -r requirements.txt
在配置好环境以后,我们需要针对自己的任务,收集数据集,对其进行处理用以后续的训练
可以通过开源网站、爬虫爬取、视频抽帧、拍照来获取
数据集标注工作可以使用使用labor image软件,使用步骤如下
进入虚拟环境,pip安装
pip install labelimg
安装完成后直接输入labelimg,即可直接打开软件
(其中快捷键的使用:
W: 创建一个标记的框选
A: 上一张图
D: 下一张图
Ctrl+S: 保存当前标图
Enter: 填好 class 后按 Enter 相当于点 OK)
完成标注后, 在目录下会自动生成 classes.txt 文件和图片对应的标记文件的.txt
对文件内容进行分析:
classes.txt记录标记时分出来的类目,序号从0开始, 从上到下,每个使用换行符
图片.txt每行有5个数据, 第一个是 类目索引, 后面4个是归一化(把长宽看成是1,其他点等比缩小)的 xCenter, yCenter, width, height
1、遍历txt和jpg,删除没有标签的图片(数据清洗)
2、对数据集进行7:2:1划分
划分后文件夹格式,如下图
a、拷贝项目下的 data/coco128.yaml 更名为 ***.yaml 并修改内容
b、拷贝项目下的 models/yolov5s.yaml 更名为 ***.yaml 并修改内容
打开项目文件夹下train.py进行修改
修改画框部分,其中epochs:迭代次数、batch-size:一次训练所选取的样本数,需要根据自身训练机改变相应大小
在完成上述操作后,开始运行train.py文件,训练完毕后,会在项目目录下runs/train/exp/下生成大量文件
其中,weight文件夹下会保存训练产生的最优模型和最终模型
打开项目文件夹下detect.py进行修改
在完成上述操作后,开始运行detect.py文件,验证完毕即可查看内容
在进入项目指定环境后,安装合适版本的onnx
pip install onnx
修改转出的模型文件export.py,按需修改下面的内容
在完成上述操作后,开始运行export.py文件,转出后就生成了best.onnx的模型文件,查看onnx的模型文件,可以看到模型文件的输入输出及类型都显示在上面。
1.读取模型 net = cv2.dnn.readNetFromONNX(model)
2.输入(类似Tensor) blob = cv2.dnn.blobFromImage(image, 1 / 255.0, (640, 640), swapRB=True, crop=False) swapRB:BGR->RGB net.setInput(blob)
3.推理 preds = net.forward()
4.非极大值抑制 cv2.dnn.NMSBoxes(boxes,confidences,0.25,0.45)
解决方案:安装匹配版本
pip install protobuf==3.19.0
解决方案:根据python interpreter的路径,删除其目录下多余的libiomp5md.dll
如果是在Anaconda的base环境下,删除…\anaconda3\Library\bin\libiomp5md.dll(目录中的第二个,第一个是torch下的)
如果是在某个env(例如名为work)下:删除…\Anaconda3\envs\环境\Library\bin\libiomp5md.dll
FileNotFoundError: [Errno 2] No such file or directory: 'VOCdevkit/VOC2012/ImageSets/Main/aeroplane_train.txt'
解决方案:将相对路径换成绝对路径
解决方案:
修改权重文件下载指令,直接注释相关行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。