一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种视频分类模型的训练方法及相关装置与流程

2021-10-24 05:12:00 来源:中国专利 TAG:人工智能 装置 模型 训练 方法


1.本技术涉及人工智能技术领域,尤其涉及一种视频分类模型的训练方法及相关装置。


背景技术:

2.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
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.在一种可能的实现方式中,所述第一视频数据是基于所述第一数据集中的每个视
频数据的分类精度确定的。
31.在一种可能的实现方式中,所述第一时序特征是所述第一模型对所述待训练数据的空间维度特征进行压缩后得到的;
32.所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行压缩后得到的。
33.在一种可能的实现方式中,所述第一时序特征是由第一特征和第二特征串接得到的,所述第一特征是所述第一模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第二特征是所述第一模型对所述待训练数据的高度维度特征执行池化操作得到的;
34.或者,
35.所述第二时序特征是由第三特征和第四特征串接得到的,所述第三特征是所述第二模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第四特征是所述第二模型对所述待训练数据的高度维度特征执行池化操作得到的。
36.在一种可能的实现方式中,所述第一空间特征是所述第一模型对第五特征的时间维度特征执行池化操作后得到的,所述第五特征是所述第一模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的;
37.或者,
38.所述第二空间特征是所述第二模型对第六特征的时间维度特征执行池化操作后得到的,所述第六特征是所述第二模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的。
39.在一种可能的实现方式中,所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行池化操作后得到的;
40.或者,
41.所述第二空间特征是所述第二模型对所述待训练数据的时间维度特征进行池化操作后得到的。
42.在一种可能的实现方式中,所述第二数据集中的视频数据的类别与所述第一数据集中的视频数据的类别不相同。
43.在一种可能的实现方式中,所述第三模型是以所述第一模型为教师网络、所述第二模型为学生网络,根据所述第一损失函数、所述第二损失函数和第三损失函数对所述第二模型进行知识蒸馏得到的,所述第三损失函数是基于分类结果和所述待训练数据的真实类别确定的,所述分类结果是将所述待训练数据输入所述第二模型后得到的。
44.本技术第三方面提供一种训练装置,包括获取单元和处理单元;所述获取单元,用于获取待训练数据;所述获取单元,还用于获取第一模型和第二模型;所述处理单元,用于将所述待训练数据分别输入所述第一模型和所述第二模型,以获取所述第一模型提取的第一时序特征和第一空间特征以及所述第二模型提取的第二时序特征和第二空间特征;所述处理单元,还用于以所述第一模型为教师网络,根据第一损失函数和第二损失函数,对所述第二模型进行知识蒸馏,以更新所述第二模型,其中,所述第一损失函数是基于所述第一时序特征和所述第二时序特征得到的,所述第二损失函数是基于所述第一空间特征和所述第二空间特征得到的。
45.在一种可能的实现方式中,所述待训练数据包括第一数据集和第二数据集,所述第一模型为基于所述第一数据集训练的视频分类模型。
46.在一种可能的实现方式中,所述获取单元,还用于获取所述第一数据集中的第一视频数据;所述处理单元,还用于确定所述第一视频数据中的多个关键帧,以得到第二视频数据,所述多个关键帧用于表征所述第一视频数据中的对象的运动信息;所述处理单元,还用于基于所述第二视频数据和所述第二数据集,得到所述待训练数据。
47.在一种可能的实现方式中,所述多个关键帧中任意两个相邻的关键帧之间的差异值大于或等于预设阈值。
48.在一种可能的实现方式中,所述获取单元,还用于获取第一数据集中的每个视频数据的分类精度;所述处理单元,还用于基于所述第一数据集中的每个视频数据的分类精度,确定所述第一视频数据。
49.在一种可能的实现方式中,所述第一时序特征是所述第一模型对所述待训练数据的空间维度特征进行压缩后得到的;所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行压缩后得到的。
50.在一种可能的实现方式中,所述第一时序特征是由第一特征和第二特征串接得到的,所述第一特征是所述第一模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第二特征是所述第一模型对所述待训练数据的高度维度特征执行池化操作得到的;
51.或者,
52.所述第二时序特征是由第三特征和第四特征串接得到的,所述第三特征是所述第二模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第四特征是所述第二模型对所述待训练数据的高度维度特征执行池化操作得到的。
53.在一种可能的实现方式中,所述第一空间特征是所述第一模型对第五特征的时间维度特征执行池化操作后得到的,所述第五特征是所述第一模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的;
54.或者,
55.所述第二空间特征是所述第二模型对第六特征的时间维度特征执行池化操作后得到的,所述第六特征是所述第二模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的。
56.在一种可能的实现方式中,所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行池化操作后得到的;
57.或者,
58.所述第二空间特征是所述第二模型对所述待训练数据的时间维度特征进行池化操作后得到的。
59.在一种可能的实现方式中,所述第二数据集中的视频数据的类别与所述第一数据集中的视频数据的类别不相同。
60.在一种可能的实现方式中,所述处理单元,还用于:将所述待训练数据输入第二模型,得到所述第二模型输出的分类结果;基于所述分类结果和所述待训练数据的真实类别,确定第三损失函数;根据所述第一损失函数、所述第二损失函数和所述第三损失函数,对所
述第二模型进行知识蒸馏,以更新所述第二模型。
61.本技术第四方面提供一种视频分类装置,包括获取单元和处理单元;所述获取单元,用于获取待分类视频;所述处理单元,用于将所述待分类视频输入第二模型,得到分类结果;其中,所述第二模型是以第一模型为教师网络,根据第一损失函数和第二损失函数进行知识蒸馏得到的,所述第一损失函数是基于第一时序特征和第二时序特征得到的,所述第二损失函数是基于第一空间特征和第二空间特征得到的,所述第一时序特征和所述第一空间特征是将待训练数据输入第一模型后得到的,所述第二时序特征和所述第二空间特征是将所述待训练数据输入所述第二模型后得到的。
62.在一种可能的实现方式中,所述待训练数据包括第一数据集和第二数据集,所述第一模型为基于所述第一数据集训练的视频分类模型。
63.在一种可能的实现方式中,所述待训练数据是基于第二视频数据和所述第二数据集得到的,所述第二视频数据包括多个关键帧,所述多个关键帧是基于第一视频数据得到的,所述多个关键帧用于表征所述第一视频数据中的对象的运动信息,所述第一视频数据属于所述第一数据集。
64.在一种可能的实现方式中,所述多个关键帧中任意两个相邻的关键帧之间的差异值大于或等于预设阈值。
65.在一种可能的实现方式中,所述第一视频数据是基于所述第一数据集中的每个视频数据的分类精度确定的。
66.在一种可能的实现方式中,所述第一时序特征是所述第一模型对所述待训练数据的空间维度特征进行压缩后得到的;所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行压缩后得到的。
67.在一种可能的实现方式中,所述第一时序特征是由第一特征和第二特征串接得到的,所述第一特征是所述第一模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第二特征是所述第一模型对所述待训练数据的高度维度特征执行池化操作得到的;
68.或者,
69.所述第二时序特征是由第三特征和第四特征串接得到的,所述第三特征是所述第二模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第四特征是所述第二模型对所述待训练数据的高度维度特征执行池化操作得到的。
70.在一种可能的实现方式中,所述第一空间特征是所述第一模型对第五特征的时间维度特征执行池化操作后得到的,所述第五特征是所述第一模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的;
71.或者,
72.所述第二空间特征是所述第二模型对第六特征的时间维度特征执行池化操作后得到的,所述第六特征是所述第二模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的。
73.在一种可能的实现方式中,所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行池化操作后得到的;
74.或者,
75.所述第二空间特征是所述第二模型对所述待训练数据的时间维度特征进行池化操作后得到的。
76.在一种可能的实现方式中,所述第二数据集中的视频数据的类别与所述第一数据集中的视频数据的类别不相同。
77.在一种可能的实现方式中,所述第三模型是以所述第一模型为教师网络、所述第二模型为学生网络,根据所述第一损失函数、所述第二损失函数和第三损失函数对所述第二模型进行知识蒸馏得到的,所述第三损失函数是基于分类结果和所述待训练数据的真实类别确定的,所述分类结果是将所述待训练数据输入所述第二模型后得到的。
78.本技术第五方面提供了一种电子设备,可以包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面或第二方面所述的方法。对于处理器执行第一方面或第二方面的各个可能实现方式中的步骤,具体均可以参阅第一方面或第二方面,此处不再赘述。
79.本技术第六方面提供了一种服务器,可以包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面或第二方面所述的方法。对于处理器执行第一方面或第二方面的各个可能实现方式中的步骤,具体均可以参阅第一方面或第二方面,此处不再赘述。
80.本技术第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
81.本技术第八方面提供了一种电路系统,所述电路系统包括处理电路,所述处理电路配置为执行上述第一方面或第二方面所述的方法。
82.本技术第九方面提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
83.本技术第十方面提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器或门限值获取装置实现上述第一方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
84.图1为人工智能主体框架的一种结构示意图;
85.图2为本技术实施例提供的卷积神经网络的示意图;
86.图3为本技术实施例提供的卷积神经网络的示意图;
87.图4为本技术实施例提供的一种系统架构的示意图;
88.图5为本技术实施例提供的一种视频分类模型的训练方法500的流程示意图;
89.图6a为本技术实施例提供的一种提取视频数据的特征的示意图;
90.图6b为本技术实施例提供的一种提取视频数据的时序特征的示意图;
91.图6c为本技术实施例提供的一种提取视频数据的空间特征的示意图;
92.图7为本技术实施例提供的一种池化操作的示意图;
93.图8为本技术实施例提供的一种在视频数据中选择关键帧的示意图;
94.图9为本技术实施例提供的一种训练视频分类模型的流程示意图;
95.图10为本技术实施例提供的视频理解平台的工作流程示意图;
96.图11为本技术提供的测试结果的对比示意图;
97.图12为本技术实施例提供的一种训练装置的结构示意图;
98.图13为本技术实施例提供的一种视频分类装置的结构示意图;
99.图14为本技术实施例提供的执行设备的一种结构示意图;
100.图15为本技术实施例提供的芯片的一种结构示意图。
具体实施方式
101.下面结合附图,对本技术的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
102.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
103.首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
104.(1)基础设施。
105.基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(cpu、npu、gpu、asic、fpga等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
106.(2)数据。
107.基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
108.(3)数据处理。
109.数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
110.其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
111.推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
112.决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
113.(4)通用能力。
114.对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
115.(5)智能产品及行业应用。
116.智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能电子设备、智能交通、智能医疗、自动驾驶、智慧城市等。
117.下面从模型训练侧和模型应用侧对本技术提供的方法进行描述:
118.本技术实施例提供的模型训练方法,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的神经网络模型(如本技术实施例中的目标神经网络模型);并且目标神经网络模型可以用于进行模型推理,具体可以将输入数据输入到目标神经网络模型中,得到输出数据。
119.由于本技术实施例涉及大量神经网络的应用,为了便于理解,下面先对本技术实施例涉及的相关术语及神经网络等相关概念进行介绍。
120.(1)神经网络。
121.神经网络可以是由神经单元组成的,神经单元可以是指以xs(即输入数据)和截距1为输入的运算单元,该运算单元的输出可以为:
[0122][0123]
其中,s=1、2、
……
n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0124]
(2)卷积神经网络(convosutionas neuras network,cnn)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层(例如本实施例中的第一卷积层、第二卷积层)。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权
重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
[0125]
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
[0126]
具体的,如图2所示,卷积神经网络(cnn)100可以包括输入层110,卷积层/池化层120,其中池化层为可选的,以及神经网络层130。
[0127]
其中,卷积层/池化层120以及神经网络层130组成的结构可以为本技术中所描述的第一卷积层以及第二卷积层,输入层110和卷积层/池化层120连接,卷积层/池化层120连接与神经网络层130连接,神经网络层130的输出可以输入至激活层,激活层可以对神经网络层130的输出进行非线性化处理。
[0128]
卷积层/池化层120。卷积层:如图2所示卷积层/池化层120可以包括如示例121

