图像处理方法、终端设备及存储介质与流程

文档序号:21367742发布日期:2020-07-04 04:43阅读:288来源:国知局
图像处理方法、终端设备及存储介质与流程

本申请涉及图像处理技术领域,尤其涉及一种图像处理方法、终端设备及存储介质。



背景技术:

目前,一些自动化图像后期处理的方案中,比如基于强化学习的方案,当随着需要用到的图像处理算法增多时,会导致强化学习动作集合的搜索空间增大,从而大大增加了计算量,导致处理图像的速度降低。另外,对于图像处理而言,可能会产生某些图像处理算法被多次使用,但是有些图像处理算法从来没有被使用过的情况,同时很难定义出一个好的奖励等因素,因此会大大降低图像处理的效果。再比如基于生成式对抗网络的方案,对输出图片的分辨率有比较大的限制,为了保证运行速度一般只能生成较小分辨率的图片,对于目前广泛应用的大分辨率的图片,不能很好地生成与原图对应分辨率的输出结果。



技术实现要素:

基于此,本申请提供了一种图像处理方法、终端设备及存储介质,该图像处理方法基于卷积神经网络实现对图像处理,旨在以较小计算量并输出较好的图像效果。

第一方面,本申请提供了一种图像处理方法,包括:

获取目标图像;

获取预设算法列表,所述预设算法列表包括多个图像处理算法索引;

根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理。

第二方面,本申请还提供了一种终端设备,其中所述终端设备包括存储器和处理器;

所述存储器用于存储计算机程序;

所述处理器,用于执行所述计算机程序并在执行所述计算机程序时,实现如下步骤:

获取目标图像;

获取预设算法列表,所述预设算法列表包括多个图像处理算法索引;

根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理。

第三方面,本申请还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现:

获取目标图像;

获取预设算法列表,所述预设算法列表包括多个图像处理算法索引;

根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理。

本申请实施例提供了一种图像处理方法、终端设备及存储介质,通过获取目标图像和预设算法列表,所述预设算法列表包括多个图像处理算法索引;根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理得到输出图像。该图像处理方法可以在使用较小的计算量的情况下,实现输出较好的图像处理结果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的一种图像处理方法的步骤示意流程图;

图2是图1中的图像处理方法的子步骤示意流程图;

图3是本申请一实施例提供的一种图像处理方法的步骤示意流程图;

图4是图3中的图像处理方法的子步骤示意流程图;

图5是申请一实施例提供的使用图像处理方法的场景示意图;

图6是本申请一实施例提供的一种图像处理方法的步骤示意流程图;

图7是本申请一实施例提供的一种卷积神经网络训练方法的步骤示意流程图;

图8是图7中的卷积神经网络训练方法的子步骤示意流程图;

图9是本申请一实施例提供的一种终端设备的结构示意性框图;

图10(a)是强化学习所使用的卷积神经网络构架示意图;

图10(b)是本申请实施例提供的卷积神经网络构架示意图;

图11(a)是加载强化学习所使用的卷积神经网络构架时的系统资源分配图;

图11(b)是加载本申请实施例提供的卷积神经网络构架时的系统资源分配图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参阅图1,图1是申请一实施例提供的一种图像处理方法的步骤示意流程图。该图像处理方法可以应用在终端设备中,用于图像自动化后期处理。其中终端设备包括手机、平板、笔记本电脑和无人机等。

其中,无人机可以为旋翼型无人机,例如四旋翼无人机、六旋翼无人机、八旋翼无人机,也可以是固定翼无人机。该无人机上带有摄像设备。

具体地,如图1所示,该图像处理方法包括步骤s101至步骤s103。

s101、获取目标图像。

其中,目标图像为待处理图像,或者为用户选择的待处理图像。比如,通过终端设备拍摄的原始图片,或用户在终端设备的图形库选择的一张或多张图片。

s102、获取预设算法列表,所述预设算法列表包括多个图像处理算法索引。

其中,图像处理算法索引为图像处理算法对应的算法标识,比如调整色温算法对应的算法标识为temperature,设置色彩算法对应的算法标识为tint。除了用其对应的英文单词进行表示,当然也可以采用其他类型的标识作为算法标识,比如阿拉伯数字1、2、3等,或者字母a、b、c等。

在本实施例中,所述多个图像处理算法索引具体包括:调整色温算法索引、设置色彩算法索引、调整曝光算法索引、调整对比度算法索引、高光恢复算法索引、低光补偿算法索引、白平衡算法索引、调整清晰度算法索引、除雾算法索引、调整自然饱和度算法索引、调整饱和度算法索引和色调曲线算法索引。

