针对CenterNet 缺点的安全帽检测算法改进

2023-08-19 02:39:42王海瑞赵江河吴蕾谢思远
湖南大学学报(自然科学版) 2023年8期
关键词:安全帽高斯类别

王海瑞 ,赵江河,吴蕾,谢思远

(昆明理工大学 信息工程与自动化学院,云南 昆明 650504)

在安全生产中,是否佩戴安全帽事关生产能否安全进行.在工业3.0 智能化时代,安全帽的佩戴检测成为施工场所智能化监控的一大重要挑战.在实际应用中,由于光照条件、遮挡物、目标数量多而尺寸小以及背景杂乱等,安全帽的识别检测准确率并不高.为提高检测的准确率,国内外研究者进行了多方面的研究和改进.

传统的安全帽检测采用的是Haar特征以及线条纹理等浅层特征.赵震[1]通过训练Haar 特征来进行人体安全帽的检测.刘晓慧等[2]采用肤色检测确定人脸以上的区域并将获得的Hu 矩作为特征向量进行二分类从而判断是否佩戴安全帽.

对于使用深度学习的安全帽检测的研究改进,大多数研究者都是使用基于锚框的YOLO、SSD 或者Faster-RCNN 等进行改进.改进的方向主要集中于融合环境特征[3]、增加特征图保留信息[4]、修改主干网络[5]、单尺度修改为多尺度检测[6]、引入Transformer 注意力模块[7]、特征图融合[8-9]、采用多元数据集[10]、修改损失函数[11-12]、多路径聚合[13]、分区灰度投影[14]、提升细粒度特征利用率[15]以及使用轻量化模块[16]等等.以上都是针对基于锚框的深度学习框架进行的改进,要想在这些框架上有较好的检测效果,就必须使用k-means 等算法在特定数据集上对锚框的尺寸进行聚类.

然而一旦被检测物体的长宽比发生显著变化,基于锚框的网络结构的效果就会变差.因此目前研究基于无锚框的目标检测网络框架成了研究者的主流,CenterNet就是其中之一.主要有对主干网络进行改进来解决梯度消失的问题[17]、增大感受野获取更多信息[18]、使用金字塔结构进行特征复用[19]以及使用嵌入式向量来提取更深层次的特征[20].此外还有使用特征融合[21]以及联合注意力[22]来提升Center-Net的推理准确性.

综上,无论是对基于锚框的YOLO 系列还是对基于无锚框的CenterNet 系列,大致的研究内容都是基于多尺寸特征图、注意力机制以及定位的损失函数展开的,很少有研究对类别推理损失函数以及特征图的复用进行优化.因此本文尝试对CenterNet 的类别推理以及特征图的复用进行优化.

1 改进CenterNet的安全帽检测方法

CenterNet是一种无锚边框的一阶段的目标检测网络结构,它主要是通过热度图确定该点所表示的类别,并且通过该点以及在该点回归的偏移位置和长宽来确定目标的位置和大小.相较于大多数一阶段的目标检测网络结构来说,它的准确性较高而且速度相对较快.但是CenterNet 有两个缺点:①类别推理的热度图拟合性较差;②特征图没有复用.

1.1 类别预测损失函数

CenterNet的类别推理是由热度图中每个点值的大小判断的.推理得到的热度图每一个点值都介于0到1 之间.类别推理的过程是通过筛选128×128×C(其中C表示最后一维的大小,同时C也是类别的个数)的最后一个维度最大值来得到128×128×1 的特征图.最后再按照得到的特征图的值的大小进行有效的筛选,来确定目标的类别以及中心点.其类别推理过程如图1所示.

图1 类别推理过程Fig.1 Category reasoning process

CenterNet热度图的损失使用的是针对高斯热度图的Focal loss,它在大量负样本干扰的情况下也可以有效进行学习,其损失函数如式(1)所示:

式中:N=W×H×C表示的是点的个数;W、H和C分别代表特征图的长、宽和维度,维度即类别数C;Yxyc表示在坐标(x,y,c)处是否存在类别为C的目标表示在坐标(x,y,c)的预测值;α、β分别取2、2.

但是当目标较小时,其计算出的高斯图波峰的点值偏小,仅有0.7 左右,与target 产生的峰值为1 的高斯图相比相差较远.如图2所示为某一张图predict和target的热度图(俯视图)点值对比.图2中target的波峰值为1.0,predict的为0.733.

图2 Predict和target的热度图对比Fig.2 Comparison of heat map between predict and target

