基于图像处理的仪表指针转角识别方法
技术领域
本发明涉及基于图像处理的仪表指针转角识别方法,属于图像处理领域。
背景技术
图像处理在工业检测领域的使用逐渐增多,基于图像处理的仪表盘检测可以在很大程度上替代用人来去对仪表进行检测。仪表检测主要指其指针转向的检测,检测在给定输入信号下,测试仪表输出的指针指向是否准确。
现在仪表指针检测的主要使用绝对角度的方法,主要采用帧差法,即采集指针不同转角的两幅图像,然后进行相减,因为只有指针的位置发生变化,相减之后会剩下只含两个指针的图像,然后对其进行处理,算出指针指向的准确角度。
帧差法存在问题:每个仪表进行检测时,需要严格知道仪表的坐标信息,对仪表的装卡提出很到要求;该方法不是人观察仪表的原始方法,即人们所观察的是指针是否严格指向了什么刻度,一些表盘的刻度在转配时会有相对表盘中心的转动,即使指针绝对角度准确,指针也不一定是严格指向指定刻度的;除了指针外的其他像素在两幅图像中会有变化,帧差法都会查出来,方法有时会不稳定。
使用直接指针刻度指向识别的方法可以避免帧差法带来的弊端。但是面临以下问题:有的仪表盘图像元素复杂,提取的灰度图像会含有各种指示灯、数字、其他装饰元素,刻度的识别难度大;采集的图像会因为光线、相机参数的变化产生较大改变,指针的提取稳定性不高。
发明内容
本发明目的是为了解决采用绝对角度方法检测仪表指针的帧差法误差大的问题,提供了一种基于图像处理的仪表指针转角识别方法。
本发明所述基于图像处理的仪表指针转角识别方法,该方法包括以下步骤:
步骤一、利用工业相机采集仪表的一幅灰度图像,作为仪表的原始图像;
步骤二、对步骤一所述原始图像进行预处理,获取二值化图像,
步骤三、在所述二值化图像上初步提取仪表盘刻度,获取初步提取仪表盘刻度图像;
步骤四、对所述初步提取仪表盘刻度图像进行Hough圆变换,确定仪表盘的圆心;
步骤五、根据所述仪表盘的圆心,对步骤一所述原始图像进行极坐标变换,获取原始图像的极坐系图像,极坐标系x轴为像素距圆心的半径值,极坐标系y轴为仪表盘的角度值;
步骤六、对极坐标系y轴表述的仪表盘的角度值刻度进行分析,建立刻度角度序列;
步骤七、查找极坐标系中仪表盘的指针位置,获取指针二值化图像;
步骤八、根据步骤六获得的刻度角度序列获取步骤七的指针二值化图像在极坐标系下指向y轴的角度值,输出仪表盘的指针指向的真实数据,完成对仪表指针转角的识别。
本发明的优点:
1、较低的原始图像要求,降低对系统环境、相机、装卡等要求。预处理阶段允许Hough圆变换含有偏差,允许类刻度连通域的出现,允许刻度的不清晰或者颜色不同,允许表盘存在偏心(不圆),在使用以Hough变换为基准提取原始阈值化图像的连通域时允许刻度区域不完全的提取。允许最终的提取的表盘圆心存在偏差。允许最终的刻度存在少数未能提取到。以上情况均在原始图像像质很差的情况下发生,应用本方法不会影响最终的指针指向识别精度。较直接刻度的模板匹配,基于颜色的方法等性能大幅提高。
2、使用Hough变换提取的圆为基准,提取原始阈值化图像的连通域,可以排除圆内和圆外的类刻度区域的干扰,利用表盘的圆特性去除非刻度区域。在Hough变换未能够提取表盘粗略的刻度圆时采用降分辨率的方法,在较低分辨率下,就可以很好提取刻度圆。基于物体形态的识别会大大提升识别的性能。
3、步骤七中利用图像阈值化与Canny边缘提取后图像相减,可以断开指针区域和非指针区域的连接,防止指针阈值化后与周围的灯、数字等相连,影响指针拟合精度。使用指针拟合点的权值随偏离圆心距离增加而加大,可以提高对得到指针拟合精度。
4、算法不用每次都进行提取表盘圆心和刻度角度序列,在检测同一块表的不同指针指向时只需要提取一次表盘圆心和刻度角度序列,这样可以省去大量前期图像处理时间。
5、整体流程均由稳定性较高的图像处理算法组成:包括滑动阈值方法、Canny边缘提取、Hough圆变换。
6、基于刻度的指针指向识别,排除了在绝对角度检测中由于仪表偏转带来的检测偏差。图像处理结果更加直观。
附图说明
图1是本发明方法涉及的装置的结构示意图;
图2是本发明所述基于图像处理的仪表指针转角识别方法的流程图;
图3是实施方式二的流程图;
图4是实施方式三的流程图;
图5是实施方式四的流程图;
图6是实施方式五的流程图;
图7是实施方式六的流程图;
图8是原始图像,为灰度图像;
图9是原始图像用滑动窗口阈值化后的二值化图像;
图10是特征点限制后的二值化图像;
图11是特征点设定;
图12是原始图像被3*3模板处理后的腐蚀图像;
图13是在图11中查找图12的连通域后图像;
图14是对图13进行Hough圆提取后的图像;
图15是图14和图13叠加图像;
图16是在图13中查找图14的连通域;
图17是拟合后的圆像;
图18是原始图像极坐标变换后图像;
图19是刻度感兴趣区域图像;
图20是累加图19的x轴方向像素曲线图;
图21是图20的差分值曲线图;
图22是指针区域在原始图像基础上进行Canny轮廓提取后图像,为精提取的指针轮廓;
图23是准确的指针二值化图像。
具体实施方式
具体实施方式一:下面结合图1至图23说明本实施方式,本实施方式所述基于图像处理的仪表指针转角识别方法,该方法包括以下步骤:
步骤一、利用工业相机采集仪表的一幅灰度图像,作为仪表的原始图像;如图8所示。
步骤二、对步骤一所述原始图像进行预处理,获取二值化图像,如图9所示。
步骤三、在所述二值化图像上初步提取仪表盘刻度,获取初步提取仪表盘刻度图像;如图10至图13所示。
步骤四、对所述初步提取仪表盘刻度图像进行Hough圆变换,确定仪表盘的圆心;
步骤五、根据所述仪表盘的圆心,对步骤一所述原始图像进行极坐标变换,获取原始图像的极坐系图像,极坐标系x轴为像素距圆心的半径值,极坐标系y轴为仪表盘的角度值;
步骤六、对极坐标系y轴表述的仪表盘的角度值刻度进行分析,建立刻度角度序列;
步骤七、查找极坐标系中仪表盘的指针位置,获取指针二值化图像;
步骤八、根据步骤六获得的刻度角度序列获取步骤七的指针二值化图像在极坐标系下指向y轴的角度值,输出仪表盘的指针指向的真实数据,完成对仪表指针转角的识别。
仪表盘中心提取由两部分组成,预提取和精确提取。预提取中使用了刻度特征点限制,排除阈值化后明显不是刻度的像素,使用了Hough圆变换得到刻度圆的大致位置、参数。精确提取使用了刻度内侧、外侧同时圆拟合的方法得到圆心和刻度的半径最大值和最小值。
利用提取的圆心进行图像的极坐标变换,在极坐标下实现对仪表指针的提取和刻度角度序列的提取,指针使用加权点的直线拟合。
具体实施方式二:本实施方式对实施方式一作进一步说明,步骤二中预处理,获取二值化图像的过程为:参见图10至图13。
步骤21、在原始图像上标识出多个矩形框作为感兴趣区域;
步骤22、用2*2的滑动窗口进行阈值化,获取阈值化原始图像;
步骤23、对阈值化原始图像采用Canny算子的图像进行轮廓提取,保留刻度区域轮廓;
步骤24、对阈值化原始图像利用3*3模板进行图像腐蚀,获取腐蚀阈值化图像,
3*3模板遍历阈值化原始图像,某像素点周转3*3区域内含有像素时保留该像素点,否则,去除该像素点;
步骤25、在腐蚀阈值化图像中查找连通域,获取二值化图像。
针对不同形状的刻度设定特征点。算法遍历每个轮廓,针对每个轮廓,在对应像素坐标的二值化图像中通过检测这些特征点的像素存在/不存在来初步判断是否为仪表刻度,得到一个初步提取刻度的图像;腐蚀阈值化图像,查找腐蚀后的图像在初步提取的刻度图像中的连通域,去除干扰的图像区域。
具体实施方式三:本实施方式对实施方式一或二作进一步说明,步骤四中初步确定仪表盘圆心的过程为:
步骤41、对所述初步提取仪表盘刻度图像进行Hough圆变换,提取符合约束条件的圆,约束条件为:圆含有至少连续180°的弧在图像中;
步骤42、判断是否存在符合约束条件的圆,
判断结果为是,则执行步骤43;判断结果为否,则降低所述初步提取仪表盘刻度图像的分辨率,再返回执行步骤41;
步骤43、以Hough变换的圆为基准,在二值化图像中查找连通域,得到精确的仪表盘刻度图像,在对二值化图像中查找连通域,得到准确的只含有刻度的图像,此时刻度不必全部都提取出来。参见图15、16和17,识别一次即可,不需要判定是否所有刻度是否识别出来。
步骤44、对所述精确仪表盘刻度图像中含有刻度外边中点的圆和含有刻度内边中点的圆分别进行圆拟合,得到仪表盘的准确圆心和仪表刻度相对准确圆心的半径范围。
具体实施方式四:本实施方式对实施方式一、二或三作进一步说明,步骤六中建立刻度角度序列的过程为:参见图19至图21。
步骤61、计算极坐标系x轴每个点在y轴的累加像素的差分值;
步骤62、提取x轴上的各差分值峰值点;
步骤63、每个极大值和极小值的坐标平均值作为刻度中心,得到每个刻度的中心角度值,进而建立刻度角度序列。
具体实施方式五:本实施方式对实施方式一、二、三或四作进一步说明,步骤七中获取指针二值化图像的过程为:
步骤71、在极坐标系下计算x轴方向像素累加值最大值点对应的y值;
步骤72、根据步骤71的y值用矩形框设置指针感兴趣区域,进行查找指针轮廓;
步骤73、计算最大轮廓的中心点;
步骤74、查找所述中心点连通域,获取指针最大轮廓二值化图像;
步骤75、用所述指针最大轮廓二值化图像减去原始图像中指针Canny轮廓,获取指针二值化图像。
原始图像中指针Canny轮廓的获取与实施方式二中步骤23表述的过程一致。
具体实施方式六:本实施方式对实施方式一、二、三、四或五作进一步说明,步骤八中根据六的刻度角度序列获取步骤七的指针二值化图像在极坐标系下指向y轴的角度值,输出仪表盘的指针指向的真实数据,完成对仪表指针转角的识别的过程为:
步骤81、计算指针在x轴上每个点对应y轴像素的平均y坐标值;
步骤82、按指针在x轴上从小到大的顺序对每个点对应的y轴像素的平均y坐标值进行直线拟合;
步骤83、根据步骤82拟合的直线,计算该直线在表盘极坐标系下对应的角度值,即获取指针二值化图像在极坐标系下指向y轴的角度值;
步骤84、再查找刻度角度序列,输出仪表盘的指针指向的真实数据,完成对仪表指针转角的识别。