如表1所示,多个图像处理算法对应不同算法索引,并且多个图像处理算法索引按照顺序排列,顺序排列对应相应的排列序号。

表1为预设算法列表

在本实施例中,具体使用12个图像处理算法,这些算法的排列顺序如表1中的顺序。根据实验表明:采用该12个图像处理算法和对应的排序顺序进行相关的图像处理,可以取得较好的图像处理效果。

需要说明的是,根据实际图像处理需要,可以减少或增加相应的图像处理算法,比如删除色调曲线,或者增加剪切算法等。当然也可以,相应地调整各个图形处理算法的排序顺序,比如将白平衡和除雾两个算法在表1中的排序对调。

s103、根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理。

具体地,多个所述图像处理算法索引在所述预设算法列表中的顺序,如表1所示,为调整色温、设置色彩、调整曝光、调整对比度、高光恢复、低光补偿、白平衡、调整清晰度、除雾、调整自然饱和度、调整饱和度和色调曲线等图像处理算法在表1中排列顺序,即1、2、3....11和12。

按照多个所述图像处理算法索引在所述预设算法列表中的顺序,依次读取预先训练的卷积神经网络模型对目标图像进行处理以得到输出图像,具体地,每次根据一个图像处理算法启动卷积神经网络模型对目标图像进行处理以得到输出图像;将该输出图像作为目标图像,循环执行根据一个图像处理算法启动卷积神经网络模型对目标图像进行处理以得到最终的输出图像,进而完成对目标图像的处理。

在一实施例中,如图2所示,步骤s103具体包括:子步骤s1031至s1034。

s1031、根据所述预设算法列表依次启动图像处理算法索引对应的图像处理算法。

具体地,确定所述预设算法列表中的一个图像处理算法索引,以及所述图像处理算法索引对应图像处理算法。

其中,所述确定所述预设算法列表中的一个图像处理算法索引,可以是:按照多个所述图像处理算法在所述预设算法列表中的排列顺序,依次确定所述预设算法列表中的一个图像处理算法。

比如,在表1中,先确定算法索引temperature以及对应的调整色温算法,再确定算法索引tint以及对应的设置色彩算法,最后再确定算法索引tonecurce以及对应的色调曲线算法。

需要说明的是,在确定完算法索引temperature以及对应的调整色温算法后,即开始执行步骤s1032至s1033;然后,再确定算法索引tint以及对应的设置色彩算法,将根据调整色温算法处理后的输出图像作为目标图像,继续执行步骤s1032至s1033;以此循环直至表1中的算法执行完为止。

当然,也可以不按照多个所述图像处理算法在所述预设算法列表中的排列顺序确定一个图像处理算法,每次可以随机在预设算法列表中确定一个算法索引以及对应的图像处理算法,然后执行步骤s1032和s1033,直至表1中的算法执行完为止。

s1032、根据所述卷积神经网络模型确定所述图像处理算法对应的算法参数。

其中,将所述目标图像输入至所述卷积神经网络模型中进行训练,以得到所述图像处理算法对应的算法参数。

具体地,在确定图像处理算法后,比如确定的图像处理算法为调整曝光算法(exposure),再将所述目标图像输入至所述卷积神经网络模型中进行训练以得到调整曝光算法(exposure)对应的算法参数。

卷积神经网络模型为预先训练好的模型,其输入为确定有图像处理算法的目标图像,将所述目标图像输入至所述卷积神经网络模型中进行训练以输出相应的算法参数,比如得到调整曝光算法(exposure)对应的算法参数。

在一个可选的实施例中,将所述目标图像输入至卷积神经网络模型中进行训练,以得到所述图像处理算法对应的算法参数,包括:将所述目标图像输入至卷积神经网络模型中进行训练,以得到所述图像处理算法对应的多个算法参数以及每个所述算法参数对应的概率值;根据所述概率值确定所述图像处理算法对应的算法参数。

比如,调整色温对应算法参数是一个范围值,例如{-100,100},卷积神经网络模型训练后的输出结果是针对算法参数的范围值对应的概率值,例如色温100,概率值是15%;色温80,概率值是84%,然后会取概率值较大的色温作为图像色温。在一个可选的示例中,通过在卷积神经网络的多个输出端增加一个比较器,可以通过比较器选择输出具有最大选择概率的色温值。

s1033、根据算法参数采用所述图像处理算法对所述目标图像进行处理以获得输出图像。

具体地,所述根据所述图像处理算法以及对应的算法参数对所述目标图像进行处理以获得输出图像,包括:根据所述图像处理算法对应的算法参数,调用所述图像处理算法对应的函数对所述目标图像进行处理以获得输出图像。

