不需要Memory Bank:CMDR-IAD用2D+3D双分支重建做工业异常检测,MVTec 3D 97.3%

0 阅读10分钟

导读

在多模态工业异常检测中,Memory Bank方法长期占据主流地位,但它们需要存储大量正常样本特征,导致内存占用高、推理速度慢。有没有可能不用Memory Bank,也能达到同等甚至更好的检测精度?

CMDR-IAD给出了肯定的答案。这一框架通过跨模态映射建模2D纹理与3D几何之间的一致性关系,同时用双分支重建分别捕捉正常的纹理模式和几何结构,再经由可靠性感知融合将两路异常信号整合。在MVTec 3D-AD基准上,CMDR-IAD以97.3% I-AUROC和97.6% AUPRO@30%达到当前最优,推理速度3.7 FPS,且完全不依赖Memory Bank。


论文信息

  • 标题:Cross-Modal Mapping and Dual-Branch Reconstruction for 2D-3D Multimodal Industrial Anomaly Detection
  • 作者:Radia Daci, Vito Reno, Cosimo Patruno, Angelo Cardellicchio, Abdelmalik Taleb-Ahmed, Marco Leo, Cosimo Distante
  • 机构:CNR-ISASI(意大利国家研究委员会 应用科学与智能系统研究所)、CNR-STIIMA(意大利国家研究委员会 先进制造工业技术研究所)、IEMN(法国微电子与纳米技术研究所,隶属法国上法兰西理工大学/里尔大学/CNRS)
  • 代码github.com/ECGAI-Resea…

一、3D异常检测为什么需要跨模态?

工业异常检测中,单纯依赖2D RGB图像面临明显的局限:光照变化、镜面反射和传感器噪声都会干扰纹理信息的可靠性,而许多缺陷的表现形式是微妙的几何偏差,而非明显的颜色或纹理变化。因此,将2D纹理信息与3D几何信息结合成为提升检测鲁棒性的自然选择——纹理擅长捕捉表面颜色和图案异常,几何擅长捕捉形变、凹陷等结构性缺陷,两者互补。

然而,现有多模态方法存在三类问题:

  • Memory Bank方法(如BTF、M3DM):需要在训练时存储大量正常样本的特征向量,测试时逐一比对。这带来高内存占用和慢推理速度。
  • Teacher-Student方法(如AST):间接处理3D信息,未充分利用几何结构。
  • 固定融合方案:对噪声深度数据、弱纹理区域或缺失模态不够鲁棒,容易在数据质量不佳时产生误判。

CMDR-IAD的核心思路是:不存储任何训练样本特征,而是将正常模式编码进网络参数中。通过跨模态映射学习2D与3D特征之间的对应关系,通过双分支重建分别学习正常纹理和正常几何的分布,测试时直接前向传播即可完成异常检测。


二、跨模态映射+双分支重建架构

CMDR-IAD由四个核心组件组成,下面逐一说明。

2.1 多模态特征提取

2D分支采用冻结的DINO ViT-B/8(在ImageNet上预训练),将RGB图像编码为密集像素对齐的特征图,经双线性上采样后得到分辨率为224×224的特征表示F^{2D}。

3D分支采用冻结的Point-MAE(在ShapeNet上预训练),将输入点云编码为稀疏几何特征token,经插值扩展到所有点后,再通过3×3通道级2D平均池化进行空间平滑,最终通过自适应平均池化对齐到同样的224×224空间网格。

两个编码器在训练过程中完全冻结,只有后续模块的参数需要学习,这使得可训练参数量保持在较小规模。

2.2 双向跨模态映射

两个轻量级MLP分别执行双向映射:

  • M_{2D→3D}:从2D特征预测对应位置的3D特征
  • M_{3D→2D}:从3D特征预测对应位置的2D特征

每个MLP的结构为:输入投影 → 非线性变换块(GELU + LayerNorm) → 输出投影。映射在逐像素位置上独立执行。对于缺失深度数据的位置(如遮挡或传感器盲区),映射特征直接设为零,避免引入无效监督信号。

这种设计的直觉是:在正常样本上,2D纹理与3D几何之间存在稳定的对应关系(比如,某种表面纹理通常对应特定的几何形状)。当出现异常时,这种对应关系被打破,映射预测与实际特征之间的差异就是异常信号。

