张金鑫,陈毅,尤鸣宇
(同济大学电子与信息工程学院,上海 201800)
随着现代社会的高速发展,社会公共安全得到了人们的重点关注。尤其是在商场、学校、医院、地铁站等人群密集并且容易发生公共安全事件的场所,大量的监控摄像系统得到应用[1]。行人是监控视频中的主体,对于行人图片的分析可以应用于刑侦取证、行人追踪等方面,这对社会安全、城市建设有着重要的意义。不同于较成熟的人脸识别技术,行人再识别技术面对如下挑战:①所识别的图片从监控摄像头下获得,图片中行人的分辨率较低、局部信息模糊;②不同摄像头的拍摄角度不同,行人在不同摄像头下姿态也会发生变化。
深度学习正在受到广泛关注,神经网络也被应用到了多个领域[2]。行人再识别的特征主要有:①低层的视觉特征:常见的颜色特征,如颜色直方图、纹理特征,如尺度不变特征(Scale-invariant feature transform ,SIFT)[3]等。②中层语义特征:如行人的发型、服装类型等。Perina A[4]等人提出通过基于人身体对称性的特征提取方法。③深层特征:主要是指通过深度神经网络提取的特征。Michael Jones[5]等人建立一个深度神经网络结构,将行人再识别问题看作是分类问题,通过计算输入图像和样本特征图的差异,判断两个图像是否是同一个行人。
在行人再识别重排序方面,Zhong等人[6]提出了基于k阶导数编码的方式,对需要检测的候选集(gallery)中的图片进行重排序,使得识别结果有所提升。Wang等人[7]通过结合文本特征和视觉特征,在线下学好语义特征,然后通过比较语义特征的距离来进行重排序操作。
本文主要工作如下:
(1)提出了基于残差神经网络(Residual Network,ResNet)和特征归一化模块(Feature Normalization,FN)的新型行人再识别模型,并对网络结构进行详细介绍。
(2)通过语义分割网络(Refinement Network,RefineNet)自动裁剪行人上衣,计算上衣RGB颜色直方图相似度后,对原有行人排序结果进行微调。
(3)通过实验对模型的识别性能进行评估,实验证明,本文提出的算法可以达到更好的识别效果。
本文模型结构将50层残差神经网络(ResNet50)和特征归一化(FN)模块相结合。其中,ResNet50包括5个卷积模块,每个卷积模块包含不同个数的残差单元。结合特征归一化(FN)模块后,本论文提出的模型结构如图1所示。
随着深度学习的发展,神经网络模型的深度不断增加。实验结果证明,单纯地增加网络深度会带来梯度消失或爆炸和准确率下降等问题。对于梯度消失或爆炸,可以使用归一化来解决,对于准确率退化,可使用残差神经网络(ResNet)来解决[8]。
ResNet是由残差模块(Residual block)构建的,该模块中增加了恒等映射(identity mapping)。假定输入是x,输出的实际映射是H(x),若通过堆叠的多层非线性网络层去拟合映射关系F(x)=H(x)-x,那么实际的映射H(x)即可表达为F(x)+x,而F(x)+x可以通过“捷径连接(shortcut connections)”的向前神经网络实现。浅层的残差模块如图2所示。
图1 本论文提出的模型结构Fig.1 Structure of the model in this paper
图2 浅层残差模块Fig.2 Shallow residual block
浅层的残差模块由两层组成,即
其中σ表示非线性函数ReLU,之后输入与输出进行元素依次(element-wise)叠加,这个简单的加法不会增加额外参数和计算量,却可以大大增加模型训练速度。期望输出:
相比于利用堆叠的多层非线性网络层去拟合恒等映射H(x),该模块旨在使残差F(x)最小化,这样整个ResNet只需要学习输入、输出差别部分,简化了学习难度。
批量归一化(BatchNormalization,BN)是由Google于2015年提出,这是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,更重要的是缓解了深层网络中“梯度弥散”的问题,从而使得训练深层网络模型更加容易和稳定。而特征归一化(FN)是BN的特殊形式[9]。
在模型训练过程中,一旦网络某一层的输入数据的分布发生改变,那么该层就将学习新的数据分布。训练过程中,网络各层输入数据的分布一直在发生变化,并且每一层所需要的学习率不一样,通常需要使用最小的那个学习率才能保证损失函数有效下降,而学习率过小将影响网络的训练速度。BN算法就是将每一层的数据都归一化为均值μ为0、方差为1的分布,数据分布也更加稳定,因此可以使用较大的学习率进行训练,使网络加快收敛,提高训练速度。
FN是BN的特殊变体。在深层神经网络中,经过多层卷积网络操作后,尤其是经过最后一层池化层(Pooling)之后,特征的分布可能会改变。因此,为了减小在损失计算阶段未归一化特征的影响,本文引入特征归一化。
行人再识别模型可以分为验证模型(verification model)和识别模型(identificationmodel)两种。验证模型(即辨别两张图片是否为同一个人)显式考虑了两张图片样本之间的相似度,但没有充分利用所有的标签信息。而对于识别模型来说,仅仅着重考虑了类间差异。
为了保证类内数据在高维空间的相似性,以及区分类间数据彼此间的差异,本论文提出的模型将验证损失和识别损失相结合。在赋予不同的权重值之后,两者在反向传播时一同更新网络权值参数,如图3所示。
验证损失函数(verification lossfunction)的公式为:
其中s是验证类别(同/不同人),是网络输出判断为同一人的概率,如果输入两张图片为同一人,则q1=1,q2=0,否则q1=0,q2=1。
图3 本论文模型的损失函数Fig.3 Loss function of the model
识别损失函数(identification lossfunction)公式为:其中t是身份标签(ID),是网络输出某一ID概率,若图片与目标ID匹配,则=1,否则为0。
本文使用的损失函数是验证损失与识别损失(identification loss)的融合。损失函数为:
本文在实验中设置权重参数β=0.5,α=1,两者在反向传播时一同更新网络权值参数。
图像由许多像素(pixel)组成,语义分割将像素按照图像中表达语义的不同进行分割(segmentation)。图像语义分割实际上就是预测每个像素点的类别,本质上也可以认为是稠密的像素点分类(需要预测每个像素点的类别)。
由于行人的姿态多变、衣服形状不规则,因此传统的图像处理方法并不能将上衣分割出来。为了能准确将不规则上衣裁剪出来,本文考虑使用语义分割模型来完成。
Lin等人[15]提出了精炼神经网络(Refinement Network, RefineNet)来实现高精度的语义分割任务,该模型目前在PASCAL VOC数据集上取得了最好的效果。该论文提出的网络模型可以分为两部分。其中向下的通道以ResNet为基础,逐步降采样的同时提取语义特征,向上的通道使用了新提出的RefineNet作为基础,通过逐步上采样特征恢复细节信息。基本的框架如图4所示。
RefineNet包含了三个组成部分:残差卷积单元(Residual Conv Unit)、多尺度融合(Multi-resolution Fusion)、链式残差池化(Chained Residual Pooling)。具体结构如图5所示。
图4 语义分割模型结构Fig.4 The structure of semantic segmentation model
图5 RefineNet架构Fig.5 The structure of Refinenet
其中,残差卷积单元是从残差网络中提取出来的单元结构。多尺度融合通过对较低分辨率特征进行上采样操作,来融合多分辨率特征。链式残差池化通过步幅为1、大小为5×5的重复池化层来获取背景信息。
颜色特征描述了图像区域所对应的景物的表面性质。最常用的颜色空间是RGB颜色空间,它以R(Red)、G(Green)、B(Blue)三种基本色为基础。颜色直方图是最常用的表达颜色特征的方法,其优点是对图像旋转和平移变化具有较强鲁棒性。同时,结合归一化模块,能够进一步降低其对图像尺度变化的敏感程度。
颜色直方图能简单描述不同色彩在整幅图像中所占的比例,特别适用于描述自动分割的上衣图像、其优点在于不需要考虑物体的空间位置。将行人的上衣裁剪后,本文对每个人上衣的颜色特征进行统计,得到各自的上衣RGB颜色直方图,每张图片对应唯一一幅RGB颜色直方图。
在计算颜色直方图时,本文按照0-255像素值将颜色空间划分成256个小区间,之后统计每个小区间中像素个数,并进行归一化操作,从而形成R、G、B通道上3个1*256的向量。计算两张图片颜色直方图的欧氏距离,获得新的排序,欧氏距离越小,相似度越高,两张图片越相似。
图6 重排序流程Fig.6 The process for re-ranking
算法2:重排序算法
输入:ResNet50模型得到的list_resnet,上衣图像RGB直方图
输出:最终行人再识别结果list_final
过程:
(1)对于query和test中所有图片计算RGB颜色直方图
(2)RGB直方图转化为向量,依次获得相似度k
(3)根据k从大到小重新排序得到新列表list_RGB
(4)对于原先的list_resnet进行微调(若list_RGB中A图片与query相似度较高,则将list_resnet中的A图片排序向前进1位)
(5)返回list_final
Market1501数据集[16]是目前最大的基于图像的行人再识别数据集,包含1501人的32668幅行人样本,由6个不同视角的摄像头拍摄得到。这些行人图像由可变形的部件模型( Deformable Part Model, DPM)检测器检测得到。数据集分成训练集和测试集2部分。训练集包含751人,共12936幅图像。测试集包含750人,共19732幅图像。
CUHK03数据集[17]是行人再识别中使用最为普遍的数据集,是目前较大型的基于图像的公开行人再识别的数据集。该数据集被分为训练集和测试集两部分,训练集中包含767人,测试集中包含700人。该数据集提供 detected 和labeled 两套数据集,detected 数据集由 DPM 检测器检测得到,会含有一些误检和错检的目标,较贴近真实生活,而 labeled 数据集较理想。
在行人再识别研究中,本文对所有的数据集采用两种评价指标,即匹配准确率rank-k(k一般为1、5、10)和中间平均准确率mAP。行人再识别任务类似于图像检索问题,行人再识别任务就是要将查询集(query)中每一张图片,在候选集(gallery)中找到最相似的图片。rank-k就表示查询集的行人图片在候选集中相似度最高的前k张图片中包含该查询行人的概率。
中间平均准确率mAP则反应了算法在整个测试集上的平均性能。计算公式为
其中,R表示召回率,P(R)表示在召回率为R时的准确率。mAP同时考虑了准确率和召回率,因而是一个更加综合的评判标准。
本论文全局特征提取模型在深度学习框架Caffe上搭建,通过语义分割模型裁剪上衣的工作,在深度学习框架Matconvnet上完成。
3.3.1 模型搭建
假设输入是224×224的图片,ResNet50网络每层的输出特征大小和卷积核大小见表1。
在ResNet50中,采用的残差卷积单元是三层残差模块,将两层残差模块中的两个1×1卷积层替换为1×1、3×3、1×1卷积层,首端和末端的1×1卷积主要用来降低和恢复维度。
在全连接层(fc)前添加FN模块后,本文的网络结构如表2所示:
表1 ResNet50网络结构Table1 Structure of ResNet50
表2 本论文网络结构Table 2 Structure of our model
3.3.2 结果分析
在使用本文模型对输入图片进行特征提取之后,需要对query图片特征和test图片特征进行距离的度量,计算相似度之后获得初始相似度排名。本文在实验中将使用欧氏距离Euclidean Distance(Eu)、KISSME[18]、XQDA(Cross-view Quadratic Discriminant Analysis)[19]三种距离度量算法。在 Market1501、CUHK03(detected)、CUHK03(labeled)数据集上的结果如表3、表4、表5所示。
表3 Market1501上结果(%)Table 3 Results on Market1501
表4 CUHK03 detected结果(%)Table 4 Results on CUHK03 detected
表5 CUHK03 labeled上结果(%)Table 5 Results on CUHK03 labeled
从表格中可以看到,本文提出的加入特征归一化模块的模型,取得了比ResNet50初始模型更高的识别准确率。
而在通过语义分割得到上衣图片后,本文以上衣RGB颜色直方图为依据,对全局信息获得的初始序列进行调整。图7展示了重排序之后的实际效果。
图7 重排序效果展示Fig.7 The display of re-ranking results
对于A行人,在测试集中原先检出的正确图片序号为1、3、4,在使用重排序算法微调后,正确检出图片序号为1、2、3、4。尤其对于错检的2号图片,其上衣颜色特征与A行人有着细微差别,重排序算法准确识别出来并将其匹配位置向后移动一位。对于B行人,在测试集中原先检出的正确图片序号为2、3、5,在使用重排序算法微调后,正确检出图片序号为1、3、4。很显然重排序算法有助于更准确地在gallery数据集中找到与query匹配的图片。
之后本文在Market1501和CUHK03数据集上的实验,再次验证重排序算法的有效性,实验结果如表6、表7、表8所示。
表6 Market1501上重排序后结果(%)Table 6 Results on Market1501 after re-ranking
表7 CUHK03 detected上重排序结果(%)Table 7 Results on CUHK03(detected) after re-ranking
表8 CUHK03 labeled上重排序结果(%)Table 8 Results on CUHK03(labeled) after re-ranking
从上述表格中可以看到,本文模型+KISSME度量方法取得了最优准确率。将本文实验结果与其他行人再识别论文实验结果进行对比,可以进一步验证本论文算法的优越性能。对比结果如表9、表10所示。
本文提出一种基于残差神经网络(ResNet50)和特征归一化(FN)的行人再识别模型,能够提取显著性的行人特征。同时,分离出的上衣部分可有效降低背景和姿态变化对行人的影响,利用其颜色直方图进行重排序,可进一步提高识别精度。本文对后续行人再识别工作具有一定的启发作用,即可以从全局和局部两方面进行信息提取,提高识别精度。未来的研究工作将结合更多行人局部信息,将重排序算法嵌入神经网络模型中,实现端到端的训练和测试,进一步提高识别准确率。
表9 Market1501上其他论文结果 (%)Table 9 Other results on Market1501
表10 CUHK03上其他论文结果 (%)Table 10 Other results on CUHK03