比如,确定调整色温对应的算法参数为80,则调用调整色温算法对应的函数,例如为temperature函数。则根据色温80,采用temperature函数对目标图像进行处理以得到处理后的目标图像,即输出图像。

需要说明的是,也可以根据所述图像处理算法对应的算法参数,调用相应的图像处理工具(比如,cameraraw工具、photoshop工具、lightingtool工具),通过该图像处理工具采用图像处理算法对所述目标图像进行处理以获得输出图像。即,卷积神经网络可以以插件的形式为已经封装好的图像处理模块提供图像处理的算法参数,以使图像处理模块根据算法参数对输入图片进行单次处理。

s1034、将所述输出图像作为所述目标图像,返回所述根据所述预设算法列表依次启动图像处理算法索引对应的图像处理算法继续执行,直至所述预设算法列表中的图像处理算法索引全部启动完时得到最终的输出图像。

其中,步骤s1033和s1034为:根据所述算法参数采用所述图像处理算法对所述目标图像进行处理以获得输出图像。

例如,将通过调整色温算法处理过得到输出图像作为目标图像;再返回执行步骤s1031至s1034确定设置色彩算法,将通过设置色彩算法处理过得到输出图像作为目标图像,再去循环执行;直至所述预设算法列表中的图像处理算法索引全部启动完时得到最终的输出图像。在每个步骤中,每个卷积神经网络仅进行一次参数的输出,并且基于输出参数调用用于处理输出参数的图像处理模块。图像处理模块的输入是上一次图像处理模块输出的处理结果。上述处理过程,可以使用轻量化的卷积神经网络,极大节省算力,提高对于图片的处理速度。

上述实施例提供的图像处理方法通过获取目标图像和预设算法列表,所述预设算法列表包括多个图像处理算法索引;根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理得到输出图像。该图像处理方法借助了预设图像算法列表和卷积神经网络模型完成图像处理,相对于基于强化学习的方案或生成式对抗网络方案,可以在每次神经网络卷积时,仅加载针对目标参数的最小神经网络,这样可以在很大程度上减小加载的神经网络卷积的体积,保证了算法在低算力平台的可信性。使用较小的计算量的情况下,实现输出较好的图像处理结果,即可以得到和目标图像具有相同分辨率的图像。

请参阅图3,图3是申请一实施例提供的另一种图像处理方法的步骤示意流程图。该图像处理方法可应用在终端设备中,用于对拍摄的原始图像进行自动化后期处理,实现以较小的计算量条件下输出较好的图像处理结果。

具体地,如图3所示,该图像处理方法包括步骤s201至s206。

s201、获取待处理图像以及所述待处理图像的图像格式。

具体地,该待处理图像可以为用户在终端设备的图片库中选择的图像,也可以用户通过终端设备刚拍摄的图像。其中,每一个待处理图像均包括相应的图像格式,可以通过待处理图像的后缀命名确定所述待处理图像的图像格式。

比如,若待处理图像1的后缀命名为.jpg,则该待处理图像1的图像格式为jpg(jointphotographicexpertsgroup)格式;若待处理图像2的后缀命名为.raw,则该待处理图像2的图像格式为raw(rawimageformat)格式,raw格式的图像是图像感应器将捕捉到的光源信号转化为数字信号的原始数据。

s202、判断所述待处理图像的图像格式是否为raw格式。

具体地,根据待处理图像的后缀命名判断所述待处理图像的图像格式是否为raw格式,生成判断结果;并根据不同的判断结果执行不同的步骤(步骤s203和步骤s204)。

其中,raw格式具有很多优点,因此在本实施例中,选择raw格式的图像进行图像处理,以便得到更好的图像处理效果。其优点如下:

一、就色阶而言:raw格式的图像比jpg格式的图像保留更多的色阶。在后期的图像处理时常做的操作,比如加减曝光,调整高光或阴影,增减对比度,调整色阶和曲线都会破坏色阶的连续性,造成跳跃色阶,小幅度的跳跃色阶肉眼是很难察觉的,但是幅度大到肉眼察觉以后,就破坏了照片的质感。常见的例子是蓝天的均匀渐变过渡在后期的时候被破坏出现难看的色阶。相对于jpg格式,raw的14位(bit)色深的好处是因为有足够的色阶层次使色阶跳跃维持在肉眼无法分辨的层级上。

二、就白平衡矫正而言:raw格式图像是使用14位的传感器原始数据,因此可以通过图像处理工具(cameraraw工具)进行精确的色温矫正,比如冷色0k-10000k暖色矫正。即使在拍摄的时候白平衡完全设置错误也没所谓(比如在室内白炽灯下用日光白平衡进行拍摄),但是如果用的jpg格式拍摄的话,因为jpg格式的图像采用8位(bit)的jpg文件,因此只能通过ps(photoshop工具)中几种有限的方法(比如色平衡colorbalance)来略微调整色温,把一张暖色金璨璨的照片调整回正常色温后细节会惨不忍睹。

