一种有阴影光照下矩形状电器件的定位方法
技术领域
本发明涉及图像中目标物体定位方法,特指一种有阴影光照下矩形状电器件的高精度定位方法。
背景技术
在配电站中,用巡检机器人替代人工巡检逐步成为一种需求和趋势。巡检机器人要识别配电柜上的各种电器状态和示数,首先要解决各种电器件的定位问题。
目前,我们主要采用基于图像点特征的配准方法进行定位识别。如国际计算机视觉杂志“尺度不变关键点的特征图像”(Lowe D G. Distinctive image features fromscale-invariant keypoints[J]. International journal of computer vision, 2004,60(2): 91-110.),计算机视觉杂志“SIFT或SURF的有效替代品”(Rublee E, Rabaud V,Konolige K, et al. ORB: An efficient alternative to SIFT or SURF[C]//ComputerVision (ICCV), 2011 IEEE international conference on. IEEE, 2011: 2564-2571.),欧洲计算机视觉会议杂志“特性有效加速显示”(Bay H, Tuytelaars T, Van GoolL. Surf: Speeded up robust features[C]//European conference on computervision. Springer, Berlin, Heidelberg, 2006: 404-417.);首先提取模板图像的特征,再生成特征描述子,最后根据描述子的相似程度对两幅图像的特征之间进行匹配。如张文杰“基于图像配准与视觉显著性检测的指针仪表识别研究”, 重庆大学, 2016;利用计算机视觉、图像处理与模式识别技术,提出一种基于特征的图像配准技术,消除指针读数识别过程由于仪表图像变形造成的视觉测量误差,实现变电站场景中仪表读数的自动、准确识别。利用基于图像点特征的配准法在多种仪表仪器自动定位识别过程中均取得较好的检测、识别效果。但在有阴影光照下,效果并不理想。
发明内容
针对基于图像配准方法直接识别带有光照阴影的矩形状器件效果不理想的问题,本发明旨在提供一种有阴影光照下矩形状电器件高精度定位方法,为后续针对目标器件的示数识别提供准确的定位信息。
本发明的目的是通过下述技术方案实现的:
一种有阴影光照下矩形状电器件的定位方法,其特征在于,包括如下步骤:
1.由巡检机器人获取指定矩形状器件的彩色图像;
2. 对彩色图像的R通道图像二值化阈值分割处理;
3. 利用形态学操作对二值化图像作降噪处理;
4. 抽取目标矩形状器件的轮廓线;
5. 求最小外接矩形作为目标器件的初始位置;
6. 利用像素垂直和水平投影的方法消除阴影影响;
7. 得到目标器件的精确定位。
所述的步骤2包括:
2.1 获取R通道图像。
2.2 把R通道图像转化成灰度图像后用类间最大方差作阈值分割处理:
用f(x ,y)来表示灰度图像IM×N在(x ,y)位置处的灰度值,本文图像为灰度图像,其灰度级L=256,则f(x ,y)∈[0 ,L-1];如果将处在同一灰度级i的像素个数计为fi,那么灰度级为i的像素出现概率为:
其中,i=0 ,1 ,...,255,且
;
设t为背景部分与目标部分的分割阈值,
则图像的总平均灰度为:μ=ω0*μ0+ω1*μ1;
背景和目标图像的方差:g=ω0*(μ0-μ)*( μ0-μ)+ ω1*(μ1-μ)*( μ1-μ)= ω0*ω1*(μ0-μ1)*( μ0-μ1);
采用遍历的方法得到使类间方差g最大的阈值T即为所求阈值,对灰度图像作阈值分割处理后得到二值化图像。
2.3 在步骤2.2得到二值化图像的基础上再做一次自适应阈值化分割处理
自适应阈值化计算过程是为每一个像素点单独计算的阈值,每个像素点的阈值都是不同的,将该像素点周围B*B区域内的像素加权平均,然后减去一个常数C,从而得到该点的阈值。
所述的步骤3包括:
对二值化图像先后分别作模板为3 × 3腐蚀和膨胀操作,消除噪点;3 × 3模板如下表所示;
(i-1,j-1) |
(I,j-1) |
(i+1,j-1) |
(i-1,j) |
所求此点(I,j) |
(i+1,j) |
(i-1,j+1) |
(I,j+1) |
(i+1,j+1) |
3.1 腐蚀操作
(1)用模板B,扫描图像A的每一个像素
(2)用模板与其覆盖的二值图像做“与”操作 (3)如果都为0,结果图像的该像素为0,否则为255。
3.2 膨胀操作
(1)用模板B,扫描图像A的每一个像素
(2)用模板与其覆盖的二值图像做“或”操作 (3)如果有一个元素为0,结果图像的该像素为0,否则为255。
所述的步骤4包括:
4.1 外边界和孔边界的定义
每次行扫描,遇到以下两种情况,确定外边界(outer boeder)和孔边界(holeborder):
(1)f(i,j-1)=0,f(i,j)=1; //f(i,j)是外边界的起始点;
(2)f(i,j)>=1,f(i,j+1)=0;//f(i,j)是孔边界的起始点;
在这里分配一个唯一的标示符给新发现的边界,叫做NBD;初始时NBD=1,每次发现一个新边界加1;在这个过程中,遇到f(p,q)=1,f(p,q+1)=0时,也就是右边边界的终止点时,将f(p,q)置为-NBD。
4.2 查找边界线算法过程
(1)如果是外边界或者是内边界,NBD++,并且根据边界把,(i,j-1)或者(i,j+1)定义为(i2,j2);
(2)LNBD来确定新的边界的parent关系;
(3):
(3.1),从(i2,j2)开始顺时针方向,查找(i,j)邻域的非零像素,把第一个找到的非零像素定义为(i1,j1),没有找到就把(i,j)的值变为负NBD,goto (4);
(3.2)把(i1,j1)定义为(i2,j2),把(i,j)定义为(i3,j3);
(3.3)从(i2,j2)逆时针方向的下一个元素开始,逆时针方向,查找(i3,j3)邻域的非零像素,把第一个找到的非零像素定义为(i4,j4);
(3.4)改变(i3,j3)的值,根据如下规则:
(a)如果(i3,j3+1)是零像素,(i3,j3)赋值负NBD;
(b)如果不是零像素,并且(i3,j3)的值是1,赋值正NBD;
(c)如果(i3,j3)的值不是1,那么不改变值;
(3.5)如果(i4,j4)等于(i,j)并且(i3,j3)等于(i1,j1),也就是回到了起点,那么go to (4)。否则,(i3,j3)定义为(i2,j2),(i4,j4)定义为(i3,j3),go to (3.3);
(4)如果(i,j)的值不等于1,那么LNBD赋值(i,j)值的绝对值,重新从(i,j+1)开始扫描,直到图像最后一个像素。
所述的步骤5包括:
5.1 求图像中轮廓区域的最小外接矩形采用下述方式之一:
(1)直接计算:通过计算图像中物体分布坐标的最大、最小值所得,显示该矩形不能准确的描述轮廓区域的分布;
(2)等间隔旋转搜索:将图像物体在90O范围内等间隔地旋转,每次记录其轮廓在坐标系方向上的外接矩形参数,通过计算外接矩形面积求取最小外接矩形。
5.2 求轮廓区域最小外接矩形的步骤:
(1)直接计算某个轮廓区域的外接矩形,并记录外接矩形的长度、宽度和面积,获取最小外接矩形RectMin,并得到其面积值赋给变量AreaMin,设置旋转角度α=0O;
(2)对轮廓区域进行旋转一个角度θ,按照第1步求取旋转后的最小外接矩形RectTmp,获得其面积值赋给变量AreaTmp;
(3)设置旋转角度α=α+θ,比较AreaTmp和AreaMin的大小,将小面积值赋给AreaMin,并将此时的旋转角度赋值给β=α,矩形信息赋给RectMin = RectTmp;
(4)循环执行第2、3步的过程,最终获取一个最小的外接矩形RectMin以及与之相对应的旋转角度α;
(5)将计算出的矩形RectMin反旋转一个β角度,获取最小外接矩形。
所述的步骤6包括:
6.1 种子填充步骤:
(1)标记种子(x,y)的像素点 ;
(2)检测该点的颜色,若他与边界色和填充色均不同,就用填充色填充该点,否则不填充 ;
(3)检测相邻位置,继续进入步骤(2);这个过程延续到已经检测区域边界范围内的所有像素为止;在搜索的时候有两种检测相邻像素:四向连通和八向连通;四向连通即从区域上一点出发,通过四个方向上、下、左、右来检索;而八向连通加上了左上、左下、右上、右下四个方向。
6.2 水平投影和垂直投影:
(1)在水平方向逐行统计每行中赋有填充色的像素个数;
(2)在垂直方向逐列统计每列中赋有填充色的像素个数;
(3)若图像中目标器件含有阴影,则像素投影会存在明显的差别,根据实际的变化情况,对步骤5所得到的最小外接矩形位置进行调整。
本发明的有益效果:本发明通过上述方法,最终能实现在有阴影光照下矩形状电器件的精确定位。这种定位方法能有效克服光照影响,具有很好的检测效果。因此,对下一步能准确识别仪表仪器示数具有非常重要的意义。
附图说明
图1 一种有阴影光照下矩形状电器件的定位算法流程图。
图2 巡检机器人获取到含矩形状电器件的彩色源图。
图3 从彩色源图中分离得到R通道灰度图。
图4用类间最大方差阈值分割R通道灰度图。
图5 用自适应阈值对图4进行再次二值分割。
图6 对图像作腐蚀操作后得到的二值化图像。
图7 对图像作膨胀操作后得到的二值化图像。
图8 从二值化图像中抽取目标矩形状器件轮廓线。
图9 求目标矩形状器件轮廓线最小外接矩形。
图10 在黑色背景中描绘目标矩形状器件轮廓线。
图11 漫水填充轮廓线区域。
图12 对图11作像素垂直投影。
图13 对图11作像素水平投影。
图14 优化调整最小外接矩形位置。
图15 有阴影光照下矩形状电器件最终定位效果图。
具体实施方式
下面结合附图对本发明做更详细地描述:
如图1所示,一种有阴影光照下矩形状电器件的定位算法,包括以下步骤:
1.由巡检机器人获取指定矩形状器件的彩色图像,如图2所示。
2. 对彩色图像的R通道图像二值化阈值分割处理。
2.1 获取R通道图像,如图3所示。
2.2 把R通道图像转化成灰度图像后用类间最大方差作阈值分割处理,如图4所示:
用f(x ,y)来表示灰度图像IM×N在(x ,y)位置处的灰度值,本文图像为灰度图像,其灰度级L=256,则f(x ,y)∈[0 ,L-1]。如果将处在同一灰度级i的像素个数计为fi,那么灰度级为i的像素出现概率为:
其中,i=0 ,1 ,...,255,且
;
设t为背景部分与目标部分的分割阈值,
则图像的总平均灰度为:μ=ω0*μ0+ω1*μ1;
背景和目标图像的方差:g=ω0*(μ0-μ)*( μ0-μ)+ ω1*(μ1-μ)*( μ1-μ)= ω0*ω1*(μ0-μ1)*( μ0-μ1);
采用遍历的方法得到使类间方差g最大的阈值T即为所求阈值,对灰度图像作阈值分割处理后得到二值化图像。
2.3 在步骤2.2得到二值化图像的基础上再做一次自适应阈值化分割处理,如图5所示;
自适应阈值化计算过程是为每一个像素点单独计算的阈值,每个像素点的阈值都是不同的,将该像素点周围B*B区域内的像素加权平均,然后减去一个常数C,从而得到该点的阈值。
3. 利用形态学操作对二值化图像作降噪处理,如图6、图7所示;
对二值化图像先后分别作模板为3 × 3腐蚀和膨胀操作,消除噪点;3 × 3模板如下表所示;
(i-1,j-1) |
(I,j-1) |
(i+1,j-1) |
(i-1,j) |
所求此点(I,j) |
(i+1,j) |
(i-1,j+1) |
(I,j+1) |
(i+1,j+1) |
3.1 腐蚀操作
(1)用模板B,扫描图像A的每一个像素;
(2)用模板与其覆盖的二值图像做“与”操作; (3)如果都为0,结果图像的该像素为0,否则为255。
3.2 膨胀操作
(1)用模板B,扫描图像A的每一个像素;
(2)用模板与其覆盖的二值图像做“或”操作; (3)如果有一个元素为0,结果图像的该像素为0,否则为255。
4. 抽取目标矩形状器件的轮廓线,如图8所示;
4.1 外边界和孔边界的定义
每次行扫描,遇到以下两种情况,确定外边界(outer boeder)和孔边界(holeborder):
(1)f(i,j-1)=0,f(i,j)=1; //f(i,j)是外边界的起始点;
(2)f(i,j)>=1,f(i,j+1)=0;//f(i,j)是孔边界的起始点;
在这里分配一个唯一的标示符给新发现的边界,叫做NBD;初始时NBD=1,每次发现一个新边界加1。在这个过程中,遇到f(p,q)=1,f(p,q+1)=0时,也就是右边边界的终止点时,将f(p,q)置为-NBD。
4.2 查找边界线过程,参照计算机视觉、图形学和图像处理杂志“基于边界跟踪的数字化二值图像拓扑结构分析”(Satoshi Suzuki and others. Topological structuralanalysis of digitized binary images by border following. Computer Vision,Graphics, and Image Processing, 30(1):32–46, 1985.);
(1)如果是外边界或者是内边界,NBD++,并且根据边界把,(i,j-1)或者(i,j+1)定义为(i2,j2)。
(2)LNBD来确定新的边界的parent关系。
(3):
(3.1)从(i2,j2)开始顺时针方向,查找(i,j)邻域的非零像素。把第一个找到的非零像素定义为(i1,j1)。没有找到就把(i,j)的值变为负NBD,进入步骤(4);
(3.2)把(i1,j1)定义为(i2,j2),把(i,j)定义为(i3,j3);
(3.3)从(i2,j2)逆时针方向的下一个元素开始,逆时针方向,查找(i3,j3)邻域的非零像素,把第一个找到的非零像素定义为(i4,j4);
(3.4)改变(i3,j3)的值,根据如下规则:
(a)如果(i3,j3+1)是零像素,(i3,j3)赋值负NBD;
(b)如果不是零像素,并且(i3,j3)的值是1,赋值正NBD;
(c)如果(i3,j3)的值不是1,那么不改变值;
(3.5)如果(i4,j4)等于(i,j)并且(i3,j3)等于(i1,j1),也就是回到了起点,那么进入步骤(4)。否则,(i3,j3)定义为(i2,j2),(i4,j4)定义为(i3,j3),进入步骤(3.3)。
(4)如果(i,j)的值不等于1,那么LNBD赋值(i,j)值的绝对值;重新从(i,j+1)开始扫描,直到图像最后一个像素。
5. 求最小外接矩形作为目标器件的初始位置,如图9所示。
5.1 求图像中轮廓区域的最小外接矩形方法通常有两种:
(1)直接计算:通过计算图像中物体分布坐标的最大、最小值所得,显示该矩形不能准确的描述轮廓区域的分布;
(2)等间隔旋转搜索:将图像物体在90O范围内等间隔地旋转,每次记录其轮廓在坐标系方向上的外接矩形参数,通过计算外接矩形面积求取最小外接矩形。
5.2 求轮廓区域最小外接矩形的步骤:
(1)直接计算某个轮廓区域的外接矩形,并记录外接矩形的长度、宽度和面积,获取最小外接矩形RectMin,并得到其面积值赋给变量AreaMin,设置旋转角度α=0O;
(2)对轮廓区域进行旋转一个角度θ,按照第1步求取旋转后的最小外接矩形RectTmp,获得其面积值赋给变量AreaTmp;
(3)设置旋转角度α=α+θ,比较AreaTmp和AreaMin的大小,将小面积值赋给AreaMin,并将此时的旋转角度赋值给β=α,矩形信息赋给RectMin = RectTmp;
(4)循环执行第2、3步的过程,最终获取一个最小的外接矩形RectMin以及与之相对应的旋转角度α;
(5)将计算出的矩形RectMin反旋转一个β角度,获取最小外接矩形。
6. 利用像素垂直和水平投影的方法消除阴影影响。
6.1 种子填充步骤,如图11所示:
(1)标记种子(x,y)的像素点 ;
(2)检测该点的颜色,若他与边界色和填充色均不同,就用填充色填充该点,否则不填充 ;
(3)检测相邻位置,继续执行步骤(2);这个过程延续到已经检测区域边界范围内的所有像素为止;在搜索的时候有两种检测相邻像素:四向连通和八向连通;四向连通即从区域上一点出发,通过四个方向上、下、左、右来检索。而八向连通加上了左上、左下、右上、右下四个方向。
6.2 水平投影和垂直投影,如图12、图13所示:
(1)在水平方向逐行统计每行中赋有填充色的像素个数;
(2)在垂直方向逐列统计每列中赋有填充色的像素个数;
(3)若图像中目标器件含有阴影,则像素投影会存在明显的差别,根据实际的变化情况,对步骤5所得到的最小外接矩形位置进行调整,如图14所示。
7. 得到目标器件的精确定位,如图15所示。
最终能实现在有阴影光照下矩形状电器件的精确定位。这种定位方法能有效克服光照影响,具有很好的检测效果。因此,对下一步能准确识别仪表仪器示数具有非常重要的意义。
本领域的普通技术人员将会意识到,这里所述的实施案例是为了帮助读者理解本发明的原理,应被理解为发明的保护范围并不局限于这样的特别陈述和实施案例。凡是根据上述描述做出各种可能的等同替换或改变,均被认为属于本发明的权利要求的保护范围。