共计 1915 个字符,预计需要花费 5 分钟才能阅读完成。
BTAD 数据集概述
BTAD(BTech Anomaly Detection Dataset)是工业缺陷检测领域的开源基准数据集,由三层电路板、金属齿轮和药丸包装三种典型工业品组成。数据集包含真实产线采集的 2540 张高分辨率图像(1280×720),涵盖六类常见缺陷:划痕、污渍、缺失部件等。其核心价值在于:

- 多品类覆盖 :跨电子、机械、医药三大工业场景
- 精细标注 :提供像素级缺陷掩膜(PNG 格式)和 JSON 格式的边界框标注
- 真实噪声 :包含光照变化、遮挡等实际产线干扰因素
典型应用场景包括 PCB AOI 检测、齿轮质量分拣、药品包装质检等需要微小缺陷识别的领域。
技术痛点分析
实际使用中开发者常遇到以下挑战:
- 数据分布失衡 :正负样本比例达 1:15,缺陷区域平均仅占图像 0.3%-2%
- 标注格式冲突 :原始 JSON 标注需转换为模型适用的 COCO/YOLO 格式
- 小目标检测困难 :最小缺陷仅 10×10 像素,常规卷积网络易漏检
- 跨品类泛化差 :单一模型在三类物品上性能差异显著
数据预处理实战
基础预处理代码示例
import albumentations as A
import cv2
import json
# 标注格式转换(JSON→COCO)def convert_annotations(json_path, output_dir):
with open(json_path) as f:
data = json.load(f)
coco_anns = []
for item in data['annotations']:
coco_ann = {'image_id': item['image_id'],
'bbox': [item['x'], item['y'], item['width'], item['height']],
'category_id': item['category_id']
}
coco_anns.append(coco_ann)
# 保存转换结果...
# 针对小目标的增强策略
transform = A.Compose([A.RandomSizedCrop(min_max_height=(600, 800), height=720, width=1280, p=0.5),
A.GaussianBlur(blur_limit=(3, 7), p=0.3),
A.RandomBrightnessContrast(p=0.5),
A.CLAHE(clip_limit=4.0, p=0.2) # 增强微小缺陷对比度
])
关键处理步骤:
- 使用 OpenCV 进行直方图均衡化,提升低对比度缺陷的可见性
- 采用 Albumentations 实现随机裁剪时保持缺陷完整性
- 对金属反光类缺陷添加高斯噪声增强
模型训练最佳实践
PyTorch 适配方案
import torch
from torchvision.models.detection import fasterrcnn_resnet50_fpn
class BTADDataset(torch.utils.data.Dataset):
def __init__(self, transform=None):
# 实现数据加载逻辑...
# 修改 Faster R-CNN 的 Anchor 设置
model = fasterrcnn_resnet50_fpn(pretrained=True)
model.rpn.anchor_generator.sizes = ((16, 32, 64, 128),) # 适配小目标
# 焦点损失应对样本不平衡
criterion = torch.nn.BCEWithLogitsLoss(pos_weight=torch.tensor([15.0]) # 正样本权重
)
训练技巧:
- 使用 SWA(随机权重平均)提升模型稳定性
- 在第三个 Epoch 后冻结 Backbone 的前三层
- 采用渐进式学习率调度(0.01→0.0001)
性能优化与部署建议
推理加速方案
- TensorRT 优化 :FP16 量化使 RTX3080 推理速度提升 2.3 倍
- 缺陷区域 ROI 裁剪 :先定位疑似区域再高倍放大检测
- 多尺度集成 :融合 512×512 和 1024×1024 输入的结果
产线部署避坑指南
- 警惕金属反光导致的假阳性,建议添加偏振滤光片
- 药丸包装检测需关闭自动白平衡功能
- PCB 检测时保持环境温度恒定(±2℃)
总结与展望
通过本文的预处理方案和模型优化策略,在 BTAD 测试集上可实现平均 mAP@0.5 达到 89.7%。建议读者:
- 根据自身产线特点调整数据增强策略
- 尝试将 Vision Transformer 与 CNN 混合架构
- 探索少量样本增量学习方案应对新产品导入
工业缺陷检测正在向多模态(可见光 + 红外)方向发展,BTAD 数据集为算法研发提供了可靠的验证基准。期待看到更多开发者分享实践案例,共同推动工业质检智能化进程。
正文完
