前几天陈启峰大佬在我司内部分享几篇关于图像增强的文章.其中就有这篇。这篇文章是超分辨率落地的一个比较重要的文章,跟以往自己去做高/低分辨率数据集不同,本文采取了单反直接去制作数据集,在真实场景上效果非常好。本文也被CVPR2018接收了。
论文名称:Zoom to Learn, Learn to Zoom
背景:
与以往的超分辨率算法不同,本文并没有去对高分辨率图像进行bicubic降采样来制作低分辨率图片。这类低分辨率图像往往不满足真实的低分辨率图像分布,因此经常会出现比较尴尬的事情就是在标准数据集上效果很不错,而到真实应用的时候,效果太弱。或是增强了原低分辨率图像上的artifacts。
在这个背景下,本文直接去用单反去拍摄图片,高分辨率的图像由长焦距拍摄,低分辨率图像用短焦距去拍摄。此处需要注意的是,本文训练的数据均是Raw Data,这是专业单反拍摄的格式,而RGB图片是Raw Data经过图像处理器(Image SIgnal Processer, ISP)制作的,在某种程度上来说,RGB图片也是有损的。
由于本文采取自己制作数据集,因此需要对同一个图像进行对准,然而相机上的不同配置很难将高低分辨率图像进行完整对齐。在本文使用的单反,8M分辨率拍摄的图像会有40-50pixel的偏差。因此这将与之前的超分辨率算法不同,低分辨率图像与高分辨率图像的位置是一一对应的。本文第二个insight就是提出coBi损失函数,能够对这种misalignment很好的进行处理。
本文两个insight
- 1 train CNN from Raw Data
- 2 CoBi Loss function
Raw Data
我们知道RGB图像是三通道图像,每一个通道分别对应着R,G,B通道。本文采取直接去提取单反拍摄的raw bayer data。
这里简单的介绍一下什么是bayer马赛克
左边这种RGB如此排列的称之为Bayer马赛克,右边是另一种Raw Data 格式Xtrans,此处暂且不表,感兴趣可以查看 https://petapixel.com/2017/03/03/x-trans-vs-bayer-sensors-fantastic-claims-test/
CoBi Loss:
Contextual Bilateral Loss: 是由contextual loss改进而来,此处回顾一下contextual loss(CX), 该损失函数是为了训练非对其数据。假如Source Image P存在一系列的feature points p i N p_i^N piN,目标图像Q存在一系列的feature points q j M q_j^M qjM
。对于每一个源特征p都会去检索最近邻q,并讲其match程度作为 q = a r g m i n D ( p , q j ) j M q=argminD(p,q_j)^M_j q=argminD(p,qj)