发明内容
本发明的目的在于克服现有技术的不足,提供一种基于稀疏编码的视频指纹提取方法,采用SURF算法对视频帧图像特征进行提取,并使用ti-idf模型以及词频统计生成视频指纹,实现对视频的唯一表示。
为实现上述发明目的,本发明一种基于稀疏编码的视频指纹提取方法,其特征在于,包括以下步骤:
(1)、构建稀疏词典
(1.1)、利用SURF算法对预选的词典训练视频库进行提取特征点,得到训练特征点集其中,m表示词典训练视频库中视频的个数;表示词典训练视频库中第i个视频的特征点集,每个特征点集表示 表示第i个视频的第j帧中提取的特征点,其中k为视频帧的数量;
(1.2)、计算稀疏系数
设训练特征点集ξ对应的稀疏系数集合为其中,表示第i个特征点集对应的稀疏系数集;设稀疏词典B=bj,j=1,2,…,N,其中,bj为基向量,N表示稀疏词典中基向量个数;在稀疏词典训练初始阶段,初始稀疏词典B由基向量随机生成;
将训练特征点集ξ中的和初始稀疏词典B代入到公式(1)中,求出对应的稀疏系数集
其中,σ,β,c均为常系数,表示稀疏系数集中第j个特征点,||||2为平方差,为稀疏函数,这里为1范式;
(1.3)、更新稀疏词典
(1.3.1)、将作为输入训练集,同对应的稀疏系数一起代入到公式(2)中,求出稀疏词典B的最优解;
其中,d为常数,Bi,j为稀疏词典中第i行第j列值;
(1.3.2)、利用拉格朗日对偶算法,用步骤(1.3.1)中求出的最优解对原始稀疏词典B进行更新,更新后的稀疏词典标记为B*;
(1.3.3)、将稀疏词典B*代入到公式(1)中,求解出对应的稀疏系数并按照步骤(1.2)~(1.3)所述的方法进行迭代,直到第m个特征点集得到最终更新后的稀疏词典
(2)、稀疏编码
利用SURF算法对待处理视频进行提取特征点,得到特征点集ζ={T1,T2,…,TM},TM表示待处理视频中第M帧提取出来的特征点集合;
将ζ和稀疏词典代入到公式(1)中,求出ζ对应的稀疏系数s';将ζ作为输入集合,采用特征符号算法求解最优解;
其中,g为稀疏系数,,||||1表示求1范式;
求得的结果即为待处理视频特征点集的稀疏编码结果,记为 表示第M帧特征点对应的稀疏编码结果;
(3)、构建视觉词典并统计词频信息
(3.1)、利用步骤(2)所述的方法,对训练特征点集进行稀疏编码,再利用Kmeans聚类算法对稀疏编码结果进行聚类,聚类簇为Q个,每个聚类中心作为一个视觉单词,从而得到视觉词典W={w1,w2,…,wQ};
(3.2)、将步骤(2)中稀疏编码结果Tsc中每一帧的集合与视觉词典中的视觉单词进行欧式距离计算;
其中,vz、vq为向量,vz表示中的稀疏编码后的一个特征点的向量值,vq表示视觉词典W中的一个视觉单词的向量值;选择最小欧式距离的视觉单词,并标记为该视频帧中对应的特征点;
(3.3)、利用ti-idf模型对每个视频帧的特征点进行词频统计,即:
其中,nMd表示视频第M帧包含的视觉单词数量,nd表示第M帧包含的总的视觉单词数量,p为视频帧的数量,nM表示包含视觉单词的视频帧数量;
每一帧的统计结果生成一个直方图,横坐标为所有视觉单词,纵坐标为每个视觉单词在该帧中的统计频率;
(4)、提取视频指纹
将步骤(3.3)中每一视频帧的词频统计结果均使用相似保存哈希算法转换为一串16进制的序列,从而得到每一视频帧的最简指纹,再按照视频帧在视频中的时间顺序,将最简指纹进行串联,得到视频指纹。
本发明的发明目的是这样实现的:
本发明基于稀疏编码的视频指纹提取方法,先通过SURF算法对预选视频帧图像特征进行提取,得到训练特征点集,通过对训练特征点集进行稀疏处理,进而得到稀疏词典;再通过SURF算法对待处理视频进行稀疏编码,从而构建出视觉词典并统计出词频信息;最后对视频的每一帧的词频统计结果均使用相似保存哈希算法转换为一串16进制的序列,从而得到每一视频帧的最简指纹,再按照视频帧在视频中的时间顺序,将最简指纹进行串联,得到视频指纹。
同时,本发明基于稀疏编码的视频指纹提取方法还具有以下有益效果:
(1)、通过SURF算法获取特征点的特征矢量,这样将特征描述符的维度由原来的64维降到24维,SURF算法获取的特征点还具有较强的尺度、旋转、亮度等不变性;
(2)、本发明是基于哺乳动物视觉图像稀疏编码原理,选用标准库训练生成稀疏词典,再根据稀疏词典对视频帧特征点进行稀疏编码,最后对编码后的非零值进行处理,从而减少视频指纹提取的存储开销与计算开销;
(3)、通过实验仿真分析,本发明依然能维持原特征点的鲁棒性,且具有较好的区分性以及准确性。
实施例
图1是本发明基于稀疏编码的视频指纹提取方法的流程图。
在本实施例中,如图1所示,本发明一种基于稀疏编码的视频指纹提取方法,包括以下步骤:
S1、构建稀疏词典
S1.1、稀疏词典的构建通过交替对基向量与稀疏稀疏进行更新得到。在本实施例中,选用Fergus的图像库做训练集,采用SURF算法获得训练图像的特征点集;
利用SURF算法对预选的词典训练视频库进行提取特征点,得到训练特征点集其中,m表示词典训练视频库中视频的个数;表示词典训练视频库中第i个视频的特征点集,每个特征点集表示 表示第i个视频的第j帧中提取的特征点,其中k为视频帧的数量;
S1.2、计算稀疏系数
设训练特征点集ξ对应的稀疏系数集合为其中,表示第i个特征点集对应的稀疏系数集;设稀疏词典B=bj,j=1,2,…,N,其中,bj为基向量,N表示稀疏词典中基向量个数;在稀疏词典训练初始阶段,初始稀疏词典B由基向量随机生成;
将训练特征点集ξ中的和初始稀疏词典B代入到公式(1)中,求出对应的稀疏系数集
其中,σ,β,c均为常系数,表示稀疏系数集中第j个特征点,||||2为平方差,为稀疏函数,这里为1范式;
S1.3、更新稀疏词典
S1.3.1、将作为输入训练集,同对应的稀疏系数一起代入到公式(2)中,求出稀疏词典B的最优解;
其中,d为常数,Bi,j为稀疏词典中第i行第j列值;
S1.3.2、利用拉格朗日对偶算法,用步骤S1.3.1中求出的最优解对原始稀疏词典B进行更新,更新后的稀疏词典标记为B*;
S1.3.3、将稀疏词典B*代入到公式(1)中,求解出对应的稀疏系数并按照步骤S1.2~S1.3所述的方法进行迭代,直到第m个特征点集得到最终更新后的稀疏词典
稀疏词典的大小决定了稀疏结果的准确性与区分性,当稀疏词典过小时,稀疏编码结果区分性不高。相反,当稀疏词典数量过大时,会导致数据间的区分性增大,对于两个相似的数据,可能会导致稀疏结果不同。在本实施例中,基于Jianchao Yang的图片分类实验中,稀疏词典大小设为1024。
S2、稀疏编码
利用SURF算法对待处理视频进行提取特征点,得到特征点集ζ={T1,T2,…,TM},TM表示待处理视频中第M帧提取出来的特征点集合;
将ζ和稀疏词典代入到公式(1)中,求出ζ对应的稀疏系数s';将ζ作为输入集合,采用特征符号算法求解最优解;
其中,g为稀疏系数,||||1表示求1范式;
求得的结果即为待处理视频特征点集的稀疏编码结果,记为 表示第M帧特征点对应的稀疏编码结果;
稀疏编码的目的在于对于任何输入数据在稀疏词典中都能找到一组活动基,用这组活动基对原数据进行表示,从而模拟生物视觉神经对于自然图像的稀疏处理,节省生物能量,并减少存储空间。这里的稀疏词典相当于大脑皮层的视觉神经元,对于输入数据,只需要少量的活动基便可以实现对原数据的编码存储。对于Lenna图像中提取的特征点,稀疏编码前后值的分布情况如图2所示。
其中,图2(a)、(c)为Lenna图像提取的某一特征点,(a)为特征点稀疏之前的结果,(c)为稀疏之后的结果,图2(b)、(d)为Lenna图像的特征点集合,(b)为稀疏前特征点矩阵的分布图,(d)为稀疏后的稀疏矩阵分布图。稀疏结果的稀疏程度是随着g变化的,g越大则稀疏程度越高,但是稀疏程度过大会导致稀疏结果间的区分性降低,即导致误差上升。
这里我们取一组g值来对稀疏程度与结果的准确性进行分析,如图3所示。图3(a)是表示的稀疏程度g值的关系,g值越大,则结果越稀疏。图3(b)是表示稀疏编码时间与g值大小的关系,可以看出,g越大,稀疏编码的平均时间也就越小。
对于不同的稀疏程度,导致的稀疏结果将会一些偏差。稀疏程度增大时,可能会导致稀疏结果部分信息丢失,对于不同数据间的区分关系会造成一定影响。实验中取Lenna图像的319个SURF特征点采用不同的稀疏调整因子进行稀疏编码,对编码结果采用聚类,簇的个数设定为50。这里g取0.2,0.3以及0.4使用稀疏编码后进行聚类。可以发现,当g取0.3时其聚类分布情况最接近于稀疏前的结果。当过多或者过少地稀疏编码时,会影响数据间的相似与相异性,对于两组输入数据,会因为它们与聚类中距离的增大或者减少导致不同的划分结果,从而使得某些簇中的数据分布数量增多或者减少。以稀疏结果的聚类分布与原数据聚类分布情况差异作为稀疏误差,那么不同的稀疏调整因子误差如表1所示。
表1是稀疏编码误差表;
表1
对于稀疏编码结果,因为可以采用少量的非零数据对原始输入进行表示,若只对非零数据进行存储,那么存储开销将大大降低,如图4所示,可以看出,SURF算法特征点的开销增长速度较快,当特征点数量超过1000时,稀疏编码相对于SURF算法,存储空间将会减少250k以上,对于一部视频而言,对其所有关键帧提取的特征点均采用稀疏编码方式进行存储的话,对于计算机会节省大量的空间。
S3、构建视觉词典
利用步骤S2所述的方法,对训练特征点集进行稀疏编码,再利用Kmeans聚类算法对稀疏编码结果进行聚类,聚类簇为Q个,每个聚类中心作为一个视觉单词,从而得到视觉词典W={w1,w2,…,wQ};
在本实施例中,选取Caltech-101图像库,每一类图像中选择30幅图像用作训练集;采用Kmeans聚类时,设定视觉单词数为1024个,也就是将上述稀疏编码结果划分为1024个簇;
S4、统计词频信息
S4.1、将步骤S2中稀疏编码结果Tsc中每一帧的集合与视觉词典中的视觉单词进行欧式距离计算;
其中,vz、vq为向量,vz表示中的稀疏编码后的一个特征点的向量值,vq表示视觉词典W中的一个视觉单词的向量值;选择最小欧式距离的视觉单词,并标记为该视频帧中对应的特征点;
S4.2、利用ti-idf模型对每个视频帧的特征点进行词频统计,即:
其中,nMd表示视频第M帧包含的视觉单词数量,nd表示第M帧包含的总的视觉单词数量,p为视频帧的数量,nM表示包含视觉单词的视频帧数量;
每一帧的统计结果生成一个直方图,横坐标为所有视觉单词,纵坐标为每个视觉单词在该帧中的统计频率;
S5、提取视频指纹
将步骤S4.2中每一视频帧的词频统计结果均使用相似保存哈希算法转换为一串16进制的序列,从而得到每一视频帧的最简指纹,再按照视频帧在视频中的时间顺序,将最简指纹进行串联,得到视频指纹。
实例
本实施例中,从优酷网中选取一段宣传视频进行仿真,对提取的17个关键帧的SURF特征点进行稀疏编码,然后来对这些稀疏结果查找对应的视觉单词。
对于一个稀疏特征点在1024大小的词典D中匹配到属于自己的视觉单词,平均消耗的时间记为tsc,而对于一个非稀疏特征点在同样大小的D'中匹配视觉单词平均消耗时间记为tsurf。对于这个视频中的某一帧,平均包含有300个特征点,那么这部视频特征点稀疏前后的单词查找时间如表2所示。
表2是稀疏编码前后视觉单词查找开销表;
表2
从表2中可以看出,在存储上,稀疏编码结果能大大降低计算存储开销。对于总的时间开销,平均包含300个特征点的视频帧,稀疏编码时间平均为0.302秒左右,所以计入这个时间,稀疏编码单帧查找时间开销约为0.945秒,略快于非稀疏编码。
在本实施例中,通过采用稀疏编码来对SURF特征点进行优化处理来提升视频指纹的生成效率。而视频指纹除了要求具备一定实时性的同时,也要具备良好的准确性与鲁棒性。原SURF特征点具有较强的尺度、旋转、亮度等不变性,对于稀疏编码结果,依然需要维持这些特性。实验中选用包含80个视频片段的视频库,每段视频播放时长约为1分钟左右,来对本发明生成的视频指纹的准确率进行仿真分析,准确率仿真结果如图5所示。
从图5中可以看出,当查全率相同时,编码后的查准率会低于原SURF特征点,这是因为经过稀疏编码的特征点,会丢失一些信息,导致在视觉单词查找过程中出现部分特征点出现误判,导致词频统计会出现偏差。但编码后的整体性能依然接近原SURF特征点。
对于稀疏编码结果的鲁棒性,本实施例通过调节视频的亮度、修改画面的大小、在视频画面中添加字幕和高斯模糊化画面来分析算法的抗攻击性能,如图6所示。
图6中(a)为不同亮度下的视频攻击,(b)为视频尺度攻击,(c)为高斯噪声攻击以及字幕攻击。可以看出,对于这些视频编辑,稀疏编码后的SURF特征点依然能保留较好的鲁棒性。对于高斯噪声,当高斯噪声较大时,对于指纹提取影响也就越大,本文这里选择每个通道添加10%的高斯噪声,实验结果表明,在这种情况下视频指纹具备一定的抗攻击性。然而,对于字幕添加攻击,因为这种情况引入了新的图像信息,所以会导致图像特征点较大的变化,导致生成的指纹抗攻击能力较弱,这是由于SURF提取算法本身的特性所决定的。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。