一种视频匹配方法和装置及设备与流程

文档序号:21084273发布日期:2020-06-12 16:47阅读:145来源:国知局
一种视频匹配方法和装置及设备与流程

本公开涉及数据处理技术领域,特别涉及一种视频匹配方法和装置及设备。



背景技术:

目前,各大视频平台都具有视频推荐功能,视频平台根据用户查看的某视频的介绍或者观看的某视频,自动为用户推荐并呈现与用户查看或观看的视频相关的视频。同时,用户在各大视频平台上传自己录制的视频时,视频平台需要对用户上传的视频进行审核,筛选掉内容相似或不符合要求的视频,对于这类视频,禁止上传到各大视频平台。

视频相似度衡量技术在视频推荐、视频审核等方面有十分重要的作用,现有的方案中计算两个视频相似度通常采用累计最小距离的方法,该方法分别将第一视频的各视频帧与第二视频的各视频帧匹配,找到第二视频中与第一视流中各视频帧相似度最高的匹配帧,并将第一视频中所有视频帧与对应匹配帧的相似度进行求和,除以第一视频的采样帧数,得到第一视频对第二视频的视频相似度。

累计最小距离的方法在求解视频相似度时,直接在第二视频中选出与第一视频x中的各个视频帧最相似的视频帧,该方法导致得到的第一视频与第二视频的相似度是不准确的,并不能得到第一视频与第二视频的最大相似度。



技术实现要素:

本公开提供了一种视频匹配方法和装置及设备,用以解决累计最小距离的方法在求解视频相似度时,直接在第二视频中选出与第一视频x中的各个视频帧最相似的视频帧,导致得到的第一视频与第二视频的相似度是不准确的,并不能得到第一视频与第二视频的最大相似度的问题。

根据本公开实施例的第一方面,提供一种视频匹配方法,该方法包括:

获取包括多个视频帧的第一视频和第二视频;

将所述第一视频中各视频帧映射为上层视频节点,将所述第二视频中各视频帧映射为下层视频节点;

将有连接路径的上层视频节点和下层视频节点的视频相似度作为路径的流容量,根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系;

根据所述连接关系,计算有连接路径的上层视频节点和下层视频节点的视频相似度的总和,得到最大流容量总和;

根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配。

可选地,还包括:

确定第二视频中视频帧的数量小于第一视频中视频帧的数量时,复制所述第二视频至少一次,至重新得到的第二视频中的视频帧的数量不小于第一视频中视频帧的数量。

可选地,所述第二视频被复制的次数为a=ceil(n/m),其中ceil表示向上取整,n为第一视频中视频帧的帧数,m为第二视频中视频帧的帧数。

可选地,根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配,包括:

将所述流容量总和除以第一视频中视频帧的帧数,得到所述第一视频与第二视频的相似度;

当所述第一视频与第二视频的相似度大于预设阈值时,确定所述第一视频和第二视频匹配。

可选地,根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系,包括:

利用ford-fulkerson算法,确定各上层视频节点和各下层视频节点一一对应的连接关系。

可选地,确定有连接路径的上层视频节点和下层视频节点的视频相似度,包括:

确定所述上层视频节点和下层视频节点的余弦距离:

其中,x第一视频中视频帧的特征向量,y为第二视频中视频帧的特征向量。

可选地,所述上层视频节点和下层视频节点为图理论中的节点,任意两个有连接关系的节点之间的视频相似度为节点之间的流容量,还包括:

初始化图理论的开始节点到上层视频节点之间的视频相似度为零,及初始化图理论中的下层视频节点到汇节点的流容量为零。

根据本公开实施例的第二方面,提供一种视频匹配装置,包括:

获取单元,被配置为执行获取包括多个视频帧的第一视频和第二视频;

映射单元,被配置为执行将所述第一视频中各视频帧映射为上层视频节点,将所述第二视频中各视频帧映射为下层视频节点;

确定单元,被配置为执行将有连接路径的上层视频节点和下层视频节点的视频相似度作为路径的流容量,根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系;

计算单元,被配置为执行根据所述连接关系,计算有连接路径的上层视频节点和下层视频节点的视频相似度的总和,得到最大流容量总和;

匹配单元,被配置为执行根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配。

可选地,还包括:

复制单元,被配置为执行复制确定第二视频中视频帧的数量小于第一视频中视频帧的数量时,复制所述第二视频至少一次,至重新得到的第二视频中的视频帧的数量不小于第一视频中视频帧的数量。

