融合随机擦除和残差注意力网络的行人重识别

2022-02-28 00:50厍向阳李蕊心
计算机工程与应用 2022年3期
关键词:池化残差行人

厍向阳,李蕊心,叶 鸥

西安科技大学 计算机科学与技术学院,西安 710054

行人重识别主要是为了判断不同摄像机下的行人是否为同一行人,摄像机捕获的行人信息由于视角、光照、分辨率等的不同,造成行人身份难以分辨。目前行人重识别方法[1]主要有传统的方法和基于深度学习的方法。传统行人重识别方法主要由特征提取和度量学习两部分组成。特征提取算法有LOMO算法[2]、Fish算法[3]、GOG算法[4]等,主要是从颜色、纹理、形状、梯度等底层视觉信息入手进行特征提取。度量学习算法有LMNN算法[5]、RankSVM算法[6]、KISSME算法[7]等,主要是学习特征之间的距离来进行行人距离判别。而深度学习是将特征提取与距离度量融合到深度学习网络中进行行人重识别。侧重于特征提取的算法有MGN算法[8]、APR算法[9]、多尺度局部特征选择算法[10],主要是从网络结构设计入手提取到更具鲁棒性的行人特征。侧重于度量学习的损失方法有对比损失[11]、三元组损失[12]、四元组损失[13]等,主要是通过对一对或者是三元组图片进行度量学习,使得同一行人的距离更近,而不同行人的距离更远,进而通过距离分辨出不同的行人。深度学习模型能自主地提取特征,但随着网络层数的加深会出现梯度消失情况,残差网络缓解梯度消失问题,但提取出的特征信息未被合理使用。残差网络融合注意力机制模块可以很好地克服由于特征信息未被合理使用所带来的弊端。例如,Zheng等人提出的PAN算法[14],用神经网络模型自动提取特征,利用一个映射预测网络训练出来一个参数,最后进行行人身份的判别。Sun等人提出的PCB算法[15]主要考虑到由于暴力分割所引起的行人未对齐问题,行人特征进行均分之后通过空间注意力来对行人部分信息进行微调使其对齐。但是上述算法只考虑了空间域的信息特征,而忽略了通道域的特征信息。行人部分图像被遮挡是影响行人重识别准确性的另一个重要因素。金翠等提出的基于随机擦除行人对齐网络的行人重识别方法[16],通过随机擦除行人矩形框中的部分像素值可以解决图像部分遮挡或者残缺所带来的匹配不准确问题。针对上述问题本文提出了融合随机擦除和残差注意力网络的行人重识别算法。该算法在残差网络的基础上,引入注意力机制模块,通过强调有用的特征和抑制作用不大的特征来提升网络的判别能力。引入随机擦除的数据增强方法,以便降低过拟合现象,同时提高网络泛化能力,解决行人重识别中遮挡问题。最后使用triplet loss对融合网络进行监督训练,实现样本在特征空间中达到更好的聚类效果,提升行人重识别的准确率。实验验证了算法的可行性和有效性。

1 相关理论与方法

1.1 卷积神经网络

卷积神经网络结构如图1所示。

图1 卷积神经网络结构Fig.1 Convolutional neural network structure

(1)输入层。输入若干张行人图像。

(2)卷积层。卷积层通过滑动窗口的不断移动来提取特征,设Hi为第i层卷积输出的特征,则

其中,Hi-1为输入图像的特征;Wi为该层的权值大小;b i为偏置;f(⋅)为激活函数;⊗表示卷积运算。

(3)池化层。对卷积层输出的特征图进行尺度上的缩小以达到降维的目的。根据池化操作的不同,可分为最大池化(Max pooling),平均池化(Mean pooling)等。最大池化可以提取到最明显的特征,平均池化就是提取所有区域内像素的平均值。

(4)全连接层。一般位于网络的输出层之前,承担特征映射及分类的功能。

(5)输出层。在图像分类领域输出层通常采用softmax多分类器将全连接层的输出映射到[0,1]区间,从而得到输出的概率:

