CN117152727A - 一种用于巡检机器人的指针式仪表自动读数方法 - Google Patents
一种用于巡检机器人的指针式仪表自动读数方法 Download PDFInfo
- Publication number
- CN117152727A CN117152727A CN202311004944.1A CN202311004944A CN117152727A CN 117152727 A CN117152727 A CN 117152727A CN 202311004944 A CN202311004944 A CN 202311004944A CN 117152727 A CN117152727 A CN 117152727A
- Authority
- CN
- China
- Prior art keywords
- pointer
- instrument
- image
- meter
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000007689 inspection Methods 0.000 title claims abstract description 20
- 238000001514 detection method Methods 0.000 claims abstract description 37
- 238000013135 deep learning Methods 0.000 claims abstract description 11
- 238000001914 filtration Methods 0.000 claims abstract description 10
- 238000000605 extraction Methods 0.000 claims abstract description 9
- 230000004927 fusion Effects 0.000 claims abstract description 8
- 230000007246 mechanism Effects 0.000 claims abstract description 5
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000012549 training Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 3
- 230000003321 amplification Effects 0.000 claims description 3
- 230000007787 long-term memory Effects 0.000 claims description 3
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 3
- 238000007500 overflow downdraw method Methods 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims description 2
- 238000009499 grossing Methods 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 238000011176 pooling Methods 0.000 claims 1
- 238000002474 experimental method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000013178 mathematical model Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 239000000126 substance Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000005286 illumination Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/766—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using regression, e.g. by projecting features on hyperplanes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/806—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/1444—Selective acquisition, locating or processing of specific regions, e.g. highlighted text, fiducial marks or predetermined fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19173—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/02—Recognising information on displays, dials, clocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Abstract
本发明公开了一种用于巡检机器人的指针式仪表自动读数方法,可以代替人工巡检抄表,大大提高了效率和安全性。本发明具体步骤包括:第一,结合注意力机制和自适应特征融合模块,设计仪表检测网络,从机器人的视角准确定位指针表,并裁剪出适合自动读表的指针表图像。第二,提出一个有向指针检测网络,该网络能在表盘上定位指针,并精确拟合指针的尖端位置。第三,设计一个基于深度学习的表盘文字信息提取网络,通过文本检测和过滤算法获得指针表的刻度和单位信息。最后,提出极坐标像素法,定位主刻度线,并设计了局部角度法来计算指针式仪表的读数。充分的实验证明了本发明在实际工厂巡检任务中的高准确性和稳健性,平均读数全局误差只有0.73%。
Description
技术领域
本发明属于计算机视觉领域,是一种基于深度学习的指针式仪表自动读数方法,是一种可搭载在巡检机器人上代替人工抄表的完整解决方案。本方法将实际工业场景下巡检视频流作为输入,输出巡检视频中所包含指针式仪表的示数。
背景技术
指针式仪表是现代工业场景中对生产制造过程进行监控的重要工具,它抗电磁干扰能力强、机械稳定性好,且能适应高温高压等恶劣的生产环境,被广泛应用于石油、化工和电力等行业的生产现场。但是,大部分指针仪表不提供数据输出接口,仍然需要人工前往危险的工程现场进行数据记录。这种方法费时费力,效率低下,当设备运转异常时不能够及时发现,极易发生安全事故。随着我国工业硬件和软件的进步,巡检机器人领域快速发展,机器人逐渐被用于代替人工完成重复且复杂的任务。在电力、化工等工厂中,许多仪表的安装位置较为危险,抄表人员的安全性和工作效率无法获得保障。巡检机器人具有智能、防爆等优点,机器人采集仪表图像后再进行读数自动识别,成为了抄表的有效方法。所以,利用巡检机器人进行指针式仪表的自动化读取,对于工厂提升生产效率和安全性具有重要意义。
但是,工业场景中的仪表经常会存在表盘模糊、污渍等干扰,再加上机器人采集图片时的角度、距离、光照等影响,对巡检机器人上搭载的自动读表算法提出了更高的精度与稳定性要求。随着计算机视觉技术的发展,利用计算机视觉对仪表进行自动读数逐渐成为一种新的趋势。目前,已有许多学者利用传统图像处理与机器视觉方法进行自动抄表,取得了不错的效果。但是传统的图像处理方法(如模板匹配,直线检测等)极易受到表盘上其他干扰因素的影响,在低光照、抖动、反光等恶劣的工业场景下表现不稳定,表盘识别与读数的精度不够高,不具有通用性。虽然许多学者将深度学习的方法加入到了仪表自动读数中,但是目前方法大多集中于提高表盘读数过程中某个步骤的表现(如表盘定位,指针检测等)。由于不同场景对于读数算法的要求不同,目前仍然缺乏完整的、可用于巡检机器人的指针式仪表自动读数解决方案。
因此,本发明研究一种精度更高的、稳定性更强,且能用于巡检机器人的指针式仪表自动读数方法,具有重要的实际意义。
发明内容
本发明提出了一个完整的指针式自动读表的解决方案,可以被安装在机器人上执行抄表任务;结合深度学习和计算机视觉的优势,该方法分为五个阶段,包括三个基于深度学习的目标检测模型和两个基于计算机视觉的数学模型,分别是仪表检测定位、指针识别和提取、仪表文本信息提取、主刻度线定位与示数计算。我们根据仪表、指针和文本信息的不同特点,设计了不同的深度网络结构进行定位和分类。最后,我们根据极坐标像素法和局部角度法建立了两个用于定位主刻度线和角度计算的数学模型,得出最终读数。充分的实验证明了本方法在机器人工作条件下具有很高的精度和鲁棒性。
为实现上述功能,本发明包括以下步骤:
步骤一:设计并训练仪表检测网络Yolo_Meter。将机器人拍摄图片转换为仪表图像。机器人巡检过程中,仪表检测算法持续运行。每隔5秒钟,机器人从视频中拍摄图像,并将其发送到仪表检测网络。仪表检测算法检测到图像中有仪表存在,摄像头根据仪表的位置自动放大、聚焦,并裁剪出适合后续读数的仪表图像。
使用CSPDarknet作为基础网络结构,并使用SPPF模块对不同尺度的特征进行池化,并将其与特征金字塔网络融合。在骨干网络的每个C3模块中加入SimAM注意力机制。采用ASFF自适应特征融合方法取代Yolov5颈部的Concat和Element-wise操作,具体操作包括相同的重新缩放和自适应融合,自动学习三个特征尺度的自适应融合的权重参数。
步骤二:将步骤一中裁剪出的仪表图像的基础上设计并训练指针检测网络,获取指针在仪表图像上的相对位置。根据指针设计一个有向指针检测网络OPDNet,得到的识别框贴近指针。将步骤一中裁剪后的仪表图像作为输入,经过一个由49个卷积层和一个全连接层组成的ResNet50残差网络后输出。使用特征金字塔网络FPN将ResNet50中不同尺度的特征图融合。在区域提议网络RPN的提议中加入了表示检测框偏移的两个参数Δα,Δβ,这两个参数代表着提议框在水平和竖直两个方向的偏移量,并得到带有旋转角度的提议框。将定向RPN作为锚框,然后用Softmax来判断锚框中是否有目标,以获得确切的带旋转角度的候选框。随后,将候选框转换成特征图F',并将参数解码为(x,y,w,h,θ),特征图在通过两个全连接层后进行分类和回归的训练。训练后的OPDNet准确地从表盘图像中识别出指针和仪表旋转中心,并获得指针识别框的坐标(xp,yp,wp,hp,θp)和仪表中心识别框的坐标(xc,yc,wc,hc,θc)。其中,x,y代表框的中心点的横纵坐标,w,h代表分别代表框的宽度和高度,θ代表候选框基于水平的旋转角度。
步骤三:在步骤二得到指针识别框的基础上拟合指针尖端在仪表图像的位置。使用仪表旋转中心和指针检测框的位置坐标来计算指针所在的象限。然后,通过数学角度转换得到指针尖端的坐标。以旋转中心为原点,整个图像被分为左右两部分。当指针的中心位于右侧时,指针尖端的坐标计算为:
相同的,当指针的中心位于仪表中心的左侧时:
拟合指针尖端位置N(xn,yn)为后续判断指针尖端和刻度线的位置关系做好准备工作。
步骤四:在步骤一裁剪出的仪表图像中进行仪表文本信息提取,提出OCR_Meter,基于深度学习的仪表文本信息识别和过滤方法,获得单位、刻度和刻度线坐标的具体数值。将仪表文本信息提取任务分为两部分,文本定位和文本识别。设计一个深度神经网络OCR_Meter,用来识别仪表表盘上的主刻度值和单位。首先,通过MobileNetV3提取仪表的图像特征。然后,不同尺度的特征被一个特征金字塔网络所融合。使用激活函数f(x)对特征进行二值化映射,即将图像划分为背景区域和文字区域,从而完成文字的定位。其中u表示放大系数,设为50。
接下来,包含文本的小方框被输入到ResNet31中,以进一步提取文本的细节特征。编码和解码由两层LSTM长短期记忆网络完成,特征图通过Softmax得到文本分类结果,完成文本识别。最后,根据字符对识别结果设置一个过滤算法。过滤算法提取主刻度值和单位这两个必要的信息用于后续的计算。
步骤五:继续判断指针尖和刻度线之间的位置关系来获取仪表的具体示数,利用指针尖和主刻度线之间的位置差距来计算读数。定义主刻度线为靠近主刻度值的最粗和最长的刻度线。使用极坐标像素法来定位主刻度线。由于主刻度线的排列类似于圆弧,使用步骤二识别出的指针旋转中心C(xc,yc)作为转换原点,将图像从直角坐标系转换为极坐标系。然后,所有刻度线几乎都有序地排列在同一条直线上。设原始图像中每个像素点的位置是(xi,yj),那么极坐标转换后的直角坐标系中像素的坐标为(ρ(i,j),θ(i,j)),其中:
原仪表图像的坐标系被转化为极坐标系。
步骤六:以步骤五中每个主刻度值的位置为基准,用高斯滤波器将图像在一定区域内向右作平滑处理。处理后判定每个黑色像素最密集的区域为主刻度线,并记录坐标。将图像转换回直角坐标系,将主刻度线的坐标记录为(xk,yk)。
步骤七:通过步骤二得到的旋转中心C(xc,yc),步骤三得到的指针尖端N(xp,yp),步骤六得到的各主刻度线位置(xk,yk)计算仪表的最终读数。首先,用中心点C和两条主刻度线之间形成的角度来计算任何两个主刻度的间距也就是每度代表多少范围。
点A和点B是其中两个主刻度线定位的结果。根据A、B两点计算出A和B之间的刻度值之差。根据余弦定理:
其中,Xk代表与第k条主刻度线的定位结果相对应的比例值。将所有主刻度线的定位结果和其对应的主刻度值都参与计算,无论两两之间是否相邻。通过n次计算取平均值,得到更准确的范围间距d。即使OCR_Meter受到干扰而发生漏检,相邻的主刻度值和主刻度线也会参与计算,保证了本方法的鲁棒性。
步骤八:同样的,根据公式(8),算出指针尖端、相邻刻度线和仪表中心之间形成的角度。确定指针尖端和主刻度线之间的位置关系。最终读数Y计算公式为:
Y=d·∠ACN+Xk (10)。
与现有技术相比,本发明结合了深度学习与计算机视觉的优点,提出一整套用于巡检机器人的指针式仪表自动读数解决方案,大大提升了工厂中抄表的效率。其中,本发明利用SimAM和ASFF模块,大大提高了本发明在恶劣环境下的检测率。本发明还使用基于深度学习的有向目标检测准确的定位指针,并拟合出针尖位置,这对于后续的精准读数具有重要意义。除此之外,本专利还利用了基于深度学习的文本定位和文本识别,可以直接提取表盘文字信息,大大增强了本专利方法对于多种类型表盘的通用性和鲁棒性。本专利使用的三个基于深度学习的模型,经过大量数据的训练,基本可以实现工厂巡检全场景覆盖,在昏暗、反光、倾斜等各种干扰因素下稳定提取表盘、指针和表盘文字信息。而读表的本质是判断指针和刻度线之间的位置关系,要求精准度高。本专利提出极坐标像素法与局部角度法能够从像素级别将主刻度线定位,并通过角度计算得到指针尖端所对应的仪表示数,得到的读数误差非常小。总体来说,本发明不仅提出一种高精度的指针式仪表自动读数方法,还针对机器人巡检的特点对方法进行了优化和加强,使得工业巡检抄表变的更安全、更高效。
附图说明
图1是本发明步骤总览图。
图2是本算法在实际场景中工作的流程图。
图3是仪表检测算法的网络结构图。
图4是指针检测网络结构图。
图5是表盘文本检测深度网络结构图。
图6是主刻度线定位方法示意图。
图7是示数计算模型示意图。
图8-10是各步骤算法结果示意图。
具体实施方式
以下结合附图和实施例对本发明进行详细说明。
本发明提出了一个完整的指针式自动读表的解决方案,可以被安装在机器人上执行抄表任务,流程如图1所示。具体来说,结合深度学习和计算机视觉的优势,该方法分为五个阶段,包括三个基于深度学习的目标检测模型和两个基于计算机视觉的数学模型,分别是仪表检测定位、指针识别和提取、仪表文本信息提取、主刻度线定位与示数计算。我们根据仪表、指针和文本信息的不同特点,设计了不同的深度网络结构进行定位和分类。最后,我们根据极坐标像素法和局部角度法建立了两个用于定位主刻度线和角度计算的数学模型,得出最终读数。充分的实验证明了本方法在机器人工作条件下具有很高的精度和鲁棒性。图2为本专利算法在实际场景中工作的流程图。
为实现上述功能,本发明包括以下步骤:
步骤一:设计并训练仪表检测网络Yolo_Meter。此步骤可将机器人拍摄图片转换为仪表图像。在机器人巡检过程中,仪表检测算法持续运行。每隔5秒钟,机器人就会从视频中拍摄图像,并将其发送到仪表检测网络。一旦算法检测到图像中有仪表存在,摄像头就会根据仪表的位置自动放大、聚焦,并裁剪出适合后续读数的仪表图像。
在真实的工业场景中,Yolov5算法识别各种样式、大小不相同仪表的能力仍有待加强。本发明对Yolov5算法进行了改进。网络结构如图3所示。我们仍使用CSPDarknet作为基础网络结构,并使用SPPF模块对不同尺度的特征进行池化,并将其与特征金字塔网络融合。本发明则在骨干网络的每个C3模块中加入了SimAM注意力机制。作为一个计算单元,SimAM是一个三维注意力机制,它通过计算能量函数的解析解来给神经元分配权重,使网络更加关注重要的位置。它增强了卷积神经网络中特征的表达能力,帮助网络在杂乱的背景中找到仪表的特征。在充分提取特征之后,网络需要将特征进行进一步融合。此外,由于仪表在图像中占据的比例不同,导致不同尺度的特征之间可能会产生冲突,给网络的特征融合带来了挑战。本发明采用ASFF自适应特征融合方法取代了原来Yolov5颈部的Concat和Element-wise操作,具体操作包括相同的重新缩放和自适应融合,可以自动学习三个特征尺度的自适应融合的权重参数,提高了Yolo_Meter在工业环境中识别小尺寸仪表的效果。
步骤二:将步骤一中裁剪出的仪表图像的基础上设计并训练指针检测网络,获取指针在仪表图像上的相对位置。在本专利中,我们根据指针又细又长的特点设计了一个有向指针检测网络(OPDNet),得到的识别框可以非常贴近指针。此外,指针式仪表的旋转中心也是读数的关键信息之一,我们也通过这个网络来识别和定位。图4为OPDNet的网络结构示意图。我们将步骤一中裁剪后的仪表图像作为输入,经过一个由49个卷积层和一个全连接层组成的ResNet50残差网络后输出。这样的一个残差网络以较少的参数和较快的速度很好地提取了指针特征。然后,我们使用特征金字塔网络(FPN)将ResNet50中不同尺度的特征图融合起来,这大大提高了指针特征表达的显著性。接下来,我们在区域提议网络(RPN)的提议中加入了表示检测框偏移的两个参数Δα,Δβ,这两个参数代表着提议框在水平、和竖直两个方向的偏移量,并得到了带有旋转角度的提议框。接下来,将定向RPN作为锚框,然后用Softmax来判断锚框中是否有目标,以获得确切的带旋转角度的候选框。随后,将候选框转换成特征图F',并将参数解码为(x,y,w,h,θ),特征图在通过两个全连接层后进行分类和回归的训练。训练后的OPDNet可以准确地从表盘图像中识别出指针和仪表旋转中心,并获得指针识别框的坐标(xp,yp,wp,gp,θp)和仪表中心识别框的坐标(xc,yc,wc,hc,θc)。其中,x,y代表框的中心点的横纵坐标,w,h代表分别代表框的宽度和高度,θ代表候选框基于水平的旋转角度。
步骤三:在步骤二得到指针识别框的基础上拟合指针尖端在仪表图像的位置。我们使用仪表旋转中心和指针检测框的位置坐标来计算指针所在的象限。然后,我们通过数学角度转换得到指针尖端的坐标。以旋转中心为原点,整个图像被分为左右两部分。当指针的中心位于右侧时,指针尖端的坐标可以计算为:
相同的,当指针的中心位于仪表中心的左侧时:
拟合指针尖端位置N(xn,yn)为后续判断指针尖端和刻度线的位置关系做好了必要的准备工作。
步骤四:在步骤一裁剪出的仪表图像中进行仪表文本信息提取,此步骤与步骤二、三没有交集,不分先后。准确提取仪表文本信息对于准确读数至关重要。在不同的工业场景中,仪表的种类、刻度和单位都不同。许多使用模板匹配的方法已经不再适用。因此,我们提出OCR_Meter,一种基于深度学习的仪表文本信息识别和过滤方法,可以获得单位、刻度和刻度线坐标的具体数值。该网络的结构如图5所示:本发明将仪表文本信息提取任务分为两部分,文本定位和文本识别。我们设计了一个深度神经网络OCR_Meter,可以用来识别仪表表盘上的主刻度值和单位。首先,通过MobileNetV3提取仪表的图像特征。然后,不同尺度的特征被一个特征金字塔网络所融合。接下来,我们使用激活函数f(x)对特征进行二值化映射,即将图像划分为背景区域和文字区域,从而完成文字的定位。其中u表示放大系数,设为50。
接下来,包含文本的小方框被输入到ResNet31中,以进一步提取文本的细节特征。编码和解码由两层LSTM长短期记忆网络完成,特征图通过Softmax得到文本分类结果,完成文本识别。最后,我们根据字符对识别结果设置了一个过滤算法。过滤算法只提取主刻度值和单位这两个必要的信息用于后续的计算。
步骤五:在以上步骤的基础上,我们可以继续判断指针尖和刻度线之间的位置关系来获取仪表的具体示数。由于精准定位所有刻度线十分困难,我们利用指针尖和主刻度线之间的位置差距来计算读数。在本专利中,我们定义主刻度线为靠近主刻度值的最粗和最长的刻度线。我们使用极坐标像素法来定位主刻度线。由于主刻度线的排列类似于圆弧,我们使用步骤二识别出的指针旋转中心C(xc,yc)作为转换原点,将图像从直角坐标系转换为极坐标系。然后,所有刻度线几乎都有序地排列在同一条直线上。设原始图像中每个像素点的位置是(xi,yj),那么极坐标转换后的直角坐标系中像素的坐标为(ρ(i,j),θ(i,j)),其中:
这样,原仪表图像的坐标系被转化为极坐标系。如图6所示。
步骤六:以步骤五中每个主刻度值的位置为基准(白色圆圈),用高斯滤波器将图像在一定区域内向右作平滑处理。处理后,我们判定每个黑色像素最密集的区域为主刻度线,并记录坐标。我们用圆圈标记它们。随后,我们将图像转换回直角坐标系,将主刻度线的坐标记录为(xk,yk)。
步骤七:通过步骤二得到的旋转中心C(xc,yc),步骤三得到的指针尖端N(xp,yp),步骤六得到的各主刻度线位置(xk,yk)计算仪表的最终读数。首先,我们用中心点C和两条主刻度线之间形成的角度来计算任何两个主刻度的间距也就是每度代表多少范围。
如图7所示,点A和点B是其中两个主刻度线定位的结果。我们根据A、B两点计算出A和B之间的刻度值之差。根据余弦定理:
其中,Xk代表与第k条主刻度线的定位结果相对应的比例值。同样,我们将所有主刻度线的定位结果和其对应的主刻度值都参与计算,无论两两之间是否相邻。通过n次计算取平均值,可以得到更准确的范围间距d。即使OCR_Meter受到干扰而发生漏检,相邻的主刻度值和主刻度线也会参与计算,保证了本方法的鲁棒性。步骤八:同样的,根据公式(8),可算出指针尖端、相邻刻度线和仪表中心之间形成的角度。在此基础上,可以确定指针尖端和主刻度线之间的位置关系。最终读数Y计算公式为:
Y=d·∠ACN+Xk (10)
实施例
数据集的准备。我们在燃气站、化工厂等工业场景中,给机器人配备了摄像头与存储设备,在机器人巡检的过程中收集视频。
对采集的视频进行处理,裁剪出5000张包含不同背景的仪表图像,通过对表盘、指针、表盘文字等进行标注,形成仪表数据集,其中80%用于训练,20%用于测试。数据集中的图像包括各种环境条件,如室内和室外、高光和低光、模糊和部分遮挡。
配置仪表识别训练程序,训练仪表识别神经网络,本网络可在复杂的工业背景中准确获取仪表位置,并引导机器人相机持续对仪表进行聚焦与放大,形成更为清晰的仪表图像,结果如图8。
配置指针训练与提取方法,训练指针提取神经网络。经过约100次训练,选择并保存合适的权重文件。该方法在训练后能够识别绝大部分表盘上的指针,并得到指针尖端位置,结果如图9。
配置文本识别的训练程序,经过约100次训练,选择并保存合适的权重文件。经过训练后的网络可以识别并过滤表盘上的关键信息,结果如图10。
配置主刻度线定位程序,利用前述步骤的各类有效信息进行读数计算。
将验证集中的图像输入程序,完成读数测试。
将算法搭载在巡检机器人上进行工厂实际验收测试,完成各类抄表任务。部分结果如下表:
其中,Ym为人工抄表结果,Y为本专利方法读数值,Unit为本方法识别出仪表的单位,Xmax-Xmin为该仪表的最大量程,Er为本专利方法的相对误差,Eg为本专利方法的全局误差。
可以看出,本方法能在工厂中各类表盘上取得良好的效果,平均相对误差和全局误差只有1.86%和0.73%,能够胜任工厂中的巡检抄表任务。
Claims (1)
1.一种用于巡检机器人的指针式仪表自动读数方法,其特征在于,该方法包括如下步骤,
步骤一:设计并训练仪表检测网络Yolo_Meter;将机器人拍摄图片转换为仪表图像;机器人巡检过程中,仪表检测算法持续运行;每隔5秒钟,机器人从视频中拍摄图像,并将其发送到仪表检测网络;仪表检测算法检测到图像中有仪表存在,摄像头根据仪表的位置自动放大、聚焦,并裁剪出适合后续读数的仪表图像;
使用CSPDarknet作为基础网络结构,并使用SPPF模块对不同尺度的特征进行池化,并将其与特征金字塔网络融合;在骨干网络的每个C3模块中加入SimAM注意力机制;采用ASFF自适应特征融合方法取代Yolov5颈部的Concat和Element-wise操作,具体操作包括相同的重新缩放和自适应融合,自动学习三个特征尺度的自适应融合的权重参数;
步骤二:将步骤一中裁剪出的仪表图像的基础上设计并训练指针检测网络,获取指针在仪表图像上的相对位置;根据指针设计一个有向指针检测网络OPDNet,得到的识别框贴近指针;将步骤一中裁剪后的仪表图像作为输入,经过一个由49个卷积层和一个全连接层组成的ResNet50残差网络后输出;使用特征金字塔网络FPN将ResNet50中不同尺度的特征图融合;在区域提议网络RPN的提议中加入了表示检测框偏移的两个参数Δα,Δβ,代表着提议框在水平和竖直两个方向的偏移量,并得到带有旋转角度的提议框;将定向RPN作为锚框,然后用Softmax来判断锚框中是否有目标,以获得确切的带旋转角度的候选框;随后,将候选框转换成特征图F′,并将参数解码为(x,y,w,h,θ),特征图在通过两个全连接层后进行分类和回归的训练;训练后的OPDNet准确地从表盘图像中识别出指针和仪表旋转中心,并获得指针识别框的坐标(xp,yp,wp,hp,θp)和仪表中心识别框的坐标(xc,yc,wc,hc,θc);其中,x,y代表框的中心点的横纵坐标,w,h代表分别代表框的宽度和高度,θ代表候选框基于水平的旋转角度;
步骤三:在步骤二得到指针识别框的基础上拟合指针尖端在仪表图像的位置;使用仪表旋转中心和指针检测框的位置坐标来计算指针所在的象限;然后,通过数学角度转换得到指针尖端的坐标;以旋转中心为原点,整个图像被分为左右两部分;当指针的中心位于右侧时,指针尖端的坐标计算为:
相同的,当指针的中心位于仪表中心的左侧时:
拟合指针尖端位置N(xn,yn)为后续判断指针尖端和刻度线的位置关系做好准备工作;
步骤四:在步骤一裁剪出的仪表图像中进行仪表文本信息提取,提出OCR_Meter,基于深度学习的仪表文本信息识别和过滤方法,获得单位、刻度和刻度线坐标的具体数值;将仪表文本信息提取任务分为两部分,文本定位和文本识别;设计一个深度神经网络OCR_Meter,用来识别仪表表盘上的主刻度值和单位;首先,通过MobileNetV3提取仪表的图像特征;然后,不同尺度的特征被一个特征金字塔网络所融合;使用激活函数f(x)对特征进行二值化映射,即将图像划分为背景区域和文字区域,从而完成文字的定位;其中u表示放大系数,设为50;
接下来,包含文本的小方框被输入到ResNet31中,以进一步提取文本的细节特征;编码和解码由两层LSTM长短期记忆网络完成,特征图通过Softmax得到文本分类结果,完成文本识别;最后,根据字符对识别结果设置一个过滤算法;过滤算法提取主刻度值和单位这两个必要的信息用于后续的计算;
步骤五:继续判断指针尖和刻度线之间的位置关系来获取仪表的具体示数,利用指针尖和主刻度线之间的位置差距来计算读数;定义主刻度线为靠近主刻度值的最粗和最长的刻度线;使用极坐标像素法来定位主刻度线;由于主刻度线的排列类似于圆弧,使用步骤二识别出的指针旋转中心C(xc,yc)作为转换原点,将图像从直角坐标系转换为极坐标系;然后,所有刻度线几乎都有序地排列在同一条直线上;设原始图像中每个像素点的位置是(xi,yj),那么极坐标转换后的直角坐标系中像素的坐标为(ρ(i,j),θ(i,j)),其中:
原仪表图像的坐标系被转化为极坐标系;
步骤六:以步骤五中每个主刻度值的位置为基准,用高斯滤波器将图像在一定区域内向右作平滑处理;处理后判定每个黑色像素最密集的区域为主刻度线,并记录坐标;将图像转换回直角坐标系,将主刻度线的坐标记录为(xk,yk);
步骤七:通过步骤二得到的旋转中心C(xc,yc),步骤三得到的指针尖端N(xp,yp),步骤六得到的各主刻度线位置(xk,yk)计算仪表的最终读数;首先,用中心点C和两条主刻度线之间形成的角度来计算任何两个主刻度的间距也就是每度代表多少范围;
点A和点B是其中两个主刻度线定位的结果;根据A、B两点计算出A和B之间的刻度值之差;根据余弦定理:
其中,Xk代表与第k条主刻度线的定位结果相对应的比例值;将所有主刻度线的定位结果和其对应的主刻度值都参与计算,无论两两之间是否相邻;通过n次计算取平均值,得到范围间距d;即使OCR_Meter受到干扰而发生漏检,相邻的主刻度值和主刻度线也会参与计算;
步骤八:同样的,根据公式(8),算出指针尖端、相邻刻度线和仪表中心之间形成的角度;确定指针尖端和主刻度线之间的位置关系;最终读数Y计算公式为:
Y=d·∠ACN+Xk (10)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311004944.1A CN117152727A (zh) | 2023-08-10 | 2023-08-10 | 一种用于巡检机器人的指针式仪表自动读数方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311004944.1A CN117152727A (zh) | 2023-08-10 | 2023-08-10 | 一种用于巡检机器人的指针式仪表自动读数方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117152727A true CN117152727A (zh) | 2023-12-01 |
Family
ID=88897888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311004944.1A Pending CN117152727A (zh) | 2023-08-10 | 2023-08-10 | 一种用于巡检机器人的指针式仪表自动读数方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117152727A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117372937A (zh) * | 2023-12-07 | 2024-01-09 | 江西理工大学南昌校区 | 一种基于指针仪表的数据读取方法 |
-
2023
- 2023-08-10 CN CN202311004944.1A patent/CN117152727A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117372937A (zh) * | 2023-12-07 | 2024-01-09 | 江西理工大学南昌校区 | 一种基于指针仪表的数据读取方法 |
CN117372937B (zh) * | 2023-12-07 | 2024-03-29 | 江西理工大学南昌校区 | 一种基于指针仪表的数据读取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110543878B (zh) | 一种基于神经网络的指针仪表读数识别方法 | |
CN110659636B (zh) | 基于深度学习的指针式仪表读数识别方法 | |
CN110580480B (zh) | 基于图像处理的表计读数识别方法 | |
CN112906694B (zh) | 变电站倾斜式指针式仪表图像的读数矫正系统及方法 | |
US11900634B2 (en) | Method for adaptively detecting chessboard sub-pixel level corner points | |
CN109583324A (zh) | 一种基于单点多盒检测器的指针仪表读数自动识别方法 | |
CN106935683B (zh) | 一种太阳能电池片高速视觉定位及矫正系统及其方法 | |
CN108007388A (zh) | 一种基于机器视觉的转盘角度高精度在线测量方法 | |
CN112257676A (zh) | 一种指针式仪表读数方法、系统以及巡检机器人 | |
CN111598942A (zh) | 一种用于对电力设施仪表进行自动定位的方法及系统 | |
CN111368906A (zh) | 一种基于深度学习的指针式油位计读数识别方法 | |
CN113469178B (zh) | 一种基于深度学习的电力表计识别方法 | |
CN117152727A (zh) | 一种用于巡检机器人的指针式仪表自动读数方法 | |
CN116844147A (zh) | 一种基于深度学习的指针式仪表识别和异常警报方法 | |
CN113705564B (zh) | 一种指针式仪表识别读数方法 | |
CN115861448A (zh) | 基于角点检测及特征点提取的系统标定方法及系统 | |
CN115457556A (zh) | 一种核电厂圆盘指针式仪表读数方法 | |
CN106556606B (zh) | 基于机器视觉的大型机械产品总成件的在线质量控制方法 | |
Wang et al. | Automatic reading system for analog instruments based on computer vision and inspection robot for power plant | |
CN111091534A (zh) | 一种基于目标检测的pcb板缺陷检测与定位方法 | |
CN112183264B (zh) | 一种基于空间关系学习的吊车吊臂下有人逗留的判断方法 | |
CN113627427A (zh) | 一种基于图像检测技术的仪器仪表读数方法及系统 | |
CN116612461A (zh) | 一种基于目标检测的指针式仪表全过程自动读数方法 | |
CN112990190A (zh) | 指针式仪表读数的识别方法、装置 | |
CN113837166B (zh) | 一种基于深度学习的指针式仪表自动读数方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |