Introduction
Blind deconvolution 本身是一个非常有意思的问题, 即要估计模糊核同时也要恢复清晰图像。
优化的方法
自2006年Fergus的工作以来已经有非常多基于优化方法的改进, 但大体上主要思路:
- multiple scale processing
- using gradient (compare with text)
- iterative optimization
- various prior, e.g. gradient L1-norm, L2-norm.
- various optimization method, e.g. IST, IRLS, variable substitution.
工作[][], 使用一些较为简单的先验来估计 psf, 有些结果比较好, 但有些处理的不准确; 迭代的工作[][], 能更好地估计 psf, 相对计算量会大。
- Cho & Lee[2009], Xu & Jia[2010] 强调效率, 只使用简单的图像特征处理, 然后只使用高斯先验估计模糊核和清晰图解; 而且它们可以得到非常不错的效果. 但是由于信赖于极为简单的假设, 在异常点, 它的结果较差, 而且有很大的比例会失败(Refer ?).
- 更好地利用自然图像以及模糊核的参数化先验模型, Michaeli[2014], Sun[2013] 可以得到比上述方法更好的结果, 当然运行时间要更长. (confirm)
深度学习的方法
深度学习已经用在许多图像处理的任务上, 比如去噪, 图像超分辨, 非盲去卷积. 也有深度盲解卷积的工作.
- Haradis[2015] 探索使用神经网络对文本图像进行盲解卷积, 由于文本图像具有很强的结构: 黑白两色, 细的稀疏的轮廓, 普通的CNN即可完成任务.
- Sun[2015] 限制模糊核的形式只是不同的短线, 将模糊核估计转换为分类问题.
- Schuler[2015] 设计了一个网络结构模仿了传统算法不同尺度迭代的计算方式, 对大的模糊核表现不好 (是否需要的 patch 也要相应增加? 一个论断来自于 Xu[2014] non-blind deconvolution)
TODO: 有哪些结构能估计 psf 呢???
本文提出的方法:
- end-to-end 的输出是解卷积的 deconv filter 的FFT系数 (可以理解为 kernel 的傅里叶域表示)
- 对输入的 patch 进行频域的多尺度的分解, 而且限制初始参数只有局部的连接, 这样降低参数的数量 (文章说对比 Schuler, 在 feature 的结合时, 有 feature map 之间的全连接, 导致参数很多)。 当增加 patch 大小时, 可以学习更大的 psf.
Patch-wise neural deconvolution
Prediction deconvolutoin filter coefficients
$x[n]$, $y[n]$ 为实值函数, 且模糊核的累加和为1, 则可以假定 $G_{p^+}[z]=G_{p^+}^*[-z]$, $G_{p^+}[0]=1$. 损失函数定义在实域, 在真实图像与估计图像之间计算 Eucledean Loss, IDFT 以及频域的乘积都是_线性_运算, 则梯度可以传递到网络前端. (具体运算 refer to code)
使用了模糊图像 IDFT 做一次线性变换.
与 Learning to deblur 的对比是没有道理的, 不觉得本质是有什么不同. 举的例子, 只有竖线的时候, 本文方法可以只根据有用的频率来得到好的恢复结果, []也可能只会优化得到一个水平方向的 psf 来去卷积.
[]怎么来约束 psf 的稀疏性???
Motivation
- 强行将一个卷积操作加入到了网络中
- 在用 patch 训练时, 要考虑到各个方向都有信息才能估计模糊核, 而现在本文只希望得到清晰的 patch
!!! 思考: 在传统算法中, 核估计只需要少量的梯度, 并且要保证各个方向的梯度都存在; 随着图像的放大, 相应地增加用于核估计的像素. 如果设计网络结构, 怎样限制梯度的分布 ???
Network architecture
从作者的训练经验, 以及 Xu[2014], 在最开始的连接如果只使用有限的卷积层, 解卷积效果不好, 而是应该使用 大的 filter 或者全链接. (multiple small filter 对比 large filter: local field)
本文采用了多分辨率分解的策略, 不同的频率有不同的采样分辨率. 文章在三个不同的层次(对应三个不同的patch大小)计算DFT, 然后从每个变换中得到对应 $4 \lt \max|z| \lt 8$ 的系数 (??? How does this operate, refer to code). 这使得输入的维数下降, 本来 $G$ 也只有一半是未知数.
然后在前两层限制局部连接, 后面的层之间使用全连接 (卷积定理: 时域卷积=频域乘积, 在时域通过卷积得到特征, 频域乘积来得到)
Training
合成的模糊核通过在不同大小的格子里采样6个点, 然后通过样条函数拟合曲线, 然后对每个点通过高斯采样取值.
520k patch, 10k kernel. data argument, batch size, momentum, learning rate, iteratoin 1.8M.
Whole image restoration
经过图像重叠 patch 的恢复, patch 加权平均得到全图的估计, 然后使用全图再估计 模糊核. 本文使用了 half-quadratic splitting. 非盲解卷积使用 EPLL2011.
保证 kernel 的重心在中心, 这样图像才不同偏移.
Whole image restoration
使用 Hanning window [???] 方式合并全部 patches, 估计模糊核 psf , 再使用 non-blind deconvolution 算法求解.
Experiment
Local network predictions
查看相同的模糊核估计的去卷积的系数是不同的, 自圆其说.
Performance evaluation
most of [3,4]’s failure cases correspond to images that lack well-separated strong edges.