单编码器多解码器在多任务学习中经常使用。大致分为两种用法,一种是对不同的解码器设置不同的监督,引导它们分别学习各自的任务;还有一种用法(生成模型)是用附加的解码器去引导编码器或解码器去完成任务。
本文是首次应用单编码器多解码器在去模糊领域,采用两个解码器,整体结构仍保持为一贯使用的U-net结构。更值得注意的是,本文提出的结构在整体上仍是一个残差学习的过程,以前的网络有在中间应用残差学习,但整体上仍是图像重建的过程。这在其第二个创新点中至关重要,在文章的Limitation中也提到残差学习的重要性。
根据linear span theory(线性跨度理论),多个独立的回归输出线性重构可以跨越更大的输出空间。也就是说,这样的方法可以在原有的基础上扩大覆盖的空间。本文预期两个解码器能否达到,一个解码器产生沿主轴的模糊残差,即具有最大变化的退化分量,另一个解码器生成互补残差以完成线性重建。
但有趣的是,发现在没有任何显式的监督下,两个解码器能够分别学习到水平和竖直的残差运动分量,这也就启发得到参数共享策略。
理想状态下,两解码器的输出是一对互补的子解对,但是也会造成一些不适合分解的特征被分解,不期望的信息解耦,从而导致降低了去模糊的性能。如颜色的偏移,会阻碍网络充分探索解空间,并无法向去模糊提供线索。
由于两个解码器可以沿着x-y轴线方向分别学习特征,本文提出了一个旋转参数共享的策略。即两个解码器一套参数,其中一个解码器的参数是另一个解码器参数逆时针旋转90度(类似于对参数进行转置)。
在选用水平还是垂直方向作为参数也是有考究的,这里采用的学习水平方向特征的参数,原因在于水平方向上学习到的模糊信号更强(水平方向上相机可以旋转360度,竖直方向上很少有旋转360度的情况)。两种情况下唯一不同的就是学到的特征重建是水平方向和竖直方向,这样的操作可以强制两个解码器分享信息,分享除了轴线方向外的信息,也就是去模糊的信息,网络可以专注于消除模糊分量。
L1范数
training
GoPro Dataset
test
GoPro Dataset + Real Blur
【Real-world blur dataset for learning and benchmarking deblurring algorithms】ECCV 2020
1300 epochs 65h
本文并非直接对比相关方法,而是将已有的、效果较好的、有影响力的几种网络的Block拿出来,用于本文提出的网络,对比效果。
具体有
【Dynamic scene deblurring with parameter selective sharing and nested skip connections】CVPR 2019
【Deep stacked hierarchical multi-patch network for image deblurring】CVPR 2019
【Deep multi-scale convolutional neural network for dynamic scene deblurring】CVPR 2017