掌桥专利:专业的专利平台
掌桥专利
首页

一种处理视频的方法及装置

文献发布时间:2023-06-19 11:52:33


一种处理视频的方法及装置

技术领域

本申请涉及人工智能领域,并且更具体地,涉及一种处理视频的方法及装置。

背景技术

人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。

随着人工智能技术的快速发展,深度学习技术在计算机视觉领域以及自然语言处理领域都取得了巨大的进展,对两个领域的联合研究也越来越受关注,例如,根据自然语言描述对视频片段(video clip)进行定位的问题,但是,相比于根据自然语言描述对静态图像进行检测的问题,根据自然语言描述对视频片段进行定位的问题更为复杂。

因此,如何根据自然语言描述对视频片段进行定位,成为一个亟需解决的技术问题。

发明内容

本申请提供一种处理视频的方法及装置,有助于提高识别输入语句对应的目标视频片段的准确率。

第一方面,提供了一种处理视频的方法,该方法包括:获取输入语句的语义特征;根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,所述视频特征中包括所述语义特征;根据所述语义特征和所述视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段。

在本申请实施例中,根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,可以将所述输入语句对应的语义融入所述视频帧的视频特征中,此时,根据所述语义特征和所述视频特征,识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

其中,所述输入语句的语义特征可以为该输入语句的特征向量,该输入语句的特征向量可以用于表示所述输入语句。换句话说,所述输入语句的语义特征也可以认为是所述输入语句的向量形式的表达。

例如,可以使用循环神经网络(recurrent neural network,RNN)获取输入语句的语义特征。或者,也可以使用其他神经网络获取输入语句的语义特征,本申请实施例中对此并不限定。

类似地,所述视频帧的视频特征可以为该视频帧的特征向量,该视频帧的特征向量可以用于表示所述视频帧。换句话说,所述视频帧的视频特征也可以认为是所述视频帧的向量形式的表达。

其中,所述视频特征中包括所述语义特征,可以是指,所述视频特征中包括所述输入语句对应的语义,或者,所述视频特征中携带所述输入语句对应的语义。

需要说明的是,上述语义加强可以是指基于所述语义特征协同构建所述视频帧的视频特征,或者说,将所述语义特征(或者也可以理解为所述输入语句对应的语义)融合到所述视频帧的视频特征中。

例如,可以在提取所述视频帧的视频特征时,基于所述语义特征对所述视频帧进行语义加强,直接获得语义加强后的(所述视频帧的)视频特征。

再例如,也可以先获取所述视频帧的初始视频特征,随后基于所述语义特征对所述视频帧的初始视频特征进行语义加强,获得语义加强后的(所述视频帧的)视频特征。

结合第一方面,在第一方面的某些实现方式中,所述根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,包括:确定所述输入语句中与所述视频帧对应的词;根据所述与所述视频帧对应的词的语义特征,对视频帧进行语义加强,得到所述视频帧的视频特征。

在本申请实施例中,使用所述输入语句中与所述视频帧最相关的词的语义特征,对所述视频帧进行语义加强,可以使所述视频帧的视频特征更准确,此时,根据所述视频特征识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

结合第一方面,在第一方面的某些实现方式中,所述根据所述语义特征对视频帧进行语义加强,得到所述视频中的视频帧的视频特征,包括:根据所述语义特征对所述视频帧进行特征提取,得到所述视频帧的视频特征。

在本申请实施例中,结合所述输入语句的语义特征对所述视频帧进行特征提取,可以直接在特征提取的过程中对所述视频帧的视频特征进行语义加强,有助于提高识别输入语句对应的目标视频片段的效率。

结合第一方面,在第一方面的某些实现方式中,所述方法还包括:获取所述视频帧的初始视频特征;其中,所述根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,包括:根据所述语义特征对所述初始视频特征进行语义加强,得到所述视频帧的视频特征。

结合第一方面,在第一方面的某些实现方式中,所述方法还包括:使用至少一个其他视频帧的视频特征,对所述视频帧的视频特征进行特征融合,得到所述视频帧的融合视频特征,所述其他视频帧和所述视频帧属于同一个视频;其中,所述根据所述语义特征和所述视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段,包括:根据所述语义特征和所述融合视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段。

在本申请实施例中,使用所述视频中的其他视频帧的视频特征,对所述视频帧的视频特征进行特征融合,将所述视频中的上下文信息融入所述视频帧的视频特征中,可以使所述视频帧的视频特征更准确,此时,根据所述视频特征识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

可选地,可以将所述至少一个其他视频帧的视频特征与所述视频帧的视频特征相加,相加后得到的就是所述视频帧的融合视频特征。

此时,可以认为所述视频帧的融合视频特征中融合了所述至少一个其他视频帧的视频特征。

在本申请实施例中,也可以使用所述视频中除所述视频帧以外的所有其他视频帧的视频特征,对所述视频帧的视频特征进行特征融合,得到所述视频帧的融合视频特征。

或者,还可以使用所述视频中所有视频帧(包括所述视频帧)的视频特征,对所述视频帧的视频特征进行特征融合,得到所述视频帧的融合视频特征。

例如,可以计算所述视频中所有视频帧(包括所述视频帧)的视频特征的平均值,将该平均值与所述视频帧的视频特征相加,相加后得到的就是所述视频帧的融合视频特征。