三、亮部暗部矫正。这是摄影中最常见的问题,曝光过度或曝光不足。如果拍摄后保存的raw格式图像,可以在后期矫正至少+-2ev的曝光补偿仍然保留完整的画面细节,如果使用jpg格式图片,后期发现严重曝光过度或者曝光不足,因为即使矫正了曝光以后,也会看到画面上一片无细节的死白或者死黑。

因此在本实施例中,在使用该图像处理方法之前,需要对终端设备进行图像保存设置以使终端设备将拍摄的图片保存为raw格式的图像,或者在保存其他格式的图像后仍然保存该格式的图像对应的raw格式的图像。

s203、获取所述待处理图像作为目标图像。

具体地,若所述待处理图像的图像格式是raw格式,则直接获取所述待处理图像作为目标图像,并执行步骤s205。

s204、查询并获取所述待处理图像对应的raw格式图像作为所述目标图像。

具体地,若所述待处理图像的图像格式不是raw格式,查询并获取所述待处理图像对应的raw格式图像作为所述目标图像,并执行步骤s205。

s205、获取预设算法列表,所述预设算法列表包括多个图像处理算法索引。

其中,所述预设算法列表包括以堆栈形式排列的多个图像处理算法索引,具体为先进先出(firstinfirstout、fifo)的堆栈形式。因为多个图像处理算法索引是采用先进先出(firstinfirstout、fifo)的堆栈形式进行数据保存的,因此可以确保按照根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型。

在一实施例中,如图4所示,在所述获取预设算法列表的步骤之前,该图像处理方法还包括:步骤s205a和步骤s205b。

s205a、获取预先设置的算法列表,所述算法列表包括多个按照顺序排列的图像处理算法索引;s205b、将所述算法列表中的图像处理算法索引采用先进先出的堆栈形式进行保存以生成预设算法列表。

具体地,该算法列表可以为表1,包括多个按照顺序排列的图像处理算法索引,该图像处理算法索引为图像处理算法的算法标识。将所述算法列表中的图像处理算法索引采用先进先出的堆栈形式进行保存以生成预设算法列表,进而确保按照根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型。

s206、根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理。

按照先进先出的堆栈形式,依次读取预先训练的卷积神经网络模型对目标图像进行处理以得到输出图像。具体地,每次根据一个图像处理算法启动卷积神经网络模型对目标图像进行处理以得到输出图像;循环执行将该输出图像作为目标图像,根据一个图像处理算法启动卷积神经网络模型对目标图像进行处理以得到输出图像;直至预设算法列表中的图像处理算法全部执行完为止,得到最终的输出图像,进而完成对目标图像的处理。

如图5所示,终端设备具体为智能手机,当然也可以为无人机,在本实施例中只是使用智能手机进行示例说明。在使用智能手机采用该图像处理方法对待处理图像进行处理之前,需要进行两个设置操作。

设置操作一:需要对终端设备(智能手机)进行图像保存设置以使终端设备将拍摄的图片保存为raw格式的图像,或者在保存其他格式的图像后仍然保存该格式图像对应的raw格式的图像。

设置操作二:将预先训练好的卷积神经网络模型保存至终端设备中,当然可以采用深度学习模型压缩技术,先对预先训练好的卷积神经网络模型进行压缩处理后,再保存在终端设备。

在完成上述设置操作后,用户可以使用智能手机利用该图像处理方法对待处理图像进行图像处理。比如,使用智能手机对该拍摄的图像利用该图像处理算法进行图像处理,以便使用较小的计算量即可得到较好的图像处理效果。由此可见,该图像处理算法也特别适合像智能手机和无人机等终端设备,这些终端设备的处理能力较服务器的较差。

如图5所示,假如用户使用智能手机10对远处的一棵树20进行拍照,拍照后选择图像处理功能或者是自动处理功能,其中图像处理功能和自动处理功能均是基于该图像处理方法进行设计的,采用该图像处理算法对该拍摄的图像进行处理,最终得到具有较好的图像效果的树图片30。

具体地,智能手机10具体执行以下步骤:获取待处理图像以及所述待处理图像的图像格式;判断所述待处理图像的图像格式是否为raw格式;若所述待处理图像的图像格式是raw格式,则直接获取所述待处理图像作为目标图像;或者,若所述待处理图像的图像格式不是raw格式,查询并获取所述待处理图像对应的raw格式图像作为所述目标图像;根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理,得到输出图像30。