可选地,所述复制单元被配置为执行所述第二视频被复制的次数为a=ceil(n/m),其中ceil表示向上取整,n为第一视频中视频帧的帧数,m为第二视频中视频帧的帧数。

可选地,所述匹配单元被配置为执行根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配,具体用于:

将所述流容量总和除以第一视频中视频帧的帧数,得到所述第一视频与第二视频的相似度;

当所述第一视频与第二视频的相似度大于预设阈值时,确定所述第一视频和第二视频匹配。

可选地,所述确定单元被配置为执行根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系,具体用于:

利用ford-fulkerson算法,确定各上层视频节点和各下层视频节点一一对应的连接关系。

可选地,所述计算单元被配置为执行确定有连接路径的上层视频节点和下层视频节点的视频相似度,具体用于:

确定所述上层视频节点和下层视频节点的余弦距离:

其中,x第一视频中视频帧的特征向量,y为第二视频中视频帧的特征向量。

可选地,所述映射单元被配置为执行所述上层视频节点和下层视频节点为图理论中的节点,任意两个有连接关系的节点之间的视频相似度为节点之间的流容量,还用于:

初始化图理论的开始节点到上层视频节点之间的视频相似度为零,及初始化图理论中的下层视频节点到汇节点的流容量为零。

根据本公开实施例的第三方面,提供一种视频匹配设备,包括:存储单元、处理单元;

其中,所述存储单元用于存储程序;

所述处理单元被配置为执行所述存储单元中的程序,包括如下步骤:

获取包括多个视频帧的第一视频和第二视频;

将所述第一视频中各视频帧映射为上层视频节点,将所述第二视频中各视频帧映射为下层视频节点;

将有连接路径的上层视频节点和下层视频节点的视频相似度作为路径的流容量,根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系;

根据所述连接关系,计算有连接路径的上层视频节点和下层视频节点的视频相似度的总和,得到最大流容量总和;

根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配。

根据本公开实施例的第四方面,提供一种芯片,所述芯片与用户设备中的存储单元耦合,使得所述芯片在运行时调用所述存储单元中存储的程序指令,实现本公开实施例上述各个方面以及各个方面涉及的任一可能设计的方法。

根据本公开实施例的第五方面,提供一种计算机可读存储介质,该计算机存储介质存储有程序指令,当其在计算机上运行时,使得计算机执行本公开实施例上述各个方面以及各个方面涉及的任一可能设计的方法。

根据本公开实施例的第六方面,提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本公开实施例上述各个方面以及各个方面涉及的任一可能设计的方法。

利用本公开提供的一种视频匹配方法和装置及设备,具有以下有益效果:

本公开提供的一种视频匹配方法和装置及设备,可以通过将需要进行匹配的两个视频的视频帧分别映射为上层视频节点和下层视频节点,之后再利用最大流计算方法,能够得到两个视频之间的最大相似度,避免了将两个视频的各视频帧分别一一匹配可能存在的,导致两个视频的视频相似度计算不准确的问题,本公开提出的方法能够更精确的判断两个视频是否匹配。

附图说明

为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例中提供的一种视频匹配方法示意图;

图2为本公开实施例中提供的一种视频匹配方法示意图;

图3为本公开实施例中提供的一种视频匹配方法示意图;

图4为本公开实施例中提供的一种视频匹配方法示意图;

图5为本公开实施例中提供的一种视频匹配装置结构示意图;

图6为本公开实施例中提供的一种视频匹配设备结构示意图。

具体实施方式

为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

为了方便理解,下面对本公开实施例中涉及的名词进行解释:

图理论:以图为研究对象,图理论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。

本公开实施例描述的应用场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。

为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

视频匹配技术在视频推荐、视频审核等方面有十分重要的作用,通过两个视频的相似度可以得到两个视频的匹配程度,现有的方案中计算两个视频相似度通常采用累计最小距离的方法,计算公式如下:

现有技术在使用累计最小距离的方法在求解视频相似度的方法,是将第一视频的各视频帧与第二视频的各视频帧进行匹配,找到第二视频中与第一视流中各视频帧相似度最高的匹配帧,并将第一视频中所有视频帧与对应匹配帧的相似度进行求和,除以第一视频的采样帧数,得到第一视频对第二视频的视频相似度,这样得到的第一视频和第二视频的相似度并不准确。

