首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于深度学习yolo11+yolov8-pose关键点实现的的工业压力表智能检测与读数系统设计与实现

基于深度学习yolo11+yolov8-pose关键点实现的的工业压力表智能检测与读数系统设计与实现

作者头像
云未归来
发布2025-07-18 09:23:20
发布2025-07-18 09:23:20
1.4K0
举报

【算法介绍】 本系统针对工业场景中压力表的自动化检测需求,创新性地融合了深度学习目标检测与关键点定位技术,采用YOLO11作为主检测框架实现压力表的快速识别,并结合YOLOv8-Pose模型精准定位仪表关键特征点(指针头、中心区域、量程起始点及结束点),构建了一套高精度、低延迟的智能读数解决方案。相较于传统基于UNet或DeepLabV3+的图像分割方法,本系统通过关键点检测显著提升了检测鲁棒性与计算效率,有效解决了复杂工业环境下仪表识别精度低、耗时长等问题。

核心技术架构

  1. YOLO11目标检测模块
    • 功能:负责从复杂工业背景中快速定位压力表区域,输出仪表边界框坐标。
    • 优势:YOLO11作为最新一代YOLO系列模型,通过改进的CSPNet骨干网络与动态标签分配策略,在检测速度与精度上达到平衡,尤其适合实时工业检测场景。
  2. YOLOv8-Pose关键点检测模块
    • 功能:在检测到的仪表区域内,精准定位以下关键点:
      • 指针头:用于动态读数计算的核心点;
      • 中心区域:确定仪表零位基准点;
      • 量程起始点与结束点:定义压力表的最小/最大量程边界。
    • 技术实现:基于YOLOv8-Pose的轻量化关键点检测架构,通过热力图回归与偏移量预测,实现亚像素级定位精度。
    • 优势
      • 抗干扰性强:关键点检测对光照变化、仪表倾斜等场景具有更高容忍度;
      • 计算高效:相比语义分割模型,关键点检测仅需输出少量坐标点,推理速度提升3-5倍;
      • 可解释性高:关键点定位结果可直接映射至物理量程,便于工程化部署。
  3. 读数计算模块
    • 算法逻辑
      1. 根据指针头、中心点及量程端点构建几何模型;
      2. 计算指针与量程轴的夹角,结合量程范围换算为实际压力值;
      3. 通过卡尔曼滤波平滑读数波动,提升稳定性。
    • 精度保障:关键点定位误差≤1像素,读数绝对误差≤0.5%量程。

系统优势对比传统方案

指标

本系统(关键点检测)

传统分割方案(UNet/DeepLabV3+)

检测速度

25-30 FPS(GPU)

8-12 FPS(GPU)

精度

关键点定位误差<1px

分割边界模糊导致读数误差±2%

抗干扰能力

强(适应倾斜、遮挡、反光)

弱(依赖分割阈值)

部署复杂度

轻量化模型,易于边缘设备部署

重模型需高性能计算资源

应用场景

  • 石油化工、电力等行业的压力表自动化巡检;
  • 工业机器人视觉引导中的压力参数实时反馈;
  • 远程监控系统中仪表数据的智能采集与分析。

总结 本系统通过YOLO11与YOLOv8-Pose的协同优化,实现了工业压力表检测从“粗定位”到“精读数”的全流程自动化,在精度、速度与鲁棒性上均达到行业领先水平,为工业智能化转型提供了高效、可靠的视觉检测解决方案。

【效果展示】

该系统读取仪表流程主要包括以下几步:

第一步:利用目标检测算法yolo11定位到仪表位置

第二步:将第一步得到仪表位置进行截取仪表图片区域,然后送入yolov8-pose关键点检测算法进行关键点检测

第三步:提取到关键点有仪表中心区域,指针,量程起始点,量程结束点。然后计算指针相对于量程起始点角度与量程起始点量程结束角度占比,根据仪表量程最大值确定读数

第四步:对读数和检测仪表进行展示

