掌桥专利:专业的专利平台
掌桥专利
首页

视频指纹生成方法、视频匹配方法、装置和计算机设备

文献发布时间:2023-06-19 10:24:22


视频指纹生成方法、视频匹配方法、装置和计算机设备

技术领域

本申请涉及计算机技术领域,特别是涉及一种视频指纹生成方法、视频匹配方法、装置、计算机设备和存储介质。

背景技术

随着计算机技术的不断发展,视频信息大量涌现。视频作为一种表达信息的综合媒体,已成为现实生活中一个重要的信息载体。

传统技术中,可以基于视频的视频指纹来检测相似视频。计算视频指纹的方法主要是采用全局指纹技术。全局指纹技术为基于CNN(卷积神经网络)的指纹算法将一整个视频帧或者一组视频帧编码成一个特征向量,该特征向量包括了全局的信息。

然而,由于全局指纹技术只考虑全局的信息,视频指纹准确性较低。进而,在进行视频匹配时,无法区分出局部信息不同的视频,视频匹配的准确性较低。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高视频指纹准确性、提高视频匹配准确性的视频指纹生成方法、视频匹配方法、装置、计算机设备和存储介质。

一种视频指纹生成方法,所述方法包括:

获取目标视频,从目标视频中确定目标视频帧;

分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量;

基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配;

基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量;

将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合;

基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。

在一个实施例中,目标特征向量集合或参考特征向量集合的生成方法包括以下步骤:

对当前视频帧进行尺度变换,得到当前视频帧对应的多个图像尺度的候选视频帧;当前视频帧为目标视频帧或参考视频帧;

对各个候选视频帧进行极值像素点检测和拟合,得到当前视频帧对应的多个当前关键点;

基于包含当前关键点的预设范围图像区域对应的局部图像特征生成当前关键点对应的特征向量;

基于各个当前关键点对应的特征向量生成当前视频帧对应的当前特征向量集合。

在一个实施例中,融合向量的生成方法包括以下方式中的任意一种:

将同一目标关键点对应的运动向量嵌入到对应的特征向量中预设位置,得到对应的融合向量;

将同一目标关键点对应的运动向量和特征向量进行向量拼接,得到对应的融合向量。

一种视频指纹生成装置,所述装置包括:

视频获取模块,用于获取目标视频,从目标视频中确定目标视频帧;

特征向量生成模块,用于分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量;

关键点匹配模块,用于基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配;

运动向量生成模块,用于基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量;

特征向量更新模块,用于将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合;

视频指纹生成模块,用于基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取目标视频,从目标视频中确定目标视频帧;

分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量;

基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配;

基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量;

将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合;

基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取目标视频,从目标视频中确定目标视频帧;

分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量;

基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配;

基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量;

将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合;

基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。

上述视频指纹生成方法、装置、计算机设备和存储介质,通过获取目标视频,从目标视频中确定目标视频帧;分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量;基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配;基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量;将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合;基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。这样,关键点的特征信息可以用于表示视频帧的局部信息,不同的关键点对应不同的局部信息,基于各个视频帧中各个关键点的特征信息生成的视频指纹的信息更丰富更全面,能够有效提高视频指纹的准确性。进一步的,关键点的特征信息不仅包括图像信息还包括运动信息,特征向量表示图像信息,运动向量表示运动信息,融合向量融合了图像信息和运动信息,相应的,视频指纹不仅包括图像信息还包括运动信息,可以进一步提高视频指纹的准确性。

一种视频匹配方法,所述方法包括:

获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹;

基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果;

其中,视频指纹的生成方法包括:从当前视频中确定目标视频帧,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量,将同一目标关键点对应的运动向量和特征向量进行融合,得到融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合,基于目标视频帧对应的更新特征向量集合得到当前视频对应的视频指纹;当前视频为第一视频或第二视频。

在一个实施例中,第一视频指纹包括各个第一视频帧分别对应的第一更新特征向量集合,第二视频指纹包括各个第二视频帧分别对应的第二更新特征向量集合;

基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果,包括:

将各个第一更新特征向量集合分别和各个第二更新特征向量集合进行匹配,根据匹配结果确定各个第一视频帧分别和各个第二视频帧的视频帧匹配结果;

基于视频帧匹配结果为匹配成功的视频帧对数计算相似视频帧比例,基于相似视频帧比例确定第一视频和第二视频的视频匹配结果。

在一个实施例中,第一更新特征向量集合包括多个第一关键点对应的更新特征向量,第二更新特征向量集合包括多个第二关键点对应的更新特征向量;

将各个第一更新特征向量集合分别和各个第二更新特征向量集合进行匹配,根据匹配结果确定各个第一视频帧分别和各个第二视频帧的视频帧匹配结果,包括:

从各个第一更新特征向量集合中确定第一目标更新特征向量集合,从各个第二更新特征向量集合中确定第二目标更新特征向量集合;

在第一目标更新特征向量集合和第二目标更新特征向量集合中,基于第一关键点和第二关键点之间的更新特征向量距离,将第一关键点和第二关键点进行匹配;

基于匹配成功的关键点对数计算相似关键点比例,基于相似关键点比例确定第一目标更新特征向量集合对应的第一视频帧和第二目标更新特征向量集合对应的第二视频帧的视频帧匹配结果。

在一个实施例中,基于匹配成功的关键点对数计算相似关键点比例,基于相似关键点比例确定第一目标更新特征向量集合对应的第一视频帧和第二目标更新特征向量集合对应的第二视频帧的视频帧匹配结果,包括:

基于第一目标更新特征向量集合中更新特征向量数量确定第一关键点数量,基于第二目标更新特征向量集合中更新特征向量数量确定第二关键点数量;

将第一关键点数量和第二关键点数量中数量较少的关键点数量作为参考关键点数量;

基于匹配成功的关键点对数确定相似关键点数量,基于相似关键点数量和参考关键点数量得到相似关键点比例;

当相似关键点比例大于第五预设阈值时,确定对应的第一视频帧和第二视频帧的视频帧匹配结果为匹配成功。

在一个实施例中,基于视频帧匹配结果为匹配成功的视频帧对数计算相似视频帧比例,基于相似视频帧比例确定第一视频和第二视频的视频匹配结果,包括:

获取第一视频对应的第一视频帧数量,获取第二视频对应的第二视频帧数量;

将第一视频帧数量和第二视频帧数量中数量较少的视频帧数量作为参考视频帧数量;

基于视频帧匹配结果为匹配成功的视频帧对数确定相似视频帧数量,基于相似视频帧数量和参考视频帧数量得到相似视频帧比例;

当相似视频帧比例大于第六预设阈值时,确定视频匹配结果为视频相似;

当相似视频帧比例小于或等于第六预设阈值时,确定视频匹配结果为视频不相似。

在一个实施例中,所述方法还包括:

当视频匹配结果为视频相似时,禁止向第一视频对应的浏览用户终端推荐第二视频,禁止向第二视频对应的浏览用户终端推荐第一视频。

在一个实施例中,所述方法还包括:

当视频匹配结果为视频相似时,从第一视频和第二视频中筛选出视频发布时间最新的视频作为警告视频,向警告视频对应的发布用户终端发送警告信息。

一种视频匹配装置,所述装置包括:

视频指纹生成模块,用于获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹;

视频指纹匹配模块,用于基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果;

其中,视频指纹的生成方法包括:从当前视频中确定目标视频帧,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量,将同一目标关键点对应的运动向量和特征向量进行融合,得到融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合,基于目标视频帧对应的更新特征向量集合得到当前视频对应的视频指纹;当前视频为第一视频或第二视频。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹;

基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果;

其中,视频指纹的生成方法包括:从当前视频中确定目标视频帧,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量,将同一目标关键点对应的运动向量和特征向量进行融合,得到融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合,基于目标视频帧对应的更新特征向量集合得到当前视频对应的视频指纹;当前视频为第一视频或第二视频。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹;

基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果;

其中,视频指纹的生成方法包括:从当前视频中确定目标视频帧,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量,将同一目标关键点对应的运动向量和特征向量进行融合,得到融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合,基于目标视频帧对应的更新特征向量集合得到当前视频对应的视频指纹;当前视频为第一视频或第二视频。

