记录以下我使用yolov5来训练自己数据集的过程以及遇到的坑~~~
首先要部署yolov5的环境
首先去github上下载yolov5直达
安装依赖包
编译环境我是用的是anaconda 创建的虚拟环境,方便管理,如何创建虚拟环境就不细讲了。创建好之后根据yolov5中的requirment.txt安装它需要的依赖包。
方式一:之前第一次配置环境的时候,用的是pycharm来安装依赖,有几个包一直报错,还是通过pip install 包.whl
的方式安装上的,特别是coco。
方式二:后来换了电脑,直接在anaconda prompt中通过pip就很顺利的就装好了。
还是推荐方式二安装依赖包,方便又好管理。
测试yolov5
进入anaconda的虚拟环境,进入到yolov5的路径下,执行:
python detect.py --source 0
--source 0
表示是用电脑的摄像头,采集视频。如果不想采集视频,可以不加上source
,直接使用\data\images
文件下的测试图片不管是图片还是视频,测试的结果会保存在yolov5项目中\runs\detect\exp
文件夹下。
这样yolov5就部署好了,可以训练自己的数据集了。
准备训练集
yolov5的数据集的形式有很多种,我才用的是
图片与标签分开存放在不同的文件夹下,目录如下:
images中存放的是训练和验证的图片,labels中存放的是标签。之前存放图片的文件夹名称为img,在训练的时候老是报错not found labels
,改成images就好了。
标签和图片是根据图片名称来对应的。
打标签用的是LabelImg,使用的方法就不介绍了,记得使用YOLO的标签格式
更改程序
一:将data/coco128.yaml文件更改三个地方:
1.train/val 的路径 更改为自己的图片的存放地址,标签的地址可以自动推断出来
2.nc 更改分类数目
3.names 更改分类名称
下面是根据我的数据集更改过后的文件
# COCO 2017 dataset http://cocodataset.org - first 128 training images
# Train command: python train.py --data coco128.yaml
# Default dataset location is next to YOLOv5:
# /parent_folder
# /coco128
# /yolov5
# download command/URL (optional)
download: https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip
# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: ../train_imgs/images/train # 1700 images