1. 项目背景与核心需求
医药胶囊生产线上,每秒钟都有数百粒胶囊快速通过。传统人工抽检方式不仅效率低下,而且容易因视觉疲劳导致漏检。我们开发的这套基于Java+YOLOv5+OpenCV的自动化检测系统,能够在GMP规范要求的洁净环境下实现99.2%的缺陷识别准确率。
这套系统主要解决三类典型问题:
- 外观缺陷:裂纹、凹陷、污渍等物理损伤
- 印刷问题:标签错位、字迹模糊等标识异常
- 规格不符:尺寸偏差、颜色差异等参数异常
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计解析
2.1 整体技术栈选型
采用Java作为主开发语言主要考虑:
- 与现有MES/SCADA系统无缝集成
- 多线程处理能力满足产线实时性要求
- 跨平台特性适配不同厂商的工业PC
YOLOv5s作为核心检测模型的优势:
- 在Tesla T4显卡上单帧处理时间<15ms
- 模型体积仅14MB便于边缘部署
- 支持动态调整置信度阈值(默认0.65)
OpenCV 4.5提供的特色功能:
- 非接触式尺寸测量(精度±0.05mm)
- 基于LAB色彩空间的颜色分析
- 形态学处理消除反光干扰
2.2 系统工作流程
- 图像采集:Basler ace 2K工业相机@120fps
- 预处理:OpenCV实现高斯滤波+直方图均衡化
- 目标检测:YOLOv5模型推理(输入尺寸640x640)
- 结果分析:多维度缺陷特征提取
- 分拣控制:通过OPC UA触发剔除装置
3. 关键实现细节
3.1 数据准备与增强
训练数据集包含:
- 12万张标注图像(8类缺陷)
- 数据增强策略:
- 随机旋转(±5°)
- 亮度扰动(±15%)
- 添加高斯噪声(σ=0.01)
python复制# 数据增强示例代码
train_transforms = transforms.Compose([
transforms.RandomRotation(5),
transforms.ColorJitter(brightness=0.15),
transforms.GaussianBlur(3, sigma=(0.01, 0.01)),
transforms.ToTensor()
])
