基于视觉的仪表检测/指针仪表自动识别读数——论文解读

news2025/3/13 15:21:46

中文论文题目:基于关键点检测的指针仪表读数识别算法研究与应用

英文论文题目:

Research and Application of PointerMeter Reading Recognition AlgorithmBased on Key Point Detection

部分摘要

        本文在总结概括了关键点检测和传统指针仪表自动读数识别方法的基础上.设计基于深度学习的关键点检测算法,并将其应用到指针仪表自动读数识别任务当中。本文取得的主要研究成果如下:
       1)提出了一种基于MaskRCNN 的关键点检测算法。通过在 MaskRCNN 网络结构的基础上添加偏差分支,修正原有网络因上采样导致的关键点位置偏差实现了网络在关键点检测任务上的定位精度提升。在公开数据集上的实验结果表明,本文提出的算法在各项指标上均有提升,有效提高了关键点的定位准确度。

        2)提出了一种基于关键点检测的指针仪表自动读数识别算法。将传统的指针仪表自动读数识别任务与基于深度学习的关键点检测任务相结合,设计了基于精确关键点检测的指针仪表自动读数识别算法框架,利用关键点检测算法定位刻度线和指针位置,从而进一步实现读数识别。实验结果表明,本文提出的算法对多种指针仪表的识别均有较高的准确度,且对拍摄角度和光照条件等具有很好的鲁棒性。

一、简介  

       本章以变电站中的多种类别的指针仪表作为研究对象,探究能够自动识别仪表读数的方法。指针仪表自动读数任务的关键在于指针仪表的定位以及指针与刻度点之间的角度关系。

二、检测流程    

1、利用第 3 章中提出改进的 Mask RCNN 关键点检测算法对指针仪表的刻度点和指针上的特征点进行精确的位置定位。

再利用指针特征点对指针所在直线进行拟合,从而利用角度关系判断仪表示数。

 

2、提取关键点

关键点的思路,本文在建立指针仪表数据集时,将表盘作为整体,表盘上的各个刻度点作为关键点进行标注,标注的可视化结果如下图 4-5 所示。对于仪表中的每一个大量程的刻度线,取其刻度线的端点作为一个关键点。对于指针直线,则取指针头部、回转中心、指针尾部三个位置作为关键点,用于定位指针直线的位置。以图 4-5 为例,该表为变电站中的一个压力表,量程为0到1,每隔 0.1 的量程有一根大刻度线,取该刻度线的末端作为一个关键点,则表示刻度线的关键点一共有 11 个,表示为s l,s 2,...,s 11;对于指针,取其顶端作为第一个关键点 p1,指针的回转中心作为第二点关键点 p 2,指针尾部的中间位置作为第三个关键点p 3。因此,对于图 4-5 中的表,一共有 14 个关键点,其中刻度线 11个,指针3 个。对于其他类型的表计,使用相同的原则选择关键点。 

对于如上述方式标记的指针仪表关键点数据集,在输入关键点检测网络完成模型训练后,在测试时将会对每一张输入的指针仪表图片检测仪表表盘并得到表盘内的所有关键点信息。之后将可以基于这些关键点信息,完成指针仪表的自动读数。 

3、然后作者利用提取到的关键点,进行圆弧拟合。

 5、指针直线定位,利用角度对刻度进行计算。

角度法通过测量角度识别指针仪表的读数。在上节提取仪表指针的同时,得到了指针所在直线的截距和斜率,同时也确定了指针方向。对于每种仪表,首先通过斜率计算仪表指针和零刻度线间的角度关系,然后通过仪表的量程与角度关系换算出仪表示数。设量程为M,指针与零刻度线间的来角为a,零刻度线与满量程间的夹角为B,则根据角度法,仪表读数V为:

6、实验结果

