RealNet学习-基于真实合成异常的特征选择网络(CVPR 2024)

RealNet是CVPR2024上一篇基于重建思路的异常检测方法,取得了很好的效果。
RealNet总体架构


RealNet:基于真实合成异常的特征选择网络(CVPR 2024)

code: https://github.com/cnulab/RealNet
paper: RealNet: A Feature Selection Network with Realistic Synthetic Anomaly for Anomaly Detection (CVPR 2024)
SDAS效果

文章总体思路

  • 本文总体上属于特征重建类,RealNet自身包含AFS和RRS两个创新,并通过提出SDAS来生成更真实的异常来辅助提高效果。
  • 其中SDAS是受到自监督异常检测类方法在异常合成(anomaly synthesis)方面的启发进行效果改善;
  • AFS是考虑到重建类方法,不同类别所需的最优预训练特征是有差异的,选择合适的预训练特征对异常检测的重要性,因此实现了自动的特征选择;

作者总结的主要贡献

  1. 提出RealNet特征重建网络
    RealNet通过自适应选择预训练特征和重建残差,有效利用多尺度预训练特征进行异常检测。该网络在解决传统方法计算成本高的同时,实现了最先进的检测性能。其核心创新在于结合动态特征选择与残差优化机制,显著提升了模型效率和准确性。

  2. 引入强度可控的扩散异常合成(SDAS)
    SDAS是一种基于扩散模型的新型异常生成策略,能够合成与真实异常分布高度一致的多样化样本。通过调节异常强度参数,SDAS可灵活生成从细微缺陷到显著结构异常的样本,突破了传统数据增强方法在真实性和多样性上的局限。

  3. 跨数据集验证性能优势
    在MVTec-AD、MPDD、BTAD和VisA四个工业异常检测基准数据集上,RealNet使用统一的网络架构和超参数设置,均显著超越现有方法。例如,在MVTec-AD上实现Image AUROC 99.65%、Pixel AUROC 99.03%,证明了其通用性和鲁棒性。

  4. 发布合成工业异常数据集(SIA)
    通过SDAS生成包含36类工业产品、共36万张异常图像的SIA数据集。该数据集支持自监督异常检测方法的训练,解决了真实异常数据稀缺的问题,为后续研究提供了标准化资源。

实际核心模块

RealNet 是一种自监督异常检测框架,针对工业图像中的异常检测与定位任务提出创新解决方案。其核心贡献在于结合了以下三个关键技术:

1. 强度可控的扩散异常合成(SDAS)

基于去噪扩散概率模型(DDPM),通过在反向扩散过程中引入扰动项,生成与真实异常分布高度一致的合成异常图像,解决了传统异常合成方法(如CutPaste、NSA)在真实性多样性上的局限性。SDAS 支持灵活调节异常强度,能够模拟老化、结构变化、纹理异常等多种自然异常模式。

SDAS生成效果以及与其他生成方法的对比
SDAS的原理简单来说就是在扩散模型的去噪过程中,也就是反向扩散过程中,添加一些扰动,使模型不能正常的扩散回正常样本的样子,具体的从公式上来看:

标准反向扩散过程
p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_{\theta}(x_{t-1} | x_t) = \mathcal{N}\left(x_{t-1}; \mu_{\theta}(x_t, t), \Sigma_{\theta}(x_t, t)\right) pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))
SDAS的改进反向扩散
p θ ( x t − 1 ′ ∣ x t ) = N ( x t − 1 ′ ; μ θ ( x t , t ) , ( 1 + s ) Σ θ ( x t , t ) ) p_{\theta}(x'_{t-1} | x_t) = \mathcal{N}\left(x'_{t-1}; \mu_{\theta}(x_t, t), (1+s)\Sigma_{\theta}(x_t, t)\right) pθ(xt1xt)=N(xt1;μθ(xt,t),(1+s)Σθ(xt,t))
对比可以看出差异就在参数 s s s的引入,其中:

  • s ≥ 0 s \geq 0 s0异常强度控制参数 s = 0 s=0 s=0 时退化为正常图像生成过程。
  • μ θ ( x t , t ) \mu_{\theta}(x_t, t) μθ(xt,t) 是神经网络预测的均值,通常通过去噪模型 ϵ θ ( x t , t ) \epsilon_{\theta}(x_t, t) ϵθ(xt,t) 计算得到:
    μ θ ( x t , t ) = 1 α t ( x t − β t 1 − α ˉ t ϵ θ ( x t , t ) ) \mu_{\theta}(x_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \epsilon_{\theta}(x_t, t) \right) μθ(xt,t)=αt 1(xt1αˉt βtϵθ(xt,t))
  • Σ θ ( x t , t ) \Sigma_{\theta}(x_t, t) Σθ(xt,t) 是学习得到的方差(如通过IDDPM [25]的混合方差策略)。