再例如,所述视频中共包含t个视频帧,该t个视频帧的视频特征可以组成所述视频的视频特征序列{f

结合第一方面,在第一方面的某些实现方式中,所述根据所述语义特征和所述视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段,包括:基于所述视频特征,确定所述视频片段在时域上的层次结构;根据所述语义特征和所述层次结构,确定所述视频片段是否为所述输入语句对应的目标视频片段。

在本申请实施例中,使用所述视频特征确定所述视频片段在时域上的层次结构,可以在扩大所述视频片段中每个视频帧的感受野的同时保持所述每个视频帧的视频特征的尺寸,此时,根据所述语义特征和所述层次结构,识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

可选地,可以使用一维带孔卷积(dilated convolution)或一维卷积,基于所述视频特征,确定所述视频片段在时域上的层次结构。

第二方面,提供了一种处理视频的装置,包括:获取输入语句的语义特征;根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,所述视频特征中包括所述语义特征;根据所述语义特征和所述视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段。

在本申请实施例中,根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,可以将所述输入语句对应的语义融入所述视频帧的视频特征中,此时,根据所述语义特征和所述视频特征,识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

其中,所述输入语句的语义特征可以为该输入语句的特征向量,该输入语句的特征向量可以用于表示所述输入语句。换句话说,所述输入语句的语义特征也可以认为是所述输入语句的向量形式的表达。

例如,可以使用循环神经网络(recurrent neural network,RNN)获取输入语句的语义特征。或者,也可以使用其他神经网络获取输入语句的语义特征,本申请实施例中对此并不限定。

类似地,所述视频帧的视频特征可以为该视频帧的特征向量,该视频帧的特征向量可以用于表示所述视频帧。换句话说,所述视频帧的视频特征也可以认为是所述视频帧的向量形式的表达。

其中,所述视频特征中包括所述语义特征,可以是指,所述视频特征中包括所述输入语句对应的语义,或者,所述视频特征中携带所述输入语句对应的语义。

需要说明的是,上述语义加强可以是指基于所述语义特征协同构建所述视频帧的视频特征,或者说,将所述语义特征(或者也可以理解为所述输入语句对应的语义)融合到所述视频帧的视频特征中。

例如,可以在提取所述视频帧的视频特征时,基于所述语义特征对所述视频帧进行语义加强,直接获得语义加强后的(所述视频帧的)视频特征。

再例如,也可以先获取所述视频帧的初始视频特征,随后基于所述语义特征对所述视频帧的初始视频特征进行语义加强,获得语义加强后的(所述视频帧的)视频特征。

结合第二方面,在第二方面的某些实现方式中,所述根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,包括:确定所述输入语句中与所述视频帧对应的词;根据所述与所述视频帧对应的词的语义特征,对视频帧进行语义加强,得到所述视频帧的视频特征。

在本申请实施例中,使用所述输入语句中与所述视频帧最相关的词的语义特征,对所述视频帧进行语义加强,可以使所述视频帧的视频特征更准确,此时,根据所述视频特征识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

结合第二方面,在第二方面的某些实现方式中,所述根据所述语义特征对视频帧进行语义加强,得到所述视频中的视频帧的视频特征,包括:根据所述语义特征对所述视频帧进行特征提取,得到所述视频帧的视频特征。

在本申请实施例中,结合所述输入语句的语义特征对所述视频帧进行特征提取,可以直接在特征提取的过程中对所述视频帧的视频特征进行语义加强,有助于提高识别输入语句对应的目标视频片段的效率。

结合第二方面,在第二方面的某些实现方式中,所述方法还包括:获取所述视频帧的初始视频特征;其中,所述根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,包括:根据所述语义特征对所述初始视频特征进行语义加强,得到所述视频帧的视频特征。

结合第二方面,在第二方面的某些实现方式中,所述方法还包括:使用至少一个其他视频帧的视频特征,对所述视频帧的视频特征进行特征融合,得到所述视频帧的融合视频特征,所述其他视频帧和所述视频帧属于同一个视频;其中,所述根据所述语义特征和所述视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段,包括:根据所述语义特征和所述融合视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段。

在本申请实施例中,使用所述视频中的其他视频帧的视频特征,对所述视频帧的视频特征进行特征融合,将所述视频中的上下文信息融入所述视频帧的视频特征中,可以使所述视频帧的视频特征更准确,此时,根据所述视频特征识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

可选地,可以将所述至少一个其他视频帧的视频特征与所述视频帧的视频特征相加,相加后得到的就是所述视频帧的融合视频特征。

此时,可以认为所述视频帧的融合视频特征中融合了所述至少一个其他视频帧的视频特征。

在本申请实施例中,也可以使用所述视频中除所述视频帧以外的所有其他视频帧的视频特征,对所述视频帧的视频特征进行特征融合,得到所述视频帧的融合视频特征。

或者,还可以使用所述视频中所有视频帧(包括所述视频帧)的视频特征,对所述视频帧的视频特征进行特征融合,得到所述视频帧的融合视频特征。

例如,可以计算所述视频中所有视频帧(包括所述视频帧)的视频特征的平均值,将该平均值与所述视频帧的视频特征相加,相加后得到的就是所述视频帧的融合视频特征。

再例如,所述视频中共包含t个视频帧,该t个视频帧的视频特征可以组成所述视频的视频特征序列{f1,f2,…,ft},其中,fj表示该输入语句中第j个词的语义特征,j为小于t的正整数,t为正整数。对该视频特征序列{f1,f2,…,ft}中的视频特征两两相乘(矩阵乘法),得到矩阵B(矩阵B可以称为相关性矩阵,矩阵B中的元素可以称为相关性特征),在矩阵B中为所述视频中的视频帧fj选取一个相关性特征,并将该相关性特征与所述视频中的视频帧fj的视频特征相加,相加后得到的就是所述视频中的视频帧fj的融合视频特征。

结合第二方面,在第二方面的某些实现方式中,所述根据所述语义特征和所述视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段,包括:基于所述视频特征,确定所述视频片段在时域上的层次结构;根据所述语义特征和所述层次结构,确定所述视频片段是否为所述输入语句对应的目标视频片段。

在本申请实施例中,使用所述视频特征确定所述视频片段在时域上的层次结构,可以在扩大所述视频片段中每个视频帧的感受野的同时保持所述每个视频帧的视频特征的尺寸,此时,根据所述语义特征和所述层次结构,识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

可选地,可以使用一维带孔卷积(dilated convolution)或一维卷积,基于所述视频特征,确定所述视频片段在时域上的层次结构。

第三方面,提供了一种处理视频的装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行上述第一方面中的任意一种实现方式中的方法。

上述第三方面中的处理器既可以是中央处理器(central processing unit,CPU),也可以是CPU与神经网络运算处理器的组合,这里的神经网络运算处理器可以包括图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-networkprocessing unit,NPU)和张量处理器(tensor processing unit,TPU)等等。其中,TPU是谷歌(google)为机器学习全定制的人工智能加速器专用集成电路。

