跳转至

FaceMoE: Mixture of Experts for Low-Resolution Face Recognition

会议: ECCV 2026
arXiv: 2606.32040
代码: https://github.com/Kartik-3004/FaceMoE
领域: 人体理解 / 人脸识别
关键词: 低分辨率人脸识别, 混合专家模型, Transformer, 灾难性遗忘, 分辨率感知特征提取

一句话总结

FaceMoE 将 Transformer 中单一 FFN 替换为多个稀疏激活的 MoE 专家加 Top-k 路由器,使不同专家自动特化于人脸不同语义区域(高频纹理/低频平滑/关键点),实现分辨率感知的特征提取;在 BRIAR、IJB-S、TinyFace 三个低分辨率基准上全面超越 SOTA,同时几乎不损失 HR 预训练性能。

研究背景与动机

领域现状:低分辨率人脸识别(LR-FR)在监控、安防等场景中需求迫切。现有方法主要分为四类:基于超分重建的预处理方法、基于知识蒸馏的训练方法、基于帧选择/特征融合的后处理方法(如 CAFace、CoNAN、ProxyFusion)、以及基于架构改造的方法(如 PETALface 引入质量自适应 LoRA)。主流做法仍然是在 HR 数据上预训练,再在 LR 数据上微调。

现有痛点:三个核心挑战叠加。第一,LR 探针图像退化严重(模糊、遮挡、低对比度),只有少数帧包含有效身份信息,导致特征提取和聚合困难。第二,画廊图像是 HR、探针图像是 LR,两者来自不同域——HR 下人脸模型关注皮肤纹理和 landmark 细节,LR 下只能依赖粗粒度轮廓和形状,单一特征编码器无法在两个域上同时做好。第三,HR→LR 微调时发生灾难性遗忘:梯度在微调初期不稳定,模型既丢掉了预训练的 HR 判别能力,又没能有效适应 LR 数据。

核心矛盾:单一 FFN 的 Transformer 编码器在表达能力上存在根本瓶颈——它用一个共享的前馈网络处理所有人脸 patch token,无法根据输入分辨率和语义区域做差异化处理,导致"HR 画廊和 LR 探针共享同一套特征提取逻辑",两个域的特征质量互相拖累。

本文目标:(1) 提升 LR 探针的特征提取质量,使退化帧中残留的身份线索能被充分捕获;(2) 缩小 HR 画廊和 LR 探针之间的域差距;(3) 在 LR 微调时保留预训练知识,避免灾难性遗忘。

切入角度:作者观察到不同分辨率下模型关注的语义区域不同(HR 看纹理,LR 看轮廓),且微调时只有部分参数需要适应新域。这暗示如果能让不同子网络各司其职——一部分特化于 HR 模式、一部分适应 LR 退化——就能同时解决域差距和灾难性遗忘。MoE 的稀疏激活特性恰好天然支持这种"选择性漂移"(selective drift)。

核心 idea:用 MoE(多专家 FFN + Top-k 路由)替换 Transformer 中的单一 FFN,使不同专家自动特化于人脸不同语义区域,路由器根据输入 token 的分辨率和内容动态分配给最相关的专家。

方法详解

整体框架

FaceMoE 以 Swin-B(或 ViT-B)为骨干,核心改动是将每个 Transformer block 中 Self-Attention 之后的单一 FFN 替换为一个 MoE-MLP 层。输入人脸图像经 Patch Embedding 切分为 T 个 token,依次通过多个 Transformer block,每个 block 内的 MoE-MLP 对每个 token 独立做路由:Router 计算每个 token 到 N 个专家的打分,选出 Top-k 个专家,各专家对 token 做非线性变换,最后加权求和输出。整个网络末端接 CosFace 损失做身份分类。训练时额外加入 router z-loss(抑制 logits 过大)和 load balancing loss(防止专家负载不均),保证路由稳定。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入人脸图像<br/>LR 探针 / HR 画廊"] --> B["Patch Embedding"]
    B --> C["Transformer Block<br/>Self-Attention"]
    C --> D["MoE-MLP 层<br/>替换单一 FFN"]
    D --> E["Router 计算路由 logits"]
    E --> F["Top-k 选择<br/>k=2, N=3"]
    F --> G["Expert 0<br/>高频纹理区域"]
    F --> H["Expert 1<br/>低频平滑区域"]
    F --> I["Expert 2<br/>landmark 区域"]
    G --> J["加权组合输出"]
    H --> J
    I --> J
    J --> K["特征嵌入"]
    K --> L["CosFace + 辅助损失"]

