一种直播视频的多模态信息的融合方法和装置与流程

文档序号:15762107发布日期:2018-10-26 19:25阅读:189来源:国知局
一种直播视频的多模态信息的融合方法和装置与流程

本申请涉及多媒体数据处理技术领域,尤其涉及一种直播视频的多模态信息的融合方法和装置。



背景技术:

新闻视频中蕴含着大量的最新资讯信息,对于视频网站和新闻类的应用来说有着重要的价值。视频网站或者新闻类的应用需要对每日播出的整条新闻进行拆分、上线,供用户对于其中感兴趣的每条新闻进行点击观看。

由于全国的电视台数量众多,除卫视台外还存在各类地方台,如果需要对所有的新闻进行分割的话,需要耗费大量的人力进行切分。同时由于新闻的时效性,对于新闻视频的分割速度要求也是十分严格的,所以给人工分割带来更大的压力,新闻都是在某个时间(如中午12点)大量播出,为了保证时效性,需要在规定的时间内尽快将整个的新闻节目切割成独立新闻条目,而不能采用积压任务后期处理的方式进行生产。因此,一种自动的新闻视频拆分技术就成为解决这一问题的关键。

为了实现新闻视频的自动拆分,需要对视频内容进行分析,以找到新闻条目的拆分点。而视频内容的分析一般要结合多个模态信息对视频内容进行分析,例如结合视频中的音频信息和新闻视频中的标题信息对视频内容进行分析。

一般情况下,结合多个模态信息对视频内容进行分析时需要对于视频不同的模态利用不同的算法分别进行处理,得到各个模态信息的结果序列,然后通过对各个模态信息的结果序列的综合分析,得到视频的最终分析结果。这类方法适用于已经获得了完整视频的离线分析方式,该离线分析方式针对获得的完整视频,通过调用不同分析方法或是分析服务得到独立的分析结果,然后对于各个独立的分析结果进行综合分析得到最终的结果。这种分析方式对视频的处理时间要求不是很严格,每种模态信息的分析结果之间反馈的逻辑关联性也并不是很强。

反观对于直播视频进行分析不能采用此种离线分析方式进行分析,这是因为在分析直播视频时不能获得完整视频,视频是一帧一帧分发过来,需要对于每一帧进行实时分析,同时需要快速分析出来对应的结果以供后续算法使用。另一方面,视频分析技术种类较多,不同类型的结果需要相互进行融合才能进行最终的分析。如何将这些不同结果信息在较短时间内进行统一的融合,是实现直播视频的视频内容分析的关键。



技术实现要素:

有鉴于此,本申请实施例提供了一种直播视频的多模态信息的融合方法和装置,以将直播视频的多个模态信息的分析结果信息在较短时间内进行统一融合。

为了达到上述发明目的,本申请采用了如下技术方案:

一种直播视频的多模态信息的融合方法,包括:

对直播视频分别实时进行第一模态信息检测和第二模态信息检测,并将检测到的第一模态信息结果和第二模态信息结果分别写入第一结果序列和第二结果序列;

实时监听第一结果序列,当监听到第一结果序列中存在第一模态信息结果时,根据所述第一模态信息结果构造融合结果序列的基本单元;一个所述基本单元包括一个第一模态信息结果以及模态信息序列,其中,所述基本单元中的模态信息序列的初始值为空;

对于所述融合结果序列中的每个基本单元中的第一模态信息结果,分别监听所述第二结果序列中的第二模态信息结果,并分别判断所述第二结果序列中的第二模态信息结果与第一模态信息结果是否存在帧交叠,如果是,将存在帧交叠的第二模态信息结果写入所述基本单元的模态信息序列中。

一种直播视频的多模态信息的融合装置,包括:

第一检测单元,用于对直播视频实时进行第一模态信息检测,并将检测到的第一模态信息结果写入第一结果序列;

第二检测单元,用于对直播视频实时进行第二模态信息检测,并将检测到的第二模态信息结果第二结果序列;

第一监听单元,用于实时监听第一结果序列,当监听到第一结果序列中存在第一模态信息结果时,根据所述第一模态信息结果构造融合结果序列的基本单元;一个所述基本单元包括一个第一模态信息结果以及模态信息序列,其中,所述基本单元中的模态信息序列的初始值为空;

第二监听单元,用于对于所述融合结果序列中的每个基本单元中的第一模态信息结果,分别监听所述第二结果序列中的第二模态信息结果;

第一判断单元,用于分别判断所述第二结果序列中的第二模态信息结果与第一模态信息结果是否存在帧交叠;

写入单元,用于当所述第二结果序列中的第二模态信息结果与第一模态信息结果存在帧交叠时,将存在帧交叠的第二模态信息结果写入所述基本单元的模态信息序列中。

相较于现有技术,本申请具有以下有益效果:

基于以上技术方案可知,本申请实施例提供的方法通过对直播视频分别实时进行第一模态信息检测和第二模态信息检测,并将检测到的第一模态信息结果和第二模态信息结果分别写入第一结果序列和第二结果序列,然后根据第一模态信息结果构造融合结果序列的基本单元,一个该基本单元包括一个第一模态信息结果以及模态信息序列。最后以基本单元中的第一模态信息结果为融合基础,并将与第一模态信息结果存在帧交叠的第二模态信息结果写入到融合结果序列的基本单元的模态信息序列中,以实现第一模态信息和第二模态信息的融合。因此,通过该方法能够将直播视频的多个模态信息的分析结果信息在较短时间内进行统一融合,从而为实现直播视频的视频内容分析打下了关键基础。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的直播视频的多模态信息的融合方法的流程图;

图2为本申请实施例提供的直播视频的多模态信息的融合方法的一原理示意图;

图3为本申请实施例中s101的一实例的实现方式的流程图;

图4为本申请实施例中第一子模态信息检测的一实例的实现方法流程图;

