跳到主要内容
Sandbox Physics

光学 070 · 衍射、Fourier 光学与计算成像

计算去模糊 Lab

去卷积何时能恢复细节,何时只会放大噪声或模型误差? 模糊削弱了但还透过来的频率,去卷积能救回来。光学传递函数为零的频率,信息根本没到达传感器;在那附近做逆滤波,等于除以一个接近零的数,只会放大噪声和模糊核的误差。先验能替这些频率挑一个看着合理的答案,但那不是测量。

用截断逆滤波、Wiener 型岭滤波和 Richardson–Lucy(RL)三种方法,复原同一份带噪相机记录。看看错误的模糊核会造成什么伪影,哪些频率怎样都恢复不了。

交互模型计算去模糊 Lab
仅模拟模糊/复原误差 εblur,εrestore\varepsilon_{\rm blur},\varepsilon_{\rm restore}0.500.50
数据拟合/小传递面积 εD,m\varepsilon_D,m50%50\%
像侧数值孔径/实际传感距离 NA,dsensor{\rm NA},d_{\rm sensor}0.00π0.00\pi
模型适用区间模型适用\text{模型适用}

物理教程

检验计算去模糊 Lab的物理过程

背景相机先把非相干的强度目标模糊,再数光电子。记录值为 Di=Pi+ϵiD_i=P_i+\epsilon_i。关掉噪声时,记录的是期望值,不是整数个探测事件。读出噪声能让电子读数变成负的,但光子数不会是负的。

为什么值得理解去卷积何时能恢复细节,何时只会放大噪声或模型误差?

先抓重点

核心问题
去卷积何时能恢复细节,何时只会放大噪声或模型误差?
一句话直觉
所有算法都看不到真实图像。在光学传递为零的地方,H(ν)=0 ⟹ lost modeH(\nu)=0\ \Longrightarrow\ \text{lost mode}。先验可以挑出一个答案,却不能证明缺失的细节被测到了。试试截止外目标。

核心数学模型

先计光子,再做电子读出

μi=E(h∗f)iPi∼Poisson⁡(μi)Di=Pi+ϵiϵi∼N(0,σr2)\begin{aligned}\mu_i&=E(h*f)_i\\P_i&\sim\operatorname{Poisson}(\mu_i)\\D_i&=P_i+\epsilon_i\\\epsilon_i&\sim\mathcal N(0,\sigma_r^2)\end{aligned}

散粒噪声和电子读出噪声相互独立。期望模式下,记录的只是均值。负的电子读数会保留下来,用于谱滤波和评分;它们并不是负光子。

由光瞳衍射得到的模糊核

P=1ρ≤1eiϕ,ρ2=u2+v2ϕ2π=−wdρ2+wa(u2−v2)h=∣F−1P∣2∑∣F−1P∣2\begin{aligned}P&=\mathbf1_{\rho\le1}e^{i\phi},\quad \rho^2=u^2+v^2\\\frac{\phi}{2\pi}&=-w_d\rho^2+w_a(u^2-v^2)\\h&=\frac{|\mathcal F^{-1}P|^2}{\sum|\mathcal F^{-1}P|^2}\end{aligned}

模糊核由采样圆瞳和标量衍射算出。离焦和像散改变的是相位,不是孔径透过率。运动模糊再卷积一条快门期间的移动路径;视宁度再卷积一个 Gaussian 替代核。所有卷积都在标明的网格上按周期处理。

离焦对应的传感器位移

Δz=2λwdNA2,dsensor=f+Δz\Delta z=\frac{2\lambda w_d}{{\rm NA}^2},\quad d_{\rm sensor}=f+\Delta z

这是一阶近轴的离焦大小。正值把传感器移到名义焦点之后,负值移到之前。纯离焦时,正负号反过来,强度不变。这不是大位移下精确的球面波计算。

截断逆滤波

F^inv(ν)={G(ν)/H~(ν),∣H~∣≥10−30,otherwise\widehat F_{\rm inv}(\nu)=\begin{cases}G(\nu)/\widetilde H(\nu),&|\widetilde H|\ge10^{-3}\\0,&\text{otherwise}\end{cases}

数据除以已知的电子总数做归一化。假定的传递函数可以和真实的不同。阈值避免了除以数值零,但噪声仍可能被严重放大。

常数比的 Wiener 型滤波

F^K=H~∗∣H~∣2+K G\widehat F_K=\frac{\widetilde H^*}{|\widetilde H|^2+K}\,G

常数谱比由用户设定,在这里等同于用单位矩阵作罚项的岭回归。它不是经过标定、随频率变化的最优 Wiener 滤波,而且 Poisson 噪声随信号变化。评分用的是带正负号的原始估计,没有经过显示截断。

RL 迭代只用采集到的记录

f(k+1)=f(k)⊙H~T ⁣(D/EH~f(k))f^{(k+1)}=f^{(k)}\odot\widetilde H^T\!\left(\frac{D/E}{\widetilde H f^{(k)}}\right)

迭代从一张正的均匀图开始,用归一化模糊核的伴随算子。似然只考虑 Poisson 噪声,最多迭代八十步;提前停止本身就是一种隐含的先验。存在 Gaussian 读出噪声时,这个近似更新会把负数据截为零,并给出警告。参数不会参照真值自动调整。

常见难点

越锐利就越正确吗?

容易误解复原锐利、拟合残差小,就证明细节已恢复。

正确理解逆滤波会放大噪声,正则化会带来偏差,RL 迭代太多会去拟合噪声。要看相对单独保存的模拟真值的评分,以及光学系统能传过来的频带,不能只看锐不锐。

动手实验

  1. 01

    场景 1:离焦 · 可恢复频带

    从离焦开始,查看传感器正面。用同一个尺度对比采集图和复原图。

    你会看到: 离焦会移动相机本身,但不改变透光的光瞳。模糊核经过归一化,标明的光电子总数保持不变。
  2. 02

    场景 2:运动与读出噪声

    保持同一份记录,切换复原算法。加噪声、增加 RL 步数,或者故意扰动交给算法的 PSF。

    你会看到: 所有算法用的是同一份原始记录。改变假定的模糊核,只改变处理,不改变采集。
  3. 03

    场景 3:Poisson 星场 · RL 迭代

    拖动答案探针,设定所有图共用的横截面。选择截止外条纹,看采集里已经缺失的信息。

    你会看到: 放大的噪声、偏差、错误模糊核造成的伪影,以及传递为零的频带,都看得见。拟合得更好,不一定复原得更真。
反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策