ATTN-FIQA:基于 Vision Transformer 注意力机制的可解释人脸图像质量评估 ATTN-FIQA: Interpretable Attention-based Face Image Quality Assessment with Vision Transformers
无需任何额外训练,仅取预训练 ViT 人脸识别模型最后一层的预 softmax 注意力做平均,即可同时获得质量分数和空间可解释性。
前置知识
Vision Transformer (ViT) 自注意力机制
ViT 把图像切成 N 个 8×8 patch,每个 patch 投影成 D 维 token;每个 transformer block 内的多头自注意力通过 $Q_{\ell,h}K^\top_{\ell,h}/\sqrt{D/H}$ 计算任意两 patch 之间的相似度,得到一个 $N\times N$ 的注意力矩阵。softmax 之后的值是注意力权重,但 softmax 之前的原始打分保留了 patch 之间真实相似性的幅值信息。
本文整个方法建立在 "不同头、不同 patch 之间的预 softmax 打分能反映图像质量" 的假设之上,不懂这个公式就无法理解作者为什么选 pre-softmax 而不是 post-softmax。
FIQA(Face Image Quality Assessment)
人脸图像质量评估的目标是给一张人脸打一个标量分数,预测它对自动人脸识别的 "识别效用"。分数越高代表越容易识别成功,分数越低代表图像有遮挡、模糊、姿态极端等退化。常用 EDC(Error-vs-Discard)曲线衡量:剔除低质量样本后验证 FNMR 下降多少。
本文要在八个基准数据集、四个 FR 模型上与 15 个 SOTA FIQA 方法对比,必须理解 pAUC-EDC、AUC-EDC、FNMR@FMR=1e-3 等指标的含义才能看懂结果表。
Error-vs-Discard Characteristic (EDC)
一种 FIQA 评估协议:按 FIQA 分数从低到高剔除样本,每剔除一定比例记录一次 FNMR,得到 FNMR-剔除率曲线。曲线下面积(AUC)或部分曲线下面积(pAUC,30% 剔除率以内)越小代表 FIQA 越好。本文使用 pAUC 和 AUC 两个版本,固定 FMR=1e-3 或 1e-4。
这是衡量 ATTN-FIQA 实际落地价值的核心指标,决定了它能不能用来给真实人脸识别系统做样本筛选。
研究动机
现有人脸图像质量评估方法存在两个共性问题。第一,绝大多数方法要么需要为质量估计单独训练一个回归器(监督方法如 FaceQnet、RankIQ),要么依赖多次前向传播、反向传播或额外的扩散/扰动模块(无监督方法如 SER-FIQ 需要上百次 dropout 前向、DifFIQA 需要跑扩散过程、GraFIQs 需要计算梯度)。这些方法在边缘设备上部署成本很高。第二,几乎所有方法只输出一个不透明的标量分数,当一张人脸被系统判定为低质量时,工程师无法知道是眼睛区域模糊、嘴巴被遮挡、还是姿态极端,导致无法针对性地改进采集流程。最近两年虽然出现了 ViT-FIQA 等基于 Transformer 的方法,但仍需要在 ViT backbone 上额外插入可学习的 quality token 并重新训练。
本文的目标是本文提出 ATTN-FIQA,希望回答一个非常本质的问题:能否在完全不修改网络结构、不做任何额外训练的前提下,直接利用已经训练好的 ViT 人脸识别模型最后一层的预 softmax 注意力打分,作为人脸质量评估信号?具体目标有两个——(1)证明预 softmax 注意力幅值本身就编码了图像质量信息;(2)在打分的同时给出空间可解释性,告诉使用者是哪块面部区域导致了质量下降。
与已有工作不同的是,本文的独特切入点是 "训练完全免费"。它不像 ViT-FIQA 那样插入 quality token,也不像 SER-FIQ 那样做上百次前向,更不像 GraFIQs 那样需要反向传播。作者的观察是:高质量人脸因为五官清晰,query-key 之间能形成强对齐,产生高幅值、聚焦的注意力;退化图像因为 patch 模糊或被遮挡,query-key 对齐弱,注意力变得弥散、幅值低。把这些 attention 矩阵展平后取平均,就能得到一个与质量强相关的标量,同时还能可视化 attention map 看是哪块区域贡献了分数。
核心方法
方法整体思路非常朴素:把一张 112×112 的对齐人脸送进预训练好的 ViT-S 或 ViT-B,做一次标准前向传播,提取最后一个 transformer block 内全部 H=8 个注意力头的预 softmax 矩阵 $A^{raw}_{L,h}\in\mathbb{R}^{N\times N}$($N=144$ 个 patch)。然后把所有头的所有矩阵展平成一个长度为 $H\cdot N^2$ 的向量 $v$,对该向量求平均即得到最终质量分数 $Q=\frac{1}{H\cdot N^2}\sum_i v(i)$。整个流程不需要任何额外训练、任何架构改动、任何反向传播。作者通过 (1) 在 SynFIQA 550K 合成图像上验证分数随质量单调变化,(2) 在 8 个真实基准数据集和 4 个 CNN FR 模型上做 EDC 评测,(3) 通过消融实验对比 ViT-S vs ViT-B、AdaFace vs ArcFace、单头 vs 拼接、mean vs max/median/1/σ 四种聚合方式,证明了这个极简方案的有效性。
核心创新是把注意力当作 "质量的副产物" 来读,而不是 "需要训练的可解释信号"。已有方法要么把 attention 当成后验可解释性工具(GradCAM、Attention Rollout),要么额外训练 quality token;ATTN-FIQA 第一次系统论证了 pre-softmax attention 的幅值本身就能做质量评估,且不需要任何改动。本质区别在于:ViT-FIQA 等方法需要修改架构并训练新参数,ATTN-FIQA 用的是已训练模型的固有信号——理论上任何基于 ViT 的 FR 模型都可以立刻获得 FIQA 能力,零部署成本。另一个隐性创新是空间可解释性:虽然最终分数是标量,但底层的 $A^{raw}_{L,h}$ 矩阵保留了每个 patch 的重要性信息,可视化后能定位 "哪个区域在拖后腿"。
方法步骤详情
完整方法分四步。第一步是 patch 嵌入:112×112 图像切成 8×8 patch 得到 N=144 个 token,加上 CLS token 共 145 个,经线性投影得到 $D=512$ 维嵌入 $z^0$,加上可学习位置编码 $E_{pos}$。第二步是多层 transformer 处理:经过 L=12(ViT-S)或 24(ViT-B)个 block,每个 block 先做 LayerNorm 再做多头自注意力 MSA,再 LayerNorm 后过 MLP,每一步都有残差连接。第三步是提取预 softmax 注意力:取最后一个 block $\ell=L$ 全部 H=8 个头的 $Q_{\ell,h}K^\top_{\ell,h}/\sqrt{D/H}$,注意是 softmax 之前的原始打分,而不是 softmax 之后的概率分布。第四步是图像级聚合:先把所有 head 的 $N\times N$ 矩阵展平成一个 $H\cdot N^2$ 维向量 $v$,再求算术平均 $Q=\frac{1}{H\cdot N^2}\sum_i v(i)$ 作为质量分数。整个流程只用一次前向传播,推理开销与一次普通 FR 完全一致。
技术新颖性
技术新颖性体现在三方面。第一,理论假设的提出:作者首次明确提出 "ViT 的预 softmax 注意力幅值编码输入-模型交互的置信度,进而编码图像质量" 这一可验证假设,并用 550K 合成图像上的单调分布作为直接证据(Q0-Q9 平均分从 -1.086 单调递增到 -0.916,Ref 最高 -0.911)。第二,预 softmax 而非 post softmax 的选择:softmax 把所有打分压成概率分布,会抹掉幅值差异,而 pre-softmax 保留了 "query-key 真实相似性强弱" 的原始信号,这对质量敏感的应用更合适。第三,聚合方式选择的实证依据:作者用消融证明拼接所有头再取 mean(32.40/43.26 pAUC-EDC)显著优于 max(40.35/51.60)、median(33.61/43.95)、1/std(34.22/45.24),这一对比给后续 ViT-FIQA 工作提供了方法论参考。
实验结果
核心发现有四组。第一组是 SynFIQA 经验验证:在 550K 合成人脸(5000 个身份,每个 10 张参考图 + 100 张退化变体,11 个质量组 Q0-Q9 加 Ref)上,ATTN-FIQA 分数随质量组严格单调递增,Q0 平均 -1.086 上升到 Q9 的 -0.916,Ref 最高 -0.911,箱线图各组分离清晰,直接支撑作者假设。第二组是消融实验:在 7 个基准(Adience、AgeDB-30、CFP-FP、LFW、CALFW、CPLFW、XQLFW)的 mean pAUC-EDC 上,ViT-S 优于 ViT-B(32.40/43.26 vs 40.41/50.06),AdaFace 略优于 ArcFace(32.40 vs 35.45),拼接所有头 + 平均值是最优聚合。第三组是与 SOTA 对比(Table II,pAUC-EDC):在 8 个数据集 × 4 个 FR 模型 = 32 组配置下,ATTN-FIQA 在 IJB-C 这种非约束真实场景下表现尤其亮眼——ArcFace 下 6.74/10.28、ElasticFace 下 6.49/10.00、CurricularFace 下 6.46/9.44,与同样需要训练额外 quality token 的 ViT-FIQA(6.56/10.12、6.33/9.76、6.34/9.32)持平甚至略胜,且超过了 MagFace、SDD-FIQA 等多个有监督方法;在 CALFW、AgeDB-30、CFP-FP、CPLFW、XQLFW 等约束性基准上 ATTN-FIQA 也具备竞争力,但在 Adience 上略弱于 PFE、ViT-FIQA、eDifFIQA。第四组是定性可视化:Figure 2 在同一身份的 25 种受控退化条件下,ATTN-FIQA 分数从 1.000(base)单调下降到 0.000(occlusion),heatmap 从红色高幅值聚焦区变成蓝色弥散区,姿态极端(Pose 1=0.170, Pose 2=0.024)和面部遮挡得分最低;Figure 3 跨 8 个数据集的 40 张图验证了相同的规律,说明这个信号在不同分布间一致。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Adience (ArcFace, FMR=1e-3) | pAUC-EDC (×1e-3, 越低越好) | 13.7643 | ViT-FIQA: 9.9483 (SOTA); ATTN-FIQA 比 ViT-FIQA 高 38% | 在 Adience 上未达 SOTA,落后训练型方法 |
| IJB-C (ArcFace, FMR=1e-3) | pAUC-EDC (×1e-3) | 6.7381 | ViT-FIQA: 6.5626; CR-FIQA(L): 6.5792; eDifFIQA(L): 6.4695 | 与 SOTA 持平,无需训练即可与最优方法同台竞技 |
| IJB-C (ElasticFace, FMR=1e-3) | pAUC-EDC (×1e-3) | 6.4902 | ViT-FIQA: 6.3344; CR-FIQA(L): 6.3553; eDifFIQA(L): 6.1970 | 略低于 SOTA,但优于 MagFace(6.9066)、SDD-FIQA(6.9932) |
| SynFIQA (550K 合成图像质量分组验证) | 组间 ATTN-FIQA 均值 | Q0=-1.086 → Q9=-0.916 → Ref=-0.911, 严格单调 | 无对比方法,作为假设验证 | 证实假设:分数与合成质量标签高度相关 |
| Ablation: 架构深度 (mean pAUC-EDC @ FMR=1e-3) | pAUC-EDC (×1e-3) | ViT-S/AdaFace: 32.3995 | ViT-B/AdaFace: 40.4124 | ViT-S 比 ViT-B 低 19.8%,浅层反而更适合质量评估 |
| Ablation: 聚合指标 (mean pAUC-EDC @ FMR=1e-3) | pAUC-EDC (×1e-3) | Mean: 32.3995 | Max: 40.3460; Median: 33.6133; 1/Std: 34.2206 | Mean 比最优 baseline (Median) 还低 3.6%,简单均值最有效 |
局限与改进
作者在 Section V-C 末段坦率承认:在 Adience 这种以年龄/性别为主退化维度的数据集上,注意力幅值难以区分同分布内的细微质量差异(Adience 上的 pAUC-EDC 13.76 显著差于 ViT-FIQA 的 9.95),原因是受控的同质退化不会显著改变 query-key 对齐强度。我的额外观察是:(1) ATTN-FIQA 在 XQLFW 上是 144.43/178.38,比最好的 eDifFIQA(118.09/143.39) 差很多,说明在跨质量基准上(清晰参考图 vs 模糊查询图)纯注意力信号不够用,需要 feature 级别的监督;(2) 方法本身依赖注意力幅值的绝对值,不同 ViT 模型的 attention scale 不同,预训练权重更换时需要重新评估 scale;(3) 当输入图像完全不可识别(被全遮挡),所有头的注意力都坍缩,$Q$ 趋近于常数,无法反映 "部分遮挡 vs 全部遮挡" 的区别。
独立分析的弱点
独立分析三个具体弱点。第一,弱信号场景失效:XQLFW 这种跨分辨率基准(同一身份有清晰参考 + 低质量查询)上 ATTN-FIQA 性能明显落后,因为 query-key 对齐主要由查询图本身决定,参考图的清晰度没有参与注意力计算,改进方向是引入参考图对比机制。第二,固定聚合丢失结构信息:把所有头所有 patch 的注意力一视同仁地求平均,会把 "聚焦在眼睛的高质量注意力" 和 "聚焦在背景的低质量注意力" 混淆在一起,改进方向是按 head 类型(局部 vs 全局)或按 patch 语义区域加权。第三,绝对幅值敏感:不同训练数据集、训练步数的 ViT 模型的 pre-softmax 注意力 scale 差异很大,同一个绝对阈值 $Q$ 在不同模型上意义不同,需要做 per-model 归一化(论文中归一化只用于可视化,未用于分数本身)。
未来方向
作者未明确给出未来方向,但基于工作可延伸三个方向。第一是分数归一化与跨模型泛化:引入 per-model 标定步骤,让同一个阈值在不同 ViT backbone 间可比。第二是 patch-level 质量分布:除了全局均值,还输出每个 patch 的质量贡献图 $q_i=\frac{1}{H\cdot N}\sum_h\sum_j A^{raw}_{L,h}(i,j)$,给下游任务提供更细粒度的 "局部质量地图"。第三是组合方案:将 ATTN-FIQA 作为快速预筛选(零成本)与训练型 FIQA(如 ViT-FIQA、CR-FIQA)作为精排结合,构成两阶段质量评估流水线——首阶段丢弃明显的低质量图(减少 30%),精排阶段再对剩余样本做精细打分,可能在 IJB-C 上进一步突破。
复现评估
复现友好度很高。代码已开源在 https://github.com/gurayozgur/ATTN-FIQA。论文明确给出全部实验配置:3 个预训练 ViT 模型(ViT-S 和 ViT-B × AdaFace/ArcFace)全部使用 WebFace4M 训练,112×112 对齐,patch=8,N=144,D=512,H=8,L=12/24,全部使用官方公开权重。评估协议严格遵循 ISO/IEC 19795-1,使用官方 EDC 实现。8 个数据集都是公开基准(LFW、AgeDB-30、CFP-FP、CALFW、Adience、CPLFW、XQLFW、IJB-C),4 个 FR 模型权重(ArcFace、ElasticFace、MagFace、CurricularFace)全部官方 release。算力需求极低:单张图一次 ViT-S 前向约 5-10ms,单卡 GPU(如 RTX 3090)即可批量评估 8 个数据集。难度评级:入门偏上——读懂公式无需深度学习理论,但想清楚 "为什么 pre-softmax 比 post-softmax 好" 需要一定的注意力机制理解。
论文图表