上述视频匹配方法、装置、计算机设备和存储介质,通过获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果。其中,视频指纹的生成方法包括:从当前视频中确定目标视频帧,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量,将同一目标关键点对应的运动向量和特征向量进行融合,得到融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合,基于目标视频帧对应的更新特征向量集合得到当前视频对应的视频指纹;当前视频为第一视频或第二视频。这样,关键点的特征信息可以用于表示视频帧的局部信息,不同的关键点对应不同的局部信息,基于各个视频帧中各个关键点的特征信息生成的视频指纹的信息更丰富更全面,能够有效提高视频指纹的准确性。进一步的,关键点的特征信息不仅包括图像信息还包括运动信息,特征向量表示图像信息,运动向量表示运动信息,融合向量融合了图像信息和运动信息,相应的,视频指纹不仅包括图像信息还包括运动信息,可以进一步提高视频指纹的准确性。从而在基于这样的视频指纹进行图像匹配时,可以有效提高视频匹配的准确性。

附图说明

图1为一个实施例中视频指纹生成方法和视频匹配方法的应用环境图;

图2为一个实施例中视频指纹生成方法的流程示意图;

图3为一个实施例中目标关键点对应的前向运动向量和后向运动向量的示意图;

图4为一个实施例中对向量进行方向归一化的流程示意图;

图5为一个实施例中向量方向直方图的示意图;

图6为一个实施例中确定当前运动向量的流程示意图;

图7为另一个实施例中确定当前运动向量的流程示意图;

图8为一个实施例中视频匹配方法的流程示意图;

图9为一个实施例中确定视频匹配结果的流程示意图;

图10为一个实施例中确定视频帧匹配结果的流程示意图;

图11为另一个实施例中确定视频帧匹配结果的流程示意图;

图12为另一个实施例中确定视频匹配结果的流程示意图;

图13A为一个实施例中视频匹配的流程示意图;

图13B为一个实施例中游戏界面的界面示意图;

图14为一个实施例中视频指纹生成装置的结构框图;

图15为一个实施例中视频匹配装置的结构框图;

图16为另一个实施例中视频匹配装置的结构框图;

图17为一个实施例中计算机设备的内部结构图;

图18为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,第五预设阈值和第六预设阈值可以相同可以不同。

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。

平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。

可以理解,本申请中生成的视频指纹可以发送至区块链上进行存储。本申请中生成的视频匹配结果也可以发送至区块链上进行存储。

本申请提供的视频指纹生成方法和视频匹配方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、智能电视和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群或者云服务器来实现。

终端102和服务器104均可单独用于执行本申请实施例中提供的视频指纹生成方法和视频匹配方法。

例如,终端获取目标视频,从目标视频中确定目标视频帧。终端分别从目标视频帧和目标视频帧对应的参考视频帧提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合。其中,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量。进而,终端可以基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量。终端可以将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合。最后,终端基于目标视频帧对应的更新特征向量集合可以得到目标视频对应的视频指纹。

服务器获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果。

终端102和服务器104也可协同用于执行本申请实施例中提供的视频指纹生成方法和视频匹配方法。

服务器可以从终端获取目标视频,从目标视频中确定目标视频帧。服务器可以分别从目标视频帧和目标视频帧对应的参考视频帧提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合。其中,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量。进而,服务器可以基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量。服务器可以将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合。最后,服务器基于目标视频帧对应的更新特征向量集合可以得到目标视频对应的视频指纹。

服务器可以从终端获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果。服务器可以将视频匹配结果发送至终端。

在一个实施例中,如图2所示,提供了一种视频指纹生成方法。可以理解,视频指纹生成方法可以由终端或服务器单独执行,也可以由终端和服务器协同执行。在本实施例中,以该方法由服务器执行为例进行说明,包括以下步骤:

步骤S202,获取目标视频,从目标视频中确定目标视频帧。

具体地,服务器可以在本地或从终端、其他服务器获取目标视频,生成目标视频对应的视频指纹。服务器可以对目标视频进行解码,得到目标视频对应的视频帧序列。服务器可以从视频帧序列中确定至少一个目标视频帧,基于各个目标视频帧生成视频指纹。在确定目标视频帧的时候,服务器可以从视频帧序列中选取每秒固定数量的视频帧作为目标视频帧,例如,每秒获取一帧视频帧作为目标视频帧。当然,服务器也可以将视频帧序列中各个视频帧分别作为目标视频帧,服务器也可以随机从目标视频帧中选取任意数目的视频帧作为目标视频帧。

步骤S204,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量。

其中,目标视频帧对应的参考视频帧是指目标视频帧对应的前向视频帧和后向视频帧中的至少一种。在视频帧序列中,具体可以是在目标视频帧前面间隔若干帧选取前向视频帧作为参考视频帧,在目标视频帧后面间隔若干帧选取前向视频帧作为参考视频帧。例如,选取目标视频帧的前第三帧作为前向视频帧,选取目标视频帧的后第三帧作为后向视频帧。

在图像中,往往会有一些具有特殊模式的小区域,例如一扇窗户上面的拐角,一面墙上面纹理的某些变化等,这些小区域的模式具有比较特别的特征,可以和其他区域区分开来,同时在一些常见的图像仿射变换,缩放变换下这些特征仍具有不变性。一张图像中可以存在着非常多这样的区域,这些区域的中心点就被称为关键点。关键点对应的特征向量是指关键点对应的小区域的图像特征。

目标关键点是从目标视频帧中提取到的关键点,参考关键点是从参考视频帧中提取得到的关键点。目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量。参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量。

具体地,服务器可以从目标视频帧中提取关键点,得到至少一个目标关键点,生成各个目标关键点对应的特征向量,从而得到目标视频帧对应的目标特征向量集合。服务器可以从参考视频帧中提取关键点,得到至少一个参考关键点,生成各个参考关键点对应的特征向量,从而得到参考视频帧对应的参考特征向量集合。

在一个实施例中,服务器可以通过关键点提取算法从视频帧中提取关键点。关键点提取算法可以是图像角点检测算法、ISS算法(Intrinsic Shape Signatures,固有形状特征),SIFT算法(Scale-invariant feature transform,尺度不变特征变换)等。

步骤S206,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配。

具体地,目标关键点和参考关键点之间的特征向量距离是指目标关键点对应的特征向量和参考关键点对应的特征向量之间的距离。特征向量距离具体可以是两个特征向量之间的欧式距离。服务器可以基于目标关键点和参考关键点之间的特征向量距离进行目标关键点和参考关键点的匹配,来确定相互匹配的目标关键点和参考关键点。

在一个实施例中,目标关键点和参考关键点的匹配可以采用基于特征向量的最邻近算法,计算一个目标关键点分别和各个参考关键点之间的特征向量距离,从多个特征向量距离中选取距离最小的特征向量距离对应的参考关键点作为与该目标关键点匹配的参考关键点。此外,为了提高匹配的准确性,可以设置阈值,当距离最小的特征向量距离小于特征向量距离阈值时,才最终确定距离最小的特征向量距离对应的参考关键点作为与该目标关键点匹配的参考关键点。进一步的,因为在相邻的几个视频帧之间通常帧间运动不会过于剧烈,所以还可以进一步限制相互匹配的目标关键点和参考关键点之间的位置距离不能超过位置距离阈值,进一步提高匹配的准确性。

步骤S208,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量。

其中,目标关键点和参考关键点的位置距离是指目标关键点和参考关键点的位置坐标距离。例如,目标关键点的位置坐标为(3,3),对应的参考关键点的位置坐标为(3,4),该目标关键点和参考关键点的位置距离可以用(0,1)来表示。运动向量是用于表示目标关键点的运动信息。

具体地,在进行目标关键点和参考关键点的匹配时,有的目标关键点可以找到相互匹配的参考关键点,有的目标关键点找不到相互匹配的参考关键点。当目标关键点和参考关键点相互匹配时,表明目标关键点和参考关键点匹配成功。匹配成功的目标关键点和参考关键点可以认为是在不同视频帧上的同一关键点,因此,基于匹配成功的目标关键点和参考关键点的位置距离可以生成目标关键点对应的运动向量。可以理解,因为视频中的人物、背景等会发生运动,代表人物的关键点A在参考视频帧中可能位于位置1,但是经过运动后关键点A在目标视频帧中可能发生移动,从而位于位置2,根据位置1和位置2的位置距离可以生成关键点A对应的运动向量。

在一个实施例中,参考视频帧包括前向视频帧和后向视频帧中的至少一种。可以将前向视频帧中的关键点作为前向关键点,基于匹配成功的目标关键点和前向关键点的位置距离可以生成目标关键点对应的前向运动向量。同理,可以将后向视频帧中的关键点作为后向关键点,基于匹配成功的目标关键点和后向关键点的位置距离可以生成目标关键点对应的后向运动向量。由于目标视频帧中通常包括多个目标关键点,因此,最终可以得到多个前向运动向量和多个后向运动向量,各个前向运动向量可以组成前向运动向量集合,各个后向运动向量可以组成后向运动向量集合。

