原创文章,转载、引用请注明出处!
变焦学习,学习变焦
CVPR 2019
立意
变焦功能是当今手机和相机的必备功能。
光学变焦是图像变焦的最佳选择,可以保持较高的图像质量。但变焦镜头价格昂贵且其物理组件比较笨重。数码变焦方法是一种降低成本的选择,但数码变焦只是简单地向上采样相机传感器输入的裁剪区域,产生模糊的输出。
文章提出,常规的SISR方法有以下两个限制:
现有的大多数方法使用的是合成方法来逼近真实变焦,即其中输入图像是高分辨率图像的下采样版本。这种方法间接降低了输入中的噪声水平,但实际上,由于在曝光时间内进入光圈的光子更少,遥远物体的区域往往包含更多的噪声。
其次,现有的大多数方法都是从8位RGB图像开始的,该图像由相机图像信号处理器(ISP)处理,ISP将高位原始传感器数据中的高频信号用于其他目标(例如降噪)。
第二点的解读:本文训练的数据均是Raw Data,这是专业单反拍摄的格式,而RGB图片是Raw Data经过图像处理器(Image SIgnal Processer, ISP)制作的,在某种程度上来说,RGB图片也是有损的。
基于上述限制,文章做了以下内容:
使用真实的高位传感器数据进行计算变焦的实用性,而不是处理8位RGB图像或合成传感器模型。
新的数据集SR-RAW,它是第一个具有光学ground truth的超分辨率原始数据集。SR-RAW是用变焦镜头拍摄的。对于焦距较短的图像,长焦距图像作为光学ground truth。
提出了一种新的上下文双边损失(CoBi)处理稍微失调的图像对。
SR-RAW
数据采集
使用24-240毫米变焦镜头来收集不同光学变焦水平的原始图像对。
采集过程中,在每个场景的7个光学变焦设置下采集了7幅图像。来自7幅图像序列的每一对图像形成一个数据对。总共500个室内外场景,ISO从100到400。
在训练模型中,以短焦距原始传感器图像作为输入,以长焦距RGB图像作为超分辨率的基础。
例如,使用70mm焦距拍摄的RGB图像作为使用35mm焦距拍摄的原始传感器数据的2X缩放地面真相。
相机有特殊设置,来自原文:
景深(DOF)随着焦距的变化而变化,调整孔径大小使每个焦距的DOF相同是不现实的。选择一个小的光圈尺寸(至少f/20)来最小化DOF差异(在图2的B2中仍然可以看到),使用一个三脚架来捕捉长时间曝光的室内场景。
其次,使用相同的曝光时间的所有图像在一个序列,使噪音水平不受焦距变化的影响。但是仍然观察到由于快门和物理光瞳是机械的并且涉及到动作变化而引起的明显的光照变化。这种颜色的变化是避免使用像素对像素的损失进行训练的另一个动机。
第三,虽然透视不随焦距的变化而变化,但当镜头放大或缩小时,在投影中心存在微小的变化(镜头的长度),在不同深度的物体之间产生明显的透视变化(图2 B1)。使用的Sony FE 24-240mm镜头,需要与被摄对象至少56.4米的距离,才能在相距5米的物体之间产生小于1像素的透视位移。因此,避免捕获非常接近的对象,但允许在数据集中进行这样的透视图转换。
数据预处理
对于任意一对训练图像,用RGB-L表示低分,用RAW-L表示高分,也就是相机的传感器的数据,GT。
高分GT,使用RGB-H和RAW-H。首先匹配RAW-H和RGB-H之间的视图(FOV)。然后计算RGB-L和RGB-H之间的对齐(手动缩放相机以调整焦距所引起的相机轻微移动)。
使用一个欧几里德运动模型,通过增强相关系数最小化来实现图像的旋转和平移。
训练时,将匹配FOV的RAW-L作为输入,它的GT是RGB-H,与RAW-L对齐并具有相同的FOV。如果光学变焦与目标变焦比不完全匹配,则对图像应用比例偏移。
例如,如果使用(35mm,150mm)训练一个4X变焦模型,那么目标图像的偏移量为1.07。
非对齐分析
预处理步骤很难消除偏差。由于捕捉的数据焦距不同,视角的变化会导致视角的不对齐。此外,当对不同分辨率的图像进行对齐时,高分辨率图像中的锐边不能与低分辨率图像中的模糊边精确对齐(图2 B3)。
SR-RAW中描述的失调通常会导致800万像素图像对中的40-80像素偏移。
该数据集中的HR和LR是不是对齐的,这也是后面给出的算法所解决的问题之一,非常重要。
Contextual Bilateral Loss
Contextual Loss
CoBi Loss来自Contextual Loss。Contextual Loss的原文中的叙述为:
Contextual Loss来自《The Contextual Loss for Image Transformation with Non-Aligned Data》,ECCV 2018。
https://openaccess.thecvf.com/content_ECCV_2018/papers/Roey_Mechrez_The_Contextual_Loss_ECCV_2018_paper.pdf
https://www.github.com/roimehrez/contextualLoss
Contextual Loss的原文中是跟Perceptual Loss进行对比的。
Perceptual Loss来自《Perceptual Losses for Real-Time Style Transfer and Super-Resolution》,ECCV 2016。
SRGAN的Loss就是从这篇文章来的。
本篇的Contextual Loss的公式:
CoBi Loss
作者用这个Contextual Loss去训练模型发现会出现很多artifacts。作者认为这是由于CX损失函数中不准确的特征匹配造成的。
受到保边滤波器的启发,作者将空间区域也加入到损失函数中:
又借鉴了Perceptual Loss,引入VGG loss。本文最终的Loss为:
实验结果
实验步骤
使用来自SR-RAW的图像来训练一个4X模型和一个8X模型。采用了一个16层的ResNet架构,然后是log_2( N + 1) 上卷积层,其中N是缩放因子。
文章所使用的模型没有图和其他说明,只有这一句文字叙述。
将SR-RAW中的500个序列按8:1:1的比例分割为训练、验证和测试集。
对于4X变焦模型,每个序列有3对数据对用于训练。对于8X变焦模型,每个序列有1对数据。
每对包含一个全分辨率(800万像素)Bayer mosaic图像及其相应的全分辨率光学放大RGB图像。随机从一个全分辨率的Bayer mosaic中裁剪64个patch作为训练的输入。
https://petapixel.com/2017/03/03/x-trans-vs-bayer-sensors-fantastic-claims-test/
选择了几种具有代表性的超分辨方法进行比较:SRGAN、SRResnet、LapSRN、Johnson等人提出的Perceptual Loss的模型以及ESRGAN。
使用公共的预训练模型。首先采用原文献中的标准设置尝试在SR-RAW上微调模型,对比模型的下采样方式是双三次。但与未经微调的预训练模型相比,平均性能差异不大(SSIM < 0.04, PSNR < 0.05, lpip < 0.025),所以原文直接采用了没有微调的原模型。对于没有预先训练模型的方法,在SR-RAW上从零开始训练它们的模型。
定量分析
不同模型使用SR-RAW进行训练
结果很明显,现有的超分模型在这个数据集上的表现比较差。
不同训练策略
依旧证明了本文提出的模型和数据是比较契合的。
Ours-png:为了进行比较,使用经过8位处理的RGB图像来训练模型的副本(our-png),以评估拥有真实原始传感器数据的好处。与5.1节中描述的合成设置不同,没有使用向下采样的RGB图像作为输入,而是使用较短焦距拍摄的RGB图像作为输入。用较长焦距拍摄的RGB图像作为地面真实值。
Ours-syn-raw:测试合成的原始数据是否可以代替训练的感知真实数据。采用Gharbi等人描述的标准传感器合成模型[9]代替真实的传感器数据进行训练,从8位RGB图像中生成合成的Bayer马赛克。简而言之,我们根据白平衡、gammacorrected sRGB图像的Bayer镶嵌模式,每个像素保留一个颜色通道,并引入随机方差高斯噪声。在这些合成传感器数据上训练我们的模型的一个副本,并在经过白平衡和伽玛校正的真实传感器数据上进行测试。
定性分析
视觉效果:
可以看到,给出的图示在色块交界区域的效果确实不错。
以及在Amazon Mechanical Turk上进行感知实验来评估生成图像的感知质量。有50人参加了这个测试:
结论
使用RAW进行超分,相比经过ISP处理的JPG,RAW有丰富的信息。
提出CoBi Loss解决不对齐的问题。
其他
文章:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8954193&tag=1
补充材料:https://ceciliavision.github.io/files/Zoom_Learn_Supplementary_Material_CVPR2019.pdf
补充材料还挺长,11页pdf。
感想
看上一篇的时候,看到第三部分的那个数据集,顺手去看了一下那个reference,然后顺手找到了这篇文章。看完之后觉得还是很有意义的。
说句实话这个方法初看下来也算那种大神级别的了。感觉以后用不对齐做超分好像也不是难事情?也许还是我们思路不够开阔。还是要敢想啊。
但是再一细看,局限性感觉也是很大。
首先一点就是第一部分针对不同模型的对比实验,感觉不是很公平。毕竟是从Loss方面做的改变,直接就比PSNR和SSIM,感觉有点流氓,意义不大。
第二个就是文章中也没特别解释他们用的网络模型和原因,读着有点难受。
第三个就是感觉不对齐这个问题还是太广了,这个好像只是水平偏移,如果偏移的更多样的话,不知道会有怎么样的解决思路。感觉这一点能用到光学显微镜成像的那里。