安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

MATLAB环境下基于深度学习VDSR的单图像超分辨率重建

9月13日 栀璃鸢投稿
  之前主要研究现代信号处理的,深度学习嘛,一个大号深层的,现代的,黑箱的,信号图像处理器,所以,我刚才说了,作为一个研究现代信号处理的,顺便搞些深度学习也是顺理成章的。该算法可能在一维信号时频谱超分辨率重建方面有用,之前做过一些相关的东西。程序运行环境为MATLABR2018A。
  代码下载链接
  https:mianbaoduo。comobreadY5mXmp5x
  进入正题,本文主要讲解如何训练一个所谓的VeryDeepSuperResolution(VDSR)深层网络,然后使用VDSR网络从单低分辨率图像中估计高分辨率图像。关于VDSR网络,见文章末尾参考文献。
  超分辨率重建是从低分辨率图像创建高分辨率图像的过程,本例考虑单图像超分辨率(singleimagesuperresolution。SISR),其目标是从一张低分辨率图像中恢复为一张高分辨率图像。SISR具有一定的难度,因为高频图像内容通常无法从低分辨率图像中恢复。如果没有高频信息,高分辨率图像的质量就会受到限制。此外,SISR是一个所谓的病态问题,因为低分辨率图像可以产生几种可能的高分辨率图像。
  VDSR网络
  VDSR是一种卷积神经网络,旨在执行单图像超分辨率重建。VDSR网络学习低分辨率和高分辨率图像之间的映射。理论上这种映射是存在的,因为低分辨率和高分辨率图像具有相似的图像内容,并且主要在高频细节上有所不同。
  VDSR采用残差学习策略,即网络通过学习估计残差图像。残差图像是高分辨率参考图像和低分辨率图像之间的差异,后者使用双三次插值进行升级以匹配参考图像的大小。残差图像包含有关图像的高频细节的信息。
  VDSR网络根据彩色图像的亮度检测残差图像。图像的亮度通道Y通过红色、绿色和蓝色像素值的线性组合来表示每个像素的亮度。相比之下,图像的两个色度通道Cb和Cr是表示色差信息的红色、绿色和蓝色像素值的不同线性组合。VDSR仅使用亮度通道进行训练,因为人类的感知对亮度变化比对颜色变化更敏感。
  如下用英文表述较为方便:
  在VDSR网络通过学习估计残差图像后,可以将估计的残差图像添加到上采样的低分辨率图像,然后将图像转换回RGB色彩空间来重建高分辨率图像。
  尺度因子将参考图像的大小与低分辨率图像的大小相关联。随着尺度因子的增加,SISR变得更加病态,因为低分辨率图像会丢失有关高频图像内容的更多信息。VDSR通过使用较大的感受野receptivefield来解决这个问题。下载训练数据和测试数据
  下载IAPRTC12Benchmark,其中包含20000张自然图像,、包括人物,动物,城市等。可以使用downloadIAPRTC12Data函数来下载数据,数据文件的大小约为1。8GB。
  本文将使用IAPRTC12Benchmark的一小部分数据来训练网络,所有图像均为32位JPEG彩色图像。定义用于训练的MiniBatchDatastore
  Minibatchdatastore用于将训练数据输送到网络,本文通过vdsrImagePatch类自定义实现。vdsrImagePatch从低分辨率图像中提取图像块,并以不同的尺度因子升级图像块。每个minibatch包含64个大小为41x41像素的图像块,在训练期间将从图像中的随机位置提取所有图像块。要训练多尺度因子网络,将尺度因子设置为〔234〕。miniBatchSize64;scaleFactors〔234〕;sourcevdsrImagePatchDatastore(trainImages,。。。MiniBatchSize,miniBatchSize,。。。PatchSize,41,。。。BatchesPerImage,1,。。。ScaleFactor,scaleFactors);vdsrImagePatchDatastore向网络提供小批量数据,对datastore执行读取操作以浏览数据inputBatchread(source);summary(inputBatch)
  设置VDSR层
  本例使用MATLAB神经网络工具箱中的41个层定义VDSR网络,包括:
  imageInputLayerImageinputlayer
  convolutional2dLayer2Dconvolutionlayerforconvolutionalneuralnetworks
  reluLayerRectifiedlinearunit(ReLU)layer
  regressionLayerRegressionoutputlayerforaneuralnetwork
  第一层,图像输入层,对图像块进行操作,图像块的大小基于网络感受野,网络感受野是影响网络中最顶层响应的空间图像区域。对于深度为D的网络,感受野是(2D1)x(2D1)。由于VDSR是一个20层网络,因此感受野和图像块大小为41x41。图像输入层接受具有一个通道的图像,因为VDSR仅使用亮度通道进行训练。networkDepth20;firstLayerimageInputLayer(〔41411〕,Name,InputLayer,Normalization,none);
  图像输入层后跟一个2D卷积层,其中包含64个大小为3x3的滤波器。minibatch大小决定了滤波器的数量。每个卷积层后面都有一个ReLU层,便于引入非线性。convolutionLayerconvolution2dLayer(3,64,Padding,1,。。。Name,Conv1);convolutionLayer。Weightssqrt(2(964))randn(3,3,1,64);convolutionLayer。Biaszeros(1,1,64);
  ReLU层relLayerreluLayer(Name,ReLU1);
  中间层包含18个交替的卷积和ReLU层。每个卷积层包含64个大小为3x3x64的滤波器。middleLayers〔convolutionLayerrelLayer〕;forlayerNumber2:networkDepth1conv2dLayerconvolution2dLayer(3,64,。。。Padding,〔11〕,。。。Name,〔Convnum2str(layerNumber)〕);
  权重初始化conv2dLayer。Weightssqrt(2(964))randn(3,3,64,64);conv2dLayer。Biaszeros(1,1,64);relLayerreluLayer(Name,〔ReLUnum2str(layerNumber)〕);middleLayers〔middleLayersconv2dLayerrelLayer〕;end
  倒数第二层是一个卷积层,具有一个大小为3x3x64的滤波器,用于重建图像。conv2dLayerconvolution2dLayer(3,1,。。。NumChannels,64,。。。Padding,〔11〕,。。。Name,〔Convnum2str(networkDepth)〕);conv2dLayer。Weightssqrt(2(964))randn(3,3,64,1);conv2dLayer。Biaszeros(1,1,1);
  最后一层是回归层,回归层计算残差图像和网络预测之间的均方误差。finalLayers〔conv2dLayerregressionLayer(Name,FinalRegressionLayer)〕;
  连接所有层以形成VDSR网络layers〔firstLayermiddleLayersfinalLayers〕;指定训练参数
  使用具有动量(SGDM)优化的随机梯度下降来训练网络,学习速率最初设置为0。1,然后每20个epoch降低10倍。maxEpochs100;epochIntervals1;initLearningRate0。1;learningRateFactor0。1;l2reg0。0001;optionstrainingOptions(sgdm,。。。Momentum,0。9,。。。InitialLearnRate,initLearningRate,。。。LearnRateSchedule,piecewise,。。。LearnRateDropPeriod,10,。。。LearnRateDropFactor,learningRateFactor,。。。L2Regularization,l2reg,。。。MaxEpochs,maxEpochs,。。。MiniBatchSize,miniBatchSize,。。。GradientThresholdMethod,l2norm,。。。GradientThreshold,0。01);训练网络
  使用trainNetwork函数训练VDSR网络modelDateTimedatestr(now,ddmmmyyyyHHMMSS);nettrainNetwork(source,layers,options);save(〔trainedVDSRmodelDateTimeEpochnum2str(maxEpochsepochIntervals)ScaleFactorsnum2str(234)。mat〕,net,options);
  使用VDSR网络执行单图像超分辨率重建
  使用VDSR网络执行单图像超分辨率(SISR)重建的步骤如下:
  从高分辨率参考图像创建采样的低分辨率图像。
  使用双三次插值对低分辨率图像执行SISR,这是一种不依赖于深度学习的传统图像处理解决方案。
  使用VDSR网络对低分辨率图像执行SISR。
  使用双三次插值和VDSR直观地比较重建的高分辨率图像
  评估超分辨率图像的质量。创建低分辨率图像
  创建一个低分辨率图像,该图像将使用深度学习的超分辨率重建结果与使用传统图像处理技术(如双三次插值)重建的结果进行比较。exts{。jpg,。png};fileNames{sherlock。jpg,car2。jpg,fabric。png,greens。jpg,hands1。jpg,kobi。png,。。。lighthouse。png,micromarket。jpg,office4。jpg,onion。png,pears。png,yellowlily。jpg,。。。indiancorn。jpg,flamingos。jpg,sevilla。jpg,llama。jpg,parkavenue。jpg,。。。peacock。jpg,car1。jpg,strawberries。jpg,wagon。jpg};filePath〔fullfile(matlabroot,toolbox,images,imdata)filesep〕;filePathNamesstrcat(filePath,fileNames);testImagesimageDatastore(filePathNames,FileExtensions,exts);
  显示若干测试图像montage(testImages)
  选择其中一个图像作为超分辨率的参考图像indx1;图像索引Ireferencereadimage(testImages,indx);Ireferenceim2double(Ireference);imshow(Ireference)title(HighResolutionReferenceImage)
  设置尺度因子为0。25,创建高分辨率参考图像的低分辨率版本。scaleFactor0。25;Ilowresimresize(Ireference,scaleFactor,bicubic);imshow(Ilowres)title(LowResolutionImage)
  使用双三次插值提高图像分辨率
  在没有深度学习的情况下提高图像分辨率的标准方法是使用双三次插值。使用双三次插值放大低分辨率图像,以便生成的高分辨率图像与参考图像的大小相同。〔nrows,ncols,np〕size(Ireference);Ibicubicimresize(Ilowres,〔nrowsncols〕,bicubic);imshow(Ibicubic)title(HighResolutionImageObtainedUsingBicubicInterpolation)
  使用VDSR网络提高图像的分辨率
  回想一下,VDSR仅使用图像的亮度通道进行训练,因为人类感知对亮度变化比对颜色变化更敏感。
  使用rgb2ycbr函数将低分辨率图像从RGB色彩空间转换为亮度(Iy)和色度(Icb和Icr)通道。Iycbcrrgb2ycbcr(Ilowres);IyIycbcr(:,:,1);IcbIycbcr(:,:,2);IcrIycbcr(:,:,3);
  使用双三次插值放大亮度和两个色度通道。上采样色度通道(Icbbicubic和Icrbicubic)无需进一步处理。Iybicubicimresize(Iy,〔nrowsncols〕,bicubic);Icbbicubicimresize(Icb,〔nrowsncols〕,bicubic);Icrbicubicimresize(Icr,〔nrowsncols〕,bicubic);
  将Iybicubic输入VDSR网络,观察最后一层(回归层)的激活。网络的输出是所需的残差图像。Iresidualactivations(net,Iybicubic,41);Iresidualdouble(Iresidual);imshow(Iresidual,〔〕)title(ResidualImagefromVDSR)
  将残差图像加到亮度分量中,以获得高分辨率的VDSR亮度分量。IsrIybicubicI
  将高分辨率VDSR亮度分量与颜色分量连接,并使用ycbcr2rgb函数将图像转换为RGB色彩空间,则得到VDSR的最终高分辨率彩色图像。Ivdsrycbcr2rgb(cat(3,Isr,Icbbicubic,Icrbicubic));imshow(Ivdsr)title(HighResolutionImageObtainedUsingVDSR)
  定量比较
  为了更直观的理解高分辨率图像,使用格式为〔xywidthheight〕的向量roi来指定感兴趣区域(ROI),x和y为ROI的坐标,width和height为ROI的宽度和高度。roi〔32030480400〕;
  将高分辨率图像裁剪到此ROI区域,显示结果montage({imcrop(Ibicubic,roi),imcrop(Ivdsr,roi)})title(HighResolutionResultsUsingBicubicInterpolation(Left)vs。VDSR(Right));
  结果显示VDSR高分辨率图像具有更清晰的细节和更清晰的边缘。
  利用图像质量度量定量比较双三次插值的高分辨率图像与VDSR高分辨率图像。
  计算图像的峰值信噪比(PSNR),PNSR值越大,通常表示图像质量越好bicubicPSNRpsnr(Ibicubic,Ireference)vdsrPSNRpsnr(Ivdsr,Ireference)
  bicubicPSNR38。4747
  vdsrPSNR39。4473
  计算每图像的结构相似性指数(SSIM),SSIM评估图像的三个特征的视觉冲击:亮度、对比度和结构信息,SSIM值越接近1,测试图像与参考图像的一致性越好bicubicSSIMssim(Ibicubic,Ireference)vdsrSSIMssim(Ivdsr,Ireference)
  bicubicSSIM0。9861
  vdsrSSIM0。9878
  使用自然图像质量评估(NIQE),NIQE的设计思路是基于构建一系列的用于衡量图像质量的特征,并且将这些特征用于拟合一个多元的高斯模型,NIQE实际上是衡量一张待测图像在多元分布上的差异。NIQE评分越小,表示感知质量越好。bicubicNIQEniqe(Ibicubic)vdsrNIQEniqe(Ivdsr)
  bicubicNIQE5。1719
  vdsrNIQE4。7463
  计算尺度因子为2、3和4的整组测试图像的平均PSNR和SSIM值,可以使用辅助函数superResolutionMetric计算平均指标。superResolutionMetrics(net,testImages,scaleFactors);
  ResultsforScalefactor2
  AveragePSNRforBicubic31。809683
  AveragePSNRforVDSR32。915853
  AverageSSIMforBicubic0。938194
  AverageSSIMforVDSR0。953473
  ResultsforScalefactor3
  AveragePSNRforBicubic28。170441
  AveragePSNRforVDSR28。802722
  AverageSSIMforBicubic0。884381
  AverageSSIMforVDSR0。898248
  ResultsforScalefactor4
  AveragePSNRforBicubic27。010839
  AveragePSNRforVDSR28。087250
  AverageSSIMforBicubic0。861604
  AverageSSIMforVDSR0。882349
  对于每个尺度因子,与双三次插值相比,VDSR具有更好的指标分数。
  参考文献
  〔1〕Kim,J。,J。K。Lee,andK。M。Lee。AccurateImageSuperResolutionUsingVeryDeepConvolutionalNetworks。ProceedingsoftheIEEEConferenceonComputerVisionandPatternRecognition。2016,pp。16461654。
  〔2〕Grubinger,M。,P。Clough,H。Mller,andT。Deselaers。TheIAPRTC12Benchmark:ANewEvaluationResourceforVisualInformationSystems。ProceedingsoftheOntoImage2006LanguageResourcesForContentBasedImageRetrieval。Genoa,Italy。Vol。5,May2006,p。10。
  〔3〕He,K。,X。Zhang,S。Ren,andJ。Sun。DelvingDeepintoRectifiers:SurpassingHumanLevelPerformanceonImageNetClassification。ProceedingsoftheIEEEInternationalConferenceonComputerVision,2015,pp。10261034。
