本公开涉及用于处理多个计算机视觉任务的方法和设备,并且更具体地,涉及用于利用有限的硬件资源处理多个相关计算机视觉任务的多任务处理技术。
背景技术:
1、深度神经网络(dnn)的发展已经实现了各种计算机视觉(cv)应用。另外,迁移学习(transfer learning)已被用于在各种cv任务中创建表现出期望的性能特性的dnn。例如,在大数据集上预训练模型并针对目标任务对模型进行微调可允许模型在目标任务中实现期望的性能而没有过度拟合(即,没有损失相关任务的性能)。
2、最近,dnn已被用于人工智能(ai)应用(诸如,增强现实(ar)和自主驾驶)。在一些情况下,这些应用使用单个输入图像同时执行多个相关任务。任务可包括对象分类、深度估计、表面法线估计等。然而,执行多个任务可能是计算密集型的,这可能限制对边缘装置(edge device)的适用性。因此,本领域需要开发用于使用有限的硬件资源来同时处理多个相关cv任务的技术。
技术实现思路
1、提供本
技术实现要素:
以简化的形式介绍构思的选择,并且不限制要求保护的主题的范围。本公开的方面提供用于高效地处理多个计算机视觉(cv)任务的多任务处理技术。公开的实施例可被实现在具有有限的硬件资源的移动终端或边缘终端中。
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、在一个总体方面,一种方法由至少一个处理器基于第一神经网络和第二神经网络来执行,其中,所述方法包括:获得输入图像;通过将与第一神经网络的第一层对应的基础输入图应用于所述第一层,来获得与所述第一层对应的基础输出图,其中,基础输入图基于输入图像;通过将恢复后的与第二神经网络的第二层对应的输入图应用于所述第二层,获得与所述第二层对应的输出图;计算基础输出图和与所述第二层对应的输出图之间的差,以获得与所述第二层对应的差量输出图;基于基础输出图执行第一计算机视觉任务;以及基于基础输出图和差量输出图执行第二计算机视觉任务。
31、所述方法还可包括:基于基础输入图和与所述第二层对应的差量输入图来恢复与所述第二层对应的输入图,以获得恢复后的输入图。所述方法还可包括:将基础输出图和差量输出图存储在存储器中。
32、所述方法还可包括:基于第一计算机视觉任务和第二计算机视觉任务生成增强现实显示。所述方法还可包括:基于第一计算机视觉任务和第二计算机视觉任务执行导航任务。
33、在另一总体方面,一种方法由至少一个处理器基于第一神经网络和第二神经网络来执行,其中,所述方法包括:基于基础神经网络来训练用于第一任务的第一神经网络;基于基础神经网络来训练用于第二任务的第二神经网络;通过将与第一神经网络的第一层对应的基础输入图应用于所述第一层,来获得与所述第一层对应的基础输出图;通过将恢复后的与第二神经网络的第二层对应的输入图应用于所述第二层,获得与所述第二层对应的输出图;计算基础输出图和与所述第二层对应的输出图之间的差,以获得与所述第二层对应的差量输出图;以及将差量输出图存储在存储器中。
34、根据说明书、附图和权利要求,其他特征和方面将是清楚的。