目录
前言
课题背景和意义
实现技术思路
一、指针式仪表读数识别算法的设计
二、指针和刻度线提取及仪表示数识别
实现效果图样例
最后
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导:/qq_37340229/article/details/128243277
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯毕业设计-基于深度学习的指针式仪表读数识别系统
课题背景和意义
作为测量数据、检测数据和收集数据的有效工具,各种类型的仪表在工业生产、电 力系统、国防科技等各个行业中都发挥着重要作用。根据工作原理,仪表主要可以分为 指针式仪表和数显式仪表两大类。数显式仪表具有精度高,读数方便的优点,在工业生 产中的占用率正在逐渐扩大,但其缺点也很明显,例如对电磁干扰的抵抗力弱,造价高 等。相对而言指针式仪表结构简单,安装方便,对电磁干扰不敏感,可靠性高。因此, 在变电站等环境恶劣的工业现场,指针式仪表仍然是最主要的数据测量和显示工具。 指针式仪表一般没有数显接口,因此其数据采集和录入需要人工进行。这种方式工 作量大,效率低,且存在较大可能的读数偏差;其次很多仪表处于高温、高压、高辐射, 甚至有毒的恶劣环境中,如果数据采集继续采用人工处理的方式,将对相关工作人员的 生命安全带来极大的威胁。 目前市场上已有一些可对指针式仪表进行自动读数的抄表机器人,它们能够为企业 节约大量的人力成本和时间成本,而抄表机器人的核心技术就是基于机器视觉的指针式 仪表自动读数识别算法。
实现技术思路
一、指针式仪表读数识别算法的设计
主要研究内容与算法改进
为了提高指针式仪表读数识别算法在复杂环境下读数的准确性和鲁棒性,针对现有算法存在的问题,进行了分析,并提出了改进的方法,如图所示,
(1)传统图像校正算法存在的问题及其 原因,传统的图像校正方法通常通过仪表的外轮廓形状去计算图像变换模型参数矩阵, 存在只能适应某一特定仪表的问题,因此本文提出了一种基于刻度值文本匹配的图像校 正方法。(2)分析了传统的极坐标变换法鲁棒性差的主要原因,传统的极坐标变换法均基于仪表图像中的刻度线特征对极坐标变换的中心进行提取,刻度线仅包含极少量的图像特征信息,因此使得识别算法容易受到强光和阴影等环境因素的影响。 (3)现有的极坐标变换法中的指针和刻 度线提取方法容易受到表盘中其他无效信息影响,从而导致提取准确性差,这是由于现 有的方法直接在极坐标变换后的图像内进行指针和刻度线的提取,而极坐标变换后的图 像上仍有很多无效的干扰信息。 指针式仪表读数识别算法如图所示。算法主要流程包括刻度值文本的检 测和识别、仪表图像校正、极坐标变换中心提取以及指针和刻度线的提取。
基于刻度值文本的校正方法改进
摄像机垂直仪表盘拍摄到的图像为理想的仪表图像,然而在采集仪表图像的过程中, 很难保证摄像机始终与仪表表盘垂直,如果直接对非理想仪表图像进行读数,会导致较 大的误差。因此算法需要首先对仪表图像进行校正,以降低算法后续步骤的识别误差。
基于刻度值文本的极坐标变换中心提取方法改进 现有的极坐标变换判读法大多基于刻度线特征对极坐标变换的中心进行提取,如图所示,而因为刻度线在仪表图像中只包含极少量的像素信息,图像特征较少,所以 在复杂环境下提取刻度线的准确性较低,导致算法鲁棒性较低。
基于二级区域搜索的指针和刻度提取方法改进 对于极坐标变换后的仪表图像中指针和刻度线的提取,本文提出了二级区域搜索的 方法,该方法根据刻度值文本位置定位指针所在区域(一级搜索区域)以及指针两边主刻度线所在区域(二级搜索区域),从而大大降低表盘中无效信息对指针与刻度线提取 的影响。
二、指针和刻度线提取及仪表示数识别
仪表图像中指针与刻度线的提取
传统的极坐标变换判读法中的指针和刻度线提取大多依靠投影法和扫描法实现,由图可以看出极坐标变换后的仪表图像依然包含很多无效的表盘特征信息。若直接在 变换后的图像上应用指针和刻度提取的方法,提取结果容易受到表盘中无效信息特征的 影响,造成提取算法的准确性较差。
提出了二级区域搜索法。该方法在得到刻度呈直线性形状分布 的仪表图像后,基于刻度值文本和刻度区域的空间关系,不断缩小搜索范围,在一级搜 索区域内提取指针,二级搜索区域内提取刻度线,降低表盘中无效信息对指针与刻度线 提取的影响。本文提出的二级区域搜索法的步骤流程如图所示。
一级搜索域的获取 本文将仪表图像中所有刻度线与所有刻度文本所在的区域作为一级搜索区域。如图,图中实线框表示所有刻度文本所在区域,虚线框表示所有刻度线所在区域, 两者的并集为一级搜索区域。该区域的获取步骤如下述。
第一步,计算原图像中所有刻度值文本定位框的顶点坐标在极坐标变换后的图像上 的坐标,得到所有刻度值文本框顶点的点集 A,如图所示。
刻度值文本框的坐标在极坐标变换后的图像中的坐标(Px, Py)可以由下式计算得到:
第二步,根据刻度值文本定位框顶点点集,得到所有刻度值文本所在区域 Rtext,如 图 5.3(b)所示。Rtext 可由下式得到:
第三步,延伸 Rtext 区域,得到一级搜索区域 RoI1。观察多个仪表图像可以发现刻度 区域和刻度值文本区域的宽度近似相等。所以延伸 Rtext 至两倍得到 RoI1,即使得:
其中,Htext 为 Rtext 的高,HRoI 为延伸后区域的高,延伸后得到的区域即为一级搜索区域 RoI1。
一级搜索域内指针的提取
为了准确地得到指针和刻度的位置信息,首先需要用图像分割算法从包含各类复杂 特征的仪表图像中分割出指针和刻度图像。在各种类型的图像分割算法中,应用最为广 泛的是阈值分割算法。阈值分割算法的是:通过设定特定的阈值,把图像中的像素点分 割成若干类,通常分为两类,即前景和背景。
在指针式仪表图像中,前景,即指针和刻度图像均呈现为黑色;表盘,即背景呈现 为白色,所以在设计阈值分割算法时,需要将特征值小于阈值的像素点设置成前景,将 特征值大于阈值的点设置成背景。即:
1、常用的图像阈值分割方法
常用的阈值分割方法有很多。根据阈值的作用范围可以分成两类:全局阈值分割法 和局部阈值分割法。全局阈值法是利用目标图像的灰度空间或者灰度直方图的分布特点 来选取一个阈值,对整幅图像都使用这个阈值来进行二值化。而局部阈值分割算法则是根据像素点领域内的像素值分布来 确定该像素点的阈值。
Niblack 阈值分割法[52]是一种基于标准差的局部阈值分割方法,它的基本原理是根 据每个像素点周围 r×r 领域内像素点灰度值的均值和标准差,计算出每个像素点的阈值, 从而分割图像。阈值计算方法如下:
Sauvola 阈值分割法也是考虑局部亮度平均值的阈值分割方法。该方法的核心思 想是也是对像素点所在领域内的平均灰度值和标准差进行计算,由此得到该像素点的局 部阈值。首先基于平均灰度值确定合适的阈值,再用标准差进行修正。
Bernsen 阈值分割法[54]也是一种局部的阈值分割方法,他引入了局部对比度对局部 阈值进行计算。
2、本文的图像阈值分割方法
针对亮度不均匀、存在阴影的指针和刻度图像,本文提出了一种改进的最大类间方 差法。该方法将算法中全局的阈值改为局部的阈值。具体步骤如下。将一级搜索区域内的图像平均分为若干小格子,如图所示。
对于每个格子区域 内的图像像素点,使用相同的阈值进行分割。对于大小为 M×N 的每一个小格,假设阈 值选取为 T,图像中像素灰度值小于阈值 T 的像素点个数为 N0,灰度值大于 T 的像素 点个数为 N1。像素值小于 T 的像素点个数占图像总像素个数的比例为 ω0;像素值大于 T 的像素点个数占整幅图像的比例为 ω1。图像的总体平均灰度记为 μ,类间方差记为 δ。 则有:
图像的总体平均灰度 μ 以及前景背景之间的类间方差 δ 可以表示为:
其中,μ0表示所有前景像素的平均灰度,μ1表示所有背景像素的平均灰度。将式(5.16) 带入式(5.17)中可以得到等价公式:
3、指针的提取
分离出指针和刻度线图像之后,感兴趣区域图像如图所示,需要进一步进行指 针和刻度线的提取,由指针和刻度线在一级搜索区域内的空间关系进行读数计算。
如图所示,下方的图即为投影后的图,Xpointer 为像素点最多的水平位置,即为 指针所在水平位置。尽管不同类型仪表的指针形状各不相同,但是始终不变的是指针所 在的水平位置上,投影得到的像素点一定是最多的,所以,投影法得到指针所在水平坐 标具有很高的准确性和鲁棒性。
二级搜索域内主刻度线的提取
依据刻度值文本的位置得到主刻度线所在的区域,即二级 搜索区域。具体方法如下:由刻度值文本定位框的顶点可得到该刻度值文本的最小外接 矩形区域,然后在上方做一个与该矩形区域相同大小的区域,如图所示,得到二 级搜索区域 RoI2。
将二级搜索区域图像中每列的白色像素点投影在 x 轴上,找 到累加像素点个数最多的那一列,作为主刻度线所在的水平位置。二级搜索区域内的投 影如图所示。
投影之后,将累加像素点个数最多的水平位置作为刻度线所在的水平位置,这个水 平坐标是刻度线在主刻度线搜索区域 RoI2 上的水平位置,刻度线在一级搜索区域 RoI1 上的水平位置 XscaleInRoI1 可由下式得到:
仪表的读数
常用的计算指针式仪表读数的方法有角度法和距离法两种。角度法是先计算仪表最 大量程直线和仪表最小量程直线之间的角度 θmax,然后再计算指针直线和最小量程直线 之间的角度 θpointer,最后根据这两个角度和仪表的最大量程 M 计算出仪表的读数,读数 计算如下式:
在 RoI1 区域中,已经得到指针直线所在水平坐标 Xpointer、指针左边距离指针最近的 主刻度线的水平坐标 Xl-scale 和指针右边距离指针最近的主刻度线的水平坐标 Xr-scale,如 图所示。
在两条主刻度线之间利用距离法进行仪表的读数。仪表的读数可以由 下式计算到:
实现效果图样例
指针式仪表读数识别系统:
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!
最后
如果觉得《毕业设计-基于深度学习的指针式仪表读数识别系统》对你有帮助,请点赞、收藏,并留下你的观点哦!