在一个实施例中,可以直接将匹配成功的目标关键点和参考关键点的位置距离作为对应的目标关键点的运动向量。此外,为了提高运动向量的准确性,可以将运动向量的方向进行归一化,以抵消人为旋转视频所带来的影响。具体可以分别对前向运动向量和后向运动向量进行方向归一化,也就是,对前向运动向量集合进行一次方向归一化,对后向运动向量集合进行一次方向归一化。此外,为了进一步提高运动向量的准确性,在方向归一化后,还可以对运动向量进行长度归一化,以抵消运动向量的模长带来的误差,从而使运动向量专注在运动角度上。此外,对于静止的目标关键点(例如游戏视频中的游戏按钮、边框、小地图等区域)的运动向量做随机扰动处理,以有效地减少该类区域误匹配导致的整体误匹配的现象。

步骤S210,将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合。

具体地,当确定目标关键点对应的运动向量后,服务器可以将目标关键点对应的运动向量和特征向量进行融合,得到该目标关键点对应的融合向量。运动向量可以表示目标关键点的运动信息,特征可以表示目标关键点对应的局部图像区域的图像信息,将运动向量和特征向量融合得到的融合向量可以同时表示目标关键点的运动信息和图像信息。进而,服务器可以基于融合向量更新目标特征向量集合,得到更新特征向量集合。

在一个实施例中,更新特征向量集合包括各个目标关键点对应的更新特征向量。更新特征向量可以是融合向量,也就是,更新特征向量集合包括各个目标关键点对应的融合向量。服务器在基于融合向量更新目标特征向量集合时,可以将目标关键点对应的特征向量替换为相应的融合向量,并且过滤没有相应融合向量的目标关键点,以减轻服务器的存储压力。更新特征向量可以是融合向量或特征向量,也就是,更新特征向量集合也可以包括具备运动向量的目标关键点对应的融合向量和不具备运动向量的目标关键点对应的特征向量。服务器在基于融合向量更新目标特征向量集合时,可以将目标关键点对应的特征向量替换为相应的融合向量,并且保留没有相应融合向量的目标关键点对应的特征向量。

步骤S212,基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。

其中,视频指纹是用于代表视频内容的指纹信息,视频指纹可以应用于视频推荐、视频搜索、视频版权保护等应用场景。

具体地,服务器基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。可以理解,当目标视频帧有多个时,服务器可以得到各个目标视频帧分别对应的更新特征向量集合,各个更新特征向量集合组成目标视频对应的视频指纹。更新特征向量集合也可以作为目标视频帧对应的图像指纹。

视频指纹可以应用于视频推荐。服务器可以获取用户历史浏览过的第一视频和待推荐的第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果。当视频匹配结果为视频相似时,第二视频就不向用户推荐,从而避免向用户推荐重复的视频。当然,服务器也可以获取当前推荐系统向用户主动推荐的初始推荐结果序列。当基于初始推荐结果序列中各个视频的视频指纹确定初始推荐结果序列中存在相似的视频时,对初始推荐结果序列进行更新,只保留相似视频中的一个,得到目标推荐结果序列,将目标推荐结果序列向用户展示。

视频指纹可以应用于视频搜索。服务器可以获取当前搜索系统向用户推荐的初始搜索结果序列。初始搜索结果序列是根据用户的搜索信息生成的。当基于初始搜索结果序列中各个视频的视频指纹确定初始搜索结果序列中存在相似的视频时,对初始搜索结果序列进行更新,只保留相似视频中的一个,得到目标搜索结果序列,将目标搜索结果序列向用户展示。这样,用户就可以获取到更多样的搜索结果,提高搜索的有效性。

视频指纹也可以应用于视频版权保护。目标平台对应的服务器可以获取自己发布的第一视频和其他平台发布的第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果。当视频匹配结果为视频相似、且第二视频在第一视频之后发布时,目标平台可以要求其他平台下线第二视频。

在进行视频匹配时,可以计算第一视频的视频帧和第二视频的视频帧中关键点之间的更新特征向量距离,从而确定视频帧之间的相似关键点数量,基于视频帧之间的相似关键点数量计算相似关键点比例,从而基于相似关键点比例确定视频帧是否为相似视频帧。进而,基于相似视频帧数量确定相似视频帧比例,从而基于相似视频帧比例确定第一视频和第二视频的视频匹配结果。视频匹配的具体过程可以参照后述视频匹配方法的各个相关实施例所述的方法,此处不再赘述。

上述视频指纹生成方法中,通过获取目标视频,从目标视频中确定目标视频帧;分别从目标视频帧和目标视频帧对应的参考视频帧提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量;基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配;基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量;将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合;基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。这样,关键点的特征信息可以用于表示视频帧的局部信息,不同的关键点对应不同的局部信息,基于各个视频帧中各个关键点的特征信息生成的视频指纹的信息更丰富更全面,能够有效提高视频指纹的准确性。进一步的,关键点的特征信息不仅包括图像信息还包括运动信息,相应的,视频指纹不仅包括图像信息还包括运动信息,那么在基于视频指纹进行图像匹配时,可以有效提高视频匹配的准确性。

在一个实施例中,目标特征向量集合或参考特征向量集合的生成方法包括以下步骤:对当前视频帧进行尺度变换,得到当前视频帧对应的多个图像尺度的候选视频帧;当前视频帧为目标视频帧或参考视频帧;对各个候选视频帧进行极值像素点检测和拟合,得到当前视频帧对应的多个当前关键点;基于包含当前关键点的预设范围图像区域对应的局部图像特征生成当前关键点对应的特征向量;基于各个当前关键点对应的特征向量生成当前视频帧对应的当前特征向量集合。

其中,当前视频帧为目标视频帧或参考视频帧。若当前视频帧为目标视频帧,那么通过计算得到的当前视频帧对应的当前特征向量集合为目标特征向量集合。若当前视频帧为参考视频帧,那么通过计算得到的当前视频帧对应的当前特征向量集合为参考特征向量集合。

具体地,服务器可以对当前视频帧进行尺度变换,将当前视频帧不断降阶采样,得到一系列大小不一的候选视频帧,也就是,得到当前视频帧对应的多个图像尺度的候选视频帧。服务器可以对各个候选视频帧进行极值像素点检测和拟合,得到当前视频帧对应的多个当前关键点。服务器可以基于各个候选视频帧建立高斯金字塔。当前视频帧为金字塔的第一层,每次降采样所得到的新候选视频帧为金字塔的一层(每层一个候选视频帧),每个金字塔共n层,此外,为了让尺度体现其连续性,金字塔在简单降采样的基础上加上了高斯滤波,从而得到高斯金字塔。基于高斯金字塔建立高斯差分金字塔,在高斯金字塔中的每组中相邻两层相减(下一层减上一层)就生成高斯差分金字塔。关键点是由DOG空间的局部极值点组成的,为了寻找DOG函数(Difference of Gaussians,高斯差分函数)的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。例如,将检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。当检测到离散空间的极值点后,再通过拟合三维二次函数来精确确定关键点的位置和尺度,同时去除低对比度的关键点和不稳定的边缘响应点,以增强匹配稳定性、提高抗噪声能力,从而得到当前视频帧对应的多个当前关键点。接着,服务器可以基于包含当前关键点的预设范围图像区域对应的局部图像特征生成当前关键点对应的特征向量,例如,在当前关键点的周围邻域内,在选定的图像尺度对应的候选图像帧上计算图像局部的梯度,得到当前关键点对应的特征向量。最后,基于各个当前关键点对应的特征向量生成当前视频帧对应的当前特征向量集合,由各个当前关键点对应的特征向量组成当前视频帧对应的当前特征向量集合。可以理解,目标视频帧和参考视频帧都可以经过上述处理得到各自对应的特征向量集合。

本实施例中,通过对当前视频帧进行尺度变换,得到当前视频帧对应的多个图像尺度的候选视频帧,对各个候选视频帧进行极值像素点检测和拟合,得到当前视频帧对应的多个当前关键点。这样,可以找到当前视频帧中一些十分突出,并且不会因光照、仿射变换等因素而变化的点。进一步的,基于包含当前关键点的预设范围图像区域对应的局部图像特征生成当前关键点对应的特征向量,当前关键点对应的特征向量可以表征图像像素信息在一个较小区域内的变化特征,表示图像的局部信息,由各个局部信息组成当前视频帧的图像指纹,可以提高图像指纹的精度,从而提高视频指纹的精度。

在一个实施例中,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,包括:计算当前目标关键点对应的特征向量分别和各个参考关键点对应的特征向量之间的特征向量距离,得到当前目标关键点对应的多个特征向量距离;当最小特征向量距离小于第一预设阈值时,将最小特征向量距离对应的参考关键点作为与当前目标关键点匹配的参考关键点。

