«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (10): 298-305, 313  DOI: 10.19678/j.issn.1000-3428.0058733
0

引用本文  

徐先峰, 赵万福, 邹浩泉, 等. 基于MobileNet-SSD的安全帽佩戴检测算法[J]. 计算机工程, 2021, 47(10), 298-305, 313. DOI: 10.19678/j.issn.1000-3428.0058733.
XU Xianfeng, ZHAO Wanfu, ZOU Haoquan, et al. Detection Algorithm of Safety Helmet Wear Based on MobileNet-SSD[J]. Computer Engineering, 2021, 47(10), 298-305, 313. DOI: 10.19678/j.issn.1000-3428.0058733.

基金项目

国家自然科学基金(61201407,71971029);陕西省自然科学基础研究计划(2016JQ5103,2019GY-002);长安大学中央高校基本科研业务费专项资金(300102328202);西安市智慧高速公路信息融合与控制重点实验室项目(ZD13CG46)

作者简介

徐先峰(1982-), 男, 副教授、博士, 主研方向为信号处理、深度学习理论及应用、智能电网;
赵万福, 硕士研究生;
邹浩泉, 硕士研究生;
张丽, 硕士研究生;
潘卓毅, 本科生

文章历史

收稿日期:2020-06-23
修回日期:2020-10-09
基于MobileNet-SSD的安全帽佩戴检测算法
徐先峰 , 赵万福 , 邹浩泉 , 张丽 , 潘卓毅     
长安大学 电子与控制工程学院, 西安 710064
摘要:针对真实场景下安全帽佩戴检测面临的背景复杂、干扰性强、待检测目标较小等问题,在SSD算法的基础上,提出改进的MobileNet-SSD算法。通过引入轻量型网络MobileNet并构建MobileNet-SSD算法提高检测速度,采用迁移学习策略克服模型训练困难问题。从施工相关视频中获取真实环境下的安全帽样本构建样本集,以解决当前安全帽数据集规模较小、网络难以充分拟合特征的问题。实验结果表明,MobileNet-SSD算法在损失很小精度的情况下,相较于SSD算法,检测速度提高了10.2倍。
关键词安全帽佩戴检测    轻量型SSD算法    深度学习    检测精度    检测速度    
Detection Algorithm of Safety Helmet Wear Based on MobileNet-SSD
XU Xianfeng , ZHAO Wanfu , ZOU Haoquan , ZHANG Li , PAN Zhuoyi     
School of Electronics and Control Engineering, Chang'an University, Xi'an 710064, China
Abstract: The existing methods for checking the wear of safety helmets suffer from complex background and strong interference, and display poor performance on small targets.To address the problem, an improved SSD algorithm is proposed for detecting the wear of safety helmets.The algorithm employs the lightweight MobileNet to construct the MobileNet-SSD algorithm, which improves the detection speed.Then the transfer learning strategy is introduced to address the difficulties in model training.Additionally, as the existing data sets of safety helmets are small-sized, which leads to the underfitting of the network, samples of safety helmets are collected from the actual building work videos to construct a suitable sample set.The experimental results show that the proposed algorithm provides a detection speed that is 10.2 times higher than that of the SSD algorithm with the cost of a minor loss in accuracy.
Key words: detection of safety helmet wear    lightweight SSD algorithm    deep learning    detection precision    detection speed    

开放科学(资源服务)标志码(OSID):

0 概述

安全帽作为一种安全防护工具,对工人的人身安全具有重要保障作用。目前对于工人安全帽的佩戴检测主要依靠人工监视,这种检查方式不仅耗费人力资源,而且容易受工作人员的主观影响。基于视频监控的智能安全帽佩戴检测,在能够降低施工现场人力资源成本的同时,也能防范安全事故的发生。

人员之间的部分遮挡、摄像头的拍摄像素、摄像头距目标距离的远近程度等因素造成安全帽的佩戴检测具有一定的难度。为实现安全帽佩戴自动检测,研究人员进行了大量研究。LI等[1]运用帧间差分方法分割视频画面的动态目标后,利用图像的方向梯度直方图(Histogram of Oriented Gradient,HOG)特征训练支持向量机(Support Vector Machines,SVM)分类器,并使用该分类器判断动态目标是否为行人。若是行人,则使用Haar-like进行特征提取并输送到Adaboost分类器以判断画面中的行人是否佩戴安全帽。LIU等[2]使用尺度滤波算法从视频图像中提取前景,对运动目标进行分割、跟踪和标记,通过检测运动目标的上部1/3部分中的像素点及色度值的分布情况判断检测目标安全帽的佩戴情况。FENG等[3]使用混合高斯模型进行前景检测,通过图像处理方法对连通域进行处理并判断其是否属于人体,定位到的人体头部区域可实现安全帽的自动识别。DU等[4]利用viBe算法提取前景目标,通过前景目标对安全帽的佩戴区域进行初步定位,并使用DPM算法对安全帽佩戴情况进行检测。此类方法受视角影响较大,当出现被检测人员非站立、被遮挡、静止不动等复杂情况时,此类方法呈现一定局限性,其检测精度还有待提高。总体来说,以上基于传统方法的安全帽佩戴检测算法存在手工设计特征困难、泛化能力差等问题,难以应用到实际工程实践中。

