【CV综合实战】基于深度学习的工业压力表智能检测与读数系统【3】使用OpenCV读取分割后的压力表读数

发布于:2025-07-16 ⋅ 阅读:(14) ⋅ 点赞:(0)

《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】

项目名称 项目名称
1.【人脸识别与管理系统开发 2.【车牌识别与自动收费管理系统开发
3.【手势识别系统开发 4.【人脸面部活体检测系统开发
5.【图片风格快速迁移软件开发 6.【人脸表表情识别系统
7.【YOLOv8多目标识别与自动标注软件开发 8.【基于深度学习的行人跌倒检测系统
9.【基于深度学习的PCB板缺陷检测系统 10.【基于深度学习的生活垃圾分类目标检测系统
11.【基于深度学习的安全帽目标检测系统 12.【基于深度学习的120种犬类检测与识别系统
13.【基于深度学习的路面坑洞检测系统 14.【基于深度学习的火焰烟雾检测系统
15.【基于深度学习的钢材表面缺陷检测系统 16.【基于深度学习的舰船目标分类检测系统
17.【基于深度学习的西红柿成熟度检测系统 18.【基于深度学习的血细胞检测与计数系统
19.【基于深度学习的吸烟/抽烟行为检测系统 20.【基于深度学习的水稻害虫检测与识别系统
21.【基于深度学习的高精度车辆行人检测与计数系统 22.【基于深度学习的路面标志线检测与识别系统
23.【基于深度学习的智能小麦害虫检测识别系统 24.【基于深度学习的智能玉米害虫检测识别系统
25.【基于深度学习的200种鸟类智能检测与识别系统 26.【基于深度学习的45种交通标志智能检测与识别系统
27.【基于深度学习的人脸面部表情识别系统 28.【基于深度学习的苹果叶片病害智能诊断系统
29.【基于深度学习的智能肺炎诊断系统 30.【基于深度学习的葡萄簇目标检测系统
31.【基于深度学习的100种中草药智能识别系统 32.【基于深度学习的102种花卉智能识别系统
33.【基于深度学习的100种蝴蝶智能识别系统 34.【基于深度学习的水稻叶片病害智能诊断系统
35.【基于与ByteTrack的车辆行人多目标检测与追踪系统 36.【基于深度学习的智能草莓病害检测与分割系统
37.【基于深度学习的复杂场景下船舶目标检测系统 38.【基于深度学习的农作物幼苗与杂草检测系统
39.【基于深度学习的智能道路裂缝检测与分析系统 40.【基于深度学习的葡萄病害智能诊断与防治系统
41.【基于深度学习的遥感地理空间物体检测系统 42.【基于深度学习的无人机视角地面物体检测系统
43.【基于深度学习的木薯病害智能诊断与防治系统 44.【基于深度学习的野外火焰烟雾检测系统
45.【基于深度学习的脑肿瘤智能检测系统 46.【基于深度学习的玉米叶片病害智能诊断与防治系统
47.【基于深度学习的橙子病害智能诊断与防治系统 48.【基于深度学习的车辆检测追踪与流量计数系统
49.【基于深度学习的行人检测追踪与双向流量计数系统 50.【基于深度学习的反光衣检测与预警系统
51.【基于深度学习的危险区域人员闯入检测与报警系统 52.【基于深度学习的高密度人脸智能检测与统计系统
53.【基于深度学习的CT扫描图像肾结石智能检测系统 54.【基于深度学习的水果智能检测系统
55.【基于深度学习的水果质量好坏智能检测系统 56.【基于深度学习的蔬菜目标检测与识别系统
57.【基于深度学习的非机动车驾驶员头盔检测系统 58.【太基于深度学习的阳能电池板检测与分析系统
59.【基于深度学习的工业螺栓螺母检测 60.【基于深度学习的金属焊缝缺陷检测系统
61.【基于深度学习的链条缺陷检测与识别系统 62.【基于深度学习的交通信号灯检测识别
63.【基于深度学习的草莓成熟度检测与识别系统 64.【基于深度学习的水下海生物检测识别系统
65.【基于深度学习的道路交通事故检测识别系统 66.【基于深度学习的安检X光危险品检测与识别系统
67.【基于深度学习的农作物类别检测与识别系统 68.【基于深度学习的危险驾驶行为检测识别系统
69.【基于深度学习的维修工具检测识别系统 70.【基于深度学习的维修工具检测识别系统
71.【基于深度学习的建筑墙面损伤检测系统 72.【基于深度学习的煤矿传送带异物检测系统
73.【基于深度学习的老鼠智能检测系统 74.【基于深度学习的水面垃圾智能检测识别系统
75.【基于深度学习的遥感视角船只智能检测系统 76.【基于深度学习的胃肠道息肉智能检测分割与诊断系统
77.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统 78.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统
79.【基于深度学习的果园苹果检测与计数系统 80.【基于深度学习的半导体芯片缺陷检测系统
81.【基于深度学习的糖尿病视网膜病变检测与诊断系统 82.【基于深度学习的运动鞋品牌检测与识别系统
83.【基于深度学习的苹果叶片病害检测识别系统 84.【基于深度学习的医学X光骨折检测与语音提示系统
85.【基于深度学习的遥感视角农田检测与分割系统 86.【基于深度学习的运动品牌LOGO检测与识别系统
87.【基于深度学习的电瓶车进电梯检测与语音提示系统 88.【基于深度学习的遥感视角地面房屋建筑检测分割与分析系统
89.【基于深度学习的医学CT图像肺结节智能检测与语音提示系统 90.【基于深度学习的舌苔舌象检测识别与诊断系统
91.【基于深度学习的蛀牙智能检测与语音提示系统 92.【基于深度学习的皮肤癌智能检测与语音提示系统