本公开提供的一种视频匹配方法,将最大流的求解方法应用到视频匹配方法中,将第一视频的各视频帧映射为上层的视频节点,将第二视频的各视频帧映射为下层视频节点,并将视频相似度作为有连接关系的上层视频节点和下层视频节点路径上的流容量,通过最大流计算方法得到两个视频的相似度总和,从而确定所述第一视频和第二视频是否匹配,最大流计算方法中,与上层节点连接的各下层节点之间的视频相似度可能不是最高的,但是得到的相似度总和是第一视频和第二视频的最大相似度总和。

实施例一

本公开提出的一种视频匹配方法如图1所示,包括:

步骤s101,获取包括多个视频帧的第一视频和第二视频;

本公开实施例中,将有匹配需求的两个视频分别作为第一视频和第二视频,视频相似度的匹配方法可以应用在很多领域,例如视频平台可以根据用户观看视频的喜好为用户推荐相似度较高的其他视频,在此不再一一赘述。

上述第一视频和第二视频包括的多个视频帧,可以为第一视频和第二视频的所有视频帧,作为一种可选的实施方式,可以对第一视频和第二视频进行采样处理,采样得到第一视频包括的各视频帧和第二视频包括的各视频帧,其中,分别对第一视频和第二视频采样的数量,可以根据应用场景的变化或者其他因素由本领域的技术人员设定。

步骤s102,将所述第一视频中各视频帧映射为上层视频节点,将所述第二视频中各视频帧映射为下层视频节点;

将第一视频中的各视频帧作为上层视频节点的各视频节点,将第二视频中各视频帧作为下层视频节点的各视频节点,此时的上层视频节点和下层视频节点分别为有向图中的两层节点,可选地,第一视频和第二视频仅为需要进行匹配的两个视频,不论第一视频为上层视频节点或者第二视频为上层视频节点,最终计算得到的相似度总和不变。

步骤s103,将有连接路径的上层视频节点和下层视频节点的视频相似度作为路径的流容量,根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系;

上层视频节点的各视频节点和下层视频节点的各视频节点的相似度可以通过欧式距离计算方法或者余弦距离计算方法等计算,欧氏距离计算方法可以计算二维平面上两点之间的欧氏距离,从而得到两个视频帧的相似度,其中,欧式距离越小,则两个视频帧的相似度越大,作为一种优选的实施方式,本公开实施例采用余弦距离计算方法计算上层视频节点和下层视频节点的相似度,余弦距离的计算方法包括,将视频帧输入已经预训练好的神经网络(比如公开的vgg(visualgeometrygroup,深度卷积神经网络)模型和inception_v3模型)里面,提取最后一层全联接层作为视频帧的特征向量,之后通过公式计算得到两个视频帧的相似度,如下:

其中,x第一视频中视频帧的特征向量,y为第二视频中视频帧的特征向量,上述公式得到的距离越小,则两个视频帧的相似度越大,本公开实施例中,需要将余弦距离计算方法得到的余弦距离得到的换算得到两个视频帧的相似度,该换算方法为现有技术,在此不再赘述。

通过上述余弦距离计算方法,得到第一视频中各视频帧和第二视频中各视频帧的相似度,也即上层视频节点和下层视频节点的视频相似度,其中,上层视频节点的各视频节点对应连接下层视频节点的各视频节点,将上层视频节点的各视频节点对应连接下层视频节点的各视频节点的视频相似度,作为连接路径的上层视频节点和下层视频节点的视频相似度作为路径的流容量。

根据最大流计算方法,可以得到上层视频节点和下层视频节点一一对应的连接关系,此时的连接关系中,上层视频节点的各视频节点对应下层视频节点中的匹配的视频节点,且上层视频节点的各视频节点对应的下层视频节点的各视频节点均不相同。最大流计算方法包括ek(edmondkarp)算法、dinic算法以及ford-fulkerson算法等,作为一种优选的实施方式,本公开实施例采用ford-fulkerson算法作为最大流计算方法,计算上层视频节点和下层视频节点的最大流容量总和。

上层视频节点和下层视频节点为图理论中的节点,任意两个有连接关系的节点之间的视频相似度为节点之间的流容量;

步骤s104,根据所述连接关系,计算有连接路径的上层视频节点和下层视频节点的视频相似度的总和,得到最大流容量总和;