目前,基于深度学习的方法是目标检测的主流方法[5-6],单发多盒探测器(Single Shot MultiBox Detector,SSD)[7]作为经典的基于深度学习的目标检测算法之一,具有检测速度快、检测精度高、对小目标和多目标检测效果好的优点,在行人检测[8]、遥感目标检测[9]、绝缘子检测[10]等目标检测领域应用广泛。但目前为止尚未发现有文献将SSD算法应用于安全帽佩戴检测中。在通常情况下,视频监控设备运行在CPU平台下,而SSD在GPU平台下的检测速度快但在CPU平台下无法达到实时的目标检测。由于SSD为卷积神经网络,需要大量数据集,而目前可用的安全帽公开数据集少且规模较小,数据集收集困难。有研究人员发现,迁移学习(Transfer Learning)[11]通过从已学习的相关任务中转移知识以改进学习的新任务,可有效解决SSD模型训练困难的问题。

针对安全帽佩戴检测多为小目标和多目标的现实问题,本文基于深度学习的基础理论知识,对SSD检测算法中暴露出的问题进行优化改进。引入轻量型网络加快检测速度实现实时的目标检测,采用迁移学习策略训练SSD,通过依托互联网平台大量采集安全帽图像,并从施工相关视频中获取真实环境下的安全帽样本构建样本集。

1 安全帽佩戴检测算法

SSD[12]是经典的目标检测算法,其在6层卷积层输出的特征图上进行多尺度特征提取,这些特征图又被称为预测层,每层分别对多尺度分支的回归网络(Loc_Layers)和多尺度分支的分类网络(Conf_Layers)进行卷积,得到待检测目标的位置和种类。

靠近输入的特征图尺寸较大而感受野较小,特征包含的位置信息丰富,因此适合检测小安全帽目标;靠近输出的特征图尺寸较小而感受野较大,包含全局信息,因此适合检测大安全帽目标。SSD检测算法在大特征图和小特征图上均可进行位置回归,因此可同时兼顾大小安全帽目标的检测,较仅在最后一层特征图上进行位置回归的算法检测性能优异。在实际应用场景中,由于监控摄像头与距检测目标具有一定的距离,因此会出现较多的小安全帽目标,而SSD检测算法在小目标检测上表现出较好的检测性能,非常适用于安全帽的佩戴检测场景[13-14]

SSD检测算法虽然在检测精度和检测速度上均优于传统检测算法,但仍然无法达到实时的目标检测,对于安全帽的佩戴检测速度还无法达到实际的应用要求。针对此问题,本文引入轻量型网络对SSD模型进行压缩以加快安全帽的检测速度。同时,针对SSD训练困难这一问题,使用迁移学习训练策略对轻量型SSD网络进行训练,以快速训练网络并得到较好的训练结果。

1.1 轻量型安全帽检测模型

实际应用中的视频监控设备多使用CPU平台,不具备GPU的并行加速计算能力。而在CPU平台下,SSD算法的检测速度非常缓慢,难以满足安全帽佩戴检测的速度要求。针对此问题,在SSD的研究基础上,提出使用MobileNet[15]代替SSD中的基础网络VGG[16]进行安全帽佩戴检测以加快模型的检测速度。

MobileNet是一种兼备检测精度和检测速度的轻量型神经网络,其通过构建深度可分离卷积(Depthwise Separable Convolution)以改变网络的计算方式从而降低网络参数量,在降低模型复杂度的同时提高模型的检测速度。其中,深度可分离卷积分为单深度卷积(Depthwise)和单点卷积(Pointwise)2个操作,如图 1所示。

Download:
图 1 深度可分离卷积过程 Fig. 1 Deep separable convolution process

深度可分离卷积能够减少模型的参数量,表 1为MobileNet网络参数量和VGG网络参数量的统计结果[17]

下载CSV 表 1 VGG和MobileNet网络参数量对比 Table 1 Comparison of parameters of VGG and MobileNet

