发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种视频检测方法、装置、电子设备以及存储介质。
本公开提供了一种视频检测方法,该方法包括:
分别对待进行相似度检测的第一视频和第二视频进行抽帧,得到第一视频图像帧集合和第二视频图像帧集合;
提取所述第一视频图像帧集合和第二视频图像帧集合中各图像帧的图像特征;
将所述第一视频相邻两图像帧的所述图像特征进行差分,得到第一视频特征差分集合;并将所述第二视频相邻两图像帧的所述图像特征进行差分,得到第二视频特征差分集合;
基于所述第一视频特征差分集合和所述第二视频特征差分集合,查找第一视频与第二视频中的匹配片段;
根据所述匹配片段,计算所述第一视频和所述第二视频之间的相似度并确定两视频是否相似。
在一些实施例中,所述提取所述第一视频图像帧集合和第二视频图像帧集合中各图像帧的图像特征,包括:
基于深度特征提取模型提取所述图像特征;
所述深度特征提取模型为训练动量对比模型得到的q编码模块,所述动量对比模型包括q编码模块和k编码模块;
所述训练动量对比模型包括:自监督微调训练,和/或,有监督微调训练。
在一些实施例中,所述基于所述第一视频特征差分集合和所述第二视频特征差分集合,查找第一视频与第二视频中的匹配片段包括:
基于所述第一视频的时长小于所述第二视频的时长,确定所述第一视频特征差分集合为模式序列,且所述第二视频特征差分集合为主序列;
基于所述模式序列和所述主序列,查找第一视频与第二视频中的匹配片段。
在一些实施例中,所述基于所述模式序列和所述主序列,查找第一视频与第二视频中的匹配片段包括:
确定所述模式序列中各元素和所述主序列中各元素之间的相似度;
基于所述主序列确定多个子序列,每个所述子序列的长度大于所述模式序列;
基于所述模式序列中各元素和所述主序列中各元素之间的相似度以及所述多个子序列,确定所述模式序列的匹配序列。
在一些实施例中,所述基于所述主序列确定多个子序列包括:
设置用于确定子序列的滑动窗口的长度和滑动步长,所述滑动窗口的长度大于所述模式序列的长度;
基于所述滑动窗口的长度和所述滑动步长,从所述主序列中确定多个子序列。
在一些实施例中,所述基于所述模式序列中各元素和所述主序列中各元素之间的相似度以及所述多个子序列,确定所述模式序列的匹配序列包括:
基于所述模式序列中各元素和所述主序列中各元素之间的相似度,确定所述模式序列在每个所述子序列中的匹配距离;
确定最小的匹配距离所对应的子序列为所述模式序列的匹配序列。
在一些实施例中,所述确定所述模式序列的匹配序列之后,所述方法还包括:
基于所述模式序列与所述匹配序列之间的相似度向量,裁剪所述模式序列和所述匹配序列,得到最佳匹配片段;
所述根据所述匹配片段,计算所述第一视频和所述第二视频之间的相似度并确定两视频是否相似包括:
根据所述最佳匹配片段,计算所述第一视频和所述第二视频之间的相似度并确定两视频是否相似。
在一些实施例中,所述裁剪所述模式序列和所述匹配序列包括:
剔除所述模式序列和所述匹配序列两端相似度满足剔除条件的连续帧。
在一些实施例中,所述剔除条件为:相似度小于所述相似度向量中最大相似度的一半。
在一些实施例中,所述根据所述匹配片段,计算所述第一视频和所述第二视频之间的相似度包括:
基于所述模式序列与所述匹配序列之间的相似度向量,计算平均相似度,所述平均相似度为所述第一视频和所述第二视频之间的相似度。
在一些实施例中,所述确定两视频是否相似包括:
基于所述模式序列与所述匹配序列之间的相似度向量,确定所述第一视频和所述第二视频之间的匹配时长;
基于所述第一视频和所述第二视频之间的相似度和所述匹配时长,确定两视频是否相似。
在一些实施例中,所述基于所述模式序列与所述匹配序列之间的相似度向量,确定所述第一视频和所述第二视频之间的匹配时长包括:
确定所述相似度向量的长度;
基于所述相似度向量的长度,确定所述第一视频和所述第二视频之间的匹配时长。
在一些实施例中,所述基于所述第一视频和所述第二视频之间的相似度和所述匹配时长,确定两视频是否相似包括:
确定所述匹配时长在所述第一视频中的第一时长占比;
确定所述匹配时长在所述第二视频中的第二时长占比;
基于所述第一视频和所述第二视频之间的相似度、所述第一时长占比和所述第二时长占比,确定两视频是否相似。
在一些实施例中,所述基于所述第一视频和所述第二视频之间的相似度、所述第一时长占比和所述第二时长占比,确定两视频是否相似包括:
判断所述第一视频和所述第二视频之间的相似度是否大于相似度阈值且所述第一时长占比和所述第二时长占比中较大的时长占比大于时长占比阈值;
若大于相似度阈值且大于时长占比阈值,则确定两视频相似。
在一些实施例中,所述自监督微调训练包括:
对目标领域的多个视频进行抽帧,得到训练图像集,其中,所述目标领域为所述第一视频和/或所述第二视频所应用的领域;
从所述训练图像集中选取第一图像和多张第二图像,并对所述第一图像进行增强,得到第三图像;
将所述第一图像输入所述q编码模块,并将所述第三图像和所述多张第二图像输入所述k编码模块;
基于所述q编码模块的输出和所述k编码模块的输出,计算对比损失函数值,并基于所述对比损失函数值调整所述q编码模块的参数值和所述k编码模块的参数值。
在一些实施例中,所述有监督微调训练包括:
对预先标注的多个第一视频对进行抽帧,得到第一图像对集合,对预先标注的多个第二视频对进行抽帧,得到第二图像对集合;
从所述第一视频对集合中选取一个第一视频对,并从所述第二视频对集合中选取多个第二视频对;
将选取的第一视频对中的一个图像进行增强后输入所述q编码模块,并将选取的第一视频对中的另一个图像和选取的多个第二视频对分别进行增强后输入所述k编码模块;
基于所述q编码模块的输出和所述k编码模块的输出,计算对比损失函数值,并基于所述对比损失函数值调整所述q编码模块的参数值和所述k编码模块的参数值。
本公开还提供了一种视频检测装置,该视频检测装置包括:
抽帧单元,用于分别对待进行相似度检测的第一视频和第二视频进行抽帧,得到第一视频图像帧集合和第二视频图像帧集合;
提取单元,用于提取所述第一视频图像帧集合和第二视频图像帧集合中各图像帧的图像特征;
差分单元,用于将所述第一视频相邻两图像帧的所述图像特征进行差分,得到第一视频特征差分集合;将所述第二视频相邻两图像帧的所述图像特征进行差分,得到第二视频特征差分集合;
查找单元,用于基于所述第一视频特征差分集合和所述第二视频特征差分集合,查找第一视频与第二视频中的匹配片段;
确定单元,用于根据所述匹配片段,计算所述第一视频和所述第二视频之间的相似度并确定两视频是否相似。
本公开还提供了一种电子设备,该电子设备包括:处理模块和存储模块;所述处理模块通过调用所述存储模块存储的程序或指令,用于执行上述任一种方法的步骤。
本公开还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行上述任一种方法的步骤。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开至少一个实施例中,通过对待进行相似度检测的两个视频进行抽帧,可以得到这两个视频对应的两个视频图像帧集合;进而可以提取这两个视频图像帧集合中各图像帧的图像特征;从而可以将相邻两图像帧的图像特征进行差分,得到这两个视频对应的特征差分集合;这样,基于这两个视频对应的特征差分集合,查找这两个视频中的匹配片段,可以消除这两个视频中的噪声;从而根据匹配片段,计算这两个视频之间的相似度并确定两视频是否相似,可以避免这两个视频中的噪声对计算这两个视频之间的相似度的影响,有利于提高对添加了贴纸、特效等噪声但实质内容相似的视频的识别能力,提高鲁棒性。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开至少一个实施例中,通过对待进行相似度检测的两个视频进行抽帧,可以得到这两个视频对应的两个视频图像帧集合;进而可以提取这两个视频图像帧集合中各图像帧的图像特征;从而可以将相邻两图像帧的图像特征进行差分,得到这两个视频对应的特征差分集合;这样,基于这两个视频对应的特征差分集合,查找这两个视频中的匹配片段,可以消除这两个视频中的噪声;从而根据匹配片段,计算这两个视频之间的相似度并确定两视频是否相似,可以避免这两个视频中的噪声对计算这两个视频之间的相似度的影响,有利于提高内容相似的视频的识别能力。
下面结合图1-图10对本公开实施例提供的视频检测方法、装置、电子设备以及存储介质进行示例性说明。
示例性地,图1为本公开实施例提供的一种视频检测方法的流程示意图。参照图1,该方法可包括如下步骤101至105。
101、分别对待进行相似度检测的第一视频和第二视频进行抽帧,得到第一视频图像帧集合和第二视频图像帧集合。
其中,第一视频和第二视频可以是待进行相似度检测的任意两个视频。
抽帧的方式可以按照预设的抽帧频率进行抽帧,预设的抽帧频率例如为每秒抽取一帧。在其他实施方式中,预设的抽帧频率还可以为每秒抽取两帧、两秒抽取一帧或其他抽帧频率,可根据实际需要设置抽帧频率。
示例性地,第一视频V1和第二视频V2,其时长对应可为T
1秒和T
2秒;对每个视频进行抽帧,例如每秒抽取一帧图像,可得到对应的两组图片集
和
记为第一视频图像帧集合,
记为第二视频图像帧集合。
102、提取第一视频图像帧集合和第二视频图像帧集合中各图像帧的图像特征。
其中,图像特征包括视频图像的传统特征和深度特征,其中传统特征如颜色特征、纹理特征、形状特征和空间关系特征等。视频图像包括第一视频图像帧集合和第二视频图像帧集合中各图像帧。
示例性地,可采用特征提取模型分别提取第一视频图像帧集合和第二视频图像帧集合中各图像帧的图像特征,后文中结合图2所示的MOCO模型训练架构,对图像特征提取进行示例性说明,其中,MOCO模型也可称为基于动量比对的非监督式视觉表征学习(MomentumContrast for Unsupervised Visual Representation Learning)模型。
103、将第一视频相邻两图像帧的图像特征进行差分,得到第一视频特征差分集合;并将第二视频相邻两图像帧的图像特征进行差分,得到第二视频特征差分集合。
本实施例中,通过将第一视频相邻两图像帧的图像特征进行差分可以消除第一视频中的噪声;通过将第二视频相邻两图像帧的图像特征进行差分,可以消除第二视频中的噪声。后文中结合图3对图像特征差分流程进行示例性说明。
其中,噪声包括贴纸、特效等与视频图像中的主体画面内容无关的、关联性较差的或可分离而不影响主体画面表义的图像特征。
104、基于第一视频特征差分集合和第二视频特征差分集合,查找第一视频与第二视频中的匹配片段。
下文中结合图4和图5对视频片段匹配流程进行示例性说明。
105、根据匹配片段,计算第一视频和第二视频之间的相似度并确定两视频是否相似。
若确定两视频相似,可进一步得到相似信息。相似信息可包括相似片段时长、起止时间以及相似度等信息,后文中结合图6-图8对两视频是否相似进行说明。
本公开实施例提供的视频检测方法中,通过对待进行相似度检测的两个视频进行抽帧,可以得到这两个视频对应的两个视频图像帧集合;进而可以提取这两个视频图像帧集合中各图像帧的图像特征;从而可以将相邻两图像帧的图像特征进行差分,得到这两个视频对应的特征差分集合;这样,基于这两个视频对应的特征差分集合,查找这两个视频中的匹配片段,可以消除这两个视频中的噪声;从而根据匹配片段,计算这两个视频之间的相似度并确定两视频是否相似,可以避免这两个视频中的噪声对计算这两个视频之间的相似度的影响,有利于提高对添加了贴纸、特效等噪声但实质内容相似的视频的识别能力,提高鲁棒性。
在一些实施例中,提取第一视频图像帧集合和第二视频图像帧集合中各图像帧的图像特征时,可以基于深度特征提取模型提取图像特征,也即将第一视频图像帧集合和第二视频图像帧集合中各图像帧输入深度特征提取模型,由深度特征提取模型输出对应的图像特征。
其中,深度特征提取模型为训练动量对比模型(MOCO模型)得到的q编码模块。MOCO模型包括q编码模块和k编码模块。训练动量对比模型包括:自监督微调训练,和/或,有监督微调训练。
其中,MOCO模型也可称为基于动量比对的非监督式视觉表征学习(MomentumContrast for Unsupervised Visual Representation Learning)模型。该MOCO模型可采用MOCO模型官方在ImageNet数据集上的预训练模型作为视频图像的图像特征提取的基础网络,该MOCO模型包含Encoder_q模块(即q编码模块)和Encoder_k模块(即k编码模块),各模块均可由ResNet50网络进行实现,均可输出128维的特征向量。
示例性地,图2示出了一种MOCO模型训练的架构图。参照图2,MOCO模型训练的过程包括自监督微调(finetune)过程(即自监督微调训练)和有监督过程(即有监督微调训练);在其他实施方式中,MOCO模型训练的过程还可仅包括自监督微调训练或仅包括有监督微调训练。其中,自监督微调训练和有监督微调训练均可包括数据准备、数据增强以及数据训练的过程,下面分别进行说明。
在一些实施例中,自监督微调训练包括如下步骤一至步骤四。
步骤一:对目标领域的多个视频进行抽帧,得到训练图像集,其中,目标领域为第一视频和/或第二视频所应用的领域。
该步骤为数据准备过程。
示例性地,将目标领域的多个视频按照每一秒一帧的间隔进行抽帧,得到训练图像集Γ,训练图像也称为训练图片。
示例性地,目标领域可为游戏领域,例如益智游戏领域、对战游戏领域等,本公开实施例不限定。
步骤二:从训练图像集中选取第一图像和多张第二图像,并对第一图像进行增强,得到第三图像。
该步骤包括数据增强过程。
示例性地,对训练图片集Γ中的图片执行如下处理:将图片缩放至256×256大小,并随机裁剪至224×224大小;对图片随机进行色彩变化、高斯模糊变化;对图片随机添加贴纸、特效。
步骤三:将第一图像输入q编码模块,并将第三图像和多张第二图像输入k编码模块。
其中,第一图像为查询图像xq,第三图像和多张第二图像构成键值图像组Xk。
步骤四:基于q编码模块的输出和k编码模块的输出,计算对比损失函数值,并基于对比损失函数值调整q编码模块的参数值和k编码模块的参数值。
步骤三和步骤四为数据训练过程。其中,q编码模块的输入数据为第一图像,输出数据为图像特征;k编码模块的输入数据为第三图像和多张第二图像,输出数据为图像特征。进一步地,基于q编码模块和k编码模块的输出计算得到的对比损失(contrastiveloss)函数值调整其参数值,实现数据训练。
由此,根据MOCO训练策略在训练图片集Γ上应用步骤二中的数据增强策略构造训练样本,得到查询图像xq和键值图像组(或称为键值图像集)Xk,分别输入q编码模块和k编码模块,采用对比损失函数进行自监督训练。
在一些实施例中,有监督微调训练包括如下步骤一至步骤四:
步骤一:对预先标注的多个第一视频对进行抽帧,得到第一视频对集合,对预先标注的多个第二视频对进行抽帧,得到第二视频对集合。
该步骤为数据准备过程。
示例性地,第一视频对为相似视频对,第二视频对为非相似视频对。这样,对一批视频对是否相似进行预先标注,例如相似视频对标注为正样本,label=1;非相似视频对标注为负样本,label=0。对相似视频对进行抽帧,得到相似图像样本对,构造第一视频对集合,即正样本集合P,label=1;对非相似视频对进行抽帧,得到非相似图像样本对,构造第二视频对集合,即负样本集合N,label=0。
步骤二:从第一视频对集合中选取一个第一视频对,并从第二视频对集合中选取多个第二视频对。
该步骤从前述步骤一得到的第一视频对集合中选出一个第一视频对,从第二视频对集合中选出多个第二视频对。为后续步骤中形成模型训练的数据做准备。
步骤三:将选取的第一视频对中的一个图像进行增强后输入q编码模块,并将选取的第一视频对中的另一个图像和选取的多个第二视频对分别进行增强后输入k编码模块。
该步骤包括数据增强过程。
示例性地,对正样品集合P中的第一视频对和负样本集合N中的未第一视频对执行如下处理:将对图片缩放至256×256大小,并随机裁剪至224×224大小;对图片随机进行色彩变化、高斯模糊变化。
其中,选取的第一视频对中的一个图像进行增强后的图像为查询图像
选取的第一视频对中的另一个图像和选取的多个非相似图像构成键值图像集
步骤四:基于q编码模块的输出和k编码模块的输出,计算对比损失函数值,并基于对比损失函数值调整q编码模块的参数值和k编码模块的参数值。
步骤三和步骤四包括数据训练过程。其中,q编码模块的输入数据为查询图像
输出数据为图像特征;k编码模块的输入数据为键值图像集
输出数据为图像特征。进一步地,基于q编码模块和k编码模块的输出计算得到的对比损失(contrastive loss)函数值调整其参数值,实现数据训练。
由此,基于预先标注的多个相似视频对和非相似视频对,分别对应得到正样本集合和负样本结合,应用图像增强(即数据增强)策略,得到对应的查询图像
和键值图像集
分别对应输入q编码模块和k编码模块,采用对比损失函数进行有监督训练。
示例性地,上述键值图像组中的图像或图像对数量为500,q编码模块和k编码模块可输出128×500维特征向量。在其他实施方式中,键值图像组中的图像或图像对的数量还可为其他数值,可基于视频检测方法的需求设置。
图3示出了一种基于视频图像确定特征差分集的流程,包括特征提取和特征差分过程。
其中,特征提取可采用上文中训练好的MOCO模型中的q编码模块提取多帧视频图像(包括第一视频图像帧集合和第二视频图像帧集合中各图像帧)的图像特征,例如深度特征;特征差分可基于多帧视频图像的图像特征进行一阶差分,得到差分特征(包括第一视频特征差分集合和第二视频特征差分集合),本实施例后续步骤中利用差分特征替代原始图像特征,进行两视频是否相似的确定,可消除视频中恒定不变的贴纸、特效等噪声带来的影响。
参照图3,首先进行特征提取,具体地:采用上文中训练得到的Encoder_q模块(即q编码模块)作为特征提取网络;该网络的输入数据为视频图像序列,视频图像序列包括三帧视频图像,分别以301、302和303示出。
示例性地,视频图像序列的获取方式为:取待进行相似度检测的视频对,如第一视频V1和第二视频V2,其时长对应可为T
1秒和T
2秒;对每个视频进行抽帧,例如每秒抽取一帧图像,可得到第一视频图像帧集合
和第二视频图像帧集合
和
即为两个视频图像序列。
通过将两组图片集
和
分别输入到Encoder_q模块,可对应输出两个视频V1和V2的视频图像特征集
和
示例性地,视频图像特征集中三帧视频图像特征分别以311、312和313示出,视频图像特征的帧数与视频图像序列中视频图像的帧数一致。
其后进行特征差分,具体地:通过相邻帧特征相减,例如后一帧特征减去前一帧特征,分别得到第一视频特征差分集合
与第二视频特征差分集合
其分别满足:
示例性地,特征差分集合中两帧差分特征分别以321和322示出,其数量比视频图像特征集中的视频图像特征的帧数少1。
示例性地,图3示出的流程图可为对视频V1进行特征提取与特征差分,也可为对视频V2进行特征提取与特征差分,本公开实施例不限定。
需要说明的是,图3中仅示例性地示出了视频图像序列中包括三帧视频图像,在其他实施方式中,视频图像的帧数还可为500或其他数量,根据视频检测方法的需求设置,本公开实施例不限定。
在一些实施例中,在图1的基础上,步骤104基于第一视频特征差分集合和第二视频特征差分集合,查找第一视频与第二视频中的匹配片段可以包括如下步骤1041和1042:
1041、基于第一视频的时长小于第二视频的时长,确定第一视频特征差分集合为模式序列,且第二视频特征差分集合为主序列。
其中,判断第一视频V1的时长T1和第二视频V2的时长T2的大小关系,取其中时长较短的视频的特征差分集作为待匹配的模式序列,时长较长的视频的特征差分集作为主序列。基于此,若满足T1<T2,则确定第一视频对应的第一视频特征差分集合为模式序列,第二视频对应的第二视频特征差分集合为主序列,即模式序列为{d1i},主序列为{d2j}。
在其他实施方式中,若满足T2<T1,则确定第二视频对应的第二视频特征差分集合为模式序列,第一视频对应的第二视频特征差分集合为主序列,即此时主序列为{d1i},模式序列为{d2j}。
1042、基于模式序列和主序列,查找第一视频与第二视频中的匹配片段。
其中,基于模式序列和主序列,可结合动态滑窗法和动态时间规整(Dynamic TimeWarping,dtw)算法进行视频片段匹配,得到第一视频与第二视频中的匹配片段。
在一些实施例中,步骤1042中基于模式序列和主序列,查找第一视频与第二视频中的匹配片段,具体包括如下步骤一至步骤三:
步骤一:确定模式序列中各元素和主序列中各元素之间的相似度。
具体地,结合上文,将第一视频特征差分集合
与第二视频特征差分集合
中的元素两两计算余弦(cosine)距离,可得到维度为(T
1-1)×(T
2-1)的相似度矩阵A,也即得到第一视频V1和第二视频V2的相似度矩阵A。该步骤也可理解为执行第一视频V1和第二视频V2的去噪后的相似度计算过程。
步骤二:基于主序列确定多个子序列,每个子序列的长度大于模式序列。
具体地,在主序列上设置长度大于模式序列的子序列,即设置滑动窗口。如此,可以缓解第一视频V1和第二视频V2所抽帧未严格对齐的情况,增强dtw算法的鲁棒性,从而有利于增强视频检测方法的鲁棒性。
示例性地,以模式序列为{d1i},主序列为{d2j}为例,{d1i}的长度为T1-1,为满足子序列的长度大于该长度,在{d2j}上设置的子序列的长度可为T1+1,即主序列上的子序列长度比模式序列的长度长2s。
在其他实施方式中,子序列的长度超出模式序列的长度还可为其他长度,本公开实施例不限定。
在一些实施例中,该步骤中基于主序列确定多个子序列具体为:
设置用于确定子序列的滑动窗口的长度和滑动步长,滑动窗口的长度大于模式序列的长度;进而基于滑动窗口的长度和滑动步长,从主序列中确定多个子序列。
例如,滑动窗口的长度等于子序列的长度,通过设置滑动窗口的长度大于模式序列的长度,可使得子序列的长度大于模式序列的长度。将滑动窗口的长度在主序列中按照滑动步长滑动,由始至终滑过主序列,即可确定对应于每个滑动窗口的子序列。
示例性地,图4示出了一种序列匹配的流程,其中包括了移动滑窗法的滑动窗口长度、滑动步长以及滑动方向示意。参照图4,模式序列的长度为T1-1,滑动窗口的长度为T1+1;若设置滑动步长为1,则在主序列上可得到的子序列的数量为T2-(T1+1),即T2-T1-1个子序列。
示例性地,以图4中示出的数值和方位为例,模式序列的长度为5,主序列的长度为11,滑动窗口的长度为7,滑动步长为1,滑动方向为右上之下,在主序列中确定的子序列的数量为5。
在其他实施方式中,移动滑窗法中的上述各参数可基于主序列和模式序列的长度需求设置,本公开实施例不限定。
步骤三:基于模式序列中各元素和主序列中各元素之间的相似度以及多个子序列,确定模式序列的匹配序列。
具体地,可采用dtw算法,确定主序列中与模式序列匹配的子序列,即得到模式序列的匹配序列。
在一些实施例中,该步骤具体可包括:
基于模式序列中各元素和主序列中各元素之间的相似度,确定模式序列在每个子序列中的匹配距离;进而确定最小的匹配距离所对应的子序列为模式序列的匹配序列。
实施例中,余弦距离越小,模式序列与子序列的匹配度越高,即相似度越高;匹配距离越小,模式序列与子序列的匹配度越高,即相似度越高。
基于余弦距离,可确定第一视频特征差分集合
与第二视频特征差分集合
之间的相似度矩阵A,其为维度为(T
1-1)×(T
2-1)的相似度矩阵。在相似度矩阵A的基础上,采用dtw算法,可计算得到模式序列在每一个子序列内的最短匹配距离,从而得到模式序列对应于主序列中的各子序列的最短匹配距离集合
其中,最小值l
min,即最小的最短匹配距离所对应的滑动窗口子序列,即为主序列中与模式序列
最相似的子序列,记为
称为模式序列的匹配序列,如图4所示。
在一些实施例中,确定模式序列的匹配序列之后,视频检测方法还包括:基于模式序列与匹配序列之间的相似度向量,裁剪模式序列和匹配序列,得到最佳匹配片段。
示例性地,如图4所示,基于匹配序列
和模式序列
确定对应的相似度向量为
示例性地,裁剪模式序列和匹配序列例如可包括:剔除模式序列和匹配序列两端相似度满足剔除条件的连续帧。
示例性地,可在图4的基础上,参照图5,确定匹配序列与模式序列之间的相似度向量a后,基于相似度向量a,判断匹配序列和模式序列两端相似度是否满足剔除条件,若满足则剔除两端对应的帧,再返回判断,直至不满足剔除条件时为止。
在一些实施例中,若匹配序列和模式序列两端相似度自始不满足剔除条件,则不存在视频帧被剔除,也可认为裁剪前后的匹配序列与模式序列相同。
在一些实施例中,若匹配序列与模式序列两端相似度仅单帧满足剔除条件,则上述连续帧对应单帧视频图像。
在一些实施例中,上述连续帧还可对应两帧或更多帧视频图像,本公开实施例不赘述也不限定。
示例性地,剔除条件可为结合相似度向量的相似度条件。
在一些实施例中,剔除条件为:相似度小于相似度向量中最大相似度的一半。
例如,结合上文,取匹配序列和模式序列之间的相似度向量a中最大相似度a
max,将匹配序列两端相似度a
i满足a
i<a
max/2的连续帧剔除,得到最佳匹配片段
与
及最佳匹配片段的相似度向量a
*,过程可参考图5理解。
在其他实施方式中,剔除条件还可为ai<2amax/3、ai<3amax/5或其他相似度相关的筛选条件,本公开实施例不限定。
在得到最佳匹配片段后,在步骤105中,可以根据最佳匹配片段,计算第一视频和第二视频之间的相似度并确定两视频是否相似。本实施例适用于存在部分相似的视频的场景。
在一些实施例中,步骤105中根据匹配片段,计算第一视频和第二视频之间的相似度,具体为:基于模式序列与匹配序列之间的相似度向量,计算平均相似度,平均相似度为第一视频和第二视频之间的相似度。
在一些实施例中,步骤105中确定两视频是否相似,具体包括1051和1052:
1051、基于模式序列与匹配序列之间的相似度向量,确定第一视频和第二视频之间的匹配时长。
该步骤的一种实现方式为:
确定相似度向量的长度;进而基于相似度向量的长度,确定第一视频和第二视频之间的匹配时长。
其中,匹配时长例如为最佳匹配片段对应的时长,其小于或等于第一视频和第二视频中时长较短的时长。
1052、基于第一视频和第二视频之间的相似度和匹配时长,确定两视频是否相似。
该步骤的一种实现方式为:
确定匹配时长在第一视频中的第一时长占比;以及确定匹配时长在第二视频中的第二时长占比;进而基于第一视频和第二视频之间的相似度、第一时长占比和第二时长占比,确定两视频是否相似。
例如,判断第一视频和第二视频之间的相似度是否大于相似度阈值且第一时长占比和第二时长占比中较大的时长占比大于时长占比阈值;若大于相似度阈值且大于时长占比阈值,则确定两视频相似。
其中,第一视频和第二视频之间的相似度可表征其匹配度;第一时长占比和第二时长占比可以分别代表最佳匹配片段在第一视频和第二视频中的时长占比,第一时长占比和第二时长占比的数值均介于0和1之间。
示例性地,根据最佳匹配片段的相似度向量a*得到平均相似度s=mean(a*),其为第一视频V1和第二视频V2之间的相似度,相似度向量a*的长度为T*=len(a*),即第一视频和第二视频之间的匹配时长。第一时长占比为η1=T*/T1,第二时长占比为η2=T*/T2。
示例性地,根据视频检测需求引入可调节的相似度阈值sth和时长占比阈值ηth;当s>sth,且max(η1,η2)>ηth时,确定视频对V1和V2之间相似,否则认为第一视频V1和第二视频V2之间不相似。
在一些实施例中,视频检测方法还可包括:若判定第一视频和第二视频之间相似,则确定第一片段与第二片段为相似片段。
由此,可在第一视频和第二视频之间相似时,精准定位相似片段的位置。
本公开实施例提供的视频检测方法中,采用视频帧的深度特征的差分替代原本的深度特征作为视频的表征,能够有效消除视频中的贴纸、特效等噪声信息对相似度判别带来的影响;进一步地,结合滑动窗口法和dtw算法对视频片段进行匹配,并结合序列裁剪,能精确定位到视频的相似片段。
基于本公开实施例的上述流程,输入一待判别视频对,即可得到相似判别结果,包括是否相似、相似片段(即最佳匹配片段)以及相似度,下面结合图6-图8进行示例性说明。
示例性地,图6示出了本公开实施的视频检测方法的一种应用示例,示出了待进行相似度检测的视频对(仍以第一视频V1和第二视频V2为例)中的两个视频图像序列。参照图6,第一视频V1的视频图像序列包括411、412、413、414、415以及416等,第二视频V2的视频图像序列包括421、422、423、424、425以及426等;其对应的视频时长均为0s~18s。基于此进行相似判别,输出的相似判别结果包括:第一视频和第二视频之间相似;相似片段为:第一视频V1的0s~9s,第二视频V2的0s~9s;片段相似度为:0.9416。
由此可知,图6示出的第二视频V2和第一视频V1中的一个片段是相同的,本公开实施例的视频检测方法能够精确定位到相似片段,以实现相似判别。
示例性地,图7示出了本公开实施的视频检测方法的另一种应用示例,示出了待进行相似度检测的视频对(仍以第一视频V1和第二视频V2为例)中的两个视频图像序列。参照图7,第一视频V1的视频图像序列包括431、432以及433等,第二视频V2的视频图像序列包括441、442以及443等;其对应的视频时刻均为0s、4s和35s等。基于此进行相似判别,输出的相似判别结果包括:第一视频和第二视频之间相似;相似片段为:第一视频V1的4s~35s,第二视频V2的4s~35s;片段相似度为:0.8305。
由此可知,图7示出的第二视频V2和第一视频V1仅片头几秒有所差别,剩余部分均相似。但视频的主体画面被无关画面遮挡,占约1/6的面积,本发明的技术方案能有效消除无关画面的噪声对相似度判别产生的影响,能得到一个较高的相似度并判别为相似,从而判别准确性较高,鲁棒性较高。
示例性地,图8示出了本公开实施的视频检测方法的又一种应用示例,示出了待进行相似度检测的视频对(仍以第一视频V1和第二视频V2为例)中的两个视频图像序列。参照图8,第一视频V1的视频图像序列包括451、452以及453等,第二视频V2的视频图像序列包括461、462以及463等;其对应的视频时长均为0s~14s。基于此进行相似判别,输出的相似判别结果包括:第一视频和第二视频之间相似;相似片段为:第一视频V1的0s~14s,第二视频V2的0s~14s;片段相似度为:0.8312。
由此可知,图8示出的第二视频V2和第一视频V1为相似视频,但第二视频V2对第一视频V1进行了剪切、缩放操作,对于这种情况,本公开实施例提供的视频检测方法也能得到一个较高的相似度,并进行较为准确的判别。
需要说明的是,图6-图8中仅示例性地示出了视频对中的特征时刻的视频帧,视频对中还可包括其他视频帧,本公开实施例不限定。
在上述实施方式的基础上,本公开实施例还提供了一种视频检测装置,该装置可执行上述任一种方法。因此,该装置也具有上述实施方式中的任一种方法所具有的有益效果,相同之处可参照上文中对方法的解释说明进行理解,下文中不赘述。
示例性地,图9示出了本公开实施例的一种视频检测装置的结构。参照图9,该装置可包括:抽帧单元51,用于分别对待进行相似度检测的第一视频和第二视频进行抽帧,得到第一视频图像帧集合和第二视频图像帧集合;提取单元52,用于提取第一视频图像帧集合和第二视频图像帧集合中各图像帧的图像特征;差分单元53,用于将第一视频相邻两图像帧的图像特征进行差分,得到第一视频特征差分集合;并将第二视频相邻两图像帧的图像特征进行差分,得到第二视频特征差分集合;查找单元54,用于基于第一视频特征差分集合和第二视频特征差分集合,查找第一视频与第二视频中的匹配片段;确定单元55,用于根据匹配片段,计算第一视频和第二视频之间的相似度并确定两视频是否相似。
在一些实施例中,提取单元52可以基于深度特征提取模型提取图像特征;其中,深度特征提取模型为训练动量对比模型得到的q编码模块,动量对比模型包括q编码模块和k编码模块;训练动量对比模型包括:自监督微调训练,和/或,有监督微调训练。
在一些实施例中,自监督微调训练包括:对目标领域的多个视频进行抽帧,得到训练图像集,其中,目标领域为第一视频和/或第二视频所应用的领域;从训练图像集中选取第一图像和多张第二图像,并对第一图像进行增强,得到第三图像;将第一图像输入q编码模块,并将第三图像和多张第二图像输入k编码模块;基于q编码模块的输出和k编码模块的输出,计算对比损失函数值,并基于对比损失函数值调整q编码模块的参数值和k编码模块的参数值。
在一些实施例中,有监督微调训练包括:对预先标注的多个第一视频对进行抽帧,得到第一图像对集合,对预先标注的多个第二视频对进行抽帧,得到第二图像对集合;从第一视频对集合中选取一个第一视频对,并从第二视频对集合中选取多个第二视频对;将选取的第一视频对中的一个图像进行增强后输入q编码模块,并将选取的第一视频对中的另一个图像和选取的多个第二视频对分别进行增强后输入k编码模块;基于q编码模块的输出和k编码模块的输出,计算对比损失函数值,并基于对比损失函数值调整q编码模块的参数值和k编码模块的参数值。
在一些实施例中,查找单元54可以基于第一视频的时长小于第二视频的时长,确定第一视频特征差分集合为模式序列,且第二视频特征差分集合为主序列;基于模式序列和主序列,查找第一视频与第二视频中的匹配片段。
在一些实施例中,查找单元54可以确定模式序列中各元素和主序列中各元素之间的相似度;基于主序列确定多个子序列,每个子序列的长度大于模式序列;基于模式序列中各元素和主序列中各元素之间的相似度以及多个子序列,确定模式序列的匹配序列。
在一些实施例中,查找单元54基于主序列确定多个子序列的一种实施方式为:设置用于确定子序列的滑动窗口的长度和滑动步长,滑动窗口的长度大于模式序列的长度;基于滑动窗口的长度和滑动步长,从主序列中确定多个子序列。
在一些实施例中,查找单元54基于模式序列中各元素和主序列中各元素之间的相似度以及多个子序列,确定模式序列的匹配序列的一种实施方式为:基于模式序列中各元素和主序列中各元素之间的相似度,确定模式序列在每个子序列中的匹配距离;确定最小的匹配距离所对应的子序列为模式序列的匹配序列。
在一些实施例中,查找单元54确定模式序列的匹配序列之后,还可以基于模式序列与匹配序列之间的相似度向量,裁剪模式序列和匹配序列,得到最佳匹配片段。相应地,确定单元55根据最佳匹配片段,计算第一视频和第二视频之间的相似度并确定两视频是否相似。
在一些实施例中,查找单元54裁剪模式序列和匹配序列的一种实施方式为:剔除模式序列和匹配序列两端相似度满足剔除条件的连续帧。在一些实施例中,剔除条件为:相似度小于相似度向量中最大相似度的一半。
在一些实施例中,确定单元55根据匹配片段,计算第一视频和第二视频之间的相似度的一种实施方式为:基于模式序列与匹配序列之间的相似度向量,计算平均相似度,平均相似度为第一视频和第二视频之间的相似度。
在一些实施例中,确定单元55确定两视频是否相似的一种实施方式为:基于模式序列与匹配序列之间的相似度向量,确定第一视频和第二视频之间的匹配时长;基于第一视频和第二视频之间的相似度和匹配时长,确定两视频是否相似。
在一些实施例中,确定单元55基于模式序列与匹配序列之间的相似度向量,确定第一视频和第二视频之间的匹配时长的一种实施方式为:确定相似度向量的长度;基于相似度向量的长度,确定第一视频和第二视频之间的匹配时长。
在一些实施例中,确定单元55基于第一视频和第二视频之间的相似度和匹配时长,确定两视频是否相似的一种实施方式为:确定匹配时长在第一视频中的第一时长占比;确定匹配时长在第二视频中的第二时长占比;基于第一视频和第二视频之间的相似度、第一时长占比和第二时长占比,确定两视频是否相似。
在一些实施例中,确定单元55基于第一视频和第二视频之间的相似度、第一时长占比和第二时长占比,确定两视频是否相似的一种实施方式为:判断第一视频和第二视频之间的相似度是否大于相似度阈值且第一时长占比和第二时长占比中较大的时长占比大于时长占比阈值;若大于相似度阈值且大于时长占比阈值,则确定两视频相似。
本公开还提供了一种电子设备,该电子设备包括:处理模块和存储模块;处理模块通过调用存储模块存储的程序或指令,用于执行上述任一种视频检测方法的步骤。因此该电子设备也具有上述方法和装置所具有的有益效果,相同之处可参照上文中对方法和装置的解释说明进行理解,下文中不再赘述。
在一些实施例中,图10为本公开实施例提供的一种电子设备的结构示意图。参照图10,该电子设备包括:
一个或多个处理模块601,图10中以一个处理模块601为例;
存储模块602;
该电子设备还可以包括:输入装置603和输出装置604。
该电子设备中的处理模块601、存储模块602、输入装置603和输出装置604可以通过总线或者其他方式连接,图10中示例性地以通过总线连接为例示出其连接方式。
其中,存储模块602作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本公开实施例中的应用程序的上述任一视频检测方法对应的程序指令/模块/单元(例如,附图9所示的抽帧单元51、提取单元52、差分单元53、查找单元54以及确定单元55)。处理模块601通过运行存储在存储模块602中的软件程序、指令、单元以及模块,从而实现上述方法实施例的方法。
存储模块602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。
此外,存储模块602可以包括高速随机存取存储模块,还可以包括非暂态性存储模块,例如至少一个磁盘存储模块件、闪存模块件、或其他非暂态性固态存储模块件。
在一些实施例中,存储模块602可选包括相对于处理模块601远程设置的存储模块,这些远程存储模块可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置603可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。
输出装置604可包括显示屏等显示设备。
本公开还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储程序或指令,程序或指令使计算机执行上述任一种视频检测方法的步骤。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本公开实施例的上述方法可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开实施例的上述方法相关技术方案的本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储模块(Read-OnlyMemory,ROM)、随机存取存储模块(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务模块,或者网络设备等)执行本公开实施例的各个方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。