本文将拆解每一步YOLOv5的每一步,并将其部署到C#之中
一、获取YOLOv5(后面为方便直接写作YOLO)
获取链接:YOLOv5
二、训练YOLO
1、使用命令创建YOLO环境
在Anaconda Prompt中执行
conda create -n yolo python=3.8
2、进入YOLO环境
3、进入下载好的YOLO的文件夹,可以看到requirement.txt文件,里面就是YOLO需要的库
进入该文件夹后,输入指令下载对应的库。
pip install -r requirements.txt
(补充:如果下不动可能需要换一下国内的镜像源:如清华、中科院等)
4、使用labelImg工具进行图片的标注工作
方法1:直接去官网下:链接在此:标注工具labelImg
放法2:使用指令安装
pip install labelimg
安装完后直接输入labelimg就能直接使用工具
基本设置
使用Open Dir来选择需要修改的图片文件夹
右上角有一个默认标签,我这里因为只检测一种,所以就选上了。
点击Change Save Dir选择txt保存的结果
注意这里要改成YOLO模式,不然数据格式不对。
开始框图
这里列出了labelimg中使用的一些快捷键,其实主要就是wad三个快捷键
w: 创造框
a:前一张图片
d:下一张图片
Ctrl + u Load all of the images from a directory
Ctrl + r Change the default annotation target dir
Ctrl + s Save
Ctrl + d Copy the current label and rect box
Ctrl + Shift + d Delete the current image
Space Flag the current image as verified
w Create a rect box
d Next image
a Previous image
del Delete the selected rect box
Ctrl++ Zoom in
Ctrl-- Zoom out
↑→↓← | Keyboard arrows to move selected rect box
5、 创建yaml文件
最后数据集的结构如图所示
直接创建一个txt文件,然后把后缀改成yaml就行。
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/defect # dataset root dir
train: images/defect # train images (relative to 'path') 128 images
val: images/defect # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
names:
0: defect
6、进入YOLO文件夹,使用train.py开始训练本地训练集
还有一些要处理
然后trian.py里面的一些默认参数也可以改:
训练
python train.py --img 1000 --epochs 3 --data data/defect.yaml --weights weights/yolov5s.pt
这里yolov5s.pt的预训练模型可以提前下好放到weights里面,因为官网下得慢。
链接在此YOLOv5s.pt
等待训练结果:
一些补充和问题
补充:
如果在训练那一块实在不知道可以去看官方的教程运行coco128:coco128
程序运行的时候有些问题列在这里
问题一:TypeError: Descriptors cannot not be created directly 解决方法
问题二:Download error: <urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
开VPN