图像处理方法及装置与流程

文档序号:17742838发布日期:2019-05-24 20:20阅读:124来源:国知局
图像处理方法及装置与流程

本申请涉及深度学习技术领域,具体而言,涉及一种图像处理方法及装置。



背景技术:

随着神经网络模型在深度学习领域的广泛应用,现如今的研究着重于设计更深的网络来提高模型的精度。以图像分类任务为例,目前流行的网络框架(如resnet,inception等)虽然能够达到很高的分类精度,然而对于任意图像的分类都需要进行大量的浮点运算,其效率比较低下。



技术实现要素:

有鉴于此,本申请实施例提供一种图像处理方法及装置,根据待处理图像预测下采样位置,将在下采样位置处添加下采样层后的神经网络模型用于执行图像处理任务,有效降低了图像处理过程中模型的运算量。为实现上述目的,本申请提供如下技术方案:

第一方面,本申请实施例一种图像处理方法,包括:

将待处理图像输入至第一神经网络模型,获得所述第一神经网络模型预测的第二神经网络模型中的第一下采样位置;在所述第一下采样位置处添加第一下采样层,其中,所述第一下采样层用于对所述第二神经网络模型位于所述第一下采样位置之前的部分输出的特征图进行下采样,并将下采样后的特征图输出至所述第二神经网络模型位于所述第一下采样位置之后的部分,添加所述第一下采样层之后的所述第二神经网络模型为第三神经网络模型;将所述待处理图像输入至所述第三神经网络模型,获得所述第三神经网络模型输出的第一图像处理结果。

在上述方法中,通过在第二神经网络模型的第一下采样位置处添加第一下采样层,实现了在图像处理过程中,对第二神经网络模型位于第一下采样位置之前的部分输出的特征图的下采样,下采样后的特征图被输出至第二神经网络模型位于第一下采样位置之后的部分,而这部分网络的运算量将由于特征图尺寸的缩小而显著下降。

同时,第一下采样位置是第一神经网络模型根据待处理图像进行预测获得的,对于不同的待处理图像,第一下采样位置可能被预测为不同的位置,因此第一下采样层可能被添加至不同的位置。这意味着对于不同的待处理图像,在其被处理的过程中执行下采样操作的位置可能是不同的,即执行下采样操作的位置具有自适应性,下采样具有较高的灵活性。进一步的,若能够合理设计并训练第一神经网络模型,还可以使每个待处理图像在适合于该图像内容的位置处进行下采样,使第二神经网络模型在降低运算量和保证模型精度两方面取得平衡。

在第一方面的一些实施例中,所述将待处理图像输入至第一神经网络模型,获得所述第一神经网络模型预测的第二神经网络模型中的第一下采样位置,包括:将所述待处理图像输入至所述第一神经网络模型,获得所述第一神经网络模型预测的所述第二神经网络模型中的所述第一下采样位置以及第一下采样倍数;所述在所述第一下采样位置处添加第一下采样层,包括:在所述第一下采样位置处添加具有所述第一下采样倍数的所述第一下采样层。

在这些实施例中,第一神经网络模型除了预测下采样位置之外还能够预测下采样倍数,使得下采样操作具有更高的灵活性。其中,下采样倍数也是直接与模型的运算量相关的。

在第一方面的一些实施例中,在所述将待处理图像输入至第一神经网络模型之前,所述方法还包括:将训练图像输入至所述第一神经网络模型,获得所述第一神经网络模型预测的所述第二神经网络模型中的第二下采样位置;在所述第二下采样位置处添加第二下采样层,添加所述第二下采样层之后的所述第二神经网络模型为第四神经网络模型;将所述训练图像输入至所述第四神经网络模型,获得所述第四神经网络模型输出的第二图像处理结果;根据所述第二下采样位置在所述第二神经网络模型中的深度确定第一神经网络模型的第一预测损失,并根据所述第二图像处理结果与所述训练图像的标签确定所述第四神经网络模型的第二预测损失;根据所述第一预测损失以及所述第二预测损失调整所述第一神经网络模型以及所述第四神经网络模型的参数,或者,根据所述第一预测损失以及所述第二预测损失调整所述第一神经网络模型的参数,并根据所述第二预测损失调整所述第四神经网络模型的参数。

