基于ResNet50和通道注意力机制的行人多属性协同识别方法
2022-08-25李嘉锋
卓 力,袁 帅,李嘉锋,2
(1.北京工业大学 信息学部,北京 100124;2.北京工业大学 计算智能与智能系统北京市重点实验室,北京 100124)
在现实生活中,人们往往借助于离散且精确的属性,例如服装样式、性别、胖瘦、发型等,来识别一个行人。行人属性可以对行人的外观进行精细表征,因此行人多属性识别在行人再识别、智能化视频监控等诸多领域,均受到了研究者们的广泛关注。但是,由于应用场景的不确定性,受行人携带物的遮挡、图像分辨率低等复杂因素的影响,行人多属性识别面临着巨大的技术挑战。
传统的基于人工设计特征的行人多属性识别普遍采用的是“特征提取+分类器”的框架,如何高效准确地对行人的外观特征进行表达并设计合适的分类器是其中的关键所在。Layne等[1]针对行人的服装样式、性别、发型等手工标注了21种属性,分别训练每一种属性的分类器,并且在训练过程中,选取来源于不同角度摄像头下的行人图像,可有效对抗视角变化。Zhu等[2]引入了APiS数据库,人工标注了13个属性注释,主要针对的是混合场景下的行人属性识别,采用 AdaBoost分类器和KNN(K-Nearest Neighbors,K最近邻)分类器分别对二值属性和多值属性进行识别。Gray等[3]采用局部特征集合的方法,将8个颜色通道和亮度通道的特征进行组合得到特征表示,用于属性识别。这些研究工作常常依赖设计者的先验知识或者经验为每个属性单独设计特征,由于特征的表达能力有限,区分能力不足,因此识别性能有待于进一步提升。同时,由于需要为每个属性的识别设计专门的分类器,因此算法的实现复杂度高且参数冗余。由于无法充分利用属性之间的内在关联关系,导致属性的识别准确率低,难以满足实际应用的需求。
近年来,深度学习在图像分类、目标检测和语义分割等诸多领域取得了巨大成功。相较于传统机器学习方法,深度学习具有更优秀的模型泛化能力。学者们将深度学习应用于行人属性识别中,相继提出了多种行人属性识别方法。Sudowe等[4]提出一种联合训练的卷积神经网络(Convolutional Neural Network,CNN)模型,仅利用属性之间的依赖关系,不使用行人姿态、上下文等信息进行属性识别。Li等[5]提出了单属性识别模型和多属性联合识别的深度学习模型(DeepMAR)。Li等认为属性间具有相关性,一个属性有助于其他属性的识别,因此将多个属性联合训练,使用简单的CNN模型同时识别多个属性。Wang等[6]提出了一种基于递归神经网络的联合递归学习(Joint Recurrent Learning,JRL)模型,通过挖掘属性上下文信息及属性间相互关系来提高识别准确率。Wang等设计了一个新的循环神经网络(Recurrent Neural Network,RNN)编码-解码网络结构,将行人之间的上下文信息及行人个体内部属性关联在一起建模,学习一个统一的网络架构,用于行人属性预测。Sarfraz等[7]提出视点敏感行人属性(View-Sensitive Pedestrian Attribute,VeSPA)模型,该模型采用深度神经网络进行联合视图预测和视图特定属性预测。实验结果表明,视图敏感的属性推理能够更好地对属性进行预测。Bekele等[8]提出了多属性残差网络模型(Multi-Attribute Residual Network,MAResNet),该模型将多属性优化与改进的残差卷积神经网络相结合,在代价函数中优化类不平衡。除此之外,模型训练过程中不涉及任何数据扩充和预训练。Fang等[9]提出一种联合分层多任务学习算法来学习属性之间的关系。首先根据属性的空间位置和语义关系,将属性分为局部属性和全局属性;之后分别利用不同的CNN模型,以多任务的方式对两组属性进行分类。Tan等[10]提出了一个联合学习框架,以类似多任务的方式同时学习3种注意机制,以提取互补和相关的特征用于属性识别。He等[11]提出了一种基于属性的多任务卷积神经网络(Multi-Task Convolutional Neural Network,MTCNN)分组方法,该方法充分利用了属性间的空间相关性,并保证了每个属性的独立性。同时,提出了一种新的在线批量加权损失模型,以缩小属性间的性能差异,提高模型的平均识别精度。Tang等[12]提出了一种属性定位模块(Attribute Localization Module,ALM),用于自适应地发现最具区分性的区域,并在多个尺度上学习每个属性的区域特征。此外,还引入了一种特征金字塔结构,利用高级语义指导来增强低层的属性定位。Jia等[13]分析了常用的行人属性识别数据集PETA和RAP的缺陷,即在训练集和测试集中存在大量相同的行人身份,会导致现有数据集上最先进方法的性能被高估,并对数据集进行了修正,得到了PETAzs和RAPzs两个数据集。王林等[14]提出了一种多级注意力跳跃连接网络(Multi-Level Attention Skip Connection Net,MLASC-Net),该网络使用敏感注意力模块筛选行人图像关键信息,多级跳跃连接结构保留浅层的细粒度信息,用多尺度金字塔模块更全面地集成不同尺度和抽象层次的属性信息,并利用自适应加权损失层加快模型的收敛速度,最终实现对行人属性的预测。
与传统基于人工设计特征的行人属性识别方法相比,这类方法利用深度学习强大的特征表达能力和上下文信息提取能力,直接从海量数据中自动学习层次式的特征表示,通过构建一个多层神经网络,使机器能够学习隐含在数据内部的关系,可以对目标实现从细节纹理到局部块再到高层语义的层次化递进表达,获得更具鲁棒性、表达能力更强的特征,因此获得了远超过传统方法的性能。
与现有的“特征提取+分类器”的思路不同,本文基于“特征提取+回归”的思路,提出了一种行人多属性协同识别方法。该方法通过对多个行人属性标签进行组合编码,充分挖掘行人属性特征之间的内在关联关系,可以在一个统一的框架下同时对行人的多种属性进行准确识别。除此之外,本文使用改进的基于Sigmoid交叉熵损失函数和实时在线数据增强策略来平衡各种属性数据量不均衡的差异,进而提升识别效果。在PETA[15]和RAP[16]两个公共数据集上的识别平均准确度(Mean Accuracy,mA)分别达到了84.08%和88.12%,并在RAP数据集上获得了目前最优的识别性能。
1 提出的行人多属性协同识别方法
1.1 行人多属性识别整体框架
本文方法的整体网络结构如图1所示。在模型训练阶段,网络输入的是归一化后的带有属性标签组合向量的行人图像,通过训练,建立图像的深度特征与属性标签组合向量之间的映射关系模型。在测试阶段,模型输入的是行人图像,输出的则是二进制标签组合向量,分别对应行人的不同属性标签预测结果。整个网络框架包括深度特征提取、行人属性二进制标签组合编码和回归共3个核心部分,这3个部分纳入到一个统一的网络框架下加以实现。其中深度特征提取部分采用的是基于通道注意力机制的ResNet50作为主干网络。回归部分则由3个全连接层(FC)组成,用于将提取到的深度特征映射为二进制标签组合向量。
图1 提出的行人多属性识别网络架构
全连接层网络(Fully Connected Network,FCN)映射模型在提出的多属性识别方法中发挥着重要的作用。首先,多个全连接层组合能够更好地拟合复杂的关联关系,建立行人图像深度特征与标签组合向量之间的映射模型;其次,通过全连接层可以进一步增强图像特征的区分能力,提升识别性能。
1.2 基于通道注意力机制的ResNet50网络
1.2.1 ResNet50网络
ResNet网络是He等[17]于2015年提出的,如图2所示。主要贡献是解决了随着CNN深度加深而分类精度下降的问题,通过提出的残差学习思想加速了CNN训练过程,有效避免了梯度消失和梯度爆炸问题。
图2 ResNet50网络结构[17]
He等利用残差学习的思想,提出了一个恒等映射的Shortcut Connections结构,如图3所示。其中x为输入,F(x)为残差映射,H(x)为理想映射,H(x)=F(x)+x。通过将拟合残差映射F(x)转变为拟合理想映射H(x),可以把输出变为输入和残差映射的叠加,使得网络对输入x和输出H(x)之间的变动更加敏感。
图3 Shortcut Connections结构示意图
为了构建更深的网络结构,He等还提出了Bottleneck结构,如图4所示。为了适应更深的网络结构,Bottleneck结构中增加了1×1卷积,目的是降低输入的维度。ResNet-50/101/152网络中均使用了Bottleneck结构。
图4 Bottleneck结构示意图
近年来ResNet网络已经被广泛应用到各种计算机视觉任务中,均取得了突出的性能。本文选择ResNet50作为主干网络,并引入通道注意力机制,提取图像的深度特征。
1.2.2 通道注意力机制
注意力机制借鉴人类的选择性认知机制,从众多信息中选择出对当前任务目标更关键的信息加以增强,同时抑制无关信息。
为了提高ResNet50网络的特征提取与表达能力,在ResNet50网络中添加通道注意力机制(Squeeze-and-Excitation Network,SENet)[18],用于提升深度特征的表达能力。
通道注意力机制的核心思想是对分类任务有用的特征通道进行加强,对无用的特征通道进行抑制。通道注意力机制的网络结构如图5所示。其实现过程如下:首先对输入特征进行压缩操作Fsq(·)即全局平均池化,获取全局感受野;然后进行激励操作Fex(·,w),即两个全连接操作,预测各通道的重要性,使用Sigmoid激活函数输出各通道的权重;最后通过乘法操作Fscale(.)对每个特征通道进行加权,完成在通道维度上对原始特征的重标定。
图5 通道注意力机制的网络结构
通道注意力机制嵌入到残差模块中的示意图如图6所示。
图6 通道注意力机制嵌入到残差模块中的示意图[18]
1.3 构建行人图像属性标签组合向量
对行人的原有属性标签进行整理,编码组合,得到一个行人二进制属性标签组合向量。通过这种方式,每幅图像的多个属性标签将由一个向量来代替。
假设需要转换的图像有N张,每一张图像对应的属性有L个,包含性别、年龄范围、携带物、服装类型等。将每个行人图像样本用xi(i=1,2,…,N)表示,对应的属性向量为yi。每个标签向量yi中包含的属性值为yi,l,yi,l∈[0,1](l=1,2,…,L)。根据原有的属性标注,如果行人图像样本xi包含这个属性,则对应的yi,l=1,否则yi,l=0。
在PETA数据集中,共包含61个二值属性和4个多分类属性标注。将4个多分类属性标签按照二值化的形式进行处理,每一个多分类属性可进一步拆分为11个二分类属性标签。将上述属性拆分整理后,每一张行人图像样本将得到一个61+11×4=105维的二进制属性标签组合向量,且每个属性标签在标签向量中的位置是固定的,如表1所示。
表1 PETA数据集的105个属性标签顺序
RAP数据集的标签组合向量采用同样的处理方式,每张图像样本将对应着一个92维的标签组合向量。
下面以常用的行人属性公共数据集PETA中的一张行人图像(如图7所示)作为示例,来介绍行人图像二进制属性标签组合向量的构建过程。
图7 PETA数据集中行人图像的属性标签组合示例
编码时,按照表1所示的属性标签顺序,逐一与图7的属性标注内容进行对比,该属性是哪一种标签,则将标签组合向量中相应位置处的数值置为1,该属性的其余标签置为0。对图7的标签进行编码后,得到一个105维的二进制属性标签组合向量。
1.4 损失函数设计
行人的属性往往是相互关联的,例如长发、长裙、高跟鞋等属性往往与女性相关。为了充分利用属性之间的关联关系,将行人属性标签进行组合编码,在一个统一的框架下同时识别行人的多个属性。为此,在属性识别过程中需要对各属性的损失进行综合考虑。采用Sigmoid交叉熵损失函数对网络模型进行训练[5],计算公式为
(1)
式中,yn,l为样本xn是否拥有第l个属性的真实标签;pn,l为带有第l个属性的第n个样本输出概率,计算公式为
pn,l=1/(1+exp(-xn,l))
(2)
式中,xn,l为带有第l个属性的第n个样本。然而在实际训练时,数据集中的样本分布并不十分均衡,例如V领、太阳镜、下身衣服为紫色等属性的正样本数量远低于性别男女、长发等属性。为解决这一问题,引入了样本属性加权因子wl来综合考虑每个属性的损失值。wl表示第l个属性损失值的权重,加入样本属性加权因子后的损失函数值可表示为
(3)
式中,wl的计算公式为
wl=exp(-pl/σ2)
(4)
式中,pl为训练集中第l个属性正样本所占的比例;σ为一个调谐参数,实验中该值设为1。
2 实验结果及分析
为了验证提出方法的有效性,在PETA和RAP两个最具代表性的行人属性识别公共数据集上进行了实验。下面介绍实验结果,并对结果进行分析。
2.1 实验数据集
PETA和RAP是两个最常用的行人属性识别数据集。其中PETA数据集[15]由10个用于行人再识别的小型数据集组成,共包含19000幅图像,涉及8705个行人,图像样本多从行人再识别数据集中的正样本中获得,图像分辨率从17像素×39像素到169像素×365像素不等,行人图像是基于人的身份标注的,即对同一人的图像样本进行相同属性集的标注,共包含61个二进制属性标注和4个多类属性,多分类属性为11个不同的颜色类别属性,因此识别起来更具挑战性。PETA数据集的部分示例图像如图8(a)所示。
RAP数据集[16]是从一个购物中心实际监控场景的数据中收集整理出来的,该数据集包含的行人图像数量大、属性注释丰富。为了进一步研究属性识别,对视点、遮挡样式和身体部位这3个环境和语境因素进行了明确的标注。该数据集总共包含41585幅行人图像,图像大小在36像素×92像素到344像素×554像素之间,行人图像是基于人的实例(Person Instance,PI)标注,共包含72个细粒度属性(69个二进制属性和3个多类属性)。RAP数据集的部分示例图像如图8(b)所示。
图8 行人属性数据集中行人图像样本
本文将行人图像大小归一化为224像素×224像素,归一化后的每幅图像均对应着一个行人属性标签组合向量,用于训练网络模型。为了降低训练样本数量不足对网络训练性能的影响,采取在线数据增强的策略,例如平移、随机旋转、缩放等,增加各类属性样本的数量,以提升网络训练的性能。
2.2 参数设置与评价指标
基于Keras框架实现了所设计的网络结构,硬件平台配置为:Intel®CoreTMi5-4590 CPU @ 3.30 GHz、NVIDIA GeForce GTX 1080Ti 11 GB GPUs。在网络训练中,本文采用Adam算法优化网络,初始学习率(init_lr)为0.0001,PETA数据集和RAP数据集的batch size大小设置为32,开始训练75个epochs,网络训练使用了数据增强方法,并采用“预训练+细调”策略。为了与其他方法进行公平对比,在训练过程中,参照文献中的数据集划分方式,以相同的比例对数据集进行了划分[15-16]。具体地说,将PETA数据集中的图像按照5∶1∶4的比例进行了划分,训练集中包括了9500张图像,验证集中包括了1900张图像,测试集中包含了7600张图像[15];将RAP数据集的图片按照8∶2的比例进行划分,训练集和测试集分别包含33268和8317张图片[16]。训练集用于训练网络模型,测试集则用于测试网络模型属性识别的性能。
采用mA[15]作为行人属性识别性能的评判指标。对于每一个行人属性,分别计算正样本和负样本的分类识别的精确度,然后取平均值作为该属性的最终识别精度。之后将选定的所有行人属性识别精度的平均值作为本文算法的最终识别率,也就是平均准确度。mA的计算公式为
(5)
式中,N为样本数目;L为进行训练的属性个数;Pi为测试样本中第i个属性的正样本的数目;TPi为测试样本中第i个属性的正标签被预测正确的数目[19];Ni为测试样本中第i个属性的负样本的数目;TNi为测试样本中第i个属性的负标签被预测正确的数目。
2.3 通道注意力机制对识别性能的影响
采用SENet来提升深度特征的表达能力。为了验证通道注意力机制对识别性能的影响,对比了对ResNet50网络添加与不添加SENet模块得到的属性识别性能。
在PETA和RAP数据集上,ResNet50网络与注意力模块相结合得到的105个属性识别性能(mA)对比实验结果如表2所示。需要说明的是,为了对比通道注意力机制对识别性能的影响,表2中实验数据未使用图1中所示的全连接层,而是由网络直接输出二进制标签组合向量。
表2 PETA和RAP数据集上采用通道注意力机制得到的识别性能对比结果 单位:%
从表2中可以看出,与未采用通道注意力机制相比,ResNet50网络与该注意力机制结合后,能够显著提升识别精度,PETA和RAP数据集的识别精度分别提升了1.67%和2.73%。这说明SENet可以对重要的特征通道进行增强,并对无关的特征通道进行抑制,从而提升深度特征的表达能力。
2.4 全连接组合网络对识别性能的影响
如图1所示,采用一个包含3个全连接层的网络对深度特征与二进制标签组合向量进行回归,建立深度特征与组合向量之间的映射模型,实现多属性的协同识别。但是,全连接层过多会导致网络参数冗余、过拟合、模型运算时间增加、训练效率低等一系列问题。因此,如何确定网络结构至关重要为此,本文进行了全连接层组合实验。在PETA和RAP数据集上,分别采用不同的全连接网络结构得到的多属性识别性能(mA)对比实验结果,如表3所示。表3中数据均采用基于SENet的ResNet50网络提取深度特征,区别在于采用了不同的全连接网络结构。表3中第2列数据表示各个全连接层的神经元数目,PETA和RAP数据集最后一层全连接层的神经元数目分别为105和92。
表3 不同全连接网络结构对识别性能的影响 单位:%
由表3可以看出,对于两个数据集来说,采用3层结构,各层神经元数目分别为1024、128和105/92时,可以获得最优的识别性能。原因在于PETA和RAP数据集的规模有限,全连接层数目多,模型参数随之增加,网络训练过程中出现了过拟合现象,导致识别准确率下降。因此,通过大量的对比实验确定了网络层数和各层神经元数目。实验结果表明,这种配置可以在网络规模和性能之间达到很好的折中。
2.5 消融实验
设计了消融实验,以验证通道注意力机制、全连接层网络映射模型等组件的作用。ResNet50网络作为基准方法(Baseline),在此基础上依次增加通道注意力机制(ResNet50-SENet)和通道注意力机制+全连接层网络映射模型(ResNet50-SENet-FCN)。各种组合在PETA和RAP数据集上识别性能(mA)实验结果如表4所示。
表4 不同网络结构对识别性能的影响 单位:%
由表4可知,通道注意力机制能够增强行人图像特征的表达能力,在PETA和RAP数据集上的识别性能分别提升了1.67%和2.75%。而全连接层网络映射模型则可以进一步提升识别性能,在PETA和RAP数据集上的识别性能又分别提升了0.21%和0.38%。而将通道注意力机制和全连接层网络映射模型添加到ResNet50网络中能够获得最优的实验性能,在PETA和RAP数据集上分别达到了90.2%和88.13%。
2.6 本文方法与其他方法的比较
为了验证提出的行人多属性识别方法的性能,在PETA和RAP两个最常用的公共行人属性识别数据集上,将其与8种基于深度学习的行人属性识别方法进行了对比实验,对比方法包括ACN[4]、DeepMAR[5]、JRL[6]、VeSPA[7]、MAResNet[8]、JLPLS-PAA[10]等。
为了进行公平的比较,统计了上述实验结果中相同的属性识别结果。每种方法均选择了PETA数据集的35个属性标签作为研究对象,这些属性包括视频监控中最重要的15种属性[20]和20种识别难度较大的属性[21],覆盖行人的所有身体部位和属性的不同流行度,这35个属性标签详见文献[15]。RAP数据集选出了51个属性标签作为研究对象,这51个属性标签详见文献[16]。
表5为在PETA和RAP数据集上分别采用不同的方法得到的属性识别性能(mA)对比结果。
表5 PETA和RAP数据集采用不同方法得到的属性识别精度对比结果 单位:%
从表5可以看出,与目前的几种基于深度学习的行人属性识别方法相比,在RAP数据集上,本文方法的识别准确率最高,可达88.12%,比目前识别准确率最高的ALM方法提高了6.25%。但是在PETA数据集上,本文方法的识别精度比MLASC-Net、JRL和ALM等方法分别低了1.2%、1.59%和2.22%,主要原因如下。
① 本文方法采用的SENet+ResNet50网络架构比较简单。而MLASC-Net方法使用ResNet50提取特征并与敏感注意力模块、多级跳跃连接结构、多尺度金字塔模块和自设计损失函数共同作用进行属性识别;JRL方法采用的是基于RNN的编码-解码网络结构;ALM方法设计了一种属性定位模块,用于自适应发现最具区分性的区域,并在多个尺度上学习每个属性的区域特征。此外,使用一种特征金字塔结构,利用高级语义指导来增强低层的属性定位,网络结构均比较复杂。
② PETA数据集是由多个小数据集合并得到的,场景复杂多变,每个小数据集标注的属性标签不统一,姿态改变、遮挡等因素也会导致属性标签信息不完整。而本文方法需要对属性标签进行编码组合,标签信息不完整、不统一在一定程度上会导致属性识别的准确率下降。
RAP数据集的行人图像分辨率相对较高,行人属性标签完整、统一、准确、场景单一,因此在该数据集上本文方法的性能远超过其他方法。
综上,本文方法比较适合于行人属性标签比较完整、统一、描述准确的应用场合,不仅网络结构简单,而且属性识别准确率高。
2.7 属性识别效果
利用训练好的模型,随机对PETA数据库中的一张行人图像进行了属性预测,输出了预测置信度最高的10个属性标签,如图9所示。可以看出,本文方法能对行人多个属性同时进行准确识别。
图9 在PETA上对10个属性进行识别
对数据集中的所有属性都进行了识别,发现“上衣是否V领”“皮鞋”“背包”等4个属性的识别准确率较低。而 “年龄在31~45岁”“年龄在46~60岁”“上身着休闲装”“下身着休闲装”“无附件”等5个属性的识别准确率较高。具体如表6所示。
表6 PETA数据集中识别准确较高和较低的属性
经过统计发现,识别准确率较高的5个属性标注率较高。相应地,识别准确率较低的属性标注率较低。这是因为标注率高,则意味着样本数量比较多,因此训练出的网络模型具有良好的识别能力和泛化性能。而标注率低,则由于数据量不足,导致模型的泛化能力较差,识别准确性较低。
3 结束语
本文针对行人属性识别准确率低的问题,提出了一种基于ResNet50和通道注意力机制的行人多属性协同识别方法。该方法将行人的原有属性标签进行整理,编码组合,得到一个行人二进制属性标签组合向量。每幅图像的多个属性标签由一个组合向量来代替,通过这种方式,将数据集中的所有属性标签利用起来,有助于网络充分挖掘行人属性之间的内在联系,提升属性识别性能;通过基于ResNet50和通道注意力机制的网络对输入的图像提取特征,再使用一个包含3个全连接层的网络结构对图像深度特征与二进制属性标签组合向量进行回归,这样不仅可以建立深度特征与属性标签组合向量之间的映射模型,实现多属性的协同识别,而且该FCN结构能够增强特征的表达能力,提升网络模型的属性识别准确率。实验结果表明,本文方法在RAP数据集上可以获得最优的识别性能。
本文方法适合于行人属性标签比较统一、描述准确的应用场合,而在行人属性标签描述不准确的场合实验性能有待提高。在未来的工作中,还将通过优化网络结构、调整超参数、设计新的注意力机制和损失函数等方式来改进算法,提高行人属性的识别精度,并进一步将行人属性特征应用于行人再识别中。