1. 项目背景与核心价值
食品包装缺陷检测是食品工业中质量控制的关键环节。传统人工检测方式存在效率低、漏检率高、成本高等问题。我们团队最近完成了一个将YOLOv5目标检测模型与Java Spring Boot后端整合的工业级解决方案,实现了包装缺陷的自动化检测。这套系统在实际产线上将检测效率提升了15倍,准确率达到98.7%,远超人工检测水平。
这个项目的技术栈组合非常典型:使用Python训练YOLOv5模型,然后通过TorchScript导出模型,最终在Java环境中通过DJL(Deep Java Library)加载运行。这种跨语言协作的模式既发挥了Python在AI训练方面的优势,又利用了Java在企业级应用开发中的成熟生态。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体方案设计
系统采用前后端分离架构:
- 前端:Vue.js可视化界面,负责图像上传和结果展示
- 后端:Spring Boot 2.7提供REST API
- 模型服务:DJL加载YOLOv5 TorchScript模型
- 数据库:MySQL存储检测记录
mermaid复制graph TD
A[前端Vue] -->|HTTP| B(Spring Boot API)
B --> C[DJL推理引擎]
C --> D[YOLOv5模型]
B --> E[MySQL数据库]
2.2 关键技术选型
-
YOLOv5选择:相比YOLOv3,v5的推理速度更快,模型体积更小。我们测试发现YOLOv5s在1080Ti上能达到140FPS,满足产线实时性要求。
-
Java推理方案对比:
- ONNX Runtime:需要额外转换模型
- TensorFlow Java API:对PyTorch模型不友好
- DJL:直接支持TorchScript,API简洁,最终选择
-
Spring Boot版本:使用2.7.x稳定版,避免新版本的兼容性问题。
3. 模型训练与导出
3.1 数据集准备
我们收集了5类常见包装缺陷:
- 封口不严
- 标签错位
- 表面污损
- 形状变形
- 印刷缺陷
使用LabelImg标注工具,共标注12,458张图片。数据增强策略包括:
- 随机旋转(-15°~15°)
- 亮度调整(±20%)
- HSV色彩空间扰动
3.2 YOLOv5模型训练
关键训练参数:
yaml复制lr0: 0.01
lrf: 0.1
momentum: 0.937
weight_decay: 0.0005
warmup_epochs: 3
batch_size: 16
epochs: 100
使用COCO预训练权重,
