项目地址:
GitHub - swz30/MIRNet: [ECCV 2020] Learning Enriched Features for Real Image Restoration and Enhancement. SOTA results for image denoising, super-resolution, and image enhancement.GitHub - soumik12345/MIRNet: Tensorflow implementation of MIRNet for Low-light image enhancement
论文地址:https://arxiv.org/pdf/2003.06792
应用:defocus deblurring, image denoising, super-resolution, and image enhancement.
期刊:ECCV 2020/TPAMI 2022
概述
背景如下:
1. 图像复原领域被CNN统治
2.CNN使用全分辨率,或者是渐进的低分辨率full-resolution or on progressively low-resolutionrepresentations。前者是单一尺度的,而后者一般是编码器-解码器结构。
3.空域信息spatial details和上下文语义信息不可兼得
从四个方面解决:
1.多尺度特征提取,但是是并行进行的。
2.多尺度间的信息交换
3.非局部attention
4.基于attention的多尺度信息集成
(a) parallel multi-resolution convolution streams for extracting multi-scale features,
(b) information exchangeacross the multi-resolution streams,
(c) non-local attention mechanism for capturing contextual information,
(d) attention basedmulti-scale feature aggregation.
Multi-Scale Residual Block(MRB)
图像复原任务是与位置信息高度相关的,需要分辨哪些是退化后的内容,哪些是真正的纹理线条。这就需要更大的感受野,或者在更小分辨率上提取特征。所以多尺度仍然是必需的。
但不同于之前encoder-decoder,MIRnet的结构是由MRB模块堆叠得到的。始终有一路高分辨率的stream。
MRB在v1和v2上略有区别:
以v1为例,观察MRB有如下特点:
首先是三条并行的特征提取stream,不同stream负责同一图像的不同分辨率;
每条stream都经历了DAU->SKFF->DAU;
每条stream在DAU之后都被上采样后者下采样,然后经SKFF进行融合;
x1 stream是主干,最后其他stream都被汇集到x1中。
Residual Contextual Block(RCB)
框架中的绿色部分。在MIRnet-v2中使用RCB代替了dual attention unit (DAU).
RCB整体是一个残差结构:
是原始特征图,相比于标准卷积,使用了更为高效的group convolution,这样每个filter可以得到更加独特的特征。
CM表示Context module,包括三部分。第一部分Modeling把HxWxC的特征图转换为1x1xC。Transform则是两次1x1卷积,增强通道之间的通信。Fusion则是对每个通道加一个不一样的常数。最后,CM之后的再和进行求和。
selective kernel feature fusion (SKFF)
对应前面MRB图中紫色的部分。它接在绿色的RCB部分后面,是对已经提取到的多尺度特征进行信息交换和融合。
实际上是受到了南京科技大学Selective Kernel Networks的启发。先看SKnet的结构:
在SKNet中包含三个操作:Split, Fuse and Select。split阶段提供了两种卷积核的特征图;fuse把两种特征图对应像素相加,然后求全局池化,每个通道得到一个数值,再经过全连接,得到更短的一个数组。但为了得到原始长度为c的权重,需要再次通道升维,升维也使用两种卷积核,这样再次变为两个分支,然后两个分支在每个通道对应位置求softmax,得到权重,对最开始的两种特征图做加权求和。
而对于MIRnet的两个stream,已经是两种scale的特征图了,所以可以省略掉split:
SKFF相比于cancate省却了5x的参数量,但是可以得到更好的特征表达。
Progressive Training Regime
patch更大时,CNN可以捕获得到更好的特征,但是训练速度也会更慢。所以可以在训练前期使用较小的patch,在后期逐步加大。具体是从128大小的patch开始,一直加大到144, 192, and 224.
reference:
MIRNet重磅升级!MIRNetV2 更快、更强、更轻量-腾讯云开发者社区-腾讯云