跳转至

IMMoE: Incomplete Multi-View Anomaly Detection via Mixture of View Experts Fusion

会议: ECCV2026
论文: ECCV 原文
代码: https://github.com/HULEI7/IMMoE
领域: 异常检测
关键词: 不完整多视图、工业异常检测、混合专家、特征重建、区域自适应损失

一句话总结

IMMoE 用局部特征丢弃缓解遮挡模式过拟合,再以视图专家融合引导正常特征重建,在产品区域遮挡 50% 的 RIMAD 上取得 84.7 I-AUROC / 33.1 P-AP,但这不是对真实遮挡下隐藏缺陷可恢复性的完整证明。

研究背景与动机

工业零件常要从多个角度检查,因为单张图像无法覆盖所有表面。 然而,把同一个异常检测器分别运行在各个视角,并不意味着模型已经学会视图之间的互补关系。 当某个视图的一部分被遮挡时,单视图重建模型只能依赖本图剩余内容,既可能丢失缺陷线索,也可能把人为缺失边界当作异常。 Dinomaly、INP-Former 等方法提供了强特征重建基线,但本文关注的是这些方法在局部缺失输入下的适应能力,而非重新定义全部工业异常检测。

已有 MVAD 等融合方法会跨视图交互,可是融合本身也可能把遮挡伪影传播到其他视图。 因此问题不只是“有没有其他相机”,还包括单视图表示是否过度记住缺失模式,以及训练是否把大量精力花在简单背景上。 作者将问题设为不完整多视图异常检测,即每个视图仍然存在,但其中一部分产品像素不可用。 这与整个摄像头失效、缺少完整视图或缺少某种传感模态不同,不能直接混为一种缺失设置。

论文据此提出 RIMAD:从 Real-IAD 的产品区域随机删除局部内容,同时保留原始图像作为重建参照。 方法先稳定每个视图的特征,再学习哪些视图的表示值得融合,最后让训练更关注困难产品区域。 核心 idea:用局部特征丢弃减少对缺失伪影的依赖,通过视图专家形成共享上下文,再把该上下文回注到各视图的正常特征重建中。

方法详解

整体框架

输入是同一物体的一组不完整视图及对应二值缺失掩码,Real-IAD 设置中每个物体有 5 个视图。 掩码约定为缺失像素取 0、有效像素取 1;它不是缺陷标注,也不直接表示某处是否异常。 训练时,共享权重的预训练编码器分别提取不完整图像特征和原始图像参考特征。 随后依次经过局部异常增强编码器(LAEE)、多视图专家融合(MVEF)和重建解码器,得到各视图的恢复特征。 区域自适应损失(AAL)只负责训练时的梯度加权;测试阶段使用参考与重建特征的差异生成异常图。 尽管任务定义使用了“重建原始正常图像”的说法,具体实现的监督对象是特征,而不是 RGB 像素输出。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
        A["不完整多视图"] --> B["共享预训练编码器"]
        B --> C["局部异常增强编码器<br/>LAEE"]
        C --> D["多视图专家融合<br/>MVEF"]
        D --> E["重建解码器"]
        R["原始图像<br/>共享编码器参考特征"] --> F["特征差异"]
        E --> F
        F -->|训练| G["区域自适应损失<br/>AAL"]
        M["缺失与产品掩码"] -->|训练区域先验| G
        F -->|测试| H["异常图"]

图中的原始图像参考支路沿用论文图 3 与第 4.1 节的描述,而不是额外假设存在正常测试真值。 论文对真实遮挡测试时这一路参考如何获得交代不足,这会影响对系统部署条件的理解,后文单独讨论。 SAM 用于生成数据集的产品掩码,不属于每次异常判断都必须调用的在线融合模块。 生成器在产品区域内随机放置矩形缺失块,直到遮挡其面积的 50%;正文把每块面积写为 8–32 平方像素。 这里按正文保留面积单位,不擅自将它改写成矩形边长。

关键设计

1. 局部异常增强编码器:先让单视图表示摆脱固定缺失模式