126层,在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
[0129]
以卷积层121为例,卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用维度相同的多个权重矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化
……
该多个权重矩阵维度相同,经过该多个维度相同的权重矩阵提取后的特征图维度也相同,再将提取到的多个维度相同的特征图合并形成卷积运算的输出。
[0130]
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以从输入图像中提取信息,从而帮助卷积神经网络100进行正确的预测。
[0131]
当卷积神经网络100有多个卷积层的时候,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义
越高的特征越适用于待解决的问题。
[0132]
池化层:由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图2中120所示例的121

126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。
[0133]
神经网络层130:在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层120只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或别的相关信息),卷积神经网络100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层130中可以包括多层隐含层(如图2所示的131、132至13n)以及输出层140,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
[0134]
在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140,该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络100的前向传播(如图2由110至140的传播为前向传播)完成,反向传播(如图2由140至110的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络100的损失及卷积神经网络100通过输出层输出的结果和理想结果之间的误差。
[0135]
需要说明的是,如图2所示的卷积神经网络100仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,例如,如图3所示的多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。
[0136]
(3)深度神经网络。
[0137]
深度神经网络(deep neural network,dnn),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i 1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,则系数w和偏移向量的数量也就很多了。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第l

1层的第k个神经元到第l层的第j个神经元的系数定义为需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0138]
(4)损失函数。
[0139]
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
[0140]
(5)反向传播算法。
[0141]
卷积神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
[0142]
(6)线性操作。
[0143]
线性是指量与量之间按比例、成直线的关系,在数学上可以理解为一阶导数为常数的函数,线性操作可以但不限于为加和操作、空操作、恒等操作、卷积操作、批归一化bn操作以及池化操作。线性操作也可以称之为线性映射,线性映射需要满足两个条件:齐次性和可加性,任一个条件不满足则为非线性。
[0144]
其中,齐次性是指f(ax)=af(x);可加性是指f(x y)=f(x) f(y);例如,f(x)=ax就是线性的。需要注意的是,这里的x、a、f(x)并不一定是标量,可以是向量或者矩阵,形成任意维度的线性空间。如果x、f(x)为n维向量,当a为常数时,就是等价满足齐次性,当a为矩阵时,则等价满足可加性。相对而言,函数图形为直线的不一定符合线性映射,比如f(x)=ax b,既不满足齐次性也不满足可加性,因此属于非线性映射。
[0145]
本技术实施例中,多个线性操作的复合可以称之为线性操作,线性操作中包括的各个线性操作也可以称之为子线性操作。
[0146]
(7)知识蒸馏。
[0147]
知识蒸馏是迁移学习中的一种方法。知识蒸馏是通过采用预先训练好的模型的输出作为监督信号去训练另外一个网络。简单来说,知识蒸馏就是以预先训练好的网络作为教师网络,以待训练的网络作为学生网络,通过老师网络的指导,对学生网络进行训练,以使得学生网络可以具有和老师网络相同或相似的数据处理能力。通常,教师网络可以为复杂的网络模型,学生网络则可以为简单的网络模型;通过知识蒸馏,能够将复杂的网络模型所学习到的特征表示知识传递给简单的网络模型。
[0148]
图4是本技术实施例提供的一种系统架构的示意图,在图4中,执行设备110配置输入/输出(input/output,i/o)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向i/o接口112输入数据。
[0149]
在执行设备120对输入数据进行预处理,或者在执行设备120的计算模块111执行
计算等相关的处理(比如进行本技术中神经网络的功能实现)过程中,执行设备120可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
[0150]
最后,i/o接口112将处理结果返回给客户设备140,从而提供给用户。
[0151]
可选地,客户设备140,例如可以是自动驾驶系统中的控制单元、手机电子设备中的功能算法模块,例如该功能算法模块可以用于实现相关的任务。
[0152]
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则(例如本实施例中的目标神经网络模型),该相应的目标模型/规则即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
[0153]
在图4中所示情况下,用户可以手动给定输入数据,该手动给定可以通过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。
[0154]
值得注意的是,图4仅是本技术实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图4中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。
[0155]
本技术实施例所提供的视频分类模型的训练方法可以应用于电子设备上,尤其是需要对视频执行分类的电子设备。示例性地,该电子设备例如可以是服务器、智能手机(mobile phone)、个人电脑(personal computer,pc)、笔记本电脑、平板电脑、智慧电视、移动互联网设备(mobile internet device,mid)、可穿戴设备,虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。
[0156]
以本技术实施例所提供的视频分类模型的训练方法应用于服务器上为例,服务器上布署有视频理解平台和社交媒体平台。服务器中的视频理解平台可以基于视频分类模型,对获取到的视频数据进行分类,从而产生与该视频数据对应的分类标签。然后,服务器中的视频理解平台可以将视频数据以及该视频数据对应的分类标签传输给社交媒体平台,以实现在社交媒体平台分类展示视频数据。
[0157]
在服务器中的视频理解平台获取到新的视频数据,且新的视频数据与旧的视频数据差异较大时,服务器可以执行本技术实施例所提供的视频分类模型的训练方法,训练得到新的视频分类模型。在训练得到新的视频分类模型后,服务器继续基于新的视频分类模型对获取到的视频数据进行分类。
[0158]
为便于理解,以下先对本技术实施例所提供的视频分类模型的训练方法的训练思
路进行解释。
[0159]
本技术实施例中,电子设备是采用知识蒸馏的方式,来实现视频分类模型的训练。其中,知识蒸馏是以预先训练好的网络作为教师网络,以待训练的网络作为学生网络,通过老师网络的指导,对学生网络进行训练,以使得学生网络可以具有和老师网络相同或相似的数据处理能力。
[0160]
具体地,在本技术实施例中,电子设备以基于旧的视频数据训练得到的视频分类模型为老师网络,以待训练的视频分类模型为学生网络。并且,电子设备基于旧的视频数据和新的视频数据,将老师网络所提取的视频数据的时序特征和空间特征作为监督信号来训练学生网络,实现学生网络的快速训练。
[0161]
可以参阅图5,图5为本技术实施例提供的一种视频分类模型的训练方法500的流程示意图。如图5所示,该方法500包括以下的步骤501

