获得图像处理模型的方法、图像处理方法及对应装置与流程

文档序号:16250890发布日期:2018-12-12 00:01阅读:137来源:国知局
获得图像处理模型的方法、图像处理方法及对应装置与流程

本发明涉及图像处理技术领域,具体而言,涉及一种获得图像处理模型的方法、图像处理方法及对应装置。

背景技术

针对不同的图像处理任务,设计适当的神经网络结构,是现在深度学习中的一个基本问题。由于许多神经网络设计时都遵循一定的原则,因此这类神经网络通常可以用一些网络结构参数表示出来。但是由于参数有许多种组合,因此仍需要从中寻求最优参数,而人工试验这些参数所需的时间和资源都是较为昂贵的,因此为了降低工作量,需要一些自动搜索神经网络模型的方法。

目前搜索神经网络模型的方法中,普遍需要大量进行模型训练,所需的硬件资源较多,使得这些方法难以大规模应用。



技术实现要素:

有鉴于此,本发明实施例提供一种获得图像处理模型的方法、图像处理方法及对应装置,以解决上述技术问题。

为实现上述目的,本发明提供如下技术方案:

第一方面,本发明实施例提供一种获得图像处理模型的方法,包括:

生成与初始网络集合中的神经网络结构不同的新的神经网络,删除新生成的神经网络中运行时间超过预设时间限制的神经网络,并将剩余的神经网络添加至候选网络集合,其中,运行时间为神经网络处理完预设图像的时间;

从候选网络集合中选择至少一个神经网络在图像处理任务的训练集上进行训练;

确定可用于图像处理任务的至少一个图像处理模型,其中,每个图像处理模型均为一个训练好的神经网络。

在上述方法中,首先通过生成神经网络获得候选网络集合,然后从候选网络集合中选择至少一个神经网络进行训练。首先,由于候选网络集合已经经过了测速,其中的神经网络都是满足运行时间要求的,因此从候选网络集合选择出的至少一个神经网络的运行速度是可以得到保障的,在此基础上对其进行训练,能够获得运行速度较快的图像处理模型。同时,并不是候选网络集合中的所有神经网络都要进行训练,只有选出的至少一个神经网络才进行训练,从而避免了大量的训练任务,提高了图像处理模型的搜索效率。

结合第一方面,在第一方面的一种可能的实现方式中,生成与初始网络集合中的神经网络结构不同的新的神经网络,删除新生成的神经网络中运行时间超过预设时间限制的神经网络,并将剩余的神经网络添加至候选网络集合,包括:

将初始网络集合确定为基准网络集合;

基于预设的生成策略,重新设置基准网络集合中的神经网络的网络结构参数以生成新的神经网络;

删除新生成的神经网络中运行时间超过预设时间限制的神经网络,获得包括剩余的神经网络的生成网络集合,并将生成网络集合添加至候选网络集合;

基于生成网络集合重新确定基准网络集合,并跳转至基于预设的生成策略,重新设置基准网络集合中的神经网络的网络结构参数以生成新的神经网络的步骤迭代执行,直至满足迭代结束条件。

获得候选神经网络可以通过上述的迭代步骤进行,每次迭代过程中从新生成的神经网络中删除掉运行时间超时的神经网络,仅在候选网络集合中保留满足运行时间要求的神经网络。

结合第一方面的第一种可能的实现方式,在第一方面的二种可能的实现方式中,在基于预设的生成策略,重新设置基准网络集合中的神经网络的网络结构参数以生成新的神经网络之后,在删除新生成的神经网络中运行时间超过预设时间限制的神经网络之前,方法还包括:

删除新生成的神经网络中之前已经生成过的神经网络。

删除重复生成的神经网络,避免无意义的重复计算。

结合第一方面的第一种可能的实现方式,在第一方面的三种可能的实现方式中,网络结构参数包括构成神经网络的模块的种类、构成神经网络的模块的通道数、构成神经网络的模块之间的连接方式以及构成神经网络的模块的数量中的至少一种参数。

神经网络可以视为由一个或多个模块构成,上述四种网络结构参数为描述构成神经网络的模块的基本参数,在已有的神经网络的基础上,按照一定的生成策略,重新设置其中一个或多个参数的值,即可以产生新的神经网络。

结合第一方面的第一种可能的实现方式,在第一方面的四种可能的实现方式中,基于生成网络集合重新确定基准网络集合,包括:

基于预设的剪枝策略,删除生成网络集合中的至少一个神经网络;

