[0004] 针对现有行人重识别领域中存在的问题,本发明提出了一种基于局部和通道组合特征的行人重识别方法。该方法具有以下优点:1)通过数据增强的方式,使得网络模型提高抗遮挡问题的能力;2)通过空间变换网络(Spatial Transformer Network,STN)解决行人图像不对齐问题;3)通过对特征图的切割和对特征图通道进行分组,获得更具判别力的局部和通道组合特征;4)通过对不同的特征施加不同的损失函数,进一步提升特征的判别力。本发明提出的方法较为全面地解决了行人重识别中的遮挡、不对齐、行人外观变化较大等主要问题,因此具有更准确的识别能力。
[0005] 一种基于局部和通道组合特征的行人重识别方法,包括以下流程:
[0006] 一、训练流程:对神经网络进行训练,以获得最佳的网络参数。训练数据集中的样本由行人图片x和其对应的行人身份ID(x),ID(x)∈{1,...,C}组成。C代表行人身份总数,一个身份的行人具有多张图片。具体步骤如下:
[0007] 步骤1、对训练集中的样本进行采样生成小批量数据:
[0008] 一个小批量数据中包含P×K张图片,即不同身份的行人P个,每个行人K张图片。如果在训练集中,一个行人的图片数量大于K张,则从中随机采样K张;小于K张,则采样其所有的图片,不够的再重复采样。
[0009] 步骤2、通过数据增强的方式提升模型的抗遮挡能力:
[0010] 2‑1、生成一个可以存放不同分辨率图片的图片池(Pool);
[0011] 2‑2、在每张图片输入到网络之前,会以p1概率复制其中一小块图片存入Pool中。假设图片的分辨率为H×W,一小块图片即图片块的分辨率随机落在区间[0.1H,0.2H]×[0.1W,0.2W]之间,位置也是随机选择。
[0012] 2‑3、然后以p2概率从Pool中随机挑选一图片块覆盖在该图片上,覆盖的位置随机选择。
[0013] 步骤3、加载预训练网络:
[0014] 使用在ImageNet数据集上预训练的ResNet‑50网络,保留该网络全局平均池化(Global Average Pooling,GAP)层之前的结构,并将最后一个卷积层(Convolutional Layer)的步长设置为1,将其记作“卷积基网络”。一张分辨率为256×128的图片输入卷积基网络后输出尺寸为16×8×2048的张量特征图T。
[0015] 步骤4、对通道分组获得每组通道的特征:
[0016] 将步骤3中得到的尺寸为16×8×2048的张量特征图T沿着通道(即最后一个维度)平均分成4组,每组的张量特征图尺寸为16×8×512,分别记作T1,T2,T3,T4。
[0017] 步骤5、对张量特征图进行切割获得局部特征:
[0018] 将步骤4获得的每组张量特征图T1,T2,T3,T4,沿着其水平方向平均切割成4块局部张量特征图,每块局部张量特征图的尺寸为4×8×512,分别记作T11~T14,T21~T24,T31~T34,T41~T44。T经过步骤4和5得到16块局部张量特征图T11~T14,T21~T24,T31~T34,T41~T44。每块局部张量特征图代表着不同位置和不同通道的组合特征。
[0019] 步骤6、对特征图进行压缩:
[0020] 对张量特征图T进行卷积,卷积核尺寸为16×8×512,个数为512个,参数随机初始化,得到尺寸为1×1×512的全局特征g。同样对T11~T14,T21~T24,T31~T34,T41~T44分别进行卷积,每块局部张量特征图对应的卷积核尺寸为4×8×512,个数为512,参数随机初始化,得到16个尺寸为1×1×512的局部通道组合特征pc1~pc16。
[0021] 步骤7、对不同的特征应用不同的损失函数:
[0022] 对于局部通道组合特征pc1~pc16,分别应用批难样本三元组损失(Batch Hard Triplet Loss):
[0023]
[0024] 式(1)中X代表步骤1采样得到的小批量数据,θ代表网络的参数。 代表第i个行人对应K张图片中的第a张图片, 代表第i个行人对应K张图片中的第p张图片,因两张图片属于同一行人,称之为正样本对; 代表第j个行人对应K张图片中的第n张图片,因 和 属于不同行人,称之为负样本对。fθ(x)代表图片x输入网络运算后输出的特征,D(x,y)代表特征x和特征y的欧几里得距离(Euclidean Distance)。m是一个常数,约束了两个特征对距离之间的关系,[x]+=max(0,x)。对于一个行人的一张图片 来说,遍历该行人对应K张图片中的每张图片 找到特定的 使得 和 分别输入网络运算后得到的两个特征间欧几里得距离最大, 即为一个正难样本对;同时,遍历其余行人的每张图片(共(P‑1)×K张图片) 找到特定的 使得 和 分别输入网络运算后得到的两个特征间欧几里得距离最小, 即为一个负难样本对。该损失函数找出每个行人的每张图片对应的正难和负难样本对,并约束正难样本对特征距离和负难样本对特征距离间的关系。
[0025] 对于特征pc1,其Batch Hard Triplet Loss为:
[0026]
[0027] 式(2)中 代表从第i个行人的第a张图片中提取的特征pc1, 代表从第i个行人的第p张图片中提取的特征pc1, 代表从第j个行人的第n张图片中提取的特征pc1。
[0028] 对于全局特征g,分别应用Batch Hard Triplet Loss和Softmax Loss。其Batch Hard Triplet Loss为:
[0029]
[0030] 式(3)中 代表从第i个行人的第a张图片中提取的特征g, 代表从第i个行人的第p张图片中提取的特征g, 代表从第j个行人的第n张图片中提取的特征g。在应用Softmax Loss之前,需要将g输入一个全连接层(Fully Connected Layer,FC layer)。全连接层输出神经元个数为训练集行人身份总数C,全连接层参数随机初始化。全局特征g的Softmax Loss为:
[0031]
[0032] 式(4)中 代表从第i个行人的第j张图片中提取的特征g, 代表该图片对应的行人身份。 代表FClayer第 个输出神经元对应的权重,Wk代表FClayer第k个输出神经元对应的权重。
[0033] 该网络总的损失函数为:
[0034]
[0035] 式(5)中λ1,λ2,λ3为三个损失的权重,满足λ1+λ2+λ3=1。
[0036] 步骤8、将步骤3‑6中构建的网络记为N。使用梯度下降算法,对步骤7中损失函数Loss求导并通过反向传播来优化N中的可学习参数。
[0037] 步骤9、使用空间变换网络对齐特征图:
[0038] 9‑1、将N中卷积基网络的第4块(Res 4 Block)输出特征图F4(三维张量)通过一个残差连接块(Res Block,参数随机初始化)和GAP层得到一个长度为6的向量θ(θ11,θ12,θ13,θ21,θ22,θ23)。其中θ11,θ12,θ21,θ22用来缩放和旋转特征图,θ13,θ23用来平移特征图。
[0039] 9‑2、利用θ11,θ12,θ13,θ21,θ22,θ23对N中卷积基网络的第2块(Res2Block)输出特征图F2(大小为H×W×C的张量)进行仿射变换,获得空白特征图F”2。对F2通道c的特征图(大小s s t t为H×W的张量)来说,其上一像素点的坐标为(x ,y),经过仿射变换后变为(x ,y),二者之间的关系为:
[0040]
[0041] 9‑3、根据公式(6)对空白特征图F”2从F2上采样像素进行填充,得到对齐后的特征图F'2。。在仿射过程中,会出现F”2中坐标对应的F2坐标超出F2原始范围时,对于这些坐标,设置其像素值为0。出现F”2中坐标对应的F2坐标不是像素点时,通过双线性插值来填充像素值到这些坐标上:
[0042]
[0043] 式(7)中 是F”2的c通道上(m,n)位置的像素值, 是F2的c通道上(m,n)位置的像素值。
[0044] 步骤10、处理对齐后特征图:
[0045] 对于对齐后的特征图F'2,将其输入一个新的卷积网络,所述的新的卷积网络是由在ImageNet数据集上预训练的ResNet‑50网络中的Res 3 Block、Res 4 Block、Res 5 align alignBlock堆叠而成,输出和步骤3中特征图T同样尺寸的特征图T 。对于T ,进行和步骤3‑align
6中相同的操作,同样得到1个全局特征g 以及16个局部和通道组合特征
align align
记步骤9‑10中构建的网络为N ,N 是由N中卷积基网络的Res 1 Block、Res 2 Block、Res 3 Block、Res 4 Block、STN、新的卷积网络中Res 3 Block、Res 4 Block、Res 5 align
Block、对全局特征以及局部和通道组合特征进行压缩的卷积层构成。对全局特征g 以及align
局部和通道组合特征 使用步骤7中相同的损失函数,优化N 中可学习的
参数。
[0046] 二、测试流程:
[0047] 测试数据集分为查询集和仓库集,查询集包含已知其身份的行人图片,仓库集包含和查询集中行人身份相同的图片以及和查询集中行人身份不同的图片。数据集的构建是先由视角不重叠的监控摄像头拍摄下行人的图片,再由行人检测器(Deformable Parts Model,DPM)自动地标注出行人矩形框,最后保留矩形框中的行人图片,并添加上行人的身份标签,同一行人在查询集和仓库集中的图片的拍摄视角不同。具体步骤如下:
[0048] 步骤1、将一张待查询的行人图片输入Nalign,将输出的galign和 连接起来得到该行人的描述符 是一个8704维特征向量。
[0049] 步骤2、仓库集中所有图片同样经过步骤1得到其行人描述符。
[0050] 步骤3、分别计算待查询行人描述符和仓库集中每一个行人描述符间的cosine距离并保存下来。
[0051] 步骤4、对所保存的距离按照从小到大的顺序进行排序,并选择其中前k个距离所对应的仓库行人图片,作为该待查询行人的重识别结果。
[0052] 步骤5、通过对比重识别获得的仓库行人图片的真实身份和待查询行人的身份是否一致来衡量模型的识别性能。
[0053] 本发明有益效果如下:
[0054] 本发明通过数据增强的方式,模拟各种遮挡发生的情况,网络通过处理这些人为造成遮挡的图片,提升了对于遮挡问题的鲁棒性。同时使用STN对图片进行缩放,旋转和平移,来对齐行人图片。在图片已经对齐的基础上,简单地将图片进行水平分割,可以很好地定位到行人不同的身体部位,得到不同部位的特征(对特征图进行切割、通道分组和仿射变换这些操作等价于在原始图片上进行相同的操作)。特征图中不同通道会对不同的模式(颜色,衣服种类,性别,年龄等)进行响应,因此局部和通道组合特征可以更好地定位行人不同身体部位上的不同模式。对于整张行人图片的全局特征,通过分类损失使其正确分类行人身份,再通过相似度损失使得相同行人的特征分布地更加紧密,不同行人的特征分布地更加疏远。对于局部和通道组合特征,因为其本身包含的信息量较少,无法通过其正确分类行人身份,所以不适用分类损失。但是通过相似度损失对这些不同身体部位上的不同模式进行比较,可以使模型更好地分辨出这些模式,使得局部和通道组合特征更具判别力。最终将两种特征融合作为行人描述符,进一步提升了行人描述符的判别力。通过提高行人描述符的抗遮挡和判别能力,可以进行较为准确的行人重识别。