一种基于多个局部敏感哈希表的视频检索方法及装置与流程

文档序号:19399659发布日期:2019-12-13 19:02阅读:194来源:国知局
一种基于多个局部敏感哈希表的视频检索方法及装置与流程

本发明涉及通信技术领域,更具体地,涉及基于哈希表的视频检索方法及装置。



背景技术:

随着互联网技术的飞速发展、视频采集设备以及视频编辑软件的不断更新,在网络上流传的视频数量呈爆炸式增长。网络中众多关于视频的服务,例如视频分享、搜索和推荐,已成为人们数字生活中的重要组成,各种社交网站上每天都有大量的视频被上传、下载和分享。人们在能很方便的获取各种视频资源的同时,也能利用各种视频编辑软件对视频进行编辑,从简单的视频格式转换到视频剪辑、多种变换混合,使得网络上存在大量重复或者近似重复的视频。

近年来各种近似重复视频检测(near-duplicatevideoretrieval,ndvr)算法引起了广泛的关注和研究,其中基于哈希的近似重复视频检测算法因其在大规模检索中的高效率而备受青睐。研究者在研究时的关注点大多在于提取或者构造表述性更强、信息量更丰富的图像特征来更准确的表示视频中的图像,也有研究者着眼于设计更高效率和性能的哈希函数用于视频图像的编码,如何更准确、快速地提取视频中的关键帧也是另一个研究点。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

现有的基于哈希的视频检索技术,缺少高适用性、扩展性的哈希检索框架。如前所述,研究者们聚焦于更优异的图像特征、哈希编码算法、关键帧提取方法,却鲜有人涉及提出一种具有通用性的基于哈希的视频检索方法(框架),以便以更高的检索效率和准确性来满足实际应用需求。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的基于多个局部敏感哈希表的视频检索方法及装置,用于提高近似重复视频检索的效率、准确率、召回率。

本发明一方面提供一种基于多个局部敏感哈希表的视频检索方法,所述方法包括:

步骤s1,将视频数据库中的视频和需要检索的视频处理成二进制哈希编码;

步骤s2,将视频数据库的哈希编码均匀分割成l段,由视频数据库中全部视频的所有哈希编码的第p段编码构建第p个哈希索引子表,p的取值为1,2……l,l个哈希子表组成多哈希表结构;

步骤s3,将需要检索的视频的哈希编码均匀分割成l段,将第p段哈希编码在视频数据库的第p个哈希子表中进行检索;

步骤s4,对l个哈希子表的检索结果进行合并统计后返回检索结果。

进一步地,所述步骤s1,将视频数据库中的视频和需要检索的视频处理成二进制哈希编码,具体为:

s11,提取视频中的关键帧,用多个关键帧图像来表示单个视频;

s12,提取关键帧的图像特征,将图像特征表示成特征向量;

s13,利用一组具有局部敏感特性的哈希函数对特征向量逐一运算处理,将特征向量映射为二进制哈希编码,直至将整个视频表示为一系列二进制哈希编码。

进一步地,所述步骤s2,将视频数据库的哈希编码均匀分割成l段,由视频数据库中全部视频的所有哈希编码的第p段编码构建第p个哈希索引子表,p的取值为1,2……l,l个哈希子表组成多哈希表结构,具体为:将视频数据库中的视频的关键帧编码顺序均分为子编码序列,然后分别对子编码构建索引表。

进一步地,所述的基于多个局部敏感哈希表的视频检索方法,其特征在于,所述步骤s3,将需要检索的视频的哈希编码均匀分割成l段,将第p段哈希编码在视频数据库的第p个哈希子表中进行检索,具体为:

将需要检索的视频的哈希编码均匀分割后,在一定查询半径之内在多哈希表中分别对每个哈希子表编码进行检索;该查询半径为海明距离,海明距离是指两个等长二进制编码不同的比特数量。

进一步地,所述将需要检索的视频的哈希编码均匀分割后,在一定查询半径之内在多哈希表中分别对每个哈希子表编码进行检索,具体包括:

对于给定的完整编码查询半径r,对应的子编码查询半径为查询与目标子编码的海明距离介于间的子编码,每一个与目标子编码匹配的子编码所对应的入库视频关键帧都将作为候选结果返回该入库视频关键帧的哈希编码。

进一步地,所述步骤s4,对l个哈希子表的检索结果进行合并统计后返回检索结果,具体为:

每次完成检索,返回单哈希表检索结果后,将包含检索结果对应关键帧的数据库视频计数加1,当对所有的子编码对应的哈希表完成检索后合并、统计结果,按计数值的高低排序返回最终检索结果。

另一方面,本发明提高一种基于多个局部敏感哈希表的视频检索装置,其特征在于,所述装置包括:

视频初始编码模块,用于将视频数据库中的视频和需要检索的视频处理成二进制哈希编码;