第一预测损失是第一神经网络模型预测第二下采样位置产生的损失,表征第四神经网络模型执行图像处理任务的运算量(第二下采样位置在模型中的深度越小,即越早进行下采样,则模型的运算量越小,反之越大),第二预测损失是第四神经网络模型执行图像处理任务的损失,表征第四神经网络模型的精度。因此,利用两种预测损失进行第一神经网络模型以及第四神经网络模型的训练,能够使训练好的第一神经网络模型预测出合适的第一下采样位置,进而能够使第二神经网络模型(训练第四神经网络模型相当于也训练了第二神经网络模型)在降低运算量和保证模型精度两方面取得平衡。

此外,对于不同的训练图像,由于第二下采样位置可能被预测为不同的位置,因此在训练过程中每次在第二下采样网络的同一位置处产生的特征图的尺寸可能不同,有利于避免第二神经网络模型的过拟合,提高模型在图像处理任务中的处理精度。

在第一方面的一些实施例中,在所述将待处理图像输入至第一神经网络模型之前,所述方法还包括:

将训练图像输入至所述第一神经网络模型,获得所述第一神经网络模型预测的所述第二神经网络模型中的第二下采样位置以及第二下采样倍数;在所述第二下采样位置处添加具有所述第二下采样倍数的第二下采样层,添加所述第二下采样层之后的所述第二神经网络模型为第四神经网络模型;将所述训练图像输入至所述第四神经网络模型,获得所述第四神经网络模型输出的第二图像处理结果;根据所述第二下采样位置在所述第二神经网络模型中的深度以及所述第二下采样倍数确定第一神经网络模型的第一预测损失,并根据所述第二图像处理结果与所述训练图像的标签确定所述第四神经网络模型的第二预测损失;根据所述第一预测损失以及所述第二预测损失调整所述第一神经网络模型以及所述第四神经网络模型的参数,或者,根据所述第一预测损失以及所述第二预测损失调整所述第一神经网络模型的参数,并根据所述第二预测损失调整所述第四神经网络模型的参数。

若希望第一神经网络模型能够对下采样倍数进行预测,则可以采样上述训练方式。之前已经提到,第一预测损失表征第四神经网络模型执行图像处理任务的运算量,而除了第二下采样位置之外,第二下采样倍数也直接影响这个运算量(在第二下采样位置确定时,第二下采样倍数越小,模型的运算量越大,反之越小),因此在计算第一预测损失时,将第二下采样倍数也考虑在内。

在第一方面的一些实施例中,所述第一预测损失与所述第二下采样位置在所述第二神经网络模型中的深度正相关。

也就是说,第二下采样位置在第二神经网络模型中的深度越小,第一预测损失越小,反之越大,或者也可以说第一预测损失与第四神经网络模型执行图像处理任务的运算量是正相关的。因此,训练好的第一神经网络模型在预测第一下采样位置时,其预测的第一下采样位置将在保证第二神经网络模型的精度的前提下倾向于第二神经网络模型中深度较小的位置,进而能够使第二神经网络模型在保证模型精度的情况下尽可能降低运算量。

对于待处理图像,其中包括简单图像和难图像,简单图像是指在图像处理任务中容易获得正确处理结果的图像,难图像是指在图像处理任务中不容易获得正确处理结果(或者容易获得错误处理结果)的图像。对于简单图像,即使在第二神经网络模型中深度较小的位置就进行下采样,同样可以获得正确的处理结果,对于难图像,在第二神经网络模型中深度较小的位置就进行下采样,则难以获得正确的处理结果,而需要在第二神经网络模型中深度较大的位置才能进行下采样。

而通过上述第二预测损失以及与第二下采样位置在第二神经网络模型中的深度正相关的第一预测损失所训练的第一神经网络模型,能够对于简单图像预测一个第二神经网络模型中深度较小的位置,对于难图像预测一个第二神经网络模型中深度较大的位置,即能够根据图像的难度自适应地调整预测出的第一下采样位置,进而使第二神经网络模型的模型精度得到保证,同时运算量又得到有效降低。

在第一方面的一些实施例中,所述第二神经网络模型包括多个候选下采样位置,所述第二下采样位置为所述多个候选下采样位置中的一个。