表 1中:访存量是参数量所占内存与输出特征图参数量所占内存之和;计算量(Floating Point 0perations,FLOPs)指浮点运算数,用来衡量算法或模型的复杂度,1GFLOPs=109FLOPs;VGG网络的GFLOPs为14.20,表示模型前向传播一次需要进行142亿次浮点运算;MobileNet的GFLOPs为0.53,表示模型向前传播一次需要进行5.3亿次浮点运算。MobileNet的运算量远少于VGG的运算量。此外,VGG的参数量是MobileNet的30倍左右,表明MobileNet占用的内存空间更少。

综上所述,MobileNet无论是在计算量、参数量还是在内存消耗上,均比VGG网络更加适用于CPU平台下的目标检测。因此,本文将SSD中VGG基础网络替换为MobileNet网络,引入MobileNet-SSD实现监控视频中佩戴安全帽人员[17]和未佩戴安全帽人员的检测,MobileNet-SSD结构如图 2所示。

Download:
图 2 MobileNet-SSD网络结构 Fig. 2 MobileNet-SSD network structure
1.2 迁移学习训练策略

迁移学习[18]是将网络中每个节点的权重从一个训练好的网络迁移到另一个全新的网络。在实际应用中,通常不会针对新任务从头开始训练神经网络,因为此操作较为耗时,尤其是当训练数据无法达到类似ImageNet数据集的规模时,想要训练出泛化能力足够强的深度神经网络[19]极为困难。且即使数据集足够,从头开始训练将付出较大的训练代价。使用迁移学习策略能够加快安全帽检测模型的训练速度,训练过程简单且在相同的训练时间内能得到更高精度的检测模型。

1.3 安全帽分类和位置定位

MobileNet-SSD[20]需要对输入图像中的目标具体位置进行定位,其次将定位好的目标分类为Hat类或Person类。具体过程为:定义输入样本$ x $,根据具体分类和定位任务同时调整位置误差损失函数和置信度误差损失函数,损失函数如式(1)所示:

$ L(x, c, l, g)=\frac{1}{N}\left({L}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{f}}\right(x, c)+\partial {L}_{\mathrm{l}\mathrm{o}\mathrm{c}}(x, l, g\left)\right) $ (1)

其中:N是先验框的正样本数量;α的作用是调整位置误差与置信度误差之间的比例,默认设置为1;c为类别置信度预测值;l为边界框的先验框位置;g是真实目标的位置参数;x为指示参数,具体形式为$ {x}_{ij}^{p}\in \left\{\mathrm{1, 0}\right\} $,当$ {x}_{ij}^{p} $=1时,第i个先验框与第j个真实目标相匹配,即对第j个真实目标来说,第i个先验框是其正样本,且真实目标的类别为p;当$ {x}_{ij}^{p} $=0时,对第j个真实目标来说,第i个先验框是其负样本,同样真实目标的类别为p;位置损失函数$ {L}_{loc} $使用SmoothL1损失函数,具体形式如式(2)~式(7)所示:

$ {L}_{\mathrm{l}\mathrm{o}\mathrm{c}}(x, l, g)=\sum\limits _{i\in \mathrm{P}\mathrm{o}\mathrm{s}}^{N}\sum\limits _{m\in \{cx, cy, w, h\}}{x}_{ij}^{k}\mathrm{s}\mathrm{m}\mathrm{o}\mathrm{o}\mathrm{t}{\mathrm{h}}_{\mathrm{L}1}({l}_{i}^{m}-{\widehat{g}}_{j}^{m}) $ (2)
$ {\widehat{g}}_{j}^{\mathrm{c}\mathrm{x}}=\frac{{g}_{j}^{\mathrm{c}\mathrm{x}}-{d}_{i}^{\mathrm{c}\mathrm{x}}}{{d}_{i}^{w}} $ (3)
$ {\widehat{g}}_{j}^{\mathrm{c}\mathrm{y}}=\frac{{g}_{j}^{\mathrm{c}\mathrm{y}}-{d}_{i}^{\mathrm{c}\mathrm{y}}}{{d}_{i}^{h}} $ (4)
$ {\widehat{g}}_{j}^{w}=\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}\left(\frac{{g}_{j}^{w}}{{d}_{i}^{w}}\right) $ (5)
$ {\widehat{g}}_{j}^{h}=\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}\left(\frac{{g}_{j}^{h}}{{d}_{i}^{h}}\right) $ (6)
$ \mathrm{s}\mathrm{m}\mathrm{o}\mathrm{o}\mathrm{t}{\mathrm{h}}_{\mathrm{L}1}\left(x\right)=\left\{\begin{array}{l}0.5{x}^{2}, \left|x\right| < 1\\ \left|x\right|-0.5, \mathrm{其}\mathrm{他}\end{array}\right. $ (7)

由于$ {x}_{ij}^{p} $的存在,位置误差损失函数中只有正样本参与训练。对于类别置信度误差采用softmax loss函数,如式(8)所示:

$ {L}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{f}}(x, c)=-\sum \limits_{i\in \mathrm{P}\mathrm{o}\mathrm{s}}^{N}{x}_{ij}^{p}\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}\left({\widehat{c}}_{i}^{p}\right)-\sum\limits _{i\in \mathrm{N}\mathrm{e}\mathrm{g}}{\widehat{c}}_{i}^{0}\;\mathrm{w}\mathrm{h}\mathrm{e}\mathrm{r}\mathrm{e}\;{\widehat{c}}_{i}^{p}= \\ \frac{\mathrm{e}\mathrm{x}\mathrm{p}\left({c}_{i}^{p}\right)}{\sum \limits_{p}\mathrm{e}\mathrm{x}\mathrm{p}\left({c}_{i}^{p}\right)} $ (8)

