本发明涉及基于内容的视频检索(cbr)领域。包括视频特征数据的组织、存储,高维特征向量的索引与检索,分布式检索等领域的技术。
背景技术:
一个信息检索系统通常包括一个核心的检索数据库,一个搜索调度服务器和服务器组。对外则提供搜索和信息录入的接口。如图1所示。
其中,信息录入大多是依靠人工键入的方式。即由系统中检索内容的提供方把提供给用户的、用于搜索的内容信息通过检索系统的信息录入接口录入到数据库中。
核心数据库系统则主要负责存储供用户检索之用的信息数据。
搜索调度服务器负责接收、解析用户的请求,将其搜索请求分配给检索服务器,以执行实际检索。在检索结果返回到搜索调度服务器后,搜索调度服务器要对返回结果进行处理,如排序、合并、筛选等。处理之后将其返回给用户。完成一次搜索。
与普通的信息检索系统不同,视频搜索系统较为复杂,包含的模块也相对较多。
一个视频搜索系统由视频特征分析、特征数据存储、搜索调度和基于内容的视频检索等几大模块组成。其中,特征数据的存储、搜索调度和视频检索是此类搜索引擎的核心模块。
传统的视频检索系统要通过人工注释得到视频节目的有关信息,并将这些信息存放在数据库中供此后的查询之用。也就是说,视频分析模块实际是一个由人手工完成的工作模块。
这种方式带有很大的局限性。人工的注释不但耗费大量的人力和时间,而且往往带有很大的主观性,不能对视频节目内容作出准确、公正的刻画。特别是对视频节目的颜色、纹理等物理特征更是无法准确描述。即使是语音、字幕这一类不受制于主观因素的特征,也往往因为其数据量庞大而使人工处理变得不可行。
为此,人们将图像分析、语音分析和字幕分析技术用于视频节目处理,以计算机为主要工具,自动化的得到与视频节目内容相关的特征信息,为基于内容的搜索提供了支持。
在这样的系统中,要对一段视频节目的各方面特征进行分析处理。
在图像方面,要对视频节目进行场景和镜头的划分并提取出具有代表性的关键帧,进而对关键帧进行图像处理,将其颜色、纹理、形状以数学的形式,如向量,进行表示。
进一步的,还要从视频关键帧的低级特征,也就是前述的特征数据中提取出高层语义信息,如关键帧内出现的人脸、物体的运动趋势等,并将它们也表示成文本或数学的形式。
在音频方面,要用计算机对视频节目中出现的人的语音、背景音乐等进行处理,将其转换成字符串或具有一定含义的数学形式。
例如,对于视频节目中出现的人的语音,可以使用语音识别的方法,将语音转换成拼音图或词图的形式。
对于视频节目中出现的音乐,也可以通过对其波形特征的分析,得到音乐的旋律、音调特征,或音调的高低变化特征等。
在字幕方面,需要识别视频图像中出现的汉字,并将其提取出来转换成字符。
经过以上手段处理后得到的数据被称为视频节目的特征数据。特征数据的数量往往是非常庞大的。如,一个30分钟左右的视频节目可能包含500张以上的关键帧图片,而每个图片的特征往往需要若干个几十、甚至上百维的向量加以刻画;同样一段节目的语音在转化成图一类的特征数据结构后,往往需要几兆的空间保存。
因此,在进行基于内容的视频检索时,往往面临着数据量庞大,检索效率低下的问题。必须设法解决。或者减少特征数据的数据量,或者采取特别方式缩小检索范围以提高检索速度。
同时,基于内容的视频检索还存在无法准确匹配的问题。检索条件和数据库系统中存放的特征数据往往不是百分之百的匹配的。例如,即使检索条件图像中和数据库关键帧图片中出现了同一个人的形象,对这些关键帧进行分析后,得到的特征向量也不可能完全和检索条件图像的特征数据是一样的。但是对于视频检索,这些图像却是“符合”检索条件的。因此,针对特征向量的检索应该执行模糊匹配策略。需要适当的检索和搜索策略来寻找能满足条件的结果,并得到模糊匹配的程度。
目前,在视频分析领域、图像分析领域、语音分析领域和字幕提取领域,都已经有了令人振奋的研究成果。分析的精度已经达到了一定的程度。但是,在国内目前尚很少将上述领域的研究成果应用在实际的产品中。至于将上述领域的研究成果相结合,为基于内容的视频检索服务,更是没有先例。
将视频分析领域、图像分析领域、语音分析领域和字幕提取领域的成果结合起来,并辅以其他重点技术,共同为基于内容的视频检索服务,还面临着很大的困难和挑战。无论从设计上,还是从实际的开发都还有相当多的技术难点需要解决。
技术实现要素:
有鉴于此,本发明的一个目的是…。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
本发明提供了一种基于内容的视频检索方法,包括:
经人机交互界面接收视频搜索请求;
根据所述视频搜索请求触发多个检索进程,包括:
触发元数据检索服务器对视频节目的元数据进行检索;
触发字幕检索服务器对存放节目字幕文本的xml文件进行检索;
触发视频检索集群对视频关键帧的特征数据进行检索;
触发语音检索集群,对视频节目的语音信息,包括拼音串和拼音图进行检索;
将各搜索结果进行整合,然后经所述人机交互界面返回给用户。
较佳地,于所述元数据检索服务器中设置元数据表、元数据检索模块和元数据录入模块,其中:
元数据表包含如下信息中的一个或者多个:节目id,节目名称,导演,演员,语言,产地,类型1,类型2,文件格式,文件大小,长度,屏幕宽度,屏幕高度,节目地址,节目文件名,上载时间,上载地址,上载状态,是否必审,节目级别,审查标志,节目价格,节目简介,封杀标志字段;
元数据检索模块包含一个根据节目id来检索节目的存储进程,以及一个根据组合条件来检索节目的存储进程;
元数据录入模块包含一个将指定元数据信息插入数据库表的存储进程。
较佳地,于所述字幕检索服务器中设置一个用来存储字幕xml文件的数据库表,一个用于存储服务器相关配置信息的表,一个读取配置信息的存储进程,一个用于xml检索的存储进程,一个用于向数据库录入xml文件的存储进程和一个xml的分段索引。
较佳地,于字幕xml文件数据库表中设置一个节目id字段,xml文件名字段和xml文件字段;和/或
于服务器配置信息表中设置参数id字段、参数名字段和参数值字段;和/或
于xml检索的存储过程中设置关键词逻辑表达式生成程序块和检索程序块。
较佳地,于视频检索集群中设置一个视频场景检索服务器和一个视频检索服务器,其中:
于视频场景检索服务器中设置一个存储场景关键帧索引的数据库表,一个用于索引录入的存储过程和一个用于检索场景关键帧的程序包;和/或
于频检索服务器中设置一个存放视频关键帧xml文件的数据库表,一个存放关键帧索引的数据库表,一个存放服务器配置信息的数据库表,一个用于录入xml文件的存储进程,一个用于生成索引的程序包,一个用于检索索引表的程序包,一个用于调用视频场景检索服务器内程序的远程链接。
较佳地,于场景关键帧索引数据库表中设置索引id字段,三个索引聚类下界向量字段,三个索引聚类上界向量字段,索引内容嵌套表,索引聚类内关键帧总数字段和索引聚类最大距离字段;
其中,索引内容嵌套表,包括条目标识id字段,关键帧所属节目id字段,关键帧编号字段,关键帧类型字段,场景开始时间字段,场景结束时间字段,镜头开始时间字段,镜头结束时间字段,关键帧时间点字段,三个关键帧特征信息向量字段。
较佳地,设置视频关键帧xml文件数据库表的结构与场景关键帧索引数据库表的结构相同,均包括一个索引内容嵌套表;和/或
于用于生成索引的程序包中设置一个用于将一个新图像特征值添加到一个聚类中的程序包、一个用于按指定门限值扩展一个聚类的程序包,和一个用于创建新聚类的存储进程;和/或
于用于检索索引表的程序包中设置一个检索主存储进程,一个计算检索条件图像与某个聚类的最小距离的存储进程,一个计算检索条件图像与某个聚类的最大距离的最小值的存储进程和一个用于判断某个聚类是否有效的程序段。
较佳地,于按指定门限值扩展一个聚类的程序包中设置一个扩展的主存储进程、一个用于计算扩展后聚类超矩形主对角线长度的存储进程、一个用于计算扩展后聚类是否与已有的其他聚类存在交叠的存储进程;其中,聚类超矩形对角线长度的最大允许值设为2.0;和/或
于将一个新图像特征值添加到一个聚类中的程序包中设置一个用于添加的主存储进程和一个用于判断一个图像的特征值是否属于某个聚类的存储进程。
较佳地,于检索主存储进程中设置检索条件图像与聚类之间距离的最大允许值设为2.0。
较佳地,于语音检索集群中设置一个语音缓存检索服务器、一个语音最优检索服务器和一个语音拼音图检索服务器。为了上述以及相关的目的,一个或多个实施例包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明某些示例性方面,并且其指示的仅仅是各个实施例的原则可以利用的各种方式中的一些方式。其它的益处和新颖性特征将随着下面的详细说明结合附图考虑而变得明显,所公开的实施例是要包括所有这些方面以及它们的等同。
附图说明
图1是现有技术中通常的检索系统结构示意图;
图2是本发明实施例一种基于内容的视频检索方法流程图;
图3是本发明实施例一种基于内容的视频检索系统方框图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的组件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
本发明实施例提供了一种基于内容的视频检索方法,如图2所示,包括如下步骤:
步骤s201:经人机交互界面接收视频搜索请求;
步骤s202:根据所述视频搜索请求触发多个检索进程;
步骤s203:将各检索进程检索到的信息进行整合;
步骤s204:将整合后的信息经所述人机交互界面返回给用户。
其中,在执行步骤s202时,是同时触发如下检索进程1-4,从而提高检索效率:
进程1:触发元数据检索服务器对视频节目的元数据进行检索;
进程2:触发字幕检索服务器对存放节目字幕文本的xml文件进行检索;
进程3:触发视频检索集群对视频关键帧的特征数据进行检索;
进程4:触发语音检索集群,对视频节目的语音信息,包括拼音串和拼音图进行检索。
较佳地,本发明实施例于所述元数据检索服务器中设置元数据表、元数据检索模块和元数据录入模块,其中:
元数据表包含如下信息中的一个或者多个:节目id,节目名称,导演,演员,语言,产地,类型1,类型2,文件格式,文件大小,长度,屏幕宽度,屏幕高度,节目地址,节目文件名,上载时间,上载地址,上载状态,是否必审,节目级别,审查标志,节目价格,节目简介,封杀标志字段;
元数据检索模块包含一个根据节目id来检索节目的存储进程,以及一个根据组合条件来检索节目的存储进程;
元数据录入模块包含一个将指定元数据信息插入数据库表的存储进程。
较佳地,本发明实施例于所述字幕检索服务器中设置一个用来存储字幕xml文件的数据库表,一个用于存储服务器相关配置信息的表,一个读取配置信息的存储进程,一个用于xml检索的存储进程,一个用于向数据库录入xml文件的存储进程和一个xml的分段索引。
较佳地,本发明实施例于字幕xml文件数据库表中设置一个节目id字段,xml文件名字段和xml文件字段;和/或,于服务器配置信息表中设置参数id字段、参数名字段和参数值字段;和/或,于xml检索的存储过程中设置关键词逻辑表达式生成程序块和检索程序块。
较佳地,本发明实施例于视频检索集群中设置一个视频场景检索服务器和一个视频检索服务器,其中:
于视频场景检索服务器中设置一个存储场景关键帧索引的数据库表,一个用于索引录入的存储过程和一个用于检索场景关键帧的程序包;和/或
于频检索服务器中设置一个存放视频关键帧xml文件的数据库表,一个存放关键帧索引的数据库表,一个存放服务器配置信息的数据库表,一个用于录入xml文件的存储进程,一个用于生成索引的程序包,一个用于检索索引表的程序包,一个用于调用视频场景检索服务器内程序的远程链接。
较佳地,本发明实施例于场景关键帧索引数据库表中设置索引id字段,三个索引聚类下界向量字段,三个索引聚类上界向量字段,索引内容嵌套表,索引聚类内关键帧总数字段和索引聚类最大距离字段。其中,索引内容嵌套表,包括条目标识id字段,关键帧所属节目id字段,关键帧编号字段,关键帧类型字段,场景开始时间字段,场景结束时间字段,镜头开始时间字段,镜头结束时间字段,关键帧时间点字段,三个关键帧特征信息向量字段。
较佳地,本发明实施例设置视频关键帧xml文件数据库表的结构与场景关键帧索引数据库表的结构相同,均包括一个索引内容嵌套表;和/或,于用于生成索引的程序包中设置一个用于将一个新图像特征值添加到一个聚类中的程序包、一个用于按指定门限值扩展一个聚类的程序包,和一个用于创建新聚类的存储进程;和/或,于用于检索索引表的程序包中设置一个检索主存储进程,一个计算检索条件图像与某个聚类的最小距离的存储进程,一个计算检索条件图像与某个聚类的最大距离的最小值的存储进程和一个用于判断某个聚类是否有效的程序段。
较佳地,本发明实施例于按指定门限值扩展一个聚类的程序包中设置一个扩展的主存储进程、一个用于计算扩展后聚类超矩形主对角线长度的存储进程、一个用于计算扩展后聚类是否与已有的其他聚类存在交叠的存储进程;其中,聚类超矩形对角线长度的最大允许值设为2.0;和/或,于将一个新图像特征值添加到一个聚类中的程序包中设置一个用于添加的主存储进程和一个用于判断一个图像的特征值是否属于某个聚类的存储进程。
较佳地,本发明实施例于检索主存储进程中设置检索条件图像与聚类之间距离的最大允许值设为2.0。
较佳地,本发明实施例于语音检索集群中设置一个语音缓存检索服务器、一个语音最优检索服务器和一个语音拼音图检索服务器。
参见图3,该图示出了本发明实施例一种基于内容的视频检索系统,包括:人机交互界面301、控制器302、元数据检索服务器303、字幕检索服务器304、视频检索集群305、语音检索集群306和数据处理器307,其中:
人机交互界面301,用于接收视频搜索请求,将检索结果返回给用户;
控制器302,用于根据视频搜索请求同时触发元数据检索服务器303、字幕检索服务器304、视频检索集群305、语音检索集群306进行相应检索;
数据处理器307,用于将元数据检索服务器303、字幕检索服务器304、视频检索集群305、语音检索集群306的检索结果进行整合,输出至人机交互界面301;
下面将详细介绍并行触发的元数据检索服务器303、字幕检索服务器304、视频检索集群305、语音检索集群306,具体如下:
1、元数据检索服务器303:
元数据是在制作节目时人工填写的文字信息,用来刻画视频节目的题目、导演、演员、产地、简介等内容信息,以及帧率、分辨率、点播费用、是否需要drm验证等特征数据。
这一部分是整个系统中唯一需要人工参与的模块。
在人工填写好这些数据后,将其录入到元数据库中。
在执行简单的元数据查询,或执行基于内容查询后需要搜索结果的相关信息时,都要向元数据检索服务器发出检索请求、对元数据库进行查询。
2、字幕检索服务器304:
得到字幕特征数据就是视频节目中出现过的字幕文本。在字幕分析时,将这些文本及其出现处所属的场景和镜头的开始和结束时间保存为指定格式的xml文件,并录入到字幕数据库中。
由搜索调度服务器发来的检索条件是一个字符串,其中包含若干个检索条件,用指定分隔符分隔。
首先,要提取出不同的检索条件,并按照以后检索程序的要求将他们连接成指定模式的逻辑表达式。然后,根据这个表达式对字幕数据库中的视频节目字幕xml文件进行过滤,将文件中包含检索条件的节目挑选出来。最后,在选出来的文件中定位检索条件,找到该条件出现处所属场景和镜头的时间信息。
3、视频检索集群305:
鉴于视频关键帧的特征数据量庞大,为了保证响应时间,将视频检索模块设计成一个检索集群。该集群包含视频场景和视频检索两个服务器。
虽然视频特征数据在录入数据库时也是以xml文件的形式存放的,但是为了提高检索效率,会将所有的视频关键帧进行索引。
索引采用基于r树的高维向量索引技术,其基本思想是:定义两个图像特征数据之间的距离,将相互距离在指定范围内的图像划分为一个聚类,即把“相似”的图像分成一类。
在进行检索时,只检索索引,计算检索条件与每个聚类之间的“最小距离”和“最大距离的最小值”,根据这两个特征值淘汰掉那些与检索条件图像差的很远的聚类。最后,只计算未被淘汰的聚类内的图像与检索条件图像之间的距离,并排序返回。
这样,就大大减少了参与比较的图像数量和计算的次数,提高了检索的速度。
在视频检索集群的两台服务器中,都用上述索引来表示视频节目的关键帧图像。
视频场景检索服务器:
这里存放所有视频场景关键帧聚类。因为在一个视频节目中,场景关键帧的数量要比总关键帧数量少一个数量级,而场景关键帧本身也具有很强的代表性,所以,首先对场景关键帧进行检索,这样可以提高检索速度。
视频检索服务器:
这里存放有所有场景和镜头关键帧的聚类。当只检索场景关键帧得不到满足一定要求的检索结果时,要对所有关键帧进行检索,以得到真正匹配的结果。
视频关键帧的匹配算法是一个模糊匹配算法。即数据库中的关键帧与检索条件图像的匹配程度只要达到一定的门限即可被接受。
4、语音检索集群306:
在对视频节目的语音进行分析时,将得到语音的拼音图,通过搜索拼音图可以获得节目中出现过哪些话。但是,一个30分钟左右的节目的语音信息需要600幅以上的拼音图加以刻画,而拼音图的搜索速度本身也不高,因此,为了保证检索系统的检索速度,将语音检索部分设计为一个检索集群,包括语音缓存检索、语音最优化检索和语音拼音图检索三个检索服务器。
这三台服务器保证了用户可以快速的检索到那些“经常被访问”的语音信息,即语音缓存中的信息。当语音缓存中不存在所需信息时,检索语音最优化服务器中的内容,即从少量较优的语音分析结果中检索。同时,检索服务器的后台程序将使用用户检索过的那些条件对语音拼音图进行离线的全面检索,并将得到的结果更新到缓存中。这样,就提高了此后用户的检索速度。
根据所述公开的实施例,可以使得本领域技术人员能够实现或者使用本发明。对于本领域技术人员来说,这些实施例的各种修改是显而易见的,并且这里定义的总体原理也可以在不脱离本发明的范围和主旨的基础上应用于其他实施例。以上所述的实施例仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。