图5为本申请实施例中第二子模态信息检测的一实例实现方法流程图1;

图6为本申请实施例中第二子模态信息检测的一实例实现方法流程图2;

图7为本申请实施例中第二子模态信息检测的一实例实现方法流程图3;

图8为本申请实施例中第三子模态信息检测的一实例的实现方法流程图;

图9为本申请实施例提供的一种直播视频的多模态信息的融合装置的结构示意图。

具体实施方式

基于背景技术可知,现有的视频新闻的自动分割技术,一般要结合多个模态信息,通过对各个模态信息的结果序列的综合分析,得到视频新闻的最终分析结果。然而,这种方法适用于已经获得了完整视频新闻的情况,进行离线的综合分析并得到最终的拆分结果。但是,对于直播视频而言,由于直播视频是一帧一帧分发过来的,并不能一次性获得完整的视频,所以上述方法并不适用于对直播视频的分割。

而直播视频,需要对于每一帧进行实时的分析,同时需要快速分析出来对应的结果以供后续分割使用。而且,直播视频分析的维度比较多,往往需要将不同维度的因素进行相互融合,才能进行最终的分析。因此,可以将这些不同维度的因素在较短时间内进行统一的融合,实现对直播视频的视频内容的实时分析和拆分。

基于此,本申请实施例提供了一种直播视频的多模态信息的融合方法,该方法通过对直播视频分别实时进行第一模态信息检测和第二模态信息检测,并将检测到的第一模态信息结果和第二模态信息结果分别写入第一结果序列和第二结果序列,然后根据第一模态信息结果构造融合结果序列的基本单元,一个该基本单元包括一个第一模态信息结果以及模态信息序列。最后以基本单元中的第一模态信息结果为融合基础,并将与第一模态信息结果存在帧交叠的第二模态信息结果写入到融合结果序列的基本单元的模态信息序列中,以实现第一模态信息和第二模态信息的融合。因此,通过该方法能够将直播视频的多个模态信息的分析结果信息在较短时间内进行统一融合,从而为实现直播视频的视频内容分析打下了关键基础。

下面结合附图对本申请的具体实施方式进行详细描述。

请参见图1和图2。图1是本申请实施例提供的直播视频的多模态信息的融合方法的流程示意图,图2是本申请实施例提供的直播视频的多模态信息的融合方法的原理示意图。

如图1所示,本申请实施例提供的直播视频的多模态信息的融合方法的具体实现方式包括以下步骤:

s101:对直播视频实时进行第一模态信息检测,并将检测到的第一模态信息结果写入第一结果序列。

在对直播视频进行分析和检测时,可以从多个维度进行不同模态信息的检测。每个维度的模态信息检测,可以将该直播视频按照该维度进行分析和聚类,将在该维度上属于同一部分的视频帧,划分为一个模态信息结果。当然,为了减少整体计算量,也可以在得到一个模态信息结果后,从中挑选代表该模态信息结构的关键帧,作为该维度下模态信息检测所获得的最终模态信息结果。

第一模态信息,是对直播视频进行多模态信息融合的基础,一般可以是镜头。那么,s101,即为对直播视频实时进行镜头检测,并将检测到的多个镜头写入到镜头序列中。

s101中第一模态信息检测的大体过程如下:将直播视频中属于同一第一模态信息的视频帧进行聚类,合并为一个第一模态信息结果,并从中挑选代表这个第一模态信息结果内容的关键帧,以达到减少整体计算量的目的。

作为一种示例,当第一模态信息为镜头时,第一模态信息结果为该直播视频中的一个镜头,第一结果序列即为当前检测到的直播视频的镜头序列。本步骤可以具体为:对当前正在直播的直播视频持续进行镜头检测,将直播视频当前已播放的视频片段由帧序列转化为镜头序列。设定直播视频进行镜头检测后,得到的镜头序列中包括n个镜头,其中,n为正整数,则该镜头序列中的每个镜头标记为镜头对应的帧区间。作为示例,该镜头序列可以表示为:{rbase_0[tstart,tend],rbase_1[tstart,tend],…,rbase_i[tstart,tend],…,rbase_n-1[tstart,tend]}。其中,rbase_i[tstart,tend]为第i镜头在镜头序列的标记,在rbase_i[tstart,tend]中,tstart为第i镜头的开始帧,tend为第i镜头的结束帧。

需要说明的是,由于直播视频的特点,随着播放时间的延续,视频帧不断的出现,实时展现不同的连续新闻内容,故,对直播视频进行实时第一模态信息检测时,随着直播内容的不断增多,检测到的第一模态信息结果也不断增多,例如,对于镜头检测,得到的镜头序列中的镜头数目不断增多,即,n不断递增。

通过s101对直播视频的第一模态信息检测,获得该直播视频在第一模态信息维度上的一系列第一模态信息结果,即,写入第一结果序列中的第一模态信息结果,随着直播视频推进,不断增多。可以理解的是,第一结果序列中包括n个第一模态信息结果,每个第一模态信息结果包括至少一个视频帧,且同一个第一模态信息结果中包括的视频帧的第一模态信息相似。

该步骤的具体实现方式将在下文中详细描述。

s102:对直播视频实时进行第二模态信息检测,并将检测到的第二模态信息结果写入第二结果序列。

与s101同理,在另一个维度上,对直播视频进行第二模态信息检测,得到第二结果序列,其中,随着直播视频的不断播放,第二结果序列中的第二模态信息结果不断增多。

可以理解的是,第二模态信息检测的大体过程如下:对视频新闻的每一视频帧,进行基于第二模态的检测,获取每个第二模态信息结果在当前直播视频中出现的起始帧和结束帧。

本步骤可以具体为:对于当前已播放的直播视频进行第二模态信息的检测,以将得到的第二模态信息结果写入到所述直播视频的第二结果序列,所述第二结果序列中的每个第二模态信息结果标记为该第二模态信息在所述直播视频中持续出现的帧区间。