其中:$ {x}_{ij}^{p} $含义与位置损失函数中的含义一致,但因为$ i\in \mathrm{P}\mathrm{o}\mathrm{s} $,因此$ {x}_{ij}^{p} $的值只能为1,$ {x}_{ij}^{p} $表示第i个先验框(正样本)与第j个真实目标相匹配且真实目标的类别为p$ {c}_{i}^{p} $表示该第i个先验框是p类目标的置信度,由于已知该第i个先验框是p类,因此在训练过程中$ {c}_{i}^{p} $越大越好,这与训练时应该不断减小损失函数相悖,因此在$ {x}_{ij}^{p}\mathrm{l}\mathrm{o}\mathrm{g}\left({\widehat{c}}_{i}^{p}\right) $前添加负号,以达到训练时不断减小损失函数而增大$ {c}_{i}^{p} $的目的;$ {\widehat{c}}_{i}^{0} $表示第i个先验框是0类即背景类的置信度,由于$ i\in \mathrm{N}\mathrm{e}\mathrm{g} $,因此第i个先验框一定是背景类,且在训练时$ {\widehat{c}}_{i}^{0} $越大越好。与上述相同,在损失函数中在$ {\widehat{c}}_{i}^{0} $前添加负号,以达到损失不断减小$ {\widehat{c}}_{i}^{0} $不断增大的目的。

显然,通过类别置信度误差函数能同时减少安全帽特征向量间的差异及人脸特征向量间的差异,并增大安全帽与人脸特征向量间的差异,即减小类内差异,增大类间差异。从大量的训练样本中学习该特征空间的更鲁棒、更具可区分的距离度量,将原本在原始空间中分辨困难的数据进行维度规约,降低干扰影响,提升识别精度。

2 实验结果与分析 2.1 数据集构建

针对目前安全帽数据集规模较小、网络难以充分拟合特征这一问题,依托互联网平台大量采集安全帽图像,并从施工相关视频中获取真实环境下的安全帽样本以构建本文安全帽样本集。数据集中包含5 034张佩戴安全帽图片,共13 325个佩戴安全帽目标、4 340张人脸图片、人脸目标111 514个。佩戴安全帽的图像收集于网络,人脸图像来自部分SCUT-HEAD数据集。

将样本数据集分为训练集和测试集,训练集为4 034张安全帽图像和3 340张人脸图像,测试集为1 000张安全帽图像和1 000张人脸图像。真实场景下的部分数据集如图 3所示。

Download:
图 3 真实场景下的部分数据集 Fig. 3 Part of the data set in the real scene
2.2 实验环境

本课题的实验平台配置:系统为Ubuntu16.04;GPU平台版本为NVIDIA GTX 1080Ti(x2);编程语言为Python3.5;标注工具采用LabelImg;加速工具为CUDA10.0;模型的搭建、训练和结果的测试均在Caffe框架下完成,使用CUDA并行计算架构,同时将Cudnn加速库集成到Caffe框架下以加速计算机计算能力。下文未佩戴安全帽的人脸识别使用同样的环境配置。

2.3 评价指标

目标检测模型的检测精度衡量指标有召回率(Recall)、精确度(Precision)和均值平均精度(mean Average Precision,mAP)等,模型的检测速度衡量指标有每秒帧率(Frame Per Second,FPS)等,本文使用上述评价指标对安全帽的佩戴检测模型性能进行衡量。

召回率和精确度的计算过程如式(9)和式(10)所示:

$ {R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}=\frac{{T}_{\mathrm{T}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}} $ (9)
$ {P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}=\frac{{T}_{\mathrm{T}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{P}}} $ (10)

