在服装制造与电商质检场景中,衣服缺陷检测(如破洞、污渍、线头、印花瑕疵、缝制不良等)是保证产品质量的关键环节。传统基于规则或小模型的检测方案往往难以覆盖复杂多变的缺陷形态,而视觉语言大模型(VL,Vision-Language Model)凭借其强大的跨模态理解能力,为缺陷检测带来了新的可能。
本文将从零开始,系统讲解如何针对衣服缺陷这一垂直场景,对 VL 大模型进行训练与微调,涵盖数据准备、模型选型、微调策略、评估与部署等完整流程,帮助你在实际项目中落地一套可用的衣服缺陷检测方案。
1. 任务定义与方案选型
1.1 任务类型
衣服缺陷检测本质上是一个「细粒度视觉理解 + 定位 + 描述」的复合任务,常见子任务包括:
- 缺陷分类:判断衣服是否存在缺陷,以及缺陷类型(破洞、污渍、线头等)。
- 缺陷定位:用边界框或分割掩码标出缺陷在图像中的位置。
- 缺陷描述:用自然语言描述缺陷的形态、位置与严重程度。
VL 大模型天然适合将上述子任务统一为「视觉问答(VQA)」或「指代表达(Referring)」形式,从而用一个模型完成多任务。
1.2 模型选型
针对衣服缺陷场景,推荐从以下 VL 模型中选择基座:
| 模型 | 特点 | 适用场景 |
|---|---|---|
| Qwen2-VL | 中文能力强,支持高分辨率输入 | 中文质检报告、电商场景 |
| InternVL2 | 多模态对齐优秀,开源生态好 | 通用缺陷检测 |
| LLaVA-NeXT | 社区成熟,微调资料丰富 | 快速原型验证 |
| MiniCPM-V | 轻量,适合端侧部署 | 产线边缘设备 |
选择时需综合考虑:中文支持、分辨率上限、显存占用、部署成本。衣服缺陷往往是小目标,模型对高分辨率图像的支持尤为重要。
2. 数据准备:衣服缺陷数据集构建
数据是微调效果的上限。针对衣服缺陷,需要构建高质量、多样化的标注数据集。
2.1 数据采集
- 产线实拍:从真实产线采集,覆盖不同光照、角度、布料材质。
- 公开数据集:如 Fashion-MNIST、DeepFashion 等可作辅助,但需注意缺陷标注缺失问题。
- 数据增强:对缺陷样本做旋转、缩放、亮度扰动、模糊等增强,提升泛化能力。
2.2 标注格式
推荐使用统一的对话式标注格式,便于 VL 模型微调。以 Qwen2-VL 的微调格式为例:
[{"id":"defect_0001","image":"images/defect_0001.jpg","conversations":[{"from":"human","value":"<image>\n请描述这件衣服上的缺陷,并给出缺陷类型和位置。"},{"from":"gpt","value":"这件白色T恤的左袖口处有一个约2厘米的破洞,缺陷类型为破洞,位置在图像左上区域,边界框为 [120, 80, 160, 110]。"}]}]2.3 数据质量要点
- 标注一致性:多人标注后需交叉校验,统一缺陷命名规范。
- 类别均衡:破洞、污渍等常见缺陷样本多,稀有缺陷需过采样。
- 负样本:保留大量无缺陷的正常衣服样本,防止模型「过度敏感」。
3. 微调策略与训练
3.1 微调方式选择
针对 VL 大模型,常见微调方式有:
- 全参数微调(Full Fine-tuning):效果最好,但显存与算力要求高。
- LoRA / QLoRA:冻结大部分参数,只训练低秩适配器,显存占用低,是中小团队首选。
- P-Tuning / Prefix-Tuning:只训练少量提示参数,适合快速实验。
对于衣服缺陷场景,推荐使用QLoRA,在 24GB 显存内即可微调 7B 级别的 VL 模型。
3.2 训练配置示例
以 Qwen2-VL-7B + QLoRA 为例,核心训练参数如下:
model_name_or_path:Qwen/Qwen2-VL-7B-Instructtrain_data:data/clothes_defect_train.jsoneval_data:data/clothes_defect_eval.jsonlora_rank:64lora_alpha:128target_modules:["q_proj","k_proj","v_proj","o_proj","gate_proj","up_proj","down_proj"]per_device_train_batch_size:2gradient_accumulation_steps:8learning_rate:2e-4num_train_epochs:3bf16:true3.3 训练技巧
- 冻结视觉编码器:初期冻结视觉塔,只训练语言部分,稳定后再解冻。
- 动态分辨率:衣服缺陷是小目标,训练时使用高分辨率输入(如 1024×1024)。
- 混合任务:将分类、定位、描述任务混合训练,提升模型综合能力。
4. 评估与调优
4.1 评估指标
- 分类任务:准确率、精确率、召回率、F1。
- 定位任务:IoU、mAP。
- 描述任务:BLEU、ROUGE、人工评分。
4.2 评估流程
构建独立的测试集,覆盖训练中未见过的布料、颜色与缺陷形态,避免过拟合评估。
fromsklearn.metricsimportclassification_report y_true=["破洞","污渍","正常","破洞"]y_pred=["破洞","污渍","正常","线头"]print(classification_report(y_true,y_pred,labels=["破洞","污渍","线头","正常"]))4.3 常见问题与调优
- 误报过多:增加负样本比例,降低模型敏感度。
- 小缺陷漏检:提高输入分辨率,或对缺陷区域做裁剪放大。
- 描述不准确:检查标注质量,统一描述模板。
5. 部署与推理
5.1 推理服务
微调完成后,可使用 vLLM 或 FastAPI 封装推理服务:
fromvllmimportLLM,SamplingParams llm=LLM(model="output/qwen2vl_clothes_defect",trust_remote_code=True)sampling_params=SamplingParams(temperature=0.1,max_tokens=256)prompt="请检测这张衣服图片中的缺陷类型和位置。"output=llm.generate([prompt],sampling_params)print(output[0].outputs[0].text)5.2 端侧部署
对于产线边缘设备,可使用 MiniCPM-V 等轻量模型,配合 ONNX Runtime 或 TensorRT 加速,实现低延迟实时检测。
6. 总结与展望
本文系统介绍了针对衣服缺陷训练微调 VL 大模型的完整流程,包括任务定义、数据准备、模型选型、微调策略、评估与部署。核心要点如下:
- 数据是上限:高质量、多样化的缺陷标注数据是微调效果的根本保障。
- QLoRA 是性价比之选:在有限显存下即可完成 7B 级 VL 模型微调。
- 高分辨率与小目标:衣服缺陷多为小目标,务必重视输入分辨率与数据增强。
- 评估要贴近真实:用独立测试集验证泛化能力,避免过拟合。
未来,随着 VL 模型能力的持续提升,结合多视角融合、时序检测等技术,衣服缺陷检测将向更智能、更自动化的方向发展。