Learning Fully Convolutional Networks for Iterative Non-blind Deconvolution论文阅读
Learning Fully Convolutional Networks for Iterative Non-blind Deconvolution
-
-
- 1. 研究目标与实际问题
-
- 1.1 研究目标
-
1.2 实际意义
- 2. 创新方法与模型设计
-
- 2.1 核心框架:迭代式梯度域处理
-
- 2.1.1 模型架构
-
2.2 关键技术实现
-
- 2.2.1 梯度域去噪网络
- 2.2.2 解卷积模块(核心公式实现)
- 2.2.3 损失函数设计
- 2.2.4 超参数端到端学习
-
2.3 与传统方法对比优势
-
2.4 核心创新总结
- 3. 实验设计与结果分析
-
- 3.1 实验设计
-
3.2 关键结果
-
4. 未来研究方向
-
- 4.1 挑战与机遇
-
5. 批判性分析
-
- 5.1 局限性
-
-
5.2 未验证问题
- 6. 即用创新点与学习建议
-
- 6.1 核心创新点
-
6.2 学习建议
-
6.3 实践启发
-
1. 研究目标与实际问题
1.1 研究目标
论文的核心目标是解决单图像非盲去卷积 (Single Image Non-blind Deconvolution)问题:
“Single image non-blind deconvolution aims to recover a sharp latent image given a blurred image and the blur kernel.”
即,在已知模糊核(blur kernel)的前提下,从模糊图像中恢复清晰的原始图像。
1.2 实际意义
-
产业应用 :
在相机防抖、医学成像、天文观测等领域,图像模糊是常见问题。传统方法(如Wiener滤波)易产生振铃伪影(ringing artifacts),且难以处理大范围模糊和高噪声场景。 -
技术痛点 :
现有基于深度学习的非盲去卷积方法需为不同模糊核重新训练网络(如Xu et al. 2014),实际应用成本高昂且不灵活。
2. 创新方法与模型设计
2.1 核心框架:迭代式梯度域处理
论文提出迭代式全卷积网络 (Iterative FCNN)框架,将非盲去卷积分解为两个交替步骤:
- 梯度域去噪(Gradient Domain Denoising) :使用FCNN在梯度域去除噪声和振铃伪影
- 傅里叶域解卷积(Fourier Deconvolution) :基于去噪梯度恢复清晰图像
这一过程通过基于半二次分裂优化 (Half-Quadratic Splitting)的三阶段迭代架构 实现。(代码文件DL_deblur.m完整实现了该流程)。
2.1.1 模型架构
图像退化模型 :
y = k * x + n \quad (1)
- y:模糊图像,k:模糊核,x:清晰图像,n:加性噪声。
传统优化目标:
\min_x \frac{\lambda}{2}|y-x*k|_2^2 + \sum \rho(p_l * x)\quad (2)
半二次分裂优化(Half-Quadratic Splitting) :
\min_{x,z} \frac{\lambda}{2} \|y - x * k\|_2^2 + \beta \sum_{l=h,w} \|z_l - p_l * x\|_2^2 + \rho(z_l) \quad (3)
- z_l:辅助变量,\rho(\cdot):梯度正则化项。
将半二次分裂优化嵌入网络架构(公式3→6)

图1:网络架构
- 迭代流程 :
- 输入模糊图像和模糊核。
- 通过解卷积模块生成初始去模糊结果。
- 计算水平和垂直梯度,输入FCNN去噪。
- 用去噪后的梯度指导下一次迭代的解卷积。
- 重复3次迭代输出最终结果。
代码实现 (DL_deblur.m):
function outIm = DL_deblur(blurImg, kernel, net, lambda)
% 初始化梯度算子
grad1 = [0,0,0;0,1,-1;0,0,0]; % 水平梯度算子
grad2 = [0,0,0;0,1,0;0,-1,0]; % 垂直梯度算子
% 傅里叶转换关键组件
gradF = cat(3, psf2otf(grad1), psf2otf(grad2)); % 梯度滤波器频域表示
kernelF = psf2otf(kernel); % 模糊核频域表示
% 三次迭代过程
for iter = 1:3
% 解卷积模块(公式6)
deconvImgF = deconv(blurImgF, guideGrad, kernelF, gradF, ...);
% 计算图像梯度(频域→空间域)
grad_h = real(ifft2(deconvImgF .* gradF(:,:,1)));
grad_v = real(ifft2(deconvImgF .* gradF(:,:,2)));
% 梯度域去噪(FCNN)
denoised_grad_h = FCNN_forward(grad_h, net(iter,:));
denoised_grad_v = FCNN_forward(grad_v, net(iter,:));
% 更新指导梯度
guideGrad = cat(3, denoised_grad_h, denoised_grad_v);
end
outIm = real(ifft2(deconvImgF));
end
matlab