三、总结
       

         本文提出了一种基于 Mask RCNN 改进的精确关键点检测算法,相比原始的MaskRCNN,本文设计的网络在关键点检测方面具有更高的精确度,并据此提出了基于关键点检测的指针仪表自动读数识别算法框架,该框架具有精确度高、鲁棒性好、适用性广等特点。本文所做的工作总结如下:
         1) 本文介绍了指针仪表自动读数识别的研究背景与意义,对国内外在该领域以及关键点检测领域的研究现状和内容作了总结,概括了指针仪表自动读数识别算法所需的四个步骤,并对已有的方法分步骤进行了详细阐述。


         2)本文对人体关键点检测或姿态估计领域的发展历史进行了回顾,重点介绍了关键点检测领域的经典算法 Mask RCNN 的网络结构以及损失函数通过对 MaskRCNN 的结构设计进行分析,找到了提高关键点检测精度的改进方向,提出了一种基于 Mask RCNN 改进的更精确的关键点检测算法,在公开数据集上取得了较好的效果,并且简单分析了多任务学习对网络性能带来的影响。


       3) 本文将传统的指针仪表自动读数任务与基于深度学习的关键点检测任务相结合,提出了基于精确关键点检测的指针仪表自动读数识别算法框架利用关键点检测算法定位刻度线和指针,实现自动读数识别。实验证明本算法相比传统的算法在精确度、鲁棒性和实用性方面都有了极大的提升。

       本文提出的算法适用于变电站中的多种类型的指针仪表,且对拍摄时指针仪表在视野中的位置、角度以及环境光照等都没有限制,可由巡检机器人或无人机等智能设备拍摄得到,图片获取成本低,相比于传统的指针仪表是识别算法,本文方法具有更强的鲁棒性和适用性,且精度达到了课题系统设计的精度要求,能够应用于变电站真实运行环境。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/883954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

驱蚊酯、避蚊胺、派卡瑞丁、柠檬桉醇驱蚊效果和剂量在不同作用环境下的测试于验证

摘要 随着全球气候的变化和人类活动的不断增加,蚊虫成为了一种广泛存在且对人类健康造成威胁的害虫。蚊虫不仅令人感到不适,还可能传播一系列严重的传染病,如疟疾、登革热和寨卡病毒等。为了应对这一问题,寻找高效且安全的驱蚊方…

Codeforces Round 893 (Div. 2) E1. Rollbacks (Easy Version)

Codeforces Round 893 (Div. 2) E1. Rollbacks (Easy Version)思路&#xff1a;单点更新离线莫队区间查询区间不同数字个数栈保留last_state 源代码&#xff1a; #include<cstdio> #include<cmath> #include<algorithm> #include <stack> using names…

2023年雷军演讲读后感

文章目录 概述坚持梦想&#xff0c;拆解目标多维学习&#xff0c;掌握方法突破认知&#xff0c;深度探索及时总结&#xff0c;调整方向总结 概述 2023年8月14日晚7点&#xff0c;雷军进行了他个人的第四次年度演讲&#xff0c;大家都看了吗&#xff1f; 本次演讲的主题是&quo…

SRCNN:Image Super-Resolution Using Deep Convolutional Networks

Some words&#xff1a; 这里是一些阅读文章的笔记&#xff0c;这篇文章是第一篇将深度学习应用于超分领域的文章&#xff0c;具有较为重要的意义。 link: https://arxiv.org/pdf/1501.00092.pdf &#xff08;一&#xff09;Abstract&#xff1a; 我们提出一个对于单图像超分…

智慧工地一体化云平台源码:监管端、工地端、危大工程、智慧大屏、物联网、塔机、吊钩、升降机

智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VR&AR等技术相结合&#xff0c;为工程项目管理提供先进技术手段&#xff0c;构建工地现场智能监控和控制体系&#xff0c;弥补传统方法在监管中的缺陷&#xff0c;最终实现项目对人、机、料、法、环的全…

SDXL1.0大模型安装与使用

个人网站&#xff1a; 文章目录 前言一、模型下载使用&#xff08;简单体验&#xff09;二、模型下载使用&#xff08;繁琐版&#xff09;三、ComfyUI 前言 使用 Stable Diffusion XL&#xff0c;您可以使用较短的提示创建描述性图像&#xff0c;并在图像中生成文字。该模型在…

【5款登录验证校验】基于jquery实现的5款登录验证码组件(附完整源码)

文章目录 写在前面涉及知识点1、随机字母验证码1.1 效果1.2 实现源码 2、数字运算验证码2.1 效果2.2 实现源码 3、滑块验证码3.1 效果3.2 实现源码 4、图片补全验证码4.1 效果4.2 实现源码 5、顺序点选验证码5.1 效果5.2 实现源码 6、源码分享6.1 百度网盘6.2 123网盘6.3 邮箱留…

cs231n assignment3 q1Network Visualization

文章目录 嫌啰嗦直接看代码Q1 :Network Visualizationcompute_saliency_maps题面解析代码输出 make_fooling_image题面解析代码输出 class_visualization_update_step题面解析代码输出 结语 嫌啰嗦直接看代码 Q1 :Network Visualization compute_saliency_maps 题面 这部分的…

【校招VIP】java语言考点之ConcurrentHashMap1.7和1.8

考点介绍&#xff1a; ConcurrentHashMap是JAVA校招面试的热门考点&#xff0c;主要集中在1.7和1.8的底层结构和相关的性能提高。 理解这个考点要从map本身的并发问题出发&#xff0c;再到hashTable的低性能并发安全&#xff0c;引申到ConcurrentHashMap的分块处理。同时要理解…