单视图输入已经缺失一部分像素,为什么还要继续丢弃特征? 作者的判断是:若网络总能依赖某些稳定的缺失边界或残留局部线索,就可能学到“如何拟合遮挡”,而非“正常产品应有什么结构”。 LAEE 因而在每个视图的 patch 特征上执行随机 dropout,默认比例为 0.1。 这是特征元素的随机丢弃,并不等价于额外删除 10% 的原始图像面积,也不是生成带标签的真实缺陷。 每个视图的输入表示有 \(N\) 个 patch、每个 patch 有 \(C\) 维特征,LAEE 不改变这套空间索引的基本含义。 丢弃后,模块利用线性注意力从剩余位置重新聚合上下文,使局部受损表示仍能接收较大范围的信息。

这里采用线性注意力是为了避免标准自注意力随 patch 数增加而带来的高开销。 论文给出的形式将查询与键映射后重排乘法,但缓存未完整说明激活和归一化实现,因此不将其扩写成可直接复现的精确算子。 这一模块主要处理单视图内部的鲁棒性,不能凭空找回只存在于其他视角的语义。 后续必须通过 MVEF 引入其他视图,否则 dropout 本身只是一种正则化,并没有建立跨视图信息通路。

2. 多视图专家融合:先汇成全局表示,再回到每个视图

MVEF 接收所有视图的增强特征,沿视图维组织成 \(V\times N\times C\) 的张量。 线性层和 softmax 构成门控网络,输出 \(V\times N\) 的重要性权重,而不是为整张图只给一个固定标量。 每个视图还有自己的专家,由两个线性层及 GELU 激活构成,用来变换该视角的表示。 这与主要依靠类别专家扩展容量的 MoE 不同:本文让专家对应视图,目的是组织互补观察。 正文没有描述 top-k 稀疏路由,不能仅因名称里有 MoE 就推断它只激活少量专家。 为了说明式 (7) 中的逐位置加权含义,可将其用统一符号写成:

\[ F_{\mathrm{fuse}}[j,:]=\sum_{i=1}^{V}g_{i,j}E_i(F_{\mathrm{enh},i})[j,:]. \]

这里 \(g_{i,j}\) 是视图 \(i\) 在位置 \(j\) 的门控权重,\(E_i\) 是对应视图专家;融合后仍保留 \(N\times C\) 的特征形状。 该表达说明全局融合不是把全部视图 token 原样交给解码器,而是在专家变换后进行加权汇总。 不过,不同相机的相同 patch 索引不自动对应同一物理表面,正文没有显式相机标定或几何配准步骤。 因此应把这一步理解为学习到的语义融合,而不是已证明的逐像素几何对应。

接着,每个视图用自己的增强特征生成 query,用融合特征生成 key 和 value,通过交叉注意力取回相关上下文。 这一步很重要:不同视角需要恢复的内容不同,不能把同一份全局向量直接复制成所有视图的输出。 交叉注意力之后,使用线性注意力的 Transformer 解码器生成该视图的重建特征。 作者认为这种“汇总再回注”可在局部缺失时利用其他视角的结构线索,但没有证明所有被遮挡缺陷都能被其他视角识别。

3. 区域自适应损失:把梯度预算分给困难产品区域

重建学习面对的区域难度并不均衡:背景往往容易,产品本体更复杂,缺失产品区域又更难。 AAL 先计算原始参考特征与重建特征的余弦距离,再依据局部误差相对整个 batch 平均误差的大小调整梯度。 为明确“特征差异”的含义,标准余弦距离定义如下;这是指标定义,不是对缓存中损坏式 (10) 的逐字恢复:

\[ D_{\mathrm{cos}}(a,b)=1-\frac{a^{\top}b}{\lVert a\rVert_2\lVert b\rVert_2}. \]

局部误差与 batch 均值之比被提升到 \(\theta=3\) 次方,使相对难重建的 patch 得到更强关注。 随后引入区域系数:缺失区域为 0.4,未缺失的产品前景为 0.2,其他区域为 0。 这两个区域维度共同决定训练重点:既考虑模型当前哪里做得差,也利用产品与缺失掩码表达任务先验。 按正文对系数的解释,背景获得零区域权重,不应把它简单描述成普通的全图均匀重建损失。