2.3 双分支重建模块

2D重建分支:线性投影 → Sparse-Attention块(QKV线性层 → Attention → 投影) → LayerNorm → MLP Block(残差连接) → reshape为空间网格 → ConvTranspose2D层完成上采样重建。

3D重建分支:投影层 → ConvTranspose1D层序列逐步上采样到原始分辨率 → 轻量级通道注意力模块(AvgPool → Conv1D → ReLU → Conv1D → Sigmoid)作为残差通路。

两个分支各自独立训练,使用Masked Similarity Loss(基于余弦相似度),仅在有有效3D特征的像素上计算。四个损失函数(2D/3D映射损失 + 2D/3D重建损失)各自只更新对应模块,不共享梯度。

2.4 可靠性感知融合

异常评分的融合分为两个层面:

Reliability-Gated Mapping Anomaly(可靠性门控映射异常) :将2D映射差异和3D映射差异相乘(乘法操作强调双模态一致的异常区域),再通过从局部统计量导出的空间可靠性系数α进行门控,抑制不可靠区域的噪声。

Confidence-Weighted Reconstruction Anomaly(置信度加权重建异常) :2D和3D的重建差异各自乘以一个与重建误差负相关的置信度权重(温度参数β=0.3),然后加权平均。重建误差越小的模态,置信度越高,在融合中占更大权重。

最终异常图 = 映射异常 × 重建异常,再经box filter空间平滑。图像级评分取异常图的最大值除以有效区域均值的平方根。

图片

图片来源于原论文


三、MVTec 3D-AD实验:97.3% I-AUROC

实验设置

  • 数据集:MVTec 3D-AD,包含10个工业物体类别,2656个训练样本(仅正常)+ 1197个测试样本(正常+缺陷)
  • 训练配置:每个类别独立训练,Adam优化器,学习率10^{-3},batch size=1,50个epoch
  • 硬件:NVIDIA A100 GPU

主实验结果

下表展示了2D+3D多模态设置下的I-AUROC结果,CMDR-IAD与16种对比方法的逐类别对比:

方法BagelCable GlandCarrotCookieDowelFoamPeachPotatoRopeTireMean
M3DM (2023)99.490.997.297.696.094.297.389.997.285.094.5
CFM (2024)99.488.898.499.398.088.894.194.398.095.395.4
MTSJM (2025)100.093.198.599.496.889.998.694.796.289.795.7
3D-ADNAS (2025)99.7100.097.198.696.694.889.787.3100.086.795.1
CMDR-IAD99.693.098.699.899.193.699.693.195.797.597.3

几个值得关注的数据点:

  • Mean I-AUROC 97.3%,超越第二名MTSJM的95.7%(+1.6%)
  • CMDR-IAD在10个类别中5个取得最高I-AUROC(Carrot 98.6%、Cookie 99.8%、Dowel 99.1%、Peach 99.6%、Tire 97.5%)
  • CMDR-IAD是唯一所有类别I-AUROC均超过93%的方法(范围93.0%–99.8%),其他方法都存在个别类别的明显短板

在像素级定位指标上,CMDR-IAD同样表现优异。在像素级定位指标上,2D+3D设置的AUPRO@30% Mean达到97.6% ,所有类别均超过95.5%(范围95.9%–98.2%)。在更严格的AUPRO@1%指标上,CMDR-IAD取得46.5% Mean,10个类别中8个最高。

推理效率对比

下表综合对比了推理速度、内存占用和检测性能:

方法帧率 (FPS)内存 (MB)I-AUROCP-AUROCAUPRO@30%AUPRO@1%
CFM (CVPR 2024)3.3311957.7795.499.297.145.5
CMDR-IAD3.7102797.6597.399.697.646.5

CMDR-IAD的推理帧率为3.710 FPS,高于CFM的3.331 FPS(+0.379 FPS)。内存占用2797.65 MB高于CFM的1957.77 MB(+839.88 MB),但关键在于CMDR-IAD完全不使用Memory Bank——这意味着其内存占用不会随训练数据量增加而膨胀,而Memory Bank方法的内存会持续增长。