对比维度标准反向扩散公式SDAS公式差异原因与目的
方差项 Σ θ ( x t , t ) \Sigma_{\theta}(x_t, t) Σθ(xt,t) ( 1 + s ) Σ θ ( x t , t ) (1+s)\Sigma_{\theta}(x_t, t) (1+s)Σθ(xt,t)通过扩大方差引入扰动,使生成样本偏离正常分布。
异常控制通过(s)调节扰动强度实现异常强度的灵活控制,生成从轻微到显著的异常。
生成目标生成正常图像(高概率密度区域)生成低概率密度区域的异常图像模拟真实异常分布,覆盖多样化的异常模式。

异常合成
基于diffusion生成的是整张异常的图片,作者在实际使用时,会基于anomaly mask仅将生成的异常图像的mask区域加到正常图像上作为异常区域,其中 M M M是anomaly mask, δ \delta δ是往正常图像上贴时的不透明度(作者实验时为不同样本选择0.5-1间的随机值):
在这里插入图片描述
(注意作者发布的SIA数据集是没有与正常图像叠加过的样本,所以在训练异常检测时先做这一步的叠加)

2. 异常感知特征选择(AFS) -用于选择对异常区域最敏感的特征

通过自监督方式从预训练网络中筛选出最具判别性的特征子集,减少冗余特征和预训练偏差。AFS 针对不同类别动态选择最优特征组合,在控制计算成本的同时提升检测性能,其优势在于:

  • AFS 减少了层内特征冗余,减轻了预训练偏差,增强了特征代表性和可辨别性,从而提高了异常检测性能。
  • AFS 拓宽了感受野,增强了多尺度异常检测能力。
  • AFS 将预训练特征的维度与异常检测所用的维度区分开来,确保有效控制计算成本和灵活定制模型大小。

简单理解,AFS就是在提取特征的预训练网络的每一个block的最后一层(layer),仅选取部分通道而不是全部用于特征重建,从而减少了实际使用的特征。

AFS的介绍提到了很多卷积神经网络的基本概念,比如layers, block, feature map, channel等,容易看的比较混乱,这里统一梳理一下:

  • 块(Block):ResNet中的残差模块,包含多个卷积层。
  • :表示不同块的最后一层输出,对应不同空间分辨率(如block1至block4输出逐步下采样)。
  • 通道数(cₖ):每个块输出的特征图通道数(如block1输出256通道,block2输出512通道)。
  • 特征图(φₖ(Aₙ) ∈ ℝ^{hₖ×wₖ×cₖ}):第k个块对输入图像Aₙ提取的特征。不同通道编码不同视觉模式(如颜色、纹理、形状)。AFS从中选择对异常敏感的通道。
  • 核心步骤
    1. 特征差异计算:对合成异常图像Aₙ和正常图像Iₙ,计算同一通道的特征差异:
      [ φ k , i ( A n ) − φ k , i ( I n ) ] 2 [φ_{k,i}(Aₙ) - φ_{k,i}(Iₙ)]² [φk,i(An)φk,i(In)]2
    2. 分辨率对齐:通过函数F(·)将差异图的分辨率对齐到异常掩码Mₙ(如双线性插值)。
    3. 损失评估:计算AFS损失(公式4),衡量该通道对异常区域的定位能力:
      L A F S ( φ k , i ) = 1 N ∑ n = 1 N ∥ F ( [ φ k , i ( A n ) − φ k , i ( I n ) ] 2 ) − M n ∥ 2 2 \mathcal{L}_{AFS}(φ_{k,i}) = \frac{1}{N} \sum_{n=1}^{N} \| F([φ_{k,i}(Aₙ) - φ_{k,i}(Iₙ)]²) - Mₙ \|_2^2 LAFS(φk,i)=N1n=1NF([φk,i(An)φk,i(In)]2)Mn22
    4. 通道选择:对每个块k,选择损失最小的mₖ个通道(如block1选256→128通道),通过该步骤实现的特征选择,realnet只需要对预训练特征计算1次并保存下来,以用于后续的训练推理等
    • 作用
      • 减少冗余:剔除对异常检测无关或冗余的通道(如背景响应通道)。
      • 缓解预训练偏差:避免分类任务预训练的特征偏向语义类别而非异常模式。
