一种基于定位识别的对开式刀闸开合角度的计算方法
技术领域
本发明涉及图像识别技术领域,特别涉及一种基于定位识别的对开式刀闸开合角度的计算方法。
背景技术
刀闸是高压开关电器中使用次数非常频繁的一种电器,在电路中起隔离作用。在实际应用中,由于刀闸的长期运转,会出现刀闸闭合或打开不到位的情形,该情形会导致刀闸的左右刀闸臂之间产生电弧。电弧是一种气体放电现象,电流通过某些绝缘介质产生的瞬间火花可能,会造成火灾或威胁人身安全;此外,电弧温度极高,容易把绝缘材料烧毁,造成漏电事件或造成刀闸设备损坏;因此,刀闸的开合状态需要准确的检测。
检测对开式刀闸开合是否到位,实践中主要需要依靠人工观测;在现有技术中,也通过计算左右刀闸臂之间的角度,判断刀闸开合的程度。目前计算左右刀闸臂之间的角度,国内外出现了许多计算方案,一种是对电路内部进行改动,增加传感器或者信号灯;一种是基于数字图像处理的方法,通过监控图像对刀闸的开关状态进行判断,在基于数字图像处理的方法中,由于背景复杂,对于刀闸难以正确匹配,降低检测精度。而且,在基于图像处理的方法中,背景复杂还可能包括两个或两个以上的对开式刀闸,再受到拍摄环境、拍摄角度等因素的影响,在整个图像处理中,无法准确判断左右刀闸臂之间的角度。
发明内容
为了解决现有技术中难以快速准确检测刀闸是否开合到位的问题,本发明提出一种基于定位识别的对开式刀闸开合角度的计算方法。
本发明的技术方案是这样实现的:
一种基于定位识别的对开式刀闸开合角度的计算方法,包括:采集对开式刀闸的模板图像,根据模板图像建立该型号刀闸臂的边界线模型并保存为模型文件,且根据模型文件计算刀闸臂的中点和中线;在同样的位置利用同样的设备采集同一对开式刀闸的目标图像;通过多种途径获取对开式刀闸的样本图像,利用深度学习对样本图像进行训练获取训练模型,利用训练模型对目标图像进行检测,获取目标图像中一个或一个以上的刀闸所在的区域,结合模型文件对目标图像中的刀闸定位;根据定位结果对目标图像中的刀闸进行边缘检测,获取边缘线集合;将根据模型文件计算的对开式刀闸的左中点和右中点对应到目标图像中,得到目标图像的刀闸臂的左中点和右中点,计算目标图像的刀闸臂的左中点和右中点到边缘线集合中的每条边缘线的距离,将不在阈值范围内的距离所对应的边缘线剔除,获取更新边缘线集合;
利用中线将更新边缘线集合左右区分,分别获取左刀闸臂边缘线集合和右刀闸臂边缘线集合对其进行对称配对,确定最终的左刀闸臂边缘线和右刀闸臂边缘线,计算左刀闸臂和右刀闸臂之间的夹角;左中点为左绝缘子中心线延长线和左刀闸臂上下边界线延长线的两个交点的中心点,右中点为右绝缘子中心线延长线和右刀闸臂上下边界线延长线的两个交点的中心点。
优选的是,利用中线将更新边缘线集合左右区分,分别获取左刀闸臂边缘线集合和右刀闸臂边缘线集合后,进行权重分配,将分配权重后的左刀闸臂边缘线集合和右刀闸臂边缘线集合进行对称配对;
对于左刀闸臂边缘线集合分配权重的方式为:遍历左刀闸臂边缘线集合中的所有边缘线,计算每条左刀闸臂边缘线角度并根据其对左刀闸臂边缘进行分类,给定高角度阈值和低角度阈值,将左刀闸臂边缘线角度大于高角度阈值对应的左刀闸臂边缘线设定为垂直边缘线,将左刀闸臂边缘线角度小于低角度阈值对应的左刀闸臂边缘线设定为水平边缘线,将左刀闸臂边缘线角度介于低角度阈值和高角度阈值之间对应的左刀闸臂边缘线设定为倾斜边缘线;对左刀闸臂的所有垂直边缘线,设定左刀闸臂左中点的x坐标值L_x,在左刀闸臂左中点的左右两侧分别寻找两个与L_x相差最小的x坐标所对应的边缘点,左侧两个边缘点的x坐标值记作L_x1和L_x2,L_x 1大于L_x2;右侧两个边缘点的x坐标值记作R_x1和 R_x2,R_x 1大于R_x2;
对左刀闸臂的所有水平边缘线,设定左刀闸臂左中点的y坐标值为L_y,在左刀闸臂左中点的上下两侧分别寻找两个与L_y相差最小的y坐标所对应的边缘点,上侧两个边缘点的y坐标值记作T_y1和T_y2,T_y1大于T_y2;下侧两个边缘点的y坐标值记作B_y1和B_y2,B_y1大于B_y2;
对左刀闸臂的所有倾斜边缘线,设定左刀闸臂左中点的x坐标值和y坐标值为 L_xx和L_yy,在左刀闸臂左中点的左上侧和右下侧分别寻找两个与L_xx相差最小的x坐标对应的边缘点,与L_yy相差最小的y坐标对应的边缘点,左上侧两个边缘点的x坐标值记作L_xx1和L_xx2,L_xx1大于_xx2,y坐标值记作 T_yy1和T_yy2,T_yy1大于T_yy2;右下侧两个边缘点的x坐标值记作R_xx1 和R_xx2,R_xx1大于R_xx2,y坐标值记作B_yy1和B_yy2,B_yy1大于B_yy2;获取每条垂直边缘线的权重的方式为:遍历位于左刀闸臂左中点左侧的每条垂直边缘线上的每个边缘点,该边缘点的x坐标值大于等于L_x1时其贡献权值为 Value_W,该边缘点的x坐标值大于等于L_x2小于L_x1时其贡献权值为 Value_W/2,否则该边缘点贡献权值为0;遍历位于左刀闸臂左中点右侧的每条垂直边缘线上的每个边缘点,该边缘点的x坐标值小于等于L_x2时其贡献权值为Value_W,该边缘点的x坐标值大于L_x2小于等于L_x1时其贡献权值为 Value_W/2,否则该边缘点贡献权值为0,所有边缘点的贡献权值的总和为当前垂直边缘线的权重;
获取每条水平边缘线的权重的方式为:遍历位于左刀闸臂左中点上侧的每条水平边缘线上的每个边缘点,该边缘点的y坐标值大于等于T_y1时其贡献权值为 Value_W,该边缘点的y坐标值大于等于T_y2小于T_y1时其贡献权值为 Value_W/2,否则该边缘点的贡献权值为0;遍历位于左刀闸臂左中点下侧的每条水平边缘线上的每个边缘点,该边缘点的y坐标值小于等于B_y2时其贡献权值为Value_W,该边缘点y坐标值大于B_y2小于等于B_y1时其贡献权值为 Value_W/2,否则该边缘点的贡献权值为0,所有边缘点的贡献权值的总和为当前水平边缘线的权重;
获取每条倾斜边缘线的权重的方式为:遍历位于左刀闸臂左中点左上侧的每条倾斜边缘线上的每个边缘点,该边缘点的x坐标值大于等于L_xx1时其贡献权值为Value_W,该边缘点的x坐标值大于等于L_xx2小于L_xx1时其贡献权值为 Value_W/2,否则该边缘点的贡献权值为0,该边缘点的y坐标值大于等于T_yy1 时其贡献权值为Value_W,该边缘点的y坐标值大于等于T_yy2小于T_yy1时其贡献权值为Value_W/2,否则该边缘点的贡献权值为0;遍历位于左刀闸臂左中点右下侧的每条倾斜边缘线上的每个边缘点,该边缘点的x坐标值小于等于 L_xx2时其贡献权值为Value_W,该边缘点的x坐标值大于L_xx2小于等于L_xx1 时其贡献权值为Value_W/2,否则该边缘点的贡献权值为0,该边缘点的y坐标值小于等于B_yy2时其贡献权值为Value_W,该边缘点的y坐标值大于B_yy2 小于等于B_yy1时其贡献权值为Value_W/2,否则该边缘点的贡献权值为0,所有边缘点的贡献权值的总和为当前倾斜边缘线的权重;
对于右刀闸臂边缘线集合分配权重的方式和左刀闸臂边缘线集合分配权重的方式一样。
优选的是,“根据模板图像建立该型号刀闸臂的边界线模型并保存为模型文件”的方式为:在计算机上设置一个程序,利用该程序打开模板图像,根据模板图像对刀闸臂上下边界线进行描边,画出左绝缘子中心线和右绝缘子中心线,将描边对应的线段端点坐标和左右绝缘子中心线对应的线段端点坐标保存为模型文件;若模板图像中刀闸为闭合状态,对整体刀闸臂的上下边界进行描边;若模板图像中刀闸为打开或虚合状态,根据实际左右刀闸臂的上下边界进行描边。
优选的是,“根据模型文件计算刀闸臂中点”的方式为:当模板图像中刀闸是闭合状态,根据模型文件分别获取整体刀闸臂的上下边界线延长线和左绝缘子中心线延长线的两个交点,记为两个左侧端点,获取整体刀闸臂的上下边界线延长线和右绝缘子中心线延长线的两个交点,记为两个右侧端点;两个左侧端点和两个右侧端点形成的闭合框的中点为刀闸臂中点,或左中点和右中点之间的线段的中点为刀闸臂中点;
当模板图像中刀闸是打开或虚合状态,根据模型文件分别获取左刀闸臂的上下边界线延长线和左绝缘子中心线延长线的两个交点,记为两个左侧端点,获取右刀闸臂的上下边界线延长线和右绝缘子中心线延长线的两个交点,记为两个右侧端点;左中点和右中点之间的线段的中点为刀闸臂中点,或两个左侧端点和两个右侧端点形成的闭合框的中点为刀闸臂中点。
优选的是,通过多种途径获取对开式刀闸的样本图像的方式包括现场采集、软件模拟和实物模型途径,现场采集的具体方式为采集对开式刀闸在不同状态下的样本图像;软件模拟的具体方式为对现场采集的样本图像进行建模,获取对应的三维模型,在三维模型中配置不同的环境条件,设置开合动作并渲染,获取对开式刀闸的开合运动视频,根据运动视频获取不同状态不同环境不同角度下的刀闸样本图像;制作对开式刀闸的实物模型,将实物模型放在不同环境下手动开合刀闸并拍摄视频,根据拍摄视频获取不同状态下的刀闸图像。
优选的是,利用训练模型对目标图像进行检测,获取目标图像中一个或一个以上的刀闸所在的区域,对目标图像中的刀闸定位的具体方式为:
利用训练模型对目标图像进行检测,获取目标图像中的所有刀闸区域及每个刀闸区域对应的刀闸状态,“闭合”和“虚合”状态的刀闸对应的所在区域为包含左右刀闸臂的整体矩形框区域,“打开”状态的刀闸对应的所在区域为包含左刀闸臂的左矩形框区域和包含右刀闸臂的右矩形框区域;对于“闭合”和“虚合”状态的刀闸同时获取其左右刀闸臂的接触点位置矩形框;
根据上述两个左侧端点和两个右侧端点获取闭合状态的刀闸的闭合四边形框区域,计算上述目标图像中整体矩形框区域、左矩形框区域、右矩形框区域分别与闭合四边形框区域的重叠面积;遍历目标图像中所有“闭合”和“虚合”状态的刀闸所在的区域,给定重叠面积阈值,获取包含左中点和右中点且重叠面积最大并大于重叠面积阈值的区域为最终的左右刀闸臂整体区域,同时计算左右刀闸臂的接触点位置矩形框的中心点并将其记为接触点,以过接触点且与该左右刀闸臂整体区域矩形框短边平行的中心直线为界限,左侧矩形框为左刀闸臂矩形框,右侧矩形框为右刀闸臂矩形框,实现对目标图像中“闭合”或“虚合”状态的刀闸定位;
若不存在上述包含左中点和右中点且重叠面积最大并大于重叠面积阈值的区域,则表明当前目标图像中待检测的刀闸的状态不是“闭合”或“虚合”状态,从所有“打开”状态的刀闸中实现刀闸定位,遍历目标图像中所有“打开”状态且重叠面积大于重叠面积阈值的刀闸所在的区域,获取包含左中点且重叠面积最大的区域记作第一打开左刀闸臂区域;获取包含右中点且重叠面积最大的区域记作第一打开右刀闸臂区域;遍历目标图像中所有“打开”状态且重叠面积小于等于重叠面积阈值的刀闸所在的区域,获取前两个包含左中点且重叠面积最大的区域记为左刀闸臂匹配区域;获取前两个包含右中点且重叠面积最大的区域记为右刀闸臂匹配区域;
计算任一个左刀闸臂匹配区域的4个顶点到左中点的距离并选取左侧最小距离,相比两个左侧最小距离并将较小的左侧最小距离对应的左刀闸臂匹配区域记为第二打开左刀闸臂区域;计算任一个右刀闸臂匹配区域的4个顶点到右中点的距离并选取右侧最小距离,相比两个右侧最小距离并将较小的右侧最小距离对应的右刀闸臂匹配区域记为第二打开右刀闸臂区域;
给定刀闸臂面积阈值,大于刀闸臂面积阈值的第一打开左刀闸臂区域记为最终左刀闸臂区域,否则大于刀闸臂面积阈值的第二打开左刀闸臂区域记为最终左刀闸臂区域;大于刀闸臂面积阈值的第一打开右刀闸臂区域记为最终右刀闸臂区域,否则大于刀闸臂面积阈值的第二打开右刀闸臂区域记为最终右刀闸臂区域,实现“打开”状态的刀闸定位。
优选的是,“根据模型文件计算刀闸臂中线”的方式为:当模板图像中刀闸是闭合状态,获取采集模板图像的相机的畸变系数,并根据模板图像尺寸计算相机矩阵camera_matrix=[focal_length,0,center.x;0,focal_length,center.y;0,0, 1],其中focal_length为模板图像宽度,center.x和center.y分别为模板图像中点的x坐标和y坐标;根据所述两个左侧端点、两个右侧端点、畸变系数和相机矩阵获取相机采集时相对于刀闸的坐标位置,相机的Z轴在模板图像上的投影方向为刀闸臂的中线方向,结合刀闸臂的中点确定刀闸臂的中线;
当模板图像中刀闸是虚合或打开状态,根据所述左中点和左刀闸臂上下边界线的平均斜率获取左中心线,根据所述右中点和右刀闸臂上下边界线的平均斜率获取右中心线,左中心线和右中心线延长形成一个交点;通过该交点和所述中点的连线为刀闸臂的中线。
优选的是,“当模板图像中刀闸是虚合或打开状态,根据模型文件计算刀闸臂中线”的另一种方式为:根据所述左中心线和左刀闸臂的右侧边的交点获取左刀闸臂的右侧中点,根据所述右中心线和右刀闸臂的左侧边的交点获取右刀闸臂的左侧中点,根据左侧中点、右侧中点、左中点和右中点获取设备采集时相对于刀闸的坐标位置,设备的Z轴在模板图像上的投影方向为刀闸臂的中线方向,结合刀闸臂的中点确定刀闸臂的中线。
优选的是,“利用中线将更新边缘线集合左右区分,分别获取左刀闸臂边缘线集合和右刀闸臂边缘线集合”的具体方式为:将根据模型文件计算的刀闸臂的中点和中线直接对应到目标图像中,在目标图像上计算以中点为起点的垂直于中线的方向向左或方向向右的单位方向向量
遍历更新边缘线集合中的边缘线,对其中任一条边缘线的两个端点记作T1和T2,将T1与中点的向量记作
将T2与中点的向量记作
计算
和
对于方向向右的单位方向向量
若
则T1在中线右侧,否则在中线左侧,若
则T2在中线右侧,否则中线左侧;对于方向向左的单位方向向量
若
则T1在中线左侧,否则在中线右侧;若
则T2 在中线左侧,否则中线右侧;若T1和T2均在中线左侧,则该边缘线为左刀闸臂边缘线,若T1和T2均在中线右侧,则该边缘线为右刀闸臂边缘线,若T1和 T2分别在中线两侧,计算该边缘线以中线为分割线的左右线段长度,该边缘线为左右侧线段较长侧的边缘线;如此获取左刀闸臂边缘线集合和右刀闸臂边缘线集合。
优选的是,“将分配权重后的左刀闸臂边缘线集合和右刀闸臂边缘线集合进行对称配对,确定最终的左刀闸臂边缘线和右刀闸臂边缘线,计算左刀闸臂和右刀闸臂之间的角度”的方式为:
给定角度阈值,将分配权重后的左刀闸臂边缘线集合中的任一条边缘线相对于水平位置的角度记为Mh,h代表不同的左刀闸臂边缘线,将任两个左刀闸臂边缘线的角度差值位于角度阈值内的划分为同组,将同组内的左刀闸臂边缘线按照从长到短排序;将分配权重后的右刀闸臂边缘线集合中的任一条边缘线相对于水平位置的角度记为Nm,m代表不同的右刀闸臂边缘线,将任两个右刀闸臂边缘线的角度差值位于角度阈值内的划分为同组,将同组内的右刀闸臂边缘线按照从长到短排序,遍历左刀闸臂边缘线集合的所有同组和右刀闸臂边缘线集合的所有同组进行一一配对;
计算所有同组的平均角度,根据左刀闸臂边缘线集合的每个同组的平均角度和左中点获取每个同组的校正左刀闸臂边缘线,计算每个同组的校正左刀闸臂边缘线的权重w_L,将校正左刀闸臂边缘线与中线的交点记作A点;根据右刀闸臂边缘线集合的每个同组的平均角度和右中点获取每个同组的校正右刀闸臂边缘线,计算每个同组的校正右刀闸臂边缘线的权重w_R,将校正右刀闸臂边缘线与中线的交点记作B点,计算A点和B点之间的距离dAB,刀闸臂左中点和右中点间的距离记作d0;若dAB/d0>0.5,则剔除A点所在的同组和B点所在的同组;
计算目标图像中刀闸定位的左矩形框区域角度和右矩形框区域角度,计算左矩形框区域角度和校正左刀闸臂边缘线的角度的差d_A_L,计算右矩形框区域角度和校正右刀闸臂边缘线的角度的差d_A_R,对称配对的配对分数设定为S1,结合刀闸定位的最终配对分数为S,最高的配对分数S对应的A点所在的校正左刀闸臂边缘线和B点所在的校正右刀闸臂边缘线为最终的左刀闸臂边缘线和右刀闸臂边缘线;
最终的左刀闸臂边缘线相对于闭合状态刀闸臂所在直线的角度为α1,最终的右刀闸臂边缘线相对于闭合状态刀闸臂所在直线的角度为α2,左右刀闸臂间的最终夹角为θ=|α2-α1|;
配对分数S1和S的计算方式为:
设定ratio=dAB/d0,
S1=a*exp(-(ratio*ratio*a2))*w_L*w_R
配对公式的含义:每对配对的校正左刀闸臂边缘线与中线的交点和校正右刀闸臂边缘线与中线的交点间的距离越小,校正左刀闸臂边缘线的权重和校正右刀闸臂边缘线的权重越大,刀闸定位的左矩形框区域角度和校正左刀闸臂边缘线的角度的差越小,刀闸定位的右矩形框区域角度和校正右刀闸臂边缘线的角度的差越小,配对分数越高,对应的校正左刀闸臂边缘线和校正右刀闸臂边缘线是最终的左刀闸臂边缘线和右刀闸臂边缘线的概率越高,分数最高的配对组合对应的校正左刀闸臂边缘线和校正右刀闸臂边缘线即为最终的左刀闸臂边缘线和右刀闸臂边缘线。调节参数a根据实验和先验知识确定。
本发明的有益效果为:本发明的基于定位识别的对开式刀闸开合角度的计算方法,先采集模板图像,建立模板图像中该型号刀闸臂的边界线模型并保存为模型文件,且根据模型文件计算该型号刀闸臂的中点和中线,对于检测的目标图像利用同样的设备在同样的位置采集,目标图像和模板图像的图像大小以及相对采集设备的位置一样;因此,将模型文件中刀闸臂的中点和中线对应到目标图像中作为参照。结合样本图像,通过对样本图像训练获取训练模型,利用训练模型对目标图像进行检测,获取目标图像中刀闸所在的区域,明确对目标图像中的刀闸进行定位,在进行后续处理时,所针对的区域更加明确,提高确定左刀闸臂边缘线和右刀闸臂边缘线的准确性。样本图像汇集了不同环境下对开式刀闸的不同开合状态,有助于提高训练模型的适用性和检测准确性,帮助实现刀闸自动定位。
实际使用中,在对目标图像中的刀闸进行定位的基础上,利用中点和中线区分左刀闸臂边缘线集合和右刀闸臂边缘线集合,再通过权重分配能够有效实施对左右刀闸臂边缘线的配对,提高检测精度和检测速度。结合刀闸在实际使用中不同的状态,通过训练模型更快速更准确的识别目标图像中的刀闸,然后根据刀闸臂的中线确定最终的左刀闸臂边缘线和右刀闸臂边缘线,计算左右刀闸臂间的角度,检测刀闸臂是否开合到位,具有重要的实际应用价值。在确定最终的左右刀闸臂边缘线时,左刀闸臂边缘线集合和右刀闸臂边缘线集合先进行权重分配,再进行对称配对,利用刀闸臂中线,充分考虑配对分数和左右刀闸臂边缘线与中线的交点间的距离的关系,同时结合权重分配和深度学习检测结果,提出符合实际的配对分数计算公式,提高配对的准确性,具有较高的识别精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的模板图像;
图2为本发明中左右刀闸臂边缘线配对示意图;
图3为本发明中左刀闸臂上的垂直边缘线的结构示意图;
图4为本发明中左刀闸臂上的水平边缘线的结构示意图;
图5为本发明中左刀闸臂上的倾斜边缘线的结构示意图;
图6为本发明中“闭合”状态的刀闸对应的所在区域;
图7为本发明中“虚合”状态的刀闸对应的所在区域;
图8为本发明中“打开”状态的刀闸对应的所在区域。
图中:
1、左中点;2、右中点;3、垂直边缘线;4、水平边缘线;5、倾斜边缘线;6、左刀闸臂;7、右刀闸臂;8、整体矩形框区域;9、左矩形框区域;10、右矩形框区域;11、接触点位置矩形框;12、中心直线;13、闭合四边形框区域。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:如图1和图2所示的一种基于定位识别的对开式刀闸开合角度的计算方法,包括:采集对开式刀闸的模板图像,根据模板图像建立该型号刀闸臂的边界线模型并保存为模型文件,且根据模型文件计算刀闸臂的中点和中线;在同样的位置利用同样的设备采集同一对开式刀闸的目标图像;通过多种途径获取对开式刀闸的样本图像,利用深度学习对样本图像进行训练获取训练模型,利用训练模型对目标图像进行检测,获取目标图像中一个或一个以上的刀闸所在的区域,结合模型文件对目标图像中的刀闸定位;根据定位结果对目标图像中的刀闸进行边缘检测,获取边缘线集合;将根据模型文件计算的对开式刀闸的左中点 1和右中点2对应到目标图像中,得到目标图像的刀闸臂的左中点1和右中点2,计算目标图像的刀闸臂的左中点和右中点到边缘线集合中的每条边缘线的距离,将不在阈值范围内的距离所对应的边缘线剔除,获取更新边缘线集合;利用中线将更新边缘线集合左右区分,分别获取左刀闸臂边缘线集合和右刀闸臂边缘线集合对其进行对称配对,确定最终的左刀闸臂边缘线和右刀闸臂边缘线,计算左刀闸臂和右刀闸臂之间的夹角;左中点为左绝缘子中心线延长线和左刀闸臂上下边界线延长线的两个交点的中心点,右中点为右绝缘子中心线延长线和右刀闸臂上下边界线延长线的两个交点的中心点。
实施例2:如图3至图5所示,在实施例1的基础上,利用中线将更新边缘线集合左右区分,分别获取左刀闸臂边缘线集合和右刀闸臂边缘线集合后,进行权重分配,将分配权重后的左刀闸臂边缘线集合和右刀闸臂边缘线集合进行对称配对。
对于左刀闸臂边缘线集合分配权重的方式为:遍历左刀闸臂边缘线集合中的所有边缘线,计算每条左刀闸臂边缘线角度并根据其对左刀闸臂边缘线进行分类,给定高角度阈值和低角度阈值,将左刀闸臂边缘线角度大于高角度阈值对应的左刀闸臂边缘线设定为垂直边缘线3,将左刀闸臂边缘线角度小于低角度阈值对应的左刀闸臂边缘线设定为水平边缘线4,将左刀闸臂边缘线角度介于低角度阈值和高角度阈值之间对应的左刀闸臂边缘线设定为倾斜边缘线5;对左刀闸臂的所有垂直边缘线3,设定左刀闸臂左中点1的x坐标值L_x,在左刀闸臂左中点1的左右两侧分别寻找两个与L_x相差最小的x坐标所对应的边缘点,左侧两个边缘点的x坐标值记作L_x1和L_x2,L_x 1大于L_x2;右侧两个边缘点的x坐标值记作R_x1和R_x2,R_x 1大于R_x2;对左刀闸臂的所有水平边缘线4,设定左刀闸臂左中点1的y坐标值为L_y,在左刀闸臂左中点的上下两侧分别寻找两个与L_y相差最小的y坐标所对应的边缘点,上侧两个边缘点的y 坐标值记作T_y1和T_y2,T_y1大于T_y2;下侧两个边缘点的y坐标值记作 B_y1和B_y2,B_y1大于B_y2;对左刀闸臂的所有倾斜边缘线5,在左刀闸臂左中点1的左上侧和右下侧分别寻找两个与L_x相差最小的x坐标对应的边缘点,与L_y相差最小的y坐标对应的边缘点,左上侧两个边缘点的x坐标值记作L_xx1和L_xx2,L_xx1大于_xx2,y坐标值记作T_yy1和T_yy2,T_yy1大于T_yy2;右下侧两个边缘点的x坐标值记作R_xx1和R_xx2,R_xx1大于R_xx2, y坐标值记作B_yy1和B_yy2,B_yy1大于B_yy2;获取每条垂直边缘线3的权重的方式为:遍历位于左刀闸臂左中点1左侧的每条垂直边缘线3上的每个边缘点,该边缘点的x坐标值大于等于L_x1时其贡献权值为Value_W,该边缘点的x 坐标值大于等于L_x2小于L_x1时其贡献权值为Value_W/2,否则该边缘点贡献权值为0;遍历位于左刀闸臂左中点1右侧的每条垂直边缘线上的每个边缘点,该边缘点的x坐标值小于等于L_x2时其贡献权值为Value_W,该边缘点的x坐标值大于L_x2小于等于L_x1时其贡献权值为Value_W/2,否则该边缘点贡献权值为0,所有边缘点的贡献权值的总和为当前垂直边缘线的权重;获取每条水平边缘线4的权重的方式为:遍历位于左刀闸臂左中点1上侧的每条水平边缘线上的每个边缘点,该边缘点的y坐标值大于等于T_y1时其贡献权值为Value_W,该边缘点的y坐标值大于等于T_y2小于T_y1时其贡献权值为Value_W/2,否则该边缘点的贡献权值为0;遍历位于左刀闸臂左中点1下侧的每条水平边缘线上的每个边缘点,该边缘点的y坐标值小于等于B_y2时其贡献权值为Value_W,该边缘点y坐标值大于B_y2小于等于B_y1时其贡献权值为Value_W/2,否则该边缘点的贡献权值为0,所有边缘点的贡献权值的总和为当前水平边缘线的权重;获取每条倾斜边缘线5的权重的方式为:遍历位于左刀闸臂左中点1左上侧的每条倾斜边缘线上的每个边缘点,该边缘点的x坐标值大于等于L_xx1时其贡献权值为Value_W,该边缘点的x坐标值大于等于L_xx2小于L_xx1时其贡献权值为Value_W/2,否则该边缘点的贡献权值为0,该边缘点的y坐标值大于等于 T_yy1时其贡献权值为Value_W,该边缘点的y坐标值大于等于T_yy2小于T_yy1 时其贡献权值为Value_W/2,否则该边缘点的贡献权值为0;遍历位于左刀闸臂左中点右下侧的每条倾斜边缘线上的每个边缘点,该边缘点的x坐标值小于等于 L_xx2时其贡献权值为Value_W,该边缘点的x坐标值大于L_xx2小于等于L_xx1 时其贡献权值为Value_W/2,否则该边缘点的贡献权值为0,该边缘点的y坐标值小于等于B_yy2时其贡献权值为Value_W,该边缘点的y坐标值大于B_yy2 小于等于B_yy1时其贡献权值为Value_W/2,否则该边缘点的贡献权值为0,所有边缘点的贡献权值的总和为当前倾斜边缘线的权重;对于右刀闸臂边缘线集合分配权重的方式和左刀闸臂边缘线集合分配权重的方式一样。
实施例2在实施例1的基础上将左刀闸臂边缘线集合和右刀闸臂边缘线集合权重分配,在对目标图像中的刀闸区域定位的基础上识别出刀闸区域,再对识别出的刀闸边缘线先通过权重分配再经过对称配对后确定刀闸的最终的左右刀闸臂边缘线。
在实施例1和实施例2中,“根据模板图像建立该型号刀闸臂的边界线模型并保存为模型文件”的方式为:在计算机上设置一个程序,利用该程序打开模板图像,根据模板图像对刀闸臂上下边界线进行描边,画出左绝缘子中心线和右绝缘子中心线,将描边对应的线段端点坐标和左右绝缘子中心线对应的线段端点坐标保存为模型文件;若模板图像中刀闸为闭合状态,对整体刀闸臂的上下边界进行描边;若模板图像中刀闸为打开或虚合状态,根据实际左右刀闸臂的上下边界进行描边。模板图像中刀闸的状态是人为识别。
在实施例1和实施例2中,“根据模型文件计算刀闸臂中点”的方式为:当模板图像中刀闸是闭合状态,根据模型文件分别获取整体刀闸臂的上下边界线延长线和左绝缘子中心线延长线的两个交点,记为两个左侧端点,获取整体刀闸臂的上下边界线延长线和右绝缘子中心线延长线的两个交点,记为两个右侧端点;两个左侧端点和两个右侧端点形成的闭合框的中点为刀闸臂中点,或左中点和右中点之间的线段的中点为刀闸臂中点;当模板图像中刀闸是打开或虚合状态,根据模型文件分别获取左刀闸臂的上下边界线延长线和左绝缘子中心线延长线的两个交点,记为两个左侧端点,获取右刀闸臂的上下边界线延长线和右绝缘子中心线延长线的两个交点,记为两个右侧端点;左中点和右中点之间的线段的中点为刀闸臂中点,或两个左侧端点和两个右侧端点形成的闭合框的中点为刀闸臂中点。
在实施例1和实施例2中,“根据模型文件计算刀闸臂中线”的方式为:当模板图像中刀闸是闭合状态,获取采集模板图像的相机的畸变系数,并根据模板图像尺寸计算相机矩阵camera_matrix=[focal_length,0,center.x; 0,focal_length,center.y;0,0,1],其中focal_length为模板图像宽度,center.x和 center.y分别为模板图像中点的x坐标和y坐标;根据所述两个左侧端点、两个右侧端点、畸变系数和相机矩阵获取相机采集时相对于刀闸的坐标位置,相机的 Z轴在模板图像上的投影方向为刀闸臂的中线方向,结合刀闸臂的中点确定刀闸臂的中线;当刀闸是虚合或打开状态,根据所述左中点和左刀闸臂上下边界线的平均斜率获取左中心线,根据所述右中点和右刀闸臂上下边界线的平均斜率获取右中心线,左中心线和右中心线延长形成一个交点;通过该交点和所述中点的连线为刀闸臂的中线。
“当刀闸是打开或虚合状态,根据模型文件计算刀闸臂中线”的另一种方式为:根据左中心线和左刀闸臂的右侧边的交点获取左刀闸臂的右侧中点,根据右中心线和右刀闸臂的左侧边的交点获取右刀闸臂的左侧中点,根据左侧中点、右侧中点、左中点和右中点获取设备采集时相对于刀闸的坐标位置,设备的Z 轴在模板图像上的投影方向为刀闸臂的中线方向,结合刀闸臂的中点确定刀闸臂的中线。
在实施例1和实施例2中,通过多种途径获取对开式刀闸的样本图像的方式包括现场采集、软件模拟和实物模型途径,现场采集的具体方式为采集对开式刀闸在不同状态下的样本图像;软件模拟的具体方式为利用设计软件对现场采集的样本图像进行建模,获取对应的三维模型,在三维模型中配置不同的环境条件,设置开合动作并渲染,获取对开式刀闸的开合运动视频,根据运动视频获取不同状态不同环境不同角度下的刀闸样本图像;实物模型的具体方式为将实物模型放在不同环境下手动开合刀闸并拍摄视频,根据拍摄视频获取不同状态下的刀闸图像。
在电站现场采集,对开式刀闸基本处于完全闭合或完全打开状态,很难获取刀闸开合过程的图像;为了丰富训练样本,通过软件模拟获取刀闸图像的方式为利用UG、Cura、3Dmax、premiere、photoshop等设计软件,根据现场采集的多张刀闸图像进行建模,获取对开式刀闸的三维模型,根据具体情形配置不同的背景、天气和光线等外界环境因素,将建立好的三维模型放入配置好的环境当中,设置开合动作并渲染,获取对开式刀闸的运动视频,根据视频获取不同状态不同环境下以及不同角度下的刀闸图像;实物模型目前可利用3D打印机根据实际对开式刀闸按比例缩放打印制作,也可根据实际比例直接加工制作;大量的样本图像,保证训练模型具有更强的适应性。
利用深度学习对样本图像进行训练获取训练模型包括多种方法。(1)根据对开式刀闸的状态对样本图像中的刀闸臂和左右刀闸臂接触点进行标记,对于“闭合”和“虚合”状态下的刀闸,标记区域为一个包含左右刀闸臂的整体矩形框,同时标记左右刀闸臂中间接触点位置矩形框;对于“打开”状态下的刀闸,标记区域为包含左刀闸臂和包含右刀闸臂的两个矩形框。(2)利用Faster-RCNN 方法对样本图像进行训练获取训练模型,Faster-RCNN是一种基于区域的深度学习目标检测算法,RCNN系列方法包含RCNN,Fast-RCNN以及Faster-RCNN 三种方法,该类方法都是基于区域选择的方法,对于样本图像,由于对开式刀闸设备本身比较光滑,特征点相对较少,但是对开式刀闸本身是大块物体,比较规则形成大块区域,适合使用RCNN系列方法进行定位。(3)利用SSD方法对样本图像进行训练获取训练模型。(4)利用YOLO方法对样本图像进行训练获取训练模型,该方法获得的训练模型检测速度快。实际使用中,可根据用户需求选取合适的方法进行模型训练。
在实施例1和实施例2中,如图6至图8所示,利用训练模型对目标图像进行检测,获取目标图像中一个或一个以上的刀闸所在的区域,对目标图像中的刀闸定位的具体方式为:利用训练模型对目标图像进行检测,获取目标图像中的所有刀闸区域及每个刀闸区域对应的刀闸状态,“闭合”和“虚合”状态的刀闸对应的所在区域为包含左右刀闸臂的整体矩形框区域8,“打开”状态的刀闸对应的所在区域为包含左刀闸臂的左矩形框区域9和包含右刀闸臂的右矩形框区域10;对于“闭合”和“虚合”状态的刀闸同时获取其左右刀闸臂的接触点位置矩形框11;此处是深度学习后的检测结果,不同于建立模型文件的方式。
根据上述两个左侧端点和两个右侧端点获取闭合状态的刀闸的闭合四边形框区域13,计算上述目标图像中整体矩形框区域、左矩形框区域、右矩形框区域分别与闭合四边形框区域的重叠面积,图6至图8中的阴影部分为重叠区域;遍历目标图像中所有“闭合”和“虚合”状态的刀闸所在的区域,给定重叠面积阈值,获取包含左中点和右中点且重叠面积最大并大于重叠面积阈值的区域为最终的左右刀闸臂整体区域,同时计算左右刀闸臂的接触点位置矩形框的中心点并将其记为接触点,以过接触点且与该左右刀闸臂整体区域矩形框短边平行的中心直线12为界限,左侧矩形框为左刀闸臂矩形框,右侧矩形框为右刀闸臂矩形框,实现对目标图像中“闭合”或“虚合”状态的刀闸定位;
若不存在上述包含左中点和右中点且重叠面积最大并大于重叠面积阈值的区域,则表明当前目标图像中待检测的刀闸的状态不是“闭合”或“虚合”状态,从所有“打开”状态的刀闸中实现刀闸定位,遍历目标图像中所有“打开”状态且重叠面积大于重叠面积阈值的刀闸所在的区域,获取包含左中点且重叠面积最大的区域记作第一打开左刀闸臂区域;获取包含右中点且重叠面积最大的区域记作第一打开右刀闸臂区域;遍历目标图像中所有“打开”状态且重叠面积小于等于重叠面积阈值的刀闸所在的区域,获取前两个包含左中点且重叠面积最大的区域记为左刀闸臂匹配区域;获取前两个包含右中点且重叠面积最大的区域记为右刀闸臂匹配区域,左刀闸臂匹配区域和右刀闸臂匹配区域均为矩形框状;
计算任一个左刀闸臂匹配区域的4个顶点到左中点的距离并选取左侧最小距离,相比两个左侧最小距离并将较小的左侧最小距离对应的左刀闸臂匹配区域记为第二打开左刀闸臂区域;计算任一个右刀闸臂匹配区域的4个顶点到右中点的距离并选取右侧最小距离,相比两个右侧最小距离并将较小的右侧最小距离对应的右刀闸臂匹配区域记为第二打开右刀闸臂区域;
给定刀闸臂面积阈值,大于刀闸臂面积阈值的第一打开左刀闸臂区域记为最终左刀闸臂区域,否则大于刀闸臂面积阈值的第二打开左刀闸臂区域记为最终左刀闸臂区域;大于刀闸臂面积阈值的第一打开右刀闸臂区域记为最终右刀闸臂区域,否则大于刀闸臂面积阈值的第二打开右刀闸臂区域记为最终右刀闸臂区域,实现“打开”状态的刀闸定位。
在实施例1和实施例2中,“利用中线将更新边缘线集合左右区分,分别获取左刀闸臂边缘线集合和右刀闸臂边缘线集合”的具体方式为:将根据模型文件计算的刀闸臂的中点和中线直接对应到目标图像中,在目标图像上计算以中点为起点的垂直于中线的方向向左或方向向右的单位方向向量
遍历更新边缘线集合中的边缘线,对其中任一条边缘线的两个端点记作T1和T2,将T1与中点的向量记作
将T2与中点的向量记作
计算
和
对于方向向右的单位方向向量
若
则T1在中线右侧,否则在中线左侧,若
则T2在中线右侧,否则中线左侧;对于方向向左的单位方向向量
若
则T1在中线左侧,否则在中线右侧;若
则T2 在中线左侧,否则中线右侧;若T1和T2均在中线左侧,则该边缘线为左刀闸臂边缘线,若T1和T2均在中线右侧,则该边缘线为右刀闸臂边缘线,若T1和T2分别在中线两侧,计算该边缘线以中线为分割线的左右线段长度,该边缘线为左右侧线段较长侧的边缘线;如此获取左刀闸臂边缘线集合和右刀闸臂边缘线集合。
单位方向向量
计算的具体方式为:设定目标图像上刀闸臂的中线为 y=kx+b,中点坐标为(C
x,C
y),设定垂直于中线且过中点的垂线的直线方程为y=cx+d,c=-1/k,C
y=-1/k*C
x+d,d=C
y+1/k*C
x;根据垂线的直线方程计算以中点为起点且方向向右的单位方向向量
设单位方向向量的终点坐标为(n
x,n
y),则(n
y-C
y)/(n
x-C
x)=-1/k,(n
y-C
y)
2+(n
x-C
x)
2=1,求n
x和n
y,单位方向向量
在实施例2的基础上,“将分配权重后的左刀闸臂边缘线集合和右刀闸臂边缘线集合进行对称配对,确定最终的左刀闸臂边缘线和右刀闸臂边缘线,计算左刀闸臂和右刀闸臂之间的角度”的方式为:给定角度阈值,将分配权重后的左刀闸臂边缘线集合中的任一条边缘线相对于水平位置的角度记为Mh,h代表不同的左刀闸臂边缘线,将任两个左刀闸臂边缘线的角度差值位于角度阈值内的划分为同组,将同组内的左刀闸臂边缘线按照从长到短排序;将分配权重后的右刀闸臂边缘线集合中的任一条边缘线相对于水平位置的角度记为Nm,m代表不同的右刀闸臂边缘线,将任两个右刀闸臂边缘线的角度差值位于角度阈值内的划分为同组,将同组内的右刀闸臂边缘线按照从长到短排序,遍历左刀闸臂边缘线集合的所有同组和右刀闸臂边缘线集合的所有同组进行一一配对;
计算所有同组的平均角度,根据左刀闸臂边缘线集合的每个同组的平均角度和左中点获取每个同组的校正左刀闸臂边缘线,设任一左刀闸臂边缘线集合的同组的平均角度为Ave_L,左中点坐标为(L_x,L_y),则校正左刀闸臂边缘线的斜率为 tan(Ave_L),截距为L_y-tan(Ave_L)*L_x,所以校正左刀闸臂边缘线为 y=tan(Ave_L)*x+L_y-tan(Ave_L)*L_x,根据实施例2中边缘线权重分配的方法计算每个同组的校正左刀闸臂边缘线的权重w_L,将校正左刀闸臂边缘线与中线的交点记作A点;根据右刀闸臂边缘线集合的每个同组的平均角度和右中点获取每个同组的校正右刀闸臂边缘线,设任一右刀闸臂边缘线集合的同组的平均角度为Ave_R,右中点坐标为(R_x,R_y),则校正右刀闸臂边缘线的斜率为 tan(Ave_R),截距为R_y-tan(Ave_R)*R_x,所以校正右刀闸臂边缘线为 y=tan(Ave_R)*x+R_y-tan(Ave_R)*R_x,根据实施例2中边缘线权重分配的方法计算每个同组的校正左刀闸臂边缘线的权重w_L,将校正左刀闸臂边缘线与中线的交点记作A点;根据右刀闸臂边缘线的每个同组的平均角度和右中点获取每个同组的校正右刀闸臂边缘线,计算每个同组的校正右刀闸臂边缘线的权重 w_R,将校正右刀闸臂边缘线与中线的交点记作B点,计算A点和B点之间的距离dAB,刀闸臂左中点和右中点间的距离记作d0;若dAB/d0>0.5则剔除A点所在的同组和B点所在的同组;
计算目标图像中刀闸定位的左矩形框区域角度和右矩形框区域角度,计算左矩形框区域角度和校正左刀闸臂边缘线的角度的差d_A_L,计算右矩形框区域角度和校正右刀闸臂边缘线的角度的差d_A_R,对称配对的配对分数设定为S1,结合刀闸定位的最终配对分数为S,
配对分数S1和S的计算方式为:
设定ratio=dAB/d0,
S1=a*exp(-(ratio*ratio*a2))*w_L*w_R
a是调节参数,配对公式的含义:每对配对的校正左刀闸臂边缘线与中线的交点和校正右刀闸臂边缘线与中线的交点间的距离d
AB越小,校正左刀闸臂边缘线的权重和校正右刀闸臂边缘线的权重越大,刀闸定位的左矩形框区域角度和校正左刀闸臂边缘线的角度的差越小,刀闸定位的右矩形框区域角度和校正右刀闸臂边缘线的角度的差越小,配对分数越高,对应的校正左刀闸臂边缘线和校正右刀闸臂边缘线是最终的左刀闸臂边缘线和右刀闸臂边缘线的概率越高;分数最高的配对组合对应的校正左刀闸臂边缘线和校正右刀闸臂边缘线即为最终的左刀闸臂边缘线和右刀闸臂边缘线。调节参数a的取值可通过实验和先验知识确定。
最终的左刀闸臂边缘线相对于闭合状态刀闸臂所在直线的角度为α1,最终的右刀闸臂边缘线相对于闭合状态刀闸臂所在直线的角度为α2,左右刀闸臂间的最终夹角为θ=|α2-α1|,实际使用中可根据用户需求确定刀闸打开、虚合和闭合状态的角度范围,根据计算的刀闸臂间的夹角确定刀闸臂的最终状态。
对开式刀闸指的是双柱中心断口式隔离开关,双柱指的是左右两侧竖直的绝缘子,中心断口指的是左右刀闸臂在虚合或闭合状态时的接触位置,该类隔离开关在开合过程中左右刀闸臂以绝缘子上端点为旋转点,左右刀闸臂同步对称开合。本发明中所指的刀闸是对开式刀闸的缩写。
建立模型文件和根据训练模型获取刀闸状态时,刀闸的闭合状态指的是左右刀闸臂在同一直线上,虚合状态指的是左右刀闸臂间存在接触但不在同一直线上,打开状态指的是左右刀闸臂间不存在接触,这里的刀闸状态是笼统的,而刀闸最终的状态是根据刀闸臂间的夹角和用户给定的刀闸角度阈值最终确定。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。