IRN: Invertible Image Rescaling实验验证

IRN:Invertible Image Rescaling实验验证

papercode

ECCV2020,可逆神经网络,将HR经小波变换分解为低频分量和高频分量作为网络的输入,网络生成潜在分布和多个LR图像,然后以此再逆变换重建HR图像,性能提升极大。

IRN在超分上性能提升极大,因此这里检验它的真实性。发现原文用真实图像HR作为输入得出了如表格中的结果,当仅使用LR输入,性能降低。

这篇论文主要是模拟图像在传输过程中,降尺度和升尺度的问题:高分辨率数字图像(HR图像)通常会按比例缩小(LR图像)以适应各种显示屏或者节省存储成本和带宽,同时终端设备采用后放大方法恢复原始的分辨率或放大图像中的细节。形成一个HR → \rightarrow LR → \rightarrow HR 可逆过程,因此这里,高分辨率图像HR一开始就是可以获得的。对于超分辨率任务真实情况下只有一个LR图像的输入,HR图像是不可获得的

作者给出的超分结果,是将HR作为模型的输入,通过正向网络生成LR图像,然后将其输入到反向网络重建出最终的高分辨率结果(SR图像),这里的HR是必要的。当本人模拟真实情况下仅有LR输入时,测试的结果性能非常低


  • 作者测试SR的流程(使用HR输入):
# 正向
input = img_HR  ---- shape:(1, 12, 2H, 2W)
img_LR = net(input, ver=False)[:, :3, :, :]   ---- shape:(1, 12, H, W) --> shape:(1, 3, H, W)

# 反向
# 潜变量z使用随机生成的张量,用于网络输入的padding
input = cat(img_LR, torch.randn(z_shape))   ---- shape: (1, 12, H, W) [z_shape: (1, 9, H, W)]
img_SR = net(input, rev=True)[:, :3, :, :]   ---- shape: (1, 12, 2H, 2W) --> shape: (1, 3, 2H, 2W)


# net(ver=False)正向:HaarDownSampling + InvBlockExp(number=8)
               				|
               				--> out_shape: (1, 12, H, W)
               
# net(ver=True) 反向:InvBlockExp(number=8) + HaarDownSampling
                                                     |
                                                     --> out_shape: (1, 3, 2H, 2W)               
  • 本人模拟实际SR的流程(只用LR输入):
img_LR  ---- shape:(1, 3, H, W)
# 潜变量z使用随机生成的张量,用于网络输入的padding
input = cat(img_LR, torch.randn(z_shape))   ---- shape: (1, 12, H, W) [z_shape: (1, 9, H, W)]
img_SR = net(input, rev=True)[:, :3, :, :]   ---- shape: (1, 12, 2H, 2W) --> shape: (1, 3, 2H, 2W)


# net(ver=False)正向:无正向过程
               
# net(ver=True) 反向:InvBlockExp(number=8) + HaarDownSampling
                                                     |
                                                     --> out_shape: (1, 3, 2H, 2W)               

结果如下(PSNR):

Set5Set14B100UrbanDiv2K(val)
input:HR43.999440.788541.292939.900244.3248
input:LR35.458131.043930.883528.402033.6007

计算量:

input_shapeparamsMAddFlopsMemory
input:HR(3, 192, 192)1,668,00030.68G15.38G465.36M
input:LR(3, 96, 96)1,668,0007.67G3.84G121.11M
RCAN(3, 96, 96)15,444,667282.26G141.44G2.77G

MAdd:乘法累加运算

Flops:floating point operations,浮点运算数,即计算量,用来衡量算法/模型的复杂度。


作者的原话解释如下:

Image rescaling is a different task from super-resolution (see ‘Difference from SR’ in the paper). IRN downscales HR images and reconstruct them from the downscaled LR images, while the ultimate goal of super-resolution is to upscale arbitrary LR images. So in our test code, we only need HR images to verify the performance.

If we just use the architecture of IRN for paired training of bicubic-downscaled LR images and HR images (latent variable z as padding 0), which is the setting of many sr methods, the performance is not as good as them. Reasons include that our invertible architecture is not mainly designed for prior learning, and the parameters are fewer. The improvement of IRN comes from our invertible modeling for downscaling and upscaling.

具体见:Github issue#4

大意是:

  • 图像缩放(image rescaling)和超分辨率(super-resolution)是不同的任务。IRN是下采样HR得到LR,然后从LR重建出HR;SR的目标是放大任意的LR图像。(按博主理解,)

  • 如果仅仅使用IRN的架构对由bicubic下采样得到LR图像和HR图像进行配对训练(潜变量z作为0 padding),这也是许多SR方法的设置,其性能不如它们。原因包括IRN不是主要为先验学习设计的,而且参数很少。IRN的提升来自于对降尺度和升尺度的可逆建模。

因此,我觉得IRN适合用于图像压缩传输,先将HR下采样,进行传输,然后在接收端设备进行上采样。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值