视频识别方法、装置、设备、系统及存储介质与流程

文档序号:31844925发布日期:2022-10-18 23:33阅读:67来源:国知局
视频识别方法、装置、设备、系统及存储介质与流程

1.本公开涉及人工智能技术领域,尤其涉及自然语言处理、知识图谱、深度学习、计算机视觉等技术领域,可应用于视频理解、视频分类、智能推荐等场景。


背景技术:

2.随着软硬件技术的快速发展,视频成为信息传递的主要方式之一。为了将视频快速的向用户分发推荐,需要对视频内容形成一个深层次的理解。而动作事件是理解视频信息的一个关键要素。相关技术中,将视频作为一个整体看待,利用神经网络对整个视频进行分类,输出视频所属的动作事件类型。但实际上,一个视频往往包含多个动作事件,将视频作为一个整体看待,识别准确性差。


技术实现要素:

3.本公开提供了一种视频识别方法、装置、设备、系统及存储介质。
4.根据本公开的第一方面,提供了一种视频识别方法,包括:
5.获取目标视频的视频特征序列,该目标视频包括多个动作片段;
6.基于视频特征序列,确定多个动作片段的开始位置和结束位置;
7.基于多个动作片段的开始位置和结束位置,确定多个候选动作片段的边界表示向量和中心表示向量;
8.基于多个候选动作片段的边界表示向量和中心表示向量,对多个候选动作片段进行位置修正,得到多个修正后的候选动作片段;
9.基于多个修正后的候选动作片段,确定目标视频的识别结果。
10.根据本公开的第二方面,提供了一种视频识别装置,包括:
11.获取单元,用于获取目标视频的视频特征序列,该目标视频包括多个动作片段;
12.第一确定单元,用于基于视频特征序列,确定多个动作片段的开始位置和结束位置;
13.第二确定单元,用于基于多个动作片段的开始位置和结束位置,确定多个候选动作片段的边界表示向量和中心表示向量;
14.修正单元,用于基于多个候选动作片段的边界表示向量和中心表示向量,对多个候选动作片段进行位置修正,得到多个修正后的候选动作片段;
15.识别单元,用于基于多个修正后的候选动作片段,确定目标视频的识别结果。
16.根据本公开的第三方面,提供了一种视频识别系统,包括:
17.输入模块,用于获取目标视频的视频特征序列,该目标视频包括多个动作片段;
18.粗粒度预测模块,用于基于视频特征序列,确定多个动作片段的开始位置和结束位置;
19.细粒度预测模块,用于基于多个动作片段的开始位置和结束位置,确定多个候选动作片段的边界表示向量和中心表示向量;基于多个候选动作片段的边界表示向量和中心
表示向量,对多个候选动作片段进行位置修正,得到多个修正后的候选动作片段;基于多个修正后的候选动作片段,确定目标视频的识别结果;
20.后处理模块,用于对目标视频的识别结果进行筛选,得到目标视频的最终识别结果。
21.根据本公开的第四方面,提供了一种电子设备,包括:
22.至少一个处理器;以及
23.与该至少一个处理器通信连接的存储器;其中,
24.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行上述第一方面所提供的方法。
25.根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行上述第一方面所提供的方法。
26.根据本公开的第六方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述第一方面所提供的方法。
27.根据本公开的技术方案,能提升对视频的识别准确性。
28.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
29.附图用于更好地理解本方案,不构成对本公开的限定。其中:
30.图1是根据本公开实施例的视频识别方法的流程示意图;
31.图2是根据本公开实施例的视频识别模型的训练方法的流程示意图;
32.图3是根据本公开实施例的视频识别系统的架构示意图;
33.图4是根据本公开实施例的视频识别装置的结构示意图;
34.图5是根据本公开实施例的视频识别模型的训练装置的结构示意图;
35.图6是根据本公开实施例的视频识别的场景示意图;
36.图7是用来实现本公开实施例的视频识别方法的电子设备的框图。
具体实施方式
37.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
38.本公开的说明书实施例和权利要求书及上述附图中的术语"第一"、"第二"和"第三"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语"包括"和"具有"以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
39.相关技术中,动作事件识别主要分为两大类解决方案,第一类方案采用端到端的方法,同时输出模型的动作片段和该动作片段的动作类型;第二类方案采用一种流水线
(pipeline)式的方法,先输出动作片段,然后对动作片段分类,输出其所属的动作类型。第一种方案虽说运行速度较快,但由于同时预测动作片段范围和动作类型,导致预测结果的准确性较低。第二种方案由于两个网络是分开训练的,因此动作片段与动作类型的相关性弱,预测结果的准确性也较低。
40.本公开为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个问题,通过对视频先后进行粗粒度预测和细粒度预测,能预测出更精准的动作边界和动作事件类型,从而提升对视频的识别准确性。
41.本公开实施例提供了一种视频识别方法,图1是根据本公开实施例的视频识别方法的流程示意图,该视频识别方法可以应用于视频识别装置。该视频识别装置位于电子设备,该电子设备可以是视频识别系统的一部分,也可以独立于视频识别系统但能与视频识别系统通信连接。该电子设备包括但不限于固定设备和/或移动设备。例如,固定设备包括但不限于服务器,服务器可以是云服务器或普通服务器。例如,移动设备包括但不限于:手机、平板电脑、车载终端中的一项或是多项终端。在一些可能的实现方式中,该方法还可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图1所示,该视频识别方法包括:
42.s101:获取目标视频的视频特征序列,该目标视频包括多个动作片段;
43.s102:基于视频特征序列,确定多个动作片段的开始位置和结束位置;
44.s103:基于多个动作片段的开始位置和结束位置,确定多个候选动作片段的边界表示向量和中心表示向量;
45.s104:基于多个候选动作片段的边界表示向量和中心表示向量,对多个候选动作片段进行位置修正,得到多个修正后的候选动作片段;
46.s105:基于多个修正后的候选动作片段,确定目标视频的识别结果。
47.本公开实施例中,目标视频是待识别的视频。比如,目标视频可以是用户主动上传的预查询的视频。又比如,目标视频是待审核的视频。再比如,目标视频可以是爬取到的视频。本公开不对目标视频的来源进行限定。以上仅为示例性说明,不作为对目标视频的全部可能的来源的限定,只是这里不做穷举。
48.需要说明的是,本公开不对目标视频的类型进行限定。比如,目标视频可以是长视频。又比如,目标视频可以是短视频。再比如,目标视频可以是小视频。以上仅为示例性说明,不作为对目标视频全部可能的类型的限定,只是这里不做穷举。
49.本公开实施例中,视频特征序列是表征目标视频的视频特征的序列。
50.本公开实施例中,候选动作片段的数量,小于或等于目标视频包括的动作片段的数量。
51.本公开实施例中,边界表示向量是用于表示动作片段的边界的向量。比如,根据动作片段的开始位置和结束位置确定出动作片段的边界表示向量。
52.本公开实施例中,中心表示向量用于表示动作片段的非边界的向量。比如,根据动作片段的开始位置和结束位置确定出动作片段的非边界表示向量。
53.本公开实施例中,修正包括但不限于对动作片段的开始位置的修正,以及对动作片段的结束位置的修正。
54.在一些实施例中,识别结果包括分类结果。示例性的,分类结果包括动作类型的分
类结果。如,吃饭、购物、打球、跳舞等。又示例性的,分类结果包括视频类型的分类结果。如,武侠、爱情、搞笑、科幻等。
55.在一些实施例中,识别结果包括视频理解结果。示例性的,视频理解结果包括对视频主旨内容的理解。如,历史主题、军旅主题、生活主题等。
56.在一些实施例中,识别结果包括事件识别结果。示例性的,事件识别结果包括对视频所包括事件的理解。如,打人事件、做饭事件、健身事件等。
57.需要说明的是,以上仅为示例性说明,不作为对识别结果全部可能的类型的限定,只是这里不做穷举。
58.本公开实施例的技术方案,获取目标视频的视频特征序列;基于视频特征序列,确定多个动作片段的开始位置和结束位置;基于多个动作片段的开始位置和结束位置,确定多个候选动作片段的边界表示向量和中心表示向量;基于多个候选动作片段的边界表示向量和中心表示向量,对多个候选动作片段进行位置修正,得到多个修正后的候选动作片段;基于多个修正后的候选动作片段,确定目标视频的识别结果;如此,通过对多个候选动作片段进行位置修正,能够使得用来识别目标视频的候选动作片段的动作边界更准确,有助于提高识别出的候选动作片段的动作类型的准确性,从而提升对视频的识别准确性。
59.在一些实施例中,获取目标视频的视频特征序列,包括:从目标视频中提取出每个视频单元的特征向量序列;为每个视频单元生成嵌入向量序列;基于每个视频单元的特征向量序列和嵌入向量序列,得到目标视频的视频特征序列。
60.这里,视频单元特征提取,包括:以一定的每秒传输帧数(frames per second,fps)对目标视频进行切帧,选取连续的l帧作为一个视频单元;通过交互式3d(interactive three dimensions,i3d)网络提取视频单元的特征向量(也可称为视觉表示向量),记为向量fi,i表示第i个视频单元。
61.可以理解,l的数值可根据设计需求如速度需求或精度需求进行设定或调整。
62.可以理解,提取视频单元的视觉表示向量的网络,还可以用其他能够提取视觉表示向量的模型或网络代替,在此不在列举。
63.这里,每个视频单元生成嵌入向量序列,包括:利用正余弦函数生成嵌入向量(也可称为位置向量表示),记为pi,i表示序列的第i个位置。
64.这里,第i个视频单元的视频特征序列,等于第i个视频单元的特征向量序列和第i个视频单元的嵌入向量序列的和。具体如公式(1)所示。
65.hi=pi+fiꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
66.其中,hi表示第i个视频单元的视频特征序列。
67.其中,目标视频的视频特征序列h={h1,h2,

,h
t
},t表示序列长度。
68.在一些实施例中,序列长度等于视频单元的数量。
69.如此,通过为每个视频单元生成嵌入向量序列,能够使得确定出的目标视频的视频特征序列更准确,从而有助于提升对视频的识别准确性。
70.在一些实施例中,该视频识别方法还可以包括:确定多个动作片段的第一动作标签的置信度;根据多个动作片段的第一动作标签的置信度对多个动作片段进行排序,将排名前预设数值的动作片段确定为候选动作片段。
71.这里,第一动作标签用于标识动作片段的属性。示例性的,第一动作标签用于表征
当前视频单元是否属于一个动作的一个片段。
72.这里,ai表示第i个动作片段的动作标签。ai大于等于0,小于等于1。置信度越高,表明当前视频单元属于一个动作的一个片段的可能性越大。
73.这里,预设数值的个数可根据设计需求如速度需求或精度需求进行设定或调整。
74.举例来说,目标视频包括m个动作片段,将置信度排名前k的动作片段作为候选动作片段,k<m。
75.如此,初步筛选出置信度高的动作片段作为候选动作片段,能够为后续确定目标视频的识别结果提供好的计算基础,有助于提高对视频的识别准确性。
76.在一些实施例中,该视频识别方法,还可以包括:根据多个候选动作片段的中心表示向量,确定多个修正后的候选动作片段对应的中心表示向量;根据多个修正后的候选动作片段对应的中心表示向量,确定多个修正后的候选动作片段对应的交并比(intersection over union,iou)值。
77.这里,设一个动作片段为[ts,te],取上下文窗口为w,对于开始位置的上下文序列则为[t
s-w,ts+w],结束位置的上下文序列为[t
e-w,te+w],中心序列为[t
s-w,te+w]。利用最大池化操作,对开始位置的上下文序列、结束位置的上下文序列和中心序列的特征向量进行池化,得到开始边界表示向量vs、结束边界表示向量ve和中心表示向量vc。
[0078]
如此,能够为后续从多个候选动作片段中确定出目标动作片段提供数据基础,有助于确定出更准确的、更具代表性的目标动作片段。
[0079]
在一些实施例中,该视频识别方法还可以包括:获取多个修正后的候选动作片段对应的第二动作标签的评分值;根据多个修正后的候选动作片段对应的iou值,以及第二动作标签的评分值,确定多个修正后的候选动作片段对应的置信度。
[0080]
这里,第二动作标签用于标识动作标签的类型。示例性的,第二动作标签用于表征动作片段的具体动作的标签。比如,第二动作标签包括但不限于吃饭、喝茶、跳舞、跑步、翻跟头、舞剑等。以上仅为示例性说明,不作为对第二动作标签全部可能的类型的限定,只是这里不做穷举。
[0081]
这里,候选动作片段的iou值、第二动作标签以及第二动作标签的评分值,均可通过预先训练好的第二视频识别模型来确定。后面将详细介绍第二视频识别模型的训练方法,在此不再赘述。
[0082]
这里,候选动作片段对应的置信度,等于候选动作片段对应的iou值与第二动作标签的评分值的乘积。
[0083]
如此,相对于仅根据第二工作标签的评分值确定候选动作片段的置信度而言,结合候选动作片段对应的iou值来确定候选动作片段的置信度,能够使确定出的候选动作片段对应的置信度更准确,提升确定出的目标动作片段的准确度,从而有助于提升对视频的识别准确性。
[0084]
在一些实施例中,基于多个修正后的候选动作片段,确定目标视频的识别结果,包括:根据多个修正后的候选动作片段对应的置信度,从多个修正后的候选动作片段中确定出至少一个目标动作片段;将至少一个目标动作片段的第二动作标签,作为目标视频的分类结果,识别结果包括分类结果。
[0085]
举例来说,目标视频包括m个动作片段,先将第一动作标签的置信度排名前k的动
作片段作为候选动作片段,k<m;再从m个候选动作片段中选择出第二动作标签的置信度排名前q的动作片段,作为目标动作片段,q小于等于m。
[0086]
这里,q的个数可根据设计需求如速度需求或精度需求进行设定或调整。
[0087]
举例来说,第二动作标签的置信度排名前q的动作片段,对应的第二动作标签分别记为c1、c2、