作为示例,该第二模态信息具体可以第一子模态信息、第二子模态信息和第三子模态信息。其中,第一子模态信息可以是在时间上连续的信息,例如:静音点。那么,对第二模态信息进行检测具体可以包括:对于直播视频进行静音点的检测,以得到所述直播视频当前所播放内容中的静音点序列,所述静音点序列中的每个静音点标记为该静音点在所述直播视频中持续出现的帧区间。

可以理解的是,设定直播视频中当前共检测到k个第一子模态信息结果,其中,k为正整数,则第二结果序列中包括的第一子结果序列可以表示为:{rcon_0[tstart,tend],rcon_1[tstart,tend],…,rcon_i[tstart,tend],…,rcon_k-1[tstart,tend]}。其中,rcon_i[ts_start,ts_end]为直播视频中出现的第i第一子模态信息结果在第一子结果序列中的标记。在rcon_i[tstart,tend]中,tstart为第i第一子模态信息结果在直播视频中开始出现的视频帧,tend为第i第一子模态信息结果在直播视频中消失时的视频帧。

第二子模态信息可以是在时间上不连续的信息,例如:新闻标题;那么,对第二模态信息进行检测具体还可以包括:对于直播视频进行新闻标题的检测,以得到所述直播视频当前所播放内容中的标题序列,所述标题序列中的每个新闻标题标记为该新闻标题在所述直播视频中持续出现的帧区间。

可以理解的是,设定在直播视频中当前共检测到m个第二子模态信息结果,其中,m为正整数,则第二结果序列中包括的第二子结果序列可以表示为:{rnoncon_0[tstart,tend],rnoncon_1[tstart,tend],…,rnoncon_i[tstart,tend],…,rnoncon_m-1[tstart,tend]}。其中,rnoncon_i[tstart,tend]为直播视频中出现的第i第二子模态信息结果在第二子结果序列中的标记。在rnoncon_i[tstart,tend]中,tstart为第i第二子模态信息结果在直播视频中开始出现的视频帧,tend为第i第二子模态信息结果在直播视频中消失时的视频帧。

第三子模态信息可以是通过网络服务才能获得的信息,那么,对第二模态信息进行检测还具体可以包括:主线程通过分析视频请求服务,将请求数据发送至监听子线程的数据池中,所述主线程继续处理后续服务;多个监听子线程中的一个子线程从所述数据池中获取所述请求数据,并将所述请求数据封装成对应格式,标记服务标识,将封装后的请求数据和服务标识发送至服务器端的处理队列中,并监听结果队列,以使所述服务器端从所述处理队列中获取封装后的请求数据,并进行数据处理,得到处理结果,将处理结果和服务标识返回至所述结果队列;若在第二时长内,监听子线程获取到所述服务标识对应的处理结果,将所述服务标识对应的处理结果发送至所述主线程;所述主线程根据所述服务标识决定是否将所述服务标识对应的处理结果添加到第三子结果序列中。

可以理解的是,设定在直播视频中当前共检测到p个第三子模态信息结果,其中,p为正整数,则第二结果序列中包括的第三子结果序列可以表示为:{rasyn_0[tstart,tend],rasyn_1[tstart,tend],…,rasyn_i[tstart,tend],…,rasyn_p-1[tstart,tend]}。其中,rasyn_i[tstart,tend]为直播视频中出现的第i第三子模态信息结果在第三子结果序列中的标记。在rasyn_i[tstart,tend]中,tstart为第i第三子模态信息结果在直播视频中开始出现的视频帧,tend为第i第三子模态信息结果在直播视频中消失时的视频帧。

通过s102对直播视频的第二模式信息检测,获得该直播视频的第二结果序列,该第二结果序列包括多个第二模式信息结果,且随着直播新闻所播放内容的增多,第二结果序列中的第二模式信息结果也不断增多。

该步骤的具体实现方式将在下文中详细描述。

需要说明的是,上述s101和s102的执行顺序,具体可以是,先执行s101,对直播视频进行第一模式信息检测,再执行s102,对该直播视频进行第二模式信息检测;也可以先执行s102,再执行s101;还可以同时执行s101和s102。s101和s102的执行顺序在本申请实施例中不进行具体限定。

s103:实时监听第一结果序列,当监听到第一结果序列中存在第一模态信息结果时,根据所述第一模态信息结果构造融合结果序列的基本单元。

其中,一个所述基本单元,包括一个第一模态信息结果以及模态信息序列,其中,所述基本单元中的模态信息序列的初始值为空。即,当没有监听到第一模态信息结果之外维度的模态信息结果之前,模态信息序列中不包括任何信息。

基本单元,是基于第一模态信息结果,构建出的一个融合有多个维度模态信息的单元。可以理解的是,融合结果序列中构建的基本单元的数量,与监听到的第一模态信息结果的数量一致,即,当检测到一个第一模态信息结果时,就可以在该直播视频的融合结果序列中构建一个与之对应的基本单元。

s104:对于融合结果序列中的每个基本单元中的第一模态信息结果,监听所述第二结果序列中的第二模态信息结果。

s105:判断所述第二结果序列中的第二模态信息结果与第一模态信息结果是否存在帧交叠,如果是,则执行s106。

s106:将存在帧交叠的第二模态信息结果写入所述基本单元的模态信息序列中。

具体实现时,对于当前新构建的基本单元,需要实时监听第二结果序列,具体需要实时监听第二结果序列中的第二模态信息结果。一旦监听到第二模态信息结果,就可以判断第二结果序列中的该第二模态信息结果与该基本单元对应的第一模态信息结果是否存在帧交叠,如果存在,则将该监听到的第二模态信息结果写入到基本单元的模态信息序列中。

作为一种示例,基本单元的模态信息序列中,还可以包括:模态信息序列中的模态信息是否完全处理的标志位。

