YOLOv8 驱动的 PLC 自动化

本文演示了如何训练一个基于YOLOv8的目标检测系统,并将其集成到PLC自动化工作流中。

YOLOv8 驱动的 PLC 自动化
AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo

基于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

训练过程:

  1. 加载预训练权重
  2. 为新类别替换检测头部
  3. 微调网络权重
  4. 每个epoch后进行验证
  5. 保存最佳检查点

输出目录:

runs/detect/train/

生成的重要文件:

  • best.pt
  • results.png
  • confusion_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

汇智网翻译整理,转载请标明出处