第四方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面中的任意一种实现方式中的方法。

第五方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面中的任意一种实现方式中的方法。

第六方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面中的任意一种实现方式中的方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面中的任意一种实现方式中的方法。

上述芯片具体可以是现场可编程门阵列(field-programmable gate array,FPGA)或者专用集成电路(application-specific integrated circuit,ASIC)。

第七方面,提供了一种电子设备,该电子设备包括上述第二方面中的任意一个方面中的处理视频的装置。

当上述电子设备包括上述第二方面中的任意一个方面中的处理视频的装置时,该电子设备具体可以是终端设备或服务器。

在本申请实施例中,根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,可以将所述输入语句对应的语义融入所述视频帧的视频特征中,此时,根据所述语义特征和所述视频特征,识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

附图说明

图1是本申请实施例提供的一种人工智能主体框架示意图。

图2为本申请实施例提供的一种系统架构的结构示意图。

图3为本申请实施例提供的一种卷积神经网络的结构示意图。

图4为本申请实施例提供的另一种卷积神经网络的结构示意图。

图5为本申请实施例提供的一种芯片的硬件结构示意图。

图6为本申请实施例提供的一种系统架构的示意图。

图7是本申请一个实施例的处理视频的方法的示意性流程图。

图8为本申请另一个实施例的处理视频的方法的示意性流程图。

图9是本申请实施例的处理视频的装置的硬件结构示意图。

图10是本申请实施例的处理视频的装置的硬件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。

下面从“智能信息链”(水平轴)和“信息技术(information technology,IT)价值链”(垂直轴)两个维度对上述人工智能主题框架进行详细的阐述。

“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。

“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。

(1)基础设施:

基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。

基础设施可以通过传感器与外部沟通,基础设施的计算能力可以由智能芯片提供。

这里的智能芯片可以是中央处理器(central processing unit,CPU)、神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processingunit,GPU)、专门应用的集成电路(application specific integrated circuit,ASIC)以及现场可编程门阵列(field programmable gate array,FPGA)等硬件加速芯片。

基础设施的基础平台可以包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。

例如,对于基础设施来说,可以通过传感器和外部沟通获取数据,然后将这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。

(2)数据:

基础设施的上一层的数据用于表示人工智能领域的数据来源。该数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。

(3)数据处理:

上述数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等处理方式。

其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。

推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。

决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。

(4)通用能力:

对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。

(5)智能产品及行业应用:

智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。

本申请实施例可以应用在人工智能中的很多领域,例如,智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市等领域。

具体地,本申请实施例具体可以应用在云端的多媒体库的管理与检索中,或者,也可以应用在终端的多媒体库的管理与检索中,或者,还可以应用在其他使用自然语言对包含大量视频的多媒体库进行管理和检索的场景。

下面对使用自然语言查找(多媒体库中的)感兴趣的视频片段(video clip)这种应用场景进行简单的介绍。

视频片段查找:

多媒体库中包含大量视频,当用户查找感兴趣视频片段时,使用自然语言进行查询,可以改善(视频片段查找的)交互方式,使得用户对视频的管理和检索更加便捷,提升用户体验。

具体地,当用户在终端设备(例如,手机)或者云端存储了大量的视频时,通过输入自然语言,可以查询感兴趣的视频片段,或者,可以对存储的视频进行分类管理,从而可以提升用户体验。

例如,采用本申请实施例的处理视频的方法,能够构建得到适用于处理视频的装置(或模型),当用户希望查找多媒体库中关于“婴儿正在吃东西”的视频片段时,可以输入自然语句“婴儿正在吃东西”,将多媒体库中的视频及该输入自然语句输入上述构建得到的装置(或模型),就可以得到该多媒体库中的关于“婴儿正在吃东西”的视频片段,从而完成感兴趣视频片段的查找。

由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。

(1)神经网络

神经网络可以是由神经单元组成的,神经单元可以是指以x

其中,s=1、2、……n,n为大于1的自然数,W

(2)深度神经网络

深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。

虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:

综上,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为

需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。

(3)卷积神经网络

卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。

(4)循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。

既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。

(5)损失函数

在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。

(6)反向传播算法

神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。

如图2所示,本申请实施例提供了一种系统架构100。在图2中,数据采集设备160用于采集训练数据。针对本申请实施例的处理视频的方法来说,训练数据可以包括输入语句、训练视频以及训练视频中与该输入语句匹配度最高的视频片段,其中,训练视频中与该输入语句匹配度最高的视频片段可以是人工预先标注的视频片段。