该标志位,用于表征该模态信息是否完全被处理。当该写入的第二模态信息结果没有完全被处理时,该标志位的值为假;当该写入的第二模态信息结果完全被处理时,该标志位的值为真。

对于rbase_i[tstart,tend]构造融合结果序列的基本单元,记作ri,ri的形式具体可以是:ri{tstart,tend,[rcon_vector,labelcon],[rasyn_vector,labelasyn],[rnoncon_vector,labelnoncon]}。其中,tstart和tend为第一模态信息结果的起始帧和结束帧,[rxxx_vector,labelxxx]为第二模态信息结果中的任一子模态信息结果对应的不定长子结果序列,以及该子结果序列是否完全被处理的标志位。

初始时刻,该不定长子结果序列的初始值为空;一旦后续监听到第二模态信息结果(包括第二模态信息结果中任意一种子模态信息结果),且该第二模态信息结果与第一模态信息结果有帧交叠时,将该第二模态信息结果添加至对应的该不定长子结果序列中,具体的,如果一类第二模态信息结果中发现多个rxxx_vector符合上述条件,则ri中的对于的rxxx_vector可添加多个结果rxxx_vector=(rxxx_k,rxxx_k+1,…,rxxx_k+n)。

具体实现时,当第二模态信息包括第一子模态信息、第二子模态信息和第三子模态信息时,s102中对直播视频实时进行第二模态信息检测,并将第二模态信息结果写入第二结果序列中,具体包括:对直播视频分别实时进行第一子模态信息、第二子模态信息和第三子模态信息的检测,并将检测得到的第一子模态信息结果、第二子模态信息结果和第三子模态信息结果写入第一子结果序列、第二子结果序列和第三子结果序列。

可以理解的是,所得到的第二结果序列包括:与所述第一子模态信息相对应的第一子结果序列、与所述第二子模态信息相对应的第二子结果序列、以及与所述第三子模态信息相对应的第三子结果序列。

其中,第一子结果序列中的各个第一子模态信息结果在时间上连续,例如静音点;所述第二子结果序列中的各个第二子模态信息结果在时间上不连续,例如新闻标题;所述第三子结果序列中的各个第三子模态信息结果是通过请求网络服务获得的结果。

对于s104~s106中,当监听到与基本单元中的第一模态信息结果存在帧交叠的第二模态信息结果时,基本单元中的模态信息序列包括与所述第一子模态信息相对应的第一子模态信息序列、与所述第二子模态信息相对应的第二子模态信息序列和与所述第三子模态信息相对应的第三子模态信息序列。

在一些实现方式中,s104~s106具体可以包括:

对于融合结果序列中的每个基本单元中的第一模态信息结果,监听第一子结果序列中的第一子模态信息结果,判断第一子模态信息结果与第一模态信息结果是否存在帧交叠;若第一子模态信息结果与第一模态信息结果存在帧交叠,将存在帧交叠的第一子模态信息结果写入所述第一子模态信息序列中。

对于融合结果序列中的每个基本单元中的第一模态信息结果,监听第二子结果序列中的第二子模态信息结果,判断第二子模态信息结果与第一模态信息结果是否存在帧交叠;若第二子模态信息结果与第一模态信息结果存在帧交叠,将存在帧交叠的第二子模态信息结果写入所述第二子模态信息序列中。

对于融合结果序列中的每个基本单元中的第一模态信息结果,监听第三子结果序列中的第三子模态信息结果,判断第三子模态信息结果与第一模态信息结果是否存在帧交叠;若第三子模态信息结果与第一模态信息结果存在帧交叠,将存在帧交叠的第三子模态信息结果写入所述第三子模态信息序列中。

举例来说,假设当前时刻,直播视频中的第一模态信息结果rbase_i构造融合结果序列的基本单元ri中,rbase_i的起始帧为第10帧,结束帧为第50帧;且当前检测到的与第一模态信息结果存在帧交叠的第一子模态信息结果包括:rcon_1[10,30]和rcon_2[31,49];检测到的与第一模态信息结果存在帧交叠的第二子模态信息结果包括:rnoncon_1[11,20]、rnoncon_2[25,40]和rnoncon_3[45,50];检测到的与第一模态信息结果存在帧交叠的第三子模态信息结果包括:rasyn_1[13,45];则,此时该基本单元ri具体为:ri{10,50,[rcon_1[10,30]rcon_2[31,49],labelcon],[rasyn_1[13,45],labelasyn],[rnoncon_1[11,20]rnoncon_2[25,40]rnoncon_3[45,50],labelnoncon]}。

其中,labelcon、labelasyn以及labelnoncon分别表示:第一子结果序列是否完全被处理的标志位、第二子结果序列是否完全被处理的标志位以及第三子结果序列是否完全被处理的标志位。标志位的初始值为假(false),即,初始时刻,labelcon=false、labelasyn=false且labelnoncon=false;一旦判断与所述第一模态信息结果存在帧交叠的第一子模态信息结果rcon_k的起始帧rcon_k_tstart是否大于第一模态信息结果的起始帧ri_tstart,如果是,将所述基本单元中的第一子模态信息是否完全处理的标志位置为真(true),即,设置labelcon=true;同理,一旦判断与所述第一模态信息结果存在帧交叠的第三子模态信息结果rasyn_i的起始帧rasyn_i_tstart是否大于第一模态信息结果的起始帧ri_tstart,如果是,将所述基本单元中的第三子模态信息是否完全处理的标志位置为真(true),即,设置labelasyn=true;一旦判断与所述第一模态信息结果存在帧交叠的第二子模态信息结果rnoncon_j的起始帧rnoncon_j_tstart是否大于第一模态信息结果的起始帧ri_tstart,和/或,判断是否在第一时长内未向第二子模态信息序列中写入第二子模态信息结果,若至少一个判断结果为是,将所述基本单元中的第二子模态信息是否完全处理的标志位置为真,即,设置labelnoncon=true。

