admin管理员组

文章数量:1026989

Space

代码:

这是CVPR2020上发表的同时执行插帧和超分辨任务的文章。插帧和超分合起来可以称作时空超分任务,在时间维度上的超分就是增加帧率即通过插帧实现,在空间上的超分就是增加分辨率。这篇文章综合分析了时间超分和空间超分之间的关联关系,让时间超分和空间超分之间能够相互协助,从而实现更好的超分结果。

文章思路

动机:分析现有的超分方法,发现时空超分并没有被充分的考察和研究了,于是提出了一个时空超分算法STARnet。如下图所示:

STARnet算法原理

完整网络架构如下

整个网络由三个阶段组成,正如上图所标识的一样。这里提前把一些内部细节提出,便于后面算法的理解。

1)S-SR(Net_S)是个超分网络,作者算法中使用是DBPN或者RBPN作为超分网络,最后作者做实验发现RBPN效果更优,便于理解记忆可以认为之后使用RBPN作为超分网络。Net_D看作者的源码,发现该模块由两个残差块和一个执行下采样的stride卷积层组成。

2)Motion由两个残差块组成,每个残差块由两个卷积构成。

3)ST-SR由五个残差块和一个反卷积实现上采样功能组成。

4)第二阶段的Net_F和Net_B的结构也由五个残差块和一个反卷积实现上采样功能组成。

5)L_t+n,H_t+n表示的是插值后的中间帧。

Stage 1

1)首先是前后两帧根据帧间运动的方向(正向或逆向),与相应方向的光流图一同输入S-SR(一个超分网络)中,分别得到相应帧的超分结果,即上图中的红色两个框图所示。

2)两个相反运动方向的光流图输入一个Motion模块(一个卷积网络)中,得到一个运动表示M,这里可以理解为介于这两个运动光流之间的中间结果(因为要执行插帧嘛,所以这个M应该对应插帧图像运动信息,这是个人的理解)

3)将Motion和S-SR的输出作为ST-SR(一个卷积网络)的输入执行时空超分

上面三个过程用公式表示如下:

Stage 2

这个阶段是对上一阶段的结果进行精细化的过程,整个过程比较相似,具体的过程如下:

Stage3

这个阶段就是对前面 的结果进行重构了,输出最终的处理结果。这一阶段只有一层卷积组成,分别处理第二阶段输出的四个结果。

损失函数

由L1,感知损失和一个光流精炼损失组成,具体组成视具体实验而定。

整体的损失函数表示如下

其中光流精炼损失定义如下:

各部分含义和就算方式如下:

其中Net_flow是U-Net。之所以有这个损失,是因为光流在大运动场景下,准确性无法得到保证,相当于引入了噪声,使得算法性能下降,所以精炼有必要。

此外,这个算法还有一个特点

在已训练的STARnet网络的基础上,我们可以进行微调(finetune),得到四三个变体,执行不同的任务,分别是STAR-ST,STAR-S,STAR-T,如下图所示(STAR即是本文提出的STARnet):

他们训练的时候分为以下三种损失类型:

1)本文提出的STARnet,以上三种都会使用

2)STAR-ST使用空间损失和时空损失,因为在低分辨空间中,并没有执行插帧任务

3)STAR-S使用空间损失,这个微调模型相当于就是视频超分模型了

4)STAR-T使用时间损失,这个微调模型相当于就是视频插帧模型了,它既可以在低分辨空间中执行,也可以在高分辨空间中。之后有实验说明。

注意:这里的损失和前面提到的算法使用的损失函数是两码事,这里只是把需要计算损失的对象分为了三种类型而已,集体的计算方法还是使用前面提到的损失函数。

实验结果

训练数据集:Vimeo-90K

测试集:Vimeo-90K,UCF101,Middlebury

评价指标:PSNR,SSIM,IE(插值误差)

下图是微调模型和原模型的比较,可以看到微调后的模型比原模型优秀,这个实验可以说明多个任务联合一起完成,算法需要在各个任务之间实现一个平衡,折衷,所以性能上会较单个任务的算法下降一些。

这个实验说明带有感知损失的函数,在非感知指标上会有所下降,而在感知指标上会上升。

下图是本文方法与其他单个任务算法联合完成插帧和超分的性能比较,可以看到联合训练的网络好于先进行插帧后超分和先超分后插帧的算法组合,这个也比较好理解,两个单独的任务分别由两个算法单独完成,没有联系,如果前一个任务有误差的话,那这个误差将传到后一个任务中,势必会影响任务性能,而联合训练的话两个任务间可以相互修正,从而实现更好的性能。

 下面这个实验说明的问题是算法在相同的数据域(数据分布)能够最大程度的提升性能,而不同的数据域性能会下降。这里表现得就是训练在高分辨的数据集上,测试在低分辨数据集上的性能低于在高分辨数据集上测试的性结果(下图表9),下图表10也一样,只是训练在低分辨数据集上,测试分别在高分辨和低分辨数据集上。这种现象很常见,在分类中也是,相同的数据域意味着训练中见到的模式大部分也存在与测试集中,不同的数据域的话,里面则存在很多训练中未见到的模式,所以性能上或多或少会受影响。