得到各上层视频节点和各下层视频节点一一对应的连接关系,且根据最大流计算方法,此时得到的连接关系为上层视频节点和下层视频节点的相似度最大,利用余弦距离计算方法,计算有连接路径的上层视频节点和下层视频节点的视频相似度的总和,从而得到最大的流容量总和。

步骤s105,根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配。

将所述流容量总和除以第一视频中视频帧的帧数,得到第一视频与第二视频的相似度,根据上述得到的第一视频和第二视频的相似度确定第一视频和第二视频是否匹配,其中,当所述第一视频与第二视频的相似度大于预设阈值时,确定所述第一视频和第二视频匹配,上述预设阈值可以根据应用场景不同或者其他因素的改变而改变。

作为一种可选的实施方式,当第二视频帧的数量小于第一视频中视频帧的数量时,此时有可能出现第一视频的多个视频帧匹配到第二视频的同一个视频帧的问题,因此本公开提出复制所述第二视频至少一次,至复制后重新得到的第二视频中的视频帧的数量不小于第一视频中视频帧的数量。

作为一种可选的实施方式,可以用取整函数来计算第二视频被复制的次数为,取整公式如下:a=ceil(n/m),其中ceil表示向上取整,n为第一视频中视频帧的帧数,m为第二视频中视频帧的帧数。

图理论中的有向图具有以下两个特征:

1)每条边上有一个非负的容量(capacity);

2)分别有一个源点(sourcevertex),汇点(sinkvertex),源点和汇点称为端点(terminals)。

每条边上赋有一个流量(feasible),满足容量限制条件,容量限制条件为0≤流量≤每条边的非负容量;流量守恒条件表示为进入某一节点的总流等于离开某一节点的总流,整个网络中的流量成为一个可行流,在所有的可行流中,最大化流就是具有最大值的可行流,最大流可能不止一个。

满足上述条件的有向图网络作为流量网络。

本公开实施例中,将开始节点到上层视频节点之间的视频相似度设置为零,将下层视频节点到汇节点的流容量设置为零,将上层视频节点和下层视频节点的流容量总和作为上述图理论搭建的拓扑结构的流容量总和,将上层视频节点到有连接关系的下层视频节点的视频相似度作为两个节点之间的流量,将根据各上层视频节点和各下层视频节点一一对应的连接关系得到的视频相似度的总和,作为最大流容量的总和。

下面分别介绍本公开实施例提出的几种最大流计算方法,根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系,包括:

1)ek算法

ek算法的流程如下:

a.随意找一个可行流作为流量网络更新的基础(若没有规定可以采用流量为0的可行流);

b.利用bfs(breadthfirstsearch,宽度优先搜索算法)找一条从源点到汇点的可行流路径;

c.用新找到的可行流路径更新原有流量网络:先找到该可行流路径中流量最小边,然后将该路径上所有正向边都减去该最小边的流量,反向边都加上该最小边的流量;

d.不断重复b和c两个步骤,直到在b的时候找不到一条从源点到汇点的可行流路径,已经达到最大流的流量网络满足的特征是,源点能达到的所有点记作集合s,不能达到的所有点记作集合t,那么从s到t的所有边流量都为0,t到s的所有边的流量之和即为最大流。

2)dinic算法

dinic算法在ek算法的基础上进行了优化,其时间复杂度为o(n*n*m)。dinic算法在找增广路时也是找最短增广路,但与ek算法不同的是dinic算法并不是每次bfs只找一个增广路,他会首先通过一次bfs为所有点添加一个标号,构成一个层次图,然后在层次图中寻找增广路进行更新,dinic算法的步骤包括:

a.初始化流量网络与网络流;

b.构造残量网络,根据残留网络通过bfs计算层次网络,若汇点不在层次图中(汇点层次为-1),则结束;

c.在层次网络中使用一次dfs(depthfirstsearch,深度优先搜索算法)进行增广,dfs执行完毕,该阶段的增广也执行完毕;

d.执行步骤b。

3)ford-fulkerson算法

ford-fulkerson是一种迭代的算法。开始时,初始状态时流的值为0。在每次迭代中,可以通过寻找一个“增广路径”来增加流值。增广路径可以看做是从源点s到汇点t之间的一条路径,沿该路径可以压入更多的流,从而增加流的值。反复进行这一过程,直到增广路径都被找出为止。