将执行删除操作后的生成网络集合确定为基准网络集合。

通过执行剪枝策略,可以避免生成网络集合中的神经网络的数量在迭代过程中不断增大进而影响神经网络生成的性能。

结合第一方面,在第一方面的五种可能的实现方式中,生成与初始网络集合中的神经网络结构不同的新的神经网络之前,方法还包括:

将初始网络集合添加至候选网络集合。

结合第一方面,在第一方面的六种可能的实现方式中,从候选网络集合中选择至少一个神经网络在图像处理任务的训练集上进行训练,包括:

利用适用于图像处理任务的估价函数评估候选网络集合中的神经网络的网络性能,并基于网络性能的排序结果选择至少一个神经网络在图像处理任务的训练集上进行训练。

在上述方法中,仅选择满足性能需求的至少一个神经网络进行训练,显著降低了训练量,同时也可以确保训练出的模型具有良好的性能。这里的性能是指神经网络对于完成某项图像处理任务的性能,例如用于图像分类任务时的错误率等。

结合第一方面的第六种可能的实现方式,在第一方面的七种可能的实现方式中,估价函数的函数值与估价函数评估的神经网络的网络性能正相关。

估价函数的函数值与估价函数评估的神经网络的网络性能正相关,选择这样的估价函数能够很直观地获得神经网络的性能评估。

结合第一方面的第六种可能的实现方式,在第一方面的八种可能的实现方式中,在利用适用于图像处理任务的估价函数评估候选网络集合中的神经网络的网络性能,并基于评估结果选择至少一个神经网络在图像处理任务的训练集上进行训练之后,方法还包括:

基于训练结果更新估价函数的参数。

根据训练结果,可以调整估价函数的参数,然后基于更新后的估价函数重新选择神经网络进行训练。

结合第一方面或第一方面的第一种至第八种中的任意一种可能的实现方式,在第一方面的九种可能的实现方式中,初始网络集合包括空网络,空网络为输入与输出相同的神经网络。

基于空网络进行神经网络生成,可以获得最大的生成范围,即理论上可以生成任意的神经网络。

结合第一方面或第一方面的第一种至第八种中的任意一种可能的实现方式,在第一方面的十种可能的实现方式中,所述图像处理任务为图像分类任务、图像分割任务、图像检测任务以及图像识别任务中的一种任务。

上述为可以利用神经网络模型的常见图像处理任务,本发明实施例提供的方法可以应用于,但不限于应用于上述图像处理任务中。

第二方面,本发明实施例提供一种图像处理方法,包括:

在第一种图像处理任务上应用第一方面或第一方面的任意一种可能的实现方式提供的方法,获得可用于第一种图像处理任务的至少一个第一图像处理模型;

基于至少一个第一图像处理模型在第一种图像处理任务的训练集上的训练结果,从至少一个第一图像处理模型中选择网络性能最优的第一最优图像处理模型;

利用第一最优图像处理模型执行第一种图像处理任务。

在上述方法中,由于第一最优图像处理模型兼具运行速度较快,网络性能较好的优点,因此执行第一种图像处理任务能够获得较好的效果。

第三方面,本发明实施例提供一种图像处理方法,包括:

在第一种图像处理任务上应用第一方面或第一方面的任意一种可能的实现方式提供的方法,获得可用于第一种图像处理任务至少一个第一图像处理模型;

以至少一个第一图像处理模型构成的集合为初始网络集合,在第二种图像处理任务上应用第一方面或第一方面的任意一种可能的实现方式提供的方法,获得可用于第二种图像处理任务的至少一个第二图像处理模型,其中,第二种图像处理任务为与第一种图像处理任务不同种类的图像处理任务;

基于至少一个第二图像处理模型在第二种图像处理任务的训练集上的训练结果,从至少一个第二图像处理模型中选择网络性能最优的第二最优图像处理模型;

利用第二最优图像处理模型执行第二种图像处理任务。

在上述方法中,将用于第一种图像处理任务的第一图像处理模型迁移至用于第二种图像处理任务的第二图像处理模型,相当于一个迁移学习的过程,可以有效利用模型在第一种图像处理任务中的训练成果,同时结合第二种图像处理任务的具体需求,最终获得的第二最优图像处理模型兼具运行速度较快,网络性能较好的优点,因此执行第二种图像处理任务能够获得较好的效果。

第四方面,本发明实施例提供一种获得图像处理模型的装置,包括:

生成模块,用于生成与初始网络集合中的神经网络结构不同的新的神经网络,删除新生成的神经网络中运行时间超过预设时间限制的神经网络,并将剩余的神经网络添加至候选网络集合,其中,运行时间为神经网络处理完预设图像的时间;

训练模块,用于从候选网络集合中选择至少一个神经网络在图像处理任务的训练集上进行训练;

模型确定模块,用于确定可用于图像处理任务的至少一个图像处理模型,其中,每个图像处理模型均为一个训练好的神经网络。

第五方面,本发明实施例提供一种图像处理装置,包括:

模型获取模块,用于在第一种图像处理任务上应用第一方面或第一方面的任意一种可能的实现方式提供的方法,获得可用于第一种图像处理任务的至少一个第一图像处理模型;

最优模型选择模块,基于至少一个第一图像处理模型在第一种图像处理任务的训练集上的训练结果,从至少一个第一图像处理模型中选择网络性能最优的第一最优图像处理模型;

执行模块,用于利用第一最优图像处理模型执行第一种图像处理任务。

第六方面,本发明实施例提供一种图像处理装置,包括:

第一模型获取模块,用于在第一种图像处理任务上应用第一方面或第一方面的任意一种可能的实现方式提供的方法,获得可用于第一种图像处理任务的至少一个第一图像处理模型;

第二模型获取模块,用于将至少一个第一图像处理模型构成的集合确定为初始网络集合,在第二种图像处理任务上应用第一方面或第一方面的任意一种可能的实现方式提供的方法,获得可用于第二种图像处理任务的至少一个第二图像处理模型,其中,第二种图像处理任务为与第一种图像处理任务不同种类的图像处理任务;

最优模型选择模块,用于基于至少一个第二图像处理模型在第二种图像处理任务的训练集上的训练结果,从至少一个第二图像处理模型中选择网络性能最优的第二最优图像处理模型;

执行模块,用于利用第二最优图像处理模型执行第二种图像处理任务。

第七方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的方法的步骤。

第八方面,本发明实施例提供一种电子设备,包括存储器以及处理器,存储器中存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的方法的步骤。

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

附图说明

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

图1示出了一种可应用于本发明实施例中的电子设备的结构框图;

图2示出了本发明第一实施例提供的获得图像处理模型的方法的流程图;

图3示出了本发明第一实施例提供的获得图像处理模型的方法的步骤s10的流程图;

图4示出了本发明第一实施例提供的获得图像处理模型的方法的步骤s11的流程图;

图5示出了本发明第四实施例提供的获得图像处理模型的装置的功能模块图;

图6示出了本发明第五实施例提供的图像处理装置的功能模块图;

图7示出了本发明第六实施例提供的图像处理装置的功能模块图。

具体实施方式

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

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

图1示出了一种可应用于本发明实施例中的电子设备100的结构框图。参照图1,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108以及图像采集装置110,这些组件通过总线系统112和/或其他形式的连接机构(未示出)互连。

处理器102可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备100中的其他组件以执行期望的功能。

存储装置104可以各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行计算机程序指令,以实现下文的本发明实施例中的方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如应用程序使用和/或产生的各种数据等。

输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。

可以理解,图1所示的结构仅为示意,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。于本发明实施例中,电子设备100可以是服务器、个人计算机、移动设备、智能穿戴设备、车载设备等设备,也可以不限于物理设备,例如可以是虚拟机、云服务器等。

第一实施例

图2示出了本发明第一实施例提供的获得图像处理模型的方法的流程图。该方法所获得的图像处理模型是指可用于某种图像处理任务的神经网络模型,这里所称的图像处理任务包括但不限于图像分类任务、图像分割任务、图像检测任务以及图像识别任务。参照图2,该方法包括:

步骤s10:电子设备100的处理器102生成与初始网络集合中的神经网络结构不同的新的神经网络,删除新生成的神经网络中运行时间超过预设时间限制的神经网络,并将剩余的神经网络添加至候选网络集合。

初始网络集合中包括至少一个神经网络,基于初始网络集合中的每个神经网络可以生成与原神经网络结构不同的新的神经网络。对新生成的每个神经网络都进行测速,获得神经网络的运行时间,这里所称的运行时间是指神经网络处理完预设图像的时间,例如,从将预设的一张或多张图像输入至神经网络,直至该神经网络输出所有图像的分类处理结果的时间,。

