本发明涉及一种电力变电站基于动态特征及区域融合的目标检测方法,属于变电站智能监控技术领域。
背景技术:
随着视频监控的网络化、高清化、智能化技术的不断发展,视频监控技术在电网安全、生产运行中的应用不断深入和广泛,传统方式所采用的视频监控技术为电网设备远程监控提供远程可视化的监控手段,为远程确认设备实际的状态与监控数据显示状态是否一致,提供了可靠和有效的确认手段,为准确做出决策提供了依据,然而,随着该技术的不断深入和推广应用,由于变电站数量众多、站内设备数量庞大,若每个设备的状态查看和确认都需要人工进行查看和确认,其所带来的工作量将特别庞大,且工作效率低下,随着电网技术对电网智能化水平要求的不断提高,如何提高视频监控技术在电网智能化监控技术中的应用,将对电网智能化水平的提升起到促进作用。同时,将为电网设备的智能化监控、智能化巡视提供技术手段。同时,电力变电站中目标设备定位对于电网智能化设备状态巡视、设备告警联动等电网生产运行监控具有重要意义,对电网智能化水平的发展和提高具有一定的促进作用。由于变电站设备场景的复杂性,如何有效实现对变电站中目标设备定位将是该技术的核心研究内容。
技术实现要素:
本发明所要解决的技术问题是克服现有技术的缺陷,提供一种电力变电站基于动态特征及区域融合的目标检测方法,提高和解决在摄像机巡视中对电力变电站中设备的定位.
为解决上述技术问题,本发明提供一种电力变电站基于动态特征及区域融合的目标检测方法,包括以下步骤:
1)获取图片并进行初始化处理;
2)对图像序列化并进行边缘检测;
3)对图像进行边缘融合;
4)与待检测目标进行比较。
前述的步骤1)获取图片并进行初始化处理包括以下步骤:
(1-1)通过厂家视频获取接口实时获取变电站摄像机的实时视频数据;
(1-2)在获取到实时视频数据时间间隔0.1秒后,从实时视频数据中截取接下来的连续30帧图片数据;
(1-3)在截取完图片后,使用开源计算机视觉处理库检测图片中黑色像素是否过多,如果图片黑色像素占比大于70%,则重新获取图片,获取图片成功后,保存图片数据为img1-img30;
(1-4)将获取的图片进行格式转换,转换为rgb图片格式,转换后的图片数据为img1_rgb[]-img30_rgb[];
(1-5)将rgb格式转换为灰度格式,转换后的灰度图片数据为:matfirst1_gray[]-matfirst30_gray[];
(1-6)假设图片横坐标x为0<x<w1,图片纵坐标y为0<y<h1,其中,h1表示图片的高度,w1表示图片的宽度,将图片横坐标截取为w1/8<x<7*w1/8,将图片纵坐标截取为h1/8<y<7*h1/8,得到灰度图片mat1_gray[]-mat30_gray[]。
前述的步骤(1-5)中将rgb格式转换为灰度格式,转换公式为:
gray=r*0.299+g*0.587+b*0.114。
前述的步骤2)对图像序列化并进行边缘检测包括以下步骤:
(2-1)对连续帧图像进行平均值运算:
avgimg=(mat1_gray[]+mat2_gray[]+...+mat30_gray[])/30,
其中,avgimg表示30副连续帧图像的平均值;
(2-2)每一帧图像与平均值进行差减法计算,提取出运动区域:
(2.1).temp1img=mat1_gray[]-avgimg;
(2.2).temp2img=mat2_gray[]-avgimg;
(2.30).temp30img=mat30_gray[]-avgimg;
其中,tempiimg,i=1,2,……,30,为第i帧图像的运动区域;
(2-3)对运动区域进行边缘检测,得到连续帧中每一帧图像的边缘图像:
edgei_img=canny(tempiimg),i=1,2,……,30,
其中,edgei_img表示第i帧图像的边缘图像,canny()表示边缘检测算子。
前述的步骤3)对图像进行边缘融合包括以下步骤:
(3-1)将连续帧图像的边缘图像进行逐步边缘融合,最终融合成一幅图像edge_tmp,过程如下:
(3.1)edge_tmp=addweighted(edge1_img,edge2_img);
(3.2)edge_tmp=addweighted(edge_tmp,edge3_img);
(3.29)edge_tmp=addweighted(edge_tmp,edge30_img);
其中,公式edge_tmp=addweighted(edge_tmp,edgei_img),i=3,4,……,30,是指将上一步融合后的图像edge_tmp和edgei_img进行融合,得到新的edge_tmp,addweighted函数是指取参数中每幅图像的1/30的权重进行求和运算;
(3-2)使用形态学方法对融合后的边缘图像进行缩减,
首先对融合后的边缘图像进行膨胀处理,得到:
edge_tmp1=imdilate(edge_tmp,mask(3*3)),
imdilate是opencv提供的膨胀算法函数;
然后再对膨胀处理后的图像进行腐蚀处理,得到:edge_tmp2=imerode(edge_tmp1,mask(3*3)),
imerode是opencv提供的腐蚀算法函数;
(3-3)使用图像处理技术将步骤(3-2)经过处理后的图像转化成连通区域。
前述的步骤(3-3)将步骤(3-2)经过处理后的图像转化成连通区域,具体如下:
a.逐行扫描edge_tmp2,把edge_tmp2中每一行连续的白色像素组成一个序列称为一个团,并记下它的起点start、它的终点end以及它所在的行号,记为标号k,k从1开始;
b.对于除了第一行外的所有行里的团,如果它与前一行中的所有团都没有重合区域,则给它一个新的标号k++;如果它仅与上一行中的一个团有重合区域,则将上一行中的那个团的标号k赋给它;如果它与上一行中的2个或以上的团有重叠区域,则给当前团赋一个相连团j,j从1开始,的最小标号,并将上一行的这几个团的标记写入等价对;
c.将等价对转换为等价序列,每一个序列需要给一相同的标号;
d.遍历开始团的标号,查找等价序列,给予它们新的标号;
e.将每个团的标号填入标记图像中。
前述的步骤(4)与待检测目标进行比较,包括步骤:
(4-1)提取待检测目标运动时的连续帧图像;
(4-2)使用光流法对其进行运动区域检测;
(4-3)提取运动区域边缘并进行缩减得到目标融合区域;
(4-4)将检测到的目标与待检测目标相比较,得出结果。
前述的步骤(4-4)将检测到的目标与待检测目标相比较使用第三方提供的开源函数octave,进行两个形状的相似度比较,当相似度大于90%时,即可判断识别到了目标。
本发明所达到的有益效果:
本发明方法通过图像智能识别,能够有效进行变电站目标设备的定位,排除外在影响因数,能够最大限度地提高检测的准确性和适用性。
本发明方法易于实现和应用,主要可以应用于电网智能化设备状态巡视、设备告警联动等电网生产运行智能化远程监控中,对电网智能化水平的发展和提高具有一定的促进作用。
附图说明
图1为本发明方法流程图。
具体实施方式
下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,本发明的电力变电站基于动态特征及区域融合的目标检测方法,分为图片获取及初始化处理,图像序列化及边缘检测,边缘融合及处理,与待检测目标比较四个过程。
(1)图片获取及初始化处理包括步骤:通过厂家视频获取接口获取变电站视频监控系统的实时视频数据;获取实时视频中的连续30帧,用于后续检测;帧图像处理,对图片进行灰度化处理;对灰度化后的图片进行边缘提取,详细如下:
(1-1)通过厂家视频获取接口实时获取变电站摄像机的实时视频数据;
(1-2)在获取到实时视频数据时间间隔0.1秒后,从实时视频数据中截取接下来的连续30帧图片数据。采用0.1秒后再截取图片数据的原因主要为:由于变电站与远端之间的网络带宽有限,若获取到视频后直接截图图片,可能会出现图片截取失败或截取的图片存在异常等原因;
(1-3)在截取完图片后,使用开源计算机视觉处理库检测图片中黑色像素是否过多,如果图片黑色像素占比大于70%,则重新获取图片,获取图片成功后,保存图片数据为img1-img30;
(1-4)通常此时获取的图片格式为yuv格式,为了便于后续的图像分析,将该图片进行格式转换,转换为rgb图片格式,转换后的图片数据为img1_rgb[]-img30_rgb[];
(1-5)后续图像处理主要是根据灰度图像的处理,因此,需要将rgb格式转换为灰度格式,根据rgb转灰度公式:gray=r*0.299+g*0.587+b*0.114,从而将img1_rgb[]-img30_rgb[]计算得到对应的灰度图片数据:matfirst1_gray[]-matfirst30_gray[];
(1-6)由于实际图片中左上角或右上角、左下角或右下角通常均包含一些文字信息为了,避免文字信息对监测的影响,假设图片横坐标为0<x<w1,图片纵坐标为0<y<h1,其中的h1表示图片的高度,w1表示图片的宽度,将图片横坐标截取为w1/8<x<7*w1/8,将图片纵坐标截取为h1/8<y<7*h1/8,得到灰度图片mat1_gray[]-mat30_gray[],新的灰度图片的宽度为w2,高度为h2。
(2)图像序列化及边缘检测包括步骤:对连续帧图像进行平均值运算,保存平均值结果图像;每一帧图像与平均值进行差减法计算,提取出运动区域;对运动区域进行边缘检测,得到连续帧图像的边缘。详细如下:
(2-1)对连续帧图像进行平均值运算:
avgimg=(mat1_gray[]+mat2_gray[]+...+mat30_gray[])/30,
avgimg表示30副连续帧图像的平均值;
(2-2)每一帧图像与平均值进行差减法计算,提取出运动区域:
(2.1).temp1img=mat1_gray[]-avgimg;
(2.2).temp2img=mat2_gray[]-avgimg;
(2.30).temp30img=mat30_gray[]-avgimg;
tempiimg(i=1,2,……,30)为第i帧图像的运动区域;
(2-3)对运动区域进行边缘检测:
edgei_img=canny(tempiimg),i=1,2,……,30
edgei_img表示第i帧图像的边缘图像。
(3)边缘融合及处理包括步骤:将连续帧边缘图像进行边缘融合;使用形态学方法对融合后的边缘进行缩减;使用图像处理将融合后的图像转化成连通区域;
(3-1)将连续帧图像的边缘图像进行逐步边缘融合,最终融合成一幅图像edge_tmp,addweighted函数是指取参数中每幅图像的1/30的权重进行求和运算:
(3.1)edge_tmp=addweighted(edge1_img,edge2_img);
(3.2)edge_tmp=addweighted(edge_tmp,edge3_img);
(3.29)edge_tmp=addweighted(edge_tmp,edge30_img);
其中,公式edge_tmp=addweighted(edge_tmp,edgei_img),i=3,4,……,30是指将上一步融合后的图像edge_tmp和edgei_img进行融合,得到新的edge_tmp。
(3-2)使用形态学方法对融合后的边缘图像进行缩减,首先对融合后的边缘图像进行膨胀处理,得到:
edge_tmp1=imdilate(edge_tmp,mask(3*3)),
imdilate是opencv提供的膨胀算法函数;
然后再对膨胀处理后的图像进行腐蚀处理,得到:edge_tmp2=imerode(edge_tmp1,mask(3*3)),
imerode是opencv提供的腐蚀算法函数。
(3-3)使用图像处理技术将步骤(3-2)经过处理后的图像转化成连通区域;
a.逐行扫描edge_tmp2,把edge_tmp2中每一行连续的白色像素组成一个序列称为一个团(run),并记下它的起点start、它的终点end以及它所在的行号,记为标号k(k从1开始)。
b.对于除了第一行外的所有行里的团,如果它与前一行中的所有团都没有重合区域,则给它一个新的标号k++;如果它仅与上一行中的一个团有重合区域,则将上一行中的那个团的标号k赋给它;如果它与上一行中的2个或以上的团有重叠区域,则给当前团赋一个相连团j(j从1开始)的最小标号,并将上一行的这几个团的标记写入等价对,说明它们属于一类。
c.将等价对转换为等价序列,每一个序列需要给一相同的标号,因为它们都是等价的。从1开始,给每个等价序列一个标号。
d.遍历开始团的标号,查找等价序列,给予它们新的标号。
e.将每个团的标号填入标记图像中。
(4)与待检测目标比较包括步骤:
(4-1)提取待检测目标运动时的连续帧图像;
(4-2)使用光流法对其进行运动区域检测;
(4-3)提取运动区域边缘并进行缩减得到目标融合区域;
(4-4)将检测到的目标与待检测目标相比较,得出结果;在比较时,使用第三方提供的开源函数octave,进行两个形状的相似度比较,当相似度大于90%时,即可判断识别到了目标。
本发明的方法需要的硬件最低配置为:p4、3.0gcpu、512m内存的pc机,在此配置水平的硬件上,采用c/c++语言编程实现本方法。操作系统可基于windows或linux的各类操作系统。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。