1.本发明涉及图像处理技术领域,更具体地,涉及一种基于高低分辨率双模态蒸馏的视频人体行为识别方法。
背景技术:2.真实低分辨视频具有动作细节不清晰,单帧信息量少,相邻帧冗余信息多和噪声含量大的特点,传统的行为识别网络很难准确识别低分辨视频中的人体行为信息。
3.在现有技术中,主流视频行为识别模型通常针对的是分辨率较高的模型,在低分辨场景下这些模型的识别效果较差。目前用于研究的低分辨率数据集大多是高分辨率数据集人为下采样得到,并不能代表真实场景下的低分辨率视频。tinyvirat数据集填补了真实场景下低分辨率数据集的空白。与以往的人工降采样数据集不同,它是真实场景下的低分辨数据,并没有相对应的高分辨视频数据。这个数据集的识别难点是:需要被识别的行为主体被拍摄的距离很远,因此分辨率低,并且有镜头噪声的干扰(如tirupattur p,rana a j,sangam t,et al.tinyaction challenge:recognizing real-world low-resolution activities in videos[j].arxiv preprint arxiv:2107.11494,2021)。
[0004]
综上,传统的行为识别模型是根据较高分辨率的视频数据而设计,没有针对低分辨率这一特点进行相应的设计。而对于tinyvirat这种真实场景下的低分辨率数据来说,传统行为识别模型的识别准确率很低。
技术实现要素:[0005]
本发明的目的是克服上述现有技术的缺陷,提供一种基于高低分辨率双模态蒸馏的视频人体行为识别方法。该方法包括以下步骤:
[0006]
构建具有双分支的深度学习模型框架,其中第一分支依次包含超分辨率模块和超分模态模型,第二分支包含低分模态模型,所述超分辨率模块用于降低输入视频的噪声,增加动作细节,获得超分辨率视频数据,所述超分模态模型用于对所述超分辨率视频数据识别类别,所述低分模态模型用于对所述输入视频识别类别;
[0007]
以设定的损失函数为监督信号训练所述深度学习模型框架,在训练过程中,将所述超分模态模型的输出向量作为额外的超分辨率知识,指导所述低分模态模型的训练;
[0008]
利用经训练的低分模态模型对目标视频进行人体行为识别。
[0009]
与现有技术相比,本发明的优点在于,引入了高低分辨率双模态蒸馏方法,将高分辨率信息引入低分辨率视频行为识别模型的训练中,提高了真实场景下的低分辨率视频行为识别的准确率。
[0010]
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
[0011]
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
[0012]
图1是根据本发明一个实施例的基于高低分辨率双模态蒸馏的视频人体行为识别方法的流程图;
[0013]
图2是根据本发明一个实施例的基于高低分辨率双模态蒸馏的模型框架示意图;
[0014]
图3是根据本发明一个实施例的视频数据超分前后对比效果图。
具体实施方式
[0015]
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
[0016]
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
[0017]
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0018]
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
[0019]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0020]
本发明提出基于高低分辨率双模态蒸馏的视频人体行为识别方法,采用模型蒸馏机制,将超分模态模型(或称为超分辨率模型)作为教师模型,将它的相关知识迁移到学生模型(即低分模态模型,或称为低分辨率模型),使得学生模型在训练的同时也能灵活的融合教师模型的相关知识。超分模态模型会注意到低分模态模型忽略的人体动作细节,所以可以作为低分模态模型的细节补充,通过模型蒸馏的方式指导低分模态模型的训练。将高分模态模型的相关知识融合到低分模态模型中,能够提升模型识别的精确率。
[0021]
参见图1所示,所提供的基于高低分辨率双模态蒸馏的视频人体行为识别方法包括以下步骤:
[0022]
步骤s110,构建具有高分辨率分支和低分辨率分支的深度学习模型框架,其中高分辨率分支设有超分模态模型,低分辨率分支设有低分模态模型。
[0023]
参见图2所示,所提出的基于高低分辨率双模态蒸馏的深度学习模型框架包括两个分支,分别称为高分辨分支和低分辨率分支,高分辨率分支设有超分辨率模块(或称超分辨率模型)和超分模态模型,输出为超分模态模型的输出;低分辨率分支设有低分模态模型。
[0024]
超分辨率模块用于扩展输入视频的分辨率,降低数据噪声,增加视频细节,并获得超分辨率视频数据,所述超分辨率模块可采用多种类型的结构,只要能够实现效果较好的超分辨率视频即可。
[0025]
超分模态模型用于对超分辨率视频数据识别类别,低分模态模型用于对所述输入视频识别类别。超分模态模型和低分模态模型可以选用多种类型的深度学习模型,经过实
验表明,ir-csn和uniformer两大类模型效果较好。
[0026]
步骤s120,以设定损失函数为监督信号训练深度学习模型框架,训练过程中,将超分模态模型的输出作为知识,蒸馏到低分辨率分支。
[0027]
在训练过程中,采用高低分双模态模型蒸馏机制,最重要的是超分辨率分支,低分辨率分支以及两个分支之间的交互关系。
[0028]
具体地,超分辨率分支主要包含以下步骤:
[0029]
步骤s11,将低分辨率的输入视频输入超分辨率模块(如realbasicvsr)中,得到经过超分辨率的视频数据。
[0030]
例如,分辨率从70x70左右被扩展到了224x224。
[0031]
在一个实施例中,超分辨率模块可预先训练,在模型蒸馏训练中,冻结超分辨率模块的参数。引入超分辨率模块能够降低数据噪声,而冻结超分辨率模块参数并进行离线调用能够减少知识蒸馏时的显存消耗,节省计算资源,加快训练速度。
[0032]
步骤s12,利用这些超分辨率数据训练超分模态模型。
[0033]
例如,选用的模型骨干网络是ir-csn resnet152网络。
[0034]
步骤s13,将所有的训练数据输入超分辨率模型,得到它们对应的类别输出作为知识,进而迁移到低分模态模型的训练过程中。
[0035]
低分辨率分支主要包含以下几个步骤:
[0036]
步骤s21,将低分辨率视频输入到低分模态模型。
[0037]
低分模态模型的骨干网络也可采用ir-csn resnet152网络。
[0038]
步骤s22,将低分模态模型的输出和超分模态模型的输出进行损失函数的计算,表示为:
[0039][0040][0041]
其中,k表示超分模态模型输出,代表了超分辨率分支的知识。p表示低分模态模型的输出,c表示数据集需要区分的类别数,α是两个损失函数的权重系数。可以选择如式(2)所示的均方误差(mse),也可以选择其他类型的损失函数,例如klloss,mse等。通过的梯度可以使得超分模态模型的相关知识融合到低分模态模型的训练中。
[0042]
步骤s23,在训练的过程中回传也就是低分模态模型输出p和真实标签的损失的二分类交叉熵损失函数。
[0043]
步骤s24,经过蒸馏的模型在测试集上进行测试,输出识别结果和对应的f1-score。
[0044]
在一个实施例中,可采用在线蒸馏方式,令超分模态模型也共同训练,这种在线蒸馏方式,不保存离线超分模态模型的输出。在训练低分模态模型的过程中同时将低分视频输入到超分辨率模块和超分模态模型中,得到对应的超分模态模型输出。这种在线蒸馏方法需要大显存gpu和大量的计算资源,实现难度大。
[0045]
优选地,为了降低蒸馏过程中显存占用量,可采用离线蒸馏的方式,将超分模态模型单独预训练,并保存超分模态模型在训练集上的所有输出,而在深度学习模型框架的训
练过程中,通过调用超分模态模型离线输出文件作为超分模态知识指导低分模态模型的学习过程。通过这种设计,能够节约高分模态模型和低分模态模型相互蒸馏带来的大量显存开销,不需要在低分模态模型训练的过程中再导入超分模态模型,从而显著降低了内存占用量,并且大幅缩短了训练时间。
[0046]
需说明的是,除了采用上述的双模态监督信号,也可采用多模态监督,加入更多的模态分支,例如,增加光流分支,将光流、超分模态通过多个监督信号融合到低分模态模型中,进行多分支模型蒸馏。
[0047]
步骤s130,利用经训练的低分模态模型进行视频人体行为识别。
[0048]
利用经训练的低分模态模型,可以进行多种场景下的视频人体行为识别,特别是对于低分辨率场景,能够提升识别效果。
[0049]
例如,对于安防中的低分辨率场景,这种场景下常常会出现要识别的行为主体离摄像头很远,并且图像模糊有噪声分辨率很低的情况。这种低分辨率的识别场景并没有对应的较高分辨率视频,因此很难采用传统的模型训练改善图像识别效果。而本发明通过高低分双模态模型蒸馏机制能够将超分模态模型的知识融合到低分原始数据中,提高在真实低分辨率场景下的行为识别准确度,使得对于低分辨率模糊数据的自动化行为识别变得可能,减少监控探头的监控死角。
[0050]
此外,本发明还可用于以下场景:
[0051]
1)视频辅助裁判方面。利用本发明对真实情况下分辨率较低的场景具有一定的数据增强和识别能力,可以辅助判断一些离摄像机很远的动作类别,能够减少因为摄像机远或者模糊导致的误判。
[0052]
2)智能视频蒙太奇。面对庞大视频数据库,可以对低分辨率视频进行自动归类,方便搜索引擎搜索
[0053]
本发明涉及的模型训练过程可在服务器或云端离线进行,将经训练的模型嵌入到电子设备即可实现实时的图像识别。该电子设备可以是终端设备或者服务器,终端设备包括手机、平板电脑、个人数字助理(pda)、销售终端(pos)、车载电脑、智能可穿戴设备(智能手表、虚拟现实眼镜、虚拟现实头盔等)等任意终端设备。服务器包括但不限于应用服务器或web服务器,可以为独立服务器、集群服务器或云服务器等。例如,在实际的模型应用中,可利用监控视频获取终端、手机端或移动端拍摄目标视频,将目标视频上传到云服务器或本地,进而利用训练好的低分模态模型实现各种场景下的图像识别。
[0054]
为了进一步验证本发明的效果,进行了实验。以往的模型并没有专门为真实场景下的低分辨率模型设计的模型,所以在例如tinyvirat这种真实场景低分辨率数据集上的识别f1-score并不高。本发明引入了高低分双模态的蒸馏方法,验证了经过realbasicvsr超分辨率模型处理之后,部分重要的动作细节能够被还原出来,并且降低了传感器噪声,如图3所示。实验证明,本发明采用的蒸馏机制提升了识别的f1-score(是用来衡量分类模型精确度的一种指标,同时兼顾了分类模型的精确率和召回率)。
[0055]
综上所述,相对于现有技术,本发明具有以下技术效果:
[0056]
1)传统低分辨率情况下的蒸馏模型采用了低分辨率数据对应的较高分辨率数据。换句话说,这些低分辨率数据是从较高分辨率数据上人为降采样得到的。而真实情况下的低分辨率数据是直接裁剪得到,并没有进行降采样,这些数据的分辨率低,并且没有相对应
的较高分辨率视频,增加了识别的难度。针对真实情况下的低分辨率数据具有单帧信息量少,噪声大的特点,本发明进行流程上的设计,引入了高低分双模态的蒸馏方法,提高了图像识别效果。
[0057]
2)由于超分模态模型的输入数据的分辨率较大,需要占用大量的显存。如果同时导入超分辨率模块,超分模态模型和低分模态模型这三种模型共同进行在线蒸馏,会使得显存开销非常巨大,并且训练速度非常慢,效率极低。本发明在进行蒸馏训练时,采用了离线训练方式,有效避免了多个大模型导入并同时训练时占用大量显存的现象,加快了训练速度,减少了计算资源开销。
[0058]
3)本发明采用高低分双模态数据的模型蒸馏机制,将高分辨率信息引入到低分辨率视频的训练中,在例如tinyvirat数据集上得到了更高的识别精度。
[0059]
4)可拓展性强。本发明可以根据实际情况对不同模块进行定制。例如对超分辨率模块而言,可以根据场景的不同进行消融实验并选择。对于其他有缺陷的数据,例如黑夜,有雾,有噪声或者模糊的数据而言,可以将超分辨率模块更换为减少对应的特定场景下数据缺陷的模块,通过蒸馏方法可以将经过超分预处理之后的信息融合到原有数据的训练中。这种蒸馏方法也可以拓展到其他有缺陷数据的场景中应用。
[0060]
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0061]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0062]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0063]
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++、python等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程
计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0064]
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0065]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0066]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0067]
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
[0068]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
技术特征:1.一种基于高低分辨率双模态蒸馏的视频人体行为识别方法,包括以下步骤:构建具有双分支的深度学习模型框架,其中第一分支依次包含超分辨率模块和超分模态模型,第二分支包含低分模态模型,所述超分辨率模块用于扩展输入视频的分辨率,获得超分辨率视频,所述超分模态模型用于识别所述超分辨率视频中的人体行为类别,所述低分模态模型用于识别所述输入视频中的人体行为类别;以设定的损失函数为监督信号,训练所述深度学习模型框架,在训练过程中,将所述超分模态模型输出的人体行为类别作为超分辨率知识,指导所述低分模态模型的训练;利用经训练的低分模态模型对目标视频进行人体行为识别。2.根据权利要求1所述的方法,其特征在于,将所述损失函数设置为:其中,表示蒸馏损失和分类损失的加权和,表示低分模态模型的输出类别与真实标签之间的分类损失,表示低分模态模型的输出类别和超分模态模型的输出类别之间的蒸馏损失,α是设定的权重系数。3.根据权利要求2所述的方法,其特征在于,将低分模态模型输出类别和超分模态模型输出类别之间的分类损失设置为:其中,k表示超分模态模型的输出,代表超分模态模型学习到的超分辨率知识向量,p表示低分模态模型的输出类别向量,c表示训练过程所需要区分的类别数,c表示类别索引。4.根据权利要求1所述的方法,其特征在于,所述超分辨率模块是经过预训练的视频超分辨率模型,在所述深度学习模型框架的训练过程中,所述超分辨率模块冻结预训练模型参数,生成输入视频对应的超分辨率视频。5.根据权利要求1所述的方法,其特征在于,所述超分模态模型经预先离线训练,在所述深度学习模型框架的训练过程,获得的超分辨率视频送入所述超分模态模型,输出超分辨率知识向量。6.根据权利要求1所述的方法,其特征在于,在所述深度学习模型框架的训练过程中,将输入视频输入到所述低分模态模型,得到输出类别向量后,计算输出向量和真实标签的分类损失,通过双模态监督信号动态监督训练过程,将分类损失和监督信号共同进行梯度回传。7.根据权利要求1所述的方法,其特征在于,所述超分模态模型和所述低分模态模型选用cnn或transformer类别的模型。8.根据权利要求1所述的方法,其特征在于,基于tinyvirat数据集训练所述深度学习模型框架。9.一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现根据权利要求1至8中任一项所述方法的步骤。10.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
技术总结本发明公开了一种基于高低分辨率双模态蒸馏的视频人体行为识别方法。该方法包括以下步骤:构建深度学习模型框架,其中第一分支依次包含超分辨率模块和超分模态模型,第二分支包含低分模态模型,超分辨率模块用于扩展输入视频的分辨率,获得超分辨率视频,超分模态模型用于识别超分辨率视频中的人体行为类别,低分模态模型用于识别输入视频中的人体行为类别;以设定的损失函数为监督信号,训练所述深度学习模型框架,在训练过程中,将超分模态模型输出的人体行为类别作为超分辨率知识,指导所述低分模态模型的训练;利用经训练的低分模态模型对目标视频进行人体行为识别。本发明能够有效提高真实场景下低分辨率视频的人体行为识别准确率。为识别准确率。为识别准确率。
技术研发人员:陈伯瑜 乔宇 王亚立
受保护的技术使用者:中国科学院深圳先进技术研究院
技术研发日:2022.07.05
技术公布日:2022/11/1