获得神经网络的运行时间后,将其与预设时间限制进行对比,如果运行时间大于预设时间限制,表明该神经网络所具有的网络结构执行效率较低,后续对该神经网络进行训练价值不高,因此可以将其删除。如果运行时间不大于预设时间限制,表明该神经网络所具有的网络结构执行效率较高,后续对该神经网络进行训练价值较高,因此可以将其保留到候选网络集合。

其中,初始网络集合中的神经网络的选取方式不作限定,可以选择基础的神经网络模块,例如xception模块、resnet模块等,也可以选择空网络,即输入与输出相同的神经网络,还可以选择任意由用户指定的神经网络。在理论上,基于空网络可以生成任意结构的神经网络,因此在期望有较大的网络生成范围时,可以选择将空网络作为初始网络集合中的神经网络。

在某些实施方式中,于步骤s10执行之前,可以将初始网络集合中的神经网络也添加到候选网络集合中,以增加候选网络集合中具有不同结构的神经网络的数量。

步骤s11:电子设备100的处理器102从候选网络集合中选择至少一个神经网络在图像处理任务的训练集上进行训练。

获得候选网络集合后,从中选择至少一个神经网络进行训练。选择的方法不作限定,例如可以是人工选择,也可以是利用某些算法自动选择。选择的标准也不作限定,例如可以是根据神经网络的性能进行选择,这里所称的性能是指神经网络用于完成某种图像处理任务的能力,比如用于图像分类任务的神经网络其性能可以是指分类结果的准确性。

既然要获得可用于某种图像处理任务的图像处理模型,自然应当在此种图像处理任务对应的训练集上进行模型训练,例如,对于图像分类任务,可以在imagenet数据集上进行训练。

步骤s12:电子设备100的处理器102确定可用于图像处理任务的至少一个图像处理模型。

其中,每个图像处理模型均为一个步骤s11中训练好的神经网络。在步骤s12的一种实现方式中,可以将步骤s11中训练好的神经网络全都作为可用于某种图像处理任务的图像处理模型。在步骤s12的另一种实现方式中,也可以从训练好的神经网络中进一步基于网络性能等因素进一步筛选出可用于图像处理任务的图像处理模型。

需要特别指出,尽管步骤s11中采用了某种图像处理任务的训练集进行训练,但步骤s12中获得的图像处理模型仅仅是可用于该图像处理任务,并不限于只能用于和步骤s11中相同的图像处理任务,事实上,通过迁移学习等方式,也可以将获得的图像处理模型用于其他图像处理任务,在第三实施例中还会进一步介绍这种情况。

在上述方法中,由于候选网络集合已经经过了测速,其中的神经网络都是满足运行时间要求的,因此从候选网络集合选择出的至少一个神经网络的运行速度是可以得到保障的,在此基础上利用图像处理任务对应的训练集对其进行训练,能够获得运行速度较快的图像处理模型。同时,并不是候选网络集合中的所有神经网络都要进行训练,只有选出的至少一个神经网络才进行训练,从而避免了大量的训练任务,提高了图像处理模型的搜索效率,即能够在较短的时间内确定出可用于图像处理任务的图像处理模型。

在第一实施例的一种实施方式中,步骤s10可以采用迭代的方式执行。图3示出了本发明第一实施例提供的获得图像处理模型的方法的步骤s10的流程图。参照图3,步骤s10可以包括:

步骤s100:电子设备100的处理器102将初始网络集合确定为基准网络集合。

在每次迭代过程中,利用生成策略,基于基准网络集合产生生成网络集合,在迭代过程中基准网络集合被不断更新,在首次迭代开始之前,将初始网络集合确定为基准网络集合的“初始值”。

步骤s101:电子设备100的处理器102基于预设的生成策略,重新设置基准网络集合中的神经网络的网络结构参数以生成新的神经网络。

网络结构参数是指用于描述神经网络的网络结构的参数,网络结构参数的改变将引起神经网络的网络结构的改变,因此重新设置网络参数可以产生与原神经网络具有不同结构的新的神经网络。

在一种认知方式中,将神经网络看作是由一个或多个模块组合而成的,模块既可以是神经网络最基本的组件,例如卷积层、反卷积层、池化层等,也可以是较为复杂的功能单元,例如xception模块、resnet模块等。因此,在此种认知方式下,设置神经网络的网络结构参数实际上就是设置模块的某些属性,例如可以包括,但不限于模块的种类、模块的通道数、模块之间的连接方式、模块的数量等属性。对于采取的模块增加、修改、替换、连接顺序调整等操作都属于重新设置神经网络的网络结构参数的行为。

