前几天陈启峰大佬在我司内部分享几篇关于图像增强的文章.其中就有这篇。这篇文章是超分辨率落地的一个比较重要的文章,跟以往自己去做高/低分辨率数据集不同,本文采取了单反直接去制作数据集,在真实场景上效果非常好。本文也被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马赛克
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190416204325370.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nod2FuX21h,size_16,color_FFFFFF,t_70)
左边这种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)jM。那么给定输入图像P和目标图像Q,CX Loss就是去minimize 这个match程度。
C
X
(
P
,
Q
)
=
1
N
∑
i
N
m
i
n
(
D
p
i
,
q
j
)
CX(P,Q) = \frac{1}{N} \sum^N_i min(D_{p_i, q_j})
CX(P,Q)=N1i∑Nmin(Dpi,qj)
事实上作者去用这个loss去训练模型发现会出现很多artifacts。作者认为这是由于CX损失函数中不准确的特征匹配造成的。
受到保边滤波器的启发, 作者将空间区域也加入到损失函数中,得到本文的第二个insight,Contexual Bilateral Loss:
C
o
B
i
(
P
,
Q
)
=
1
N
∑
i
N
m
i
n
(
D
p
i
,
q
j
+
w
s
D
p
i
,
q
j
′
)
CoBi(P,Q) = \frac{1}{N} \sum^N_i min(D_{p_i, q_j} + w_{s} D_{p_i, q_j}')
CoBi(P,Q)=N1i∑Nmin(Dpi,qj+wsDpi,qj′)
其中:
D
p
i
,
q
j
′
=
∣
∣
(
x
i
,
y
i
)
−
(
x
j
,
u
j
)
∣
∣
2
D_{p_i,q_j}' = || (x_i, y_i) - (x_j, u_j)||_2
Dpi,qj′=∣∣(xi,yi)−(xj,uj)∣∣2
另外作者借鉴感知损失,引入VGG loss。
本文最终的Loss为:
C
o
B
i
(
P
,
Q
)
+
λ
C
o
B
i
v
g
g
(
P
,
Q
)
CoBi(P,Q) + \lambda CoBi_{vgg}(P,Q)
CoBi(P,Q)+λCoBivgg(P,Q)
实验结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190416211453768.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nod2FuX21h,size_16,color_FFFFFF,t_70)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)