基于ADMM神经网络的图像去模糊方法与流程

文档序号:21368966发布日期:2020-07-04 04:45阅读:1736来源:国知局
基于ADMM神经网络的图像去模糊方法与流程

本发明方法涉及一种针对图像特征的图像去模糊方法,尤其是一种基于admm神经网络的图像去模糊方法。



背景技术:

近年来由于图像处理与深度学习的蓬勃发展,涌现出了大量的图像去模糊算法。现有较为流行的图像去模糊算法主要分为基于神经网络的端到端图像去模糊算法及基于优化理论的图像去模糊算法。基于神经网络的端到端去模糊算法的优点是不需要建立较为复杂的数学求解模型,只需要遵循深度学习的准则即可,训练过程中的相关参数调整主要依靠反向传播机制及优化器,不需要人为干预,缺点则是很多效果较为理想的神经网络均是通过大量实验所得出,其本质无法通过相关理论进行解释,其次是神经网络的训练主要是学习数据集中的潜在规律,若数据集中不包含某种必要的潜在规律,那么在不同场景的应用中效果会差距较大,即存在过拟合问题。基于优化理论的图像去模糊算法的优点是不需要通过训练即可使用,可避免神经网络的过拟合问题,因而在不同场景的应用中效果差距不大,缺点是需要建立相应的求解模型,不仅需要相关人员具备大量的先验知识,而且算法中的关键参数通常也需要经过大量的人为实验才可得出,否则会极大的影响实际效果。迄今为止,未有将基于神经网络算法与基于优化理论算法的优点融合进行图像去模糊的相关报道。



技术实现要素:

本发明是为了解决现有技术所存在的上述技术问题,提供一种基于admm神经网络的图像去模糊方法。

本发明的技术解决方案是:一种基于admm神经网络的图像去模糊方法,按照如下步骤进行:

010预处理阶段

步骤c011:配置pc机的软件环境;

步骤c012:采用gopro训练集;

步骤c013:初始化摄像头;

步骤c014:配置pc机与摄像头所在的局域网;

020训练阶段

步骤c021:构建数学模型并利用admm进行裂项求解如下:

其中,x(i)为第i阶段重构层restore(i)的输出;x(i-1)为第i-1阶段重构层restore(i-1)的输出,y为原始模糊图像,z(i)为第i阶段去噪层denoise(i)的输出,z(i-1)为第i-1阶段去噪层denoise(i-1)的输出,β(i)为第i阶段乘子更新层multipler(i),β(i-1)为第i-1阶段乘子更新层multipler(i),n为总计阶段数,i为阶段号,i=1,2,…,n,ki与是restore(i)中大小为3×3的卷积核,ρ(i)是restore(i)中的惩罚项系数,lr(i)为restore(i)中的学习率,为denoise(i)中的保真系数,r为非线性函数,为denoise(i)中大小为3×3的卷积核,η(i)是multipler(i)中的乘子更新系数;

步骤c022:搭建admm神经网络,约定admm神经网络的可训练参数集为θnet,

神经网络结构包含如下子层:

c0221:第i阶段重构层restore(i),对模糊图像进行去模糊操作,包含的可训练参数集为

c0222:第i阶段去噪层denoise(i),对重构层输出的图像进行去噪,包含的可训练参数集为

c0223:第i阶段乘子更新层multiple(i),包含的可训练参数集为θβ(i)={ηi};

步骤c023:初始化可训练参数集θnet,其中θnet中的元素均服从区间[0,1]的均匀分布;

步骤c024:设置admm神经网络的超参数:约定批处理值为batch_size的值为25,子块大小为patch_size的值为128×128,学习率为learning_rate的值为1×10-4

步骤c025:从训练集中随机选取5100张图像,并按照batch_size与patch_size的值分别记为模糊图像块img1,img2,...,img204;

步骤c026:约定损失函数为l2-loss,优化算法为adam算法,将划分好的模糊图像块img1,img2,...,img204依次送入admm神经网络,经过前向传播、反向传播和优化更新进行训练,训练次数至少2000次,具体步骤如下:

前向传播定义为netadmm(img),admm神经网络中的重构层restore(i)、去噪层denoise(i)及乘子更新层multipler(i)彼此间交替迭代,得到去模糊图像块out1,out2,...,out204:定义卷积层为conv(x),矩阵点积运算为dot(x,y),其中表示为conv(conv(x(i-1))-y),卷积核分别为ki与表示为dot(ρ(i),(x(i-1)(i-1)-z(i-1))),表示为dot(lr(i),conv(conv(x(i-1))-y)+dot(ρ(i),(x(i-1)(i-1)-z(i-1)))),故restore(i)可表示为x(i-1)-dot(lr(i),conv(conv(x(i-1))-y)+dot(ρ(i),(x(i-1)(i-1)-z(i-1)))),定义则有:正则项函数r采用编码器-解码器神经网络模块通过训练进行模拟,约定编码器-解码器模块为edcode(x),有则denoise(i)可表示为multipler(i)可表示为β(i-1)+dot(η(i)(x(i)-z(i)));

反向传播是将去模糊图像块out1,out2,...,out204依次与标签图像块进行比较,计算损失值loss:约定标签图像块中的图像为imggt,去模糊图像块中的图像为imgout,损失值为loss,根据l2-loss函数的定义,其中n为图像块所包含的像素的个数,定义每张图像的通道数、宽度、高度分别为channel、height、width,n=channel*height*width*batch_size;

优化更新:通过损失值loss利用链式法则求解各个子层的可训练参数的偏导数,将可训练参数与其梯度值代入adam算法进行更新;

030admm网络应用阶段

步骤c031:将摄像头采集到的模糊图像image_input传输至部署admm神经网络的pc机中;

