科技行者 2026-11-04 10:37:20
你有没有遇到过这种情况:两张图片,用电脑算出来的误差几乎一样,但你一眼就能看出哪张更难看?
这不是你的错觉。论文里有个很扎实的例子:TID2013 数据集里五张被不同方式破坏的照片,它们的 PSNR
*PSNR:一种衡量图片像素误差的指标,数值越高代表两张图片在像素层面越接近*
全都卡在 26.8 到 27.2 分贝之间,差距不到 0.4 分贝,按理说应该一样难看。但人类评分员给出的分数从 5.58 一路跌到 2.64,差了两倍还多。PSNR 在这种"分数相近"的像素误差配对里,蒙对人类偏好的概率只有 51.1%,基本等于瞎猜。
这就是这篇论文要解决的问题:怎么造一把真正懂"人眼怎么看"的尺子,而不是只会数像素差异的尺子。
为什么现有的尺子都不够用
先说说这个领域已经有的几条路。
第一条路是经典方法,比如 SSIM
*SSIM:结构相似性指数,通过比较局部的亮度、对比度和结构来评估两张图片的相似度*
,这类方法靠人工设计公式去模拟人眼的某些特性,比如对边缘、对比度的敏感程度。它们简单、透明,但终究是工程师拍脑袋想出来的规则,覆盖不了视觉系统的全部复杂性。
第二条路更聪明一点,拿深度网络提取的特征来比较两张图片的差异,像是 LPIPS、DISTS 这些知名的方法。但它们有一个绕不开的软肋:这些模型的"感知权重"是靠人类打分数据训练出来的。
这里就出现了一个这篇论文反复强调的现象。当 TID2013 的图片从 256 像素放大到 512 像素重新打分时,DISTS 和人类评分的相关性从 0.815 掉到了 0.717,LPIPS-VGG 更惨,从 0.757 跌到 0.661。
这个现象第一次读到的时候我是有点意外的。直觉上会觉得,既然模型已经学过人类的审美偏好,换个分辨率应该没那么致命。但事实是,这些模型在训练时见过的分辨率是固定的,一旦图片尺寸变了,它们学到的那套"权重"就开始失灵。这就像你给一个只在小房间里练过投篮的人换到标准篮球场,他的手感突然就不准了,因为他记住的不是投篮的本质,而是那个小房间的距离感。
第三条路是最近兴起的,完全不用人类标签,而是从数据本身的统计规律里推导出一个几何结构,比如 IEM 和 LASI 这两个方法。它们理论上很优雅,没有人类偏见的污染,但计算代价极其昂贵。IEM 处理一对 256×256 的图片要花 725.7 毫秒,而这篇论文要介绍的方法在 512×384 的图片上只需要 12.2 毫秒,差了快 60 倍。
JLD 想做的事,是把第二条路和第三条路的优点捏到一起:不需要人类标签,但又要足够快,还要在分辨率变化时保持稳定。
核心想法:早期特征的"位置感"加上后期特征的"重要性感"
要理解 JLD 的设计,得先弄明白一个矛盾。
研究者们用了一个叫 DINOv2-S
*DINOv2-S:一种基于自监督学习训练出的视觉编码器,不依赖人工标注数据,能自动学习图片的特征表示*
的冻结视觉编码器来做实验,他们发现一个很有意思的现象:如果只看这个网络最早期的那层特征(叫 patch token,也就是把图片切成小块后每块提取出来的向量),这些特征对图片里的每一处变化都很敏感,哪里变了它都能感知到,但问题是它一视同仁,把所有变化看得同等重要,不管这个变化是不是人眼真正在意的。单用这层特征在 TID2013 上的相关性只有 0.784。
如果反过来,只看网络最后输出的那个汇总特征(class token),它确实学会了"哪些变化重要",但代价是空间细节已经被压扁了,相关性反而更低,只有 0.742。
这就像一个新来的保安和一个退休的老警察一起巡逻。新保安眼睛很尖,哪里有一点风吹草动都会记下来,但他分不清哪些异常是真正的威胁,一片飘落的树叶和一个翻墙的人,在他眼里权重差不多。老警察经验丰富,知道什么该警惕,但他年纪大了,视力已经模糊,很多细节根本看不清楚了。如果只靠新保安巡逻,会有大量误报;如果只靠老警察,会漏掉很多真实的细节变化。JLD 要做的,就是让老警察把他的"判断经验"教给新保安的眼睛。
这个"教"的过程,技术上靠的是雅可比矩阵
*雅可比矩阵:描述一个函数输出相对于输入微小变化的敏感程度的矩阵,这里用来衡量网络早期特征的微小改动会如何影响最终输出*
。具体来说,研究者们计算网络最终输出对早期 patch 特征的雅可比矩阵 Jt,然后把它的平方 J^?J 在大量无标签图片上求平均,得到一个固定的矩阵 M。这个矩阵的每个特征方向都对应着"如果早期特征往这个方向抖动一下,最终输出会抖动多大"。
于是,把 M 的特征值从大到小排序,挑出最重要的 64 个方向(总共有 384 个),组成一个投影矩阵,论文管这个叫雅可比透镜(Jacobian lens)。往后,不管是哪张图片,都先把它的早期特征投影到这个透镜选定的 64 个方向上,再去比较差异。
这里有个数字很值得说一下:这 64 个方向只占全部 384 个方向的六分之一,却包含了网络输出敏感度的 76.5%。换句话说,网络对输入变化的绝大部分"在意程度",其实集中在一个很窄的子空间里。剩下那 320 个方向,基本上是网络压根不在乎的噪声方向。
如果不做这个筛选会怎样?论文做了个对照实验:用全部 384 个随机方向,相关性是 0.772;用 64 个随机挑选的方向,相关性还是 0.772,几乎没变化;但用这 64 个雅可比透镜挑出来的方向,相关性直接跳到 0.905。这说明关键不在于"少用几个维度"这种降维操作本身,而在于你选的是哪些维度。瞎选 64 个和全部用上效果一样差,精挑细选的 64 个才是真正起作用的。
这把透镜是怎么训练出来的
这里有个很朴实的细节:整个透镜的训练完全不需要人类标注的相似度数据。
做法是这样的:从 DIV2K
*DIV2K:一个常用于图像超分辨率和处理任务的高质量图片数据集*
这个数据集里随机挑 100 张没有任何标签的图片,在网络的输出端加一个随机的高斯噪声探针,反向传播一次,就能拿到每个 patch 位置上的梯度。把这些梯度的外积平均起来,就是对矩阵 M 的一个无偏估计。整个过程在一块 A100 显卡上只需要 34.53 秒,用了不到 330MB 的显存。
这个设计巧妙在哪?正常如果要显式算出完整的雅可比矩阵,需要对输出的每一个坐标都单独做一次反向传播,开销会爆炸。但用随机探针这个技巧,一次反向传播就能同时拿到所有 patch 位置的梯度信息,这是一种数学上的"偷懒",效果却和笨办法等价。
研究者还验证了这个透镜的稳定性:用不同的 10 张、25 张、50 张、100 张图片去重新拟合,得到的透镜之间的重叠度都在 0.877 到 0.963 之间,说明这不是靠偶然碰出来的结果,而是一个稳定可复现的结构。
像素误差的几何学:为什么同样的 PSNR 能对应完全不同的伤害程度
JLD 最有意思的地方在于,它不只是一个打分器,还能在图像空间里画出一个清晰的几何形状。
论文里有张图很能说明问题:在某张参考图附近,沿着"模糊"方向和沿着"色度变化"方向各走相同的像素能量距离,MSE
*MSE:均方误差,最基础的像素级误差度量方式*
画出来的等距离轮廓几乎是个正圆(长短轴比例 1.06),意味着它认为这两种变化造成的伤害差不多。但 JLD 画出来的轮廓被拉成了一个长椭圆,长短轴比例高达 2.33,意味着它认为同样大小的色度变化,比模糊要温和得多。
这个结果其实跟人类视觉的已知特性吻合得很好:人眼对色彩变化的空间分辨率天生就比对亮度变化低,这是从上世纪六十年代的心理学实验就确认过的事实。JLD 不是被硬性灌输这个知识的,它是从一个只学过"看懂图片内容"的网络里,自己涌现出来的。
这就好比你让一个从没学过色彩理论的厨师去品尝菜品,他未必知道"红绿色盲"这种专业名词,但他能凭直觉说出哪个颜色的轻微变化你根本吃不出区别,哪个纹理的轻微变化你立刻能察觉。这种敏感度的差异早就刻在感知系统里,JLD 做的事情,是把这种本来隐藏在网络内部的敏感度结构给挖出来、可视化。
还有一个更极端的例子:同一张参考图上,JPEG 压缩和彩色噪声在 PSNR 上几乎一样(21.6 分贝和 21.3 分贝),但人类打分却是 1.66 分和 4.47 分,天差地别。JLD 分析发现,JPEG 压缩让图像特征的改动里有 14.3% 落在了"透镜认可"的重要方向上,而彩色噪声只有 6.4% 落在这些方向里,剩下的大部分改动,发生在网络根本不在意的方向上。这就是为什么两种失真在像素层面看起来差不多严重,但人(和 JLD)的感受天差地别:噪声动得多,但动的都是"无关紧要的地方";JPEG 动得少,但动的恰好是"要命的地方"。
实战效果:四个数据集上的全面胜出
说了这么多原理,数据才是硬道理。
| 方法 | TID2013 | CSIQ | LIVE | KADID-10k测试集 | 四项均值 |
|---|---|---|---|---|---|
| LPIPS-VGG(用人类标签训练) | 0.670 | 0.883 | 0.932 | 0.724 | 0.802 |
| DISTS(用人类标签训练) | 0.818 | 0.943 | 0.954 | 0.885 | 0.900 |
| DreamSim(用人类标签训练) | 0.812 | 0.911 | 0.910 | 0.851 | 0.871 |
| VSI(经典无训练方法) | 0.895 | 0.940 | 0.949 | 0.876 | 0.915 |
| DeepWSD(无标签深度方法) | 0.855 | 0.959 | 0.955 | 0.882 | 0.913 |
| **JLD(本文方法)** | **0.877** | **0.971** | **0.964** | **0.892** | **0.926** |
这个结果有点让人意外。JLD 完全没用过人类打分数据去调整它的核心结构,却在四个数据集的平均分上超过了所有用人类标签精心训练过的深度方法,包括 LPIPS、DISTS、DreamSim。这相当于一个从没上过美术培训班的人,光靠观察别人怎么画画,就在审美判断测试里考过了那些上过培训班的同学。
分辨率稳定性上的表现更夸张。TID2013 从 256 像素放大到 512 像素,JLD 的透镜项相关性从 0.850 只降到 0.845,几乎原地不动。相比之下,前面提到的 DISTS 从 0.815 掉到 0.717,掉了将近 10 个百分点。这也印证了前面说的,JLD 不依赖某个特定分辨率下学出来的"权重记忆",而是直接基于网络的内在敏感度结构。
还有速度。JLD-fast 版本在一块 A100 显卡上处理一对图片只要 2.5 毫秒,比 LPIPS-VGG 快 4.3 倍,相关性还能保持在 0.911。论文里有张"速度-精度前沿图",JLD 和 JLD-fast 都站在了那条最优曲线上,意味着没有任何一个方法能同时比它们更快又更准。
视频也能用:从静态图片到动态画面的延伸
JLD 的思路不局限于静态图片。研究者把同一套方法套用到视频领域,只是把编码器换成了专门处理视频的 VideoMAE
*VideoMAE:一种针对视频数据设计的自监督预训练模型,能够学习视频中的时空特征*
模型,用 16 个方向的透镜来捕捉视频里的时空特征,比如闪烁这种单帧图片根本看不出来的问题。
在 Waterloo IVC 4K 视频数据集上,JLD-video 达到了 0.786 的相关性,而业界常用的 VMAF
*VMAF:Netflix 开发的一种视频质量评估指标,被广泛用于视频编码和传输质量的衡量*
只有 0.611,差了 0.175。更值得一提的是,VMAF 是用人类打分数据训练出来的,而 JLD-video 完全没有用过任何视频质量的人类标注。在另一个叫 AVT-VQDB-UHD-1 的数据集上,JLD-video 达到了 0.912,和 VMAF 的 0.932 已经非常接近。
这个结果从侧面说明了一件事:如果一个网络通过自监督的方式真的学会了"理解"某种模态的数据,不管是图片还是视频,它内部蕴含的感知结构本身就可能具备评估质量的能力,不一定非要靠人工标注才能提取出这种能力。
这把尺子也有脆弱的地方
JLD 不是完美的。论文很诚实地指出了几个局限。
在 PIPAL 这个专门评估图像修复和生成模型输出的数据集上,JLD 只拿到了 0.624 的相关性,这个成绩虽然超过了 LPIPS-VGG,但明显低于它在传统失真数据集上的表现。这说明对于 GAN
*GAN:生成对抗网络,常用于图像生成和修复,生成结果往往带有和传统噪声、压缩完全不同的伪影特征*
生成的那种特殊伪影,这套从自然图片统计规律里学来的感知结构可能还没有完全覆盖到。
另一个隐患在于,JLD 的核心计算只保留了 64 个方向,剩下 320 个方向的变化它完全看不见。这意味着如果有人故意往这些"盲区"方向去优化一张图片,理论上可以让图片在 JLD 看来毫无变化,但其实已经被改得面目全目。这有点像保安只盯着大门和窗户,却完全没注意到地下室有个通风口。论文也坦率承认了这一点,并指出如果要把 JLD 当作训练损失函数去用,需要格外小心这种"视而不见"的风险。
写在后面
读这篇论文的过程中,最让我停下来反复琢磨的一点,是那个 76.5% 和 64/384 的数字对比。
一个训练好的神经网络,它内部到底有多少"冗余"?这篇论文给出的答案相当震撼:一个拥有 384 个特征维度的早期层,真正被最终输出所在意的方向只占六分之一左右,剩下的维度几乎是在陪跑。这个发现本身跳出了感知度量这个具体问题,它暗示着,我们现在训练出来的很多深度网络,内部可能都存在这种"重要信息高度集中,大量维度冗余"的结构。如果这个猜想在更多网络、更多任务上也成立,那对模型压缩、特征选择这些完全不同的研究方向,可能都有启发。
还有一个细节值得单独拿出来说:论文里提到用这把透镜去分析经典的心理物理学实验,比如用不同频率的条纹图案去测试颜色和亮度的敏感曲线,结果发现网络自己学出来的敏感度曲线,在某些方面和人类视觉系统的已知规律惊人地吻合,比方说对斜向条纹不如横竖条纹敏感(这叫"斜效应"),对纹理密集区域的敏感度会下降(这叫"掩蔽效应")。但它在另一些方面又和人类不一样,比如它的亮度敏感曲线峰值出现在比人类更低的空间频率上。这种"部分吻合、部分不吻合"的结果比"完全吻合"更有价值,因为它告诉我们,这个自监督学出来的网络,不是碰巧复刻了人类视觉系统,而是通过完全不同的路径(预测图片内容)意外地收敛到了部分相似的解上。这比单纯说"AI 学会了人类视觉"要复杂和有趣得多。
一个只学过"看懂图片里有什么"的网络,从没见过一张人类打分表,最后却比那些专门拿人类审美数据调教出来的模型,更准确地预测出人类会觉得哪张图片更难看。这件事本身值得我们多想一层:审美判断里,到底有多少部分其实是可以从"理解内容"这个更基础的能力里自然长出来的?
Q&A
Q1:JLD是什么,它和LPIPS、DISTS这些方法有什么区别?
A:JLD全称Jacobian Lens Distance,是一种不依赖人类标注数据的图像感知相似度度量方法。它通过分析冻结视觉编码器输出对早期特征的敏感度(雅可比矩阵)来构建一个固定的投影透镜,而LPIPS、DISTS等方法需要用人类打分数据去训练权重,这导致它们在分辨率变化时表现会明显下降。
Q2:JLD的透镜是怎么训练出来的,需要很多数据吗?
A:不需要。JLD只用100张没有任何标签的DIV2K图片,通过在网络输出端加随机高斯探针反向传播一次的方式估算敏感度矩阵,整个拟合过程在一块A100显卡上仅需约35秒,完全不涉及人类评分或图像对比数据。
Q3:JLD为什么在图片分辨率改变时依然稳定,而其他方法会掉分?
A:因为JLD依赖的是网络本身对特征敏感度的内在结构,而不是针对某个特定分辨率训练出的权重。实验显示TID2013分辨率从256翻倍到512像素时,JLD的透镜项相关性仅从0.850降到0.845,而DISTS从0.815骤降到0.717。
【版权声明】本文内容来源于科技行者,版权归原作者及原媒体所有。本站仅作信息分享,不构成任何商业用途;如涉版权问题,请联系本站删除。
发布时间:2026-11-04 08:04:32
(第1/1页/共7889字/6阅)