XuecaiHu / Meta-SR-Pytorch

Meta-SR: A Magnification-Arbitrary Network for Super-Resolution (CVPR2019)
551 stars 121 forks source link

有关论文实验部分和网络结构的几个问题 #26

Closed splinter21 closed 4 years ago

splinter21 commented 5 years ago

1、BicuConv和Meta-Bicu的具体流程和结构是怎样的,能否更清楚地说明下?Meta-Bicu既然已经有了Meta上采样能应对多尺度与小数尺度,为什么还要bicubic? 2、4.3结尾提出了fov的概念,能否具体解释一下fov是怎么定义的,为什么插值是factor越大fov越小但是meta是一样的,为什么一样的更好? 3、几个RDN124和EDSR124的对照实验,train的流程和test的流程是否是一样的,是按照新流程重新训练,还是直接用的原工作的预训练模型;如果是重新训练,训练流程是否是多尺度共享单模型?如果不是重新训练而是训练好的,那么指标低是正常的; 4、论文里发现了两个小问题,第一个,4.3中,bicubic最弱的baseline,并不time-consuming,x1的则是的确非常费时;第二个,4.2中,不能说L2loss是SISR领域的traditional loss,EDSR后几乎都是用L1Loss了;不过都不是大问题。 5、关于meta模块的鲁棒性,是仅仅对训练过的尺度具有鲁棒性,还是对中间尺度也有?鲁棒性程度大小如何? 举例:用1x~4x,0.1x均匀分布,训练。那么(1)诸如2.55x这种的指标如何?(2)3.9x或者1.1x这种偏分布头尾的,是否指标优势会不如2.1x、3.1x这种靠中间的?

6、在思考对于指标提升的本质性问题。这个结构本质上实现了2点(1)多尺度训练。由于2的实现,这个多尺度变得非常多,因为拓展了小数尺度,否则可能只有2x3x4x这样(2)不同像素学习使用不同滤波器,又叫meta,或者动态滤波器。那么对于指标提升更关键的是1还是2?

1相当于不同任务共享全部参数训练有种multi-task的味道了,如果能带来提升是很正常的;2里面的动态滤波器,最近2年的image/video reconstruction领域的论文也经常会用到,带来了提升,但是为什么会带来提升?如果是Meta-SR里面的这个meta上采样结构,滤波器学习的输入仅仅是代表了像素位置和放大尺度这2个信息的HWx3的tensor,更像是适配的味道,想不出来能带来指标提升的点。

所以对于提升的问题,我个人的感觉是,1是带来提升的真正的点,但是没有2就没有1,所以1和2都是有必要的。不知道能否看到更详尽的对照实验来验证这点?比如: (1)把meta模块用bicubic代替来适配任意尺度,排除2的影响;2x~4x训练,只测试3x,和只用3x训练,测试3x,做对照,证明是1能带来提升,或者没有用; (2)不去除meta模块,并且只使用某个整数倍来训练和测试,那么meta模块的输入就要另想办法了。对照实验为SISR领域传统的conv+pixel_shuffle的方法,meta模块相对有提升,证明是2能带来提升,或者没有用。

7、实现方面,对于小数尺度,目前的做法是repeat_x到比小数稍大点的整数倍,meta卷积后,通过mask的生成去除无关行列,再做loss。能否直接nearest放大到指定尺度,meta卷积后直接做loss?

XuecaiHu commented 5 years ago

非常感谢您的提问。首先就论文写作不足致歉。关于每个疑问的回复如下:

  1. 见下图 image 上图应该能解决你第一问所有的问题;

  2. 这个问题还是因为你对Meta-Bicu不理解。假设你将一个图片放大四倍,再用3 * 3的卷积去卷积的时候,它只用到了原图上周围2 * 2的点,插值1.5倍时,本质用到原图3*3上的点。FOV的定义我就不过多介绍了。

  3. 所有baselines都是在多scale factor上训练的单模型。

  4. 一个应该是歧义导致的,文章中的these two methods是指EDSRx1和RDNx1,不过导致歧义确实也需要修改。第二个,论文里没错吧。我就是这么写的啊。您在仔细看看。

  5. 文章中限于篇幅没有讨论。我给您贴张表吧。 image

  6. 不在于多尺度(scale factor?)吧。我们的Meta-SR是可以在单尺度(scale factor)上训练的;还是在于基于卷积放大的方法要优于插值放大,再利用meta-learning。这两者一起才是这个方法优于其他方法的原因。您可以比较Meta-Conv 和 Meta-SR,这里说明了插值的放大的方法比不过基于卷积放大。 你提的实验文章都给出了吧? 在所有比较的baseline中,它们都是多尺度训练的,既然如此为什么考虑这个?这是一个不变量。 注:文章的目的是要设计一个算法,实现单模型任意放大倍数。

  7. 您这种做法(应该称为Meta-nearest)应该还不如我的Meta-Bicu,本质上改变的只有插值放大的模式,采用bicubic还是nearest。至于如果您是考虑浪费了很多额外的运算的话, 主要这是我能想到最合理的矩阵实现方式。如果您有更好的,您可以提供伪代码。我来实现。