在计算机视觉领域中, 图像复原是一个重要的研究方向, 图像在形成、传播和保存的过程中, 受成像系统、外界环境等各种因素的影响会造成不同程度失真的退化图像. 湍流图像作为众多退化图像中的一种, 其退化过程是在图像形成过程中受到大气或水流等不规则运动造成的图像模糊, 湍流退化图像的复原曾一度困扰着人们, 文献[1]从湍流的分形特征去详细描述了湍流的机理. 后来又有学者通过分形特征[2]在相位屏[3]以及自然场景中模拟出湍流现象. 湍流现象的模拟对湍流退化图想的复原起到指导性的作用, 依据湍流图像形成过程以及一定的先验知识, 文献[4]提出了一种基于奇异值分解估计点扩散函数的湍流图像复原算法. 文献[5,6]提出一种基于小波变换进行湍流图像的复原方法. 上述方法都结合了先验知识, 这些复原方法具有一定试探性, 效果并不是很理想. 随着机器学习的发展, 湍流图像的复原变得更加高效准确, 文献[7]提出了一种基于支持向量机的湍流退化图想加速复原方法. 通过上述传统机器学习的方法, 湍流退化图想的复原取得了不错的效果, 但是传统机器学习分类算法容易陷入局部最优, 并不尽能满足要求. 人工智能的发展, 深度学习的崛起为湍流退化图像的复原拓宽了道路, 本文提出了一种采用卷积神经网络(CNN)对湍流模型点扩展函数中的模糊比例因子进行分类的研究方法, 该方法对湍流图像的分类取得了较为理想的效果, 为新机器学习方法对湍流图像的复原作了铺垫.
1 湍流退化理论与数据预处理 1.1 湍流退化理论模型光电成像系统出现退化的过程是复杂多变的, 通常情况下将退化过程简化为一个线性移不变过程, 在空域中退化过程可以表示为:
$ {{g}}({{x}},{{y}}) = {{f}}({{x}},{{y}})*{{h}}({{x}},{{y}}) + {{n}}({{x}},{{y}}) $ | (1) |
其中,
$ {{H}}({{u}},{{v}}) = {{F}}({{u}},{{v}}) + {{G}}({{u}},{{v}}) $ | (2) |
其中,
在退化图像复原过程中除了周期噪声以外, 通常都可以采用空间域滤波的方法进行图像复原, 而此时的图像复原与图像增强几乎是没有区别的, 但是湍流退化图像是一种线性移不变退化图像, 该类图像复原不能采用简单的空间域滤波器来实现, 必须知道湍流退化模型的点扩展函数
本文提出的基于CNN的大气湍流退化图像分类方法, 湍流模型采用的是一直被沿用至今的经典大气湍流物理退化模型, 模型中点扩展函数用光学传递函数(OTF)表示:
$ {{H}}\left( {{{u}},{{v}}} \right) = \exp [ - {{k}}{({{{u}}^2} + {{{v}}^2})^{5/6}}] $ | (3) |
其中, k为一个反映大气湍流的严重程度的模糊比例因子.
$ {{H}}({{u}},{{v}}) = \exp {[ - {{k}}({({{u}} - {{M}}/2)^2} + {({{v}} - {{N}}/2)^2})]^{5/6}} $ | (4) |
其中, M、N分别为图像的长和宽.
1.2 数据集的预处理由于人工智能领域并没有提供现有的大气湍流图像数据集, 本文的图像数据来自网上, 经过MATLAB编写大气湍流退化函数实验仿真模拟而来. 图像的的预处理部分主要包括灰度化和归一化等简单操作. 从左到右分别为一张100×100大小的高空航拍灰度化后的灰度图像, 以及对应模糊比例因子分别在0.0001、0.01、0.1以及0.5下的归一化大气湍流退化图像, 如图2所示.
可以明显看出不同模糊比例因子对应的大气湍流退化图像差别较大, 为验证CNN对湍流特征分类的有效性, 数据集应该选取多种场景下的高空航拍图在不同湍流强度下的退化图像.
实验中通过一张航拍图像调节模糊比例因子K值获取2000张灰度图像数据, 将所有的大气湍流图像数据划分为四类, 对应的K值分别在0到0.0001之间、0.001到0.01之间、0.05到0.1之间以及大于0.5的范围. 四类标签在CNN中对应的张量形式应该为[0, 0, 0, 1]、[0, 0, 1, 0]、[0, 1, 0, 0]和[0, 1, 0, 0]这样的一维数组, 生成的标签数据和mat图像数据相对应, 每784个图像数据对应一张图片也对应着一个标签数组, 对全部数据按顺序标定完成后以4:1的比例随机进行训练集和测试集的划分, 最后进行打乱操作完成全部的数据预处理.
2 卷积神经网络的原理1962 年文献[8]通过研究猫的视觉皮层神经细胞, 发现视觉皮层的神经细胞对输入空间中的小区域比较敏感, 这些小的敏感区域覆盖了整个视觉区域, 从而提出了感受野的概念. 这些敏感区域局部地存在于输入空间中, 非常适合用来提取图像中的局部空间相关性. 1998年文献[9]提出了基于误差梯度反向传播的卷积神经网络LeNet-5, 并成功应用于手写体数字识别等领域. 传统人工设计的特征结合浅层的卷积神经网络就能取得较好的分类效果, 但由于缺乏良好的泛化性能成为了其发展的障碍. 直至2014年, 文献[10]提出了通过增加网络层数, 利用增加的非线性得出目标函数的近似结构以及更好的特征表达, 构建了深度卷积神经网络AlexNet并在ImageNet上取得了显著的成绩, 之后更复杂, 准确率更高的深度卷积神经网络也相继被提出.
下面通过一张图在卷积神经网络里与卷积核作用后的结果来解释卷积变化原理. 如图3所示.
一张32×32×3的特征图与一个5×5×3的卷积核卷积后加上偏置, 经过激活函数产生一个运算结果, 卷积核在特征图所有区域以步长为1来进行滑动卷积, 得到一个28×28×1的特征图, 同理经过一个有6个5×5×3的卷积核的卷积层后产生了一个28×28×6的特征图. 同理, 每一个卷积核都在这张特征图上的所有区域进行滑动卷积, 产生了6个28×28×1的特征图. 特征图通过卷积层后进入池化层, 降采样后的特征图会进入下一个卷积层继续进行卷积操作, 直至最后通过全连接层将学到的分布式特征表示映射到标记样本空间进行分类.
3 实验分析本文实验平台有两个: MATLAB2016a和Tensorflow框架. 通过MATLAB对航拍图进行湍流退化仿真得到样本数据, 在tensorflow框架下搭建CNN模型对样本进行分类训练测试.
实验针对一张航拍图像的2000张不同湍流退化强度对应的灰度图进行四分类设计了两层卷积层、一个全连接层、一个Dropout层和一个Softmax层的卷积神经网络. Conv k代表第k层卷积层, (5, 5, 1, 32)代表了该层有32个5x5x1的卷积核. FC代表了全连接层, (7×7×64, 1024)代表了输入张量的尺寸为7×7×64, 全连接层隐含节点数为1024个. 为减轻过拟合引入了一个Dropout层, 通过keep_prob比率随机丢弃一部分节点的数据. 最后通过Softmax层连接Dropout层的输出的到最后的概率输出. 所设计的CNN网络结构如表1所示.
由于训练图像有 1600 张, 且采用分批训练的方式, 每批32张训练图像, 所以完成所有训练图像的一次训练需要实际迭代训练 1600/32=50次. 其中第 1 次训练(epoch1/8)对应实际的50次训练, 第 2 次训练(epoch2/8)对应实际的50×2=100次训练, 依次类推, 第 8 次训练(epoch8/8)对应实际的 50×8=400次训练. 用训练图像训练CNN湍流退化图像分类模型, 并通过不同迭代次数(generation)下训练准确率、损失值(loss)和测试准确率(test accuracy)来进行分类效果验证. 所设计的CNN对湍流退化图像数据的分类效果如表2所示.
所设计的CNN训练时的迭代次数与训练损失值之间的关系趋势如图4所示.
所设计的CNN训练时的迭代次数与测试准确率之间的关系趋势如图5所示.
通过训练 1600张训练图像所得到的模型对400张测试图像进行分类测试所得到的测试准确率与训练迭代次数的关系是由图5中的黑色虚线表示的. 从测试图中选取六幅图来进行预测分类的结果(Pred)与实际所属类(Actual), 如图6所示.
根据以上实验结果可以看出CNN湍流退化图像分类框架训练过程中的损失值随着迭代次数的增加呈逐渐减小的趋势, 当训练迭代到两百次后, 损失值基本稳定在20左右. 训练准确率与测试准确率随着迭代次数的增加总体呈上升趋势, 当迭代到三百五十次时训练模型得到最佳分类效果, 针对训练图像的训练准确率达到82.21%, 针对测试图像的测试准确率达到79.47%. 测试图中第一类与第二类湍流强度较为接近且都较小时, 预测结果会出现偏差. 实验证明搭建的CNN模型对该场景不同湍流强度的退化图像分类的有效性.
更换八种不同场景的图像做相同预处理操作后以同样的网络参数进行训练测试, 八种不同场景下的湍流退化图像在上述卷积神经网络模型下进行训练测试, 所得的训练测试准确率如表3所示.
由以上实验可以看出使用不同场景的图片进行湍流退化处理后, 所设计的CNN网络对该类图片分类准确率在80%左右与前面的准确率几乎完全相同. 实验证明该CNN网络模型学习到的是湍流退化图像的模糊特征而不是图像场景本身的特征, 验证了CNN网络对湍流退化图像湍流强度的分类的有效性.
考虑到在此基础上提高准确率, 对网络结构参数进行调整. 文献[11]提出了一种结合卷积神经网络和深度置信网络的卷积深度置信网络方法提升单一卷积神经网络分类的不足. 文献[12]提出了一种基于图像DCT变换后的卷积神经网络分类方法有效提高了分类准确率. 文献[13]提出了一种结合度量学习包括Siamese和Triplet两种的卷积神经网络(CNN)结构用于提升服装图像分类准确率取得了不错效果; 文献[14]结合CNN对图像高阶统计特性的忽略的缺点提出了一种结合CNN与DBN的深度卷积置信网络, 该网络在场景图像分类中准确率有明显提高. 文献[15]提出了一种融合卷积神经网络与受限波尔兹曼机混合模型的图像分类方法提高了图像分类准确率. 文献[16]通过扩充样本数据并去除CNN冗余连接有效降低了分类错误率. 文献[17]通过结合CNN与图像的DCT变换进行图像分类比原始图像分类效果有显著提升. 本文旨在通过修改激活函数以及调整学习率来提升模型分类性能. 文献[18]通过改进激活函数Relu调整参数a值使得卷积神经网络对脑脊液细胞图像分类速度以及准确率有较大提升. 文献[19]通过CNN预训练网络特征结合SVM算法进行鱼类分类准确率有明显提升. 激活函数选取Relu函数替代Sigmoid函数, Sigmoid作为激活函数时, 反向传播求误差梯度时求导涉及除法, 计算量相对大. 而采用Relu激活函数, 可以使整个过程的计算量节省很多, Relu会使一部分神经元的输出为0, 减少计算量的同时也造成了网络的稀疏性, 并且减少了参数的相互依存关系. 但是在初始化参数非常糟糕或者学习率设置较高的情况下, 输出为0的神经元中可能会有一部分永远不会被激活, 相应的参数就永远无法更新, 导致最后训练结果不尽人意, 这里保持迭代次数不变, 将学习率降低, 从原来的1e–3调整到1e–4进行训练. 调整参数后准确率与训练迭代次数的关系趋势如图7所示.
由上述实验结果可以看到, 改进激活函数与降低学习率后, 准确率能保持在82%左右, 该实验说明了改进网络参数能在一定程度上提升损失函数的收敛速度与CNN的分类准确率.
4 结论
本文提出了一种基于CNN的湍流图像退化强度的分类方法, 通过航拍图湍流退化仿真得到数据集, 在搭建的卷积神经网络中进行仿真实验. 网络结构中损失值随着训练的迭代很好的收敛, 训练测试也得到较高的准确率. 对于不同退化程度图像, 通过人工提取有效特征十分困难, 本文提出的通过卷积神经网络提取图像特征进行分类, 实验结果证实了CNN提取湍流特征的有效性以及分类的准确性, 通过对激活函数与学习率参数的调整一定程度上提升分类准确率. 该实验结果为基于机器学习的湍流退化图像复原做了铺垫. 在后续研究中将进一步研究深度置信网络对湍流退化图像的分类.
[1] |
黄真理. 湍流的分形特征. 力学进展, 2000, 30(4): 581-596. |
[2] |
闫传忠. 基于分形的大气湍流随机相位屏数值模拟[硕士学位论文]. 青岛: 中国海洋大学, 2009.
|
[3] |
沙婵娟. 基于分形的自然场景模拟[硕士学位论文]. 贵阳: 贵州师范大学, 2009.
|
[4] |
石秀英. 基于估计点扩散函数的湍流图像复原算法研究[硕士学位论文]. 长春: 长春理工大学, 2012.
|
[5] |
王珺楠, 邱欢, 张丽娟, 等. 基于小波域Curvelet变换的湍流图像去噪算法. 液晶与显示, 2017, 32(11): 905-913. |
[6] |
洪汉玉, 张天序. 基于小波分解的湍流退化图像的快速复原算法. 红外与毫米波学报, 2003, 22(6): 451-456. DOI:10.3321/j.issn:1001-9014.2003.06.012 |
[7] |
黎明, 杨杰. 基于支持向量机的湍流退化图像加速复原算法. 红外与毫米波学报, 2009, 28(6): 472-475. DOI:10.3321/j.issn:1001-9014.2009.06.016 |
[8] |
Hubel DH, Wiesel TN. Receptive fields, binocular interaction and functional architecture in the cat’s visual cortex. The Journal of Physiology, 1962, 160(1): 106-154. DOI:10.1113/jphysiol.1962.sp006837 |
[9] |
LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 1998, 86(11): 2278-2324. DOI:10.1109/5.726791 |
[10] |
Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: A simple way to prevent neural networks from overfitting. The Journal of Machine Learning Research, 2014, 15(1): 1929-1958. |
[11] |
Huang GB, Lee H, Learned-Miller E. Learning hierarchical representations for face verification with convolutional deep belief networks. Proceedings of 2012 IEEE Conference on Computer Vision and Pattern Recognition. Providence, RI, USA. 2012. 2518–2525.
|
[12] |
王海霞. 基于卷积神经网络的接地网腐蚀程度分类方法研究[硕士学位论文]. 西安: 西安科技大学, 2017.
|
[13] |
包青平. 基于深度学习的服装图像分类与检索[硕士学位论文]. 杭州: 浙江大学, 2017.
|
[14] |
祝军. 基于深度学习模型的图像分类研究[硕士学位论文]. 宁波: 宁波大学, 2015.
|
[15] |
石祥滨, 房雪键, 张德园, 等. 基于深度学习混合模型迁移学习的图像分类. 系统仿真学报, 2016, 28(1): 167-173, 182. |
[16] |
张弛. 基于卷积神经网络的鞋印图像分类算法研究[硕士学位论文]. 大连: 大连海事大学, 2016.
|
[17] |
吉春旭. 基于卷积神经网络的岩石图像分类研究与应用[硕士学位论文]. 西安: 西安石油大学, 2017.
|
[18] |
龚震霆, 陈光喜, 曹建收. 卷积神经网络在脑脊液图像分类上的应用. 计算机工程与设计, 2017, 38(4): 1056-1061. |
[19] |
顾郑平, 朱敏. 基于深度学习的鱼类分类算法研究. 计算机应用与软件, 2018, 35(1): 200-205. |