在所有性能指标上,CMDR-IAD均为最高:I-AUROC 97.3%(+1.9%)、P-AUROC 99.6%(+0.4%)、AUPRO@30% 97.6%(+0.5%)、AUPRO@1% 46.5%(+1.0%)。

聚氨酯数据集:3D-only验证

论文还在一个来自MOROSAI项目的真实聚氨酯切割数据集上验证了3D-only模式(该数据集仅有3D点云,无RGB图像):

指标帧率 (FPS)内存 (MB)I-AUROCP-AUROC
CMDR-IAD (3D-only)24.63465.6892.6%92.5%

3D-only模式的推理速度达到24.63 FPS,内存仅465.68 MB,说明框架在单模态场景下依然保持良好的性能和效率。

图片

图片来源于原论文


四、消融实验:映射和重建各贡献多少?

跨模态映射 vs 双分支重建

下表对比了单独使用重建或映射、以及两者结合的效果:

配置I-AUROCP-AUROCAUPRO@30%AUPRO@1%
仅双分支重建95.098.695.241.0
仅跨模态映射95.499.497.446.0
CMDR-IAD(两者结合)97.399.697.646.5

单独使用任一组件已经能获得较强的性能(I-AUROC均在95%以上),但两者结合后I-AUROC从95.0%/95.4%提升到97.3%(+2.3%/+1.9%)。值得注意的是,跨模态映射单独使用时在像素级定位指标上表现更突出(AUPRO@30% 97.4% vs 重建的95.2%,差距+2.2%),说明映射组件对精确定位的贡献更大。而两者结合后,I-AUROC的提升幅度最为显著,说明重建组件主要贡献于图像级检测的准确性。

融合策略消融

下表对比了7种不同的融合策略:

融合变体I-AUROCP-AUROCAUPRO@30%AUPRO@1%
Case 1: 门控映射融合96.799.597.446.3
Case 2: 纯乘法融合97.199.597.646.4
Case 3: 软自适应融合96.799.296.845.0
Case 4: Softmax映射+门控重建96.699.597.446.1
Case 5: 双门控融合97.099.697.746.5
Case 6: 均匀平均95.098.795.742.5
CMDR-IAD(Reliability-Gated + Confidence-Weighted)97.399.697.646.5

这组消融有几个清晰的结论:

  1. 均匀平均(Case 6)是最差的选择:I-AUROC仅95.0%,比CMDR-IAD低2.3%,AUPRO@1%仅42.5%(-4.0%),说明简单平均无法处理不同模态信号的可靠性差异。
  2. 无可靠性门控的软融合(Case 3)也表现不佳:AUPRO@30%仅96.8%,比CMDR-IAD低0.8%,说明不加门控的自适应权重容易被噪声模态误导。
  3. 包含可靠性门控的变体(Cases 1, 4, 5)一致性更好:都在96.6%–97.0% I-AUROC范围内,验证了可靠性门控机制的有效性。
  4. CMDR-IAD的融合方案在综合指标上最优,虽然Case 5在AUPRO@30%上略高0.1%,但CMDR-IAD在I-AUROC上高出0.3%,整体表现最均衡。

五、总结与思考

CMDR-IAD用跨模态映射+双分支重建替代Memory Bank,在MVTec 3D-AD上以97.3% I-AUROC和97.6% AUPRO@30%达到当前最优,推理速度3.710 FPS。

消融实验中有两个值得注意的发现:一是跨模态映射单独使用时AUPRO@30%已达97.4%,接近完整模型的97.6%,说明显式建模2D-3D对应关系对像素级定位贡献很大;二是融合策略的设计带来了2.3%的I-AUROC提升(均匀平均 vs 可靠性门控),在3D传感器数据存在噪声和缺失的工业场景中,这种区分可靠区域与不可靠区域的机制是必要的。

内存方面,CMDR-IAD的2797.65 MB并不算低,但它是固定的——不随训练数据量增长,这是相对Memory Bank方法在产线部署时的实际优势。

局限性在于:框架依赖对齐的RGB-3D数据,2D-only设置下I-AUROC为87.5%(低于3D-ADNAS的92.0%),优势集中体现在多模态协同上。