、cq,则目标视频的识别结果包括c1、c2、

、cq。
[0088]
如此,能提高目标视频的识别结果的准确性。
[0089]
在一些实施例中,基于视频特征序列,确定多个动作片段的开始位置和结束位置,包括:将视频特征序列输入第一视频识别模型,从第一视频识别模型输出的信息中确定多个动作片段的开始位置和结束位置,第一视频识别模型用于输出每个动作片段的开始位置、结束位置以及第一动作标签的置信度。
[0090]
这里,每个动作片段的开始位置、结束位置以及第一动作标签的置信度,均可通过预先训练好的第一视频识别模型来确定。后面将详细介绍第一视频识别模型的训练方法,在此不再赘述。
[0091]
如此,能够提高多个动作片段的开始位置和结束位置的确定速度,从而有助于提升视频的识别效率。
[0092]
在一些实施例中,基于多个动作片段的开始位置和结束位置,确定多个候选动作片段的边界表示向量和中心表示向量,包括:将多个动作片段的开始位置和结束位置输入第二视频识别模型,通过第二视频识别模型确定多个候选动作片段的边界表示向量和中心表示向量。对应地,基于多个候选动作片段的边界表示向量和中心表示向量,对多个候选动作片段进行位置修正,得到多个修正后的候选动作片段,包括:通过第二视频识别模型,利用多个候选动作片段的边界表示向量,对多个候选动作片段的开始位置和结束位置进行位置修正。对应地,基于多个修正后的候选动作片段,确定目标视频的识别结果,包括:通过第二视频识别模型,利用多个候选动作片段的中心表示向量预测多个修正后的候选动作片段对应的iou值、第二动作标签以及第二动作标签的评分值。
[0093]
这里,每个动作片段的修正、以及每个动作片段的第二动作标签、第二动作标签的评分值和iou值,均可通过预先训练好的第二视频识别模型来确定。后面将详细介绍第二视频识别模型的训练方法,在此不再赘述。
[0094]
如此,能够提高对多个候选动作片段的修正速度,提高对多个动作片段的第二动作标签、第二动作标签的评分值和iou值的确定速度,从而有助于提升视频的识别效率。
[0095]
下面,对视频识别模型的训练方法进行介绍。如图2所示,该流程主要包括:
[0096]
s201:获取样本视频的视频特征序列,该样本视频包括多个动作片段;
[0097]
s202:将视频特征序列输入第一视频识别模型,确定第一视频识别模型输出的样本视频中多个动作片段分别对应的开始位置、结束位置和第一动作标签;
[0098]
s203:将样本视频中多个动作片段分别对应的开始位置、结束位置和第一动作标签输入第二视频识别模型,确定第二视频识别模型输出的多个候选动作片段分别对应的iou值、第二动作标签以及第二动作标签的评分值,第二视频识别模型的分类粒度小于第一视频识别模型的分类粒度;
[0099]
s204:为第一视频识别模型构建第一损失函数,并为第二视频识别模型构建第二损失函数;
[0100]
s205:基于第一损失函数调整第一视频识别模型的参数,以及基于第二损失函数调整第二视频识别模型的参数。
[0101]
在一些实施方式中,为第一视频识别模型构建第一损失函数,包括:确定第一视频识别模型输出的样本视频中多个动作片段分别对应的开始位置的第一偏移量、结束位置的第一偏移量和第一动作标签的损失;基于第一视频识别模型输出的样本视频中多个动作片段分别对应的开始位置的第一偏移量、结束位置的第一偏移量和第一动作标签的损失,构建第一损失函数。
[0102]
在一些实施方式中,为第二视频识别模型构建第二损失函数,包括:确定第二视频识别模型输出的多个动作片段分别对应的开始位置的第二偏移量、结束位置的第二偏移量、第二动作标签的损失和iou值的损失;基于第二视频识别模型输出的多个动作片段分别对应的开始位置的第二偏移量、结束位置的第二偏移量、第二动作标签的损失和iou值的损失,构建第二损失函数。
[0103]
在一些实施方式中第一视频识别模型和第二视频识别模型的训练可以同时进行。如此,能够提升第一视频识别模型和第二视频识别模型的训练速度,也能提升第一视频识别模型和第二视频识别模型的关联程度。
[0104]
在一些实施方式中,第一视频识别模型也可先于第二视频识别模型训练,如此,由于采用已经训练好的第一视频识别模型输出开始位置、结束位置和第一动作标签,能够提高第二视频识别模型的识别效果。
[0105]
采用本实施例所述的技术方案,能够训练出第一视频识别模型和第二视频识别模型,从而为后续快速识别视频提供基础性支撑,有助于提高对视频的识别速度。
[0106]
图3示出了视频识别系统的架构示意图,如图3所示,该架构包括输入模块、粗粒度预测模块、细粒度预测模块和后处理模块四大部分。输入模块,用于获取目标视频的视频特征序列,该目标视频包括多个动作片段;粗粒度预测模块,用于基于视频特征序列,确定多个动作片段的开始位置和结束位置;细粒度预测模块,用于基于多个动作片段的开始位置和结束位置,确定多个候选动作片段的边界表示向量和中心表示向量;基于多个候选动作片段的边界表示向量和中心表示向量,对多个候选动作片段进行位置修正,得到多个修正后的候选动作片段;基于多个修正后的候选动作片段,确定目标视频的识别结果;后处理模块,用于对目标视频的识别结果进行筛选,得到目标视频的最终识别结果。在一些实施例中,输入模块,用于:从目标视频中提取出每个视频单元的特征向量序列;为每个视频单元生成嵌入向量序列;基于每个视频单元的特征向量序列和嵌入向量序列,得到目标视频的视频特征序列。
[0107]
在一些实施例中,粗粒度预测模块,用于:将视频特征序列输入第一视频识别模型,从第一视频识别模型输出的信息中确定多个动作片段的开始位置和结束位置,第一视频识别模型用于输出每个动作片段的开始位置、结束位置以及第一动作标签的置信度。
[0108]
在一些实施例中,细粒度预测模块,用于:将多个动作片段的开始位置和结束位置输入第二视频识别模型,通过第二视频识别模型确定多个候选动作片段的边界表示向量和中心表示向量;通过第二视频识别模型,利用多个候选动作片段的边界表示向量,对多个候选动作片段的开始位置和结束位置进行位置修正;通过第二视频识别模型,利用多个候选动作片段的中心表示向量预测多个修正后的候选动作片段对应的iou值、第二动作标签及
第二动作标签的评分值。
[0109]
在一些实施例中,后处理模块,用于:根据多个修正后的候选动作片段对应的iou值,以及第二动作标签的评分值,确定多个修正后的候选动作片段对应的置信度;根据多个修正后的候选动作片段对应的置信度,确定目标视频的最终识别结果。
[0110]
如图3所示,输入模块用于将视频帧按照一定的片段长度进行编码,提取视觉表示向量,结合嵌入向量,生成最终的输入特征序列。粗粒度预测模块用于基于自注意力机制(self-attention)构建特征金字塔网络,利用特征金字塔网络对输入特征序列进行编码,并预测每个动作片段的开始位置偏移、结束位置偏移和该位置是否属于一个动作片段。细粒度预测模块用于利用粗粒度预测模块预测的开始位置和结束位置,获取动作片段的边界表示向量和中心表示向量,通过边界表示向量对粗粒度预测模块预测出的开始位置和结束位置进行细粒度修正,同时,利用中心表示向量预测该动作片段的iou值和细粒度的动作分类。后处理模块用于对细粒度预测模块预测出的动作片段,利用目标检测算法如soft-nms进行过滤,去除冗余的动作片段,得到目标动作片段。
[0111]
假设一个视频有n个动作片段,记为{si,ei,ai},i∈{1,2,

,n}。其中si表示第i个动作片段的开始位置,ei表示第i个动作片段的结束位置,ai第i个动作片段的动作标签,且ai∈{0,1},ai=0表示动作片段不在一个动作事件里面。ai=1表示动作片段属于一个动作片段。如图3所示,基于self-attention模块构建特征金字塔网络。具体来说,对于输入特征序列h,在特征金字塔网络第一层利用公式(2)对h进行编码:
[0112]
z1=selfattention(h)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0113]
然后,利用一维时序卷积对第一层的输出进行降采样,卷积核的尺寸为2,步长为2,具体公式如公式(3)所示:
[0114][0115]
一维卷积后的输出序列相较于输入序列长度减少为一半。特征金字塔网络共包含六层,则最后一层输出的序列长度为原始输入序列长度的1/32。之所以采用特征金字塔网络结构,是因为视频中的动作片段时间范围跨度较大,可以利用金字塔结构更好的预测动作片段的范围。在特征金字塔底层位置,感受野比较小,可以更好的预测时间范围短的片段;在特征金字塔顶层位置,感受野较大,可以更高的预测时间范围大的片段。
[0116]
计算出序列中每一个位置距离最近的动作片段的开始和结束位置的偏移量{ds,de},若该位置位于一个动作片段中,则动作标签a记为1,否则记为0。对特征金字塔网络每一层的每一个位置利用全连接层进行映射,输出预测的开始和结束位置偏移量和动作标签,记为对偏移量采用l1损失,对动作标签采用交叉熵损失,分别如公式(4)和(5)所示:
[0117][0118][0119]
总的损失为两者之和:
[0120]
l=lr+lcꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0121]
对于粗粒度预测模块,在预测阶段,输出每一个位置预测的偏移量和动作标签,根
据标签的置信度对预测的动作片段进行排序,选取排名前k个动作片段作为候选动作片段。
[0122]
粗粒度预测模块是利用每个位置的表示向量预测动作片段的边界范围,没有很好的利用边界信息,会导致边界预测范围不准。因此,采用细粒度预测模块,通过获取动作片段的边界信息,对粗粒度预测模块预测的边界范围进行细粒度的修正,从而能提高预测准确率。
[0123]
设粗粒度预测模块输出的一个动作片段为[ts,te],取上下文窗口为w,对于开始位置的上下文序列则为[t
s-w,ts+w],结束位置的上下文序列为[t
e-w,te+w],中心序列为[t
s-w,te+w]。利用最大池化操作对开始上下文序列、结束上下文序列和中心序列的特征向量进行池化,获取开始边界表示向量、结束边界表示向量和中心表示向量,分别记为vs,ve,vc。
[0124]
对粗粒度模块预测的动作片段,记其与最靠近的人工标注的真实的动作片段的交并比为iou(也可记为iou),开始位置和结束位置的偏移量分别为{ds,de},动作标签为y,y∈{0,1,

,f},f为预先定义的动作类型数量,0表示该片段不包含动作事件。利用全连接层对vs,ve,vc进行映射,输出模型的预测结果,分别为:
[0125][0126][0127][0128][0129]
该模块的损失函数包含四个部分,分别是开始位置和结束位置偏移量的l1损失,交并比的l1损失,动作标签的分类交叉熵损失。l1损失为:
[0130][0131]
动作标签的分类损失为:
[0132][0133]
总损失为两者之和,即公式(11)中的lr和公式(12)中的lc之和。
[0134]
在预测阶段,按照模型输出的iou值对所有的修正动作片段进行排序,取iou值大于一定阈值的作为输出的候选动作片段。
[0135]
经过细粒度预测模块,模型往往会生成大量的冗余动作片段。为了消除冗余信息,该后处理模块将细粒度预测模块输出的动作分类评分(score)和iou值的乘积作为动作片段最终的置信度,利用soft-nms算法依据该置信度对所有的动作片段进行过滤,消除重叠度较大的片段。
[0136]
通过上述架构,给出了结合粗粒度预测模块和细粒度预测模块的片段式动作事件识别方案,采用粗粒度和细粒度结合的方式可以使得动作片段边界的识别更加精准,有利于加深对视频的理解。
[0137]
应理解,图3所示的架构示意图仅仅是示例性而不是限制性的,并且其是可扩展的,本领域技术人员可以基于图3的例子进行各种显而易见的变化和/或替换,得到的技术方案仍属于本公开实施例的公开范围。
[0138]
本公开提供的视频识别方法,可以用于视频分类、视频推荐或视频理解等项目中。
[0139]
本公开实施例提供了一种视频识别装置,如图4所示,该视频处理装置可以包括:获取单元401,用于获取目标视频的视频特征序列,该目标视频包括多个动作片段;第一确定单元402,用于基于视频特征序列,确定多个动作片段的开始位置和结束位置;第二确定单元403,用于基于多个动作片段的开始位置和结束位置,确定多个候选动作片段的边界表示向量和中心表示向量;修正单元404,用于基于多个候选动作片段的边界表示向量和中心表示向量,对多个候选动作片段进行位置修正,得到多个修正后的候选动作片段;识别单元405,用于基于多个修正后的候选动作片段,确定目标视频的识别结果。
[0140]
在一些实施例中,该获取单元401,包括:提取子单元,用于从目标视频中提取出每个视频单元的特征向量序列;生成子单元,用于为每个视频单元生成嵌入向量序列;获取子单元,用于基于每个视频单元的特征向量序列和嵌入向量序列,得到目标视频的视频特征序列。
[0141]
在一些实施例中,该视频识别装置,还可包括:第三确定单元406(图中未示出),用于确定多个动作片段的第一动作标签的置信度;根据多个动作片段的第一动作标签的置信度对多个动作片段进行排序,将排名前预设数值的动作片段确定为候选动作片段。
[0142]
在一些实施例中,该视频识别装置,还可包括:第四确定单元407(图中未示出),用于根据多个候选动作片段的中心表示向量,确定多个修正后的候选动作片段对应的中心表示向量;根据多个修正后的候选动作片段对应的中心表示向量,确定多个修正后的候选动作片段对应的iou值。
[0143]
在一些实施例中,该视频识别装置,还可包括:第五确定单元408(图中未示出),用于获取多个修正后的候选动作片段对应的第二动作标签的评分值;根据多个修正后的候选动作片段对应的iou值,以及第二动作标签的评分值,确定多个修正后的候选动作片段对应的置信度。
[0144]
在一些实施例中,该识别单元405,包括:确定子单元,用于根据多个修正后的候选动作片段对应的置信度,从多个修正后的候选动作片段中确定出至少一个目标动作片段;识别子单元,用于将至少一个目标动作片段的第二动作标签,作为目标视频的分类结果,识别结果包括分类结果。
[0145]
在一些实施例中,该第一确定单元402,包括:第一输入子单元,用于将视频特征序列输入第一视频识别模型;第二确定子单元,用于从第一视频识别模型输出的信息中确定多个动作片段的开始位置和结束位置,第一视频识别模型用于输出每个动作片段的开始位置、结束位置以及第一动作标签的置信度。
[0146]
在一些实施例中,该第二确定单元403,包括:第二输入子单元,用于将多个动作片段的开始位置和结束位置输入第二视频识别模型;第三确定子单元,用于通过第二视频识别模型确定多个候选动作片段的边界表示向量和中心表示向量。
[0147]
在一些实施例中,该修正单元404,包括:修正子单元,用于通过第二视频识别模型,利用多个候选动作片段的边界表示向量,对多个候选动作片段的开始位置和结束位置进行位置修正;
[0148]
在一些实施例中,该识别单元405,包括:预测子单元,用于通过第二视频识别模型,利用多个候选动作片段的中心表示向量预测多个修正后的候选动作片段对应的iou值、第二动作标签以及第二动作标签的评分值。
[0149]
本领域技术人员应当理解,本公开实施例的视频识别装置中各处理模块的功能,可参照前述的视频识别方法的相关描述而理解,本公开实施例的视频识别装置中各处理模块,可通过实现本公开实施例所述的功能的模拟电路而实现,也可以通过执行本公开实施例所述的功能的软件在电子设备上的运行而实现。
[0150]
本公开实施例的视频识别装置,能够提升对视频的识别准确性。
[0151]
本公开实施例提供了一种视频识别模型的训练装置,如图5所示,该视频处理装置可以包括:获得单元501,用于获取样本视频的视频特征序列,该样本视频包括多个动作片段;第六确定单元502,用于将视频特征序列输入第一视频识别模型,确定第一视频识别模型输出的样本视频中多个动作片段分别对应的开始位置、结束位置和第一动作标签;第七确定单元503,用于将样本视频中多个动作片段分别对应的开始位置、结束位置和第一动作标签输入第二视频识别模型,确定第二视频识别模型输出的多个候选动作片段分别对应的iou值、第二动作标签以及第二动作标签的评分值,第二视频识别模型的分类粒度小于第一视频识别模型的分类粒度;构建单元504,用于为第一视频识别模型构建第一损失函数,并为第二视频识别模型构建第二损失函数;训练单元505,用于基于第一损失函数调整第一视频识别模型的参数,以及基于第二损失函数调整第二视频识别模型的参数。
[0152]
在一些实施方式中,构建单元504,用于:确定第一视频识别模型输出的样本视频中多个动作片段分别对应的开始位置的第一偏移量、结束位置的第一偏移量和第一动作标签的损失;基于第一视频识别模型输出的样本视频中多个动作片段分别对应的开始位置的第一偏移量、结束位置的第一偏移量和第一动作标签的损失,构建第一损失函数。
[0153]
在一些实施方式中,构建单元504,还用于:确定第二视频识别模型输出的多个动作片段分别对应的开始位置的第二偏移量、结束位置的第二偏移量、第二动作标签的损失和iou值的损失;基于第二视频识别模型输出的多个动作片段分别对应的开始位置的第二偏移量、结束位置的第二偏移量、第二动作标签的损失和iou值的损失,构建第二损失函数。
[0154]
在一些实施方式中第一视频识别模型和第二视频识别模型的训练可以同时进行。如此,能够提升第一视频识别模型和第二视频识别模型的训练速度,也能提升第一视频识别模型和第二视频识别模型的关联程度。
[0155]
在一些实施方式中,第一视频识别模型也可先于第二视频识别模型训练。如此,由于采用已经训练好的第一视频识别模型输出开始位置、结束位置和第一动作标签,能够提高第二视频识别模型的训练速度和识别效果。
[0156]
本领域技术人员应当理解,本公开实施例的视频识别模型的训练装置中各处理模块的功能,可参照前述的视频识别模型的训练方法的相关描述而理解,本公开实施例的视频识别模型的训练装置中各处理模块,可通过实现本公开实施例所述的功能的模拟电路而实现,也可以通过执行本公开实施例所述的功能的软件在电子设备上的运行而实现。
[0157]
本公开实施例的视频识别装置,能够训练出第一视频识别模型和第二视频识别模型,从而为后续快速识别视频提供基础性支撑,有助于提高对视频的识别速度。
[0158]
图6示出了视频识别的场景示意图,从图6可以看出,电子设备如云服务器接收来自各终端发送的视频识别请求,电子设备确定每个视频的视频特征序列,将视频特征序列输入第一视频识别模型,得到第一视频识别模型输出的样本视频中多个动作片段分别对应的开始位置、结束位置和第一动作标签;将多个动作片段分别对应的开始位置、结束位置和
第一动作标签输入第二视频识别模型,得到第二视频识别模型输出的多个候选动作片段分别对应的iou值、第二动作标签以及第二动作标签的评分值,第二视频识别模型的分类粒度小于第一视频识别模型的分类粒度;基于第二视频识别模型输出的多个候选动作片段分别对应的iou值、第二动作标签以及第二动作标签的评分值,确定视频的识别结果。
[0159]
下面列举几个场景。比如,视频推荐系统接收到视频r后,先对视频r进行识别,根据视频r的识别结果存储视频r。在接收到关于视频r的推荐请求时,输出视频r的分类结果。又比如,视频检索系统爬取到视频v,先对视频v进行识别,根据视频v的识别结果存储视频v。再比如,视频查询系统接收到视频j的分类查询请求,对视频j进行识别,返回视频j的分类结果。
[0160]
应理解,图6所示的场景图仅仅是示意性而非限制性的,本领域技术人员可以基于图6的例子进行各种显而易见的变化和/或替换,得到的技术方案仍属于本公开实施例的公开范围。
[0161]
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0162]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0163]
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0164]
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(read-only memory,rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(random access memory,ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(input/output,i/o)接口705也连接至总线704。
[0165]
设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0166]
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(central processing unit,cpu)、图形处理单元(graphics processing unit,gpu)、各种专用的人工智能(artificial intelligence,ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(digital signal processor,dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如视频识别方法。例如,在一些实施例中,视频识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而
被载入和/或安装到设备700上。当计算机程序加载到ram 703并由计算单元701执行时,可以执行上文描述的视频识别方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行视频识别方法。
[0167]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(field programmable gate array,fpga)、专用集成电路(application specific integrated circuit,asic)、专用标准产品(application-specific standard products,assp)、芯片上系统的系统(system on chip,soc)、负载可编程逻辑设备(complex programmable logic device,cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0168]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0169]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器、只读存储器、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、快闪存储器、光纤、便捷式紧凑盘只读存储器(compact disk read only memory,cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0170]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管(cathode ray tube,crt)或者液晶显示器(liquid crystal display,lcd)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
[0171]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数
字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(local area network,lan)、广域网(wide area network,wan)和互联网。
[0172]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端和服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0173]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0174]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1