上述实施例提供的图像处理方法,通过获取待处理图像以及所述待处理图像的图像格式;判断所述待处理图像的图像格式是否为raw格式;若所述待处理图像的图像格式是raw格式,则直接获取所述待处理图像作为目标图像;或者,若所述待处理图像的图像格式不是raw格式,查询并获取所述待处理图像对应的raw格式图像作为所述目标图像;根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理。由此,该方法可在使用终端设备较小的计算量的情况下,输出具有较好效果的图像,进而提高了用户的体验。

请参阅图6,图6是申请一实施例提供的又一种图像处理方法的步骤示意流程图。该图像处理方法可应用在终端设备中,用于对拍摄的原始图像进行自动化后期处理,实现以较小的计算量条件下输出较好的图像处理结果。

具体地,如图6所示,该图像处理方法包括步骤s301至步骤s305。

s301、获取目标图像,其中所述目标图像为raw格式。

具体地,目标图像为待处理图像,或者为用户选择的待处理图像。比如,通过终端设备拍摄的原始图片,或用户在终端设备的图形库选择的一张或多张图片,其中该选择的图片为raw格式的图像。

s302、获取预设算法列表,所述预设算法列表包括多个图像处理算法索引。

具体地,图像处理算法索引为图像处理算法对应的算法标识,比如调整色温算法对应的算法标识为temperature,设置色彩算法对应的算法标识为tint。其中,在本实施例中,可采用上述表1所示的多个图像处理算法对应不同算法索引,并且多个图像处理算法索引按照顺序排列。

s303、将所述目标图像输入至卷积神经网络模型进行训练,以得到所述预设算法列表中的一个图像处理算法对应的算法参数。

具体地,在确定预设算法列表后,再将所述目标图像输入至所述卷积神经网络模型中进行训练以得到所述预设算法列表中的一个图像处理算法对应的算法参数,比如随机确定所述预设算法列表中的一个图像处理算法(例如,调整曝光算法)的曝光度。

在本实施例中,是以图像为主导的方式,将所述目标图像输入至卷积神经网络模型进行训练以得到所述预设算法列表中的一个图像处理算法对应的算法参数。利用卷积神经网络模型匹配相应的图像,再确定该图像对应的图像处理算法的算法参数。这和上述实施例中提供的以图像处理算法为主导的方式,利用卷积神经网络模确定相应的图像处理算法的算法参数并不相同,因此可以提高图像处理效果。

s304、根据所述算法参数及对应的图像处理算法对所述目标图像进行处理以获得输出图像。

具体地,所述根据所述图像处理算法以及对应的算法参数对所述目标图像进行处理以获得输出图像,包括:根据所述图像处理算法对应的算法参数,调用所述图像处理算法对应的函数对所述目标图像进行处理以获得输出图像。

比如,确定调整色温对应的算法参数为80,则调用调整色温算法对应的函数,例如为temperature函数。则根据色温80,采用函数temperature函数对目标图像进行处理以得到处理后的目标图像,即输出图像。

s305、将所述输出图像作为所述目标图像,返回所述将目标图像输入至卷积神经网络进行训练继续执行,直至所述预设算法列表中的图像处理算法全部训练完时得到最终的输出图像。

譬如,将通过调整色温算法处理过得到输出图像作为目标图像,再返回执行步骤s303至s305确定另一图像处理算法,比如确定为设置色彩算法;再将通过设置色彩算法处理过得到输出图像作为目标图像,再去循环执行s303至s305,直至所述预设算法列表中的图像处理算法全部训练完时得到最终的输出图像。

上述实施例提供的图像处理方法,通过获取raw格式的目标图像和预设算法列表,所述预设算法列表包括多个图像处理算法索引;将所述目标图像输入至卷积神经网络模型进行训练,以得到所述预设算法列表中的一个图像处理算法对应的算法参数;根据所述算法参数及对应的图像处理算法对所述目标图像进行处理以获得输出图像;将所述输出图像作为所述目标图像,返回所述将目标图像输入至卷积神经网络进行训练继续执行,直至所述预设算法列表中的图像处理算法全部训练完时得到最终的输出图像。该图像处理方法不仅可以降低终端设备的计算量,还可以得到较好的图像处理结果。

请参阅图7,图7是申请一实施例提供的一种卷积神经网络训练方法的步骤示意流程图。该卷积神经网络训练方法用于得到卷积神经网络模型。上述图像处理方法的实施例,可采用该卷积神经网络模型,当然其他方法训练得到的卷积神经网络模型。

需要说明的是,在本实施例中,使用googlenet进行模型训练以得到卷积神经网络模型,当然也可以采用其他网络,比如采用alexnet或vggnet等。以下将以googlenet为例进行介绍。

具体地,如图7所示,该卷积神经网络训练方法包括步骤s401和步骤s404。

