541 字
3 分钟
视觉先验-在损失函数中的体现
2026-06-25
无标签

核心思想是:将我们对图像的数学或语义假设,直接编码为损失函数中的一个 惩罚项,从而约束模型的优化方向

回忆一下经典的MAP框架

L(θ)=logP(Xθ)λlogP(θ)L(\theta) = -\log P(X|\theta) -\lambda \log P(\theta)

这个 λ\lambda 就是先验的权重,它控制了模型在优化时对先验的依赖程度。

基于这个思想,很多经典的图像处理算法都可以被统一到一个框架下:数据项 + λ\lambda 先验项

感知损失 (Perceptual Loss)#

先验:人类对图像的感知,更多基于高层语义特征而非逐像素的精确度。两张图即使像素不完全一样,只要语义和结构相似,我们就会认为它们是“一样”的。

实现方式:它不比较两幅图像的像素值,而是利用一个在ImageNet上预训练好的CNN(如VGG网络)作为特征提取器,比较它们在深层特征空间的差异

Lperceptual=lϕl(Ipred)ϕl(Igt)22L_{perceptual} = \sum_{l} \| \phi_l(I_{pred}) - \phi_l(I_{gt}) \|_2^2
  • ϕl\phi_l:表示CNN的第 ll 层输出的特征图
  • 这个损失函数内嵌了“预训练CNN所习得的自然图像分布先验”。它允许生成图像在像素级别有一定的“弹性”,但只要其语义特征与目标一致,就被认为是好的。

全变分损失 (Total Variation Loss)#

先验:自然图像是分片平滑的,相邻像素间的变化通常是平缓的。这个先验假设图像中的噪声是高频的、突变的,而真实结构是低频的、连续的。

实现方式:它直接惩罚图像中相邻像素值的差异,计算图像在水平与垂直方向上的梯度绝对值之和

LTV=i,j(xIi,j)2+(yIi,j)2L_{TV} = \sum_{i,j} \sqrt{(\nabla_x I_{i,j})^2 + (\nabla_y I_{i,j})^2}
  • xIi,j\nabla_x I_{i,j}yIi,j\nabla_y I_{i,j} 分别表示图像在水平方向和垂直方向的梯度。
  • 这个损失函数直接编码了“图像梯度稀疏性”的先验。它鼓励图像由大片的平滑区域构成,区域之间可以有锐利的边缘,但区域内部的变化要尽可能小
视觉先验-在损失函数中的体现
https://biscuit0613.github.io/posts/cv/cv-priorinloss/
作者
Biscuit
发布于
2026-06-25
许可协议
CC BY-NC-SA 4.0
视觉先验
视觉先验-在低级视觉中的应用