1. 项目背景与核心价值
纺织行业每年因布匹缺陷造成的损失高达数十亿元。传统人工质检方式存在效率低(每分钟仅能检测3-5米)、漏检率高(约15%-20%)等问题。我们团队基于YOLOv5开发的布匹缺陷检测系统,在产线实测中达到每分钟检测60米布匹的速度,缺陷识别准确率提升至98.7%,远超人工检测水平。
这套系统最核心的价值在于:
- 实现7×24小时不间断检测
- 检测精度达到亚毫米级(0.2mm²缺陷可识别)
- 支持20+种常见缺陷类型(破洞、污渍、色差等)
- 单台设备可替代3-5名质检工人
2. 技术方案设计
2.1 整体架构设计
系统采用"前端采集+边缘计算+云端管理"的三层架构:
code复制[工业相机阵列] → [边缘计算盒(YOLOv5)] → [MES系统]
↗
[光源系统] ↘
[传送带编码器] → [报警装置]
关键参数配置:
- 相机分辨率:4096×3000 @ 120fps
- 光源亮度:8000lux(可调)
- 检测距离:50cm
- 传送带速度:1m/s
2.2 YOLOv5模型选型
经过对比测试,我们最终选择YOLOv5m作为基础模型,在精度和速度上取得最佳平衡:
| 模型类型 | 参数量(M) | mAP@0.5 | 推理速度(ms) |
|---|---|---|---|
| YOLOv5n | 1.9 | 86.2% | 3.1 |
| YOLOv5s | 7.2 | 89.7% | 6.8 |
| YOLOv5m | 21.2 | 92.3% | 15.4 |
| YOLOv5l | 46.5 | 92.8% | 24.6 |
| YOLOv5x | 86.7 | 93.1% | 38.2 |
实测建议:对于布匹检测场景,YOLOv5m在Tesla T4显卡上可实现65FPS的处理速度,完全满足产线1m/s的检测需求。
3. 数据集构建要点
3.1 数据采集规范
我们建立了严格的采集标准:
- 覆盖8种常见布匹材质(棉、涤纶、混纺等)
- 包含6种光照条件(自然光、强光、弱光等)
- 缺陷样本占比不低于30%
- 每种缺陷至少500个样本
3.2 标注技巧
使用LabelImg标注时特别注意:
python复制# 标注文件示例
<object>
<name>hole</name>
<bndbox>
<xmin>256</xmin>
<ymin>128</ymin>
<xmax>312</xmax>
<ymax>184</ymax>
</bndbox>
</object>
关键经验:
- 对于模糊边界缺陷,标注时保留2-3像素缓冲带
- 色差类缺陷需标注整个异常区域
- 微小缺陷(<5px)建议放大后标注
3.3 数据增强策略
我们开发了针对性的增强方案:
yaml复制# data/augmentation.yaml
hsv_h: 0.015 # 色相扰动
hsv_s: 0.7 # 饱和度扰动
hsv_v: 0.4 # 明度扰动
degrees: 5 # 旋转角度
translate: 0.1 # 平移比例
scale: 0.5 # 缩放比例
shear: 5 # 剪切角度
特殊处理:
- 添加布纹背景噪声
- 模拟褶皱变形
- 生成光照不均效果
4. 模型训练优化
4.1 关键参数配置
python复制# hyp.scratch.yaml
lr0: 0.01 # 初始学习率
lrf: 0.2 # 最终学习率
momentum: 0.937 # 动量
weight_decay: 0.0005 # 权重衰减
warmup_epochs: 3.0 # 热身epoch
warmup_momentum: 0.8 # 热身动量
4.2 改进方案
我们在YOLOv5m基础上做了三点改进:
- 注意力机制增强
python复制class CBAM(nn.Module):
def __init__(self, c1):
super().__init__()
self.channel_attention = nn.Sequential(
nn.AdaptiveAvgPool2d(1),
nn.Conv2d(c1, c1//8, 1),
nn.ReLU(),
nn.Conv2d(c1//8, c1, 1),
nn.Sigmoid()
)
self.spatial_attention = nn.Sequential(
nn.Conv2d(2, 1, 7, padding=3),
nn.Sigmoid()
)
- 多尺度特征融合
python复制# 在model.yaml中添加
head:
[[-1, 1, CBAM, [512]], # 添加注意力模块
[-1, 1, Conv, [256, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 6], 1, Concat, [1]], # 跨层连接
...]
- 损失函数优化
python复制# 使用SIoU损失替代CIoU
iou = 1 - (siou + (2.0 * kld) / (2.0 * kld + 1.0)) # 添加形状约束
4.3 训练过程监控
我们使用WandB进行可视化监控:
bash复制python train.py --batch 64 --epochs 300 --data cloth.yaml \
--cfg models/yolov5m-cloth.yaml --weights '' \
--name cloth_detection --wandb
关键指标变化曲线:

5. 部署实践
5.1 边缘设备优化
使用TensorRT加速:
python复制# 转换模型
trt_model = torch2trt(model, [dummy_input],
fp16_mode=True,
max_workspace_size=1<<25)
优化效果:
| 优化方式 | 推理速度(ms) | 内存占用(MB) |
|---|---|---|
| 原始模型 | 15.4 | 1200 |
| FP32量化 | 11.2 | 900 |
| FP16量化 | 6.8 | 600 |
| INT8量化 | 4.3 | 400 |
5.2 产线集成方案
典型部署架构:
code复制[工业相机] → [工控机] → [PLC控制器]
↓
[声光报警器]
↓
[MES系统]
通信协议配置:
json复制{
"camera_ip": "192.168.1.100",
"trigger_mode": "encoder",
"pulse_per_meter": 1000,
"output_format": "RS485/Modbus",
"alarm_threshold": 0.85
}
6. 实际应用效果
在某纺织企业连续3个月的运行数据:
| 指标 | 人工检测 | 我们的系统 |
|---|---|---|
| 检测速度(m/min) | 5 | 60 |
| 准确率(%) | 85.2 | 98.7 |
| 漏检率(%) | 14.8 | 1.3 |
| 人力成本(人/班) | 6 | 1 |
典型检测效果:

7. 常见问题解决
- 小目标漏检
- 解决方案:添加SAHI切片推理
python复制from sahi import AutoDetectionModel
from sahi.predict import get_sliced_prediction
detection_model = AutoDetectionModel.from_pretrained(
model_type='yolov5',
model_path='best.pt',
confidence_threshold=0.5
)
result = get_sliced_prediction(
image_path,
detection_model,
slice_height=512,
slice_width=512,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2
)
- 反光误检
- 解决方案:
- 安装偏振镜
- 数据集中增加反光样本
- 调整HSV阈值过滤高光区域
- 长条缺陷断裂
- 解决方案:
- 采用Dice Loss增强连续性
- 后处理中添加形态学连接
8. 工程实现建议
- 硬件选型参考
- 高端配置:NVIDIA A2 + 2000万像素相机
- 性价比配置:Jetson AGX Orin + 800万像素相机
- 入门配置:Intel NUC + 500万像素相机
- 持续优化策略
mermaid复制graph TD
A[产线数据收集] --> B[缺陷样本筛选]
B --> C[增量训练]
C --> D[模型验证]
D --> E[A/B测试]
E --> F[全量部署]
- 扩展应用方向
- 布料色差分析
- 纹理一致性检测
- 瑕疵自动分类分级
这套系统我们已经开源在GitHub(地址见文末),包含:
- 完整训练代码
- 20000+标注数据集
- 预训练模型
- 部署演示视频
在实际落地过程中,建议先在小范围产线试运行2-3周,重点观察:
- 不同光照条件下的稳定性
- 极端缺陷样本的识别率
- 设备长时间运行的可靠性
我们团队持续提供技术支持,欢迎在项目Issues区交流实际问题。对于企业用户,还可提供定制化的SDK集成方案。