其中,h(x,y i)表示x属于第i类的原始度量;P(y=i|x)表示样本x属于第i类的概率。

1.2 残差网络

残差网络是由一系列残差块组成的网络结构。残差网络基本模块结构如图2所示。

图2 残差网络基本模块结构Fig.2 Basic module structure of residual network

假设第l+1层残差卷积子模块如下所示:

其中,xl为第l层的输入;wl为第l层的参数。

由上式推导可得第L层的特征x L如下式所示:

设损失为ε,残差网络反向传播如下所示:

残差网络[17]的基本模块结构通过将带有权值的残差项改用恒等映射代替的方法,令残差部分趋近于0,很好地解决了随着深度的增加而引起的梯度逐渐消失现象。

1.3 注意力机制模块

注意力机制模块CBAM[18],是一种结合了空间(spatial)和通道(channel)的注意力机制模块,如图3所示。

图3 注意力机制模块Fig.3 Attention mechanism module

卷积运算所得特征图作为输入特征分别经过空间注意力模块(spatial attention module)与通道注意力模块(channel attention module)之后得到精炼后的特征。其中通道注意力模块如图4所示。

图4 通道注意力模块Fig.4 Channel attention module

输入特征图(input feature)分别通过全局最大池化(MaxPool)和全局平均池化(AvgPool)之后,输入到一个共享多层神经网络(SharedMLP)中,之后对输出的特征进行相加,再经过一个线性激活函数得到权重系数Mc,c为通道序号,最后将权重系数与原特征相乘就可以得到缩放后的新特征。

设F为输入的特征图,MLP为一个两层共享权值的神经网络。则通道注意力模型如下:

其中,F cavg为通道维度的全局平均池化特征;F cmax为通道维度的全局最大池化特征;W0为第一层网络之后的权值;W1为第二层网络之后的权值;σ为激活函数;C为通道数;r为减少率。

空间注意力模块如图5所示。

图5 空间注意力模块Fig.5 Spatial attention module

通道注意力模块修正的特征图(channel refined feature)分别通过全局平均池化(AvgPool)和全局最大池化(MaxPool)之后按照通道拼接两部分特征,然后经过一个7×7的卷积层,再经过一个线性激活函数得到权重系数M s,最后将权重系数与输入特征相乘就可以得到缩放后的新特征。

设F为输入的特征图,空间注意力模型如下:

其中,F savg为空间维度的全局平均池化特征;F smax为空间维度的全局最大池化特征;f7×7为卷积核大小为7×7的卷积层;σ表示激活函数。

2 基于随机擦除和残差注意力网络的行人重识别算法

2.1 基本思想

输入图片采用随机擦除对行人数据集进行预处理,通过残差注意力网络进行特征提取,再通过triplet loss对融合网络进行监督训练,之后输出行人重识别结果。算法流程图如图6所示。

图6 算法流程图Fig.6 Algorithm flow chart

2.2 随机擦除

设原始图像为I,图像大小W和H,图像面积为S,擦除概率P,随机初始化擦除区域为Se,Se/S取值范围设置为(Sl,S h),擦除长宽比为Re,Re取值范围设置为(r1,1/r1),Ie为随机擦除矩形框,随机初始化P1,(Xe,Ye)为图像I中随机选取的坐标点,V(x,y)=random(x,y),random()为随机数生成函数。随机擦除算法描述如下:

输入原始行人图像,随机初始化擦除概率为P1,若随机初始化的概率P1大于擦除概率P,则直接输出原始图像。否则,根据给定的擦除面积以及长宽比的取值范围,随机初始化擦除面积以及长宽比,计算擦除框的长和宽。随机初始化坐标点P(Xe,Ye),若随机擦除的长与坐标点Xe之和小于等于原始图像的长度以及宽与坐标点Ye之和小于等于原始图像的宽度,对随机擦除矩形框随机选择(0,255)之间的像素赋值,最终输出擦除后图像。否则,重复上述步骤。

随机擦除概率P=0.5可以达到最好的识别效果。随机擦除算法流程图如图7所示。

