目标检测模型之YOLO系列

(整期优先)网络出版时间:2022-07-21
/ 2

目标检测模型之YOLO系列

张茜,杨奎刚

北京煜邦电力技术股份有限公司 北京市 100000

摘要:目标检测(Object Detection)是计算机视觉领域的基本任务之一,学术界已有较长时间深入地研究历史。近些年随着深度学习技术的火热发展,目标检测算法也从基于手工特征的传统算法转向了基于深度神经网络的检测技术。本文广泛调研国内外目标检测方法,主要介绍一阶段目标检测算法——YOLO(You Only Look Once)系列的发展历程。

关键词:目标检测,YOLO,发展历程

一、研究背景

从 2006 年以来,在 Hinton、Bengio、Lecun 等人的引领下,大量深度神经网络的论文被发表,尤其是 2012 年,Hinton课题组首次参加 ImageNet图像识别比赛,其通过构建的 CNN 网络AlexNet[1]一举夺魁,从此神经网络开始受到广泛的关注。深度学习利用多层计算模型来学习抽象的数据表示,能够发现大数据中的复杂结构,目前,这项技术已成功地应用在计算机视觉、自然语言处理、语音识别等领域在内的多种模式分类问题上。

目标检测的任务是找出图像或视频中感兴趣的物体,同时能够定位出其位置。Joseph Redmon2015年提出YOLO算法[2]是单阶段目标检测算法的开山鼻祖,跟R.Girshick2014年提出的RCNN[3]系列两阶段目标算法一起引领基于深度学习的目标检测算法的发展。两者的主要区别在于两阶段算法需要先生成候选框(一个有可能包含待检物体的预选框),然后进一步实现目标检测。而一阶段算法会直接在网络中提取特征来预测目标所属的类别和位置。两者优缺点及主要算法汇总如下表1所示:

1 One-stageTwo-stage算法比较

比较内容

One-stage算法

Two-stage算法

主要算法

YOLO系列,SSD系列,Retina-NetDetectNetSqueezeDet

RCNN系列,SPPNetR-FCN

优点

速度快;数据处理机制好

精度高;共享计算量

缺点

精度低,小目标的检测效果不好

速度慢

从目前的研究来看,部署端一般使用One-stage算法,而在One-stage算法中应用最多的是具备实时检测能力的YOLO系列,因此本文着重介绍YOLO系列。

二、YOLO的设计思想

YOLO,即神经网络只需要看一次图片,就能输出结果。其检测流程如下:

  1. 图像分割:一张输入图像首先被分割成S x S大小的栅格;
  2. 网格单元预测:第一步分割后的图像被分成两个支路来处理,一个支路负责识别目标的类别,另一路负责定位。两路同时进行,最后将预测结果输出;
  3. 测试阶段:将条件分类概率与各个框的置信度预测相乘,作为每个框特定于每个类的置信分数。

三、YOLO系列算法的发展历程

目标检测算法YOLO系列发展至今主要包含了v1、v2、v3、v4和v5以及针对每个版本的改进系列。

3.1 YOLOv1

之前 Two-stage 方法如 R-CNN 把检测问题分成两部分,先生成候选区域,再用分类器对区域分类,多阶段训练导致不易优化。而Joseph Redmon提出的YOLOv1[2],主要贡献在于:开发出实时高性能目标检测的one-stage检测框架,只需要将图像一次性输入到网络中即可预测出图像中目标的位置和类别。

3.2 YOLOv2

针对v1存在的检测目标的准确度不高、定位不准很多目标找不到的两个显著不足,YOLOv2[4]进行了改进。主要的改进之处在于: (1)借鉴RCNN系列,不直接预测框的大小,改为预测基于栅格的偏移值。除此之外,直接预测位置会导致神经网络在一开始训练时不稳定,使用偏移量会使得训练过程更加稳定,性能指标提升了5%左右;(2)把分割输入图像为7*7个栅格改为13*13,每个栅格有5个锚框(anchor)。

3.3 YOLOv3

3.3.1 标准算法