2.2 关键技术实现
2.2.1 梯度域去噪网络
网络结构 (对应论文表1与代码DL_deblur.m):
grad_v = grad_v'; % 转置后复用水平梯度网络权重 denoised_grad_v = denoised_grad_v'; % 转置还原
deconvImgGrad1_1 = vl_nnconv(..., net(iter,1).w, ...); % Conv1: 5x5 kernel
deconvImgGrad1_1 = vl_nnrelu(...); % ReLU激活
...
deconvImgGrad1_1 = vl_nnconv(..., net(iter,6).w, ...); % Conv6: 3x3 kernel(无激活)
matlab
6层卷积设计 :
| 层 | 卷积核 | 填充 | 通道数 | 激活 |
|---|---|---|---|---|
| Conv1 | 5×5 | 2 | 64 | ReLU |
| Conv2-5 | 3×3 | 1 | 64 | ReLU |
| Conv6 | 3×3 | 1 | 1 | None |
创新设计 :
* **梯度域输入** :处理水平/垂直梯度而非原始图像(对比图2证明有效性)
* **权重共享** :通过转置操作使水平/垂直梯度共享相同权重(代码中`deconvImgGrad2_1 = deconvImgGrad2_1';`)
* **迭代独立权重** :每个迭代阶段使用独立网络参数(`net(iter, layer)`)
2.2.2 解卷积模块(核心公式实现)
傅里叶域解卷积公式 (论文公式6):
x=\mathcal{F}^{-1}\left(\frac{\gamma\overline{\mathcal{F}(k)}\mathcal{F}(y)+\sum_{l=h,w}\overline{\mathcal{F}(p_{l})}\mathcal{F}(z_{l})}{\gamma\overline{\mathcal{F}(k)}\mathcal{F}(k)+\sum_{l=h,w}\overline{\mathcal{F}(p_{l})}\mathcal{F}(p_{l})}\right)
- \mathcal{F}:傅里叶变换,\gamma = \lambda / (2\beta):超参数。
代码实现 (deconv.m):
function deconvImgF = deconv(blurImgF, guideGrad, kernelF, gradF, denom1, denom2, lambda)
% 分子计算(公式分子部分)
numerator = lambda*(blurImgF.*conj(kernelF)) + ...
fft2(guideGrad(:,:,1)).*conj(gradF(:,:,1)) + ...
fft2(guideGrad(:,:,2)).*conj(gradF(:,:,2));
denominator = lambda*denom1 + denom2 + 0.0001; % 添加正则项防除零
deconvImgF = numerator ./ denominator; % 频域除法对应公式
end
matlab
- 关键变量 :
denom1 = |F(k)|²(模糊核能量谱)denom2 = |F(∇h)|² + |F(∇v)|²(梯度算子能量谱)guideGrad:FCNN去噪后的梯度(公式中的z_l)
2.2.3 损失函数设计
L1梯度损失 (论文公式7):
L(\nabla_h x, \nabla_w x, x_0; \theta) = \frac{1}{N} \sum_{i=1}^N \left( \|f(\nabla_h x^{(i)}; \theta) - \nabla_h x_0^{(i)} \|_1 + \|f(\nabla_w x^{(i)}; \theta) - \nabla_w x_0^{(i)} \|_1 \right) \quad (7)
创新优势 :
- 对比L2损失(图4),L1对噪声和伪影更鲁棒
- 保留边缘锐度(图5显示L1损失生成更干净的梯度)
2.2.4 超参数端到端学习
可学习参数 \gamma(论文公式8-10):
- 前向传播:\gamma = \lambda / (2\beta) 控制数据保真项权重
- 反向传播梯度计算(式10):
\Delta_{\gamma}=\left(\frac{DH-EG}{(\gamma G+H)^{2}}\right)^{\top}L_{x}^{h}
(其中D=\overline{\mathcal{F}(k)}\mathcal{F}(y), E=\sum\overline{\mathcal{F}(p_l)}\mathcal{F}(z_l)等)
代码实现 :
- 超参数作为网络参数存储(
lambda = loadNetwork(net_path)) - 训练时通过SGD更新
2.3 与传统方法对比优势
| 方法类型 | 代表方法 | 本文优势 |
|---|---|---|
| 传统优化方法 | EPLL, Hyper-Laplacian | 避免非凸优化,速度提升10^3倍 |
| 深度学习单次推理 | Schuler MLP, Xu CNN | 无需为不同模糊核重训练网络 |
| 频域处理 | Wiener滤波 | 自适应学习先验,抑制振铃伪影 |
2.4 核心创新总结
物理指导的深度学习 * 将半二次分裂优化嵌入网络架构(公式3→6)
* FCNN仅在梯度域学习残差(避免端到端黑箱)
频域-空间域协同
模糊图像
傅里叶解卷积
梯度计算
FCNN梯度去噪
更新指导梯度
可学习超参数机制 * \gamma = \lambda / (2\beta) 作为网络参数
* 通过公式10实现梯度反向传播
迭代精炼架构 * 三阶段逐步优化(PSNR提升0.32dB/1%噪声)
* 各阶段独立参数增强表达能力
3. 实验设计与结果分析
3.1 实验设计
-
数据集 :
- 训练集:BSD500(256×256图像块),模糊核大小11-31像素(图6)。
- 测试集:Sun et al. 数据集(80张清晰图像) + Levin et al. 模糊核(8种),共640张模糊图像。
-
噪声水平 :1%、3%、5%高斯噪声。
-
对比方法 :HL(Hyper-Laplacian)、EPLL、MLP、CSF。
3.2 关键结果
定量指标(PSNR/SSIM) :
| 噪声水平 | 方法 | PSNR↑ | SSIM↑ |
|---|---|---|---|
| 1% | 3-iteration | 32.82 | 0.90 |
| EPLL [39] | 33.00 | 0.89 | |
| 5% | 3-iteration | 27.46 | 0.74 |
| HL [14] | 25.85 | 0.67 |
在1%噪声下,本文方法PSNR比单次迭代高0.32 dB(表3),证明迭代优化的有效性。
视觉对比(图7) :

