一种指针式仪表自动识别方法
技术领域
本发明涉及图像识别技术领域,特别涉及一种指针式仪表自动识别方法。
背景技术
指针式仪表具有结构简单可靠性高等优点,在变电站中广泛应用用于监控电力设备运行状态。对于指针式仪表的自动识别,现有研究包括利用hough变换同时识别指针和刻度,但是利用hough变换进行仪表定位,容易出现定位错误;在进行仪表建模时,现在的很多方法需要对变电站的每张电表进行建模,工作量大,实用性较低。而且,在实际应用过程中,受外界环境和设备条件的影响,采集的同类电表的图像形态各异,每张电表的角度、大小以及曝光程度不可避免的存在差异,目前对于这种存在差异的同类电表在处理时存在识别精度相对较低、算法受环境影响较大的问题。
发明内容
为了解决现有技术中指针式仪表自动识别中存在定位精度和识别精度较低的问题,本发明提出一种指针式仪表自动识别方法。
本发明的技术方案是这样实现的:
一种指针式仪表自动识别方法,包括以下步骤:
步骤一、采集变电站每种仪表的模板图像,获取每张模板图像的刻度分布和指针位置,任一张模板图像以及其上的刻度分布和指针位置保存在一个文件中,每个文件具有不同的命名,记作模型文件;
步骤二、将每张模板图像进行放大、缩小和旋转,得到同一坐标系下的同一种类的多角度多尺度的同源图像,并提取同源图像的特征点计算特征向量进行归一化处理,进行同类仪表的图像建模;
步骤三、输入待检测的仪表图像并提取其中的椭圆和矩形区域,将所提取的区域与不同的模板图像进行匹配并计算区域匹配度,获知匹配度最高的模板图像,预设区域阈值,若最高区域匹配度高于区域阈值则判定为仪表区域,此时具有最高区域匹配度的模板图像认定为待检测仪表对应的模板图像,将仪表图像与对应的模板图像做透视变换使其位于同一坐标系下,实现仪表定位;
步骤四、根据仪表定位结果对待检测的仪表图像进行线段检测,并将检测到的所有线段与步骤三中获取的对应的模型文件中的指针位置、指针长度和指针中心位置进行匹配并计算指针匹配度,预设指针阈值,若指针匹配度高于指针阈值则判定为指针,实现指针定位;
步骤五、根据指针定位结果寻找距离其最近的分别位于其两侧的两个指针刻度,并对比对应的模板图像和模型文件,计算指针读数,输出指针读数实现仪表自动识别。
优选的是,所述步骤一中“获取每张模板图像的刻度分布和指针位置”的具体方式为:在计算机中建立一个建模程序,该建模程序可以按照一定的顺序获得每张模板图像在该建模程序中的中心位置坐标、指针起点坐标、指针终点坐标、每个刻度坐标及刻度值并存储在模型文件中;在该建模程序中输入该张模板图像的表盘刻度的最小值和最大值并存储;获取指针所指位置的最小刻度值、最大刻度值和中间刻度值,用于确定指针所指的范围方向。
优选的是,所述步骤二中“提取同源图像的特征点计算特征向量进行归一化处理,进行同类仪表的图像建模”的具体方式为:提取同源图像中的每幅图像的特征并保存特征点;根据特征提取结果,生成每个特征点的多维特征向量并保存;对所有的多维特征向量进行归一化处理;根据每张模板图像所在的模型文件读取该模板图像的刻度分布和指针位置,实现同类仪表的图像建模。
优选的是,所述步骤三中“提取待检测的仪表图像的椭圆区域”的方式为:对待检测的仪表图像进行预处理以去除噪声的干扰;对预处理后的待检测图像进行边缘检测获取边缘图像;提取边缘图像中的弧线,去除短弧和直弧;根据弧线的凸性进行分类,确定每个弧线所属的象限;寻找包含至少三个不同象限的弧线组合,选取满足凸性、相互位置和相同中心条件的弧线作为候选椭圆;估计椭圆参数,根据估计结果与实际边缘像素的适应性对候选椭圆进行验证,获取最终的椭圆位置。
优选的是,所述步骤三中“提取待检测的仪表图像的矩形区域”的方式为:对预处理后的待检测图像进行边缘检测,获取所有线段集合;预设线段的长度阈值,剔除小于长度阈值的线段,获取优选线段集合,并根据线段长度进行排序;在优选线段集合中对具有共同角点的线段进行聚类,得到同角点线段集合;获取同角点线段集合的角点和边,形成初始的闭合矩形区域;合并剩余的未闭合的矩形区域,获取所有的可能的闭合矩形区域,实现矩形检测。
优选的是,所述步骤三中“将所提取的区域与不同的模板图像进行匹配并计算区域匹配度,预设区域阈值,若区域匹配度高于区域阈值则判定为仪表区域”的具体方式为:遍历所有检测到的椭圆和矩形区域,根据模板图像校正椭圆和矩形区域得到候选仪表区域;提取候选仪表区域的所有特征并计算每个特征点的特征向量,该特征与模板图像的特征为同种特征;将候选仪表区域特征和模板图像特征进行匹配并估算匹配度,匹配度按照从高到低的顺序进行排序,获取模板图像与每个候选仪表区域的单应性变换矩阵;预设匹配度阈值,将匹配度最高且高于匹配度阈值的区域判定为仪表区域,匹配度最高的模板图像认定为待检测仪表对应的模板图像,同时根据相应的单应性变换矩阵对待检测仪表图像进行透视变换,使得待检测仪表图像与模板图像在同一个坐标空间,以此实现仪表定位。
优选的是,所述步骤四实现的方式为:将经过透视变换且与模板图像在同一个坐标空间的待检测仪表图像进行边缘检测,提取线段;根据模板图像所在的模型文件中的刻度分布和指针位置获取待检测仪表图像的中心点坐标,分别计算提取的每条线段的起点和终点与该中心点的距离,获取以中心点为中心、以模板图像的指针长度为搜索距离的搜索区域;剔除超出搜索区域的线段,将搜索区域内的线段按照长度进行排序;从最长线段开始计算其角度,预设角度阈值,若下一线段与当前线段角度差小于角度阈值则合并这两条线段,否则开始继续与下一线段的角度差对比,直至搜索区域内的所有线段都对比完毕获得最终的线段集合,记做候选指针;提取每个候选指针中与模板图像相同的特征,将候选指针特征与模板图像指针特征匹配并估算匹配度,匹配度按照从高到低的顺序进行排序;根据待检测仪表对应的模型文件获取仪表指针数目,若指针数目为1,则选取匹配度最高的候选指针判定为仪表指针;若指针数目大于1,则根据匹配度从高到低的顺序依次获取多个指针位置。
优选的是,所述步骤五中“根据指针定位结果寻找距离其最近的分别位于其两侧的两个指针刻度,并对比对应的模板图像和模型文件,计算指针读数”的具体方式为:根据指针定位结果获取指针坐标,并根据模型文件获取指针位置两侧的两个指针刻度坐标,将两个指针刻度分别与中心点连线,计算两条连接线间的角度thea1,计算较小刻度的连线与指针线段的角度thea2;根据模型文件获取两个指针刻度值value1和value2,其中value1为较小的刻度值,value2为刻度较大的刻度值,则指针的读数为:
value=value1+thea2*(value2-value1)/thea1。
本发明的有益效果为:本发明的指针式仪表自动识别方法,先进行不同种类的图像建模,不同种类的图像模板存储在不同的文件下便于区分;每种类型的图像模板通过同一坐标系下的多角度多尺度的同类仪表变换,既有助于提高算法的适应性和稳定性,又能有效的解决只需要进行一个类别的图像建模,便可实现多角度多尺度的同类仪表自动识别问题,提高了运算效率和识别精度。先后实现仪表定位和指针定位,最后计算指针读数,衔接紧凑,精确定位,提高识别精度。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:一种指针式仪表自动识别方法,包括以下步骤:步骤一、采集变电站每种仪表的模板图像,获取每张模板图像的刻度分布和指针位置,任一张模板图像以及其上的刻度分布和指针位置保存在一个文件中,每个文件具有不同的命名,记作模型文件,以此区分模型类别;步骤二、将每张模板图像进行放大、缩小和旋转,得到同一坐标系下的同一种类的多角度多尺度的同源图像,并提取同源图像的利于跟踪(Good Feature To Track,)的特征(简称GFTT特征),保存特征点并计算特征向量进行归一化处理,进行同类仪表的图像建模,实现多角度多尺度的同类仪表的建模;步骤三、输入待检测的仪表图像并提取其中的椭圆和矩形区域,将所提取的区域与不同的模板图像进行匹配并计算区域匹配度,获知匹配度最高的模板图像,预设区域阈值,若最高区域匹配度高于区域阈值则判定为仪表区域,此时具有最高区域匹配度的模板图像认定为待检测仪表对应的模板图像,将仪表图像与对应的模板图像做透视变换使其位于同一坐标系下,实现仪表定位;步骤四、对待检测的仪表图像进行线段检测,并将检测到的所有线段与步骤三中获取的对应的模型文件的指针位置、指针长度和指针中心位置进行匹配并计算指针匹配度,预设指针阈值,若指针匹配度高于指针阈值则判定为指针,实现指针定位;步骤五、根据指针定位结果寻找距离其最近的分别位于其两侧的两个指针刻度,并对比对应的模板图像和模型文件,计算指针读数,输出指针读数实现仪表自动识别。
步骤一中“获取每张模板图像的刻度分布和指针位置”的具体方式为:在计算机中建立一个建模程序,该建模程序可以按照一定的顺序获得每张模板图像在该建模程序中的中心位置坐标、指针起点坐标、指针终点坐标、每个刻度坐标及刻度值并存储在模型文件中,每个刻度坐标按照从小刻度到大刻度的顺序进行获取;在该建模程序中输入该张模板图像的表盘刻度的最小值和最大值并存储;获取指针所指位置的最小刻度值、最大刻度值和中间刻度值,用于确定指针所指的范围方向。
步骤二中“提取同源图像的特征点计算特征向量进行归一化处理,进行同类仪表的图像建模”的具体方式为:提取同源图像中的每幅图像的GFTT特征并保存特征点;根据特征提取结果,生成每个特征点的多维特征向量并保存;对所有的多维特征向量进行归一化处理;根据每张模板图像所在的模型文件读取每张模板图像的刻度分布和指针位置,实现同类仪表的图像建模。
步骤三中“提取待检测的仪表图像的椭圆区域”的方式为:对待检测的仪表图像进行预处理以去除噪声的干扰;对预处理后的待检测图像进行边缘检测获取边缘图像;提取边缘图像中的弧线,去除短弧和直弧;根据弧线的凸性进行分类,确定每个弧线所属的象限;寻找包含至少三个不同象限的弧线组合,选取满足凸性、相互位置和相同中心条件的弧线作为候选椭圆;估计椭圆参数,根据估计结果与实际边缘像素的适应性对候选椭圆进行验证,获取最终的椭圆位置。
步骤三中“提取待检测的仪表图像的矩形区域”的方式为:对预处理后的待检测图像进行边缘检测,获取所有线段集合;预设线段的长度阈值,剔除小于长度阈值的线段,获取优选线段集合,并根据线段长度进行排序;在优选线段集合中对具有共同角点的线段进行聚类,得到同角点线段集合;获取同角点线段集合的角点和边,形成初始的闭合矩形区域;合并剩余的未闭合的矩形区域,获取所有的可能的闭合矩形区域,实现矩形检测。
步骤三中“将所提取的区域与不同的模板图像进行匹配并计算区域匹配度,预设区域阈值,若区域匹配度高于区域阈值则判定为仪表区域”的具体方式为:遍历所有检测到的椭圆和矩形区域,根据模板图像校正椭圆和矩形区域得到候选仪表区域;提取候选仪表区域的GFTT特征并计算每个特征点的特征向量;将候选仪表区域特征和模板图像特征进行匹配并估算匹配度,匹配度按照从高到低的顺序进行排序,获取模板图像与每个候选仪表区域的单应性变换矩阵;预设匹配度阈值,将匹配度最高且高于匹配度阈值的区域判定为仪表区域,匹配度最高的模板图像认定为待检测仪表对应的模板图像,同时根据相应的单应性变换矩阵对待检测仪表图像进行透视变换,使得待检测仪表图像与模板图像在同一个坐标空间,以此实现仪表定位。
步骤四中“根据仪表定位结果对待检测的仪表图像进行线段检测,并根据刻度分布、指针位置、指针长度和中心位置与对应的模板图像进行匹配并计算指针匹配度,预设指针阈值,若指针匹配度高于指针阈值则判定为指针,用于指针定位”的方式为:将经过透视变换且与模板图像在同一个坐标空间的待检测仪表图像进行边缘检测,提取线段;根据模板图像所在的模型文件中的刻度分布和指针位置获取待检测仪表图像的中心点坐标,分别计算提取的每条线段的起点和终点与该中心点的距离,获取以中心点为中心、以模板图像的指针长度为搜索距离的搜索区域;剔除超出搜索区域的线段,将搜索区域内的线段按照长度进行排序;从最长线段开始计算其角度,预设角度阈值,若下一线段与当前线段角度差小于角度阈值则合并这两条线段,否则开始继续与下一线段的角度差对比,直至搜索区域内的所有线段都对比完毕获得最终的线段集合,记做候选指针;提取每个候选指针中的GFTT特征,将候选指针特征与模板图像指针特征匹配并估算匹配度,匹配度按照从高到低的顺序进行排序;根据待检测仪表对应的模型文件获取仪表指针数目,若指针数目为1,则选取匹配度最高的候选指针判定为仪表指针;若指针数目大于1,则根据匹配度从高到低的顺序依次获取多个指针位置。
步骤五中“根据指针定位结果寻找距离其最近的分别位于其两侧的两个指针刻度,并对比对应的模板图像和模型文件,计算指针读数”的具体方式为:根据指针定位结果获取指针坐标,并根据模型文件获取指针位置两侧的两个指针刻度坐标,将两个指针刻度分别与中心点连线,计算两条连接线间的角度thea1,计算较小刻度的连线与指针线段的角度thea2;根据模型文件获取两个指针刻度值value1和value2,其中value1为较小的刻度值,value2为刻度较大的刻度值,则指针的读数为value=value1+thea2*(value2-value1)/thea1。
步骤二中的提取同源图像中的每幅图像的特征点计算特征向量进行归一化处理中,也可以采用其他特征提取方法提取特征点,比如ORB特征;在后续的步骤中采用与步骤中相同的特征提取方法。
步骤一中在计算机中建立一个建模程序,该建模程序利用开发语言编程,具有拖动鼠标即可获取该程序中打开的图像上的具体某一位置的坐标值,所有获取的坐标值都可以利用该建模程序存储在指定文件中;该建模程序中的打开的图像的刻度值是直接手动输入,再利用该建模程序存储在指定文件中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。