具体地,在进行关键点匹配时,服务器可以从多个目标关键点中随机选取一个目标关键点作为当前目标关键点,计算当前目标关键点对应的特征向量分别和各个参考关键点对应的特征向量之间的特征向量距离,得到当前目标关键点对应的多个特征向量距离。再从多个特征向量距离中选取最小特征向量距离,当最小特征向量距离小于第一预设阈值时,将最小特征向量距离对应的参考关键点作为与当前目标关键点匹配的参考关键点。若最小特征向量距离大于或等于第一预设阈值,表明当前目标关键点不存在对应的参考关键点。当目标视频帧包括多个目标关键点时,各个目标关键点都按照同样的方法查找对应匹配的参考关键点。其中,第一预设阈值可以根据实际需要进行设置。

本实施例中,关键点的特征向量可以表示局部图像信息,相互匹配的关键点应该是位于相同或极为相似的局部图像区域内,因此,当最小特征向量距离小于第一预设阈值时,可以快速确定该最小特征向量距离对应的参考关键点和当前目标关键点位于相同的局部图像区域内,二者匹配成功。

在一个实施例中,将最小特征向量距离对应的参考关键点作为与当前目标关键点匹配的参考关键点,包括:当最小特征向量距离对应的参考关键点和当前目标关键点的位置距离小于第二预设阈值时,将最小特征向量距离对应的参考关键点作为与当前目标关键点匹配的参考关键点。

具体地,在进行关键点匹配时,服务器可以计算当前目标关键点对应的特征向量分别和各个参考关键点对应的特征向量之间的特征向量距离,得到当前目标关键点对应的多个特征向量距离,从多个特征向量距离中选取最小特征向量距离,当最小特征向量距离小于第一预设阈值、且最小特征向量距离对应的参考关键点和当前目标关键点的位置距离小于第二预设阈值时,将最小特征向量距离对应的参考关键点作为与当前目标关键点匹配的参考关键点。若最小特征向量距离对应的参考关键点和当前目标关键点的位置距离大于或等于第二预设阈值,表明该参考关键点和当前目标关键点之间相距太远,视频帧之间的运动过于剧烈,视频帧可能出现异常,因此不认为该参考关键点和当前目标关键点相互匹配。通常情况下,在短时帧间图像运动不会过于剧烈,最小特征向量距离对应的参考关键点和当前目标关键点的位置距离小于三分之一图像宽度就可以将最小特征向量距离对应的参考关键点作为与当前目标关键点匹配的参考关键点其中,第二预设阈值可以根据实际需要进行设置。

本实施例中,当最小特征向量距离小于第一预设阈值、且最小特征向量距离对应的参考关键点和当前目标关键点的位置距离小于第二预设阈值时,将最小特征向量距离对应的参考关键点作为与当前目标关键点匹配的参考关键点。这样,可以准确找到与当前目标关键点匹配的参考关键点。

在一个实施例中,目标视频帧对应的参考视频帧包括目标视频帧对应的前向视频帧和后向视频帧中的至少一种,前向视频帧对应的参考关键点为前向关键点,后向视频帧对应的参考关键点为后向关键点,运动向量包括前向运动向量和后向运动向量中的至少一种。基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量,包括:当匹配成功的参考关键点为目标关键点的前向关键点时,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的前向运动向量;当匹配成功的参考关键点为目标关键点的后向关键点时,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的后向运动向量。

具体地,目标视频帧对应的参考视频帧包括目标视频帧对应的前向视频帧和后向视频帧中的至少一种,运动向量包括前向运动向量和后向运动向量中的至少一种。当目标视频帧对应的参考视频帧为目标视频帧对应的前向视频帧时,参考视频帧中的参考关键点为前向关键点。当匹配成功的参考关键点为目标关键点的前向关键点时,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的前向运动向量。当目标视频帧对应的参考视频帧为目标视频帧对应的后向视频帧时,参考视频帧中的参考关键点为后向关键点。当匹配成功的参考关键点为目标关键点的后向关键点时,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的后向运动向量。

参考图3,I

在一个实施例中,运动向量的计算公式为:

在一个实施例中,如图4所示,当前运动向量为前向运动向量或后向运动向量,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的当前运动向量,包括:

步骤S402,基于匹配成功的目标关键点和参考关键点的位置距离生成各个目标关键点对应的初始运动向量;初始运动向量携带向量方向。

步骤S404,将同一向量方向对应的初始运动向量进行聚类,得到各个向量方向分别对应的聚类簇。

步骤S406,统计同一聚类簇内初始运动向量的数量,得到各个聚类簇对应的统计值。

步骤S408,将最大统计值的聚类簇对应的向量方向作为目标方向。

步骤S410,基于目标方向旋转各个初始运动向量,得到各个目标关键点对应的当前运动向量。

具体地,目标视频有可能被人为的添加了一些旋转用以篡改视频,这样运动向量的方向将会因此受到非常大的影响。为了抵消视频旋转带来的影响,需要将运动向量的方向进行归一化,并且前向运动向量和后向运动向量需要分别进行方向归一化。服务器可以基于匹配成功的目标关键点和参考关键点的位置距离生成各个目标关键点对应的初始运动向量,初始运动向量携带向量方向。接着,将同一向量方向对应的初始运动向量进行聚类,得到各个向量方向分别对应的聚类簇。一个聚类簇中包括同一向量方向对应的至少一个初始运动向量。服务器可以统计同一聚类簇内初始运动向量的数量,得到各个聚类簇对应的统计值,将最大统计值的聚类簇对应的向量方向作为目标方向,也就是,将大多数初始运动向量对应的向量方向作为目标视频帧的主运动方向。最后,服务器可以基于目标方向旋转各个初始运动向量,得到各个目标关键点对应的当前运动向量。

当匹配成功的参考关键点为目标关键点的前向关键点时,初始运动向量为前向初始运动向量,前向初始运动向量携带前向向量方向。服务器可以将同一前向向量方向对应的前向初始运动向量进行聚类,得到各个前向向量方向分别对应的聚类簇,统计同一聚类簇内前向初始运动向量的数量,得到各个聚类簇对应的统计值,将最大统计值的聚类簇对应的前向向量方向作为目标前向方向,也就是,将大多数前向初始运动向量对应的向量方向作为目标视频帧的主前向运动方向,基于目标前向方向逆时针旋转各个前向初始运动向量,得到各个目标关键点对应的前向目标运动向量。

当匹配成功的参考关键点为目标关键点的后向关键点时,初始运动向量为后向初始运动向量,后向初始运动向量携带后向向量方向。服务器可以将同一后向向量方向对应的后向初始运动向量进行聚类,得到各个后向向量方向分别对应的聚类簇,统计同一聚类簇内后向初始运动向量的数量,得到各个聚类簇对应的统计值,将最大统计值的聚类簇对应的后向向量方向作为目标后向方向,也就是,将大多数后向初始运动向量对应的向量方向作为目标视频帧的主后向运动方向,基于目标后向方向逆时针旋转各个后向初始运动向量,得到各个目标关键点对应的后向目标运动向量。

参考图5,服务器可以基于前向初始运动向量集合或后向初始运动向量集合构建向量方向角度的直方图。直方图中的每一个条柱对应一个向量方向角度,向量方向的角度为运动向量和x轴的夹角,取值范围在0-360度之间。A、B、C、D、E、F、G和H分别为不同的向量方向角度,当然,直方图中的条柱数量可以更多也可以更少,根据实际情况确定。条柱的高度表示该向量方向角度对应的初始运动向量数量。在直方图中统计值最大的条柱对应的向量方向作为目标视频帧在前向或后向方向上的主运动方向,基于主运动方向,将所有前向初始运动向量或后向初始运动向量的方向逆时针旋转一个主运动方向的角度,由此便得到了方向归一化的目标运动向量。当视频被人为旋转时,主运动方向会跟着改变,但是各个运动向量和主运动方向的相对角度并不会改变。

本实施例中,将运动向量的方向进行归一化能够抵消视频旋转带来的影响,从而提高目标视频帧的图像指纹的准确性,提高视频指纹的准确性。

在一个实施例中,如图6所示,基于目标方向旋转各个初始运动向量,得到各个目标关键点对应的当前运动向量,包括:

步骤S602,基于目标方向旋转各个初始运动向量,得到各个目标关键点对应的中间运动向量。

步骤S604,对各个中间运动向量进行长度归一化处理,得到各个目标关键点对应的当前运动向量。

