(T-CE: IEEE TRANSACTIONS ON CONSUMER ELECTRONICS)

S2^22Net: Shadow Mask-Based Semantic-Aware Network for Single-Image Shadow Removal

背景

阴影去除方法分析
基于深度学习
有先验:基于无阴影Ground Truth
无先验:使用GAN等方法直接得到
通过图像分解或曝光估计来去除阴影
半监督学习,通过部分label data训练阴影分割网络
然后对unlabel data获得shadow mask
再基于mask获得辅助信息,提高识别能力
DHAN:端到端mask预测+阴影去除

本文贡献

本文贡献
当前问题
S2Net
设计了基于Mask的端到端语义感知网络S2Net
提出了一种基于Mask的语义变换(SST)算子用于特征提取
设计了一个精炼模块来去除阴影痕迹
设计了一种新的边界损失来消除阴影边界上的伪影
四个数据集上进行大量实验,证明S2Net在定性和定量方面都优于现有的方法
阴影区域的颜色不一致
阴影边界上的伪影
Shadow Mask-Based Semantic-Aware
Network for Single-Image Shadow Removal

网络结构

基于shadow-mask的语义感知网络

image-20220827163730804

IsI_sIs:输入的阴影图像

ImI_mIm:实际的阴影mask

III:实际的无阴影图像

I^\widehat II ​:预测的去阴影图像

Backbone:11个堆叠的SDR

语义引导的扩展残差网络(SDR: Semantic-Guided Dilated Residual Block)

SDR的设计目的是为了保存和传播shadow-mask的先验知识。每个块由扩展卷积层->ReLu->扩展卷积层->SST->ReLu,最后送入SFF(Softmax feature fusion ),其分别收集11个SDR的输出,用来精细的融合重建。

扩展卷积用来增大感受野,提高表征能力,在网络中被设计为{1,1,2,2,4,8,4,2,2,1,1}

SST操作则用来合并shadow-mask的空间信息,公式如下:FFF表示输入特征图,MMM表示下采样mask,⊙\odot表示矩阵Hadamard积运算
HSST(F,M)=F⊙(1−M)+C(F,M)⊙M \mathcal{H}_{\mathrm{SST}}(F, M)=F \odot(1-M)+\mathcal{C}(F, M) \odot M HSST(F,M)=F(1M)+C(F,M)M
HSST\mathcal{H}_{\mathrm{SST}}HSST由两部分组成,第一部分保持非阴影区域特征不变,第二项则用来提取阴影区域,其中C(F,M)\mathcal{C}(F, M)C(F,M)表示为:
C(F,M)=(1−β)⊙FS+β⊙C∗(F,M) \mathcal{C}(F, M)=(1-\beta) \odot F_{S}+\beta \odot \mathcal{C}^{*}(F, M) C(F,M)=(1β)FS+βC(F,M)
C(F,M)\mathcal{C}(F, M)C(F,M)设计的直观原因,是因为希望去阴影后的图片Mask区域应该与非阴影区域别无二致。这里β\betaβ表示的是可学习的空间注意力权重,FS=F⊙MF_S=F\odot MFS=FMC∗\mathcal{C}^*C表示为:
C∗(F,M)=μN+σNFS−μSσS \mathcal{C}^{*}(F, M)=\mu_{N}+\sigma_{N} \frac{F_{S}-\mu_{S}}{\sigma_{S}} C(F,M)=μN+σNσSFSμS
为了达到两区域相同的效果,C∗(F,M)\mathcal{C}^{*}(F, M)C(F,M)确保两区域有相似的均值和方差

μN\mu_{N}μNσN\sigma_{N}σN分别表示为非阴影区域特征的加权均值和标准差;μS\mu_{S}μSσS\sigma_{S}σS分别表示为阴影区域特征的加权均值和标准差,它们的权重分别为MMM1−M1-M1M

最后的SFF空间注意力模块,通过对特征图应用GAP和MP,将结果串联并送入7×77 \times 77×7卷积网络,接sigmoid函数获得β\betaβ

精炼模块(Refinement Block)

image-20220827181611439

设计一个精炼模块用来进一步的消除特征提取阶段遗留的不一致性和伪影,其结构如上图所示。不使用同样的卷积核权值,而是根据Mask的信息学习调制两区域不同的权值。

FFFMMM进行合并,提取Mask内的原图信息,然后经过3×33\times33×3卷积,再将生成的通道ccc分成ggg组,并应用核大小为kkk的组卷积。通过分组卷积操作用来建立空间像素信息与通道组间的关系,与直接使用不同通道的核方法对比,这样可以显著降低计算开销。这一部分过程如下:

image-20220827200213842

最后依据公式将两者合并:

Zi,j,t=∑(u,v)∈ΩWi,j,tu,v⋅Fi+u,j+v,t, Z_{i, j, t}=\sum_{(u, v) \in \Omega} W_{i, j, t}^{u, v} \cdot F_{i+u, j+v, t}, Zi,j,t=(u,v)ΩWi,j,tu,vFi+u,j+v,t,

损失函数

文章共使用了四种损失:像素损失、感知损失、颜色一致性损失、边界损失

