APP下载

基于标签平滑正则化的行人重识别研究

2019-05-23倪旭

电脑知识与技术 2019年8期

倪旭

摘要:文章采用一种标签平滑正则化方法,分别把该方法应用到交叉熵损失函数和中心损失函数(center loss)中,实验结果表明,在Market1501,CUHK03,Dukemtmc-reID行人重识别数据集上,利用该算法可以有效防止模型过拟合,提高模型的泛化能力,提高行人重识别率。

关键词: 行人重识别; 标签平滑正则化; CMC; center loss; ResNet50

中图分类号:TP183 文献标识码:A

文章编号:1009-3044(2019)08-0150-03

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

Pedestrian Re-Identification Based on Label Smoothing Regularization

NI Xu

(Jiangsu Key Laboratory of Big Data Analysis Technology,Nanjing University of Information Science & Technology,Nanjing 210044, China)

Abstract:In this paper, a label smoothing regularization method is applied to the cross entropy loss function and the center loss function. The experimental results show that the Market1501, CUHK03, Dukemtmc-reID pedestrian re-identification data sets are utilized. The algorithm can effectively prevent the model from over-fitting, improve the generalization ability of the model, and improve the recognition rate of pedestrians.

Key words: pedestrian re-identification;label smooth regularization;CMC;center loss; ResNet50

1引 言

行人重识别(Pedestrian Re-ID ,Pedestrian Re-Identification)[1]是利用计算机技术判断在多个摄像机下是否存在特定行人的技术。主要解决跨摄像头多场景中行人的识别与检索,给定一个行人,在数据库中找出该行人的所有图片。可以对无法获取清晰人脸图像的行人进行连续跟踪,但是由于拍摄的角度,光照,和行人的位置变化,会造成同一个行人在不同摄像头下拍摄得到的图片出现很大的差异,影响行人识别精度。

目前,基于特征表示方法和基于度量学习的方法是行人重识别研究的主要方法。特征表示方法研究如何提取鲁棒性强的行人特征,度量学习方法研究距离函数,其目的是使得同一个行人的距离小于不同行人的距离。

1.1基于特征表示的方法

由于卷积神经网络(Convolution Neural Network,CNN)[2]的快速发展,研究者常把行人重识别问题看作分类问题或验证问题,即利用行人的ID信息作为分类标签进行分类,或让网络自动学习输入的一对行人图片是否为同一行人。

1.2基于度量学习的方法

用深度学习处理行人重识别问题时,度量学习是一种有效的方法。度量学习主要利用神经网络获取行人特征,计算不同图片的距离,判断其相似度。其表现为同一行人的不同图片相似度大于不同行人的不同图片。常用的度量学习损失方法有对比损失,(Contrastive loss)[3]、三元组损失(Triplet loss)[4]。

首先,我們输入的两张图片分别为[I1]和[I2],通过卷积神经网络提取特征并归一化,所得的特征向量为[f1]和[f2]。计算这两特征向量的欧氏距离得到:

[dI1,I2=||fI1-fI2||2] (1)

孪生网络(Siamese network)常用在对比损失中。输入为两张随机的图片[Ia]和[Ib],每一对训练图片都有一个标签[y],其中[y=0]表示的是他们属于不同的行人,[y=1]表示两张图片属于同一个行人。从而对比损失函数可以表示为:

[Lc=yd2Ia,Ib+(1-y)(a-dIa,Ib)2+] (2)

其中([Z)+]表示的是[max(z,0)],取[z]和0的最大值。阈值参数为[a],用于控制距离的大小。当输入为一对正样本对,[d(Ia,Ib)]会慢慢变小,在向量空间中,同一行人图片会渐渐聚类在一起。反之,当输入为负样本对时,[d(Ia,Ib)]会逐渐变大直到超过[a]。因此,通过最小化[Lc],可以实现正样本对之间的距离逐渐变小,负样本对之间的距离逐渐变大。

目前,度量学习方法广泛使用三元组损失(Triplet loss)函数,后续也有大量工作对三元组损失函数进行改进。三元组损失需要三幅输入样本图片。和对比损失不同,一个输入的三元组(Triplet)的三幅样本图片分别命名为固定图片(Anchor)[a],正样本图片(Positive)[p]和负样本图片(Negative)[n],这样[a]和[p]就形成了一个同类样本对,[a]和[n]就形成一个异类样本对。所以三元组损失表示为:

[Lt=(da,p-da,n+a)+] (3)

三元组可以拉近正样本对之间的距离,推开负样本对之间的距离,最后使得同一行人图片在特征空间里形成聚类。

2算法

2.1 标签平滑正则化

当我们输入的图片经过神经网络进行特征提取,然后进行归一化后,输入[x],模型计算得到类别为[k]的概率为:

[p(k|x)=exp(x)i=1kexp(zi)] (4)