2023牛客暑期多校训练营9-B Semi-Puzzle: Brain Storm

2023牛客暑期多校训练营9-B Semi-Puzzle: Brain Storm https://ac.nowcoder.com/acm/contest/57363/B 文章目录 2023牛客暑期多校训练营9-B Semi-Puzzle: Brain Storm题意解题思路代码 题意 解题思路 欧拉定理 a b ≡ { a b % φ ( p ) g c d ( a , p ) 1 a b g c d ( a ,…

认识excel篇3之数据的有效性(数据验证)

数据有效性不仅能够对单元格的输入数据进行条件限制&#xff0c;还可以在单元格中创建下拉列表菜单方便用户选择输入。如果没有做数据验证&#xff0c;单元格内默认可以输入任意类型的数据。数据验证就是限制单元格输入数据&#xff08;必须输入符合要求的才能输入&#xff09;…

OpenCV-Python中的图像处理-视频分析

OpenCV-Python中的图像处理-视频分析 视频分析Meanshift算法Camshift算法光流Lucas-Kanade Optical FlowDense Optical Flow 视频分析 学习使用 Meanshift 和 Camshift 算法在视频中找到并跟踪目标对象: Meanshift算法 Meanshift 算法的基本原理是和很简单的。假设我们有一堆…

使用Logstash将数据从MySQL同步至Elasticsearch(有坑)

文章目录 一、准备工作1、安装elasticSearchkibana2、安装MySQL3、安装Logstash 二、全量同步1、准备MySQL数据与表2、上传mysql-connector-java.jar3、启动Logstash4、修改logstash.conf文件5、修改full_jdbc.sql文件6、打开Kibana创建索引和映射7、重启logstash进行全量同步8…

linux 系统中vi 编辑器和库的制作和使用

目录 1 vim 1.1 vim简单介绍 1.2 vim的三种模式 1.3 vim基本操作 1.3.1命令模式下的操作 1.3.2 切换到文本输入模式 1.3.3 末行模式下的操作 2 gcc编译器 2.1 gcc的工作流程 2.2 gcc常用参数 3 静态库和共享&#xff08;动态&#xff09;库 3.1库的介绍 3.2静态…

Dockerfile自定义镜像

文章目录 Dockerfile自定义镜像镜像结构Dockerfile语法构建java项目 小结 Dockerfile自定义镜像 常见的镜像在DockerHub就能找到&#xff0c;但是我们自己写的项目就必须自己构建镜像了。 而要自定义镜像&#xff0c;就必须先了解镜像的结构才行。 镜像结构 镜像是将应用程序及…

PyTorch基础(16)-- torch.gather()方法

一、前言 在实现DQN的过程中&#xff0c;torch.gather()这个方法引起了我的注意&#xff0c;原因有二&#xff1a;1&#xff09;这个函数在我硕士期间很少遇见&#xff0c;用到的次数更是少之又少&#xff1b;2&#xff09;torch.gather()这个方法是如何使用的呢&#xff0c;以…

[HZNUCTF 2023 preliminary] 2023杭师大校赛(初赛) web方向题解wp 全

ezflask 先看题目&#xff0c;应该是模板注入&#xff08;SSTI&#xff09;&#xff0c;输入{{7*‘7’}}直接报错误。 发现模板是反序输出的&#xff0c;怪不得不能直接输入{{}}。 输入}}‘7’*7{{返回777777&#xff0c;是jinja2 //直接手打&#xff0c;无所谓我是怨种 ?nam…

Mysql中使用存储过程插入decimal和时间数据递增的模拟数据

场景 Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据&#xff1a; Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据_mysql循环插入随机数据_霸道流氓气质的博客…

【第三阶段】kotlin语言中的先决条件函数

用于函数内部判断异常&#xff0c;节省开发 1.checkNotNull&#xff08;&#xff09;如果传入为null则抛出异常 fun main() {var name:String?nullcheckNotNull(name) }执行结果 2.requireNotNull ()如果传入为null则抛出异常 fun main() {var name:String?nullrequireNot…

基于PSO-KELM的时间序列数据预测(含对比实验)

前段时间有粉丝私信想让我出一期对时间序列预测的文章&#xff0c;所以今天它来了。 时间序列数据&#xff0c;如股指价格&#xff0c;具有波动性、非线性和突变的特点&#xff0c;对于这类数据的预测往往需要可靠强健的预测模型&#xff0c;而传统的机器学习算法如SVM、BP等…