迈向快速、灵活、稳健的微光图像增强
摘要
现有的微光图像增强技术不仅难以兼顾视觉质量和计算效率,而且在未知的复杂场景中通常无效。在本文中,我们开发了一种新的自校准照明(SCI)学习框架,用于在现实世界的低光场景中快速、灵活和鲁棒的增光图像。具体来说,我们建立了一个权重共享的级联照明学习过程来处理这个任务。考虑到级联模式的计算负担,我们构造了自校正模块,实现了各阶段结果之间的收敛,产生了仅使用单个基本块进行推理的增益(这在以往的工作中尚未得到利用),大大降低了计算成本。然后定义无监督训练损失,提高模型适应一般场景的能力。进一步,我们进行了全面的探索,挖掘了SCI的内在属性(现有工作中所缺乏的),包括操作不敏感的适应性(在不同简单操作的设置下获得稳定的性能)和模型无关的一般性(可应用于基于照明的现有工作,以提高性能)。大量的实验和烧蚀研究充分证明了我们在质量和效率上的优势。微光人脸检测和夜间语义分割等方面的应用充分揭示了脊髓损伤的潜在实用价值。源代码可在以下网站获得
https://github.com/vis-opt-group/SCI。
1. 简介
微光图像增强旨在使隐藏在黑暗中的信息可见,从而提高图像质量,近年来在多个新兴的计算机视觉领域受到了广泛关注[18,24,25]。下面,我们将梳理两个相关课题的发展过程。进一步,我们描述了我们的主要贡献。
基于模型的方法。一般来说,Retinex理论[16]描述了微光图像增强的基本物理规律,即微光观测可分解为照度和反射率(即清晰图像)。Fu等[5,6]使用 ℓ 2 -norm \ell_{2} \text {-norm } ℓ2-norm 作为解决方案,首先利用 ℓ 2 -norm \ell_{2} \text {-norm } ℓ2-norm 来约束光照。Guo等[8]采用相对总变异量[28]作为照度的约束。然而,它的致命缺陷在于过度曝光的外观。Li等人[13]在统一的优化目标中对噪声去除和弱光增强进行了建模。[10]中的工作提出了一种半解耦分解模型,以同时提高亮度和抑制噪声。一些作品(如LEACRM[17])也利用相机的响应特性进行增强。由于受到定义的正则化的限制,它们通常会产生不令人满意的结果,并且需要根据实际场景手动调整大量参数。
基于网络的方法。通过调整曝光时间,[3]中的工作构建了一个新的数据集,称为LOL数据集。本工作还设计了视网膜网,它往往产生非自然的增强结果。KinD[34]通过引入一些训练损失和调整网络架构,改善了视网膜网中出现的问题。DeepUPE[22]定义了一个用于增强低光输入的照明估计网络。[30]中的工作提出了一种递归的频带网络,并采用半监督策略进行训练。EnGAN[11]在非配对监督下设计了一种注意增强的发生器。SSIENet[33]建立了一个分解型的架构来同时估计照度和反射率。ZeroDCE[7]启发式地构建了一条具有学习参数的二次曲线。最近,Liu等人用架构搜索构建了一个受retina启发的展开框架。不可否认,这些深度网络设计得很好。然而,它们并不稳定,很难实现持续的优越性能,特别是在未知的现实场景中,不清楚的细节和不适当的暴露无处不在。
我们的贡献。为了解决上述问题,我们开发了一种新的自校准照明(SCI)学习框架,用于快速、灵活和鲁棒的微光图像增强。通过对光照学习过程的中间输出进行再开发,构造自校正模块,赋予单个基本块更强的表示性和各阶段结果之间的收敛性,实现加速。更具体地说,我们的主要贡献可以总结为:
- 我们开发了一个自校正的共享权重照明学习模块,使各阶段的结果收敛,提高了曝光稳定性,大大减少了计算量。据我们所知,这是第一个利用学习过程加速微光图像增强算法的工作。
- 我们定义了无监督训练损耗,在自校正模块的作用下约束各阶段的输出,赋予了对不同场景的适应能力。属性分析表明,SCI具有操作不敏感的适应性和模型无关的通用性,这是现有文献所没有的。
- 我们进行了大量的实验,以证明我们的方法优于其他最先进的方法。进一步在黑暗人脸检测和夜间语义分割方面的应用,揭示了我们的实用价值。简言之,SCI重新定义了基于网络的微光图像增强领域的视觉质量、计算效率和下游任务的性能的峰值点。
2. 该方法
在本节中,我们首先介绍了具有权重共享的照明学习,然后构建了自校正模块。其次介绍了无监督训练损失。最后,对我们构建的SCI进行了全面的讨论。
2.1. 照明学习与权重共享
根据Retinex理论,弱光观测y和期望的清晰图像z之间存在联系:y = z⊗x,其中x表示光照分量。通常,照明被视为核心组件,需要优化的主要是微光图像增强。根据Retinex理论,去除估计的照度可以进一步获得增强的输出。在这里,受文献[8,14]中提出的照明的阶段优化过程的启发,通过引入带有参数θ的映射 H θ \mathcal{H}_{\boldsymbol{\theta}} Hθ来学习照明,我们提供了一个渐进的视角来建模该任务,基本单元被写为:
F ( x t ) : { u t= H θ ( x t ), x 0= y x t + 1 = x t+ u t (1) \mathcal{F}\left(\mathbf{x}^{t}\right):\left\{\begin{array}{l} \mathbf{u}^{t}=\mathcal{H}_{\boldsymbol{\theta}}\left(\mathbf{x}^{t}\right), \mathbf{x}^{0}=\mathbf{y} \\ \mathbf{x}^{t+1}=\mathbf{x}^{t}+\mathbf{u}^{t} \end{array}\right. \tag{1} F(xt):{ut=Hθ(xt),x0=yxt+1=xt+ut(1)
其中 u t \mathbf{u}^{t} ut和 x t \mathbf{x}^{t} xt分别表示t -th阶段的残差项和光照 ( t = 0 , … , t − 1 ) (t=0, \ldots, t -1) (t=0,…,t−1)。需要注意的是,我们没有在 H θ \mathcal{H}_{\theta} Hθ中标记阶段号,因为我们采用了权值共享机制,即在每个阶段中使用相同的体系结构 H \mathcal{H} H和权值 θ \theta θ。
事实上,参数化算子 H θ \mathcal{H}_{\boldsymbol{\theta}} Hθ学习了光照和弱光观测之间的简单残差表示 u t \mathbf{u}^{t} ut。这一过程受到一个共识的启发,即光照和弱光观测在大多数地区是相似的或存在线性联系。与采用弱光观测与光照之间的直接映射(现有工作中常用的模式,如[14,22])相比,学习残差表示大大降低了计算难度,既保证了性能又提高了稳定性,特别是在曝光控制方面。
事实上,我们可以直接利用上述构建的过程与给定的训练损失和数据来获得增强的模型。但值得注意的是,具有多个权值共享块的级联机构不可避免地增加了可预见的推理成本。回顾这个共享过程,每个共享块都希望输出尽可能接近预期目标的结果。再进一步说,理想的情况是第一个块可以输出期望的结果,满足任务需求。与此同时,后一个块输出与第一个块相似甚至完全相同的结果。这样,在测试阶段,我们只需要一个块来加快推理速度。接下来,我们将探讨如何实现它。
2.2. Self-Calibrated模块
在这里,我们的目标是定义一个模块,使每个阶段的结果收敛到同一状态。我们知道每一级的输入都来源于前一级,第一级的输入被明确定义为微光观测。一个直观的想法是,我们是否可以将各个阶段的输入(第一级除外)与微光观测(即第一级的输入)连接起来,间接探索各个阶段之间的收敛行为。为此,我们引入了一个自校正地图,并将其添加到微光观测中,以表示每一级输入与第一级输入之间的差异。具体来说,自校正模块可以表示为
G ( x t ) : { z t= y ⊘ x t s t= K ϑ ( z t ) v t= y + s t (2) \mathcal{G}\left(\mathbf{x}^{t}\right):\left\{\begin{array}{l} \mathbf{z}^{t}=\mathbf{y} \oslash \mathbf{x}^{t} \\ \mathbf{s}^{t}=\mathcal{K}_{\vartheta}\left(\mathbf{z}^{t}\right) \\ \mathbf{v}^{t}=\mathbf{y}+\mathbf{s}^{t} \end{array}\right. \tag{2} G(xt):⎩⎨⎧zt=y⊘xtst=Kϑ(zt)vt=y+st(2)
其中t≥1, v t v^t vt是每个阶段的转换输入, K ϑ \mathcal{K}_{\vartheta} Kϑ是引入的参数化算子,具有可学习参数 ϑ \vartheta ϑ。那么t阶段(t≥1)基本单位的转换可写成
F ( x t ) → F ( G ( x t ) ) (3) \mathcal{F}\left(\mathbf{x}^{t}\right) \rightarrow \mathcal{F}\left(\mathcal{G}\left(\mathbf{x}^{t}\right)\right) \tag{3} F(xt)→F(G(xt))(3)
实际上,我们构建的自校正模块是通过整合物理原理,逐步校正每一级的输入,间接影响每一级的输出。为了评估自校正模块对收敛性的影响,我们在图3中绘制了各阶段结果的tSNE分布,我们可以很容易地观察到,每个阶段的结果确实收敛到相同的值。但在没有自校正模块的情况下,就不会出现这种现象。此外,上述结论也反映出我们确实实现了第2.1节最后一段所描述的意图,即使用权重共享模式训练多个级联块,但只使用单个块进行测试。
为了理解我们建立的SCI框架,我们还在图2中提供了总体流程图。
2.3. 非监督训练的损失
考虑到现有配对数据的不准确性,我们采用无监督学习来扩大网络能力。我们定义总损耗为 L total = α L f + β L s \mathcal{L}_{\text {total }}=\alpha \mathcal{L}_{f}+\beta \mathcal{L}_{s} Ltotal =αLf+βLs,其中 L f \mathcal{L}_{f} Lf和 L s \mathcal{L}_{s} Ls分别代表保真度和平滑损耗。α和β是两个正平衡参数。保真度损失是为了保证估计的照度与各阶输入之间像素级的一致性,公式为:
L f = ∑ t = 1 T ∥ x t − ( y + st−1 ) ∥ 2 (4) \mathcal{L}_{f}=\sum_{t=1}^{T}\left\|\mathbf{x}^{t}-\left(\mathbf{y}+\mathbf{s}^{t-1}\right)\right\|^{2} \tag{4} Lf=t=1∑T∥ ∥xt−(y+st−1)∥ ∥2(4)
其中T为总级数。实际上,这个函数利用重新定义的输入 y + st−1 y + s^{t−1} y+st−1来约束输出照度 x t x^t xt,而不是手工制作的地面真相或普通的低光输入。
光照的平滑性是本课题的广泛共识[7,34]。在这里,我们采用具有空间变异’ 1范数[4]的平滑项,表示为
L s = ∑ i = 1 N ∑ j ∈ N ( i ) w i , j ∣ x i t − x j t ∣ (5) \mathcal{L}_{s}=\sum_{i=1}^{N} \sum_{j \in \mathcal{N}(i)} w_{i, j}\left|\mathbf{x}_{i}^{t}-\mathbf{x}_{j}^{t}\right| \tag{5} Ls=i=1∑Nj∈N(i)∑wi,j∣∣xit−xjt∣∣(5)
其中N是总像素数。i是第i个像素。N(i)表示i在其5 × 5窗口中的相邻像素。 wi,j w_{i, j} wi,j表示权重,其表达式为 wi,j = exp ( − ∑ c ( ( y i , c + s i , c t − 1 ) − ( y j , c + s j , c t − 1 ) ) 2 2 σ 2 ) w_{i, j}=\exp \left(-\frac{\sum_{c}\left(\left(\mathbf{y}_{i, c}+\mathbf{s}_{i, c}^{t-1}\right)-\left(\mathbf{y}_{j, c}+\mathbf{s}_{j, c}^{t-1}\right)\right)^{2}}{2 \sigma^{2}}\right) wi,j=exp(−2σ2∑c((yi,c+si,ct−1)−(yj,c+sj,ct−1))2),其中c表示YUV颜色空间中的图像通道。σ = 0.1是高斯核的标准差。
本质上,自校正模块在学习一个更好的基本块(本文中的照明估计块)时起辅助作用,该基本块级联生成具有权重共享机制的整体照明学习过程。更重要的是,自校正模块赋予了各阶段结果之间的收敛性,这在现有的工作中还没有得到探索。而且,SCI的核心思想实际上是引入额外的网络模块来辅助训练,而不是在测试中。它改进了模型的表征,实现了只使用单个块进行测试。也就是说,可以将“权重共享+任务相关自校准模块”的机制转移到处理其他任务上来加速。
3.属性探索算法
在本节中,我们对我们提出的SCI进行探索,以深入分析其属性。
3.1. Operation-Insensitive适应性
一般来说,基于网络的方法所使用的操作应该是固定的,不能随意更改,因为这些操作是在大量实验的支持下获得的。幸运的是,我们提出的算法在Hθ的不同非常简单,甚至是幼稚的设置上表现出惊人的适应性。如表1所示,我们可以很容易地观察到,我们的方法在不同的设置(块的个数3×3卷积+ReLU)中获得了稳定的性能。进一步,我们提供了如图4所示的视觉对比,可以很容易地观察到,我们不同设置的csi都使弱光观测变亮,显示出非常相似的增强结果。回顾我们设计的框架,我们可以获得这种特性,因为SCI不仅将共识转换为照明(即残余学习),而且集成了物理原理(即元素明智的除法操作)。该实验也验证了我们所设计的SCI的有效性和正确性。
3.2. Model-Irrelevant普遍性
如果不限制与任务相关的自校正模块,我们的SCI实际上是一个广义的学习范式,所以理想情况下,它可以直接应用到现有的工作中。这里,我们以最近提出的代表性工作RUAS[14]为例进行探索。表2和图5展示了使用我们的SCI训练RUAS前后的定量和定性对比。显然,虽然我们只是使用了RUAS展开过程中使用的单个块(即RUAS(1))来评估我们的训练过程,但性能仍然获得了显著的提高。更重要的是,我们的方法可以显著抑制原有RUAS中出现的过曝光现象。这个实验反映了我们的学习框架确实足够灵活,并且具有很强的模型无关的通用性。这表明我们的方法或许可以应用到任意照度的微光图像增强工作中,我们将在未来进行尝试。
4. 实验结果
在本节中,我们首先提供了所有实现细节。然后进行了实验评价。然后,我们将增强方法应用于黑暗人脸检测和夜间语义分割。最后,对SCI进行了算法分析。所有的实验都是在一台使用单个TITAN X GPU的PC上进行的。
4.1. 实现细节
参数设置。 在训练过程中,我们使用了参数β1 =0.9, β2 =0.999, ϵ \epsilon ϵ = 10−8的ADAM优化器[12]。小批大小设置为8。初始化学习率为10−4。训练纪元数设置为1000。根据3.1节的结论,我们在所有实验中都采用3卷积+ 3通道ReLU作为Hθ的默认设置。自校正模块包含四个卷积层,保证了训练过程的轻量化。事实上,网络的形式可能是不固定的,我们已经在补充材料中做了实验来验证。
比较的方法。 在微光图像增强方面,我们将SCI与最近提出的四种基于模型的方法(包括LECARM[17]、SDD[10]、STAR[26])、四种先进的监督学习方法(包括RetinexNet[3]、KinD[34]、FIDE[27]、DRBN[30])和四种无监督学习方法(包括EnGAN[11]、SSIENet[33]、ZeroDCE[7]和ruas[14])进行了比较。对于暗脸检测,除了在检测器前进行上述基于网络的增强工作外,我们还比较了最近提出的暗脸检测方法HLA[24]。
基准描述和度量。 对于弱光图像增强,我们从MIT数据集[2]中随机抽取100张图像,从LSRW数据集[9]中随机抽取50张测试图像进行测试。我们使用了两个全参考指标,包括PSNR和SSIM,五个无参考指标,包括DE [20], EME [1], LOE[23]和NIQE[23]。关于黑暗脸检测,我们使用了dark face数据集[31],该数据集由1000张挑战性测试图像组成,这些图像是从2021年CVPR举行的UG2+ PRIZE CHALLENGE的子挑战中随机采样的。我们将检测精度、精密度和召回率作为评价指标。对于夜间语义分割,我们使用ACDC[19]中的400张图像进行训练,剩下的106张图像作为评估数据集。评估指标定义为IoU和mIoU。
4.2. 基准实验评价
绩效评估。 如表3所示,我们的SCI取得了具有竞争力的性能,特别是在无参考指标方面。如图6-7所示,先进的深度网络生成了未知的面纱,导致细节不明显,颜色不自然。通过对比,我们的SCI达到了最好的视觉质量,鲜艳的颜色和突出的纹理。更多的视觉对比可以在补充材料中找到。
计算效率。 此外,我们在表4中报告了一些最近提出的基于cnn的方法的模型大小、flop和运行时间(gpu -秒)。显然,我们提出的SCI与其他网络相比是最轻量级的,并且明显优于其他网络。
4.3. 在野外实验评价
在野外环境下,微光图像增强是极具挑战性的。图像局部过曝光信息的控制、整体色彩的校正、图像细节的保存等都是亟待解决的问题。在这里,我们测试了来自DARK FACE[31]和ExDark[15]数据集的许多具有挑战性的野外示例。如图8所示,通过大量的实验可以看出,我们的方法取得了比其他方法更令人满意的可视化结果,特别是在曝光水平、结构描绘、颜色呈现等方面。由于篇幅所限,我们在《补充资料》中提供了更多的对比。
4.4. 黑暗的人脸检测
我们利用著名的人脸检测算法S3FD[32]来评估黑暗人脸的检测性能。注意,S3FD是使用原S3FD中提供的WIDER FACE数据集[29]进行训练的,我们使用预先训练的S3FD模型对通过各种方法增强的图像进行微调。
同时,我们采用了一种名为SCI+的新方法,将我们的SCI作为基础模块嵌入到S3FD的前端,对任务和增强的损失组合进行联合训练。如图9所示,我们的方法(SCI和SCI+)在所有比较方法中获得了最好的分数,增强版本比微调版本获得了更好的性能。图10进一步展示了视觉对比。可以很容易地观察到,应用我们的SCI,也可以检测到较小的对象,而其他方法无法做到这一点,如放大区域所示。
4.5. 夜间的语义分割
这里我们采用PSPNet[35]作为基线,评估所有方法在“预训练+微调”模式(类似于暗脸检测中的SCI版本)下的分割性能。表5和图11给出了不同方法的定量和定性对比结果。我们的性能明显优于其他最先进的方法。如图11的放大区域所示,所有的比较方法都会产生一些未知的伪影,从而破坏生成的分割图的质量。
5. 结束语
在本文中,我们成功地建立了一个轻量级但有效的框架——自校正照明(self - calibration Illumination, SCI),用于针对不同现实场景的微光图像增强。我们不仅对SCI的优良性能进行了深入的探索,还进行了大量的实验,证明了我们在微光图像增强、黑暗人脸检测、夜间语义分割等方面的有效性和优越性。
更广泛的影响。从任务的角度来看,SCI提供了一个高效有效的学习框架,在图像质量和推理速度上都获得了极高的性能。也许这将是进入一个新的高速和高质量的微光图像增强时代的一个支撑。在方法设计上,SCI为其他底层视觉问题打开了一个新的视角(即在训练阶段引入增强基本单元模型能力的辅助过程),提高了对现实场景的实用性。