发明内容
本公开的目的旨在至少能解决上述的技术缺陷之一,可准确确定出两个视频之间的相似度。本公开采用的技术方案如下:
第一方面,本公开提供了一种神经网络模型的训练方法,神经网络模型包括依次级联的特征提取层、特征全局平均池化层和输出层,神经网络模型的输入为待处理的第一视频和第二视频的视频相似度矩阵,输出为第一视频和第二视频的相似度,或者为第一视频和第二视频是否相似的标识;
其中,视频相似度矩阵的行数和列数分别为第一视频的帧数和第二视频的帧数,视频相似度矩阵中第i行第j列的元素值为第一视频的第i帧图像和第二视频的第j帧图像的相似度,该方法包括:
获取训练样本数据,训练样本数据包括带标注标签的视频对,每个视频对的标注标签表征了每个视频对的相似度结果;
获取训练样本数据中各视频对的视频相似度矩阵;
基于各视频对的视频相似度矩阵对神经网络模型进行训练,直至神经网络模型的损失函数收敛,或者直至神经网络模型对各视频对是否相似的识别结果满足预设要求。
本公开第一方面的实施例中,在视频对存在相似片段,且相似片段的位置满足设定要求时,视频对的标注标签所表征的相似度结果为相似,其中,相似片段包括第一视频中的第一片段和第二视频中的第二片段,第一片段和第二片段中所包括的视频帧的数量均大于第一设定值、且第一片段和第二片段中相似度大于设定阈值的视频帧对的数量大于第二设定值。
本公开第一方面的实施例中,相似片段的位置满足设定要求,包括:
相似片段为非起始片段,且为非结束片段。
本公开第一方面的实施例中,特征全局平均池化层和输出层之间还设置有全连接层。
本公开第一方面的实施例中,第一视频的帧数和第二视频的帧数为按照预设抽取规则抽取的第一视频中的帧数和第二视频中的帧数。
本公开第一方面的实施例中,训练样本数据中的各视频对的视频相似度矩阵包括不同尺寸的相似度矩阵。
第二方面,本公开提供了一种视频相似度的确定方法,该方法包括:
获取待处理的第一视频和第二视频;
确定第一视频和第二视频的视频相似度矩阵,其中,视频相似度矩阵的行数和列数分别为第一视频的帧数和第二视频的帧数,视频相似度矩阵中第i行第j列的元素值为第一视频的第i帧图像和第二视频的第j帧图像的相似度;
将视频相似度矩阵输入至神经网络模型中,基于神经网络模型的输出得到第一视频和第二视频的相似度结果,其中,神经网络模型为通过本公开第一方面的实施例中所描述的方法训练得到的。
第三方面,本公开提供了一种神经网络模型的训练装置,神经网络模型包括依次级联的特征提取层、特征全局平均池化层和输出层,神经网络模型的输入为待处理的第一视频和第二视频的视频相似度矩阵,输出为第一视频和第二视频的相似度,或者为第一视频和第二视频是否相似的标识;
其中,视频相似度矩阵的行数和列数分别为第一视频的帧数和第二视频的帧数,视频相似度矩阵中第i行第j列的元素值为第一视频的第i帧图像和第二视频的第j帧图像的相似度,该装置包括:
训练样本数据获取模块,用于获取训练样本数据,训练样本数据包括带标注标签的视频对,每个视频对的标注标签表征了每个视频对的相似度结果;
相似度矩阵确定模块,用于获取训练样本数据中各视频对的视频相似度矩阵;
模型训练模块,用于基于各视频对的视频相似度矩阵对神经网络模型进行训练,直至神经网络模型的损失函数收敛,或者直至神经网络模型对各视频对是否相似的识别结果满足预设要求。
本公开第三方面的实施例中,在视频对存在相似片段,且相似片段的位置满足设定要求时,视频对的标注标签所表征的相似度结果为相似,其中,相似片段包括第一视频中的第一片段和第二视频中的第二片段,第一片段和第二片段中所包括的视频帧的数量均大于第一设定值、且第一片段和第二片段中相似度大于设定阈值的视频帧对的数量大于第二设定值。
本公开第三方面的实施例中,相似片段的位置满足设定要求,包括:相似片段为非起始片段,且为非结束片段。
本公开第三方面的实施例中,特征全局平均池化层和输出层之间还设置有全连接层。
本公开第三方面的实施例中,第一视频的帧数和第二视频的帧数为按照预设抽取规则抽取的第一视频中的帧数和第二视频中的帧数。
本公开第三方面的实施例中,训练样本数据中的各视频对的视频相似度矩阵包括不同尺寸的相似度矩阵。
第四方面,本公开提供了一种视频相似度的确定装置,该装置包括:
视频获取模块,用于获取待处理的第一视频和第二视频;
相似度矩阵确定模块,用于确定第一视频和第二视频的视频相似度矩阵,其中,视频相似度矩阵的行数和列数分别为第一视频的帧数和第二视频的帧数,视频相似度矩阵中第i行第j列的元素值为第一视频的第i帧图像和第二视频的第j帧图像的相似度;
相似度结果确定模块,用于将视频相似度矩阵输入至神经网络模型中,基于神经网络模型的输出得到第一视频和第二视频的相似度结果,其中,神经网络模型为通过本公开第一方面的实施例中所描述的方法训练得到的。
第五方面,本公开提供了一种电子设备,该电子设备包括:
处理器和存储器;
存储器,用于存储计算机操作指令;
处理器,用于通过调用计算机操作指令,执行如本公开的第一方面和/或第二方面的任一实施例中所示的方法。
第六方面,本公开提供了一种计算机可读存储介质,该存储介质存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如本公开的第一方面和/或第二方面的任一实施例中所示的方法。
本公开实施例提供的技术方案带来的有益效果是:
本公开实施例的神经网络模型的训练方法、视频相似度确定方法,将第一视频的第i帧图像和第二视频的第j帧图像的相似度作为两个视频之间的视频相似度矩阵中的第i行第j列元素值,将第一视频的帧数和第二视频的帧数作为视频相似度矩阵的行数和列数,第一视频和第二视频得到的视频相似度矩阵的行列之间包含视频的时序信息,则基于视频相似度矩阵训练得到的神经网络模型可以更加准确的预测两个视频之间的相似度。
具体实施方式
下面详细描述本公开的实施例,该实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本公开的技术方案,而不能解释为对本公开的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本公开的说明书中使用的措辞“包括”是指存在该特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
本公开的实施例提供的一种用于预测视频之间相似度的神经网络模型,该神经网络模型可以包括依次级联的特征提取层、特征全局平均池化层和输出层,神经网络模型的输入为待处理的第一视频和第二视频的视频相似度矩阵,输出为第一视频和第二视频的相似度,或者为第一视频和第二视频是否相似的标识。
其中,视频相似度矩阵的行数和列数分别为第一视频的帧数和第二视频的帧数,视频相似度矩阵中第i行第j列的元素值为第一视频的第i帧图像和第二视频的第j帧图像的相似度。
具体的,第一视频和第二视频的来源本公开实施例不做限定。具体的,例如,在需要对视频数据库中的视频进行去重时,第一视频和第二视频可以为该视频数据库中的视频,基于本公开实施例的该模型的输出结果,可以实现对数据库的去重;再例如,在视频搜索的应用场景中,第一视频和第二视频可以为基于检索关键词得到的初步检索结果中的视频,通过该模型,可以实现初步检索结果中视频之间相似度的确定,从而可以进一步确定出初步检索结果中是否存在重复的视频,可以对重复的视频进行去重后,得到最终的检索结果。其中,检索关键词可以是实时获取到的搜索关键词,或者是预配置的关键词,比如,在需要筛选违禁的视频时,关键词可以是违禁词、敏感词等。
具体的,神经网络模型的输出即输出层的输出可以为第一视频和第二视频的相似度值,也可以为第一视频和第二视频的相似度结果,标识可以包括相似和不相似。
其中,视频相似度矩阵中的各行各列的元素值为第一视频的帧图像和第二视频中的帧图像之间的相似度,作为一个示例,如图1所示的两个视频的视频相似度矩阵示意图,纵向代表第一视频的6帧图像,由上至下依次为第1帧,第2帧,……,第6帧,横向代表第二视频的10帧图像,由左至右依次为第1帧,第2帧,……,第10帧,网格中每个元素代表对应两帧图像的相似度,网格的亮度值越大,代表相似度越高,如图中所示,第一视频中的一帧图像与第二视频中的一帧图像相似时,比如,两帧图像之间的相似度值不小于预设阈值时,对应的网格为白色网格,对应地,两帧图像不相似时,比如,两帧图像的相似度值小于预设阈值时,对应的网格为黑色网格。通常情况下,若两个视频相似,则该视频相似度矩阵上会出现一条45度的直线,即由白色网格组成的直线。可以理解的是,在实际应用中,可能因为一些外在因素,比如,视频被编辑,导致两个相似的视频并不会呈现很规则的直线,视频相似度矩阵中不相似的视频帧也会出现很多干扰因素,影响两个视频相似度的准确性。如图2中所示的视频相似度矩阵,图中所示的几个视频相似度矩阵所对应的直线均为不规则的,有干扰因素的矩阵,因此,仅依靠视频相似度矩阵确定两个视频是否相似,准确率并不高。本公开中的神经网络模型,可以基于呈现规则的直线的视频相似度矩阵和呈现不规则的直线的视频相似度矩阵训练得到,因此,基于该模型确定的两个视频的相似度更准确。
本公开的实施例中的方案,将第一视频的第i帧图像和第二视频的第j帧图像的相似度作为两个视频之间的视频相似度矩阵中的第i行第j列元素值,将第一视频的帧数和第二视频的帧数作为视频相似度矩阵的行数和列数,第一视频和第二视频得到的视频相似度矩阵的行列之间包含视频的时序信息,则基于视频相似度矩阵训练得到的神经网络模型可以更加准确的预测两个视频之间的相似度。
本公开的实施例中,特征全局平均池化层和输出层之间还可以设置有全连接层。
具体的,对于全连接层,其输入需要是固定维度的特征向量,对于不同尺寸的视频相似度矩阵,为了使输入至全连接层的矩阵为固定维度的特征向量,则可通过特征全局平均池化层将不同尺寸的视频相似度矩阵转换为固定维度的特征向量,特征全局平均池化层输出的特征向量的维度与全连接层的神经元个数相同。在特征全局平均池化层和输出层之间设置全连接层,可以加强模型的表达能力,使模型可以更加准确的确定出两个视频之间的相似度,另外,通过特征全局平均池化层,将视频相似度矩阵转换为固定维度的特征向量,可以使得视频的时序信息不受影响,提高了视频相似度预测的准确性。
本公开的实施例中,第一视频的帧数和第二视频的帧数为按照预设抽取规则抽取的第一视频中的帧数和第二视频中的帧数。
具体的,抽取规则可以基于实际需求配置,比如,按照预配置的时间间隔抽取,例如,每1秒抽取一帧;或者,按照预设帧间隔抽取,例如,每隔5帧抽取一帧;或者,按照关键帧抽取,比如关键帧为第5帧,第25帧,第38帧,则对应抽取视频中的第5帧,第25帧,第38帧图像。对于不同的视频,按照抽取规则抽取后的帧数可能不同,则对应的视频相似度矩阵的尺寸大小也不同,视频相似度矩阵的尺寸大小指的是该矩阵对应的行数和列数。
基于与上述神经网络模型相同的原理,本公开的实施例中还提供了一种神经网络模型的训练方法,如图3所示,神经网络模型包括依次级联的特征提取层、特征全局平均池化层和输出层,神经网络模型的输入为待处理的第一视频和第二视频的视频相似度矩阵,第一视频和第二视频的相似度结果是基于神经网络模型的输出确定的;其中,视频相似度矩阵的行数和列数分别为第一视频的帧数和第二视频的帧数,视频相似度矩阵中第i行第j列的元素值为第一视频的第i帧图像和第二视频的第j帧图像的相似度,该方法可以包括:
步骤S110,获取训练样本数据,训练样本数据包括带标注标签的视频对,每个视频对的标注标签表征了每个视频对的相似度结果。
具体的,一个视频对中包括两个视频,相似度结果包括相似和不相似,可通过标注标签标识,比如,标注标签为1时,相似度结果为相似,标注标签为0时,表示相似度结果为不相似,相似度结果也可以为相似度值,通过相似度值表征视频对是否相似,比如,相似度值不小于预设阈值,则表示相似,若相似度值小于预设阈值,表示不相似。其中,训练样本数据中可包括一定数量的视频对,可使得训练得到的模型的精度更高。
步骤S120,获取训练样本数据中各视频对的视频相似度矩阵。
具体的,训练样本数据中的各视频对的视频相似度矩阵可以是不同尺寸大小的矩阵,即每个视频对中的视频对应抽取的帧数不同。在模型训练过程中,训练样本数据中各视频对的视频相似度矩阵可以为预先确定好的,也可以是在训练过程中确定的,本公开中不作限定。
步骤S130,基于各视频对的视频相似度矩阵对神经网络模型进行训练,直至神经网络模型的损失函数收敛,或者直至神经网络模型对各视频对是否相似的识别结果满足预设要求。
具体的,损失函数的收敛条件可以基于实际需求配置,比如,损失函数小于预设阈值,其中,预设要求即模型训练结束的条件,可以根据应用需求配置。例如,该要求可以是指模型的损失函数处于收敛状态,还可以是模型的识别准确率大于设定值(比如,通过神经网络模型对各视频对是否相似的识别结果中相似视频对的数量与所有视频对数量的比值),或者是模型的召回率大于设定值等。
本公开的实施例中,将第一视频的第i帧图像和第二视频的第j帧图像的相似度作为两个视频之间的视频相似度矩阵中的第i行第j列元素值,将第一视频的帧数和第二视频的帧数作为视频相似度矩阵的行数和列数,第一视频和第二视频得到的视频相似度矩阵的行列之间包含视频的时序信息,则基于视频相似度矩阵训练得到的神经网络模型可以更加准确的预测两个视频之间的相似度。另外,本公开中,基于神经网络模型,可以同时基于训练样本数据中的多个视频对同时进行视频相似度的确定,比如,通过该模型可以同时确定1个视频和多个视频之间的相似度,提高处理效率。
本公开的实施例中,训练样本数据中的各视频对的视频相似度矩阵包括不同尺寸的相似度矩阵。
具体的,基于本方案的神经网络模型,可以同时基于训练样本数据中的多个视频对的视频相似度矩阵对神经网络模型进行训练,由于,特征全局平均池化层的输出为同一个维度特征向量,因此,本公开中的神经网络模型的输入可以为不同尺寸的视频相似度矩阵,将不同尺寸的视频相似度矩阵作为一个集合对神经网络模型进行训练,即该神经网络模型可以同时接收不同尺寸的视频相似度矩阵作为输入,相较于现有技术中的神经网络模型的输入要求是,相同尺寸的视频相似度矩阵,本公开中的神经网络模型对输入的视频相似度矩阵的尺寸大小不作限定,对于经过裁剪,缩放等处理的视频均能准确确定出视频的相似度,更加满足实际需求。
本公开的实施例中,神经网络模型可以包括依次级联的特征提取层、特征全局平均池化层和全连接层。
作为一个示例,图4中示出了本公开实施例提供的一种神经网络模型的结构示意图,图中包括待输入至特征提取层的视频相似度矩阵(图中所示的A),分流器(图中所示的M),依次级联的特征提取层(图中所示的B),特征提取层的输出(图中所示的C),特征全局平均池化层,GAP层(Global Average Pooling)(图中所示的D),特征全局平均池化层的输出(图中所示的E),全连接层(图中所示的F),全连接层的输出(图中所示的G),输出层(H)。
其中,视频相似度度矩阵可以为多个不同尺寸大小的矩阵,在输入至特征提取层之前,还可以通过分流器(Splitter),对多个视频相似度矩阵进行分流,使视频相似度矩阵依次经过每个卷积层(特征提取层);将视频相似度度矩阵输入至特征提取层,用于特征图的提取,在实际应用中,特征提取层可以有多个,如多个级联的卷积层,输入依次经过每个卷积层,实现特征的提取,特征提取层的输出为提取后得到的特征图(图中所示的C),将特征图输入至特征全局平均池化层,特征全局平均池化层用于基于特征图输出固定维度的特征向量(图中所示的E),然后将固定维度的特征向量输入至全连接层,得到全连接层输出的特征向量,最后输入至输出层,得到视频相似度矩阵对应的相似度结果。
结合图5中所示的神经网络模型的网络流程示意图,如图5中所示,将不同尺寸的视频相似度矩阵输入至特征提取层(图中所示的CONV层)后,可得到不同尺寸的特征图,灰色的矩形图代表卷积层(特征提取层)的输出,由图中可知,卷积层不会改变矩阵的比例和相对尺寸,然后将卷积层的输出输入至特征全局平均池化层(图5中所示的GAP层),特征全局平均池化层会按照固定的尺寸,将不同尺寸的矩阵进行尺度缩放,得到固定维度的特征向量,由图5中“尺度缩放”所对应的内容可以看出,不同尺寸的矩阵经过GAP层的输出变成了固定维度的特征向量,即图5中GPA层之后所显示的同一大小的矩形,然后将该固定维度的特征向量输入至全连接层(图中所示的FC层),最终通输出层得到视频对的相似度结果,相似度结果可通过标注标签表示,标注标签为1时表示相似度结果为相似,标注标签为0时,表示相似度结果为不相似,其中,图中所示的损失值表示的是多个视频相似度矩阵总的损失值,在模型训练过程中,可基于该损失值,确定是否结束对模型的训练。
本公开的实施例中,可通过神经网络模型的mini-batch方法训练模型。即可以分批处理训练样本数据中的视频对,提高处理效率。
本公开的实施例中,每个视频对的视频相似度矩阵是按照预设规则抽取每个视频对中的帧图像确定的。
具体的,针对每一个视频对,比如一个视频对中包括第三视频和第四视频,则可按照预设规则抽取第三视频和第四视频中的视频帧图像,将第三视频的帧数和第四视频的帧数作为该视频对的视频相似度矩的行数和列数,第三视频的第i帧图像和第四视频的第j帧图像的相似度作为该视频对的视频相似度矩中第i行第j列的元素值。其中,预设规则可以为上述预设的抽取规则,也可以为其他抽取规则,本公开中不作限定。
本公开的实施例中,在视频对存在相似片段,且相似片段的位置满足设定要求时,视频对的标注标签所表征的相似度结果为相似,其中,相似片段包括第一视频中的第一片段和第二视频中的第二片段,第一片段和第二片段中所包括的视频帧的数量均大于第一设定值、且第一片段和第二片段中相似度大于设定阈值的视频帧对的数量大于第二设定值。
具体的,视频中不同位置对应的片段可能包含的信息不同,有些位置对应的信息对于两个视频之间的相似度值的大小影响较大,比如视频中间位置对应的信息,有些位置对应的信息对于两个视频之间的相似度值的大小影响较小,比如,视频起始位置或结束位置对应的信息,如果两个视频的视频起始位置或结束位置对应的信息相似,可能不代表这两个视频相似,则在视频对存在相似片段时,需要在相似片段的位置满足设定需求时,才可将两个视频之间的相似度结果确定为相似,由此,考虑到不同位置的信息对于两个视频之间相似度的影响,可进一步提高相似度的准确性。
其中,视频的起始位置可基于实际需求配置,比如,可以是视频的前几帧图像,比如,前5帧图像中的视频帧图像;视频的结束位置也可以基于实际需求配置,比如,视频的最后几帧图像,比如,最后6帧图像中的视频帧图像。
具体的,在实际应用中,视频可能是经过处理后的视频,为了避免处理后的视频对视频间的相似度的准确性的影响,相似片段需要满足以下条件,相似片段包括第一视频中的第一片段和第二视频中的第二片段,第一片段和第二片段中所包括的视频帧的数量均大于第一设定值,第一片段和第二片段中需要有一定数量的视频帧相似,才可判断两个片段为相似片段,比如,如果第一片段中的一帧图像与第二片段中的多帧图像之间均相似,则两个片段可能不是相似片段;同时需满足第一片段和第二片段中相似度大于设定阈值的视频帧对的数量大于第二设定值。其中,第一设定值和第二设定值可以基于实际需求配置,比如,可基于视频的起始位置对应的视频帧的数量,或结束位置对应的视频帧的数量配置。设定阈值也可以基于实际需求配置,在得到视频针对之间的相似度值时,相似度值大于设定阈值,才可表示该视频帧对相似,否则,如果相似度值小于设定阈值,则表示该视频帧对相似。并且,相似片段还需满足,第一片段和第二片段中相似度大于设定阈值的视频帧对的数量大于第二设定值,即如果第一判断和第二片段中相似度大于设定阈值的视频帧对的数量很少,仅是两个视频中对应的几帧图像的相似度大于设定阈值,第一视频和第二视频可能也不相似。
其中,相似片段中所包括的视频帧图像可以为连续帧的视频帧图像,也可以为不完全连续的视频帧图像。
作为一个示例,如果第一设定值和第二设定值均为基于视频的起始位置对应的视频帧的数量配置的,视频的起始位置对应的视频帧的数量为5帧,第一视频的视频帧的数量为50帧,第二视频的视频帧的数量为60帧,第一设定值为20,第二设定值为10,则相似片段中,如果第一片段所包括的视频帧的数量为25,第二片段所包括的视频帧的数量为30,均大于第一设定值,同时,第一片段和第二片段中相似度大于设定阈值的视频帧对的数量分别为18和25,均大于第二设定值10,则第一片段和第二片段可以为第一视频和第二视频对应的相似片段。
其中,在根据抽帧后的视频的帧图像计算相似度时,该相似片段可以是抽取后视频中对应的片段,也可以是对应的原视频的片段,原视频指的是未经抽帧的视频,作为一个示例,比如,一个视频对包括原视频A和原视频B,原视频A经过抽帧处理后的视频为视频C,原视频B经过抽帧处理后的视频为视频D,基于视频C和视频D,确定出的相似片段可以是视频C和视频D中对应的视频片段,也可以是原视频A和原视频B中对应的视频片段。
本公开的实施例中,相似片段的位置满足设定要求,可以包括:
相似片段为非起始片段,且为非结束片段。
具体的,视频的起始片段和结束片段通常包含的信息不能真实反映两个视频之间是否相似,因此,如果相似片段只包括起始片段和/或结束片段,则可以确定该视频对的相似度结果为不相似。本实施例方案中,考虑到起始片段和结束片段作为相似片段对视频对的相似度的影响,可进一步提高视频之间相似度确定的准确性。
在本公开中,本公开的训练样本数据中可包括不同视频对的视频相似度矩阵,则基于训练好的神经网络模型可对不同类型的视频对的相似度做出准确的判断。
作为一个示例性说明,如图6所示的神经网络模型针对不同视频相似度矩阵得到的相似度值的结果示意图,图6a至图6i中对应的矩阵均为视频相似度矩阵,每个视频相似度矩阵对应一个相似度值,可将图6a至图6i中对应的视频相似度矩阵作为神经网络模型的测试样本数据,每个视频相似度矩阵对应一个相似度值作为对应视频对的实际相似度值。
如果视频的起始位置对应的是视频的前三帧图像,视频的结束位置对应的视频的后三帧图像,第一设定值为2,第二设定值为2,且图中所示的白色格子对应的相似度值为大于设定阈值的视频帧对,下文称视频对中,视频相似度矩阵的行对应的视频为视频A,列对应的视频为视频B。由图中所示可知,在图6a中的视频对的相似片段中,视频对中只有前三帧视频帧图像是相似的,即两个视频对应的起始位置的视频帧图像是相似的,则该两个视频经过神经网络模型得到的相似度结果可能为不相似,与实际结果(相似度值为0.000)相匹配。在图6b中的视频对的相似片段中,两个视频对应的中间位置的三帧视频帧图像是相似的,且两个视频中视频帧图像的相似度大于设定阈值的视频帧对的数量3大于第二设定值2,相似片段中对应视频A中视频片段所包括的视频帧的数量为3,视频B中视频片段所包括的视频帧的数量为3,均大于第一设定值2,则该两个视频经过神经网络模型得到的相似度结果可能为相似,与实际结果(相似度值为0.797)相匹配。在图6c中的视频对的相似片段中,两个视频对应的结束位置的三帧视频帧图像是相似的,则该两个视频经过神经网络模型得到的相似度结果可能为不相似,与实际结果(相似度值为0.000)相匹配。在图6d中的视频对的相似片段中,两个视频对应的从起始位置起共有五帧视频帧图像是相似的,大于第二设定值2,且相似片段中对应的视频A中视频片段所包括的视频帧的数量为5,视频B中视频片段所包括的视频帧的数量为5,均大于第一设定值2,则该两个视频经过神经网络模型得到的相似度结果可能为相似,与实际结果(相似度值为0.797)相匹配。
如图6e至图6i中所示,其中,视频对中的两个视频的相似片段对应的均为不连续的视频帧图像,在图6e中的视频对的相似片段中,视频A和视频B对应的第3帧、第5帧、第7帧和第9帧视频帧对是相似的,且两个视频中视频帧图像的相似度大于设定阈值的视频帧对的数量4大于第二设定值2,相似片段中对应的视频A中视频片段所包括的视频帧的数量为4,视频B中视频片段所包括的视频帧的数量为4,均大于第一设定值2,则该两个视频经过神经网络模型得到的相似度结果可能为相似,与实际结果(相似度值为0.766)相匹配。在图6f中的视频对的相似片段中,两个视频中,视频A的第3帧、第4帧、第5帧、第6帧、第8帧、第10帧和第12帧图像分别与视频B中的第2帧、第4帧、第6帧、第8帧、第9帧、第10帧和第11帧图像相似,且两个视频中视频帧图像的相似度大于设定阈值的视频帧对的数量7大于第二设定值2,相似片段中对应的视频A中视频片段所包括的视频帧的数量为7,视频B中视频片段所包括的视频帧的数量为7,均大于第一设定值2,则该两个视频经过神经网络模型得到的相似度结果可能为相似,与实际结果(相似度值为0.996)相匹配。在图6g中的视频对的相似片段中,两个视频中,视频A的第2帧、第4帧、第6帧、第8帧、第10帧和第12帧图像分别与视频B中的第6帧、第7帧、第8帧、第9帧、第10帧和第11帧图像相似,且两个视频中视频帧图像的相似度大于设定阈值的视频帧对的数量6大于第二设定值2,相似片段中对应的视频A中视频片段所包括的视频帧的数量为6,视频B中视频片段所包括的视频帧的数量为6,均大于第一设定值2,则该两个视频经过神经网络模型得到的相似度结果可能为相似,与实际结果(相似度值为0.985)相匹配。在图6h中的视频对的相似片段中,两个视频中,视频A的第15帧、第14帧、第12帧、第11帧和第9帧图像分别与视频B中的第2帧、第4帧、第5帧、第7帧和第8帧图像相似(这两个视频中,一个视频可能为倒放视频),且两个视频中视频帧图像的相似度大于设定阈值的视频帧对的数量5大于第二设定值2,相似片段中对应的视频A中视频片段所包括的视频帧的数量为5,视频B中视频片段所包括的视频帧的数量为5,均大于第一设定值2,则该两个视频经过神经网络模型得到的相似度结果可能为相似,与实际结果(相似度值为0.96)相匹配。在图6i中的视频对的相似片段中,两个视频中,视频A的第3帧分别与视频B中的第2帧、第4帧、第6帧和第8帧相似,且两个视频中视频帧图像的相似度大于设定阈值的视频帧对的数量4大于第二设定值2,但相似片段中对应的视频A中视频片段所包括的视频帧的数量为1,小于第一设定值2,视频B中视频片段所包括的视频帧的数量为4,大于第一设定值2,则该两个视频经过神经网络模型得到的相似度结果可能为不相似,与实际结果(相似度值为0.01)相匹配。
基于上述测试样本数据的测试结果可知,对于经过不同处理的视频,比如,变速,倒放等处理,均可通过本公开中的神经网络模型准确得到两个视频间的相似度结果。
基于与前文所描述的神经网络模型相同的原理,本公开实施例还提供了一种视频相似度的确定方法,如图7所示,该方法可以包括:
步骤S210,获取待处理的第一视频和第二视频;
步骤S220,确定第一视频和第二视频的视频相似度矩阵,其中,视频相似度矩阵的行数和列数分别为第一视频的帧数和第二视频的帧数,视频相似度矩阵中第i行第j列的元素值为第一视频的第i帧图像和第二视频的第j帧图像的相似度。
步骤S230,将视频相似度矩阵输入至神经网络模型中,基于神经网络模型的输出得到第一视频和第二视频的相似度结果,其中,神经网络模型为前文所描述的神经网络模型。
本公开的实施例中,将第一视频的第i帧图像和第二视频的第j帧图像的相似度作为两个视频之间的视频相似度矩阵中的第i行第j列元素值,将第一视频的帧数和第二视频的帧数作为视频相似度矩阵的行数和列数,第一视频和第二视频得到的视频相似度矩阵的行列之间包含视频的时序信息,则基于视频相似度矩阵训练得到的神经网络模型可以更加准确的预测两个视频之间的相似度。另外,本公开中,基于神经网络模型,可以同时基于训练样本数据中的多个视频对同时进行视频相似度的确定,即可以同时确定1个视频和多个视频之间的相似度,提高处理效率。
本公开的实施例中,在确定出两个视频之间的相似度之后,可以基于上述确定视频间相似度的方法,可以应用于以下至少一种应用场景:
第一种,确定数据库中的相似视频。
具体的,第一视频和第二视频可以是数据库中的视频,通过本公开实施例中的视频相似度的确定方法,确定该数据库中任意两个视频之间的相似度结果,基于相似度结果确定出该数据库中相似的视频。
第二种,基于搜索关键词,从数据库中获取的搜索结果中,基于相似视频对搜索结果进行去重,并将去重后的视频作为最终的搜索结果展示给用户。
具体的,基于搜索关键词,从数据库中获取搜索结果,通过本公开实施例中的视频相似度的确定方法,确定该搜索结果中视频的相似度结果,基于得到的相似度结果对搜索结果进行去重,最后将去重后的视频作为最终的搜索结果展示给用户。
第三种,基于上述方法从数据库中查找到与某个视频相似的视频,然后将相似的视频删除。
具体的,基于指定的某个视频,通过本公开实施例中的视频相似度的确定方法,确定该视频与数据库中其他视频的相似度结果,基于相似结果确定出与该基准视频相似的视频,将相似视频从数据库中删除。
基于与图3中所示方法相同的原理,本公开的实施例中还提供了一种神经网络模型训练装置20,如图8所示,该装置20可以包括:训练样本数据获取模块210,相似度矩阵确定模块220以及模型训练模块230,其中:
训练样本数据获取模块210,用于获取训练样本数据,训练样本数据包括带标注标签的视频对,每个视频对的标注标签表征了每个视频对的相似度结果;
相似度矩阵确定模块220,用于获取训练样本数据中各视频对的视频相似度矩阵;
模型训练模块230,用于基于各视频对的视频相似度矩阵对神经网络模型进行训练,直至神经网络模型的损失函数收敛,或者直至神经网络模型对各视频对是否相似的识别结果满足预设要求。
本公开的实施例中,将第一视频的第i帧图像和第二视频的第j帧图像的相似度作为两个视频之间的视频相似度矩阵中的第i行第j列元素值,将第一视频的帧数和第二视频的帧数作为视频相似度矩阵的行数和列数,第一视频和第二视频得到的视频相似度矩阵的行列之间包含视频的时序信息,则基于视频相似度矩阵训练得到的神经网络模型可以更加准确的预测两个视频之间的相似度。
本公开的实施例中,在视频对存在相似片段,且相似片段的位置满足设定要求时,视频对的标注标签所表征的相似度结果为相似,其中,相似片段包括第一视频中的第一片段和第二视频中的第二片段,第一片段和第二片段中所包括的视频帧的数量均大于第一设定值、且第一片段和第二片段中相似度大于设定阈值的视频帧对的数量大于第二设定值。
本公开的实施例中,相似片段的位置满足设定要求,包括:相似片段为非起始片段,且为非结束片段。
本公开实施例的神经网络模型训练装置可执行图3所示的一种神经网络模型训练方法,其实现原理相类似,本公开各实施例中的神经网络模型训练装置中的各模块所执行的动作是与本公开各实施例中的神经网络模型训练方法中的步骤相对应的,对于神经网络模型训练装置的各模块的详细功能描述具体可以参见前文中所示的对应的神经网络模型训练方法中的描述,此处不再赘述。
基于与图7中所示方法相同的原理,本公开的实施例中还提供了一种视频相似度的确定装置30,如图9所示,该装置30可以包括:视频获取模块310,相似度矩阵确定模块320以及相似度结果确定模块330,其中:
视频获取模块,用于获取待处理的第一视频和第二视频;
相似度矩阵确定模块,用于确定第一视频和第二视频的视频相似度矩阵,其中,视频相似度矩阵的行数和列数分别为第一视频的帧数和第二视频的帧数,视频相似度矩阵中第i行第j列的元素值为第一视频的第i帧图像和第二视频的第j帧图像的相似度;
相似度结果确定模块,用于将视频相似度矩阵输入至神经网络模型中,基于神经网络模型的输出得到第一视频和第二视频的相似度结果,其中,神经网络模型为通过前文所描述的神经网络模型训练方法训练得到的。
本公开的实施例,将第一视频的第i帧图像和第二视频的第j帧图像的相似度作为两个视频之间的视频相似度矩阵中的第i行第j列元素值,将第一视频的帧数和第二视频的帧数作为视频相似度矩阵的行数和列数,第一视频和第二视频得到的视频相似度矩阵的行列之间包含视频的时序信息,则基于视频相似度矩阵训练得到的神经网络模型可以更加准确的预测两个视频之间的相似度。
本公开实施例的视频相似度的确定装置可执行图7所示的一种视频相似度的确定方法,其实现原理相类似,本公开各实施例中的视频相似度的确定装置中的各模块所执行的动作是与本公开各实施例中的视频相似度的确定方法中的步骤相对应的,对于视频相似度的确定装置的各模块的详细功能描述具体可以参见前文中所示的对应的视频相似度的确定方法中的描述,此处不再赘述。
基于与本公开的实施例中的方法相同的原理,本公开提供了一种电子设备,该电子设备包括处理器和存储器;存储器,用于存储操作指令;处理器,用于通过调用操作指令,执行如本公开的方法中的任一实施例中所示的方法。
基于与本公开的实施例中的方法相同的原理,本公开提供了一种计算机可读存储介质,该存储介质存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如本公开的数据处理方法中的任一实施例中所示的方法。
本公开的实施例中,如图10所示,其示出了适于用来实现本公开实施例的电子设备50(例如实现图3和图7中所示的方法的终端设备或服务器)的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图10示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备50可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备30操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备50与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备50,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述方法实施例所示的方法;或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述方法实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。