步骤506。
[0162]
步骤501,获取待训练数据。
[0163]
本实施例中,在执行视频分类模型的训练之前,电子设备先获取用于对视频分类模型进行训练的待训练数据。其中,待训练数据可以是基于第一数据集和第二数据集得到的,第一数据集和第二数据集中均包括有多个视频数据。第一数据集中的视频数据为旧的视频数据,即电子设备已经基于第一数据集中的视频数据进行了模型训练,并得到了相应的视频分类模型。第二数据集中的视频数据为电子设备新获取到的视频数据(即新的视频数据),且电子设备需要基于第二数据集训练新的视频分类模型,以得到对新的视频数据和旧的视频数据均具有较高分类精度的视频分类模型。
[0164]
在一个可能的实施例中,第二数据集中的视频数据的类别可以是与第一数据集中的视频数据的类别相同。例如,第一数据集中的视频数据的类别包括美食类、体育类、新闻类以及生活类;第二数据集中的视频数据的类别也是包括美食类、体育类、新闻类以及生活类,或者,第二数据集中的视频数据的类别仅包括美食类或体育类。也就是说,对于第二数据集中的任意一个视频数据,都能够在第一数据集中找到相同类别的视频数据。
[0165]
但是,第二数据集中的视频数据的内容与第一数据集中的视频数据的内容存在较大的差异,因此采用基于第一数据集训练得到的视频分类模型难以准确对第二数据集中的视频数据进行分类。
[0166]
例如,对于第一数据集中属于美食类的视频数据而言,这部分视频数据的内容主要是从食物的角度,呈现食物在烹饪前的处理过程、食物的烹饪过程中以及食物在烹饪后的形态。然而,对于新获取到的第二数据集而言,第二数据集中属于美食类的视频数据则主要是从人品尝食物的角度,来呈现各种各样的食物。显然,虽然第一数据集中的部分视频数据和第二数据集中的部分视频数据都是属于美食类,但是这两部分视频数据的内容差异较大,因此采用基于第一数据集训练得到的视频分类模型难以准确对第二数据集中的视频数据进行分类。
[0167]
在另一个可能的实施例中,第二数据集中的视频数据的类别与第一数据集中的视频数据的类别不相同。也就是说,相较于第一数据集而言,第二数据集中的视频数据的类别都是新的类别。第二数据集中的部分或全部视频数据所属的类别在第一数据集中是不存在的。例如,第二数据集中的视频数据所属的类别包括娱乐类和数码类;而第一数据集中的视频数据所属的类别则包括美食类、体育类、新闻类以及生活类。
[0168]
在第二数据集中的视频数据的类别与第一数据集中的视频数据的类别不相同的情况下,基于第一数据集训练得到的视频分类模型只能够识别第一数据集对应的视频类别,显然无法对第二数据集中的视频数据进行分类。
[0169]
步骤502,获取第一模型和第二模型。
[0170]
其中,第一模型为基于第一数据集训练得到的模型,即第一模型是旧的视频分类模型。在对第一数据中的视频数据进行分类时,第一模型能够具有较高的分类精度。第二模型为待训练的模型。第一模型用于作为教师网络来训练作为学生网络的第二模型。
[0171]
步骤503,将所述待训练数据分别输入所述第一模型和所述第二模型,以获取所述第一模型提取的第一时序特征和第一空间特征以及所述第二模型提取的第二时序特征和第二空间特征。
[0172]
对于视频数据而言,视频数据是由多帧连续的图像构成的。因此,相较于只具有三个维度的图像特征,视频数据的特征通常包括四个维度,分别为:时间维度(t)、通道维度(c)、高度维度(h)和宽度维度(w)。其中,高度维度和宽度维度属于视频数据的空间维度。也就是说,除了图像帧所具有的空间维度之外,视频数据的特征还具有时间维度。示例性地,可以参阅图6a,图6a为本技术实施例提供的一种提取视频数据的特征的示意图。如图6a所示,将包括多帧图像的视频输入第一模型后,第一模型提取得到视频数据的特征。该视频数据的特征矩阵可以表示为x,x∈[t,c,h,w]。
[0173]
因此,本实施例中,第一模型在提取得到所输入的待训练数据的特征之后,对待训练数据的空间维度特征进行压缩,得到第一时序特征。即,第一模型对待训练数据的特征中属于空间维度的高度维度特征和宽度维度特征进行压缩,从而得到第一时序特征。第一时序特征中包括时间维度的特征和通道维度的特征。示例性地,可以参阅图6b,图6b为本技术实施例提供的一种提取视频数据的时序特征的示意图。如图6b所示,在得到视频数据的特征之后,通过对视频数据的特征中的空间特征进行压缩,得到第一时序特征。第一时序特征的矩阵可以表示为x1,x1∈[t,c]。
[0174]
类似地,第一模型对待训练数据的时间维度特征进行压缩,得到第一空间特征。第一时序特征中只包括通道维度特征和空间维度的特征,即通道维度特征、高度维度特征和宽度维度特征。示例性地,可以参阅图6c,图6c为本技术实施例提供的一种提取视频数据的空间特征的示意图。如图6c所示,在得到视频数据的特征之后,通过对视频数据的特征中的时序特征进行压缩,得到第一空间特征。第一空间特征的矩阵可以表示为x2,x2∈[c,h,w]。
[0175]
其中,第一模型可以是基于深度学习的神经网络模型,例如卷积神经网络(convolutional neural networks,cnn)。本实施例并不对第一模型的类型做具体限定。
[0176]
此外,第一时序特征和第一空间特征所对应的输入数据是相同的,即第一时序特征和第一空间特征是电子设备将同一个视频数据输入第一模型中而得到的。类似地,第二时序特征和第二空间特征所对应的输入数据也是相同的。并且,第一时序特征所对应的输入数据与第二时序特征所对应的输入数据也是相同的。
[0177]
简单来说,电子设备将待训练数据中的同一个视频数据输入至第一模型和第二模型中,分别得到了第一模型的中间层所输出的第一时序特征和第一空间特征,以及第二模型的中间层所输出的第二时序特征和第二空间特征。
[0178]
类似地,所述第二时序特征是所述第二模型对所述待训练数据的空间维度特征进
行压缩后得到的;所述第二空间特征是所述第二模型对所述待训练数据的时间维度特征进行压缩后得到的。
[0179]
可选的,第二模型可以是基于第一模型得到的。示例性地,在第二数据集中的视频数据的类别与第一数据集中的视频数据的类别相同的情况下,第二模型的结构与第一模型的结构可以是相同的。电子设备通过对第一模型中的权重参数进行初始化,得到第二模型。可选的,第二模型也可以为结构更简单的模型,即第二模型的结构比第一模型的结构更为简单。
[0180]
在第二数据集中的视频数据的类别与第一数据集中的视频数据的类别不相同的情况下,第二模型的结构与第一模型的结构可以是类似的。电子设备通过对第一模型中用于预测分类结果的分支结构进行调整,从而得到第二模型。
[0181]
此外,第二模型与第一模型的结构也可以是不相同的。例如,相对于第一模型而言,第二模型的结构更为简单,是一个更为轻量化的模型。第二模型也可以是基于深度学习的神经网络模型,例如cnn。本实施例并不对第二模型的类型做具体限定。
[0182]
步骤504,以所述第一模型为教师网络,根据第一损失函数和第二损失函数,对所述第二模型进行知识蒸馏,以更新所述第二模型,其中,所述第一损失函数是基于所述第一时序特征和所述第二时序特征得到的,所述第二损失函数是基于所述第一空间特征和所述第二空间特征得到的。
[0183]
本实施例中,电子设备以所述第一模型为教师网络对第二模型进行知识蒸馏的过程可以是:电子设备基于第一损失函数和第二损失函数,确定最终的蒸馏损失函数,并且基于蒸馏损失函数对第二模型进行训练,直至达到收敛条件,以更新所述第二模型。第二模型在更新完毕后,能够用于执行新的视频数据和旧的视频数据的分类。
[0184]
其中,电子设备基于蒸馏损失函数对第二模型进行训练的过程是:电子设备基于蒸馏损失函数的值来更新第二模型中每一层神经网络的权重向量,以使得基于更新后的第二模型所得到的蒸馏损失函数的值不断减小。此外,第二模型的收敛条件可以是蒸馏损失函数的值小于第一阈值或者是第二模型的训练次数达到第二阈值。其中,第一阈值和第二阈值可以根据实际的训练情况来设置,本技术实施例并不限定第一阈值和第二阈值的取值。
[0185]
具体地,在基于第一模型和第二模型分别得到了第一时序特征和第二时序特征之后,电子设备可以基于这两个时序特征确定第一损失函数。示例性地,电子设备可以基于以下的公式1来确定第一损失函数。
[0186][0187]
其中,l
tfkd

k
)表示第一损失函数;v表示待训练数据,即视频数据;y表示待训练数据对应的分类标签;d表示第二数据集;m表示第一数据集;f
tf
(f(v;θ
k
‑1))表示第一时序特征;f
tf
(f(v;θ
k
))表示第二时序特征;k

1表示第一模型;k表示第二模型;f表示特征提取器;θ表示f的参数;|| ||2表示2

范数,是指向量元素绝对值的平方和再开方。
[0188]
类似地,在基于第一模型和第二模型分别得到了第一空间特征和第二空间特征之后,电子设备可以基于这两个空间特征确定第二损失函数。示例性地,电子设备可以基于以
下的公式2来确定第二损失函数。
[0189][0190]
其中,l
sfkd

k
)表示第二损失函数;v表示待训练数据,即视频数据;y表示待训练数据对应的分类标签;d表示第二数据集;m表示第一数据集;f
sf
(f(v;θ
k
‑1))表示第一空间特征;f
sf
(f(v;θ
k
))表示第二空间特征;k

1表示第一模型;k表示第二模型;f表示特征提取器;θ表示f的参数;|| ||2表示2

范数,是指向量元素绝对值的平方和再开方。
[0191]
示例性地,在确定第一损失函数和第二损失函数后,电子设备可以基于以下的公式3来确定蒸馏损失函数。
[0192]
l
fkd

k
)=l
sfkd

k
) αl
tfkd

k
)
ꢀꢀ
公式3
[0193]
其中,l
fkd

k
)表示蒸馏损失函数;l
tfkd

k
)表示第一损失函数;l
sfkd

k
)表示第二损失函数;α为超参数,用于平衡第一损失函数和第二损失函数的重要性。
[0194]
本实施例中,通过以旧的视频数据和新的视频数据为待训练数据,基于视频数据本身的特性,分解得到待训练数据的时序特征和空间特征,并且基于时序特征和空间特征对旧的视频分类模型进行知识蒸馏,得到新的视频分类模型。
[0195]
相较于重新从头开始训练一个新的视频分类模型,通过基于知识蒸馏的方式来得到新的视频分类模型,能够减少训练过程中的迭代轮数,降低训练新模型的计算开销。并且,由于是基于视频数据中的时序特征和空间特征来进行知识蒸馏,同时考虑了视频数据特有的时序特征和空间特征,能够保证新模型学习到视频数据的关键特征,从而确保知识蒸馏所得到的新模型具有较高的分类精度。
[0196]
在一个可能的实施例中,为了确保训练得到的第三模型的分类精度,电子设备还可以是基于第二模型所预测的分类结果确定第二模型的分类损失函数,进而基于蒸馏损失函数和分类损失函数构建第二模型的总损失函数。这样,电子设备在训练第二模型的过程中,基于总损失函数来对第二模型进行训练,保证了第二模型能够同时学习到第一模型所传递的知识以及分类知识。
[0197]
示例性地,上述实施例的方法500还可以包括以下的步骤:电子设备将所述待训练数据输入第二模型,得到所述第二模型输出的分类结果,该分类结果即为第二模型所预测的结果。电子设备基于所述分类结果和所述待训练数据的真实类别,确定第三损失函数。其中,该第三损失函数为分类损失函数,可以是基于第二模型所预测的分类结果与真实的类别确定的。该第三损失函数例如可以为交叉熵函数。第三损失函数的求取方式可以是参考现有的分类损失函数的求取方式,本实施例不再赘述。
[0198]
在上述的步骤506中,在获取到第三损失函数之后,电子设备则可以是根据所述第一损失函数、所述第二损失函数和所述第三损失函数确定第二模型的总损失函数,并基于所述总损失函数对所述第二模型进行训练,以更新第二模型。
[0199]
示例性地,第二模型的总损失函数可以是基于以下的公式4来求得。
[0200]
loss=l
fkd
(θk) loss
truth
ꢀꢀ
公式4
[0201]
其中,loss表示第二模型的总损失函数;l
fkd

k
)表示蒸馏损失函数,是基于第一损失函数和第二损失函数得到的;loss
truth
表示第三损失函数。
[0202]
为了便于理解,以下将详细介绍基于上述的第一模型和第二模型,得到时序特征和空间特征的过程。
[0203]
对于第一模型来说,电子设备将待训练数据输入至第一模型之后,第一模型提取得到待训练数据的特征。该待训练数据的特征包括四个维度的特征,即时间维度特征、通道维度特征、高度维度特征和宽度维度特征。然后,第一模型对待训练数据的宽度维度特征执行池化操作,得到第一特征;第一模型对待训练数据的高度维度特征执行池化操作,得到第二特征。最后,第一模型再将得到的第一特征和第二特征串接,得到第一时序特征。
[0204]
示例性地,第一模型得到第一时序特征的过程可以通过以下的公式5来表示。
[0205]
f
tf
(f(v;θ
k
))=pool
w
(f(v;θ
k
)) pool
h
(f(v;θ
k
))
ꢀꢀ
公式5
[0206]
其中,f
tf
(f(v;θ
k
))表示第一时序特征;pool
w
(f(v;θ
k
))表示第一特征;pool
h
(f(v;θ
k
))表示第二特征;v表示待训练数据,即视频数据;y表示待训练数据对应的分类标签;d表示第二数据集;m表示第一数据集;k

1表示第一模型;k表示第二模型;f表示特征提取器;θ表示f的参数。
[0207]
也就是说,所述第一时序特征是由第一特征和第二特征串接得到的,所述第一特征是所述第一模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第二特征是所述第一模型对所述待训练数据的高度维度特征执行池化操作得到的。
[0208]
示例性地,假设第一特征为n*n的矩阵,第二特征为m*n的矩阵,则第一特征和第二特征串接后得到(n m)*n的矩阵,该(n m)*n的矩阵即为第一时序特征。
[0209]
其中,池化操作(pooling)是指:将特征看做是一个矩阵,并在这个矩阵上划分出几个互不重合的区域,然后在每个区域上计算该区域内特征的均值或最大值,得到池化结果。池化操作实际上是将小邻域内的特征点整合得到新的特征。
[0210]
示例性地,可以参阅图7,图7为本技术实施例提供的一种池化操作的示意图。如图7所示,池化操作通常包括两种类型,分别为最大值池化操作和均值池化操作。在图7所示的最大值池化操作中,将4*4大小的特征变换为2*2大小的特征。具体地,首先将4*4大小的特征划分为4个互不重合的区域,每个区域的大小为2*2,然后最大值池化操作是将每个区域中的最大值确定为变换得到的特征中的值。例如,在左上角的区域中,最大值为100;在右上角的区域中,最大值为184;在左下角的区域中,最大值为12;在右下角的区域中,最大值为45。因此,执行最大值池化操作后所得到的特征为[100,184,12,45]。
[0211]
类似地,均值池化操作就是确定划分得到的每个区域中的均值,并将每个区域的均值作为变换得到的特征中的值。例如,在左上角的区域中,均值为36;在右上角的区域中,均值为80;在左下角的区域中,均值为12;在右下角的区域中,均值为15。因此,执行均值池化操作后所得到的特征为[36,80,12,15]。
[0212]
可选的,电子设备将待训练数据输入至第一模型之后,第一模型提取得到待训练数据的特征。然后,第一模型对待训练数据的时间维度特征执行池化操作,得到第一空间特征。也就是说,所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行池化操作后得到的。
[0213]
示例性地,第一模型得到第一空间特征的过程可以通过以下的公式6来表示。
[0214]
f
sf
(f(v;θ
k
))=pool
t
(f(v;θ
k
))
ꢀꢀ
公式6
[0215]
其中,f
sf
(f(v;θ
k
))表示第一空间特征;pool
t
(f(v;θ
k
))表示对待训练数据的时间
维度特征执行池化操作;v表示待训练数据,即视频数据;y表示待训练数据对应的分类标签;d表示第二数据集;m表示第一数据集;k