图7 随机擦除算法流程图Fig.7 Random erasing algorithm flow chart

2.3 残差注意力网络

使用改进的残差网络(Resnet50)为主干网络,添加分支网络,重写全连接层。残差注意力网络如图8所示。

图8 残差注意力网络Fig.8 Residual attention network

残差注意力网络描述如下所示:

(1)主干网络。对输入的训练数据集,经过conv、con2_x、conv3_x、conv4_x输出一个卷积特征。将卷积特征输入到conv5_x中,并将conv5_x的下采样步长改为1,将conv5_x输出的卷积特征通过全局平均池化获取全局平均特征。

(2)分支网络。网络将conv卷积层输出的卷积特征输入到conv2_x,分别在conv2_x、conv3_x、conv4_x之后创建CBAM特征注意力分支,对输出的卷积特征经过CBAM注意力机制模块进行微调,将调整过的特征与每个分支的输入特征相加得到新的特征,通过全局最大池化得到每个分支最明显的特征。融合通过最大池化后得到的所有分支特征,并将特征降维得到1 024维特征。

(3)融合全局平均特征与分支特征得到新的特征通过BN层进行批归一化处理后输出到fc全连接层进行行人重识别。

2.4 损失函数

三元组损失(triplet loss)会计算batch中的每一张图片在特征空间的距离,然后选出与样本距离最远(最不像)的正样本和距离最近(最像)的负样本来计算三元组损失。其中损失函数如下所示:

式中,P为类别数目;K为每个类别的图像数目;φ(x kp)为P类中的第K张图像的特征;D(·)为两个特征向量之间的余弦距离;∂为阈值。

三元组损失只考虑了正负样本对之间的相对距离,四元组损失(Quadruplet_loss)引入正负样本之间的绝对距离。其中损失函数如下所示:

式中,a、p为正样本对,m、n为负样本对;∂为阈值,da,p为正样本对之间的欧氏距离;d m,n为负样本对之间的欧式距离。

3 算法验证与分析

3.1 实验环境与数据集

实验的系统环境为Linux Ubuntu16.04,编程环境为Python,采用Pytorch深度学习框架。数据集采用Market1501数据库和DukeMTMC-reID数据库。数据集属性信息如表1所示。

表1 数据集属性信息Table 1 Data set attribute information

3.2 参数设置与实验方案

3.2.1 参数设置

参数设置如表2所示。

表2 参数设置Table 2 Parameter settings

3.2.2 评价指标

(1)Rank-k

在Rank-k评价指标中,将查询图像和候选图像依次提取特征后计算距离,然后根据距离排序,判断候选图像的首位图有没有命中查询图像。Rank-1表示第一张图片的命中率,Rank-5表示1~5张图片至少有一张命中,Rank-k表示1~k张图片里面至少有一张命中的概率。

(2)mAP

设TP为预测正确的正样本数,FP为预测错误的正样本数。则准确率Precision的定义为:

平均准确率AP为某一类别返回列表所有图像准确率之和除以含有该类别目标的图像数。则平均准确率AP如下所示:

式中,n c为类别的图像数;M为返回列表的图像数;Precisioni为返回列表中第i个图像属于该类别的准确率。

AP衡量模型在单个类别上的结果,mAP衡量模型在所有类别上的结果。

由于识别中有不止一个类别,因此需要对所有类别计算平均值mAP:

式中,C为总类别数;APk为第k类的平均准确率。

3.2.3 实验方案

为了验证文中行人重识别算法的有效性,本文在相同实验环境和数据集下进行试验。方案设计如下:

方案1对添加通道注意力机制模块(channel)、添加通道与空间注意力机制模块(CBAM)行人重识别网络进行实验对比,并对结果进行可视化。

方案2对分别添加三元组损失(triplet loss)、四元组损失(quadruplet loss)的残差注意力网络进行行人重识别实验对比。

方案3对主干网络(Resnet50+(stride=1))、添加CBAM注意力机制模块、添加随机擦除行人重识别网络进行实验对比。

方案4本文算法与PAN[14]、SVDNet[19]行人重识别算法进行比较,并采用Rank-k以及mAP指标进行衡量。