需要说明,在本申请实施例中,为了实现对于非连续的第二子模态信息的实时同步,进而加快融合速率,针对该非连续的第二子模态信息设置了最大反馈时间机制,如此,若超过第一时长后仍然没有第二子模态信息结果写入到第二子模态信息序列中,就认为与该基本单元融合的第二子结果序列中的所有第二子模态信息结果全部处理完毕,如此,则将labelnoncon设置为ture。

需要说明的是,如果某个时刻,基础单元ri中的模态信息是否完全处理的标志位label均为真时,说明对于该第一模态信息结果的基础单元已经融合完毕,可以将这个融合结果提交给后续的其他处理设备,并将该基础单元ri移除,以节省资源占用。

可以理解的是,在将存在帧交叠的第二模态信息结果写入所述基本单元的模态信息序列中之后,为了减少资源占用,还可以将写入基本单元的第二模态信息结果,从第二结果序列中移除,具体可以包括:

判断与所述第一模态信息结果存在帧交叠的第二模态信息结果的结束帧对应的时间是否小于第一模态信息结果的结束帧对应的时间,如果是,将该与所述第一模态信息结果存在帧交叠的第二模态信息结果从所述第二结果序列中删除。

具体实现时,当第二模态信息结果中包括第一子模态信息结果、第二子模态信息结果和第三子模态信息结果时,上述判断并移除的操作具体包括:

判断与所述第一模态信息结果存在帧交叠的第一子模态信息结果rcon_k的结束帧对应的时间rcon_k_tend是否小于第一模态信息结果的结束帧对应的时间ri_tend,如果是,将该与所述第一模态信息结果存在帧交叠的第一子模态信息结果rcon_k从所述第一子结果序列中删除;

判断与所述第一模态信息结果存在帧交叠的第二子模态信息结果rnoncon_k的结束帧对应的时间rnoncon_j_tend是否小于第一模态信息结果的结束帧对应的时间ri_tend,如果是,将该与所述第一模态信息结果存在帧交叠的第二子模态信息结果rnoncon_j从所述第二子结果序列中删除;

判断与所述第一模态信息结果存在帧交叠的第三子模态信息结果rasyn_i的结束帧对应的时间rasyn_i_tend是否小于第一模态信息结果的结束帧对应的时间ri_tend,如果是,将该与所述第一模态信息结果存在帧交叠的第三子模态信息结果rasyn_i从所述第三子结果序列中删除。

在介绍完s101-s106后,为了使本申请实施例的技术方案更加清楚,下面结合图2示出的本申请实施例提供的直播视频的多模态信息的融合方法的原理图。

如图2所示,假设存在一个直播视频中,该直播视频当前播放的内容包括视频帧1-视频帧50,共50帧。当前,对该直播视频进行融合的具体实现方式为:首先,将该直播视频分别进行第一模态信息检测和第二模态信息检测,获得第一结果序列rbase_i…,第一子结果序列rcon_k…,第二子结果序列rnoncon_j…和第三子结果序列rasyn_i…,基于第一结果序列rbase_i构建基本单元ri;此时,如图2,可以根据监听、判断和处理进度,对第一子结果序列rcon_k,第二子结果序列rnoncon_j和第三子结果序列rasyn_i进行写入,处理和删除;最后,当该基本单元ri中的标志位均为真时,删除该基本单元ri,并输出该基本单元ri给后续的处理单元。

经过上述说明,已经将本申请实施例的框架进行了相关说明,下面针对本申请实施例提供的方法中的部分步骤的具体实现方式,进行详细介绍。

对于上述s101的具体实现方式,在下文中以第一模态信息是镜头为例进行详细描述。

参见图3,s101中对直播视频进行镜头检测得到镜头序列,可以具体包括:

s301,计算该视频新闻中的每个视频帧的rgb(redgreenblue)颜色直方图。

s302,在时域上,计算相邻的视频帧的颜色直方图的欧式距离,记作第一距离。

s303,判断第一距离是否大于预设的阈值1;如果是,则执行s404。

s304,确定该视频帧于镜头的切变,记录开始位置和这个结束位置之间的所有视频帧为一个镜头,并记录该镜头的类型为切变镜头。

同时,

s305,计算当前视频帧与其时域上之前的n帧的颜色直方图的欧式距离,记作第二距离。

s306,判断第二距离是否大于预设的阈值2;如果是,则执行s407。

s307,确定在该视频帧处对应于镜头的渐变,记录开始位置和这个结束位置之间的所有视频帧为一个镜头,并记录镜头的类别为渐变镜头。

可以理解的是,s302~s304和s305~s307可以同时执行。

如果s303和s306的判断结果均为否,说明当前检测的所有视频帧,均属于一个镜头,需要继续执行上述步骤,直到检测到镜头的结束帧,或者,检测到该视频新闻的结束帧。

s308,计算镜头的渐变长度l。

一种情况下,该镜头为切变镜头,则l=0。另一种情况下,该镜头为渐变镜头,渐变长度的计算方法具体可以是:对该镜头结束帧之前n帧的范围内,对于其中的每一视频帧,寻找满足结束帧与该当前帧的颜色直方图的欧式距离大于预设的阈值3的视频帧,该视频帧与结束帧之间对应的视频帧数量,即为渐变长度l的值。

s309,记录每个镜头在视频新闻中的帧区间。

记录镜头的帧区间,即记录该镜头的起始帧和结束帧,具体可以记作:shot[tshot_start,tshot_end,r,l],其中,shot代表镜头,tshot_start代表该镜头在视频新闻中的起始帧;tshot_end代表该镜头在视频新闻中的结束帧;r代表镜头的类型,可以是“切变”或是“渐变”;l代表镜头的渐变长度。

