一种视频关键帧提取方法及系统
技术领域
本发明涉及数据处理技术领域,特别是涉及一种视频关键帧提取方法及系统。
背景技术
视频是指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的技术。视频数据是由多个图片帧组成,多个图片帧按预设顺序和预设的速度进行播放形成视频。
随着互联网的发展,视频数据出现了爆炸式增长,如何从海量视频数据中快速找到感兴趣的内容成为挑战。如图1所示,在组成视频的图片帧中通常包括关键帧,该关键帧是用于描述一个镜头的图像帧,通常一个或几个关键帧可以代表一个镜头的主要内容。通过关键帧进行检索,可以极大的减小检索数据量。
目前,关键帧提取算法,大致可以分为六类。第一类,通过顺序比较法提取关键帧,这一类方法存在着简单直观、低计算复杂度等优点,但也存在着不能体现全局特征、关键帧分布不均匀、不精确等问题。第二类,通过全局比较法提取关键帧,这一算法往往要预先定义一个客观方法,比如均衡时间变动方法、最大覆盖率方法、最小相关性方法、最小重建错误方法等,并通过满足这些方法全局的考虑来提取关键帧;显然,与第一类方法相比第二类方法更能体现镜头的全局特性,同时,这一类方法存在着关键帧个数可控、关键帧更简洁、计算更复杂等特点。第三类,通过与创建参考帧比较来提取关键帧,常见的参考帧有镜头各帧颜色灰度等均值等。第四类,将各帧类聚提取关键帧,常见的有通过色彩分类、高斯混合模型等。第五类,将多个帧以曲线的方式表示,从中提取最能代表曲线的点。第六类,考虑特定对象或事件来提取关键帧。例如,关键帧将包含特定的人像、形状等。
综上所述,现有技术中不同的关键帧提取算法均针对不同的应用场景,且在应用中存在着各种各样的缺陷,无法满足实际应用需求。
发明内容
本发明主要解决的技术问题是提供一种视频关键帧提取方法及系统,能够不仅具有全局性,而且计算速度更快,满足实际应用需求。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种视频关键帧提取方法,包括:读取视频数据,其中,所述视频数据是由若干个图片帧组成的;根据比较算法,从所述视频数据中提取候选关键帧,组成候选关键帧集合;将所述候选关键帧集合中的候选关键帧进行分类,得到至少两个聚类集合;从至少两个所述聚类集合中提取关键帧。
其中,所述根据比较算法从所述视频数据中提取候选关键帧,组成候选关键帧集合的步骤,包括:从所述视频数据提取一图片帧,将此图片帧加入候选关键帧集合中并作为所述候选关键帧集合的参考关键帧;从所述视频数据中剩余的图片帧中提取一图片帧作为比较帧;判断提取的所述比较帧是否为所述视频数据的结尾帧;若所述比较帧不是所述视频数据的结尾帧,则根据所述比较帧与所述参考关键帧的相似度来判断所述比较帧是否为候选关键帧,并将确认为候选关键帧的所述比较帧加入所述候选关键帧集合中,且作为所述候选关键帧集合新的参考关键帧;以及,返回所述从所述视频数据剩余的图片帧中提取一图片帧作为比较帧的步骤,直至确认提取的所述比较帧为所述视频数据的结尾帧。
其中,所述根据所述比较帧与所述参考关键帧的相似度来判断所述比较帧是否为候选关键帧,包括:计算所述比较帧与所述参考关键帧的相似度;判断所述相似度是否小于设定的第一阈值;若所述相似度小于所述第一阈值,则将所述比较帧确认为候选关键帧。
其中,所述将所述候选关键帧集合中的候选关键帧进行分类,得到至少两个聚类集合的步骤包括:从所述候选关键帧集合中提取一候选关键帧,并将此候选关键帧划入一聚类集合中;获取所述聚类集合的中间参考帧;从所述候选关键帧集合中剩余的成员中提取一候选关键帧作为类比帧;判断提取的所述类比帧是否为所述候选关键帧集合的结尾帧;若所述类比帧不是所述候选关键帧组合的结尾帧,则根据所述聚类集合的中间参考帧与所述类比帧的相似度将所述类比帧划入对应的聚类集合;并返回所述获取各所述聚类集合的中间参考帧的步骤,直至确认提取的所述类比帧为所述候选关键帧组合的结尾帧。
其中,所述根据所述聚类集合的中间参考帧与所述类比帧的相似度将所述类比帧划入对应的聚类集合步骤,包括:分别对所述类比帧与各所述聚类集合的中间参考帧的相似度进行计算;从计算得到的至少两个相似度中提取最大相似度;判断所述最大相似度是否大于或者等于设定的第二阈值,若是,将所述类比帧划入所述最大相似度对应的聚类集合中;否则,则生成新的聚类集合,并将所述类比帧划入所述新的聚类集合中。
其中,从所述聚类集合中提取关键帧的步骤包括:获取一聚类集合的中间参考帧;计算所述聚类集合中其他成员与所述一个顺序选关聚类集合的中间参考帧的相似度;从所述聚类集合中提取相似度最高的M个成员作为关键帧,其中,所述M为正整数。
其中,对所述聚类集合的中间参考帧进行获取,包括:获取所述聚类集合中候选关键帧的数量D;若所述聚类集合中候选关键帧的数量D为1,则提取所述聚类集合中的唯一候选关键帧作为中间参考帧;若所述聚类集合中候选关键帧的数量D大于或等于2,则计算所述聚类集合的第一中间参考帧,并将计算得到的所述第一中间参考帧作为所述聚类集合新的中间参考帧,其中,所述聚类集合的第一中间参考帧的计算公式为:
其中,所述cfcenter为聚类集合的第一中间参考帧,所述cfcenter′为所述聚类集合的中间参考帧,所述cf为新划入到所述聚类聚合中的候选关键帧,所述D为大于零的正整数。
其中,对任意两图片帧的所述相似度进行计算,包括:基于所述图片帧的属性特征获得所述图片帧的特征直方图;根据两图片帧的特征直方图计算两图片帧的图像相似度,其中,所述图像相似度计算公式为:
其中,所述ed(G,S)为图像相似度,所述N为特征级数,所述gk为其中一所述图片帧的特征级数值,所述sk为另一所述图片帧的特征级数值;
利用所述图像相似度,对两图片帧的所述图像相似度进行定量度量,计算公式为:
其中,所述Simij为所述图像相似度的定量度量值。
其中,在所述根据两图片帧的特征直方图计算两图片帧的图像相似度步骤之前,还包括:
将所述图片帧分割为i*j图片块,并对所述图片块的权重进行设置;则所述图像相似度的定量度量值的计算公式又可具体为:
其中,所述wij为所述图片块的权重,所述i和j均为大于零的正整数。为解决上述技术问题,本发明采用的另一个技术方案是:提供一种视频关键帧提取系统,包括读取模块,用于读取视频数据,其中,所述视频数据是由若干个图片帧组成的;第一提取模块,用于根据比较算法,从所述视频数据中提取候选关键帧,组成候选关键帧集合;分类模块,用于将所述候选关键帧集合中的候选关键帧进行分类,得到至少两个聚类集合;第二提取模块,用于从至少两个所述聚类集合中提取关键帧。
本发明的有益效果是:区别于现有技术的情况,在本发明实施方式中,先根据计算速度较快的比较算法,从视频数据中快速提取候选关键帧,组成候选关键帧集合,再根据具有全局性的聚类算法,将候选关键帧集合中的候选关键帧进行分类,生成聚类集合,然后,从聚类集合中提取关键帧;本发明通过生成候选关键帧集合,对视频数据中的图片帧进行初步粗筛选,快速筛选掉不能作为关键帧的图片帧,再对筛选后的候选关键帧集合中的候选关键帧进行聚类,减少了进行聚类的计算量,在聚类后再进行关键帧的精提取,使得提取的关键帧个数可控、更简洁,且计算复杂度低;本发明从视频数据中提取视频关键帧,不仅具有全局性,而且计算速度更快。
附图说明
图1是现有技术中视频数据中关键帧的示意图;
图2是本发明视频关键帧提取方法实施方式的流程图;
图3是本发明视频关键帧提取方法实施方式中生成候选关键帧集合的流程图;
图4是本发明视频关键帧提取方法实施方式中确认候选关键帧的流程图;
图5是本发明视频关键帧提取方法实施方式中生成聚类集合的流程图;
图6是本发明视频关键帧提取方法实施方式中将候选关键帧进行归类的流程图;
图7是本发明视频关键帧提取方法实施方式中从聚类集合中提取关键帧的流程图;
图8是本发明视频关键帧提取系统第一实施方式的结构示意图;
图9是本发明视频关键帧提取系统第一实施方式中包含各模块中的各单元的结构示意图;
图10是本发明视频关键帧提取系统第二实施方式的结构示意图;
图11是本发明视频关键帧提取系统第二实施方式中标记有图片帧的示意图。
具体实施方式
下面结合附图和实施方式对本发明进行详细说明。
请参阅图2,视频关键帧提取方法包括:
步骤S201:读取视频数据,其中,视频数据是由若干个图片帧组成的;
若干个图片帧按先后顺序串接在一起,并且顺序播放后,形成视频。
步骤S202:根据比较算法,从视频数据中提取候选关键帧,组成候选关键帧集合;
比较算法是指把视频数据中的一图片帧作为关键帧,当遇到与上一关键帧很不同的帧时,则判定这一帧为关键帧。比较算法存在着简单直观、低计算复杂度等优点,能够降低本发明计算复杂度。具体的,如图3所示,步骤S202包括:
步骤S2021:从视频数据提取一图片帧,将此图片帧加入候选关键帧集合中并作为候选关键帧集合的参考关键帧;
视频数据中的图片帧具有先后顺序,通常视频数据中第一图片帧能够反映该视频的内容,因此,步骤S2021中从视频数据提取的一图片帧优选为视频数据的第一图片帧,当然,在其他替代实施方式中,步骤S2021中从视频数据提取的一图片帧也可以其它图片帧,例如视频数据中的中间一图片帧或非结尾帧的其他图片帧等等。
步骤S2022:从视频数据中剩余的图片帧中提取一图片帧作为比较帧;
视频数据设置有结尾帧,以标记视频数据的结束。另外,由于视频数据中的图片帧具有先后顺序关系,因此,在视频数据中剩余的图片帧中提取一图片帧,可以先后顺序取在视频数据中提取图片帧。
值得说明的是:视频数据中剩余的图片帧是指视频数据中尚未被提的图片帧。
步骤S2023:判断提取的比较帧是否为视频数据的结尾帧,若为结尾帧,则进入步骤S2024,否则进入步骤S2025;
视频数据中的结尾帧没有包括任何视频内容,只有结尾符,因此,在判断比较帧是否为结尾帧时,可以直接判断比较帧是否包含有结尾符即可。
步骤S2024:输出候选关键帧集合;
步骤S2025:根据比较帧与参考关键帧的相似度来判断比较帧是否为候选关键帧,并将确认为候选关键帧的比较帧加入候选关键帧集合中,且作为候选关键帧集合新的参考关键帧;
在完成步骤S2025后,返回步骤S2022:从视频数据剩余的图片帧中提取一图片帧作为比较帧的步骤,直至确认提取的比较帧为视频数据的结尾帧。
如图4所示,根据比较帧与参考关键帧的相似度来判断比较帧是否为候选关键帧的步骤包括:
步骤S20251:计算比较帧与参考关键帧的相似度;
步骤S20252:判断相似度是否小于设定的第一阈值,若相似度小于第一阈值,则进入步骤S20253,否则直接返回步骤S2022;
第一阈值是预设的,本领域技术人员也可根据实际情况设置第一阈值的具体值。其中,若两图片帧之间的相似度大于或者等于第一阈值,说明两图片帧相似,若相似度小于第一阈值,说明两图片帧不相似。
步骤S20253:将比较帧确认为候选关键帧;
将比较帧确认为候选关键帧后,将确认为候选关键帧的比较帧加入侯选关键帧集合中。
步骤S203:将候选关键帧集合中的候选关键帧进行分类,得到至少两个聚类集合;
聚类集合可根据需要不断生成的,将候选关键帧进行分类,生成聚类集合,再从各聚类集合提取相似度最高的一个或者多个候选关键帧作为关键帧,使得本发明提取的关键帧更加准确,因此,如图5所示,步骤S203又包括:
步骤S2031:从候选关键帧集合中提取一候选关键帧,并将此候选关键帧划入一聚类集合中;
在初始化阶段,以初次提取的一候选关键帧作为一类,并将此候选关键帧划入该一聚类集合。
步骤S2032:获取聚类集合的中间参考帧;
值得说明的是:此处聚类集合是指已经生成的聚类集合,尚未生成的聚类集合不包含在其中,例如:在初始化阶段完成时,只生成一个聚类集合,则步获取该一聚类集合的中间参考帧。
聚类集合中的中间参考帧是指聚类集合中平均帧,则对聚类集合的中间参考帧进行获取可具体为:获取所述聚类集合中候选关键帧的数量D;若聚类集合中候选关键帧的数量D为1,则提取聚类集合中的唯一候选关键帧作为中间参考帧;若聚类集合中候选关键帧的数量D大于或等于2,则计算聚类集合的第一中间参考帧,并将计算得到的第一中间参考帧作为聚类集合新的中间参考帧,其中,聚类集合的第一中间参考帧的计算公式为
cfcenter为聚类集合的第一中间参考帧,cfcenter′为聚类集合的中间参考帧,原中间参考帧也是指聚类集合中的上一中间参考帧,cf为新划入到聚类聚合中的候选关键帧,D为大于零的正整数。
步骤S2033:从候选关键帧集合中剩余的成员中提取一候选关键帧作为类比帧;
候选关键帧集合中剩余的成员是指候选关键帧集合尚未被获取的成员。
步骤S2034:判断提取的类比帧是否为候选关键帧集合的结尾帧,若类比帧为结尾帧,则进入步骤S2035,否则进入步骤S2036;
候选关键帧集合中也包含有结尾帧,在候选关键帧集合的候选关键帧均被提取完后,才能提取结尾帧。
步骤S2035:输出聚类集合;
步骤S2036:根据聚类集合的中间参考帧与类比帧的相似度将类比帧划入对应的聚类集合;
此处聚类集合也是指当前已经生成的聚类集合,例如:若已经生成两个聚类集合,则分别计算类比帧与该两个聚类集合中的中间参考帧之间的相似度;若已经生成三个聚类集合,则分别计算类比帧与该三个聚类集合中的中间参考帧之间的相似度。
在步骤S2036完成后,返回步骤S2032:获取各聚类集合的中间参考帧的步骤,直至确认提取的类比帧为候选关键帧组合的结尾帧。
如图6所示,根据所述聚类集合的中间参考帧与类比帧的相似度将类比帧划入对应的聚类集合步骤包括:
步骤S20361:分别对类比帧与各聚类集合的中间参考帧的相似度进行计算;
步骤S20362:从计算得到的至少两个相似度中提取最大相似度;
步骤S20363:判断最大相似度是否大于或者等于设定的第二阈值,若是,则进入步骤S20364,否则进入步骤S20365;
第二阈值是预设的,本领域技术人员可根据实际情况设定第二阈值的具体值。
步骤S20364:将类比帧划入最大相似度对应的聚类集合中;
若最大相似度大于或者等于第二阈值,则说明类比帧与最大相似度对应的中间参考帧比较相似,可以归入一类,因此将其划入该中间参考帧对应的聚类集合中。
步骤S20365:生成新的聚类集合,并将类比帧划入新的聚类集合中;
若最大相似度小于第二阈值,则说明类比帧与最大相似度对应的中间参考帧比较不相似,则应该生成新的聚类集合,并将类比帧归入新的聚类集合。
步骤S204:从至少两个聚类集合中提取关键帧;
对候选关键帧进行分类后,从聚类集合提取关键帧,具体的,如图7所示,步骤S204包括:
步骤S2041:获取一聚类集合中的中间参考帧;
步骤S2042:计算聚类集合中其他成员与聚类集合的中间参考帧的相似度;
步骤S2043:从聚类集合中提取相似度最高的M个成员作为关键帧,其中,M为正整数。
需要说明的是:若聚类集合的数量为多个,则分别从多个聚类集合中提取关键帧,输出关键帧。
对任意两图片帧的相似度进行计算,具体包括:基于图片帧的属性特征获得图片帧的特征直方图;
根据两图片帧的特征直方图计算两图片帧的图像相似度,其中,图像相似度计算公式为:
其中,ed(G,S)为图像相似度,N为特征级数,gk为其中一所述图片帧的特征级数值,sk为另一所述图片帧的特征级数值;
利用图像相似度,对两图片帧的图像相似度进行定量度量,计算公式为:
其中,Simij为所述图像相似度的定量度量值。
进一步的,为了提高计算相似度的准确性,还可对图片帧进行分割,不同的分割部份设置不同权重,对两图片帧相同的分割部份结合权重进行比较,则在根据两图片帧的特征直方图计算两图片帧的图像相似度步骤之前,还包括:
将图片帧分割为i*j图片块,并对图片块的权重进行设置;
则图像相似度的定量度量值的计算公式又可具体为:
其中,wij为图片块的权重,i和j均为大于零的正整数。
为了方便查询图片帧,在将图片帧归入候选帧集合,以及将图片帧归入聚类集合时,均附带上图片帧在存储系统中的位置偏移量,也即为候选帧集合和聚类集合中的成员均一个二维数组,例如:(3,cf3),(71M,cf5),即为即图片帧cf3对应的位置偏移量为3,图片帧cf5对应的位置偏移量为71M。
在本发明实施方式中,根据计算速度较快的比较算法,从视频数据中快速提取候选关键帧,组成候选关键帧集合,再根据具有全局性的聚类算法,将候选关键帧集合中的候选关键帧进行分类,生成聚类集合,然后,从聚类集合中提取关键帧;本发明通过生成候选关键帧集合,对视频数据中的图片帧进行初步粗筛选,快速筛选掉不能作为关键帧的图片帧,再对筛选后的候选关键帧集合中的候选关键帧进行聚类,减少了进行聚类的计算量,在聚类后再进行关键帧的精提取,使得提取的关键帧个数可控、更简洁,且计算复杂度低;本发明从视频数据中提取视频关键帧,不仅具有全局性,而且计算速度更快。
请参阅图8和图9,视频关键帧提取系统3包括读取模块31、第一提取模块32、分类模块33和第二提取模块34。
读取模块31读取视频数据,其中,视频数据是由若干个图片帧组成的。第一提取模块32根据比较算法,从视频数据中提取候选关键帧,组成候选关键帧集合。分类模块33将候选关键帧集合中的候选关键帧进行分类,得到至少两个聚类集合。第二提取模块34从至少两个聚类集合中提取关键帧。
第一提取模块32包括第一提取单元321、第二提取单元322、第一判断单元323、第一输出单元324和加入单元325。
第一提取单元321从视频数据提取一图片帧,将此图片帧加入候选关键帧集合中并作为候选关键帧集合的参考关键帧。第二提取单元322从视频数据中剩余的图片帧中提取一图片帧作为比较帧。视频数据中剩余的图片帧是指视频数据中尚未被提取的图片帧。第一判断单元323判断提取的比较帧是否为视频数据的结尾帧。视频数据通常包含有结尾帧,结尾帧不包含任何视频数据的内容,只有结尾符。在本发明实施方式中,视频数据中图片帧具有先后顺序关系,因此,第一提取单元321在提取图片帧时,可按其先后顺序关系进行提取,从而使得当所有包含视频数据内容的图片帧被提取完成后,才会提取结尾帧。在第一判断单元323判断到比较帧为结尾帧,第一输出单元324输出候选关键帧集合。在第一判断单元323判断到比较帧不为结尾帧时,加入单元325根据比较帧与参考关键帧的相似度来判断比较帧是否为候选关键帧,并将确认为候选关键帧的比较帧加入所述候选关键帧集合中,且作为候选关键帧集合新的参考关键帧,以及,返回第二提取单元322。
加入单元325包括第一计算单元3251、第二判断单元3252和确认单元3253。第一计算单元3251计算比较帧与参考关键帧的相似度。第二判断单元3252判断相似度是否小于设定的第一阈值。在第二判断单元3252判断到相似度小于第一阈值,确认单元3253将比较帧确认为候选关键帧。
分类模块33包括第三提取单元331、第一获取单元332、第三判断单元333、第二输出单元334和划分单元335。
第三提取单元331从候选关键帧集合中提取一候选关键帧,并将此候选关键帧划入一聚类集合中。第一获取单元332获取聚类集合的中间参考帧,以及,从候选关键帧集合中剩余的成员中提取一候选关键帧作为类比帧。第三判断单元333判断提取的类比帧是否为候选关键帧集合的结尾帧。在本发明实施方式中,候选关键帧集合中也包含有结尾帧,在候选关键帧集合的候选关键帧均被提取完后,才能提取结尾帧;通常情况下,结尾帧位于候选关键帧集合中最末位置,在顺序提取候选关键帧集合中的候选关键帧时,则必然在最后提取到结尾帧。在第三判断单元333判断到类比帧为结尾帧时,第二输出单元334输出聚类集合。在第三判断单元333判断到类比帧不为结尾帧时,划分单元335根据聚类集合的中间参考帧与类比帧的相似度将类比帧划入对应的聚类集合,并返回第一获取单元332。
划分单元335包括第二计算单元3351、第四提取单元3352、第四判断单元3353、第一划入单元3354和第二划入单元3355。
第二计算单元3351分别对类比帧与各聚类集合的中间参考帧的相似度进行计算。第四提取单元3352从计算得到的至少两个相似度中提取最大相似度。第四判断单元3353判断最大相似度是否大于或者等于设定的第二阈值。在第四判断单元3353判断最大相似度大于或者等于第二阈值时,第一划入单元3354将类比帧划入最大相似度对应的聚类集合中,并返回第一获取单元332。在第四判断单元3353判断到最大相似度小于第二阈值,第二划入单元3355生成新的聚类集合,并将所述类比帧划入所述新的聚类集合中,以及返回第一获取单元332。
进一步的,在获取各聚类集合中的中间参考帧可为获取各聚类集合中平均帧,则第一获取单元332又可具体为用于获取所述聚类集合中候选关键帧的数量D,若聚类集合中候选关键帧的数量D为1,则提取聚类集合中的唯一候选关键帧作为中间参考帧,若聚类集合中候选关键帧的数量D大于或等于2,则计算聚类集合的第一中间参考帧,并将计算得到的第一中间参考帧作为所述聚类集合新的中间参考帧,其中,聚类集合的第一中间参考帧的计算公式为:
其中,cfcenter为聚类集合的第一中间参考帧,cfcenter′为聚类集合的中间参考帧,cf为新划入到聚类聚合中的候选关键帧,D为大于零的正整数。
第二提取模块34包括第二获取单元341、第三计算单元342和第五提取单元343。第二获取单元341获取一聚类集合中的中间参考帧。第三计算单元342计算聚类集合中其他成员与所述聚类集合的中间参考帧的相似度。第五提取单元343从聚类集合中提取相似度最高的M个成员作为关键帧,其中,M为正整数。若聚类集合的数量为多个,则分别从各个聚类集合中的提取M个关键帧输出。
图片帧的图片属性特征包括灰度、RGB颜色、纹理等等,优选的,本发明根据图片帧的图片属性特征获取图片帧的特征直方图,具体可以为颜色直方图、灰度直方图等,再根据特征直方图计算两图片帧的相似度。对任意两图片帧的相似度进行计算,包括基于图片帧的属性特征获得所述图片帧的特征直方图,根据两图片帧的特征直方图计算两图片帧的图像相似度,其中,图像相似度计算公式为:
其中,ed(G,S)为图像相似度,N为特征级数,gk为其中一所述图片帧的特征级数值,sk为另一图片帧的特征级数值;
利用图像相似度,对两图片帧的图像相似度进行定量度量,计算公式为:
其中,Simij为图像相似度的定量度量值。
进一步的,为了提高计算相似度的准确性,还可对图片帧进行分割,不同的分割部份设置不同权重,对两图片帧相同的分割部份结合权重进行比较,则计算两图片帧的相似度又具体包括:
将图片帧分割为i*j图片块,并对图片块的权重进行设置,则图像相似度的定量度量值的计算公式又可具体为:
其中,wij为所述图片块的权重,i和j均为大于零的正整数。
另外,为了方便查询图片帧,在将图片帧归入候选帧集合,以及将图片帧归入聚类集合时,均附带上图片帧在存储系统中的位置偏移量,也即为候选帧集合和聚类集合中的成员均一个二维数组,例如:(3,cf3),(71M,cf5),3和71M是位置偏移量,cf3和cf5是图片帧。
值得说明的是:视频关键帧提取系统3可以运行在一台设备,也可以将视频关键帧提取系统3的功能进行拆分,不同功能运行在分布式文件系统不同设备上;进一步的,也可将视频数据分割成视频块,一个视频块由分布式文件系统中一组设备,以实现不同视频块可以同步提取关键帧,提高运算速度。
如图10和图11所示,视频关键帧提取系统4包括分割节点41、若干个提取节点42和若干个分类节点43。其中,一个节点运行在分布式文件系统中的一个设备中,以实现同步运行。另外,提取节点42和分类节点43之间具有对应关系。
分割节点41根据提取节点42的数量,将读取到的视频数据分割成若干个视频块,并向一提取节点42发送一视频块。具体的,将读取到的视频数据分割成若干个视频块是根据提取节点42的数量和视频数据大小进行分割的,例如:假定视频数据大小为150M其文件在物理磁盘中的存储可以表示为[0,150M-1]分割块的大小设置为50M,则分成3块,即[0,50M-1],[50M,100M-1],[100M,150M-1],当然,在其他替代实施方式中,也可以结合视频数据的图像组或者清晰度进行分割。
提取节点42根据顺序比较算法,结合视频块中的图片帧的图片属性特征,从视频块中提取候选关键帧,组成候选关键帧集合,并向对应的分类节点43发送候选关键帧集合。分类节点43根据聚类算法,将候选关键帧集合中的候选关键帧进行分类,得到至少两个聚类集合,以及从至少两个聚类集合中提取关键帧。对于提取节点42和分类节点43更具体实现,可以参阅上述实施方式,此处不再一赘述。
为了方便读取更好地理解本发明,以下举例进行说明。
步骤a:分割节点41将视频数据分割成多个视频分块;
对于视频数据的分割可根据视频数据的大小及预先设定的分块大小来计算分割点,进行分割。为了使本发明更具有通用性,本发明设计无论原视频数据如何存储都需要重新获取,重新分块。
步骤b:提取节点42对各个分块的视频数据进行关键帧的提取,得到候选关键帧;
读取各个视频块,根据顺序比较算法,结合图像帧的属性特征提取候选关键帧。具体的,可基于灰度直方图计算各图像帧与参考关键帧的相似度,并提取相似度小于第一阈值的帧为候选关键帧。在初始化时,各视频分的图片帧中第一图片帧作为参考关键帧;
步骤b1:计算视频块中图片帧与参考关键帧的相似度;
步骤b2:提取相似度大于或等于第一阈值的图片帧为参考关键帧,并将相似度大于或等于第一阈值的图片帧加入候选关键帧集合;
图片帧的属性特征有许多种,比如灰度、RGB颜色、纹理等等。不同的属性特征有着不同的关键帧提取算法。本发明以灰度直方图为例进行说明,假定存在图像G,S,其灰度直方图的相似度可以用欧氏距离(Euclidean distance)来描述:
其中,N为颜色级数(比如灰度为0至255,N=256),gk和sk表示图帧片G,S的直方图的各个颜色级数的值。显然越小,图片G与S相似度越大。则根据欧氏距离进行演化,生成相似度计算公式,具体如下:
sim(G,S)越接近零,相似度越小,sim(G,S)越接近1,相似度越高。
进一步的,为了使相似度的判断更准确,还可对图片帧分割多个图片块,不同图片块有不同的权重,例如:将图片帧分割为i×j块,I=J=4设置图片块权重二维数组W[I][J],则权重二维数组W[I][J]如下:
这表示中间四个图片块占有更高的权重,为计算方便,设置的所有权重的和为1。
则各图片块的相似度simij(Gij,Sij)可以描述为:
其中,1≤i≤I,1≤j≤J,(gij)k和(sij)k两个分块直方图的各个颜色级数的值。若对各个分块设置权重,每块的权重表示为wij,则两图片帧sim(G,S)可以描述为:
若一个提取节点所要处理n个图片帧的视频块,记为Qf={f1,f2,...,fn},表示第p帧所对应的DC图像(1≤p≤n);Qcf表示为候选关键帧,cflast表示参考关键帧,则候选关键帧提取步骤如下:
(1)初始化:f1→Qcf,f1→cflast,1→p;
(2)p+1→p,获得下一帧,判断fp是否为Qf的结尾符,若是则跳到(6),否则进入(3);
(3)计算fp与cflast之间的相似度,即
(4)判断相似度是否小于第一阈值:如果是,则跳到(5),否则跳到(2);
(5)将fp与其物理位移offset组装成元组,并加入候选关键帧集合,然后fp→cflast更新参考关键帧,返回(2)
(6)输出候选关键帧集合。
最后产生多个候选关键帧集合(一个提取节点就有一个这样的集合),其格式为{(offest1,cf1),(offset2,cf2),…(offset,cfn)}。例如:提取节点1计算出候选关键帧集合:{(3,cf1),(400,cf2};提取节点2产生{(71M,cf3)}。
步骤c:将多个候选关键帧集合分发到不同的分类节点。
由于系统将要处理的是海量数据,而分割成的视频块又比较小(比如50M),这就会有许多的提取节点,如果多个提取节点的结果全部给一个分类节点也类聚,可能会超出该节点的计算能力范围,所以,将多个候选关键帧集合分发到不同的分类节点。对于分类节点的数量可由用户自行配置。对于分类节点所要处理的文件大小reduceSize,reduceSize数量的确定是基于原视频数据的大小。假定系统设置了一个分类节点所能处理的文件大小为100M,而原视频文件有150M,所以我们启动两个分类节点,分别负责接收属于[0,100M-1]和属于[100M,150M-1]对应的候选关键帧集合。这样,分类节点1就接收了提取节点1产生的{(3,cf1),(400,cf2}和提取节点2产生{(71M,cf3)}。而分类节点2接收提取节点3产生的{(113M,cf4),(140M,cf5)}。
步骤D:对候选关键帧集合进行聚类得到聚类集合。
步骤D1:从候选关键帧集合设置第一个候选关键帧为第一类聚的中间值参考帧;
步骤D2:计算候选关键帧集合中第二候选关键帧与中间值参考帧的相似度;
3.1.3当该相似度小于第二阀值时,创建第二聚类集合,将第二候选关键帧归入第二聚类集合,否则将第二候选关键帧归入第一聚类;
重复以上步骤,直至候选关键帧集合中所有成员都被归类完成。
以下对上述算法作更具体的说明:
设置聚类计算时相似度阈值,记为第二阈值λ,0<λ<1。
若一个分类节点所要处理的个数为m个的候选帧集合表示为Qcf={cf1,cf2,...,cfm},表示第q帧所对应的DC图像(1≤q≤m);σ1,σ2,...,σr,...表示类聚,σr(r>0)为其中一个,cfCenter(σr)表示类聚σr的中间值参考帧,则聚类步骤如下:
(1)初始化:cf1→σ1,cf1→cfCenter(σ1),1→q,1→r;
(2)获得下一候选关键帧,即q+1→q,判断cfq是否是Qcf的结尾帧,如果是则结束;
(3)分别计算cfq与cfCenter(σr)之间的相似度,即;
(4)计算最大相似度判断与相似度最高的类聚。
其中,length(σ)表示当前时刻所有类聚的个数
(5)判断maxsim是否小于预设阈值。即:maxsim<λ
如果maxsim<λ,则cfq与所有的类聚均不够相似,跳到(7);
(6)将cfq加入maxsim所在的类聚,记为cfq→σmaxsim,然后跳到(8);
(7)生成新的类聚,r+1→r,cfq→σr,为了让下一步可以计算新建类聚的中间值参考帧将新建帧设为最大相似度帧,即;σmaxsim=σr
(8)计算最大相似度聚类σmaxsim的中间值参考帧,即计算cfCenter(σmaxsim)。
假设σmaxsim原有D个候选关键帧,cfCenter(σmaxsim)'为原中间值参考帧,则:
完成计算后,跳到(2);
若假定候选关键帧(3,cf1),(400,cf2)相似度达到0.9,而类聚阈值为0.8,同时候选关键帧(3,cf1)更接近二者的中间值参考帧。则聚类方法的效果体现在:“关键帧文件1”中没有候选关键帧(400,cf2)。
步骤5:对关键帧集合中提取关键帧。
从类聚中提取关键帧,我们采用策略:不考虑几个最大的类聚。因为这些类聚往往是冗余帧类聚。最后,可以从各个类聚中选择最接近中间值参考帧作为最终的关键帧。
每个类聚集合取M个关键帧,则遍历所有类聚:
(1)若类聚中只有M个候选关键帧,则选择该M个候选关键帧作为关键帧;
(2)若类聚中有大于M个候选关键帧,则从第1个候选关键帧开始循环与该类聚集合的中间值参考帧进行比较,相似度最高(即sim值最大、最接近1)的M个作为关键帧。
显然地,由于各个分类节点将接收不同物理地址段的候选关键帧,它们之间的冗余数据可以忽略不计。所以本发明将具体较高的准确率、较低的冗余度。
在本发明实施方式中,先根据计算速度较快的顺序比较算法,从视频数据中提取候选关键帧,组成候选关键帧集合,再根据具有全局性的聚类算法,将候选关键帧集合中的候选关键帧进行分类,生成聚类集合,然后,从聚类集合中提取关键帧;由于在生成候选关键帧集合,筛选掉不能作为关键帧的图片帧,减少后续进行分类时的计算量,使得本发明从视频数据中提取视频关键帧,不仅具有全局性,而且计算速度更快。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。