在采集到训练数据之后,数据采集设备160将这些训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到目标模型/规则101。

下面对训练设备120基于训练数据得到目标模型/规则101进行描述,训练设备120基于输入语句对训练视频进行处理,将输出的视频片段与训练视频中与输入语句匹配度最高的视频片段进行对比,直到训练设备120输出的视频与训练视频中与该输入语句匹配度最高的视频片段的差值小于一定的阈值,从而完成目标模型/规则101的训练。

上述目标模型/规则101能够用于实现本申请实施例的处理视频的方法。本申请实施例中的目标模型/规则101具体可以为本申请实施中的处理视频的装置(或模型),该处理视频的装置(或模型)可以包括多个神经网络。需要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型/规则101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。

根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中,如应用于图2所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)AR/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端等。在图2中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:客户设备输入的视频和输入语句。

预处理模块113和预处理模块114用于根据I/O接口112接收到的输入数据(如输入的视频和输入语句)进行预处理,在本申请实施例中,也可以没有预处理模块113和预处理模块114(也可以只有其中的一个预处理模块),而直接采用计算模块111对输入数据进行处理。

在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。

最后,I/O接口112将处理结果,如上述得到的视频片段返回给客户设备140,从而提供给用户。

值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。

在图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。

值得注意的是,图2仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。

如图2所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101在本申请实施例中可以是本申请中的处理视频的装置(或模型),该处理视频的装置(或模型)可以包括多个神经网络,具体的,该处理视频的装置(或模型)可以包括CNN,深度卷积神经网络(deep convolutional neural networks,DCNN),循环神经网络(recurrent neuralnetwork,RNN)等等。

由于CNN是一种非常常见的神经网络,下面结合图3重点对CNN的结构进行详细的介绍。如上文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。

本申请实施例中具体采用的卷积神经网络的结构可以如图3所示。在图3中,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。

在本申请实施例中,视频帧可以认为是图像,因此,以对图像处理为例,对卷积神经网络的结构进行介绍。例如,输入层210可以获取待处理图像,并将获取到的待处理图像交由卷积层/池化层220以及后面的神经网络层230进行处理,可以得到图像的处理结果。下面对图3中的CNN 200中内部的层结构进行详细的介绍。

卷积层/池化层220:

卷积层:

如图3所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。

下面将以卷积层221为例,介绍一层卷积层的内部工作原理。

卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。

这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。

当卷积神经网络200有多个卷积层的时候,初始的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。

池化层:

由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图3中220所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。

神经网络层230:

在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图3所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。