s310,将视频新闻由帧序列转换为镜头序列,记作:shot0[tshot_start,tshot_end,r,l],shot1[tshot_start,tshot_end,r,l],…,shotn[tshot_start,tshot_end,r,l]。

通过图3所示的方法,可以实现对直播视频的镜头检测,从直播视频当前播放的内容中检测到多个镜头,组成镜头序列,作为第一结果序列。

对于上述s102的具体实现方式,在下文中进行详细描述。

参见图4,为以s102中第一子模态信息是静音点时的具体说明,具体可以包括:

s401,提取视频中的音频信息。

在具体实现时,可以以一个固定的窗口长度w,步长为w/2,提取该视频新闻对应的音频信息x。

s402,计算该音频信息的过零率zcr特征z:

其中sgn[]是符号函数:

s403,计算该音频信息的短时能量ste特征e:

s404,判断是否特征z小于预先设定的阈值,4,且特征e小于预先设定的阈值5,如果是,则执行s405。

s405,确定该音频信息的当前片段为静音状况,记录此处音频片段对应的帧区间为silence[ts_start,ts_end]。

s406,合并结果序列中,计算每个合并后静音片段对应的时长。

s407,判断静音片段对应的时长是否小于阈值6,如果是,则执行s408。

s408,从结果序列中消除该静音片段,并将合并后的静音片段记作静音点。

s409,最终视频的静音点序列为:{silence0[ts_start,ts_end],silence1[ts_start,ts_end],…,silencek[ts_start,ts_end]}。

图4所示的上述实现方式,可以实现对直播视频的静音点检测,确定出该视频新闻中的静音点序列,记作第一子结果序列。

下面结合图5至图7,详细描述s102中第二子模态信息检测的具体实现方式。下文中以第二模态信息为新闻标题为例进行说明。

具体实现时,s102中进行新闻标题检测得到标题序列,可以获得新闻标题在视频新闻中出现的起始帧和结束帧,具体的实现可以包括四大步:确定标题候选区、跟踪标题候选区、判断标题候选区是否为标题区域、以及确定标题序列。

作为示例,确定标题候选区的具体实现方式可以如图5所示,跟踪标题候选区的具体实现方式可以如图6所示,判断标题候选区是否为标题区域的具体实现方式可以如图7所示。

首先,参见图5,对于选择视频新闻中视频帧的标题候选区,具体可以包括:

s501,选取视频帧底部区域作为标题候选区。

需要说明的是,对于视频新闻包括的视频帧,由于视频帧的底部区域为大部分新闻标题出现的区域,因此选取视频帧底部区域作为标题候选区。也就是说,选取视频帧底部区域内的图像,作为待检测图像。一般而言,标题候选区为矩形区域。在其他特殊的视频新闻中,也可以通过设置,选择其他区域作为标题候选区,也属于本申请实施例的保护的范围,对应新闻标题检测的实现方式参见该实施例的实现,这里不再赘述。

s502,将视频新闻的每个视频帧由rgb色彩空间转换成灰度图像。

即,将视频新闻的每个视频帧的rgb值转换为灰度值,对于灰度空间转换,公式为:

gray=r*0.299+g*0.587+b*0.114。其中gray表示灰度值,r表示红色通道的取值,g表示绿色通道的取值,b表示蓝色通道的取值。

s503,根据视频新闻的每个视频帧的灰度值,提取每个视频帧的边缘特征。

提取边缘的方法有多种,如sobel算子,canny算子等。

s504,根据每个视频帧的边缘特征,将视频帧的边缘进行图像二值化。

s505,对于视频新闻的每个视频帧,分别执行s503和s504,计算得到r、g和b三个通道分别的边缘强度图er,eg,eb。

其中,er表示红色通道的边缘强度图,eg表示绿色通道的边缘强度图,eb表示蓝色通道的边缘强度图。

s506,对边缘强度图像分别进行边缘加强。

s507,对于边缘加强后的边缘强度图像进行水平方向的投影,确定每个视频帧在水平方向的边缘,并将该水平方向边缘之间的图像区域作为第一阶段标题候选区。

s508,对于每一个第一阶段标题候选区,继续查找第一阶段标题候选区中的字幕区域的左右边界;并将左右边界区域内的原始图像,作为第二阶段的标题候选区。

s509,精细寻找第二阶段标题候选区的左右边界,作为新的垂直方向边界。

s510,对于上述方法确定的矩形区域,判断是否符合约束条件;如果符合,执行s511。

约束条件包括但不限于,该矩形区域的起点的位置信息需在一定的图像范围中,该矩形区域的高度需要在一定的范围中等等。

s511,确定视频新闻中符合约束条件的区域为标题候选区。

通过图5所示的方法,即通过s501~s511,可以确定出视频新闻的新闻标题的标题候选区,为对视频新闻的新闻标题检测打下了基础。

然后,参见图6,对于确定的标题候选区,进行进一步的跟踪,具体可以包括:

s601:判断标题候选区是否为第一次被跟踪的标题候选区。

其中,第一次跟踪的标题候选区,可以指首次跟踪这个标题候选区,也可以指上一次跟踪结束后,再次跟踪该标题候选区。

s602,为被跟踪的标题候选区所属的视频帧,设定一个跟踪范围。

由于该视频新闻的视频帧的标题候选区中可能包含背景区域,为了提升跟踪的准确性,需要设置跟踪区域,即,设定视频帧中的一个跟踪范围。

s603,选取视频帧跟踪区域中图像,将选取的彩色图像转换成灰度图像。

即,将选取的图像的rgb值转换为灰度值,对于灰度空间换公式为:

gray=r*0.299+g*0.587+b*0.114。其中gray表示灰度值,r表示红色通道的取值,g表示绿色通道的取值,b表示蓝色通道的取值。

s604,利用自适应阈值确定方法,计算灰度分割阈值。

s605,将通过上述步骤处理后的跟踪区域的图像二值化得到参考二值化图像bref。