具体地,在进行方向归一化之后再进行长度归一化,将所有运动向量的模长归一化到单位向量长度,这样可以免去运动向量的模长带来的误差,从而使特征专注于在运动角度上。服务器具体可以基于目标方向旋转各个初始运动向量,得到各个目标关键点对应的中间运动向量,对各个中间运动向量进行长度归一化处理,得到各个目标关键点对应的当前运动向量。可以理解,基于主前向运动方向,将所有前向初始运动向量逆时针旋转一个主前向运动方向的角度,基于主后向运动方向,将所有后向初始运动向量逆时针旋转一个主后向运动方向的角度,由此便得到了方向归一化的中间运动向量。再对各个中间运动向量进行长度归一化处理,得到各个目标关键点对应的当前运动向量。关键点的位置会因为噪声而产生移动,进而导致运动向量模长(即长度)产生变化。当模长不可靠的时候,如果基于模长计算向量距离(即欧式距离)会导致这个距离也有问题,所以需要进行长度归一化处理,避免出现前述问题。

本实施例中,在方向归一化之后再做长度归一化,能够提高目标视频帧的图像指纹的准确性,从而提高视频指纹的准确性。

在一个实施例中,如图7所示,对各个中间运动向量进行长度归一化处理,得到各个目标关键点对应的当前运动向量,包括:

步骤S702,从各个中间运动向量中,获取长度小于第三预设阈值的中间运动向量作为静态运动向量,将静态运动向量随机赋值为随机运动向量。

步骤S704,对随机运动向量和长度大于或等于第三预设阈值的中间运动向量进行长度归一化处理,得到各个目标关键点对应的当前运动向量。

具体地,为了提高基于视频指纹进行视频匹配的准确性,可以对于静止的目标关键点的运动向量做随机扰动处理,避免因为静止的目标关键点误匹配而导致视频误匹配。服务器可以从各个中间运动向量中,获取长度小于第三预设阈值的中间运动向量作为静态运动向量,静态运动向量表示静止的目标关键点对应的运动向量。接着,服务器可以对将静态运动向量随机赋值为随机运动向量,也就是,将静态运动向量值随机初始化,生成随机运动向量,此时随机运动向量的向量长度不限。最后,对随机运动向量和长度大于或等于第三预设阈值的中间运动向量进行长度归一化处理,将所有运动向量的模长归一化到单位向量长度,得到各个目标关键点对应的当前运动向量。其中,第三预设阈值可以根据实际需要进行设置。

可以理解,也可以将各个静态运动向量随机赋值为单位向量长度的随机运动向量,也就是,随机运动向量的长度为单位向量长度,但是不同的随机运动向量中各个向量值可以是不同的。后续,随机运动向量就可以不需要进行长度归一化处理,直接对长度大于或等于第三预设阈值的中间运动向量进行长度归一化处理。

在一个实施例中,融合向量的生成方法包括以下方式中的任意一种:将同一目标关键点对应的运动向量嵌入到对应的特征向量中预设位置,得到对应的融合向量;将同一目标关键点对应的运动向量和特征向量进行向量拼接,得到对应的融合向量。

具体地,将目标关键点对应的运动向量和特征向量进行融合生成融合向量可以是将目标关键点对应的运动向量嵌入到特征向量中预设位置。例如,基于SIFT算法得到的目标关键点的特征向量为由128个向量值组成的向量,即特征向量为128位。经过实验发现,128位中有若干位的向量值通常为0,因此,可以将运动向量嵌入到特征向量中向量值为0的位置,得到融合向量。运动向量包括前向运动向量和后向运动向量时,前向运动向量包括表示前向运动信息的x和y坐标,后向运动向量包括表示后向运动信息的x和y坐标,一共四个数据。经过实验发现,特征向量中第1、32、96、128位有较大概率为0,因此可以选择将运动向量嵌入这四个位置。当然,将目标关键点对应的运动向量和特征向量进行融合生成融合向量也可以是将运动向量和特征向量进行向量拼接,得到融合向量。

本实施例中,将运动向量嵌入特征向量得到融合向量,能够保障融合向量和特征向量的位数相同,从而保障服务器处理视频的兼容性,开发人员只需要以特征向量的位数设计软件程序。将运动向量和特征向量进行拼接得到融合向量,能够保障特征向量的完整性,后续基于视频指纹进行视频匹配能够考虑到更多的信息,从而提高视频匹配的准确性。

在一个实施例中,如图8所示,提供了一种视频匹配方法。可以理解,视频匹配方法可以由终端或服务器单独执行,也可以由终端和服务器协同执行。在本实施例中,以该方法由服务器执行为例进行说明,包括以下步骤:

步骤S802,获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹。

具体地,第一视频和第二视频可以是同一平台发布的视频,也可以是不同平台发布的视频。服务器可以在本地或从终端、其他服务器获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹,基于第一视频指纹和第二视频指纹进行第一视频和第二视频的视频匹配,确定第一视频和第二视频是否为相似视频。

其中,视频指纹的生成方法包括:从当前视频中确定目标视频帧,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量,将同一目标关键点对应的运动向量和特征向量进行融合,得到融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合,基于目标视频帧对应的更新特征向量集合得到当前视频对应的视频指纹。

当前视频为第一视频或第二视频。若当前视频为第一视频,目标视频帧为第一视频帧,目标关键点为第一关键点。若当前视频为第二视频,目标视频帧为第二视频帧,目标关键点为第二关键点。

可以理解,生成视频指纹的具体过程可以参照前述视频指纹生成方法的各个相关实施例所述的方法,此处不再赘述。

步骤S804,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果。

具体地,服务器可以将第一视频指纹和第二视频指纹进行匹配,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果。视频匹配结果包括视频相似和视频不相似。在视频推荐和视频搜索场景中,当视频匹配结果为视频相似时,第一视频和第二视频中的一个视频不重复推荐给用户,当视频匹配结果为视频不相似时,第一视频和第二视频都可以推荐给用户。在视频版权保护场景中,当视频匹配结果为视频相似时,在第一视频和第二视频中确定侵权视频,并警告侵权视频对应的用户或平台下架相关视频。

上述视频匹配方法,通过获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果。其中,视频指纹的生成方法包括:从当前视频中确定目标视频帧,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量;基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配;基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量;将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合;基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹;当前视频为第一视频或第二视频。这样,关键点的特征信息可以用于表示视频帧的局部信息,不同的关键点对应不同的局部信息,基于各个视频帧中各个关键点的特征信息生成的视频指纹的信息更丰富更全面,能够有效提高视频指纹的准确性。进一步的,关键点的特征信息不仅包括图像信息还包括运动信息,特征向量表示图像信息,运动向量表示运动信息,融合向量融合了图像信息和运动信息,相应的,视频指纹不仅包括图像信息还包括运动信息,可以进一步提高视频指纹的准确性。从而在基于这样的视频指纹进行图像匹配时,可以有效提高视频匹配的准确性。

在一个实施例中,第一视频指纹包括各个第一视频帧分别对应的第一更新特征向量集合,第二视频指纹包括各个第二视频帧分别对应的第二更新特征向量集合。如图9所示,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果,包括:

步骤S902,将各个第一更新特征向量集合分别和各个第二更新特征向量集合进行匹配,根据匹配结果确定各个第一视频帧分别和各个第二视频帧的视频帧匹配结果。

步骤S904,基于视频帧匹配结果为匹配成功的视频帧对数计算相似视频帧比例,基于相似视频帧比例确定第一视频和第二视频的视频匹配结果。

其中,第一视频指纹包括各个第一视频帧分别对应的第一更新特征向量集合,一个第一更新特征向量集合可以表示一个第一视频帧的图像指纹,各个第一视频帧的图像指纹组成第一视频指纹。一个第一更新特征向量集合中包括一个第一视频帧中各个第一关键点分别对应的更新特征向量。第二视频指纹包括各个第二视频帧分别对应的第二更新特征向量集合,一个第二更新特征向量集合可以表示一个第二视频帧的图像指纹,各个第二视频帧的图像指纹组成第二视频指纹。一个第二更新特征向量集合中包括一个第二视频帧中各个第二关键点分别对应的更新特征向量。