1表示第一模型;k表示第二模型;f表示特征提取器;θ表示f的参数。
[0216]
可选的,对于视频数据来说,视频数据中的物体是不断运动的,即视频数据中的每一帧图像中所包括的同一物体都可能是位于不同的位置。因此,视频数据中的物体本身的轨迹信息也可以被视为视频数据的一种时序信息。其中,轨迹信息用于表示目标对象在待训练数据的每个图像帧中的位置。例如,对于待训练数据中的一个视频数据,视频数据中的目标对象为人物,轨迹信息则用于表示人物在该视频数据的每个图像帧中的位置,比如轨迹信息表示了人物在该视频数据的每个图像帧中具体的坐标。
[0217]
因此,在提取视频数据的空间特征时,引入视频数据的轨迹信息来对齐视频数据中每一个图像帧的特征,能够得到更为准确的空间特征。
[0218]
示例性地,电子设备将待训练数据输入至第一模型之后,第一模型提取得到待训练数据的特征。然后,第一模型基于待训练数据的轨迹信息对齐待训练数据中每个图像帧的特征,得到第五特征,该第五特征即为对齐后的特征,该第五特征同样包括前述的四个维度的特征。最后,第一模型再对第五特征的时间维度特征执行池化操作,得到第一空间特征。具体地,在第一模型对第三特征的时间维度特征执行池化操作的过程中,第一模型需要选择每一个图像帧中的某个区域或者特定像素来执行池化操作。在第一模型基于待训练数据的轨迹信息对齐待训练数据中每个图像帧的特征后,则可以得到每个图像帧中表示相同对象的特征,进而使得第一模型在执行池化操作时选择到每个图像帧中对齐后的区域或像素。
[0219]
其中,待训练数据的轨迹信息可以是基于现有的轨迹提取方法提取得到,本实施例并不对此赘述。
[0220]
具体地,第一模型基于轨迹信息得到第一空间特征的过程可以通过以下的公式7来表示。
[0221]
f
sf
(f(v;θ
k
))=poolt(trajalign(f(v;θ
k
)))
ꢀꢀ
公式7
[0222]
其中,f
sf
(f(v;θ
k
))表示第一空间特征;pool
t
(trajalign(f(v;θ
k
)))表示对第三特征的时间维度特征执行池化操作;trajalign( )表示基于轨迹信息的特征对齐函数;trajalign(f(v;θ
k
))表示第三特征;v表示待训练数据,即视频数据;y表示待训练数据对应的分类标签;d表示第二数据集;m表示第一数据集;k

1表示第一模型;k表示第二模型;f表示特征提取器;θ表示f的参数。
[0223]
可以理解的是,以上介绍的是第一模型提取第一时序特征和第一空间特征的过程。类似地,第二模型也可以是基于与第一模型相同的方式来提取第二时序特征和第二空间特征,具体可参考上述实施例的介绍,在此不再赘述。
[0224]
总的来说,所述第二时序特征是由第三特征和第四特征串接得到的,所述第三特征是所述第二模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第四特征是所述第二模型对所述待训练数据的高度维度特征执行池化操作得到的。
[0225]
可选的,所述第二空间特征是所述第二模型对第六特征的时间维度特征执行池化操作后得到的,所述第六特征是所述第二模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的。
[0226]
可选的,所述第二空间特征是所述第二模型对所述待训练数据的时间维度特征进行池化操作后得到的。
[0227]
以上介绍了通过模型提取时序特征和空间特征的过程,以下将介绍电子设备获取待训练数据的过程。
[0228]
在本实施例中,为了保证新训练得到的第三模型对于旧的视频数据和新的视频数据均具有较高的分类精度,电子设备需要同时基于旧的视频数据(即第一数据集)和新的视频数据(即第二数据集)来执行第三模型的训练。然而,视频数据都是由连续的图像序列构成的,每一个完整的视频数据通常都需要占用较大的存储空间。因此,在需要长期存储旧的视频数据以便于实现新模型训练的情况下,旧的视频数据往往会占据大量的存储空间,给电子设备带来巨大的存储开销。
[0229]
有鉴于此,在一个可能的实施例中,电子设备可以是在旧的视频数据中选择一部分具有代表性的视频数据,并且基于新的视频数据以及旧的视频数据中的部分视频数据,来进行新模型的训练,从而减少需要存储的视频数据,降低存储开销。
[0230]
具体地,电子设备在获取到第一数据集之后,电子设备可以在第一数据集中选择部分视频数据作为具有代表性的视频数据。然后,电子设备基于第一数据集中的部分视频数据和第二数据集,得到待训练数据,即待训练数据包括第一数据集中的部分视频数据以及第二数据集。
[0231]
进一步地,除了在第一数据集中选择部分具有代表性的视频数据之外,电子设备还可以进一步地在选择得到的视频数据中选择部分关键帧,并且基于选择得到的关键帧构成数据量更小的视频数据。最后,电子设备基于第二数据集和新构成的数据量更小的视频数据,得到待训练数据。
[0232]
可以理解的是,视频数据是由连续的图像序列所构成的,图像序列中存在许多描述动作变化的冗余图像。电子设备通过提取视频数据中的关键帧,可以得到关键帧序列。该关键帧序列能够很好地保持动作的差异性、连续性和完整性,从而实现视频数据的内容特征的表征。因此,基于提取得到的关键帧序列来执行模型的训练,并不会影响模型的分类精度。
[0233]
示例性地,在上述的步骤501中,电子设备获取待训练数据具体可以包括以下的步骤5011