缓存中的式 (11) 含有未充分解释的 cg 操作,式 (12) 的排版也有损坏。 因此不能确认它是否严格等价于直接给标量损失乘权重,以及权重分支本身是否参与求导。 这里保留作者关于“梯度调制”的文字含义,不臆造 stop-gradient 的位置或精确总损失公式。

一个完整示例

考虑同一正常零件的 5 个视图,其中一个视图的产品局部被随机矩形遮住;这是流程示例,不是新增实验。 训练时,遮挡后的图像走重建支路,遮挡前的正常图像走共享编码器参考支路。 LAEE 对 patch 特征做比例 0.1 的随机丢弃,再聚合本视图的剩余上下文。 MVEF 为这些位置综合不同视图专家的输出,随后由当前视图的 query 选择需要借用的全局信息。 解码器恢复特征后,AAL 把缺失产品区域与可见产品区域区别对待,避免训练主要由易重建背景支配。 在异常测试样本上,正常模式重建与参考特征之间的差异被用于定位异常;缺陷如果对所有可用视图都不可见,不能从这条流程推出它必然可检出。

损失函数 / 训练策略

实验采用 ViT-Base/14,预训练权重名称在正文写为 DINO2-R,并引用带 registers 的视觉 Transformer 工作。 输入先缩放到 \(448\times448\),再中心裁剪至 \(392\times392\)。 训练使用 StableAdamW 与 AMSGrad,运行 50,000 次迭代,学习率为 \(2\times10^{-3}\),权重衰减为 \(10^{-4}\)。 优化器系数为 \((0.9,0.999)\),与 AAL 的区域系数不是同一含义;所有实验在单张 NVIDIA RTX 4090 上完成。 正文没有充分交代编码器冻结策略、异常图转成图像分数的聚合方式,以及部署时是否保留随机 dropout,不能自行补成实现事实。

实验关键数据

主实验

Real-IAD 包含 30 类产品,每件样本有 5 个视图;99,721 张正常图像中,36,465 张训练、63,256 张测试,另有 51,329 张异常测试图像。 RIMAD 从同一数据源生成,在产品区域使用默认 50% 遮挡;它不是独立采集的真实遮挡数据集。 指标均以百分数报告:I-AUROC 衡量图像级异常区分,P-AP 衡量像素级异常排序,更关注少数异常像素。 下表摘自原文表 1(第 10 页)与表 2(第 11 页),作者声明各方法在统一实验设置下复现。

数据集 方法 I-AUROC P-AP
RIMAD,50% 遮挡 Dinomaly 77.7 27.1
RIMAD,50% 遮挡 INP-Former 82.4 29.6
RIMAD,50% 遮挡 MVAD 79.3 27.4
RIMAD,50% 遮挡 IMMoE 84.7 33.1
Real-IAD,完整视图 Dinomaly 89.3 42.8
Real-IAD,完整视图 INP-Former 89.1 43.7
Real-IAD,完整视图 MVAD 86.6 30.3
Real-IAD,完整视图 IMMoE 89.7 44.3

RIMAD 上相对 INP-Former 的绝对增益为 2.3 个 I-AUROC 百分点和 3.5 个 P-AP 百分点。 摘要所说的 2.8% 与 11.8% 对应以上差值除以基线后的相对提升,不能写成 2.8 / 11.8 个百分点。 平均领先不等于所有类别领先:表 1 的 Bottle Cap 中 IMMoE 为 86.7 / 34.0,低于 MambaAD 的 92.4 / 37.1。

消融实验

下表来自原文表 3(第 12 页),均为默认 RIMAD;它是顺序加入组件的实验,不是所有模块组合的完整因子分析。

LAEE MVEF AAL I-AUROC P-AP
76.9 26.2
81.3 29.1
84.0 32.3
84.7 33.1

