视频去重方法及装置制造方法

文档序号:6526594阅读:186来源:国知局
视频去重方法及装置制造方法
【专利摘要】本发明公开了一种视频去重方法及装置。其中,该方法包括:根据视频的文本数据将第一视频集合分为多个视频子集合;利用空间向量模型计算视频子集合内两个视频的相似度;根据相似度对视频子集合中的视频进行去重处理得到第二视频集合。采用本发明,解决了现有技术中对视频去重准确率低、计算复杂度高的问题,实现了准确快速地对海量视频去重的效果。
【专利说明】视频去重方法及装置
【技术领域】
[0001]本发明涉及视频处理领域,具体而言,涉及一种视频去重方法及装置。
【背景技术】
[0002]在视频搜索领域,需要处理海量的、来自不同提供方的视频源,它们中间存在着大量的重复视频,特别是一些热门视频。这样会严重影响搜索和视频推荐结果的质量,导致用户体验的下降。所以如何去除具有相同内容的视频,成为视频搜索中必须要解决的问题。
[0003]最常见的视频去重方法就是通过视频文件的md5值去重,该方法认为具有相同md5值的文件是同一部视频。在具有视频文件的项目中,使用这种方法能够识别出大量的重复视频,但是它的弊端就在于对视频文件任何一个小的操作都会造成md5值的不同,例如,转码、删减、广告或字幕的植入,这样采用md5值去重的工作量就很大。
[0004]另一种方法就是根据视频内容去重。视频是由很多连续变化的图像帧组成,而图像帧存在时间和空间上的冗余度,连续的关键帧反应了视频的主要内容。因此,通常会使用关键帧来表示整个视频。完成了对视频关键帧的识别之后,需要提取视频特征来分析视频内容。视频特征就是能够反应视频内容信息的视频本身所具有的物理性质,主要包括颜色特征、纹理特征、运动特征以及声音和字幕等等。最终,就能够利用关键帧的视频特征来对视频内容进行分析,从而识别出相同的视频。
[0005]通过提取关键帧以及关键帧的视频特征来分析视频内容的计算复杂度高,并且需要在具有视频文件的情况下才能进行。下面是一种根据视频文本数据进行视频去重的方法:互联网中的视频一般具有标题、描述和演员等结构化的文本数据,这些文本可以用来描述一部视频。根据视频的文本数据,通过分词来为每部视频建立空间向量模型,然后通过计算两部视频之间的文本信息的距离来衡量其相似度。但是,此方法需要对视频进行两两计算来比较其相似度,计算复杂度太高,无法扩展到工程上对海量视频进行去重。另一个方面,对于来自不同提供方的视频源,视频的文本数据往往具有量大、文本特征稀疏、数据缺失,不一致和含噪声等问题。例如,自不同源的同一部视频,由于填写描述信息的人可以从不同的角度去讲述视频的故事情节,或者在长度上也存在很多的差异,就可能造成对相同视频的描述可能在文字上并不具有很高的相似度。在这种情况下,直接对视频的文本数据建立空间向量模型来计算相似度,不仅计算复杂度高,而且也无法保证结果的准确性。
[0006]Google的Charikar提出的SimHash是一种局部敏感的哈希算法。使用该方法用于在大规模网页中去重相似网页方面有较好的效果。它能够对内容相似的文本产生相同或是相近的哈希值。其原理是从文本中提取一组特征集,依次把每个特征hash到f位中,最终依据海明距离来找寻相似的文档。经过测试可以发现,对长文本使用SimHash效果很好,但对于短文本的效果并不佳。因为短文本自身所包含的信息量较小,造成可供利用的特征信息匮乏,每个特征的份量就增大。例如,以字为特征进行SimHash,由于在算法中每个字都会使得哈希值的多个位不同,还产生较大的海明距离。因此,对于长度对比较短的视频文本数据使用Simhash,并不能保证相同视频能够产生相同或是相近哈希值的覆盖度。[0007]针对现有技术中对视频去重准确率低、计算复杂度高的问题,目前尚未提出有效的解决方案。

【发明内容】

