一种基于松弛化散度函数知识蒸馏的视频异常行为识别方法
文献发布时间:2023-06-19 19:28:50
技术领域
本发明涉及深度学习与知识蒸馏领域,具体涉及一种基于松弛化散度函数知识蒸馏的视频异常行为识别方法。
背景技术
现有的知识蒸馏方法侧重于基线设置,其中教师模型和训练策略不是那么强大,为了改善这些问题,《B.Heo,J.Kim,S.Yun,H.Park,N.Kwak,and J.Y.Choi.Acomprehensive overhaul of feature distillation.In Proceedings of the IEEE/CVFInternational Conference on ComputerVision,[J]pages 1921–1930,2019.》提出通过多个中间层来提取信息,但需要额外的卷积来进行特征对齐,额外增加了模型复杂度,《TianY,Krishnan D,IsolaP.Contrastive Representation Distillation:arXiv,10.48550/arXiv.1910.10699[P].2019.》引入了一种传输成对关系的对比损失,但它需要图像的特征保存一个内存库,并产生额外计算成本,《Mirzadeh SI,Farajtabar M,Li A,etal.Improved Knowledge Distillation via Teacher Assistant[C]//2020:5191-5198.》建议通过增加一个中等模型规模的助教来减少教师和学生之间的差异,但无法使用较强模型作为教师模型。
本发明提出了一种基于松弛化散度函数知识蒸馏的视频异常行为识别方法,可以从一个更强的教师中更好地提取经验。根据经验可知,学生网络和一个较强的教师网络之间的预测差异可能会相当严重。因此,KL散度预测的精确匹配会干扰训练,使现有的方法表现不佳。在专利中方法中,我们简单地保留教师网络和学生网络的预测的关系,并提出了一种基于相关性的松弛化散度函数来明确地捕捉教师网络和学生网络的预测的关系。本发明在Tobacco factory和HMDB51数据集上的实验结果表明,本发明方法显著提高了模型的识别准确率,由于其他主流方法,证明了本发明方法的有效性。。
发明内容
本发明主要是克服现有技术中的不足之处,本发明的目的是提供一种基于深度学习理论,并将精简化神经网络模型在微小计算能力的边缘设备高效部署的方法。
为达到以上技术目的,本发明采用以下技术方案:
1、一种基于松弛化散度函数知识蒸馏的视频异常行为识别方法,其特征在于包括以下步骤:
步骤1、制作训练样本X,具体步骤如下:
(1)从数据集中随机选取出n个帧数为f的视频样本X′,f∈(1,64];X′为c×f个a×b矩阵,a∈(224,1080);b∈(224,1080);c为视频图像的通道数量,c∈{1,3};
(2)对n个帧数为f的视频样本X′进行尺寸变换得到变换尺寸视频样本X″,X″为c×f个w×h;w、h为固定值224;然后对X″进行最大最小值归一化处理得到归一化视频样本X″′,X″′为c×f个w×h矩阵;计算公式如下:
式中x″′
(3)最后将n个归一化视频样本X″′组成一个集合X作为训练样本,X={X″′
步骤2、对训练样本X进行数据增强,得到增强样本
(1)当第i轮训练轮次的随机概率q
式中p
式中,f为归一化视频样本X″′的帧数,Z
(2)对将n个增强视频样本
式中,q
(1)构建视频异常行为识别模型MSFP-NET,MSFP-NET由MSAI、MSFP和三维卷积构成,计算公式如下所示:
MSFP-NET(X)=MSAI(MSFP(MSAI(Conv
式中,Conv
式中GAP(·)代表全局池化,Conv
MSAI代表多尺度注意力特征块,Inception由3×3卷积和1×1卷积构成,计算公式如下:
MSAI(X)=3DInception(X+Conv
式中3DInception代表三维多尺度特征提取块,3DInception由3×3×3卷积Conv
3DInception=Concat(Conv
式中,Concat(X
MSA代表多尺度注意力模块,由多尺度的平均池化和卷积组合而成,计算公式如下:
式中,DW_Conv
(2)将增强样本
式中,预测矩阵y
(3)采用误差反向传播,并以交叉熵损失函数来衡量真实值
通过增强样本
P
式中P
(5)计算当前训练轮次e
式中,TP为模型预测正样本正确的数量,TN为模型预测负样本正确的数量,FP为模型预测正样本错误的数量,FN为模型预测负样本错误的数量;
步骤4、构建学生网络AFG-NET,将训练样本X送入学生网络AFG-NET中进行训练,同时使用知识蒸馏技术,得到所有训练轮次中AFG-NET模型识别准确率Acc最优的网络参数P
(1)构建视频异常行为识别模型AFG-NET,AFG-NET由AFG、miniMSFP、Inception和二维卷积构成,计算公式如下所示:
AFG-NET(X)=Inception(miniMSFP(Inception(Conv
式中,Conv
AFG(X)=GAP(X)×sp(X)
miniMSFP为小型多尺度融合块,miniMSFP由多尺度的平均池化和1×1卷积组合而成,计算公式如下:
式中GAP(·)代表全局池化,Conv
Inception代表多尺度特征提取块,Inception由3×3卷积Conv
Inception(X)=Concat(Conv
式中,Concat(X
(2)将训练样本X,输入到AFG-NET网络模型中;
(3)AFG-NET网络模型中的AFG层对训练样本X进行全局特征计算,得到全局池化特征X
X
式中GAP(·)代表对训练样本X的f、w、h维度进行全局池化,X代表训练样本,X
(4)AFG-NET网络模型中的输入层AFG层对训练样本X进行多信道特征稀疏化,得到稀疏化特征X
式中X代表训练样本,sp(·)为多信道特征稀疏化函数,x
式中λ为信道抑制比例,λ∈{10n},n∈{-3,-4,-5};γ
Conv
(5)使用全局池化特征X
特殊符号⊙表示前一个矩阵的元素与后一个集合中的矩阵对应相乘;
(6)将AFG的输出
(7)将步骤2中MSFP-NET准确率Acc最高的模型参数P
(8)设置知识蒸馏温度参数τ,τ∈(0,1)将教师网络MSFP-NET的预测矩阵X
(9)将学生网络AFG-NET的输出特征X
Y=Softmax(X
(10)求取库贝克-莱布勒散度损失L
式中L
求取λ
式中τ代表知识蒸馏温度参数,n为训练样本X中视频样本X′的数量,n∈N;d
将内部稀疏因子λ
L
(11)使用交叉熵损失函数作为代价函数,同时使用L1范数来对AFG的参数γ进行稀疏化,同样的求取硬标签
式中
式中,f表示多信道特征稀疏化函数sp(·)的信道数量,γ
L=χL
χ=1-δ
式中χ为软损失平衡参数,χ∈(0,1);δ为硬损失平衡参数,δ∈(0,1);数据集的每次迭代,使用梯度下降来调整学生网络神经元之间的权重以降低代价函数,进而优化网络;
(12)通过训练样本X的每次训练,使用随机梯度下降函数SGD使得蒸馏损失L在AFG-NET网络模型中反向传播,使得AFG-NET第i轮训练的模型参数P
P
式中P
(13)比较每个训练轮次的模型识别准确率Acc
步骤5、使用步骤4中保存的部署参数P
本发明创新点表现在:
(1)与Network Slimming方法相比,上述方法的对神经网络的剪枝只能模型训练好之后进行,本发明的降低网络复杂度的方法为特征降维,可以在网络实时训练中进行。
(2)与其他知识蒸馏方法相比,本发明提出了内部稀疏因子,并使用内部稀疏因子对库贝克-莱布勒散度损失L
有益效果:
与现有技术相比,本发明具有以下有益效果:
1.利用本发明提出的强训练策略配合强教师模型的组合,使得知识蒸馏对学生网络的指导更强,学生网络的识别准确率提升更好。
2.利用本发明提出松弛化散度函数,使得教师网络和学生网络直接的指导更加温和,由于本发明中教师网络和学生网络复杂度相差了近20倍,教师网络的指导对于学生网络来说可能过于复杂,我们利用松弛化散度函数来进行匹配,改善了这一问题。
附图说明
图1为本发明使用的SHIFTMASK数据增强算法的流程图,主要流程为建立训练样本,然后计算触发概率,算法生成掩膜,图像与掩膜合成得到增强样本,最后进行模型训练;
图2为本发明提出的MSFP-NET网络模型的结构图,MSFP-NET网络由MSAI块、3Dinception块和MSFP构成;
图3为本发明提出的MSFP-NET中MSAI块的结构图,MSAI块由3Dinception、三维卷积、MSA和批归一化构成;
图4为本发明提出的MSAI块中MSA的结构图,MSA由不同大小的池化层,卷积层组合而成;
图5为本发明提出的MSFP块的结构图,MSFP块由不同大小的池化层,卷积层组合而成;
图6为本发明使用的AFG-NET的结构图,ATG-NET网络由AFG、inception块、和miniMSFP构成,其计算复杂度只有1.66GFLOPs,相较其他三维网络有数十倍的降低;
图7为本发明使用的AFG-NET中AFG层的结构图,ATG层由多个信道并联而成,在最终输出阶段对缩放稀疏较小的信道进行抑制;
图8为本发明知识蒸馏方法的结构图,本发明知识蒸馏方法由MSFP-NET和AFG-NET构成,其训练损失由软损失和硬损失构成;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例:
一种基于松弛化散度函数知识蒸馏的视频异常行为识别方法,其实施步骤如下:
步骤1、制作训练样本X,具体步骤如下:
(1)从数据集中随机选取出n个帧数为f的视频样本X′,f∈(1,64];X′为c×f个a×b矩阵,a∈(224,1080);b∈(224,1080);c为视频图像的通道数量,c∈{1,3};
(2)对n个帧数为f的视频样本X′进行尺寸变换得到变换尺寸视频样本X″,X″为c×f个w×h;w、h为固定值224;然后对X″进行最大最小值归一化处理得到归一化视频样本X″′,X″′为c×f个w×h矩阵;计算公式如下:
式中x′
(3)最后将n个归一化视频样本X″′组成一个集合X作为训练样本,X={X″′
步骤2、对训练样本X进行数据增强,得到增强样本
(1)当第i轮训练轮次的随机概率q
式中p
式中,f为归一化视频样本X″′的帧数,Z
(2)对将n个增强视频样本
/>
式中,q
代表增强视频样本,增强视频样本/>
步骤3、构建教师网络MSFP-NET,将增强样本
(1)构建视频异常行为识别模型MSFP-NET,MSFP-NET由MSAI、MSFP和三维卷积构成,计算公式如下所示:
MSFP-NET(X)=MSAI(MSFP(MSAI(Conv
式中,Conv
式中GAP(·)代表全局池化,Conv
MSAI代表多尺度注意力特征块,Inception由3×3卷积和1×1卷积构成,计算公式如下:
MSAI(X)=3DInception(X+Conv
式中3DInception代表三维多尺度特征提取块,3DInception由3×3×3卷积Conv
3DInception=Concat(Conv
式中,Concat(X
MSA代表多尺度注意力模块,由多尺度的平均池化和卷积组合而成,计算公式如下:
式中,DW_Conv
(2)将增强样本
式中,预测矩阵y
(3)采用误差反向传播,并以交叉熵损失函数来衡量真实值
通过增强样本
P
式中P
(5)计算当前训练轮次e
式中,TP为模型预测正样本正确的数量,TN为模型预测负样本正确的数量,FP为模型预测正样本错误的数量,FN为模型预测负样本错误的数量;
步骤4、构建学生网络AFG-NET,将训练样本X送入学生网络AFG-NET中进行训练,同时使用知识蒸馏技术,得到所有训练轮次中AFG-NET模型识别准确率Acc最优的网络参数P
(1)构建视频异常行为识别模型AFG-NET,AFG-NET由AFG、miniMSFP、Inception和二维卷积构成,计算公式如下所示:
AFG-NET(X)=Inception(miniMSFP(Inception(Conv
式中,Conv
AFG(X)=GAP(X)×sp(X)
miniMSFP为小型多尺度融合块,miniMSFP由多尺度的平均池化和1×1卷积组合而成,计算公式如下:
式中GAP(·)代表全局池化,Conv
Inception代表多尺度特征提取块,Inception由3×3卷积Conv
Inception(X)=Concat(Conv
式中,Concat(X
(2)将训练样本X,输入到AFG-NET网络模型中;
(3)AFG-NET网络模型中的AFG层对训练样本X进行全局特征计算,得到全局池化特征X
X
式中GAP(·)代表对训练样本X的f、w、h维度进行全局池化,X代表训练样本,X
(4)AFG-NET网络模型中的输入层AFG层对训练样本X进行多信道特征稀疏化,得到稀疏化特征X
式中X代表训练样本,sp(·)为多信道特征稀疏化函数,x
式中λ为信道抑制比例,λ∈{10n},n∈{-3,-4,-5};γi为多信道特征稀疏化函数sp(·)中第i个信道BN层的权重缩放比例,γ
Conv
(5)使用全局池化特征X
特殊符号⊙表示前一个矩阵的元素与后一个集合中的矩阵对应相乘;
(6)将AFG的输出
(7)将步骤2中MSFP-NET准确率Acc最高的模型参数P
(8)设置知识蒸馏温度参数τ,τ∈(0,1)将教师网络MSFP-NET的预测矩阵X
(9)将学生网络AFG-NET的输出特征X
Y=Softmax(X
(10)求取库贝克-莱布勒散度损失L
式中L
求取λ
式中τ代表知识蒸馏温度参数,n为训练样本X中视频样本X′的数量,n∈N;d
将内部稀疏因子λ
L
(11)使用交叉熵损失函数作为代价函数,同时使用L1范数来对AFG的参数γ进行稀疏化,同样的求取硬标签
式中
/>
式中,f表示多信道特征稀疏化函数sp(·)的信道数量,γ
L=χL
χ=1-δ
式中χ为软损失平衡参数,χ∈(0,1);δ为硬损失平衡参数,δ∈(0,1);数据集的每次迭代,使用梯度下降来调整学生网络神经元之间的权重以降低代价函数,进而优化网络;
(12)通过训练样本X的每次训练,使用随机梯度下降函数SGD使得蒸馏损失L在AFG-NET网络模型中反向传播,使得AFG-NET第i轮训练的模型参数P
P
式中P
(13)比较每个训练轮次的模型识别准确率Acc
步骤5、使用步骤4中保存的部署参数P