其中:TP为真正例,表示模型分类正确,原本属于正类的样本分为正类;FP为假正例,表示模型分类错误,原本属于负类的样本分为正类;TN为真负例,表示模型分类正确且原本属于负类的样本分为负类;FN为假负例,表示模型分类错误且原本属于正类的样本分为负类;Recall表示分类器认为是正类且原本确实是正类的部分占所有原本属于正类的比例;Precision表示分类器认为是正类并且原本确实是正类的部分占所有分类器认为是正类的比例。

根据式(9)和式(10)计算Recall和Precision值,并以Recall值为x轴,Precision值为y轴绘制P-R曲线,AP即为曲线所包围的面积,在测试集上求每一类目标的AP值再取平均。mAP的计算过程如式(11)所示:

$ \mathrm{m}\mathrm{A}\mathrm{P}=\frac{1}{C}\sum \limits_{c\in C}\mathrm{A}\mathrm{P}\left(c\right) $ (11)
2.4 运算复杂分析

探究MobileNet-SSD相对于SSD的优越性,对其检测速度和检测精度进行对比。

保持硬件平台相同,分别统计SSD算法在GPU和CPU设备下的检测速度,测试视频来自互联网的工地施工视频,其中包含大量安全帽佩戴人员样本。结果如表 2所示。

下载CSV 表 2 SSD在不同平台下的检测速度比较 Table 2 Comparison of SSD detection speeds under different platforms  

表 2可知,GPU平台下检测速度达到了15 frame/s左右,即每秒可以处理大约15张图像,而CPU平台下检测速度仅为1 frame/s左右,图像处理速度较慢,由此可知SSD在GPU平台下的检测速度远快于在CPU平台下的检测速度。

使用相同的测试视频,分别统计MobileNet-SSD算法在GPU和CPU设备下的检测速度,结果如表 3所示。

下载CSV 表 3 MobileNet-SSD在不同平台下检测速度比较 Table 3 Comparison of detection speed of MobileNet-SSD under different platforms  

与SSD在CPU平台下的速度(1.24 frame/s)对比,轻量型MobileNet-SSD的检测速度是其10.6倍左右。对比SSD的检测精度(90.51%),MobileNet-SSD的检测精度为87.32%,较SSD下降了约3.2个百分点。因此可以认为,在基于智能视频监控的安全帽佩戴检测中,轻量型MobileNet-SSD仅在损失很小精度的情况下,极大地提高了安全帽的检测速度,使得安全帽佩戴检测能够在CPU平台下顺利实现。

2.5 结果分析

本文首先使用ImageNet数据集训练VGG网络[21],将得到的参数初始化后输入MobieNet-SSD,并在此基础上使用自建数据集进行进一步优化训练。此过程中,初始学习率设置为0.001,迭代次数为50 000次,学习率调整策略为Multistep,步长分别设置为10 000、20 000、30 000,动量(Momentum)为0.9,衰减系数(Delay)为0.000 5。MobileNet-SSD和SSD算法的损失随迭代次数的变化曲线如图 4所示。

Download:
图 4 训练损失曲线 Fig. 4 Training loss curve

图 4可知,在整个训练过程中SSD算法具有更低的损失值,且迭代到14 000次左右时,SSD和MobileNet-SSD算法的损失值均不再震荡而是趋于稳定,SSD收敛到更低的损失值。

由于计算机内存限制,因此训练和验证不同时进行,而是每训练5 000次保存一组算法,并在保存的算法上对测试集进行测试,以探究算法在特定的迭代次数时对图像数据中目标的检测能力。测试集在MobileNet-SSD算法上得到的Hat类和Person类的召回率和精确度分别如图 5图 6所示。

Download:
图 5 MobileNet-SSD各组算法的召回率统计结果 Fig. 5 Recall statistics of each group algorithm of MobileNet-SSD
Download:
图 6 MobileNet-SSD各组算法的精确度统计结果 Fig. 6 Accuracy statistics results of each group algorithm of MobileNet-SSD
Download:
图 7 MobileNet-SSD和SSD在各组模型的mAP统计结果 Fig. 7 mAP statistical results of MobileNet-SSD and SSD in each group of models

图 5图 6可知,随着MobileNet-SSD算法的训练加大,召回率和检测精度不断上升,之后逐渐趋于稳定并在小范围内震荡。当训练到30 000次(第6组模型)和45 000次(第9组模型)时,Hat类和Person类取得了最高的召回率,分别为91%和90.46%;当训练到35 000次(第7组)和40 000次(第8组)时,Hat类和Person类取得了最高的精确度,分别为85.2%和85.5%。分析图 4还可发现第8组即SSD模型训练40 000次时,检测精度达到最大为90.51%,第9组MobileNet-SSD模型即训练45 000次时,检测精度达到最大为87.32%。

