用于复杂环境下对于仪表视觉读数在线监测系统的抗干扰算法

(整期优先)网络出版时间:2019-07-17
/ 1

用于复杂环境下对于仪表视觉读数在线监测系统的抗干扰算法

伍家成袁国堂龚哲

浙江大学台州研究院318000,

摘要:本算法主要解决了在工厂,车间等复杂环境下使用机器视觉在线监测关键仪表读数,实时监测关键仪表的数据,达到在线安全生产的目的。传统的机器视觉读数算法只适合在固定光源或自带光源,环境稳定的条件下使用,但是在工厂,车间等开放式,光源位置不同,人工走动或者各种因素干扰下的复杂环境下会出现仪表盘指针投射在表盘上的阴影干扰正常读数的情况,使得读数在某些情况下会产生严重偏差,严重影响检测精度,导致各种警报误报,使用本算法可以有效避免不理想光源带来的阴影干扰产生的偏差,稳定读取表盘读数。

关键词:仪表检测;机器视觉;抗干扰算法;应用

算法概述

1图像预处理

接收到传感器返回的图像数据之后,先对图像进行预处理,得到需要的灰度图.

1.1灰度化

使用公式对图像进行灰度化操作,其中g(i,j)为(i,j)点的灰度,R(i,j)为(i,j)点的红(red),G(i,j)为(i,j)点的绿(green),B(i,j)为(i,j)点的蓝(blue)。

1.2非线性动态调整

使用公式对灰度图进行处理,其中原图像灰度为,处理后图像为,c为增益常数,跟据图像整体亮度取值。

2.边缘检测

使用Canny算子对图像边缘进行提取。

3.霍夫变换

使用霍夫变换对图像特征进行检测,分别提取目标图像中的圆(表盘)形和直线(指针)。

4.检测圆形

1)使用概率霍夫变换检测目标边缘图像中所有圆形

2)取其中半径最大的圆形,该圆半径为。

3)获取所有圆心与相差<0.05并且半径>0.5的圆的集合

4)取其中半径最小的圆,该圆定义为目标表盘所代表的圆,该圆半径R为表盘内径

5)如果没能成功检测到表盘,则记录所有数据和图像,保存至数据库,以供算法进一步完善

5.检测直线

1)使用概率霍夫变换检测目标边缘图像中所有圆形,精度1像素,角精度PI/180,阈值0.5R(R为表盘半径)。

2)筛选其中的指针线,筛选规则:

1.线段起点终点位于表盘圆内;

2.线段延长线与表盘圆心距离L<0.1R;

3.线段长度>;

3)使用均方差法对获取的线段斜率进行二次筛选,去除噪点线段

4)记录获取到的指针线段

5)如果没能成功检测到指针,则记录所有数据和图像,保存至数据库,以供算法进一步完善

6.截取指针周围图像

当检测系统成功读取到目标仪表盘读数之后会产生已下数据:

1)目标表盘中心坐标(X,Y);

2)目标表盘半径R;

3)目标指针斜率K;

4)目标指针长度L;

以目标指针为基准,截取一段长为L,宽为,方向为K的长方形区域,记录为目标指针区域.

(十三)对比指针区域面积和灰度直方图分布特征,判断有无阴影干扰

7.1获取灰度直方图波峰数据

计算该图像灰度直方图=,其中为像素总数,为灰度级的像素个数.

对灰度直方图进行处理,使用均值滤波进行平滑,之后绘制制定精度逼近多边形曲线,然后对曲线进行凹凸检测,获取灰度直方图的波峰和波谷。

7.2判断每个波峰所代表的区域

结合面积和色彩来判断每一个波峰所代表的区域,设对应截取的区域指针面积+背景标记面积对应的像素面积为,图像的累积直方图==,为波谷或者0,为下一个波谷,如果时最后一个波谷则=255,,当=时,取波峰,该波峰就是图像内指针所代表的灰度值对应的波峰。

8.去除阴影部分

设代表阴影区域的前波谷,代表阴影区域的后波谷,设代表背景区域的前波谷,代表背景区域的后波谷。

计算阴影区域的局部直方=其中为的像素总数,为灰度级的像素个数,替换目标像素灰度值将阴影区域的灰度值波峰以高阶函数缩放,使整体波峰向背景区域聚拢,同时用同样的算法将背景区域波峰向阴影区域聚拢,平滑阴影和背景区域色差,达到消除阴影干扰的目的。

9.结束语

现有的指针式仪表自动检测装置都是封闭式,自带光源的装置,需要把被检表整个包裹在一个封闭的装置内,然后自己使用稳定光照来进行机器视觉读数,但是工厂车间的仪表位置多种多样,有的嵌在仪器上,有的需要人工读数,不能被包裹,全包裹式检测法适用面太窄,而使用抗干扰算法可以有效排除阴影和环境明暗度的干扰,所以不需要包裹被检表,也不需要额外光源,只需要一个微型传感器和一个任意支架即可完成对仪表的自动检测,极大提高了指针式仪表视觉检测应用的覆盖面。