s401、获取图像样本数据,所述图像样本数据包括多个经过图像处理算法处理过的图像数据以及所述图像数据对应的算法参数。

具体地,该图像样本数据为采用专业摄影师的摄影后期处理数据,并且经过相应地处理后的数据集。该图像样本数据包括多个经过图像处理算法处理过的图像数据以及所述图像数据对应的算法参数。

在一实施例中,为了方便卷积神经网络模型计算出可用的算法参数,在进行模型训练之前,需要对所述图像样本数据中的算法参数进行量化处理,得到量化后的图像样本数据。

具体地,将所有图像样本数据中的图像处理算法的输入量化为具有固定范围的数值变量。例如曝光值(exposure)量化为为{-5.00,+5.00},高光恢复(highlightsrecovery)量化为为{-100,+100}。

s402、基于卷积神经网络,根据所述图像样本数据进行迭代训练以得到卷积神经网络模型,所述卷积神经网络模型的输出参数为图像处理算法对应的算法参数。

具体地,使用图像样本数据,通过googlenet进行模型训练,具体地是可以采用方向传播训练,使用googlenet的卷积层和池化层从输入图像样本数据中提取特征,使用完全连接层用来做分类器,分类器的输出即是不同的图像处理算法以及对应算法参数。

具体地,用随机值初始化所有过滤器和参数/权重;神经网络将训练的图像样本数据作为输入,经过前向传播步骤(卷积,relu和池化操作以在完全连接层中的前向传播),得到每个类的输出概率。

在一实施例中,为了方便卷积神经网络模型计算出可用的算法参数,所述基于卷积神经网络,对所述图像样本数据中的算法参数进行量化处理,得到量化后的图像样本数据。相应地,根据所述图像样本数据进行迭代训练以得到卷积神经网络模型,包括:基于卷积神经网络算法,根据所述量化后的图像样本数据进行迭代训练以得到卷积神经网络模型。

s403、将所述图像数据对应的算法参数作为标定数据对所述卷积神经网络模型进行验证。

具体地,将所述图像数据对应的算法参数作为标定数据(groundtruth)来定义损失函数(loss)来验证训练后的卷积神经网络模型的准确度。

其中,如图8所示,所述将所述图像数据对应的算法参数作为标定数据对所述卷积神经网络模型进行验证,具体包括:

s4031、将所述图像数据对应的算法参数设为标定数据;s4032、计算所述标定数据与所述输出参数中的图像处理算法对应的算法参数的差值作为差距损失值;s4033、判断所述差距损失值是否满足预设条件,所述预设条件为用于衡量所述卷积神经网络模型的准确度的条件;s4034、在所述差距损失值满足所述预设条件时,判定所述卷积神经网络模型验证通过。

具体地,将摄影师所用的图像处理算法对应的算法参数作为标定数据(groundtruth),利用准备的图像样本数据通过大规模迭代训练,让卷积神经网络在学习图片语义信息后输出图像处理算法对应的算法参数,使用输出的算法参数与标定数据(groundtruth)的差距作为差距损失值(loss),在模型训练中尽量缩小差距损失值(loss),来保证模型的准确度。

在模型训练中尽量缩小差距损失值(loss),可以通过判断所述差距损失值是否满足预设条件,通过该预设条件来衡量所述卷积神经网络模型的准确度。

在一实施例中,所述判断所述差距损失值是否满足预设条件,包括:监测每次迭代训练对应的差距损失值的变化值;若每次迭代训练对应的差距损失值的变化值均在预设范围内,判定所述差距损失值满足所述预设条件。

比如,每次迭代训练对应的差距损失值的变化值均在一个预设范围内,预设范围比如(0.00001,0.00002),则表明差距损失值已基本稳定,变化较小,由此判定所述差距损失值满足所述预设条件,确定所述卷积神经网络模型验证通过。

在一实施例中,所述判断所述差距损失值是否满足预设条件,还包括:在每次迭代训练对应的差距损失值均减小时,判断所述差距损失值是否小于预设值;若所述差距损失值小于所述预设值,判定所述差距损失值满足所述预设条件。

比如,该预设值为0.001,在每次迭代训练对应的差距损失值均减小时并且所述差距损失值小于0.001,判定所述差距损失值满足所述预设条件,确定所述卷积神经网络模型验证通过。

s404、保存验证通过的卷积神经网络模型作为预先训练的卷积神经网络模型。

具体地,进行上述模型训练验证过后,该卷积神经网络中的所有权重和参数都已经过优化,可以对图像样本数据中的图像或者其他图像进行正确分类识别,以得到相应的算法参数。由此,保存验证通过的卷积神经网络模型作为预先训练的卷积神经网络模型至终端设备中。

当然,在将验证通过的卷积神经网络模型作为预先训练的卷积神经网络模型之前,还可对卷积神经网络模型进行压缩处理后,再将压缩处理后的卷积神经网络模型保存在终端设备中。该压缩处理具体包括对卷积神经网络模型进行剪枝处理、量化处理和哈夫曼编码处理等,以减小卷积神经网络模的大小进而方便保存在容量较小的终端设备中。

请参阅图9,图9是本申请一实施例提供的终端设备的示意性框图。该终端设备500包括处理器501和存储器502,处理器501和存储器502通过总线503连接,该总线503比如为i2c(inter-integratedcircuit)总线。

具体地,处理器501可以是微控制单元(micro-controllerunit,mcu)、中央处理单元(centralprocessingunit,cpu)或数字信号处理器(digitalsignalprocessor,dsp)等。

具体地,存储器502可以是flash芯片、只读存储器(rom,read-onlymemory)磁盘、光盘、u盘或移动硬盘等。

其中,所述处理器501用于运行存储在存储器502中的计算机程序,并在执行所述计算机程序时实现如下步骤:

获取目标图像;获取预设算法列表,所述预设算法列表包括多个图像处理算法索引;根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理。

可选地,所述处理器在实现所述获取目标图像时,用于实现:

获取待处理图像以及所述待处理图像的图像格式;判断所述待处理图像的图像格式是否为raw格式;若所述待处理图像的图像格式是raw格式,获取所述待处理图像作为目标图像。

可选地,所述处理器在实现所述判断所述待处理图像的图像格式是否为raw格式之后,还用于实现:

若所述待处理图像的图像格式不是raw格式,查询并获取所述待处理图像对应的raw格式图像作为所述目标图像。

可选地,所述预设算法列表包括以堆栈形式排列的多个图像处理算法索引。

可选地,所述处理器在实现所述获取预设算法列表之前,还用于实现:

获取预先设置的算法列表,所述算法列表包括多个按照顺序排列的图像处理算法索引;将所述算法列表中的图像处理算法索引采用先进先出的堆栈形式进行保存以生成预设算法列表。

可选地,所述多个图像处理算法索引包括调整色温算法索引、设置色彩算法索引、调整曝光算法索引、调整对比度算法索引、高光恢复算法索引、低光补偿算法索引、白平衡算法索引、调整清晰度算法索引、除雾算法索引、调整自然饱和度算法索引、调整饱和度算法索引和色调曲线算法索引。

可选地,所述处理器在实现所述根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理时,用于实现:

根据所述预设算法列表依次启动图像处理算法索引对应的图像处理算法;根据所述卷积神经网络模型确定所述图像处理算法对应的算法参数;根据所述算法参数采用所述图像处理算法对所述目标图像进行处理以获得输出图像。

可选地,所述处理器在实现所述根据所述预设算法列表依次启动图像处理算法索引对应的图像处理算法时,用于实现:

确定所述预设算法列表中的一个图像处理算法索引,以及所述图像处理算法索引对应图像处理算法。

可选地,所述处理器在实现所述确定所述预设算法列表中的一个图像处理算法索引时,用于实现:

按照多个所述图像处理算法在所述预设算法列表中的排列顺序,依次确定所述预设算法列表中的一个图像处理算法。

可选地,所述处理器在实现所述根据所述卷积神经网络模型确定所述图像处理算法对应的算法参数时,用于实现:

将所述目标图像输入至所述卷积神经网络模型中进行训练,以得到所述图像处理算法对应的算法参数。

可选地,所述处理器在实现所述将所述目标图像输入至卷积神经网络模型中进行训练,以得到所述图像处理算法对应的算法参数时,用于实现:

将所述目标图像输入至卷积神经网络模型中进行训练,以得到所述图像处理算法对应的多个算法参数以及每个所述算法参数对应的概率值;根据所述概率值确定所述图像处理算法对应的算法参数。

可选地,所述处理器在实现所述根据所述算法参数采用所述图像处理算法对所述目标图像进行处理以获得输出图像时,用于实现:

根据所述算法参数采用所述图像处理算法对所述目标图像进行处理以获得输出图像;将所述输出图像作为所述目标图像,返回所述根据所述预设算法列表依次启动图像处理算法索引对应的图像处理算法继续执行,直至所述预设算法列表中的图像处理算法索引全部启动完时得到最终的输出图像。

可选地,所述处理器在实现所述根据所述图像处理算法以及对应的算法参数对所述目标图像进行处理以获得输出图像,用于实现:

根据所述图像处理算法对应的算法参数,调用所述图像处理算法对应的函数对所述目标图像进行处理以获得输出图像。