除了对MobileNet-SSD检测精度进行分析外,还需探究MobileNet-SSD的检测速度。本文所使用的GPU型号为GTX 1080Ti,能有效地提高计算机的计算性能,但在实际应用场景中,视频监控一般使用普通的CPU设备,CPU设备不具备GPU的并行加速计算能力。本文在其他硬件平台相同下,分别在使用GPU和CPU设备下对最终模型的检测速度进行统计。测试集共有2 000张图像,其中安全帽图像和人脸图像各1 000张,包含20 196个人脸目标和2 151个安全帽目标,共22 348个待检测目标。最终结果如表 4所示。

下载CSV 表 4 不同算法分别在CPU和GPU平台下的检测速度比较 Table 4 Comparison of detection speeds of different algorithms on CPU and GPU platforms

表 4可知,SSD算法在CPU平台下检测2 000张图像共用了1 613 191.86 ms,而在GPU平台下检测2 000张图像共用了130 645.27 ms,即SSD算法在GPU平台下的检测速度远高于在CPU平台下的检测速度。此外,SSD算法在GPU平台下的检测速度达到了15 frame/s左右,即每秒可以处理大约15张图像,而在CPU平台下的检测速度仅为1frame/s左右,图像处理速度缓慢。因此,本文认为SSD算法在GPU平台下可以实现实时安全帽佩戴检测,但在CPU平台下还需进一步优化算法以提高安全帽佩戴的检测速度。

表 4中SSD在CPU平台下的速度对比,轻量型MobileNet-SSD的检测速度是其11.9倍左右。同时对比SSD的检测精度90.51%,MobileNet-SSD的检测精度为87.32%,较SSD下降了约3.2个百分点。因此可以认为,在基于智能视频监控的安全帽佩戴检测中,轻量型MobileNet-SSD仅在损失很小精度的情况下,极大地提高了安全帽的检测速度,使得安全帽佩戴的实时检测能够在CPU平台下顺利实现。

为进一步验证本文算法具有较高的检测精度和检测速度,分别使用Faster-RCNN和YOLO等经典算法在相同测试数据集下进行测试,结果如表 5所示。其算法采用Ubuntu16.04系统,在版本为Intel E5 2660的CPU平台下进行,内存为16 GB DDR3 RAM(x2),硬盘版本为Intel 500G SSD,GPU为NVIDIA GTX 1080Ti(x2)。

下载CSV 表 5 不同算法下的检测结果对比 Table 5 Comparison of detection results under different algorithms

表 5可知,Faster-RCNN[22]具有较高的检测精度,但其检测速度缓慢,无法实现实时安全帽佩戴检测;YOLO和SSD算法检测速度相当,但SSD的检测精度高于YOLO的检测精度;对于MobileNet-SSD,其检测速度相对于SSD有较大提升,但检测精度有所下降。此结果再次印证本文结论,即轻量型MobileNet-SSD仅在损失很小精度的情况下,极大地提高了安全帽的检测速度,使得安全帽佩戴检测能够实时实现。

为更直观地展现MobileNet-SSD的检测效果,本文选取单目标和多目标情形、小目标和极端小目标情形、复杂背景和其他特殊应用场景下的测试图像序列进行检测效果验证。

安全帽佩戴检测的最终目的是将佩戴安全帽人员的面部和安全帽作为一个整体区域提取出来,针对没有佩戴安全帽的人员仅提取其面部区域。图 8图 9分别为单目标和多目标检测结果,佩戴安全帽[23]的人员的具体坐标位置使用红色矩形框(彩色效果见《计算机工程》官网HTML版)标出,未佩戴安全帽的人员人脸的具体位置使用蓝色框标出。图 8图 9分别为选取了人脸正面、背面和多角度的3张单目标图像的检测结果对比。通常单目标图像[25]不存在目标间的遮挡,因此其检测过程相较于多目标检测更简单。总体上,MobileNet-SSD算法对单目标图像能做出正确的检测,检测结果基本满足需求。对于多目标图像,目标间往往存在遮挡及互相干扰,这在一定程度上增加了安全帽佩戴检测的难度。图 9(a)9(b)均为没有遮挡的情况,因此全部检测成功。从图 9(c)的检测结果可以看出,当遮挡面积过大时会出现一定的漏检情况,为安全帽佩戴检测带来误差。

Download:
图 8 单目标下mobileNet-SSD的检测结果展示 Fig. 8 Display of mobileNet-SSD detection results under single target
Download:
图 9 多目标下mobileNet-SSD的检测部分结果展示 Fig. 9 shows the results of the detection part of mobileNet-SSD under multiple targets