s606,计算跟踪区域中图像的颜色直方图href。

s607,对视频新闻的视频帧,将视频帧从彩色空间转换到灰度空间。

s608,选取根据s607所得的视频帧中,跟踪区域的灰度图像,进行二值化,得到当前二值化图像bcur。

s609,将参考二值化图像bref和当前二值化图像bcur进行逐点差分,并计算差分的平均值db。

s610,计算跟踪区域中当前图像的颜色直方图hcur,并计算与href的距离dc。

s611,判断获得的db和dc与预设的阈值7和阈值8是否同时符合:db小于预设的阈值7,dc是否小于阈值8;如果是,则执行s612;否则,执行s613。

需要注意的是,基于颜色直方图和二值化的跟踪方式,可以只用其中之一,也可以组合使用。

s612,将跟踪计数器进行tracking_num++。

s613,将跟踪计数器进行lost_num++。

s614,判断lost_num是否大于预设的阈值9,如果是,执行s615,否则,返回跟踪中。

s615,返回跟踪结束状态,同时返回当前视频帧的帧序号。

可以理解的是,设立lost_num的目的是为了避免个别视频信号受到干扰,引起图像出现失真,导致匹配失败,通过lost_num的设立,允许算法有个别数量的视频跟踪失败。

通过图6所示的方法,即通过s601~s615,可以对于确定的标题候选区,进行进一步的跟踪。

接着,参见图7,需要根据图6和图5所获得的数据,判断标题候选区是否为标题区域,并确定出该视频新闻的标题序列,具体可以包括:

s701,确定跟踪计数器的tracking_num。

s702,判断tracking_num是否不小于预设的阈值10,如果是,则执行s703;否则,确定该标题候选区为非标题区。

s703,确定该标题候选区为标题区,并记录该标题在视频中出现的起始帧和结束帧,记作test[ttext_start,ttext_end]。

s704,对视频新闻进行上述标题检测步骤,获得该视频新闻的标题序列:{text0[ttext_start,ttext_end],text1[ttext_start,ttext_end],…,texti[ttext_start,ttext_end],textm-1[ttext_start,ttext_end]}。

图5至图7所示的上述实现方式,可以实现对直播视频的标题检测,确定出该新闻标题中的标题序列,记作第二子结果序列。

下面结合图8,详细描述s102中第三子模态信息检测的具体实现方式。

在一些示例中,s102对直播视频实时进行第三子模态信息检测,并将第三子模态信息结果写入第三子结果序列中,具体包括:

s801,主线程通过分析视频请求服务,将请求数据发送至监听子线程的数据池中,所述主线程继续处理后续服务;

s802,多个监听子线程中的一个子线程从所述数据池中获取所述请求数据,并将所述请求数据封装成对应格式,标记服务标识,将封装后的请求数据和服务标识发送至服务器端的处理队列中,并监听结果队列,以使所述服务器端从所述处理队列中获取封装后的请求数据,并进行数据处理,得到处理结果,将处理结果和服务标识返回至所述结果队列;

s803,若在第二时长内,监听子线程获取到所述服务标识对应的处理结果,将所述服务标识对应的处理结果发送至所述主线程;

s804,所述主线程根据所述服务标识决定是否将所述服务标识对应的处理结果添加到第三子结果序列中。

其中,s802中多个监听子线程中的一个子线程从所述数据池中获取所述请求数据,并将所述请求数据封装成对应格式,标记服务标识,将封装后的请求数据和服务标识发送至服务器端的处理队列中,并监听结果队列之后,还可以包括:

s813,若在第三时长内,监听子线程未获取到所述服务标识对应的处理结果,监听子线程将预设结果发送至所述主线程;

s814,所述主线程根据所述服务标识决定是否将所述预设结果添加到第三子结果序列中。

图8所示的上述实现方式,可以确定出该直播视频中的第三子结果序列。

以上为本申请实施例提供的直播视频的多模态信息的融合方法的具体实现方式。该具体实现方式是一种基于多模态信息的直播视频的融合方法的具体实现方式,该具体实现方式是通过对直播视频分别实时进行第一模态信息检测和第二模态信息检测,并将检测到的第一模态信息结果和第二模态信息结果分别写入第一结果序列和第二结果序列,然后根据第一模态信息结果构造融合结果序列的基本单元,一个该基本单元包括一个第一模态信息结果以及模态信息序列。最后以基本单元中的第一模态信息结果为融合基础,并将与第一模态信息结果存在帧交叠的第二模态信息结果写入到融合结果序列的基本单元的模态信息序列中,以实现第一模态信息和第二模态信息的融合。因此,通过该方法能够将直播视频的多个模态信息的分析结果信息在较短时间内进行统一融合,从而为实现直播视频的视频内容分析打下了关键基础。

另外,参见图9,本申请实施例还提供了一种直播视频的多模态信息的融合装置,包括:

第一检测单元901,用于对直播视频实时进行第一模态信息检测,并将检测到的第一模态信息结果写入第一结果序列;

第二检测单元902,用于对直播视频实时进行第二模态信息检测,并将检测到的第二模态信息结果第二结果序列;

第一监听单元903,用于实时监听第一结果序列,当监听到第一结果序列中存在第一模态信息结果时,根据所述第一模态信息结果构造融合结果序列的基本单元;一个所述基本单元包括一个第一模态信息结果以及模态信息序列,其中,所述基本单元中的模态信息序列的初始值为空;

第二监听单元904,用于对于融合结果序列中的每个基本单元中的第一模态信息结果,分别监听所述第二结果序列中的第二模态信息结果;

第一判断单元905,用于分别判断所述第二结果序列中的第二模态信息结果与第一模态信息结果是否存在帧交叠;

写入单元906,用于当所述第二结果序列中的第二模态信息结果与第一模态信息结果存在帧交叠时,将存在帧交叠的第二模态信息结果写入所述基本单元的模态信息序列中。