3.3 实验结果及分析

方案1实验结果如表3所示。

表3 方案1实验结果Table 3 Scheme 1 experimental results %

从表3可知,在Market-1501数据集上添加CBAM模块网络比添加channel模块网络在Rank-1上提升0.41个百分点,mAP提升了0.58个百分点。在DukeMTMCreID数据集上,添加CBAM模块网络比添加channel模块网络在Rank-1上提升了0.31个百分点,mAP提升了0.51个百分点。通过表3数据分析,验证了添加CBAM模块的优越性。对表3添加不同注意力模块可视化结果如图9所示。

图9 可视化结果图Fig.9 Visualization result graph

从图9可以看出,添加了CBAM注意力机制特征覆盖到了行人更多部位。

方案2实验结果如表4所示。

表4 方案2实验结果Table 4 Scheme 2 experimental results %

从表4可知,在Market-1501数据集上,triplet loss比quadruplet loss在Rank-1提升了0.84个百分点,mAP提升了1.51个百分点。在DukeMTMC-reID数据集上,triplet loss比quadruplet loss在Rank-1提升了1.52个百分点,mAP提升了1.78个百分点。在网络监督训练中使用triplet loss可以取得更好的训练效果。

方案3实验结果如表5所示。

表5 方案3实验结果Table 5 Scheme 3 experimental results %

从表5可知,在Market-1501数据集上,残差注意力网络比主干网络在Rank-1上提升了0.65个百分点,mAP提升了1.25个百分点。添加了随机擦除的网络比残差注意力网络在Rank-1上提升了2.44个百分点,mAP提升了3.06个百分点。在DukeMTMC-reID数据集上,残差注意力网络比主干网络网络在Rank-1上提升了0.98个百分点,mAP提升了1.39个百分点。添加了随机擦除的网络比残差注意力网络在Rank-1上提升了5.73个百分点,mAP提升了5.78个百分点。

添加CBAM注意力机制模块通过对特征信息分配不同的权值,使网络提取到更具判别力的行人特征信息,提升网络的识别能力。添加随机擦除通过遮挡住一部分的行人图像迫使网络在剩余的部分进行训练,最终提升网络的识别结果。

方案4实验结果如表6所示。

表6 与其他方法的比较Table 6 Comparison with other methods %

从表6可知,在Market-1501数据集上,本文算法比PAN算法在Rank-1上提升了7.39个百分点,mAP提升了16.1个百分点。本文算法比SVDNet算法在Rank-1上提升了7.90个百分点,mAP提升了16.1个百分点。在DukeMTMC-reID数据集上,本文算法比PAN算法在Rank-1上提升了12.30个百分点,mAP提升了24.72个百分点。本文算法比SVDNet算法在Rank-1上提升了7.19个百分点,mAP提升了24.72个百分点。

综上所述,通过对不同行人重识别算法和本文所提出的行人重识别算法实验结果的比较,证实了本文算法的优越性。PAN算法使用了空间注意力网络来进行特征映射,但忽略了通道特征。SVDNet算法对特征向量进行分解增加网络层,但忽略了提取的低阶特征不够精细。本文算法通过添加注意力机制模块并融合随机擦除的数据增强方法来提升网络的识别能力。

4 总结

本文提出了融合随机擦除和残差注意力网络的行人重识别算法,相比于大部分行人重识别算法来说,使用随机擦除法解决行人部分图像被遮挡问题,提高了模型的泛化能力。在特征提取时,引入CBAM注意力机制模块使模型提取到更具有判别力的行人特征。用triplet loss函数进行训练,提升了网络的识别能力和识别精度。由于人们实际生活环境的复杂性,在实际场景中应用该算法还是有较大的困难和较高的挑战。

猜你喜欢
池化残差行人
基于高斯函数的池化算法
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
卷积神经网络中的自适应加权池化
毒舌出没,行人避让
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
路不为寻找者而设
基于卷积神经网络和池化算法的表情识别研究
用于手写汉字识别的文本分割方法