Paper: https://arxiv.org/abs/2205.14871
Code:https://github.com/cuiziteng/Illumination-Adaptive-Transformer
知乎解读(作者发文):代码开源,仅需90K参数!实时完成低光增强, 曝光矫正的超轻量级Transformer网络IAT (BMVC 2022)
现实世界中具有挑战性的光照条件(低光、曝光不足和过度曝光)不仅会造成不愉快的视觉外观,而且会污染计算机视觉任务。摄像机捕捉到原始rgb数据后,通过图像信号处理器(ISP)渲染标准sRGB图像。通过将ISP管道分解为局部和全局图像组件,我们提出了一种轻量级快速照明自适应变压器(IAT),可以从低光或过曝光条件下恢复正常照明sRGB图像。具体来说,IAT使用注意查询来表示和调整ISP相关参数,如颜色校正,伽马校正。只有~ 90k的参数和~ 0.004秒的处理速度,我们的IAT在基准低光增强和曝光校正数据集上始终比SOTA取得更好的性能。实验性能也表明,我们的IAT显著增强了在各种光照条件下的目标检测和语义分割任务。
计算机视觉在拍摄质量良好的图像和视频上取得了巨大的成功。然而,现实世界中不断变化的光线条件对人类的视觉表现和下游任务(语义分割和目标检测)提出了挑战。在光照不足的情况下拍摄的图像(图1左上)受到光子计数的限制和不希望的相机内噪声的影响。另一方面,户外场景经常暴露在阳光直射等强光下(图1左下),由于传感器的范围有限和相机图像管道的非线性,使图像饱和。更糟糕的是,过曝光和过曝光可能同时存在,即阴影投下的空间变化光照会使对比度达到1000:1或更高。
多种技术,如弱光增强,曝光校正被提出以适应困难的光照条件。弱光增强方法在抑制伴随噪声的同时恢复细节。曝光校正方法主要是调整欠曝光/过曝光图像,在短曝光/长曝光时间下重建清晰图像。虽然很多研究都在阐述如何改善以人为导向的视觉感知,但也有一些方法通过提高高级别任务对低光和过度曝光条件的鲁棒性来增强它们。如图1所示,我们的目标是一个统一的轻量级框架,它既改善了视觉外观,也改善了在现实光线条件下的识别任务。
虽然sRGB图像是日常生活中最常见的,但许多现有的光自适应方法都操作在原始rgb图像上,这些图像与实际场景的辐照度成线性比例。为了直接处理sRGB图像,我们特别考虑了相机中的图像信号处理器(ISP),它可以将原始rgb图像渲染成sRGB。我们提出了一种新的基于双分支变压器的模型,即像素级局部分支 f f f与全局ISP分支 g g g相结合。在局部分支 f f f中,我们将输入图像映射到潜在特征空间,并将变压器的注意块替换为深度卷积,实现轻量级设计。在全局分支 g g g中,我们使用变压器的注意查询来控制和调整全局ISP相关参数(即颜色变换矩阵、伽马值)。此外,学习到的查询可以在不同的光照条件下动态变化(即过度曝光和曝光不足)。
在几个真实世界和合成数据集上进行了广泛的实验,例如,图像增强数据集LOL[64]和照片修饰数据集MIT-Adobe FiveK[6],微光检测数据集EXDark[41]和微光分割数据集ACDC[52]。结果表明,我们的IAT在一系列低级和高级任务中实现了最先进的性能。更重要的是,我们的IAT模型只有0.09M的参数,比目前基于SOTA变压器的模型要小得多[9,59,63]。此外,我们的平均推理速度为每幅图像0.004秒,比SOTA方法每幅图像约1秒的推理速度快。我们的贡献可以概括如下:
早期的微光图像增强方案主要依靠RetiNex理论[35]或直方图均衡化[20,56]。由于LLNet[42]使用了深度自编码器结构,基于CNN的方法已被广泛用于该任务,并在基准增强数据集上获得了SOTA结果。
与弱光增强类似,传统曝光校正算法[46,72]也使用图像直方图来调整图像强度。然后,该策略倾向于通过经过训练的深度学习模型调整色调曲线来纠正曝光错误[48,71]。最近,Afifi等人[2]提出了一种从粗到细的神经网络来纠正照片曝光,之后Nsampi等人[47]将注意机制引入这项任务。
除了低水平视觉,弱光/强光场景也会降低高水平视觉的表现。基于数据合成[78]、自监督学习[16]和域适应[53]的几种方法已经被提出,以支持具有挑战性的光照条件下的高水平视觉任务。
Transformer[61]首先在NLP领域提出,以捕获全局关注的长期依赖关系。ViT[18]在视觉任务中进行了第一次尝试,在将图像发送到变压器模型之前,将图像分割为令牌。从那时起,基于Transformer的模型在许多计算机视觉任务中获得了优越的性能,包括图像/视频分类[36,40],目标检测[7,76],语义分割[66],视觉语言模型[49,75]等等。在低层次视觉领域,基于变压器的模型在图像超分辨率[37]、图像恢复[9,63,73]、图像着色和恶劣天气恢复等几个子方向上也取得了较大进展。最近,MAXIM[59]在低水平视觉领域使用了基于MLP的模型[55],这也显示了MLP在低水平视觉任务中的潜力。然而,现有的变压器和MLP模型需要大量的计算成本(例如IPT的115.63M, MAXIM的14.14M),使得它很难在移动和边缘设备上实现。我们的方法的极轻量(0.09M)在低水平视觉和计算成像中特别重要。
对于从光照条件 L i L_i Li拍摄的sRGB图像 I i I_i Ii,光照条件 L i L_i Li下的输入光子将通过镜头投射到电容簇上,通过相机内处理[65],并用图像信号处理器(ISP)管道 G ( ⋅ ) G(·) G(⋅)渲染[5,32]。我们的目标是将输入sRGB I i I_i Ii匹配到目标sRGB图像 I t I_t It(在光照条件 L t L_t Lt下拍摄)。现有的基于深度学习的方法倾向于在 I i I_i Ii和 I t I_t It之间建立端到端映射,或估计一些高级表示来辅助增强任务(例如光照映射[62],颜色变换函数[33],3D查找表[74])。然而,实际的亮度退化发生在原始RGB空间(Raw-RGB),相机ISP中的过程涉及到更复杂的非线性操作,如白平衡,色彩空间变换,伽马校正等。因此,许多研究直接对原始rgb数据而不是sRGB图像进行图像增强[8,65]。
为此,Brooks等人[5]逆ISP管道中的每个步骤(即伽马校正、色调映射、相机颜色转换),将输入sRGB图像转换为“未处理的”原始RGB数据。之后,Afifi和Brown[1]采用编码器-解码器结构将sRGB图像的照度从输入光Ii编辑到目标光It如下:
其中F是一个未知的重构函数 D = F ( I i ) D = F(I_i) D=F(Ii)将 I i I_i Ii映射到相应的原始rgb数据,
G G G为将 D D D变换回目标sRGB图像 I t I_t It的相机渲染函数。文献[1]使用网络编码器 f f f来表示 F F F,然后在编码器 f f f上添加几个单独的解码器 g t g_t gt。函数将 f ( I i ) f (I_i) f(Ii)映射到目标 I t I_t It照明条件如下:
为了实现轻量级网络设计,受通过变压器查询控制不同对象提议的DETR[7]的启发,这里我们使用不同的查询来控制 g t ( ⋅ ) g_t(·) gt(⋅)中与ISP相关的参数。通过对参数的重新配置,使图像 I i I_i Ii适应目标光照条件 L t L_t Lt。在训练阶段,每次迭代都动态更新查询以匹配目标图像 I t I_t It。这里我们将ISP过程[5,12,16]简化为如下式3。简化的细节可以在附录中找到。
W c i ; c j W_{c_i; c_j} Wci;cj是一个 3 × 3 3 × 3 3×3联合颜色变换矩阵,考虑了白平衡和颜色变换矩阵。我们采用9个查询来控制 W c i ; c j W_{c_i; c_j} Wci;cj的参数。 γ \gamma γ表示伽马矫正参数,我们使用其中一个查询用于控制。 ϵ \epsilon ϵ是一个非常小的值,以防止数值不稳定。这里我们在实验中设 ϵ = 1 e − 8 \epsilon = 1e^{−8} ϵ=1e−8。
对于过程 F F F,我们应用像素级最小二乘模型 F F F。我们的 f f f由两个单独的分支组成,用来预测映射M的乘法和映射A的相加。然后对输入sRGB图像进行最小二乘处理: f ( I i ) = I i ⨀ M + A f(I_i) = I_i \bigodot M + A f(Ii)=Ii⨀M+A。这里 M M M和 A A A的大小与 I i I_i Ii相同,完成像素级的乘加调整。最后,我们的IAT模型方程如下:
非线性操作被分解为局部像素分量f和全局ISP分量g。因此,我们设计了两个独立的变压器类型分支:局部调整分支和全局ISP分支,分别估计局部像素智能组件和全局ISP组件。
给定光照条件 L i L_i Li下的输入sRGB图像 I i ∈ R H × W × 3 I_i \in \R^{H×W×3} Ii∈RH×W×3,其中 H × W H×W H×W为尺寸尺寸,3为通道尺寸 ( { r , g , b } ) (\{r,g,b\}) ({r,g,b})。如图2所示,我们提出我们的亮度自适应变压器(IAT),在适当的匀光 L t L_t Lt下,将输入的RGB图像 I i I_i Ii传输到目标RGB I t ∈ R H × W × 3 I_t \in \R^{H×W×3} It∈RH×W×3。
局部分支: 在局部分支中,我们专注于估计局部分量 M , A M, A M,A来校正光照的效果。我们没有采用U-Net[51]风格的结构,即先下采样再上采样,而是通过局部分支保持输入分辨率,以保留信息细节。因此,我们为本地分支提出了变压器风格的体系结构。与流行的U-Net结构[2,43]相比,我们的结构可以处理任意分辨率的图像,而无需调整图像的大小。
首先,我们通过3×3卷积扩展通道维度,并将它们传递给由像素增强模块(PEM)堆叠的两个独立分支。对于局部分支的轻量化设计,我们用深度卷积(depth-wise convolution)代替了自我注意(self-attention)[23,36],深度卷积可以减少参数进一步节省计算成本。如图3 (a)所示,我们的PEM首先通过3×3深度卷积对位置信息进行编码,然后使用PWConv-DWConv-PWConv增强局部细节。最后,我们采用两个1×1卷积分别增强令牌表示。特别地,我们设计了一种新的归一化方法——光归一化,以取代变压器的层归一化[4]。如图3 (a)所示,光归一化在通过可学习矩阵融合通道之前,通过两个可学习参数学习缩放a和偏移b。矩阵被初始化为一个单位矩阵。为了更好的收敛,我们采用了Layer Scale[58],它将特征乘以一个小数字 k 1 / k 2 k1/k2 k1/k2。
我们在每个分支中堆叠3个pem,然后通过元素相加将输出特征与输入特征连接起来。这个跳跃连接[24]有助于维护原始图像细节。最后,我们将信道维数减小3×3卷积,采用ReLU/ Tanh函数生成式4中的局部分量M/ A。
全局ISP分支: 全球ISP分支占ISP管道的一部分(即伽马校正、色彩矩阵变换、白平衡)在传输目标RGB图像 I t I_t It时。具体来说,目标图像中每个像素的值由等式3中定义的全局操作确定。
受检测变压器DETR[7]的启发,我们设计了全局组件查询来解码和预测 W , γ W,\gamma W,γ,生成sRGB图像 I t I_t It。这种转换器结构允许捕获上下文和单个像素之间的全局交互。如图2所示,我们首先将两个卷积堆叠成一个轻量级编码器,对高维低分辨率的特征进行编码,较低的分辨率可以节省计算成本,有利于实现图像的轻量化设计;较高的特征表示水平有利于提取图像的全局特征。然后生成的特征被传递到全局预测模块(GPM),图3 (b)显示了GPM的详细结构,与原始的DETR[7]模型不同,我们的全局组件查询Q初始化为零,没有额外的多线程自注意。Q是全局分量可学习嵌入,它参与由编码特征生成的键K和值V。K和V的位置编码来自深度卷积,这对不同的输入分辨率很友好。在具有两个线性层的前馈网络(FFN)[18]之后,我们增加了两个具有特殊初始化的额外参数来输出颜色矩阵和伽马。这个初始化确保颜色矩阵是单位矩阵W,伽马值g在开始时是1,从而有助于稳定的训练。
我们在基准数据集和实验设置上评估了我们提出的IAT模型,用于不同光照条件下的低级和高级视觉任务。三个低级视觉任务包括:(a)图像增强(LOL (V1 & V2-real) [64]), (b)图像增强(MIT-Adobe FiveK [6]), ©曝光校正[2]。三个高级视觉任务包括:(d)微光目标检测 (e)微光语义分割 (f)多光照目标检测。局部分支中的PEM数目均为3,PEM中的通道数均为16。对于所有低级视觉实验:f(a);(b);©g, IAT模型在单个批处理大小为8的GeForce RTX 3090 GPU上进行训练。我们使用Adam优化器训练我们的IAT模型,初始学习率和权值衰减分别设置为 2 e − 4 2e^{−4} 2e−4和 1 e − 4 1e^{−4} 1e−4。为了避免过拟合,采用了余弦学习计划。对于数据增广,使用水平翻转和垂直翻转得到了更好的结果。
对于(a)和(b)图像增强任务,我们在基准数据集上评估我们的IAT框架:LOL (V1 & V2-real)[64]和MIT-Adobe FiveK[6]。LOL[64]有两个版本:LOL- v1由500张配对的常光图像和微光图像组成。485对用于培训,其余15对用于测试。V2-real由789对正常光图像和弱光图像组成。689双用于训练,另外100双用于测试。输入图像 I i I_i Ii与目标图像 I t I_t It之间的损失函数用于LOL数据集训练是一个混合损失函数[60]
L1损耗和VGG损耗[31]。在LOL-V1训练中,图像裁剪为256 × 256,训练200 epoch,然后在600 × 400分辨率上微调100 epoch。在LOL-V2-real 训练中,图像分辨率保持在600 × 400,训练200 epoch。LOL-V1和LOL-V2-real测试图像分辨率均保持在600 × 400。我们将我们的方法与SOTA方法进行比较。对于图像质量分析,我们评估峰值信噪比(PSNR)和结构相似指数测度(SSIM)。对于模型效率分析,我们报告了三个指标:FLOPs、模型参数和试验时间,见表1最后一列。我们列出了不同模型在相应代码平台上的测试时间(M表示Matlab, T表示TensorFlow, P表示PyTorch)。如表1所示,IAT (local)只使用本地网络来训练模型,IAT指的是整个框架。与现有SOTA方法MAXIM[59]相比,我们的IAT在图像质量和模型效率方面都获得了SOTA结果,尤其是在100× FLOPs和参数利用率方面。
MIT-Adobe FiveK[6]数据集包含5000张图像,每张图像由5位不同的专家(A/B/C/D/E)手工增强。按照前面的设置[45,62],我们只使用专家C的调整图像作为GT图像。对于MIT-Adobe FiveK[6]数据集训练,我们使用单一L1损失函数来优化IAT模型。我们的方法与在FiveK数据集上的SOTA增强方法比较。图像质量结果(PSNR, SSIM)和模型参数如表2所示。我们的IAT在质量和效率上也取得了令人满意的结果。LOL的定性结果[64]和FiveK[6]如图4所示。更多的结果可以在补充材料中找到。
对于©曝光校正任务,我们在[2]提出的基准数据集上评估IAT。该数据集包含24,330张sRGB图像,分为17,675张训练图像、750张验证图像和5905张测试图像。[2]中的图像由MIT-Adobe FiveK[6]数据集用5种不同的曝光值(EV)进行调整,从曝光不足到曝光过度。与[6]相同,测试集有5个不同专家的调整结果(A/B/C/D/E)。在设置[2]之后,训练图像被裁剪为512×512补丁,测试图像被调整为最大尺寸为512像素。我们将测试图像与五位专家的结果进行比较。这里我们使用L1损失函数进行曝光校正训练。
评价结果见表3。我们的比较方法包括传统的图像处理方法(直方图均衡[20],LIME[22])和深度学习方法(DPED [29], DPE [13], RetinexNet [64], deep - upe [62], Zero-DCE [21],MSEC[2])。评价指标与[2]相同,包括PSNR、SSIM和感知指数(PI)。从表3可以看出,我们的IAT模型在所有评价指标上都取得了最好的结果。与第二优结果MSEC[2]相比,IAT具有更少的参数(0.09M vs 7M)和更短的评估时间(0.004秒/幅图像vs . 0.5秒/幅图像)。定性结果如图4所示,更多的可视化结果在补充材料中给出。
对于高级视觉任务:{(d);(e);(f)},我们使用IAT对图像进行恢复,然后再将其馈送给后续基于mm检测和mm分割的识别算法。为了进行公平的比较,我们在相同的设置下运行所有的实验:相同的输入大小、相同的数据增强方法(扩展、随机裁剪、多尺寸、随机翻转……)、相同的训练周期和相同的初始权重。我们在IAT增强的数据集上训练识别算法IAT增强的数据集。我们将我们的方法与原始数据集以及其他增强方法增强的数据集进行比较[21,43,45]。
用于(d) EXDark数据集[41]和(f) TYOL数据集[26]中的对象检测任务。EXDark包括7363张真实世界的低光图像,范围从黄昏到极端黑暗的环境,共有12个对象类别。我们将每个类别的80%的图像用于训练,其余20%用于测试。TYOL包含21类的1680张图片。我们拍摄了1365张图像用于训练和其他评估。对于这两个数据集,我们使用SGD优化器训练批次大小为8的YOLO-V3,训练25个周期到EXDark, 45个周期到TYO-L,初始学习率为1e−3,权值衰减为1e−4。检测度量mAP和每张图像评估时间如表4所示。与基线模型和其他增强方法相比,我们的IAT模型在准确性和速度上都获得了最好的结果[21,43,45]。
为了在(e) ACDC数据集[52]中进行语义分割,我们取1006张夜间图像然后采用DeepLab-V3+[11]在ACDC-night train set上进行训练,在ACDC-night val set上进行测试。DeepLab-V3+[11]模型由Cityscape数据集[15]预训练模型初始化,我们使用SGD优化器对预训练模型进行批处理大小调优
对于20000升,初始学习率设置为0.05,动量和重量衰减分别设置为0.9和5e−4。我们在表4中展示了分割度量mIOU和每张图像评估时间,我们发现所有增强方法在这种设置下都无效,这可能是因为ACDC[52]中的亮度条件是多种多样的,超出了增强模型的泛化能力。针对这一问题,我们提出将我们的IAT模型与以下分割网络(以及检测网络)联合训练,可以解决这一问题,提高弱光条件下的语义分割/目标检测结果,具体分析请参见补充材料1第8节。
我们提出了一种新的轻量级变压器框架IAT,通过调整isp相关参数来适应具有挑战性的光照条件。尽管IAT在一些用于低级和高级任务的真实数据集上的性能非常好,但它非常轻,速度非常快。轻量级和移动友好的IAT有潜力成为计算机视觉社区的一个常设工具。
然而,IAT模块的一个主要缺点是图像信号处理器(ISP)由于轻量级的需求而被简化,我们认为可以考虑更详细的IPS相关部分,并插值到IAT模块中。此外,我们还希望在三维人体照明任务中实现IAT,以解决更复杂的三维条件下的照明问题。