当前位置: 代码迷 >> 综合 >> 《Zoom to learn Learn to zoom》学习笔记
  详细解决方案

《Zoom to learn Learn to zoom》学习笔记

热度:31   发布时间:2024-01-24 13:23:04.0

创新点:

  1. 使用真实原始LR和HR图像作为数据进行训练网络,区别于其他大部分网络(用HR图和经过HR图进行下采样的LR图作为网络数据进行训练)。

  2. 采用由CX loss 改进的CoBi loss作为网络的loss函数,有效地改善LR和HR不对齐问题。

该文章的贡献:

  • 指出了使用real high-bit sensor data 的效果要比采用8-bit RGB 数据要好,作者分别采用real high-bit sensor data和8-bit RGB作为输入数据训练网络,比较两者效果,实验效果表明,real high-bit sensor data效果更好;

  • 推出了第一个应用于SR的原始数据集--> SR-RAW;

  • 提出了CoBi loss应对LR-HR image pairs不对齐问题。

真实原始数据(real Raw data):

作者认为需要使用real Raw data 作为网络数据的原因有两点:1)使用通过HR图像下采样的LR作为训练网络的输入,会间接地降低真实输入图像的噪声水平,使网络错误估计图像的噪声水平(实际上,对于远处的目标进光量更少,会造成更多的噪声,直接采用经过下采样的LR图片反而降低了真实的LR图像的噪声水平);2)事实上8-bit的高清RGB图像成像的时候就被ISP算法处理过了,例如demosaicking、denosing,再由处理过的HR下采样生成的LR图像相对于real Raw data 更加失真了。

数据的获取:

通过采用不同焦距(24-240)来收集RAW images pairs。短焦拍出来的RAW data被用作网络的input记作:RAW-L,长焦拍到的RGB图片作为ground-truth记作:RGB-H.例如,焦距为35拍得的RAW data作为LR,焦距为70拍得的RGB图像作为LR经过2倍放大的GT。在拍摄过程中作者采用了7个不同焦距拍摄为一组sequence,可以用作训练不同放大倍数的data.

 

这种数据的问题:

    1)不同焦距引起的景深不同

由于不同焦距对造成不同景深的问题,根据焦距去调整光圈大小是不实际的,作者采用一个较小的光圈去较低景深的影响,但景深的影响还是比较明显,如图B2所示。

    2)不同焦距引起光照变化

虽然拍摄时保证同一个曝光时间,但是仍然可以观察到由于快门和物理光瞳的机械性和牵涉到动作变化而引起的光照变化。这种颜色变化是避免使用像素对像素的损失进行训练的另一个动机。

     3)不同焦距引起的透视变形

虽然透视不随焦距的变化而变化,但是当镜头放大或缩小时,在投影中心会有轻微的变化(透镜的长度),在不同深度的物体之间会产生明显的透视变化如图B1所示。

     4)镜头的局限

使用的镜头Sony FE 24-240mm,需要与被摄对象之间至少56.4米的距离,才能在相距5米的物体之间产生小于1像素的透视位移。因此,我们避免捕获非常接近的对象,但允许在数据集中进行这种视角转换。

 

数据处理:

首先匹配RAW_L和RGB-H之间的视场(FOV)。然后计算RGB-L和RGB-H之间的对齐,以修正手动缩放相机以调整焦距所引起的轻微相机移动,然后根据对齐的参数,对RGB-H进行rotation and translation.训练中,匹配视场后的RAW-L作为网络的input,对齐和匹配视场后的RGB-H作为GT。如果光学变焦与目标变焦比不完全匹配,则对图像应用比例偏移。例如,如果我们使用(35mm, 150mm)来训练一个4倍变焦模型,则对目标图像应用1.07的偏移量。

Contextual Bilateral Loss (CoBi loss):

CoBi 是基于Contextual loss(CX loss)进行改善的,CX loss被提出主要用于训练不对齐的数据对,把source image P 作为特征点集:$p_{i_{i=1}}^{N}$ 。把target image Q作为特征点集:$q_{j_{j=1}}^{M}$。对于每一个source image 特征点集上的p,都搜索最邻近的匹配特征q,如$q=\arg \min _{q} \mathbb{D}\left(p, q_{j}\right)_{j=1}^{M}$,其中$\mathbb{D}\left(p, q_{j}\right)$是某一距离测量函数。最后CX loss为:

CX loss容易造成伪影。而CoBi  将空间像素坐标和像素级RGB信息融合到图像特征中:

其中$\mathbb{D}^{\prime} p_{i}, q_{j}=\left\|\left(x_{i}, y_{i}\right)-\left(x_{j}, y_{j}\right)\right\|_{2}$$\left(x_{i}, y_{i}\right)$$\left(x_{j}, y_{j}\right)$分别为特征pi和qj的像素空间坐标。ws使CoBi能够灵活地处理训练数据集中的偏差量。

结合 perceptual loss,论文的最终 loss function 为:

其中使用n×n的RGB patch作为CoBiRGB的特征,对于8X的变焦(最优n = 15), n应该大于4X的变焦(最优n = 10)。

算法细节:

我们将原始Bayer mosaic中的每个2×2块打包成4个通道作为模型的输入。在不丢失任何信号的情况下,压缩将图像的空间分辨率在宽度和高度上降低了两倍。我们减去black level,然后将数据归一化为[0,1]。从EXIF元数据读取白平衡,并将其作为后处理应用于网络输出,以便与ground truth进行比较。我们采用了一个16层的ResNet架构,然后是log2 N + 1 up-convolution layers,其中N是缩放因子。我们从一个全分辨率的Bayer mosaic中随机裁剪64×64个patch作为训练的输入。


SR流程总结及问题:

首先通过不同焦距获取RAW-L、RGB-L、RAW-H、RGB-H,其中RAW-L和RGB-H为输入-输出数据对,匹配RAW-L和RGB-H视场(如何匹配?手动裁剪?),以RGB-L作为参考,对齐匹配视场后的RGB-H(如何对齐?SIFT、SURF特征点匹配对齐?),视场匹配后的RAW-L和对齐、视场匹配后的RGB-H作为input-output image pairs;然后把RAW-L每个2×2块打包成4个通道作为模型的输入,数据需要归一化;接着RAW-L进过16层的ResNet结构 和log2 N + 1 up-convolution layers(deconvelution?)输出分辨率N倍化的source image;计算loss函数中,通过source image 和target image(RGB-H)分别获取特征点集 $p_{i_{i=1}}^{N}$$q_{j_{j=1}}^{M}$用什么方法获取特征?SIFT、SURF特征点检测?类似VGG网络获取特征?),对于每一个source image 特征点集上的p,都搜索最邻近的匹配特征q,如$q=\arg \min _{q} \mathbb{D}\left(p, q_{j}\right)_{j=1}^{M}$,其中$\mathbb{D}\left(p, q_{j}\right)$是某一距离测量函数(函数表达式是什么?)。最后经过原始数据的白平衡处理,输出一个与RGB-H接近的SR图像。

看了整篇文章下来,还是有很多模糊的地方,上述几个问题就一直搞不懂,静待各大佬赐教。如果代码开源就更好了,嘻嘻哈哈嘻嘻。

  相关解决方案