假設真实分布为[q(k)],交叉熵损失(cross entropy loss)函数为:

[l=-k=1Klog(p(k))q(k)] (5)

最后最小化交叉熵等价最大化似然函数,可得:

[?l?zk=p(k)-q(k)] (6)

假设[q(k)=δk,y],当[k=y]时,[δk,y=1],当[k≠y]时,[δk,y=0]。实际中,优化时,对于逻辑输出,使得达到[zy>>zk],[k≠y]。

这样很容易导致模型对于预测结果太自信,从而容易出现过拟合(over-fitting),导致损失函数逻辑输出的导数变大,降低模型的泛化能力。为了避免模型过于自信,引入一个独立样本分布的变量[q(k|x)=(1-ε)δk,y+εu(k)]实验中使用均匀分部代替[u(k)],即[u(k)=1K]。

模型即输出为:

[y=(1-ε)*y+ε/K] (7)

在本文实验中,选择K为标签类别数目。

2.2中心损失函数[5]

交叉熵损失函数可以表示为:

[LS=-i=1mlog(eWTyixi+byij=1neWTjxi+bj)] (8)

其中[wx+b]是全连接层的输出,因此[log]的输入就是表示[xi]属于类别[yi]的概率。

中心损失(center loss)函数可以表示为:

[LC=12i=1m||xi-cyi||22] (9)

其中[Cyi]表示第[yi]个类别的特征中心,[xi]表示全连接层之前的特征。[m]表示mini-batch的大小,这个公式就是希望一个批量中每个样本的特征离特征的中心距离的平方和要越小越好,也就是类内距离要越小越好。

关于LC的梯度和cyi的更新公式如下:

[?LC?xi=xi-cyi] (10)

[Δcj=i=1mδ(yi=j)·(cj-xi)1+i=1mδ(yi=j)] (11)

其中[δ(condition)],当condition满足条件的时候为1,当不满足条件的时候为0。

上面关于[Cyi]的更新中,当[yi]和[cj]类别不一样的时候,[cj]不需要更新,当两者相同时才需要更新。

最后把交叉熵损失和中心损失合在一起,用[λ]控制比重,表达式为:

[L=LS+λLC] (12)

3实验

3.1实验公开数据集

Market1501[6]是最常用的行人重识别数据库。所有的32668张图片来自6个不同的摄像头。分别在不同的时间、不同的光照、不同的试场条件下拍摄的。总共有1501个类别,其中751类为训练集,总共12936张图片,剩余的750类为测试集,总共19732张图片。

DukeMTMC-reID[7]数据集是由视频序列等间隔采样得到的。由8个摄像头采集的一共36411张图片,训练集图片为16522张,测试集包含图片19889张,包含查询图片2228张,搜索图片17661张。数据库包含1812类,其中1404类出现在超过三个以上的摄像头,这些出现在多个摄像头的图片分为702类训练集和702类测试集,剩下的408类只出现在一个摄像头下。

CUHK03[8]数据集取自5个不同视角对,共1467个行人的14000多张图片。我们采用新的测试协议,类似于Marknet1501,它将数据集分为包含767个行人的训练集和包含700个行人的测试集。在测试阶段,我们随机选择一张图片作为query,剩下的作为gallery,这样的话,对于每个行人,有多个ground truth在gallery中。

3.2性能指标

在衡量行人重识别性能指标时,累积匹配率,也叫CMC(Cumulative Matching Characteristic)曲线,通常用来度量其识别结果。其具体步骤是先对查询集中指定对象和候选集中的每个对象进行距离计算,接着对所计算得到的距离进行升序排名,排名后,对比查找对象是否是同一个行人,排名位置越靠前,则说明算法的识别效果越好。通过CMC曲线,可以清晰地看出随着样本数目的增加,识别性能的变化情况。CMC曲线表示在匹配前k个结果中,模型找出正确图片的概率值。横坐标表示排名得分,纵坐标表示识别率。例如,Rank-k的识别率为P,表示正确的目标在排名结果的前k名的概率为P。通常在评价模型的行人重识别率时,我们考虑的是Rank-1~Rank-10,尤其关注第一个点的行人重识别率,即Rank-1,为第一次匹配成功的概率。可以代表行人重识别算法的真正识别性能。因此,CMC曲线的位置越高,识别效果越好。

现在给一个含有M个行人样本的查询集Q,[T=(t1,t2,...,ti,...,tn)]是根据距离的大小得到的[n]个候选集的排名列表,[ri]是排名列表T中[ti]所对应的序号,则CMC曲线可以根据下列公式得出:

[CMC(n)=1Mi=1M1,ri≤n0,ri≥n(n=1,2,...,N)] (13)

平均准确率mAP(mean average precision)反应检索的人在数据库中所有正确的图片排在排序列表前面的程度,能更加全面的衡量ReID算法的性能。

3.3实验内容

为了验证本算法的有效性,本文所有的实验均在电脑配置为64位ubuntu 16.04系统,Inter Core i7-3770CPU4GHz*8 ,内存8GB,显卡GTX TITAN X。

基础学习速率设为0.0003,迭代周期设为120,训练批量设为20,测试批量设为20,使用cpython进行测试,比普通的python测试快近22倍,使用残差网络ResNet50为底层框架,并将最后一个conv blockde stride从2改为1 [10],这样网络的参数并不会变化,但是可以得到比原来大一倍的特征图,这样可以使得模型的准确率提高约0.8%。其次增加一个部分bottleneck,在全连接分类层的基础上加一个结构(3.2),添加了一个[bn](batchnorm)批规范化,其目的是对网络做归一化,利于网络训练,添加的Dropout(0.5)是为了提高模型的泛化能力,以P=0.5的概率随机选择神经元。在行人重识别中,数据集都特别小,这样在训练时,由于样本数少,而用很深的网络,训练参数多,这样很容易出现过拟合问题,加入Dropout可以有效防止过拟合。

[Linear(2048,512)->bn->LeakeyReLU(0.1)->Dropout(0.5)]

(14)

我们以交叉熵损失函数为基础,加入了标签平滑正则化方法。与此同时,在中心损失函数基础上,结合交叉熵损失函数和标签平滑规则方法。分别在Market1501,DukeMTMC-reID,CUHK03数据集上,使用Resnet50为base model来进行实验,实验结果分别如表1、表2、表3所示。

在这里我们只讨论各个数据集使用不同损失的mAP和Rank-1情况。

在Market1501数据集上,在交叉熵损失中加入标签平滑正则化方法,mAP可以提高4.1%,Rank-1可以提高3.3%。在中心损失的基础上加入标签平滑正则化方法,mAP可以提高5.7%,Rank-1可以提高3.9%;

在DukeMTMC-reID数据集上,在交叉熵损失中加入标签平滑正则化方法,mAP可以提高5.3%,Rank-1可以提高4.7%;在中心损失的基础上加入标签平滑正则化方法,mAP可以提高4.1%,Rank-1可以提高4.9%;

在CUHK03数据集上,在交叉熵损失中加入标签平滑正则化方法,mAP可以提高6.2%,Rank-1可以提高6.9%;在中心损失的基础上加入标签平滑正则化方法,mAP可以提高2.2%,Rank-1可以提高4.5%。

通过以上三个数据集,以及对比两组融合了标签平滑规则的损失函数,可以明显地看出该方法可以提高行人重识别率。

4 结论

本文主要采用了一种标签平滑正则化方法,对交叉熵损失函数进行优化,同时优化网络,增大特征图,加入归一化,加入Dropout等能有效解决模型的过拟合问题,提高模型的泛化能力,提高鲁棒性。今后的研究方向和重点是在现有的模型的基础上改进特征提取网络,进行模型的多特征融合,进一步提高行人重识别率。

参考文献:

[1]彭志勇,常发亮,刘洪彬,等.基于HSV模型和特征点匹配的行人重识别算法[J].光电子·激光, 2015(8):1575-1582.

[2]周飞燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017,40(6):1229-1251.

[3]Hadsell R , Chopra S , Lecun Y . Dimensionality Reduction by Learning an Invariant Mapping[C]// Computer Vision and Pattern Recognition, 2006 IEEE Computer Society Conference on. IEEE, 2006.

[4]Cheng D , Gong Y , Zhou S , et al. Person Re-identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function[C]// Computer Vision & Pattern Recognition. IEEE, 2016.

[5]Wen Y , Zhang K , Li Z , et al. A Discriminative Feature Learning Approach for Deep Face Recognition[M]// Computer Vision – ECCV 2016. Springer International Publishing, 2016.

[6]Zhang L , Xiang T , Gong S . Learning a Discriminative Null Space for Person Re-identification[J]. 2016.

[7]Gou M , Karanam S , Liu W , et al. DukeMTMC4ReID: A Large-Scale Multi-camera Person Re-identification Dataset[C]// Computer Vision & Pattern Recognition Workshops. IEEE, 2017.

[8]Liao S , Hu Y , Zhu N X , et al. Person re-identification by Local Maximal Occurrence representation and metric learning[C]// 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE Computer Society, 2015.

[9]Paisitkriangkrai S , Shen C , Hengel A V D . Learning to rank in person re-identification with metric ensembles[J]. 2015.

[10]Sun Y , Zheng L , Yang Y , et al. Beyond Part Models: Person Retrieval with Refined Part Pooling (and a Strong Convolutional Baseline)[C]// European Conference on Computer Vision. Springer, Cham, 2018.

【通聯编辑:唐一东】