- CVPR2019
- https://github.com/XuecaiHu/Meta-SR-Pytorch
- 问题引入
- 首个解决任意尺度超分问题的模型,借鉴了meta-learning的思想;
- weight prediction strategy(meta-learning):神经网络的权重是由另一个神经网络预测的,而不是通过从训练数据集中学习的,原来的模型需要为每一个scale训练一组参数,现在直接用一个模型来将不同的scale的模型参数储存起来;
- 方法
- 模型包含两个部分:Feature learning module提取LR的特征,还有一个Meta-Upscale Module来以任意尺度upscale特征图;
- Feature learning module:使用RDN;
- 有高分图像 I H R I^{HR} IHR,通过降采样得到对应的低分图像 I L R I^{LR} ILR, F L R F^{LR} FLR是提取到的特征,假设scale是 r r r,包含三个部分,分别是Location Projection,Weight Prediction,Feature Mapping,模型的输出形状是 ( i n C , o u t C , k , k (inC,outC,k,k (inC,outC,k,k,其中 i n C inC inC是feature vector的长度, o u t C outC outC是3表示rgb三个通道,模型由全连接层和激活层组成;
- Location Projection:对于所求高分图像上每一个像素的像素坐标 ( i , j ) (i,j) (i,j),寻找其在低分图像上对应的坐标 ( i ′ , j ′ ) = T ( i , j ) = ( ⌊ i r ⌋ , ⌊ j r ⌋ ) (i',j')=T(i,j)=(\lfloor\frac{i}{r}\rfloor,\lfloor\frac{j}{r}\rfloor) (i′,j′)=T(i,j)=(⌊ri⌋,⌊rj⌋)
- Weight Prediction:用一个网络来预测filter的权重 W ( i , j ) = ψ ( v i j ; θ ) W(i,j) = \psi(v_{ij};\theta) W(i,j)=ψ(vij;θ),其中 W i j W_{ij} Wij是对应于SR上像素点 ( i , j ) (i,j) (i,j)处filter的权重, v i j = ( i r − ⌊ i r ⌋ , j r − ⌊ j r ⌋ , 1 r ) v_{ij}=(\frac{i}{r} - \lfloor\frac{i}{r}\rfloor,\frac{j}{r}-\lfloor\frac{j}{r}\rfloor,\frac{1}{r}) vij=(ri−⌊ri⌋,rj−⌊rj⌋,r1), θ \theta θ是模型的权重;
- feature mapping:对于每一个SR的单个像素点
(
i
,
j
)
(i,j)
(i,j),由Location Projection步骤得到的
(
i
′
,
j
′
)
(i',j')
(i′,j′)取对应的feature map上面的feature vector,之后还由Weight Prediction取得相应的weight,之后获得像素值的操作是将两者进行矩阵乘;
- 实验
- 数据集:DIV2K训练,评测使用Set14,B100,Manga109,DIV2K