Yolov8自动标注数据集完整教程
- 1 前言
- 2 先手动标注数据集,训练出初步的检测模型
- 2.1 手动标注数据集
- 2.2 Yolov8环境配置
- 2.2.1 Yolov8下载
- 2.2.2 Yolov8环境配置
- 2.3 Yolov8模型训练,得到初步的检测模型
- 2.3.1 训练方式
- 3 使用初步的检测模型实现自动数据集标注
- 3.1 使用初步的检测模型生成labels
- 3.1.1 修改default.yaml的参数配置,以保存由模型预测得到的labels的.txt文件
- 3.1.2 预测待自动标注的数据集
- 3.2 微调labels
1 前言
使用Yolov8自动标注自己的数据集,大致步骤:
(1)首先,先手动标注
一部分数据集,进行模型训练,得到初步的检测模型
;
(2)然后,使用初步的检测模型实现自动数据集标注。具体而言,将需要自动标注的数据集
,通过预测predict
的方式,生成labels
,并使用标注工具
对labels
进行微调
。
接下来,将详细介绍Yolov8自动标注数据集的具体步骤。
2 先手动标注数据集,训练出初步的检测模型
2.1 手动标注数据集
标注工具
推荐两种,分别为在线标注网站MakeSense
{MakeSense具体标注教程}和离线软件labelImg
{ labelImg具体标注教程}。
2.2 Yolov8环境配置
2.2.1 Yolov8下载
下载命令:
git clone https://github.com/ultralytics/ultralytics.git
注:
Yolov8下载地址:https://github.com/ultralytics/ultralytics/tree/main
模型下载地址:https://docs.ultralytics.com/tasks/detect/
Model | size (pixels) | mAPval 50-95 | Speed CPU ONNX (ms) | Speed A100 TensorRT (ms) | params (M) | FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 |
2.2.2 Yolov8环境配置
conda create -n yolo_tracking python=3.8
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=10.2 -c pytorch
conda install loguru
pip install opencv-python
pip install gdown
conda install scipy
pip install --upgrade charset-normalizer
conda install -c conda-forge lap
pip install ultralytics
注:在配置环境过程中,如遇到 pip安装问题,可查看pip安装问题常见解决办法
2.3 Yolov8模型训练,得到初步的检测模型
2.3.1 训练方式
yolo task=detect mode=train model=/home/y/Code/yolo_tracking/weights/yolov8x.pt data=datasets/my_BulletHole.yaml epochs=300 batch=4
或者
yolo task=detect mode=train model==yolov8x.yaml data=datasets/my_BulletHole.yaml epochs=300 batch=4
3 使用初步的检测模型实现自动数据集标注
3.1 使用初步的检测模型生成labels
3.1.1 修改default.yaml的参数配置,以保存由模型预测得到的labels的.txt文件
在使用初步的检测模型生成labels之前,需要修改default.yaml
文件,使得预测的结果能够以.txt
的形式保存。
在终端输入 yolo cfg
找到default.yaml的位置,并将save_txt的false改为true
具体命令如下:
# 找到default.yaml的位置
yolo cfg
# 打开 default.yaml文件
sudo gedit /home/y/anaconda3/envs/yolo_tracking/lib/python3.8/site-packages/ultralytics/cfg/default.yaml
# 将save_txt的值修改为True
案例:
找到default.yaml的位置 ,我的default.yaml文件的路径为:
‘/home/y/anaconda3/envs/yolo_tracking/lib/python3.8/site-packages/ultralytics/cfg/default.yaml’
打开default.yaml文件,将save_txt的值修改为True,并ctrl+s进行保存
3.1.2 预测待自动标注的数据集
yolo predict model=runs/detect/train8/weights/best.pt source=/home/y/Code/test/test_dataset
3.2 微调labels
最后使用标注工具进行微调,这里我们使用的是labelImg,加载images和labels进行微调。
labelImg的具体安装步骤和使用方法,已在labelImg具体标注教程介绍,此处不再赘述。