像素损失(Pixel Loss):使用L1L_1L1距离来度量
Lpix=1N∑i=1N∥Ii−I^i∥1 \mathcal{L}_{\mathrm{pix}}=\frac{1}{N} \sum_{i=1}^{N}\left\|I^{i}-\hat{I}^{i}\right\|_{1} Lpix=N1i=1N IiI^i 1
感知损失(Perceptual Loss):参照DHAN论文,现利用预训练网络VGG16提取IIII^\hat{I}I^的特征图,再计算其L2L_2L2距离
Lper=1N∑i=1N∥VGG(Ii),VGG(I^i)∥22 \mathcal{L}_{\mathrm{per}}=\frac{1}{N} \sum_{i=1}^{N}\left\|V G G\left(I^{i}\right), V G G\left(\hat{I}^{i}\right)\right\|_{2}^{2} Lper=N1i=1N VGG(Ii),VGG(I^i) 22
颜色一致性损失(Color Consistency Loss):为了校正阴影去除图像中潜在的颜色偏差,表示如下,CRC_RCRCGC_GCGCBC_BCB分别表示三通道平均强度值
Lcol=1N∑i=1N[(CRi−CGi)2+(CRi−CBi)2+(CGi−CBi)2] \mathcal{L}_{\mathrm{col}}=\frac{1}{N} \sum_{i=1}^{N}\left[\left(C_{R}^{i}-C_{G}^{i}\right)^{2}+\left(C_{R}^{i}-C_{B}^{i}\right)^{2}+\left(C_{G}^{i}-C_{B}^{i}\right)^{2}\right] Lcol=N1i=1N[(CRiCGi)2+(CRiCBi)2+(CGiCBi)2]
边界损失(Boundary Loss):使用K×KK\times KK×K均值滤波器和shadow-mask ImI^mIm卷积,得到平滑Mask M^\hat{M}M^。而由于边界部分混合了阴影和非阴影,对于边界像素使用如下函数表示,使其计算值处于M^min\hat{M}_{min}M^minM^max\hat{M}_{max}M^max之间。
w(u,v)={M^max⁡−M^(u,v),(M^(u,v)>M^max⁡/2)M^(u,v),(M^(u,v)≤M^max⁡/2) w(u, v)=\left\{\begin{array}{ll} \hat{M}_{\max }-\hat{M}(u, v), & \left(\hat{M}(u, v)>\hat{M}_{\max } / 2\right) \\ \hat{M}(u, v), & \left(\hat{M}(u, v) \leq \hat{M}_{\max } / 2\right) \end{array}\right. w(u,v)= M^maxM^(u,v),M^(u,v),(M^(u,v)>M^max/2)(M^(u,v)M^max/2)
这样最终的边界损失定义为:
Lbd=1N∑i=1N∑p∈Im′,i∑q∈Ω(p)(∣Iqij−Ipij∣−∣I^qi−I^pi∣)2×wp′iIm′,i \mathcal{L}_{\mathrm{bd}}=\frac{1}{N} \sum_{i=1}^{N} \frac{\sum_{p \in I^{m^{\prime}, i}} \sum_{q \in \Omega(p)}\left(\left|I_{q}^{i j}-I_{p}^{i j}\right|-\left|\hat{I}_{q}^{i}-\hat{I}_{p}^{i}\right|\right)^{2} \times w_{p}^{\prime i}}{I^{m^{\prime}, i}} Lbd=N1i=1NIm,ipIm,iqΩ(p)( IqijIpij I^qiI^pi )2×wpi
全局损失的合成为:
Lall =λpix Lpix +λper Lper +λcolLcol+λbdLbd \mathcal{L}_{\text {all }}=\lambda_{\text {pix }} \mathcal{L}_{\text {pix }}+\lambda_{\text {per }} \mathcal{L}_{\text {per }}+\lambda_{\mathrm{col}} \mathcal{L}_{\mathrm{col}}+\lambda_{\mathrm{bd}} \mathcal{L}_{\mathrm{bd}} Lall =λpix Lpix +λper Lper +λcolLcol+λbdLbd

实验结果

数据集和评价标准

ISTD、ISTD+、SRD、SBU(无Ground truth,仅测试)

使用Lab颜色空间中的均方根误差(RMSE)来评估阴影去除性能,使用S、NS和ALL分别表示阴影区域、非阴影区域和整幅图像的RMSE值,越小去除效果越好。同时PSNR和SSIM也用来进行评价,它们是越大越好。

消融实验

分别验证SDR块的和精炼模块的效果:

image-20220827201438476

image-20220827202345756

精炼模块中核大小的实验结果:

image-20220827201543989

边界损失核大小的实验结果:

image-20220827201609674

边界损失中的局部变化区域调整实验结果:

image-20220827201732232

损失函数效果展示:

image-20220827202507690

和State-of-the-Art方法比较

ISTD数据集

image-20220827202642589

image-20220827202551817

ISTD+数据集

image-20220827202730687

image-20220827202748724

SRD数据集

image-20220827201924453

image-20220827202834216

SBU数据集

image-20220827202928038

使用不同的shadow-mask

比较不同的获得shadow-mask的方法:

image-20220827202249767

image-20220827203126182

即使使用其它的生成方法作为shadow-mask的来源,与这些方法使用GT做shadow-mask进行比较,可以发现依然有明显的进步:

image-20220827203547461

Logo

聚焦前沿AI与大模型技术探索,汇聚开发者及爱好者,共享开源项目、学习资源与行业资讯。

更多推荐