由图2 可知,对于原始的CenterNet,使用Focal loss 训练后的推导结果的热度图的值并没有趋近于target 的值.Mse 损失函数是通过降低相同位置的像素值的方差来进行优化的.因此本文尝试使用predict 和target 对应的每个点的均方误差(Mse)来优化Focal loss,在原始Focal loss 的基础上增加每个像素点的均方误差优化.在增加均方误差之后可以更好地拟合target和predict中的高斯热度图.

1.1.1 Mse损失函数

Mse 损失函数采用的是predict 和target 每个点之间的均方误差进行的热度图的反向梯度优化,如式(2)所示:

式中:Yxyc表示在坐标(x,y,c)处的标注值;表示在坐标(x,y,c)的预测值.

公式(2)计算的是target 和predict 的热度图中所有点的均方误差值.

1.1.2 Focal-Mse-One损失函数

由图1 可知,虽然使用Focal loss 可以有效地让模型学习到target的高斯热图的形状和大小,但是波峰以及坡面的值却和target 的值有所偏差.偏差的结果(高斯图侧切面)如图3所示.

图3 Predict和target的波峰的偏差Fig.3 Deviation of wave crest between predict and target

为了能减少这两者的偏差,让predict曲面和target 曲面更好地拟合,本文设计出Focal-Mse-One 损失函数,它是在Focal loss 的基础上添加了高斯图波峰(仅添加高斯图的最高点)的均方误差,使得其在优化过程中可以更好地推导出波峰的值,进而提升置信度,从而解决目标预测结果不好的问题.Focal-Mse-One损失函数如式(3)所示:

式中:M表示热度图中所有Yxyc=1 的个数;Yxyc∈[0,1].

1.1.3 Focal-Mse-Guss损失函数

为了减少target 和predict 的偏差,让predict 曲面和target 曲面更好地拟合,本文设计出Focal-Mse-Guss 损失函数.它是在Focal loss 的基础上添加了高斯图波峰以及坡面的均方误差,使得其在优化过程中可以更好地推导出波峰以及坡面的值.应用坡面的均方误差可以变相增加样本的个数(主要是参与Mse 损失函数的像素点的数量,相较于Focal-loss-One 增加了坡面的均方误差),从而可以更好地提升预测类别的置信度.Focal-Mse-Guss 损失函数如式(5)所示:

式中:M表示高斯图中所有Yxyc>0 的个数;Yxyc∈[0,1].相较于Focal-Mse-one 损失函数,其增加了训练时样本的数量(主要是参与Mse 损失函数的像素点的数量,前者是高斯图中所有大于0 的点参与到反向梯度优化中,后者仅仅是高斯图中的最高点参与到反向梯度优化中).

1.2 特征融合

正如引言部分的分析,CenterNet 对于特征图的复用并不高,因此本文尝试采用ASFF 自适应模块对主干网络提取到的特征进行融合,形成ASFF 结构.在此基础上,将解码阶段的三个大小的特征图也进行融合,形成DASFF结构.ASFF模块如图4所示.

图4 ASFF模块Fig.4 Block of ASFF

ASFF 结构可以对解码阶段的三个尺寸的特征图进行自适应的融合,是对位置信息的自适应融合.DASFF结构是对特征提取以及解码阶段的三个尺寸的特征图进行自适应融合后进行加权操作,是在ASFF结构基础上增加了语义信息的融合.

本文中ASFF 模块首先通过1×1 的卷积分别对三个不同大小的特征图进行计算.然后将最小的特征图(32×32×C1)和次小的特征图(64×64×C2)分别上采样生成最大的特征图(128×128×C3).随后将这三个特征图进行1×1 的卷积计算最后得到128×128×C4大小的特征图,可以用式(7)表示:

式中:Ffinal表示最终的输出特征图;Fsmall表示最小的特征图;Fmedium表示中等的特征图;Flarge表示最大的特征图;α、β、λ表示权重,即ASFF模块中的1×1卷积核,经过样本训练之后,α、β、λ三个卷积核即可学习出三种尺寸的特征图的重要关系.

1.2.1 特征融合ASFF结构

当图像的信息经过下采样和上采样之后,虽然有丰富的语义信息,但是图像输入前所包含的大量位置信息丢失.因此本文尝试在提取特征图的主干网络部分对三个大小的特征图(128×128×256、64×64×512、32×32×1024)进行自适应特征融合ASFF,融合之后和解码阶段输出的特征图(128×128×64)进行⊕操作,将下采样过程中产生的具有相对丰富的位置信息进行融合.特征融合ASFF结构如图5所示.

