图像去模糊模型的生成方法、图像去模糊方法和电子设备与流程

文档序号:26142424发布日期:2021-08-03 14:27阅读:120来源:国知局
图像去模糊模型的生成方法、图像去模糊方法和电子设备与流程

本发明属于图像识别和处理技术领域,尤其是人工智能辅助图像识别技术领域,更具体的是涉及一种图像去模糊模型的生成方法及系统、图像去模糊的方法、电子设备和计算机可读介质。



背景技术:

无论是在日常生活中还是互联网公司的业务中,在需要处理图像的时候经常会遇到图像模糊的问题,其原因可能是因为拍摄时手抖或光线暗,导致拍摄得到的页面出现对焦不准或有残影,而一旦图像模糊,其中的一些关键信息就无法进行辨别,从而对后续的各种处理和应用造成障碍,如果能够将模糊的图像尽可能的重建成清晰的图像,将对后续业务的开展带来极大的好处。

现有技术中通常采用传统的图像处理方法,如多次降噪、维纳滤波器(wienerfilter)等,近些年来也出现了一批使用深度学习的自适应方法,但传统方法和早期的深度学习方法往往出现效果欠佳、鲁棒性差,且耗时较长,无法满足网络实时处理高像素图片的缺陷,因此迫切需要研发出一套更优的图像去模糊方法及系统。



技术实现要素:

有鉴于此,本发明的主要目的在于提出一种图像去模糊模型的生成方法及系统、图像去模糊的方法、电子设备和计算机可读介质,以期至少部分地解决上述技术问题中的至少之一。

为了实现上述目的,作为本发明的第一个方面,提供了一种图像去模糊模型的生成方法,包括如下步骤:

构建基于编码-解码结构的人工智能模型,该模型包括编码部分和解码部分,其中编码部分用于从输入图像中提取特征,解码部分用于从提取的所述特征中还原出清晰的图像;

采用模糊-清晰图像对,对所述人工智能模型进行训练,得到用于去除图像模糊的图像去模糊模型,其中,所述模糊-清晰图像对包括清晰图像和基于所述清晰图像生成的模糊图像。

作为本发明的第二个方面,还提供了一种图像去模糊的方法,包括如下步骤:

采用如上所述的生成方法生成用于图像去模糊的人工智能模型,并采用其对待处理的输入图像进行去模糊处理。

作为本发明的第三个方面,还提供了一种图像去模糊模型的生成系统,包括:

输入模块,用于输入训练图像;

模型搭建模块,用于搭建基于编码-解码结构的人工智能模型;所述人工智能模型包括编码部分和解码部分,其中编码部分从输入图像中提取特征,解码部分从提取的特征中还原出清晰的图像;

模型训练模块,用于采用模糊-清晰图像对,对所述人工智能模型进行训练。

作为本发明的第四个方面,还提供了一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机可执行程序被所述处理器执行时,所述处理器执行如上所述的方法。

作为本发明的第五个方面,还提供了一种计算机可读介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现如上所述的方法。

基于上述技术方案可知,本发明的图像去模糊的方法及系统,以及采用其的电子设备和计算机可读介质相对于现有技术至少具有如下有益效果之一:

本发明通过人工智能模型来消除图像模糊,其中人工智能模型包括编码部分和解码部分,其中编码部分用于从输入图像中提取特征,解码部分用于从提取的所述特征中还原出清晰的图像;该人工智能模型采用模糊-清晰图像进行了训练,其中的模糊-清晰图像对包括清晰图像和基于所述清晰图像生成的模糊图像;按上述方案训练的模型用于校正图像模糊时,可以将图像中模糊难以肉眼鉴别的区域变的更加清晰,并且鲁棒性更强,耗时更短,效果更好;

进一步地,本发明采用深度机器学习的方式来消除图像模糊,其首次采用了随机初始化的浅层vgg来对重建后的图像进行损失函数(loss)计算,实践表明,随机初始化和从预训练模型中初始化的效果相同且成本更小;

本发明采用更加先进的深度学习算法,鲁棒性更强,耗时更短,效果更好。

附图说明

图1是本发明的图像去模糊方法的方框流程图;

图2是本发明的图像去模糊模型的生成系统的结构示意图;

图3是本发明实施例1的图像去模糊方法的方框流程图;

图4是本发明实施例2的图像去模糊方法的方框流程图;

图5是本发明的电子设备的结构示意图;

图6是本发明的计算机可读介质的结构示意图;

图7-11是本发明实施例1的实际处理效果照片。

具体实施方式

在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。

附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。

附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理单元装置和/或微控制器装置中实现这些功能实体。

各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。

本文中用到的一些术语含义如下:

