本文旨在总结图像处理中使用去卷积的传统方法来进行图像去模糊的相关知识。
ps:此处的去卷积与神经网络中的反卷积存在差异
1.模糊的成因
- 镜头的缺陷
镜头的缺陷有两类:
- 像差,比如色差和球差
- 衍射,这是因为光的波动性导致的,只要光通过光圈就会产生衍射
- 相机的抖动
- 场景的运动
- 景深的限制
- 后期的处理
2.PSF(点扩散函数)
这里先考虑衍射导致的模糊。
当一个点光源发出的光经过显微镜系统传输到检测器的时候,由于光的衍射现象,检测器接收到的信号不再是一个聚焦的点,而是呈现出一个在三维空间上的扩散分布。这个观测到的三维空间上的扩散分布就是所用的这个显微镜系统的PSF。(这种只因为衍射形成的PSF我们称之为衍射极限PSF(Diffraction Limit PSF))
对一个具体的成像来说,PSF的影响如下图
也就是实际成像=理想成像与PSF的卷积运算
3.去卷积
根据上边的公式,可以看到要求理想成像(的近似)就是对上式进行逆运算 。注意先将空域的卷积通过傅里叶变换转换为频域的乘法。
当然上述方法没有考虑噪声,实际上成像公式应该长这样,n为噪声
3.1 非盲去卷积
根据上面的理论,如果已知模糊的图像b以及成像系统的PSF,恢复原始图像是可能,这个过程叫做非盲去卷积(Non-blind deconvolution)。在这个领域已经提出多个算法,如:
- 维纳滤波(Wiener Filter)
- Richardson-Lucy方法
3.2 盲去卷积
PSF本质上是一个卷积核,如果模糊是光学系统的像差和衍射导致的,可以通过实验测定或是用公式理论计算。下图为ImageJ通过参数生成理论PSF,在Zemax也有类似功能
如果是运动模糊、失焦或是其他原因导致的模糊,此时PSF常被称为模糊核,总之就是卷积核,更重要的是此时PSF通常是未知的,由此开发出的算法称为盲去卷积。
这个领域同样存在很多有效的算法,如:
- 变分贝叶斯:估计出PSF,再使用非盲去卷积里的算法
ps:对于不同原因导致的模糊,算法的实际效果是不同的(实际是因为其PSF大有不同),针对性使用算法会得到更好的效果。但从PSF已知与否,去卷积就分为这两类,其中的算法各有侧重。
以下为各种原因导致模糊时不同的SPF:
- 衍射极限PSF
- 相机运动模糊PSF(注意和被拍摄物运动模糊的不同)
- 失焦模糊的PSF,此处为对不同深度的图像区域分别去卷积