生成策略是指对神经网络的网络结构参数进行重新设置的方法,采用何种生成策略是不限定的,可以根据实际需求确定,例如可以采用使生成的网络结构逐渐变得复杂的生成策略,包括添加模块、枚举模块的通道数等策略,以便产生大量可供选用的神经网络。

步骤s102:电子设备100的处理器102删除新生成的神经网络中运行时间超过预设时间限制的神经网络,获得包括剩余的神经网络的生成网络集合,并将生成网络集合添加至候选网络集合。

关于对新生成的神经网络的测速,在步骤s10中已经阐述过相关内容,此处不再重复阐述。经过处理后,生成网络集合中的神经网络都是满足运行时间要求的,从而可以将生成网络集合并入到候选网络集合中。

步骤s103:电子设备100的处理器102基于生成网络集合重新确定基准网络集合。

可以直接将生成网络集合确定为基准网络集合,或者也可以对生成网络集合进行某些处理后获得基准网络集合,获得基准网络集合后,跳转至步骤s100开始下一次迭代过程。

在进行下一次迭代之前,需要先判断是否已经满足迭代结束条件,只有在不满足迭代结束条件时才进行迭代,否则终止迭代继续执行后续步骤。迭代结束条件可以根据实际需求确定,例如可以是,但不限于如下条件中的一种:候选网络集合中的神经网络已经达到预设数量,迭代过程的执行时间已经超过预设时长,在最新一次迭代过程中新生成的所有神经网络的运行时间都不满足要求。在某些情况下,判断迭代结束条件可以在每次执行步骤s103之前就进行判断,如果已经满足迭代结束条件,则不需要再执行步骤s103。

以迭代的方式实现步骤s10,便于对生成候选网络集合的过程进行控制,在其他一些实现方式中,也可以不通过迭代的方式生成候选网络集合,例如通过并行处理的方式。

在第一实施例的一种实施方式中,在步骤s101之后,在步骤s102之前,还可以对步骤s101中新生成的神经网络进行去重,即删除掉其中在之前已经生成过的神经网络。具体而言,在每个神经网络生成时可以对其进行标记,避免下次再生成同样结构的神经网络,特别地,对于初始网络集合中的神经网络也可以进行标记。

由于步骤s101至步骤s103是一个迭代过程,进行神经网络的去重可以避免无意义的重复性的计算,这些重复性的计算不仅浪费计算资源,甚至可能导致迭代过程无法结束。例如,如果不进行去重,已经计算过运行时间的神经网络将会再次计算运行时间,又例如,用一个之前已经生成过的神经网络去生成新的神经网络,可能产生更多之前已经生成过的神经网络。

在第一实施例的一种实施方式中,步骤s103可以采用以下方式实现。首先基于预设的剪枝策略删除生成网络集合中的至少一个神经网络,然后将执行删除操作后的生成网络集合确定为基准网络集合。

这里的剪枝策略是指从生成神经网络集合中选择出至少一个神经网络并将其删除的方法。通过执行剪枝策略,可以避免生成网络集合中的神经网络的数量在迭代过程中不断增大进而影响神经网络生成的性能。

采用何种剪枝策略是不限定的,可以根据实际需求确定,例如通过估价函数评估生成网络中的神经网络的性能,仅保留性能最好的若干个神经网络,将其余的删除,关于估价函数,在后续阐述步骤s11的具体实现方式中再具体阐述。又例如,基于神经网络的结构从理论上计算生成网络中的神经网络的运算能力,如计算神经网络的每秒浮点运算次数(floating-pointoperationspersecond,flops),选择运算能力最强的若干个神经网络,将其余的删除。

在制定剪枝策略时,为避免过度修剪,删除掉一些有价值的神经网络,导致后续无法再基于该神经网络进行生成,可以对生成网络中具有不同网络结构参数的神经网络采取一定程度的保护措施。例如,具有不同层数的神经网络在剪枝后至少要保留一个,又例如,将计算出的神经网络的flops划分为若干个区间,每个区间内的神经网络在剪枝后至少要保留一个。当然,上述仅为示例,还可以包括其他保护措施。

在第一实施例的一种实施方式中,步骤s11可以采用迭代的方式执行。图4示出了本发明第一实施例提供的获得图像处理模型的方法的步骤s11的流程图。参照图4,步骤s11可以包括:

步骤s110:电子设备100的处理器102利用适用于图像处理任务的估价函数评估候选网络集合中的神经网络的网络性能,并基于网络性能的排序结果选择至少一个神经网络在图像处理任务的训练集上进行训练。