编码-解码结构(encoder-decoder),指的是一种对称的cnn架构,其先将输入逐渐地转换为更小分辨率、更多通道的特征,然后逐渐地转换到原始输入大小的输出。同分辨率下的编码器与解码器之间可通过跳过连接方式进行特征组合,跳过连接有助于梯度传播,加速收敛。编码-解码结构架构已在多种视觉任务中证实了其有效性。但直接将其用到去模糊任务中并非最优选择,本领域技术人员一般不考虑将其用于图像去模糊。因为对于去模糊任务来说,感受野需要足够大以保证可处理严重的大尺度运动;堆叠更多的编码/解码模块会造成中间特征的分辨率过小不利于重建;而堆叠卷积模块可提升感受野,但同时会产生噪声过高的参数量与计算量。

opencv,是一个基于bsd许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在linux、windows、android和macos操作系统上。它轻量级且高效——由一系列c函数和少量c++类构成,同时提供了python、ruby、matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。opencv主要倾向于实时视觉应用,并在可用时利用mmx和sse指令,如今也提供对c#、ch、ruby、go的支持。

batchnormalization,简称batchnorm或bn,翻译为“批归一化”。batchnormalization是对每个神经元做归一化,由于batchnorm为了简化计算,使用一个batch内的样本来估计整体的数据分布,归一化统计量都是通过一个batch内的数据统计得到,如果batchsize过小,就无法根据一个batch内的样本得到整个数据集的有效估计,从而影响模型的性能。

layernormalization,简称ln,翻译成层归一化(层标准化)。不管bn还是ln,都是为了限制神经元的输出值,使其符合一定的分布,但两者的区别在于,为了得到均值和方差,bn采用了不同batch中不同的输入数据来计算,ln采用了同一层上神经元来计算。

vgg是oxford的visualgeometrygroup组提出的,主要工作是证明增加网络的深度能够在一定程度上影响网络最终的性能。vgg有两种结构,分别是vgg16和vgg19,两者无本质区别,仅网络深度不同。在本发明的一种实施例中,在vgg中,使用了3个3×3卷积核来代替7×7卷积核,使用了2个3×3卷积核来代替5×5卷积核,这样做可以在保证具有相同感知野的条件下,提升网络的深度,在一定程度上提升了神经网络的效果。vgg16包含了16个隐藏层(13个卷积层和3个全连接层),vgg19包含了19个隐藏层(16个卷积层和3个全连接层)。vgg的优点是结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3×3)和最大池化尺寸(2×2);验证了通过不断加深网络结构可以提升性能。

本发明是针对拍摄图像中存在的模糊问题而提出来的,其采用改进的深度学习方法,鲁棒性更强,处理效率更高。

本发明提出了一种图像去模糊模型的生成方法,包括如下步骤:

步骤一、构建基于编码-解码结构的人工智能模型,该模型包括编码部分和解码部分,其中编码部分用于从输入图像中提取特征,解码部分用于从提取的所述特征中还原出清晰的图像;

步骤二、采用模糊-清晰图像对(pair对),对所述人工智能模型进行训练,得到用于图像去模糊的人工智能模型,其中,所述模糊-清晰图像对包括清晰图像和基于所述清晰图像生成的模糊图像。

图像去模糊模型用于实现对普通图像的去模糊化处理,即可以将输入图像中模糊难以肉眼鉴别的区域变的更加清晰。本步骤的人工智能模型基于编码-解码结构实现图像重建,编码部分从输入图像中提取特征,解码部分用于从提取的特征中还原出清晰的图像。其中,所述人工智能模型可以包括深度学习神经网络模型;作为优选,所述深度学习神经网络模型为卷积神经网络(cnn)模型或生成对抗网络(gen)模型。当所述深度学习神经网络模型为卷积神经网络(cnn)模型时,其即为对称的cnn架构,同分辨率下的编码器(即编码部分)与解码器(即解码部分)之间可通过跳过连接方式进行特征组合;其损失函数可以采用欧式损失或梯度损失,优选梯度损失以快速收敛。

步骤二中,对人工智能模型进行训练,使得人工智能模型能够学习到从提取的特征中还原出清晰的图像的能力。本步骤采用的训练数据为足够数量的模糊-清晰图像对。模糊-清晰图像对包括清晰图像和基于清晰图像生成的模糊图像。本实施例对基于清晰图像生成的模糊图像的具体实施方式不做限定。例如,可以通过高清摄像机获得符合要求的清晰图像,然后通过模糊化图像处理获得与该清晰图像对应的模糊图像,模糊化图像处理一般根据真实模型使用场景下模糊图像的产生原因,来模拟化地生成类似的模糊图像。例如,可以是:不同强度的高斯模糊处理和/或不同强度的运动模糊处理。高斯模糊和运动模糊拍照中导致照片模糊的两类主要原因。