候选下采样位置可以根据模型的具体结构确定,由于候选下采样位置为有限个,因此第一神经网路模型也可以视为一个分类模型,其预测的分类的个数和候选下采样位置的个数相同。

在第一方面的一些实施例中,所述第二下采样位置在所述第二神经网络模型中的深度是指所述第二下采样位置在所述多个候选下采样位置中的序号,其中,所述多个候选下采样位置按照从所述第二神经网络模型的输入层到输出层依次排序。

从第二神经网络模型的输入层到输出层,依次经过的各个候选下采样位置其在第二神经网络模型中的深度是递增的,而其序号也是递增的,因此可以将其序号作为深度的一种表示方式,实施起来也较为简单。

在第一方面的一些实施例中,所述第一神经网络模型的结构的复杂度小于所述第二神经网络模型的结构的复杂度。

第一神经网络模型只是用来预测第一下采样位置,并不直接参与图像处理,因此可以采用结构较简单的小网络实现,同时也避免第一神经网络本身在进行预测时带来过多的运算量。

在第一方面的一些实施例中,所述第一下采样层包括池化层。

池化层可以采用最大池化、平均池化等方式,不作限定。同时,池化层本身没有需要训练的参数,实施起来较为简单。

第二方面,本申请实施例提供一种图像处理装置,包括:

下采样位置预测模块,用于将待处理图像输入至第一神经网络模型,获得所述第一神经网络模型预测的第二神经网络模型中的第一下采样位置;

下采样层插入模块,用于在所述第一下采样位置处添加第一下采样层,其中,所述第一下采样层用于对所述第二神经网络模型位于所述第一下采样位置之前的部分输出的特征图进行下采样,并将下采样后的特征图输出至所述第二神经网络模型位于所述第一下采样位置之后的部分,添加所述第一下采样层之后的所述第二神经网络模型为第三神经网络模型;

图像处理模块,用于将所述待处理图像输入至所述第三神经网络模型,获得所述第三神经网络模型输出的第一图像处理结果。

第三方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一个可能的实施例提供的方法的步骤。

第四方面,本申请实施例提供一种电子设备,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一个可能的实施例提供的方法的步骤。

为使本申请的上述目的、技术方案和有益效果能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例提供的一种图像处理方法的流程图;

图2示出了本申请实施例提供的图像处理方法的工作原理图;

图3示出了一种可应用于本申请实施例中的神经网络模型的结构示意图;

图4示出了本申请实施例提供的一种图像处理装置的功能模块图;

图5示出了一种可应用于本申请实施例中的电子设备的结构框图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

图1示出了本申请实施例提供的一种图像处理方法的流程图,图2示出了本申请实施例提供的图像处理方法的工作原理图。结合参照图1以及图2,该方法包括:

步骤s10:将待处理图像输入至第一神经网络模型,获得第一神经网络模型预测的第二神经网络模型中的第一下采样位置。

本申请实施例提供的图像处理方法使用两个神经网络模型,分别是第一神经网络模型以及第二神经网络模型,这里所称的神经网络模型可以是,但不限于卷积神经网络模型。其中,第一神经网络模型用于根据输入图像预测第二神经网络模型中的下采样位置,下采样位置是指在第二神经网络模型执行图像处理任务时需要执行下采样操作的位置。

步骤s10至步骤s12执行于神经网络模型已经训练好并投入使用之后,因此对步骤s10而言,上述输入图像是指模型在正式使用时输入的图像,不妨称为待处理图像,上述下采样位置是根据待处理图像预测出的,不妨称为第一下采样位置,以便与后文中模型训练过程中的输入图像、下采样位置加以区分。对于不同的待处理图像,第一下采样位置可能被预测为第二神经网络模型中不同的位置。

第一下采样位置可以为第二神经网络模型中的一个或多个位置,在第一下采样位置为多个位置时,每个位置都表示一个需要执行下采样操作的位置,此时对第一神经网络模型的学习能力也有更高的要求。为简化阐述,后文在提到第一下采样位置时,一般以第一下采样位置为第二神经网络模型中的一个位置的情况为例,但这不应当视为对本申请保护范围的限制。对于后文提到的第二下采样位置,也是类似的,可能为第二神经网络模型中的一个或多个位置。

