目标检测模块教程-训练检测模型

1.数据标注

下载数据集标注工具,下载地址,数据集管理软件SpireImageTools:gitee地址或者github地址

  • 解压,打开标注软件 SpireImageTools_x.x.x.exe

首先点击Tools->Setting...,填写一个 save path (所有的标注文件都会存储在这个文件夹中)

spire-tools-save-path.jpg

  • 将拍摄的视频转为图像 (如果采集的是图像,则跳过这一步骤),点击 Input->Video, 选择要标注的视频。

spire-tools-open-video.jpg

然后,点击Tools->Video to Image

spire-tools-image2video.jpg

点击OK 后,等待完成,结果会存储在:

spire-tools-20200430182601.jpg

  • 打开需要标注的图像,点击菜单Input->Image Dir, 找到需要标注的图像所在文件夹 ,按Ctrl+A,全选,打开所有图像:

spire-tools-20200430182620.jpg

  • 点击菜单Tools->Annotate Image->Box Label,开始标注图像

image-20210404154814396.png

label中填写待标注目标名称,然后将对话框拖到一边。

  • 开始标注,在主窗口中开始标注,鼠标滚轮放大缩小图像按住左键移动可视图像区域不断点击左键将目标框包围,使用YOLO训练时,点击2个点即可

image-20210404155716652.png

标注时,如果点错,按鼠标右键可以取消。标注完成后,如果不满意,可以点击绿色边框(边框会变红,如下图所示),按Delete删除

image-20210404160443123.png

  • 继续标注行人类别:

image-20210404161102231.png

  • 全部标注完成后,将标注输出为YOLO格式,准备训练——在标注完成之后,按下Ctrl+o

image-20210404161654460.png

点击OK即可,需要等待转换。

  • 注意,如下两个文件夹是我们训练YOLOv5需要的

image-20210404162131412.png

2. 开始训练YOLOv5

在准备好scaled_imagesyolo_labels两个文件夹之后,我们就可以训练YOLOv5了。首先,创建一个car_person.yaml,将其放到<path-to-Prometheus>/Modules/object_detection_yolov5tensorrt/data/文件夹下。car_person.yaml的具体内容如下:

# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: data/car_person/images/train/
val: data/car_person/images/train/

# number of classes
nc: 2

# class names
names: ['car', 'person']

注意1car_person是自定义名称,我们这次标注的数据集仅有这2个类别。 注意2names: ['car', 'person']这里的类别顺序需要跟yolo_categories.names里的类别顺序一致。

  • 将训练图像与标注拷贝到对应位置

首先,在<path-to-Prometheus>/Modules/object_detection_yolov5tensorrt/data/下新建一个文件夹car_person然后,在car_person下再新建2个文件夹imageslabels最后,将准备好的scaled_images拷贝到images下,并重命名为train;将准备好的yolo_labels拷贝到labels下,并重命名为train

结合car_person.yaml里的内容,我想你应该明白上面目录结构的含义啦。

  • 开始训练
cd <path-to-Prometheus>/Modules/object_detection_yolov5tensorrt/
python3 train.py --img 640 --batch 16 --epochs 5 --data data/car_person.yaml --weights weights/yolov5s.pt

image-20210404171722755.png

显示以上内容说明训练成功!可以增加训练期数(--epochs 5)提升效果。

  • 部署训练好的模型

刚刚训练好的模型会保存在<path-to-Prometheus>/Modules/object_detection_yolov5tensorrt/runs/exp?/weights/best.pt?需根据自己的情况而定(最新训练的模型?为最大的数字),将best.pt重命名为yolov5s.pt,拷贝到<path-to-Prometheus>/Modules/object_detection_yolov5tensorrt/下,然后执行:

cd <path-to-prometheus>/Modules/object_detection_yolov5tensorrt
python3 gen_wts.py