YOLOv3[5]同样吸收了当时学术界的最新成果,在v2的基础上借鉴了残差网络(Residual network,ResNet)思想,使用了darknet-53,解决梯度消失或者梯度爆炸的问题。此外,YOLOv3还解决了一个大问题,即小目标的检测。之前两版模型对小目标检测效果不好的原因在于,事先已经划分好了固定大小的栅格,对于小目标格子偏大,对于大目标格子又偏小。YOLOv3给出的解决方案是分别对输入图像32倍下采样、16倍下采样、8倍下采样,去预测大、中、小目标。32倍下采样每个点感受野更大,所以去预测大目标,8倍下采样每个点感受野最小,所以去预测小目标。结果发现对不同目标预测地更准确了,性能又提升了。

3.3.2 改进算法POLY-YOLO

基于Yolov3存在的标签重写与在输出尺度上锚点分布不平衡的问题,论文作者提出了POLY-YOLO架构进行优化。改动如下:

(1) 网络方面,为了减少参数量,首先减少了通道数目,同时为了提高性能,引入了SE单元来加强特征

(2) 和yolov3的最大区别是输出层是一个,但是也采用了多尺度融合方式

(3)网络部分提出了上采样操作

3.4 YOLOv4

YOLOv43由俄罗斯独立研究员Alexey Bochkovskiy继承了YOLO系列后开发,集百家之长,不断尝试优化。改进之处有(1)输入端:采用Mosaic数据增强;(2)主干网络采用了CSPDarknet53、Mish激活函数、Dropblock等方式;(3)Neck:采用了SPP、FPN+PAN结构;(4)输出端:采用CIOU_Loss、DIOU_nms操作。

3.5 YOLOv5

在YOLOv5网络中,最大的创新点在于将网络结构做成了可选择配置的方式。比如主干网络结构,根据各个网络的宽度、高度不同,可以分为Yolov5s、Yolov5m、Yolov5l、Yolov5x等版本。这种转变,在目标检测领域,引领了一股网络拆分的热潮。

在我们的输电线路缺陷检测任务中,主要采用Yolov5系列模型。我们的数据如下图1所示,有鸟窝、异物、绝缘子自爆等缺陷:

C:/Users/DELL/AppData/Local/Temp/picturecompress_20211210164335/output_3.jpgoutput_3C:/Users/DELL/AppData/Local/Temp/picturecompress_20211210164335/output_2.jpgoutput_2C:/Users/DELL/AppData/Local/Temp/picturecompress_20211210164335/output_1.jpgoutput_1

图1:输电线路缺陷检测数据

3.6 YOLOX

在设计算法时,为了对比改进策略的好坏,常常需要选择基准的模型算法。Yolox模型以性能更优的Yolov3_spp为基准。Yolov3_spp在v3基础上加入了spp组件。

Yolox系列与YOLOv5系列相比较,主要区别在于:(1)输入端:在Mosaic数据增强的基础上,增加了Mixup;(2)激活函数采用SiLU函数;(3)输出端:检测头改为解耦合头、采用锚点自适应的方式。

Yolox模型,还可以变为多种可选配的网络,比如标准网络结构和轻量级网络结构。标准网络结构包括Yolox-s、Yolox-m、Yolox-l、Yolox-x、Yolox-Darknet53。轻量级网络结构有Yolox-Nano、Yolox-Tiny。在实际的项目中,可以根据不同项目需求,进行挑选使用。

四、总结与展望

通过本文的调研与总结,可以发现One-stage算法中的YOLO系列在目标检测任务中不断改进与优化,不断地调整以适应不同的框架、不同的部署方式,以满足不同的项目需要。但对于真实场景下的应用还存在一定差距,目标检测这一基本任务仍然是非常具有挑战性的课题,存在很大的提升潜力和空间。我们的检测算法也是需要不断地改进与优化。

参考文献

[1]Krizhevsky A ,  Sutskever I ,  Hinton G . ImageNet Classification with Deep Convolutional Neural Networks[J]. Advances in neural information processing systems, 2012, 25(2).

[2]Redmon J ,  pvala S ,  Girshick R , et al. You Only Look Once: Unified, Real-Time Object Detection[C]. Computer Vision & Pattern Recognition. IEEE, 2016.

[3]R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014

[4]Redmon J ,  Farhadi A . YOLO9000: Better, Faster, Stronger[C]. IEEE Conference on Computer Vision & Pattern Recognition. IEEE, 2017:6517-6525.

[5]Redmon J ,  Farhadi A . YOLOv3: An Incremental Improvement[J]. arXiv e-prints, 2018.

[6]Bochkovskiy A ,  Wang C Y ,  Liao H . YOLOv4: Optimal Speed and Accuracy of Object Detection[J].  2020.