在一些实现方式中,第二神经网络模型中有哪些可以执行下采样操作的位置是已知的,不妨称为候选下采样位置,第二神经网络模型包括多个候选下采样位置,预测出的第一下采样位置为多个候选下采样位置中的一个。具体将哪些位置作为候选下采样位置,可以根据第二神经网络模型的具体结构以及实际需求确定,其确定方式不作限定。

以图3为例,图3中的第二神经网络模型包括依次连接的n(n≥1)个网络单元(网络单元1至网络单元n)以及第二全连接层,为简化表示,第二神经网络模型中的一些可能的组件,如分类器等未示出。每个网络单元中包括至少一层(例如可以是卷积层、池化层等),各网络单元的结构可以相同也可以不同,或者说如何划分各网络单元是不作限定的。

将每个网络单元以及第二全连接层之前的位置都作为一个候选下采样位置,共有n+1个候选下采样位置,即第一下采样位置为这n+1个候选下采样位置中的一个,因此第一神经网路模型也可以视为一个k分类模型,其预测的分类的个数和候选下采样位置的个数相同,在图3中k=n+1。

图3还示出了第一神经网络模型的一种可能的结构,其包括依次连接的第一卷积层、第一池化层、第二卷积层、第三卷积层、第二池化层以及第一全连接层。其中,第一卷积层的参数3×5×5×16分别表示输入通道数、卷积核尺寸(5×5)以及输出通道数,s=2表示步长(stride),其余两个卷积层参数的含义类似。第一池化层的参数2×2表示池化窗口的尺寸,其具体池化方式可以采用平均池化、最大池化等不作限定。第二池化层进行全局平均池化,即对每个通道的特征图分别求其均值。第一全连接层的参数32×k分别表示输入通道数和输出的k个值,这k个值输出到第一神经网络模型的分类器(未示出)后输出分类结果k,k可能为0至n之间的任一整数,表示对应的候选下采样位置,k也就是第一神经网络模型预测的第一下采样位置。可选的,第一神经网络模型输出的k值可以采用one-hot编码的形式输出。可以理解的,能够实现k分类的模型有很多种设计方式,图3示出的仅仅是其中一种结构,也可以采用其他的参数以及其他的模型结构,或者直接使用一些现有的模型架构,如lenet、alexnet、vgg、googlenet、resnet等等。

第一神经网络模型的训练方式不作限定,例如可以根据对下采样位置的预测结果以及执行图像处理任务的图像处理结果进行有监督的学习,后文将给出一些可能的训练方式,此处暂不进行深入阐述。

步骤s11:在第二神经网络模型的第一下采样位置处添加第一下采样层。

第一下采样层可以是,但不限于是池化层。在第一下采样层采用池化层实现时,其可以采用平均池化、最大池化等方式,可以在步骤s10执行之前就确定好池化方式,同时还可以事先确定好池化的参数,例如池化窗口的尺寸,池化的步长等。池化层本身没有需要训练的参数,实施起来较为简单。为便于阐述,将添加了第一下采样层之后的第二神经网络模型称为第三神经网络模型。

添加第一下采样层有多种方式,例如,第二神经网络模型的第一下采样位置处本来没有下采样层,可以将第一下采样层插入到该位置,又例如,第二神经网络模型的第一下采样位置处本来已有下采样层,但并未启用(从效果上看相当于未实际加入到模型中),在第一神经网络预测出第一下采样位置后,将第一下采样位置处的下采样层启用,启动的下采样层就是第一下采样层。

步骤s12:将待处理图像输入至第三神经网络模型,获得第三神经网络模型输出的第一图像处理结果。

第三神经网络模型是用于执行图像处理任务的模型,这里所称的图像处理任务可以是图像分类、图像分割、目标检测等任务,不作限定,对应的图像处理结果就是图像分类结果、图像分割结果、目标检测结果等等,不妨将待处理图像输入至第三神经网络模型后模型输出的图像处理结果称为第一图像处理结果,以便与后文中模型训练过程中的图像处理结果加以区分。

