论文笔记:Handheld Multi-Frame Super-Resolution

title

Introduction

这是google发表在SIGGRAPH2019上面的一篇超分辨的文章,也就是在自家手机Pixel3中使用的Super Res Zoom技术。在Google AI Blog中已经对该技术做了初步的介绍,而这篇文章则更加详细的介绍了技术实现细节。

文章提到所有应用到手机相机中的超分算法,都必须满足以下四个条件:

  • 在单次快门按下后可以手持工作(不借助三脚架等稳定设备)
  • 低延迟,能够实现实时交互。即要求算法处理速度极快
  • 对局部运动和场景变化有鲁棒性。对于快速的物体运动和场景变化,即使算法不能提升分辨率,也不能带来artifacts
  • 对输入数据的噪声有鲁棒性。特别是在低光场景中,算法不能够增强噪声,而要减弱噪声。

针对于手持拍照设备上局限性,该算法抛弃了传统ISP流程中的去马赛克步骤,而是使用多张CFA RAW图直接合成RGB图。其利用手持拍照设备(如手机)在拍照过程中的抖动,获取多帧有小位移的RAW图。然后对多帧RAW图进行配准和融合可以得到单张每个像素位置都有RGB三通道值的图像。该算法对噪声和场景运动等都有很好的鲁棒性。通过优化和并行加速,该算法可以在手机上实现对12M大小的图像仅用100ms的处理时间,还是非常不错的。

文章的主要工作有:

  • 使用多帧图像超分辨算法代替去马赛克算法
  • 引入自适应核插值和融合算法。其自适应于图像的局部结构,对稀疏采样的数据进行拟合。
  • 提出了运动鲁棒模型,对局部运动、遮挡、配准失败区域有较好的的鲁棒性
  • 分析了手部震颤规律,并说明了其做为亚像素偏移获取来源的有效性

Overview

pipeline
整个算法流程如上图所示,其主要包括:多帧RAW图像的获取、图像配准、图像融合三个步骤。首先,获取多帧RAW图像(CFA Bayer),然后选择其中一阵作为基帧(base frame),剩下的图像都对该帧进行局部对齐。通过核回归估计每一帧对结果的局部贡献(contribution),然后分颜色通道将这些贡献叠加起来。为了是算法更有鲁棒性,借助于图像局部特征对核形状进行调整,并利用鲁棒性模型对采样的贡献值进行加权。最后,对每个颜色通道进行归一化得到最后的RGB图像。

为了减少图像获取过程中的延迟,使用手机中的Zero-Shutter Lag模式进行拍摄,连续获取多帧图像。图像配准使用了HDR+中的配准策略,并对其进行了优化。该配准方法使用coarse-to-fine的金字塔结构,利用局部窗口搜索和块匹配的方式进行局部配准。为了进一步提高配准精度,使用Lucas-Kanade光流法做三次迭代,对块匹配得到的配准结果做进一步优化,在达到必要的精度同时保持较低的计算开销。融合过程是本文的核心部分,将在后面做详细介绍。

Hand-held Super-resolution

