发明名称 基于物体轮廓的变电站中圆/椭圆/方形仪表监测方法
摘要 基于物体轮廓的变电站中圆/椭圆/方形仪表监测方法属于变电站仪表监控技术领域,其特征在于:总控制端计算机基于存有基于物体轮廓的圆/椭圆/矩形搜索、检测算法的远程表检测/读取模块,通过无线局域网控制变电站中的巡检机器人,按照预先设定的巡检路线,在设定的搜索空间范围内通过搜索子程序锁定仪表的空间位置,然后用可见光摄像头获取仪表几何图像,通过无线局域网发回总控制端进行数据处理以达到远程监控的目的。它能在不降低检测正确率并不改动现有仪表盘结构的前提下,大大提高检测速度,从而满足系统对于实时监控的需求。
申请公布号 CN1581209A 申请公布日期 2005.02.16
申请号 CN200410042535.1 申请日期 2004.05.21
申请人 清华大学 发明人 王宏;蔡文超;于骞
分类号 G06K9/00;G06K9/46;G06F17/00;H04L12/00 主分类号 G06K9/00
代理机构 代理人
主权项 1.基于物体轮廓的变电站中圆/椭圆/方形仪表监测方法;其特征在于,它依次包括以下步骤:(1)在数据库中存入远程仪表检测/读取子模块,其中预先设定下列参数及公式:巡检机器人在需要进行仪表检测与读取的设备巡视线上能够清楚地看到设备仪表的停靠点位置、该位置摄像头云台的初始方向以及镜头的预置位;该停靠点处仪表的信息——表盘、图像的中心位置,表盘大小,仪表记录刻度换算公式<img file="A2004100425350002C1.GIF" wi="1602" he="107" />表盘背景为黑/白两色;巡检机器人搜索空间的范围:道路平面停靠误差±15cm,巡检机器人的车体偏角误差±30°;轮廓特征点数的阈值T1=50,拟合因子阈值T2=0.75,其中0<T2<1,<img file="A2004100425350002C2.GIF" wi="808" he="118" />(2)总控制端计算机控制巡检机器人到达仪表检测与读取的停靠点,读取相应的该停靠点信息,调用并启动上述远程仪表检测/读取子模块;(3)计算机根据上述停靠点信息,通过基于TCP/IP协议的无线局域网控制摄像头及镜头到达指定位置;(4)计算机接收巡检机器人通过无线局域网发回的图像序列,根据该停靠点仪表信息,在规定的搜索空间内,调用下列搜索子程序,控制云台及镜头进行表盘搜索检测,该搜索子程序依次包括以下步骤:(4.1)设定下列数值:       #define SEARCHSTEPX    水平方向搜索步数,       #define SEARCHSTEPY    竖直方向搜索步数,       #define SEARCHSTEPZ    深度方向搜索步数,       #define STEPX          水平方向搜索步长,      #define STEPY           竖直方向搜索步长,      #define STEPZ           深度方向搜索步长,      #define CMD_LEFT        台向左转命令,      #define CMD_RIGHT       云台向右转命令,      #define CMD_UP          云台向上转命令,      #define CMD_DOWN        云台向下转命令,      #define CMD_ZOOMIN      摄像头镜头向前拉命令,      #define CMD_ZOOMOUT     摄像头镜头向后拉命令,      #define GOODSIZE        合适的表盘尺寸,用像素点数表示,      #define IMAGEWIDTH      图像宽度,      #define IMAGEHEIGHT     图像高度,      #define CENTERWIDTH     图像中心的范围大小,标记镜头当前前进方向的状态变量:IsForward,为真,表示当前镜头向前拉近,否则为拉远,预设置isForward=TRUE;IsRight,为真,表示当前镜头向前向右偏转,否则为向左偏转,预设置isRight=TRUE;记录当前镜头位置P1=P2=(0,0,0),其中,P1(x,y,z)标记镜头当前位置,P2(x,y,z)标记镜头上次所定目标的搜索位置;(4.2)检测当前图像:若检测到仪表盘,便按以下步骤进行:(4.2.1)保存镜头位置P2;(4.2.2)若表盘中心与图像中心的位置不一致,计算机先调整镜头的左右、上下位置,再重新检测当前图像;(4.2.2)若表盘中心与图像中心的位置一致,计算机便判断表盘大小是否合适;(4.2.3)若尺寸不合适,计算机先调整镜头的前后位置,再重新检测当前图像;(4.2.4)若尺寸合适,计算机便锁定目标,程序返回读数,发送结束命令;若检测不到仪表盘,计算机控制镜头退回上一次保存的位置,接着按以下步骤进行:(4.2.5)计算机先把镜头拉近,再重新检测当前图像;若仍然检测不到,再把镜头拉远,重新检测当前图像,如果仍检测不到,便执行下一步骤;(4.2.6)计算机把镜头拉到最近位置后,再分别把云台位置拉到最右和最左,重新检测当前图像,如果仍然检测不到当前图像,便执行下一个步骤;(4.2.7)计算机再把云台位置分别移动至最上和最下位置,重新检测当前图像,若搜索失败,发送结束命令;(4.2.8)计算机再把镜头拉远,重复步骤(4.2.5)到(4.2.8);(5)目标锁定后,计算机根据检测结果控制镜头使其得到待检测仪表合适的图像大小和尺寸,读取指针角度并换算成表盘读数,通过无线局域网发回;对于不能读取的情况,通过无线局域网把合适的图像序列发回显示,由人工读取并发给巡检机器人“任务完成”信号;若目标搜索失败,也通过无线局域网向计算机发送检测失败信息同时发给巡检机器人“任务完成”信号;(6)计算机接收到镜头采集的视频图像后,便启动检测程序,按以下步骤处理视频图像:(6.1)预处理,它依次包括以下步骤:(6.1.1)按下式把输入的视频图像转化为灰度图像:每一个像素点的灰度值<maths num="001"><![CDATA[ <math><mrow><mi>I</mi><mo>=</mo><mfrac><mrow><mi>R</mi><mo>+</mo><mi>B</mi><mo>+</mo><mi>G</mi></mrow><mn>3</mn></mfrac><mo>,</mo></mrow></math>]]></maths>其中,R、G、B分别为红、绿、蓝三色的亮度值;(6.1.2)按以下步骤对灰度图像进行中值滤波:先由计算机计算每一个像素点周围的8个点的亮度值以及该点原来的亮度值的平均值I(x,y),把它作为该点新的亮度值<maths num="002"><![CDATA[ <math><mrow><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>1</mn></mrow><mn>1</mn></munderover><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mo>-</mo><mn>1</mn></mrow><mn>1</mn></munderover><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>i</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>j</mi><mo>)</mo></mrow></mrow><mn>9</mn></mfrac><mo>,</mo></mrow></math>]]></maths>然后用已知方法对灰度直方图做均衡化处理,直方图均衡化的具体原理和算法是已知的;(6.1.3)用开放源代码的图像处理函数库,即OPENCV对上述灰度图像进行Canny边缘检测,得到同样尺寸的二值图像,其中,含有边缘信息的像素点为白色,其它区域为黑色,把这些白色的像素点称为边缘特征点;(6.1.4)再用OPENCV函数库中的形态学闭(先膨胀,再腐蚀)运算函数,对上述二值图像进行处理,得到同一物体边缘图像尽可能连续的可用轮廓线表示的二值图像;(6.2)按以下步骤进行几何图形检测:(6.2.1)把上述整幅图像所有的轮廓线按链码形式进行编码,得到一个轮廓链表;(6.2.2)把包含的点数超过T1的每条轮廓线切分为单独的子图像,去掉剩下的轮廓线;(6.2.3)在每一个轮廓图像上利用RANSAC方法,即随机采样投票图形拟合法进行指定图形的拟合:(6.2.3.1)标准圆的拟合:圆心坐标(x0,y0):<maths num="003"><![CDATA[ <math><mrow><msub><mi>x</mi><mn>0</mn></msub><mo>=</mo><mfrac><mrow><msub><mi>d</mi><mrow><mi>y</mi><mn>1</mn></mrow></msub><msub><mi>d</mi><mrow><mi>y</mi><mn>2</mn></mrow></msub><msub><mi>d</mi><mrow><mi>y</mi><mn>3</mn></mrow></msub><mo>-</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mn>2</mn></msubsup><msub><mi>d</mi><mrow><mi>y</mi><mn>2</mn></mrow></msub><mo>+</mo><msubsup><mi>x</mi><mn>2</mn><mn>2</mn></msubsup><msub><mi>d</mi><mrow><mi>y</mi><mn>3</mn></mrow></msub><mo>+</mo><msubsup><mi>x</mi><mn>3</mn><mn>2</mn></msubsup><msub><mi>d</mi><mrow><mi>y</mi><mn>1</mn></mrow></msub><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mrow><mo>(</mo><msub><mi>x</mi><mn>1</mn></msub><msub><mi>d</mi><mrow><mi>y</mi><mn>3</mn></mrow></msub><mo>+</mo><msub><mi>x</mi><mn>2</mn></msub><msub><mi>d</mi><mrow><mi>y</mi><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>x</mi><mn>3</mn></msub><msub><mi>d</mi><mrow><mi>y</mi><mn>2</mn></mrow></msub><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="004"><![CDATA[ <math><mrow><msub><mi>y</mi><mn>0</mn></msub><mo>=</mo><mfrac><mrow><msub><mi>d</mi><mrow><mi>x</mi><mn>1</mn></mrow></msub><msub><mi>d</mi><mrow><mi>x</mi><mn>2</mn></mrow></msub><msub><mi>d</mi><mrow><mi>x</mi><mn>3</mn></mrow></msub><mo>-</mo><mrow><mo>(</mo><msubsup><mi>y</mi><mn>1</mn><mn>2</mn></msubsup><msub><mi>d</mi><mrow><mi>x</mi><mn>2</mn></mrow></msub><mo>+</mo><msubsup><mi>y</mi><mn>2</mn><mn>2</mn></msubsup><msub><mi>d</mi><mrow><mi>x</mi><mn>3</mn></mrow></msub><mo>+</mo><msubsup><mi>y</mi><mn>3</mn><mn>2</mn></msubsup><msub><mi>d</mi><mrow><mi>x</mi><mn>1</mn></mrow></msub><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mrow><mo>(</mo><msub><mi>y</mi><mn>1</mn></msub><msub><mi>d</mi><mrow><mi>x</mi><mn>3</mn></mrow></msub><mo>+</mo><msub><mi>y</mi><mn>2</mn></msub><msub><mi>d</mi><mrow><mi>x</mi><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>y</mi><mn>3</mn></msub><msub><mi>d</mi><mrow><mi>x</mi><mn>2</mn></mrow></msub><mo>)</mo></mrow></mrow></mfrac><mo>;</mo></mrow></math>]]></maths>半径<maths num="005"><![CDATA[ <math><mrow><mi>R</mi><mo>=</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mn>0</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>;</mo></mrow></math>]]></maths>其中P<sub>i</sub>(x<sub>i</sub>,y<sub>i</sub>)(i=1,2,3)是轮廓线上三个特征点,d<sub>xi</sub>=(x<sub>i</sub>-x<sub>(i+1)%3</sub>),d<sub>yi</sub>=(y<sub>i</sub>-y<sub>(i+1)%3</sub>),下标“%3”表示除以3的余数;(6.2.3.2)一般椭圆的拟合:椭圆作为一般的二次曲线有如下的表达式:a<sub>0</sub>x<sup>2</sup>+2a<sub>1</sub>xy+a<sub>2</sub>y<sup>2</sup>+2a<sub>3</sub>x+2a<sub>4</sub>y=1,其中的系数已经经过归一化处理,将右边的参数置为1,不考虑经过原点的情况;取轮廓线上的五个特征点P<sub>i</sub>(x<sub>i</sub>,y<sub>i</sub>)(i=1,…,5),构造线性方程组:A=P<sup>-1</sup>B,其中,A=[a<sub>0</sub> a<sub>1</sub> a<sub>2</sub> a<sub>3</sub> a<sub>4</sub>]<sup>T</sup>,B=[1 1 1 1 1]<sup>T</sup>,<maths num="006"><![CDATA[ <math><mrow><mi>P</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msup><msub><mi>x</mi><mn>1</mn></msub><mn>2</mn></msup></mtd><mtd><mn>2</mn><msub><mi>x</mi><mn>1</mn></msub><msub><mi>y</mi><mn>1</mn></msub></mtd><mtd><msup><msub><mi>y</mi><mn>1</mn></msub><mn>2</mn></msup></mtd><mtd><msub><mrow><mn>2</mn><mi>x</mi></mrow><mn>1</mn></msub></mtd><mtd><msub><mrow><mn>2</mn><mi>y</mi></mrow><mn>1</mn></msub></mtd></mtr><mtr><mtd><msup><msub><mi>x</mi><mn>2</mn></msub><mn>2</mn></msup></mtd><mtd><msub><mrow><mn>2</mn><mi>x</mi></mrow><mn>2</mn></msub><msub><mi>y</mi><mn>2</mn></msub></mtd><mtd><msup><msub><mi>y</mi><mn>2</mn></msub><mn>2</mn></msup></mtd><mtd><msub><mrow><mn>2</mn><mi>x</mi></mrow><mn>2</mn></msub></mtd><mtd><msub><mrow><mn>2</mn><mi>y</mi></mrow><mn>2</mn></msub></mtd></mtr><mtr><mtd><msup><msub><mi>x</mi><mn>3</mn></msub><mn>2</mn></msup></mtd><mtd><mn>2</mn><msub><mi>x</mi><mn>3</mn></msub><msub><mi>y</mi><mn>3</mn></msub></mtd><mtd><msup><msub><mi>y</mi><mn>3</mn></msub><mn>2</mn></msup></mtd><mtd><mn>2</mn><msub><mi>x</mi><mn>3</mn></msub></mtd><mtd><mn>2</mn><msub><mi>y</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><msup><msub><mi>x</mi><mn>4</mn></msub><mn>2</mn></msup></mtd><mtd><mn>2</mn><msub><mi>x</mi><mn>4</mn></msub><msub><mi>y</mi><mn>4</mn></msub></mtd><mtd><msup><msub><mi>y</mi><mn>4</mn></msub><mn>2</mn></msup></mtd><mtd><msub><mrow><mn>2</mn><mi>x</mi></mrow><mn>4</mn></msub></mtd><mtd><mn>2</mn><msub><mi>y</mi><mn>4</mn></msub></mtd></mtr><mtr><mtd><msup><msub><mi>x</mi><mn>5</mn></msub><mn>2</mn></msup></mtd><mtd><msub><mrow><mn>2</mn><mi>x</mi></mrow><mn>5</mn></msub><msub><mi>y</mi><mn>5</mn></msub></mtd><mtd><msup><msub><mi>y</mi><mn>5</mn></msub><mn>2</mn></msup></mtd><mtd><msub><mrow><mn>2</mn><mi>x</mi></mrow><mn>5</mn></msub></mtd><mtd><msub><mrow><mn>2</mn><mi>y</mi></mrow><mn>5</mn></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>标记I<sub>1</sub>=a<sub>0</sub>+a<sub>2</sub>,<maths num="007"><![CDATA[ <math><mrow><msub><mi>I</mi><mn>2</mn></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>a</mi><mn>0</mn></msub></mtd><mtd><msub><mi>a</mi><mn>1</mn></msub></mtd><mtd><msub><mi>a</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><msub><mi>a</mi><mn>1</mn></msub></mtd><mtd><msub><mi>a</mi><mn>2</mn></msub></mtd><mtd><msub><mi>a</mi><mn>4</mn></msub></mtd></mtr><mtr><mtd><msub><mi>a</mi><mn>3</mn></msub></mtd><mtd><msub><mi>a</mi><mn>4</mn></msub></mtd><mtd><mo>-</mo><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>根据下面的条件限制,即椭圆参数应该满足的条件,可以进行判断:I<sub>1</sub>和I<sub>2</sub>应该满足:I<sub>1</sub>I<sub>2</sub><0,<maths num="008"><![CDATA[ <math><mrow><msub><mi>I</mi><mn>3</mn></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>a</mi><mn>0</mn></msub></mtd><mtd><msub><mi>a</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>a</mi><mn>1</mn></msub></mtd><mtd><msub><mi>a</mi><mn>2</mn></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msub><mi>a</mi><mn>0</mn></msub><msub><mi>a</mi><mn>2</mn></msub><mo>-</mo><msubsup><mi>a</mi><mn>1</mn><mn>2</mn></msubsup><mo>></mo><mn>0</mn><mo>;</mo></mrow></math>]]></maths>根据圆锥曲线特性,将二次曲线一般参数转化为常用的椭圆中心、轴、倾角的描述形式,转化公式如下:<img file="A2004100425350006C3.GIF" wi="426" he="125" /><img file="A2004100425350006C4.GIF" wi="413" he="124" />其中λ<sub>1</sub>和λ<sub>2</sub>是矩阵I<sub>2</sub>的特征值;<img file="A2004100425350006C5.GIF" wi="578" he="105" /><img file="A2004100425350006C6.GIF" wi="1338" he="257" />(6.2.3.3)矩形的拟合:采用OPENCV函数库中已有的基于轮廓的矩形拟合算法得到,直接输出检测到的矩形四个定点坐标值;(6.2.4)检测结果后处理:(6.2.4.1)拟合的边缘信息特征点的确定:它通过计算360度的角度上每一个角度是否存在被拟合到的特征点来确定;(6.2.4.2)用灰度直方图的方法判断检测的表盘背景颜色与已知背景颜色是否一致,按下以下步骤进行:(6.2.4.2.1)创建128个投票箱VoteBox[128],将投票箱清空置零;(6.2.4.2.2)对于检测结果区域的每一个像素点的亮度值I(0<=I<=255),对应第I/2个投票箱,将该投票箱记一数,VoteBox[I/2]++;(6.2.4.2.3)遍历128个投票箱,记录得票最多的投票箱序号为MaxBox;(6.2.4.2.4)如果MaxBox<32,则背景为黑色;如果MaxBox>96,则背景为白色;否则背景颜色错误;(6.2.4.2.5)检测的背景颜色与已知背景颜色是否一致,若一致,继续下面检测;否则舍弃;(6.2.4.3)指针检测:统计表盘内的特征点与表盘中心连线与图像X轴构成的夹角,制成角度直方图,根据步骤(6.2.4.2)的方法,出现峰值的角度也就是得票数最多的投票箱,即为指针所在的角度。
地址 100084北京市100084-82信箱