在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图3由210至240方向的传播为前向传播)完成,反向传播(如图3由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。

本申请实施例中采用的卷积神经网络的结构可以如图4所示。在图4中,卷积神经网络(CNN)200可以包括输入层110,卷积层/池化层120(其中池化层为可选的),以及神经网络层130。与图3相比,图4中的卷积层/池化层120中的多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。

需要说明的是,图3和图4所示的卷积神经网络仅作为一种本申请实施例采用的两种可能的卷积神经网络的示例,在具体的应用中,本申请实施例所采用的卷积神经网络还可以以其他网络模型的形式存在。

图5为本申请实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图1所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则101。如图3和图4所示的卷积神经网络中各层的算法均可在如图5所示的芯片中得以实现。

神经网络处理器NPU 50作为协处理器挂载到主中央处理器(central processingunit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。

在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。

向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。

在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。

统一存储器506用于存放输入数据以及输出数据。

权重数据直接通过存储单元访问控制器505(direct memory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。

总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。

与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;

控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。

一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,简称DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。

其中,图3和图4所示的卷积神经网络中各层的运算可以由运算电路503或向量计算单元507执行。

上文中介绍的图2中的执行设备110能够执行本申请实施例的处理视频的方法的各个步骤,图3和图4所示的CNN模型和图5所示的芯片也可以用于执行本申请实施例的处理视频的方法的各个步骤。下面结合附图对本申请实施例的处理视频的方法进行详细的介绍。

如图6所示,本申请实施例提供了一种系统架构300。该系统架构包括本地设备301、本地设备302以及执行设备210和数据存储系统250,其中,本地设备301和本地设备302通过通信网络与执行设备210连接。

执行设备210可以由一个或多个服务器实现。可选的,执行设备210可以与其它计算设备配合使用,例如:数据存储器、路由器、负载均衡器等设备。执行设备210可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备210可以使用数据存储系统250中的数据,或者调用数据存储系统250中的程序代码来实现本申请实施例的处理视频的方法。

具体地,执行设备210可以执行以下过程:获取输入语句的语义特征;根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,所述视频特征中包括所述语义特征;根据所述语义特征和所述视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段。

通过上述过程执行设备210能够搭建成一个处理视频的装置(或模型),该处理视频的装置(或模型)可以包括一个或多个神经网络,该处理视频的装置(或模型)可以用于视频片段查找或定位、多媒体库的检索或管理等等。

用户可以操作各自的用户设备(例如本地设备301和本地设备302)与执行设备210进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。

每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备210进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。

在一种实现方式中,本地设备301、本地设备302从执行设备210获取到处理视频的装置(或模型)的相关参数,将处理视频的装置(或模型)部署在本地设备301、本地设备302上,利用该处理视频的装置(或模型)进行视频片段的查找或定位、多媒体库的检索或管理等等。

在另一种实现中,执行设备210上可以直接部署处理视频的装置(或模型),执行设备210通过从本地设备301和本地设备302获取输入的视频及输入语句,并根据该处理视频的装置(或模型)进行视频片段的查找或定位、多媒体的检索或管理等等。

上述执行设备210也可以为云端设备,此时,执行设备210可以部署在云端;或者,上述执行设备210也可以为终端设备,此时,执行设备210可以部署在用户终端侧,本申请实施例对此并不限定。

在本申请中,视频是由视频帧(video frame)组成的视频帧序列,其中的每个视频帧也可以认为是图片(picture)或图像(image),即视频也可以认为是由图片组成的图片序列,或由图像组成的图像序列。

视频也可以被划分成一个或多个视频片段(video clip),每个视频片段由一个或多个视频帧组成。例如,可以根据视频中的内容将其划分成多个视频片段,或者,也可以根据视频中的时间坐标将其划分成多个视频片段。本申请实施例中,对将视频划分为视频片段的方法并不限定。

下面结合附图详细阐述本申请实施例的技术方案。

图7为本申请的处理视频的方法的一个示意性流程图。该处理视频的方法700可以包括S710、S720和S730。在一些示例中,该处理视频的方法可以由图2中的执行设备110、图5所示的芯片以及图6中的执行设备210等设备执行。

S710,获取输入语句的语义特征。

可选地,可以使用神经网络获取输入语句的语义特征(或语义信息)。

其中,所述输入语句的语义特征可以为该输入语句的特征向量,该输入语句的特征向量可以用于表示所述输入语句。换句话说,所述输入语句的语义特征也可以认为是所述输入语句的向量形式的表达。

例如,可以使用循环神经网络(recurrent neural network,RNN)获取输入语句的语义特征。或者,也可以使用其他神经网络获取输入语句的语义特征,本申请实施例中对此并不限定。

可选地,可以使用神经网络获取输入语句中每个词(或单词)的语义特征。

相应地,该输入语句可以表示为该输入语句中的各个词的语义特征组成语义特征序列。

例如,输入语句包括k个词(或单词),使用神经网络获取输入语句中的k个词的语义特征,则该k个词的语义特征组成的语义特征序列{w

S720,根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征。

其中,所述视频特征中包括所述语义特征。或者换句话说,所述视频特征中包括所述输入语句对应的语义,或者,所述视频特征中携带所述输入语句对应的语义。

可选地,在本申请实施例中,也可以先确定所述输入语句中与所述视频帧对应的词;根据所述与所述视频帧对应的词的语义特征,对视频帧进行语义加强,得到所述视频帧的视频特征。

这里所说的所述输入语句中与所述视频帧对应的词,可以认为是:所述输入语句中与所述视频帧对应的内容最相关的词。或者,也可以认为:在所述输入语句包含的多个词中,该词对应的语义与所述视频帧对应的内容最相关。

在本申请实施例中,使用所述输入语句中与所述视频帧最相关的词的语义特征,对所述视频帧进行语义加强,可以使所述视频帧的视频特征更准确,此时,根据所述视频特征识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

上述确定所述输入语句中与所述视频帧对应的词的方法,具体可以如下图8中的实施例所示,这里不再赘述。

需要说明的是,上述S720中的语义加强可以是指基于所述语义特征协同构建所述视频帧的视频特征,或者说,将所述语义特征(或者也可以理解为所述输入语句对应的语义)融合到所述视频帧的视频特征中。

可选地,在本申请实施例中,上述根据所述语义特征对视频帧进行语义加强,可以通过以下几种方式实现:

方式一:

在本申请实施例中,可以在提取所述视频帧的视频特征时,基于所述语义特征对所述视频帧进行语义加强,直接获得语义加强后的(所述视频帧的)视频特征。

可选地,所述根据所述语义特征对视频帧进行语义加强,得到所述视频中的视频帧的视频特征,可以包括:根据所述语义特征对所述视频帧进行特征提取,得到所述视频帧的视频特征。

通常,会使用预先训练好的神经网络提取视频帧的视频特征,根据本申请实施例中的方法,可以将所述语义特征融入神经网络,在训练神经网络时,基于所述语义特征提取所述视频帧的视频特征。

在该神经网络训练完成后,就可以在提取所述视频帧的视频特征时,基于所述语义特征对所述视频帧进行语义加强,即根据所述语义特征对所述视频帧进行特征提取,得到所述视频帧的视频特征。

此时,对所述视频帧进行特征提取后得到的所述视频特征中包括所述输入语句对应的语义(或所述输入语句中与所述视频帧对应的词的语义),或者说,所述视频特征中携带所述输入语句对应的语义(或所述输入语句中与所述视频帧对应的词的语义)。

在方式一中,结合所述输入语句的语义特征对所述视频帧进行特征提取,可以直接在特征提取的过程中对所述视频帧的视频特征进行语义加强,有助于提高识别输入语句对应的目标视频片段的效率。

方式二:

在本申请实施例中,也可以先获取所述视频帧的初始视频特征,随后基于所述语义特征对所述视频帧的初始视频特征进行语义加强,获得语义加强后的(所述视频帧的)视频特征。

可选地,在上述S720之前,所述方法700还可以包括S722。

S722,获取所述视频帧的初始视频特征。

所述视频帧的初始视频特征可以为该视频帧的特征向量,该视频帧的特征向量可以用于表示所述视频帧。换句话说,所述视频帧的初始视频特征也可以认为是所述视频帧的向量形式的表达。

此时,所述根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,可以包括:根据所述语义特征对所述初始视频特征进行语义加强,得到所述视频帧的视频特征。

例如,可以基于所述语义特征确定卷积核,使用该卷积核对所述初始视频特征进行卷积处理,以将所述输入语句对应的语义融合进所述视频帧的视频特征,从而实现对所述视频帧的语义加强。

具体的基于所述语义特征对所述初始视频特征进行卷积处理的方法,可以如下图8中的实施例所示,这里不再赘述。

此时,对所述初始视频特征进行语义加强后得到的所述视频特征中包括所述输入语句对应的语义(或所述输入语句中与所述视频帧对应的词的语义),或者说,所述视频特征中携带所述输入语句对应的语义(或所述输入语句中与所述视频帧对应的词的语义)。

S730,根据所述语义特征和所述视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段。

其中,所述输入语句对应的目标视频片段是指:所述目标视频片段中(或者说所述目标视频片段中的视频帧中)包含所述输入语句描述的内容。

在本申请实施例中,根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,可以将所述输入语句对应的语义融入所述视频帧的视频特征中,此时,根据所述语义特征和所述视频特征,识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

可选地,可以根据所述视频特征确定所述视频帧所属的视频片段的视频特征,计算所述语义特征与所述视频片段的视频特征之间的匹配度(或相似度),根据所述匹配度确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段。

例如,可以将一个视频划分成多个视频片段(video clip),其中,一个视频片段可以由一个或多个视频帧组成,根据视频片段中的视频帧的视频特征确定该视频片段的视频特征,随后计算输入语句的语义特征与视频中的每个视频片段的视频特征之间的匹配度(或相似度),则对应的匹配度(即匹配度的值)最大的视频片段即为所述输入语句对应的目标视频片段。

可选地,可以计算输入语句的语义特征与视频片段的视频特征之间的欧式距离,并根据计算得到的欧式距离,确定该输入语句的语义特征与该视频片段的视频特征之间的匹配度。

或者,也可以使用RNN计算输入语句的语义特征与视频片段的视频特征之间的匹配度。

可选地,在上述S730之前,所述方法700还可以包括S732。

S732,使用至少一个其他视频帧的视频特征,对所述视频帧的视频特征进行特征融合,得到所述视频帧的融合视频特征。

其中,所述其他视频帧和所述视频帧属于同一个视频。

在本申请实施例中,使用所述视频中的其他视频帧的视频特征,对所述视频帧的视频特征进行特征融合,将所述视频中的上下文信息融入所述视频帧的视频特征中,可以使所述视频帧的视频特征更准确,此时,根据所述视频特征识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

例如,可以将所述至少一个其他视频帧的视频特征与所述视频帧的视频特征相加,相加后得到的就是所述视频帧的融合视频特征。

此时,可以认为所述视频帧的融合视频特征中融合了所述至少一个其他视频帧的视频特征。

在本申请实施例中,也可以使用所述视频中除所述视频帧以外的所有其他视频帧的视频特征,对所述视频帧的视频特征进行特征融合,得到所述视频帧的融合视频特征。

或者,还可以使用所述视频中所有视频帧(包括所述视频帧)的视频特征,对所述视频帧的视频特征进行特征融合,得到所述视频帧的融合视频特征。

例如,可以计算所述视频中所有视频帧(包括所述视频帧)的视频特征的平均值,将该平均值与所述视频帧的视频特征相加,相加后得到的就是所述视频帧的融合视频特征。

再例如,所述视频中共包含t个视频帧,该t个视频帧的视频特征可以组成所述视频的视频特征序列{f

此时,可以认为所述视频帧的融合视频特征中融合了所述视频中所有视频帧的视频特征。

相应地,在S730中,可以根据所述语义特征和所述融合视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段。

可选地,所述根据所述语义特征和所述视频特征,确定所述视频帧所属的视频片段是否为所述输入语句对应的目标视频片段,可以包括:

基于所述视频特征,确定所述视频片段在时域上的层次结构;根据所述语义特征和所述层次结构,确定所述视频片段是否为所述输入语句对应的目标视频片段。

需要说明的是,上述视频特征可以为上述S732中得到的所述视频帧的融合视频特征,即,可以基于所述视频帧的融合视频特征,确定所述视频片段在时域上的层次结构。

可选地,可以使用一维带孔卷积(dilated convolution)或一维卷积,基于所述视频特征,确定所述视频片段在时域上的层次结构。

在本申请实施例中,使用所述视频特征确定所述视频片段在时域上的层次结构,可以在扩大所述视频片段中每个视频帧的感受野的同时保持所述每个视频帧的视频特征的尺寸,此时,根据所述语义特征和所述层次结构,识别所述输入语句对应的目标视频片段,能够提高识别输入语句对应的目标视频片段的准确率。

图8为本申请的处理视频的方法的一个示意性流程图。该处理视频的方法800可以由处理视频的装置执行,该装置可以包括特征预处理模块101、特征预处理模块102、集成交互模块103、片段采样模块104及匹配度计算模块105组成。在一些示例中,该处理视频的装置可以图2中的执行设备110、图5所示的芯片以及图6中的执行设备210等设备。

步骤一:

如图8所示,特征预处理模块101对输入的视频进行预处理及特征提取,得到所述视频的视频特征序列;特征预处理模块102对输入语句进行预处理及特征提取,得到所述输入语句的语义特征序列。

具体地,特征预处理模块101可以通过神经网络对输入的视频中的视频帧进行特征提取,得到该视频帧的视频特征。

由于视频特征为向量形式,该过程也可以认为是使用神经网络将视频中的视频帧编码为一个向量。

例如,可以使用卷积神经网络(convolutional neural network,CNN)对输入的视频中的每个视频帧进行特征提取,得到每个视频帧的视频特征。

经过上述特征预处理模块101的处理,所述视频可以由视频特征序列{f

类似地,特征预处理模块102可以通过神经网络对输入语句中的词进行特征提取,得到该输入语句中的词的语义特征。

由于语义特征为向量形式,该过程也可以认为是使用神经网络将输入语句的词编码为一个向量。

例如,可以使用双向长短期记忆循环神经网络(long-short term memory,LSTM)对输入语句中的每个词进行特征提取,得到每个词的语义特征。

特别地,使用LSTM进行特征提取,可以使得到的每个词的语义特征获得输入语句中(该每个词前后的)其他词的上下文信息。

经过上述特征预处理模块102的处理,所述输入语句可以由语义特征序列{w

步骤二:

如图8所示,集成交互模块103基于所述输入语句的语义特征序列,对所述视频的视频特征序列进行集成交互处理,得到所述视频的候选视频特征序列。

其中,集成交互模块103可以划分成语义加强子模块1031、上下文交互子模块1032及时域结构构建子模块1033。需要说明的是,这些子模块可以是实际中存在的子模块,也可以是根据功能划分的虚拟的模块,本申请实施例中对此并不限定。

(1)语义加强子模块1031

语义加强子模块1031可以基于所述输入语句的语义特征,对所述视频中的视频帧进行语义加强。

例如,可以对所述视频的视频特征序列{f

接下来,可以对矩阵A的列方向进行归一化处理(例如,可以用softmax进行归一化处理),接着在矩阵A的行方向进行加权处理,此时,可以为所述视频中的每个视频帧选取一个加权词,根据这些加权词对应的语义特征可以形成新的语义特征序列{w`

此时,可以将语义特征序列{w`

需要说明的是,与传统的卷积核相比,上述卷积核(即语义特征序列{w`

1、卷积核的权重不包含在模型中,而是由输入语义动态决定。

由输入语句动态地决定卷积核的权重可以使得模型十分灵活,可以由输入语句的语义来决定提取的视频帧的视频特征,通过替换输入语句可以十分方便地检测同一视频中其他感兴趣的视频片段。

2.卷积处理通常对于每个位置会使用相同的卷积核进行变换,而在语义加强子模块1031中,每个视频帧都由其对应的加权词进行卷积(即语义加强)。

针对每个视频帧使用对应的加权词进行卷积可以在更细的粒度上发掘视频帧与词之间的关系,使用词对应的细节(词对应的语义特征)对视频帧进行语义加强,可以使得视频帧的视频特征更加准确。

(2)上下文交互子模块1032

上下文交互子模块1032可以将所述视频中其他视频帧的内容(即上下文信息)融入所述视频中的视频帧中。

可选地,在上下文交互子模块1032中,可以通过下述两种方式进行上下文交互,具体如下:

方式一:

采用平均池化(average pooling)的方式进行上下文交互。

例如,对于所述视频的视频特征序列{f

方式二:

另一种方式与语义加强子模块1031中进行语义加强的方式类似。这种方式类似于1031模块中对两个不同模态的感知方式。

例如,对于所述视频的视频特征序列{f

(3)时域结构构建子模块1033

时域结构构建子模块1033可以构建所述时频在时域上的层次结构。

可选地,时域结构构建子模块1033可以接收上下文交互子模块1032处理后的视频特征序列,对所述视频特征序列进行一维带孔卷积(dilated convolution),得到所述视频在时域上的层次结构(即所述视频的候选视频特征序列)。

步骤三:

如图8所示,片段采样模块104对所述视频的候选视频特征序列进行采样,得到多个视频片段的视频特征序列。

可选地,片段采样模块104接收所述视频的候选视频特征序列,并基于预设规则生成所述视频的多个视频片段。

例如,在所述视频的候选视频特征序列中,可以按照时间顺序等间距地采样7个视频帧的视频特征,则这7个视频帧的视频特征按照其之间的时间顺序可以组成视频片段,即生成视频片段。

其中,在采样的视频帧的时间坐标没有对齐所述视频中视频帧的时间坐标的情况下,可以利用线性插值的方法对齐该采样的视频帧的时间坐标。

可选地,采样得到的视频片段的视频特征,可以输入集成交互模块103进行集成交互处理。

步骤四:

如图8所示,集成交互模块103基于所述输入语句的语义特征序列,对所述多个视频片段的视频特征序列进行集成交互处理,得到所述多个视频片段的候选视频特征序列。

可选地,在步骤四中,集成交互模块103对所述多个视频片段的视频特征序列进行集成交互处理的方法与上述步骤二类似,这里不再赘述。

其中,在时域结构构建子模块1033确定所述视频片段在时域上的层次结构(即所述视频片段的候选视频特征序列)时,可以对所述视频片段的视频特征序列进行一维卷积。

步骤五:

如图8所示,匹配度计算模块105计算所述输入语句的语义特征序列与所述多个视频片段中的每个视频片段的视频特征序列之间的匹配度(或相似度),并根据计算得到的匹配度,确定(所述匹配度对应的)所述视频片段是否为所述输入语句对应的目标视频片段。

例如,可以将所述多个视频片段中匹配度(匹配度的值)最大的视频片段确定为目标视频片段。

需要说明的是,这里的目标视频片段可以是指所述视频生成的多个视频片段中,与所述输入语句的语义特征匹配最佳的视频片段;或者也可以是指,所述视频片段中的内容与所述输入语句表达的语义最相似(或者说最接近)。

为了说明本申请实施例的处理视频的方法的效果,下面结合具体的测试结果,对基于本申请实施例的处理视频的方法识别所述输入语句对应的目标视频片段的准确率进行分析。

表1

表1示出了在DiDeMo数据集上采用不同方案识别输入语句对应的目标视频片段的准确率。

由表1可知,使用时域模块网络(temporal modular network,TMN)中的方法进行识别的准确率为22.92%,使用片段上下文网络(moment context network,MCN)中的方法进行识别的准确率为28.10%,使用时域定位网络(temporal ground net,TGN)中的方法进行识别的准确率为28.23%,而使用本申请中的处理视频的方法进行识别的准确率为32.45%,可以看出,与表1中的几种方法相比,本申请中的处理视频的方法在Rank@1的准确度上能有大量的提升。

表2

表2示出了在Charades-STA数据集上采用不同方案识别输入语句对应的目标视频片段的准确率,其中,IoU为交并比(intersection over union,IoU)。

由表2可知,在IoU=0.5的情况下,使用跨模态时域回归定位器(cross-modaltemporal regression localizer,CTRL)中的方法进行识别的准确率为23.63%,使用动作概念定位器(activity concept based localizer,ACL)中的方法进行识别的准确率为30.48%,使用语义动作生成(semantic activity proposal,SAP)中的方法进行识别的准确率为27.42%,使用长短期记忆模型(long-short term memory,LSTM)中的方法进行识别的准确率为35.6%,使用本申请中的处理视频的方法进行识别的准确率为41.69%。

在IoU=0.7的情况下,使用CTRL中的方法进行识别的准确率为8.89%,使用ACL中的方法进行识别的准确率为12.20%,使用SAP中的方法进行识别的准确率为13.36%,使用LSTM中的方法进行识别的准确率为15.8%,使用本申请中的处理视频的方法进行识别的准确率为22.88%。

可以看出,与表2中的几种方法相比,本申请中的处理视频的方法在Rank@1的准确度上能有大量的提升。

综上所述,在本申请实施例中,根据所述语义特征对视频帧进行语义加强,得到所述视频帧的视频特征,可以将所述输入语句对应的语义融入所述视频帧的视频特征中,此时,根据所述语义特征和所述视频特征,识别所述输入语句对应的目标视频片段,能够有效地提高识别输入语句对应的目标视频片段的准确率。

图9是本申请实施例的处理视频的装置的硬件结构示意图。图9所示的处理视频的装置4000包括存储器4001、处理器4002、通信接口4003以及总线4004。其中,存储器4001、处理器4002、通信接口4003通过总线4004实现彼此之间的通信连接。

存储器4001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器4001可以存储程序,当存储器4001中存储的程序被处理器4002执行时,处理器4002和通信接口4003用于执行本申请实施例的处理视频的装置的各个步骤。

处理器4002可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的处理视频的装置中的单元所需执行的功能,或者执行本申请方法实施例的处理视频的方法。

处理器4002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的处理视频的方法的各个步骤可以通过处理器4002中的硬件的集成逻辑电路或者软件形式的指令完成。

上述处理器4002还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、ASIC、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。上述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器4001,处理器4002读取存储器4001中的信息,结合其硬件完成本申请实施例的处理视频的装置中包括的单元所需执行的功能,或者执行本申请方法实施例的处理视频的方法。

通信接口4003使用例如但不限于收发器一类的收发装置,来实现装置4000与其他设备或通信网络之间的通信。例如,可以通过通信接口4003获取输入语句和待处理的视频帧(或视频)。

总线4004可包括在装置4000各个部件(例如,存储器4001、处理器4002、通信接口4003)之间传送信息的通路。

图10是本申请实施例的模型训练装置5000的硬件结构示意图。与上述装置4000类似,图10所示的模型训练装置5000包括存储器5001、处理器5002、通信接口5003以及总线5004。其中,存储器5001、处理器5002、通信接口5003通过总线5004实现彼此之间的通信连接。

存储器5001可以存储程序,当存储器5001中存储的程序被处理器5002执行时,处理器5002用于执行训练本申请实施例的处理视频的装置的训练方法的各个步骤。

处理器5002可以采用通用的CPU,微处理器,ASIC,GPU或者一个或多个集成电路,用于执行相关程序,以实现训练本申请实施例的处理视频的装置的训练方法。

处理器5002还可以是一种集成电路芯片,具有信号的处理能力。在实现训练过程中,本申请实施例的处理视频的装置的训练方法的各个步骤可以通过处理器5002中的硬件的集成逻辑电路或者软件形式的指令完成。

应理解,通过图10所示的模型训练装置5000对处理视频的装置进行训练,训练得到的处理视频的装置就可以用于执行本申请实施例的处理视频的方法了。具体地,通过装置5000对神经网络进行训练能够得到图5所示的方法中的处理视频的装置,或图6所示的处理视频的装置。

具体地,图10所示的装置可以通过通信接口5003从外界获取训练数据以及待训练的处理视频的装置,然后由处理器根据训练数据对待训练的处理视频的装置进行训练。

可选地,上述训练数据可以包括输入语句、训练视频以及训练视频中与该输入语句匹配度最高的视频片段,其中,训练视频中与该输入语句匹配度最高的视频片段可以是人工预先标注的视频片段。

应注意,尽管上述装置4000和装置5000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置4000和装置5000还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置4000和装置5000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置4000和装置5000也可仅仅包括实现本申请实施例所必须的器件,而不必包括图9和图10中所示的全部器件。

应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。

上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。

本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 视频处理装置、视频处理装置的IC电路、视频处理方法和视频处理程序
  • 视频处理器训练方法、装置、视频处理装置及视频处理方法
技术分类

06120113083216