具体地,在进行视频指纹匹配时,服务器可以将各个第一更新特征向量集合分别和各个第二更新特征向量集合进行匹配,根据匹配结果确定各个第一视频帧分别和各个第二视频帧的视频帧匹配结果。在将一个第一更新特征向量集合和一个第二更新特征向量集合进行匹配时,服务器可以计算各个第一关键点分别和各个第二关键点之间的更新特征向量距离,确定第一视频帧和第二视频帧中相似的第一关键点和第二关键点,根据相似关键点比例确定第一视频帧和第二视频帧是否匹配成功。视频帧匹配结果包括匹配成功和匹配失败。当一个第一视频帧和一个第二视频帧的视频帧匹配结果为匹配成功时,表明该第一视频帧和该第二视频帧为相似视频帧,组成一对视频帧。当一个第一视频帧和一个第二视频帧的视频帧匹配结果为匹配失败时,表明该第一视频帧和该第二视频帧不是相似视频帧。在确定视频帧匹配结果后,服务器可以基于视频帧匹配结果为匹配成功的视频帧对数计算相似视频帧比例,基于相似视频帧比例确定第一视频和第二视频的视频匹配结果。相似视频帧比例用于表示相似视频帧在视频中的占比,当相似视频帧比例大于视频帧比例阈值时,可以确定视频匹配结果为视频相似,当相似视频帧比例小于或等于视频帧比例阈值时,可以确定视频匹配结果为视频不相似。可以理解,第一视频指纹和第二视频指纹的匹配度包括各个视频帧匹配结果和相似视频帧比例。

本实施例中,先确定第一视频和第二视频之间的相似视频帧,再基于相似视频帧对数计算相似视频帧比例,最后基于相似视频帧比例确定视频匹配结果,能够得到准确的视频匹配结果。

在一个实施例中,第一更新特征向量集合包括多个第一关键点对应的更新特征向量,第二更新特征向量集合包括多个第二关键点对应的更新特征向量。如图10所示,将各个第一更新特征向量集合分别和各个第二更新特征向量集合进行匹配,根据匹配结果确定各个第一视频帧分别和各个第二视频帧的视频帧匹配结果,包括:

步骤S1002,从各个第一更新特征向量集合中确定第一目标更新特征向量集合,从各个第二更新特征向量集合中确定第二目标更新特征向量集合。

步骤S1004,在第一目标更新特征向量集合和第二目标更新特征向量集合中,基于第一关键点和第二关键点之间的更新特征向量距离,将第一关键点和第二关键点进行匹配。

步骤S1006,基于匹配成功的关键点对数计算相似关键点比例,基于相似关键点比例确定第一目标更新特征向量集合对应的第一视频帧和第二目标更新特征向量集合对应的第二视频帧的视频帧匹配结果。

具体地,服务器可以从各个第一更新特征向量集合中随机选取一个第一更新特征向量集合作为第一目标更新特征向量集合,从各个第二更新特征向量集合中随机选取一个第二更新特征向量集合作为第二目标更新特征向量集合。在第一目标更新特征向量集合和第二目标更新特征向量集合中,基于第一关键点和第二关键点之间的更新特征向量距离,将第一关键点和第二关键点进行匹配。当一个第一关键点和一个第二关键点之间的更新特征向量距离小于第四预设阈值时,可以确定该第一关键点和该第二关键点为一对相似关键点,该第一关键点和该第二关键点匹配成功。基于匹配成功的关键点对数计算相似关键点比例,基于相似关键点比例确定第一目标更新特征向量集合对应的第一视频帧和第二目标更新特征向量集合对应的第二视频帧的视频帧匹配结果。相似关键点比例用于表示相似关键点在视频帧中的占比,当相似关键点比例大于关键点比例阈值时,可以确定视频帧匹配结果为匹配成功,两个视频帧为相似视频帧,当相似关键点比例小于或等于关键点比例阈值时,可以确定视频帧匹配结果为匹配失败,两个视频帧不是相似视频帧。也就是,服务器可以计算任意两个视频帧中关键点之间的更新特征向量距离,从而找到两个视频帧之间的相似关键点数量,进而确定两个视频帧是否为相似视频帧。

本实施例中,先确定两个视频帧之间的相似关键点,再基于相似关键点对数计算相似关键点比例,最后基于相似关键比例确定视频帧匹配结果,能够得到准确的视频帧匹配结果。

在一个实施例中,在第一目标更新特征向量集合和第二目标更新特征向量集合中,基于第一关键点和第二关键点之间的更新特征向量距离,将第一关键点和第二关键点进行匹配,包括:当更新特征向量距离小于第四预设阈值时,确定对应的第一关键点和第二关键点匹配成功。

具体地,在进行关键点匹配时,当一个第一关键点和一个第二关键点之间的更新特征向量距离小于第四预设阈值时,可以确定该第一关键点和该第二关键点匹配成功。其中,第四预设阈值可以根据实际需要进行设置。

本实施例中,在进行不同视频之间的关键点匹配时,只考虑关键点之间的更新特征向量距离,不考虑关键点之间的位置距离。这样,在平移过的图像中也能够找出相互匹配的关键点。

在一个实施例中,如图11所示,基于匹配成功的关键点对数计算相似关键点比例,基于相似关键点比例确定第一目标更新特征向量集合对应的第一视频帧和第二目标更新特征向量集合对应的第二视频帧的视频帧匹配结果,包括:

步骤S1102,基于第一目标更新特征向量集合中更新特征向量数量确定第一关键点数量,基于第二目标更新特征向量集合中更新特征向量数量确定第二关键点数量。

步骤S1104,将第一关键点数量和第二关键点数量中数量较少的关键点数量作为参考关键点数量。

步骤S1106,基于匹配成功的关键点对数确定相似关键点数量,基于相似关键点数量和参考关键点数量得到相似关键点比例。

步骤S1108,当相似关键点比例大于第五预设阈值时,确定对应的第一视频帧和第二视频帧的视频帧匹配结果为匹配成功。

具体地,为了计算相似关键点比例,需要确定相似关键点数量和参考关键点数量,从而基于相似关键点数量和参考关键点数量的比值计算得到相似关键点比例。因为一个更新特征向量集合中的一个更新特征向量对应一个目标关键点,所以服务器可以基于第一目标更新特征向量集合中更新特征向量数量确定第一关键点数量,基于第二目标更新特征向量集合中更新特征向量数量确定第二关键点数量。服务器可以基于匹配成功的关键点对数确定相似关键点数量,例如,当匹配成功的关键点对数为6对时,相似关键点数量为6。接着,服务器可以将第一关键点数量和第二关键点数量中数量较少的关键点数量作为参考关键点数量,将相似关键点数量和参考关键点数量的比值作为相似关键点比例。进一步的,当相似关键点比例大于第五预设阈值时,可以确定对应的第一视频帧和第二视频帧的视频帧匹配结果为匹配成功。当相似关键点比例小于或等于第五预设阈值时,可以确定对应的第一视频帧和第二视频帧的视频帧匹配结果为匹配失败。其中,第五预设阈值可以根据实际需要进行设置。

举例说明,假设第五预设阈值为80%,第一视频帧包括8个关键点,第二视频帧包括10个关键点,第一视频帧和第二视频帧之间的相似关键点对数为7。那么,第一视频帧和第二视频帧之间的相似关键点数量为7,参考关键点数量为8,相似关键点比例为87.5%>80%,因此可以确定该第一视频帧和第二视频帧为相似视频帧,视频帧匹配结果为匹配成功。

本实施例中,将第一关键点数量和第二关键点数量中数量较少的关键点数量作为参考关键点数量,基于相似关键点数量和参考关键点数量可以得到准确的相似关键点比例。这样,即使一个视频帧是对另一个视频帧的简单扩充,也能确定这两个视频帧包括相同的内容,是相似的视频帧。

在一个实施例中,如图12所示,基于视频帧匹配结果为匹配成功的视频帧对数计算相似视频帧比例,基于相似视频帧比例确定第一视频和第二视频的视频匹配结果,包括:

步骤S1202,获取第一视频对应的第一视频帧数量,获取第二视频对应的第二视频帧数量。

步骤S1204,将第一视频帧数量和第二视频帧数量中数量较少的视频帧数量作为参考视频帧数量。

步骤S1206,基于视频帧匹配结果为匹配成功的视频帧对数确定相似视频帧数量,基于相似视频帧数量和参考视频帧数量得到相似视频帧比例。

步骤S1208,当相似视频帧比例大于第六预设阈值时,确定视频匹配结果为视频相似。

步骤S1210,当相似视频帧比例小于或等于第六预设阈值时,确定视频匹配结果为视频不相似。

具体地,为了计算相似视频帧比例,需要确定相似视频帧数量和参考视频帧数量,从而基于相似视频帧数量和参考视频帧数量的比值计算得到相似视频帧比例。服务器可以基于视频帧匹配结果为匹配成功的视频帧对数确定相似视频帧数量,例如,当匹配成功的视频帧对数为10对时,相似视频帧数量为10。服务器可以获取第一视频对应的第一视频帧数量,获取第二视频对应的第二视频帧数量,将第一视频帧数量和第二视频帧数量中数量较少的视频帧数量作为参考视频帧数量。从而,服务器可以将相似视频帧数量和参考视频帧数量的比值作为相似视频帧比例。当相似视频帧比例大于第六预设阈值时,可以确定第一视频和第二视频的视频匹配结果为视频相似。当相似视频帧比例小于或等于第六预设阈值时,可以确定第一视频和第二视频的视频匹配结果为视频不相似。其中,第六预设阈值可以根据实际需要进行设置。