在单目标和多目标情形、复杂背景情形和其他特殊情形下,MobileNet-SSD的检测效果与SSD非常接近。而对于小目标和极端小目标的情形,两者检测效果差异较大,图 10为MobileNet-SSD在小目标和极端小目标情形下的安全帽佩戴检测效果。

Download:
图 10 小目标和极端小目标下MobileNet-SSD的检测结果 Fig. 10 Mobilenet-SSD detection results for small targets and extremely small targets

观察图 10(a)~图 10(c)可知,对于包含小目标且小目标间无遮挡的图像,轻量型Mobilenet-SSD表现出较好的检测效果。而对于如图 10(d)包含大量的极端小目标的图像,轻量型Mobilenet-SSD仅能检测出很少一部分目标,检测效果不佳。对比SSD对极端小目标的检测结果可知,SSD对图像中的大部分目标检测正确,仅有小部分目标出现漏检情况。因此可以认为,若视频监控中含有大量的极端小目标,轻量型Mobilenet-SSD会出现严重漏检的情况。但考虑到一般监控视频中多含有较小目标和正常目标,含有极端小目标的情况很少,且本文对极端小目标无法进行后续的人脸识别处理,因此极端小目标的检测并不在本文的研究范围。综合考虑,MobileNet-SSD基本能够满足实际检测需求。

3 结束语

针对真实场景下安全帽检测所面临的背景复杂且干扰性强、待检测目标较小、对检测速度要求较高等问题,本文采用SSD算法进行安全帽佩戴检测。由于SSD算法在不使用GPU加速时会出现检测速度缓慢、内存消耗大和计算复杂度高的问题,因此引入一种轻量级MobileNet网络代替SSD中的基础网络VGG,在迁移学习策略上训练得到MobileNet-SSD算法。实验结果表明,该算法在CPU下检测速度达到13.72 frame/s,检测精度达到87.32%,较SSD算法的检测速度提高了10.2倍,MobileNet-SSD在仅损失很小精度的情况下,大幅提升了安全帽佩戴检测的速度。本文算法虽然加快了模型的检测速度,但是其精度却有所损失,下一步将研究如何在提高检测速度的同时保持甚至提高检测精度。

