一种电力巡检中保护屏智能识别系统的构建方法
技术领域
本发明属于机器视觉领域,涉及一种电力巡检中保护屏智能识别系统的构建方法。
背景技术
为了保证电力设备的运行稳定,电力巡检是其中必不可少的一环。电力巡检是通过巡检员定期对设备及周围环境进行巡视与检查,进而及时地发现设备可能存在的缺陷以及可能产生的安全隐患,保证设备的运行安全以及整个系统的稳定运转。整个电网已经深入到人们身边的各个角落,电力对人们的重要性甚至可以说不亚于空气,而且随着社会的不断发展,电网系统也愈发复杂,电力巡检任务重要性也不断增强。
传统的电力巡检过程例如电力保护屏的巡检是通过巡检员手持工作手册,将设备中的开关逐个与手册信息进行比对,任务繁重且单调,容易使人产生疲劳以及误操作进而引发电力事故,严重时甚至会导致大面积停电。此时可以针对保护屏的巡检任务,通过机器学习以及机器视觉的手段,通过计算机构建一个智能识别系统,将这种枯燥的工作交由软件完成,大大减轻巡检员的压力。
发明内容
发明目的:针对电力巡检中的迫切需求,发明了一种保护屏智能识别系统构建方法。
通过本发明构建的保护屏智能识别系统,旨在利用机器学习与机器视觉的手段,将繁杂的电力巡检任务交由智能系统完成。本发明对于采集的保护屏图像利用机器学习与机器视觉的技术进行自动的分割与定位,获取压板开关目标并自动识别其状态。
技术方案:一种电力巡检中保护屏智能识别系统的构建方法,提出了一种针对保护屏设备采集的图像进行智能分析的自动化解决方案,具体包括以下步骤:
步骤1,标签识别:载入采集到的保护屏设备图像,识别图像中的标签区域,提取标签的轮廓以及包含区域,通过OCR(Optical Character Recognition,光学字符识别)光学字符识别技术识别标签内容,获得对应的设备配置信息;
步骤2,图像矫正:基于步骤1获得的标签轮廓,通过角点检测筛选出所需要的角点,根据角点计算得到仿射变换矩阵A,将矩阵A作用于所采集的图像上实现图像旋转与缩放的矫正;
步骤3,图像的预处理:利用标签的区域位置信息以及对应的设备配置信息对图像进行颜色空间转换和阈值化操作,将阈值化后的图像在行和列方向上进行直方图累加,利用累加得到的直方图对图像进行裁剪,获得新的图像;
步骤4,分类器的训练及使用:通过预先采集的保护屏设备图像,抠取(一般人工进行抠取)压板开关的正例图像样本以及非目标的负例图像样本,提取样本的颜色特征直方图作为分类的特征,使用SVM进行训练获得分类器,对步骤3中获得的图像中的待识别像素区域生成高斯分布随机数,将采样的测试区域进行分类,保留正例像素区域,从而得到新的二值化图像;
步骤5,图像的行分割:从设备配置信息中获取图像的行数信息,利用步骤4获得的二值化图像的列累加直方图寻找合适的行分割点,进而获得按行分块的图像;
步骤6,图像的列分割:利用步骤1中获得的设备配置信息中获得相应每一行的开关数目,再利用步骤5中处理后的行分块图像计算行累加直方图寻找合适的列分割点,进而获得单个的待识别压板开关的阈值化图像;
步骤7,目标的定位:利用步骤6中获得的单个待识别压板开关的阈值化图像以及设备配置信息中的开关类别信息,确定聚类中心数量,利用K-Means算法对阈值化图像中的像素点进行聚类操作,获得每个像素所属的类别以及聚类中心,得到压板开关的每个部件的位置信息;
步骤8,状态的识别与反馈:利用步骤7中获得的压板开关的每个部件的位置信息,计算部件之间的相对位置关系进而判断出开关的状态,并将识别的状态反馈用户。
步骤1包括:
载入采集到的保护屏设备图像作为原图像,将原图像按照标签颜色区域进行阈值化操作得到二值化图像,在二值化图像中寻找标签区域轮廓,并且找到轮廓对应的外接矩形,抠出标签对应的矩形区域作为待识别的目标区域,利用OCR光学字符识别技术识别标签编号,再依据标签编号获得对应的设备配置信息。
所述设备配置信息中,所包含的参数包括当前保护屏压板开关的行数row_number、每一行中压板开关的类型row_type、每一行所包含的压板开关的个数number_per_row以及每个压板开关应为的状态state_per_object。
搜集到的原始图像往往因为采集中的人为因素使得图像产生一定的仿射变换,而旋转和缩放会使得在识别开关状态与确定算法的超参数时遇到困难,所以需要进行一定的矫正操作。因此步骤2包括:
步骤2-1,将步骤1中获得的标签区域轮廓的点集记为label_contours,根据该点集label_contours获得标签区域轮廓的最小外接矩形;
步骤2-2,进行角点检测,获得最小外接矩形4个角点的坐标,选择其中三个角点,以及它们所对应的原始坐标,计算出仿射变换矩阵A;
步骤2-3,将矩阵A作用于原图像实现旋转与缩放的矫正,得到尺度统一的图像。
经观察发现保护屏的开关与其后的面板在颜色上有较大的区别,所以通过颜色信息来对所采集的图像进行对应的阈值化操作以得到一个粗略的二值图像来区分前景与背景。但RBG彩图在三个通道上的分布不紧凑,这样通过RGB颜色空间就难以得到一个较好的二值图像,而在HSV(Hue,Saturation,Value,色调H,饱和度S,明度V)颜色空间中能够解决这个问题,因此步骤3包括:
步骤3-1,对步骤2-3得到的尺度统一的图像进行颜色空间转换得到色度、明度、饱和度表示的HSV三通道图像,
步骤3-2,通过针对每一个保护屏统计得到的各个通道的阈值得到二值图像;
步骤3-3,根据步骤1中的标签位置信息,分别将二值图像的每一行累加至第一行,每一列累加至第一列得到一个行累加直方图与列累加直方图,裁剪直方图首尾部分得到新的图像。
通过步骤3获得的初步的区分前景与背景的二值图像中存在大量的噪声点,这些噪声点会干扰后续的分割以及识别操作,所以利用机器学习的方法对上一步中获得的二值图像待识别区域进行筛选,丢弃大部分噪声区域。因此步骤4包括:
步骤4-1,将训练样本集记为样本集中的元素为预先采集的保护屏设备图像中通过人工扣取的正负例样本,即压板开关的正例图像样本以及非目标的负例图像样本,Ei1代表训练样本集中的第i张训练图像,N表示训练图像的总数,取值为自然数,每张训练图像Ei1包含一个768维的HSV颜色直方图特征[w1,w2,...,w768],其中w1-w256表示第1-256维特征的值即H(色调)通道各分量的值,其中w257-w512表示第257-512维特征的值即S(饱和度)通道各分量的值,其中w513-w768表示第513-768维特征的值即V(明度)通道各分量的值,以及对应的类别标签label,使用SVM(Support Vector Machines,支持向量机)得到一个超平面分类器;
步骤4-2,从步骤3-3得到的二值图像中得到所有待识别区域的轮廓最小外接圆集合Ci2代表第i2个轮廓的最小外接圆,n2代表轮廓的个数;
步骤4-3,对Ci2中的所有像素点进行一个高斯分布的随机采样,高斯分布的方差为1/r2,r是Ci的半径,采样的次数为ε是手动定义的超参数,一般取值为10,根据性能要求而手动改变。经过超平面分类器分类后得到新的轮廓集合和与之对应的二值化图像,其中Fi3表示分类后的第i3个轮廓,n3是分类后的轮廓总数。
步骤5包括:
基于步骤4获得的二值化图像计算与之对应的累加直方图Hi4表示步骤4-3获得二值图像第i4行所有像素之和,n4表示二值化图像的行数,利用二值化图像的列累加直方图寻找合适的行分割点,进而获得按行分块的图像,具体过程如下:
步骤5-1,当前块的起点start_position初始化为0,搜索的起始位置current_position=start_position+TOP2BOTTOM,其中TOP2BOTTOM是开关两个引脚间的最小距离,搜索的边界位置end_position=start_position+TOP2TOP,其中TOP2TOP是两行间的最大距离,在的起始位置current_position与边界位置end_position的范围内找到最大的间隔的位置即为分割点,将分割点记录并更新当前块的起点start_position为分割点位置;
步骤5-2,重复步骤5-1直至搜索到直方图的末尾或找到所有的分割点;
步骤5-3,根据步骤5-2得到的分割点获得按行分块的图像,行分块图像集合记为Bi5表示保护屏的第i5行开关对象,n5表示当前保护屏开关的总行数。
步骤6包括:
保护屏的第i5行开关Bi5包含一个对应的累加直方图yj1表示第j1列像素的累加和,m1表示当前行有多少列,保护屏存在两种类型的开关,即二路开关与三路开关,而每一行中仅包含一种类型的开关;
对于二路开关,因为固定的两个引脚的存在并且在一条直线上,所以在累加直方图中每一个引脚区域的下标范围对应于直方图的一个峰值,在累加直方图上寻找<peak_position,peak_value>数对,其中peak_position表示该波峰所对应的区域最右部的坐标,peak_value表示该波峰对应的峰值,最终得到一个数对集合其中j2表示第j2个数对下标,m2表示所有数对的总数,根据峰值从大到小对该集合进行排序,选择前k1个数对即为所需要的二路开关列分割点,k1为当前行应有的开关数目;
对于三路开关,三个引脚的排列近似与一个等边三角形,无法通过二路开关的列分割方法得到。开关与开关之间存在一定的距离,一般为60个像素,这个距离在累加直方图中表示为全0的平坦区域,因此在直方图中寻找<left_position,length>数对,其中left_position记录了该平坦区域的起始坐标,length是该区域的长度,最终得到数对集合其中j3是当前数对的下标,m3表示数对的总数,根据length从大到小对该集合进行排序,选择前k2个数对即为所需要的三路开关列分割点,k2为当前行应有的开关数目;
根据列分割点得到列分割后的开关对象集合Li6表示经过行列分割后的每一个单独保护屏开关对象,n6表示开关的个数。
步骤7包括:
Li6包括一个非零像素的坐标集合(xj4,yj4)表示步骤6获得的开关二值图像中第j4个非零像素的坐标,m4为所有非零像素个数总和,对于每一个Li6,已知它的聚类中心个数为k3,接着使用K-Means算法对其进行聚类,得到每一个Li6的聚类中心坐标集合其中表示第l个聚类中心的坐标,从而得到压板开关的每个部件的位置信息。
步骤8包括:
步骤8-1,对于二路开关,Li6有三个聚类中心,将按照聚类中心纵坐标cy进行从小到大进行排序,序列中下标为1的中心点即为二路开关的上引脚中心坐标;
由于根据图像本身固有的坐标系,计算余下两个中心点构成的直线的斜率,当二者近似垂直于x轴时将会得到一个趋于正无穷大的值,不利于状态的判断,选择使用斜率的倒数的绝对值当判定二路开关的状态为合状态,否则为分状态,其中σ为斜率阈值超参数,一般取值为0.2;
步骤8-2,对于三路开关,Li6有四个聚类中心,将按照聚类中心纵坐标cy从小到大进行排序,如果则交换1,2下标对应的中心点坐标,此时得到的序列下标为1的是左上角引脚的中心点坐标,下标为2的是右上角中心点坐标,下标为3的是转轴的中心点坐标,下标为4的则是下引脚中心点坐标;判断聚类中心的合法性,计算三个引脚中心坐标两两之间的欧式距离距离均值标准差为
步骤8-3,当d<μ或者v>η时表明聚类中心不合法,其中μ和η为对应的阈值超参数,一般取值分别为110和6,将当前开关的二值图像进行腐蚀操作后再次聚类,重复识别流程即步骤8-2,若当前二值图像非零像素坐标集合中m4<M,则表明聚类失败,将失败信息返回,其中M为二值图像应包含的最少像素点个数,一般取值为100;当聚类中心合法时,将中下标为1,3,4与2,3,4的两组点进行直线拟合得到两个四元组表示的拟合直线:(α,β,x0,y0)1与(α,β,x0,y0)2,其中(α,β)表示直线的方向向量,(x0,y0)表示直线经过的一个点,然后将其表示为Ax+By+C=0,其中:A=-β,B=α,C=βx0-αy0,接着计算聚类中心坐标与对应拟合直线之间的距离对应的得到两个距离和与当时表明三路开关左闭合,当时表明三路开关右闭合,否则即为分状态,其中为对应的损失阈值参数,一般取值为10。
本发明将传统的人工巡检转变为基于机器视觉的智能巡检,并基于机器学习的模型较为准确的向用户反馈各个开关的状态以便用户核查。该方法主要包括标签识别、图像矫正、分类器的训练及使用、图像预处理、图像行分割、图像的列分割、目标定位以及状态识别与反馈等八个步骤。标签识别是通过对输入图像进行分析,提取标签的位置及内容信息,并利用标签内容获取保护屏设备配置信息的过程;图像矫正是通过计算标签轮廓角点仿射矩阵对图像进行旋转与放缩矫正;图像预处理是根据前一步所获得的标签及设备配置信息,对输入图像进行裁剪、颜色空间转化、阈值化等相应操作;分类器的训练这一步骤主要是通过对待识别的目标进行颜色特征的提取并训练分类器,利用分类器抑制图像中的噪声和筛选出待识别的像素群;图像行分割主要是基于保护屏的物理信息对设备进行分块处理,获得待处理的行图像;图像的列分割将去噪后的行分块图像进行垂直方向分割,获得单个待识别的压板开关;目标定位则是将上一步中获得的单个压板开关以及开关的类别信息进行聚类,定位每一个部件的像素群及相应的位置信息;状态识别这一步骤是根据之前得到的聚类中心,利用像素群的位置信息判断开关的备投状态并给予用户反馈。本发明基于机器学习以及机器视觉,设计了一种保护屏智能识别的系统,降低了电力巡检中疲劳操作的风险,减轻了巡检人员的负担,并且具有较高的准确率保障,因此具有较高的使用价值。
本发明具有以下有益效果:本发明提供的保护屏智能识别系统构建方法,相较传统的人工保护屏巡检,将通过肉眼进行重复比对的工作转化为图像识别问题,大大减轻了巡检员的负担,并且有着速度快,准确率高的优点;同时有效的降低了因为人力疲劳而可能带来的电力事故风险,并且将每次巡检过程中保护屏的状态图像进行保留以便工作人员有据可查,总结经验,为电力系统带来了便捷。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1为本发明实施例的保护屏智能识别系统的工作流程图;
图2a为本分明实施例所提取的颜色直方图特征h通道分量;
图2b为本分明实施例所提取的颜色直方图特征s通道分量;
图2c为本分明实施例所提取的颜色直方图特征v通道分量;
图3a为本发明实施例二路开关聚类中心表示图;
图3b为本发明实施例三路开关聚类中心表示图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示,本发明所构建的电力巡检中保护屏智能识别系统的工作流程大致分为以下几个阶段:第一阶段,预处理阶段,包括标签的识别,信息的载入以及预先的裁剪和去噪工作;第二阶段,分割阶段,主要包括保护屏的行列分割工作;第三阶段,定位与识别阶段,包括目标聚类与状态识别。本发明实施例中电力巡检中保护屏智能识别系统的具体构建步骤如下:
步骤1:标签识别。从原始图像中提取标签区域并识别标签信息,载入与标签信息对应的设备信息;
步骤2:图像矫正。提取标签轮廓计算最小外接矩形,进行角点检测并获得仿射变换矩阵进行图像矫正;
步骤3:图像预处理。利用设备对应的颜色阈值参数对原始图像进行二值化和裁剪;
步骤4:分类器的训练与使用。提取图像的颜色直方图特征训练分类器,并对步骤2中获得的二值图像的待识别区域进行采样与分类,保留正例;
步骤5:图像的行分割。计算二值图像的列累加直方图,并在直方图中寻找合适的分割点,得到行分块图像;
步骤6:图像的列分割。计算行分块二值图像的行累加直方图,寻找合理的列分割点,得到单个的开关对象;
步骤7:目标定位。将单个开关的二值化图像中非零像素进行K-Means聚类获得各个聚类中心;
步骤8:状态识别。计算各个聚类中心的相对位置关系,判断开关状态。
步骤1中将原图按照标签的颜色特征信息进行阈值化操作,然后获得标签区域,将标签区域截取并通过tesseract库的OCR技术对标签所包含的数字信息进行识别,获得保护屏编号,并读取对应编号保护屏的配置信息,配置信息包括当前保护屏的行数,每一行压板开关的类型,每一行开关的个数以及每一个开关应该处于的状态;
步骤2包括:从步骤1中获得标签轮廓的点集表示label_contours,对于label_contours获得其最小外接矩形。接着进行角点检测会获得4个角点的坐标。选择其中三个角点坐标,以及它们所对应的原始坐标,可以计算出仿射变换矩阵A,将矩阵A作用于原图像即可实现旋转与缩放的矫正;
步骤3按照压板开关的颜色先验信息,对步骤2获得的矫正后的图像进行颜色空间转换得到色度、明度、饱和度表示的图像和阈值化后的图像,接着根据步骤一中的标签位置信息,以及二值化图像的行列像素累计直方图计算目标压板开关的大致区域并且进行四边的裁剪;
步骤4将训练样本集Ei1代表训练图像数据集中的第i1张训练图像,每张训练图像Ei包含一个768维的HSV颜色直方图特征[w1,w2,...,w768],其中w1-w256表示第1-256维特征的值即h通道各分量的值,其中w257-w512表示第257-512维特征的值即s通道各分量的值,其中w513-w768表示第513-768维特征的值即v通道各分量的值,如图2a、图2b、图2c所示,以及对应的类别标签label,其中图2a的横坐标表示色度H,取值范围0-255,纵坐标表示归一化后的各个H取值在样本中出现的次数,取值范围0-1.0;图2b的横坐标表示明度S,取值范围0-255,纵坐标表示归一化后各个S取值在样本中出现的次数,取值范围0-1;图2c横坐标表示饱和度V,纵坐标表示归一化后各个V取值在样本中出现的次数。使用SVM可得到一个超平面分类器,接着从预处理步骤得到的二值图像中得到所有待识别区域的轮廓最小外接圆集合Ci2代表第i2个轮廓的最小外接圆,出于时间成本考虑无法对Ci2中每一个像素点对应的测试样例进行分类,于是对Ci2中的所有像素点进行一个高斯分布的随机采样,高斯分布的方差为1/r2,r是Ci2的半径,采样的次数为ε是手动定义的超参数,根据性能要求而手动改变。经过分类后得到新的轮廓集合和与之对应的二值化图像;
步骤5包括:基于步骤4获得的二值图像计算与之对应的累加直方图Hi4表示步骤4获得的二值图像第i4行所有像素之和,具体计算分割点过程如下,当前块的起点start_position初始化为0,搜索的起始位置current_position=start_position+TOP2BOTTOM,其中TOP2BOTTOM是开关两个引脚间的最小距离,搜索的边界位置end_position=start_position+TOP2TOP,其中TOP2TOP是两行间的最大距离,在的current_position与end_position的范围内找到最大的间隔的位置即为分割点,将分割点记录并更新start_position为分割点位置重复之前的步骤直至搜索到直方图的末尾或找到所有的分割点;
步骤6包括:基于步骤5获得了当前图像的行分块图像集合Bi5表示保护屏的第i5行开关,它包含了一个对应的累加直方图yj1表示第j1列像素的累加和。对于保护屏而言存在两种类型的开关,二路开关与三路开关,而每一行中仅仅包含一种类型的开关。对于二路开关而言,因为固定的两个引脚的存在并且在一条直线上,所以在累加直方图中每一个引脚区域的下标范围对应于直方图的一个峰值,于是就在累加直方图上寻找<peak_position,peak_value>数对,其中peak_position表示该波峰所对应的区域最右部的坐标,peak_value表示该波峰对应的峰值。最终会得到一个数对集合根据峰值从大到小对该集合进行排序,选择前k1个数对即为所需要的二路开关列分割点,k1为当前行应有的开关数目。对于三路开关而言,三个引脚的排列近似与一个等边三角形,无法通过二路开关的列分割方法得到。但是开关与开关之间存在一定的距离,这个距离在累加直方图中表示为全0的平坦区域,于是就在直方图中寻找<left_position,length>数对,其中left_position记录了该平坦区域的起始坐标,length是该区域的长度,同样最终会得到数对集合根据length从大到小对该集合进行排序,选择前k2个数对即为所需要的三路开关列分割点,k2为当前行应有的开关数目;
步骤7目标定位具体包括以下步骤:经过列分割后得到了集合Li6表示经过行列分割后的每一个单独保护屏开关对象,它包括一个非零像素的坐标集合(xj4,yj4)表示当前开关二值图像中第j4个非零像素的坐标。对与每一个Li6已知它的聚类中心个数为k3,接着使用K-Means算法对其进行聚类,得到每一个Li6的聚类中心坐标集合其中表示第l个聚类中心的坐标,获得的聚类中心如图3a、图3b所示,图3a中白色区域表示当前单个二路开关各个部件的位置,灰色的圆点表示经过聚类后得到的聚类中心位置,图3b中白色区域表示当前三路开关各部件的位置,灰色的圆点表示经过聚类后得到的聚类中心位置;
步骤8状态识别具体包括以下步骤:通过以上步骤获得了单个开关集合与每个Li6对应的聚类中心坐标集合对于二路开关而言Li6有三个聚类中心,将按照聚类中心纵坐标cy进行从小到大进行排序,那么序列中下标为1的中心点即为二路开关的上引脚中心坐标。由于根据图像本身固有的坐标系,计算余下两个中心点构成的直线的斜率,当二者近似垂直于x轴时将会得到一个趋于正无穷大的值,不利于状态的判断,故而选择使用斜率的倒数的绝对值当认为二路开关的状态为合状态,否则为分,其中σ为斜率阈值超参数。对于三路开关而言Li6有四个聚类中心,同样将按照聚类中心横坐标cy从小到大进行排序,如果则交换1,2下标对应的中心点坐标。此时得到的序列下标为1的是左上角引脚的中心点坐标,下标为2的是右上角中心点坐标,下标为3的是转轴的中心点坐标,下标为4的则是下引脚中心点坐标。首先判断聚类中心的合法性,计算三个引脚中心坐标两两之间的欧式距离距离均值标准差为当d<μ或者v>η时表明聚类中心不合法,其中μ和η为对应的阈值超参数,故而将当前开关的二值图像进行腐蚀操作后再次聚类后重复识别流程。若当前二值图像非零像素坐标集合中m4<M,则表明聚类失败,将失败信息返回,其中M为二值图像应包含的最少像素点个数,。当聚类中心合法时,将中下标为1,3,4与2,3,4的两组点进行直线拟合得到两个四元组表示的拟合直线:(α,β,x0,y0)1与(α,β,x0,y0)2。其中(α,β)表示直线的方向向量,(x0,y0)表示直线经过的一个点。然后将其表示为Ax+By+C=0,其中:A=-β,B=α,C=βx0-αy0。接着计算聚类中心坐标与对应拟合直线之间的距离对应的得到两个距离和与当时表明三路开关左闭合,当时表明三路开关右闭合,否则即为分状态,其中为对应的阈值参数。
实施例
本实施例包括以下部分:
步骤1,标签识别。
利用标签的颜色信息对原始图像(如图2所示为原始图像)进行二值化操作,获取标签的区域,利用tesseract库进行标签识别获得保护屏编号,并通过编号获得对应设备信息。
步骤2,图像矫正。
利用标签的轮廓信息获取轮廓的最小外接矩形,通过角点检测算法获得矩形的四个角点,选取其中的三个角点坐标,并利用角点的原始坐标计算仿射变换矩阵A,将矩阵A作用与原始图像上进行矫正。
在图像矫正的步骤使用的仿射变换矩阵A,仿射变换是机器视觉中的一种常见操作,一个任意的放射变化都可以表示为乘以一个矩阵再加上一个平移向量,通常用一个2×3的矩阵表示仿射变换:
其中:
T矩阵表示线性变换对应的矩阵,t11,t12,t21,t22是待求的参数,Z表示平移的向量,z1,z2是待求的参数。
步骤3,图像的预处理。
在同一个机房中,虽然有的保护屏之间开关颜色相同,但是由于光照的因素的影响使得它们表现出细微的不同,为了降低光照等因素的影响,为每一个保护屏统计一个合理的颜色阈值集合,并对待识别图像进行相应的二值化处理,而开关区域集中于整幅图像的部分区域,所以二值化图像的边缘有大量的黑色边缘,利用边缘的特点对图像进行裁剪工作。
步骤4,分类器的训练与使用。
将人工收集的训练样本集Ei1代表训练图像数据集中的第i1张训练图像,每张训练图像Ei1包含一个768维的HSV颜色直方图特征[w1,w2,...,w768]以及对应的类别标签label,使用SVM可得到一个超平面分类器,接着从预处理步骤得到的二值图像中得到所有待识别区域的轮廓最小外接圆集合Ci2代表第i2个轮廓的最小外接圆,出于时间成本考虑无法对Ci2中每一个像素点对应的测试样例进行分类,于是对Ci2中的所有像素点进行一个高斯分布的随机采样,高斯分布的方差为1/r2,r是Ci2的半径,采样的次数为ε是手动定义的超参数,根据性能要求而手动改变,本例中取值为10。经过分类后得到新的轮廓集合和与之对应的二值化图像。SVM是经典的分类算法,它的优化目标是找到一个超平面使得样本到超平面的间隔最大,通过拉格朗日对偶与Karush-Kuhn-Tucker(KKT)条件将其转变为凸优化问题,最终通过序列最小化算法求出分割超平面的最优解。
步骤5,图像的行分割。
通过寻找保护屏行与行之间固有的间隔来确定分割点位置,具体算法过程如下:
将二值图像的每一列累加到第一列得到列累加直方图;
初始化当前分块起点为0;
搜索的起点=分块起点+TOP2BOTTOM,搜索的终点=分块起点+TOP2TOP,本例中二者的值分别为180与400;
在搜索的起点与搜索的终点间寻找最大间隔的位置,加入到分割点集合中。
更新分块起点为前一个分割点的位置,当未找到所有的分割点并且分块起点没有到达直方图末尾时循环(3)~(4)直至结束。
步骤6,图像的列分割。
对于二路开关而言在行累加直方图上寻找波峰,具体算法过程如下:
将二值图像的每一行累加到第一行得到行累加直方图;
从直方图的左侧开始统计每一个连续的非0区间视为波峰,记录波峰的峰值与波峰的最右部坐标即为一个数对;
将所有的数对按照峰值从大到小进行排序;
选择前k2个波峰的最右部坐标作为分割点。
对于三路开关而言,在行累加直方图上寻找平坦区域,具体算法过程如下:
将二值图像的每一行累加到第一行得到行累加直方图;
从直方图的左侧开始统计每一个连续的0区间视为平坦区域,记录平坦区域的长度与区域最左部的坐标为一个数对;
将所有的数对按照长度从大到小进行排序;
选择前k3长的平坦区域的最左部坐标作为分割点。
步骤7,目标的定位。
经过列分割后得到了集合Li6表示经过行列分割后的每一个单独保护屏开关对象,它包括一个非零像素的坐标集合(xj4,yj4)表示当前开关二值图像中第j4个非零像素的坐标。对与每一个Li6已知它的聚类中心个数为k3,接着使用K-Means算法对其进行聚类,得到每一个Li6的聚类中心坐标集合其中表示第l个聚类中心的坐标。
目标定位中使用的K-Means算法是常用的聚类的算法,具体步骤包括:
(1)从m4个非零像素坐标随机选择k3个作为初始化的聚类中心;
(2)对剩余的每个非零像素点测量其到每个聚类中心的距离,并把它归到最近的聚类中心点;
(3)重新计算已经得到的各个类的聚类中心;
迭代(2)~(3)步直至新的聚类中心与原聚类中心相等或小于指定阈值,算法结束。
步骤8状态的识别与反馈。
通过以上步骤获得了单个开关集合与每个Li6对应的聚类中心坐标集合对于二路开关而言Li6有三个聚类中心,将按照聚类中心的纵坐标cy进行从小到大进行排序,那么序列中下标为1的中心点即为二路开关的上引脚中心坐标。由于根据图像本身固有的坐标系,计算余下两个中心点构成的直线的斜率,当二者近似垂直于x轴时将会得到一个趋于正无穷大的值,不利于状态的判断,故而选择使用斜率的倒数的绝对值:当认为二路开关的状态为合状态,否则为分,其中σ为斜率阈值超参数,此例中设其为0.2。对于三路开关而言Li6有四个聚类中心,同样将按照聚类中心纵坐标cy从小到大进行排序,如果则交换1,2下标对应的中心点坐标。此时得到的序列下标为1的是左上角引脚的中心点坐标,下标为2的是右上角中心点坐标,下标为3的是转轴的中心点坐标,下标为4的则是下引脚中心点坐标。首先判断聚类中心的合法性,计算三个引脚中心坐标两两之间的欧式距离:距离均值:标准差为:
当d<μ或者v>η时表明聚类中心不合法,其中μ和η为对应的阈值超参数,此例中分别为110和6。故而将当前开关的二值图像进行腐蚀操作后再次聚类后重复识别流程。若当前二值图像非零像素坐标集合中m4<M,则表明聚类失败,将失败信息返回,其中M为二值图像应包含的最少像素点个数,此例取值为100;。当聚类中心合法时,将中下标为1,3,4与2,3,4的两组点进行直线拟合得到两个四元组表示的拟合直线:(α,β,x0,y0)1与(α,β,x0,y0)2。其中(α,β)表示直线的方向向量,(x0,y0)表示直线经过的一个点。然后将其表示为Ax+By+C=0,其中:A=-β,B=α,C=βx0-αy0。对应的得到两个距离和与
当时表明三路开关左闭合,当时表明三路开关右闭合,否则即为分状态,其中为对应的阈值参数,此例中设为10。
步骤8中使用的腐蚀操作,腐蚀操作是计算机视觉中一种常见的形态学操作,其算法步骤如下:
(1)选择圆形的内核作为卷积核
(2)定义内核的锚点为中心
(3)将卷积核在输入图像上进行滑动,将内核覆盖区域的最小像素值提取并替代锚点位置的像素
(4)向右平移卷积核,重复步骤(3)直至卷积核覆盖整个输入图像
本发明提供了一种电力巡检中保护屏智能识别系统的构建方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。