一种视频匹配的方法与流程

文档序号:24530060发布日期:2021-04-02 10:08阅读:95来源:国知局
一种视频匹配的方法与流程

本发明涉及视频匹配筛选技术领域,具体为一种视频匹配的方法。



背景技术:

因近些年互联网的发展迅速,尤其是移动互联网的发展,导致视频的传播量大幅增加,视频的版权也被重视起来了,人工判断一个视频片段是否属于某个视频,是很慢的。传统自动化判断的方式是逐帧比较,如果所有帧数据依次相等,才认为匹配成功,匹配速度慢而且对于视频片段宽高比发生变化、或者视频发生劣化的情况,这种方法就失效了。



技术实现要素:

本发明的目的在于提供可以快速地自动识别一个视频片段是否属于某原始视频,即便视频片段发生劣化、或宽高比发生变化,也能正确匹配出来的视频匹配的方法。

为实现上述目的,本发明提供如下技术方案:一种视频匹配的方法,包括以下步骤:

s1:待匹配视频预处理:将需要与原始视频进行匹配对比的待匹配视频命做预处理;

s2:原始视频预处理:将原始视频提取关键帧,形成一个关键帧序列;

s3:神经网络预训练:预先训练好的神经网络,它利用待匹配视频的关键帧序列,预先训练一个匹配检测系统,输入一个帧数据时,可以输出该帧与待匹配视频所有关键帧的匹配相似度,,训练数据可以通过劣化待匹配视频关键帧序列来获得,将该神经网络匹配模块记为l;

s4:高效匹配:将待匹配视频与原始视频进行高效匹配操作。

进一步地,所述步骤s1与s2中的预处理方法均为:提取待匹配视频或原始视频中场景切换点为关键帧,形成一个关键帧序列,并对每个帧图像做卷积运算和最大池化运算,得到只保留关键信息的并且压缩后的关键帧序列,待匹配视频预处理后的关键帧序列表示为p=p0,p1,p2,p3,...,pm-1,m代表待匹配关键帧序列的长度,原始视频预处理后的关键帧序列表示为o=o0,o1,o2,...,on-1,n代表原始关键帧序列的长度。

进一步地,所述s3中还设置有一个封装模块,记为m,m封装了神经网络模块l,输入一个帧数据时,m将其输入给神经网络模块l,神经网络模块l输出该帧与待匹配视频关键帧序列(即p序列)的相似度,形成一个相似度序列,分别记为α0,α1,α2,...,αm-1,m代表待匹配关键帧序列的长度,取出该相似度序列中的最大值,记为αmax,如果αmax>α(α为人为设定的常量),则封装模块m返回αmax在相似度序列中对应的序号,否则,则返回一个非法值,该非法值可以为[0,m-1]以外的任意值。

进一步地,所述步骤s4包括以下匹配步骤:

初始化:将p序列与o序列左端对齐,即与对齐。

从p序列的左端开始,依次循环进行如下s41操作,s42和s43是s41的子操作(即,每个循环操作中,当前待匹配关键帧依次为p0,p1,p2,p3,...,pm-1):

s41:记当前待匹配关键帧为pj,找到与pj对齐的原始关键帧为oi,i和j为关键帧的序号。利用公共模块s计算pj和oi的相似度,如果s(oi,pj)>α,则说明此帧匹配,进入s42;如果检测s(oi,pj)≤α,则说明此帧不匹配,进入s43。

s42:如果pj是p序列的末尾帧,则说明p序列与o序列匹配成功(即,待匹配视频与原始视频匹配成功,此时o序列中与对齐的位置即为匹配成功的位置),跳出循环,如果pj不是p序列的末尾帧,且oi是o序列的末尾帧,则说明p序列与o序列匹配失败,跳出循环。其他情况,则继续当前循环,即对比下一个待匹配关键帧,和与之对齐的原始关键帧的相似度。

s43:找到o序列中与p序列末尾帧对齐的关键帧的下一帧,也即oi+m-j,利用预先训练好的封装后的神经网络m模块,计算m(oi+m-j)得到一个t值,如果t值合法(即在[0,m-1]之内),说明与oi+m-j匹配,则移动待匹配关键帧序列p使得oi+m-j与pt对齐,然后跳转到s41从开始匹配;如果t值不存在,则直接将待匹配关键帧序列p向右前进m+1,然后跳转到s41从开始匹配。

