基于深度学习的指针式仪表图像智能读数方法

2023-11-08

针对传统图像处理的仪表识别方法鲁棒性较差,难以满足复杂环境下的指针式仪表图像读数,而深度学习的方法通过样本的训练能够适应更多的复杂场景,越来越多的仪表读数解决方案更偏向于使用深度学习的方法。而现在的基于深度学习的方法在仪表识别的解决方案中主要有以下两种方法:
1、目标检测仪表定位(YOLO、Mask RCNN、Faster RCNN等)+ 传统图像处理指针识别(Hough变换、最小二乘法、模板匹配等);
2、目标检测仪表定位(YOLO、Mask RCNN、Faster RCNN等)+ 语义分割方法进行指针及刻度线的像素级分割(Mask RCNN、FCN、UNet等)+ 指针线识别(Hough变换直线检测、最小二乘法直线拟合等)。
以上两种方法各有特点,但是总感觉有点不足,就是对指针的处理上最后还是用到了传统图像处理的方法。传统图像处理的方法总是少了图像预处理,函数调参等步骤,例如Hough变换直线检测中需要调好几个参数,不太好把握。因此,为了提高指针的检测精度,本文提出了一种基于深度学习的指针式仪表智能读数方法,通过改进的YOLOv5模型端到端提取指针和表盘刻度关键点。同时通过字符识别算法对仪表刻度数进行识别。所提方法不需要提前采集待识别仪表图像的模板图像,可对任意类型的指针式仪表读数,并且对于采集的倾斜状态下的仪表图像在未矫正的情况下识别准确度可达98%。识别的一般步骤包括:
论文参考:Intelligent Reading Recognition Method of Pointer Meter Based on Deep Learning in Real Environment
一、表盘定位;
仪表定位的主要目的是从复杂的背景环境中提取表盘区域,通过表盘定位过滤背景干扰信息,提高后续仪表特征信息,包括指针、刻度区域的检测精度。如果机器人携带的可见光相机或者其他拍摄工具通过变焦可以得到高倍的仪表图像,则可以省略仪表定位步骤,从而提高算法效率。考虑一般的情况,难以直接得到高倍的表盘图像,因此,仪表图像识别中表盘定位步骤不可避免。传统的仪表定位方法有Hough变换表盘圆检测方法、模板匹配方法等,但是这些方法难以应对复杂的自然环境,在背景环境改变下容易失效。
在这里插入图片描述
为了提高仪表检测的准确率,本文使用yolov5目标检测算法进行仪表定位,yolov5仪表检测结果如下:
在这里插入图片描述

二、指针及刻度线识别;
针对传统的指针提取方法预处理步骤较多,容易产生累计误差,以及仪表示数判读方法中传统角度法误差较大,距离法计算量较大等问题,本文提出一种端到端的基于半指针检测的快速指针提取方法。将表盘图像上的半指针、表盘中心、和刻度字符为目标对象,使用yolov5进行检测,根据检测结果连接表盘中心和指针的针尖构成指针线,同时根据检测的刻度中心点通过欧式距离寻找指针的近邻刻度线。至于这里为什么选择半指针以及选择半指针的优点大家感兴趣可以去看论文,这里就不过多赘述,最终指针及指针的近邻刻度线检测结果如下图所示。可见,检测结果还是非常好的,可以对各种复杂情况下的仪表准确的检测出表盘指针线。
在这里插入图片描述
三、刻度数字识别;
其实,刻度字符识别也不是仪表识别中的必要过程,可以通过其他方法代替本过程,从而提高算法的效率,比如通过配置文件提前存储待识别仪表的信息。为了避免每次增加新的仪表需要存储新类型仪表的参数信息过程,同时也为了提高未知类型仪表识别的准确率,同时这里也介绍一种表盘刻度字符识别方法。将刻度字符0-9作为10个目标对象进行检测,根据检测结果进行推断刻度值。刻度字符识别结果如下
在这里插入图片描述

四、计算仪表读数。
根据指针及其近邻刻度线之间的夹角关系,使用角度法读数。最终仪表读数结果如下
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于深度学习的指针式仪表图像智能读数方法 的相关文章