主要步骤/概念在AFS中的角色
预训练网络提供多尺度、多语义的基础特征。
块(Block)与层分层提取特征,适配不同粒度异常(高分辨率→细节,低分辨率→结构)。
通道(Channel)通过选择判别性通道,优化特征表达,减少冗余。
特征选择(AFS)动态筛选通道,提升异常敏感度,抑制预训练偏差。
多尺度重建独立处理各层特征,平衡检测分辨率与计算效率。

通过上述机制,AFS显著提升了异常检测的精度与效率,同时保持了对复杂工业场景的适应能力。

3. 重建残差选择(RRS) -用于选择对异常判别最有效的重建残差

自适应选择包含显著异常信息的重建残差,结合全局最大池化(GMP)和平均池化(GAP)策略,增强对多尺度异常的捕捉能力,减少漏检。其设计融合了局部与全局显著性评估,在保证检测精度的同时显著降低计算成本,是RealNet实现高效异常定位的核心模块之一。

与其他模块的协同作用
  • 与AFS的协同:AFS筛选出判别性特征通道,RRS进一步从这些通道中选择残差,形成两级优化(特征级→残差级)。
  • 与SDAS的互补:SDAS生成逼真异常样本,RRS确保模型聚焦于关键异常模式,减少合成噪声的影响。
1. 设计动机

在基于特征重建的异常检测中,多尺度重建残差(即输入特征与重建特征之间的差异)包含了不同层次的异常信息。然而,直接使用所有残差可能导致以下问题:

  • 冗余干扰:部分残差可能对应正常区域的微小波动,缺乏异常判别性。
  • 分辨率矛盾不同尺度的残差对不同规模异常的敏感度不同(如低分辨率特征可能遗漏细节异常)
  • 计算开销:高维残差的直接处理会增加计算负担。

因此,RRS的目标是自适应选择最具判别性的残差,以提升异常定位的准确性和效率。

2. RRS的核心设计
步骤1:构建全局重建残差
  • 输入:各层(k=1到K)的重建残差 E k ( A n ) = [ φ k ( A n ) − G k ( φ k ( A n ) ) ] 2 E_k(A_n) = [\varphi_k(A_n) - G_k(\varphi_k(A_n))]^2 Ek(An)=[φk(An)Gk(φk(An))]2
  • 处理:将低分辨率残差上采样至最高分辨率(如 h ′ × w ′ = 64 × 64 ) h' \times w' = 64 \times 64) h×w=64×64),并沿通道维度拼接,得到全局残差 E ( A n ) ∈ R h ′ × w ′ × m ′ E(A_n) \in \mathbb{R}^{h' \times w' \times m'} E(An)Rh×w×m ( m ′ = ∑ m k ) (m' = \sum m_k) (m=mk)
  • 目的:统一多尺度残差的分辨率,便于后续选择。
步骤2:显著性评估与残差选择
  • 全局池化
    • 全局最大池化(GMP):提取每个通道的最大响应值 E GMP ( A n ) ∈ R m ′ E_{\text{GMP}}(A_n) \in \mathbb{R}^{m'} EGMP(An)Rm,捕捉局部显著异常(如小面积缺陷)。
    • 全局平均池化(GAP):计算每个通道的平均响应值 E GAP ( A n ) ∈ R m ′ E_{\text{GAP}}(A_n) \in \mathbb{R}^{m'} EGAP(An)Rm,反映全局异常分布(如大范围结构异常)。
  • Top-K选择
    • E GMP E_{\text{GMP}} EGMP E GAP E_{\text{GAP}} EGAP中分别选取前 r / 2 r/2 r/2个最大值的通道索引。
    • 拼接两部分索引对应的残差,得到 E RRS ( A n , r ) ∈ R h ′ × w ′ × r E_{\text{RRS}}(A_n, r) \in \mathbb{R}^{h' \times w' \times r} ERRS(An,r)Rh×w×r(保留总通道数的1/3,如 r = m ′ / 3 r = m'/3 r=m/3)。
步骤3:异常得分生成
  • 判别器映射:将 E RRS E_{\text{RRS}} ERRS输入轻量级判别器(如MLP+上采样层),输出像素级异常得分图(Anomaly map)。
  • 评分规则:图像级异常分数取得分图的最大值,像素级异常区域直接由得分图阈值化得到。
3. 设计细节与创新点
设计要素具体实现作用
Max&Avg融合策略同时利用GMP(局部极值)和GAP(全局分布)选择残差兼顾不同规模异常,避免单一策略的偏差。
保留比例控制保留总通道数的1/3(如 r = m ′ / 3 r = m'/3 r=m/3平衡信息保留与冗余剔除,控制计算开销。
残差归一化对全局残差 E ( A n ) E(A_n) E(An)进行批归一化(无仿射变换)消除多尺度残差的分布差异,提升选择稳定性。
判别器轻量化使用MLP与上采样层,而非复杂网络减少计算成本,适配实时工业检测需求。
4. 实验验证与效果

作者的GPU是1块NVIDIA RTX3090,所以实验都是在这上面做的,所有图像都统一尺寸为256*256,在此基础下realnet的训练大概需要2小时;

  • 性能提升在MVTec-AD数据集上,RRS使Pixel AUROC从95.84%提升至98.22%(表5(a)的1和3,其中 每一行有两个值可能是对应的两种AFS的对比方法
  • 池化方式对比
    • Max模式:擅长定位小面积异常(如裂纹),但对大范围异常敏感度低。
    • Avg模式:更关注全局异常,但可能忽略局部细节。
    • Max&Avg模式:综合两者优势,在PRO指标上表现最优(图5)。
  • 计算效率:通过丢弃2/3的残差,推理速度提升约20%(对比表S4中架构A与C)。
    消融实验

功能特点

  • 高逼真异常生成:SDAS 生成的异常图像在视觉和分布上更接近真实异常,支持局部和全局异常模拟。
  • 高效特征利用:AFS 优化特征选择,避免传统方法中手动选择特征的局限性,显著降低计算开销。
  • 多粒度检测:RRS 通过残差选择机制,精准定位从细微纹理异常到大规模结构缺陷的不同类型异常。
  • 跨数据集通用性:在 MVTec-AD、MPDD、BTAD、VisA 等数据集上均达到 SOTA 性能,无需针对特定任务调整架构或超参数。

应用场景

RealNet 主要面向工业生产的质量控制和自动化检测领域,典型应用包括:

  1. 工业产品缺陷检测:如电子元件表面裂纹、金属零件划痕、PCB 板焊接异常等。
  2. 安全监控:实时识别生产线中的异常事件(如异物侵入、设备故障)。
  3. 复杂场景适应:支持光照变化、多目标检测(如胶囊多物体场景)及复杂结构(如精细纹理或大型机械组件)的异常定位。

性能优势

  • 检测指标:在 MVTec-AD 数据集上实现 Image AUROC 99.65%、Pixel AUROC 99.03%,显著优于 PatchCore、FastFlow 等现有方法。
  • 计算效率:单 GPU(RTX 3090)推理速度达 31.93 FPS,内存占用仅 4GB,满足工业实时检测需求。
  • 数据集支持:提供合成工业异常数据集(SIA),包含 36 类共 36 万张异常图像,可作为自监督训练的通用资源。

总结

RealNet 通过融合扩散模型生成、动态特征选择与残差优化,解决了传统异常检测方法在合成数据真实性、特征冗余和计算效率上的瓶颈,为工业视觉检测提供了高效、鲁棒的解决方案。其代码、数据和模型已开源,助力后续研究与实际应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值