发明内容
本公开实施例期望提供一种图像复原方法及装置、电子设备、存储介质,旨在提高图像复原的速度。
本公开实施例的技术方案是这样实现的:
本公开实施例提供了一种图像复原方法,包括:
对获取到的图像进行区域划分,得到一个以上子图像;
将每个子图像输入至多路径神经网络中,采用为所述每个子图像确定出的复原网络对所述每个子图像进行复原,输出得到每个子图像的复原图像,以得到所述图像的复原图像。
在上述方案中,所述将每个子图像输入至多路径神经网络中,采用为所述每个子图像确定出的复原网络对所述每个子图像进行复原,得到每个子图像的复原图像,包括:
对所述每个子图像进行编码,得到所述每个子图像的特征;
将所述每个子图像的特征输入至所述多路径神经网络的子网络中,采用所述子网络中的路径选择网络,为所述每个子图像选择复原网络,根据所述每个子图像的复原网络,对所述每个子图像进行处理,输出得到每个子图像处理后的特征;
对每个子图像处理后的特征进行解码,得到所述每个子图像的复原图像。
在上述方案中,所述将所述每个子图像的特征输入至所述多路径神经网络的子网络中,采用所述子网络中的路径选择网络,为所述每个子图像选择复原网络,根据所述每个子图像的复原网络,对所述每个子图像进行处理,输出得到每个子图像处理后的特征,包括:
当所述子网络的个数为N,且N个子网络依次相连时;
将每个子图像的第i级特征输入至第i个子网络中,采用第i个子网络中的第i个路径选择网络,从第i个子网络中的M个复原网络中,为所述每个子图像选择第i个复原网络;
根据所述第i个复原网络,对所述每个子图像的第i级特征进行处理,输出得到所述每个子图像的第i+1级特征;
i更新为i+1,返回至所述将每个子图像的第i级特征输入至第i个子网络中,采用第i个子网络中的第i个路径选择网络,从第i个子网络中的M个复原网络中,为所述每个子图像选择第i个复原网络;
直至输出得到每个子图像的第N级特征,将所述每个子图像的第N级特征确定为所述每个子图像处理后的特征;
当i=1时,所述每个子图像的第i级特征为所述每个子图像的特征;
其中,N为不小于1的正整数,M为不小于2的正整数,i为大于等于1小于等于N的正整数。
在上述方案中,当得到子图像的复原图像的数目大于等于预设数目时,所述方法还包括:
获取预设数目的子图像的复原图像,以及获取与预设数目的子图像的复原图像相对应的参考图像;
基于所述预设数目的子图像的复原图像和相对应的参考图像,根据预设的子图像的复原图像与相对应的参考图像之间的损失函数,通过优化器对所述多路径神经网络中除路径选择网络以外的网络进行训练,以更新所述多路径神经网络中除路径选择网络以外的网络的参数;
且,基于所述预设数目的子图像的复原图像和相对应的参考图像,根据预设的奖励函数,通过所述优化器采用强化学习算法,对所述路径选择网络进行训练,以更新所述路径选择网络中的参数。
在上述方案中,在获取预设数目的子图像的复原图像,以及获取与预设数目的子图像的复原图像相对应的参考图像之后,在根据得到的预设数目的子图像的复原图像与对应的参考图像之间的损失函数,通过优化器对所述多路径神经网络中除路径选择网络以外的网络进行训练,以更新所述多路径神经网络中除路径选择网络以外的网络的参数之前,所述方法还包括:
基于所述预设数目的子图像的复原图像和相对应的参考图像,根据预设的子图像的复原图像与相对应的参考图像之间的损失函数,通过优化器对所述多路径神经网络中除路径选择网络以外的网络进行训练,以更新所述多路径神经网络中的参数。
在上述方案中,所述奖励函数如下所示:
其中,ri代表第i级子网络的奖励函数,p表示一个预设的惩罚项,1{1}(ai)表示一个指示函数,d表示难度系数;
当ai=1时,指示函数的值为1,当ai≠1时,指示函数的值为0。
在上述方案中,所述难度系数d如下所示:
其中,Ld表示所述预设的子图像的复原图像与相对应的参考图像之间的损失函数,L0为一个阈值。
本公开实施例提供了一种图像复原装置,所述图像复原装置包括:
划分模块,用于对获取到的图像进行区域划分,得到一个以上子图像;
复原模块,用于将每个子图像输入至多路径神经网络中,采用为所述每个子图像确定出的复原网络对所述每个子图像进行复原,输出得到每个子图像的复原图像,以得到所述图像的复原图像。
在上述图像复原装置中,所述复原模块,包括:
编码子模块,用于对所述每个子图像进行编码,得到所述每个子图像的特征;
复原子模块,用于将所述每个子图像的特征输入至所述多路径神经网络的子网络中,采用所述子网络中的路径选择网络,为所述每个子图像选择复原网络,根据所述每个子图像的复原网络,对所述每个子图像进行处理,输出得到每个子图像处理后的特征;
解码子模块,用于对每个子图像处理后的特征进行解码,得到所述每个子图像的复原图像。
在上述图像复原装置中,所述复原子模块,具体用于:
当所述子网络的个数为N,且N个子网络依次相连时;
将每个子图像的第i级特征输入至第i个子网络中,采用第i个子网络中的第i个路径选择网络,从第i个子网络中的M个复原网络中,为所述每个子图像选择第i个复原网络;
根据所述第i个复原网络,对所述每个子图像的第i级特征进行处理,输出得到所述每个子图像的第i+1级特征;
i更新为i+1,返回至所述将每个子图像的第i级特征输入至第i个子网络中,采用第i个子网络中的第i个路径选择网络,从第i个子网络中的M个复原网络中,为所述每个子图像选择第i个复原网络;
直至输出得到每个子图像的第N级特征,将所述每个子图像的第N级特征确定为所述每个子图像处理后的特征;
当i=1时,所述每个子图像的第i级特征为所述每个子图像的特征;
其中,N为不小于1的正整数,M为不小于2的正整数,i为大于等于1小于等于N的正整数。
在上述图像复原装置中,当得到子图像的复原图像的数目大于等于预设数目时,所述装置还包括:
获取模块,用于获取预设数目的子图像的复原图像,以及获取与预设数目的子图像的复原图像相对应的参考图像;
第一训练模块,用于:
基于所述预设数目的子图像的复原图像和相对应的参考图像,根据预设的子图像的复原图像与相对应的参考图像之间的损失函数,通过优化器对所述多路径神经网络中除路径选择网络以外的网络进行训练,以更新所述多路径神经网络中除路径选择网络以外的网络的参数;
且,基于所述预设数目的子图像的复原图像和相对应的参考图像,根据预设的奖励函数,通过所述优化器采用强化学习算法,对所述路径选择网络进行训练,以更新所述路径选择网络中的参数。
在上述图像复原装置中,所述装置还包括:
第二训练模块,用于:
在获取预设数目的子图像的复原图像,以及获取与预设数目的子图像的复原图像相对应的参考图像之后,在根据得到的预设数目的子图像的复原图像与对应的参考图像之间的损失函数,通过优化器对所述多路径神经网络中除路径选择网络以外的网络进行训练,以更新所述多路径神经网络中除路径选择网络以外的网络的参数之前,基于所述预设数目的子图像的复原图像和相对应的参考图像,根据预设的子图像的复原图像与相对应的参考图像之间的损失函数,通过优化器对所述多路径神经网络中除路径选择网络以外的网络进行训练,以更新所述多路径神经网络中除路径选择网络以外的网络的参数。
在上述图像复原装置中,所述奖励函数如下所示:
其中,ri代表第i级子网络的奖励函数,p表示一个预设的惩罚项,1{1}(ai)表示一个指示函数,d表示难度系数;
当ai=1时,指示函数的值为1,当ai≠1时,指示函数的值为0。
在上述图像复原装置中,所述难度系数d如下所示:
其中,Ld表示所述预设的子图像的复原图像与相对应的参考图像之间的损失函数,L0为一个阈值。
本公开实施例提供了一种电子设备,所述电子设备包括:处理器、存储器和通信总线;其中,
所述通信总线,用于实现所述处理器和所述存储器之间的连接通信;
所述处理器,用于执行所述存储器中存储的图像复原程序,以实现上述图像复原方法。
本公开提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可以被一个或者多个处理器执行,以实现上述图像复原方法。
由此可见,在本公开实施例提供的一种图像复原方法及装置、电子设备、存储介质,图像复原装置对获取到的图像进行区域划分,得到一个以上子图像,将每个子图像输入至多路径神经网络中,采用为每个子图像确定出的复原网络对每个子图像进行复原,输出得到每个子图像的复原图像,以得到图像的复原图像;也就是说,在本公开实施例的技术方案中,先对获取到的图像进行区域划分,得到一个以上子图像,然后,将每个子图像输入至多路径神经网络中,采用为每个子图像确定出的复原网络对每个子图像进行复原,可见,在多路径神经网络中为每个子图像确定对应的复原网络,这样,使得每个子图像所采用的复原网络不是全部相同的,而是针对不同的子图像采用不同的复原网络,那么,对不同的子图像采用不同的复原网络进行复原,可以对一些子图像可以采用简单的方式进行复原,可以对一些子图像可以采用复杂的方式进行复原,如此,采用这种区域定制的图像复原方法,减小了图像复原的复杂度,从而提高了图像复原的速度。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
实施例一
本公开提供了一种图像复原方法。图1为本公开实施例提供的一种图像复原方法的流程示意图,如图1所示,上述图像复原方法可以包括:
S101:对获取到的图像进行区域划分,得到一个以上子图像;
目前,由于相机的曝光噪声、失焦模糊和图像压缩等造成图像失真,需要对图像进行复原,然而,由于图像的降质过程可能包含多种程度不一的失真,失真的类型和程度在不同的图像之间存在差异,那么,若是对每一张图像的所有区域用一个很深的神经网络进行相同处理,会影响图像复原的速度。
为了提高图像复原的速度,首先,在获取到图像之后,先对图像进行区域划分,得到一个以上子图像。
在实际应用中,若获取到一个图像,该图像的分辨率为63*63,对该图像进行划分,得到若干个区域,每个区域为上述子图像,其中,每个子图像的在横向坐标的方向和纵向坐标的方向上与相邻的图像重叠10个像素,经过多路径神经网络复原之后,在将这些复原后的子图像拼合成一个完整的图像,将重叠区域平均处理,从而可以得到复原后的图像。
S102:将每个子图像输入至多路径神经网络中,采用为每个子图像确定出的复原网络对每个子图像进行复原,输出得到每个子图像的复原图像,以得到图像的复原图像。
在得到一个以上子图像之后,为了实现对每个子图像的复原,可以依次将每个子图像输入至多路径神经网络中,在多路径神经网络中,为每个子图像确定复原网络,从而采用为每个子图像确定出的复原网络对每个子图像进行复原,使得从多路径神经网络中输出得到每个子图像的复原图像,最后,将所有的子图像的复原图像进行拼合,得到图像的复原图像。
为了通过将每个子图像输入至多路径神经网络中得到每个子图像的复原图像,在一种可选的实施例中,图2为本公开实施例提供的另一种图像复原方法的流程示意图,如图2所示,S102可以包括:
S201:对每个子图像进行编码,得到每个子图像的特征;
S202:将每个子图像的特征输入至多路径神经网络的子网络中,采用子网络中的路径选择网络,为每个子图像选择复原网络,根据每个子图像的复原网络,对每个子图像进行处理,输出得到每个子图像处理后的特征;
S203:对每个子图像处理后的特征进行解码,得到每个子图像的复原图像。
具体来说,多路径神经网络包含三个处理部分,第一个处理部分实现对每个子图像的编码,可以通过编码器来实现,例如,子图像为一个彩色图像区域,可以表示为63*63*3的张量,经过编码器的编码,输出得到该子图像的特征,可以表示为一个63*63*64的张量。
这样,在多路径神经网络中,先对子图像进行编码得到该子图像的特征。
第二个处理部分,将子图像的特征输入至多路径神经网络的子网络中,其中,该子网络对应可以为动态模块(Dynamic block),其中,动态模块的个数可以为N个,N可以为大于等于1的正整数,也就是说,该子网络可以为1个动态模块,也可以为2个或2个以上的动态模块;这里,本公开实施例不作具体限定。
在每个动态模块中,包含一个路径选择器(相当于上述路径选择网络),用于为每个子图像确定复原网络,从而使得每个图像在不同的动态模块中可以采用不同的复原网络进行处理,从而实现对不同的子图像选择不同的处理方式的目的,得到的处理后的特征为一个63*63*64的张量。
第三个处理部分,实现对每个子图像的解码,那么,在得到每个子图像处理后的特征之后,对每个子图像处理后的进行解码,这里,可以通过解码器来实现,例如,对上述处理后的特征进行解码,得到子图像的复原后的图像,可以表示为63*63*3的张量。
其中,为了实现在多路径神经网络中子网络对子图像的特征的处理,在一种可选的实施例中,S202可以包括:
当子网络的个数为N,且N个子网络依次相连时;
将每个子图像的第i级特征输入至第i个子网络中,采用第i个子网络中的第i个路径选择网络,从第i个子网络中的M个复原网络中,为每个子图像选择第i个复原网络;
根据第i个复原网络,对每个子图像的第i级特征进行处理,输出得到每个子图像的第i+1级特征;
i更新为i+1,返回至将每个子图像的第i级特征输入至第i个子网络中,采用第i个子网络中的第i个路径选择网络,从第i个子网络中的M个复原网络中,为每个子图像选择第i个复原网络;
直至输出得到每个子图像的第N级特征,将每个子图像的第N级特征确定为每个子图像处理后的特征;
当i=1时,每个子图像的第i级特征为每个子图像的特征;
其中,N为不小于1的正整数,M为不小于2的正整数,i为大于等于1小于等于N的正整数。
以子网络为动态模块为例来说,当多路径神经网络中包括N个动态模块,且N个动态模块依次相连,将得到的子图像的特征输入至第1个动态模块中,在每个动态模块中包括一个路径选择器、一个共享路径和M个动态路径。
当第1个动态模块接收到子图像的特征,将接收到的子图像的特征作为子图像的第1级特征,第1个路径选择器根据子图像的第1级特征,从M个动态路径中为子图像确定第1个复原网络,从而将共享路径和M个动态路径中所选中的动态路径组成第1个复原网络;然后,根据第1级复原网络,对子图像的第1级特征进行处理,得到子图像的第2级特征,将i更新为2,将子图像的第2级特征输入至第2个动态模块中,按照与第1个动态模块相同的处理方法,得到子图像的第3级特征,以此类推,直至得到子图像的第N级特征,从而得到每个子图像处理后的特征。
其中,在多路径神经网络中,子图像的特征的大小和复原网络的个数都是可变的,在实际应用中,子图像的特征的大小可以为63*63*64的张量,也可以是32*32*16的张量,96*96*48的张量等等;动态模块的数量N和动态路径的数量M是可变的,例如,N=6,M=2;N=5,M=4;这里,本公开实施例不作具体限定。
这里,需要说明的是,上述在N和M参数的选择中,当要解决的失真问题较为复杂时,可以适当增加N和M,反之则可以减小N和M。
上述共享路径和第2-M个动态路径的结构不局限于残差模块(residual block),也可以是密集模块(dense block)等其它的结构。
需要说明的是,上述每个动态模块中的路径选择器的网络结构可以是相同的,也可以是不同的,这里,本公开实施例不作具体限定。
在实际应用中,上述路径选择器,输入的为63*63*64的张量,输出为所选择的路径的编号ai,路径选择器的结构从输入到输出分别是C个卷积层,一个全连接层(输出维度32),一个长短期记忆(LSTM,Long-Short Term Memory)模块(状态数32),一个全连接层(输出维度M)。其中最后一层的激活函数是Softmax或者ReLU,激活后的M维向量中最大元素的序号即为选择的动态路径编号。
其中,C的数目可以根据复原任务的难度调整,第一个全连接层的输出维度和LSTM模块的状态数不局限于32,可以是16,64等等。
为了实现对多路径神经网络中的参数的更新,在一种可选的实施例中,当得到子图像的复原图像的数目大于等于预设数目时,该方法还包括:
获取预设数目的子图像的复原图像,以及获取与预设数目的子图像的复原图像相对应的参考图像;
基于预设数目的子图像的复原图像和相对应的参考图像,根据预设的子图像的复原图像与相对应的参考图像之间的损失函数,通过优化器对多路径神经网络中除路径选择网络以外的网络进行训练,以更新多路径神经网络中除路径选择网络以外的网络的参数;
且,基于预设数目的子图像的复原图像和相对应的参考图像,根据预设的奖励函数,通过优化器采用强化学习算法,对路径选择网络进行训练,以更新路径选择网络中的参数。
具体来说,预先存储有参考图像,以预设数目为32为例,当得到32个子图像的复原图像之后,将这32个子图像的复原图像和相对应的参考图像为样本,基于该样本数据,根据子图像的复原图像与相对应的参考图像之间的损失函数,用优化器对多路径神经网络中除了路径选择网络以外的网络进行训练,以更新多路径神经网络中除了路径选择网络以外的网络的参数。
与此同时,还是以将这32个子图像的复原图像和相对应的参考图像为样本,为了训练路径选择网络,这里采用强化学习算法,为了采用强化学习算法,预先设置有奖励函数,并且该强化学习算法的优化目标为最大化所有奖励函数之和的期望;这样,基于该样本数据,根据预设的奖励函数,通过优化器采用强化学习算法对路径选择网络进行训练,从而达到更新路径选择网络的参数的目的。
也就是说,采用不同的处理方式,同时对多路径神经网络除了路径选择网络以外的网络,以及对路径选择网络进行训练,达到更新网络的参数的目的。
其中,预先设置有子图像的复原图像与相对应的参考图像之前的损失函数,该损失函数可以为L2损失函数,也可以为VGG损失函数,这里,本公开实施例不作具体限定。
为了更好地更新多路径神经网络中除了路径选择网络以外的网络的参数,在一种可选的实施例中,在获取预设数目的子图像的复原图像,以及获取与预设数目的子图像的复原图像相对应的参考图像之后,在根据得到的预设数目的子图像的复原图像与对应的参考图像之间的损失函数,通过优化器对多路径神经网络中除路径选择网络以外的网络进行训练,以更新多路径神经网络中除路径选择网络以外的网络的参数之前,该方法还包括:
基于预设数目的子图像的复原图像和相对应的参考图像,根据预设的子图像的复原图像与相对应的参考图像之间的损失函数,通过优化器对多路径神经网络中除路径选择网络以外的网络进行训练,以更新多路径神经网络中除路径选择网络以外的网络中的参数。
也就是说,在采用不同的处理方式,同时对多路径神经网络除了路径选择网络以外的网络,以及对路径选择网络进行训练之前,基于样本,可以先对多路径神经网络中除了路径选择网络以外的网络进行训练,然后,在采用不同的处理方式,同时对多路径神经网络除了路径选择网络以外的网络,以及对路径选择网络进行训练,如此,可以更好的优化多路径神经网络除了路径选择网络以外的网络,以及对路径选择网络中的参数。
在一种可选的实施例中,上述奖励函数如下所示:
其中,ri代表第i级子网络的奖励函数,p表示一个预设的惩罚项,1{1}(ai)表示一个指示函数,d表示难度系数;
当ai=1时,指示函数的值为1,当ai≠1时,指示函数的值为0。
其中,上述惩罚项为一个设定的值,该惩罚项的值的大小与子图像的失真程度有关,代表了网络复杂度的大小,当ai=1即简单的连接路径被选择时,因为该路径没有引入额外的计算开销所以惩罚项为0。若ai≠1,即一条复杂路径被选择时,奖励函数会有惩罚项(减少p)。
上述奖励函数是基于子图像的难度系数的奖励函数,上述难度系数可以为常数1,也可以为一个与损失函数有关的值,这里,本公开实施例不作具体限定。
这里,当难度系数为一个与损失函数有关的值时,在一种可选的实施例中,上述难度系数d如下所示:
其中,Ld表示预设的子图像的复原图像与相对应的参考图像之间的损失函数,L0为一个阈值。
上述损失函数可以为均方误差L2损失函数,也可以为视觉几何组(VGG,VisualGeometry Group)损失函数,这里,本公开实施例不作具体限定。
这里,需要说明的是,难度系数中所用到的损失函数的形式与网络训练中晕倒的损失函数的形式可以相同,也可以不同,本公开实施例不作具体限定。
例如,当难度系数为自变量为子图像的复原图像与相对应的参考图像之间的距离L2时,L2代表了复原效果,复原结果越好,这一项的值越大,则奖励函数也就越大。难度系数d代表了一个图像区域的复原难度,当难度较大时,d的值越大,鼓励网络对这些区域进行更精细的复原;当难度较小时,d的值越小,不鼓励网络对这些区域进行过于精细的复原。
下面举实例来对上述一个或多个实施例中所述的图像复原方法进行说明。
图3为本公开实施例提供的一种可选的多路径神经网络的结构示意图;参考图3所示,获取到图像,将图像进行区域划分,得到若干个子图像x,将子图像x(用63*63*3的张量表示)输入至多路径神经网络中的编码器中,编码器为一个卷积层Conv,通过该卷积层对子图像x进行编码,得到子图像x的特征(用63*63*64的张量表示)。
然后,将子图像x的特征输入至包括有N个动态模块(Dynamic Block 1…DynamicBlock i…Dynamic Block N)中的第1个动态模块中,由图3可以看出,每个动态模块中包含一个共享路径
一个路径选择器f
PF和M个动态路径
针对第1个动态模块来说,接收到子图像的第1级特征x
1,路径选择器通过对x
1进行处理得到a
1,在本实例中,a
1可以选择f
1 i;通过a
1为x
1从M个动态路径中确定出一个动态路径,从而将共享路径与a
1确定出的动态路径组成复原网络,对x
1进行处理,得到子图像的第1级特征x
2,然后,将x
2输入至第2级动态模块中,与x
1的处理相同,得到x
3,直至得到x
n,作为子图像处理后的特征。
最后,将xn输入至解码器中,解码器为一个卷积层Conv,通过卷积层Conv对xn进行解码,得到子图像复原后的图像(用63*63*64的张量表示,如图3中的output下面的图像所示)。
其中,路径选择器Pathfinder输入的为63*63*64的张量,输出为所选择的路径的编号ai,如图3所示,路径选择器的结构从输入到输出分别是C个卷积层(Conv 1到Conv C),一个全连接层FC(输出维度32),一个长短期记忆(LSTM,Long-Short Term Memory)模块(状态数32),一个全连接层FC(输出维度M)。其中,最后一层的激活函数是Softmax或者ReLU,激活后的M维向量中最大元素的序号即为选择的动态路径编号。
若预设数目为32,当得到32个子图像的复原图像之后,先从参考图像GT(用y表示)中获取与这32个子图像相对应的参考图像,从而得到训练样本,然后,根据预设的子图像的复原图像与参考图像之间的损失函数L2loss,通过优化器Adam对图3中除了路径选择器以外的网络进行训练,以更新除了路径选择器以外的网络的参数,从而达到优化网络参数的目的。
同时,基于上述训练样本,根据预先设置后的与难度系数有关的奖励函数Reward,还是通过优化器Adam采用强化学习算法对图3中路径选择器进行训练,以更新路径选择器的参数,从而达到优化网络参数的目的。
其中,上述优化器采用的算法可以为随机梯度下降(SGD,Stochastic gradientdescent),上述强化学习算法可以为REINFORCE,还可以为actor-critic等等其他算法;这里,本公开实施例对此不作具体限定。
需要说明的是,图3中的实线箭头代表向前Forward,短虚线箭头代表向后Backward,长虚线箭头代表向前Path Selection。
图4为本公开实施例提供的一种可选的动态模块的结构示意图;如图4所示,动态模块Dynamic Block中包括一个共享路径,该共享路径由两个卷积层(两个Conv(3,64,1))组成,一个路径选择器Pathfinder和两个动态路径,一个动态路径的输入和输出相同,即,该条动态路径对子图像的特征不做处理,另一条动态路径有两个卷积层(两个Conv(3,64,1))组成,路径选择器的结果由共享路径和动态路径合成;其中,路径选择器由两个卷积层(Conv(5,4,4)和Conv(5,24,4))、一个全连接层Fc(32)、一个LSTM(32)和一个Fc(32)。
图5为本公开实施例提供的另一种可选的动态模块的结构示意图;如图5所示,动态模块Dynamic Block中包括一个共享路径,该共享路径由两个卷积层(Conv(3,24,1)和Conv(3,32,1))组成,一个路径选择器Pathfinder和4个动态路径,1个动态路径的输入和输出相同,即,该条动态路径对子图像的特征不做处理,还有一条动态路径有两个卷积层(两个Conv(3,32,1))组成,路径选择器的结果由共享路径和动态路径合成;其中,路径选择器由4个卷积层(一个Conv(3,8,2)、两个Conv(3,16,2)和一个Conv(3,24,2))、一个全连接层Fc(32)、一个LSTM(32)和一个Fc(32)组成。
通过上述实例,能够恢复含有单一或多种失真的降质图像,失真包括但不局限于高斯噪声,高斯模糊,JPEG压缩的一种或多种;本公开实施例可以在达到相同图像复原效果的情况下实现多达4倍的速度提升,具体的速度提升比例与复原任务相关,越复杂的复原任务提速越显著,在相同计算量的前提下,达到了更好的复原效果,复原效果可用峰值信噪比(PSNR,Peak Signal to Noise Ratio)和结构相似性(SSIM,Structural SimilarityIndex)来衡量。
另外,可以快速提高手机照片的图像质量,包括去除或减弱曝光噪声,失焦模糊,压缩失真等等。一张手机照片中的内容是很多样的,可能有大片平滑的天空区域,或是虚化的背景,这些区域都是比较好处理的,通过本公开实施例,可以较为快速地复原这些区域,把计算量着重放在图片的主体区域中,从而实现又好又快的图像复原。
在本公开实施例提供的一种图像复原方法,图像复原装置对获取到的图像进行区域划分,得到一个以上子图像,将每个子图像输入至多路径神经网络中,采用为每个子图像确定出的复原网络对每个子图像进行复原,输出得到每个子图像的复原图像,以得到图像的复原图像;也就是说,在本公开实施例的技术方案中,先对获取到的图像进行区域划分,得到一个以上子图像,然后,将每个子图像输入至多路径神经网络中,采用为每个子图像确定出的复原网络对每个子图像进行复原,可见,在多路径神经网络中为每个子图像确定对应的复原网络,这样,使得每个子图像所采用的复原网络不是全部相同的,而是针对不同的子图像采用不同的复原网络,那么,对不同的子图像采用不同的复原网络进行复原,可以对一些子图像可以采用简单的方式进行复原,可以对一些子图像可以采用复杂的方式进行复原,如此,采用这种区域定制的图像复原方法,减小了图像复原的复杂度,从而提高了图像复原的速度。
实施例二
图6为本公开实施例提供的一种图像复原装置的结构示意图。如图6所示,该图像复原装置包括:
划分模块61,用于对获取到的图像进行区域划分,得到一个以上子图像;
复原模块62,用于将每个子图像输入至多路径神经网络中,采用为每个子图像确定出的复原网络对每个子图像进行复原,输出得到每个子图像的复原图像,以得到图像的复原图像。
可选的,复原模块62,包括:
编码子模块,用于对每个子图像进行编码,得到每个子图像的特征;
复原子模块,用于将每个子图像的特征输入至多路径神经网络的子网络中,采用子网络中的路径选择网络,为每个子图像选择复原网络,根据每个子图像的复原网络,对每个子图像进行处理,输出得到每个子图像处理后的特征;
解码子模块,用于对每个子图像处理后的特征进行解码,得到每个子图像的复原图像。
可选的,复原子模块,具体用于:
当子网络的个数为N,且N个子网络依次相连时;
将每个子图像的第i级特征输入至第i个子网络中,采用第i个子网络中的第i个路径选择网络,从第i个子网络中的M个复原网络中,为每个子图像选择第i个复原网络;
根据第i个复原网络,对每个子图像的第i级特征进行处理,输出得到每个子图像的第i+1级特征;
i更新为i+1,返回至将每个子图像的第i级特征输入至第i个子网络中,采用第i个子网络中的第i个路径选择网络,从第i个子网络中的M个复原网络中,为每个子图像选择第i个复原网络;
直至输出得到每个子图像的第N级特征,将每个子图像的第N级特征确定为每个子图像处理后的特征;
当i=1时,每个子图像的第i级特征为每个子图像的特征;
其中,N为不小于1的正整数,M为不小于2的正整数,i为大于等于1小于等于N的正整数。
可选的,当得到子图像的复原图像的数目大于等于预设数目时,该装置还包括:
获取模块,用于获取预设数目的子图像的复原图像,以及获取与预设数目的子图像的复原图像相对应的参考图像;
第一训练模块,用于:
基于预设数目的子图像的复原图像和相对应的参考图像,根据预设的子图像的复原图像与相对应的参考图像之间的损失函数,通过优化器对多路径神经网络中除路径选择网络以外的网络进行训练,以更新多路径神经网络中除路径选择网络以外的网络的参数;
且,基于预设数目的子图像的复原图像和相对应的参考图像,根据预设的奖励函数,通过优化器采用强化学习算法,对路径选择网络进行训练,以更新路径选择网络中的参数。
可选的,该装置还包括:
第二训练模块,用于:
在获取预设数目的子图像的复原图像,以及获取与预设数目的子图像的复原图像相对应的参考图像之后,在根据得到的预设数目的子图像的复原图像与对应的参考图像之间的损失函数,通过优化器对多路径神经网络中除路径选择网络以外的网络进行训练,以更新多路径神经网络中除路径选择网络以外的网络的参数之前,基于预设数目的子图像的复原图像和相对应的参考图像,根据预设的子图像的复原图像与相对应的参考图像之间的损失函数,通过优化器对多路径神经网络中除路径选择网络以外的网络进行训练,以更新多路径神经网络中除路径选择网络以外的网络的参数。
可选的,上述奖励函数如下所示:
其中,ri代表第i级子网络的奖励函数,p表示一个预设的惩罚项,1{1}(ai)表示一个指示函数,d表示难度系数;
当ai=1时,指示函数的值为1,当ai≠1时,指示函数的值为0。
可选的,上述难度系数d如下所示:
其中,Ld表示预设的子图像的复原图像与相对应的参考图像之间的损失函数,L0为一个阈值。
图7为本公开实施例提供的一种电子设备的结构示意图,如图7所示,该电子设备包括:处理器71、存储器72和通信总线73;其中,
所述通信总线73,用于实现所述处理器71和所述存储器72之间的连接通信;
所述处理器71,用于执行所述存储器72中存储的图像复原程序,以实现上述图像复原方法。
本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可以被一个或者多个处理器执行,以实现上述图像复原方法。计算机可读存储介质可以是是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatilememory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);也可以是包括上述存储器之一或任意组合的各自设备,如移动电话、计算机、平板设备、个人数字助理等。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程信号处理设备的处理器以产生一个机器,使得通过计算机或其他可编程信号处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程信号处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程信号处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。