举例说明,假设第六预设阈值为80%,第一视频包括50个第一视频帧,第二视频包括100个第二视频帧,第一视频和第二视频之间的相似视频帧对数为42。那么,第一视频和第二视频之间的相似视频帧数量为42,参考关键点数量为50,相似关键点比例为84%>80%,因此可以确定第一视频和第二视频为相似视频,视频匹配结果为视频相似。

本实施例中,将第一视频帧数量和第二视频帧数量中数量较少的视频帧数量作为参考视频帧数量,基于相似视频帧数量和参考视频帧数量得到相似视频帧比例。这样,即使一个视频是对另一个视频的简单扩充,也能确定这两个视频包括相同的内容,是相似的视频。

在一个实施例中,所述方法还包括:当视频匹配结果为视频相似时,禁止向第一视频对应的浏览用户终端推荐第二视频,禁止向第二视频对应的浏览用户终端推荐第一视频。

具体地,当视频匹配结果为视频相似时,表明第一视频和第二视频为相似视频。那么,服务器可以禁止向第一视频对应的浏览用户终端推荐第二视频,禁止向第二视频对应的浏览用户终端推荐第一视频,从而避免向同一用户重复推荐视频。

在一个实施例中,所述方法还包括:

当所述视频匹配结果为视频相似时,从第一视频和第二视频中筛选出视频发布时间最新的视频作为警告视频,向警告视频对应的发布用户终端发送警告信息。

具体地,当视频匹配结果为视频相似时,表明第一视频和第二视频为相似视频。那么,服务器可以从第一视频和第二视频中筛选出视频发布时间最新的视频作为警告视频,向警告视频对应的发布用户终端发送警告信息,以警告该警告视频对应的发布用户下线侵权视频,保护另一个视频的视频版权。

本申请还提供一种应用场景,该应用场景可适用于上述的视频指纹生成方法和视频匹配方法。具体地,视频指纹生成方法和视频匹配方法在该应用场景的应用如下:

在游戏领域,游戏类视频存在短时新热现象,即在游戏赛事或者新品发布的时候会有大量相关视频被上传,所以游戏类视频的重复度检测十分重要。

参考图13A,图13A为视频匹配的流程示意图。

1、视频解码

