win10 yolov5环境搭建、数据集标注,并训练自己的模型(小白向)
win10 yolov5环境搭建
本来电脑装的是双系统的,另一个系统是Ubuntu18,自带python3.6.9,yolov5需要python3.8以上,死活装不上,根据网上教程还搞了PPA什么的也不行,最后下载了python3.8的源码包编译,就装上了;但是又有其他问题,opencv-python的4.11版本安装不了。。。
无奈换回windows10,下载了python3.8.8的exe,千万别下到32位版本的exe,不然后面pip装其他包的时候,有些没有32位的wheel包(编译好的二进制安装文件),就要下载来编译,就会报没有C编译器的错误;
下载64位的python3.8.8的exe:https://www.python.org/ftp/python/3.8.8/python-3.8.8-amd64.exe
安装的第一个页面记得勾选“add PATH”,这样后面就不用手动添加环境变量了
进到项目网址GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite · GitHub

手动下载压缩包,并解压到桌面或者自己喜欢的目录,路径不要有中文
win+R 输入cmd回车,打开命令行

命令行中输入 修改为你的解压目录,在这里可以复制过去

cd C:\Users\xxxx\Desktop\robot_base\yolov5-master
输入 设置国内的镜像源,下载会比较快
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
输入 下载包依赖
pip install -r requirements.txt
只要python版本>3.8.0,基本上不会出问题,怎么看电脑装的是多少版本的,命令行敲python后回车,就会打印出版本号了,输入exit()回车,就退出python

安装git,后面训练的时候要用到,右键复制下载链接到迅雷下会比较快。
Git - Install for Windows 安装的时候一直点next就行
测试安装
把要推理的图片放入项目的根目录

输入
python detect.py --weights yolov5s.pt --source img.jpg
其中报一些pip的错不理他,反正能正确推理出结果就不理他

识别出来的结果放到了这个文件夹里,至此,yolov5 的Windows环境搭建成功!

如果想识别一堆图片,那就把图片所在的路径复制一下

python detect.py --weights yolov5s.pt --source C:\Users\XXX\Desktop\chayou\source
输出结果

数据集准备
首先得收集图片,然后尽量给改成jpg格式的,可以用格式工厂转一下,
图片的名字可能千变万化,为了好看,便于整理,可以手动重命名排序一下,照片多就让ai写一个排序改名的python程序
收集的图片尽量是在那种在实际应用场景能碰到的,比如我这个应用场景是一个果实的采摘场景,你收集的图片就是在室外农场里近距离的,1-5个果实,相当于近距离引导机械臂视觉定位用;

像以上这种一大片的,或者在盆子里装着的、就不是我们的应用场景里的,没办法和叶子、背景那些区分开,就不要放到数据集里了。
下载一下数据标注软件:
链接: https://pan.baidu.com/s/1zzTqpKcPyQOXj-zzy6NzQw?pwd=6666 提取码: 6666

软件自带默认的标签,假如你有很多种物品要标注,那就按照下面来
apple
banana
orange
我这里只标注1种果子,就直接1个标签了
双击labelImg.exe

软件默认标签文件是PascalVoc 格式,这种格式的标签文件是xml格式的,我们要的是yolo格式的,像上图一样,输出的是txt格式的

View选项里的Auto Save mode (自动保存)模式要开启,这样切换图片的时候不会跳出保存提示,开启后切换图片就可以自动保存标签文件到目录里;
如果只标注一种物品,则可以开启Single Class Mode,开启后拉完框框后不会跳出标签选择对话框,可以显著提供标注的速度;
按键盘的“W”键后会出现一个十字,按住鼠标左键开始拉框,拉完可以调整4个角点进行微调,或者选中框直接按Delete键删除标注框;标注完一张图后按“D”键进行下一张图片的标注,按“A”键返回上一张图片
标签文件打开后是这样的,有多少行就代表这张图标注了多少个框

标注好后我们开始制作数据集,先下一个别人的数据集,看看是怎么摆放的
我们下载的是最精简的数据集coco8,训练集和验证集加起来只有8张图片,
我们先新建一个文件夹,比如我这个项目叫茶油果目标检测项目,一共收集了76张照片,那数据集就命名为chayou76,在chayou76里面新建两个文件夹,分别叫images、labels
images文件夹里面再新建train、val两个文件夹,train里放01~38号jpg,val文件夹放39~76号jpg;
同样的labels文件夹里面再新建train、val两个文件夹,train里放01~38号txt,val文件夹放39~76号txt;

我们可以看到,txt里没有具体的标签名称,只有一个序号0,那怎么知道这个0对应的叫什么呢,就要用到yaml文件了,别人的yaml示例文件在yolov5项目文件夹里的data文件夹里可以找到
在yolov5项目文件夹新建一个chayou76.yaml文件,再把下面的贴进去,保存
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# Example usage: python train.py --data coco128.yaml
# parent
# ├── yolov5
# └── datasets
# └── coco128 ← downloads here (7 MB)
# 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: C:\Users\xxx\Desktop\chayou\chayou76 # dataset root dir
train: images/train # train images (relative to 'path') 128 images
val: images/val # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
names:
0: fruit
训练模型
输入下面的 开始用CPU进行训练
python train.py --img 640 --batch 16 --epochs 3 --data chayou76.yaml --weights yolov5s.pt
如果训练报下面这个错就是没有装git导致的,装完git后重启命令行再进到yolov5项目文件夹中
C:\Users\XXX\Desktop\robot_base\yolov5-master>python train.py --img 640 --batch 16 --epochs 3 --data chayou76.yaml --weights yolov5s.pt
Traceback (most recent call last):
File "C:\Users\xxx\AppData\Local\Programs\Python\Python38\lib\site-packages\git\__init__.py", line 296, in <module>
refresh()
File "C:\Users\xxx\AppData\Local\Programs\Python\Python38\lib\site-packages\git\__init__.py", line 287, in refresh
if not Git.refresh(path=path):
File "C:\Users\xxx\AppData\Local\Programs\Python\Python38\lib\site-packages\git\cmd.py", line 860, in refresh
raise ImportError(err)
ImportError: Bad git executable.
The git executable must be specified in one of the following ways:
- be included in your $PATH
- be set via $GIT_PYTHON_GIT_EXECUTABLE
- explicitly set via git.refresh(<full-path-to-git-executable>)
All git commands will error until this is rectified.
CPU强行练丹,速度也挺快的。

模型测试
看看练了3个回合的丹效果怎么样
python detect.py --weights runs\train\exp\weights\best.pt --source C:\Users\xxx\Desktop\chayou\source
结果拉了,完全不能用

一气之下训练200个回合,用时1h
python train.py --img 640 --batch 16 --epochs 200 --data chayou76.yaml --weights yolov5s.pt
可以看到200个回合的模型的预测结果已经有了置信度;之前训练3个回合的模型,val_batch0_pred一个框都没

对整个目录的图片进行目标检测
python detect.py --weights runs\train\exp2\weights\best.pt --source C:\Users\xxx\Desktop\chayou\source
虽然这个目录的图片在训练集中已经出现过,但对比3个回合的训练,模型性能已经有大幅度的提升了

茶油果数据集分享到云盘中
链接: https://pan.baidu.com/s/1AY4Wm9uZ4iQPMncVRmmYtQ?pwd=6666 提取码: 6666
更多推荐
所有评论(0)