常政威,蒲 维,吴 杰,黄坤超,熊兴中,陈明举
(1.国网四川省电力公司电力科学研究院,成都 610041;2.四川轻化工大学 自动化与信息工程学院,四川 宜宾 644002)
在电力、矿山以及油田等施工现场中,工作人员的不规范穿戴往往是造成安全生产事故的主要因素之一。近年来,随着信息技术的发展,利用计算机视觉技术可以实现对施工作业人员的穿戴情况进行检测与识别,对不规范的穿戴行为进行预警,从而避免安全事故的发生。
传统的穿戴识别方法主要采用图像分割与特征识别两个步骤。图像分割技术实现人物目标与背景的分离,再利用肤色与衣服的特征定位人体的各个区域,最后通过机器学习算法对穿戴区域的颜色、形状和纹理特征进行分类与识别[1-2]。传统方法主要提取目标较浅的显著特征[3]进行识别,其识别性能受环境影响大,鲁棒性不强,难以适应复杂施工现场人员的穿戴设备识别[4]。
近年来,深度学习通过自主学习大样本数据深层次的特征,建立鲁棒性强的泛化网络,能有效地实现复杂环境下的目标检测与识别。基于深度学习的目标检测算法主要包括基于区域建议的两阶网络和基于回归策略的单阶网[5]。两阶网络先生成可能含有待检测物体的预选框,再利用主干网络提取特征信息进行分类和回归[6-7];单步检测算法直接在网络中提取特征,输出目标的类别概率以及位置边界框,如SSD、YOLO网络等等[8-9]。与二阶网络相比,单阶网络不仅提高了识别的速度,且识别的准确率接近于二阶网络。通常神经网络结构的加深与加宽可以提高网络的特征表征能力,但增加网络的深度与宽度,不但会增加网络的复杂度,甚至还会产生梯度弥散与过拟合现象,从而导致特征表示能力的下降。为解决上述现象,深度残差网络通过在高层和低层之间相互信息传导,并抑制错误信息传播到网络低层,从而缓解梯度弥散问题[10]。另一方面,Google提出的Inception系列网络采用稀疏连接代替全连接层,并将稀疏矩阵聚类成密集矩阵,以减少网络参数,缓解过拟合的发生[11]。
与传统算法相比,深度学习技术获得了更好的穿戴检测与识别性能。文献[12]与[13]分别针对交通与施工环境的复杂性,将深度学习网络应用于安全帽识别中,从而实现了复杂施工环境下的安全帽识别。但直接将深度学习网络应用于安全帽识别中,其耗时较大,无法满足实时性要求。为解决深层网络运算耗时的缺点,Wang[14]与Cheng[15]等人对YOLOv3网络进行简化,从而减少安全帽识别的时间,但造成弱小目标的漏检与误检。一些学者将多尺度特征金字塔[16]与可分深度卷积模块[17]引入到卷积神经网络中,从而提高了复杂环境下弱小安全帽的检测能力。另外,一些学者针对穿戴服饰的特殊性,建立与之相适应的深度卷积网络,如油田作业安全环境的安全帽的识别残差网络[18]、流行服饰识别Inception网络[19]等。
现有的作业人员穿戴设备识别网络大都集中于单一穿戴设备进行识别,且识别的搜索区域在整个图像区域。施工作业人员穿戴规范性识别仅需在人形区域进行,若将穿戴设备识别的搜索范围限制在人形区域,势必减少识别的运算时间[20]。另外,现有的穿戴识别网络着重于穿戴目标的特性,忽略了穿戴设备与人形结构特性的联系,识别的准确性有限。鉴于此,本文引入VGG(Visual Geometry Group)[21]与分裂-转换-聚合(Split-Transfer-Agregation,STA)[22]模块构建基础残差网络ResNeXt-50,利用ResNeXt-50不同卷积层不同深度残差特征信息实现作业人员的姿态感知。在实现姿态感知的基础上,将穿戴关键区域送入引入卷积块注意力模块(Convolutional Block Attention Module,CBAM)[23]的ResNeXt-50网络中,进而实现作业人员穿戴局部特征与全局特征的融合与精确识别。
本文构建的识别网络由人形姿态感知与穿戴识别两个阶段组成,如图1所示。网络将VGG堆叠网络与STA分裂-转换-聚合技术引入到残差网络中,构建ResNeXt-50作为基础网络。姿态感知利用ResNeXt-50不同深度卷积层的残差图像特征实现人形骨架估计与边缘检测,从而实现人形分割与人形关键区域的定位,如头部、上身、下身等关键穿戴局部区域,从而缩小后续穿戴识别网络搜寻的范围。穿戴识别网络将注意力模块的CBAM引入到ResNeXt-50网络,分别对人形的全局特征与穿戴局部特征进行特征提取,并通过Concat层将局部特征与全局特征融合后送入Softmax层实现穿戴设备的识别。在训练阶段,针对训练样本数量不够的缺点,引入迁移学习的方法,在保持预训练网络的中低层网络参数不变的情况下,仅对顶层Softmax层进行迁移学习修正[24],使迁移学习后的网络具有更高的穿戴识别准确率。
图1 基于姿态感知与迁移学习的穿戴识别的网络结构
本文建立的穿戴识别网络在态势感知的基础上确定穿戴的关键区域,仅对关键区域进行穿戴规范检测,不仅减少了识别的时间,而且提高了识别的准确率。在确定的位置进行穿戴设备识别,从而确定穿戴设备是否在正确的位置,可实现穿戴的规范性识别。
ResNet虽然解决了网络加深造成梯度弥散问题,但是随着超参数数量的增加,网络的复杂度和计算开销也会增加。相应的研究表明[15,25],将VGG堆叠网络与STA技术相结合,在不增加参数复杂度的前提下可以减少超参数的数量,同时提高网络识别的准确率。图2(a)给出了输入与输出通道都为256的ResNet模块,其依次进行1×1、3×3、1×1的卷积。图2(b)为图2(a)对应的ResNeXt网络模块,ResNeXt模块通过分裂32个卷积路径group,再聚合输出与ResNet模块相同的输出,且运算复杂度与ResNet模块相近。
图2 残差模块示意图
ResNeXt模块分裂-转换-聚合用数学表示为
(1)
式中:x为通道的输入,Ti(x)为第i条卷积路径的传递函数,D为卷积路径数。根据式(1)可以得出残差输出方程:
(2)
ResNeXt的每条卷积路径的Ti都具有相同的拓扑结构。借助AlexNet网络grouped convolutions的思想[25],通过限制本层卷积核和输入通道的卷积,可得到更简洁的ResNeXt模块,如图2(c)所示。图2(c)将32个group的每个group的输入输出channels设置为4,最后把channels合并。简化的ResNeXt模块可以减少计算量,获得相同的输出,速度更快。这里在ResNet50的基础上引入分裂-转换-聚合结构,构建ResNXt50如表1所示。
表1 ResNeXt50简化网络结构
建立的ResNeXt50网络的低层输出高分辨图像结构信息的特征图像,高层输出包含丰富的语义信息的特征图像。借助于残差网络人体关键节点估计的方法[26],这里将构建的ResNXt50模块的平均池化和全连接层删除,将Res2-Res4输出的特征图送入特征聚合模块(Feature Aggregation,FA)进行特征融合。FA模块由上采样Upsampling模块与聚合模块Concatenation模块组成,Upsampling模块由K分组反卷积层实现,产生一个K个激活图{A1,A2,…,AK}的集合,送入Concatenation模块聚合得到边缘图[27]。将Res5输出的语义特征图送入由二级反卷积模块组成的姿态解码(Pose Encoder,PoE),便可得到姿态关键节点图[28],整个过程如图3所示。
图3 基于ResNXt50的姿态感知网络
图4 人形关键节点示图
CBAM是一种结合了空间(spatial)和通道(channel)的注意力的轻量级模块,沿着空间和通道两个维度依次推断出注意力权重,实现对特征进行自适应调整,更加有效地表征目标的本质特征[23,29]。电力作业人员穿戴服饰具有多样性,如颜色、材质、款式等各种各样。为了提高穿戴设备的准确性,同时避免增加训练额外开销,将CBAM无缝地集成到ResNeXt的上一个特征层的最后一个卷积模块与下一个特征层的第一个卷积模块之间,如图5所示。
图5 嵌入到ResNeXt网络的CBAM模块
对于上一残差层的特征图像(feature map)F∈C×H×W,CBAM将按顺序推理出通道注意力特征图(channel attention map)Mc∈C×1×1以及空间注意力特征图(Spatial Attention Map)Ms∈1×H×W,整个过程如下:
F′=Mc(F)⊗F,
(3)
F″=Ms(F′)⊗F′ 。
(4)
式(3)和式(4)中:⊗为element-wise multiplication,F′、F″分别为通道注意力与空间注意力模块的输出。残差卷积神经网络的每个通道传递的信息并不是都有用[23]。通道注意机制模块通过增加有效通道的权重,减少无效通道的权重,实现有效特征的加强,其结构如图6所示。
图6 通道注意力模块
通道注意力特征图Mc可表示为
Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))。
(5)
式中:AvgPool与MaxPool分别表示平均池化与最大值池化,σ为Sigmoid函数。池化输出的矢量送入MLP多次多层感知机,最后逐个元素求和得到通道特征图。
将通道模块输出的特征图作为空间注意力模块的输入特征图,如图7所示。首先,做一个基于通道的全局最大值池化和全局平均值池化,将它们连接起来生成一个有效的特征描述符。然后,经过一个7×7卷积操作后,经过sigmoid生成spatial attention feature。最后将该feature和该模块的输入feature做乘法,得到最终生成的特征Ms:
图7 空间注意力模块
Ms(F′)=σ(cov(AvgPool(F′);MaxPool(F′)))。
(6)
对于残差网络,在训练过程中通常需要上百万张标注图像。本文的穿戴识别网络由姿态感知残差网络与局部特征提取残差网络两部分组成。姿态感知残差网络可以通过现有开源的人体图像数据库进行训练。作业人员穿戴识别CBAM+ResNeXt残差网络的训练,需要大量作业穿戴设备图片数据集,目前没有开源的安全帽、工作服、绝缘鞋等电力服饰的数据集,自行收集并且标注上百万的电力作业服饰图片用于残差网络模型的训练是不够现实的,这里将迁移学习技术应用于CBAM+ResNeXt网络训练中。
迁移学习考虑到训练模型任务之间的相关性,对先前任务学习到的知识进行微小的调整以适应当前的新任务,从而解决当前任务很难获取到大量数据集的问题。这里采用ImageNet图像数据库中120万张标注图片对CBAM+ResNeXt残差网络进行训练,得到穿戴识别预训练网络。接下来冻结预训练网络的全部卷积层(各层参数保持不变),利用收集并标注的穿戴设备图像仅对顶层部分参数进行训练并微调。这里迁移学习包括加载预训练模型、特征提取、Softmax回归三个步骤,具体实现流程如图8所示。
图8 穿戴设备识别迁移学习过程
Softmax实现多分类迁移回归,对于迁移学习训练集{(x1,y1),(x2,y2),…,(xm,ym)}有k个类别,xi为输入数据,yi为类别标签。Softmax回归将输入数据xi归属于j类的概率矩阵为
(7)
式中:θ为迁移学习的微调Softmax层矩阵参数,其代价函数为
(8)
式中:1{·}是示性函数。通过梯度下降法求解L(θ),实现对参数θ的估计。在迁移学习中,标注的穿戴设备样本数有限,拟合参数数量非常大。为保证拟合的准确性,这里在损失函数后面加上一个正则项,通过惩罚过大的参数值来修改代价函数。代价函数定义为
(9)
令λ>0,代价函数L(θ)为一个严格的凸函数,可以通过梯度下降法确保代价函数收敛于全局最优解。迁移学习Softmax回归模型通过以下梯度下降法极小化损失函数获得:
(10)
本次实验在深度学习服务器上搭建环境,服务器硬件配置为CPU(Inter Xeon 1颗)、GPU(Nvidia TITAN 4颗)、超微X10DRG-Q主板。操作系统为Windows10专业版操作系统,采用caffe深度学习框架,程序运行平台为Anaconda3。
姿态感知网络的训练采用COCO2017数据集,该数据集包含45万张关键点标注的人体实例图像。CBAM+ResNeXt特征提取与识别网络采用ImageNet数据库中120万张标注图片进行预训练。需识别的穿戴设备包括安全帽、安全带、工作衣裤、手套、工作鞋,如图9所示。针对穿戴设备图片不足,这里采用爬虫技术收集,并采用labelimg软件进行标注。为了增强模型的泛化能力,对迁移学习数据集进行图像缩放、长宽扭曲、色域扭曲等处理。一共选择3 500张图像用于迁移学习所需的数据集并将数据集按8∶1∶1 的比例分成训练集、交叉验证集、测试集。
图9 电力作业穿戴设备图片
实验中的客观评价指标采用各种穿戴设备的识别精确率(Average Precision,AP)与平均精确率(Mean Average Precision,MAP)。
迁移学习设置迭代周期为20,每5个周期学习率变为原学习率的0.1。为证明迁移学习的收敛性情况,保持整个网络其他参数不变,迁移学习仅对CBAM+ResNeXt的Softmax进行学习修正,学习率设置为0.000 1。记录训练迭代周期与平均精确率的关系,如图10所示。从图10中可以看出,准确率从80%左右随迭代周期开始逐步上升,当迭代周期为10个周期左右训练准确率趋于稳定,模型开始收敛。
图10 迭代周期与平均精确率的关系
为进一步证明迁移学习能提高网络识别精确率,对迁移学习与非迁移学习模型的识别精确率进行对比分析,如图11所示。从图中可以看出,未进行迁移学习的网络对穿戴情况的识别率不高于90%,进行迁移学习的网络的对穿戴设备的识别率提高了约10个百分点。
图11 有无迁移学习识别精确率对比
将本文网络分别与SDD、ResNet50、Inception-v3网络进行对比分析,以验证本文基于姿态感知与迁移学习的残差网络的优越性。对比网络在预训练网络的基础上,采用同样的迁移学习方式对顶层进行修正,并在相同的数据集上进行对比实验。
表2给出了4种网络的模型参数与进行单帧图像(图像大小为512×512×24 b)穿戴识别所耗的平均时间。从表2可以看出,本文模型参数量得到了极大的降低,单帧所耗的平均时间最少,相较于SDD、ResNet50和Inception-v3单帧的平均时间分别下降了0.06 s、0.02 s和0.17 s。其原因是,虽然本文网络采用两级网络,但第一级姿态感知网络实现人形姿势的感知,并利用人形的特点确定穿戴设备区域;二级特征提取与识别网络在确定的穿戴目标区域进行特征提取与识别,大大减少了锚框进行回归与目标识别的时间。而其他网络在整个图像区域对多个穿戴目标进行搜索识别,运算量较大。因此,本文网络运算量最低,降低了对硬件运算能力的要求。
表2 网络参数对比表
表3给出4种网络在相同的测试数据集上识别的AP与MAP。从表中可以看出,本文网络在穿戴各种穿戴设备的识别的精确率AP以及穿戴设备的识别平均精确率MAP都明显高于其他网络,说明本文采用在确定的穿戴识别区域,引入注意力的轻量级模块CBAM的残差网络,有效地表征了穿戴设备的本质特征,从而提高了穿戴设备的识别的准确性。
表3 不同网络识别穿戴设备的平均精确率
图13给出了图12所示的原始测试图片进行穿戴识别的结果,从中可以看出SDD、ResNet50对小目标与部分遮挡的图像无法进行识别,如图片1中的鞋子,图片2、3的鞋子与手套都未实现识别。Inception-v3网络与SDD、ResNet50相比,其识别能力有所提升,但仍然存在小目标的错误识别,如图片1中一只鞋子、图2、3左手的手套都未正确识别。这说明本文引入CBAM注意力模块建立的分裂-转换-聚合的残差网络,在进行人形姿态感知的基础上,引导网络注意于穿戴目标区域进行高效识别,不仅减少了目标的搜寻时间,而且提高了网络对于弱小目标以及遮挡穿戴设备的识别的准确率。
图12 用于测试的部分图片
图13 不同网络识别的结果(从左到右依次为SDD、Res-Net50、Inception-v3、本文网络)
为了提高基于机器视觉技术的电力作业人员穿戴检测的精度与速度,本文建立一种基于姿态感知网络与特征识别网络的两级网络结构。基础网络采用ResNeXt50网络,该网络将VGG模块与STA引入到残差网络中,在减少网络的参数的同时提高网络的特征提取性能。姿态感知网络利用ResNeXt50不同残差层的特征图具有不同分辨率与语义特性的特点进行特征聚合与姿态解码处理,分别得到人体边缘图与骨架图,进从而确定穿戴的关键区域。为提高特征网络的特征感知能力,将CBAM无缝地集成在ResNeXt50网络相邻卷积层之间,以提高网络对穿戴设备识别的能力。在训练环节,针对样本数据不足的缺点,利用迁移学习的方法对预训练网络的softmax层参数进行修正。对比实验证明,建立的模型在减少识别时间的同时能提高穿戴设备识别的准确率。
本文建立的基于姿态感知与迁移学习的穿戴识别的网络不仅适用于电力作业人员穿戴识别中,在对Softmax层参数进一步迁移学习修正后,可应用于矿业、交通、医疗、建筑等行业的作业人员的穿戴识别中。因此,本文建立的穿戴识别网络具有较大的应用价值与学术参考价值。