对视频进行解码,得到视频帧序列{I

2、提取视频帧中的关键点和对应的SIFT特征

在各个GPF中,分别提取各个视频帧中的关键点和每个关键点对应的SIFT特征(即特征向量)。

3、视频帧之间的关键点匹配

在定位帧和前向帧之间进行关键点匹配,在定位帧和后向帧之间进行关键点匹配。在一个GOF之间,图像具有一定的相似性,而检测到的关键点也具有连续性,即在定位帧上检测到的关键点大概率可以在前向帧以及后向帧上面找到对应的关键点。具体的关键点匹配采用基于特征向量的最邻近算法,即将一张图片中某一个特征向量和另一张图片中的所有特征向量中欧式距离最小且小于预设阈值的那一个特征向量作为匹配的关键点对应的特征向量。同时,在短时帧间图像运动不会过于剧烈,特征向量距离最小的关键点需要在图像坐标上的距离小于三分之一图像宽度才能够被考虑成是匹配上的关键点。

4、运动特征构建

从定位帧上面的关键点出发,若在前向帧上找到对应的关键点,那么可以得到前向运动向量,若在后向帧上找到对应的关键点,那么可以得到后向运动向量。运动向量的计算公式可以为:

在进行方向归一化之后再进行模长归一化,将所有向量的模长归一化到单位向量长度,这样可以免去运动向量的模长带来的误差,从而使特征专注于在运动角度上。此外对于静止的关键点的运动向量做随机扰动处理,如此可以有效地减少该关键点对应的局部图像区域误匹配导致的整体误匹配的现象。例如,参考图13B,游戏视频中的左上角的游戏账号信息和右下角的游戏控件通常是静止的。

由此,定位帧上的每个既有前向关键点又有向后关键点的关键点都可以获得前向x,y,后向x,y一共四个特征值,该特征值表征了关键点在一个短时视频区间中的运动信息,即在一个GOF中的运动信息。

5、运动特征嵌入

运行向量表示运动特征,运动特征可以表征关键点的运动信息,而关键点的特征向量可以表征其在一个局部图像区域中的视觉特征,将两者结合起来可以有效地构建一个稳定的、具有区分度的融合向量。经过观察,特征向量本身会有部分位的值为0,同时为了将融合向量完全和特征向量兼容,可以将4位具有运动信息的特征值嵌入原有128位的特征向量中的固定的4个位置。经过实验发现,第1、32、96、128位有较大概率为0,故可以选择这四个位置。最终一个定位帧可以得到由一组关键点对应的融合向量组成的图像指纹。

6、视频指纹生成

一个视频的视频指纹由视频中所有定位帧的图像指纹组成。

7、视频匹配

视频间的匹配具体是计算视频间两个视频帧中的关键点对应的融合向量之间的欧式距离,可以找到视频帧之间相似关键点的数量,这里匹配上的关键点将不仅仅是图像维度的相似,在对应的运动维度上也相似。通过统计两个视频帧之间匹配上的关键点的数量可以确定出二者是否为相似的视频帧。通过统计两个视频间相似视频帧的数量可以得到两个视频是否为相似视频。

在游戏类的视频中,因为其画面本身就是具有大量相似元素的,所以两个不同对局的游戏视频间是会出现大量的相似局部区域的,以至于只基于特征向量无法区分出相同的对局和相似但不同的对局,容易出现大量的误匹配现象,匹配精度难以达到业务要求。然而,采用本申请实施例的视频匹配方法,基于融入运动向量的融合向量得到的视频指纹可以区分出相同的对局和相似但不同的对局。因为游戏在进行中会产生非常丰富的运动信息,包括背景的运动以及角色主体的运动,而不同对决中运动的模式相同的概率较小,所以通过融合运动向量和特征向量得到的视频指纹,可以在时序的层面区分画面是否相似的两个游戏视频。基于帧间关键点的运动信息构建时空相结合的融合向量,可以很好的提高游戏类视频间相似关系的匹配精度。可以很好地将真实相同的游戏视频以较高的特征相似度表征出来,同时可以将背景高度相似的不同对局的游戏视频很好地区分开来,从而提供更准确的游戏视频匹配结果。

可以理解,上述视频匹配方法还可以应用到其他运动信息丰富,背景相似的视频品类中,例如体育赛事类等,提高体育视频匹配结果的准确性。

应该理解的是,虽然图2、4、6-13A的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4、6-13A中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图14所示,提供了一种视频指纹生成装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:视频获取模块1402、特征向量生成模块1404、关键点匹配模块1406、运动向量生成模块1408、特征向量更新模块1410和视频指纹生成模块1412,其中:

视频获取模块1402,用于获取目标视频,从目标视频中确定目标视频帧;

特征向量生成模块1404,用于分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量;

关键点匹配模块1406,用于基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配;

运动向量生成模块1408,用于基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量;

特征向量更新模块1410,用于将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合;

视频指纹生成模块1412,用于基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。

上述视频指纹生成装置,通过获取目标视频,从目标视频中确定目标视频帧;分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合;目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量;基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配;基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量;将同一目标关键点对应的运动向量和特征向量进行融合,得到对应的融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合;基于目标视频帧对应的更新特征向量集合得到目标视频对应的视频指纹。这样,关键点的特征信息可以用于表示视频帧的局部信息,不同的关键点对应不同的局部信息,基于各个视频帧中各个关键点的特征信息生成的视频指纹的信息更丰富更全面,能够有效提高视频指纹的准确性。进一步的,关键点的特征信息不仅包括图像信息还包括运动信息,特征向量表示图像信息,运动向量表示运动信息,融合向量融合了图像信息和运动信息,相应的,视频指纹不仅包括图像信息还包括运动信息,可以进一步提高视频指纹的准确性。

在一个实施例中,特征向量生成模块还用于对当前视频帧进行尺度变换,得到当前视频帧对应的多个图像尺度的候选视频帧;当前视频帧为目标视频帧或参考视频帧;对各个候选视频帧进行极值像素点检测和拟合,得到当前视频帧对应的多个当前关键点;基于包含当前关键点的预设范围图像区域对应的局部图像特征生成当前关键点对应的特征向量;基于各个当前关键点对应的特征向量生成当前视频帧对应的当前特征向量集合。

在一个实施例中,关键点匹配模块还用于计算当前目标关键点对应的特征向量分别和各个参考关键点对应的特征向量之间的特征向量距离,得到当前目标关键点对应的多个特征向量距离;当最小特征向量距离小于第一预设阈值时,将最小特征向量距离对应的参考关键点作为与当前目标关键点匹配的参考关键点。

在一个实施例中,关键点匹配模块还用于当最小特征向量距离对应的参考关键点和当前目标关键点的位置距离小于第二预设阈值时,将最小特征向量距离对应的参考关键点作为与当前目标关键点匹配的参考关键点。

在一个实施例中,目标视频帧对应的参考视频帧包括目标视频帧对应的前向视频帧和后向视频帧中的至少一种,前向视频帧对应的参考关键点为前向关键点,后向视频帧对应的参考关键点为后向关键点,运动向量包括前向运动向量和后向运动向量中的至少一种。运动向量生成模块还用于当匹配成功的参考关键点为目标关键点的前向关键点时,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的前向运动向量;当匹配成功的参考关键点为目标关键点的后向关键点时,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的后向运动向量。

在一个实施例中,当前运动向量为前向运动向量或后向运动向量。运动向量生成模块还用于基于匹配成功的目标关键点和参考关键点的位置距离生成各个目标关键点对应的初始运动向量;初始运动向量携带向量方向;将同一向量方向对应的初始运动向量进行聚类,得到各个向量方向分别对应的聚类簇;统计同一聚类簇内初始运动向量的数量,得到各个聚类簇对应的统计值;将最大统计值的聚类簇对应的向量方向作为目标方向;基于目标方向旋转各个初始运动向量,得到各个目标关键点对应的当前运动向量。

在一个实施例中,运动向量生成模块还用于基于目标方向旋转各个初始运动向量,得到各个目标关键点对应的中间运动向量;对各个中间运动向量进行长度归一化处理,得到各个目标关键点对应的当前运动向量。

在一个实施例中,从各个中间运动向量中,获取长度小于第三预设阈值的中间运动向量作为静态运动向量,将静态运动向量随机赋值为随机运动向量;对随机运动向量和长度大于或等于第三预设阈值的中间运动向量进行长度归一化处理,得到各个目标关键点对应的当前运动向量。

在一个实施例中,特征向量更新模块还用于将同一目标关键点对应的运动向量嵌入到对应的特征向量中预设位置,得到对应的融合向量。特征向量更新模块还用于将同一目标关键点对应的运动向量和特征向量进行向量拼接,得到对应的融合向量。

在一个实施例中,如图15所示,提供了一种视频匹配装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:视频指纹生成模块1502和视频指纹匹配模块1504,其中:

视频指纹生成模块1502,用于获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹;

视频指纹匹配模块1504,用于基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果;

其中,视频指纹的生成方法包括:从当前视频中确定目标视频帧,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量,将同一目标关键点对应的运动向量和特征向量进行融合,得到融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合,基于目标视频帧对应的更新特征向量集合得到当前视频对应的视频指纹;当前视频为第一视频或第二视频。

上述视频匹配装置,通过获取第一视频和第二视频,生成第一视频对应的第一视频指纹和第二视频对应的第二视频指纹,基于第一视频指纹和第二视频指纹的匹配度确定第一视频和第二视频的视频匹配结果。其中,视频指纹的生成方法包括:从当前视频中确定目标视频帧,分别从目标视频帧和目标视频帧对应的参考视频帧中提取关键点,生成各个关键点对应的特征向量,得到目标视频帧对应的目标特征向量集合和参考视频帧对应的参考特征向量集合,目标特征向量集合包括目标视频帧中的各个目标关键点分别对应的特征向量,参考特征向量集合包括参考视频帧中的各个参考关键点分别对应的特征向量,基于目标关键点和参考关键点之间的特征向量距离,将目标关键点和参考关键点进行匹配,基于匹配成功的目标关键点和参考关键点的位置距离生成目标关键点对应的运动向量,将同一目标关键点对应的运动向量和特征向量进行融合,得到融合向量,基于融合向量更新目标特征向量集合,得到更新特征向量集合,基于目标视频帧对应的更新特征向量集合得到当前视频对应的视频指纹;当前视频为第一视频或第二视频。关键点的特征信息可以用于表示视频帧的局部信息,不同的关键点对应不同的局部信息,基于各个视频帧中各个关键点的特征信息生成的视频指纹的信息更丰富更全面,能够有效提高视频指纹的准确性。进一步的,关键点的特征信息不仅包括图像信息还包括运动信息,特征向量表示图像信息,运动向量表示运动信息,融合向量融合了图像信息和运动信息,相应的,视频指纹不仅包括图像信息还包括运动信息,可以进一步提高视频指纹的准确性。从而在基于这样的视频指纹进行图像匹配时,可以有效提高视频匹配的准确性。

在一个实施例中,第一视频指纹包括各个第一视频帧分别对应的第一更新特征向量集合,第二视频指纹包括各个第二视频帧分别对应的第二更新特征向量集合。视频指纹匹配模块包括视频帧匹配单元和视频匹配结果确定单元,其中:

视频帧匹配单元,用于将各个第一更新特征向量集合分别和各个第二更新特征向量集合进行匹配,根据匹配结果确定各个第一视频帧分别和各个第二视频帧的视频帧匹配结果。

视频匹配结果确定单元,用于基于视频帧匹配结果为匹配成功的视频帧对数计算相似视频帧比例,基于相似视频帧比例确定第一视频和第二视频的视频匹配结果。

在一个实施例中,第一更新特征向量集合包括多个第一关键点对应的更新特征向量,第二更新特征向量集合包括多个第二关键点对应的更新特征向量。视频帧匹配单元还用于从各个第一更新特征向量集合中确定第一目标更新特征向量集合,从各个第二更新特征向量集合中确定第二目标更新特征向量集合;在第一目标更新特征向量集合和第二目标更新特征向量集合中,基于第一关键点和第二关键点之间的更新特征向量距离,将第一关键点和第二关键点进行匹配;基于匹配成功的关键点对数计算相似关键点比例,基于相似关键点比例确定第一目标更新特征向量集合对应的第一视频帧和第二目标更新特征向量集合对应的第二视频帧的视频帧匹配结果。

在一个实施例中,视频帧匹配单元还用于当更新特征向量距离小于第四预设阈值时,确定对应的第一关键点和第二关键点匹配成功。

在一个实施例中,视频帧匹配单元还用于基于第一目标更新特征向量集合中更新特征向量数量确定第一关键点数量,基于第二目标更新特征向量集合中更新特征向量数量确定第二关键点数量;将第一关键点数量和第二关键点数量中数量较少的关键点数量作为参考关键点数量;基于匹配成功的关键点对数确定相似关键点数量,基于相似关键点数量和参考关键点数量得到相似关键点比例;当相似关键点比例大于第五预设阈值时,确定对应的第一视频帧和第二视频帧的视频帧匹配结果为匹配成功。

在一个实施例中,视频匹配结果确定单元还用于获取第一视频对应的第一视频帧数量,获取第二视频对应的第二视频帧数量;将第一视频帧数量和第二视频帧数量中数量较少的视频帧数量作为参考视频帧数量;基于视频帧匹配结果为匹配成功的视频帧对数确定相似视频帧数量,基于相似视频帧数量和参考视频帧数量得到相似视频帧比例;当相似视频帧比例大于第六预设阈值时,确定视频匹配结果为视频相似;当相似视频帧比例小于或等于第六预设阈值时,确定视频匹配结果为视频不相似。

在一个实施例中,如图16所示,所述装置还包括:

信息推送模块1506,用于当视频匹配结果为视频相似时,禁止向第一视频对应的浏览用户终端推荐第二视频,禁止向第二视频对应的浏览用户终端推荐所述第一视频。

在一个实施例中,信息推送模块还用于当视频匹配结果为视频相似时,从第一视频和第二视频中筛选出视频发布时间最新的视频作为警告视频,向警告视频对应的发布用户终端发送警告信息。

关于视频指纹生成装置的具体限定可以参见上文中对于视频指纹生成方法的限定,在此不再赘述。关于视频匹配装置的具体限定可以参见上文中对于视频匹配方法的限定,在此不再赘述。上述视频指纹生成装置或视频匹配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储视频指纹、各个预设阈值等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种视频指纹生成方法或视频匹配方法。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图18所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种视频指纹生成方法或视频匹配方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图17、18中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 视频指纹生成方法、视频匹配方法、装置和计算机设备
  • 视频指纹生成和匹配方法及装置、计算机设备和存储介质
技术分类

06120112531993