估价函数可以对神经网络的性能进行估计,具体采用何种形式的估价函数不作限定,但一般而言估价函数是和具体的图像处理任务相关的,即在步骤s12中期望获得可用于某种图像处理任务的图像处理模型,在步骤s110中应当采用适用于该图像处理任务的估价函数。例如,sum(神经网络的每层通道数^1.5)就表示一种估价函数,其中sum表示求和。一般认为,神经网络的通道数越多,用于图像分类的性能越好,因此上述函数可以作为图像分类任务的估价函数。

在具体实施时,可以采用,但不限于采用函数值和所要评估的神经网络的性能正相关的函数作为估价函数,例如上面例举的函数。这样通过函数值就能够非常直观地估计神经网络的性能。

利用估价函数计算出神经网络的性能后,根据计算结果进行排序,并从排序结果中选择满足要求的至少一个神经网络。例如,对于估价函数的函数值和神经网络的性能正相关的情况,将计算结果按照从大到小排序,可以从排序结果中选择排在最前面的至少一个神经网络进行训练,对这些神经网络的性能估计是最优的,因此有望训练出性能优良的模型。

步骤s111:电子设备100的处理器102基于训练结果更新估价函数的参数。

估价函数的参数可以根据训练结果进行调整,以实现估价函数的优化,使得估价函数能够更好地评估神经网络的性能。例如,上面例举的估价函数中的指数1.5就是一个可调的参数。可以利用优化后的估价函数重新从候选网络集合中选择用于训练的神经网络,即跳转至步骤s110迭代执行,需要指出,之前已经选择出的神经网络由于已经得到训练,所以无需再选择之前已经选出过的神经网络。

迭代结束条件可以根据实际需求确定,例如可以是,但不限于如下条件中的一种:训练好的神经网络已经达到预设数量,迭代过程的执行时间已经超过预设时长,在最新一次迭代过程中训练出的神经网络其性能相对于之前训练出的神经网络没有明显的提升。在某些情况下,判断迭代结束条件可以在每次执行步骤s111之前就进行判断,如果已经满足迭代结束条件,则不需要再执行步骤s111。

进一步的,在某些实施方式中,可以利用一个专门的神经网络优化估价函数的参数,以获得更好的优化结果。

以迭代的方式实现步骤s10,在多次迭代的过程中可能会选择出性能较好神经网络,在其他一些实现方式中,处于时间效率方面的考虑,也可以不通过迭代的方式,例如执行步骤s110后直接结束流程。

进一步的,在步骤s11执行之后,由于选出的神经网络已经经过训练,根据训练结果已经可以准确地了解神经网络的性能,因此可以根据训练结果从训练好的神经网络中进一步确定出至少一个可用于图像处理任务的图像处理模型。

除了选出的图像处理模型可以被用于图像处理任务之外,事实上本发明实施例提供的获得图像处理模型的方法中产生的任意一个神经网络以及估价函数都可以被单独使用。例如,候选网络集合中的神经网络可以直接用于某些时间限制类的图像处理任务,又例如,产生的估价函数则可以和手工设计相结合,启发估价函数的设计思路。

第二实施例

本发明第二实施例提供一种图像处理方法,包括:

在第一种图像处理任务上应用本发明第一实施例提供的获得图像处理模型的方法,获得可用于第一种图像处理任务的至少一个第一图像处理模型;

基于至少一个第一图像处理模型在第一种图像处理任务的训练集上的训练结果,从至少一个第一图像处理模型中选择网络性能最优的第一最优图像处理模型;

利用第一最优图像处理模型执行第一种图像处理任务。

下面以第一种图像处理任务是图像分类任务为例对上述步骤进行说明,所谓图像分类任务一般是指:输入为固定大小的图像,输出为图像中物体的类别。可以理解的,这里仅为示例,第一种图像处理任务还可以是其他图像处理任务。

可以取初始网络集合为仅包含空网络的集合,通过迭代方式生成候选网络集合,其中,生成策略可以采用每次迭代在原神经网络(指基准网络集合中的神经网络)的基础上增加一个模块(例如卷积层、池化层、反卷积层等),并枚举该模块可取的通道数(例如16、32、64等,一般通道数在枚举时无需连续取值)。

从最终获得的候选网络集合中选择至少一个神经网络在图像分类任务对应的训练集上进行训练,获得训练结果。可以直接将训练好的神经网络都作为可用于图像分类任务的图像处理模型,不妨称之为第一图像处理模型。