【算法对比】

目前网上主流采用以下算法进行仪表读取:

目标检测定位仪表-》分割框架分割仪表-》将仪表量程由圆形转成矩形区间,然后通过结合opencv算法获取指针位置在矩形区域占比从而获取读数。典型算法有

目标检测(yolov5/yolov8/yolov11等)-》分割框架(deeplabv3plus/unet)

我们算法为:

目标检测(yolov11)-》关键点框架(yolov8-pose),当然也可以使用其他检测和关键点框架,比如yolov8,yolov12,yolov13,yolo11-pose等

经过测试发现:采用分割框架进行分割仪表存在典型问题就是仪表读数严重依赖分割精度,而分割数据集少了很容易分割错误,而且实时性能较差,只要分割存在问题就会导致仪表读数错误。如果采用关键点检测,则通过关键点检测排除是否检测到仪表关键位置,而如果通过分割框架对于指针每格都要精确检测到才行,这样肯定没有几个关键点检测方便,而且要知道每个格子指示箭头是否分割正确还需要大量代码编写。因此这样算法显然不是最优算法。

【yolov11框架介绍】

2024 年 9 月 30 日,Ultralytics 在其活动 YOLOVision 中正式发布了 YOLOv11。YOLOv11 是 YOLO 的最新版本,由美国和西班牙的 Ultralytics 团队开发。YOLO 是一种用于基于图像的人工智能的计算机模

Ultralytics YOLO11 概述

YOLO11 是Ultralytics YOLO 系列实时物体检测器的最新版本,以尖端的精度、速度和效率重新定义了可能性。基于先前 YOLO 版本的令人印象深刻的进步,YOLO11 在架构和训练方法方面引入了重大改进,使其成为各种计算机视觉任务的多功能选择。

Key Features 主要特点
  • 增强的特征提取:YOLO11采用改进的主干和颈部架构,增强了特征提取能力,以实现更精确的目标检测和复杂任务性能。
  • 针对效率和速度进行优化:YOLO11 引入了精致的架构设计和优化的训练管道,提供更快的处理速度并保持准确性和性能之间的最佳平衡。
  • 使用更少的参数获得更高的精度:随着模型设计的进步,YOLO11m 在 COCO 数据集上实现了更高的平均精度(mAP),同时使用的参数比 YOLOv8m 少 22%,从而在不影响精度的情况下提高计算效率。
  • 跨环境适应性:YOLO11可以无缝部署在各种环境中,包括边缘设备、云平台以及支持NVIDIA GPU的系统,确保最大的灵活性。
  • 支持的任务范围广泛:无论是对象检测、实例分割、图像分类、姿态估计还是定向对象检测 (OBB),YOLO11 旨在应对各种计算机视觉挑战。

​​​​

与之前的版本相比,Ultralytics YOLO11 有哪些关键改进?

Ultralytics YOLO11 与其前身相比引入了多项重大进步。主要改进包括:

  • 增强的特征提取:YOLO11采用改进的主干和颈部架构,增强了特征提取能力,以实现更精确的目标检测。
  • 优化的效率和速度:精细的架构设计和优化的训练管道可提供更快的处理速度,同时保持准确性和性能之间的平衡。
  • 使用更少的参数获得更高的精度:YOLO11m 在 COCO 数据集上实现了更高的平均精度(mAP),参数比 YOLOv8m 少 22%,从而在不影响精度的情况下提高计算效率。
  • 跨环境适应性:YOLO11可以跨各种环境部署,包括边缘设备、云平台和支持NVIDIA GPU的系统。
  • 支持的任务范围广泛:YOLO11 支持多种计算机视觉任务,例如对象检测、实例分割、图像分类、姿态估计和定向对象检测 (OBB)

【yolov8-pose框架介绍】

关键点检测的Backbone、Neck网络和目标检测的完全一致,只是Head层会有区别,区别有一点:

三个尺度的特征图在head层除了生成3个预测Box的特征图(1,64,80,80)、(1,64,40,40)和(1,64,20,20);以及3个预测CLs的特征图 (1,nc,80,80)、(1,nc,40,40)和(1,nc,20,20);还会另外生成3个用来预测key_point关键点的特征图,以人体17个关键点为例,该分支生成三个尺度特征图分别为(1,51,80,80)、(1,51,40,40)和(1,51,20,20),用来预测人体17个关键点位置和置信度的特征图 ,即网络结构图中浅绿色Head部分。

3.1人体关键点

其中51表示17个关键点的位置(x和y坐标值)和置信度(conf),即17*3=51。人体17个关键点keypoints、关键点间的连接线Skeleton如下所示,比如noise会和左眼、右眼有连接,所以skeleton中会包含(0,1)和(0,2)。

3.2key_point分支

key_point分支的具体结构,如下图蓝色框区域内所示。该分支是由2个卷积组和1个卷积层构成,前两个卷积组的通道数需要符合max(ch[0] // 4, self.nk),ch[0]表示80*80尺度特征图的通道数,self.nk为关键点数量 * 3,比如前面说的人体关键点个数为17,那么key_point分支最后输出的通道数为17 * 3 =51。

由图可知,YOLOv8L中80 * 80尺度特征图的通道数是256,因此计算得到该分支头中前两个卷积层的通道数均是64,还是以人体关键点为例的话最后一个卷积输出通道数是51。

下图右边还展示了其他几个版本(n/s/m/x)的头部网络输出通道数变化,可以根据上述公式进行验证一下,通过公式计算,可以看到如果n/s/m版本前两个卷积组输出的通道数均为51。

3.3KeyPoint实现基本原理

YOLOv8关键点检测网络借鉴于YOLO PoseMaji_

大概聊聊其基本思想:

(1)一个目标检测框对应一组关键点。

(2)关键点可能会由于截断或者遮挡而无法预测出来,导致关键点漏检。

(3)关键点也有可能预测在目标检测框外。

【测试环境】

windows10 x64

anaconda3+python3.8

ultralytics==8.3.0

torch==2.3.1

【仪表检测数据集介绍】

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)

图片数量(jpg文件个数):1836

标注数量(xml文件个数):1836

标注数量(txt文件个数):1836

标注类别数:1

所在仓库:firc-dataset

标注类别名称(注意yolo格式类别顺序不和这个对应,而以labels文件夹classes.txt为准):["meter"]

每个类别标注的框数:

meter 框数 = 2082

总框数:2082

使用标注工具:labelImg

标注规则:对类别进行画矩形框

重要说明:暂无

特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注

图片预览:

标注例子:

训练结果:

验证集训练精度统计:

Class

Images

Instances

P

R

mAP50

mAP50-95

all

92

108

0.999

1

0.995

0.989

【仪表关键点数据集介绍】

数据集一共包含图片2216张,图片如下

训练结果:

【提供文件】

使用步骤: (1)首先根据官方框架ultralytics安装教程安装好yolov11环境,并安装好pyqt5 (2)切换到自己安装的yolov11环境后,并切换到源码目录,执行python main.py即可运行启动界面,进行相应的操作即可

项目提供文件有: python源码 yolov8-pose训练仪表的完整源码+数据集+模型+训练日志 仪表检测数据集+仪表关键点检测数据集 yolo11n.pt检测模型+yolov8-pose模型 训练的map,P,R曲线图(在weights\results.png),关键点训练日志请到yolov8-pose训练仪表的完整源码查看 测试图片(在test_img文件夹下面)注意new_001.jpg是关键点测试图片用不是检测+读数识别用。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ultralytics YOLO11 概述
  • Key Features 主要特点
    • 与之前的版本相比,Ultralytics YOLO11 有哪些关键改进?
  • 3.1人体关键点
  • 3.2key_point分支
  • 3.3KeyPoint实现基本原理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档