Memory augment is All You Need for image restoration 论文翻译

CVPR2023 MemoryNet  记忆增强是图像恢复所需要的一切

论文地址https://arxiv.org/abs/2309.01377

摘要

        图像恢复是一个低层次的视觉任务,大多数CNN方法被设计为一个黑盒子,缺乏透明度和内部美学。虽然已经提出了一些将传统优化算法与DNN相结合的方法,但它们都有一定的局限性。在本文中,我们提出了一个三粒度的记忆层和对比学习称为MemoryNet,具体来说,将样本分为积极的,消极的,和实际的三个样本进行对比学习,其中记忆层能够保持图像的深层特征,对比学习收敛学习的特征,以平衡。在Derain/Deshadow/Deflur任务上的实验表明,这些方法能有效地提高恢复性能。此外,本文的模型在三种不同退化类型的数据集上都获得了显著的PSNR、SSIM增益,这有力地证明了恢复的图像是真实感的。

目录

一.介绍

二.实际工作

A.图像阴影去除

B.图像去雨

C.存储模块的开发

三.网络结构

A.内存扩充

B.损失函数设计

四.实验

A.与最先进方法的比较

B.MemoryNet消融研究

五.结论

一.介绍

        图像恢复是一个低层次的视觉任务,它指的是退化图像的恢复。近年来,计算机视觉技术的飞速发展使得越来越多的图像退化任务成为可能,包括超分辨率、单幅图像去雾、图像去阴影、图像去雨等。

        图像复原是一个非常令人不安的问题,因为存在无限多的可行解。图像先验用于[1]-[7]将解空间限制为有效/自然图像。然而,设计这样的先验是一项具有挑战性的任务,并且通常不能推广。为了改善这个问题,最近的最先进的方法[8]-[16]采用卷积神经网络(CNN)通过捕获自然图像来隐式地学习更一般的先验大规模数据统计。基于CNN的方法的模型设计是其性能优于其他方法的主要原因。随着生成对抗网络的成功,已经引入了一些用于失真图像恢复的生成模型,例如图像修复[17]-[21],图像阴影去除[22],图像雨去除[26],[28]和图像云去除[27]。以图像去阴影为例,这些方法将失真恢复问题归结为寻找合适的变形和预测稠密网格,取得了较好的效果。然而,现有的努力主要集中在模型的结构,一个机会,被广泛忽视的是记忆学习方法。

        我们认为图像恢复研究存在两个问题:第一,当模型收敛时,暴露出一个局限性问题:性能不能显著提高,此时模型仍然饱和。出乎意料的是,这些限制不能通过简单地添加更多层来解决。事实上,当训练数据集给定时,它的分布是客观的和固定的。出乎意料的是,这些限制不能通过简单地添加更多层来解决。

        因此,如何在保持原有底层网络不变的情况下,让网络学习到更多的潜在信息,是一个非常难解决的问题。第二,阴影去除不像图像修复,整个区域都是白色阴影,它必须在保留原始图像特征的情况下对半暗区域进行某些操作,这很难实现,因为需要考虑阴影区域下的真实的图像信息。因此,我们设计了MemoryNet,具体分为记忆增强和对比学习。一方面,为了解决上述第一个问题,本文引入了一个新的记忆增强模块,MA(记忆增强)额外建模一个可学习的潜在属性变量,以记住代表性结构的原型模式在一个全球范围内,通常涵盖了不同的身份样本。通过预测增加这种记忆可能性,可以增加模型对未见过类的置信度。MA还传达了从先前查看的样本中学习到的额外域级低频信息,用于协作决策,避免了类似GAP的语义抽象。为了获得更多的细节,我们通过阅读内存来重新收集特征到预定义的由粗到细的原型索引中以进行进一步的相似性度量。与在两幅图像中搜索相关的区分区域不同,这种原型对齐是轻量级的,类似于多级哈希。记忆增强网络很好地增强了图像去阴影的应用效果,证明了它在消融研究中的有效性。另一方面,为了解决第二个问题,我们设计了一个弱监督学习的对比学习网络,如图2所示。我们将图像去阴影任务定义为一个三级分类问题,对应于正样本(干净样本),标准样本(去阴影样本)和负样本(阴影样本),全局特征作为锚点,使模型能够区分全局特征和局部特征是否来自同一图像。因此,对比学习通过对比学习上边界和下边界将锚定图像约束为闭合图像,这有助于恢复网络接近正图像,同时避免负图像。        

        我们在图像去阴影/图像去雨/图像去模糊三个任务上进行了大量的实验,都取得了令人满意的结果。本文的结果如图1所示。这项工作的主要贡献是:

        1)在本文中,一个新的端到端的网络名为MemoryNet的图像恢复,它产生的上下文丰富和空间准确的输出。

        2)在本文中,我们设计了一种新的记忆增强层,它模拟一个可学习的潜在属性变量,以记住全局代表性的结构原型模式。

        3)我们对三个典型的图像恢复任务进行了广泛的实验,即,合成图像去阴影,真实的图像去噪,图像去模糊,表明我们提出的MemoryNet取得了很大的效果,同时保持了有吸引力的计算复杂度。此外,我们提供详细的消融研究,定性结果和泛化测试。

