跳转至

SteelDefectX: A Coarse-to-Fine Vision-Language Dataset and Benchmark for Generalizable Steel Surface Defect Detection

会议: CVPR 2026
arXiv: 2603.21824
代码: https://github.com/Zhaosxian/SteelDefectX
领域:目标检测 关键词: 钢材表面缺陷检测, 视觉-语言数据集, 粗到细标注, 零样本迁移, 工业质检

一句话总结

提出 SteelDefectX,首个面向钢材表面缺陷检测的视觉-语言数据集(7778 张图像、25 类缺陷),包含从类级到样本级的粗到细文本标注,并建立了涵盖纯视觉分类、视觉-语言分类、零/少样本识别和零样本迁移的四任务基准,实验证明高质量文本标注显著提升模型的可解释性、泛化性和跨域迁移能力。

研究背景与动机

领域现状:钢材表面缺陷检测是工业制造中保障产品质量的关键环节。现有方法主要依赖基础的图像分类或目标检测模型(ResNet、ViT 等),在特定数据集上取得了不错的分类精度。公开数据集如 NEU(6 类 1800 张)、GC10(10 类 2312 张)、X-SDD(7 类 1360 张)和 S3D(5 类 880 张)推动了该领域的发展。

现有痛点:(1)现有数据集仅提供类别标签或数值标注,缺乏描述性的文本信息,限制了视觉-语言模型在工业领域的应用;(2)简单的类名模板描述(如"A photo of scratches")无法捕获钢材缺陷的丰富视觉变异——同一制造工序在不同材料上可产生截然不同的视觉模式;(3)缺乏跨材料、跨数据集的泛化能力评估基准。

核心矛盾:视觉-语言模型(CLIP 等)在自然图像领域展现了强大的零样本能力,但直接应用于工业缺陷数据时效果极差(最高仅 14.8% 零样本准确率),根本原因是缺乏专业的工业图文配对数据。

本文目标(1)构建首个包含专业粗到细文本标注的钢材缺陷视觉-语言数据集;(2)建立涵盖多种场景的标准化基准以评估视觉-语言模型在工业检测中的表现;(3)验证高质量文本标注对泛化和迁移能力的提升效果。

切入角度:工业缺陷检测需要的不仅是类别标签,还需要对缺陷类型、视觉属性和成因的语义理解——这正是视觉-语言模型的强项,但前提是有高质量的图文配对数据。

核心 idea:通过构建粗到细的视觉-语言标注(类级:缺陷类型+视觉属性+成因;样本级:形状+大小+深度+位置+对比度),将工业缺陷检测从纯视觉分类提升为视觉-语言语义理解任务。

方法详解

整体框架

SteelDefectX 的核心贡献是数据集和基准,而非新的模型架构,因此方法部分要回答的是三个工程问题:图像从哪来、文本标注怎么造、用什么任务来验证标注的价值。整体流程是先把 NEU、GC10、X-SDD、S3D 四个公开来源的图像汇到一起,合并语义相近的子类后得到 25 类、7778 张的统一数据集;再给每张图配上两个粒度的文本——类级描述由领域专家撰写、覆盖整类缺陷的共性,样本级描述由 GPT-4o 自动生成并经人工精修、刻画单张图的具体形态;最后用一套四任务基准把"纯视觉 → 视觉-语言 → 零/少样本 → 跨材料迁移"四个难度递增的场景串起来,逐级检验文本标注到底带来多少增益。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
    A["四个公开源<br/>NEU / GC10 / X-SDD / S3D"] --> B["合并近义子类<br/>25 类 / 7778 张统一数据集"]
    B --> C["类级标注<br/>专家模板 + CuPL 精化<br/>类名 + 视觉属性 + 成因"]
    B --> D1
    subgraph D["样本级标注流水线"]
        direction TB
        D1["① 候选生成<br/>GPT-4o T=0.9 出 4 候选"] --> D2["② 候选筛选<br/>Sentence-BERT 去冗余 + 5 维覆盖打分"]
        D2 -->|覆盖 < 4 维| D3["③ 候选补充<br/>结构化多问 prompt 补缺"]
        D3 --> D4["④ 人工校正<br/>两人 ~275 小时交叉验证"]
        D2 -->|覆盖 ≥ 4 维| D4
    end
    C --> E["四级标注 T0 → T1 → T2 → T3"]
    D4 --> E
    E --> F["四任务基准<br/>纯视觉 → 视觉-语言 → 零/少样本 → 跨材料迁移"]

关键设计

1. 类级标注:给每类缺陷一个跨样本一致的语义锚点

单纯一个类名("scratches")信息量太薄,视觉-语言模型很难把它和真实缺陷的视觉模式对齐。类级标注因此把每个类别拆成三个语义组件——缺陷类名(如 "punching")、代表性视觉属性(如 "circular holes")、可能的工业成因(如 "equipment malfunction"),先由领域专家基于钢铁制造知识写出初始模板,再用 CuPL 方法生成的候选描述做精化,最终拼成一句自然语言。这样得到的描述对同类所有样本都成立,相当于在语义空间里为每个缺陷类型钉下一个稳定的概念锚点,让模型不只是记住类名、而是理解"这类缺陷长什么样、为什么会出现"。

2. 样本级标注流水线:自动生成 + 结构化质控 + 人工精修

类级描述对一类内部的视觉变异无能为力——同一道工序在不同材料上能产生截然不同的形态,因此每张图还需要一条专属的细粒度描述。难点在于纯靠人工写 7778 条太贵、纯靠 GPT-4o 生成又质量不可控,流水线于是用四步把两者的优点接起来。先是候选生成:用开放式 prompt 让 GPT-4o 以较高温度(0.9)产出 4 条候选,刻意鼓励多样性;再做候选筛选:用 Sentence-BERT 算候选间余弦相似度,贪心保留不超过 3 条彼此足够不同的描述,并对每条做一次"语义覆盖"打分——把描述编码成 5-bit 向量 \(\mathbf{b}=[b_1,\dots,b_5]\),五位分别对应形状、大小、深度、位置、对比度五个维度(某维被描述命中则该位为 1),综合得分

\[S(d_i) = 0.6\cdot\frac{\lVert b_i\rVert_1}{5} + 0.4\cdot D(d_i)\]

前一项奖励覆盖更多维度(\(\lVert b_i\rVert_1\) 即命中维度数),后一项 \(D(d_i)\) 奖励与已选描述的差异度,权重 0.6/0.4 让覆盖度优先、多样性兜底。若筛完仍没有任何候选覆盖到 \(\geq 4\) 个维度,就进入候选补充:换一套结构化的多问 prompt,逐一追问缺失维度的信息补全;最后是人工校正,两名标注员花约 275 小时交叉验证。整条流水线的设计逻辑就是用自动化扛掉主体工作量、用 5 维覆盖框架把"描述全不全"变成可量化的硬指标、再用人工兜住最后的质量底线。

3. 四任务基准:让标注层级的增益可被逐级量化

数据集好不好不能空口说,得有任务来证明文本标注确实有用,因此基准被设计成四个难度递增、且共享同一套四级标注(T0 类名模板 → T1 类级 → T2 GPT-4o 生成 → T3 人工精修)的场景。Task 1 纯视觉分类用 ResNet/ViT 接线性头,作为不含文本的性能基线;Task 2 视觉-语言分类用 CLIP 系列加 Adapter 微调,特意"训练用 T3 精细标注、测试用 T0 类名模板",考的是模型能否把训练期学到的细粒度语义迁移到只有粗标签的测试场景;Task 3 零/少样本识别在 1/2/4/8-shot 下对比 T0 与 T3 标注的效果,看文本质量在数据稀缺时的杠杆作用;Task 4 零样本迁移最狠——在钢材数据上训练,直接拿到铝表面缺陷(MSD-Cls,10 类)和无缝钢管缺陷(CGFSDS-9,5 类)上测。因为四个任务都把同一组 T0→T3 标注当自变量,T2→T3 这类相邻层级的准确率差就能干净地归因到"标注质量本身",而非模型或任务的变化。

损失函数 / 训练策略

纯视觉分类用 SGD(momentum 0.9,weight decay 1e-4),初始学习率 0.1、每 30 epoch 衰减 10×,共 100 epochs;视觉-语言分类走 CLIP-Adapter 框架,Adam(lr=1e-4)、双向交叉熵损失、20 epochs。数据按 7:3 划分训练/测试。

实验关键数据

主实验

纯视觉分类(Task 1):

模型 Acc (%) mAcc (%)
ShuffleNetV2 96.34 94.98
ResNet-101 93.63 91.19
ViT-B/16 44.84 40.31

视觉-语言分类(Task 2,训练 T3/测试 T0):

模型 Backbone Acc (%) mAcc (%)
Long-CLIP ViT-L/14 93.63 92.56
OpenCLIP ViT-L/14 88.21 87.54
CLIP ViT-B/16 81.84 81.14

零样本迁移(Task 4,Long-CLIP ViT-L/14):

标注级别 铝表面 Acc 无缝钢管 Acc
Zero-shot 8.60 25.11
T0 (类名) 12.90 28.31
T1 (类级) 20.43 33.79
T2 (GPT-4o) 25.27 34.25
T3 (人工精修) 29.03 40.18

消融实验

不同标注层级的效果对比(零样本识别 Task 3):

标注级别 SteelDefectX 零样本 Acc
T0 (类名模板) 7.57
T1 (类级描述) 11.27

少样本识别随 shot 数的变化:

方法 1-shot 8-shot
Long-CLIP-Adapter (T0) ~60% ~88%
Tip-Adapter-F (T0) ~55% ~85%

关键发现

  • ViT 在小数据集上严重欠拟合:ViT-B/16 仅 44.84%,远不如 CNN(ShuffleNetV2 96.34%),小数据集上 CNN 的归纳偏置是优势
  • 标注级别单调提升迁移性能:T0→T1→T2→T3 的迁移准确率在铝数据集上从 12.90% 持续提升到 29.03%,T2→T3 的人工精修也有显著增益,说明标注质量直接决定跨域迁移效果
  • Long-CLIP 在视觉-语言分类中表现最佳:93.63% 准确率接近纯视觉 CNN(96.34%),且 Acc 与 mAcc 差距更小(1.07 vs 1.36),对长尾类别更鲁棒
  • 预训练 VLM 直接应用于工业缺陷效果极差:CLIP 零样本在 SteelDefectX 上仅 7.57%,说明自然图像预训练的语义空间与工业缺陷域存在巨大鸿沟
  • 热力图可视化显示 T3 标注下模型能精确聚焦到缺陷区域,而 T0 标注下注意力分散——说明精细文本描述增强了视觉-文本的空间对齐

亮点与洞察

  • 5 维语义覆盖框架(形状/大小/深度/位置/对比度):为工业缺陷标注提供了可复现的结构化标准,不依赖主观描述,可迁移到其他工业检测场景(如芯片缺陷、纺织品缺陷等)。这比自由文本标注更规范化也更可控。
  • 标注层级递进实验设计:T0→T1→T2→T3 的对比实验清晰展示了每个标注层级的边际贡献,为工业数据收集提供了明确的投入产出指导——即便不做人工精修(T2),GPT-4o 生成的标注也有显著提升。
  • 跨材料零样本迁移的可行性验证:从钢材到铝材的迁移(29.03%)虽然绝对值不高,但比零样本基线(8.60%)提升了 3.4 倍,证明了视觉-语言对齐在跨材料泛化中的潜力。

局限与展望

  • 数据集规模仍然有限(7778 张),对比自然图像数据集差距很大,可能限制了视觉-语言模型的充分训练
  • 当前仅支持图像级分类和视觉-语言对齐,缺少像素级分割标注——限制了在目标检测和分割任务中的应用
  • GPT-4o 生成的文本描述可能存在与真实视觉不一致的幻觉问题,虽有人工校正但全量验证的成本很高
  • 25 类缺陷中部分类别样本极少(如 crease 仅 50 张),长尾问题严重
  • 零样本迁移的绝对准确率仍然较低(29%/40%),距离实际部署还有很大距离
  • 未与最新的工业异常检测方法(如 AnomalyGPT、WinCLIP)进行系统性比较

相关工作与启发

  • vs NEU/GC10 等传统数据集: 传统数据集仅有类别标签,SteelDefectX 通过粗到细的文本标注引入了语义理解维度,实现了从"分类"到"理解"的范式跃迁
  • vs MMAD(多模态异常检测): MMAD 覆盖多种工业产品但文本内容局限于 QA 对,缺乏专业的缺陷属性描述。SteelDefectX 的 5 维语义框架更加结构化和工业导向
  • vs WinCLIP/CAM-CLIP: 这些方法尝试将 CLIP 适配到工业场景,但受制于文本端的数据质量。SteelDefectX 正好解决了这个瓶颈——可作为工业 VLM 预训练的基础数据
  • 该数据集的构建流程(自动生成 + 语义过滤 + 维度覆盖检查 + 人工精修)可作为构建其他垂直领域视觉-语言数据集的通用范式

评分

  • 新颖性: ⭐⭐⭐⭐ 在工业缺陷检测领域引入视觉-语言范式是有价值的创新,5维语义框架有方法论贡献
  • 实验充分度: ⭐⭐⭐⭐ 四任务基准设计全面,标注层级对比实验有说服力,但缺少与最新工业 VLM 方法的对比
  • 写作质量: ⭐⭐⭐⭐⭐ 数据集构建流程描述详尽清晰,图表丰富且信息量大
  • 价值: ⭐⭐⭐⭐ 作为首个钢材缺陷视觉-语言数据集有重要的领域推动价值,构建方法论可推广