Skip to content
yubo105139 edited this page Dec 5, 2024 · 1 revision

[[TOC]]

D2C-SR: A Divergence to Convergence Approach for Image Super-Resolution

论文地址:paper

未复现

提出两阶段方案

divergence 阶段采用离散形式学习潜在高分辨率输出分布

convergence 阶段则用于将所学习预测融合为最终的输出

树状深度网络
每个分支都学习一种可能的高分辨率输出。

训练时,每个分支分别训练以拟合Ground-truth,采用triple损失迫使不同分支的输出具有发散性。融合模块采用端到端的方式训练。

网络结构示意图

Divergence network

​ 设计一个树状结构网络得到期望预测

树状网络包含的三个主要模块:

  • 浅层特征提取模块:它由一个卷积构成;
  • 基础分支模块:它由多个残差组构成,每个残差组包含B个残差通道注意力模块(类似RCAN);
  • 上采样模块:它由卷积+pixelshuffle构成。

每个分支的权重不进行共享

Deep Residual Structure 在divergence网络中构建了相对深的残差,这种深度残差结构使得每个分支可以学习深度残差特征,它的子分支可以学习更深的残差结果。每个分支聚焦于学习比父分支更进一步的残差,进而促进高频学习。

Divergence loss divergence网络的发散损失函数 由 $L_2$损失 与 triple损失 构成。预测结果$I^i_D$ 与HR图像计算$L_2$损失 并相加构成最终的损失,定义如下:

$L_{2}^{D}=\sum_{i=1}^{P}\left\|I_{D}^{i}-I_{H R}\right\|_{2}$

$I^i_D$ 如下处理

$G\left(I_{D}^{i}\right)=\frac{Y_{D}^{i}-\mu_{Y_{D}^{i}}}{\sigma_{Y_{D}^{i}}}$

注:Y表示YCbCr空间中的Y通道。上述操作使得网络聚焦于学习纹理特征差异。

直接在RGB图像空间使用triplet损失,会导致网络聚焦与学习其他不同的方向(比如RGB空间特征、亮度)而非纹理.使用YCbCr空间中的Y通道可以使得网络聚焦于学习纹理特征差异.

由于超分病态问题主要源于高频区域,因此我们在残差域计算triplet损失,残差定义如下:

$res_{I_{D}^{i}}=\left\|G\left(I_{D}^{i}\right)-G\left(I_{H R}\right)\right\|$

triplet 损失定义如下:

$\operatorname{trip}(a, p, n)=\operatorname{Max}[d(a, p)-d(a, n)+\operatorname{margin}, 0]$

其中 a,p,n 为 anchor,positive,negative,feed数据包括 锚(Anchor)实例、正示例,负示例,通过优化锚示例与正示例的距离小于锚示例与负示例的距离,实现样本的相似性计算。

a 为0的矩阵 (HR数据-HR数据),positive 为 $I_D^i$ 层减去 真实数据的 Y 通道数据,negative 为 $I_D^j ,j!=i$ 减去 真实数据的 Y 通道数据

最终损失定义如下:

$T_{D}=\frac{\sum_{i=1}^{P} \sum_{i=1, j \neq i}^{P} \beta_{i j} * \operatorname{trip}\left(\operatorname{res}_{I_{D}^{i}}, z \operatorname{zero}, \operatorname{res}_{I_{D}^{j}}\right)}{P(P-1)}$

注: $β_{ij}=θ^{l-1}$,$l∈[1,L]$表示注意力系数,它用于控制不同分支的相似性.最终总体损失则定义如下:

$L_D=L^D_2+α * T_D$

Convergence Network

组合divergence网络的多个输出可以生成更加精准的结果,采用加权方式组合divergence网络的多个输出。

convergence 网络采用divergence 网络的M个输出concat操作用作Convergence的输入。

$W=F(Concat(I_D));ΘC)$

W,表示经过训练的权重,

然后采用所得数值与divergence网络输出W內积 得到最终的结果

$I_{SR}=\sum_{i=1}^{P}\left(I_{D}^{i} \cdot W_{i}\right)$

合并过程中,不同分支在不同区域具有不同的加权权值.

convergence loss convergence网络的目标是合并divergence网络的输出,仅仅包含$L_2$损失,定义如下:

$L_2^C=||I_{SR}-I_{HR}||_2$

Training Strategy and Experiments

该框架的两个网络分别训练,首先训练divergence网络到稳定状态;然后固定divergence网络参数训练convergence网络。

测试结果

作者测试结果发现 不同倍率下,所提方法均大幅优于其他方案,超出次优模型0.2~0.5dB不等

贡献点:

  • 提出一种新颖的框架,包含divergence与convergence 两个阶段;

  • 半监督方式训练divergence阶段模型,采用triplet损失迫使预测的发散性;

  • 创建一个8x超分数据集D2CRealSR;

周会问题

问题1:为什么使用Y通道?

答:作者认为使用RGB通道的可能使得网络注重点在纹理上,而Y通道可以让网络着重看重图片的空间和亮度。

问题2:triplet 损失函数的输入

​ 答:举例 第i个网络分支网络输出记做$I_i$,第j个网络分支输出结果记做$I_j$,则Anchor记做 $I_i-I_{HR}$,正例positive记做0矩阵(1-1=0),负例negative记做 $I_j-I_{HR}$,作用是使得每个网络分支参数有区别不一样,确保网络参数不同.尽量保证网络参数不共享.

问题3:收敛区域的输入是怎么构成的。

答: 采用divergence 网络输出的M个结果 concat 操作得来。 附带 concat 和add 的区别?

​ 答:add 是特征图相加,通道数不变;concat是通道数的增加。 add 计算量比 concat的计算量小。详情

问题4:收敛区域的方案、W

​ 将concat得到结果$I_D^i$进过两层卷积训练得到权重参数W,然后将$I_D^i*W$作为网络的输出$I_{SR}$.

​ 权重W 是经过网络训练得到的。

问题5 table 2实验解释

​ table2 中是指去掉收敛层、triplet、deep res相应的结果,以此证明网络设置收敛层、triplet loss、深度残差的重要性。

Clone this wiki locally