关键设计

1. MoE-MLP 层:用多个 FFN 专家替代单一 FFN,实现语义区域特化

传统 Transformer 在人脸识别中,Self-Attention 之后接一个共享的 FFN(两层全连接 + GELU 激活)处理所有 token。这种设计隐式假设所有 token 需要同一套非线性变换,但在 LR-FR 场景下,不同 token 对应的人脸区域(眼睛/脸颊/头发)退化程度和信息量差异巨大,单一 FFN 只能学到"折中"的变换。

FaceMoE 将单一 FFN 替换为 N 个独立的专家 MLP,每个专家 \(f_i\) 都是标准的两层全连接:\(f_i(x_t) = W_{i,2} \cdot \sigma(W_{i,1} x_t + b_{i,1}) + b_{i,2}\),其中 \(W_{i,1} \in \mathbb{R}^{d \times h}\)\(W_{i,2} \in \mathbb{R}^{h \times d}\)\(\sigma\) 为 GELU,\(h\) 为隐藏维度。所有专家并行存在但只有被路由选中的才参与计算。实验取 N=3、k=2,激活图(Figure 2/6)显示三个专家自然分化:Expert 0 聚焦于高频区域(边缘、轮廓、头发纹理),Expert 1 聚焦于低频平滑区域(脸颊、额头),Expert 2 聚焦于 landmark 区域(眼睛、鼻子、嘴巴)。这种特化是训练过程中自然涌现的,不需要任何显式监督——路由器在优化 CosFace 损失的过程中,自动学会将不同语义区域的 token 分配给最擅长处理该区域的专家。

2. Top-k 路由器:token 级动态分配,实现分辨率感知特征提取

路由器是 FaceMoE 的核心调度模块。对于每个 token \(x_t \in \mathbb{R}^d\),路由器通过一个可学习的线性投影 \(W_r \in \mathbb{R}^{d \times N}\) 计算 N 个专家的打分:\(z_t = x_t W_r\)。然后取 Top-k 个最高分专家,对其 logits 做 softmax 得到路由权重:\(w_{i_j}(x_t) = \frac{\exp(z_{t, i_j})}{\sum_{j=1}^k \exp(z_{t, i_j})}\)。最终该 token 的 MoE 输出为 \(y_t = \sum_{j=1}^k w_{i_j}(x_t) f_{i_j}(x_t)\)

这个设计的精妙之处在于稀疏激活 + token 级粒度。k=2 << N=3 意味着每个 token 只用 2/3 的专家,计算量远小于稠密 MoE。更重要的是,路由是逐 token 而非逐样本的——同一张脸的不同 patch 可能被分配给不同专家组合。当输入是 LR 图像时,高频纹理退化严重,路由器会减少向 Expert 0(高频专家)的分配,增加向 Expert 1(低频专家)的分配,自然实现"分辨率感知"。论文用条件路由概率形式化表述了这一现象:\(\mathbb{P}(i_j \mid R_t = r) > \mathbb{P}(i_j \mid R_t \neq r)\),即给定 token 所属的语义/频率区域 \(R_t\) 后,路由到特定专家的概率显著高于其他区域。

3. 辅助损失设计:router z-loss + load balancing loss,保证训练稳定和专家均衡

直接用 CosFace 损失训练 MoE 会遇到两个典型问题:(1) 路由 logits 在训练初期容易急剧增大,导致 softmax 退化为 one-hot,梯度消失,专家坍缩;(2) 路由器可能"偷懒"——把所有 token 都分配给同一个专家,其余专家形同虚设。

