叶 丰, 周 军, 皇攀凌, 欧金顺, 林乐彬
1(山东大学 机械工程学院, 济南 250061)
2(山东大学高效洁净机械制造教育部重点实验室, 济南 250061)
3(山东大学 机械工程国家级实验教学示范中心, 济南 250061)
图像增强技术是数字图像处理的一个重要分支.然而复杂的工业环境会影响到图像采集的质量, 特别是光照环境或物体表面反光等原因造成图像整体光照不均. 因此引入图像增强技术平衡整个图像的受光问题, 同时也能突出图像中目标物的特征信息, 进而得到一种更加实用的图像或者转换成一种更适合人或机器进行分析处理的图像[1]. 图像增强现已在诸多的领域中得到应用, 如: 自动驾驶、智能监控系统、工业检测系统以及航天航空领域等
传统的图像增强方法可粗略分为3 类分别为: 空域、频域以及混合域. 其中, 以直方图均衡[2]、伽马变换[3]为主的空域方法主要是直接对图像像素值进行处理; 以小波变换[4]为例的频域方法是在某种变换域内进行操作;将空域和频域的一些方法结合就构成了混合域. 传统的方法所取得效果不是很理想, 一方面是采用的方法过于简单, 另外是没有结合图像中的上下文信息等.
近年来, 卷积神经网络在图像超分辨率[5]、去模糊[6]、去雾[7]、降噪[8]和图像增强等许多低层次计算机视觉任务中取得了长足的进步. 与传统方法相比, 一些基于CNN 的方法显著提高了图像增强的质量[9]. 大多数现有训练方法都依赖配对数据去学习原始图像与目标图像的映射关系, 得到最终的增强图像[10].
而文章基于对Zero-DCE-Net 图像增强网络算法的研究[11]. 该网络相比于同类研究的优势是消除了配对数据进行训练, 实现了零参考, 同时通过设计一组损失函数来避免过拟合的风险[12]. 此外该网络模型考虑到像素值的范围、单调性和可微性, 因此特别设计了曲线估计, 通过将低光像素迭代至高阶曲线, 首次实现像素级的动态调整. 从而在保持增强图像范围的同时也保留了相邻像素的对比度. 整个网络由7 层全卷积组成, 经过每一层卷积后, 噪声一步步地被消除, 噪声等级减小, 图像内容的细节也随之丢失[13].
但随着深度学习在图像分类和目标检测的广泛应用[14], 训练需要高质量的图像作为训练集, 同时检测过程光线影响也是非常大. 而检测和分类就是依靠图像的细节特征[15], 因此不仅需要对低光照图像增强, 并且增强后的图像应该保留大部分的细节信息[16], 这有助于提升图像分类准确性以及目标检测的精度.
原Zero-DCE 图像增强网络由对称级联的7 个卷积层的普通CNN, 前6 层卷积层由Conv 和ReLU 函数组成, 最后一层卷积层由Conv 和tanh 函数组成, 其中第1/2/3 层输出和第4/5/6 层进行通道级联. 每层卷积的通道数32, 卷积核大小3×3, 最后输出R/G/B 三个通道8 次迭代的值, 因此是24 通道, 网络结构图如图1.
图1 Zero-DCE 网络结构
改进后的网络核心架构由7 层卷积和3 层反卷积组成, 此外增加两个残差块. 第4/5/6 层为增加的反卷积层[17], 实现对图像细节丢失的补偿, 2 层残差块实现每层反卷积后与2/3 层求差, 通过去学习一个残差值来平衡图像细节信息, 达到降噪和提升图像的清晰度[18].1/2/3/7/8/9 层由Conv 和ReLU 函数组成, 最后一层由Conv 和tanh 函数组成, 反卷积层和卷积层的通道数为互相对应的, 都为32, 卷积核大小3×3, 最后输出R/G/B三通道是经过了10 次迭代后的值, 输出通道为30. 改进后网络结构如图2 所示. 为方便书写, 改进后的网络命名为IMZD-DevRd.
图2 IMZD-DevRd 网络结构
零参考深度曲线估计网络主要通过设计一组可微分的非参考损失来实现将深度网络与光增强作为图像特定曲线估计任务, 从而对给定的图像实现更精准的动态调整, 改进网络总体实现过程如图3 所示. 零参考深度曲线估计网络由3 个部分组成: LE-curve (光增强曲线)、DCE-Net (估算最佳拟合的光增强曲线)、Loss(损失函数)[19].
图3 改进后网络功能实现流程
第1 部分LE-curve (光增强曲线)设计的非线性映射曲线有3 个点[20]: 1)为了避免由于截断溢出而导致图像信息的丢失, 需将待处理图像的每个像素归一到[0, 1]范围内; 2)为使得相邻像素保留原有的差异性,光增强曲线需为单调的; 3)在梯度反向传播过程中, 该曲线的形式尽可能简单并可微. 为了实现这3 个目标,设计了一个二阶曲线, 表示如下:
其中,x为像素坐标,LE(I(x);α)为输入图像I(x)的增强结果, α ∈[−1,1]为可训练的曲线参数, 并且所有操作都是像素级的并且每个像素都需要归一化到[0, 1]范围内. 使用时, 将LE 曲线分别应用到RGB 三通道, 可以保留固有色彩并减少过拟合风险.
通过式(1)的光增强曲线迭代后, 可以使得调整变得更灵活, 从而使模型能够适应各种弱光条件.
第2 部分主要为深度曲线估计网络, 也是文章提出的改进地方, 将一幅弱光图像输入, 会得到一组像素级曲线参数映射所对应的高阶曲线作为输出, 网络采用由1/2/3 和7/8/9 层具有对称连接的卷积网络,4/5/6 层残差层平衡图像的细节信息, 输入图像首先在1/2/3 层卷积后, 然后通过残差块将2/3 层的输出和4 层进行整合输入到第5 层反卷积层中, 依次往后推一层.
第3 部分为损失函数的设计, 原网络损失函数由空间一致性损失[21]、曝光控制损失[22]、色彩恒常性损失[23]和光照平滑损失[24]4 部分组成. 改进后的损失函数增加了内容损失[25], 主要用于每次迭代生成后的图像与上一次图像进行欧式距离计算, 保留图像的语义信息, 最后叠加一个总的损失函数.
(1)空间一致性损失(Lspa)
为保持图像的空间一致性, 通过调整输入图像与增强图像相邻区域的梯度, 通过计算两个图像三通道均值, 得到两个灰度图像, 将其分解成若干个4×4 的块,最后计算每个块内中心像素与相邻像素的插值并求其均值. 其公式如下:
其中,K为局部区域的数量, Ω(i)是以区域i为中心的4 个相邻域(上、下、左、右),Y和I分别为增强图像和输入图像的局部区域平均强度值, 这个值根据经验设置为4×4 大小, 如果设置为其他大小, 损失函数将变得稳定.
(2)曝光控制性损失(Lexp)
为了抑制曝光不足或过度曝光区域, 所以设计了曝光控制性损失函数来控制曝光水平. 曝光损失控制是指局部区域的平均强度值与良好曝光级别E之间的距离[26]. 按照现有惯例,E为三原色空间的灰度级别,在本实验中将取E=0.6. 将图像增强转化为灰度图, 分级为若干16×16 个块, 计算每块内的均值[27]. 公式如下:
其中,M为大小16×16 的不重叠局部区域的数量,Y为增强图像中局部区域的平均强度值.
(3)色彩恒常性损失(Lcol)
根据灰色世界颜色恒常性假设[28], 即将每个传感器通道的颜色平均到整个图像, 通过色彩恒常性损失来纠正增强图像中潜在的颜色偏差, 并建立三通道之间的联系, 尽可能使得增强后的颜色相关. 函数设计如下:
其中,Jp代表增强图像通道p的平均强度, (p,q)代表一对通道.
(4)光照平滑损失(LtvA)
在每个曲线参数映射中添加光照平滑损失以保持相邻像素之间的单调关系, 这样所有通道、迭代次数A(网络输出)的水平、垂直方向梯度平均值应该很小.光照损失函数如下:
其中,N为迭代次数, ∇x、 ∇y分别代表水平和垂直方向的梯度操作.
(5)内容损失(Lcontent)
分别将每次迭代增强后的图像与上一次迭代生成的图像输入到预训练好VGG 网络[29]中提取特种, 然后计算像素之间的欧式距离来判别增强前后的差异性,可用来保持图片的语义信息[30]. 其公式如下:
其中, ∅j为VGG 网络j层激活后的特征,Fw(Io)为每次迭代生成的增强图像,It为上一次迭代生成的图像.
总的损失Ltotal公式如下:
其中,wcol和wtvA分别为权值和损失值.
实验设备: CPU 为Intel Xeon(R)W-2155, GPU 为GeForce RTX 2080 Ti/PCle/SSE2, 内存64 GB 的台式电脑. 实验数据: 训练采用3 022 张不同曝光程度图片,如图4 所示, 其大小为512×512. 所有的程序都是在Linux系统下进行编译、链接与运行, 其中网络训练在PyTorch平台上, 图像质量评估在Matlab 上进行的测试.
图4 不同曝光图片
在得到训练好的权重后, 首先对部分低光照图像进行了增强处理, 对比网络改进前后的图像, 结果如图5所示.
图5 改进网络前后图像对比
增强后的图像无法仅仅通过肉眼去判别好坏, 因此通过在PSNR 和SSIM 两种图像质量评估方法[31]中进行了测试, 此外对传统的拉普拉斯、直方图均衡化、Retinex-Net[32]和Enlighten-GAN[33]作为对比. 测试结果如表1 所示.
通过表1 发现, 改进后的图像质量相比原来提升是比较明显的. 另外通过对改进前后的图像进行傅里叶变换[34]来验证改进后图像细节是否增加. 如图6所示.
表1 几种图像增强方法的图像质量评估结果
傅里叶谱主要将图像的时域转成频域, 图像边缘的灰度值变换快, 就对应这频率高, 即高频显示图像边缘, 而图像细节处也就是属于灰度值急剧变化的区域,正是因为灰度值的急剧变化才会出现细节. 因此对改进先后的图片做傅里叶变换, 分析改进先后图像细节信息是否增加
由于改进后的网络在原网络的基础上, 增加了3 层反卷积和两层残差, 因此计算量势必会有所增加,为了清晰的了解网络改进前后的一个时间开销, 本实验通过表2 记录了改进网络前后训练以及测试耗时对比.
表2 网络改进前后的训练以及测试耗时对比
通过对比发现, 改进后的网络后计算量明显增加,训练时间也相应增加, 但是在测试上面耗时不是相差很大, 对于应用在大多的工业领域还是基本能够满足它的速度要求, 同时增加的图像细节信息也能提高检测的精度.
通过图6(i) (原图傅里叶谱减去Zero-DCE 的傅里叶谱)和图6(j) (原图傅里叶谱减去IMZD-DevRd 傅里叶谱)可以看出, 图6(j)中的低频部分是高于图6(i)的,说明原图中高频部分和改进后增加的高频部分抵消了,从而说明改进后的网络确实可以增加图像的细节信息.图6(i)和图6(l) (原图傅里叶谱减去去原图噪后的傅里叶谱, 即认为噪声)可以说明Zero-DCE 的去噪效果, 此外通过图6(k)可以说明改进后的也达到了和原网络去噪的效果.
图6 图像傅里叶变换对比
此外, 通过比较目前主流的几种图像增强方法后图像的视觉感知[35], 如图7 所示. 主要对室内和室外两种环境进行比对, 可以发现改进后的算法在室内和室外视觉感知是优于其他方法的, 其他几种方法增强后图像会出现失真、模糊和伪影的现象.
图7 视觉感知对比
最后为了检验改进后的算法是否能提高目标检测的精度, 其中目标检测算法采用SSD, 数据集为VOC 2017 和VOC2012, 基于上述环境和配置中训练的网络模型.
在目标检测和图像分类训练中最主要是根据图像的细节特征来分类训练得到所对应的目标网络权重,进而检测和分类的图像细节信息应尽可能多与之对应.具体检测效果如图8 所示.
图8 改进前后目标检测情况
通过图8 结果所示, 明显改进后对于目标检测的精度提高了很多, 这可以应用在很多方面.
在对Zero-DCE-Net 图像增强网络的研究基础上,针对卷积后图像细节信息的丢失问题, 提出了结合反卷积和小残差网络解决该问题, 最后对改进后的网络进行测试, 首先通过在图像质量评估方法PSNR 和SSIM中证实了改进后的图像质量是优于原网络的, 其次通过傅里叶变换和目标检测验证了改进后的网络, 不仅可以达到对图像的增强, 同时图像细节信息也能得到补偿, 这有助于在目标检测、图像分类和图像修复领域的广泛应用.