本发明的有益效果:

1.本发明从视频中的场景转换点提取关键帧,通过卷积和池化操作,进一步提炼和压缩关键帧数据,形成一个新的关键帧序列,对此关键帧序列进行匹配,通过高效匹配算法和神经网络的使用极大的提升了匹配速度,相比于传统的逐帧比较方式无论是匹配速度还是匹配精准度都有较大提升。

2.本发明在匹配以前,先利用p序列,训练一个深度神经网络匹配模型,用于快速找到p序列中与输入帧相匹配的序号,这种方式相比用输入帧一个个地与p序列中的关键帧一个个的计算相似度,进一步提升了效率。

3.本发明在匹配算法上采用的机制实现了当不匹配时,可以更多地移动p序列,性能有提升了一筹。

4.本发明容错性比较强,无论待匹配视频是否经过宽高比劣化还是经过清晰度劣化,甚至于跳帧劣化,都能得到比拟人工匹配的结果。

附图说明

图1:为本发明一种视频匹配的方法的起始位置匹配图;

图2:为本发明一种视频匹配的方法的视频帧匹配成功示意图;

图3:为本发明一种视频匹配的方法的视频帧匹配不成功示意图;

图4:为本发明一种视频匹配的方法的视频帧匹配流程结束图;

图5:为本发明一种视频匹配的方法的原理框图。

具体实施方式

下面将结合本发明实施例中的附图1-5,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明的保护范围。

本发明提供一种技术方案:其中,公共模块s为现有技术中用来对比两个视频关键帧的程序,其中阈值α为人为设定的数值,公共模块输出的值大于α即判定匹配成功,否则匹配失败,神经网络匹配模块是一种监督式学习的人工智能技术,也是现有技术,将待匹配视频的关键帧序列输入后,再将经过劣化等处理后的待匹配视频关键帧输入该系统,先人为给出对应的匹配结果,在多次重复的主动训练后,就可以通过给出任意关键帧得到非法值或者对应的待匹配视频关键帧的序号,其中,训练神经网络过程中,需保证劣化后的关键帧图像和未劣化关键帧的相似度与公共模块s使用过程中的判断一致,即操作过程为:将p序列关键帧按照不同的劣化参数形成许多个劣化帧,对于每个劣化帧,记为bi,它对应的原未劣化帧为pi,利用公共模块s计算出bi与pi的相似度αi,即:αi=s(bi,pi);紧接着进行如下处理:如果αi>α,则改变αi为1,否则改变αi为0。我们据此制作出一个用于训练神经网络的输出序列ri=(0,...,αi,...,0),该序列中,除了序号为l的位置值是αi以外,其余位置均为0。由此我们就得到了一个训练数据:(bi,ri),我们可以通过p序列中的关键帧生成许多劣化帧,利用上述方法生成许多训练数据,来训练神经网络。为了优化神经网络的输出结果,我们把上述神经网络封装成为一个模块,记为m,当输入一个帧数据时,m可以直接输出与之匹配的p序列的序号。m接收到输入的帧数据时,将其输入给神经网络模块,神经网络模块输出该帧与待匹配视频关键帧序列(即p序列)的相似度,形成一个相似度序列,分别记为α0,α1,α2,...,αm-1,m代表待匹配关键帧序列的长度,取出该相似度序列中的最大值,记为αmax,如果αmax>α(α为人为设定的常量),则封装模块m返回αmax在相似度序列中对应的序号,否则,则返回一个非法值,该非法值可以为[0,m-1]以外的任意值。

一种视频匹配的方法,包括以下步骤:

s1:待匹配视频预处理:将需要与原始视频进行匹配对比的待匹配视频命做预处理,提取待匹配视频中场景切换点为关键帧,形成一个关键帧序列,并对每个帧图像做卷积运算和最大池化运算(maxpooling),得到只保留关键信息的并且压缩后的关键帧序列,表示为p=p0,p1,p2,p3,...,pm-1,m代表待匹配关键帧序列的长度,提前对待匹配视频做预处理,有助于提高性能;