5013。
[0234]
步骤5011,电子设备获取第一数据集中的第一视频数据。
[0235]
其中,第一视频数据可以为电子设备在第一数据集中所选择的具有代表性的视频数据。
[0236]
可选的,电子设备可以是在第一数据集中随机挑选一定数量的视频数据作为具有代表性的视频数据,第一视频数据则可以为电子设备所选择的其中一个视频数据。例如,假设第一数据集中的视频数据的类别包括有美食类、体育类、新闻类和生活类,则电子设备可以在第一数据集的每种类别的视频数据中分别挑选100个视频数据作为具有代表性的视频数据。这样,电子设备可以从第一数据集中挑选得到400个视频数据,即100个美食类的视频数据、100个体育类的视频数据、100个新闻类的视频数据以及100个生活类的视频数据。
[0237]
可选的,电子设备也可以是在第一数据集中挑选部分分类精度高的视频数据作为具有代表性的视频数据。示例性地,电子设备可以获取第一数据集中的每个视频数据的分
类精度。例如,电子设备可以将第一数据集中的每个视频数据输入至第一模型中,得到第一模型所预测的视频数据属于各个类别的概率。基于视频数据属于各个类别的概率以及视频数据所属的真实类别,可以确定每个视频数据对应的分类精度。其中,在预测结果中,视频数据属于真实类别的概率越大,则该视频数据对应的分类精度越高。这样,电子设备可以基于所述第一数据集中的每个视频数据的分类精度,确定所述第一视频数据。
[0238]
具体地,在确定第一数据集中的每个视频数据的分类精度之后,电子设备可以选择分类精度较高的多个视频数据作为具有代表性的视频数据,第一视频数据则为分类精度较高的多个视频数据中的一个。例如,电子设备可以在第一数据集中选择分类精度最高的400个视频数据作为具有代表性的视频数据。值得注意的是,在选择视频数据的过程中,电子设备需要保证在每个类别中都选择一定数量的视频数据,以避免选择到的视频数据中只包括第一数据集中的部分类别。
[0239]
步骤5012,电子设备确定所述第一视频数据中的多个关键帧,以得到第二视频数据,所述第二视频数据包括所述多个关键帧。
[0240]
其中,所述多个关键帧用于表征所述第一视频数据中的对象的运动信息。在所述多个关键帧中,第一视频数据中的同一个对象在不同的关键帧上的位置是不同的,因此所述多个关键帧能够用于表征第一视频数据中的对象的运动信息。
[0241]
可选的,电子设备可以是通过判断第一视频数据中的图像与最新的关键帧之间的差异值,来挑选第一视频数据中的多个关键帧。简单来说,在确定第一视频数据中的第一个图像帧为关键帧之后,如果第一视频数据中的第二个图像帧中的对象与第一个图像帧中的对象的动作没有变化,则不选择第二个图像帧为关键帧。在第二个图像帧之后的图像帧中,如果某一个图像帧中的对象相比对第一个图像帧中的对象发生了较大的动作变化,则可以将该图像帧确定为关键帧,从而表示对象的运动信息。
[0242]
示例性地,电子设备可以先将第一视频数据中的第一个图像确定为关键帧,然后电子设备依次计算第一视频数据中的图像与该关键帧之间的差异值。如果第一视频数据中的图像与当前关键帧之间的差异值小于预设阈值,则电子设备继续计算第一视频数据中下一个图像与当前关键帧之间的差异值;如果第一视频数据中的图像与当前关键帧之间的差异值大于或等于预设阈值,则电子设备将该图像加入至关键帧集合中,并且将该图像确定为最新的关键帧。这样一来,电子设备持续依次地计算第一视频数据中的图像与最新的关键帧之间的差异值,来确定第一视频数据中的关键帧。
[0243]
具体地,电子设备可以通过计算第一视频数据中的图像与最新的关键帧之间的矢量距离来确定图像与关键帧之间的差异值。示例性地,电子设备可以基于公式8来计算第一视频数据中的图像与最新的关键帧之间的矢量距离。
[0244]
dis(v
i
,v
j
)=||v
i

v
j
||2ꢀꢀ
公式8
[0245]
其中,v
i
,v
j
分别表示第一视频数据中的图像以及最新的关键帧;dis(v
i
,v
j
)表示第一视频数据中的图像与最新的关键帧之间的矢量距离,|| ||2表示2

范数,是指向量元素绝对值的平方和再开方。
[0246]
也就是说,在电子设备确定得到第一视频中的多个关键帧之后,所述多个关键帧中任意两个相邻的关键帧之间的差异值大于或等于预设阈值。
[0247]
示例性地,可以参阅图8,图8为本技术实施例提供的一种在视频数据中选择关键
帧的示意图。如图8所示,图8中的视频数据共包括12张连续的图像,且视频数据中的12张图像分别编号为1

12。首先,电子设备将视频数据中的第一张图像(即图像1)加入关键帧集合,然后电子设备计算图像2与图像1之间的矢量距离。经过计算发现,图像2与图像1之间的矢量距离小于阈值,电子设备继续计算图像3与图像1之间的矢量距离。在图像3与图像1之间的矢量距离仍然小于阈值的情况下,电子设备继续计算图像4与图像1之间的矢量距离。
[0248]
由于图像4与图像1之间的矢量距离大于阈值,因此电子设备将图像4加入到关键帧集合中,并计算后续的图像与图像4之间的矢量距离。由于位于图像4之后的图像5、图像6、图像7以及图像8与图像4之间的矢量距离均小于阈值,因此图像5、图像6、图像7以及图像8均不加入关键帧集合中。由于图像9与图像4之间的矢量距离大于阈值,因此电子设备将图像9加入关键帧集合中,并且继续计算图像9之后的图像与图像9之间的矢量距离。由于图像10、图像11以及图像12与图像9之间的矢量距离均小于阈值,因此图像10、图像11以及图像12均不加入关键帧集合中。最终,电子设备在该视频数据中选择得到的关键帧为:图像1、图像4和图像9。
[0249]
步骤5013,基于所述第二视频数据和所述第二数据集,得到所述待训练数据。
[0250]
在通过选择视频数据中的关键帧,重组得到新的视频数据之后,电子设备可以基于第二数据集以及第一数据集中重组得到的视频数据,得到待训练数据。也就是说,待训练数据中所包括的旧的视频数据是电子设备先在第一数据集中选择部分视频数据,然后再在该部分视频数据中选择关键帧而得到的。
[0251]
本实施例中,通过先在视频样本粒度选择少量具有代表性的视频样本,然后在视频样本内部粒度对每个具有代表性的视频样本选择少量的关键帧,从而得到由关键帧所构成的视频数据。通过在两个粒度去选择第一数据集中的部分视频数据作为待训练数据,能够大大地减少视频数据的数据量,节省了电子设备的存储开销。
[0252]
示例性地,可以参阅图9,图9为本技术实施例提供的一种训练视频分类模型的流程示意图。如图9所示,电子设备在获取到第一数据集(即现有待分类视频)后,基于第一数据集训练得到第一模型。并且,电子设备基于上述的双粒度样本选择方法,选择第一数据集中的部分视频数据作为代表性视频数据,并将所选择的代表性视频数据存储至视频数据库中。然后,在电子设备获取到第二数据集(即新增待分类视频)之后,从视频数据库中读取旧的视频数据(即第一数据集中的代表性视频数据),基于旧的视频数据和第二数据集,通过第一模型对第二模型进行知识蒸馏,从而实现第二模型的训练。在第二模型训练完毕后,电子设备同样通过双粒度样本选择方法选择第二数据集中的部分视频数据作为代表性视频数据,并将所选择的代表性视频数据存储至视频数据库中,以便于后续继续训练新的模型。
[0253]
为了便于理解,以下将结合具体的例子对本技术实施例所提供的视频分类模型的训练方法进行介绍。
[0254]
以电子设备上部署有视频理解平台为例,该视频理解平台能够对所输入的视频进行分类,从而为输入的视频产生一个类别标签。该类别标签例如可以为新闻类标签、体育类标签、娱乐类标签或美食类标签。
[0255]
示例性地,可以参阅图10,图10为本技术实施例提供的视频理解平台的工作流程示意图。该视频理解平台的工作流程包括以下的步骤1

步骤3。
[0256]
步骤1,基于第一批视频数据训练初始的模型。
[0257]
视频理解平台在获取到第一批视频数据d1之后,视频理解平台基于第一批视频数据d1从头训练一个视频分类模型,得到视频分类模型f1。然后,视频理解平台基于上述步骤5011

5013所述的双粒度代表性样本选择方法,从第一批视频数据d1中选择具有代表性的视频数据(即代表性样本),并且继续从具有代表性的视频数据选择关键帧,最终构成视频数据集合m1。在得到视频数据集合m1之后,视频理解平台将视频数据集合m1存储至相应的存储空间中。
[0258]
步骤2,当视频理解平台在获取到第二批视频数据d2之后,视频理解平台从存储空间中读取视频数据集合m1。并且,基于第二批视频数据d2和视频数据集合m1,通过501

506所述的训练方法以及视频分类模型f1,对视频分类模型f2进行训练,以得到训练好的视频分类模型f2。
[0259]
在视频分类模型f2训练完毕后,视频理解平台基于上述步骤5011

5013所述的双粒度代表性样本选择方法,从第二批视频数据d2中选择具有代表性的视频数据(即代表性样本),并且继续从具有代表性的视频数据选择关键帧,得到视频数据集合n2。最后,视频理解平台将视频数据集合n2存储至相应的存储空间中,存储空间中原有的视频数据集合m1和新存储进去的视频数据集合n2共同构成视频数据集合m2。
[0260]
步骤3.每当视频理解平台获取到新的一批视频数据时,视频理解平台重复步骤2,以得到新的视频分类模型。
[0261]
例如,当视频理解平台在获取到第k批视频数据d
k
之后,视频理解平台从存储空间中读取视频数据集合m
k
‑1。并且,基于第k批视频数据d
k
和视频数据集合m
k
‑1,通过501