Router z-loss 惩罚路由 logits 的 L2 范数:\(\mathcal{L}_z = \lambda_z \cdot \frac{1}{BT} \sum_{b=1}^B \sum_{t=1}^T \|z_{b,t}\|_2^2\)。这个二次惩罚项鼓励路由器产生平滑、低方差的 logits,防止某个专家的打分畸高,从而保证梯度能稳定回传。

Load balancing loss 同时考虑专家的"重要性"(softmax 概率和)和"负载"(被选中的 token 数):\(\mathcal{L}_{\text{balance}} = \lambda_b \cdot N \cdot \frac{1}{(BT)^2} \sum_{i=1}^N \left(\sum_{b,t} p_{b,t,i}\right) \cdot \left(\sum_{b,t} \mathbb{1}[i \in \text{TopK}(z_{b,t})]\right)\)。当某个专家的重要性高但负载低(或反之)时,这一项会增大,推动路由器均衡分配。最终总损失为 \(\mathcal{L}_{\text{total}} = \mathcal{L}_{\text{face}} + \lambda_1 \mathcal{L}_z + \lambda_2 \mathcal{L}_{\text{balance}}\),其中 \(\lambda_1 = \lambda_2 = 10\)(经过超参搜索,将辅助损失缩放到与 CosFace 损失同一量级)。

损失函数 / 训练策略

FaceMoE 分两阶段训练。预训练阶段:在 WebFace4M(约 4M 图像,205,990 个身份)上用 AdamW(weight decay \(5 \times 10^{-2}\))、Polynomial LR scheduler(1 epoch warmup,初始 LR \(10^{-3}\))、batch size 128/GPU,训练 26 个 epoch。

微调阶段分两步——线性探测(只训练分类头,LR \(10^{-3}\))再全量微调(LR \(10^{-4}\)\(5 \times 10^{-6}\))。TinyFace:线性探测 10 epoch + 全量微调 40 epoch;BRIAR:两阶段各 20 epoch。辅助损失权重 \(\lambda_1 = \lambda_2 = 10\),router z-loss 系数 \(\lambda_z = 1\),load balancing 系数 \(\lambda_b = 1\)。所有实验在 8 张 NVIDIA A6000 (48GB) 上完成。

FaceMoE (N=3, k=2) 相比标准 Swin-B(15.88 GFLOPs)计算量仅增至 26.29 GFLOPs(1.66x),但模型容量提升 2.17x,体现了稀疏激活的效率优势。

实验关键数据

主实验

BRIAR Protocol 3.1 结果(Protocol 1):在 BRIAR 数据集上,FaceMoE 在所有 FAR 阈值下均大幅超越此前 SOTA。相比第二名 ProxyFusion,1% FAR 下 TAR 从 68.90% 提升至 81.27%(绝对提升 12.37%);相比 PETALface 在 0.01% FAR 下从 35.12% 提升至 42.36%(绝对提升 7.24%)。值得注意的是,仅做预训练不微调的 CosFace (ViT-B) 在 0.01% FAR 下为 34.29%,微调后的 CosFace 反而暴跌至 11.62%——这是灾难性遗忘的直接证据,而 FaceMoE 不仅没跌反而大幅提升。

方法 TAR@FAR=0.01% TAR@FAR=0.1% TAR@FAR=1%
CosFace (ViT-B, 仅预训练) 34.29 47.41 62.81
CosFace (微调) 11.62 29.68 58.66
CAFace (NeurIPS 2022) 33.41 41.95 51.31
CoNAN (IJCB 2023) 36.52 46.14 56.32
ProxyFusion (NeurIPS 2024) 40.10 53.90 68.90
PETALface (WaCV 2025) 35.12 55.35 75.43
FaceMoE 42.36 61.47 81.27

IJB-S 跨域泛化:在 Surveillance-to-Surveillance 协议下,FaceMoE 的 TPIR@FPIR=1% 达到 14.85%,Rank-1 检索 44.81%,均显著超越此前最佳 PETALface(12.25% / 38.32%),说明 MoE 专家的分辨率感知能力在分布外监控数据上也有效。

