超超分辨率卷积神经网络算法在高速摄影图像优化中的应用
2019-08-29高林
高 林
(西安航天动力试验技术研究所,西安710100)
1 引言
分布式环绕高速摄影系统不仅可用来研究液体火箭发动机试验中关键部位图像的细节信息,且可通过放大局部图像研究跌落试验中结构件的形变程度。但受CMOS处理器尺寸的物理极限与成本的限制,图像经多次甚至2次放大后会变得模糊不清,影响图像数据的分析。高精度光学仪器设备通常需要接近35 mm模拟胶片的分辨率水平,从而在放大一个图像时不会有可见的瑕疵[1]。然而,随着像素尺寸的减少,光通量也随之减少,产生的散粒噪声使图像质量严重恶化。不受散粒噪声的影响而减少像素的尺寸有一个极限,即对于0.35 μm的CMOS处理器,像素的理想极限尺寸大约是40 μm[2]。当前液体火箭发动机试验使用德国PCO.dimax系列高速摄影机采集发动机关键部位的高速摄影图像,通过后处理软件Visart实时放大查看图像时便存在图像失真与模糊的现象,影响图像数据的细化分析。
超分辨率(Super-Resolution)算法从空间分辨率上解决了图像放大时的失真问题,克服了传感器和光学制造技术的限制。该算法通过量化后的低分辨率图像与高分辨率之间的对应关系,将低分辨率图像恢复成具有生动纹理与颗粒细节的高分辨率图像[3]。该技术可以在不改变硬件条件的情况下,在已有的低分辨率图像基础上,利用图像的先验信息重建出高分辨率的图像[4]。
超分辨率算法自上世纪70年代提出以来,主流的算法主要为传统的基于插值的图像超分辨率算法和基于深度学习的图像超分辨率算法[5]。基于插值的算法利用临近像素的灰度值来产生待插值像素点的灰度值,较为经典的插值算法有双线性插值算法和双三次插值算法,但这些算法的应用环境较为局限[6]。为克服传统插值算法的不足,研究者提出了许多改进的插值方法。Chang等2001年提出的基于最小二乘法的边缘指导内插值算法,获得了更好的图像效果[7]。陶洪久等[8]提出的小波域的双线性插值算法虽满足实时性要求,但是很难在超分辨图像中得到较好的锐化效果。
当前深度学习理论与算法在图像超分辨率方面的发展非常迅速,优化算法层出不穷,基本已经取代了传统的插值算法,如目前较新的算法有SRCNN、ESPCN 和 SRGAN等[9]。SRCNN(超分辨率卷积神经网络,Super-Resolution Convolutional Neural Network)算法基于稀疏编码的单帧超分辨重建算法,何凯明[10]在此基础上设计了一个3层的卷积神经网络,以逐像素损失为代价函数,取得了令人震撼的效果。但是针对不同问题,对3层卷积网络中每层不同滤波器个数的选择会得到不同的平均峰值信噪比和图像清晰度。因此对高速摄影问题,使用SRCNN须对滤波器个数进行调优。
本文将基于深度学习的超分辨率算法SRCNN应用到高速摄影领域进行滤波器参数调优,针对单帧高速摄影图像,采用Matlab 2016a对图像超分辨率SRCNN算法进行仿真,对第2层卷积网络参数f2进行了调优,并对比原来的SRCNN算法和双三次插值算法的图像平均峰值信噪比和图像清晰度,以求在保证图像具有较高的平均峰值信噪比和图像清晰度的同时,取得较为满意的收敛速度。
2 问题描述
高速摄影实时采集的图像或者事后得到的图像经多次甚至2次放大后,图像已变得较为模糊。超分辨率求解任务如图1所示,首先将输入的低分辨率图像放大至目标尺寸,然后利用某种算法去拟合低分辨率图像与高分辨率图像间的映射关系,最后求解得到高分辨率图像[10]。其中LR表示低分辨率,HR表示高分辨率。
图1 超分辨率求解任务[10]Fig.1 Super-resolution solving task[10]
图2 SRCNN算法超分辨率重建原理[10]Fig.2 Super-resolution reconstruction principle of SRCNN algorithm[10]
3 SRCNN算法调优
3.1 深度学习SRCNN算法流程
经典的SRCNN算法超分辨率重建原理如图2所示[10],包含3个卷积层,其在概念上分为3个步骤:
1)图像子块的提取和表示:此操作从输入的低分辨率图像中提取图像子块并将每个子块表示为1个高维度的向量。这些向量包含了1组数量与向量维数相等的特征映射。图像复原中流行的一种策略是密集地提取图像子块,然后通过一组预先训练的基来表示,例如PCA、DCT和Haar等。这相当于用1组滤波器对图像进行卷积,其中的每个滤波器都是1个基。形式上,第1层可表示为1个操作F1:F1(Y)=Max(O,W1*Y+B1),其中W1和B1分别代表的滤波器和偏置,*表示卷积操作,W1相当于c×f1×f1×n1的滤波器,其中c是输入图像的通道数目,f1是滤波器的空间大小。直观地说,W1对图像应用n1个滤波器卷积,卷积核大小为c×f1×f1。输出由n1个特征映射组成,B1是1个n1维向量,其每个元素与1个滤波器相关联[10]。
2)非线性映射:此操作将每个高维度向量非线性映射到另一个高维度向量。第1层为每个图像子块提取1个n1维特征。在第2层中,我们将每个n1维向量映射到1个n2维向量中。这相当于应用了n2个卷积核大小为1×1滤波器,而且很容易推广到更大的过滤器,如3×3或5×5滤波器,并非线性映射到3×3或5×5的图像子块上。第2层可表示为 1 个操作F2:F2(Y)=Max(O,W2*Y+B2),W2包含大小为n2×f1×f1的滤波器,B2是n2维的。每个输出的n2维矢量在概念上是一个重建后的高分辨率图像子块的特征表达[10]。
3)重建:此操作将第2步中的高分辨率图像子块来生成最终的高分辨率图像。第3层操作表示为F3:F3(Y)=Max(O,W3*Y+B3),W3包含大小为n3×f1×f1的滤波器,B3是n3维的。如果高分辨率图像子块的表示是在图像域,滤波器表现的和均值滤波器一样;如果高分辨率图像子块的表示是在一些其他域(例如,基于一些基的系数),W3先将系数投影到图像域,然后平均产生最终的完整图像。无论哪种方式中,W3是一套线性滤波器[11]。
上述3个步骤组合形成一个超分辨率卷积神经网络,利用较少的卷积层获得图像分辨率质的提升。
3.2 算法调优
本文对液体火箭发动机图像深度学习训练采用ILSVRC 2014 ImageNet训练集。ImageNet训练集是一个用于视觉对象识别软件研究的大型可视化数据库,其约有超过1400万的图像URL被ImageNet手动注释,以指示图片中的对象,并包含2万多个图像类别。类似的训练集91 images样本数较ImageNet训练集样本数很小。但训练集样本数越大不代表可以获得的图像质量越高,训练集样本数越大只是学习的细节信息越多,算法收敛速度越快,训练出模型的时间越短。在SRCNN上使用不同滤波器数目可以改善最终获得的图像的平均峰值信噪比PSNR,Set5 images数据集训练结果如表1所示[12],前者采用更多的滤波器数目取得了更加优越的性能。
其中PSNR是图像的平均峰值信噪比,计算方法如式(1)~(2)[13]:
对比尺度因子为2的双三次插值算法,本文采用增大SRCNN算法第2层卷积非线性映射中滤波器大小来获得图像的平均峰值信噪比PSNR的提升,这样收集了图像更加丰富的结构信息,从而得到更好的图像质量。在初始的试验中尝试采用ImageNet数据集中9-1-5网络结构的x3.mat核文件输出结果,但是图像的质量模糊不佳。在SRCNN算法流程第2步非线性映射中采用更大的5×5的滤波器训练出x2.mat核文件,采用训练出的9-5-5的x2.mat核文件重新测试,本文算法流程图如图3所示。
图3 本文算法流程图Fig.3 Flow chart of algorithm proposed in this paper
4 仿真校验
为了验证深度学习SRCNN调优算法在高速摄影图像优化过程中的有效性,将第3节基于SRCNN算法采用 Matlab语言编程实现,并将PCO.dimax高速摄影后处理软件Visart处理后的视频数据拆分为单帧图像。
系统的仿真硬件平台配置:处理器为Intel(R)Core(TM)i5-6200U CPU@2.40 GHZ,内存 4.00 GB;软件开发平台配置:Windows10操作系统(64 bit)、MATLAB R2016a。
训练数据集:采用样本数为127万的ILSVRC 2014 ImageNet训练集训练网络模型,由于该训练集样本数过于庞大,于是每间隔3张图片取一张,直到取到120万时终止,从而得到了30万张样本图像,并将取到的图像统一压缩为256×256大小的图像进行保存,再从256×256的图像的随机位置取96×96大小的小块,得到本文的HR标签。对96×96大小的小块再采用高斯滤波和AREA下采样2倍和4倍得到LR标签,以此组成了24/48和24/96的LR/HR图像对。
校验步骤为:首先截取发动机喷管附近区域202×202大小的jpg格式单帧高速摄影图像作为输入的原始图像,然后分别使用双三次插值算法、SCRNN算法、调优后的SCRNN算法对输入的原始图像进行处理,最后统计处理后图像的PSNR值和算法运行时间进行比对,如图4所示。
从图4可以看出,(b)中双三次插值算法得到的图像纹理细节模糊不清,这主要是因为插值模型的低通滤波效应,使得图像缺少了高频信息,对细节还原能力不够。与双三次插值算法对比,(d)中调优后的SRCNN算法具有更高的图像重建精度PSNR值为39.293 dB且主观上图像更加清晰锐利,算法运行时间和(c)中SRCNN算法用时接近。从软件算法层面提供了一种解决当前试验系统中高速摄影图像多次放大后图像清晰度受物理硬件精度限制问题的有效思路。
5 结论
仿真实验表明,对深度学习SRCNN算法第2层卷积网络层进行调优后的比原来的SRCNN算法和双三次插值算法的图像平均峰值信噪比表现更好,图像清晰度满足实验要求,可以应用在液体火箭发动机试验高速摄影图像优化以及大数据量的发动机图像压缩存储和复原。下一步研究重点是进一步优化发动机训练集,提高算法收敛速度。