进一步的,基于训练结果已经可以确定各个第一图像处理模型的性能,从而可以从中选择出网络性能最优的第一最优图像处理模型。例如,对于图像分类任务,通过训练结果可以获得神经网络的top-1以及top-5错误率,这些错误率即可以作为神经网络的性能描述。从而可以选择其中错误率最低的神经网络作为第一最优图像处理模型。

由于通过第一实施例中的方法可以选择出运行速度较快,并且预期性能较好(例如可以通过估价函数评估)的神经网络,在此基础上进一步进行训练并基于训练结果选择出第一最优图像处理模型,该模型必然兼具运行速度较快,网络性能较好的优点,因此执行图像分类处理任务能够获得较好的效果。

例如,在发明人所做的某次实验中,利用imagenet数据集进行测试,对比的双方是手工设计的xecption网络模型和采用第二实施例中的方法获得的第一最优图像处理模型,在运行速度相似的情况下,后者的flops提高了一倍多(300m对140m),网络性能也有明显提升(top1错误率32%对29%)。

同时,由于采用了第一实施例中的方法进行模型搜索,获得第一最优图像处理模型的过程耗时较短,有利于在短时间内完成图像处理任务。

第三实施例

本发明第三实施例提供一种图像处理方法,包括:

在第一种图像处理任务上应用本发明第一实施例提供的获得图像处理模型的方法,获得可用于第一种图像处理任务至少一个第一图像处理模型;

以至少一个第一图像处理模型构成的集合为初始网络集合,在第二种图像处理任务上应用本发明第一实施例提供的获得图像处理模型的方法,获得可用于第二种图像处理任务的至少一个第二图像处理模型,其中,第二种图像处理任务为与第一种图像处理任务不同种类的图像处理任务;

基于至少一个第二图像处理模型在第二种图像处理任务的训练集上的训练结果,从至少一个第二图像处理模型中选择网络性能最优的第二最优图像处理模型;

利用第二最优图像处理模型执行第二种图像处理任务。

在本发明第三实施例提供的方法中,两次使用了本发明第一实施例中提供的方法,实现了将第一图像处理模型迁移至第二图像处理任务中,以获得第二图像处理模型的过程。

下面以第一种图像处理任务是图像分类任务,第二种图像处理任务是图像语义分割任务为例对上述步骤进行说明,所谓图像语义分割任务一般是指:输入为不固定大小的图像,输出为一个和输入等大小的图像,输出图像中的每个像素表示输入图像中对应位置的像素的物体类别(这个类别包括背景)。可以理解的,这里仅为示例,第一种图像处理任务以及第二种图像处理任务还可以是其他图像处理任务,但第一种图像处理任务和第二种图像处理任务应当是不同种类的图像处理任务,例如不能都是图像处理任务,否则不需要进行迁移学习,直接利用本发明第二实施例中的方法就可以了。

在图像处理任务上应用第一实施例中的方法,获得至少一个第一图像处理模型,其具体过程可以参考第二实施例中的描述。

需要指出,在第三实施例提供的方法中,在获得第一图像处理模型时通常要经过筛选,仅保留在图像分类任务上表现出良好性能的若干个神经网络,发明人经长期研究发现,在图像分类任务上表现良好的神经网络,迁移到其他图像处理任务上后,有望获得同样良好的性能表现,在图像分类任务上表现较差的神经网络,迁移到其他图像处理任务上后,通常性能表现会更差。

将选出的至少一个第一图像处理模型构成的集合确定为一个新的初始网络集合。通过迭代方式生成候选网络集合,其中,生成策略可以采用每次迭代在原神经网络的基础上增加一个模块,并枚举该模块的可取的通道数。根据上述生成策略,在新生成的神经网络中实际上保留了第一图像处理模型的结构,只是在其基础上增加了与图像语义分割任务适配的模块,所保留的第一图像处理模型的在新生成的神经网络中一般用于作为特征提取器提取图像特征,也常常将其称为backbone。

从最终获得的候选网络集合中选择输入与输出大小相同的神经网络在图像语义分割任务对应的训练集上进行训练,获得训练结果,其中,输入图像与输出图像大小相同是图像语义分割任务对输入输出的要求。可以直接将训练好的神经网络都作为可用于图像语义分割任务的图像处理模型,不妨称之为第二图像处理模型。