在执行图像处理任务时,第一下采样层用于对第二神经网络模型位于第一下采样位置之前的部分输出的特征图进行下采样,并将下采样后的特征图输出至第二神经网络模型位于第一下采样位置之后的部分。特别地,若在第二神经网络模型的输入层之后就添加下采样层(例如图3中的k=0位置),则此处的特征图就是指待处理图像。由于下采样后,特征图的尺寸缩小,因此第二神经网络模型位于第一下采样位置之后的部分的运算量将显著降低,对于图像处理的效率将得到提高。在当前的待处理图像处理完后,根据步骤s11中添加下采样层的不同方式,可以将第一下采样层从第三神经网络模型中移除或者停用,恢复第二神经网络模型,然后继续处理下一幅待处理图像。

其中,第二神经网络模型可以是采用lenet、alexnet、vgg、googlenet、resnet等现有架构的模型,也可以是其他用户自行设计的模型。第二神经网络模型可以直接用于执行图像处理任务,当然也可以在其中添加下采样层后,将新生成的模型(如第三神经网络模型)用于执行图像处理任务。第二神经网络模型的训练方式不作限定,例如可以根据执行图像处理任务的图像处理结果进行有监督的学习,后文将给出一些可能的训练方式,此处暂不进行深入阐述。

之前已经提到,对于不同的待处理图像,第一下采样位置可能被第一神经网络模型预测为不同的位置,因此第一下采样层可能被添加至不同的位置。这意味着对于不同的待处理图像,在其被处理的过程中执行下采样操作的位置可能是不同的,即下采样操作具有较高的灵活性,不同于现有的神经网络模型,其模型结构是固定的,其中下采样的位置也是固定的,不能根据不同的输入图像而调整。

执行下采样操作相对于不执行下采样操作能够降低第二神经网络模型在执行图像处理任务时的运算量,在第二神经网络模型保持不变时,第一下采样位置的不同,意味着运算量的降低程度也不同。同时,下采样操作后由于特征图分辨率的降低,因此也有可能造成第二神经网络模型精度的下降。这里所称的精度是指模型执行具体图像处理任务的性能,例如,对于图像分类任务而言,精度就是指模型能够正确分类输入图像的能力,这种能力越强,模型精度越高。由于在本申请实施例提供的图像处理方法中,第一下采样位置是自适应的,因此,若能够合理设计并训练第一神经网络模型,还可以使每个待处理图像在适合于该图像内容的位置处进行下采样,使第二神经网络模型在降低运算量和保证模型精度两方面取得平衡。在后文介绍模型的训练时,会进一步给出具体的例子。

在一些实施例中,步骤s10之前还包括训练第一神经网络模型以及第二神经网络模型的步骤。具体包括:

步骤a:将训练图像输入至第一神经网络模型,获得第一神经网络模型预测的第二神经网络模型中的第二下采样位置。

仍然可参照图2,在执行步骤a至步骤e时,输入图像是指训练集中的训练图像,上述下采样位置是根据训练图像预测出的,不妨称为第二下采样位置,以便与第一下采样位置相区别。对于不同的训练图像,第二下采样位置可能被预测为第二神经网络模型中不同的位置。步骤a的其他内容与步骤s10类似,不再重复阐述。

步骤b:在第二神经网络模型中的第二下采样位置处添加第二下采样层。

第二下采样层和第一下采样层可以是相同的下采样层,例如采样相同的池化方式和相同的参数的池化层。可以理解的,在模型训练时采用和模型正式使用时相同的下采样层,能够使训练环境和模型的使用环境更为一致。当然,在另一些实现方式中,第二下采样层也可以和第一下采样层是不同的下采样层,例如,可能具有不同的下采样倍数,后文再具体介绍。为便于阐述,将添加了第二下采样层之后的第二神经网络模型称为第四神经网络模型。步骤b的其他内容与步骤s11类似,不再重复阐述。

步骤c:将训练图像输入至第四神经网络模型,获得第四神经网络模型输出的第二图像处理结果。

训练图像输入至第四神经网络模型后模型输出的图像处理结果称为第二图像处理结果,以便与第一图像处理结果相区别。步骤c的其他内容与步骤s12类似,不再重复阐述。

步骤d:根据第二下采样位置在第二神经网络模型中的深度确定第一神经网络模型的第一预测损失,并根据第二图像处理结果与训练图像的标签确定第四神经网络模型的第二预测损失。