TinyFace(Protocol 2):微调后在 TinyFace 上 Rank-1/5/10 达到 76.18/79.69/81.75,超越 PETALface(75.45/79.05/81.19)。更关键的是,FaceMoE 在 HR 数据集(LFW、CFP-FP 等)和混合质量数据集(IJB-B、IJB-C)上的性能仅比预训练基线微降,而 CosFace/Swin-B 微调后在这些数据集上出现明显掉点——证明 MoE 的稀疏激活确实有效抑制了灾难性遗忘。

消融实验

配置 MoE Top-k Router Aux Loss TinyFace Rank-1 TinyFace Rank-5 TinyFace Rank-10
Baseline (纯 Swin-B) x x x 75.10 78.16 80.20
仅加 MoE,无路由 v x x 75.40 78.46 80.63
MoE + 路由,无辅助损失 v v x 74.94 77.92 79.90
FaceMoE 完整 v v v 76.18 79.69 81.75

三个发现:(1) 仅加 MoE 不做路由(相当于所有 token 共享全部专家输出的平均),Rank-1 仅从 75.10 提升至 75.40,说明不加路由的 MoE 几乎无效;(2) 加上 Top-k 路由但去掉辅助损失,性能反而降至 74.94,低于纯 Swin-B 基线——因为路由没有正则化时训练不稳定,专家容易坍缩;(3) 三项组件齐全时达到最佳 76.18%,每个组件都不可替代。

专家数量 N 和 k 的消融:N=3, k=2 是最优配置(BRIAR Rank-1 73.1%)。N=1 时退化为普通 FFN(70.2%);N=4 时因路由不稳定和模型碎片化,性能反而下降。k=2 在效果和效率间取得最佳平衡。

关键发现

  • Top-k 路由器是最关键组件:消融中去掉路由后性能暴跌,回到接近纯 Swin-B 水平;而去掉辅助损失的配置(有 MoE 有路由但无正则化)Rank-1 甚至低于纯 Swin-B,说明没有正则化的 MoE 路由反而有害。
  • 专家特化是自然涌现的:激活图显示三个专家无需任何显式语义监督,仅通过 CosFace 损失驱动就自动分化出高频/低频/landmark 三种模式。微调后专家 2(低频轮廓)的激活模式几乎不变(保留预训练知识),而专家 1 的 token 分配显著增加(适应 LR 域)——这是"选择性漂移"的直接可视化证据。
  • 灾难性遗忘被有效抑制:定量证据包括 CKA 相似度分析——微调后绝大多数层的 CKA > 0.99,仅最深两层有显著漂移(0.8086 和 0.8677);各专家参数的 L2 位移仅约 8%。相比之下 CosFace 微调后 HR 性能断崖式下跌。
  • 对分辨率变化鲁棒:在 8x8 到 96x96 分辨率范围内测试,LFW 上从 80.75% 平滑过渡到 99.73%,不存在某分辨率突然崩溃的"悬崖"。
  • 超参 \(\lambda\) 不敏感:将辅助损失权重从 1 调到 100(两个数量级),TinyFace Rank-1 仅在 76.09-76.48 之间波动(<0.4 个百分点),BRIAR [email protected]% 在 42.27-42.56 之间波动,说明方法对超参鲁棒。

亮点与洞察

  • "选择性漂移"机制:MoE 之所以能抗灾难性遗忘,不是因为参数多,而是因为稀疏激活限制了每次更新的参数范围——微调时只有被激活的专家子集更新权重,其余专家天然保持预训练状态。这种"模块化隔离"比传统的 L2 正则、EWC 等方法更优雅,不需要额外设计遗忘抑制机制。
  • 专家特化无需显式监督:三个专家自动分化出高频/低频/landmark 的分工,完全由 CosFace 损失驱动。这说明只要给模型足够的"表达能力冗余"(多专家)+ "竞争机制"(Top-k 路由),特化会自然涌现。这一洞察可推广到其他需要多模态/多分辨率特征提取的任务。
  • Top-k 路由的 token 级粒度是关键:如果路由是样本级的(整张图分配给同一组专家),就无法实现同一张脸内不同区域的差异化处理。token 级粒度使得即使输入分辨率变化(例如 LR 下眼睛区域仍然包含边缘信息但脸颊变成平滑块),路由器能对同一张图的不同 patch 做出不同决策,这是"分辨率感知"的底层机制。
  • 辅助损失的双重作用:router z-loss 不仅稳定训练,还间接鼓励了专家分工——因为 logits 被压低后,softmax 更平滑,路由器更倾向于"综合考虑"多个专家而非每次都选同一个。load balancing loss 则保证所有专家都有机会被训练,避免"富者愈富"的马太效应。