进一步的,基于训练结果已经可以确定各个第二图像处理模型的性能,从而可以从中选择出网络性能最优的第二最优图像处理模型,该模型兼具运行速度较快,网络性能较好的优点,因此执行图像语义分割任务能够获得较好的效果,同时,由于采用了第一实施例中的方法进行模型搜索,获得第二最优图像处理模型的过程耗时较短,有利于在短时间内完成图像处理任务。此外,由于第二最优图像处理模型是在第一图像处理模型的基础上经迁移学习生成的,模型中保留了之前在图像分类任务上积累的训练成果,有利于节省训练时间,并获得质量更好的模型。并且,在目前,图像分类任务可用的数据集较多,其他图像处理任务可用的数据集相对较少,因此采用上述迁移学习的方案实用价值较高,可以避免因数据样本较少导致训练出现过拟合等情况。

进一步的,在上述方法中,还可以利用在图像语义分割任务上的训练结果,调整搜索第一图像处理模型的过程,例如,更新针对图像分类处理任务的估价函数的参数,以搜索出性能更优的第一图像处理模型,进而获得性能更优的第二图像处理模型。这一过程可以迭代执行,直至最终获得的第二最优图像处理模型满足用户对图像语义分割任务的性能需求。

第四实施例

图5示出了本发明第四实施例提供的获得图像处理模型的装置200的功能模块图。参照图5,该装置包括生成模块210、训练模块220以及模型确定模块230。

其中,生成模块210用于生成与初始网络集合中的神经网络结构不同的新的神经网络,删除新生成的神经网络中运行时间超过预设时间限制的神经网络,并将剩余的神经网络添加至候选网络集合,其中,运行时间为神经网络处理完预设图像的时间;

训练模块220用于从候选网络集合中选择至少一个神经网络在图像处理任务的训练集上进行训练;

模型确定模块230用于确定可用于图像处理任务的至少一个图像处理模型,其中,每个图像处理模型均为一个训练好的神经网络。

本发明第四实施例提供的获得图像处理模型的装置200,其实现原理及产生的技术效果和第一实施例相同,为简要描述,装置实施例部分未提及之处,可参考第一施例中相应内容。

第五实施例

图6示出了本发明第五实施例提供的图像处理装置300的功能模块图。参照图6,该装置包括生成模块310、训练模块320以及模型确定模块330。

模型获取模块310用于在第一种图像处理任务上应用第一方面或第一方面的任意一种可能的实现方式提供的方法,获得可用于第一种图像处理任务的至少一个第一图像处理模型;

最优模型选择模块320基于至少一个第一图像处理模型在第一种图像处理任务的训练集上的训练结果,从至少一个第一图像处理模型中选择网络性能最优的第一最优图像处理模型;

执行模块330用于利用第一最优图像处理模型执行第一种图像处理任务。

本发明第五实施例提供的图像处理装置300,其实现原理及产生的技术效果和第二实施例相同,为简要描述,装置实施例部分未提及之处,可参考第二施例中相应内容。

第六实施例

图7示出了本发明第六实施例提供的图像处理装置400的功能模块图。参照图7,该装置包括第一模型获取模块410、第二模型获取模块420、最优模型选择模块430以及执行模块440。

第一模型获取模块410用于在第一种图像处理任务上应用第一方面或第一方面的任意一种可能的实现方式提供的方法,获得可用于第一种图像处理任务的至少一个第一图像处理模型;

第二模型获取模块420用于将至少一个第一图像处理模型构成的集合确定为初始网络集合,在第二种图像处理任务上应用第一方面或第一方面的任意一种可能的实现方式提供的方法,获得可用于第二种图像处理任务的至少一个第二图像处理模型,其中,第二种图像处理任务为与第一种图像处理任务不同种类的图像处理任务;

最优模型选择模块430用于基于至少一个第二图像处理模型在第二种图像处理任务的训练集上的训练结果,从至少一个第二图像处理模型中选择网络性能最优的第二最优图像处理模型;

执行模块440用于利用第二最优图像处理模型执行第二种图像处理任务。

本发明第六实施例提供的图像处理装置400,其实现原理及产生的技术效果和第三实施例相同,为简要描述,装置实施例部分未提及之处,可参考第三施例中相应内容。

第七实施例

本发明第七实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的上述各方法的步骤。该计算机可读存储介质可以实现为,但不限于图1示出的存储装置104。

第八实施例

本发明第八实施例提供一种电子设备,包括存储器以及处理器,存储器中存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的上述各方法的步骤。该电子设备可以实现为,但不限于图1示出的电子设备100。

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

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

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

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

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

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