1、首先下载数据集标定工具labelImg
LabelImg数据集标定工具的下载地址:https://github.com/tzutalin/labelImg
labelImg的安装
首先安装labelImg所需要的依赖。
Ubuntu Linux
Python 3 + Qt5
sudo apt-get install pyqt5-dev-tools
sudo pip3 install -r requirements/requirements-linux-python3.txt
make qt5py3
macOS
Python 3 + Qt5
brew install qt # Install qt-5.x.x by Homebrew
brew install libxml2
or using pip
pip3 install pyqt5 lxml # Install qt and lxml by pip
make qt5py3
其他系统参考官网:https://github.com/tzutalin/labelImg
2、数据集的标定
首先进入labelImg的文件夹内,然后直接运行labelImg.py
文件即可。
cd labelImg
python labelImg.py
之后会出现以下这个界面表示工具运行成功。
对于一个物体来说,数据集越多,最终训练出来的模型效果会更好。
把所有的图片标定完成后,就会得到一个与images图片同名的labels的txt。
如下图所示:
原始的images图片数据集。
标定完成的labels标签。
3、建立yolo v5训练的数据集
数据集的文件结构为
boat_data
├── data.yaml
├── train
│ ├── images
│ │ ├── zuo1.png
│ │ ├── zuo10.png
│ │ ├── zuo100.png
│ │ ├── zuo101.png
│ │ ├── zuo102.png
│ │ ├── zuo103.png
│ │ ├── zuo104.png
│ │ ├── zuo105.png
....
....
....
│ ├── zuo94.txt
│ ├── zuo95.txt
│ ├── zuo96.txt
│ ├── zuo97.txt
│ ├── zuo98.txt
│ └── zuo99.txt
└── val
├── images
│ ├── zuo1.png
│ ├── zuo2.png
│ ├── zuo3.png
....
....
....
│ ├── zuo7.png
│ └── zuo8.png
└── labels
├── zuo1.txt
├── zuo2.txt
├── zuo3.txt
....
....
....
├── zuo7.txt
└── zuo8.txt
6 directories, 351 files
train
文件夹中images
与labels
是训练集。
val
文件夹中images
与labels
是测试集。
data.yaml文件是需要更改的。
内容一般为一下所示(以boat举例):
train: ../boat_data/train/images #训练集的目录
val: ../boat_data/val/images #测试集的目录
nc: 1 #标定的物品的个数
names: ['boat'] #标定物品的名称,如有多个,按标定的顺序依次排序,中间使用“,”隔开。
4、yolo v5数据集的训练
注意,要把数据集放在与yolov5源码文件的相同的目录下!
在YOLO v5的目录下运行一下代码:
python train.py --img 640 --batch 80 --epochs 3 --data ../boat_data/data.yaml --cfg yolov5s.yaml --weights yolov5s.pt --nosave --cache
注意修改yolov5s.yaml
文件中的nc
为标定目标的个数。
运行以上代码后,训练完成后,出现以下情况说明模型训练成功,得到数据集last.pt
。
至此数据集就训练完成了。