阅读论文“Learning Sparse Masks for Efficient Image Super-Resolution”

   2020 CVPR,思路和class SR思路相同,将图像分成高频和低频区域分别进行处理,实现加速效果。

之前方法的问题

对于平坦区域,使用大网络进行处理是冗余的,使用小网络处理即可。

论文提出的点

1.学习空间mask去得到包含纹理边缘的重要区域,以及通道mask去得到对于非重要区域的冗余通道。
2.在训练时,使用Gumble softmask去使得二值化的masks进行处理。在inference时,使用sparse卷积跳开冗余的通道。

论文提出的方法

论文整体方法图如下所示:

1.训练时,对于空间mask,使用Gumbel softmask trick, 对于通道mask也是使用相同的操作,这样可以使得得到的mask是一个soften的结果。测试时,Gumbel mask被替换成softmax,从而使得生成的mask变成二值化的结果。特别的,在这里施加一个稀疏正则约束,保持mask的稀疏性。
Mask处理阶段如下图所示:

2.在训练阶段,先进行通道mask,分出重要的通道和不重要的通道,然后对重要通道中的重要区域和非重要通道再加上空间mask。在测试时,由于mask变成二值化操作,因此kernel也做了相应处理,如上图所示,即除了重要通道的重要区域,其他部分全都做了kernel split操作,从而实现sparse conv操作。

思考

1.对不同区域做相应的处理,实现加速是一个点,当然除了加速,可能还有其他的应用,值得思考
2.这种训练测试策略可以有借鉴的地方

0%