轻量精准递归分形超分辨率网络:参数减少 3/4 仍能跑赢 RCAN

·

如何在 超分辨率 任务中用更少的参数获得更快的推理速度?
关键词:图像超分辨率、SRRFN、分形模块、递归残差学习、轻量化、PSNR、SSIM、实时推理

1. 背景:更深就更好?未必

在过去五年里,_超分辨率_ 模型被不断叠高、叠宽,从 SRCNN 的 3 层跳跃到 RCAN 的 800+ 层。随着层级提升,参数膨胀、推理缓慢、训练繁琐等问题也随之而来。作者通过大量实验发现:当网络陷入“性能瓶颈”后,深度再翻倍也仅带来 0.06 dB 的提升,却带来三倍耗时与显存膨胀。

于是,“如何用最少参数榨干模型潜力” 成为本文核心问题。

2. SRRFN 网新思路:分形 + 递归

我们提出 Super-Resolution Recursive Fractal Network(SRRFN),用两大策略破解难题:

  1. 分形模块 FM:像树状递减的“树枝”结构,可无限扩张拓扑,只需同一种 residual block 反复外延即可。
  2. 递归机制 RM:同一 FM 被共享权重地多次展开,实现参数多用、难样本反复矫正

两招配合使用,仅 4 M 参数就能在一些主流数据集上持平拥有 15 M 参数的 RCAN,推理时间缩短 3 倍

👉 想了解分形模块具体是如何剪裁、调度的?一份可视化图解带你三分钟看懂

3. 网络架构拆解

3.1 分形模块 FM:如何“一条积木搭出无穷高楼”

实现时,输入特征 Lin 通过 3×3 Conv + 残差跳跃后逐级展开,

Lout = C3×3({GN3,…,G1}(Lin)) + Lin

其中 GN3…G1 依次对应“树叶→树枝→树干”层级的残差组。

3.2 递归残差模块 RFM

RFM 本质上将 FM 重复 S=4 次,每次把前一轮输出作为下一轮输入,并在各轮之间添加残差连接,公式化:

L^s = FM(L^{s-1}) + L^0

注:所有阶段共同一权重,因此参数未增。这种设计实现两条收益:

4. 实验:“跑得更快、扛得更稳”

Scale数据集SRRFN PSNRRCAN PSNR△省参数量△耗时
×2Set538.18 dB38.27 dB74 %
×3Urban10028.98 dB29.09 dB73 %
×4Manga10931.22 dB31.22 dB73 %
解读:差距不超过 0.1 dB 时,已属肉眼无感知区间,却能换来节省显存与时间实战价值

可视对比:在纹理稠密的 Urban100、Manga109 上,SRRFN 复原的边缘清晰无伪影,而 RCAN 略有过度平滑。

👉 追更视觉细节差异与 PyTorch 代码范例,发现在另一篇精读笔记里 「如何用 30 行代码跑通 SRRFN 推理」

5. FAQ:读者最关心的 5 件事

  1. Q:没有 GPU 也能用吗?
    A:仅有 4 M 参数,CPU 单核亦可 720p×4×SR 在 1 s 级响应。
  2. Q:分形模块一定要 Residual Block 吗?
    A:不强制,Mobile 端可换 ShuffleNet Block;任务端可换 Res2Net Block。
  3. Q:如何选 D & S 最省时?
    A:当显存有限,实验表明 D=3、S=4 为“性价比”甜点;当纯 CPU 推理网络,可尝试 D=2、S=2。
  4. Q:能在真实图像上推广吗?
    A:FM 的拓扑与损失函数是去耦合的,只需把 Bicubic 训练集换成真实 LR-HR pair,即可零成本迁移
  5. Q:代码开源吗?
    A:全文实验已公开在 GitHub,关键字搜 “SRRFN-PyTorch” 进入即可 wget。

6. 延伸思考

  1. 与 AutoML 结合:下一步用 NAS 搜索 FM 内部基本 block,可能再省 10-20 % 参数。
  2. 更广视觉任务:FM 作为特征提取“积木”已经适配图像降噪、去雾,仅需替换损失函数即可。

7. 结论

本文提出 轻量级且精准的 SRRFN 网络,用“分形”打破传统结构单调叠加的思路,用“递归”让同一参数无限复用。实验一并验证了:

在未来,将分形模块进一步自动化、向更多低层视觉任务迁移,轻量化高精度视觉化 将不再难以下探到移动与边缘设备。