可选地,所述处理器在实现所述根据多个所述图像处理算法索引在所述预设算法列表中的顺序读取预先训练的卷积神经网络模型,以对所述目标图像进行处理时,用于实现:

将所述目标图像输入至卷积神经网络模型进行训练,以得到所述预设算法列表中的一个图像处理算法对应的算法参数;根据所述算法参数及对应的图像处理算法对所述目标图像进行处理以获得输出图像;将所述输出图像作为所述目标图像,返回所述将目标图像输入至卷积神经网络进行训练继续执行,直至所述预设算法列表中的图像处理算法全部训练完时得到最终的输出图像。

可选地,所述处理器,还用于实现:

获取图像样本数据,所述图像样本数据包括多个经过图像处理算法处理过的图像数据以及所述图像数据对应的算法参数;基于卷积神经网络,根据所述图像样本数据进行迭代训练以得到卷积神经网络模型,所述卷积神经网络模型的输出参数为图像处理算法对应的算法参数;将所述图像数据对应的算法参数作为标定数据对所述卷积神经网络模型进行验证;保存验证通过的卷积神经网络模型作为预先训练的卷积神经网络模型。

可选地,所述处理器在实现所述将所述图像数据对应的算法参数作为标定数据对所述卷积神经网络模型进行验证时,用于实现:

将所述图像数据对应的算法参数设为标定数据;计算所述标定数据与所述输出参数中的图像处理算法对应的算法参数的差值作为差距损失值;判断所述差距损失值是否满足预设条件,所述预设条件为用于衡量所述卷积神经网络模型的准确度的条件;在所述差距损失值满足所述预设条件时,判定所述卷积神经网络模型验证通过。

可选地,所述处理器在实现所述判断所述差距损失值是否满足预设条件时,用于实现:

监测每次迭代训练对应的差距损失值的变化值;若每次迭代训练对应的差距损失值的变化值均在预设范围内,判定所述差距损失值满足所述预设条件。

可选地,所述处理器在实现所述判断所述差距损失值是否满足预设条件时,用于实现:

在每次迭代训练对应的差距损失值均减小时,判断所述差距损失值是否小于预设值;若所述差距损失值小于所述预设值,判定所述差距损失值满足所述预设条件。

可选地,所述处理器在实现所述基于卷积神经网络,根据所述图像样本数据进行迭代训练以得到卷积神经网络模型之前,还用于实现:

对所述图像样本数据中的算法参数进行量化处理,得到量化后的图像样本数据;相应地,所述基于卷积神经网络,根据所述图像样本数据进行迭代训练以得到卷积神经网络模型,包括:基于卷积神经网络算法,根据所述量化后的图像样本数据进行迭代训练以得到卷积神经网络模型。

在一个可选的实施例中,描述了本发明实施例的卷积神经网络构架与强化学习神经网络构架的对比,如图10(a)、图10(b)所示。图10(a)为强化学习神经网络构架,其具有较多的卷积层和池化层,并且其输出会出现多个训练参数(未示出),多个训练参数对应输出图片的不同训练结果。当然,作为强化学习神经网络的变形,其也可以每次输出一个参数,不过强化神经网络本身仍然较大的体积(卷积层和池化层数量m具有较大的数值),在硬件配置较低的平台,会存在加载时间长,响应速度慢等问题。图10(b)为本发明实施例神经网络构架,其有k个独立卷积神经子网络构成,由于每个神经子网络只针对一个参数,其体积较小(每个神经子网络的卷积层和池化层数量较小),根据索引,每次只需要在内存中加载一个子网络,而其它网络处于未加载状态,当然如果硬件资源允许,可以保持下一个要计算的子网络处于预加载的状态。

如图11(a)所示,处理器在两个并行的线程中进行神经网络运算和图像处理,而这两个处理操作都是极其耗费系统资源的,如果使用一般的神经网络,例如强化神经网络,由于神经网络在加载到内存之后占用体积较大,留给图像处理的系统资源就会比较小,在算力资源紧张的平台,常常会导致较长的响应时间,甚至出现死机或者程序无响应。

如图11(b)所示,处理处理器在两个并行的线程中进行神经网络运算和图像处理,当使用本发明的较小体积神经网络网络之后,系统只需要加载当前处理的子网络,至多同时预加载将要进行处理的子网络,这样就可以留给图像处理较多的算力,提高运算的响应速度。

本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现上述实施例提供的图像处理方法的步骤。

其中,所述计算机可读存储介质可以是前述任一实施例所述的终端设备的内部存储单元,例如所述终端设备的硬盘或内存。所述计算机可读存储介质也可以是所述终端设备的外部存储设备,例如所述终端设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

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

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