[0008]针对相关技术中对视频去重准确率低、计算复杂度闻的问题,目如尚未提出有效的解决方案,为此,本发明的主要目的在于提供一种视频去重方法及装置,以解决上述问题。
[0009]为了实现上述目的,根据本发明的一个方面,提供了一种视频去重方法,该方法包括:根据视频的文本数据将第一视频集合分为多个视频子集合;利用空间向量模型计算视频子集合内两个视频的相似度;根据相似度对视频子集合中的视频进行去重处理得到第二视频集合。
[0010]进一步地,根据视频的文本数据将第一视频集合分为多个视频子集合的步骤包括:提取文本数据中的属性数据;计算属性数据的哈希值;将具有相同哈希值的视频映射到一个视频子集合中。
[0011]进一步地,计算属性数据的哈希值的步骤包括:将属性数据合成字符串;对字符串中的每个字符进行字符编码得到整型的值;根据整型的值和预设维数计算标号;将初始数组对应标号的位置设置为I获取哈希数组,其中,预设维数为初始数组的维数;将哈希数组分为预设个数的哈希值。
[0012]进一步地,根据整型的值和预设维数计算标号的步骤包括:按照如下公式计算标号site,其中,公式为:site=(wd*331)%f,其中,wd为整型的值,f为预设维数。
[0013]进一步地,多个视频子集合中的视频信息保存在视频索引表中,其中,视频信息包括哈希值和文本数据,将具有相同哈希值的视频映射到一个视频子集合中的步骤包括:检测视频索引表中是否存在哈希值;在视频索引表中存在哈希值的情况下,将哈希值对应的文本数据写入视频索引表中对应视频子集合的第一位置;在视频索引表中不存在哈希值的情况下,将哈希值及其对应的文本数据写入视频索引表中对应新的视频子集合的第二位置。
[0014]进一步地,利用空间向量模型计算视频子集合内任意两个视频的相似度的步骤包括:建立视频子集合中第一视频的第一空间向量和第二视频的第二空间向量;计算第一空间向量与第二空间向量之间的向量余弦值,将向量余弦值作为相似度。
[0015]进一步地,建立视频子集合中第一视频的第一空间向量和第二视频的第二空间向量的步骤包括:从第一视频和第二视频中抓取关键词;检测第一视频的第一文本数据中是否存在关键词;在第一文本数据中存在关键词的情况下,设置关键词的第一权值为I;在第一文本数据中不存在关键词的情况下,设置关键词的第一权值为O ;检测第二视频的第二文本数据中是否存在关键词;在第二文本数据中存在关键词的情况下,设置关键词的第二权值为I;在第二文本数据中不存在关键词的情况下,设置关键词的第二权值为O ;将关键词和第一权值保存在第一空间向量中,以及将关键词和第二权值保存在第二空间向量中。
[0016]进一步地,根据相似度对视频子集合中的视频进行去重处理得到第二视频集合的步骤包括:检测向量余弦值是否大于预设阈值;在向量余弦值大于预设阈值的情况下,确定视频已经存在,将视频丢弃;在向量余弦值不大于预设阈值的情况下,将视频的文本数据和对应的哈希值插入视频索引表;使用视频索引表更新第一视频集合得到第二视频集合。
[0017]为了实现上述目的,根据本发明的另一方面,提供了一种视频去重装置,该装置包括:分解模块,用于根据视频的文本数据将第一视频集合分为多个视频子集合;计算模块,用于利用空间向量模型计算视频子集合内两个视频的相似度;去重模块,用于根据相似度对视频子集合中的视频进行去重处理得到第二视频集合。
[0018]进一步地,分解模块包括:提取模块,用于提取文本数据中的属性数据;哈希计算模块,用于计算属性数据的哈希值;映射模块,用于将具有相同哈希值的视频映射到一个视频子集合中。
[0019]进一步地,哈希计算模块包括:合成模块,用于将属性数据合成字符串;编码模块,用于对字符串中的每个字符进行字符编码得到整型的值;标号计算模块,用于根据整型的值和预设维数计算标号;数组设置模块,用于将初始数组对应标号的位置设置为I获取哈希数组,其中,预设维数为初始数组的维数;分段模块,用于将哈希数组分为预设个数的哈希值。
[0020]进一步地,标号计算模块包括:计算子模块,用于按照如下公式计算标号site,其中,公式为:site=(wd*331)%f,其中,wd为整型的值,f为预设维数。
[0021]进一步地,多个视频子集合中的视频信息保存在视频索引表中,其中,视频信息包括哈希值和文本数据,映射模块包括:第一检测模块,用于检测视频索引表中是否存在哈希值;第一写入模块,用于在视频索引表中存在哈希值的情况下,将哈希值对应的文本数据写入视频索引表中对应视频子集合的第一位置;第二写入模块,用于在视频索引表中不存在哈希值的情况下,将哈希值及其对应的文本数据写入视频索引表中对应新的视频子集合的第二位置。
[0022]进一步地,计算模块包括:建立模块,用于建立视频子集合中第一视频的第一空间向量和第二视频的第二空间向量;余弦计算模块,用于计算第一空间向量与第二空间向量之间的向量余弦值,将向量余弦值作为相似度。
[0023]进一步地,建立模块包括:抓取模块,用于从第一视频和第二视频中抓取关键词;第二检测模块,用于检测第一视频的第一文本数据中是否存在关键词;第一设置模块,用于在第一文本数据中存在关键词的情况下,设置关键词的第一权值为I ;第二设置模块,用于在第一文本数据中不存在关键词的情况下,设置关键词的第一权值为O ;第三检测模块,用于检测第二视频的第二文本数据中是否存在关键词;第三设置模块,用于在第二文本数据中存在关键词的情况下,设置关键词的第二权值为I;第四设置模块,用于在第二文本数据中不存在关键词的情况下,设置关键词的第二权值为O ;保存模块,用于将关键词和第一权值保存在第一空间向量中,以及将关键词和第二权值保存在第二空间向量中。
[0024]进一步地,去重模块包括:第四检测模块,用于检测向量余弦值是否大于预设阈值;丢弃模块,用于在向量余弦值大于预设阈值的情况下,确定第一视频已经存在,将第一视频丢弃;插入模块,用于在向量余弦值不大于预设阈值的情况下,将第一视频的文本数据和对应的哈希值插入视频索引表;更新模块,用于使用视频索引表更新第一视频集合得到第二视频集合。
[0025]采用本发明,分解模块根据视频的文本数据将第一视频集合分为多个视频子集合,然后通过计算模块利用空间向量模型计算视频子集合内任意两个视频的相似度,并使用去重模块根据相似度对第一视频集合中的视频进行去重处理得到第二视频集合。在本发明的上述方案中,先根据视频的文本数据将海量的视频分为多个视频子集合,然后在每个视频子集合中利用空间向量模型进行两部视频的相似度计算,然后根据相似度对海量的视频去重,这种方法与传统的两两比较求视频相似度的方法对比,不仅大幅度降低了计算复杂度,而且能够保证视频去重的准确率。采用本发明解决了现有技术中对视频去重准确率低、计算复杂度高的问题,实现了准确快速地对海量视频去重的效果。
【专利附图】

