一种基于深度主动学习和模型压缩的行人重识别方法

文档序号:33151913发布日期:2023-02-03 23:01阅读:23来源:国知局
一种基于深度主动学习和模型压缩的行人重识别方法

1.本发明涉及图像处理技术领域,具体涉及一种基于深度主动学习和模型压缩的行人重识别方法。


背景技术:

2.行人重识别(re-identification,re-id)旨在判断来自不同场景和不同摄像头中的行人是否一致,在安全监控、行人搜索和刑事调查等领域具有重要意义。近年来,基于深度学习的行人re-id方法已经有了很大进步并具有较高的性能;其中,监督类的行人re-id方法在训练模型前,大多需要先收集同一行人在不同摄像头下的一对图像,然后人工地对每一对图像标注id,进而获得数据集;基于此方法获得的数据集使得一些监督类的行人re-id方法取得了不错的效果。
3.然而,在实际应用中,一些较为前沿的监督类方法很难直接应用,其原因有两方面,一方面,通过摄像头收集的行人图像数据量很大,制作完整标注的成本较高。另一方面,即使完成了对大量行人图像的标注任务,监督类方法需要对所有数据集进行训练才能达到一定效果,当使用的数据集较小时,深度学习的优势会减弱,此外,监督类方法无区分地对待所有图像,没有探究图像中的固有信息。为了解决这些困难,研究者开始关注无监督和半监督方法;但是,与基于监督学习的方法相比,基于无监督和半监督学习的行人re-id模型本质上较弱,在实际的应用中会影响行人re-id的性能,在此情况下,主动学习提供了一种有效选择样本集进行标注的方法。与以上方法不同的是,在主动学习设置中,算法可以选择要标注的样本,使训练出的模型性能较高。
4.采用主动学习算法选择最有信息量的训练数据去优化深度模型,从而在不需要大量额外数据标注的前提下,使深度模型经过学习后具备较高的性能;与监督类学习方法不同的是,主动学习选择出最有信息量的样本传输给一位或多位人类标注者,由他们进行样本标注;这个过程最关键的部分是决定哪些样本更加具有信息量,更加值得传输给人类标注者进行标注。
5.过去,不同的选择方法已经在多种计算机视觉任务中发展起来,例如分类、识别和目标检测。最近,也有一些利用主动学习结合深度学习模型进行行人re-id的工作,但是目前所提供的方法仍然存在两方面的问题,一个问题是,这些方法使用模型的置信度分数作为样本选择的依据,然而模型在训练前期的可信度较低,所以采用这些方法选择的样本并不一定是最具有信息量的;另一个问题是,他们采用的深度学习模型的规模较大,不利于在实际应用中的部署和推广。


技术实现要素:

6.为了解决上述中深度学习模型的规模较大,不利于在实际应用中的部署和推广的技术问题,本发明的目的在于提供一种基于深度主动学习和模型压缩的行人重识别方法,所采用的技术方案具体如下:
7.收集多个来自摄像头a和摄像头b在不同时间不同地点拍摄到的同一行人图像,并组成图像数据集;
8.将resnet101结构作为行人re-id网络模型的主干网络,利用主干网络提取行人图像特征;所述网络模型的损失函数为交叉熵损失函数;
9.采用基于主动学习的行人重识别策略首先从一个大小为s的小型预热行人图像集合开始,利用网络模型和查询函数ψ(u,s,γ(
·
)),获取s个行人图像集;并对s个行人图像集人工标注标签;然后从无标签的数据集u中移除s个行人图像集;重复上述过程,直到网络模型达到标准性能或数据用尽时停止;其中,γ(
·
)为查询策略;s大于1;
10.在每次迭代过程中,具有梯度嵌入计算和采样计算两种计算过程;在计算梯度嵌入过程中,根据网络模型对预测出的类别的确定度,决定网络模型最后一层的梯度嵌入的范数大小;
11.在计算梯度嵌入之后,采用k-means++算法聚类出大小为s的一批样本进行标注,并将其送入resnet101网络中进行训练,得到训练好的网络模型;
12.采用基于知识蒸馏的模型压缩方法对所述训练好的网络模型进行压缩,首先给定一个初始学生模型和一个在行人re-id数据集中训练过的教师模型;其中,在训练学生模型时,冻结教师模型,采用双流方式循环地将教师模型的知识传递给学生模型;同时,监督知识传递过程中的传递进度和传递方向;
13.获取行人re-id网络模型的特征输出,根据特征间的局部l2范数,得到特征信息传递差距的特征蒸馏损失;
14.将所述特征蒸馏损失加入学生模型,得到学生模型的总体损失。
15.优选的,将所述网络模型最后一层的梯度记为则:
[0016][0017]
其中,为网络模型最后一层的梯度;l
reid
为交叉熵损失函数;w为网络模型最后一层的权重;f(x;θ)为网络模型的表达式,表达式中θ为网络模型的权重参数,x为行人图像;y为行人图像x的真实标签。
[0018]
优选的,所述传递方向为:
[0019][0020]
其中,l
logit
为知识传递的传递方向,ls为学生模型的逻辑输出,l
t
为教师模型的逻辑输出,d
kl
为教师模型与学生模型之间的kl散度。
[0021]
优选的,所述特征间的局部l2范数为:
[0022][0023]
其中,df(t,s)为特征间的局部l2范数,t为教师模型的特征向量,s为学生模型的特征向量,ti为教师模型特征向量的第i个分量,si是学生模型特征向量的第i个分量;df为代表局部l2范数的符号;w为行人图像的宽度,h为行人图像的高度,c为行人图像的通道数。
[0024]
优选的,所述特征蒸馏损失为:
[0025]
l
overhaul
=df(σ(f
t
),r(fs))
[0026]
其中,l
overhaul
为特征蒸馏损失;f
t
为教师模型输出的特征;fs为学生模型输出的特征;σ(
·
)为非线性函数,r(
·
)为回归器;df为代表局部l2范数的符号。
[0027]
优选的,所述总体损失为:
[0028]
l
kd
=l
logit
+αl
overhaul
+l
reid
[0029]
其中,l
kd
为总体损失,l
logit
为知识传递的传递方向,l
overhaul
为特征蒸馏损失;l
reid
为交叉熵损失函数,α为缩放因子。
[0030]
本发明实施例至少具有如下有益效果:
[0031]
本发明在最小化人力标注成本的同时以最大化行人重识别网络模型的性能为目标,将一种主动学习算法应用到行人重识别中,基于网络模型梯度进行样本选择,使得选出的样本同时具备不确定性和多样性,网络模型只需少量标注数据就可以具有较好的性能表现;此外,与传统方法不同,本发明采用基于知识蒸馏的模型压缩方法对网络模型进行压缩,在减少网络模型规模的同时最大限度地保证了网络模型的性能。因此,本发明可以在安全监控、行人搜索和刑事调查等领域得到大量应用,解决了现实情况中需要耗费大量人力来获取标注数据的问题,同时解决了大规模网络模型会加重行人重识别部署难度的问题,能够满足实际工程系统的设计需求,具有良好的工程应用价值。
附图说明
[0032]
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0033]
图1为本发明的一种基于深度主动学习和模型压缩的行人重识别方法实施例的框架图;
[0034]
图2为主动学习的流程图;
[0035]
图3为基于知识蒸馏的模型压缩方法的流程图。
具体实施方式
[0036]
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的方案,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
[0037]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
[0038]
请参阅图1,其示出了本发明一个实施例提供的一种基于深度主动学习和模型压缩的行人重识别方法的框架图,该方法包括以下步骤:
[0039]
步骤1,收集多个来自摄像头a和摄像头b在不同时间不同地点拍摄到的同一行人图像,并组成图像数据集。
[0040]
具体地,在得到图像数据集之后,将图像数据集随机划分为训练集和测试集。
[0041]
步骤2,将resnet101结构作为行人re-id网络模型的主干网络,利用主干网络提取行人图像特征;所述网络模型的损失函数为交叉熵损失函数。
[0042]
上述中的resnet101结构为在imagenet数据集上预训练过的resnet101结构,所述交叉熵损失函数为:
[0043][0044]
其中,l
reid
为交叉熵损失函数,y(x)为行人图像x的真实身份标签,pi(x)为主干网络网络模型对行人图像x类别的预测概率;n为行人图像x的总数量。
[0045]
需要说明的是,采用交叉熵损失函数能够让网络模型学习到更加鲁棒的图像特征,并且能够有效地学习到行人身份特征。
[0046]
步骤3,采用基于主动学习的行人重识别策略首先从一个大小为s的小型预热行人图像集合开始,利用网络模型和查询函数ψ(u,s,γ(
·
)),获取s个行人图像集;并对s个行人图像集人工标注标签;然后从无标签的数据集u中移除s个行人图像集;重复上述过程,直到网络模型达到标准性能或数据用尽时停止;其中,γ(
·
)为查询策略;s大于1。
[0047]
具体地,行人re-id(re-identification)任务中的图像是由人工标注的,将主动学习思想融入行人re-id任务中可以大大减少人工标注的代价;主动学习最大的挑战在于怎么从无标签的数据集u中选出最具有信息量的样本x给人工标注。因此本实施例通过步骤3的方法获取s个行人图像集x={x1,...,xs},并人工标注这s个行人图像集的标签y={y1,...,ys},这s个行人图像即为选定的一批最有信息量的集合;其中,主动学习的流程图如图2所示。
[0048]
上述中标准性能由实施者根据具体情况进行设定,由于不同的实现场景,网络模型对应的标准性能也有所不同,因此,标准性能由实施者根据具体情况进行设定,不再赘述。
[0049]
步骤4,在每次迭代过程中,具有梯度嵌入计算和采样计算两种计算过程;在计算梯度嵌入过程中,根据网络模型对预测出的类别的确定度,决定网络模型最后一层的梯度嵌入的范数大小;
[0050]
根据网络模型对预测出的类别的确定度,决定网络模型最后一层的梯度嵌入的范数大小具体为:当网络模型对预测出的类别高度确定时,即确定度高时,则网络模型最后一层的梯度嵌入有一个小的范数;反之,网络模型最后一层的梯度嵌入有一个较大的范数。
[0051]
主动学习方法需要在样本的梯度嵌入空间中进行采样,这样可以保证选择出的样本同时具有多样性和不确定性;因此,在每次迭代过程中,主要有两种计算过程:梯度嵌入计算和采样计算;计算梯度嵌入前,先根据网络模型的表达式得出网络模型最后一层的参数权重才可以计算梯度嵌入,对于网络模型来说,网络模型最后一层具有一个非线性函数,即最后一层的非线性函数为:
[0052][0053]
其中,zi为网络模型最后一层第i个神经元的输出,zj为网络模型最后一层第j个神经元的输出;k为网络模型最后一层神经元的个数;e为自然常数。
[0054]
当网络模型的最后一层的权重为时,式中,k为网络模型最后一层神经元的个数;w1为第1个神经元的权重,wk为第k个神经元的权重;t为转置运算;d为权重向量的维度;为k
×
d维的向量空间;v中包含了网络模型前面所有层的权重,则网络模型f(x;θ)为θ=(w,v)参数化的网络模型,网络模型f(x;θ)的表达式为f(x;θ)=σ(w
·
z(x;v)),式中,z(x;v)为将行人图像x变换成特征向量v的非线性映射函数。
[0055]
得出网络模型表达式后,根据网络模型对于行人图像x来说,当pi(x)=f(x;θ)i时,步骤2中的交叉熵损失函数为:
[0056][0057]
其中,l
reid
为交叉熵损失函数,y为行人图像x的真实标签,wj为网络模型输出层第j个神经元的权重;wy为网络模型输出层对应行人图像x真实标签y的权重,k为网络模型输出层神经元的个数;z(x;v)为将行人图像x变换成特征向量v的非线性映射函数,e为自然常数。
[0058]
需要说明的是,网络模型的最后一层即为网络模型的输出层。
[0059]
上述中提到,在计算梯度嵌入过程中,若网络模型对预测出的类别高度确定时,则网络模型最后一层的梯度嵌入有一个小的范数;反之,网络模型最后一层的梯度嵌入有一个较大的范数;即当为当前网络模型预测出的标签时,若网络模型的置信度较高,采用预测的求解网络模型最后一层的梯度时,的范数与的范数相差不大,因此,梯度嵌入包含了网络模型的不确定性和潜在的网络模型更新方向。
[0060]
对于真实标签y,当网络模型最后一层的梯度为时;则:
[0061][0062]
其中,为网络模型最后一层的梯度,l
reid
为交叉熵损失函数;w为网络模型最后一层的权重;f(x;θ)为网络模型的表达式,表达式中θ为网络模型的权重参数,x为行人图像;y为行人图像x的真实标签;z(x;v)为将行人图像x变换成v的非线性映射函数。
[0063]
步骤5,在计算梯度嵌入之后,采用k-means++算法聚类出大小为s的一批样本进行标注,并将其送入resnet101网络中进行训练,得到训练好的网络模型。
[0064]
在采样过程中,置信度较高的样本有较小的损失梯度,在采用k-means++算法时,置信度较高的样本有很小的概率会被选择作为下一个聚类中心点。
[0065]
需要说明的是,k-means++算法为公知技术,不再赘述。
[0066]
步骤6,采用基于知识蒸馏的模型压缩方法对所述训练好的网络模型进行压缩,首先给定一个初始学生模型和一个在行人re-id数据集中训练过的教师模型;其中,在训练学生模型时,冻结教师模型,采用双流方式循环地将教师模型的知识传递给学生模型;同时,监督知识传递过程中的传递进度和传递方向。
[0067]
为了使性能较好的网络模型在实际应用中更轻便地进行部署,本实施采用基于知识蒸馏的模型压缩方法对网络模型进行压缩,最大限度地保留网络模型性能的同时降低了网络模型的规模。其中基于知识蒸馏的模型压缩方法的流程图如图3所示。
[0068]
具体地,先给定一个初始学生模型和一个在行人re-id数据集中训练过的教师模
型;其中,教师模型由更深的网络层组成,而学生模型较为简单且网络层数浅,学生模型即为要在实际场景中部署的行人re-id网络模型,层数比resnet101网络的层数更少;在训练学生模型时,冻结教师模型,接着采用双流方式循环地将教师模型的知识传递给学生模型,通过这种方式,学生模型可以尽可能多地学习到教师模型的分类能力。同时,为了监督知识传递过程中的传递进度和传递方向,本实施例采用杰森-香农(jensen

shannon,js)散度衡量学生模型与教师模型之间的差异;杰森-香农散度为公知技术,不再赘述。
[0069]
所述传递方向为:
[0070][0071]
其中,l
logit
为知识传递的传递方向,ls为学生模型的逻辑输出,l
t
为教师模型的逻辑输出,d
kl
为教师模型与学生模型之间的kl散度。
[0072]
需要说明的是,由于kl(kullback

leibler)散度本身是不对称的,用kl散度来训练神经网络会存在顺序不同造成不一样训练结果的情况;而js散度对于两个模型的输出是对称的,在训练神经网络过程中会避免出现kl散度面临的问题;因此,本实施例采用杰森-香农(jensen

shannon,js)散度衡量学生模型与教师模型之间的差异。
[0073]
步骤7,获取行人re-id网络模型的特征输出,根据特征间的局部l2范数,得到特征信息传递差距的特征蒸馏损失。
[0074]
具体地,为了保障两个模型的稳定性,同时充分利用教师模型中的信息,先获取行人re-id网络模型的特征输出,然后采用局部l2范数df(t,s)减小特征信息转移过程中对学生模型产生的不利影响;同时,选择教师模型中修正线性单元(rectified linear unit,relu)前的输出值作为源特征,选择学生模型中1
×
1卷积后的输出值r(x)作为目标特征,根据特征间的局部l2范数定义衡量特征信息传递差距的特征蒸馏损失,同时优化特征信息的传输。
[0075]
所述特征间的局部l2范数为:
[0076][0077]
其中,df(t,s)为特征间的局部l2范数,t为教师模型的特征向量,s为学生模型的特征向量,ti为教师模型特征向量的第i个分量,si是学生模型特征向量的第i个分量;df为代表局部l2范数的符号;w为行人图像的宽度,h为行人图像的高度,c为行人图像的通道数。
[0078]
所述特征蒸馏损失为:
[0079]
l
overhaul
=df(σ(f
t
),r(fs))
[0080]
其中,l
overhaul
为特征蒸馏损失;f
t
为教师模型输出的特征;fs为学生模型输出的特征;σ(
·
)为非线性函数,r(
·
)为回归器;df为代表局部l2范数的符号。
[0081]
需要说明的是,为了将教师模型输出的特征f
t
与学生模型输出的特征fs相匹配,因此本实施例分别对f
t
采用非线性函数σ(
·
)进行映射变换,对fs采用一个由1
×
1卷积和归一化层组成的回归器r(
·
)进行映射变换。
[0082]
步骤8,将所述特征蒸馏损失加入学生模型,得到学生模型的总体损失。
[0083]
所述总体损失为:
[0084]
l
kd
=l
logit
+αl
overhaul
+l
reid
[0085]
其中,l
kd
为总体损失,l
logit
为知识传递的传递方向,l
overhaul
为特征蒸馏损失;l
reid
为交叉熵损失函数,α为缩放因子。
[0086]
需要说明的是,为了进一步让学生模型在具体的行人re-id任务中发挥作用,将特征蒸馏损失加入学生模型,来对学生模型进行再优化,得到学生模型的总体损失。
[0087]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1