可选地,所述装置还可以包括:

第二判断单元,用于将存在帧交叠的第二模态信息结果写入所述基本单元的模态信息序列中后,判断与所述第一模态信息结果存在帧交叠的第二模态信息结果的结束帧对应的时间是否小于第一模态信息结果的结束帧对应的时间;

删除单元,用于当与所述第一模态信息结果存在帧交叠的第二模态信息结果的结束帧对应的时间小于第一模态信息结果的结束帧对应的时间时,将该与所述第一模态信息结果存在帧交叠的第二模态信息结果从所述第二结果序列中删除。

可选地,一个所述基本单元还包括所述模态信息序列中的模态信息是否完全处理的标志位,所述模态信息是否完全处理的标志位的初始值为假;

所述装置还包括:

第三判断单元,用于将存在帧交叠的第二模态信息结果写入所述基本单元的模态信息序列中之后,判断与所述第一模态信息结果存在帧交叠的第二模态信息结果的起始帧对应的时间是否大于第一模态信息结果的起始帧对应的时间;

置位单元,用于当当与所述第一模态信息结果存在帧交叠的第二模态信息结果的起始帧对应的时间大于第一模态信息结果的起始帧对应的时间时,将所述基本单元中的模态信息是否完全处理的标志位置为真。

可选地,所述第二模态信息包括第一子模态信息、第二子模态信息和第三子模态信息;

所述第二结果序列包括与所述第一子模态信息相对应的第一子结果序列、与所述第二子模态信息相对应的第二子结果序列、与所述第三子模态信息相对应的第三子结果序列;所述第一子结果序列中的各个第一子模态信息结果在时间上连续;所述第二子结果序列中的各个第二子模态信息结果在时间上不连续;所述第三子结果序列中的各个第三子模态信息结果是通过请求网络服务获得的结果;

所述基本单元中的模态信息序列包括与所述第一子模态信息相对应的第一子模态信息序列、与所述第二子模态信息相对应的第二子模态信息序列和与所述第三子模态信息相对应的第三子模态信息序列。

可选地,第二检测单元902,具体包括:

第一检测子单元,用于对直播视频实时进行第一子模态信息的检测,并将检测得到的第一子模态信息结果写入第一子结果序列;

第二检测子单元,用于对直播视频实时进行第二子模态信息的检测,并将检测得到的第二子模态信息结果写入第二子结果序列;

第三检测子单元,用于对直播视频实时进行第三子模态信息的检测,并将检测得到的第三子模态信息结果写入第三子结果序列;

所述第二监听单元,具体包括:

第一监听子单元,用于对于融合结果序列中的每个基本单元中的第一模态信息结果,监听第一子结果序列中的第一子模态信息结果;

第二监听子单元,用于对于融合结果序列中的每个基本单元中的第一模态信息结果,监听第二子结果序列中的第二子模态信息结果;

第三监听子单元,用于对于融合结果序列中的每个基本单元中的第一模态信息结果,监听第三子结果序列中的第三子模态信息结果;

所述第一判断单元,具体用于:

分别判断第一子模态信息结果、第二子模态信息结果和第三子模态信息结果与第一模态信息结果是否存在帧交叠;

写入单元,具体包括:

第一写入子单元,用于若第一子模态信息结果与第一模态信息结果存在帧交叠,将存在帧交叠的第一子模态信息结果写入所述第一子模态信息序列中;

第二写入子单元,用于若第二子模态信息结果与第一模态信息结果存在帧交叠,将存在帧交叠的第二子模态信息结果写入所述第二子模态信息序列中;

第三写入子单元,用于若第三子模态信息结果与第一模态信息结果存在帧交叠,将存在帧交叠的第三子模态信息结果写入所述第三子模态信息序列中。

可选地,所述基本单元中包括第二子模态信息是否完全处理的标志位,所述第二子模态信息是否完全处理的标志位的初始值为假;

所述第一判断单元还包括:

第一判断子单元,用于将存在帧交叠的第二子模态信息结果写入所述第二子模态信息序列中后,判断与所述第一模态信息结果存在帧交叠的第二子模态信息结果的起始帧是否大于第一模特征结果的起始帧,和/或,是否在第一时长内未向第二子模态信息序列中写入第二子模态信息结果;

置位子单元,用于当所述第一判断子单元中至少一个判断结果为是时,将所述基本单元中的模态信息是否完全处理的标志位置为真。

可选地,所述第三检测子单元,具体包括:

第一发送子单元,用于主线程通过分析视频请求服务,将请求数据发送至监听子线程的数据池中,所述主线程继续处理后续服务;

发送和监听子单元,用于多个监听子线程中的一个子线程从所述数据池中获取所述请求数据,并将所述请求数据封装成对应格式,标记服务标识,将封装后的请求数据和服务标识发送至服务器端的处理队列中,并监听结果队列,以使所述服务器端从所述处理队列中获取封装后的请求数据,并进行数据处理,得到处理结果,将处理结果和服务标识返回至所述结果队列;

第二发送子单元,用于若在第二时长内,监听子线程获取到所述服务标识对应的处理结果,将所述服务标识对应的处理结果发送至所述主线程;

第一添加子单元,用于所述主线程根据所述服务标识决定是否将所述服务标识对应的处理结果添加到第三子结果序列中。

可选地,所述第三检测子单元还包括:

第三发送子单元,用于若在第三时长内,监听子线程未获取到所述服务标识对应的处理结果,监听子线程将预设结果发送至所述主线程;

第二添加子单元,用于所述主线程根据所述服务标识决定是否将所述预设结果添加到第三子结果序列中。

本申请实施例是上述直播视频的多模态信息的融合方法实施例对应的装置实施例,具体实现方式以及达到的技术效果,可以参考上述直播视频的多模态信息的融合方法实施例的描述,这里不再赘述。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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