Towards Ghost-free Shadow Removal via Dual Hierarchical Aggregation Network and Shadow Matting GAN

Towards Ghost-free Shadow Removal via Dual Hierarchical Aggregation Network and Shadow Matting GAN论文笔记

论文总体思路:

1.由于阴影和无阴影图像共享相同的语义信息,阴影去除网络需要专注于低级特征,因此我们以图像处理网络为起点。相比传统的encoder/decoder需要下采样(导致对不齐,进而引起边缘伪影),使用图像处理网络可以保证位置精度。
2.通过mask指导注意力模型,用于专门学习阴影区域(完美的将shadow detection融合到shadow removal任务中)。多层次聚合利用了多尺寸度特征和先前的特征(特征重用),膨胀卷积有助于保留细节。
3.我们观察到:当mask移动时,单个无阴影图像可以产生无数的阴影图像。因此我们可以训练网络从相应的mask和无阴影图像合成阴影图像,用于增强数据集,解决颜色不一致问题。
参考资料如下:
Towards Ghost-Free Shadow Removal via Dual Hierarchical Aggregation Network and Shadow Matting GAN总结

下面的几个参考论文是Towards Ghost-Free Shadow Removal via Dual Hierarchical Aggregation Network and Shadow Matting GAN论文中参考的主要方法出处!!!

Fast Image Processing with Fully-Convolutional Networks(基于全卷积网络的快速图像处理)

加快图像处理的通用方法是:下采样-在低分辨率下执行应用算子-上采样。缺点在于,第一,有些应用算子即使在低分辨率下运行也一样很慢;第二,在低分辨率下执行应用算子,会导致图像的高频内容可能无法正确建模。基于这两大缺点,文章作者针对下采样部分进行了改进,也可以说是没有进行下采样,针对第二点缺点, 文章中直接在全分辨率下进行图像操作,经过端对端训练,最大限度的提高精度;而针对第一点缺点 ,文章采用全卷积网络,让该网络在输入输出对上进行训练,经过训练后让网络代替原来的算子(近似算子,原算子无需运行)。
具体操作参考如下资料:
基于全卷积网络的快速图像处理
其中上面提到的全卷积网络基于Context aggregation networks(CAN),CAN模型,不会丢失分辨率,也不会联合多个预测去得到最后的分割图。这个模型是基于空洞卷积的,它在保证分辨率的情况下(就是不进行下采样),能够极大的扩大感受野(感受野的大小可以决定单个像素点能够参考周围的多少信息从而决定自身label)。

具体参考博文如下:
Multi-scale context aggregation by dilated convolutions——通过膨胀卷积进行多尺度上下文信息的聚合

Deep Layer Aggregation

本文将聚合aggregation定义为跨越整个网络的不同层之间的组合。在这篇文章中,作者团队把注意力放在一族可以更有效的聚合深度、分辨率和尺度的网络。本文将可以组合的、非线性的、最先聚合的层可以通过多次聚合在整个网络中传递的结构称为深度可聚合的。

由于网络可以包含许多层和连接,模组化设计可以通过分组与复制来克服网络过于复杂的问题。层组合为块,块根据其特征分辨率组合成层级。本文主要探讨如何聚合块与层级(换句话说层级间的网络保持一致的分辨率,而语义融合一般发生在层级内,空间融合一般发生在层级间)。
参考资料如下:
Deep Layer Aggregation总结
结合Deep Layer Aggregation原文看

解读Squeeze-and-Excitation Networks(SENet)特征聚合

SEblock
图1是SENet的Block单元,图中的Ftr是传统的卷积结构,X和U是Ftr的输入(C’xH’xW’)和输出(CxHxW),这些都是以往结构中已存在的。SENet增加的部分是U后的结构:对U先做一个Global Average Pooling(图中的Fsq(.),作者称为Squeeze过程),输出的1x1xC数据再经过两级全连接(图中的Fex(.),作者称为Excitation过程),最后用sigmoid(论文中的self-gating mechanism)限制到[0,1]的范围,把这个值作为scale乘到U的C个通道上, 作为下一级的输入数据。这种结构的原理是想通过控制scale的大小,把重要的特征增强,不重要的特征减弱,从而让提取的特征指向性更强。下面来看下SENet的一些细节:
先是Squeeze部分。GAP有很多算法,作者用了最简单的求平均的方法(公式1),将空间上所有点的信息都平均成了一个值。这么做是因为最终的scale是对整个通道作用的,这就得基于通道的整体信息来计算scale。另外作者要利用的是通道间的相关性,而不是空间分布中的相关性,用GAP屏蔽掉空间上的分布信息能让scale的计算更加准确。
公式:squeeze的计算
Excitation部分是用2个全连接来实现 ,第一个全连接把C个通道压缩成了C/r个通道来降低计算量(后面跟了RELU),第二个全连接再恢复回C个通道(后面跟了Sigmoid),r是指压缩的比例。作者尝试了r在各种取值下的性能 ,最后得出结论r=16时整体性能和计算量最平衡。
为什么要加全连接层呢?这是为了利用通道间的相关性来训练出真正的scale。一次mini-batch个样本的squeeze输出并不代表通道真实要调整的scale值,真实的scale要基于全部数据集来训练得出,而不是基于单个batch,所以后面要加个全连接层来进行训练。可以拿SE Block和下面3种错误的结构比较来进一步理解:
图2最上方的结构,squeeze的输出直接scale到输入上,没有了全连接层,某个通道的调整值完全基于单个通道GAP的结果,事实上只有GAP的分支是完全没有反向计算、没有训练的过程的,就无法基于全部数据集来训练得出通道增强、减弱的规律。
图2中间是经典的卷积结构,有人会说卷积训练出的权值就含有了scale的成分在里面,也利用了通道间的相关性,为啥还要多个SE Block?那是因为这种卷积有空间的成分在里面,为了排除空间上的干扰就得先用GAP压缩成一个点后再作卷积,压缩后因为没有了Height、Width的成分,这种卷积就是全连接了。
图2最下面的结构,SE模块和传统的卷积间采用并联而不是串联的方式,这时SE利用的是Ftr输入X的相关性来计算scale,X和U的相关性是不同的,把根据X的相关性计算出的scale应用到U上明显不合适。
图2.三种错误的SeBLOCK
参考原文如下:
解读Squeeze-and-Excitation Networks(SENet)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值