图5 特征融合ASFF结构Fig.5 Feature fusion ASFF structure

1.2.2 特征融合DASFF结构

针对CenterNet 在上采样的过程中没有对采样前的特征图进行复用,因此设计出自适应ASFF 模块2 对上采样过程的三个大小的特征图(128×128×64、64×64×128、32×32×256)进行特征融合,融合之后的特征图与自适应ASFF 模块1 产生的特征图进行⊕操作.模块1 融合了位置信息,模块2 融合了语义信息,使得最终预测的结果得到提升.其结构如图6 所示,是在ASFF 结构的基础上增加了一个对语义信息的自适应融合模块.

图6 特征融合DASFF结构Fig.6 Feature fusion DASFF structure

2 实 验

2.1 数据集

实验中使用的数据集是从网上收集的安全帽的数据集.它包括佩戴安全帽(hat)和没有佩戴安全帽(person)两个类别.共包含图片7 581张,其中图片中目标为“佩戴安全帽”的共有8 437个,图片中目标为“没有佩戴安全帽”的共106 757个.不同类别数量相差较大.数据集中训练集6 140 张图片,验证集682张,测试集759张.安全帽数据集如图7所示.

图7 安全帽数据集Fig.7 Helmet dataset

2.2 实验环境

本实验采用Windows 10 操作系统,使用PyTorch深度学习框架,使用Python 3.8 作为代码解释器.实验环境配置如表1所示.

表1 实验环境及配置Tab.1 Experimental environment and configuration

2.3 实验细节

本实验所有网络模型都训练100次,并且前5次对主干网络进行冻结操作,不进行反向梯度训练;后95 次则对网络的所有部分进行训练.详细的实验细节如表1所示.

2.3.1 损失函数实验细节

对网络类别预测的热度图部分进行损失函数的对比实验.首先分别使用Focal loss、Mse loss、Focal-Mse-One loss 以及Focal-Mse-Guss loss 进行训练,然后比较通过4 个损失函数训练后4 个模型预测的热度图以及对比使用测试集数据计算的4 个模型的MAE值.评判标准的MAE公式如式(8)所示.

式中:M表示测试集中图片的个数;Yixyc表示第i张图片中热度图坐标为(x,y,c)的点.

最后分别比较这4个模型的mAP值.

2.3.2 特征融合实验细节

特征融合是在选择最好的损失函数的基础上分别修改模型为ASFF 结构以及DASFF 结构.然后比较两个模型的mAP 值,最后判断两个模型哪个更准确.

评价标准mAP(mean Average Precision)表示各类AP 的均值.AP 表示的是P-R曲线、x轴和y轴所围成的近似面积.P-R曲线是由Precision 和Recall 组成的曲线.其中精度Precision 的计算如式(9)所示,召回率Recall的计算如式(10)所示.

式中:TP(True Positives)表示推导结果是正样本而且实际是正样本;FP(False Positives)表示推导结果为正样本但实际为负样本;FN(False Negative)表示推导结果为负样本但实际为正样本.正样本表示计算的类型为该类且计算的边框与真实框的交并比大于某个阈值,AP0.5时,该阈值为0.5.

2.4 实验结果与分析

2.4.1 损失函数实验结果与分析

在损失函数的实验中,修改的只是模型的类别预测部分,因此仅对比分类损失.图8 和图9 分别为修改后4 个模型的100 轮损失对比以及最后5 次的损失对比.

图8 100轮4个模型的分类损失Fig.8 Classification loss of four models in 100 epochs

随机一张图四个模型和target 的高斯热度图比较如图10所示.其中(a)是图片的原图.(b)是由图片生成的target.由于是两个类别,因此在(b)~(f)所表示的高斯热图中仅展示佩戴安全帽的热图.(c)表示使用Focal loss 优化后的模型预测;(d)表示使用Mse loss 优化后的模型预测;(e)表示使用Focal-Mse-One loss 优化后的模型预测;(f)表示使用Focal-Mse-Guss loss优化后的模型预测.

图10 高斯热图的比较Fig.10 Comparison of Gauss heat maps

从图10 观察可知,经过Focal-Mse-One 或者Focal-Mse-Guss 优化后,其表示的高斯热图更明显,峰值更高.表2 为四个模型在测试集上预测的高斯热图与target 的MAE 值.MAE 的值越低,表示target和predict拟合的效果越好.

表2 高斯热图的MAE值Tab.2 MAE value of Gaussian heat map

