YOLOv8 驱动的 PLC 自动化
基于PLC构建的自动化系统在以精确和可靠的方式执行逻辑方面表现出色。然而,传统自动化缺少一项重要能力:视觉理解。
在许多制造和物流环境中,检测任务仍然依赖人工观察:
- 检测缺陷零件
- 验证包装
- 检查对齐
- 确保安全合规
这些任务重复性强且容易出错。计算机视觉的最新进展使得将自动化扩展到视觉检测成为可能。
本文演示了如何训练一个基于YOLOv8的目标检测系统,并将其集成到自动化工作流中。
0、系统架构
检测流程遵循一个简单的结构:
Camera → YOLOv8 Detection → Python Logic → PLC Action
目标不仅仅是检测——而是闭环连接感知与自动化。
1、环境搭建
我们首先验证GPU是否可用,其中"smi"是系统管理接口。
!nvidia-smi
GPU加速显著减少了深度学习模型的训练时间。
接下来,安装YOLOv8:
!pip install ultralytics==8.2.103 -q
然后导入库:
from ultralytics import YOLO
Ultralytics API为以下功能提供了高级接口:
- 训练
- 验证
- 推理
- 模型导出
2、理解预训练YOLOv8
我们不从头开始训练,而是使用:
model=yolov8n.pt
这是一个预训练的YOLOv8 Nano模型。
预训练模型已经理解:
- 边缘
- 形状
- 纹理
- 目标边界
这个概念称为迁移学习。
优势:
- 需要更小的数据集
- 训练更快
- 更好的泛化能力
- 更低的计算需求
对于工业检测任务,这非常实用。
3、测试预训练模型
yolo task=detect mode=predict \
model=yolov8n.pt \
conf=0.25 \
source='dog.jpeg' \
save=True
参数说明:
task=detect→ 目标检测mode=predict→ 推理模式conf=0.25→ 置信度阈值save=True→ 保存输出图像
这验证了YOLOv8已正确安装并正常运行。
4、准备自定义数据集
数据集必须包含:
- 图像
- 标注
- 类别定义
典型的文件夹结构:
dataset/
├── train/
├── valid/
├── test/
└── data.yaml
示例 data.yaml:
train: ../train/images
val: ../valid/images
test: ../test/images
names:
0: defect
1: ok
数据集准备通常是实际项目中最耗时的步骤。如果您对数据准备感兴趣,请关注我在Roboflow上的下一篇文章。
5、从Roboflow下载数据集
from roboflow import Roboflow
rf = Roboflow(api_key="YOUR_KEY")
project = rf.workspace("pilot-n7hsf").project("slipper-and-shoes")
version = project.version(1)
dataset = version.download("yolov8")
这会下载已经格式化为YOLOv8训练格式的数据集。
Roboflow简化了:
- 标注
- 数据集版本管理
- 数据增强
- 导出格式
6、训练模型
yolo task=detect mode=train \
model=yolov8n.pt \
data=data.yaml \
epochs=2 \
imgsz=320 \
batch=16 \
plots=True
训练过程:
- 加载预训练权重
- 为新类别替换检测头部
- 微调网络权重
- 每个epoch后进行验证
- 保存最佳检查点
输出目录:
runs/detect/train/
生成的重要文件:
best.ptresults.pngconfusion_matrix.png- 预测样本
7、验证
yolo task=detect mode=val \
model=runs/detect/train/weights/best.pt \
data=data.yaml
验证指标包括:
- 精确率
- 召回率
- mAP
- 混淆矩阵
这些指标表明模型对未见数据的泛化能力。
8、使用自定义模型进行推理
yolo task=detect mode=predict \
model=best.pt \
source=test/images \
conf=0.25 \
save=True
在这个阶段,模型已经准备好进行部署测试。
9、将检测连接到自动化逻辑
检测结果可以集成到控制逻辑中。
Python逻辑示例:
if defect_detected:
stop_conveyor()
这使目标检测转变为真正的检测系统。
集成层可以使用:
- OPC-UA
- Modbus TCP
- 数字I/O
- MQTT
具体取决于自动化架构。
10、部署选项
YOLOv8模型可以运行在:
- 工业PC
- NVIDIA Jetson Nano
- 配备加速器的Raspberry Pi
- GPU工作站
这种灵活性使得视觉检测对中小企业来说变得可及。
11、工程感悟
从这个项目中学到的最重要的教训是:AI的价值不在于模型——而在于集成。
仅检测本身不创造价值。 仅自动化本身无法看见。
两者结合,才能实现智能检测系统。
12、结束语
将PLC自动化与YOLOv8视觉模型相结合,创建了一个强大且实用的检测解决方案。借助预训练模型和现代工具,工程师可以快速构建可工作的原型,并将其部署到真实的工业工作流中。
这种方法降低了在工程环境中应用AI的门槛,并展示了计算机视觉如何扩展传统自动化系统。
原文链接:From PLC Automation to Vision AI — A Small Experiment with YOLOv8
汇智网翻译整理,转载请标明出处