Restormer: Efficient Transformer for High-Resolution Image Restoration

Restormer: Efficient Transformer for High-Resolution Image Restoration_第1张图片

这个模型是transfomer应用在底层图觉任务的经典例子。像SR、图像修复、去模糊、去噪、低光照图像质量增强等领域,由于输入和输出都是图片,一旦图片尺寸较大,transformer的运行内存消耗就会极大,所以一般的transformer并不适用于这些任务。而Restormer进行训练修改,并在多个底层视觉任务上取得了SOTA。

  • 文章三个贡献:
    • Restormer
    • MDTA
    • GDFN
  • 此外还有个值得借鉴的训练策略,即随着训练的迭代,先用小 patch 大 batch,慢慢增加patch size 减小 batch size。大batch可以减少震荡加快收敛,后面的大patch可以进一步提高性能
  • 网络结构如下图所示,整体上采取Unet的结构:
    Restormer: Efficient Transformer for High-Resolution Image Restoration_第2张图片

MDTA

  • 两个要点,一是通道之间算注意力,来表示全局信息;第二是深度分离卷积
    Restormer: Efficient Transformer for High-Resolution Image Restoration_第3张图片
  • 如图,前面的特征分布送进三条分支来算QKV,算QKV就是简单地先一个1x1卷积再一个深度分离3x3卷积,然后不同于ViT的是此时不是对每个像素算其它像素的注意力,而是对每个通道算其它通道的注意力,得到的注意力图是对V的通道做的,其实好像也没什么新东西,通道注意力老早之前就有人做了。
  • 然后multi-head的部分这里没有体现出来,就是把输入的特征在通道上分成几个特征图,比如如果是四头注意力,输入是64通道,那就是分成4个16通道的特征图,各自做上面这个注意力,也是很显而易见的。

GDFN

  • 其实就是分成两个支路,得到的特征图element-wise地相乘,如图
    Restormer: Efficient Transformer for High-Resolution Image Restoration_第4张图片
  • 这三个梯形的1x1其实就是1x1的卷积,只不过前面两个把通道数增加了,后面那个把通道数恢复了。中间的曲线是GELU激活函数。

总结

Restormer其实不能算严格意义上的transformer,我认为更像是在一个普通的unet结构的卷积神经网络上,加了通道注意力,并把卷积修改为深度可分离卷积,这两个刚好般配,所以得到了比普通的卷积神经网络好的效果。当然除了这两个修改还有GDFN的特征图相乘操作以及progressive的训练策略。restormer效果好也不代表transformer攻陷了底层视觉任务,本质上restormer的主要组成结构还是卷积神经网络的。而且看消融实验,这些改进相比UNet结构的卷积神经网络,并没有本质上的性能提升:
Restormer: Efficient Transformer for High-Resolution Image Restoration_第5张图片

你可能感兴趣的:(论文阅读笔记,transformer,深度学习,计算机视觉)