【附图说明】
[0026]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0027]图1是根据本发明实施例的视频去重装置的结构示意图;
[0028]图2是根据本发明实施例的视频去重方法的流程图;以及
[0029]图3是根据本发明实施例的一种可选的视频去重方法的流程图。
【具体实施方式】
[0030]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0031]图1是根据本发明实施例的视频去重装置的结构示意图。如图1所示,该装置可以包括:分解模块10,用于根据视频的文本数据将第一视频集合分为多个视频子集合;计算模块30,用于利用空间向量模型计算视频子集合内两个视频的相似度;去重模块50,用于根据相似度对视频子集合中的视频进行去重处理得到第二视频集合。
[0032]采用本发明,分解模块根据视频的文本数据将第一视频集合分为多个视频子集合,然后通过计算模块利用空间向量模型计算视频子集合内任意两个视频的相似度,并使用去重模块根据相似度对视频子集合中的视频进行去重处理得到第二视频集合。在本发明的上述方案中,先根据视频的文本数据将海量的视频分为多个视频子集合,然后在每个视频子集合中利用空间向量模型进行两部视频的相似度计算,然后根据相似度对海量的视频去重,这种方法与传统的两两比较求视频相似度的方法对比,不仅大幅度降低了计算复杂度,而且能够保证视频去重的准确率。采用本发明解决了现有技术中对视频去重准确率低、计算复杂度高的问题,实现了准确快速地对海量视频去重的效果。
[0033]其中,可以用余弦距离、欧式距离、Jaccard相似度、最长公共子串、编辑距离等来计算两个视频的文本数据的相似度。
[0034]在本发明的上述实施例中,分解模块包括:提取模块,用于提取文本数据中的属性数据;哈希计算模块,用于计算属性数据的哈希值;映射模块,用于将具有相同哈希值的视频映射到一个视频子集合中。
[0035]其中,在上述实施例中可以采用单字符敏感算法(TinHash算法),先对视频的结构化属性文本数据进行hash分桶,然后在相应的桶中利用空间向量模型进行两部视频的相似度计算。在该实施例中的桶即为上述实施例中的视频子集合。
[0036]根据本发明的上述实施例,哈希计算模块可以包括:合成模块,用于将属性数据合成字符串;编码模块,用于对字符串中的每个字符进行字符编码得到整型的值;标号计算模块,用于根据整型的值和预设维数计算标号;数组设置模块,用于将初始数组对应标号的位置设置为I获取哈希数组,其中,预设维数为初始数组的维数;分段模块,用于将哈希数组分为预设个数的哈希值。
[0037]使用TinHash算法是对单字符进行哈希运算,使得短文本中的每个字只会影响哈希值中的一个位,提升了相同视频的文本数据能够产生相同或是相近哈希值的覆盖度。
[0038]具体地,标号计算模块包括:计算子模块,用于按照如下公式计算标号site,其中,公式为:site=(wd*331)%f,其中,wd为整型的值,f为预设维数。
[0039]其中,属性数据可以包括:主标题、导演、演员、主持人和简介等属性的数据。具体地,在提取属性数据之前,可以将视频的文本数据中的各字段的字符串中的标点符号去除得到更新后的文本数据,然后将视频的文本数据中的主标题、导演、演员、主持人和简介对应的数据提取出来,合成为一个字符串S。更具体地,对不同的视频的文本数据中的简介提取统一的字符个数,以减少描述信息不同而带来的负面影响。
[0040]在上述实施例中,可以将预设维数f的初始数组S初始化为O,也即初始数组为f个O的数组。其中,预设维数可以是用户设定的初始数组的长度,在本实施例中可以设置为f=128,则初始数组S为初始化为O的128位的向量。
[0041]在得到字符串s之后,可以将s中的每一个字符进行utf-8字符编码),将每个字符转为整型,将整型的值记作wd。并通过公式site= (wd*331) %f计算数组的标号,然后根据site的值将初始数组S中的相应位设置为I。其中,site是数组的标号,也就是初始数组S中需要设置为I的位。具体地,假设对应字符A的数组的标号site为56,则将初始数组的第56位的值设置为I。在完成对初始数组的设置之后得到哈希数组,将该哈希数组输出。
[0042]具体地,当有新的视频需要去重时,先使用TinHash算法计算出128位的hash值(即上述实施例中的哈希数组),可以将该hash值分为预设个数的哈希值,将哈希数组分为预设个数的哈希值优选可以将哈希数组平均分为预设个数的哈希值。其中,预设个数优选为4,则可以将该128位的hash值平均分为4段,每段的长度为32位,将具有相同hash段的数据映射到一个hash分桶(即一个视频子集合)。采用上述方案,每个hash分桶内部比较的量要远远小于全部的视频记录数(也即第一视频集合的视频数),这样就大大降低了两两比较视频求相似度的计算复杂度。
[0043]根据本发明的上述实施例,多个视频子集合中的视频信息保存在视频索引表中,其中,视频信息包括哈希值和文本数据,映射模块包括:第一检测模块,用于检测视频索引表中是否存在哈希值;第一写入模块,用于在视频索引表中存在哈希值的情况下,将哈希值对应的文本数据写入视频索引表中对应视频子集合的第一位置;第二写入模块,用于在视频索引表中不存在哈希值的情况下,将哈希值及其对应的文本数据写入视频索引表中对应新的视频子集合的第二位置。
[0044]在本发明的上述实施例中,计算模块包括:建立模块,用于建立视频子集合中第一视频的第一空间向量和第二视频的第二空间向量;余弦计算模块,用于计算第一空间向量与第二空间向量之间的向量余弦值,将向量余弦值作为相似度。
[0045]在上述实施例中,对海量的视频文本数据通过TinHash算法得到hash分桶(即视频子集合)之后,可以在每个分桶内对任意两个视频(第一视频和第二视频)建立空间向量,具体地,从第一视频和第二视频的文本数据中提取关键词,建立[关键词:权值]组成的空间向量,在得到第一空间向量和第二空间向量之后,计算两个空间向量之间的余弦距离(即上述实施例中的向量余弦值)来衡量视频的文本数据的相似度,进而可以得出两部视频之间的相似度。
[0046]具体地,建立模块包括:抓取模块,用于从第一视频和第二视频中抓取关键词?’第二检测模块,用于检测第一视频的第一文本数据中是否存在关键词;第一设置模块,用于在第一文本数据中存在关键词的情况下,设置关键词的第一权值为I ;第二设置模块,用于在第一文本数据中不存在关键词的情况下,设置关键词的第一权值为O ;第三检测模块,用于检测第二视频的第二文本数据中是否存在关键词;第三设置模块,用于在第二文本数据中存在关键词的情况下,设置关键词的第二权值为I ;第四设置模块,用于在第二文本数据中不存在关键词的情况下,设置关键词的第二权值为O ;保存模块,用于将关键词和第一权值保存在第一空间向量中,以及将关键词和第二权值保存在第二空间向量中。
[0047]其中,上述实施例中的关键词可以是文本数据中的主标题、导演、演员和主持人,选取主标题、导演、演员和主持人的属性数据是因为基于这些属性字段的质量比较高,可以提高计算向量余弦值的精度,从而可以更准确地对海量视频去重。
[0048]具体地,可以将关键词是否在文本数据中出现作为关键词的权值:若关键词在文本数据中出现,则权值设置为I;相反,则设置为0,因此,每个视频就可以转化为空间向量来表示。
[0049]在本发明的上述实施例中,去重模块包括:第四检测模块,用于检测向量余弦值是否大于预设阈值;丢弃模块,用于在向量余弦值大于预设阈值的情况下,确定第一视频已经存在,将第一视频丢弃;插入模块,用于在向量余弦值不大于预设阈值的情况下,将第一视频的文本数据和对应的哈希值插入视频索引表;更新模块,用于使用视频索引表更新第一视频集合得到第二视频集合。
[0050]在处理完第一视频集合中的所有视频的文本数据之后,也即将视频索引表更新完毕之后,使用更新后的视频索引表更新第一视频集合,也即将视频信息不存在于视频索引表中的视频删除,即可完成对第一视频集合的准确快速去重,得到第二视频集合。
[0051]需要说明的是,上述实施例中对海量视频去重的方案与下图2和图3实施例中的定时发送当前的位置信息的方法、方式、示例以及应用场景等内容相同,但不限于图2和图3实施例所公开的内容。
[0052]上述实施例中的各个模块运行在计算机终端或移动终端,可以通过软件或硬件实现。
[0053]图2是根据本发明实施例的视频去重方法的流程图,如图2所示该方法包括如下步骤:
[0054]步骤S202,根据视频的文本数据将第一视频集合分为多个视频子集合。
[0055]步骤S204,利用空间向量模型计算视频子集合内两个视频的相似度。
[0056]步骤S206,根据相似度对视频子集合中的视频进行去重处理得到第二视频集合。
[0057]采用本发明,根据视频的文本数据将第一视频集合分为多个视频子集合,然后利用空间向量模型计算视频子集合内任意两个视频的相似度,并根据相似度对第一视频集合中的视频进行去重处理得到第二视频集合。在本发明的上述方案中,先根据视频的文本数据将海量的视频分为多个视·频子集合,然后在每个视频子集合中利用空间向量模型进行两部视频的相似度计算,然后根据相似度对海量的视频去重,这种方法与传统的两两比较求视频相似度的方法对比,不仅大幅度降低了计算复杂度,而且能够保证视频去重的准确率。采用本发明解决了现有技术中对视频去重准确率低、计算复杂度高的问题,实现了准确快速地对海量视频去重的效果。
[0058]其中,可以用余弦距离、欧式距离、Jaccard相似度、最长公共子串、编辑距离等来衡量两个视频的文本数据的相似度。
[0059]在本发明的上述实施例中,根据视频的文本数据将第一视频集合分为多个视频子集合的步骤可以包括:提取文本数据中的属性数据;计算属性数据的哈希值;将具有相同哈希值的视频映射到一个视频子集合中。
[0060]其中,在上述实施例中可以采用单字符敏感算法(TinHash算法),先对视频的结构化属性文本数据进行hash分桶,然后在相应的桶中利用空间向量模型进行两部视频的相似度计算。在该实施例中的桶即为上述实施例中的视频子集合。
[0061]根据本发明的上述实施例,计算属性数据的哈希值的步骤可以包括:将属性数据合成字符串;对字符串中的每个字符进行字符编码得到整型的值;根据整型的值和预设维数计算标号;将初始数组对应标号的位置设置为I获取哈希数组,其中,预设维数为初始数组的维数;将哈希数组分为预设个数的哈希值。
[0062]使用TinHash算法是对单字符进行哈希运算,使得短文本中的每个字只会影响哈希值中的一个位,提升了相同视频的文本数据能够产生相同或是相近哈希值的覆盖度。
[0063]具体地,根据整型的值和预设维数计算标号的步骤可以包括:按照如下公式计算标号site,其中,公式为:site=(wd*331)%f,其中,wd为整型的值,f为预设维数。
[0064]其中,属性数据可以包括:主标题、导演、演员、主持人和简介等属性的数据。具体地,在提取属性数据之前,可以将视频的文本数据中的各字段的字符串中的标点符号去除得到更新后的文本数据,然后将视频的文本数据中的主标题、导演、演员、主持人和简介对应的数据提取出来,合成为一个字符串S。更具体地,对不同的视频的文本数据中的简介提取统一的字符个数,以减少描述信息不同而带来的负面影响。
[0065]在上述实施例中,可以将预设维数f的初始数组S初始化为0,也即初始数组为f个O的数组。其中,预设维数可以是用户设定的初始数组的长度,在本实施例中可以设置为f=128,则初始数组S为初始化为O的128位的向量。
[0066]在得到字符串s之后,可以将s中的每一个字符进行utf-8字符编码),将每个字符转为整型,将整型的值记作wd。并通过公式site= (wd*331) %f计算数组的标号,然后根据site的值将初始数组S中的相应位设置为I。其中,site是数组的标号,也就是初始数组S中需要设置为I的位。具体地,假设对应字符A的数组的标号site为56,则将初始数组的第56位的值设置为I。在完成对初始数组的设置之后得到哈希数组,将该哈希数组输出。
[0067]具体地,当有新的视频需要去重时,先使用TinHash算法计算出128位的hash值(即上述实施例中的哈希数组),可以将该hash值分为预设个数的哈希值,将哈希数组分为预设个数的哈希值优选可以将哈希数组平均分为预设个数的哈希值。其中,预设个数优选为4,则可以将该128位的hash值平均分为4段,每段的长度为32位,将具有相同hash段的数据映射到一个hash分桶(即一个视频子集合)。采用上述方案,每个hash分桶内部的比较的量要远远小于完整的视频记录数(也即第一视频集合的视频数),这样就大大降低了两两比较视频求相似度的计算复杂度。
[0068]根据本发明的上述实施例,多个视频子集合中的视频信息保存在视频索引表中,其中,视频信息包括哈希值和文本数据,将具有相同哈希值的视频映射到一个视频子集合中的步骤可以包括:检测视频索引表中是否存在哈希值;在视频索引表中存在哈希值的情况下,将哈希值对应的文本数据写入视频索引表中对应视频子集合的第一位置;在视频索引表中不存在哈希值的情况下,将哈希值及其对应的文本数据写入视频索引表中对应新的视频子集合的第二位置。
[0069]在本发明的上述实施例中,利用空间向量模型计算视频子集合内任意两个视频的相似度的步骤可以包括:建立视频子集合中第一视频的第一空间向量和第二视频的第二空间向量;计算第一空间向量与第二空间向量之间的向量余弦值,将向量余弦值作为相似度。
[0070]在上述实施例中,对海量的视频文本数据通过TinHash算法得到hash分桶(即视频子集合)之后,可以在每个分桶内对任意两个视频(第一视频和第二视频)建立空间向量,具体地,从第一视频和第二视频的文本数据中提取关键词,建立[关键词:权值]组成的空间向量,在得到第一空间向量和第二空间向量之后,计算两个空间向量之间的余弦距离(即上述实施例中的向量余弦值)来衡量视频的文本数据的相似度,进而可以得出两部视频之间的相似度。
[0071]具体地,建立视频子集合中第一视频的第一空间向量和第二视频的第二空间向量可以包括:从第一视频和第二视频中抓取关键词;检测第一视频的第一文本数据中是否存在关键词,在第一文本数据中存在关键词的情况下,设置关键词的第一权值为I ;在第一文本数据中不存在关键词的情况下,设置关键词的第一权值为O ;检测第二视频的第二文本数据中是否存在关键词,在第二文本数据中存在关键词的情况下,设置关键词的第二权值为I;在第二文本数据中不存在关键词的情况下,设置关键词的第二权值为O ;将关键词和第一权值保存在第一空间向量中,以及将关键词和第二权值保存在第二空间向量中。
[0072]其中,上述实施例中的关键词可以是文本数据中的主标题、导演、演员和主持人,选取主标题、导演、演员和主持人的属性数据是因为基于这些属性字段的质量比较高,可以提高计算向量余弦值的精度,从而可以更准确地对海量视频去重。
[0073]具体地,可以将关键词是否在文本数据中出现作为关键词的权值:若关键词在文本数据中出现,则权值设置为I ;相反,则设置为0,因此,每个视频就可以转化为空间向量来表示。
[0074]在本发明的上述实施例中,根据相似度对第一视频集合中的视频进行去重处理得到第二视频集合的步骤可以包括:检测向量余弦值是否大于预设阈值;在向量余弦值大于预设阈值的情况下,确定视频已经存在,将视频丢弃;在向量余弦值不大于预设阈值的情况下,将视频的文本数据和对应的哈希值插入视频索引表;使用视频索引表更新第一视频集合得到第二视频集合。
[0075]具体地,本发明的上述实施例可以通过图3的方法实现:
[0076]步骤S301:输入第一视频集合中的视频信息。
[0077]具体地,可以在启动输入第一视频集合中的视频信息之前,初始化一个空的〈key,value〉的视频索引表,其中,key用于存储视频的文本数据的一段32位的哈希值,value用于存储与key对应的视频的文本数据。该视频索引表也可以是一个文件夹或者数据库,并不限于是一个数据表的形式。
[0078]步骤S302:提取第一视频的文本数据。
[0079]具体地,从第一视频集合中取出一条视频记录(即上述实施例中的第一视频),即海量视频数据中的一条视频,该第一视频的文本数据中具有第一视频的属性数据,包括主标题、导演、演员、主持人、简介、部、集、语言、编剧以及时长等27个属性。
[0080]步骤S303:提取文本数据中的特征数据。
[0081]具体地,可以从第一视频的文本数据中提取第一视频的特征数据,优选地,特征数据可以包括主标题、导演、演员、主持人和简介。其中,特征数据即为上述实施例中的属性数据。
[0082]步骤S304:计算特征数据的初始哈希值。
[0083]步骤S305:将初始哈希值分为4段得到哈希值。
[0084]具体地,使用上述实施例中的TinHash算法对特征数据计算得出128位的初始哈希值,并将初始哈希值平均分为4段得到哈希值。
[0085]步骤S306:检测视频索引表中是否存在哈希值。
[0086]其中,在视频索引表中存在哈希值的情况下,执彳丁步骤S307 ;在视频索引表中不存在哈希值的情况下,执行步骤S308。
[0087]步骤S307:在hash分桶内计算第一视频与其他视频之间的相似度。其中,hash分桶即为视频子集合。
[0088]步骤S308:将哈希值及其对应的文本数据写入视频索引表的第二位置。
[0089]具体地,对于每一段的哈希值,判断其是否在视频索引表中存在,若不存在,则将该第一视频的4段哈希值及其文本数据写入到视频索引表中的第二位置;若存在,则将第一视频以及具有相同hash值(即映射到同一 hash分桶)的其他视频的文本数据建立空间向量。
[0090]其中,上述实施例中的第二位置为在视频索引表中新建的视频子集合的存储哈希值和文本数据的位置,其中的新(建)的视频子集合即为一个新的哈希分桶。
[0091]具体地,若视频索引表中存在该哈希值,从视频索引表中对应该哈希值的视频子集合中提取第二视频,建立第一视频和第二视频的空间向量。上述实施例中的每个视频子集合(即哈希分桶)中均具有相同的哈希值。
[0092]例如:第一视频的导演为李安,主演为:章子怡;第二视频的导演为李安,主演为:巩俐。则从第一视频和第二视频的文本数据中抓取到的关键词为:李安、章子怡、以及巩俐。分别检测李安、章子怡、以及巩俐是否在第一视频的文本数据中存在,得到第一空间向量[1,1,0];分别检测李安、章子怡、以及巩俐是否在第二视频的文本数据中存在,得到第二空间向量[1,0,I]。在得到第一空间向量和第二空间向量之后,计算它们之间的余弦夹角得到向量余弦值,该向量余弦值即为相似度。
[0093]在该步骤中,将第一视频与对应的视频子集合中的所有视频分别计算得到向量余弦值,以保证去重的准确度。具体地,通过计算视频子集合中任意两个视频的文本数据之间的向量余弦值来实现上述方法。
[0094]步骤S309:检测第一视频是否为重复视频。
[0095]其中,在第一视频为重复视频的情况下,执行步骤S310 ;在第一视频不为重复视频的情况下,执行步骤S311。
[0096]步骤S310:丢弃第一视频。
[0097]步骤S311:将第一视频的文本数据插入视频索引表的第一位置。
[0098]具体地,在得到向量余弦值之后,通过检测向量余弦值是否大于预设阈值确定第一视频是否为重复视频。具体地,在向量余弦值大于预设阈值的情况下,确定第一视频为重复视频,将该第一视频丢弃;在向量余弦值不大于预设阈值的情况下,确定第一视频不是重复视频,将第一视频的文本数据插入视频索引表的第一位置。其中,第一位置为该哈希值对应的value (即存储文本数据)的位置,具体地,第一位置为该哈希值对应的视频子集合在视频索引表中存储文本数据的位置。其中,对应的视频子集合即为具有与第一视频的哈希值相同哈希值的视频子集合。
[0099]在执行完步骤S311和步骤S310返回执行步骤S302 (图中未示出),直到处理完第一视频集合中的所有视频的文本数据。
[0100]在处理完第一视频集合中的所有视频的文本数据之后,也即将视频索引表更新完毕之后,使用更新后的视频索引表更新第一视频集合,也即将不存在于视频索引表中的视频删除,即可完成对第一视频集合的准确去重,得到第二视频集合。
[0101]需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。 [0102]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如R0M/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0103]使用本发明上述实施例中提供的TinHash算法,从覆盖率及准确率两个方面评估该算法的效果。具体地,取200个具有结构化文本数据的视频样本,文本数据所提供的信息包括视频的主标题、导演、演员、主持人和简介,其中100部为不重复视频,另外100部存在两两重复的视频。在实验中随机抽取了 128部视频数据,对TinHash的测试结果为覆盖率97.4%,准确率 96.9%ο
[0104]更具体地,使用本案对每部视频的去重的计算复杂度为0=Α+Κ*Β,其中,K为使用TinHash算法后得出的相同hash分桶中的视频记录数,通过上述的介绍,我们可以知道K?N (N为总视频记录数,即为第一视频集合中的视频数量),A为计算I次TinHash的时间,B为计算I次向量余弦值的时间。由此可以看出,本案所提出的方案能够在线性时间内完成对海量视频的去重。
[0105]从以上的描述中,可以看出,本发明实现了如下技术效果:采用本发明,根据视频的文本数据将第一视频集合分为多个视频子集合,然后利用空间向量模型计算视频子集合内任意两个视频的相似度,并根据相似度对第一视频集合中的视频进行去重处理得到第二视频集合。在本发明的上述方案中,先根据视频的文本数据将海量的视频分为多个视频子集合,然后在每个视频子集合中利用空间向量模型进行两部视频的相似度计算,然后根据相似度对海量的视频去重,这种方法与传统的两两比较求视频相似度的方法对比,不仅大幅度降低了计算复杂度,而且能够保证视频去重的准确率。采用本发明解决了现有技术中对视频去重准确率低、计算复杂度高的问题,实现了准确快速地对海量视频去重的效果。
[0106]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0107]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种视频去重方法,其特征在于,包括: 根据视频的文本数据将第一视频集合分为多个视频子集合; 利用空间向量模型计算所述视频子集合内两个所述视频的相似度; 根据所述相似度对所述视频子集合中的所述视频进行去重处理得到第二视频集合。
2.根据权利要求1所述的视频去重方法,其特征在于,根据视频的文本数据将第一视频集合分为多个视频子集合的步骤包括: 提取所述文本数据中的属性数据; 计算所述属性数据的哈希值; 将具有相同所述哈希值的所述视频映射到一个所述视频子集合中。
3.根据权利要求2所述的视频去重方法,其特征在于,计算所述属性数据的哈希值的步骤包括: 将所述属性数据合成字符串; 对所述字符串中的每个字符进行字符编码得到整型的值; 根据所述整型的值和预设维数计算标号; 将初始数组对应所述标号的位置设置为I获取哈希数组,其中,所述预设维数为所述初始数组的维数; 将所述哈希数组分为预设个数的所述哈希值。
4.根据权利要求3所述的视`频去重方法,其特征在于,根据所述整型的值和预设维数计算标号的步骤包括: 按照如下公式计算所述标号site,其中,所述公式为:site=(wd*331)%f,其中,所述wd为所述整型的值,所述f为所述预设维数。
5.根据权利要求2所述的视频去重方法,其特征在于,所述多个视频子集合中的视频信息保存在视频索引表中,其中,所述视频信息包括所述哈希值和所述文本数据,将具有相同所述哈希值的所述视频映射到一个所述视频子集合中的步骤包括: 检测所述视频索引表中是否存在所述哈希值; 在所述视频索引表中存在所述哈希值的情况下,将所述哈希值对应的所述文本数据写入所述视频索引表中对应所述视频子集合的第一位置; 在所述视频索引表中不存在所述哈希值的情况下,将所述哈希值及其对应的所述文本数据写入所述视频索引表中对应新的所述视频子集合的第二位置。
6.根据权利要求5所述的视频去重方法,其特征在于,利用空间向量模型计算所述视频子集合内任意两个所述视频的相似度的步骤包括: 建立所述视频子集合中第一视频的第一空间向量和第二视频的第二空间向量; 计算所述第一空间向量与所述第二空间向量之间的向量余弦值,将所述向量余弦值作为所述相似度。
7.根据权利要求6所述的视频去重方法,其特征在于,建立所述视频子集合中第一视频的第一空间向量和第二视频的第二空间向量的步骤包括: 从所述第一视频和所述第二视频中抓取关键词; 检测所述第一视频的第一文本数据中是否存在所述关键词; 在所述第一文本数据中存在所述关键词的情况下,设置所述关键词的第一权值为I ;在所述第一文本数据中不存在所述关键词的情况下,设置所述关键词的所述第一权值为O ; 检测所述第二视频的第二文本数据中是否存在所述关键词; 在所述第二文本数据中存在所述关键词的情况下,设置所述关键词的第二权值为I; 在所述第二文本数据中不存在所述关键词的情况下,设置所述关键词的所述第二权值为O ; 将所述关键词和所述第一权值保存在所述第一空间向量中,以及将所述关键词和所述第二权值保存在所述第二空间向量中。
8.根据权利要求6所述的视频去重方法,其特征在于,根据所述相似度对所述视频子集合中的所述视频进行去重处理得到第二视频集合的步骤包括: 检测所述向量余弦值是否大于预设阈值; 在所述向量余弦值大于所述预设阈值的情况下,确定所述视频已经存在,将所述视频丢弃; 在所述向量余弦值不大于所述预设阈值的情况下,将所述视频的所述文本数据和对应的所述哈希值插入所述视频索引表; 使用所述视频索引表更新所述第一视频集合得到所述第二视频集合。
9.一种视频去`重装置,其特征在于,包括: 分解模块,用于根据视频的文本数据将第一视频集合分为多个视频子集合; 计算模块,用于利用空间向量模型计算所述视频子集合内两个所述视频的相似度; 去重模块,用于根据所述相似度对所述视频子集合中的所述视频进行去重处理得到第二视频集合。
10.根据权利要求9所述的视频去重装置,其特征在于,所述分解模块包括: 提取模块,用于提取所述文本数据中的属性数据; 哈希计算模块,用于计算所述属性数据的哈希值; 映射模块,用于将具有相同所述哈希值的所述视频映射到一个所述视频子集合中。
11.根据权利要求10所述的视频去重装置,其特征在于,所述哈希计算模块包括: 合成模块,用于将所述属性数据合成字符串; 编码模块,用于对所述字符串中的每个字符进行字符编码得到整型的值; 标号计算模块,用于根据所述整型的值和预设维数计算标号; 数组设置模块,用于将初始数组对应所述标号的位置设置为I获取哈希数组,其中,所述预设维数为所述初始数组的维数; 分段模块,用于将所述哈希数组分为预设个数的所述哈希值。
12.根据权利要求11所述的视频去重装置,其特征在于,所述标号计算模块包括: 计算子模块,用于按照如下公式计算所述标号site,其中,所述公式为:site=(wd*331)%f,其中,所述wd为所述整型的值,所述f为所述预设维数。
13.根据权利要求10所述的视频去重装置,其特征在于,所述多个视频子集合中的视频信息保存在视频索引表中,其中,所述视频信息包括所述哈希值和所述文本数据,所述映射模块包括: 第一检测模块,用于检测所述视频索引表中是否存在所述哈希值;第一写入模块,用于在所述视频索引表中存在所述哈希值的情况下,将所述哈希值对应的所述文本数据写入所述视频索引表中对应所述视频子集合的第一位置; 第二写入模块,用于在所述视频索引表中不存在所述哈希值的情况下,将所述哈希值及其对应的所述文本数据写入所述视频索引表中对应新的所述视频子集合的第二位置。
14.根据权利要求13所述的视频去重装置,其特征在于,所述计算模块包括: 建立模块,用于建立所述视频子集合中第一视频的第一空间向量和第二视频的第二空间向量; 余弦计算模块,用于计算所述第一空间向量与所述第二空间向量之间的向量余弦值,将所述向量余弦值作为所述相似度。
15.根据权利要求14所述的视频去重装置,其特征在于,所述建立模块包括: 抓取模块,用于从所述第一视频和所述第二视频中抓取关键词; 第二检测模块,用于检测所述第一视频的第一文本数据中是否存在所述关键词;第一设置模块,用于在所述第一文本数据中存在所述关键词的情况下,设置所述关键词的第一权值为I ; 第二设置模块,用于在所述第一文本数据中不存在所述关键词的情况下,设置所述关键词的所述第一权值为O ; 第三检测模块,用于检测所述第二视频的第二文本数据中是否存在所述关键词;第三设置模块,用于在所述第二文本数据中存在所述关键词的情况下,设置所述关键词的第二权值为I ;` 第四设置模块,用于在所述第二文本数据中不存在所述关键词的情况下,设置所述关键词的所述第二权值为O ; 保存模块,用于将所述关键词和所述第一权值保存在所述第一空间向量中,以及将所述关键词和所述第二权值保存在所述第二空间向量中。
16.根据权利要求14所述的视频去重装置,其特征在于,所述去重模块包括: 第四检测模块,用于检测所述向量余弦值是否大于预设阈值; 丢弃模块,用于在所述向量余弦值大于所述预设阈值的情况下,确定所述第一视频已经存在,将所述第一视频丢弃; 插入模块,用于在所述向量余弦值不大于所述预设阈值的情况下,将所述第一视频的所述文本数据和对应的所述哈希值插入所述视频索引表; 更新模块,用于使用所述视频索引表更新所述第一视频集合得到所述第二视频集合。
【文档编号】G06F17/30GK103678702SQ201310744685
【公开日】2014年3月26日 申请日期:2013年12月30日 优先权日:2013年12月30日
【发明者】李珊, 刘锟 申请人:优视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1