随机推荐

  • 初识密码学

    初识密码学 摩斯密码 猪圈密码 键盘密码 普通键盘密码 用键盘换数字 拼音九键 栅栏密码 恺撒密码 维吉尼亚密码 希尔密码 摩斯密码 加密之前先来认识一下摩尔斯电码 点划 图像 二叉树 SOS并不是任何求救英文的缩写 而是因为在摩尔斯电码中
  • 无锁和偏向锁有什么区别?

    无锁和偏向锁是 Java 中的两种轻量级锁实现 它们和重量级锁相比 具有更高的性能和更低的开销 它们之间的区别如下 无锁 CAS 自旋锁 无锁是一种不需要使用锁的同步技术 它的实现依赖于 CAS Compare And Swap 操作 通过
  • ARM:分散加载

    1 GCC编译器下的分散加载 ld文件 SECTIONS ram text flash start LOADADDR ram text ram text ram text start user iic o text ALIGN 4 All
  • AdaBoost算法实例详解

    提升树Boosting Tree算法实例详解 程大海的博客 CSDN博客 从提升树Boosting Tree过度到梯度提升Gradient Boosting 程大海的博客 CSDN博客 GBDT梯度提升之回归算法个人理解 程大海的博客 CS
  • Centos7.6安装docker

    一 环境准备 Docker 支持以下的 64 位 CentOS 版本 CentOS 7 CentOS 8 更高版本 二 安装步骤 1 如果是重装 则需要卸载旧版本 sudo yum remove docker docker client d
  • k8s flannel划分子网方案

    目标 对宿主节点划分子网 同时实现对不同应用划分子网 实现说明 部署k8s时 划分宿主节点ip 对每个节点配置不同net conf json 这样pod调度到宿主节点时 根据net conf json内的network配置分配ip 实现po
  • git基本使用

    1 git init 初始化本地仓库 2 git add 或文件名 暂存 3 git commit m 自己定名字 4 git status 查看 5 git remote add origin https github com xxx 6
  • 强化学习之混合动作空间

    强化学习之混合动作空间 基本介绍 在强化学习的动作空间设定中有连续动作空间 离散动作空间和混合动作空间 在大多数的论文中研究的都是连续动作空间和离散动作空间 而混合动作空间研究的比较少 在游戏ai 自动驾驶等一些领域中有时动作空间可以是混合
  • 安装Elasticsearch

    gt 安装 1 创建基础环境 环境 centos7 9 es版本 7 13 3 按照如下的步骤一步步走 就可以正常完成安装 groupadd es useradd es g es p es123 cd home mkdir p elk es
  • nuxt.js局部引用quill富文本编辑器

    想在nuxt js中使用quill富文本编辑器 按照网上常见的方法 将css js 添加到 nuxt config js 这是全局调用了quill的css js 文件 在每个页面的源码中 都可以看到quill 的css js 这是没有必要的
  • 老板让你做性能优化,第一步你应该做什么?

    前言 项目的性能决定了用户对项目的整体感观度 优秀的性能可以保证项目的流畅与自然给用户愉快的体验感受 当我们开发完成一个项目以后最重要的环节就是要保证项目拥有一个良好的性能 所以开发完成以后需要我们针对项目做好性能优化 那么 要使一个项目拥
  • 大模型杀手级场景到底什么会到来

    大模型大潮之下 熙熙攘攘 皆为利来 皆为利往 所以很多人观望之后发现到现在还没有杀手级落地场景 便有些不耐烦了 觉得可能又是一股泡沫 但究竟是不是泡沫 需要从宏观角度分析下当前大模型的现状 笔者认为这种不耐烦其实来源于两个原因 1 天下事
  • 最适合零基础的爬虫教程,从零开始教你爬取十万表情包。非常简单。

    前言 事情要从几天前说起 我有一个朋友 他在和他喜欢的小姐姐聊天时 聊天的气氛一直非常尬 这时他就想发点表情包来缓和一下气氛 但一看自己的表情包收藏都是这样的 这发过去 基本就直接和小姐姐说拜拜了 然后他就向我求救问我有没有表情包 表情包我
  • 1、TCP三次握手、四次挥手;2、ADSL定义

    1 TCP三次握手 四次挥手详解 1 建立连接协议 三次握手 1 客户端发送一个带SYN标志的TCP报文到服务器 这是三次握手过程中的报文1 2 服务器端回应客户端的 这是三次握手中的第2个报文 这个报文同时带ACK标志和SYN标志 因此它
  • Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

    关于Appium V2 Appium V2 beta版本在2021年发布 从2022年1月1号开始 Appium核心团队不会再维护Appium 1 x版本了 所有近期官方发布的平台驱动 如Android平台的UIAutomator IOS平
  • W801上电自动重连wifi并通过蓝牙更新账号密码

    一 项目流程 项目整体思路比较简单 W801上电后读取内部flash中保存在固定位置的Wifi账号密码 同时开始蓝牙 每当蓝牙接收到命令后 就对其进行解析 如果为连接wifi命令 则断开当前wifi 并进行新的wifi连接 连接成功后将账号
  • 使用pkg打包Node.js应用:跨平台运行你的应用程序!

    使用pkg打包Node js应用 跨平台运行你的应用程序 你是否曾经遇到过在不同操作系统中运行同一个Node js应用程序时出现的问题 这是因为Node js不具备跨平台能力 所以需要一个打包工具来解决这个问题 幸运的是 有一个名为pkg的
  • 颜色、形状和纹理:使用 OpenCV 进行特征提取

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 如何从图像中提取特征 第一次听说 特征提取 一词是在 YouTube 上的机器学习视频教程中 它清楚地解释了我们如何在大型数据集中提取特征 很简单 数据集的列就是特征 然
  • Error: Command failed: C:\windows\system32\cmd.exe /s /c "E:\programfiles\androidSDK\platform-tools\...

    问题 appium等自动化环境都安装配置号后 遇到如下问题 Error Command failed C windows system32 cmd exe s c E programfiles androidSDK platform too
  • 基于深度学习的指针式仪表图像智能读数方法

    针对传统图像处理的仪表识别方法鲁棒性较差 难以满足复杂环境下的指针式仪表图像读数 而深度学习的方法通过样本的训练能够适应更多的复杂场景 越来越多的仪表读数解决方案更偏向于使用深度学习的方法 而现在的基于深度学习的方法在仪表识别的解决方案中主