* EPLL平滑细节(图7c),本文方法纹理更清晰(图7f)。
时间(表7) :
| 图像大小 | 本文方法 | EPLL |
|---|---|---|
| 512×400 | 0.02秒 | 209.58秒 |
| 1536×1200 | 0.06秒 | N/A |
* 基于GPU(Nvidia K40),速度提升1000+倍。
4. 未来研究方向
4.1 挑战与机遇
| 挑战 | 潜在研究方向 |
|---|---|
| 模糊核估计误差鲁棒性 | 结合盲去卷积(Blind Deconvolution)技术 |
| 超高分辨率图像处理效率 | 轻量化网络设计(如知识蒸馏) |
| 复杂噪声建模(如运动模糊) | 多模态输入融合(如事件相机数据) |
5. 批判性分析
5.1 局限性
-
模糊核依赖性 :
实验假设模糊核已知,实际应用中需依赖外部估计方法(如Pan et al. 2018),若估计不准,性能下降。 -
噪声模型单一 :
仅测试高斯噪声,未涵盖真实场景的复杂噪声(如泊松噪声)。 -
迭代次数固定 :
实验显示3次迭代后收益饱和(表2),但未设计自适应停止机制。
5.2 未验证问题
- 极端模糊核 :超大模糊核(>50像素)或非均匀模糊的泛化能力。
- 跨数据集泛化 :在非自然图像(如卫星影像)上的表现。
6. 即用创新点与学习建议
6.1 核心创新点
-
梯度域去噪 :
在梯度域训练FCNN,保留细节的同时抑制伪影。 -
L1损失函数 :
比L2更鲁棒,减少平滑区域的噪声放大。 -
超参数端到端学习 :
公式(8)-(10)实现\gamma的自动优化。
6.2 学习建议
| 需补充的背景知识 | 推荐资料 |
|---|---|
| 半二次分裂优化 | Krishnan & Fergus (NIPS 2009) |
| 傅里叶变换在去卷积中的应用 | Wiener (1949) 经典论文 |
| 全卷积网络设计 | Long et al. (CVPR 2015) FCN论文 |
6.3 实践启发
-
工业应用 :
将迭代FCNN嵌入相机ISP管线,提升低光拍摄质量。 -
研究扩展 :
结合Transformer增强全局建模能力(如SwinIR)。
