1.源码地址:
https://github.com/WongKinYiu/yolov7
下载之后解压
2.环境准备
1.用pycharm打开项目文件,选择自己的虚拟环境
2.下载项目所需要的包和权重文件
打开Terminal
输入以下命令:
pip install -r requirements.txt
下载预训练权重YOLOv7.pt
下载完成之后放在项目根目录下
3.测试环境是否安装成功
运行detect.py
运行结果在runs/detect文件夹中
到此为止,说明环境已经准备好了。
3.训练VisDrone数据集
1.新建文件夹datasets,将自己的无人机数据集放进去
给出无人机数据集的网盘链接:
链接:https://pan.baidu.com/s/1N1IuBkoX2jd_6x4kscSDKg
提取码:l070
此数据集是我已经处理好的,可以直接用。
2.修改配置文件:模型配置文件 + 数据集配置文件
1.修改模型配置文件
找到原模型配置文件:cfg/training/yolov7.yaml
复制到同级文件夹,取名叫yolov7-VisDrone.yaml
修改nc(类别数):
2.修改数据集配置文件
先找到原数据集配置文件:data/coco.yaml
复制到同级目录取名叫VisDrone.yaml
4.修改train.py并解决训练过程中出现的bug
1.出现bug1:assets = [x['name'] for x in response['assets']] # release assets KeyError: 'assets'
解决方案:
data/hyp.scratch.p5.yaml 中的anchors=3取消注释
2.bug2:报错说是数据集路径有问题
修改VisDrone.yaml的训练 验证数据集路径
训练coco数据集:
还要下载,太慢了,放弃
0 6339M 0 510k 0 0 15942 0 4d 19h 0:00:32 4d 19h 10854
3.bug3:_pickle.UnpicklingError: STACK_GLOBAL requires str
原因:原因就是在数据集labels文件中产生了.cache文件,需要先把这个文件删掉
已解决
训练成功
但是batch_size设置为4都爆显存了
使用yolov7-tiny训练VisDrone数据集
yolov7-tiny权重下载地址:
链接:https://pan.baidu.com/s/1sInfmTQmk04XXiVBMjW_ng
提取码:r4xi