参考文献
[1]
Li X. Research and application of video recognition in HSE monitoring platform[D]. Shanghai: East China University of Science and Technology, 2014. (in Chinese)
李潇. 视频识别在HSE监控平台中的研究与应用[D]. 上海: 华东理工大学, 2014.
[2]
LIU Y B, HUANG H. Research on monitoring technology of wearing safety helmet on construction site[J]. Electronic Science and Technology, 2015(4): 75-78. (in Chinese)
刘云波, 黄华. 施工现场安全帽佩戴情况监控技术研究[J]. 电子科技, 2015(4): 75-78.
[3]
FENG G C, CHEN Y Y, CHEN N, et al. Research on automatic identification technology of safety helmet based on machine vision[J]. Machine Design and Manufacturing Engineering, 2015, 44(10): 42-45. (in Chinese)
冯国臣, 陈艳艳, 陈宁, 等. 基于机器视觉的安全帽自动识别技术研究[J]. 机械设计与制造工程, 2015, 44(10): 42-45.
[4]
DU S Y. Research on the recognition algorithm of substation personnel wearing helmet[D]. Chongqing: Chongqing University, 2015. (in Chinese)
杜思远. 变电站人员安全帽佩戴识别算法研究[D]. 重庆: 重庆大学, 2015.
[5]
ZHAO Y Q, RAO Y, DONG S P, et al. Overview of deep learning target detection methods[J]. Journal of Image and Graphics, 2020, 25(4): 629-654. (in Chinese)
赵永强, 饶元, 董世鹏, 等. 深度学习目标检测方法综述[J]. 中国图象图形学报, 2020, 25(4): 629-654.
[6]
LIU Y, LIU H Y, FAN J L, et al. Overview of the research and application of small target detection based on deep learning[J]. Acta Electronica Sinica, 2020, 48(3): 590-601. (in Chinese)
刘颖, 刘红燕, 范九伦, 等. 基于深度学习的小目标检测研究与应用综述[J]. 电子学报, 2020, 48(3): 590-601. DOI:10.3969/j.issn.0372-2112.2020.03.024
[7]
CAO J, SONG C, SONG S, et al. Front vehicle detection algorithm for smart car based on improved SSD model[J]. Sensors, 2020, 20(16): 46-56.
[8]
LI H, CHEN X Q, SHI H, et al. Pedestrian head detection method based on SSD[J]. Computer Engineering and Design, 2020, 41(3): 827-832. (in Chinese)
李欢, 陈先桥, 施辉, 等. 基于SSD的行人头部检测方法[J]. 计算机工程与设计, 2020, 41(3): 827-832.
[9]
SHI W X, TAN D L, BAO S L, et al. Feature-enhanced SSD algorithm and its application in remote sensing target detection[J]. Acta Photonica Sinica, 2020, 49(1): 154-163. (in Chinese)
史文旭, 谭代伦, 鲍胜利, 等. 特征增强SSD算法及其在遥感目标检测中的应用[J]. 光子学报, 2020, 49(1): 154-163.
[10]
MAO X Y, L Y, MA H, et al. Obstacle recognition of power line inspection robot based on SSD algorithm[J]. Automation and Instrumentation, 2020, 247(1): 45-48. (in Chinese)
毛先胤, 刘宇, 马晓红, 等. 基于SSD算法的电力巡线机器人障碍物识别[J]. 自动化与仪器仪表, 2020, 247(1): 45-48.
[11]
PENG D, SUN Z, CHEN Z, et al. Detecting heads using feature refine net and cascaded multi-scale architecture[C]//Proceedings of International Conference on Pattern Recognition. Washington D.C., USA: IEEE Press, 2018: 2528-2533.
[12]
XU S K, WANG Y R, GU Y W, et al. Research on helmet wearing detection based on improved Faster RCNN[J]. Application Research of Computers, 2020, 37(3): 901-905. (in Chinese)
徐守坤, 王雅如, 顾玉宛, 等. 基于改进Faster RCNN的安全帽佩戴检测研究[J]. 计算机应用研究, 2020, 37(3): 901-905.
[13]
FANG M, SUN T T, SHAO Z, et al. Fast helmet wearing condition detection based on improved YOLOv2[J]. Optics and Precision Engineering, 2018, 27(5): 1197-1205. (in Chinese)
方明, 孙腾腾, 邵桢, 等. 基于改进YOLOv2的快速安全帽佩戴情况检测[J]. 光学精密工程, 2018, 27(5): 1197-1205.
[14]
WANG B, LI W J, TANG H, et al. Improved Yolo v3 algorithm and its application in safety helmet detection[J]. Computer Engineering and Applications, 2020, 56(9): 33-40. (in Chinese)
王兵, 李文璟, 唐欢, 等. 改进Yolo v3算法及其在安全帽检测中的应用[J]. 计算机工程与应用, 2020, 56(9): 33-40.
[15]
LI X, QIN Y, WANG F, et al. Pitaya detection in orchards using the MobileNet-YOLO model[C]//Proceedings of the 39th Chinese Control Conference. Washington D.C., USA: IEEE Press, 2020: 6274-6278.
[16]
ZHANG D, LÜ J, CHENG Z. An approach focusing on the convolutional layer characteristics of the VGG network for vehicle tracking[J]. IEEE Access, 2020, 8: 112827-112839.
[17]
GUO K. Research on real-time detection method of face occlusion based on SSD and system implementation[D]. Nanchang: Nanchang University, 2019. (in Chinese)
郭凯. 基于SSD的人脸遮挡实时检测方法研究及系统实现[D]. 南昌: 南昌大学, 2019.
[18]
WANG M F. Research on video-based safety helmet detection and tracking algorithm[J]. Information and Communication, 2020(1): 40-42. (in Chinese)
王明芬. 基于视频的安全帽检测和跟踪算法研究[J]. 信息通信, 2020(1): 40-42.
[19]
FUENTES J D, LOSADA G C, CASILLAS P D, et al. Towards dense people detection with deep learning and depth images[EB/OL]. [2020-05-21]. https://www.researchgate.net/publication/342944677_Towards_Dense_People_Detection_with_Deep_Learning_and_Depth_images.
[20]
WANG F F, CHEN L, JIAO L B, et al. Research on helmet detection algorithm based on SSD-MobileNet[J]. Information Research, 2020, 46(3): 34-39. (in Chinese)
王菲菲, 陈磊, 焦良葆, 等. 基于SSD-MobileNet的安全帽检测算法研究[J]. 信息化研究, 2020, 46(3): 34-39.
[21]
SARASWATHI S, MADHESWARAN M. Adaptive supervised multi-resolution approach based modeling of performance improvement in satellite image classification[J]. Journal of Ambient Intelligence and Humanized Computing, 2020, 43(2): 1-11. DOI:10.1007/s12652-020-02251-0
[22]
SHOU G L, LIU K, QIAO Y, et al. Automatic defect detection based on improved Faster RCNN for substation equipment[J]. Journal of Physics, 2020, 1544(1): 12157.
[23]
HOWARD A, SANDLER M, CHU G, et al. Searching for mobilenetv3[C]//Proceedings of the IEEE International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2019: 1314-1324.