视频数据库多哈希表处理模块,用于将视频数据库的哈希编码均匀分割成l段,由视频数据库中全部视频的所有哈希编码的第p段编码构建第p个哈希索引子表,p的取值为1,2……l,l个哈希子表组成多哈希表结构;

目标检索视频分段处理模块,用于将需要检索的视频的哈希编码均匀分割成l段,将第p段哈希编码在视频数据库的第p个哈希子表中进行检索;

检索统计模块,用于对l个哈希子表的检索结果进行合并统计后返回检索结果。

进一步地,所述装置还包括:视频关键帧编码处理子模块,用于:提取视频中的关键帧,用多个关键帧图像来表示单个视频;提取关键帧的图像特征,将图像特征表示成特征向量;利用一组具有局部敏感特性的哈希函数对特征向量逐一运算处理,将特征向量映射为二进制哈希编码,直至将整个视频表示为一系列二进制哈希编码。

进一步地,所述检索统计模块包括:计数标记子模块,用于每次完成检索,返回单哈希表检索结果后,将包含检索结果对应关键帧的数据库视频计数加1,当对所有的子编码对应的哈希表完成检索后合并、统计结果,按计数值的高低排序返回最终检索结果。

本发明与现有技术相比,具体如下优点:

通过视频处理阶段将数据库中视频处理成二进制哈希编码序列,并利用编码均匀分割建立多哈希表,同时对需要检索的视频进行均匀分割编码,通过多哈希表检索查询实现相似视频的快速检索,有效地提高了查询效率、准确率、召回率,多表结构因表数量可变而具有很好的扩展性,同时多表结构在分布式部署上也具有应用价值。

附图说明

图1为一种基于多个局部敏感哈希表的视频检索方法原理示意图;

图2为一种基于多个局部敏感哈希表的视频检索装置组成示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1为一种基于多个局部敏感哈希表的视频检索方法原理示意图,所述方法包括:

步骤s1,将视频数据库中的视频和需要检索的视频处理成二进制哈希编码;

步骤s2,将视频数据库的哈希编码均匀分割成l段,由视频数据库中全部视频的所有哈希编码的第p段编码构建第p个哈希索引子表,p的取值为1,2……l,l个哈希子表组成多哈希表结构;

步骤s3,将需要检索的视频的哈希编码均匀分割成l段,将第p段哈希编码在视频数据库的第p个哈希子表中进行检索;

步骤s4,对l个哈希子表的检索结果进行合并统计后返回检索结果。

进一步地,所述步骤s1,将视频数据库中的视频和需要检索的视频处理成二进制哈希编码,具体为:

s11,提取视频中的关键帧,用多个关键帧图像来表示单个视频;

s12,提取关键帧的图像特征,将图像特征表示成特征向量;

s13,利用一组具有局部敏感特性的哈希函数对特征向量逐一运算处理,将特征向量映射为二进制哈希编码,直至将整个视频表示为一系列二进制哈希编码。

进一步地,所述步骤s2,将视频数据库的哈希编码均匀分割成l段,由视频数据库中全部视频的所有哈希编码的第p段编码构建第p个哈希索引子表,p的取值为1,2……l,l个哈希子表组成多哈希表结构,具体为:将视频数据库中的视频的关键帧编码顺序均分为子编码序列,然后分别对子编码构建索引表。

索引表的数目是可变的,因而索引结构具有很好的可扩展性。在建表时用于确立子编码对应的哈希桶所采用的逻辑,就是根据子编码的低n位直接分配到对应下标的哈希桶中,这样相同的编码一定会被分配到同一个哈希桶中,当然也可能有不完全相同的编码被分配到同一个哈希桶中。之后查询某一编码时,只需要查询比对对应的一个哈希桶中的数据就可以了。相比对所有数据做线性遍历,建立哈希索引表这一数据结构极大地提高了检索的效率。按照前面提到的确定编码对应哈希桶的逻辑,随着数据库中视频数量的不断上升,落在表内同一哈希桶中的数据也会不断增加,其中可能包含一些非相似的数据,这将会降低检索时的效率。为了降低数据分布的冗余度,进而提升落在同一哈希桶中数据是相似的概率,本发明实施例以索引表的哈希桶占有率(非空哈希桶数量与所有哈希桶数量的比值大小)来反映表内数据分布的冗余度。当占有率大于一定阈值时,增加表的大小量级,并重新建表。一般2n远大于从视频集中提取出的关键帧编码总数,即所建立的索引表中绝大部分将是空索引项,这样的建表方式虽然在定位到特定哈希桶后无需进一步筛选桶内数据,但浪费了大量存储空间。相比之下,本发明实施例建立的能够自适应调整表大小的索引表结构更好地权衡了空间和时间效率。

进一步地,所述的基于多个局部敏感哈希表的视频检索方法,其特征在于,所述步骤s3,将需要检索的视频的哈希编码均匀分割成l段,将第p段哈希编码在视频数据库的第p个哈希子表中进行检索,具体为:

将需要检索的视频的哈希编码均匀分割后,在一定查询半径之内在多哈希表中分别对每个哈希子表编码进行检索;该查询半径为海明距离,海明距离是指两个等长二进制编码不同的比特数量。

进一步地,所述将需要检索的视频的哈希编码均匀分割后,在一定查询半径之内在多哈希表中分别对每个哈希子表编码进行检索,具体包括:

对于给定的完整编码查询半径r,对应的子编码查询半径为查询与目标子编码的海明距离介于间的子编码,每一个与目标子编码匹配的子编码所对应的入库视频关键帧都将作为候选结果返回该入库视频关键帧的哈希编码。

假定要查询的子编码为xi,子编码长度为n,单表查询半径即海明距离为r。则首先计算与xi的海明距离小于等于r的所有编码的集合,为此需要用到事先计算好的掩码集合w。

由海明距离的定义得,r表示匹配的编码yj与要查询的目标编码xi具有r个不同的比特。因此,可以定义一组长度均为n的由0、1组成的编码集合元素wj中的1标识在哪些比特上编码xi和yj是不同的,记作掩码集合。由排列组合的知识易得,海明距离小于等于r对应的所有掩码构成的集合w大小为:

即有w个与xi匹配的yj。进一步将xi与w中的掩码做异或的位运算,即

就可以得到与xi匹配的编码集合y={yj,j∈[1,w]}。因为计算机执行位操作的速度是非常快的,所以这一过程十分迅速。

利用抽屉原理易得,如果两个长度为m的哈希编码的海明距离为r',那么它们的子编码序列中必定有一对子编码的海明距离小于或等于r'/l。因此,按照上述逻辑进行检索查询,可以保证返回查询半径内的结果,同时可能返回一些与目标关键帧的海明距离稍大于查询半径但仍属于相似视频的结果,从而可以提高检索的召回率。

对于一个要查询的子编码xi,在对应单表中要进行的查询次数(即所有匹配的编码组合个数)为:

则对于一个完整编码x所需进行的查询总次数为:

根据推导可得,

其中h(ε)=-εlog2ε-(1-ε)log2(1-ε)是成功概率为ε的伯努利分布的熵。

如果用来近似描述lookup(x)随多表数目的变化,则对于给定的r/l(查询半径随编码长度变化而线性变化是合理的),查询次数lookup(x)随多表数目l上升呈指数下降。由于缺少对对查询次数下界的讨论,更准确而可靠的结论是lookup(x)随l上升呈下降趋势。因为在索引表中可以直接根据编码定位到某一个哈希桶,所以查询特定编码的耗时与编码长度没有关系,也就是说查询与目标关键帧编码匹配的入库关键帧编码的总耗时与查询次数成正比。因此,建立所述的多哈希表结构可以加快查询速度。

进一步地,所述步骤s4,对l个哈希子表的检索结果进行合并统计后返回检索结果,具体为:

每次完成检索,返回单哈希表检索结果后,将包含检索结果对应关键帧的数据库视频计数加1,当对所有的子编码对应的哈希表完成检索后合并、统计结果,按计数值的高低排序返回最终检索结果。

图2为一种基于多个局部敏感哈希表的视频检索装置组成示意图,其特征在于,所述装置包括:

视频初始编码模块,用于将视频数据库中的视频和需要检索的视频处理成二进制哈希编码;

视频数据库多哈希表处理模块,用于将视频数据库的哈希编码均匀分割成l段,由视频数据库中全部视频的所有哈希编码的第p段编码构建第p个哈希索引子表,p的取值为1,2……l,l个哈希子表组成多哈希表结构;

目标检索视频分段处理模块,用于将需要检索的视频的哈希编码均匀分割成l段,将第p段哈希编码在视频数据库的第p个哈希子表中进行检索;

检索统计模块,用于对l个哈希子表的检索结果进行合并统计后返回检索结果。

进一步地,所述装置还包括:视频关键帧编码处理子模块,用于:提取视频中的关键帧,用多个关键帧图像来表示单个视频;提取关键帧的图像特征,将图像特征表示成特征向量;利用一组具有局部敏感特性的哈希函数对特征向量逐一运算处理,将特征向量映射为二进制哈希编码,直至将整个视频表示为一系列二进制哈希编码。

进一步地,所述检索统计模块包括:计数标记子模块,用于每次完成检索,返回单哈希表检索结果后,将包含检索结果对应关键帧的数据库视频计数加1,当对所有的子编码对应的哈希表完成检索后合并、统计结果,按计数值的高低排序返回最终检索结果。

本发明提供的基于多个局部敏感哈希表的视频检索方法及装置,通过视频处理阶段将数据库中视频处理成二进制哈希编码序列,并利用编码均匀分割建立多哈希表,同时对需要检索的视频进行均匀分割编码,通过多哈希表检索查询实现相似视频的快速检索,有效地提高了查询效率、准确率和召回率,多表结构因表数量可变而具有很好的扩展性,同时多表结构在分布式部署上也具有应用价值。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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