文章提到多帧超分需要有两个条件被满足:

  • 输入帧需要包含图像混叠(image aliased),即其包含采样后显示为虚假低频的高频信息(如莫尔条纹
  • 输入的多帧混叠图像是在不同的亚像素位置被采样的,这将表现为输入帧中虚假低频的不同相位。

获取了多帧有位移和混叠的低分辨率图像就可以同时去除低频中的混叠效应并重建高频信息。

第一个条件意味着图像传感器上的像素间距离要大于镜头的光斑大小。这个条件被默认满足。

第二个条件将使用手持设备拍照时手的颤振抖动来实现。在以前的研究中已知,手的震颤是高度周期性的,频率大约在8-12Hz,且运动幅度很小但是随机的。而为了证明该方案有效性,作者用10个用户采集了86个图像序列,并用陀螺仪记录旋转运动信息。相关信息统计如下图。通过分析可以得到,手的运动在各个角度方向是均匀随机的,且在获取图像序列的过程中会缓慢地旋转拍照设备。
tremor
即使在实际拍摄中,由于拍摄时间比较短,手的运动可能近似呈一条直线或平滑的曲线,文章也通过理论和实验证明了,偏移的亚像素值可以有足够的覆盖率来用于超分辨。从下图可以看出,即使在配准过程中的偏移量是偏向于整像素的,但是也对所有亚像素范围进行了覆盖。
subpixel

Method

给定多帧有随机像素偏移的输入图像,文章使用核回归的方法进行拟合,重建连续信号。重建的连续性信号可以以任何等于或高于输入帧的分辨率进行重采样。文章使用了各向异性高斯径向基函数核(Radial Basis Function, RBF),其可以用于局部自适应细节增强或时空去噪。最后,使用提出的鲁棒性模型可以使得算法能在复杂运动场景中发挥作用,并在配准失败的区域退化为单帧图像上采样。

核的重建

对于每一个颜色通道,可以计算每帧像素的贡献,其可以通过下式计算:

C ( x , y ) = ∑ n ∑ i c n , i ⋅ w n , i ⋅ R ^ n ∑ n ∑ i w m , i ⋅ R ^ n C(x,y)=\frac{\sum_n\sum_i c_{n,i}\cdot w_{n,i}\cdot \hat{R}_n}{\sum_n\sum_i w_{m,i}\cdot \hat{R}_n} C(x,y)=niwm,iR^nnicn,iwn,iR^n

其中, ( x , y ) (x,y) (x,y)是像素坐标, n n n表示图像帧数, i i i表示局部邻域的像素数(文章中设为 3 × 3 3\times 3 3×3) 。 c n , i c_{n,i} cn,i表示RAW图的亮度值, w n , i w_{n,i} wn,i表示局部采样权重。 R ^ n \hat{R}_n R^n表示局部鲁棒性权重,如对于基帧来说,既然其不需要配准,则 R ^ \hat{R} R^为1,表示对它的局部采样值充分信任。

局部各向异性核

对于局部采样权重 w n , i w_{n,i} wn,i,使用非归一化的各向异性径向基函数核。其定义为

w n , i = e x p ( − 1 2 d i T Ω − 1 d i ) w_{n,i}=exp(-\frac{1}{2}d^T_i\Omega^{-1}d_i) wn,i=exp(21diTΩ1di)

其中, Ω \Omega Ω是核的协方差矩阵, d i d_i di i i i点到目标像素的偏移向量( d i = [ x i − x 0 , y i − y 0 ] T d_i=[x_i-x_0, y_i-y_0]^T di=[xix0,yiy0]T)。

对于每个 3 × 3 3\times3 3×3邻域中的九个最近邻采样使用相同的核函数,以此来实现快速的并行运算。

使用各向异性核的一个重要原因是其可以增加算法对小的未配准区域以及边缘附近区域的鲁棒性。包含边缘的区域更容易发生误配准。亚像素的误配准以及缺乏足够的采样会造成拉链效应(zipper artifacts)。通过拉伸核的形状,使其沿着边缘方向延伸,可以给不属于边缘的像素赋予更小的权重。如下图所示,对于不同的区域,核的形状也不同。
kernel

核的协方差计算

通过分析每一帧的局部梯度结构张量来计算核的协方差。为了提升运行速度和对噪声鲁棒性,对原始RAW图像中每个 2 × 2 2\times 2 2×2Bayer图样的四个颜色通道(如RGGB)做平均得到单通道图像,然后计算该单通道亮度图像的梯度。为了估计局部梯度的强度和方向信息,使用梯度结构张量分析(类似于harris角点检测的方法)。

Ω ^ = [ I x 2 I x I y I x I y I y 2 ] \hat{\Omega}=\left[\begin{matrix} I^2_x&I_xI_y\\ I_xI_y&I^2_y \end{matrix}\right] Ω^=[Ix2IxIyIxIyIy2]

其中, I x I_x Ix I y I_y Iy分别是水平和竖直方向上的梯度。在 3 × 3 3\times3 3×3窗口使用前向差分计算梯度,可以得到四个水平和垂直方向的梯度值。对局部结构张量做特征值分析,可以得到两个正交向量及其特征值:

Ω ^ = [ e 1 e 2 ] [ λ 1 0 0 λ 2 ] [ e 1 T e 2 T ] \hat{\Omega}=\left[\begin{matrix}e_1&e_2\end{matrix}\right]\left[\begin{matrix}\lambda_1&0\\ 0&\lambda_2\end{matrix}\right]\left[\begin{matrix}e^T_1\\e^T_2\end{matrix}\right] Ω^=[e1e2][λ100λ2][e1Te2T]

其中,特征值 λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2控制着核在边缘方向或正交方向上的方差。使用主特征值 λ 1 \lambda_1 λ1的大小控制超分辨和去噪之间的平衡,使用 λ 1 λ 2 \frac{\lambda_1}{\lambda_2} λ2λ1控制核的形状。最后,使用双线性插值对核的协方差矩阵值进行上采样以计算核权重。

运动鲁棒性

配准后的图像可能存在误配准、物体运动和遮挡等区域,这些区域可能会造成很强的artifacts。为此,文章引入鲁棒性掩膜(robustness mask)来指示像素值的置信度。其值为1表示该区域完全用于融合,其值为0表示完全排除该区域。

统计鲁棒性模型

文章计算局部标准差 σ \sigma σ以及被配准帧与基帧之间的颜色差异 d d d。那些颜色差异小于局部标准差的区域视为没有混叠可以被融合以用于时域降噪。颜色差异与标准差的预定比例接近的区域视为混叠区域可以被融合以用于超分辨。颜色差异大于该比例的很可能是误配准区域或运动物体,应该被舍弃掉。
robustness

通过上述分析,我们可以定义一个平滑的比较函数:

R = s ⋅ e x p ( − d 2 σ 2 ) − t R=s\cdot exp(-\frac{d^2}{\sigma^2})-t R=sexp(σ2d2)t

其中, s s s t t t是可以被调节的尺度和阈值参数。

噪声修正的局部统计和颜色差异

首先,将RAW拆分成三通道的RGB图(两个G通道做平均)作为引导图。然后计算引导图每个像素在 3 × 3 3\times 3 3×3邻域的颜色均值和标准差 σ m s \sigma_{ms} σms。颜色均值用于计算输入帧与基帧的局部颜色差异 d m s d_{ms} dms。由于这两个值都是由很小的局部邻域计算得到的,因此其容易受到噪声影响,需要进行修正。

为了将噪声模型进入到算法中,文章计算均匀亮度块的局部颜色差异 d m d d_{md} dmd和标准差 σ m d \sigma_{md} σmd 进行标定。通过一系列的蒙特卡洛模拟计算不同亮度水平的 d m d d_{md} dmd σ m d \sigma_{md} σmd。以标定得到的 σ m d \sigma_{md} σmd作为 σ m s \sigma_{ms} σms下限,并使用维纳收缩法(Wiener shrinkage)计算最终的 σ \sigma σ d d d

σ = max ⁡ ( σ m s , σ m d ) \sigma=\max(\sigma_{ms},\sigma_{md}) σ=max(σms,σmd)

d = d m s d m s 2 d m s 2 + d m d 2 d=d_{ms}\frac{d^2_{ms}}{d^2_{ms}+d^2_{md}} d=dmsdms2+dmd2dms2

附加的鲁棒性优化

文章发现对于相机运动和正确的配准,配准域(即光流图)通常是比较平滑的。而对于有局部运动区域光流图会出现较大变化。因此可以结合该运动先验来去除artifacts。文章计算偏移向量值的局部跨度的长度来表示局部运动变化,将值比较大的区域视为不正确的运动区域排除掉。

M x = max ⁡ j ∈ N 3 v x ( j ) − min ⁡ j ∈ N 3 v x ( j ) M_x=\max_{j\in N_3}v_x(j)-\min_{j\in N_3}v_x(j) Mx=jN3maxvx(j)jN3minvx(j)

M y = max ⁡ j ∈ N 3 v y ( j ) − min ⁡ j ∈ N 3 v y ( j ) M_y=\max_{j\in N_3}v_y(j)-\min_{j\in N_3}v_y(j) My=jN3maxvy(j)jN3minvy(j)

M = M x 2 + M y 2 M=\sqrt{M^2_x+M^2_y} M=Mx2+My2

其中, v x v_x vx v y v_y vy表示水平和竖直方向上的偏移量。 M x M_x Mx M y M_y My表示在 3 × 3 3\times 3 3×3邻域 N 3 N_3 N3内水平和竖直方向上的局部运动范围。 M M M表示局部运动强度估计。如果 M M M超过了一个阈值 M t h M_{th} Mth,可以将这些像素视为包含显著的局部运动或误配准。使用该信息调整鲁棒性强度 s s s

s = { s 1 i f M > M t h s 2 o t h e r w i s e s=\begin{cases}s_1&if M>M_{th}\\s_2&otherwise\end{cases} s={s1s2ifM>Mthotherwise

最后,通过计算 5 × 5 5\times 5 5×5邻域的最小置信度值做进一步优化:
R ^ = min ⁡ j ∈ N 5 R ( j ) \hat{R}=\min_{j\in N_5} R(j) R^=jN5minR(j)

Results

合成数据比较

syn

真实数据比较
1. 去马赛克技术比较

在这里插入图片描述

2. 与视频超分辨技术比较

在这里插入图片描述

3. 与HDR+的比较

在这里插入图片描述

其他结果分析
配准精度对结果的影响

在这里插入图片描述

融合帧数对结果的影响

在这里插入图片描述
从上图可以看到,随着融合帧数的增加,PSNR提高,结果有更好的信噪比。但是由于配准结果并不完美,且场景可能随着曝光时间的延长而变化,因此太多帧融合反而会影响图像的质量。
在这里插入图片描述

消耗计算资源的表现

在这里插入图片描述

Discussion and limitations

1. 器件的光学限制

受限于成像系统的光学限制,该算法可以在2倍放大率以下实现较好的效果,而当放大倍数太大时效果不明显。
在这里插入图片描述

2. 噪声水平的限制

噪声水平会对超分辨结果有较大影响。一般来说,分辨两个相邻点的统计概率正比于 S N R P SNR^P SNRP,其中 0 < p < 1 0<p<1 0<p<1依赖于成像系统。所以在低光成像环境中,超分辨的能力会减弱。而得益于算法对噪声的自适应性,在低光下还是能得到不错的结果。
在这里插入图片描述
上面结果分别是单帧去马赛克去噪、HDR+和本文算法的结果。由于本文局部自适应时空去噪算法的有效性,也使其成为Pixel 3手机上Night Sight功能的一部分。

3. 运动的缺失

当成像设备不是手持而是固定的(如使用三脚架),算法会引入额外的运动。即如果陀螺仪检测到设备是没有运动的,则传感器或者光学稳像系统(OIS)就会以一个受控的路线运动。

4. 极端的局部运动和遮挡

当剧烈的局部运动或者遮挡出现时,算法将只会依赖参考帧生成结果。这可能会造成局部质量的降低。在低光条件下,这些区域将会有更大的噪声,但是通过额外的空间去噪会提升质量。

5. 融合Artifacts

如果误配准区域只有亚像素差异,该算法会不正确地融合这些区域,出现artifacts。另外,多帧图像可能会存在小的高频场景的变化,如水波纹,或者小的树叶运动。这些区域帧与帧之间的相似性,使得算法有时不能区分这些亚像素变化而把它们融合在一起,产生高频artifacts。
在这里插入图片描述

官方项目主页:Project

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值