Gated Context Aggregation Network for Image Dehazing and Deraining(GCANet)

GCANet通过端到端学习去除图像雾气,利用平滑空洞卷积和门限子网络融合不同层级特征,达到SOTA性能。文章还探讨了传统先验方法与深度学习方法的区别,以及GCANet在去雨任务中的应用。

1 总体概述

GCANet是端到端去雾的一篇代表性的文章,它摒弃以往使用手工设计的先验以及大气散射模型的使用,直接通过原始有雾图像估计出无雾图像J与有雾图像I之间的残差,图像恢复阶段直接使用网络输出的残差与输入有雾图像I之间的加和完成去雾过程。

文章本身最大的贡献:
1、借鉴并使用了平滑空洞卷积消除以往空洞卷积存在的网格伪影以及特征相关性不强的问题,提出了一个门限子网络,用于依据不同level的特征的权重进行特征加权融合
2、GCANet达到当前的SOTA,并且使用消融试验对不同模块重要性进行了分析
3、GCANet应用到去雨任务中依然获得了SOTA

2 灵感来源

之前的研究者利用扩张卷积来聚合上下文信息,可以获得更加细腻和准确的结果,主要原因是扩张卷积不损失分辨率,但是他也存在一些问题,比如网格伪影,远距离信息没有相关性。因此也有很多人去尝试改进上述问题,比如使用平滑空洞卷积来消除网格伪影;也有人使用不同level的特征图进行融合获得更好的去雾效果;也有使用使用gated fusion module ,但是它是直接使用原始图的拷贝而非中间所获取的特征图;GCANet借鉴了上述思想,使用了扩张卷积,借鉴了smooth 扩张卷积消除伪影,借鉴了融合特征图的思路,提出了一个门限子网络用于辨析不同level特征图的重要性

3 现有工作分析

去雾分为两种,其一是基于传统先验知识的去雾,其二是基于学习的方式, 区别就是第一种方案通过手工获取的先验知识在第二钟方案是通过学习获取

传统方案去雾
1、基于暗通道先验以及其对应的优化方案
2、最大对比度
3、颜色衰减先验等

深度学习去雾
1、使用端到端的深度学习方式,利用多尺度网络预测透射率图,但是透射率图估计的不准确导致去雾结果较差
2、将全局大气光值A以及透射率参数融合为一个参数,使用轻量级的网络进行预测
3、也有使用两个子网络分别预测全局大气光值A以及透射率参数,并依据大气散射模型进行图像去雾的

4 本文GCANet方法

在这里插入图片描述整体架构是:首先使用编码模块将输入的有雾图像编码为特征;接着通过聚合上下文信息以及融合不同level的特征强化编码特征(主要使用平滑空洞卷积以及特殊设计的门限子网络);最后使用一个解码网络将特征映射回原图空间,并加上原始图就可以获取最终的去雾图像

4.1 Smoothed Dilated Convolution

什么是网格伪影?
在这里插入图片描述
由上图可知,最右边的这一幅特征图中的红蓝绿黄色四种小点来自于之前特征层对应颜色的独立特征,特征之间没有交互,没有融合,导致最终获取的当前层的特征的之间没有相关性可言,造成局部信息丢失,这对于pixel_level的预测来说是极其致命的。

消除网格伪影有两种方式,第一种是在使用空洞卷积之前,使用共享可分离卷积先进行特征之间的融合;另一种方式是在卷积后特征整合之前,使用类似于shuffleNet一样的方式进行特征交互,具体可以参考如下链接:总结-空洞卷积(Dilated/Atrous Convolution)

本文采用第一种方式完成空洞卷积的网格效应消除

class ResidualBlock(nn.Module):
    def __init__(self, channel_num, dilation=1, group=1):
        super(ResidualBlock, self).__init__()
        self.conv1 = nn.Conv2d(channel_num, channel_num, 3, 1, padding=dilation, dilation=dilation, groups=group,
                               bias=False)
        self.norm1 = nn.InstanceNorm2d(channel_num, affine=True)
        self.conv2 = nn.Conv2d(channel_num, channel_num, 3, 1, padding=dilation, dilation=dilation, groups=
### Suppress and Balance算法概述 显著性物体检测旨在识别图像中最吸引人类视觉注意力的部分。Suppress and Balance (S&B) 提出了一个简单的门控网络来实现这一目标[^1]。 #### 网络结构设计 该方法通过引入抑制机制和平衡机制,有效地增强了模型对于前景对象的关注度并削弱背景干扰。具体来说: - **特征提取层**:利用预训练的卷积神经网络作为骨干网,用于获取输入图片多尺度下的深层语义表示。 - **侧向连接模块**:为了融合不同层次的空间细节信息,在各个阶段之间建立了横向跳跃链接,使得低级纹理与高级抽象概念得以有机结合。 - **门控单元**:这是整个架构的核心部分之一,由两个分支构成——增强支路负责放大潜在的目标区域;而抑制路径则专注于消除不重要的元素影响。两者共同作用于最终预测图之前,从而达到突出重要部位的效果。 ```python import torch.nn as nn class GateUnit(nn.Module): def __init__(self, in_channels): super(GateUnit, self).__init__() self.enhance_conv = nn.Conv2d(in_channels, in_channels, kernel_size=3, padding=1) self.suppress_conv = nn.Conv2d(in_channels, in_channels, kernel_size=3, padding=1) def forward(self, x): enhance_branch = F.relu(self.enhance_conv(x)) suppress_branch = F.sigmoid(self.suppress_conv(x)) output = enhance_branch * suppress_branch return output ``` #### 技术特点分析 - **自适应加权策略**:通过对每个像素位置计算权重系数来自定义调整其贡献程度,确保了更加精准的对象定位能力。 - **端到端学习框架**:整个过程可以在统一优化过程中完成参数估计工作,无需额外的手动标注辅助材料支持。 - **高效性能表现**:实验结果显示,这种方法不仅能够取得较高的查准率/召回率指标得分,而且运行速度也相当可观,适用于实时应用场景需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小花猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值