一种光流神经网络训练方法及装置转让专利

申请号 : CN201811518482.4

文献号 : CN111311646B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 石大虎虞抒沁谭文明

申请人 : 杭州海康威视数字技术股份有限公司

摘要 :

本申请实施例提供了一种光流神经网络训练方法及装置。其中,方法包括:将样本图像帧和所述样本图像帧的相邻图像帧输入第一神经网络和第二神经网络,得到所述第一神经网络输出的第一稠密光流和所述第二神经网络输出的第二稠密光流,所述第一神经网络为预先经过训练的光流神经网络,所述第二神经网络为模型复杂度低于所述第一神经网络的光流神经网络;基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数。选用本申请实施例,由于第二神经网络能够学习到第一神经网络已经学习到的图像对到稠密光流的映射关系,可以使得第二神经网络的性能逼近于模型复杂度更高的第一神经网络。

权利要求 :

1.一种光流神经网络训练方法,其特征在于,所述方法包括:

将样本图像帧和所述样本图像帧的相邻图像帧输入第一神经网络和第二神经网络,得到所述第一神经网络输出的第一稠密光流和所述第二神经网络输出的第二稠密光流,所述第一神经网络为预先经过训练的光流神经网络,所述第二神经网络为模型复杂度低于所述第一神经网络的光流神经网络;

基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数;

所述第一稠密光流为所述第一神经网络在多个不同的降采样倍率上输出的多个稠密光流;

所述第二稠密光流为所述第二神经网络在所述多个不同的降采样倍率上输出的多个稠密光流;

所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数,包括:针对所述多个不同的降采样倍率中的每个降采样倍率,基于所述第一稠密光流中在该降采样倍率下输出的稠密光流,与所述第二稠密光流中在该降采样倍率下输出的稠密光流之间的偏差,调整所述第二神经网络的网络参数。

2.根据权利要求1所述的方法,其特征在于,在所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数之前,所述方法还包括:针对所述样本图像帧中的每个像素点,计算所述第一稠密光流中该像素点的光流值,与所述第二稠密光流中该像素点的光流值的差值,作为该像素点的光流差值;

将所述样本图像帧中所有像素点的光流差值累加,得到所述第一稠密光流与所述第二稠密光流之间的偏差。

3.根据权利要求1所述的方法,其特征在于,所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数,包括:基于所述第一稠密光流与所述第二稠密光流之间的偏差,以及所述第二稠密光流与所述样本图像帧的标注稠密光流之间的损失,调整所述第二神经网络的网络参数。

4.根据权利要求1所述的方法,其特征在于,所述第一神经网络为多个预先经过训练的光流神经网络;

所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数,包括:将多个所述第一神经网络输出的所述第一稠密光流进行加权平均,得到平均稠密光流;

基于所述平均稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数。

5.根据权利要求1所述的方法,其特征在于,所述第二神经网络的深度小于所述第一神经网络的深度,所述第二神经网络的宽度小于所述第一神经网络的宽度。

6.一种光流神经网络训练装置,其特征在于,所述装置包括:

样本输入模块,用于将样本图像帧和所述样本图像帧的相邻图像帧输入第一神经网络和第二神经网络,得到所述第一神经网络输出的第一稠密光流和所述第二神经网络输出的第二稠密光流,所述第一神经网络为预先经过训练的光流神经网络,所述第二神经网络为模型复杂度低于所述第一神经网络的光流神经网络;

参数调整模块,用于基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数;

所述第一稠密光流为所述第一神经网络在多个不同的降采样倍率上输出的多个稠密光流;

所述第二稠密光流为所述第二神经网络在所述多个不同的降采样倍率上输出的多个稠密光流;

所述参数调整模块,具体用于针对所述多个不同的降采样倍率中的每个降采样倍率,基于所述第一稠密光流中在该降采样倍率下输出的稠密光流,与所述第二稠密光流中在该降采样倍率下输出的稠密光流之间的偏差,调整所述第二神经网络的网络参数。