506所述的训练方法以及视频分类模型fk

1,对视频分类模型fk进行训练,以得到训练好的视频分类模型fk。
[0262]
在视频分类模型fk训练完毕后,视频理解平台基于上述步骤5011

5013所述的双粒度代表性样本选择方法,从第k批视频数据d
k
中选择具有代表性的视频数据(即代表性样本),并且继续从具有代表性的视频数据选择关键帧,得到视频数据集合n
k
。最后,视频理解平台将视频数据集合n
k
存储至相应的存储空间中,存储空间中原有的视频数据集合m
k
‑1和新存储进去的视频数据集合n
k
共同构成视频数据集合m
k

[0263]
为了便于验证本技术实施例所提供的训练方法所训练的模型的分类精度,本实施例还提供了相应的测试结果。
[0264]
具体地,本实施例中,基于现有技术的每个方法以及本技术实施例提供的训练方法训练得到对应的模型,并在增量视频学习任务上进行测试。
[0265]
示例性地,可以参阅图11,图11为本技术提供的测试结果的对比示意图。如图11所示,acc.(%)表示在最后一个增量学习任务结束后得到的模型在之前所有已出现类别测试数据上的分类性能;forget.(%)表示模型在第一批类别测试数据上的分类性能下降值(即第一个增量学习任务得到的模型的准确率减去最后一个增量学习任务得到的模型的准确率),mem.(g)表示增量视频学习任务上用于存储代表性视频关键帧的存储开销。
[0266]
由图11可以看出,在something

something v2和kinetics数据集上,基于本技术实施例所提供的训练方法所训练的模型在新增视频类别上的分类准确率明显优于现有方法,且遗忘率同时也是最低的,性能实现了较大的提升。
[0267]
以上介绍了本技术实施例所提供的视频分类模型的训练方法,以下将介绍本技术
实施例所提供的一种视频分类方法。
[0268]
本技术实施例还提供了一种视频分类方法,该视频分类方法应用于电子设备中,该电子设备上部署有上述实施例所述的第三模型。该电子设备能够基于第三模型对视频执行分类。其中,本实施例中用于执行视频分类的电子设备与上述实施例中用于训练模型的电子设备可以是不同的电子设备。例如,用于训练模型的电子设备可以为服务器,用于执行视频分类的电子设备可以为智能手机,服务器在训练得到视频分类模型后,将视频分类模型下发至智能手机,由智能手机基于视频分类模型执行视频分类。本实施例中用于执行视频分类的电子设备与上述实施例中用于训练模型的电子设备也可以是相同的电子设备。例如,用于训练模型的电子设备以及用于执行视频分类的电子设备均为同一个服务器,服务器在训练得到视频分类模型后,获取待分类的视频,并基于该视频分类模型执行视频分类。
[0269]
具体地,该视频分类方法包括:电子设备获取待分类视频,并将所述待分类视频输入第二模型,得到分类结果。例如,在该电子设备上可以部署有视频理解平台,在用户上传视频至视频理解平台时,电子设备可以获取到待分类视频。基于电子设备上已部署的第二模型,电子设备可以对获取到的待分类视频进行分类,以得到分类结果。
[0270]
其中,所述第二模型是以第一模型为教师网络,根据第一损失函数和第二损失函数进行知识蒸馏得到的,所述第一损失函数是基于第一时序特征和第二时序特征得到的,所述第二损失函数是基于第一空间特征和第二空间特征得到的,所述第一时序特征和所述第一空间特征是将待训练数据输入第一模型后得到的,所述第二时序特征和所述第二空间特征是将所述待训练数据输入所述第二模型后得到的。
[0271]
在一种可能的实现方式中,所述待训练数据包括第一数据集和第二数据集,所述第一模型为基于所述第一数据集训练的视频分类模型。
[0272]
在一种可能的实现方式中,所述待训练数据是基于第二视频数据和所述第二数据集得到的,所述第二视频数据包括多个关键帧,所述多个关键帧是基于第一视频数据得到的,所述多个关键帧用于表征所述第一视频数据中的对象的运动信息,所述第一视频数据属于所述第一数据集。
[0273]
在一种可能的实现方式中,所述多个关键帧中任意两个相邻的关键帧之间的差异值大于或等于预设阈值。
[0274]
在一种可能的实现方式中,所述第一视频数据是基于所述第一数据集中的每个视频数据的分类精度确定的。
[0275]
在一种可能的实现方式中,所述第一时序特征是所述第一模型对所述待训练数据的空间维度特征进行压缩后得到的;
[0276]
所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行压缩后得到的。
[0277]
在一种可能的实现方式中,所述第一时序特征是由第一特征和第二特征串接得到的,所述第一特征是所述第一模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第二特征是所述第一模型对所述待训练数据的高度维度特征执行池化操作得到的;
[0278]
或者,
[0279]
所述第二时序特征是由第三特征和第四特征串接得到的,所述第三特征是所述第
二模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第四特征是所述第二模型对所述待训练数据的高度维度特征执行池化操作得到的。
[0280]
在一种可能的实现方式中,所述第一空间特征是所述第一模型对第五特征的时间维度特征执行池化操作后得到的,所述第五特征是所述第一模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的;
[0281]
或者,
[0282]
所述第二空间特征是所述第二模型对第六特征的时间维度特征执行池化操作后得到的,所述第六特征是所述第二模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的。
[0283]
在一种可能的实现方式中,所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行池化操作后得到的;
[0284]
或者,
[0285]
所述第二空间特征是所述第二模型对所述待训练数据的时间维度特征进行池化操作后得到的。
[0286]
在一种可能的实现方式中,所述第二数据集中的视频数据的类别与所述第一数据集中的视频数据的类别不相同。
[0287]
在一种可能的实现方式中,所述第三模型是以所述第一模型为教师网络、所述第二模型为学生网络,根据所述第一损失函数、所述第二损失函数和第三损失函数对所述第二模型进行知识蒸馏得到的,所述第三损失函数是基于分类结果和所述待训练数据的真实类别确定的,所述分类结果是将所述待训练数据输入所述第二模型后得到的。
[0288]
可以参阅图12,图12为本技术实施例提供的一种训练装置的结构示意图。如图12所示,本技术实施例提供的一种训练装置,包括:获取单元1201和处理单元1202;所述获取单元1201,用于获取待训练数据;所述获取单元1201,还用于获取第一模型和第二模型;所述处理单元1202,用于将所述待训练数据分别输入所述第一模型和所述第二模型,以获取所述第一模型提取的第一时序特征和第一空间特征以及所述第二模型提取的第二时序特征和第二空间特征;所述处理单元1202,还用于以所述第一模型为教师网络,根据第一损失函数和第二损失函数,对所述第二模型进行知识蒸馏,以更新所述第二模型,其中,所述第一损失函数是基于所述第一时序特征和所述第二时序特征得到的,所述第二损失函数是基于所述第一空间特征和所述第二空间特征得到的。
[0289]
在一种可能的实现方式中,所述待训练数据包括第一数据集和第二数据集,所述第一模型为基于所述第一数据集训练的视频分类模型。
[0290]
在一种可能的实现方式中,所述获取单元1201,还用于获取所述第一数据集中的第一视频数据;所述处理单元1202,还用于确定所述第一视频数据中的多个关键帧,以得到第二视频数据,所述多个关键帧用于表征所述第一视频数据中的对象的运动信息;所述处理单元1202,还用于基于所述第二视频数据和所述第二数据集,得到所述待训练数据。
[0291]
在一种可能的实现方式中,所述多个关键帧中任意两个相邻的关键帧之间的差异值大于或等于预设阈值。
[0292]
在一种可能的实现方式中,所述获取单元1201,还用于获取第一数据集中的每个视频数据的分类精度;所述处理单元1202,还用于基于所述第一数据集中的每个视频数据
的分类精度,确定所述第一视频数据。
[0293]
在一种可能的实现方式中,所述第一时序特征是所述第一模型对所述待训练数据的空间维度特征进行压缩后得到的;所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行压缩后得到的。
[0294]
在一种可能的实现方式中,所述第一时序特征是由第一特征和第二特征串接得到的,所述第一特征是所述第一模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第二特征是所述第一模型对所述待训练数据的高度维度特征执行池化操作得到的;
[0295]
或者,
[0296]
所述第二时序特征是由第三特征和第四特征串接得到的,所述第三特征是所述第二模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第四特征是所述第二模型对所述待训练数据的高度维度特征执行池化操作得到的。
[0297]
在一种可能的实现方式中,所述第一空间特征是所述第一模型对第五特征的时间维度特征执行池化操作后得到的,所述第五特征是所述第一模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的;
[0298]
或者,
[0299]
所述第二空间特征是所述第二模型对第六特征的时间维度特征执行池化操作后得到的,所述第六特征是所述第二模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的。
[0300]
在一种可能的实现方式中,所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行池化操作后得到的;
[0301]
或者,
[0302]
所述第二空间特征是所述第二模型对所述待训练数据的时间维度特征进行池化操作后得到的。
[0303]
在一种可能的实现方式中,所述第二数据集中的视频数据的类别与所述第一数据集中的视频数据的类别不相同。
[0304]
在一种可能的实现方式中,所述处理单元1202,还用于:将所述待训练数据输入第二模型,得到所述第二模型输出的分类结果;基于所述分类结果和所述待训练数据的真实类别,确定第三损失函数;根据所述第一损失函数、所述第二损失函数和所述第三损失函数,对所述第二模型进行知识蒸馏,以更新所述第二模型。
[0305]
可以参阅图13,图13为本技术实施例提供的一种视频分类装置的结构示意图。如图13所示,本技术实施例提供的一种视频分类装置,包括:获取单元1301和处理单元1302;所述获取单元1301,用于获取待分类视频;所述处理单元1302,用于将所述待分类视频输入第二模型,得到分类结果;其中,所述第二模型是以第一模型为教师网络,根据第一损失函数和第二损失函数进行知识蒸馏得到的,所述第一损失函数是基于第一时序特征和第二时序特征得到的,所述第二损失函数是基于第一空间特征和第二空间特征得到的,所述第一时序特征和所述第一空间特征是将待训练数据输入第一模型后得到的,所述第二时序特征和所述第二空间特征是将所述待训练数据输入所述第二模型后得到的。
[0306]
在一种可能的实现方式中,所述待训练数据包括第一数据集和第二数据集,所述
第一模型为基于所述第一数据集训练的视频分类模型。
[0307]
在一种可能的实现方式中,所述待训练数据是基于第二视频数据和所述第二数据集得到的,所述第二视频数据包括多个关键帧,所述多个关键帧是基于第一视频数据得到的,所述多个关键帧用于表征所述第一视频数据中的对象的运动信息,所述第一视频数据属于所述第一数据集。
[0308]
在一种可能的实现方式中,所述多个关键帧中任意两个相邻的关键帧之间的差异值大于或等于预设阈值。
[0309]
在一种可能的实现方式中,所述第一视频数据是基于所述第一数据集中的每个视频数据的分类精度确定的。
[0310]
在一种可能的实现方式中,所述第一时序特征是所述第一模型对所述待训练数据的空间维度特征进行压缩后得到的;所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行压缩后得到的。
[0311]
在一种可能的实现方式中,所述第一时序特征是由第一特征和第二特征串接得到的,所述第一特征是所述第一模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第二特征是所述第一模型对所述待训练数据的高度维度特征执行池化操作得到的;
[0312]
或者,
[0313]
所述第二时序特征是由第三特征和第四特征串接得到的,所述第三特征是所述第二模型对所述待训练数据的宽度维度特征执行池化操作得到的,所述第四特征是所述第二模型对所述待训练数据的高度维度特征执行池化操作得到的。
[0314]
在一种可能的实现方式中,所述第一空间特征是所述第一模型对第五特征的时间维度特征执行池化操作后得到的,所述第五特征是所述第一模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的;
[0315]
或者,
[0316]
所述第二空间特征是所述第二模型对第六特征的时间维度特征执行池化操作后得到的,所述第六特征是所述第二模型基于轨迹信息对齐所述待训练数据中每个图像帧的特征后得到的。
[0317]
在一种可能的实现方式中,所述第一空间特征是所述第一模型对所述待训练数据的时间维度特征进行池化操作后得到的;
[0318]
或者,
[0319]
所述第二空间特征是所述第二模型对所述待训练数据的时间维度特征进行池化操作后得到的。
[0320]
在一种可能的实现方式中,所述第二数据集中的视频数据的类别与所述第一数据集中的视频数据的类别不相同。
[0321]
在一种可能的实现方式中,所述第三模型是以所述第一模型为教师网络、所述第二模型为学生网络,根据所述第一损失函数、所述第二损失函数和第三损失函数对所述第二模型进行知识蒸馏得到的,所述第三损失函数是基于分类结果和所述待训练数据的真实类别确定的,所述分类结果是将所述待训练数据输入所述第二模型后得到的。
[0322]
接下来介绍本技术实施例提供的一种执行设备,请参阅图14,图14为本技术实施
例提供的执行设备的一种结构示意图,执行设备1400具体可以表现为手机、平板、笔记本电脑、智能穿戴设备、服务器等,此处不做限定。其中,执行设备1400上可以部署有图14对应实施例中所描述的数据处理装置,用于实现图14对应实施例中数据处理的功能。具体的,执行设备1400包括:接收器1401、发射器1402、处理器1403和存储器1404(其中执行设备1400中的处理器1403的数量可以一个或多个,图14中以一个处理器为例),其中,处理器1403可以包括应用处理器14031和通信处理器14032。在本技术的一些实施例中,接收器1401、发射器1402、处理器1403和存储器1404可通过总线或其它方式连接。
[0323]
存储器1404可以包括只读存储器和随机存取存储器,并向处理器1403提供指令和数据。存储器1404的一部分还可以包括非易失性随机存取存储器(non

volatile random access memory,nvram)。存储器1404存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
[0324]
处理器1403控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
[0325]
上述本技术实施例揭示的方法可以应用于处理器1403中,或者由处理器1403实现。处理器1403可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1403中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1403可以是通用处理器、数字信号处理器(digital signal processing,dsp)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1403可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1404,处理器1403读取存储器1404中的信息,结合其硬件完成上述方法的步骤。
[0326]
接收器1401可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1402可用于通过第一接口输出数字或字符信息;发射器1402还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1402还可以包括显示屏等显示设备。
[0327]
本技术实施例中,在一种情况下,处理器1403,用于执行图5对应实施例中的方法。
[0328]
本技术实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
[0329]
本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
[0330]
本技术实施例提供的执行设备、训练设备或电子设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的图像处理方法,或者,以使训练设备内的芯片执行上述实施例描述的图像处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read

