mordekai的个人博客分享 http://blog.sciencenet.cn/u/mordekai

博文

重读ZSSR [CVPR-2018]

已有 2361 次阅读 2021-12-21 00:30 |个人分类:教学与研究|系统分类:科研笔记

ZSSR 可以看做是将 SingleImageSR  [ICCV-2009] 中的方法用深度学习方法重演了一遍。

重点关注ZSSR的多尺度训练过程,以及如何利用多尺度数据,from coarse to fine,进行逐步训练的。论文中的描述非常不清晰,阅读了代码,才算清楚其具体的训练过程。

从一幅 LR 图像出发,按照如下的尺度序列(Scale Factors, SFs)进行SR: [[1.0, 1.5], [1.5, 1.0], [1.5, 1.5], [1.5, 2.0], [2.0, 1.5], [2.0, 2.0]]。(1) 按照第1个 SF = [1.0, 1.5],训练网络,对 LR 图像按列插值,将 LR 的宽度放大至1.5倍;(2) 按照第2个SF = [1.5, 1.0],继续训练网络,对 LR 图像按行插值,将 LR 的高度放大至1.5倍;(3) 按照第3个SF = [1.5, 1.5],继续训练网络,对 LR 图像的宽度和高度同时放大1.5倍;…… 直至最后一个SF = [2.0, 2.0],训练后的网络能够将 LR 图像的宽度和高度同时放大至 2 倍。

注意:

  1. 在上面训练的过程中,为了增广训练样本,会将每一个阶段所产生的 LR 图像的 SR结果也作为训练样本,继续在针对下一个 SF 训练网络模型的过程中发挥作用。

  2. 针对每一个 SF 进行训练时,并非直接训练从 “LR 的 SF 倍下采样” 到 “LR 图像” 的映射,而是从“LR 图像” 中随机截取一块图像作为HR目标端(HR-father),再由此生成 LR 图像(LR-son)。在 ZSSR 中,将用于训练网络的 LR-HR Pair 称为:Father-Son Pair。

  3. 在生成 LR-son 时(详见 father_to_son 函数),加入了高斯噪声,作者解释,这样做的作用是:teaches the network to ignore uncorrelated crosss-cale information (the noise), while learning to increase the resolution of correlated information (the signal details)。然而,可能真正的理由并非如此,加入噪声会使得网络面对一个更困难的任务(相当于构建了一个更困难的损失函数),从而在面对实际不含噪声的SR任务时,变得更加轻松。这一点在构建损失函数时,常常用到,例如,SphereFace通过将 Softmax 损失转变为 Cosine 损失,从而可以加入调整边界损失的超参数 m。

  4. 在实际执行SR时,还使用了 Geometric Self-Ensemble(EDSR首次使用此方法)和 Back Projection 技术,将两者结合起来计算输入图像的多个SR结果,取 median image。

  5. 在调整学习率时,使用了重构误差的线性拟合(使用 numpy.polyfit 来实现),将线性拟合的斜率与重构误差的标准差对比,两者之差达到一定程度时,学习率下降10:We periodically take a linear fit of the reconstruction error and if the standard deviation is greater by a factor than the slope of the linear fit we divide the learning rate by 10.




https://m.sciencenet.cn/blog-1338462-1317442.html

上一篇:美国看牙小记
下一篇:小涂涂二三事

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-5 23:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部