s2:原始视频预处理:对于原始视频,类似地,也可以提取出一个关键帧序列,对原始视频中每个帧图像做卷积运算和最大池化运算(maxpooling),得到只保留关键信息的并且压缩后的关键帧序列,将原始视频得到的关键帧序列表示为o=o0,o1,o2,…,on-1,n代表原始关键帧序列的长度;

s3:神经网络预训练:预先训练好的神经网络,它利用p序列,预先训练一个匹配检测系统,配合封装模块,输入一个帧数据时,可以输出与之匹配的p序列的序号,训练数据可以通过劣化p序列或者劣化待匹配视频的关键帧来获得,将整合了封装模块的该神经网络匹配模块记为m,若是找不到匹配的序号,则返回非法值,该非法值可以是[0,m-1]以外的任意值;若是匹配的序号有多个,则只返回最大的那个序号。

s4:高效匹配:将待匹配视频与原始视频进行高效匹配,通过高效匹配算法和神经网络的使用极大的提升了匹配速度,相比于传统的逐帧比较方式无论是匹配速度还是匹配精准度都有较大提升,为了表述方便,我们把这个公共模块记为s,s(oi,pj)表示计算两个关键帧oi和pj的相似度。

初始化:将p序列与o序列左端对齐,即p0与o0对齐。

从p序列的左端开始,依次循环进行如下s41操作,s42和s43是s41的子操作(即,每个循环操作中,当前待匹配关键帧依次为p0,p1,p2,p3,...,pm-1):

s41:记当前待匹配关键帧为pj,找到与pj对齐的原始关键帧为oi,i和j为关键帧的序号。利用公共模块s计算pj和oi的相似度,如果s(oi,pj)>α,则说明此帧匹配,进入s42;如果检测s(oi,pj)≤α,则说明此帧不匹配,进入s43。

s42:如果pj是p序列的末尾帧,则说明p序列与o序列匹配成功(即,待匹配视频与原始视频匹配成功,此时o序列中与对齐的位置即为匹配成功的位置),跳出循环,如果pj不是p序列的末尾帧,且oi是o序列的末尾帧,则说明p序列与o序列匹配失败,跳出循环。其他情况,则继续当前循环,即对比下一个待匹配关键帧,和与之对齐的原始关键帧的相似度。

s43:找到o序列中与p序列末尾帧对齐的关键帧的下一帧,也即oi+m-j,利用预先训练好的封装后的神经网络m模块,计算m(oi+m-j)得到一个t值,如果t值合法(即在[0,m-1]之内),说明与oi+m-j匹配,则移动待匹配关键帧序列p使得oi+m-j与pt对齐,然后跳转到s41从开始匹配;如果t值不存在,则直接将待匹配关键帧序列p向右前进m+1,然后跳转到s41从开始匹配。

上述过程描述比较抽象,现在设定一个具体的例子进行描述:

1、设待匹配视频序列p仅有4个关键帧:p0,p1,p2,p3,假设原始视频序列o仅有11个关键帧:o0,o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11。相同标记符号的关键帧,它们的相似度是大于阀值α的,则它们是匹配的。比如,o0与p0、o1与p1、o4与p2、o7与p0都是匹配的。

2、由图1看出,首先把o序列和p序列左端对齐,当从起始位置依次匹配后,检测到o2与p2是不匹配的。于是我们检查o序列中与p序列末尾帧对齐的关键帧的下一帧,也就是o4,用它来匹配p序列,发现与p2匹配,于是移动p序列,使p2与o4对齐,如图2所示。

3、在图2中,从p序列头部开始检查匹配,也就是检查p0与o2是否匹配。

4、如图3所示,p0与o2不匹配,检查待匹配o序列中与p序列末尾帧对齐的关键帧的下一帧,也就是o6,用它来匹配p序列,找不到匹配的位置,则直接移动到o序列m+1的位置,m是p序列的长度,也就是4,于是移动4+1=5。移动后,p0与o7对齐,如图四所示。

5、如图4,从p0与o7位置,p和o两个序列依次匹配,直到最后p3匹配o10,记录匹配的序号为7。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1