本文对一篇CVPR论文进行介绍,展示数字图像这门课程所学的某些知识技术在前沿科研中如何拓展运用的。
一、为什么要做这个研究?
文档图像与自然图像具有明显不同的特征,传统的自然图像阴影去除方法在文档图像上表现不佳,这些方法可能会导致具有复杂背景的图像的颜色失真或阴影残余。因此,文章针对文档图像的特点提出一种新的阴影去除方法。效果对比如图1所示。
图1 阴影去除效果
二、怎么做?
文章提出了一种颜色感知的背景提取网络(CBENet),用于提取具有空间变化的背景,以保留各种背景颜色。然后,他们引入了一种基于背景的阴影去除网络(BGShadowNet),利用背景图像作为辅助信息。所提出的网络由基于背景约束的解码器、基于背景的注意力模块(BAModule)和细节增强模块(DEModule)组成,用于改善阴影去除结果。具体流程如图2所示。
图2 模型结构
1.背景感知的背景提取网络(CBENet)
目的:解决文档图像阴影去除中恒定颜色背景引起的问题。
方法:局部到全局策略: 使用局部到全局的策略构建训练 CBENet 的地面真实背景。将地面真实无阴影图像划分成16×16的块,通过高斯混合模型(GMM)对每个块进行聚类,确定文本内容和背景,得到局部背景。
颜色保持平滑操作: 引入颜色保持平滑算子,通过使用引导滤波器进行局部背景的细化,得到最终的地面真实背景图像。
CBENet 结构:
采用 U-Net 结构。
第一阶段(Stage I):使用局部背景生成粗糙的阴影去除结果。
第二阶段(Stage II):引入基于背景的注意力模块(BAModule)和细节增强模块(DEModule)以改进结果。
2.背景引导的阴影去除网络(BGShadowNet)
目的:利用背景信息辅助阴影去除。
BGShadowNet结构:
两个阶段:
第一阶段(Stage I):使用图像编码器和背景约束解码器生成粗糙的阴影去除结果。
第二阶段(Stage II):在编码器-解码器网络中嵌入基于背景的注意力模块(BAModule)和细节增强模块(DEModule),最后加入鉴别器。
背景约束解码器:
替代通常解码器,集成背景编码器的特征,帮助生成满意的阴影去除结果。
基于背景的注意力模块(BAModule):
整合编码器和背景特征,生成颜色感知的注意力图,消除外观不一致性。
细节增强模块(DEModule):
利用低级别特征进行统计分析和纹理细节增强,以防止高级别层次的细节损失。
这两个网络通过巧妙的结构设计和细致的处理过程,实现了在文档图像中去除阴影的目标。 CBENet负责生成高质量的地面真实背景,而BGShadowNet通过利用这一地面真实背景以及其他技术,有效地去除文档图像中的阴影并提高图像的质量。
3.损失函数
我们用于优化所提出的网络的损失函数包含四个组成部分:背景重建损失Lbackground、外观一致性损失Llook、结构一致性损失Lstucture和对抗性损失Ladv。
背景重构损失用于约束CBENet以获得理想的背景图像,它使用CBENet产生的^B与地面真实背景图像B之间的范数1距离,即
外观一致性损失评估预测结果与地面实况图像之间的数据损失,该数据损失以范数1距离计算
其中λ1和λ2是权重参数。Lcoarse是在第一阶段产生的粗结果,Ifree是在第二阶段产生的最终阴影去除结果。
结构一致性损失旨在保留图像结构,其计算为
其中λ3是权重参数,VGG(·)是来自预训练VGG19模型的特征提取器对抗性损失设计用于判别器判断产生的结果是真是假,描述为
其中D是判别器,I是阴影图像。
三、实验结果
首先,使用Pytorch实现了CBENet和BGShadowNet两个网络,并分别进行训练。CBENet首先使用背景真实图像作为监督进行200个epoch的训练,然后固定CBENet的参数,对BGShadowNet进行200个epoch的训练。使用Adam优化器进行生成器和判别器的优化,设置衰减率betas=(0.5, 0.999),初始学习率为0.0004。实验中设置了权重参数λ1、λ2、λ3和λ4分别为1、1、0.05和0.01。
在与其他方法的比较中,使用了RDD数据集和Kligler的数据集进行训练和评估。评估阴影去除性能使用了LAB颜色空间中的均方根误差(RMSE),以及RGB颜色空间中的峰值信噪比(PSNR)和结构相似度指标(SSIM)。与其他方法进行比较时,使用了相同的硬件和RDD数据集对所有基于学习的方法进行训练。比较结果表明,该方法在所有指标上均取得了最佳结果,证明了其有效性。此外,通过提供一些可视化的阴影去除结果,进一步展示了该方法的优越性。与其他方法相比,该方法在处理重影和颜色失真等方面表现更好,并且能够有效恢复阴影区域的光照,而不会产生伪影。最后,进行了用户调查来评估该方法和其他方法的视觉表现。调查结果显示,该方法生成的阴影去除图像被选为最佳无阴影图像的比例最高,证明了其在视觉上的优势和用户的认可度。
四、消融实验
该部分进行了消融实验,以进一步评估BGShadowNet中每个组件的性能。首先,进行了六个变体的消融实验,分别是基准模型BASE1和BASE2,以及去除了特定组件的BGShadowNet变体。实验结果表明,BGShadowNet中的各个组件都对阴影去除结果有所改善,其中包括两个阶段的组件、DEModule和BAModule组件。通过定性结果的展示,进一步证明了BGShadowNet的所有组件可以产生更真实的结果。其次,进行了背景图像的消融实验,验证了空间变化背景的有效性。通过重新构建BGShadowNet和BEDSR-Net,分别使用恒定背景和空间变化背景进行阴影去除。实验结果表明,使用空间变化背景的BEDSRb和使用空间变化背景的BGShadowNet都能获得更好的结果。这表明空间变化背景对于改善阴影去除结果起到了积极的作用。综上所述,消融实验结果进一步验证了BGShadowNet中各个组件的有效性,以及空间变化背景对于阴影去除结果的改善作用。
五、前沿文章与课程的联系
由于论文是关于基于深度学习模型的图像去阴影方法的,我们在这里着重讨论文章与课程第十七周介绍的《卷积神经网络》的相关内容
文章中所涉及的相关课程知识:
1.卷积层 (Convolution Layer, Conv)
卷积操作可以理解为在输入数据的局部区域上应用滤波器(也称为卷积核),通过滑动滤波器来提取局部特征。这有助于网络学习到输入数据中的空间层次结构和模式。在图像处理中,卷积层通常用于检测边缘、纹理等低级特征。
在深度学习中,卷积操作有助于减少参数数量并提取输入数据的局部特征,从而使网络能够学习到更复杂的抽象特征。Convolutional Neural Networks (CNNs) 使用卷积层来处理图像数据,但卷积操作也可以应用于其他类型的数据,如音频和文本。
因为图像一般是二维的,所以给出一个输入大小为5x5,过滤器大小为3x3,步长(stride)为1的例子:
2.池化层 (Pooling Layer)
文章所用到的是Global Average Pooling,一种用于减少特征图尺寸的操作,主要应用于卷积神经网络(CNN)中。与传统的局部池化不同,Global Average Pooling计算整个特征图上每个通道的平均值,生成一个固定大小的特征向量。这有助于降低模型参数数量、减轻过拟合,并提高计算效率。通常用作连接全连接层之前的降维步骤,有助于提取全局特征、减少过拟合风险,以及提高模型的泛化性能。
假设卷积层的最后输出是h×w×d的三维特征图,具体大小为6×6×3,经过GAP转换后,变成了大小为1×1×3的输出值,也就是每一层h×w会被平均化成一个值。
3.批归一化 (Batch Normalization)
批归一化(简称BN)是深度学习中一种常用的技术,旨在加速神经网络的训练并提高模型的稳定性。它的主要思想是对神经网络的输入进行归一化处理,使其在训练过程中保持较稳定的分布。
4.激活函数
激活函数是神经网络中的一种数学操作,用于引入非线性性质,使神经网络能够学习和表示更为复杂的函数关系。在神经网络的每个神经元中,激活函数对输入进行转换,产生输出。
Softmax:
当处理二元分类问题时:
Leaky Rectified Linear Unit(LReLU)
LReLU引入了一个小的负斜率,使得在输入为负时也有一个非零输出,从而避免神经元失活的情况。这种激活函数使得神经网络对于负输入更加鲁棒,有助于提高模型的性能和加速训练
六、总结
在本文中,文章提出了一个CBENet来估计阴影图像的空间变化背景,这可以促进所提出的BGShadowNet执行文档阴影去除。BGShadowNet首先使用background-constrained解码器预测粗略阴影去除结果。然后,在编码器-解码器网络中嵌入一个BAModule和一个DEModule来改进粗略结果,并产生最终的无阴影结果,具有一致的外观和丰富的细节纹理。将BGShadowNet与最先进的方法进行比较的实验证明了它的优越性。虽然BGShadowNet可以有效地去除文档图像中的阴影,但是当图像被强噪声破坏时,阴影去除结果可能包含一些残余噪声,导致与周围环境的不均匀照明。
七、相关资源
论文:
Document Image Shadow Removal Guided by Color-Aware Background (thecvf.com)
代码: