作者:欲扬先抑
转载:https://zhuanlan.zhihu.com/p/589071778
论文源地址:https://arxiv.org/abs/2203.11589
论文源代码:https://github.com/littlepure2333/APE
动机
这篇文章的motivation主要是对SISR任务的一个加速。在文中提到,现有的工作往往需要依赖pixel-wise sparse convolution,而它对硬件是很不友好的。尽管这种串级联式的layer能够提高网络建模contextual information的能力,但是平衡performance和efficiency的工作仍缺乏探索。
针对这一问题,作者提出了一个scalable的策略 Adaptive Patch Exiting (APE) 。更具体地,作者训练了一个regressor来预测每一个layer中的patch的incremental capacity。通过incremential capacity能够评估每一个layer的必要性。一旦incremental capacity低于一个阈值,patch可以从一个特殊的层退出。作者提出的这些方法能够简单的平衡performance和efficiency,通过改变incremental capacity的阈值。更多地,作者提出了一个策略能够联合训练regressor和SR network。
本文方案
Training Multi-exit SR Networks
其实patch exiting的思想很简单,就是在中间的layer通过Regressor判断是否满足退出条件,满足的话,直接将patch送入最后的Tail部分进行上采样。整体的框架如下图所示:
Estimating Incremental Capacity
为了使得multi-exit SR networks是可扩展的,需要在特定的层设计一个退出singal。因此,作者训练了32-exit EDSR在DIV2K上。作者随机采样了 LR patches去观察layer-wise层面的效果:
可以从图2中观察到有三种类型的patch。其中,bottleneck pathes可以取得较满意的结果在经过一些层后。第二种被称为growing patches,需要更多的层去获得更好的实验效果。第三种被称为over-fitting patches,在更多地layers后效果反而更差。上述的结果说明设计的这个signal的时候需要当效果达到饱和的时候,而不是效果超越了一定的阈值的时候。(其实这里我没太看懂,图2的横坐标意味着啥?求大佬在评论区指正一下,万分感谢!!)
作者在这里给出了一个结论:网络的规模或者说能力与最终重建图像的效果并不是单调的,有一些patch经过更多的layer效果会变得更差。
Jointly Training SR Network and Regressor
联合训练的方式很简单,用 λ 平衡两个losses:
本文实验
可以简单看一下效果,发现在采用APE策略减少FLOPS的情况下,效果是有提升的:
Ablation Studies
不同的Patch size和Strides,以及利用RCAN作为backbone训练ClassSR和AdaDSR的效果。可以发现APE在几乎不增加参数量的情况下达到了最快的推理速度。
来源:AIWalker
作者: Happy
推荐阅读
- 比MobileOne还秀,Apple将重参数与ViT相结合提出FastViT
- ARM | 内容&硬件感知超分方案,让图像超分自适应适配不用算力平台* CVPR2023 InternImage已开源
- GFSNet | 高低频分离超分方案
- 南京大学&港中文提出首个支持超高分辨率(10000x10000)图像风格迁移方案
- 深入分析MobileAI图像超分最佳方案:ABPN
本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏AIWalker。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。