模型选择来源

此设计选择了目标检测中性能优异的yolov5网络。YOLO是’You only look once’的首字母缩写,是一种将图像划分为网格系统的对象检测的算法。

下图是yolov5的网络结构图

python YOLOv5 开箱即用 yolov5 pyqt_目标检测

主要分为输入端、Backbone、Neck、Prediction四个部分。

(1)输入端:Mosaic数据增强、自适应锚框计算、自适应图片缩放

(2)Backbone:Focus结构,CSP结构

(3)Neck:FPN+PAN结构

(4)Prediction:GIOU_Loss

1.1 YOLOv5优点

 更快、更实时

按照官方给出的数目,现版本的YOLOv5每个图像的推理时间最快0.007秒,即每秒140帧(FPS)在CPU上,每个图像的推理时间快至7ms,意味着每秒140帧(FPS)远远大于人眼对20帧的要求。相比之下,YOLOv4在相同的条件下只能到到50帧 。而在GPU上,FPS更高,可高达400.

 更小巧(内存少)

YOLOv5的权重文件大小只有YOLOv4的1/9。

 更短的训练时间

2. 模型训练

我们组采用的是Anaconda+Pycharm+GPU:英伟达3090的环境进行训练。

2.1 数据集的准备

结合热点,我们截取了2022世界杯中法国队与阿根廷的比赛。共220张截图。

python YOLOv5 开箱即用 yolov5 pyqt_python YOLOv5 开箱即用_02

再利用labelme标注软件对图片进行标注

python YOLOv5 开箱即用 yolov5 pyqt_英伟达_03

共设置了三类:France,judge,Argentina。得到220张带标签信息的图片,其中200张作为训练集,20张作为测试集。

2.2 训练过程

一共设置500个epoch,batchsize 设置为2.

python YOLOv5 开箱即用 yolov5 pyqt_pyqt_04

图2配置了网络超参数,如是否使用gpu训练,输入图片大小,训练轮次,以及每个batch的大小。

python YOLOv5 开箱即用 yolov5 pyqt_英伟达_05

2.3 训练性能评估

python YOLOv5 开箱即用 yolov5 pyqt_深度学习_06

python YOLOv5 开箱即用 yolov5 pyqt_pyqt_07

python YOLOv5 开箱即用 yolov5 pyqt_深度学习_08

如图4图5图6所示,无论是训练集上,还是验证集上损失函数都在不断下降,网络收敛正常。识别精度平均都在0.98以上。

3. 模型推理及创新应用

因为实验室有GPU:英伟达3090资源,所以直接就在GPU资源上进行了推理。并利用PYQT做了一个GUI界面。主要有图片检测,视频检测,摄像头检测三个功能。下面是界面展示:

python YOLOv5 开箱即用 yolov5 pyqt_pyqt_09

3.1 结果展示

python YOLOv5 开箱即用 yolov5 pyqt_英伟达_10


目标检测系统 2022-12-23 20-27-32


我选择了2022卡塔尔世界杯决赛阿根廷与法国的比赛作为测试数据。如上图显示,无论是视频格式,还是图片格式作为输入数据,预测准确率平均都在0.96以上。