天文图像复原:盲解卷积为什么这么难
天文图像复原的目标很明确:把被大气、光学系统或探测器模糊掉的图像,还原成接近真实的样子。工程上常说的“去卷积”“去模糊”,数学本质都是同一个问题。
成像模型:一个卷积
在大多数情况下,成像过程可以写成:
g = f ⊗ h + n
g 是拍到的图像,f 是真实目标,h 是点扩散函数(PSF),n 是噪声,⊗ 表示卷积。所谓复原,就是已知 g,求 f。
如果 h 已知,这是个线性反问题。最直接的做法是转到频域做除法,但噪声在高频会被无限放大——这就是为什么朴素的逆滤波几乎必然失败。实用方案是维纳滤波(引入噪声与信号的功率比作为抑制项)或者 Richardson-Lucy 迭代(基于泊松噪声模型,保正性,天文上用得最多)。
问题在于 h 也不知道
天文观测的尴尬之处:PSF 本身是未知的。
大气湍流是随机的,同一晚上不同时刻的 PSF 都不一样;望远镜的像差、跟踪误差、探测器抖动又各自贡献一部分。你没有办法像实验室里那样先测一张点光源的响应,再去复原。
于是问题变成:两个未知数(f 和 h),一个方程。这在数学上是严重欠定的——存在无穷多组 (f, h) 组合能产生同一张 g。这就是盲解卷积(blind deconvolution)的根本困难。
为什么不能“随便找一组解”
因为绝大多数数学上成立的解,物理上都很荒谬。
比如:把 f 设成 g 本身、把 h 设成 δ 函数(不模糊),等式照样成立——但这等于什么都没做。反过来,也可以让 f 变成一堆孤立亮点、让 h 变成复杂的弥散斑,同样能凑出 g。
要挑出“正确”的解,必须引入先验约束:
- h 的参数化:假设 PSF 具有某种形状(高斯、Moffat 轮廓、或者由 Zernike 系数描述),把未知量从几百万个像素压缩到十几个参数。这一步往往决定成败——参数化错了,后面怎么优化都白搭。
- f 的正则化:图像应该是分片平滑的、边缘是稀疏的、亮度非负。全变分(TV)正则、稀疏先验都是这个思路。
- 多帧联合:同一目标拍几十上百帧,假设 f 不变而 h 逐帧变化,就可以从多帧中把 f 和各自的 h 分离出来。散斑成像(speckle imaging)就是这一路。
深度学习的加入,改变了什么
近十年,基于神经网络的复原方法大量涌现。它们的思路是:不去显式建模 h,而是用大量“模糊-清晰”图像对训练一个网络,让它学会从模糊图直接映射到清晰图。
效果在很多基准测试上确实显著优于传统方法,但它带来了新问题:
- 泛化性:在仿真数据上训练的网络,遇到真实望远镜数据(噪声特性、PSF 形态都不同)时性能常常大幅下降。
- 幻觉:网络可能“编造”出数据里并不存在的细节——这在科研场景是致命的。做测光或形态分析时,一个凭空生成的亮点足以让结论出错。
- 不可解释:传统方法能给出残余误差和不确定度,网络很难。
所以现在比较务实的方向是物理约束 + 数据驱动:把成像模型作为网络的一个环节嵌入进去(unrolled network / physics-informed),或者用网络只做参数估计、后续仍走经典复原流程。这样既利用了数据,又保留了可解释的物理框架。
怎么判断复原得好不好
这一点常被忽略。复原结果没有“标准答案”可比对,实践中通常看几个侧面:
- 残差:把复原结果重新卷积 PSF,是否还能还原出原始观测?
- 一致性:改变正则化参数或迭代次数,结果是否稳定?
- 物理合理性:有没有负值、有没有超出探测器动态范围的异常亮斑?
- 下游任务:如果复原是为了测光或做形态分类,那就看下游精度有没有真的提高。
最后一条最重要。图像“看起来更清楚”和“科学上更有用”是两件事,后者才是天文复原的真正目标。