7.根据权利要求6所述的装置,其特征在于,所述参数调整模块,还用于在所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数之前,针对所述样本图像帧中的每个像素点,计算所述第一稠密光流中该像素点的光流值,与所述第二稠密光流中该像素点的光流值的差值,作为该像素点的光流差值;

将所述样本图像帧中所有像素点的光流差值累加,得到所述第一稠密光流与所述第二稠密光流之间的偏差。

8.根据权利要求6所述的装置,其特征在于,所述参数调整模块,具体用于基于所述第一稠密光流与所述第二稠密光流之间的偏差,以及所述第二稠密光流与所述样本图像帧的标注稠密光流之间的损失,调整所述第二神经网络的网络参数。

9.根据权利要求6所述的装置,其特征在于,所述第一神经网络为多个预先经过训练的光流神经网络;

所述参数调整模块,具体用于将多个所述第一神经网络输出的所述第一稠密光流进行加权平均,得到平均稠密光流;

基于所述平均稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数。

10.根据权利要求6所述的装置,其特征在于,所述第二神经网络的深度小于所述第一神经网络的深度,所述第二神经网络的宽度小于所述第一神经网络的宽度。

说明书 :

一种光流神经网络训练方法及装置

技术领域

[0001] 本申请涉及计算机视觉技术领域,特别是涉及一种光流神经网络训练方法及装置。

背景技术

[0002] 在执行计算机视觉任务时,可以使用稠密光流表示一个图像帧中每个像素点的运动状态。现有技术中,可以训练一个光流神经网络,将待处理图像帧以及待处理图像帧的相邻图像帧输入该光流神经网络,并将该光流神经网络的输出作为目标图像帧的稠密光流。
[0003] 由于稠密光流中包括目标图像帧中所有像素点的运动状态,计算难度较大,需要模型复杂度较高的光流神经网络才能够输出相对准确的稠密光流。但是,模型复杂度较高的光流神经网络的运行效率较低,并且可能会占用较多的计算资源。

发明内容