only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)等。
[0331]
具体的,请参阅图15,图15为本技术实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器npu 1500,npu 1500作为协处理器挂载到主cpu(host cpu)上,由host cpu分配任务。npu的核心部分为运算电路1503,通过控制器1504控制运算电路1503提取存储器中的矩阵数据并进行乘法运算。
[0332]
在一些实现中,运算电路1503内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路1503是二维脉动阵列。运算电路1503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1503是通用的矩阵处理器。
[0333]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器1502中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器1501中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1508中。
[0334]
统一存储器1506用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,dmac)1505,dmac被搬运到权重存储器1502中。输入数据也通过dmac被搬运到统一存储器1506中。
[0335]
biu为bus interface unit即,总线接口单元1515,用于axi总线与dmac和取指存储器(instruction fetch buffer,ifb)1509的交互。
[0336]
总线接口单元1515(bus interface unit,简称biu),用于取指存储器1509从外部存储器获取指令,还用于存储单元访问控制器1505从外部存储器获取输入矩阵a或者权重矩阵b的原数据。
[0337]
dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器1506或将权重数据搬运到权重存储器1502中或将输入数据数据搬运到输入存储器1501中。
[0338]
向量计算单元1507包括多个运算处理单元,在需要的情况下,对运算电路1503的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如batch normalization(批归一化),像素级求和,对特征平面进行上采样等。
[0339]
在一些实现中,向量计算单元1507能将经处理的输出的向量存储到统一存储器1506。例如,向量计算单元1507可以将线性函数;或,非线性函数应用到运算电路1503的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1507生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1503的激活输入,例如用于在神经网络
中的后续层中的使用。
[0340]
控制器1504连接的取指存储器(instruction fetch buffer)1509,用于存储控制器1504使用的指令;
[0341]
统一存储器1506,输入存储器1501,权重存储器1502以及取指存储器1509均为on

chip存储器。外部存储器私有于该npu硬件架构。
[0342]
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或一个或多个用于控制上述程序执行的集成电路。
[0343]
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
[0344]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本技术各个实施例所述的方法。
[0345]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0346]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