残留网络是指给定网络和一个流,其对应还可以容纳的流组成的网络。具体说来,就是假定一个网络g=(v,e),其源点为s,汇点为t。设f为g中的一个流,对应顶点u到顶点v的流。在不超过c(u,v)的条件下(c代表边容量),从u到v之间可以压入的额外网络流量,就是边(u,v)的残余容量(residualcapacity),定义如下:

r(u,v)=c(u,v)-f(u,v)

在图理论流中,从u到v已经有了3个单位流量,从反方向上看,也就是从v到u就有了3个单位的残留网络,这时r(v,u)=3。可以这样理解,从u到v有3个单位流量,那么从v到u就有了将这3个单位流量的压回去的能力。

ford-fulkerson方法的正确性依赖于这个定理:当残存网络中不存在一条从s到t的增广路径,那么该图已经达到最大流。

实施例二

本公开实施例中基于图理论构建源节点和汇节点,第一视频中各视频帧对应第一层节点中的各第一节点,第二视频中各视频帧对应第二层节点中的各第二节点,用第一层节点中各第一节点流经到各第二层节点的各第二节点的流容量表示第一视频的各视频帧与第二视频的各视频帧的相似度。基于此,本公开提出一种视频匹配方法,如图2所示,包括:

s201,从基于图理论构建的源节点开始,基于初始化零的流容量向第一层节点流动,其中,所述第一层节点中各第一节点与第一视频中各视频帧对应;

上述基于图理论构建的源节点也叫开始节点s,开始节点s流向第一层节点中的全部节点,并且将开始节点s流向第一层节点各节点的流容量,初始化为零。

将第一层节点的各第一节点与第一视频的各视频帧对应,若第一视频中含有n个视频帧,则与第一视频对应的第一层节点中含有n个节点。

对第一视频进行采样,共采样n帧作为第一视频的采样帧,将第一视频的各采样帧对应第一层节点中的各第一节点。

s202,利用ford-fulkerson算法,确定各第一节点流向的第二节点,各流向的流容量为第一节点与流向的第二节点的相似度,所述第二层节点中的各第二节点为与第二视频中各视频帧对应;

对第二视频进行采样,共采样m帧作为第二视频的采样帧,将第二视频的各采样帧对应第二层节点中的各第二节点。

第一层节点的节点数为n,第二层节点的节点数为m;

根据第一层节点的节点数及第二层节点的节点数确定第一层节点向第二层节点的流动方式,其中,包括第一层节点的节点数等于第二层节点的节点数、第一层节点的节点数大于第二层节点的节点数以及第一层节点的节点数小于第二曾节点的节点数几种情况。

s203,根据各第二层节点流向汇点的流容量的总和,确定所述第一视频与第二视频相似度。

根据各第二层节点流向汇点的流容量的总和,确定所述第一视频与第二视频相似度,包括:

将各第二层节点流向汇点的流容量的总和除以第一视频的帧数,得到所述第一视频与第二视频相似度。

根据第一层节点的节点数及第二层节点的节点数确定第一层节点向第二层节点的流动方式如下:

1)第二层节点的节点数不小于第一层节点的节点数

此时第二视频的帧数不小于第一视频的帧数,如第二层节点的节点数m为10,第一层节点的节点数n为8,则第一层节点的各第一节点都唯一流向与第二层节点中根据ford-fulkerson算法确定连接路径的第二节点,则第一视频中的每个视频帧都存在唯一一个匹配视频帧。

由于第二视频的帧数大于第一视频的帧数,且第二视频的各视频帧仅能被流经一次,则第二视频中的各视频帧最多被匹配一次,第二视频中存在不被第一视频的各视频帧匹配的视频帧。

根据第一节点对应的视频帧的顺序,根据第二层节点未被流经的第二节点,与当前第一节点的距离,确定相似度最大的第二节点为当前第一节点流向的第二节点,使用余弦距离计算方法计算第一节点和第二节点的相似度。

如图3所示,源节点为s,基于初始零的流容量向第一层节点流动,此时假设第一视频的视频帧数n为3,即第一层节点的节点数为3,将第一层节点的各节点分别表示为x1、x2和x3;

假设第二视频的视频帧数m为5,即第二层节点的节点数为5,将第二层节点的各节点分别表示为y1、y2、y3、y4和y5;

