足球是一项风靡全世界且在各个国家都非常具有影响力的球类运动, 像亚洲杯和世界杯这样的大型足球赛事未来几年时间内将会在我们国家接连举办, 以往传统大型国际足球赛事会经常出现双方球迷暴乱、运动员打架事件的发生, 将目标检测算法部署在高清摄像头、无人机等小型移动设备上应用于智慧体育场馆, 对场内外观众、场上比赛运动员进行实时监测, 具有一定的实际应用意义.
目标检测被广泛应用于行人检测、图像识别、自动驾驶以及许多日常生活领域. 传统行人检测方法一般采用类似于Haar[1]、HOG[2]等的图像分割技术或类似穷举的滑动窗口方式来提取图像中行人特征, 随后将其传递给如SVM[3]、AdaBoost[4]等分类器, 进而判断目标的类别.
深度学习在图像分类任务中取得广泛成功之后, 将图像领域中各个问题的处理精度都提升到了一个更高的水平, 基于区域选择和逻辑回归的两大类方法被应用于目标检测任务中. 基于区域选择的两阶(two-stage)目标检测算法被R-CNN家族系列算法独占鳌头. 最初的R-CNN[5]算法训练与测试速度较慢. Fast R-CNN[6]仍不能满足实时检测的需求. Faster R-CNN[7]则大幅提升了检测精度与速度. 随后, Mask R-CNN[8]、Cascade R-CNN[9]等模型的出现, 使得R-CNN家族不断壮大, R-CNN系列算法虽然检测精度较高, 但由于其网络复杂度的问题, 使得实时检测仍然是一个问题.
为更好地平衡检测精度与速度, 基于逻辑回归的一阶(one-stage) 目标检测方法被提出. Redmon等人[10-12]相继提出了YOLO、YOLO9000和YOLOv3算法. YOLO拥有非常快的检测速度, 可以轻松地实时运行, 但其存在严重的定位错误. Liu等人[13]提出基于VGG网络的SSD方法, 但其检测精度并不高. YOLO9000弥补了YOLO的不足, 借鉴Faster R-CNN的算法思想, 引入anchor机制和K-means聚类方法对模型进一步深入优化, 其检测性能与SSD持平, 增强了对小尺寸目标的检测. YOLOv3则利用深度残差网络构成Darknet-53分类网络代替YOLO9000中的Darknet-19提取图像特征, 同时借鉴ResNet并融入特征金字塔网络 (feature pyramid network, FPN)结构[14]中, 在传统公共场所的行人检测问题中具备较强的多尺度特征提取能力.
YOLO系列算法凭借较为优秀的算法思想在准确性上略强于上述经典目标检测算法, 但仍无法在高速变化且复杂度较高的场景下满足多数物体的类别检测. 黄同愿等人[15]通过层次敏感度分析对YOLOv3主干网络进行精简, 并通过引入空间金字塔池化来加强小目标的检测; 张路达等人[16]提出利用多尺度融合结构, 通过更好的提取特征信息进而实现特征增强; Zheng等人[17]提出DIoU和CIoU两种评价标准, 其中CIoU (complete intersection over union)则为当前目标检测领域公认最优秀的评价标准.
本次研究中, 考虑到足球场行人检测相较于传统公共场所的技术难点主要在于场上的运动员不断地在移动且速度较快, 这就要求模型需要持有较高的实时检测速率. 卷积神经网络存在庞大的参数量和计算量也是在设计计算模块时需要考虑的重点, 在有限的存储空间和计算资源的情况下采用轻量化的网络结构设计是非常有必要的. 为了降低网络复杂度, 本文对YOLOv3主干网络进行调整, 采用更加轻量化的GhostNet网络对Darknet-53主干特征提取网络进行替换, 使之更加适配足球场内行人检测任务, 更利于在资源算力不足的小型移动设备上完成模型部署.
1 YOLOv3目标检测算法原理如图1所示, YOLOv3将输入图像变为416×416大小后输入到Darknet-53主干特征提取网络中, 同时池化层和最后的全连接层被取消, 采用步长为2的卷积下采样, 不仅减少计算量, 还保留了图像更多的相关信息. 经过一系列下采样、卷积等操作, 可以获得图片不同层次的位置和语义信息. 网络输出层采用3层来进行预测, 最终使用非极大值抑制确定结果.
2 改进的YOLOv3目标检测算法 2.1 网络结构优化原YOLOv3网络采用3种尺度检测不同尺寸的目标, 将网络输入图像统一缩放为416×416尺寸, 然后划分为N×N的网格, 每个网格使用3个先验框预测目标物体, 输出为N×N×3×(4+1+C), 先验框的中心坐标、宽高的4个值和置信度值包含在其中, N代表网格数量, C代表类别数量. 如图2所示, 由于数据集中存在大量小目标与遮挡严重的目标, YOLOv3虽然通过3个不同尺度的分支对目标进行检测, 但因为输出特征图维度较低, 对于小目标仍然存在检测困难的问题, 漏检、误检或重复检测的状况时有发生.
本文综合考虑最小目标检测的底限和网络的大小, 将原始YOLOv3尺度为13×13、26×26、52×52的分支再增加一个104×104尺度, 通过4倍、8倍、16倍、32倍下采样操作来细化特征提取网络输出的特征图, 实现4个尺度的相互融合, 提升对小目标的检测效果. 增加一个检测层会使模型的复杂度升高, 在训练时会影响网络的检测速度, 但对模型的检测精度会有一定的提升.
2.2 K-means++先验框预测
K-means++算法相比于K-means算法重点优化了初始聚类中心的选取, 使得聚类时间和效果都有所改善. 原YOLOv3网络3个特征输出层上的每个网格单元只能预测3组先验框, 对于复杂场景下遮挡严重、密集且距离较远的小目标容易发生漏检的情况. 如图3所示, 改进后的YOLOv3网络使用K-means++聚类算法聚类12组先验框, 然后均匀分布在4个特征输出层上, 通过增加anchor box的数量来提升网络检测的整体精度, 而模型的浮点计算量基本上没有太大浮动. 其中13×13、26×26、52×52、104×104的特征层分别对应大、中、小和较小感受野, 其对应的12组先验框的尺寸分配结果依次为(188, 315)(313, 212)(364, 371)、(93, 106)(102, 238)(170, 150)、(37, 32)(53, 157)(62, 59)、(13, 21)(17, 48)(30, 89).
2.3 空间金字塔池化YOLOv3网络要求输入图像尺寸固定, 但在行人检测问题中, 这一要求会使得网络对遮挡目标和小目标的漏检率偏高. 因此本文将空间金字塔池化 (spatial pyramid pooling, SPP)模块[18]添加到YOLOv3网络的检测分支内, 该模块由一个跳跃连接层和多个尺寸不同的最大池化层构成, 针对输入图像尺寸不统一的问题, 使用固定分块的池化操作对不同尺寸的输入实现相同尺寸的输出. 多种尺寸的池化操作可以扩大特征图对应的感受野, 从而应对多尺度目标表示的困难. 如图4 所示, 特征图分别经过各个分支处理后重新合并起来传到下一层网络中. 当网络输入为416×416时, 为了保证局部特征与全局特征在特征图上能够良好的进行融合, 进而提升网络的检测精度, 最大池化层最大设计为13×13, 针对行人检测问题中, 大、中、小3个尺寸的行人目标均常见的情况, 最终添加的SPP模块选用尺寸为5×5、9×9、13×13的最大池化层和一个跳跃连接层组成.
2.4 损失函数改进
YOLOv3采用交并比损失IoU loss评价预测框与真实框重合程度, 其在进行网络训练时, 在得到相同损失值时会出现不同的结果, 很难正确反映预测框与真实框之间的具体位置情况. 其计算式如式(1)所示:
$ {{Io}}U = \frac{{\left| {A \cap B} \right|}}{{\left| {A \cup B} \right|}} $ | (1) |
为了消除这个不稳定影响并优化检测精度, 本文引入完全交并比CIoU代替IoU作为边界框回归损失函数, 使得边界框回归更加稳定, 收敛精度更高, 且没有IoU的缺陷, 其损失函数公式如式(2)所示:
$ L{{os}}{{{s}}_{{\rm{CIoU}}}} = 1 - IoU + \frac{{{\rho ^2}\left( {b, {b^{gt}}} \right)}}{{{c^2}}} + \alpha \nu $ | (2) |
其中,
$ \alpha = \frac{{{v}}}{{\left( {1 - I{{oU}}} \right) + V}} $ | (3) |
$ {{v}} = \frac{4}{{{\pi ^2}}}{\left( {\arctan \frac{{{w^{gt}}}}{{{h^{gt}}}} - \arctan \frac{w}{h}} \right)^2} $ | (4) |
其中, w、h分别为预测框的宽、高,
3 YOLOv3-GhostNet网络 3.1 特征提取网络改进
智慧足球场馆使用的大多数是成本较为低廉的嵌入式设备, 这就使得网络部署需要较少的参数量和计算量, 为了降低模型复杂度, 减少网络参数和计算量, 现对算法进行轻量化设计, 本文使用华为诺亚方舟实验室在2020年度CVPR上提出的GhostNet网络结构[19], 将YOLOv3算法中的Darknet-53主干特征提取网络替换为GhostNet网络结构, 并将其进行迁移学习.
Ghost模块使用更少的参数生成相同的特征, 其网络特征层中的冗余部分很可能包含重要特征信息, 所以Ghost中保留了这些冗余信息, 来用更低的计算量成本获取更多的特征信息. 如图5所示, Ghost模块将传统的卷积操作分为两个步骤进行, 首先使用计算量较少的普通卷积操作对输入的特征图生成部分真实特征图, 接着再利用DWConv操作对真实特征图的各个通道进行深度卷积得出Ghost特征图, 然后再对二者进行Concat拼接, 得出最后的输出特征图.
若输入特征图表示为H×W×C, 输出为H'×W'×M, 把输入分为n层, 卷积核大小为k×k, 则普通卷积和Ghost卷积的计算量分别如式(5)和式(6)所示:
$ {{H}}' \times W' \times M \times k \times k \times C $ | (5) |
$ {{H}}' \times W' \times \frac{M}{n} \times k \times k \times C + (n - 1) \times H' \times W' \times \frac{M}{n} \times k \times k $ | (6) |
从 Ghost 模块的计算量可以得出结论, 利用普通卷积和深度卷积两部分来计算的方式有效降低了网络计算复杂度. 与此同时, GhostNet网络还引入了SE 注意力机制模块于Ghost BottleNeck模块结构中来使提取的特征针对性更强, 特征利用更加充分.
3.2 YOLOv3-GhostNetYOLOv3-GhostNet网络中的Ghost BottleNeck 瓶颈层由两个功能不同的Ghost Module构成, 如图6所示, GhostNet网络中的第1个Ghost Module的主要功能是为了增加通道数; 第2个Ghost Module可使通道数减少至与输入相连接的通道数量相匹配. Ghost模块分为Stride=1和Stride=2两种不同的步长, 本文在该模块中使用Stride=2的DWConv深度可分离卷积.
4 相关工作 4.1 数据集准备本文使用开源的VOC2007+2012的train+val数据集(含16551张图片)、VOC2007的test数据集(含4952张图片)进行观众行人检测实验. 除此之外, 为了增加测试集数量, 本实验还选取了1000张自制世界杯足球比赛数据集, 主要针对足球比赛时场上足球运动员的检测, 同时对图片背景观众席进行虚化, 只保留场上运动员移动时的图片进行模型训练. 通过对PASCAL VOC数据集进行数据清洗只保留20种类别标签信息中的person一种类别标签信息, 然后按照9:1划分为训练集和验证集. 合并后的数据集中训练集中包含person类别标签数量为6182, 验证集数量为689, 测试集数量则为3097.
4.2 数据预处理
在网络训练任务中对原始数据集中图像的标注非常关键. 图7所示为LabelImg图像标注软件, 通过对自制数据集进行VOC格式标注, 将标注框的位置信息保存到对应图像的XML文件中, 从而进行网络训练.
5 实验与结果分析
本实验平台采用Windows 10操作系统, CPU: Intel(R) Core(TM) i7-10875H CPU @ 2.30 GHz, 内存 16 GB, GPU: NVIDIA GeForce RTX 2060 6 GB显存, 深度学习框架PyTorch, cuda 10.2+OpenCV, cudnn 7.6.5.
5.1 训练过程与结果本文对基于改进YOLOv3的智慧足球场行人检测算法模型进行训练. 在训练过程中对训练数据使用 Mosaic 数据增强, 使用随机缩放、翻转、平移等操作, 采用4张图片拼接的方式来提高训练中每个批次输入图片的数量, 较好地提高了网络的鲁棒性和泛化能力.
实验采用迁移学习的思想将训练分为冻结阶段和解冻阶段, 起初冻结模型主干进行训练, 可以防止权值被破坏并加快训练效率, 之后进行解冻训练. 训练过程中, 平滑标签label_smoothing设置为0.01; 模型参数更新方式为sgd; batch-size为16; gamma为0.92; weight_decay为5E–4; 最大学习率Init_lr设置为1E–2, 最小学习率则为Init_lr×0.01, 采用学习率检测机制对其进行动态调整. 训练总轮次设置为100个epoch, 每训练完一个epoch保存一次训练好的模型, 最终针对本文特定场景选用loss值最低的模型进行检测.
如图8所示, 由训练过程中的损失函数值曲线收敛变化情况分析得出, 初始化权重为随机值导致在前期的学习训练集中loss迅速下降; 后期loss缓慢下降, 在训练到第70个epoch时还有一个小幅度下降, 直到训练结束, 模型逐渐达到收敛状态, 几乎不再发生变化, 最小loss值降为0.032, YOLOv3-GhostNet模型已经达到预期的训练效果.
5.2 评价指标本文选用平均精确度均值mAP和每秒检测帧数FPS来综合反映模型的性能, FPS是实时检测速率的直接体现, 引入准确率P (precision)和召回率R (recall)对平均精确度值进行计算. Precision、recall的计算方式如式(7)和式(8)所示:
$ P = \frac{{TP}}{{TP + FP}} $ | (7) |
$ R = \frac{{TP}}{{TP + FN}} $ | (8) |
对于正样本, 网络判断为正样本和负样本分别记为TP、FN; 而对于负样本, 则分别记为FP、TN. 同时采用F1指标来综合衡量准确率P与召回率R, 其值越接近1则效果越好. mAP、F1的计算方式分别如式(9)和式(10)所示:
$ {{mAP}} = \int_0^1 {P(R)d(R)} $ | (9) |
$ F1 = \frac{{2PR}}{{P + R}} = \frac{{2TP}}{{2TP + FP + FN}} $ | (10) |
5.3 实验结果分析
本文选用VOC2007测试集与自制数据集来验证改进后的YOLOv3-GhostNet网络的检测效果, 如图9所示, 本文算法能够对图像中的行人以及足球运动员进行精准地识别并且定位, 很少出现漏检、误检的情况, 具有良好的检测效果.
本次实验对Faster R-CNN、SSD、YOLOv3、改进的YOLOv3和YOLOv3-GhostNet网络进行训练与测试, 并得到如表1所示的P、R、mAP和F1等技术指标. YOLOv3-GhostNet在mAP达到90.97%的同时持有45.32 fps的实时检测速率, 满足实时检测的场景需求.
在测试中Faster R-CNN算法获得了87.40%的mAP, 比本文算法低了3.57%. 由于网络复杂度的问题, 模型在进行计算时耗时较长, 在检测速率方面该算法仅保持着13.46 fps的实时速率, 难以满足实际场景中对检测速度的要求; 由于SSD算法其网络计算复杂度相对比较低, 在本文数据集上检测的mAP仅为76.81%, 持有45.21 fps的实时检测速率, 满足实际检测任务中对速率的要求, 但其检测的准确率相对较低, 大概率出现误检、漏检的情况, 难以应对密集人群场景. 两者与本文所提的算法相比均没有太明显的优势.
YOLOv3算法检测的mAP为89.22%, 改进YOLOv3的mAP为92.80%, YOLOv3-GhostNet的mAP则为90.97%, 相比YOLOv3网络分别提升了3.58%、1.75%. 由于改进的YOLOv3算法在检测网络中提取了更加丰富的特征信息, 因而在检测精度方面的mAP比原始YOLOv3网络高出了3.58%, 但由于其网络复杂度的提升, 检测速率比原始YOLOv3网络低了3.27 fps, 在保持26.98 fps的实时检测速率的同时网络检测的平均精度要远远优于原YOLOv3网络. 由于主干特征提取网络的轻量化改进, 使得网络复杂度大幅降低, YOLOv3-GhostNet网络检测的mAP相比于原YOLOv3网络虽然仅提升了1.75%, 和改进的YOLOv3算法相比, 检测的平均精确度要略低一筹, 但其在模型参数量和实时检测速率方面均有很大的改善, 更加符合智慧体育场馆对模型的需求.
由表2可以看出, 改进的YOLOv3网络模型参数量显著提高, 由于网络复杂度变大致使FPS略有下降. YOLOv3-GhostNet相比于YOLOv3网络模型参数量减少了约81.4%, 仅为43.6 MB, 且FPS提高了约49.8%, 在保证检测精度的同时持有45.32 fps的实时检测速率, 较好的平衡了检测精度与速度.
图10显示了原始YOLOv3、改进的YOLOv3和YOLOv3-GhostNet三种网络对相同图像数据的检测结果. 若在发生遮挡严重或人群相对密集的复杂情况下, 不难看出三者都有出现漏检的情况, 改进的YOLOv3算法表现得更为优秀, 可以更好地将被遮挡部分的行人检测出来, YOLOv3-GhostNet网络的检测效果和改进的YOLOv3网络相比, 由于采用了轻量化网络的原因致使其检测效果有所下降, 但和YOLOv3网络相比, 其检测效果也有了较好的改变.
6 结束语
本文提出了一种基于改进YOLOv3的智慧足球场行人检测方法, 旨在解决大型智慧足球场馆比赛中对观众行人以及场上运动员目标检测任务中存在检测精度较低、网络实时性较差的问题. 采用GhostNet网络取代原YOLOv3的主干特征提取网络, 有效减少网络参数量的同时使得模型更加轻量化, 大大降低了网络计算复杂度. YOLOv3-GhostNet网络检测的mAP达到了90.97%, 相较于YOLOv3网络模型参数量减少了约81.4%, 检测速率可以达到45.32 fps, 在兼顾精度与速度的同时能够较快速的达到良好的检测效果, 满足智慧足球场馆内进行比赛时对场上快速移动的运动员进行实时检测的应用场景. 同时也适用于传统公共场所内对行人的实时检测, 便于在小型移动嵌入式设备上完成轻量化模型的部署.
[1] |
Viola P, Jones MJ. Robust real-time face detection. International Journal of Computer Vision, 2004, 57(2): 137-154. DOI:10.1023/B:VISI.0000013087.49260.fb |
[2] |
Wang XY, Han TX, Yan SC. An HOG-LBP human detector with partial occlusion handling. Proceedings of the IEEE 12th International Conference on Computer Vision. Kyoto: IEEE, 2009. 32–39.
|
[3] |
Chen PH, Lin CJ, Schölkopf B. A tutorial on ν-support vector machines
. Applied Stochastic Models in Business and Industry, 2005, 21(2): 111-136. DOI:10.1002/asmb.537 |
[4] |
金立生, 王岩, 刘景华, 等. 基于Adaboost算法的日间前方车辆检测. 吉林大学学报(工学版), 2014, 44(6): 1604-1608. DOI:10.13229/j.cnki.jdxbgxb201406011 |
[5] |
Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation. Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014. 580–587.
|
[6] |
Girshick R. Fast R-CNN. Proceedings of 2015 IEEE International Conference on Computer Vision (ICCV). Santiago: IEEE, 2015. 1440–1448.
|
[7] |
Ren SQ, He KM, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 |
[8] |
He KM, Gkioxari G, Dollár P, et al. Mask R-CNN. Proceedings of 2017 IEEE International Conference on Computer Vision (ICCV). Venice: IEEE, 2017. 2980–2988.
|
[9] |
Cai ZW, Vasconcelos N. Cascade R-CNN: Delving into high quality object detection. Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 6154–6162.
|
[10] |
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, realtime object detection. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas: IEEE, 2016. 779–788.
|
[11] |
Redmon J, Farhadi A. YOLO9000: Better, faster, stronger. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu: IEEE, 2017. 6517–6525.
|
[12] |
Redmon J, Farhadi A. YOLOv3: An incremental improvement. arXiv:1804.02767, 2018.
|
[13] |
Liu W, Anguelov D, Erhan D, et al. SSD: Single shot MultiBox detector. Proceedings of the 14th European Conference on Computer Vision (ECCV). Amsterdam: Springer, 2016. 21–37.
|
[14] |
Lin TY, Dollár P, Girshick R, et al. Feature pyramid networks for object detection. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu: IEEE, 2017. 936–944.
|
[15] |
黄同愿, 杨雪姣, 向国徽, 等. 基于YOLOv3的改进模型在行人检测中的应用. 重庆理工大学学报(自然科学), 2020, 34(8): 155-164. |
[16] |
张路达, 邓超. 多尺度融合的YOLOv3人群口罩佩戴检测方法. 计算机工程与应用, 2021, 57(16): 283-290. DOI:10.3778/j.issn.1002-8331.2103-0505 |
[17] |
Zheng ZH, Wang P, Liu W, et al. Distance-IoU loss: Faster and better learning for bounding box regression. Proceedings of the 34th AAAI Conference on Artificial Intelligence. New York: AAAI, 2020. 12993–13000.
|
[18] |
He KM, Zhang XY, Ren SQ, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904-1916. DOI:10.1109/TPAMI.2015.2389824 |
[19] |
Han K, Wang YH, Tian Q, et al. GhostNet: More features from cheap operations. Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Seattle: IEEE, 2020. 1577–1586.
|