1.一种基于全局特征和局部特征拼接的行人重识别方法,其特征在于,包括以下步骤:步骤1:构建行人重识别网络;
将行人图像训练集输入至ResNet50‑IBN‑a网络,提取行人图像训练集中行人图像的全局特征和行人图像训练集中行人图像的局部特征,并融合行人全局特征与局部特征为最终图像特征;其中,ResNet50‑IBN‑a网络将实例归一化和批量归一化操作联合在一起应用于ResNet50网络中;
其中,所述提取行人图像训练集中行人图像的全局特征,具体实现包括以下子步骤:步骤1.1.1:在ResNet50‑IBN‑a网络的每个卷积块的残差学习单元块中,将1×1卷积得到的通道数为64的特征分为两半,其中一半32通道的特征进行实例归一化操作,另外32通道的特征仍然进行批量归一化操作;
步骤1.1.2:将ResNet50‑IBN‑a网络的conv3_x、conv4_x和conv5_x卷积块输出的行人全局特征映射:f1、f2和f提取出来,获得图像多层次的全局特征属性表示,conv3_x和conv4_x卷积块提取的两个中间层全局特征f1、f2的维度分别为512和1024,对这两个不同尺度的中间层特征分别采用平均池化方法,获得2048维的中间层全局特征f1、f2;
步骤1.1.3:将步骤1.2获得的两个2048维的中间层全局特征f1、f2与网络conv5_x卷积块输出平均池化操作后的2048维的全局特征f拼接为最终的行人图像全局特征fg=[f,f1,f2];
其中,所述提取行人图像训练集中行人图像的局部特征,具体实现包括以下子步骤:步骤1.2.1:首先对conv5_x卷积块输出的特征进行1×1卷积处理,将其尺度扩充为[16,8,2048],同时conv4_x输出行人特征映射也进行平均池化处理增加维度,其尺度也变为[16,8,2048],然后将卷积处理后尺度相同的conv4_x的行人特征映射与conv5_x的行人特征映射拼接得到全局特征fc,其尺度大小为[16,8,2048],后续对全局特征fc特征进行水平分块操作获取行人图像的局部特征;
步骤1.2.2:将拼接得到的行人全局特征映射fc按照头、上半身和下半身三部分进行水平分割,按照2:7:7的比例将fc水平分割成3个子区域,3个子区域局部特征的尺寸大小分别为[2,8,2048]、[7,8,2048]和[7,8,2048];对3个子区域分别进行最大池化处理,得到尺寸均为[1,1,2048]的3个子区域;最终将3个子区域的行人局部特征拼接在一起,得到局部特征fp‑2,其尺寸大小为[1,1,2048];
步骤1.2.3:将拼接得到的行人全局特征fc水平分割成6个子区域,首先将fc进行卷积处理得到尺寸大小为[6,8,2048]的行人全局特征,然后其水平分割成6个尺寸大小为[1,8,
2048]的子区域,接着分别进行最大池化处理,得到尺寸均为[1,1,2048]的6个子区域;最终将6个子区域的行人局部特征映射拼接在一起,得到局部特征映射fp‑3,其尺寸大小为[1,1,
2048];
所述融合行人全局特征与局部特征为最终图像特征,是将fg、fp‑2和fp‑3进行最后的拼接,得到最后的行人图像特征ffu=[fg,fp‑2,fp‑3];
步骤2:采用多损失函数策略对行人重识别网络分支有针对性的进行分开约束;其中,针对全局特征采用排序表损失函数和标签平滑损失函数,对局部特征仅采用softmaxloss损失函数;
所述排序表损失函数为:
其中, 为排序表损失函数中类内样本的损失函数, 为排序表损失函数
中正样本的损失函数; 为行人类别c中的第i个行人图像的特征,f为行人图像的特征;
排序表损失通过约束目标样本与类内样本的特征距离和类间样本的特征距离来提高性能,将类内样本与类间样本的特征距离以m间隔开,类内样本的特征距离允许存在α‑m的分布误差,最终类内样本全部集中于以α‑m为半径的球体内,类内样本与类间样本的特征距离为m;
假设目标样本为 为使类内样本集P距离越小,并与负样本集N的类间距离存在着m的间隔,同时类内样本集的类内边界为α;
则排序表损失函数中类内样本的损失函数为:
排序表损失函数中正样本的损失函数为:
其中,N为负样本集;wij为权值,wij=exp(T·(α‑dij)),dij为 和 之间的距离,T是温度因子,当T=0时所有负样本都是一样的,即无难样本挖掘,当T=+∞时为难样本挖掘;
所述标签平滑损失函数为:
其中,qi是网络预测实际标注的行人标签yi′为类别i的概率;pi为网络预测标签yi为类别i的概率,K为行人类别的数量;
当输入行人图像i时,yi为图像中行人的标签,若yi为类别i其值为1,否则为0;对行人标签进行了平滑处理,在每次训练过程中,给标签设置一个错误率ε,则实际标注的行人标签y′i为:则qi为:
其中,M为数据集中的行人个数;
所述softmaxloss损失函数为:
其中,f(xi)表示输出样本x的第i个值,即这个样本属于j类的概率;
假设将样本分成M类,softmax根据样本大小输出类别的选择概率;假如有一个样本集N,Ni表示样本集N中的第i个样本,则这个样本的softmax值为 j为类别数;
softmax和交叉熵损失组合在一起称为softmax loss函数;
步骤3:采用步骤2中所述多损失函数策略对步骤1中所述的行人重识别网络进行训练,通过对行人重识别网络结构的参数进行优化训练,得到训练好的行人重识别模型;
步骤4:在行人查询集中随机选取某个指定对象,将该对象的图像输入至步骤3训练好的行人重识别模型中,计算该指定对象和候选集中的每个对象的欧式距离,接着对计算得到的距离进行升序排序,从而获得行人重识别结果。
2.根据权利要求1中所述的基于全局特征和局部特征拼接的行人重识别方法,其特征在于:步骤2中针对全局特征分支,采用排序表损失函数LRll与标签平滑损失函数Lid联合,全局特征的损失函数为:Lg=LRll+Lid;针对局部特,仅采用softmax loss损失函数Lsl进行约束,局部特征的损失函数为:Lp=Lsl;针对全局特征与局部特征的多损失函数为:L=Lg+Lp。