第一预测损失是第一神经网络模型预测第二下采样位置产生的损失,若第二下采样位置在第二神经网络模型中的深度越小,即越靠近模型的输入层,则第四神经网络模型在执行图像处理任务时的运算量越小,或者说第二神经网络模型在进行下采样后运算量降低的程度越大;反之,若第二下采样位置在第二神经网络模型中的深度越大,即越靠近模型的输出层,则第四神经网络模型在执行图像处理任务时的运算量越大,或者说第二神经网络模型在进行下采样后运算量降低的程度越小。即第一预测损失表征第四神经网络模型执行图像处理任务的运算量,或者也可以说表征第二神经网络模型在进行下采样后运算量降低的程度。

第一预测损失与通常的预测损失的计算方式不同,因为对于预测的第二下采样位置并没有一个正确的预测结果(标签)作为参考,所以第一预测损失实际上只体现预测结果对第一神经网络模型的一种反馈,至于这种反馈的效果可以根据需求确定。例如,若希望预测出的第二下采样位置的深度能尽可能小,以尽量降低第二神经网络模型的运算量,可以将第一预测损失与第二下采样位置在第二神经网络模型中的深度设置为正相关(深度越小,损失越小,否则损失越大),当然,第一预测损失与第二下采样位置在第二神经网络模型中的深度也可以具有其他关系,这里不作限定。

训练图像的标签可以是人工标注的正确的图像处理结果,例如,对于图像分类任务来说,就是指人工标注的正确的类别。根据第二神经网络模型对应的损失函数可以计算第二预测损失,第二预测损失是第四神经网络模型执行图像处理任务的损失,表征第四神经网络模型的精度。

步骤e:根据第一预测损失以及第二预测损失调整第一神经网络模型以及第四神经网络模型的参数,或者,根据第一预测损失以及第二预测损失调整第一神经网络模型的参数,并根据第二预测损失调整第四神经网络模型的参数。

为使训练好的第一神经网络模型预测出合适的第一下采样位置,进而能够使第二神经网络模型在降低运算量和保证模型精度两方面取得平衡,需要利用同时利用第一预测损失和第二预测损失训练第一神经网络模型,而对于第四神经网络模型,至少要利用第二预测损失进行训练,以保证第二神经网络模型的精度,在一些实现方式中还可以利用第一预测损失进行训练,图2中的虚线箭头示出了第一预测损失以及第二预测损失的使用方式。步骤e所称的根据第一损失以及第二损失,可以是指将两种预测损失求和后作为总的预测损失使用。

需要指出,在训练时可以对第四神经网络模型进行训练,但由于第二下采样层只是临时被添加至模型,在处理下一幅训练图像时会将其移除或停用,因此实际训练的对象只是第二神经网络模型。

还需要指出,上面所谓的第二神经网络模型在降低运算量和保证模型精度两方面取得平衡,其中“平衡”的具体含义是不限定的,取决于第一预测损失的定义方式。例如,当第一预测损失与第二下采样位置在第二神经网络模型中的深度正相关时,“平衡”的含义可以是指在保证第二神经网络模型的精度的情况下尽可能降低其运算量。

此外,对于不同的训练图像,由于第二下采样位置可能被预测为不同的位置,因此在训练过程中每次在第二下采样网络的同一位置处产生的特征图的尺寸可能不同,即同一位置的特征图中的像素(即隐藏层的神经元)的数量具有一定的随机性,类似于卷积神经网络中dropout操作的原理,这种随机性有利于避免第二神经网络模型的过拟合,进一步提高模型在图像处理任务中的处理精度。

之前已经提到,在一些实现方式中,第一预测损失与第二下采样位置在第二神经网络模型中的深度正相关,或者也可以说第一预测损失与第四神经网络模型执行图像处理任务的运算量是正相关的。在这些实现方式中,根据第一预测损失以及第二预测损失训练好的第一神经网络模型在预测第一下采样位置时,其预测的第一下采样位置将在保证第二神经网络模型的精度的前提下倾向于第二神经网络模型中深度较小的位置,进而能够使第二神经网络模型在保证模型精度的情况下尽可能降低运算量。

对于待处理图像,其中包括简单图像和难图像,简单图像是指在图像处理任务中容易获得正确处理结果的图像,难图像是指在图像处理任务中不容易获得正确处理结果(或者容易获得错误处理结果)的图像。例如,对于图像分类任务,简单图像就是指容易分类正确的图像,体现为预测的分数(模型输出的置信度)较高且预测正确;难图像就是指不容易分类正确的图像,体现为预测的分数较低。