接着对四个模型进行mAP0.5的对比.对比结果如表3 所示.由表3 可知,使用Focal-Mse-Guss 优化后,其精确率在四个模型中最高,并且mAP也是最高的.Mse 因为有大量的负样本存在,导致其并不能学习到足够优秀的参数,因此mAP 仅有16.98%.不论是使用Focal-Mse-One loss 还是Focal-Mse-Guss 优化,其mAP 值都比原始的使用Focal loss 优化的要高.由于Focal-Mse-Guss 增加了样本的数量,因此其优化结果要好于Focal-Mse-One.

表3 四个模型的mAPTab.3 The mAP of four models %

2.4.2 特征融合实验结果与分析

特征融合实验是基于Focal-Mse-Guss 损失函数进行的.实验中首先加入特征融合ASFF 模块1 构建ASFF 结构,然后在此基础上加入ASFF 模块2 构建DASFF结构.100轮和最后5轮的损失函数如图11和图12所示.

图11 100轮4个模型的损失Fig.11 Loss of four models in 100 epochs

图12 后5轮4个模型的损失Fig.12 Loss of four models in last 5 epochs

特征融合消融实验的mAP值如表4所示.

表4 特征融合消融实验Tab.4 Feature fusion ablation experiment

由表4 可知,使用Focal-Mse-Guss 优化后,mAP可以提升2.39%.当引入ASFF 模块1 后,提升仅有0.13%,原因是虽然融合了下采样层的位置信息,但由于上采样层的语义信息没有融合,仅仅使用了最后一层上采样层的语义信息,因此提升不大.继续融合ASFF 模块2 之后,mAP 提升了1.11%,因为模块2将上采样层产生的三个特征图的语义信息进行了融合从而导致结果有所提升.

2.4.3 结果与结果对比

下面对目标检测的常见算法进行mAP(准确度)和FPS(时间)上的对比.

图13 展示了CenterNet、CenterNet-Focal-Mse-Guss和DASFF-CenterNet-Focal-Mse-Guss 的结果对比.由图13 可知,当改用了Focal-Mse-Guss 损失函数后,其预测的类别置信度有所提升,但依旧有些目标无法检测到,如图13(b)的右图最右边没有检测到.当改进为DASFF 结构后,这些目标被检测到了,如图13(c)的右图最右边的目标被模型检测到.

图13 三种模型的结果对比Fig13 Comparison of the results of the three models

本文改进的算法与复现的Faster-RCNN[23]、YOLOv3[24]、YOLOv5 large、RetinaNet[25]、RefineDet[26]、FAENet[27]、CornerNet[28]、RPDet[29]、YOLOv3+pixel feature statistics[12]、YOLOv4+CSP[15]、SSD+MobileNet[16]、CenterNet进行对比.除SSD+MobileNet外,所有的主干网络全部替换为ResNet-50.在训练轮数、批次、学习率等与改进的算法的训练参数保持一致的情况下,在安全帽数据集上进行训练并对比结果.对比的结果如表5 所示.由于数据集中有大量的小目标数据,并且分布密集,因此mAP较低.

表5 不同算法对比Tab.5 Comparison of different algorithms

由表5 的数据可知,CenterNet、CenterNet-Mse、CenterNet-Focal-Mse-One、CenterNet-Focal-Mse-Guss四个模型的推理时间相同,FPS都是27.22帧每秒.说明修改损失函数并不会增加模型的推理时间,同时好的损失函数可以提高模型的准确性.

3 结论

为提高安全帽佩戴检测的准确性,本文改进了CenterNet 网络.针对CenterNet 多分类时热度图预测结果较差的问题,本文提出了Focal-Mse-One 损失和Focal-Mse-Guss 损失并进行对比;针对CenterNet对推理过程中特征图复用性不高的问题提出了ASFF 和DASFF 结构并进行比较.实验结果表明,最终修改的网络在GeForce GTX 1050 显卡上推理速度可以达到20.78 帧,mAP 可达81.41%,相较于原始的CenterNet提升了3.63%.在安全帽的数据集上检测结果表明,修改后的CenterNet 网络可以有效提升监测安全帽佩戴的准确性.

猜你喜欢
安全帽高斯类别
刺猬戴上安全帽
小高斯的大发现
矿工有无数顶安全帽
小小安全帽,生命保护伞
机电安全(2022年4期)2022-08-27 01:59:42
天才数学家——高斯
服务类别
新校长(2016年8期)2016-01-10 06:43:59
有限域上高斯正规基的一个注记
论类别股东会
商事法论集(2014年1期)2014-06-27 01:20:42
中医类别全科医师培养模式的探讨
肤色检测和Hu矩在安全帽识别中的应用