根据第一节点对应的视频帧的顺序,即按照x1、x2到x3的顺序,分别根据ford-fulkerson算法确定第二层节点中与第一层节点存在连接路径的节点;

根据ford-fulkerson算法得到第一节点中各视频帧与第二节点中各视频帧的一一连接关系,如图3所示,第一层节点的x1节点流向第二层节点的y2节点,第一层节点的x2节点流向第二层节点的y3节点,则第一层节点的x3节点流向第二层节点的y4节点,第二层节点中被流向的各节点流向汇节点t。

2)第二层节点的节点数小于第一层节点的节点数

此时第二视频的帧数小于第一视频的帧数,基于图理论构建的节点中,只有min(n,m)个线路可以流动,则此时第一视频中仅有m个帧与第二视频的各视频帧匹配,由于在视频帧相似度衡量技术中,第一视频的每个视频帧都需要与第二视频的某视频帧进行匹配,在本公开实施例中,扩充第二视频的帧数使第一视频的每个视频帧都可以与第二视频的某视频帧进行匹配。

作为一种可选的实施方式,本公开实施例中,所述第二视频的帧数小于第一视频的帧数时,复制所述第二视频至少一次,至复制后得到的第二视频的帧数不小于所述第一视频的帧数。

即若第二层节点的节点数小于第一层节点的节点数时,复制上述第二层节点至少一次,至复制后的第二层节点的节点数不小于第一层节点的节点数。

所述第二视频被复制的次数为a=ceil(n/m),其中ceil表示向上取整,复制完后保证am≥n。

根据第一节点对应的视频帧的顺序,根据第二层节点未被流经的第二节点,与当前第一节点的距离,确定相似度最大的第二节点为当前第一节点流向的第二节点。

如图4所示,源节点为s,基于初始零的流容量向第一层节点流动,若此时假设第一视频的视频帧数n为5,即第一层节点的节点数为5,第二视频的视频帧数m为3,即第二层节点的节点数m为3,此时第二层节点的节点数小于第一层节点的节点数,则对第二层节点的各节点进行复制;

按照a=ceil(n/m)=ceil(5/3)=2。则对第二层节点复制2次,复制后的第二层节点的节点数为am=6,第一层节点的节点数n为5。

设定第一层节点的各节点分别为x1、x2、x3、x4、和x5,第二层节点的各节点分别表示为y1、y2、y3、y4、y5和y6,根据第一节点对应的视频帧的顺序,即按照x1、x2、x3、x4、到x5的顺序,分别根据ford-fulkerson算法确定第二层节点中节点中与第一层节点存在连接路径的节点;

根据ford-fulkerson算法得到第一节点中各视频帧与第二节点中各视频帧的一一连接关系,如图4所示,第一层节点的x1节点流向第二层节点的y2节点,第一层节点的x2节点流向第二层节点的y3节点,第一层节点的x3节点流向第二层节点的y4节点,第二层节点中被流向的各节点流向汇节点t。

以上对本发明中一种视频匹配方法进行说明,以下对执行上述视频匹配装置进行说明。

请参阅图5本发明实施例提供的一种视频匹配装置,包括:

获取单元501,被配置为执行获取包括多个视频帧的第一视频和第二视频;

映射单元502,被配置为执行将所述第一视频中各视频帧映射为上层视频节点,将所述第二视频中各视频帧映射为下层视频节点;

确定单元503,被配置为执行将有连接路径的上层视频节点和下层视频节点的视频相似度作为路径的流容量,根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系;

计算单元504,被配置为执行根据所述连接关系,计算有连接路径的上层视频节点和下层视频节点的视频相似度的总和,得到最大流容量总和;

匹配单元505,被配置为执行根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配。

可选地,还包括:

复制单元506,被配置为执行复制确定第二视频中视频帧的数量小于第一视频中视频帧的数量时,复制所述第二视频至少一次,至重新得到的第二视频中的视频帧的数量不小于第一视频中视频帧的数量。

可选地,所述复制单元被配置为执行所述第二视频被复制的次数为a=ceil(n/m),其中ceil表示向上取整,n为第一视频中视频帧的帧数,m为第二视频中视频帧的帧数。

可选地,所述匹配单元被配置为执行根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配,具体用于:

将所述流容量总和除以第一视频中视频帧的帧数,得到所述第一视频与第二视频的相似度;