对于简单图像,即使在第二神经网络模型中深度较小的位置就进行下采样,同样可以获得正确的处理结果,对于难图像,在第二神经网络模型中深度较小的位置就进行下采样,则难以获得正确的处理结果,而需要在第二神经网络模型中深度较大的位置才能进行下采样。

按照上述预测损失定义方式(指第一预测损失与第二下采样位置在第二神经网络模型中的深度正相关)训练的第一神经网络模型,能够对于简单图像预测一个第二神经网络模型中深度较小的位置,尽可能降低第二神经网络模型的运算量,对于难图像则能够预测一个第二神经网络模型中深度较大的位置,尽可能保证第二神经网络模型的精度,从而使得第二神经网络模型的模型精度得到保证,同时运算量又得到有效降低。

第二下采样位置在第二神经网络模型中的深度可以进行量化表示,以计算第一预测损失。例如表示为第二下采样位置到第二神经网络模型的输入层的层数。又例如,参照图3,多个(n+1个)候选下采样位置按照从第二神经网络模型的输入层到输出层依次排序并且分别对应一个序号(k=0,1,2,…,n-1,n),第二下采样位置在第二神经网络模型中的深度也可以定义为第二下采样位置在多个候选下采样位置中的序号(k值),这一序号可由第一神经网络模型直接作为预测结果输出。从第二神经网络模型的输入层到输出层,依次经过的各个候选下采样位置其在第二神经网络模型中的深度是递增的,而它们对应的序号也是递增的,因此可以将其对应的序号作为深度的一种表示方式,实施起来也较为简单。

由于在步骤s10至步骤s12中,第一神经网络模型只是用来预测第一下采样位置,并不直接参与图像处理,因此在一些实施例中,第一神经网络模型可以采用结构复杂度小于第二神经网络模型的结构复杂度的小网络实现,此举同时也可避免第一神经网络本身在进行预测时带来过多的运算量,弱化第二神经网络模型下采样带来的运算量降低的效果。例如,常用的resnet架构的模型有5种深度,分别是18层、34层、50层、101层以及152层,若第一神经网络模型和第二神经网络模型都采用resnet架构,则第一神经网络模型可以采用18层的resnet,而第二神经网络模型可以采用50层的resnet。

对于神经网络模型中的下采样操作而言,除了下采样位置能够决定模型的运算量,下采样倍数同样能够决定模型的运算量,在下采样位置相同的情况下,下采样倍数越大,下采样后模型的运算量越小,下采样倍数越小,下采样后模型的运算量越大。

因此在一些实施例中,步骤s10中的第一神经网络模型被训练为能够根据待处理图像预测第一下采样位置以及第一下采样倍数,在步骤s11中,于第二神经网络模型的第一下采样位置处添加具有第一下采样倍数的第一下采样层。

若第一下采样层采用池化层的方式,则下采样倍数可以定义为池化窗口的尺寸,例如若池化窗口的尺寸为2×2,则下采样倍数可以定义为2,当然也可以定义为4,或者还可以根据池化时的其他参数(如步长等)进行定义。

在一些实现方式中,第一神经网络模型可以将第一下采样位置和第一下采样倍数同时输出,例如,候选下采样位置有k个,第一下采样倍数有3种可能的取值,则第一神经网络模型可以是一个3×k分类模型,其可能输出3×k种分类结果,每个结果对应一个候选下采样位置以及第一下采样倍数的一个取值。

在这些实施例中,下采样操作的位置以及倍数都是自适应的,下采样操作具有更高的灵活性,有利于第二神经网络模型的进一步优化。

进一步的,在这些实施例中,第一神经网络模型以及第二神经网络模型可以通过如下步骤进行训练:

步骤a’:将训练图像输入至第一神经网络模型,获得第一神经网络模型预测的第二神经网络模型中的第二下采样位置以及第二下采样倍数。

步骤b’:在第二下采样位置处添加具有第二下采样倍数的第二下采样层,添加第二下采样层之后的第二神经网络模型为第四神经网络模型。

步骤c’:将训练图像输入至第四神经网络模型,获得第四神经网络模型输出的第二图像处理结果。