二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~

《------正文------》

基本功能演示

【CV综合实战】基于深度学习的工业压力表智能检测与读数系统【python源码+Pyqt5界面+数据集+训练代码】

摘要:在工业环境中,压力表作为关键的监控设备,用于实时监测各种系统和流程中的压力变化,对确保生产安全与效率至关重要。本文基于YOLO11的深度学习框架,通过783张实际场景中拍摄的工业压力表相关图片,训练了可进行压力表目标检测的模型,然后用Unet网络,通过414张分图片训练压力表指针与刻度分割模型,对检测出的压力表指针与刻度进行分割,然后通过OpenCV进行后处理的读数读取。最终基于以上内容制作了一款带UI界面的工业压力表智能检测与读数系统,更便于实际应用。该系统是基于pythonPyQT5开发的,支持图片视频以及摄像头进行压力表数据读取,并保存检测结果。本文提供了完整的Python代码和使用教程,给感兴趣的小伙伴参考学习,完整的代码资源文件获取方式见文末

点击跳转至文末《完整相关文件及源码》获取


引言

该系列文章主要介绍一个《基于深度学习的工业压力表智能检测与读数系统》的制作流程:包含了项目所有源码与模型训练数据集、训练代码与训练结果等内容。最终实现效果如下:
在这里插入图片描述

该系统制作主要包括以下几步:

  1. 压力表目标检测模型的训练,该项目使用的是YOLO11
  2. 压力表指针与刻度分割模型的训练,该项目使用的是Unet
  3. OpenCV对分割结果进行后处理,并读取压力表读数;
  4. 系统软件界面的制作。

之前已经介绍了前2步的实现:
第一步实现压力表位置检测,见文章:《【CV综合实战】基于深度学习的工业压力表智能检测与读数系统【1】压力表位置检测
第二步实现指针与刻度分割,见文章:《【CV综合实战】基于深度学习的工业压力表智能检测与读数系统【2】表盘指针与刻度分割模型训练》

本文介绍第3步使用OpenCV对压力表进行读取。最终实现的读数效果展示如下:
在这里插入图片描述
在这里插入图片描述

读数基本流程

1.获取指针与刻度分割结果

通过第二步训练好的分割模型,我们可以获取到压力表指针与刻度的分割结果,分割结果示例如下:
在这里插入图片描述

2.使用OpenCV对结果进行后处理

为了使最终读数结果更加精确,对上述分割结果通过OpenCV进行腐蚀操作,核心代码如下:

seg_results = self.seg_predict(self.segmenter, sub_imgs)
if use_erode:
    seg_results = self.erode(seg_results, erode_kernel)

腐蚀后结果如下:
在这里插入图片描述

3.将圆形变为矩形

通过坐标变换,将上述圆形坐标转换为矩形,方便后续进行读数。

self.circle_to_rectangle(seg_results)

在这里插入图片描述

4. 定位刻度与指针位置

通过OpenCV读取上述矩形区域的刻度与指针所在位置。然后通过指针所在位置以及刻度表的量程,计算当前压力表读数。

meter_readings = self.get_meter_reading(seg_results, sub_imgs)

读数如下:
在这里插入图片描述

将读数结果展示在原图上

核心代码展示如下:

self.results = self.model(self.org_path, conf=self.conf, iou=self.iou)[0]
location_list = self.results.boxes.xyxy.tolist()
self.location_list = [list(map(int, e)) for e in location_list]
cls_list = self.results.boxes.cls.tolist()
self.cls_list = [int(i) for i in cls_list]
self.conf_list = self.results.boxes.conf.tolist()
self.conf_list = ['%.2f %%' % (each*100) for each in self.conf_list]
self.id_list = [i for i in range(len(self.location_list))]

# 截取关注区域
self.roi_imgs = self.get_roi_area(self.org_img, self.location_list)

# 识别结果
self.roi_res, self.seg_results = self.predict_cls.ROI_Predict(self.roi_imgs)
# 将self.roi_res列表中的元素转换为字符串
self.roi_res = [str(each) for each in self.roi_res]
self.seg_imgs = self.seg_results
self.seg_imgs = [tools.visualize_mask(each) for each in self.seg_imgs]

在这里插入图片描述

总结

本文详细介绍了《工业压力表智能检测与读数系统》实现的第三步:压力表读数读取
下一篇文章将详细介绍如何使用Pyqt5搭建系统界面,做成一个方便使用的软件系统程序。


关于该系统涉及到的完整源码、UI界面代码、数据集、训练代码、训练好的模型、测试图片视频等相关文件,均已打包上传,感兴趣的小伙伴可以通过下载链接自行获取。

【获取方式】

关注末尾名片GZH【阿旭算法与机器学习】,发送【源码】获取下载方式

本文涉及到的完整全部程序文件:包括python源码、数据集、训练好的结果文件、训练代码、UI源码、测试图片视频等(见下图),获取方式见文末:
在这里插入图片描述

在这里插入图片描述

注意:该代码基于Python3.9开发,运行界面的主程序为MainProgram.py,其他测试脚本说明见上图。为确保程序顺利运行,请按照程序运行说明文档txt配置软件运行所需环境。


好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!


网站公告

今日签到

点亮在社区的每一天
去签到