当所述第一视频与第二视频的相似度大于预设阈值时,确定所述第一视频和第二视频匹配。

可选地,所述确定单元被配置为执行根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系,具体用于:

利用ford-fulkerson算法,确定各上层视频节点和各下层视频节点一一对应的连接关系。

可选地,所述计算单元被配置为执行确定有连接路径的上层视频节点和下层视频节点的视频相似度,具体用于:

确定所述上层视频节点和下层视频节点的余弦距离:

其中,x第一视频中视频帧的特征向量,y为第二视频中视频帧的特征向量。

可选地,所述映射单元被配置为执行所述上层视频节点和下层视频节点为图理论中的节点,任意两个有连接关系的节点之间的视频相似度为节点之间的流容量,还用于:

初始化图理论的开始节点到上层视频节点之间的视频相似度为零,及初始化图理论中的下层视频节点到汇节点的流容量为零。

上面从模块化功能实体的角度对本公开实施例中的一种视频匹配装置进行了描述,下面从硬件处理的角度对本公开实施例中的一种视频匹配设备进行描述。

请参阅图6,本公开实施例中一种视频匹配设备,包括:

处理单元601、存储单元602、以及总线系统609;

其中,所述存储单元用于存储程序;

所述处理单元被配置为执行所述存储单元中的程序,包括如下步骤:

获取包括多个视频帧的第一视频和第二视频;

将所述第一视频中各视频帧映射为上层视频节点,将所述第二视频中各视频帧映射为下层视频节点;

将有连接路径的上层视频节点和下层视频节点的视频相似度作为路径的流容量,根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系;

根据所述连接关系,计算有连接路径的上层视频节点和下层视频节点的视频相似度的总和,得到最大流容量总和;

根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配。

图6是本公开实施例提供的一种视频匹配设备结构示意图,该设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理单元(英文全称:centralprocessingunits,英文简称:cpu)601(例如,一个或一个以上处理单元)和存储单元602,一个或一个以上存储应用程序604或数据605的存储介质603(例如一个或一个以上海量存储设备)。其中,存储单元602和存储介质603可以是短暂存储或持久存储。存储在存储介质603的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对信息处理装置中的一系列指令操作。更进一步地,处理单元601可以设置为与存储介质603通信,在设备600上执行存储介质603中的一系列指令操作。

设备600还可以包括一个或一个以上有线或无线网络接口607,一个或一个以上输入输出接口608,和/或,一个或一个以上操作系统606,例如windowsserver,macosx,unix,linux,freebsd等。

可选地,所述处理单元被配置为还执行:

确定第二视频中视频帧的数量小于第一视频中视频帧的数量时,复制所述第二视频至少一次,至重新得到的第二视频中的视频帧的数量不小于第一视频中视频帧的数量。

可选地,所述处理单元被配置为执行所述第二视频被复制的次数为a=ceil(n/m),其中ceil表示向上取整,n为第一视频中视频帧的帧数,m为第二视频中视频帧的帧数。

可选地,所述处理单元被配置为执行根据所述最大流容量总和,确定所述第一视频和第二视频是否匹配,包括:

将所述流容量总和除以第一视频中视频帧的帧数,得到所述第一视频与第二视频的相似度;

当所述第一视频与第二视频的相似度大于预设阈值时,确定所述第一视频和第二视频匹配。

可选地,所述处理单元被配置为执行根据最大流计算方法,确定各上层视频节点和各下层视频节点一一对应的连接关系,包括:

利用ford-fulkerson算法,确定各上层视频节点和各下层视频节点一一对应的连接关系。

可选地,所述处理单元被配置为执行确定有连接路径的上层视频节点和下层视频节点的视频相似度,包括:

确定所述上层视频节点和下层视频节点的余弦距离:

其中,x第一视频中视频帧的特征向量,y为第二视频中视频帧的特征向量。

可选地,所述处理单元被配置为执行所述上层视频节点和下层视频节点为图理论中的节点,任意两个有连接关系的节点之间的视频相似度为节点之间的流容量,还包括:

初始化图理论的开始节点到上层视频节点之间的视频相似度为零,及初始化图理论中的下层视频节点到汇节点的流容量为零。

本公开实施例还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述实施例提供的一种视频匹配方法。

本公开实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行上述实施例提供的一种视频匹配方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本公开所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

以上对本公开所提供的技术方案进行了详细介绍,本公开中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。

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