[0004] 本申请实施例的目的在于提供一种光流神经网络训练方法及装置,以实现使得模型复杂度较低的光流神经网络能够在性能上接近模型复杂度较高的光流神经网络。具体技术方案如下:
[0005] 在本申请实施例的第一方面,提供了一种光流神经网络训练方法,所述方法包括:
[0006] 将样本图像帧和所述样本图像帧的相邻图像帧输入第一神经网络和第二神经网络,得到所述第一神经网络输出的第一稠密光流和所述第二神经网络输出的第二稠密光流,所述第一神经网络为预先经过训练的光流神经网络,所述第二神经网络为模型复杂度低于所述第一神经网络的光流神经网络;
[0007] 基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数。
[0008] 结合第一方面,在第一种可能的实现方式中,在所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数之前,所述方法还包括:
[0009] 针对所述样本图像帧中的每个像素点,计算所述第一稠密光流中该像素点的光流值,与所述第二稠密光流中该像素点的光流值的差值,作为该像素点的光流差值;
[0010] 将所述样本图像帧中所有像素点的光流差值累加,得到所述第一稠密光流与所述第二稠密光流之间的偏差。
[0011] 结合第一方面,在第二种可能的实现方式中,所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数,包括:
[0012] 基于所述第一稠密光流与所述第二稠密光流之间的偏差,以及所述第二稠密光流与所述样本图像帧的标注稠密光流之间的损失,调整所述第二神经网络的网络参数。
[0013] 结合第一方面,在第三种可能的实现方式中,所述第一稠密光流为所述第一神经网络在多个不同的降采样倍率上输出的多个稠密光流;
[0014] 所述第二稠密光流为所述第二神经网络在所述多个不同的降采样倍率上输出的多个稠密光流;
[0015] 所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数,包括:
[0016] 针对所述多个不同的降采样倍率中的每个降采样倍率,基于所述第一稠密光流中在该降采样倍率下输出的稠密光流,与所述第二稠密光流中在该降采样倍率下输出的稠密光流之间的偏差,调整所述第二神经网络的网络参数。
[0017] 结合第一方面,在第四种可能的实现方式中,所述第一神经网络为多个预先经过训练的光流神经网络;
[0018] 所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数,包括:
[0019] 将多个所述第一神经网络输出的所述第一稠密光流进行加权平均,得到平均稠密光流;
[0020] 基于所述平均稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数。
[0021] 结合第一方面,在第五种可能的实现方式中,所述第二神经网络的深度小于所述第一神经网络的深度,所述第二神经网络的宽度小于所述第一神经网络的宽度。
[0022] 在本申请实施例的第二方面,提供了一种光流神经网络训练装置,所述装置包括:
[0023] 样本输入模块,用于将样本图像帧和所述样本图像帧的相邻图像帧输入第一神经网络和第二神经网络,得到所述第一神经网络输出的第一稠密光流和所述第二神经网络输出的第二稠密光流,所述第一神经网络为预先经过训练的光流神经网络,所述第二神经网络为模型复杂度低于所述第一神经网络的光流神经网络;
[0024] 参数调整模块,用于基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数。
[0025] 结合第二方面,在第一种可能的实现方式中,所述参数调整模块,还用于在所述基于所述第一稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数之前,针对所述样本图像帧中的每个像素点,计算所述第一稠密光流中该像素点的光流值,与所述第二稠密光流中该像素点的光流值的差值,作为该像素点的光流差值;
[0026] 将所述样本图像帧中所有像素点的光流差值累加,得到所述第一稠密光流与所述第二稠密光流之间的偏差。
[0027] 结合第二方面,在第二种可能的实现方式中,所述参数调整模块,具体用于基于所述第一稠密光流与所述第二稠密光流之间的偏差,以及所述第二稠密光流与所述样本图像帧的标注稠密光流之间的损失,调整所述第二神经网络的网络参数。
[0028] 结合第二方面,在第三种可能的实现方式中,所述第一稠密光流为所述第一神经网络在多个不同的降采样倍率上输出的多个稠密光流;
[0029] 所述第二稠密光流为所述第二神经网络在所述多个不同的降采样倍率上输出的多个稠密光流;
[0030] 所述参数调整模块,具体用于针对所述多个不同的降采样倍率中的每个降采样倍率,基于所述第一稠密光流中在该降采样倍率下输出的稠密光流,与所述第二稠密光流中在该降采样倍率下输出的稠密光流之间的偏差,调整所述第二神经网络的网络参数。
[0031] 结合第二方面,在第四种可能的实现方式中,所述第一神经网络为多个预先经过训练的光流神经网络;
[0032] 所述参数调整模块,具体用于将多个所述第一神经网络输出的所述第一稠密光流进行加权平均,得到平均稠密光流;
[0033] 基于所述平均稠密光流与所述第二稠密光流之间的偏差,调整所述第二神经网络的网络参数。
[0034] 结合第二方面,在第五种可能的实现方式中,所述第二神经网络的深度小于所述第一神经网络的深度,所述第二神经网络的宽度小于所述第一神经网络的宽度。
[0035] 在本申请实施例的第三方面,提供了一种电子设备,包括存储器,用于存放计算机程序;
[0036] 处理器,用于执行存储器上所存放的程序时,实现上述任一所述的光流神经网络训练方法。
[0037] 在本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的光流神经网络训练方法。
[0038] 本申请实施例提供的光流神经网络训练方法及装置,可以通过利用已经训练好的第一神经网络输出的第一稠密训练第二神经网络,使得第二神经网络能够学习到第一神经网络已经学习到的图像对到稠密光流的映射关系,可以使得第二神经网络的性能逼近于模型复杂度更高的第一神经网络。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0039] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040] 图1为本申请实施例提供的光流神经网络训练方法的一种流程示意图;
[0041] 图2为本申请实施例提供的光流神经网络的一种结构示意图;
[0042] 图3为本申请实施例提供的偏差计算方法的一种流程示意图;
[0043] 图4为本申请实施例提供的偏差计算方法的另一种流程示意图;
[0044] 图5a为本申请实施例提供的光流神经网络训练方法的一种原理示意图;
[0045] 图5b为本申请实施例提供的光流神经网络训练方法的另一种原理示意图;
[0046] 图6为本申请实施例提供的光流神经网络训练装置的一种结构示意图;
[0047] 图7为本申请实施例提供的电子设备的一种结构示意图。

