一种能够快速识别电线的刀闸状态检测方法
技术领域
本发明涉及图像识别技术领域,特别涉及一种能够快速识别电线的刀闸状态检测方法。
背景技术
刀闸是高压开关电器中使用次数非常频繁的一种电器,在电路中起隔离作用。在实际应用中,由于刀闸的长期运转,会出现刀闸闭合或打开不到位的情形,该情形会导致刀闸臂之间产生电弧。电弧是一种气体放电现象,电流通过某些绝缘介质产生的瞬间火花可能,会造成火灾或威胁人身安全;此外,电弧温度极高,容易把绝缘材料烧毁,造成漏电事件或造成刀闸设备损坏;因此,刀闸的闭合状态需要准确的检测。
检测刀闸开合是否到位,实践中主要需要依靠人工观测;在现有技术中,也通过计算刀闸臂之间的角度,判断刀闸开合的程度。目前计算刀闸臂之间的角度,国内外出现了许多计算方案,一种是对电路内部进行改动,增加传感器或者信号灯;一种是基于数字图像处理的方法,通过监控图像对刀闸的开关状态进行判断,在基于数字图像处理的方法中,由于背景复杂,对于刀闸难以正确匹配,降低检测精度。此外,由于拍摄环境影响,电线干扰,图像中刀闸臂边缘模糊,难以区分刀闸臂边缘线和电线,影响检测效果,无法准确检测刀闸臂之间的角度。
发明内容
为了解决现有技术中难以区分刀闸臂边缘线和电线以及刀闸状态检测不准确的问题,本发明提出一种能够快速识别电线的刀闸状态检测方法。
本发明的技术方案是这样实现的:
一种能够快速识别电线的刀闸状态检测方法,采集刀闸的模板图像,根据模板图像建立该型号刀闸臂的边界线模型并保存为模型文件;
在同样的位置利用同样的设备采集同一刀闸的目标图像,对目标图像进行边缘检测,获取边缘线集合;
将根据模型文件计算的刀闸的固定特征点对应到目标图像中,将不符合固定特征的边缘线剔除,获取第一更新边缘线集合;
遍历第一更新边缘线集合内的每条边缘线,将任一条边缘线划分成多段,每一段记作分段边缘线,统计每条分段边缘线的局部区域范围内的灰度分布直方图;
对于每条边缘线的每一条分段边缘线,根据其分布直方图在其局部区域范围内寻找其作为分段电线的边界线,并记录其两侧背景区域的灰度值和两侧边界线间的宽度;对于每条边缘线,计算其所有的分段边缘线作为分段电线的边界线的两侧背景区域的灰度值的平均值和两侧边界线间的宽度的平均值,作为其两侧的背景区域灰度值和当前边缘线作为电线的宽度;计算每条边缘线两侧的背景区域灰度值的差值,给定平均灰度差阈值和平均宽度阈值,差值小于平均灰度差阈值且宽度小于平均宽度阈值的边缘线则判定为电线,将所有的电线剔除,获取第二更新边缘线集合;
将第二更新边缘线集合根据刀闸的特性对称区分,分别获取第一刀闸臂集合和第二刀闸臂集合并进行对称配对,确定最终的第一刀闸臂边缘线和第二刀闸臂边缘线,计算第一刀闸臂和第二刀闸臂间的夹角。
优选的是,“将任一条边缘线划分成多段,每一段记作分段边缘线,统计每条分段边缘线的局部区域范围内的灰度分布直方图”的具体方式为:
遍历第一更新边缘线集合中的每一条边缘线,设当前边缘线的起点坐标为pt1=(pt1.x,pt1.y),终点坐标为pt2=(pt2.x,pt2.y),若|pt2.y-pt1.y|<|pt2.x-pt1.x|,则判定当前边缘线为水平边缘线,否则判定当前边缘线为垂直边缘线;
根据类别和长度将每条边缘线划分为多条分段边缘线,设每条分段边缘线长度为len,分段数目为nSegs,对于水平边缘线,nSegs=∣pt2.x-pt1.x∣/len+1;对于垂直边缘线,nSegs=∣pt2.y-pt1.y∣/len+1,其中,若∣pt2.x-pt1.x∣/len或∣pt2.y-pt1.y∣/len不是整数,则只取其整数部分;
对于水平边缘线,给定每条水平边缘线的每条分段边缘线的上下局部区域,该上下局部区域的左右长度为所在分段边缘线的长度;以每条分段边缘线为基准,向上或向下移动单位像素,每移动一次计算移动后边缘线上的所有边缘点位置对应的图像的灰度值,计算该次移动后所有灰度值的平均灰度值,统计其在上下局部区域内每次移动的平均灰度值形成的灰度分布直方图,直方图中直方柱值的排列顺序为局部区域范围内从上到下的平均灰度值,对当前水平边缘线,统计其nSegs个分段分边缘线的灰度分布直方图;
对于垂直边缘线,给定每条水平边缘线的每条分段边缘线的左右局部区域,该左右局部区域的上下宽度为所在分段边缘线的长度;以每条分段边缘线为基准,向左或向右移动单位像素,每移动一次计算移动后边缘线上的所有边缘点位置对应的图像的灰度值的平均灰度值,统计其在左右局部区域内每次移动的平均灰度值形成的灰度分布直方图,直方图中直方柱值的排列顺序为局部区域范围内从左到右的平均灰度值,对当前垂直边缘线,统计其nSegs个分段分边缘线的灰度分布直方图。
优选的是,“对于每条边缘线的每一条分段边缘线,根据其分布直方图在其局部区域范围内寻找其作为分段电线的边界线,并记录其两侧背景区域的灰度值和两侧边界线间的宽度”的具体方式为:
根据每条分段边缘线的灰度分布直方图获取其直方柱的平均值,记作aveValue;
对每条分段边缘线的灰度分布直方图,以该图中的中心处的直方柱位置为基准,获取对其设定的局部范围内的直方柱的波峰值peak和波谷值valley,记录波峰值所在直方柱的位置和波谷值所在直方柱的位置;
若波峰值所在直方柱在中心处的直方柱的右侧,向其右侧寻找更大的波峰值,否则向其左侧寻找更大的波峰值,更新波峰值和其所在直方柱的位置,若未找到更大的波峰值则将其更新为当前波峰值;
若波谷值所在直方柱在中心处的直方柱的右侧,向其右侧寻找更小的波谷值,否则向其左侧寻找更小的波谷值,更新波谷值和其所在直方柱的位置,若未找到更小的波谷值则将其更新为当前波谷值;
分别计算更新后的波峰值和波谷值与平均值aveValue的差值peak-aveValue和aveValue-valley,若peak-aveValue大于aveValue-valley,则将当前波峰值所在直方柱的位置作为寻找其所在分段边缘线作为电线的起始位置,否则将当前波谷值所在直方柱的位置作为寻找其所在分段边缘线作为电线的起始位置;
如果起始位置为波峰值所在直方柱的位置,分别向其两侧寻找,两侧直方柱值为先下降再上升,找到直方柱值下降到最小值和开始上升的直方柱所对应的位置并记录,此时的下降到最小值的两个直方柱的位置为当前分段边缘线作为电线的两侧边界位置,两侧边界位置间的宽度为当前分段边缘线作为电线的宽度,开始上升的两个直方柱对应的平均灰度值为电线边界线的两侧背景区域的灰度值;
如果起始位置为波谷值所在直方柱的位置,分别向其两侧寻找,两侧直方柱值为先上升再下降,找到直方柱值上升到最大值和开始下降的直方柱所对应的位置并记录,此时的上升到最大值的两个直方柱的位置为当前分段边缘线作为电线的两侧边界位置,两侧边界位置间的宽度为当前分段边缘线作为电线的宽度,开始下降的两个直方柱对应的平均灰度值分别为电线边界线的两侧背景区域的灰度值。
优选的是,“将第一刀闸臂边缘线集合和第二刀闸臂边缘线集合进行对称配对,确定最终的第一刀闸臂边缘线和第二刀闸臂边缘线”的方式为:
给定角度阈值,对于第一刀闸臂边缘线集合中的任一条边缘线相对于水平位置的角度记为Mh,h代表不同的第一刀闸臂边缘线,将任两个第一刀闸臂边缘线的角度差值位于角度阈值内的划分为同组,将同组内的第一刀闸臂边缘线按照从长到短排序;对于第二刀闸臂边缘线集合中的任一条边缘线相对于水平位置的角度记为Nm,m代表不同的第二刀闸臂边缘线,将任两个第二刀闸臂边缘线的角度差值位于角度阈值内的划分为同组,将同组内的第二刀闸臂边缘线按照从长到短排序;
遍历第一刀闸臂边缘线集合的所有同组和第二刀闸臂边缘线集合的所有同组并进行一一配对,计算任两组的校正刀闸臂边缘线和配对分数,分数最高的组合对应的校正第一刀闸臂边缘线和校正第二刀闸臂边缘线即为最终的第一刀闸臂边缘线和第二刀闸臂边缘线。
优选的是,对目标图像进行边缘检测前,通过多种途径获取刀闸的样本图像,利用深度学习对样本图像进行训练获取训练模型,利用训练模型对目标图像进行检测,获取目标图像中一个或一个以上的刀闸所在的区域,结合模型文件对目标图像中的刀闸定位。
本发明的有益效果为:本发明的能够快速识别电线的刀闸状态检测方法,先采集模板图像,建立模板图像中该型号刀闸臂的边界线模型并保存为模型文件,对于检测的目标图像利用同样的设备在同样的位置采集,目标图像和模板图像的图像大小以及相对采集设备的位置一样;因此,将根据模型文件计算的固定特征点对应到目标图像中作为参照。根据训练模型和模型文件实现目标图像中刀闸定位并进行边缘检测,获取所有边缘线;在实际使用中,由于变电站刀闸图像中容易出现很多电线,对刀闸臂边缘线检测造成干扰,为提高检测精度,首先要进行电线识别,剔除所有可能的电线,由于电线宽度相较于刀闸臂较小,给定局部区域范围,统计边缘线的局部区域灰度直方图,对于较细的电线,其两侧灰度差较小,而对于刀闸臂边缘线,其两侧灰度差较大,因此可以实现电线识别。具体实现时,先给定局部区域范围,保证在该局部区域范围内若存在电线则包含完整的电线,再遍历每条边缘线,将每条边缘线划分成多条分段边缘线,对每条分段边缘线统计其局部区域范围内的灰度分布直方图,此处进行线段划分的原因是实际中的电线很多是弯曲的,且受光照的影响,同一根电线的不同位置电线颜色可能不相同,而将其划分成多条较短的边缘线,可认为其是直线且分段边缘线颜色基本一致,有利于提高检测的精度;然后根据每条分段边缘线的灰度分布直方图在局部区域内寻找其可能的分段电线边界线及其两侧背景区域的灰度值,计算每条边缘线所有分段边缘线的两侧分段电线边界线的平均宽度及其两侧背景区域的灰度值的平均值,作为当前边缘线作为电线的宽度和两侧背景区域的灰度值,并计算两侧的灰度差值,给定平均灰度差阈值和平均宽度阈值,若两侧的灰差值小于给定的平均灰度差阈值且宽度小于平均宽度差阈值,则当前边缘线为电线,从而实现电线识别,完成电线识别后可帮助精确识别刀闸臂边缘线,从而提高刀闸臂间角度计算的精度。本发明的方法识别精度高,检测速度快,能够有效帮助剔除电线对刀闸臂边缘线的干扰,具有重要的实际应用价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中统计一条分段水平边缘线的局部区域范围内的灰度分布直方图的示意图;
图2为本发明中统计一条分段垂直边缘线的局部区域范围内的灰度分布直方图的示意图;
图3为本发明中根据每条分段边缘线的灰度分布直方图计算作为其分段电线的宽度和两侧背景区域平均灰度值的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:一种能够快速识别电线的刀闸状态检测方法,采集刀闸的模板图像,根据模板图像建立该型号刀闸臂的边界线模型并保存为模型文件;在同样的位置利用同样的设备采集同一刀闸的目标图像,在同样的位置利用同样的设备采集同一刀闸的目标图像;通过多种途径获取刀闸的样本图像,利用深度学习对样本图像进行训练获取训练模型,利用训练模型对目标图像进行检测,获取目标图像中一个或一个以上的刀闸所在的区域,结合模型文件对目标图像中的刀闸定位;根据定位结果对目标图像中的刀闸进行边缘检测,获取边缘线集合;将根据模型文件计算的刀闸的固定特征点对应到目标图像中,将不符合固定特征的边缘线剔除,获取第一更新边缘线集合;遍历第一更新边缘线集合内的每条边缘线,将任一条边缘线划分成多段,每一段记作分段边缘线,统计每条分段边缘线的局部区域范围内的灰度分布直方图;对于每条边缘线的每一条分段边缘线,根据其分布直方图在其局部区域范围内寻找其作为分段电线的边界线,并记录其两侧背景区域的灰度值和两侧边界线间的宽度;对于每条边缘线,计算其所有的分段边缘线作为分段电线的边界线的两侧背景区域的灰度值的平均值和两侧边界线间的宽度的平均值,作为其两侧的背景区域灰度值和当前边缘线作为电线的宽度;计算每条边缘线两侧的背景区域灰度值的差值,给定平均灰度差阈值和平均宽度阈值,差值小于平均灰度差阈值且宽度小于平均宽度阈值的边缘线则判定为电线,将所有的电线剔除,获取第二更新边缘线集合;将第二更新边缘线集合根据刀闸的特性对称区分,分别获取第一刀闸臂集合和第二刀闸臂集合并进行对称配对,确定第一刀闸臂边缘线和第二刀闸臂边缘线,计算第一刀闸臂和第二刀闸臂间的夹角。
刀闸包括对开式刀闸、剪刀式刀闸等刀闸种类,对于对开式刀闸,固定特征点为对开式刀闸的中点、左中点以及右中点,对于剪刀式刀闸,固定特征点为剪刀式刀闸的关节点。对开式刀闸指的是双柱中心断口式隔离开关,双柱指的是左右两侧竖直的绝缘子,中心断口指的是左右刀闸臂在虚合或闭合状态时的接触位置,该类隔离开关在开合过程中左右刀闸臂以绝缘子上端点为旋转点,左右刀闸臂同步对称开合。剪刀式刀闸指的是垂直伸缩式隔离开关,该类隔离开关以中间关节点为基准,将刀闸分为上下刀闸臂,在刀闸开合过程中,刀闸臂利用关节点进行伸缩式开合,完全闭合时两个刀闸臂在同一直线上,完全打开时两个刀闸臂折叠在一起。
对于对开式刀闸,刀闸的特征是无论何种状态下左右刀闸臂都左右对称,对于剪刀式刀闸,刀闸的特性是无论何种状态下都存在过刀闸臂关节点的直线将上下刀闸臂间的角度平分,上下刀闸臂间的角度关于角平线上下对称。
实施例中“结合模型文件对目标图像中的刀闸定位”,对于对开式刀闸:利用训练模型对目标图像进行检测,获取目标图像中的所有刀闸区域及每个刀闸区域对应的刀闸状态,“闭合”和“虚合”状态的刀闸对应的所在区域为包含左右刀闸臂的整体矩形框区域,“打开”状态的刀闸对应的所在区域为包含左刀闸臂的左矩形框区域和包含右刀闸臂的右矩形框区域;对于“闭合”和“虚合”状态的刀闸同时获取其左右刀闸臂的接触点位置矩形框;根据模型文件获取闭合状态的刀闸的闭合四边形框区域,计算上述目标图像中整体矩形框区域、左矩形框区域、右矩形框区域分别与闭合四边形框区域的重叠面积;遍历目标图像中所有“闭合”和“虚合”状态的刀闸所在的区域,获取包含左中点和右中点且重叠面积最大的区域为最终的左右刀闸臂整体区域,同时计算左右刀闸臂的接触点位置矩形框的中心点并将其记为接触点,以过接触点且与该左右刀闸臂整体区域矩形框短边平行的中心直线为界限,左侧矩形框为左刀闸臂矩形框,右侧矩形框为右刀闸臂矩形框,实现对目标图像中“闭合”或“虚合”状态的刀闸定位;给定重叠面积阈值,遍历目标图像中所有“打开”状态且重叠面积大于重叠面积阈值的刀闸所在的区域,获取包含左中点且重叠面积最大的区域记作第一打开左刀闸臂区域;获取包含右中点且重叠面积最大的区域记作第一打开右刀闸臂区域;遍历目标图像中所有“打开”状态且重叠面积小于等于重叠面积阈值的刀闸所在的区域,获取前两个包含左中点且重叠面积最大的区域记为左刀闸臂匹配区域;获取前两个包含右中点且重叠面积最大的区域记为右刀闸臂匹配区域;计算任一个左刀闸臂匹配区域的4个顶点到左中点的距离并选取左最小距离,相比两个左最小距离并将较小的左最小距离对应的左刀闸臂匹配区域记为第二打开左刀闸臂区域;计算任一个右刀闸臂匹配区域的4个顶点到右中点的距离并选取右最小距离,相比两个右最小距离并将较小的右最小距离对应的右刀闸臂匹配区域记为第二打开右刀闸臂区域;给定刀闸臂面积阈值,大于刀闸臂面积阈值的第一打开左刀闸臂区域记为最终左刀闸臂区域,否则大于刀闸臂面积阈值的第二打开左刀闸臂区域记为最终左刀闸臂区域;大于刀闸臂面积阈值的第一打开右刀闸臂区域记为最终右刀闸臂区域,否则大于刀闸臂面积阈值的第二打开右刀闸臂区域记为最终右刀闸臂区域,实现对目标图像中“打开”状态的对开式刀闸定位。
实施例中“结合模型文件对目标图像中的刀闸定位”,对于剪刀式刀闸:利用训练模型对当前帧图像进行检测,获取当前帧图像中的所有刀闸区域及每个刀闸区域对应的刀闸状态,“闭合”和“虚合”状态的刀闸对应的所在区域为包含上下刀闸臂及上下端点的整体矩形框区域,“打开”状态的刀闸对应的所在区域为包含上下刀闸臂和下端点的折叠矩形框区域;根据模型文件获取闭合状态的刀闸的闭合四边形框区域、上中点和下中点,上中点为闭合四边形框的上边界的中点,下中点为闭合四边形框的下边界的中点,计算上述整体矩形框区域和折叠矩形框区域分别与闭合四边形框区域的重叠面积;遍历当前帧图像中所有“闭合”和“虚合”状态的刀闸所在的区域,给定重叠面积阈值,获取包含上中点和下中点且重叠面积最大并大于重叠面积阈值的区域,则该区域即为最终的上下刀闸臂整体区域,以此实现“闭合”或“虚合”状态的刀闸定位;若不存在上述包含上中点和下中点且重叠面积最大并大于重叠面积阈值的区域,则表明当前待检测的刀闸当前状态不是“闭合”或“虚合”状态,从所有“打开”状态的刀闸中实现刀闸定位,遍历目标图像中所有“打开”状态的刀闸所在的区域,获取包含下中点且重叠面积最大并大于重叠面积阈值的区域,若该区域存在,则该区域即为最终的打开状态的刀闸臂区域,以此实现对目标图像中“打开”状态的剪刀式刀闸定位。
实施例中“根据模板图像建立该型号刀闸臂的边界线模型并保存为模型文件”的方式为:在计算机上设置一个程序,利用该程序打开模板图像,对于对开式刀闸,根据模板图像对刀闸臂上下边界线进行描边,画出左绝缘子中心线和右绝缘子中心线,将描边对应的线段端点坐标和左右绝缘子中心线对应的线段端点坐标保存为模型文件;若模板图像中刀闸为闭合状态,对整体刀闸臂的上下边界进行描边;若模板图像中刀闸为虚合或打开状态,根据实际左右刀闸臂的上下边界进行描边。对于剪刀式刀闸,根据模板图像中剪刀式刀闸的上下刀闸臂的左右边界和上下边界进行描边,形成一个四边形模板,上下刀闸臂在该四边形模板内,将四边形模板的四个端点坐标保存为模型文件;若模板图像中的刀闸是闭合状态,根据刀闸臂的实际位置进行描边,若模板图像中的刀闸是虚合或打开状态,根据刀闸的上下固定边界估算刀闸臂闭合状态下的位置,并对其闭合状态下的位置描边。
“将任一条边缘线划分成多段,每一段记作分段边缘线,统计每条分段边缘线的局部区域范围内的灰度分布直方图”的具体方式为:遍历第一更新边缘线集合中的每一条边缘线,设当前边缘线的起点坐标为pt1=(pt1.x,pt1.y),终点坐标为pt2=(pt2.x,pt2.y),若|pt2.y-pt1.y|<|pt2.x-pt1.x|,则判定当前边缘线为水平边缘线,否则判定当前边缘线为垂直边缘线;根据类别(指的是水边边缘线和垂直边缘线)和长度将每条边缘线划分为多条分段边缘线,设每条分段边缘线长度为len,分段数目为nSegs,对于水平边缘线,nSegs=∣pt2.x-pt1.x∣/len+1;对于垂直边缘线,nSegs=∣pt2.y-pt1.y∣/len+1,其中,若∣pt2.x-pt1.x∣/len或∣pt2.y-pt1.y∣/len不是整数,则只取其整数部分;如图1所示,对于水平边缘线,给定每条水平边缘线的每条分段边缘线的上下局部区域,该上下局部区域的左右长度为所在分段边缘线的长度;以每条分段边缘线为基准,向上或向下移动单位像素,每移动一次计算移动后边缘线上的所有边缘点位置对应的图像的灰度值,计算该次移动后所有灰度值的平均灰度值,统计其在上下局部区域内每次移动的平均灰度值形成的灰度分布直方图,直方图中直方柱值的排列顺序为局部区域范围内从上到下的平均灰度值,对当前水平边缘线,统计其nSegs个分段分边缘线的灰度分布直方图;如图2所示,对于垂直边缘线,给定每条水平边缘线的每条分段边缘线的左右局部区域,该左右局部区域的上下宽度为所在分段边缘线的长度;以每条分段边缘线为基准,向左或向右移动单位像素,每移动一次计算移动后边缘线上所有边缘点位置对应的图像的灰度值的平均灰度值,统计其在左右局部区域内每次移动的平均灰度值形成的灰度分布直方图,直方图中直方柱值的排列顺序为局部区域范围内从左到右的平均灰度值,对当前垂直边缘线,统计其nSegs个分段分边缘线的灰度分布直方图。
“对于每条边缘线的每一条分段边缘线,根据其分布直方图在其局部区域范围内寻找其作为分段电线的边界线,并记录其两侧背景区域的灰度值和两侧边界线间的宽度”的具体方式为:根据每条分段边缘线的灰度分布直方图获取其直方柱的平均值,记作aveValue;如图3所示,设当前分段边缘线的灰度分布直方图的直方柱数目为14,以直方柱数目除以2并取整为直方图中心处直方柱的位置,以该图中的中心处的直方柱7位置为基准,获取从4至10内的直方柱的波峰值peak和波谷值valley,记录波峰值所在直方柱的位置7和波谷值所在直方柱的位置10;若波峰值所在直方柱7在中心处的直方柱的右侧,向其右侧寻找更大的波峰值,否则向其左侧寻找更大的波峰值,更新波峰值和其所在直方柱的位置,若未找到更大的波峰值则将其更新为当前波峰值;若波谷值所在直方柱10在中心处的直方柱7的右侧,向其右侧寻找更小的波谷值,否则向其左侧寻找更小的波谷值,更新波谷值和其所在直方柱的位置,若未找到更小的波谷值则将其更新为当前波谷值;分别计算更新后的波峰值和波谷值与平均值aveValue的差值peak-aveValue和aveValue-valley,若peak-aveValue大于aveValue-valley,则将当前波峰值所在直方柱7的位置作为寻找其所在分段边缘线作为电线的起始位置,否则将当前波谷值所在直方柱的位置作为寻找其所在分段边缘线作为电线的起始位置;如果起始位置为波峰值所在直方柱的位置,分别向其两侧寻找,两侧直方柱值为先下降再上升,找到直方柱值下降到最小值和开始上升的直方柱所对应的位置并记录,此时的下降到最小值的两个直方柱c和d的位置为当前分段边缘线作为电线的两侧边界位置,两侧边界位置间的宽度为当前分段边缘线作为电线的宽度,开始上升的两个直方柱e和f对应的平均灰度值为电线边界线的两侧背景区域的灰度值;如果起始位置为波谷值所在直方柱的位置,分别向其两侧寻找,两侧直方柱值为先上升再下降,找到直方柱值上升到最大值和开始下降的直方柱所对应的位置并记录,此时的上升到最大值的两个直方柱的位置为当前分段边缘线作为电线的两侧边界位置,两侧边界位置间的宽度为当前分段边缘线作为电线的宽度,开始下降的两个直方柱对应的平均灰度值分别为电线边界线的两侧背景区域的灰度值。
“将第一刀闸臂边缘线集合和第二刀闸臂边缘线集合进行对称配对,确定第一刀闸臂边缘线和第二刀闸臂边缘线”的方式为:给定角度阈值,对于第一刀闸臂边缘线集合中的任一条边缘线相对于水平位置的角度记为Mh,h代表不同的第一刀闸臂边缘线,将任两个第一刀闸臂边缘线的角度差值位于角度阈值内的划分为同组,将同组内的第一刀闸臂边缘线按照从长到短排序;对于第二刀闸臂边缘线集合中的任一条边缘线相对于水平位置的角度记为Nm,m代表不同的第二刀闸臂边缘线,将任两个第二刀闸臂边缘线的角度差值位于角度阈值内的划分为同组,将同组内的第二刀闸臂边缘线按照从长到短排序;
遍历第一刀闸臂边缘线集合的所有同组和第二刀闸臂边缘线集合的所有同组并进行一一配对,计算任两组的校正刀闸臂边缘线和配对分数,分数最高的组合对应的校正第一刀闸臂边缘线和校正第二刀闸臂边缘线即为最终的第一刀闸臂边缘线和第二刀闸臂边缘线。对于对开式刀闸,第一刀闸臂和第二刀闸臂分别为左刀闸臂和右刀闸臂,第一刀闸臂边缘线和第二刀闸臂边缘线分别为左刀闸臂边缘线和右刀闸臂边缘线;对于剪刀式刀闸,第一刀闸臂和第二刀闸臂分别为上刀闸臂和下刀闸臂,第一刀闸臂边缘线和第二刀闸臂边缘线分别为上刀闸臂边缘线和下刀闸臂边缘线。
对于对开式刀闸,“遍历左刀闸臂边缘线集合的所有同组和右刀闸臂边缘线集合的所有同组并进行一一配对,计算任两组的校正刀闸臂边缘线和配对分数”的具体方式为:遍历左刀闸臂边缘线集合的所有同组和右刀闸臂边缘线集合的所有同组,计算每组的平均角度,左刀闸臂边缘线集合每组的平均角度结合左中点获取左刀闸臂边缘线集合每组的校正左刀闸臂边缘线,校正左刀闸臂边缘线与中线的交点记作A点;右刀闸臂边缘线集合每组的平均角度结合右中点获取右刀闸臂边缘线集合每组的校正右刀闸臂边缘线,校正右刀闸臂边缘线与中线的交点记作B点,计算A点和B点之间的距离d
AB;刀闸臂左中点和右中点的距离为d
0,d
AB/d
0越小表示配对的校正左刀闸臂边缘线和校正右刀闸臂边缘线为实际左刀闸臂边缘线和实际右刀闸臂边缘线的概率越大,而d
AB/d
0>0.5则剔除A点所在的同组和B点所在的同组;设定任两组配对分数的计算公式为
其中系数S
L表示左刀闸臂边缘线集合的任一个同组内边缘线长度的平方和,S
R表示右刀闸臂边缘线集合的任一个同组内边缘线长度的平方和,β
0为可调节的灵敏度参数,在实际使用中可通过取不同的β
0值获取不同的分数,根据不同的分数确定配对结果,选择配对结果最好的对应的β
0值为最终的β
0值,不同的用户也可根据实际情况自行确定;最高的配对分数S
1对应的A点所在的校正左刀闸臂边缘线和B点所在的校正右刀闸臂边缘线为最终的左刀闸臂边缘线和右刀闸臂边缘线。
对于剪刀式刀闸,“遍历上刀闸臂边缘线集合的所有同组和下刀闸臂边缘线集合的所有同组并进行一一配对,计算任两组的校正刀闸臂边缘线和配对分数”的方式为:根据模型文件计算顶部两个端点之间的上中点和底部两个端点之间的下中点,计算每组的平均角度,上刀闸臂边缘线集合每组的平均角度结合上中点获取上刀闸臂边缘线集合每组的校正上刀闸臂边缘线,校正上刀闸臂边缘线与角平分线的交点记作C点;下刀闸臂边缘线集合每组的平均角度结合下中点获取下刀闸臂边缘线集合每组的校正下刀闸臂边缘线,校正下刀闸臂边缘线与角平分线的交点记作D点,计算C点和D点之间的距离dCD;刀闸臂的上固定边界至下固定边界的距离为d1,dCD/d1>0.5则剔除C点所在的同组和D点所在的同组;
设定任两组配对分数的计算公式为
其中系数S
T表示上刀闸臂边缘线集合的任一个同组内边缘线长度的平方和;S
B表示下刀闸臂边缘线集合的任一个同组内边缘线长度的平方和;β
1为可调节的灵敏度参数。
对于对开式刀闸的固定特征点中点和特征线中线的获取方式为:当刀闸是闭合状态,根据模型文件获取刀闸臂闭合状态下两个左侧端点和两个右侧端点,两个左侧端点和两个右侧端点形成的闭合框的中点为刀闸臂中点;当刀闸是打开或虚合状态,根据模型文件获取左中点和右中点,左中点和右中点之间的线段的中点为刀闸臂中点。当刀闸是闭合状态,获取采集模板图像的相机的畸变系数,并根据模板图像尺寸计算相机矩阵camera_matrix=[focal_length,0,center.x;0,focal_length,center.y;0,0,1],其中focal_length为模板图像宽度,center.x和center.y分别为模板图像中点的x坐标和y坐标;根据对应的两个左侧端点和两个右侧端点获取设备采集时相对于该刀闸的坐标位置,设备的Z轴在模板图像上的投影方向为刀闸臂的中线方向,结合刀闸臂的中点确定刀闸臂的中线;当刀闸是虚合或打开状态,根据对应的左中点和左刀闸臂上下边界线的平均斜率获取左中心线,根据对应的右中点和右刀闸臂上下边界线的平均斜率获取右中心线,左中心线和右中心线延长形成一个交点;通过该交点和该刀闸中点的连线为刀闸臂的中线。
对于剪刀式刀闸的固定特征点关节点和特征线角平分线的获取方式为:对于剪刀式刀闸是针对其闭合或虚合状态的检测方法,其在打开状态下,不需要精确计算刀闸臂间的角度,故不需要计算关节点和角平分线,这里的刀闸状态指的是根据训练模型获取的刀闸估计状态,是笼统的,根据刀闸臂间夹角获取的刀闸状态才是目标图像中刀闸的最终状态;根据模型文件计算四边形模板的中心点,将中心点对应到目标图像中,以刀闸臂的宽度为宽、刀闸臂宽度的R倍为长在目标图像中建立闭合状态下包含刀闸臂关节点的关节点矩形框;根据训练模型获取目标图像中定位后的包含标注关节点位置的所有的修正关节点矩形框,计算修正关节点矩形框中与关节点矩形框重叠面积最大的修正关节点矩形框,其中心为刀闸臂关节点。获取采集模板图像的相机的畸变系数,并根据模板图像尺寸计算相机矩阵camera_matrix=[focal_length,0,center.x;0,focal_length,center.y;0,0,1],其中focal_length为模板图像宽度,center.x和center.y分别为相机对应在模板图像中的中点的x坐标和y坐标;根据模型文件中的四个端点坐标估算其对应的世界坐标,利用参考文献《Pose Estimation based on Four Coplanar Point Correspondences》中提出的相机姿态估计方法,根据模型文件中四个端点坐标、世界坐标、相机矩阵和畸变系数,便可获取相机所在的坐标系关于世界坐标系的旋转矩阵与平移矩阵,根据旋转矩阵和平移矩阵获取变换矩阵,设变换矩阵为R_matrix,刀闸臂关节点为artis_p,根据变换矩阵获取刀闸臂关节点在理想图像中的关节点坐标artis_q=(artis_q.x,artis_q.y),得出理想图像的过关节点且与地面平行的角平分线y=(artis_q.y/artis_q.x*x);将理想图像的角平分线上的任一点angle_p通过变换矩阵计算其在目标图像中的对应坐标,该对应坐标angle_q与刀闸臂关节点artis_p的连线为目标图像的角平分线。
对于对开式刀闸,建立模型文件和计算固定特征点中点和特征线中线时,刀闸闭合状态指的是左右刀闸臂在同一直线上,虚合状态指的是左右刀闸臂之间存在接触但不在同一直线上,打开状态指的是左右刀闸臂之间不存在接触。对于剪刀式刀闸,建立模型文件和计算固定特征点关节点和特征线角平分线时,刀闸闭合状态指的是上下刀闸臂在同一直线上,虚合状态指的是上刀闸臂与上固定边界位置间存在接触但上下刀闸臂不在同一直线上,打开状态指的是上刀闸臂与上固定边界位置间不存在接触。这里的刀闸状态是笼统的,而刀闸最终的状态是根据刀闸臂间的夹角和用户给定的刀闸角度阈值最终确定。
对于对开式刀闸,将模型文件中刀闸的固定特征点对应到目标图像中,将不符合固定特征的边缘线剔除,获取第一更新边缘线集合的方式为:根据模型文件计算左中点和右中点;计算左中点到每条边缘线的距离,计算右中点到每条边缘线的距离;给定左距离阈值和右距离阈值,获取到左中点的距离在左距离阈值内的边缘线,获取到右中点的距离在右距离阈值内的边缘线,在左距离阈值和右距离阈值内的边缘线为第一更新边缘线集合。
对于剪刀式刀闸,将模型文件中刀闸的固定特征点对应到目标图像中,将不符合固定特征的边缘线剔除,获取第一更新边缘线集合的方式为:根据模型文件和训练模型计算目标图像中剪刀式刀闸闭合或虚合状态下的刀闸臂关节点和角平分线;计算目标图像的刀闸臂关节点到边缘线集合中的每条边缘线的距离,给定上距离阈值和下距离阈值,将不在阈值范围内的距离所对应的边缘线剔除,获取第一更新边缘线集合。
对于对开式刀闸,将第二更新边缘线集合根据刀闸的特性对称区分,分别获取第一刀闸臂边缘线集合和第二刀闸臂边缘线集合的具体方式为:对开式刀闸中的第一刀闸臂边缘线集合和第二刀闸臂边缘线集合分别为左刀闸臂边缘线集合和右刀闸臂边缘线集合;在目标图像上计算以中点为起点的垂直于中线且方向向右或方向向左的单位方向向量
遍历第二更新边缘线集合中的边缘线,对其中任一条边缘线的两个端点记作T1和T2,将T1与中点的向量记作
将T2与中点的向量记作
计算
和
对于方向向右的单位方向向量
若
则T1在中线右侧,否则在中线左侧;若
则T2在中线右侧,否则中线左侧;对于方向向左的单位方向向量
若
则T1在中线左侧,否则在中线右侧;若
则T2在中线左侧,否则中线右侧;若T1和T2均在中线左侧,则该边缘线为左刀闸臂边缘线,若T1和T2均在中线右侧,则该边缘线为右刀闸臂边缘线,若T1和T2分别在中线两侧,计算该边缘线以中线为分割线的左右线段长度,该边缘线为左右侧线段较长侧的边缘线;如此获取左刀闸臂边缘线集合和右刀闸臂边缘线集合。
对于剪刀式刀闸,将第二更新边缘线集合根据刀闸的特性对称区分,分别获取第一刀闸臂边缘线集合和第二刀闸臂边缘线集合的具体方式与对开式刀闸中的获取方式是一样的,将对开式刀闸中的特征点中点对应为剪刀式刀闸的关节点,将中线对应为角平分线,方向为垂直于角平分线的上下方向,剪刀式刀闸中第一刀闸臂边缘线集合和第二刀闸臂边缘线集合分别为上刀闸臂边缘线集合和下刀闸臂边缘线集合。
对于对开式刀闸,计算第一刀闸臂和第二刀闸臂间的夹角:第一刀闸臂和第二刀闸臂分别为左刀闸臂和右刀闸臂,计算左刀闸臂和右刀闸臂间的夹角的方式为:设最终的左刀闸臂边缘线相对于闭合状态刀闸臂所在直线的角度为α1,最终的右刀闸臂边缘线相对于闭合状态刀闸臂所在直线的角度为α2,左右刀闸臂间的最终夹角为θ0=|α2-α1|。
对于剪刀式刀闸,计算第一刀闸臂和第二刀闸臂间的夹角:第一刀闸臂和第二刀闸臂分别为上刀闸臂和下刀闸臂,计算上刀闸臂和下刀闸臂间的夹角的方式为:设最终的上刀闸臂边缘线相对于闭合状态刀闸臂角平分线所在直线的角度为γ1,下刀闸臂边缘线相对于闭合状态刀闸臂角平分线所在直线的角度为γ2,上下刀闸臂间的最终夹角为θ1=|γ2-γ1|;若在刀闸定位时根据训练模型获取的定位刀闸的状态为打开状态,则直接给出当前刀闸状态,不需要精确计算刀闸臂间的角度。实际应用中,对于剪刀式和对开式,根据用户需求给定刀闸打开、虚合和闭合的角度阈值,根据刀闸臂间的夹角和角度阈值确定刀闸最终的开合状态
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。