Space

代码:

这是CVPR2020上发表的同时执行插帧和超分辨任务的文章。插帧和超分合起来可以称作时空超分任务,在时间维度上的超分就是增加帧率即通过插帧实现,在空间上的超分就是增加分辨率。这篇文章综合分析了时间超分和空间超分之间的关联关系,让时间超分和空间超分之间能够相互协助,从而实现更好的超分结果。

文章思路

动机:分析现有的超分方法,发现时空超分并没有被充分的考察和研究了,于是提出了一个时空超分算法STARnet。如下图所示:

STARnet算法原理

完整网络架构如下

整个网络由三个阶段组成,正如上图所标识的一样。这里提前把一些内部细节提出,便于后面算法的理解。

1)S-SR(Net_S)是个超分网络,作者算法中使用是DBPN或者RBPN作为超分网络,最后作者做实验发现RBPN效果更优,便于理解记忆可以认为之后使用RBPN作为超分网络。Net_D看作者的源码,发现该模块由两个残差块和一个执行下采样的stride卷积层组成。

2)Motion由两个残差块组成,每个残差块由两个卷积构成。

3)ST-SR由五个残差块和一个反卷积实现上采样功能组成。

4)第二阶段的Net_F和Net_B的结构也由五个残差块和一个反卷积实现上采样功能组成。

5)L_t+n,H_t+n表示的是插值后的中间帧。

Stage 1

1)首先是前后两帧根据帧间运动的方向(正向或逆向),与相应方向的光流图一同输入S-SR(一个超分网络)中,分别得到相应帧的超分结果,即上图中的红色两个框图所示。

2)两个相反运动方向的光流图输入一个Motion模块(一个卷积网络)中,得到一个运动表示M,这里可以理解为介于这两个运动光流之间的中间结果(因为要执行插帧嘛,所以这个M应该对应插帧图像运动信息,这是个人的理解)

3)将Motion和S-SR的输出作为ST-SR(一个卷积网络)的输入执行时空超分

上面三个过程用公式表示如下:

Stage 2

这个阶段是对上一阶段的结果进行精细化的过程,整个过程比较相似,具体的过程如下:

Stage3

这个阶段就是对前面 的结果进行重构了,输出最终的处理结果。这一阶段只有一层卷积组成,分别处理第二阶段输出的四个结果。

损失函数

由L1,感知损失和一个光流精炼损失组成,具体组成视具体实验而定。

整体的损失函数表示如下

其中光流精炼损失定义如下:

各部分含义和就算方式如下:

其中Net_flow是U-Net。之所以有这个损失,是因为光流在大运动场景下,准确性无法得到保证,相当于引入了噪声,使得算法性能下降,所以精炼有必要。

此外,这个算法还有一个特点

在已训练的STARnet网络的基础上,我们可以进行微调(finetune),得到四三个变体,执行不同的任务,分别是STAR-ST,STAR-S,STAR-T,如下图所示(STAR即是本文提出的STARnet):

他们训练的时候分为以下三种损失类型:

1)本文提出的STARnet,以上三种都会使用

2)STAR-ST使用空间损失和时空损失,因为在低分辨空间中,并没有执行插帧任务

3)STAR-S使用空间损失,这个微调模型相当于就是视频超分模型了

4)STAR-T使用时间损失,这个微调模型相当于就是视频插帧模型了,它既可以在低分辨空间中执行,也可以在高分辨空间中。之后有实验说明。

注意:这里的损失和前面提到的算法使用的损失函数是两码事,这里只是把需要计算损失的对象分为了三种类型而已,集体的计算方法还是使用前面提到的损失函数。

实验结果

训练数据集:Vimeo-90K

测试集:Vimeo-90K,UCF101,Middlebury

评价指标:PSNR,SSIM,IE(插值误差)

下图是微调模型和原模型的比较,可以看到微调后的模型比原模型优秀,这个实验可以说明多个任务联合一起完成,算法需要在各个任务之间实现一个平衡,折衷,所以性能上会较单个任务的算法下降一些。

这个实验说明带有感知损失的函数,在非感知指标上会有所下降,而在感知指标上会上升。

下图是本文方法与其他单个任务算法联合完成插帧和超分的性能比较,可以看到联合训练的网络好于先进行插帧后超分和先超分后插帧的算法组合,这个也比较好理解,两个单独的任务分别由两个算法单独完成,没有联系,如果前一个任务有误差的话,那这个误差将传到后一个任务中,势必会影响任务性能,而联合训练的话两个任务间可以相互修正,从而实现更好的性能。

 下面这个实验说明的问题是算法在相同的数据域(数据分布)能够最大程度的提升性能,而不同的数据域性能会下降。这里表现得就是训练在高分辨的数据集上,测试在低分辨数据集上的性能低于在高分辨数据集上测试的性结果(下图表9),下图表10也一样,只是训练在低分辨数据集上,测试分别在高分辨和低分辨数据集上。这种现象很常见,在分类中也是,相同的数据域意味着训练中见到的模式大部分也存在与测试集中,不同的数据域的话,里面则存在很多训练中未见到的模式,所以性能上或多或少会受影响。

本文标签: Space