基于快速卷积神经网络的大田油菜花图像超分辨率重建
2020-11-09杨宇辉刘昌华
杨宇辉 刘昌华
摘要:大田油菜花航拍图像由于光照因素、气候影响、硬件条件成本限制等原因,所拍出的图片往往较为模糊,效果不佳。为了解决这一问题,提出一种基于快速卷积神经网络的大田油菜花图像超分辨率重建算法(AFSRCNN),通过基于深度学习的方法,在卷积神经网络图像超分辨率(SRCNN)上进行网络的加深和优化,增加了反卷积层和小感受野卷积核。与传统的双三次插值法和卷积神经网络超分辨率(SRCNN)重建的图像结果相比较,该算法计算所得的图像的平均峰值信噪比(PSNR)分别高1.590 dB和0.335 dB。实验结果表明,将此算法应用到大田油菜图像超分辨率重建问题中,可以得到更丰富的油菜轮廓信息,重建出更加优质的高分辨率图像。
关键词:航拍图像;快速卷积神经网络;反卷积层;峰值信噪比;高分辨率图像
中图分类号:TP301.6文献标志码:A文章编号:1008-4657(2020)03-0012-07
0 引言
我国作为人口大国和农业大国,对于粮油的需求量一直很大。居民日常食用的菜籽油营养丰富,油菜饼粕作为优质的蛋白质饲料和肥料也被广泛的应用于种植业和畜牧业,为农民带来了可观的收益[1]。我国油菜花田的种植面积和总产量均占世界的1/3[2],油菜充当着我国最为重要的油料作物和优质的蛋白质作物,因此如何种植出更为优质的油菜是我们目前所面临的问题。
随着现代智慧农业的推广和数字图像处理技术的不断发展,无人机作为精准农业航空[3]的重要传感设备,以其全自动飞行、厘米级定位、自主航线规划等得天独厚的优势,在大田油菜花图像采集中发挥着至关重要的作用。为保证油菜品质,需要利用无人机航拍对其生长状况以及花期识别做到实时监测和图像采集,但由于航拍时受限于光照强度、气候影响和无人机摄像头硬件成本等因素,采集的油菜田图像集中存在小部分图片较为模糊、田埂之间纹理以及油菜花分布细节不清晰等问题,为解决这方面的问题,就需要修复重建,提高其图像质量。
图像超分辨率重建技术旨在将一幅退化过后的低分辨率图像还原成一张高分辨图像,该技术可以有效地克服因传感器成像过程中出现的噪音干扰、模糊等一系列退化因素的影响,在图像处理、计算机视觉和数学应用等领域发挥着重要的作用[4],同时在医疗、航天、工业控制等领域有着广阔的应用前景。由Keys[5]提出的基于双三次插值的超分辨率方法利用像素点的值对周围的像素点进行扩充以得到高分辨率图像。在基于重建的方法中由Irani等[6]提出的迭代反向投影算法,通过迭代更新投影的初始估计得到的低分辨率图像与原图像的计算误差来进行反向投影以输出高分辨率图像。虽然这两种方法简单高效,但是所得的图像会产生更为平滑的边,细节上还有很多不足,模糊问题无法得到解决。随后由Yang等[7]提出的稀疏表示的方法拉开了基于学习的超分辨率重建技术的序幕,而由Dong等[8]提出的SRCNN(Super Resolution Convolutional Neural Net-work),更是将深度学习与其中经典的卷积神经网络应用到了图像超分辨重建领域,在重建出的高分辨率图像方面取得了傲人的成绩。
为了更加充分地突出大田油菜图像的细节信息,本文仍采用深度学习的方法,基于SRCNN中整体网络计算复杂度过大,利用FSRCNN[9]的网络模型框架,提出了一种快速卷积神经网络的大田油菜花图像超分辨率重建算法(AFSRCNN)。将缩小后的原始图像运用不同大小的卷积核层层提取图像特征;为避免SRCNN网络中的计算量过大而影响整体的网络训练速度,通过在普通的6层3 × 3的卷积核两侧分别加入两个1 × 1的不同维度的卷积核来实现网络训练速度的提升;并在最后利用反卷积层进行采样与图像特征的最终提取,从而达到了对大田油菜花图像的细节还原。
1 SRCNN算法原理
SRCNN算法属于监督式学习,对于由无人机航拍的大田油菜的自然图片,利用深度学习理论,搭建一个基于卷积神经网络超分辨率模型3层特征提取,完成由低分辨率图像到高分辨率图像之间的映射。该算法首先利用原始图像,通过双三次插值法并设置升级因子放大到与要还原的高分辨率图像尺寸一样的大小,再通过一层特征提取层提取特征图像,并在下一层完成非线性的特征映射,最后经过一层重建层还原出高分辨率的大田油菜图片,该网络结构如图1所示。
网络通过ReLU[10]作为激活函数以增强网络的非线性表达能力,其公式如下
SRCNN网络整体结构较为精简,能够通过卷积神经网络应用于图像处理的问题,重建出高分辨率的图像。但该算法的缺陷在于在图像预处理上,因为使用了双插值算法增加了运算的复杂度;另外由于网络层数的精简致使重建質量无法达到更佳。
2 本文算法
相较于SRCNN而言,在图像的预处理方面,由原来将原始图像X按照尺度因子大小进行采样,通过双三次插值法以同等比例的升级因子放大上采样,改为仅仅将图像进行采样,得到低分辨率图像Y,相当于直接将原始图像尺寸缩小作为网络模型的输入,从而减少了运算的复杂度。
针对颜色通道的处理方面,我们首先将原始的RGB图像转换成YCbCr的颜色空间。由于人眼仅对亮度通道敏感,所以为了降低网络模型的计算量,我们仅输入Y通道进行重建。剩下的Cb、Cr通道在Y通道完成网络映射之后,再进行通道合并,重建出一幅高分辨率彩色大田油菜图像。
2.1 网络模型
网络模型如图2所示,可分为五个部分,分别为特征提取层、收缩层、特征映射层、扩张层和反卷积层,整个网络结构共有十层,形状呈“沙漏”状。前四个部分都是不同核大小普通卷积层,最后一个部分为反卷积层。
首先第一层为特征提取层,运用56个核大小为5、通道为1的卷积核(后续所有卷积核通道数均为1)对输入的原始油菜田图像的基本纹理细节进行粗略的特征信息提取,由低分辨率图像Y到高分辨率图像F(Y)之间的映射关系为F,该过程可以表示为F1(Y),第一层输入Z1为
其中W1为卷积核大小,可表示为56 × 5 × 5 × 1,Y为下采样后的原始低分辨率图像,B1为该卷积层的偏置项。而对于前四个部分所用到的激活函数,我们在这里采用PReLU代替原SRCNN中的ReLU,PReLU的函数形式为
其中xi是激活函数f(xi)在第i个通道上的输入信号,这里默认为1,ai则是负数部分的系数。相比较ReLU而言,它们负数部分的系数是不同的。传统的ReLU负数部分为0,而且经常容易在零梯度时产生“坏死特征”,但对于PReLU来说这样设置参数是可学习的,并且激活性能更加稳定。通过激活函数得到第一层输出F1(Y)。
2.1.1 收缩层与扩张层
当得到第一层输出后,粗略提取的特征信息进入收缩层。收缩层与扩张层实际上都是由核大小为1 × 1但维度不同的卷积核所组成,之所以在收缩层中利用12个1 × 1这种“小感受视野”的卷积核是因为它起到特征降维,节省计算量作用,另外还可以增加模型非线性表达能力。该层输入Z2和通过激活函数输出的F2(Y)表达式过程分别为
其中,W2为卷积核大小,可表示为12 × 1 × 1 × 1,B2为收缩层卷积层的偏置项。
非线性映射层则是影响超分辨率性能的最重要部分,影响最大的因素是卷积核数量和维度。为构建一个更高效的映射层,我们使用核大小为33的卷积核,这样,在性能和网络规模之间进行权衡,通过借鉴SRCNN的实验发现,网络模型中使用的卷积核大小种类越多,性能就越好,为了保持与SRCNN相同的良好性能,在映射部分使用6层每层12个3 × 3卷积核来代替单个宽层,于是W3=W4=W5=W6=W7=W8=12 × 3 × 3 × 1。
接下来在第8层(扩张层)中,该层与收缩层的作用正好相反,是来进行维度扩张的。加这一层的主要目的是为了弥补在非线性映射中重建的高分辨率图像所产生的效果不理想的问题,以此来扩展特征图像的维度,为保证与收缩层卷积核大小的一致性,同样使用1 × 1的卷积核,而维度则为56。前面八层输出可表示为F8(Y)这里第九层输入Z9和输出F9(Y)表达式过程分别为
2.1.2 反卷积层
最后一个部分是反卷积deconv层,使用一组反卷积的卷积核对前面的特征进行采样和聚集。对于反卷积,可以看作是一种卷积的逆过程、逆运算。在卷积层设置步长stride时若设置为n,则输出图像尺寸是输入图像尺寸的1n倍。相反,在反卷积中若设置卷积步长为n,则输出图像尺寸是输入的n倍。将图像预处理中通过升级因子缩小的原始图像,模型在经过了9层卷积的过程中通过反卷积层,按升级因子放大到原始图像的尺寸,其过程如下
其中,反卷积核W10为1 × 9 × 9 × 1,stride= 3,B10为该层偏置项,步长与升级因子相同,最后一层没有用激活函数,最终重建出与原始图像尺寸相同的高分辨率图像。
2.2 损失函数
为重建图像与原图像更加接近,在损失函数上仍选取MSE均方误差函数作为预测值和真实值之间的平方和的平均数[11],也就是重建的高分辨率图像与原始图像像素之间的插值(欧氏距离),这个差值越小,表示重建的结果越好。损失函数形式如下
其中θ表示各层网络中的参量的集合向量θ={W1,W2,…,B1,B2,…},Xi表示原始图像,Yi为重建的高分辨率图像,n是训练的样本个数。在网络不断迭代学习的过程中,利用反向传播算法[12]各层的网络参数按照损失函数的像素差值使得和也在不断更新,以达到更好的重建效果。
3 实验与分析
3.1 图像质量评价标准
除了通过肉眼的观测来主观的评价一张图像重建质量的好坏之外,另外我们还需要选取一种更为精准的评价图像质量的标准,在此模型中,平均峰值信噪比(PSNR)[13]作为目前广泛应用于评测图像质量的指标之一无疑是最好的选择。而计算PSNR要先知道MSE的差值,公式如下
其中MSE为前文的均方误差值,按照其评价标准,PSNR的值越高(其值的单位为dB),所重建的高分辨率图像质量就越好。
3.2 实验参数设置
本文所采集的航拍油菜田图片数据,均由中国农业科学院油料作物研究所种质资源研究室采用无人机设备在规模化种植的油菜田中航拍所得。与Set5[14]和Set14[15]中的Image_91和General_100数据集相比,本文训练集图像内存较大,为减小单张图像的内存和尺寸大小,于是将训练集中的十几张高分辨率图像裁剪出50张图片,通过鏡像垂直翻转的操作把这50张图片扩充一倍,得到100幅图像,再对这100幅图像分别进行逆时针旋转0°、90°、180°、270°,所以此次总共的训练的图片集数据共有400张。进行实验之前首先对训练的样本数据做预处理,先预设升级因子为3,将图片尺度按Bicubic[16](双三次插值法)下采样缩小3倍,将图片由RGB转为YCbCr的颜色通道,并只对Y通道进行训练。
整个网络是在caffe网络框架上搭建的,在网络训练过程中有如下的全局参数设置:网络总体的基础学习率固定为0.001,momentum为0.9,网络共10层,前9层卷积层中的pad为0,stride为1,最后的反卷积层stride为3,pad为4,与升级因子3相同,以保证原始图像与重建图像尺寸大小一致。整个实验过程在win10系统下通过matlab进行仿真实现,实验完整硬件配置如下:处理器AMD Ryzen 5 3600X 6-Core六核;内存16 GB DDR4 3200 MHz;GPU为Nvidia GeForce RTX 2060 SUPER(8 GB/Nvidia)。软件部分配置如下:Windows10专业版64位(DirectX 12);caffe;matlab2018a;CUDA10.0;CUDNN10.1。
3.3 实验结果与分析
整个网络模型全程通过GPU加速训练十万次,为了对比SRCNN算法与双三次插值算法,利用本文自建的数据集,同样对SRCNN模型训练十万次。首先要体现本文算法在训练速度上的优势。在训练过程中,分别记录了两种模型训练10 000次、50 000次和100 000次的总耗时进行对比,如表1所示。由于两种算法模型的复杂度不同,所以在迭代训练时有一定的时间差距。
从表1数据来看,本文算法在训练模型的速度上优于SRCNN模型。
本次实验的测试集为保证随机性,从未经过训练的航拍高分辨率油菜田图像中任意选取了七张作为测试集,实验结果分别由主观评价和客观评价指标来验证。下面从测试集中选取了三张图像编号分别为1、2、3的大田油菜图通过主观评价来对比几种算法的结果,如图3~6所示。
为了更加直观的通过肉眼感知,图3~6都是通过矩形框选取图中的感兴趣区域进行局部放大以便观察。从人眼主观评价分析,图4的Bicubic插值算法所重建的图像无论是在土壤纹理的细节上,还是油菜花从的边缘方面,都有比较严重的振铃现象和伪影,较为模糊,重建质量有所欠缺。可以通过肉眼发现,图5、图6和图4相比较,有了较为明显的改善,说明SRCNN与本文算法所重建的图像都能高度还原出原始图像的细节信息。
三种算法对大田油菜图像重建后的PSNR值如表2所示。
由表2可知,基于深度学习的重建算法SRCNN所重建的图像要比传统的Bicubic插值算法的平均PSNR值要高1.255 dB,而本文算法又要比SRCNN的平均PSNR值要高0.335 dB,比Bicubic插值算法高1.590 dB,由此可得,本文算法的峰值信噪在三种算法中最高。
为验证本文训练数据集要优于传统的Image_91和General_100训练集,在实验中,另外又利用本文模型分别对三个训练集进行100 000万次训练,使用相同测试集进行测试结果比较,所计算的平均PSNR值如表3所示。
由表3可知,本文训练集所重建的油菜图像的平均PSNR值最高。虽然Image_91和General_100训练集选取的图像已充分捕获到自然图像的变化性,但就大田油菜图像的针对性而言,却不如本文只从航拍油菜图像中选取的训练集效果好。
4 结束语
本文提出了一种基于快速卷积神经网络的图像超分辨率算法,鉴于SRCNN模型只有3层卷积层,无法更细致还原出高分辨率图像,在网络模型上采用卷积和反卷积相结合的方式,利用6层映射层,完成了图像从粗略的特征提取到细致的图像映射过程。再通过反卷积层解决图像的尺度和特征提取问题,当使用大田油菜图像作为训练数据集时,不需要大量的数据图片集就能够有效的重建出高分辨率图像。
使用本文算法(AFSRCNN)利用深度学习理论的图像超分辨率重建图像,质量高于传统的双三次插值算法和SRCNN算法。在航拍图像所受限于传感器带来的成本问题以及天气原因的情况下,通过AFSRCNN可以较为有效的解决大田油菜图像模糊、油菜轮廓不清晰的问题,能重建出更高质量的高分辨率图像。
不足的是,本文算法在模型深度上虽有较大幅度的增加,但是在训练过程中,仍然需要花费较长时间。所以后续的工作中对于模型训练中,使用随机梯度下降的方法还有待改进。
参考文献:
[1] 陈兆波,余健.我国油菜生产形势分析及科研对策研究[J].中国油料作物学报,2010,32(2):303-308.
[2] 刘荣家,叶兵.“花田”在中国发展的可行性分析——以油菜花田和菊花田为例[J].现代园艺,2017(15):48-50.
[3] 兰玉彬,邓小玲,曾国亮.无人机农业遥感在农作物病虫草害诊断应用研究进展[J].智慧农业,2019,1(2):1-19.
[4] 龙超.图像超分辨率重建算法综述[J].科技视界,2015(13):88-89.
[5] Keys R G.Cubic Convolution Interpolation for Digital Image Processing[J].IEEE Transactions on Acoustics Speech & Signal Processing,1982,29(6):1 153-1 160.
[6] Irani M,Peleg S.Improving Resolution by Image Registration[J].CVGIP:Graphical Models and Image Processing,1991,53(3):231-239.
[7] Yang Jianchao,Wright J,Huang T S,et al.Image Super-resolution Via Sparse Representation[J].IEEE Transactions on Image Processing:A Publication of the IEEE Signal Processing Society,2010,19(11):2 861-2 873.
[8] Dong C,Loy C C,He K,et al.Learning a Deep Convolutional Network for Image Super-resolution[C]//European Conference on Computer Vision.Springer:Cham,2014.
[9] Dong Chao,Loy Chen Change,He Kaiming,et al.Image Super-resolution Using Deep Convolutional Networks[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2016,38(2):295-307.
[10] Krizhevsky A,Sutskever I,Hinton G E.Imagenet Classification with Deep Convolutional Neural Networks[J].Communications of the ACM,2017,60(6):84-90.
[11] 倪申龍,曾接贤,周世健.整体车牌图像超分辨率重建研究[J].计算机技术与发展,2019,29(4):195-199.
[12] 雷为民,王玉楠,李锦环.基于FSRCNN的图像超分辨率重建算法优化研究[J].传感器与微系统,2020,39(2):54-57.
[13] 陈文静,唐轶.基于深度学习的图像超分辨率重建方法综述[J].云南民族大学学报(自然科学版),2019,28(6):597-605.
[14] 曾接贤,倪申龙.改进的卷积神经网络单幅图像超分辨率重建[J].计算机工程与应用,2019,55(13):1-7.
[15] 孙旭,李晓光,李嘉锋,等.基于深度学习的图像超分辨率复原研究进展[J].自动化学报,2017,43(5):697-709.
[16] 刘超,张晓晖,胡清平.图像超分辨率卷积神经网络加速算法[J].国防科技大学学报,2019,41(2):91-97.
[责任编辑:许立群]