步骤d’:根据第二下采样位置在第二神经网络模型中的深度以及第二下采样倍数确定第一神经网络模型的第一预测损失,并根据第二图像处理结果与训练图像的标签确定第四神经网络模型的第二预测损失。

步骤e’:根据第一预测损失以及第二预测损失调整第一神经网络模型以及第四神经网络模型的参数,或者,根据第一预测损失以及第二预测损失调整第一神经网络模型的参数,并根据第二预测损失调整第四神经网络模型的参数。

步骤a’至步骤e’和步骤a至步骤e比较类似,其主要区别是由于第一神经网络模型还预测了第二下采样倍数,因此第一预测损失的计算方式有所不同。其余与步骤a至步骤e相似之处,可参考前文的阐述,不再重复阐述。

之前在阐述步骤d时已经指出,第一预测损失表征第四神经网络模型执行图像处理任务的运算量,或者也可以说表征第二神经网络模型在进行下采样后运算量降低的程度。而除了第二下采样位置之外,第二下采样倍数也直接影响这个运算量,具体为,在第二下采样位置固定时,若第二下采样倍数越小,则第四神经网络模型在执行图像处理任务时的运算量越大,或者说第二神经网络模型在进行下采样后运算量降低的程度越小;反之,若第二下采样倍数越大,则第四神经网络模型在执行图像处理任务时的运算量越小,或者说第二神经网络模型在进行下采样后运算量降低的程度越大。因此在计算第一预测损失时,应将第二下采样倍数也考虑在内。

之前已经提到,在一些实现方式中,第一预测损失被实现为与第二下采样位置在第二神经网络模型中的深度正相关,能够使第二神经网络模型在保证模型精度的情况下尽可能降低运算量。若在第一预测损失中考虑了第二下采样倍数,且同样要达到使第二神经网络模型在保证模型精度的情况下尽可能降低运算量的目的,则第一预测损失可以实现为仍与第二下采样位置在第二神经网络模型中的深度正相关,同时与第二下采样倍数负相关。例如,在一种可选的方案中,第一预测损失由两部分损失构成,第一部分与第二下采样位置在第二神经网络模型中的深度正相关,第二部分与第二下采样倍数负相关,两部分求和即可获得第一预测损失。

本申请实施例还提供一种图像处理装置200,如图4所示。参照图4,该装置包括:

下采样位置预测模块210,用于将待处理图像输入至第一神经网络模型,获得第一神经网络模型预测的第二神经网络模型中的第一下采样位置;

下采样层插入模块220,用于在第一下采样位置处添加第一下采样层,其中,第一下采样层用于对第二神经网络模型位于第一下采样位置之前的部分输出的特征图进行下采样,并将下采样后的特征图输出至第二神经网络模型位于第一下采样位置之后的部分,添加第一下采样层之后的第二神经网络模型为第三神经网络模型;

图像处理模块230,用于将待处理图像输入至第三神经网络模型,获得第三神经网络模型输出的第一图像处理结果。

本申请实施例提供的图像处理装置200,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法施例中相应内容。

本申请实施例还提供一种电子设备300,如图5所示。参照图5,电子设备300包括一个或多个(图中仅示出一个)处理器310以及一个或多个(图中仅示出一个)存储装置320,这些组件通过总线系统330和/或其他形式的连接机构(未示出)互连并相互通讯。

处理器310可以是一种具有数据处理能力和/或指令执行能力的处理单元。例如,可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、微控制单元(microcontrollerunit,mcu)、网络处理器(networkprocessor,np)或者其他常规处理器;还可以是专用处理器,包括数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuits,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。处理器310还可以控制电子设备300中的其他组件以执行期望的功能。

存储装置320可以各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(randomaccessmemory,ram)、高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(readonlymemory,rom)、可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom)、电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)、闪存(flash)等。

在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器310可以读取并运行这些计算机程序指令,以实现本申请实施例提供的图像处理方法的步骤以及其他期望的功能。

可以理解,图5所示的结构仅为示意,电子设备300还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,电子设备300可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得计算机设备执行本申请各个实施例所述方法的全部或部分步骤。前述的计算机设备包括:个人计算机、服务器、移动设备、智能穿戴设备、网络设备、虚拟设备等各种具有执行程序代码能力的设备,前述的存储介质包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟、磁带或者光盘等各种可以存储程序代码的介质。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1