指针式仪表的表盘自动识别算法

948 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第24天,点击查看活动详情

一、算法简介

    指针式仪表的自动识别算法主要采用图像分割方法和鲁棒估计方法。指针式仪表在成像过程中受到光照不均、图像模糊、以及表盘表面与成像平面的偏斜等因素的影响,该算法主要包括几个方面的内容:

(1) 利用自适应分割方法进行初始分割,它可以消除光照不均的影响,其缺点是容易丢失刻度线;

(2) 统计图像的区域性质,利消除刻度以外的连通体,并计算各个连通体的中心;

(3) 利用RANSA方法估计表盘的圆心和半径,它可以非刻度连通体的干扰;

(4) 利用双线性插值方法把刻度所在的圆环图像变换为一个矩形图像,它可以进一步消除其他连通体的干扰,并且提取所有刻度线连通体;

(5) 利用自适应阈值方法对矩形图像进行分割;

(6) 重新利用RANSAC方法估计表盘的圆心和半径;

(7) 利用线性插值方法重新生成一个矩形图像,并利用它估计指针的大致方向;

(8) 剪切指针的尾部图像,并采用自适应阈值方法进行分割;然后利用指针的大致方向设计线状结构元,并对图像进行开运算,以消除其他因素的干扰;最后估计指针的精确位置及方向;

(9) 根据圆的参数和指针的参数自动识别表盘的读数;

    实际的实验结果表明,该方案能够有效地处理各种仪表的图像,并且具有较高的识别精度。下面分别对这些步骤进行详细的介绍。

二、基本步骤

该部分详细介绍指针式仪表的详细步骤,对其中的一些问题进行分析,并提出相应的解决方案。

1、初始分割
(1)图像预处理——高斯平滑

    为了消除噪声的干扰,首先对图像进行高斯平滑
image.png (2)自适应阈值方法

    根据局部统计特征,针对每个像素点计算分割阈值。由于刻度线是比较细的短线,该方法能够有效地处理光照不均的情况。

2、图像区域性质统计

    统计各个连通体的性质,包括面积、实心率等等,利用这些统计参数可以有效地消除不规则连通体的影响。但是由于实心率等参数计算量太大,所以本文仅利用面积作为特征,消除面积较大或较小的连通体。即使留下一些其他的干扰,如指针、数字等,由于后面采用了鲁棒估计方法,仍然能够精确地估计出圆心和半径。

3、估计表盘的圆心和半径

    计算各个连通体的中心,并利用RANSAC方法估计圆心和半径。该方法把所有中心点分为两类,即刻度连通体的中心点和非刻度连通体的中心点,并利用所有刻度连通体的中心计算圆心和半径,从而消除了非刻度连通体中心点的影响。由于RANSAC方法有坚实的理论基础,该方法能够取得比较好的效果,实际的应用也说明了这一点。
image.png

4、生成矩形图像

    利用双线性插值方法把刻度所在的圆环图像变换为一个矩形图像,它可以消除其他连通体的干扰。
image.png image.png

5、矩形图像分割

    由于刻度线都是竖直向上,可以利用灰度闭运算消除背景光照的影响,即:用原始图像减去经过水平方向闭运算的图像,即可消除光照不均的影响。im=(im-imclose(im,ones(1,9)));
image.png 6、重新估计圆的参数

    重新利用RANSAC方法估计表盘的圆心和半径,由于利用了所有刻度线的信息,可以取得较好的精度。
image.png

7、估计指针方向

    利用线性插值方法重新生成一个矩形图像,并利用它估计指针的大致方向。
image.png 沿列方向进行求和,可以得到一个一维曲线,求其最小值点即对应指针的位置。

image.png

8、剪切指针图像,

    剪切指针的尾部图像,并采用自适应阈值方法分割,然后用一个线状的形态学滤波算子消除干扰,并估计指针的精确位置及方向。
image.png 9、估计表盘的读数

    根据圆的参数和指针的参数自动识别表盘的读数。该方法根据指针和圆周的交点,找出距离交点最近的两个刻度线的中心位置,并利用线性插值的方法计算指针的读数。
image.png