Fig. 1.MemoryNet的图像阴影去除和图像去重的结果

图2.MemoryNet的结构,分为记忆增强网络和对比学习。

二.实际工作

A.图像阴影去除

        虽然本文的主要贡献是提出了一个数据集SRD,但D

### 图像增强技术概述 图像增强技术旨在通过对原始图像施加一系列变换,使得训练集中的数据量增加并提高模型泛化能力。这些方法通常用于解决过拟合问题以及提升模型性能[^2]。 #### 概率变换 Probability Transformation 概率变换涉及对输入图片执行随机操作,如改变其亮度、色度、对比度和饱和度等属性。具体来说: - **亮度调整**:通过修改像素强度分布来使图像变亮或变暗。 - **色度调节**:影响颜色鲜艳程度的操作。 - **对比度控制**:扩大或缩小不同区域之间的差异。 - **其他几何变化**:包括但不限于旋转、缩放和平移等功能。 ```python import cv2 import numpy as np def apply_probability_transformation(image_path): img = cv2.imread(image_path) # 随机调整亮度 brightness_factor = np.random.uniform(-30, 30) hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) h, s, v = cv2.split(hsv_img) lim = 255 - brightness_factor v[v > lim] = 255 v[v <= lim] += brightness_factor.astype('uint8') final_hsv = cv2.merge((h, s, v)) brightened_image = cv2.cvtColor(final_hsv, cv2.COLOR_HSV2BGR) return brightened_image ``` #### 对比增强 Contrast Enhancement 为了改善视觉质量或者突出某些特定部分,在预处理阶段经常采用直方图均衡化等方式来进行对比度增强。这有助于强调细节特征而不至于让整个画面显得过于平淡无奇。 ```python from skimage import exposure def enhance_contrast(image_array): equalized_hist = exposure.equalize_adapthist(image_array, clip_limit=0.03) enhanced_image = (equalized_hist * 255).astype(np.uint8) return enhanced_image ``` #### 噪声添加 Noise Addition 向现有样本中引入适量的人工制造的干扰因素——即所谓的“噪声”,可以帮助网络更好地适应真实世界条件下的不确定性情况。常见的有高斯白噪点、椒盐型杂音等形式。 ```python def add_noise(image_matrix): row,col,ch= image_matrix.shape mean = 0 var = 0.1 sigma = var**0.5 gauss = np.random.normal(mean,sigma,(row,col,ch)) noisy_image = image_matrix + gauss return noisy_image.clip(0., 255.).astype(np.uint8) ``` #### 数据扰动 Data Deformation 此类手段主要针对形状上的变动,例如扭曲变形、仿射变换之类的非线性映射关系。它们能够创造出形态各异的新实例,进而丰富原有集合的内容构成。 ```python import random from scipy.ndimage.interpolation import affine_transform def deform_data(image_tensor): theta = [-random.randint(-45, 45)] # Rotation angle between -45° and 45°. tx = ty = 0 # Translation offsets set to zero here. matrix = [ [np.cos(theta), -np.sin(theta), tx], [np.sin(theta), np.cos(theta), ty] ] deformed_image = affine_transform(image_tensor, matrix[:2], mode='nearest') return deformed_image ``` #### 彩色空间转换 Color Space Transformations 考虑到不同的色彩表示法各有优劣之处,有时会考虑跨域映射至另一种模式下再实施相应的优化措施。然而需要注意的是,过度依赖于此可能会带来负面效应,比如丢失掉重要的识别线索等等[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值