步骤二在所述对人工智能模型进行训练的步骤中,可以根据梯度损失更新所述人工智能模型。示例性地,本步骤可以根据所述模糊图像输入所述人工智能模型后输出的图像和对应的所述清晰图像之间的均方差,计算梯度损失,然后根据所述梯度损失更新所述人工智能模型。

作为优选,计算梯度损失的步骤具体包括:

将模糊-清晰图像对中的模糊图像输入到所述人工智能模型中,输出第一图像;

将所述模糊-清晰图像对中的对应清晰图像作为第二图像,计算所述第一图像和第二图像之间的第一均方差损失;

再将所述第一图像和第二图像分别送入随机初始化的三层vgg网络中,获得对应的两个输出,计算所述两个输出的第二均方差损失;

然后根据所述第一均方差损失和所述第二均方差损失计算梯度损失;

其中,所述随机初始化的三层vgg的具体结构例如为vgg16或vgg19,整个网络都使用同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。

其中,所述深度学习神经网络模型例如可以使用批归一化和层归一化进行归一化。

其中,所述模糊-清晰图像对(pair对)为模糊图像和清晰图像组成的图像对;进一步优选地,所述模糊图像是通过对清晰图像做不同强度的高斯模糊和/或运动模糊处理来得到的,其中特别优选采用opencv来实现相应操作。由此,通过对满足预设要求的清晰图像进行模糊化处理,可以获得与所述清晰图像对应的模糊图像,从而组成所述模糊-清晰图像对。所述模糊-清晰图像对可以用来训练上述图像去模糊模型。

本发明摒弃了传统深度学习算法中独立产生的模糊图像-清晰图像对的方式,首次采用了获取清晰图像-由清晰图像产生模糊图像,清晰图像和基于清晰图像生成的模糊图像组成用于训练的清晰-模糊图像对,并首次采用了随机初始化的浅层vgg来对重建后的图像进行loss计算,收敛更快,效果更好。实践表明,随机初始化和从预训练模型中初始化的效果相同且成本更小。使用这种方法生成的模型来去除图像模糊,鲁棒性更强,耗时更短,效果更好。

本发明还提出了一种图像去模糊的方法,包括如下步骤:

获取待处理的输入图像,可以是通过采集设备,例如是数码相机、手机、摄像头或扫描仪等,采集信号的部件可以是图像传感器(不限于各类ccd、cmos等);还可以是通信设备,例如手机的蜂窝通信模块、wifi模块、nfc模块、网关设备等,用于接收由其他人或设备采集到的图像。

采用如上所述的生成方法生成用于图像去模糊的人工智能模型,并采用其对待处理的输入图像进行去模糊处理。

使用上述方法生成的模型来去除图像模糊,鲁棒性更强,耗时更短,效果更好。

本发明的实施例还公开了一种图像去模糊模型的生成系统,包括:

输入模块,用于输入训练图像,所述输入模块可以是图像采集设备,例如是图像传感器(包括但不限于各类ccd、cmos等)、数码相机本身、手机本身、摄像头或扫描仪等;还可以是通信设备,例如手机的蜂窝通信模块、wifi模块、nfc模块、蓝牙模块、网关设备等,用于接收由其他人或设备采集到的图像。

模型搭建模块,用于搭建基于编码-解码结构的人工智能模型,所述人工智能模型包括编码部分和解码部分,其中编码部分从输入图像中提取特征,解码部分从提取的特征中还原出清晰的图像;具体地,模型搭建模块用于根据任务需要选择合适的人工智能模型及其配套参数。

模型训练模块,用于采用模糊-清晰图像对,训练基于编码-解码结构的人工智能模型。

其中,所述人工智能模型包括深度学习神经网络模型;作为优选,所述深度学习神经网络模型为卷积神经网络(cnn)模型或生成对抗网络(gen)模型。当所述深度学习神经网络模型为卷积神经网络(cnn)模型时,其即为对称的cnn架构,同分辨率下的编码器与解码器之间可通过跳过连接方式进行特征组合;其损失函数可以采用欧式损失或梯度损失,优选梯度损失以快速收敛,因为梯度损失能够保存更多的边缘信息,恢复出更锐利的图像。

其中,所述模型训练模块根据梯度损失迭代更新所述人工智能模型;

作为优选,所述计算梯度损失的步骤具体包括:

将模糊-清晰图像对中的模糊图像输入到所述人工智能模型中,输出第一图像;

将模糊-清晰图像对中的对应清晰图像作为第二图像,计算所述第一图像和第二图像之间的第一均方差损失;

再将所述第一图像和第二图像分别送入随机初始化的三层vgg网络中,获得对应的两个输出,计算所述两个输出的第二均方差损失;

然后根据所述第一均方差损失和第二均方差损失计算梯度损失;

其中,所述随机初始化的三层vgg的具体结构例如为vgg16或vgg19,整个网络都使用同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。

