YOLOv5自定义数据集

1.数据集结构

 文件的结构可以设置成这样:

YOLO_dir
└─ mydata
       ├─ images
       │    ├─ test # 下面放测试集图片
       │    ├─ train # 下面放训练集图片
       │    └─ val # 下面放验证集图片
       └─ labels
              ├─ test # 下面放测试集标签
              ├─ train # 下面放训练集标签
              ├─ val # 下面放验证集标签

比较简单的yaml文件如下(name列表要按照标准的顺序,文件路径是反斜杆):

train: D:/company/py/yolo_dir/mydata/images/train
val: D:/company/py/yolo_dir/mydata/images/val



# Classes
nc: 6  # number of classes
names: ['broccoli','giraffe','potted plant','zebra','people','shoes']  # class names

YOLOv5数可以自动定位标签的位置,原理是吧images替换成labels,因此就按照这样的格式就好了。因此yaml文件不需要指定标签的位置

小规模时,训练集与验证集比例为7:3(或8:2),如果有测试集,则为6:2:2参考

2.通过roboflow生成(官方)

1.1总体流程

标注工具齐全,并且都是在线保存,此外,还可以自动划分数据集、自动生成yaml文件

  1. 上传文件夹
  2. 这里推荐这样选择

    YOLOv5自定义数据集_第1张图片

  3. 不需要做数据增强,因为YOLOv5自带了数据增强
  4. 导出为YOLOv5格式

    YOLOv5自定义数据集_第2张图片

1.2 常用快捷键

CTRL--可以切换手与选择框

backspace--连续两次可以把框删除

左右按键--翻页

3.通过labelimg生成

  •  pip install labelImg安装标注工具
  • 在conda环境中直接输入labelImg可以打开
  • linxu中lableImg(i要大写)

YOLOv5自定义数据集_第3张图片

YOLOv5自定义数据集_第4张图片

  1. 点击pascalvoc,切换成YOLO
  2. opendir打开需要标注的图像的具体位置
  3. change save data 确定标注文件夹的位置(路径不要有中文)
  4. 标注完成后点击保存

YOLOv5自定义数据集_第5张图片

可以设置自动保存 

YOLOv5自定义数据集_第6张图片

4.Tips for Best Training Results

官方参考

  1. 先尝试默认的参数进行训练
  2. 图片数据要足够,官方建议的是超过1500张
  3. 图像要变化(时间、角度、光线、大小、不同相机等)
  4. 物体要标注精确,尽量做到boundingbox和物体之间没有间隙
  5. 增加背景图片(No label),数量大概占据0~10%。这可以降低FALSE POSITIVES(FP)。背景图片的标签文件.txt文空文件,但是文件名要对应。
  6. 使用YOLO家族大型模型,一是训练慢,二是后面预测慢,但是优点在于精度高
  7. 默认300epochs,如果发生过拟合了,我可以减少epoch
  8. 当小目标多的时候,分辨率高训练效果好。因此可以设置--img 1280。如果训练的时候改了--img参数,那么预测也要改
  9. batch-size应该尽可能大,因为其除了影响训练速度外。如果batch-size太小,会产生不好的batchnorm statistics(BN)

你可能感兴趣的:(目标检测,深度学习,人工智能)