目录
安装labelimg第三方库
pip install labelimg -i https://mirror.baidu.com/pypi/simple
运行labelimg
labelimg
Open Dir:需标注的数据集地址
Change Save Dir:存放已标注数据集 label 的地址
Next Image 和 Prev Image 用于切换下一张和上一张图片
Change save format:注意切换成Yolo的格式
Create RectBox:使用矩形框标注物体的位置
训练集和验证集的路径格式如下:
- dataset
- ├─ images
- │ ├─ test # 存放测试集数据(可无)
- │ ├─ train # 存放训练集数据
- │ └─ val # 存放验证集数据
- └─ labels
- ├─ test # 存放测试集标签(可无)
- ├─ train # 存放训练集标签
- ├─ val # 存放验证集标签
举例:
注:存放图片和标签的文件夹需对应相同,如 images 下存放训练集图片 和 labels下 存放训练集标签的文件夹均为train_dataset。(文件夹名可自由定义)
①设置数据集的配置文件
参考Yolov5的coco.yaml配置文件
举例:
- # 设置路径
- path: /civi/dd_Detection_6.28/dataset # dataset root dir
- train: images/train_dataset # train images dir
- val: images/test_dataset # val images dir
- test: # optional
-
- # 设置类别Classes
- nc: 1 # number of classes
- names: ['done'] # class names
path:数据集的根目录
train:训练集相对于path的路径
val:验证集相对于path的路径
(路径的设置 可参考 第二节数据集路径格式 的举例图)
nc:类别的个数(这里博主用于识别一个类别,因此设置为1)
names:类别的名称
②设置权重文件配置
参考Yolov5提供的预训练权重配置文件(这里博主选用的是yolov5s.yaml,使用yolov5s.pt)
将nc改成类别数目即可,这里博主只识别一个类别
运行训练代码:
- python train.py \
- --data /civi/dd_Detection_6.28/train.yaml \
- --cfg /civi/dd_Detection_6.28/yolov5s.yaml \
- --weights /civi/dd_Detection_6.28/yolov5s.pt \
- --epoch 300 --batch-size 8 --device 0
--data:数据集配置文件的地址
--cfg:权重配置文件的地址
--weights: 预训练权重文件的地址(预训练权重下载地址)
--epoch:训练的次数
--batch-size:batch大小
--device:使用cpu或gpu训练
(使用cpu:--device cpu)(使用gpu:--device 0,1..)
其它参数可参考train.py的配置参数
- python detect.py \
- --weights /civi/dd_Detection_6.28/test_img/best.pt \
- --source /civi/dd_Detection_6.28/test_img/test_ljf/test1.PNG
可能遇到的问题1:url错误(可能原因:博主使用的python3.8版本)
解决方法:进入报错的代码。添加以下命令:
- import ssl
- ssl._create_default_https_context = ssl._create_unverified_context
-
可能遇到的问题2:字体下载响应过慢
解决方法:根据打印的内容,手动下载 字体文件 到 规定的路径 内
举例:训练过程中,博主需下载 Arial.ttf 字体到 /root/.config/Ultralytics 路径内。