其中,所述深度学习神经网络模型例如可以使用批归一化和层归一化进行归一化。

其中,所述模糊-清晰图像对(pair对)为模糊图像和清晰图像组成的图像对;进一步优选地,所述模糊图像是通过对清晰图像做不同强度的高斯模糊和/或运动模糊处理来得到的,其中特别优选采用opencv来实现相应操作。由此,通过对满足预设要求的清晰图像进行模糊化处理,可以获得与所述清晰图像对应的模糊图像,从而组成所述模糊-清晰图像对。

如图5所示,本发明还公开了一种电子设备,其包括处理器和存储器,所述存储器用于存储计算机可执行程序,其中当所述计算机可执行程序被所述处理器执行时,所述处理器执行如上所述的方法。

该电子设备例如可以以通用计算设备的形式表现。其中,处理器可以是一个,也可以是多个且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的电子设备并不限于单一实体,也可以是多个实体设备的总和。

其中,存储器存储有计算机可执行程序,通常是机器可读的代码,该计算机可执行程序可以被所述处理器执行,以使得电子设备能够执行本发明的方法,或者方法中的至少部分步骤。

该存储器包括易失性存储器,例如随机存取存储单元(ram)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(rom)。

可选的,该实施方式中,电子设备还包括有i/o接口,其用于电子设备与外部的设备进行数据交换。i/o接口可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

本发明的电子设备中还可以包括上述示例中未示出的元件或组件。例如,有些电子设备中还包括有显示屏等显示单元,有些电子设备还包括人机交互元件,例如按钮、键盘等。只要该电子设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的电子设备。

如图6所示,本发明还公开了一种计算机可读介质,其上存储有计算机可执行程序,其中所述计算机可执行程序被执行时,实现如上所述的方法。

计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如python、java、c++等,还包括常规的过程式程序设计语言—诸如c语言、汇编语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。需要注意的是,下述实施例仅是用于说明本发明,而不是用于对本发明作出限制。

实施例1

图1是本实施例的图像去模糊的方法的方框流程图。如图1所示,本实施例的图像去模糊的方法,具体包括如下5个步骤(模块):

1、图像采集

利用图像传感器(不限于各类ccd、cmos等)采集图像,采集设备可以是数码相机、手机相机或扫描仪。

2、图像pair对生成

为了训练模型,需要生成输入图像和真实清晰图像组成的pair对。

①使用模糊处理对清晰图像进行模糊操作;

使用opencv对清晰图像做不同强度的高斯模糊和运动模糊处理,得到大批量的模糊图像以及模糊图像对应的清晰图像。

②生成训练所需要的图像pair对。

3、基于编码-解码结构(encoder-decoder)的图像重建

使用基于编码-解码结构的深度学习模型,编码器从输入图像中提取特征,解码器从提取的特征中还原出清晰的图像,整个过程中使用批归一化和层归一化进行归一化。

4、计算损失函数(loss),更新模型。

①计算模型输出的图像和真实清晰图像(即模糊-清晰图像对中的清晰图像)之间的均方差loss;

②将模型输出的图像和真实清晰图像分别送入随机初始化的三层vgg网络,对vgg网络的这两个输出再次计算均方差loss;

③根据上述两个均方差loss计算梯度,更新整个模型。

5、后续业务处理

还可以将重建后的图像输入到后续的业务流程中进一步处理,例如进一步识别出文字,对其中的手写答题进行批注等。

通过本实施例的方法,在真实场景下对模糊图像的重建效果如图7-11所示,其中左边是原图,右边是模型输出的图像。

从试验图片可以看出,即使图片曝光度特别差,看起来黑乎乎一片,也能够较好地分离识别出其中的文字,去模糊效果尚可;而对于经常遇到的由于手抖原因造成的图像模糊(图7、8),也有较好的修复效果。

实施例2

图3是本发明实施例2的图像去模糊的方法的方框流程图,如图3所示,实施例2的图像去模糊方法相对于实施例1的区别在于,其中采用的深度学习神经网络模型为生成对抗网络(gen)模型,如图4所示,其中编码-解码结构与一生成网络和一个判别网络相连,从而用一个生成网络来生成模糊图像的特征,让判别网络来区分两个特征;当训练完毕后,生成网络学习到了模糊不变量的能力,该模糊不变量经过解码器的重建过程,可直接生成清晰图像。

通过对上述实施方式的描述,本领域的技术人员易于理解,本发明采用深度机器学习的方式来消除图像模糊,其首次采用了随机初始化的浅层vgg来对重建后的图像进行损失函数(loss)计算,实践表明,随机初始化和从预训练模型中初始化的效果相同且成本更小;本发明采用更加先进的深度学习算法,鲁棒性更强,耗时更短,效果更好。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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