加入 LAEE 的第一步使 I-AUROC 增加 4.4 个百分点;在此基础上加入 MVEF 再增加 2.7 个百分点。 AAL 最后增加 0.7 个 I-AUROC 百分点和 0.8 个 P-AP 百分点,支持其增益,但不足以隔离各组件的全部交互作用。 原文表 4(第 13 页)的遮挡比例分析如下,每格为 I-AUROC / P-AP。

产品区域遮挡比例 Dinomaly INP-Former IMMoE
0% 89.3 / 42.8 89.1 / 43.7 89.7 / 44.3
25% 76.5 / 21.6 77.1 / 22.1 77.9 / 20.0
50% 77.7 / 27.1 82.4 / 29.6 84.7 / 33.1
75% 84.4 / 39.8 83.7 / 34.1 87.3 / 42.0

关键发现

  • 遮挡增多并非性能持续下降。作者解释为高遮挡迫使模型依赖跨视图语义,但本文未用独立的因果消融验证这一解释。
  • 25% 遮挡时 IMMoE 的 P-AP 为 20.0,低于两个基线,说明优势依赖遮挡设置,不能宣称全部缺失比例上都最优。
  • 表 5(第 13 页)中 dropout 为 0.1 时结果为 84.7 / 33.1,0.2 时为 84.2 / 33.4;正文称 0.1 最优只对 I-AUROC 成立。
  • dropout 增至 0.3 后降为 76.9 / 26.8,表明在不完整输入上过度丢弃特征会破坏可用信息。

亮点与洞察

  • 视图融合发生在重建过程内部,而非只对最终异常分数求平均。这让其他相机的信息有机会改变当前视图的正常特征预测。
  • 专家聚合后再进行逐视图交叉注意力,保留了各视角的不同需求。可迁移之处是“共享上下文再按视图读取”,而非简单增加专家数量。
  • 正则化与区域权重分别针对输入伪影和训练难度分布。顺序消融显示两者与融合互补,但不应据此认为其中任一模块单独就能解决遮挡。

局限与展望

  • 评测输入边界:第 4.1 节称测试仍比较原始图像参考特征与重建特征;没有清楚说明真实遮挡时如何获得未遮挡参考,也没有明确遮挡区域的像素评测处理方式。
  • 合成遮挡边界:随机小矩形不等同于真实遮挡物、反光或相机失效。应补充独立真实遮挡数据,并区分可见缺陷、被遮挡缺陷和纯遮挡伪影。
  • 机制与复现边界:门控的具体归一化轴、损失梯度实现及推理分数聚合说明不足;缓存公式损坏进一步限制了精确复现,本笔记未查阅代码实现。
  • 证据强度:主文未给多随机种子误差条、参数量或吞吐量对比。完整数据上的小幅领先与“计算高效”论断仍需要统计及成本证据。

相关工作与启发

  • 与 Dinomaly / INP-Former 对比:延续预训练特征重建路线,主要增加跨视图信息回注和缺失区域适配,而不是用新的缺陷标签训练分类器。
  • 与 MVAD 对比:MVAD 通过窗口注意力选择跨视图相关区域,IMMoE 用视图专家聚合再回注;默认 RIMAD 上胜出不意味着其几何对齐机制更强。
  • 与 MoEAD 对比:MoEAD 强调类别相关专家和参数效率,IMMoE 将专家分工绑定到视图。二者解决的专家选择问题不同,不能直接以专家数量评价优劣。
  • 后续启发:可对照显式可见性门控与学习门控,并分别报告遮挡/可见区域指标,检验增益来自跨视图补充还是合成缺失模式的适应;这是读者建议,不是论文已做实验。

评分

  • 新颖性: 4/5,围绕局部缺失组合视图专家、特征正则化和区域加权,任务针对性强。
  • 实验充分度: 3/5,有双数据设置及组件、遮挡和 dropout 分析,但缺少真实遮挡与不确定性报告。
  • 写作质量: 3/5,主流程清晰,但测试参考、损失细节和“最优”措辞仍存在说明缺口。
  • 价值: 4/5,为多视图工业检测中的缺失鲁棒性提供可用思路,部署前需核清参考图像条件。