LearnIR:基于后验采样的图像恢复技术,解决人脸去阴影与去雾难题
1. 项目概述当图像恢复遇见后验采样最近在整理ICLR 2026的论文清单一篇名为“LearnIR”的工作引起了我的注意。它探讨的是一个非常经典但又充满挑战的领域图像恢复。具体来说是解决人脸图像中的阴影去除和雾霾去除问题。这两个问题看似不同实则内核相通——都是要从一个被严重退化的观测图像中恢复出清晰、干净的原始图像。我们每天用手机拍照逆光下的人脸一片死黑或者雾天拍出来的照片灰蒙蒙的背后的核心难题就是信息丢失和噪声干扰。传统的图像恢复方法无论是基于物理模型比如暗通道先验去雾还是基于深度学习常常陷入一个两难境地要么恢复结果过于平滑丢失了关键的纹理细节要么为了追求细节而引入了不真实的伪影或噪声。LearnIR这篇论文提出了一种基于“后验采样”的新思路试图在“保真度”恢复图像与真实干净图像的接近程度和“感知质量”恢复图像看起来是否自然、舒服之间找到一个更优雅的平衡点。简单来说它不再追求一个唯一的、“最可能”的干净图像而是承认对于一张模糊或有雾的输入可能存在多个同样合理的清晰版本。然后它通过一种巧妙的采样机制从这些可能性中生成既清晰又自然的恢复结果。这个方法在人脸去阴影和去雾任务上都展现出了令人印象深刻的效果尤其是对人脸皮肤纹理、毛发细节的恢复比许多现有方法要细腻、自然得多。2. 核心思路拆解为什么是“后验采样”2.1 图像恢复的本质与困境要理解LearnIR的巧妙之处我们得先看看图像恢复这个问题的本质。我们可以用一个简单的公式来描述退化过程y k * x n。这里y是我们拍到的模糊/有雾/有阴影的图片x是我们想得到的干净图片k代表退化过程比如雾的散射、阴影的遮挡n代表额外的噪声。我们的目标是从y反推出x。这被称为一个“病态逆问题”。所谓病态意思是对于同一个观测y可能有无数个x都能通过退化过程k近似得到它。想象一下你看到玻璃窗上一个模糊的手印你很难确定手指原本的精确纹路。传统深度学习方法的做法是训练一个神经网络f让它学习一个从y到x的确定性映射即x_hat f(y)。网络的目标是最小化x_hat和真实干净x之间的差距比如L1或L2损失。但这里有个根本矛盾L1/L2损失函数鼓励网络输出所有可能干净图像的平均值。对于模糊的边缘平均值会导致边缘变平滑对于被阴影遮盖的皮肤纹理平均值可能生成一块毫无细节的均匀肤色。这就是为什么很多方法恢复出来的图像看起来“塑料感”很重缺乏生动的细节。另一方面如果为了增强细节而使用更复杂的损失或网络结构又容易放大噪声或产生奇怪的纹理导致图像不自然。2.2 后验采样的思想引入LearnIR的核心思想跳出了“寻找唯一最优解”的框架。它转而思考给定退化图像y所有可能的干净图像x构成一个概率分布即后验分布p(x|y)。这个分布的高概率区域就对应着那些能很好解释观测y的、视觉上合理的干净图像。与其费力地去计算这个分布的平均值那个“塑料感”的平滑解不如直接从这个分布中“采样”。采样得到的图像天然地具有该分布所蕴含的多样性和随机性而这些随机性恰恰对应着真实的、高频的细节纹理。比如人脸皮肤上的微小毛孔和细纹在概率分布中表现为一定范围内的随机模式采样过程就能自然地生成这些模式而不是将其平滑掉。这就像是一位技艺高超的修复师面对一幅古画上的污渍他不是猜测“这里原来一定是画了一朵一模一样的花”而是根据画作的风格、笔触和周围环境“想象”出几种同样合理且符合整体意境的修复方案。LearnIR中的神经网络学习的就是这个“想象”或者说“采样”的能力。2.3 LearnIR的总体架构设计LearnIR的架构可以概括为“一个主干两个阶段”。主干是一个编码器-解码器结构的U-Net变体负责提取多尺度特征。关键创新在于两个阶段后验分布建模阶段网络不仅输出一个确定的图像还输出一个表征不确定性的“噪声图”或特征空间的分布参数。这个阶段通过一种特殊的训练策略让网络学会将图像中的模糊、阴影区域与较高的不确定性关联起来。条件化采样阶段在推理时对于输入图像y网络首先估计其后验分布的特性。然后通过引入一个可控的随机噪声向量可以理解为“创作种子”结合估计的分布参数进行条件采样生成最终的恢复图像x_hat。这个噪声向量很关键同样的输入y不同的噪声会采样出细节略有不同但整体都清晰合理的干净图像。这种方法的好处是显而易见的在纹理丰富的区域如头发、皮肤采样可以生成生动多样的细节在平坦区域如天空、墙面采样结果会趋于稳定一致。它巧妙地将“恢复确定性内容”和“生成合理随机细节”的任务解耦了。3. 关键技术细节与实现要点3.1 不确定性引导的注意力机制如何让网络知道哪里该“确定”哪里可以“随机”呢LearnIR设计了一个不确定性引导的注意力模块。网络在编码过程中会并行生成一个“不确定性图”U。U中每个像素的值表示该位置恢复结果的不确定性程度。例如在浓重的阴影内部或浓雾区域不确定性就很高在图像中清晰可见的部分不确定性就很低。这个不确定性图U被用来调制特征图。在解码器进行上采样和特征融合时高不确定性的区域会被赋予更高的“注意力权重”意味着网络可以更自由地利用来自跳跃连接的特征和先验知识来“创造”细节而低不确定性区域则更严格地依赖观测图像y本身的信息。这相当于给网络装了一个“智能开关”告诉它“这里信息缺失严重你可以大胆发挥想象力这里信息完整请老老实实还原。”注意这个不确定性图不是通过额外的监督信号学习的而是通过设计一个特殊的损失函数让网络在训练中自发地学习到。通常它会与恢复图像的重建误差相关联使得在难以重建的区域网络“承认”自己的不确定性。3.2 基于扩散模型思想的采样器虽然论文没有明确说使用了扩散模型但LearnIR的采样过程深受其启发。它没有采用复杂的马尔可夫链蒙特卡洛方法而是借鉴了去噪扩散概率模型中的“去噪”思想。具体实现上网络学习的是一个“去噪”或“ refinement”的过程。在训练时除了输入退化图像y还会向干净的训练图像x添加不同程度的高斯噪声得到x_t。网络的任务是给定y和x_t预测出添加到x上的噪声。这个过程迫使网络理解在观测y的约束下一个带噪声的干净图像应该如何被“净化”。在推理采样时我们从一张纯噪声图像x_T开始结合观测y利用训练好的网络一步步进行“去噪”最终采样得到一个干净的x_0。由于起始的噪声是随机的每次采样就会得到不同的结果但这些结果都受到同一个y的强约束因此主体结构一致细节各有千秋。这种方法比传统的GAN更加稳定生成的细节也更自然。3.3 针对人脸先验的定制化设计因为LearnIR重点应用在人脸图像恢复所以它巧妙地融入了人脸先验知识这大大提升了恢复质量。几何先验网络会粗略估计人脸的关键点或3D形状。在解码过程中这个几何信息被用来引导特征对齐。例如在去除侧脸阴影时网络知道眼睛、鼻子、嘴巴应该出现在什么相对位置从而能更准确地将被阴影扭曲的纹理“摆正”。语义先验网络隐式地学习了人脸的语义分割皮肤、眼睛、嘴唇、头发等。在恢复时对不同语义区域采用略有差异的恢复策略。比如对皮肤区域倾向于生成平滑但有细微纹理的结果对头发区域则允许生成更尖锐、更具方向性的发丝细节。对抗性感知损失除了像素级的L1损失还引入了一个基于人脸识别网络如ArcFace提取的特征损失。这个损失确保恢复出来的人脸在高级语义特征空间里与真实干净人脸接近。这能有效防止恢复过程改变人物的身份特征对于去雾后的人脸识别应用至关重要。4. 实操过程与核心环节实现4.1 数据准备与退化模拟要训练这样的模型高质量的数据对(y, x)是关键。对于人脸去阴影和去雾理想情况是有真实场景下同一人脸在同一姿态下一张有阴影/雾、一张干净的配对数据。但这几乎不可能大规模获取。因此主流做法是使用高清干净人脸数据集如FFHQ、CelebA-HQ通过物理模型或深度学习模型来合成退化图像y。对于去阴影获取阴影模板从真实阴影图像或3D渲染中提取阴影掩膜。物理模型合成使用y x * (1 - α * S) β。其中S是归一化的阴影掩膜0-1α控制阴影深度β模拟环境光。可以随机调整α,β以及阴影的位置、形状、软硬度来生成多样化的训练数据。考虑交互反射高级的合成还会模拟阴影区域受到周围物体颜色反射的影响使合成的阴影更真实。对于去雾大气散射模型使用经典模型y x * t A * (1 - t)。其中t是透射率图A是全球大气光值。生成透射率图根据深度图可以粗略估计或随机生成和随机的大气散射系数β来计算t exp(-β * depth)。随机化参数对A通常接近白色但略带颜色、β和深度图的尺度进行随机化模拟不同浓度、不同颜色的雾霾。实操心得数据合成的质量直接决定模型上限。不要只使用一种简单的退化模型。建议混合多种合成方法并加入真实拍摄的少量退化图像进行微调这能极大提升模型在真实场景下的泛化能力。对于人脸要特别注意合成时保持人脸五官的相对位置不变避免因扭曲导致模型学习到错误关联。4.2 网络训练的关键步骤假设我们使用PyTorch框架训练流程的核心步骤如下初始化加载配对数据集(y, x)。初始化U-Net主干、不确定性估计模块等。前向传播输入退化图像y到编码器得到多尺度特征。不确定性模块根据中间特征生成不确定性图U。解码器结合U、跳跃连接的特征以及条件信息如估计的人脸关键点进行上采样和特征调制。最终网络输出两个东西一个初步的恢复图像x_pred和一个用于采样过程的噪声预测ε_pred。损失计算这是训练的核心通常是一个多任务损失的加权和。重建损失 (L_rec)计算x_pred与干净图像x之间的L1损失。这是基础。感知损失 (L_per)将x_pred和x输入一个预训练的VGG或人脸识别网络计算高层特征图的MSE损失。保证语义一致性。对抗损失 (L_adv)引入一个判别器判断恢复图像是否真实。使用WGAN-GP或Hinge损失来训练生成器我们的主网络和判别器。提升整体视觉真实感。不确定性正则化损失 (L_unc)鼓励不确定性图U在信息确实缺失的区域如阴影核心、浓雾区有高值在清晰区域有低值。可以通过将U与重建误差图的相关性作为损失来实现。扩散损失 (L_diff)如果采用扩散采样则需要在训练时对x加噪得到x_t让网络预测噪声损失为预测噪声与实际噪声的MSE。总损失L_total λ1*L_rec λ2*L_per λ3*L_adv λ4*L_unc λ5*L_diff。权重λ需要仔细调优。反向传播与优化计算总损失的梯度使用Adam或AdamW优化器更新网络参数。4.3 推理与采样过程训练完成后推理阶段才是体现后验采样价值的时刻。确定性路径可选如果只想得到一个快速结果可以直接使用网络输出的x_pred。这相当于取了后验分布的一个均值估计效果通常比纯L1损失网络好因为感知损失和对抗损失已经提升了它的质量。随机采样路径输入待恢复图像y。如果需要生成多样结果就随机生成一个噪声向量z。将y和z一同输入网络。在扩散采样的框架下这对应着从x_T开始通过T步迭代去噪每一步都利用网络预测的噪声并结合条件y进行更新。经过T步后得到采样输出x_sample。每次用不同的z就会得到细节不同的x_sample。后处理通常不需要复杂的后处理。有时可以对采样结果进行轻微的锐化或颜色校正以匹配个人偏好但模型输出本身已经具备很高的质量。5. 常见问题与排查技巧实录在实际复现和调试LearnIR这类模型时会遇到一些典型问题。下面是我踩过的一些坑和解决方法。5.1 恢复结果过于平滑缺乏细节问题现象输出的人脸像塑料娃娃皮肤没有毛孔和细纹头发糊成一团。可能原因重建损失L_rec尤其是L2损失的权重λ1过高压制了其他损失。对抗损失L_adv没有有效工作判别器太弱或者训练不稳定。不确定性估计模块失效所有区域的不确定性都偏低导致网络不敢“创造”细节。采样过程的随机性z没有起作用或者采样步数T太少没有充分探索后验空间。排查与解决调整损失权重逐步降低λ1同时提升λ2感知损失和λ3对抗损失的权重。感知损失能保住高频结构对抗损失能激励细节生成。检查对抗训练监控判别器的损失。如果判别器损失很快降到0说明生成器太弱需要减弱判别器或调整学习率。使用WGAN-GP或Hinge损失通常比原始GAN更稳定。可视化不确定性图在验证集上运行网络输出不确定性图U。检查阴影/雾区是否真的呈现高亮高不确定性。如果不是需要加强L_unc损失或者检查不确定性模块的结构。增加采样随机性确保推理时噪声向量z是随机生成的且被正确输入网络。尝试增加扩散采样步数T观察细节是否逐渐丰富。5.2 恢复结果出现伪影或扭曲问题现象人脸五官扭曲皮肤上出现不规则的色块或纹理像油画一样。可能原因对抗损失过于强大导致生成器“走火入魔”为了欺骗判别器而生成不真实的纹理。感知损失使用的网络如VGG提取的特征过于抽象在像素级对齐上约束不足。训练数据中的退化合成有误例如阴影边缘过于生硬导致网络学到了错误的边界效应。网络容量过大或训练过度产生了过拟合。排查与解决平衡对抗损失降低λ3或者使用带有梯度惩罚的对抗损失WGAN-GP它比传统GAN更能生成平滑的过渡。混合使用感知损失在L_per中不仅使用深层特征也加入一些中层或浅层特征图的损失加强对局部结构和颜色的约束。检查合成数据可视化一批训练数据对(y, x)观察合成的退化是否自然。特别是阴影的边缘应该有柔和的过渡。考虑使用更物理真实的渲染器或基于GAN的数据增强方法。引入正则化在损失中加入总变分正则化项惩罚图像中不必要的剧烈变化。或者使用更深的U-Net但配合Dropout、权重衰减来防止过拟合。5.3 模型对真实场景图像泛化能力差问题现象在合成数据上表现良好但拿到手机实拍的有雾或阴影照片效果大打折扣甚至变得更糟。可能原因合成数据与真实数据的退化模式存在“域鸿沟”。真实图像中可能包含合成数据未覆盖的复杂情况如运动模糊、镜头污渍、复杂光源等。人脸检测或对齐步骤在真实图像上失败导致输入网络的区域不对。排查与解决域适应与微调收集少量真实场景的配对或非配对数据。使用合成数据预训练模型然后在真实数据上进行微调。对于非配对数据可以使用循环一致性的思想进行无监督域适应。数据增强多样化在合成阶段极大地增加退化的多样性。不仅仅是调整参数还可以模拟多种光源方向、混合多种退化如阴影轻微运动模糊、在图像中加入真实的噪声等。鲁棒的前处理部署时使用更鲁棒的人脸检测器如RetinaFace并加入人脸关键点对齐。如果检测失败可以有一个降级方案比如对整个图像进行全局恢复而不是局部人脸恢复。集成不确定性利用模型自身的不确定性图U。当模型对某个区域的恢复不确定性极高时可以对该区域的恢复结果进行平滑处理或与输入图像进行混合避免输出明显错误的伪影。5.4 采样结果不一致或不稳定问题现象同样的输入y多次采样得到的结果差异巨大甚至有些结果明显不合理。可能原因采样过程中使用的随机噪声z方差过大或采样算法如DDIM的采样步长设置不当。条件信息y在采样过程中的引导作用太弱。模型训练不充分或没有收敛。排查与解决控制采样随机性在扩散采样中可以调节“指导尺度”。这是一个超参数控制条件y对采样过程的牵引力。增大指导尺度可以让采样结果更紧密地贴合y减少不同采样间的差异但可能会牺牲一些多样性。需要在一致性和多样性之间做权衡。使用确定性采样器像DDIM这样的采样器在给定相同初始噪声z时采样过程是确定的。虽然这失去了每次不同的随机性但保证了可重复性。对于需要稳定输出的应用场景可以采用这种方式。检查训练收敛性确保模型训练了足够的epoch并且训练损失和验证集上的视觉指标都已稳定。不稳定的模型在采样时行为也难以预测。后验选择既然可以生成多个样本就可以设计一个选择策略。例如生成5个样本然后使用一个图像质量评估模型如NIQE但需无参考或利用不确定性图选择平均不确定性最低的样本自动挑选出“最佳”的一个作为最终输出。
