【图像重建】基于matlab卷积神经网络的图像超分辨率重建【含Matlab源码 1816期】

举报
海神之光 发表于 2022/05/28 23:25:10 2022/05/28
【摘要】 一、卷积神经网络的图像超分辨率重建简介 图像超分辨率增强技术在医疗影像、视频监控、航空、多媒体以及日常生活等领域有着较为广泛的应用。随着深度学习网络的发展以及计算机运算能力的不断提升,图像超分辨率增强算...

一、卷积神经网络的图像超分辨率重建简介

图像超分辨率增强技术在医疗影像、视频监控、航空、多媒体以及日常生活等领域有着较为广泛的应用。随着深度学习网络的发展以及计算机运算能力的不断提升,图像超分辨率增强算法也在持续改进,从早期的仅有三个卷积层的SRCNN发展到现在的基于生成式对抗网络的图像超分辨率增强算法。如今,图像超分辨率增强算法大都是基于生成式对抗网络[1],图像超分辨率重建及其应用正逐渐走向成熟。在生成式对抗网络相关算法的基础上,研究者们还在不断进行相关的优化,例如采样方式、特征提取、卷积层数的改变等等,以使图像超分辨率增强的训练效果越来越好。本文将在基于生成式对抗网络的图像分辨率增强算法基础上,结合陶瓷产品个性化定制等应用场景,进行进一步的改进和优化,以期望获得更好的应用效果。本文重点进行了三个方面的改进和优化:一是对图像的下采样操作进行改进;使用高斯金字塔的下采样方式从而获得低分辨率图片LR,相较于高斯滤波,在训练效果和训练时间上都有一定程度的优化及提升,在保留图中对于训练有利的重要信息的能力有所提高。二是在算法优化过程中,去掉归一化操作;在生成式对抗网络的图像超分辨率重建的实现过程中,通过对算法中归一化操作进行测试,发现归一化操作在实际训练过程中消耗了大量的计算资源,延长了训练时长,因此选择了去掉归一化操作,提高算法效率,缩短训练时长。三是对轻量化图像超分辨率的神经网络进行了研究和应用;对轻量化的图像超分辨率增强算法进行了改进,对训练时长以及重建效果进行了平衡及优化。

1 卷积神经网络的简介
卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络有三个基本概念:局部感知域(Local Re cpr tive Field) 、特征映射和池化(Pooling) 。
局部感知域:每一个卷积神经网络的输入都是2828的二维神经元。每一个图像中的像素点的灰度值都对应着2828的神经元。在卷积网络结构中,将每一个灰8度值的像素点用一个很小的区域连接到隐藏层,这个区域就是局部感知域。
特征映射:训练数据输入之后经过处理后从输入层进入隐含层,在输入层与隐含层之间的关系映射就是特征映射。
池化:池化操作主要目的是提取特征更加明显,放大一个包含多个神经元的区域最大的值的操作叫最大池化。

2 图像质量评价指标
对于生成的图像,实验中需要对图像的优化的效果进行评测。主观评价上,感觉图像的分辨率是否增加,图像的质量是否提高,对于图像的感官上会不会存在一些突兀或者不平缓的现象。客观评价就是通过数学计算给出客观数值上的评价。常用的图像质量评价指标一般有平均主观得分MOS、峰值信噪比PSNR、结构相似性S SIM、均方误差MSE等等”
峰值信噪比(PSNR) :峰值信噪比同样是表达不同图像中像素位置的差异。它
与均方误差有着相似之处。峰值信噪比可以表达如下:
在这里插入图片描述
峰值信噪比与均方误差相似之处在于都是表达像素的差异,不同的是峰值信噪比的值越大,表示重建效果越好,反之越差。公式中的n表示像素的位数。与MSE不同, PSNR值越高表示图像重建质量越好, 反之则表示越差。

二、部分源代码

% =========================================================================
% Test code for Super-Resolution Convolutional Neural Networks (SRCNN)

% =========================================================================

close all;
clear all;

%% read ground truth image
im  = imread('Set5\butterfly_GT.bmp');
%im  = imread('Set14\zebra.bmp');

%% set parameters
up_scale = 3;
model = 'model\9-5-5(ImageNet)\x3.mat';
% up_scale = 3;
% model = 'model\9-3-5(ImageNet)\x3.mat';
% up_scale = 3;
% model = 'model\9-1-5(91 images)\x3.mat';
% up_scale = 2;
% model = 'model\9-5-5(ImageNet)\x2.mat'; 
% up_scale = 4;
% model = 'model\9-5-5(ImageNet)\x4.mat';

%% work on illuminance only
if size(im,3)>1
    im = rgb2ycbcr(im);
    im = im(:, :, 1);
end
im_gnd = modcrop(im, up_scale);
im_gnd = single(im_gnd)/255;

%% bicubic interpolation
im_l = imresize(im_gnd, 1/up_scale, 'bicubic');
im_b = imresize(im_l, up_scale, 'bicubic');

%% SRCNN
im_h = SRCNN(model, im_b);

%% remove border
im_h = shave(uint8(im_h * 255), [up_scale, up_scale]);
im_gnd = shave(uint8(im_gnd * 255), [up_scale, up_scale]);
im_b = shave(uint8(im_b * 255), [up_scale, up_scale]);

%% compute PSNR
psnr_bic = compute_psnr(im_gnd,im_b);
psnr_srcnn = compute_psnr(im_gnd,im_h);

%% show results
fprintf('PSNR for Bicubic Interpolation: %f dB\n', psnr_bic);
fprintf('PSNR for SRCNN Reconstruction: %f dB\n', psnr_srcnn);

figure, imshow(im_b); title('双三次插值');
figure, imshow(im_h); title('SRCNN重建');

%imwrite(im_b, ['Bicubic Interpolation' '.bmp']);
%imwrite(im_h, ['SRCNN Reconstruction' '.bmp']);


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]王子扬.基于卷积神经网络的图像超分辨率重建[D].景德镇陶瓷大学

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/123778034

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。