步骤c032:将模糊图像image_input进行解码,送至训练结束的admm神经网络中;

步骤c033:接收admm神经网络输出的图像image_output,压缩编码并存储;

步骤c034:输出至显示器中显示。

本发明针对图像去模糊这一问题进行建模,并利用admm算法对问题进行裂项求解,根据求解出的三个子问题构建相关的神经网络,通过构建的神经网络训练获得更符合实际的admm算法参数与相关的正则项,可减少调参与正则项选取的工作量,且可进一步提升实际效果与运行效率。本发明既保留了传统优化算法的优良理论依据,又利用了神经网络的可训练性,可较好地对运动图像进行去模糊处理。

附图说明

图1是本发明实施例admm神经网络结构示意图。

图2是本发明实施例admm神经网络结构中重构层的示意图。

图3是本发明实施例admm神经网络结构中去噪层的示意图。

图4是本发明实施例admm神经网络结构中乘子更新层的示意图。

图5是本发明实施例摄像头采集到的模糊图像。

图6是现有技术对模糊图像处理后的结果图。

图7是本发明实施例对模糊图像处理后的结果图。

具体实施方式

本发明的基于admm神经网络的图像去模糊方法,按照如下步骤进行:

010预处理阶段

步骤c011:配置pc机的软件环境,包括python3.6,tensorflow2.0,cuda10.0等;

步骤c012:采用gopro训练集;

步骤c013:初始化摄像头;

步骤c014:配置pc机与摄像头所在的局域网;

020训练阶段

步骤c021:构建数学模型并利用admm进行裂项求解如下:

其中,x(i)为第i阶段重构层restore(i)的输出;x(i-1)为第i-1阶段重构层restore(i-1)的输出,y为原始模糊图像,z(i)为第i阶段去噪层denoise(i)的输出,z(i-1)为第i-1阶段去噪层denoise(i-1)的输出,β(i)为第i阶段乘子更新层multipler(i),β(i-1)为第i-1阶段乘子更新层multipler(i),n为总计阶段数,i为阶段号,i=1,2,…,n,ki与是restore(i)中大小为3×3的卷积核,ρ(i)是restore(i)中的惩罚项系数,lr(i)为restore(i)中的学习率,为denoise(i)中的保真系数,r为非线性函数,为denoise(i)中大小为3×3的卷积核,η(i)是multipler(i)中的乘子更新系数;

步骤c022:搭建admm神经网络,约定admm神经网络的可训练参数集为θnet,

神经网络结构包含如图1所示的如下子层:

c0221:第i阶段重构层restore(i),对模糊图像进行去模糊操作,包含的可训练参数集为

c0222:第i阶段去噪层denoise(i),对重构层输出的图像进行去噪,包含的可训练参数集为

c0223:第i阶段乘子更新层multiple(i),包含的可训练参数集为

步骤c023:初始化可训练参数集θnet,其中θnet中的元素均服从区间[0,1]的均匀分布;

步骤c024:设置admm神经网络的超参数:约定批处理值为batch_size的值为25,子块大小为patch_size的值为128×128,学习率为learning_rate的值为1×10-4

步骤c025:从训练集中随机选取5100张图像,并按照batch_size与patch_size的值分别记为模糊图像块img1,img2,...,img204;

步骤c026:约定损失函数为l2-loss,优化算法为adam算法,将划分好的模糊图像块img1,img2,...,img204依次送入admm神经网络,经过前向传播、反向传播和优化更新进行训练,训练次数至少2000次,具体步骤如下:

前向传播定义为netadmm(img),admm神经网络中的重构层restore(i)、去噪层denoise(i)及乘子更新层multipler(i)彼此间交替迭代,得到去模糊图像块out1,out2,...,out204:定义卷积层为conv(x),矩阵点积运算为dot(x,y),其中表示为conv(conv(x(i-1))-y),卷积核分别为ki与表示为dot(ρ(i),(x(i-1)(i-1)-z(i-1))),表示为dot(lr(i),conv(conv(x(i-1))-y)+dot(ρ(i),(x(i-1)(i-1)-z(i-1)))),故restore(i)如图2所示,可表示为x(i-1)-dot(lr(i),conv(conv(x(i-1))-y)+dot(ρ(i),(x(i-1)(i-1)-z(i-1)))),定义则有:正则项函数r采用编码器-解码器神经网络模块通过训练进行模拟,约定编码器-解码器模块为edcode(x),有则denoise(i)可如图3所示,表示为multipler(i)如图4所示,可表示为β(i-1)+dot(η(i)(x(i)-z(i)));

反向传播是将去模糊图像块out1,out2,...,out204与依次标签图像块进行比较,计算损失值loss:约定标签图像块中的图像为imggt,去模糊图像块中的图像为imgout,损失值为loss,根据l2-loss函数的定义,其中n为标签图像或去模糊图像块所包含的像素的个数,定义每张图像的通道数、宽度、高度分别为channel、height、width,n=channel*height*width*batch_size;

优化更新:通过损失值loss利用链式法则求解各个子层的可训练参数的偏导数,将可训练参数与其梯度值代入adam算法进行更新;

030admm网络应用阶段

步骤c031:将摄像头采集到的如图5所示的模糊图像image_input传输至部署admm神经网络的pc机中;

步骤c032:将模糊图像image_input进行解码,送至训练结束的admm神经网络中;

步骤c033:接收admm神经网络输出的图像image_output,压缩编码并存储;

步骤c034:输出至显示器中显示,结果如图7所示。

按照论文《frommotionblurtomotionflow:adeeplearningsolutionforremovingheterogeneousmotionblur》中的相应算法对图1模糊图像处理后的结果如图6所示。结果表明:本发明实施例对图像的去模糊效果明显优于现有技术。

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