Richardson-Lucy Deconvolution
RL反卷积都干了些啥
RL反卷积是通过迭代的方法来优化损失函数,利用噪声性质和成像系统的点分布函数(Point Spread Function)对图像进行去噪的一种方法。 损失函数是啥样的呢?
$$ J(O) = \Sigma(O**PSF - I \cdot ln(O ** PSF)) $$
且有:
- $J$,损失函数,为最小化的目标
- $O(x,y)$,不受椒盐噪声和点分布函数模糊效应影响的理想原始图像
- $PSF(x,y)$,Point Spread Function,点分布函数
- $I(x,y)$,实际拍摄到的图像
- $**$,二维卷积
- $\cdot$,按元素相乘
既然要优化$J(O)$,那么就对O求导:
$$ \nabla J = [1 - \frac{I}{O**PSF}] ** PSF^{T} $$
利用迭代法,就可以使代价函数最小,如下:
$$ O_{k+1} = O_{k} - \alpha \cdot \nabla J $$
简化可得:
$$ O_{k+1} = O_{k} \cdot [\frac{I}{O_{k} ** PSF} ** PSF^{T}] $$
按照这个迭代式,一般RL反卷积算法迭代个十几次就差不多了。
但是!
为什么要这么干呢?代价函数是怎么来的呢? 这和光学设备的成像的噪声性质有关系。
数码噪点的泊松分布
由于光线具有波粒二象性,在进行数字成像时,在像素点上的光子数量在概率上呈泊松分布。
对于某个像素点而言,曝光时的光电子数量$i$满足泊松分布:
$$ p(i) = e^{-\lambda} \cdot \frac{\lambda ^{i}}{i!} $$
其中,$p(i)$表示像素接收到i个光电子的概率,而$\lambda$表示像素接收到的光电子数量的期望值(平均值)。
问题的转化:极大似然估计
考虑整个图像的联合概率为每个像素的概率的乘积:
$$ P(I) = \prod e^{-\Lambda} \cdot \frac{\Lambda^{I}}{I!} $$
且有:
- $P(I)$:整个图像每个像素的联合概率
- $I$:实际拍摄到的图像数据,包含噪声,M行N列
- $\Lambda$:无泊松噪声的理想图像数据,M行N列
那么很自然的,才用极大似然估计,对上式取对数,化乘为加:
$$ ln(P(I)) = - \Sigma (\Lambda - I \cdot ln(\Lambda) + ln(I!)) $$
其中,$ln(I!)$是常数项,而对于$\Lambda$,有:
$$ \Lambda = O ** PSF $$
去掉到最大似然估计函数前面的负号以及常数项,代入上式就可以得到最小化目标的损失函数:
$$ J(O) = \Sigma(O**PSF - I \cdot ln(O ** PSF)) $$
小结
最大似然估计大法好。一些机器学习方法里面的贝叶斯方法也用到了最大似然估计来求参,真是有种触类旁通的感觉呢。