具体实施方式

[0048] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0049] 对象在一个图像帧中的影像是处于静止状态的,但是对象本身可能处于运动状态。示例性的,利用摄像机拍摄一个正在奔跑的运动员,在拍摄得到的图像帧中,运动员的影像所处的像素区域在该图像帧中的位置,是不会随时间变化而改变的,而运动员实际上处于运动状态,因此仅根据运动员在该图像帧中的影像所处的像素区域,难以反映出该运动员的运动状态。而在一些机器视觉任务中可能需要利用到运动员的运动状态,如运动员轨迹预测。可以通过光流估计获取该图像帧的光流,光流中包括该图像帧中部分或者所有像素点的光流值,每个像素点的光流值可以表示该像素点的运动状态,示例性的,一个像素点的光流值可以表示为(u,v),其中u表示该像素点水平方向的速度,v表示该像素点竖直方向的速度。如果光流中包括该图像帧中所有像素点的光流值,则称该光流为稠密光流。
[0050] 参见图1,图1所示为本申请实施例提供的光流神经网络训练方法的一种流程示意图,可以包括:
[0051] S101,将样本图像帧和样本图像帧的相邻图像帧输入第一神经网络和第二神经网络,得到第一神经网络输出的第一稠密光流和第二神经网络输出的第二稠密光流。
[0052] 其中,第一神经网络为预先经过训练的光流神经网络,第二神经网络为模型复杂度低于第一神经网络的光流神经网络。其中,一个光流神经网络的模型复杂度可以包括该光流神经网络的深度和/或该光流神经网络的宽度,深度可以表示该光流神经网络所包含的卷积层的数目,宽度可以表示该光流神经网络每个卷积层所包括的卷积核数目以及卷积核的大小。在宽度不变的情况下,一个光流神经网络的深度越小,则该光流神经网络的模型复杂度越低,在深度不变的情况下,一个光流神经网络的宽度越小,则该光流神经网络的模型复杂度越低。第二神经网络可以是宽度与第一神经网络一致,并且深度小于第一神经网络的光流神经网络,也可以是深度与第一神经网络一致,并且宽度小于第一神经网络的光流神经网络。还可以是宽度小于第一神经网络,并且深度小于第一神经网络的光流神经网络,在这种情况下,可以最大化地简化第二神经网络。
[0053] 样本图像帧可以是标注有稠密光流的图像帧,也可以是没有标注有稠密光流的图像帧。在本申请实施例中,样本图像帧的相邻图像帧可以是与样本图像帧在时域上相邻的下一个图像帧,示例性的,假设在t=0ms,t=10ms,t=20ms连续拍摄得到三个图像帧,如果选取t=10ms拍摄得到的图像帧作为样本图像帧,则相邻图像帧可以为t=20ms拍摄得到的图像帧。
[0054] 在实施例中,第二神经网络可以在执行该步骤之前没有经过训练,也可以是在此执行该步骤之前已经经过训练。由于第二神经网络的模型复杂度低于第一神经网络的模型复杂度,因此第二神经网络输出的第二稠密光流的准确性理论上低于第一神经网络输出的第一稠密光流,如果第二稠密光流的准确性不低于第一稠密光流的准确性,则说明使用第二神经网络替代第一神经网络进行光流估计,可以在几乎不影响输出的稠密光流的准确性的前提下,提高光流神经网络的效率,降低光流神经网络所占用的计算资源,即不存在本申请实施例所需要解决的技术问题,因此在此不做讨论。下面仅针对第二稠密光流的准确性低于第一稠密光流的准确性的情况进行讨论。
[0055] 进一步的,第一神经网络和第二神经网络的网络结构可以如图2所示,包括特征编码(Encoder)模块201以及特征解码(Decoder)模块202,特征编码模块201可以包括有卷积层和池化层,特征解码模块可以包括有卷积层和反卷积层,其中特征编码模块201可以用于从输入该神经网络的图像对(包括待计算光流的目标图像帧以及目标图像帧的相邻图像帧)中提取图像特征,特征解码模块可以用于基于提取到的图像特征计算稠密光流。
[0056] S102,基于第一稠密光流与第二稠密光流之间的偏差,调整第二神经网络的网络参数。
[0057] 第一稠密光流可以是一个稠密光流,也可以是多个稠密光流。示例性的,可以是存在多个第一神经网络,第一稠密光流为这多个第一神经网络各自输出的一个稠密光流,例如存在第一神经网络A、第一神经网络B,则第一稠密光流可以包括第一神经网络A输出的稠密光流,以及第一神经网络B输出的稠密光流。
[0058] 也可以是只存在一个第一神经网络,第一稠密光流为该第一神经网络在多个不同的降采样倍率下输出的多个稠密光流,如第一稠密光流包括该第一神经网络在64倍的降采样倍率下输出的稠密光流,以及该第一神经网络在4倍的降采样倍率下输出的稠密光流。还可以是存在多个第一神经网络,第一稠密光流为这多个第一神经网络各自在多个不同的降采样倍率下输出的多个稠密光流,例如存在第一神经网络A、第一神经网络B,则第一稠密光流可以包括第一神经网络A在64倍的降采样倍率下输出的稠密光流、第一神经网络A在4倍的降采样倍率下输出的稠密光流、第一神经网络B在64倍的降采样倍率下输出的稠密光流,以及第一神经网络B在4倍的降采样倍率下输出的稠密光流。如果第一稠密光流包括第一神经网络在某一降采样倍率下输出的稠密光流,则第二稠密光流中至少包括第二神经网络在该降采样倍率下输出的稠密光流,可以是根据这两个稠密光流之间的偏差,基于随机梯度下降法调整第二神经网络的网络参数。选用该实施例,可以在多个不同的降采样倍率下对第二神经网络进行训练,使得第二神经网络的性能能够更好的逼近第一神经网络。
[0059] 为方便讨论,假设样本图像帧的像素分辨率为1920*1080,则第一神经网络或者第二神经网络在不降采样输出的情况下,输出的稠密光流可以是一个分辨率为1920*1080的光流图,在n倍降采样输出的情况下,输出的稠密光流可以是一个分辨率为(1920/n)*(1080/n)的光流图,如4倍降采样输出的情况下,输出的稠密光流可以为分辨率为480*270的光流图,该光流图中的一个点可以表示样本图像帧中4*4个像素点组成的16个像素区域的整体运动速度。
[0060] 光流神经网络的输入为图像对,输出为稠密光流,因此光流神经网络可以视为一种由图像对到稠密光流的端到端的映射,而光流神经网络的训练过程则可以视为使得该映射逼近于真实情况的一个过程。可以认为经过训练后该映射越逼近于真实情况,则该光流神经网络的性能越好。
[0061] 如果使用标注有稠密光流的样本图像对(包括样本图像帧以及样本图像帧的相邻图像帧)对光流神经网络进行训练,在不考虑标注的稠密光流存在误差的情况下,理论上光流神经网络可以准确学习到样本图像对到稠密光流之间的映射关系,而对于样本图像对以外的图像对到稠密光流之间的映射关系,则是基于已有的样本图像对和标注的稠密光流之间的映射关系泛化得到的,可能不够准确。如果光流神经网络的泛化能力较强,则泛化得到的映射关系可能与真实情况较为接近,即该光流神经网络的性能较好,而如果光流神经网络的泛化能力较差,则泛化得到的映射关系与真实情况相差较大,即该光流神经网络的性能较差。
[0062] 为讨论方便,假设光流神经网络的网络结构如图2所示,如果光流神经网络的模型复杂度较高,则该光流神经网络的特征编码模块和/或特征解码模块的模型复杂度较高,因此特征编码模块和/或特征解码模块的性能可能较高,因此该光流神经网络从输入的图像对中提取到的图像特征可能更加准确,和/或,基于图像特征计算得到的稠密光流更加准确,因此该光流神经网络的泛化能力往往较好。反之,如果光流神经网络的模型复杂度较低,则该光流神经网络的泛化能力往往较差。
[0063] 因此如果使用标注有稠密光流的样本图像对,分别对模型复杂度较高的光流神经网络和模型复杂度较低的光流神经网络进行训练,则经过训练后,模型复杂度较低的光流神经网络由于泛化能力较差,因此性能可能会弱于模型复杂度较高的光流神经网络。而本实施例中,由于第一神经网络是已经经过训练的神经网络,因此第一稠密光流可以视为第一神经网络基于已经学习到的端到端的映射关系对样本图像对进行映射得到的,即第一稠密光流中已经表现出第一神经网络学习到的映射关系,因此选用本实施例,可以使得第二神经网络学习第一神经网络已经学习到的映射关系,而该映射关系是基于第一神经网络的泛化能力学习到的,可以有效避免因第二神经网络的泛化能力较差导致的性能下降,因此训练过后的第二神经网络的性能可以逼近于第一神经网络。进一步的,由于在本实施例中,第二神经网络是从第一神经网络处学习图像对到稠密光流的映射关系,因此可以将第一神经网络视为教师神经网络,将第二神经网络视为学生神经网络。
[0064] 而第二神经网络由于模型复杂度较低,因此运行效率较高,并且占用的计算资源也可能较低。即选用该实施例,可以在不提高光流神经网络的模型复杂度的情况下,提高光流神经网络的性能。
[0065] 如果只存在一个第一神经网络,可以参见图3,图3所示为本申请实施例提供的偏差计算方法的一种流程示意图,可以包括:
[0066] S301,针对样本图像帧中的每个像素点,计算第一稠密光流中该像素点的光流值,与第二稠密光流中该像素点的光流值的差值,作为该像素点的光流差值。
[0067] 假设样本图像帧中像素点(i,j)在第一稠密光流中的光流值为像素点(i,j)在第二稠密光流中的光流值为 则在本实施例中,像素点
(i,j)的光流差值可以通过下式计算得到:
[0068]
[0069] 其中,L(i,j)为像素点(i,j)的光流差值。在其他可选的实施例中,也可以通过欧式距离以外的其他距离公式计算得到像素点的光流差值。
[0070] S302,将样本图像帧中所有像素点的光流差值累加,得到第一稠密光流与第二稠密光流之间的偏差。
[0071] 示例性的,假设样本图像帧的像素分辨率为1920*1080,并假设像素点(i,j)表示样本图像帧中第i个像素行的第j个像素点,则可以是按照下式计算得到第一稠密光流与第二稠密光流之间的偏差:
[0072]
[0073] 其中L为第一稠密光流与第二稠密光流之间的偏差。选用该实施例,由于偏差是基于每个像素点的光流差值计算得到的,因此可以使得偏差能够全面的反映出第一稠密光流与第二稠密光流之间的差别。
[0074] 如果存在多个第一神经网络,可以参见图4,图4所示为本申请实施例提供的偏差计算方法的另一种流程示意图,可以包括:
[0075] S401,将多个第一神经网络输出的第一稠密光流进行加权平均,得到平均稠密光流。
[0076] 假设存在n个第一神经网络,这n个第一神经网络输出的第一稠密光流分别为F1、F2、…、Fn,则可以是按照下式计算得到平均稠密光流:
[0077]
[0078] 其中Fave为平均稠密光流,ai为第i个第一神经网络输出的第一稠密光流的归一化加权系数,满足 对于ai的具体取值可以与第i个第一神经网络的性能正相关,例如如果第i个第一神经网络的性能相对其他第一神经网络的性能较好,则ai可以取较大的值,如果第i个第一神经网络的性能相对其他第一神经网络的性能较差,则ai可以取较小的值。
[0079] S402,针对样本图像帧中的每个像素点,计算平均稠密光流中该像素点的光流值,与第二稠密光流中该像素点的光流值的差值,作为该像素点的光流差值。
[0080] 平均稠密光流是多个第一稠密光流加权平均得到的,其中也包含了样本图像帧中各个像素点的光流值,因此该步骤可以参见S301中的相关计算,在此不再赘述。
[0081] S403,将样本图像帧中所有像素点的光流差值累加,得到平均稠密光流与第二稠密光流之间的偏差,作为第一稠密光流与第二稠密光流之间的偏差。
[0082] 单个第一神经网络学习到的映射关系可能存在一定误差,平均稠密光流能够同时反映出多个第一神经网络学习到的映射关系加权得到的平均映射关系,而该平均映射关系,由于综合了多个第一神经网络学习到的映射关系,因此相比于单个第一神经网络学习到的映射关系可能更加准确,泛化能力更强。因此选用该实施例训练得到的第二神经网络性能可能进一步提高。
[0083] 下面将结合具体的应用场景,对本申请实施例提供的光流神经网络训练方法进行说明,可以参见图5a,图5a所示为本申请实施例提供的训练框架的一种结构示意图,包括第一神经网络510和第二神经网络520,其中,第一神经网络510包括第一特征编码模块511、第一特征解码模块512以及第二特征解码模块513,第二神经网络520包括第二特征编码模块521、第三特征解码模块522以及第四特征解码模块523。第一特征编码模块511和第二特征编码模块521用于从输入的图像对中提取图像特征,第一特征解码模块512和第三特征解码模块522用于基于提取到的图像特征,计算64倍(在其他实施例中也可以是其他倍率)的降采样倍率下的稠密光流,第二特征解码模块513和第四特征解码模块523用于基于计算得到的64倍的降采样倍率下的稠密光流以及图像特征,计算输入图像对的稠密光流。
[0084] 在训练第二神经网络时,可以将样本图像对分别输入第一特征编码模块511和第二特征编码模块521,并基于第一特征解码模块512输出的64倍的降采样倍率下的稠密光流,与第三特征解码模块522输出的64倍的降采样倍率下的稠密光流之间的偏差,以及第二特征解码模块513输出的稠密光流与第四特征解码模块523输出的稠密光流之间的偏差,调整第二神经网络的网络参数。
[0085] 参见图5b,图5b为本申请实施例提供的训练框架的另一种结构示意图,在调整第二神经网络的网络参数时,除了基于第一特征解码模块512输出的64倍的降采样倍率下的稠密光流,与第三特征解码模块522输出的64倍的降采样倍率下的稠密光流之间的偏差,以及第二特征解码模块513输出的稠密光流与第四特征解码模块523输出的稠密光流之间的偏差,还基于第三特征解码模块522输出的64倍的降采样倍率下的稠密光流与第一真值之间的损失,以及第四特征解码模块523输出的稠密光流与第二真值之间的损失。其中,第一真值为针对输入的图像对标注的64倍的降采样倍率下的稠密光流,第二真值为针对输入的图像对标注不下采样的稠密光流。选用该实施例,可以联合第一神经网络以及标注的真值对第二神经网络进行训练,进一步提高第二神经网络的性能。
[0086] 参见图6,图6所示为本申请实施例提供的光流神经网络训练装置的一种结构示意图,可以包括:
[0087] 样本输入模块601,用于将样本图像帧和样本图像帧的相邻图像帧输入第一神经网络和第二神经网络,得到第一神经网络输出的第一稠密光流和第二神经网络输出的第二稠密光流,第一神经网络为预先经过训练的光流神经网络,第二神经网络为模型复杂度低于第一神经网络的光流神经网络;
[0088] 参数调整模块602,用于基于第一稠密光流与第二稠密光流之间的偏差,调整第二神经网络的网络参数。
[0089] 进一步的,参数调整模块602,还用于针对样本图像帧中的每个像素点,计算第一稠密光流中该像素点的光流值,与第二稠密光流中该像素点的光流值的差值,作为该像素点的光流差值;
[0090] 将样本图像帧中所有像素点的光流差值累加,得到第一稠密光流与第二稠密光流之间的偏差。
[0091] 进一步的,参数调整模块602,用于基于第一稠密光流与第二稠密光流之间的偏差,以及第二稠密光流与样本图像帧的标注稠密光流之间的偏差,调整第二神经网络的网络参数。
[0092] 进一步的,第一稠密光流为第一神经网络在多个不同的降采样倍率上输出的多个稠密光流;
[0093] 第二稠密光流为第二神经网络在多个不同的降采样倍率上输出的多个稠密光流;
[0094] 参数调整模块602,具体用于针对多个不同的降采样倍率中的每个降采样倍率,基于第一稠密光流中在该降采样倍率下输出的稠密光流,与第二稠密光流中在该降采样倍率下输出的稠密光流之间的偏差,调整第二神经网络的网络参数。
[0095] 进一步的,第一神经网络为多个预先经过训练的光流神经网络;
[0096] 参数调整模块602,具体用于将多个第一神经网络输出的第一稠密光流进行加权平均,得到平均稠密光流;
[0097] 基于平均稠密光流与第二稠密光流之间的偏差,调整第二神经网络的网络参数。
[0098] 进一步的,第二神经网络的深度小于第一神经网络的深度,第二神经网络的宽度小于第一神经网络的宽度。
[0099] 本申请实施例还提供了一种电子设备,如图7所示,包括存储器701,用于存放计算机程序;
[0100] 处理器702,用于执行存储器701上所存放的程序时,实现如下步骤:
[0101] 将样本图像帧和样本图像帧的相邻图像帧输入第一神经网络和第二神经网络,得到第一神经网络输出的第一稠密光流和第二神经网络输出的第二稠密光流,第一神经网络为预先经过训练的光流神经网络,第二神经网络为模型复杂度低于第一神经网络的光流神经网络;
[0102] 基于第一稠密光流与第二稠密光流之间的偏差,调整第二神经网络的网络参数。
[0103] 进一步的,第一稠密光流与第二稠密光流之间的偏差,通过以下方式得到:
[0104] 针对样本图像帧中的每个像素点,计算第一稠密光流中该像素点的光流值,与第二稠密光流中该像素点的光流值的差值,作为该像素点的光流差值;
[0105] 将样本图像帧中所有像素点的光流差值累加,得到第一稠密光流与第二稠密光流之间的偏差。
[0106] 进一步的,基于第一稠密光流与第二稠密光流之间的偏差,调整第二神经网络的网络参数,包括:
[0107] 基于第一稠密光流与第二稠密光流之间的偏差,以及第二稠密光流与样本图像帧的标注稠密光流之间的偏差,调整第二神经网络的网络参数。
[0108] 进一步的,第一稠密光流为第一神经网络在多个不同的降采样倍率上输出的多个稠密光流;
[0109] 第二稠密光流为第二神经网络在多个不同的降采样倍率上输出的多个稠密光流;
[0110] 基于第一稠密光流与第二稠密光流之间的偏差,调整第二神经网络的网络参数,包括:
[0111] 针对多个不同的降采样倍率中的每个降采样倍率,基于第一稠密光流中在该降采样倍率下输出的稠密光流,与第二稠密光流中在该降采样倍率下输出的稠密光流之间的偏差,调整第二神经网络的网络参数。
[0112] 进一步的,第一神经网络为多个预先经过训练的光流神经网络;
[0113] 基于第一稠密光流与第二稠密光流之间的偏差,调整第二神经网络的网络参数,包括:
[0114] 将多个第一神经网络输出的第一稠密光流进行加权平均,得到平均稠密光流;
[0115] 基于平均稠密光流与第二稠密光流之间的偏差,调整第二神经网络的网络参数。
[0116] 进一步的,第二神经网络的深度小于第一神经网络的深度,第二神经网络的宽度小于第一神经网络的宽度。
[0117] 上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0118] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0119] 在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一光流神经网络训练方法。
[0120] 在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一光流神经网络训练方法。
[0121] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0122] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0123] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0124] 以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。