发布时间:2025-05-25 19:23:26 点击量:
HASH GAME - Online Skill Game GET 300
:近年来,随着数字移动设备以及互联网的普及,每天都会产生海量的视频数据,然而如何处理庞大的视频文件成为一个迫切的问题,其中一个很重要的方向就是基于视频内容的检索。早年,基于文本的视频检索技术进入我们的生活,由人工对视频进行标注关键字标签,在检索时返回与关键字相同或相似的视频,但此方法耗时耗力。然而基于视频内容的检索可以归结为一个近似最近邻搜索问题。深度哈希算法是解决此问题的有效手段。哈希算法的核心思想是将原始的高维数据映射为紧凑且固定长度的二进制哈希码。一段视频或部分视频可以用一个低维的哈希序列来表示,极大地降低了存储成本,并提高计算速度。近年来兴起的人工智能浪潮更为哈希算法的研究注入了新的活力,深度学习有着极强的数据拟合能力,能够学习到高维数据的特征。技术实现要素:针对现有技术中存在的不足之处,本发明的目的是提供一种基于深度学习的视频哈希算法,与传统人工提取视频特征设计哈希序列的方法相比,极大节省了人力物力。为了实现根据本发明的上述目的和其他优点,提供了一种基于深度学习的视频哈希算法,包括以下步骤:s1、将需要处理的视频输入,共m帧;s2、构建一个三元组的图像数据集,其中为经过加噪等内容保留操作得到的相似帧图像;s3、搭建神经网络框架并且用所述步骤s2构建的三元组的图像数据集来训练网络,使之能将图片自动映射为固定长度的哈希序列;s4、将待处理视频的每一帧输入至步骤s3训练好的神经网络模型;s5、计算每个当前帧的哈希序列hpresent与下一帧的哈希序列hnext之间的欧氏距离d;s6、将步骤s5中的d数值降序排列筛选前μ帧为关键帧组成集合f*,其余(m-μ)帧为非关键帧;s7、将集合f*中每一关键帧获取哈希序列,将所有哈希序列组成矩阵m,之后计算矩阵m的每一行均值。优选的,所述步骤s1包括将输入的视频按时间先后顺序逐帧排序,形成视频帧集合f={f1,f2,…,fn},其中n为数据集中的样本个数。优选的,所述步骤s2中三元组由{x,x*,y*}三类静态图像组成,其中x为样本单帧图像,x*={x1,x2,…,xn}为样本单帧图像x经过加噪等内容保留操作得到的相似帧图像,y*={y1,y2,…,yn}为不同帧图像的集合,n为数据集的样本个数。优选的,所述步骤s4包括遍历s1中的视频帧集合f,获取每一帧的哈希序列,见公式(1)-(2):其中,为哈希生成函数,hfi(i=1,2,…,m)为每帧生成的哈希序列。优选的,所述步骤s5中的d的计算公式为:其中和为对应的当前帧的哈希序列和下一帧的哈希序列每一位的值,l为哈希序列的长度。优选的,所述步骤s7包括待处理视频的哈希序列g,所述g与矩阵m的公式如下:优选的,所述步骤步骤5中,通过计算每个当前帧的哈希序列hpresent与下一帧的哈希序列hnext之间的欧氏距离d,见公式(3),并生成集合d={d1,d2,…,dm-1}。本发明与现有技术相比,其有益效果是:基于深度学习的视频哈希算法,针对视频文件数据量大不易处理等问题,本发明通过对视频帧基于内容差异程度的排序,筛选出关键帧,去除视频中的非关键帧,然后将关键帧映射到一段固定长度的哈希序列中,极大节省了存储成本。并且本发明所提出的一种基于三元组的深度视频哈希算法,通过视频三元组的标签信息使模型学习原始视频关键帧空间中的相似性结构,并使三元组中原始帧与非相似帧的哈希序列间的欧氏距离大于原始帧与相似关键帧哈希序列的欧氏距离,相较于人工提取特征,基于三元组的视频深度哈希算法极大节省了人力成本。附图说明图1为根据本发明的基于深度学习的视频哈希算法的算法流程图;图2为根据本发明的基于深度学习的视频哈希算法的原视频关键帧图;图3为根据本发明的基于深度学习的视频哈希算法的经缩放后的关键帧图;图4为根据本发明的基于深度学习的视频哈希算法的经灰度化后的关键帧图;图5为根据本发明的基于深度学习的视频哈希算法的经旋转后的关键帧图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参照图1-5,一种基于深度学习的视频哈希算法,且该视频哈希算法可用于相似视频的检索,包括以下步骤:s1、将需要处理的视频输入,共m帧;s2、构建一个三元组的图像数据集,其中经过加噪等内容保留操作得到的相似帧图像;s3、搭建神经网络框架并且用所述步骤s2构建的三元组的图像数据集来训练网络,使之能将图片自动映射为固定长度的哈希序列;s4、将待处理视频的每一帧输入至步骤s3训练好的神经网络模型;s5、计算每个当前帧的哈希序列hpresent与下一帧的哈希序列hnext之间的欧氏距离d;s6、将步骤s5中的d数值降序排列筛选前μ帧为关键帧组成集合f*,其余(m-μ)帧为非关键帧;s7、将集合f*中每一关键帧获取哈希序列,将所有哈希序列组成矩阵m,之后计算矩阵m的每一行均值。进一步的,所述步骤s1包括将输入的视频按时间先后顺序逐帧排序,形成视频帧集合f={f1,f2,…,fn},其中n为数据集中的样本个数。进一步的,所述步骤s2中三元组由{x,x*,y*}三类静态图像组成,其中x为样本单帧图像,x*={x1,x2,…,xn}为样本单帧图像x经过加噪等内容保留操作得到的相似帧图像,y*={y1,y2,…,yn}为不同帧图像的集合,n为数据集中的样本个数。进一步的,所述步骤s4包括遍历s1中的视频帧集合f,获取每一帧的哈希序列,见公式(1)-(2):其中,为哈希生成函数,hfi(i=1,2,…,m)为每帧生成的哈希序列。进一步的,所述步骤s5中的d的计算公式为:其中和为对应的当前帧的哈希序列和下一帧的哈希序列每一位的值,l为哈希序列的长度。进一步的,所述步骤s7包括待处理视频的哈希序列g,所述g与矩阵m的公式如下:进一步的,所述步骤步骤5中,通过计算每个当前帧的哈希序列hpresent与下一帧的哈希序列hnext之间的欧氏距离d,见公式(3),并生成集合d={d1,d2,…,dm-1}。实施例1步骤1:读取待处理的9秒视频信号,每秒包含30连续帧,即fps=30,按时间先后对其按帧进行分解,形成视频帧集合f={f1,f2,…,fm},其中m=270为视频的总帧数;步骤2:接下来构建用于训练神经网络的数据集,本发明提出的基于三元组的深度哈希算法,设定样本单帧图像x,则一个训练集三元组由{x,x*,y*}三种rgb彩色静态图像,x*为与x内容相似的图像。三元组图像均为大小为128×128的彩色图片,以便于将其放入到神经网络中训练。三元组深度哈希算法的目标在于,经过哈希函数映射后,使x与x*的哈希序列仍保持有更近的欧氏距离,而x与y*哈希序列的欧氏距离较远。即达到实际语义中x与x*的内容更一致,x与y*的内容相差更远。本发明采用了均方误差作为损失函数,以此来实现上述目的,具体表达为:loss_global=loss_sim-loss_diff(9)其中,g为哈希序列,loss_sim为原视频与内容相似视频的损失函数,loss_diff为原视频与内容不同视频的损失函数,loss_global为总体损失函数,以数据集为驱动,对总体损失函数不断迭代优化使损失函数逐渐减小。n为数据集x*以及y*的元素数量,n值越大,数据集的样本就越丰富,最后得到的模型参数就越稳定。步骤3:搭建神经网络框架,由图1所示,本框架网络的主要结构为卷积层和池化层的叠加。卷积层的作用是学习图像特征,进行特征提取,并在每个卷积层后添加激活函数relu,以此增加网络的拟合能力。卷积层通过一个大小为k×k的卷积核,在不改变输入图像大小的前提下,按照从左到右,从上到下进行卷积操作,见公式(10):其中,t为图像输入大小的单边长度,卷积核大小为k×k,步长值为b,填充值为l。以大小为128×128的图像为例,输出特征图长宽大小仍为128×128。池化层对应于图像和特征图的下采样,将选取区域中所有相应的值做处理再作为输出,最大池化层即为在相应区域内选出最大值作为输出,平均池化层即为在相应区域内对所有值做平均再输出。池化层的主要目的是降维,降低特征图的大小,减少后续网络的输入维度,从而减少参数数量,此外池化层降低了特征图的尺度,便于后续卷积层学习图像的全局特征,以最大池化层1为例,输入为128×128大小的图片。根据公式(10)可知,输出特征图长宽大小为64×64。在网络的最后加入一个全连接层,用于将最后一层池化层的特征展平成一维向量后的特征降维和映射。本发明中利用一个全连接层将512维数据转化为100维数据,最后数据经过tanh函数,将数据压缩到(-1,1)的区间。经过多次迭代后,训练好网络,保存模型参数,再次放入图片时,此框架可以根据已经学习到的特征自动生成固定长度的哈希码。步骤4:将待处理视频的每一帧输入至步骤3中训练好的神经网络模型,遍历步骤1中的视频帧集合f,获取每一帧的哈希序列,见公式(1)-(2):其中,为哈希生成函数,hfi(i=1,2,…,m)为每帧生成的哈希序列,并形成矩阵hf。步骤5:计算每个当前帧的哈希序列hpresent与下一帧的哈希序列hnext之间的欧氏距离d,见公式(3):其中和为对应的当前帧的哈希序列和下一帧的哈希序列每一位的值,l为哈希序列的长度,l=100。由上述得到的每个当前帧与其下一帧哈希序列欧氏距离d={d1,d2,…,dm-1},由于视频最后一帧的哈希序列无法与其下一帧的哈希序列进行相似性度量,因此集合d中的元素个数为m-1;步骤6,将d={d1,d2,…,dm-1}数值降序排列,筛选前μ帧为关键帧组成集合f*,差值越大说明此帧与下一帧的内容越不相似,对于连续的视频帧来说,冗余程度越小,内容就更为重要,f*中为当前帧与下一帧内容差异大的帧,可以理解为此段视屏中更为关键的帧,其余(m-μ)帧为非关键帧;步骤7,将集合f*中每一关键帧获取的哈希序列,将所有哈希序列组成矩阵m,之后计算矩阵m的每一行均值,以此代表待处理视频的哈希序列g,见公式(4)-(6):根据上述的步骤进行实验。本次实验对象为一个分辨率为960×544,fps=30,时长为9s,共270帧的视频。分别对这段视频做灰度化,旋转,缩放(缩放之后为640×362)等操作,但并不改变视频原内容,以及放入一个与原视频内容无关,但大小相同的视频。对视频帧的重要程度做排序后,取出其前20帧作为关键帧,即μ=20。表1展示了在各种操作后各个视频的关键帧的序号。表2展示了不同操作后视频与原视频哈希序列的欧氏距离。图3为原视频的关键帧。图4为缩放之后的关键帧。图5为灰度化之后的关键帧。表1基于深度学习的视频哈希算法中的不同视频的关键帧序号表2基于深度学习的视频哈希算法中不同视频之间哈希序列的欧氏距离操作类型欧氏距离值原视频与缩放操作视频0.002298原视频与灰度化操作视频0.061523原视频与旋转操作视频0.028419原视频与不同视频0.080635这里说明的设备数量和处理规模是用来简化本发明的说明的,对本发明的应用、修改和变化对本领域的技术人员来说是显而易见的。尽管本发明的实施方案已公开如上,但其并不仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。当前第1页12