DRN(Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution)阅读笔记
1、论文
地址:https://arxiv.org/pdf/2003.07018.pdf2、github上的pytorch程序:https://github.com/guoyongcs/DRN3、论文介绍3.1、存在的问题
-
超分辨率重构由于
不满足单一映射
,很多不同的高分辨率图像(HR)可以同通过下采样的方法得到相同的低分辨率图像(LR),是一个不适定问题,;
-
实际上,LR和HR图像对比较难获取,不像实验中直接使用
某种退化方法
通过HR得到LR,同时在实际从HR到LR的退化方法是不知道的;
-
该论文通过分析上述两个问题提出了一种
双重回归网络
3.2、DRN
模型采用的主体结构为U-NET,U-NET输入是
低分辨率图像上采样
得到的高分辨率图像(该图像还是比较模糊,因为采用的只是上三次插值得到的),在U-NET的左边模型只是通过了几个卷积,下采样是通过使用卷积步长为2实现的,下采样的次数为对scale取对数得到的,比如上述模型图中,放大倍数为4所以会下采样2次,如果Scale为8则需要下采样3次。
在U-NET的右边特征的提取是通过
RCAB的级联
,上采样使用的是pixshuffle方法,上采样的次数与下采样的次数相同,每次放大两倍,同时每次放大后会
将U-NET左右两边对应分辨率的特征cat
在一起,之后在进行之后的特征提取。作者代码中在计算该部分损失的时候
不仅只用到了最后的重构图像,同时使用了中间分辨率对应的图像的损失
。比如在Scale为4的时候,我们在上采样的过程中会得到Scale为2、4的特征,作者将这两部分特征都进行重构,得到两种不同分辨率的图像,分别计算和对应真实图像的loss。
模型中的回归网络使用的就是简单的卷积,每次下采样的倍数为2,之后得到对应分辨率图像,计算得到分辨率图像和对应真实图像L1损失。
3.3、损失函数
论文中有两个损失函数,对于第一个损失函数,作者使用的
数据都是成对
的,对于第二个损失函数,
除了成对数据外,还包括一些只含有LR的数据集
,在训练的过程中,首先使用第一个算是函数,数据都是成对的,先将模型训练收敛,就是论文结果中的DRN-S和DRN-L两个模型,之后在该模型的基础上,首先调整成对数据和不成对数据的比例,作者发现当不成对数据占所有的数据的比例为0.3的时候此时模型的训练结果最好,之后使用第二个损失函数对模型接着进行训练,得到该部分结果。
opencv CvLevMarq畸变参数优化
* This program measures the length of scratches in world
* coordinates in a perspectively distorted image
*************************************************************1.初始化****************************
Android 中graphic占比很大如何分析
GPUImage 是 iOS 上一个基于 OpenGL 进行图像处理的开源框架,后来有人借鉴它的想法实现了一个 Android 版本的 GPUImage ,本文也主要对 Android 版本的 GPUImage 进行分析。
在 GPUImage 中既有对图