1.本发明主要涉及电力巡检智能机器人技术领域,具体涉及一种基于仿射变换实现多表计读数的方法和系统。
背景技术:2.目前随着我国经济高速发展,电力规模不断扩大,使得电力系统人工巡检压力不断提升。变电站的日常巡检工作需要工作人员采集大量的运行数据,并做大量的设备巡视检查工作。同时变电站高电压运行的要求,使得站区面积增大,设备运行环境复杂,导致变电站现场巡视工作面临很大的挑战。为了解决人工巡检困难问题,电力巡检智能机器人应运而生。而电力巡检智能机器人在巡检过程中的巡检效率低下问题,会导致机器人高负荷运行,引发电池和其他结构件使用寿命大大降低,从而加快了巡检智能机器人的维护周期和提高了维护成本。如何提升巡检效率,成了目前电力机器人发展过程中普遍面临的首要问题。
3.电力巡检智能机器人在进行多表识别前,会先给所有巡检点处的表计做一个初始位置标定,此处的标定内容为表计id和对应的表计坐标集合记作ci。由于机器人的导航定位误差、运动误差、摄像头的角度误差等因素不可避免的会导致在每轮次巡检过程中采集图像中的各表计位置(巡检采集的表计坐标集记为c
t
)都会不一样,当然也就会和初始标定位置ci不一致。利用深度学习的图像处理方法(主要为深度学习但不限于深度学习方法)得到各表计的读数,但由于ci和c
t
位置的错乱,导致不能将ci位置上识别的结果返回到对应的表计id上。上述问题用图1表示则为:例如通过现有位置信息无法将标注图像上的表w1和巡检图上的36.0读数结果对应上。
4.现有专利申请cn201910662329.7,该专利主要针对于多个仪表呈规则的行列排布,具有较大的应用局限,且当多表计较为密集的情况下需要划分多个区域来进行多次识别,效率降低,这种划分区域的方式很容易因为机器人的运动或者拍摄误差导致区域重叠,从而使得识别精度下降。
技术实现要素:5.本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种识别效率高且识别精度高的基于仿射变换实现多表计读数的方法和系统。
6.为解决上述技术问题,本发明提出的技术方案为:
7.一种基于仿射变换实现多表计读数的方法,包括步骤:
8.1)预先获取初始标定图像,配置好表计位置坐标ci和对应的表计id;其中位置信息包括各个表计之间的相对位置关系;
9.2)获取各个表计的巡检图像,得到各表计读数结果和各表计在巡检图像中的位置坐标信息;
10.3)如果巡检图像中只有一个表计,则直接将该表计结果绑定到对应的表计id,直
接返回结果;如果巡检图像中含有多个表计,则继续执行下一步骤;
11.4)在巡检图像中找到一组特征点(xc,yc),并同时在在初始标定图像中也找出另一组特征点(xc′
,yc′
),并根据两组特征点计算出平移矩阵m
t
、缩放矩阵ms和旋转矩阵mr,将巡检图像上的所有表计位置坐标c
t
进行平移、缩放和旋转变换,得到c
′i;
12.5)分别计算初始标定图像中表计坐标ci与变换后的结果坐标c
′i中各表计间的欧式距离,取欧式距离最小的表计进行组队,将表计id与识别结果进行绑定。
13.优选地,在步骤4)中,所述特征点以图像左上角顶点作为坐标原点,图像的宽度方向为x轴,图像的高度方向为y轴。
14.优选地,在步骤4)中,其中平移矩阵m
t
用于两组特点之间的平移变换,其中t
x
和ty代表在图像x轴和y轴上的偏移量;
[0015][0016]
其中缩放矩阵ms用于两组坐标之间的缩放变换,其中s是指缩放尺度;
[0017][0018]
其中旋转矩阵mr用于两组坐标之间的旋转变换,其中θ代表旋转角度;
[0019][0020]
优选地,在步骤4)中,
[0021][0022]
其中(x
centre
,y
centre
)代表图像的中心点,图像的旋转变换以图像中心作为原点进行计算。
[0023]
优选地,所述特征点取离图像左上角最近和离图像右下角最近表计的左上角点作为一组特征点。
[0024]
优选地,所述特征点取离图像右上角最近和离图像左下角最近表计的左上角点作为一组特征点。
[0025]
本发明还公开了一种基于仿射变换实现多表计读数的系统,包括:
[0026]
第一程序模块,用于预先获取初始标定图像,配置好表计位置坐标ci和对应的表计id;其中位置信息包括各个表计之间的相对位置关系;
[0027]
第二程序模块,用于获取各个表计的巡检图像,得到各表计读数结果和各表计在巡检图像中的位置坐标信息;
[0028]
第三程序模块,用于如果巡检图像中只有一个表计,则直接将该表计结果绑定到对应的表计id,直接返回结果;如果巡检图像中含有多个表计,则继续执行下一步骤;
[0029]
第四程序模块,用于在巡检图像中找到一组特征点(xc,yc),并同时在在初始标定图像中也找出另一组特征点(xc′
,yc′
),并根据两组特征点计算出平移矩阵m
t
、缩放矩阵ms和旋转矩阵mr,将巡检图像上的所有表计位置坐标c
t
进行平移、缩放和旋转变换,得到c
′i;
[0030]
第五程序模块,用于分别计算初始标定图像中表计坐标ci与变换后的结果坐标c
′i中各表计间的欧式距离,取欧式距离最小的表计进行组队,将表计id与识别结果进行绑定。
[0031]
本发明进一步公开了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器运行时执行如上所述方法的步骤。
[0032]
本发明还公开了一种计算机设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序在被处理器运行时执行如上所述方法的步骤。
[0033]
本发明进一步公开了一种终端,所述终端包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现如上所述方法所执行的操作。
[0034]
与现有技术相比,本发明的优点在于:
[0035]
本发明运用了图像的仿射变换技术,将检测结果中的表计位置通过平移、缩放、旋转等操作还原到到初始配置信息的同一个位置坐标中(其中平移用于消除机器人多次拍摄过程中的拍摄位置偏差,缩放用于消除机器人多次拍摄过程中的焦距偏,旋转用于消除机器人多次拍摄过程中镜头角度偏差),机器人在每次巡检过程中都能准确将拍摄图像的表计位置还原到对应的初始标定位置,从而将表计id和识别结果进行绑定,实现单次巡检任务即可完成对多表的识别读数,效率大大提升。相对于现有针对规则排布的检测方式,本发明可以针对单个或者多个、规则或者无规则排布的密集仪表,都只需要一次识别就可以得到很好的识别效果,识别更加简单可靠、效率更高、拥有更广泛的适用性。
附图说明
[0036]
图1为现有技术中的初始标定图像与巡检图像的示意图。
[0037]
图2为本发明的方法在实施例的流程图。
[0038]
图3为本发明的方法在具体应用时的示意图。
[0039]
图4为本发明中图像1#在实施例的示意图。
[0040]
图5为本发明中各表计在图像1#中的示意图。
[0041]
图6为本发明中的巡检图像2#在实施例的示意图。
[0042]
图7为本发明的巡检图像2#中各表计位置及读数示意图。
[0043]
图8为本发明的巡检图像2#中各表计与图像1#的对应示意图。
具体实施方式
[0044]
以下结合说明书附图和具体实施例对本发明作进一步描述。
[0045]
如图2-3所示,本发明实施例的基于仿射变换实现多表计读数的方法,包括步骤:
[0046]
1)预先获取各个巡检点对应的初始标定图像,配置好表计位置坐标ci和对应的表计id;其中位置信息包括各个表计之间的相对位置关系;
[0047]
2)获取电柜中各个表计(单个表计或多个表计)的巡检图像,通过深度学习算法得到各表计读数结果和各表计在巡检图像中的位置坐标信息;
[0048]
3)如果巡检图像中只有一个表计,则直接将该表计结果绑定到对应的表计id,直接返回结果,不再继续执行;如果巡检图像中含有多个表计,则继续执行下一步骤;
[0049]
4)在巡检图像中找到一组特征点(xc,yc),并同时在在初始标定图像中也找出另一组特征点(xc′
,yc′
),并根据两组特征点计算出平移矩阵m
t
、缩放矩阵ms和旋转矩阵mr,将巡检图像上的所有表计位置坐标c
t
进行平移、缩放和旋转变换,得到c
′i;
[0050]
5)分别计算初始标定图像中表计坐标ci与变换后的结果坐标c
′i中各表计间的欧式距离,取欧式距离最小的表计进行组队,将表计id与识别结果(读数)进行对应绑定。
[0051]
在一具体实施例,步骤4)的具体过程为:
[0052]
以图像左上角顶点作为坐标原点,图像的宽度方向为x轴,图像的高度方向为y轴,在巡检图像中找到两个特征点(xc,yc);其中特征点取离图像左上角最近和离图像右下角最近表计的左上角点作为一组特征点,或者取离图像右上角最近和离图像左下角最近表计的左上角点作为一组特征点;同理,在初始标定图像中也找出一组特征点(xc′
,yc′
);
[0053]
根据两组特征点计算出平移矩阵m
t
,用于两组坐标之间的平移变换,其中t
x
和ty代表在图像x轴和y轴上的偏移量;
[0054][0055]
根据两组特征点计算出缩放矩阵ms,用于两组坐标之间的缩放变换,其中s是指缩放尺度;
[0056][0057]
根据两组特征点计算出旋转矩阵mr,用于两组坐标之间的旋转变换,其中θ代表旋转角度;
[0058][0059]
将巡检图像上的所有表计位置坐标c
t
进行平移、缩放、旋转变换,得到c
′i,其中(x
centre
,y
centre
)代表图像的中心点,图像的旋转变换以图像中心作为原点进行计算;
[0060]c′i=c
t
*m
final
(4)
[0061][0062]
本发明运用了图像的仿射变换技术,将检测结果中的表计位置通过平移、缩放、旋转等操作还原到到初始配置信息的同一个位置坐标中(其中平移用于消除机器人多次拍摄过程中的拍摄位置偏差,缩放用于消除机器人多次拍摄过程中的焦距偏,旋转用于消除机器人多次拍摄过程中镜头角度偏差),机器人在每次巡检过程中都能准确将拍摄图像的表计位置还原到对应的初始标定位置,从而将表计id和识别结果进行绑定,实现单次巡检任务即可完成对多表的识别读数,效率大大提升。相对于现有针对规则排布的检测方式,本发明可以针对单个或者多个、规则或者无规则排布的密集仪表,都只需要一次识别就可以得到很好的识别效果,识别更加简单可靠、效率更高、拥有更广泛的适用性。
[0063]
下面结合一完整的具体实施例来对本发明做进一步的详细说明:
[0064]
1、配电箱的分布结构如下,含有7个表计,各表计排列无序,稀疏分布不均,如图4所示中的图像1#;
[0065]
2、机器人巡检前,对图像1#中配电箱的各表计做初始化位置标定。标定内容为表计id和对应的表计坐标,坐标格式为表计左上角的xy坐标和右下角的xy坐标;其中图像的宽度为1920,高度为1080,得到:
[0066]ci
={“w1”:[15,10,30,22],“w2”:[...],“w3”:[...],“w4”:[...],“w5”:[1590,840,1635,876],“w6”:[...],“w7”:[1620,950,1665,986]};具体如图5所示;
[0067]
3、机器人开始巡检,在对应巡检点处拍摄到配电箱图像2#,如图6所示;
[0068]
4、将图像2#送入到深度学习图像识别算法中,得到以下结果:包含表计的位置坐标和对应的结果读数,如图7所示;
[0069]
5、找到巡检结果中的对角特征点坐标,本实施例以左上角和右下角为例,得到(x
c1
,y
c1
)=(860,360),(x
c2
,y
c2
)=(1730,740);
[0070]
6、将(x
c1
,y
c1
)和ci[“w1”]送入到公式(1),可得
[0071][0072]
7、将(x
c1
,y
c1
)、(x
c2
,y
c2
)和ci[“w1”]、ci[“w7”]送入到公式(2),可得
[0073]
8、以图像的中心点作为旋转中心,默认顺时针旋转,将(x
c1
,y
c1
)、(x
c2
,y
c2
)和ci[“w1”]、ci[“w7”]以及图像中心点(x
centre
,y
centre
)=(960,540)送入到公式(3),可得
旋转角度θ≈15
°
;
[0074]
9、得到最终的仿射变换矩阵9、得到最终的仿射变换矩阵
[0075]
10将识别图像中的所有表计坐标送入到公式(4),得到仿射变换后的修正坐标;
[0076]
11、最后再依据图8中修正图像3#和初始标定图像1#,进行各表计的欧式距离匹配,欧式距离最近的认为是同一个表计。
[0077]
例如,在图像1#中的w5表计,依次与图像3#中的各个表计计算欧式距离,取欧式距离最小的那个表计(w5
′
)作为绑定对象,最后即可将w5表计的id编号与w5
′
对应的识别结果进行绑定,达到最终多表计识别的目的。
[0078]
本发明实施例还公开了一种基于仿射变换实现多表计读数的系统,包括:
[0079]
第一程序模块,用于预先获取初始标定图像,配置好表计位置坐标ci和对应的表计id;其中位置信息包括各个表计之间的相对位置关系;
[0080]
第二程序模块,用于获取各个表计的巡检图像,得到各表计读数结果和各表计在巡检图像中的位置坐标信息;
[0081]
第三程序模块,用于如果巡检图像中只有一个表计,则直接将该表计结果绑定到对应的表计id,直接返回结果;如果巡检图像中含有多个表计,则继续执行下一步骤;
[0082]
第四程序模块,用于在巡检图像中找到一组特征点(xc,yc),并同时在在初始标定图像中也找出另一组特征点(xc′
,yc′
),并根据两组特征点计算出平移矩阵m
t
、缩放矩阵ms和旋转矩阵mr,将巡检图像上的所有表计位置坐标c
t
进行平移、缩放和旋转变换,得到c
′i;
[0083]
第五程序模块,用于分别计算初始标定图像中表计坐标ci与变换后的结果坐标c
′i中各表计间的欧式距离,取欧式距离最小的表计进行组队,将表计id与识别结果进行绑定。
[0084]
本发明实施例的系统用于执行如上所述的方法,同样具有如上方法所述的优点。
[0085]
本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时执行如上所述方法的步骤。本发明实施例进一步公开了一种计算机设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序在被处理器运行时执行如上所述方法的步骤。本发明实施例还公开了一种终端,所述终端包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现如上所述方法所执行的操作。
[0086]
本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计
算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现各种功能。存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其它易失性固态存储器件等。
[0087]
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。