局限与展望

  • 极端退化仍无力:作者承认在 8x8 以下分辨率、极端头部姿态(>60 度偏转)、严重遮挡(口罩/帽子/围巾)和大气湍流场景下,专家激活图变得混乱分散,模型性能急剧下降。这些场景下身份信息本质上已不可恢复,不是架构改进能解决的。
  • 训练数据偏差:WebFace4M 以西方、年轻、浅肤色人群为主,未引入平衡采样或去偏损失。虽然作者在 Bias Analysis 中论证 FaceMoE 的偏差小于 Swin-B 基线(SeR/DoB 指标),但这只是相对改善,不代表绝对公平。
  • 专家数量扩展的挑战:增加 N 到 4 以上会导致路由不稳定和训练坍缩(N=8 时 Rank-1 跌至 2.31%),说明当前的路由正则化机制还不足以支撑更大规模的 MoE。未来需要研究更鲁棒的路由策略或渐进式专家增长方法。
  • 未探索的改进方向:(1) 将 MoE 扩展到 Self-Attention 的 Q/K/V 投影层,可能进一步提升分辨率感知能力;(2) 在路由器中显式注入分辨率信息(如输入尺度编码),使路由决策更直接地与分辨率关联;(3) 探索专家数量自适应增长——在微调阶段根据数据复杂度动态增加专家,避免预训练阶段浪费容量。

相关工作与启发

  • vs CAFace / CoNAN / ProxyFusion:这些方法都在做"特征提取之后"的文章——选择哪些帧来融合、怎么加权。它们受限于前端特征编码器的质量。FaceMoE 的思路相反,直接改进特征编码器本身——如果每个 token 的特征都更好了,后端的融合自然会受益。两者是互补的,理论上可以叠加。
  • vs PETALface:PETALface 用质量自适应 LoRA 模块改造编码器,本质是给编码器增加"条件分支";FaceMoE 用多个 FFN 专家 + 路由,本质是给编码器增加"竞争性分工"。两者目标相同(改进特征提取),但 FaceMoE 的稀疏激活机制天然提供了对灾难性遗忘的抵抗力(LoRA 更新全部参数,仍会遗忘)。
  • vs MoE-FFD / AMEL(人脸分析中的 MoE):这些工作将 MoE 用于人脸伪造检测和反欺骗,但路由是样本级的、专家是参数高效的(LoRA/Adapter)。FaceMoE 的差异化在于 token 级路由和全量 FFN 专家——token 级粒度对"同一张脸的不同区域"做差异化处理,这对 LR-FR 中分辨率感知至关重要;全量专家提供了比 LoRA 更强的表达能力。

评分

  • 新颖性: ⭐⭐⭐⭐ 首次将 MoE 引入低分辨率人脸识别,用 token 级路由实现分辨率感知,思路直接但此前无人做过。MoE 本身并非新技术,但在 LR-FR 这个特定场景下的适配和验证有实质贡献。
  • 实验充分度: ⭐⭐⭐⭐⭐ 11 个数据集(HR/混合/LR 全覆盖)、两个协议、丰富的消融(组件/专家数/骨干/数据规模/分辨率/退化鲁棒性/路由稳定性/偏差分析/CKA 选择性漂移/推理效率),实验设计全面且说服力强。
  • 写作质量: ⭐⭐⭐⭐ 三个挑战的提出清晰有力,方法描述公式完整,激活图可视化直观。但部分段落略有重复(数据规模分析在正文和附录中几乎写了两遍相同内容)。
  • 价值: ⭐⭐⭐⭐ 在 LR-FR 任务上取得显著提升(BRIAR 1% FAR 提升 12%+),同时提供了一条可复用的技术路径:稀疏 MoE 作为"抗遗忘适配器"的思路可推广到其他需要域适应的视觉任务。