投诉 评论 转载

早餐别只会吃包子油条了,教你做鸡蛋饼,筷子搅一搅,柔软又劲道早餐不知道吃什么,别只知道吃包子油条,教你营养早餐的做法,筷子搅一搅,手不加面,柔软筋道,再也不用出去买了,自己在家就能做。早餐对营养的要求是比较高的,经过一晚上的消化,……新品首秀天宝X12三维激光扫描系统助力高精度地图信息采集前言:随着数字交通领域的迅猛发展,传统导航地图在道路地物信息的准确度、完整度、丰富度等方面开始无法满足诸如智能交通管理、自动驾驶导航等更高层次的应用需求;根据智慧三维城市……给中国足球带来无限快乐的银狐里皮自从去年底突然辞去国足主帅职务之后,很多球迷已经预感到了里皮的未来,就在几天之前银狐先生终于宣布了自己的决定,72岁的他正式退休,结束了长达38年的教练生涯。以里皮的成就……造型可爱,静态体验长安LUMIN在国内新能源车市场,除了特斯拉Model3Y有着超高人气之外,新能源微型车的销量同样颇为抢眼。或许是看到了这一细分市场的潜力,今天给大家详细介绍一下这款长安汽车旗下全新的纯电微……MATLAB环境下基于深度学习VDSR的单图像超分辨率重建之前主要研究现代信号处理的,深度学习嘛,一个大号深层的,现代的,黑箱的,信号图像处理器,所以,我刚才说了,作为一个研究现代信号处理的,顺便搞些深度学习也是顺理成章的。该算法可能……共赴2022南京中秋佳节,10个好去处,赏月拍照,氛围感满满都说秋天适合思念,何不趁着月圆回家。中秋节,怎么玩?当然是和家人团圆赏月,感受中秋佳节的美好和惬意。明月夜的南京城,处处尽显雅致风情,梦回千古繁华盛世,金陵不夜城。中秋佳……中国手机市场Q4大变局国内手机出货量或现新迷局在Q1Q3连续三个季度国内手机出货量连续低迷之后,Q4的国内手机出货量更是引人关注。虽然现在还只是十月,Q4的帷幕刚刚拉开,但在市场上,随着iPhone14系列的上市,Mate……欧国联1客胜比利时卢卡库伤退德佩双响邓弗里斯进球北京时间6月4日凌晨2点45分,202223赛季欧洲国家联赛(欧国联)A级第4组首轮迎来一场强强对话,比利时队坐镇主场迎战荷兰队。上半场,卢卡库伤退,贝尔温远射得手;下半场,德……22分7板!杜锋找到了男篮新的核武器,易建联可以安心休养中国男篮赢了巴林男篮13分2023年男篮世界杯预选赛,第四窗口期的比赛,中国男篮VS巴林男篮,双方经过四节比拼,最终,中国男篮更胜一筹,以8067大胜巴林男篮13分。如此……灵动岛没人爱iPhone14系列三天破发中关村在线消息:目前iPhone14系列的渠道最低价格已经破发,这与去年发布的iPhone13系列形成了极大的反差,iPhone14系列的价格崩溃也让许多黄牛赔本。看来今年主打……没事不要去,世界上有3个未解之地,其中2个地方就在中国俗话说,世界是很大的,所以有很多奇怪的事情也正常,中国很大,到处都是奇迹,我们一直都知道,世界上有许多神奇的东西,这让我们对这个世界更加好奇,想要探索和理解它。随着旅游业……又一条江南最美高铁开通!仅1h串起6个绝美小城,你想在哪站下我在头条搞创作第二期行在画卷里,满目江南秀。江南,一个长在中国人梦里的地方,轻易就能让人倾倒。而前不久,又一江南最美高铁开通,一站一景……
旷世名园圆明园苹果IOS16正式发布部分有用的新功能汇总河曲巡检司落寞的洞儿街真正的粮食酒一斤多少钱?酒厂员工告诉你真实价格,便宜吗?时隔800余天,香港导游首次带团出国凤旅观察离婚9年后,再看董洁潘粤明的婚姻,毁掉董洁的不仅仅是出轨美国超发美元引发的后果行空时评有钱人的钱是从哪来的,谈谈分蛋糕有多么重要?(上)高圆圆顶烈日工作太卖力!衣服腋下汗湿一大片,脖子上全是汗水屈臣氏私域运营案例星汉灿烂ampampamp月升沧海之主角团浅析(含人物大结局睡觉时总在凌晨34点醒?或与这几种情况有关,多数人还不清楚校园里的故事灰熊淘汰森林狼!来看看莫兰特贝恩唐斯采访公司申请书个人简介怎么写(如何编写个人简历)2017小满节气快乐短信祝福语钢铁是怎样炼成的朱赫来是怎样的人物形象分析企业申请破产清算的流程怎么走孕妇饮水紧抓四个时机,你知多少呢?一件自豪的事土地集中出让达到的三个目标和未达到的三个目标婚后请说我爱你的读后感大全胡定欣偶遇袁伟豪张宝儿谈恋爱袁伟豪当专业摄影师为太太拍照

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利