基于图像处理的水位信息自动提取技术

2016-03-25 08:37刘正伟陈晓生骆曼娜牛智星江苏南水科技有限公司江苏南京1001云南省水文水资源局昆明分局云南昆明650000江西省鄱阳湖水文局江西九江800水利部南京水利水文自动化研究所江苏南京1001水利部水文水资源监控工程技术研究中心江苏南京1001
水利信息化 2016年1期
关键词:字符识别图像处理

陈 翠,刘正伟,陈晓生,骆曼娜,牛智星,阮 聪(1. 江苏南水科技有限公司,江苏 南京 1001;. 云南省水文水资源局昆明分局,云南 昆明 650000;. 江西省鄱阳湖水文局,江西 九江 800;4. 水利部南京水利水文自动化研究所,江苏 南京 1001;5. 水利部水文水资源监控工程技术研究中心,江苏 南京 1001)



基于图像处理的水位信息自动提取技术

陈 翠1,5,刘正伟2,陈晓生3,骆曼娜3,牛智星1,5,阮 聪4,5
(1. 江苏南水科技有限公司,江苏 南京 210012;2. 云南省水文水资源局昆明分局,云南 昆明 650000;3. 江西省鄱阳湖水文局,江西 九江 332800;4. 水利部南京水利水文自动化研究所,江苏 南京 210012;5. 水利部水文水资源监控工程技术研究中心,江苏 南京 210012)

摘 要:为满足水尺量测水位自动化和实时性的需求,提出通过图像处理技术实现对水尺图像自动提取水位信息的技术方法。首先通过对水尺图像进行图像增强、二值化、边缘检测和去除噪声等处理定位出水尺;然后根据水尺上字符的特征实现字符分割,采用模板匹配法实现字符识别,并运用最长等差数列法对识别结果进行优化校正;最后根据识别结果,分不同情况计算出水尺读数。实验结果表明,该方法识别信息的正确性和精确性较高,可满足实际应用需求。

关键词:图像处理;字符识别;水尺图像;水位信息;matlab;自动提取

0 引言

通过安装水尺进行水位量测,具有读数稳,抗干扰,费用低,寿命长等优点,因而得到广泛应用。但这种方法需要人工读数,受环境和人为因素的影响较大,在环境恶劣的情况下,观测不便,水位监测实时性和观测人员的人身安全得不到保证。

随着数字化、网络化的日益发展,应用计算机和图像处理技术自动化、智能化地识别图像成为可能。经过研究,将数字图像处理技术应用于水尺图像上水位自动提取中,并采用 matlab7.0 作为开发工具,对拍摄的水尺图像进行图像处理和水位计算。

1 水尺图像的预处理

通过 CCD 摄像机或数码相机采集到的水尺图像主要包括水尺及复杂的背景信息。由于在光照、天气等因素影响下可能导致图像质量降低,因此需要对待识别的图像进行一系列的图像处理操作以削弱背景信息,去除噪声等无用信息,从而突出水尺信息,提高水尺识别和水位计算的准确度和可靠性。

1.1图像灰度化和增强

从监测点采集到的原始图像是 RGB 真彩色图像,如图 1 所示。在水尺图像中,字符的颜色没有特殊的含义,因此灰度图像可满足水尺识别的需求,且灰度图像的颜色空间是一维的,进行图像处理和计算可以占用较少的系统资源,提高执行速度。

对图 1 灰度化[1]处理生成的灰度图如图 2 所示。为了将水尺与背景更准确地分离开来,需要增强水尺与背景的对比度。首先采用形态学方法[2]中的开操作进行背景图像提取,然后从原始图像中减去背景图像,从而实现水尺图像增强的效果。该方法的关键步骤是开操作中结构元素的选取,结构元素的选取直接影响图像处理的结果。尺寸过小会将图像中水尺上的字符结构破坏,如图 3 a 所示;尺寸过大提取的背景信息不全面,使得水尺与背景对比度不明显,如图 3 b 所示,水尺和背景中的石头灰度值区分度过低。

图3 不同结构元素处理结果对比

通过多次试验和对比分析,对图 1 选择的结构元素为半径为 12 px 的圆盘。提取的背景图像如图4 a 所示,处理后的图像如图 4 b 所示,水尺与背景的灰度区别比较明显。

图4 图像增强的结果

1.2图像二值化

二值图是指每个像素不是白(255)就是黑(0),灰度值没有中间过渡的图像。水尺不像人物和风景那样需要很多的灰度级来描述内部细节,非黑即白的二值图像即可展示出水尺及上面字符的轮廓,满足后续水尺定位和字符识别的需求。

为了得到二值图像,通常采用的技术是阈值分割技术,以阈值作为分割线,将图像分割为前景和背景 2 个部分,不同的阈值分割产生的二值图像可能截然不同。目前,许多研究者提出了多种阈值选择方法[3-4],根据阈值的应用范围可将这些方法划分为以下 2 类:

1)局部阈值法。局部阈值法是将图像分成若干子图像,然后针对每个子图像分别确定阈值,最后将分割的结果合并成完整的图像。常用的局部阈值法有 Niblack 和 Bernsen 法等。由于局部阈值法要对每个子图像进行处理,计算量大,所以子图像尺寸分割的越小,二值化处理速度越慢。且局部阈值是根据单个子图像确定的,因此子图像间的阈值联系不紧密,可能产生相邻子图像之间过渡不平滑甚至突变的现象。

2)全局阈值法。全局阈值法指对整幅图像只采用 1 个阈值进行图像分割。常用的方法有自定义阈值和 OTSU 算法[5]等。自定义阈值法是人为设定阈值,不需要耗费系统资源计算,在拍摄水尺的相机位置固定,且光照、背景变化不大时可以应用此方法,但是此方法对环境变化的适应性不高;OTSU 算法是一种自适应的阈值确定方法,在汽车牌照、验证码识别等多个领域有着广泛的应用。

水尺图像识别应满足自动化及实时性的需求,尽量减少人工干预并快速计算出结果,因此,阈值的确定选用全局阈值 OTSU 算法。OTSU 算法又称为最大类间方差法,主要思想是前景和背景如果错分,类间差别就会变小,因此,类间方差越大就意味着错分的概率越小。所以,求出最大类间方差所对应的灰度值即为最佳阈值,主要步骤如下:

1)读入灰度图像;

2)求出灰度图像灰度值的取值范围 [a,b];

3)取阈值 T∈[a,b];

4)将图像分割成前景和背景 2 类,并计算每类像素个数 n目和 n背;

5)计算每类区域内图像的灰度均值 µ目和 µ背及其所占总图像的比例 ω目,ω背;

6)计算阈值为 T 时的类间方差,并保存到数组中,计算公式为

7)遍历 [a,b] 内的灰度值,根据步骤(4)~(6)计算每个灰度值对应的类间方差;

8)找出最大类间方差,则其所对应的灰度值 T即为所求阈值。

采用 OTSU 算法求出图 4 b 的二值化灰度阈值为 107,二值化结果如图 5 所示。

图5 二值化图像

1.3边缘检测

水尺包含明显的边缘信息,是区别于背景图像的一个重要特征,所以边缘检测对水尺定位相当重要。边缘检测是图像识别领域中的研究热点之一[6],已取得大量的研究成果,如 Sobel,Roberts,Perwitt,Laplacian 和 Canny 等算子。Canny 边缘检测算法[7]是一个具有滤波、增强和检测的多阶段优化方法,通过对信噪比与定位乘积进行测度,得到最优化逼近算子,属于先平滑后求导数的方法。虽然相较于其他几个算法,实现起来较麻烦,但是效果较好。采用 Canny 边缘检测算法进行水尺边缘检测,边缘检测结果如图 6 所示。

图6 canny算子边缘检测结果

1.4噪声处理

图像在二值化后所得到的边界往往很不平滑,目标区域内通常会分布一些噪声孔,背景区域上也会散布着一些小的噪声物体。为了去除噪声,对水尺图像的噪声处理包括面积和图像形态学去噪[8]2 个部分,面积去噪指将图像中面积小于给定值的小物体过滤掉,图像形态学处理的基本运算有膨胀、腐蚀、开启和闭合。先膨胀后腐蚀的过程称为闭合运算,其中的膨胀操作可使物体的边界向外扩张,如果物体内部存在小空洞的话,经过膨胀操作可将这些洞补上,使其不再是边界,再进行腐蚀操作时,外部边界将变回原来的样子,而这些内部空洞则永远消失。先腐蚀后膨胀的过程称为开启运算,其中的腐蚀操作可以去掉物体的边缘点,细小物体的点都会被认为是边缘点,因此会被整个删去,再做膨胀时,留下来的大物体会变回原来的大小,而被删除的小物体则永远消失。因此,组合使用这些基本运算可实现复杂噪声的处理。

对图 6 的边缘图像,首先进行面积去噪,然后按照先闭合再开启的顺序组合对边缘图像进行形态学处理,再进行 1 次面积去噪,从而实现过滤掉小的噪声物体,填补一些小的空洞,连接邻近物体和平滑水尺的边界区的效果。噪声处理的过程和结果如图 7 所示。

图7 噪声处理过程

2 水尺定位

在图像预处理后,最优的状态是将背景区域上的物体全部滤除,将水尺与背景完全分离,如图 7 d所示,但有时仍会残留一些背景物体,因此需要对水尺进行精确定位。水尺定位过程是水尺图像识别研究中的关键过程,是水尺字符分割的基础,对识别水位起到决定性作用。

水尺定位算法主要针对水尺图像的某种特征加以处理,水尺的形状和投影具有以下特征:

1)图像中的水尺通常为水平方向窄,垂直方向长的矩形形状,因而垂直方向的投影像素和较大,与背景上的其他物体的像素和之间的差值也较大。

2)相较于水尺上下边缘外的背景物体,水尺左右两侧的背景区域更大,出现背景物体的几率更大。

进行水尺定位时,首先确定水尺的左右边缘,再在此基础上确定上下边缘。具体的水尺定位算法描述如下:

1)在整个图像范围内,计算每一列(总列数 n,总行数 m)像素灰度值的总和为

式中:i 为行坐标;j 为列坐标;

2)找出列像素总和为最大时所在的列坐标 j;

3)以 j 为分界点,分别向该列左右两边搜寻水尺的左右边界 j1和 j2,判断是否是边界的条件为,列号在图像的范围内且该列的像素和小于预定值;

4)在 j1和 j2列范围内,计算每一行像素灰度值的总和为

5)找出行像素总和为最大时所在的行坐标 i;

6)以 i 为分界点,分别向该行上下两边搜寻水尺的上下边界 i1和 i2,判断是否是边界的条件为,行号在图像的范围内且该行的像素和小于预定值。

在原始图像中,行号在 i1,i2,列号在 j1,j2范围内的图像即为水尺,截取的水尺原始图像如图 8 a所示。由于水尺底色为白色,字符为红色或蓝色,因此二值化后的水尺字符灰度值为 0,水尺底板灰度值为 255,如图 8 b 所示,这样的结果不利于后续字符的识别,因此需要对二值化后的水尺图像取反,得到的图像如图 8 c 所示。

图8 截取的水尺图像

3 水尺字符分割与识别

3.1水尺字符分割

水尺上字符的特点如下:水尺上左右两边的“E”在相邻的地方间隙非常小,由于拍照角度等原因,某些地方甚至有粘连;垂向上,数字字符的中间有间断;数字字符的右侧都有 1 个“E”字;虽然实际上每个“E”的高度和宽度一样,但由于水尺较长及拍摄角度的原因,图像上第 1 个字符与最后 1 个字符的大小存在一定程度的差距。

为了将水尺上的字符最终识别出来,需要确定每个字符的上下左右边界,将其从水尺中分离出来,作为后续字符识别的输入数据。划分 2 个字符的依据是字符之间的间隙,根据上述水尺字符的排列和间隙的特点,提出的字符分割方法如下:

1)将水尺分割成左右两边;

2)对左侧的水尺做水平方向的投影,如图 9 所示,根据字符之间间隙的投影像素和为 0,确定每个字符的上下边界;

图9 左半边水尺及其投影

3)根据上下边界分割字符;

4)对分割后的字符做垂直投影,分别从图像的第 1 和最后 1 列开始,逐列向中间寻找像素和大于 0的列作为字符的左右边界;

5)根据左右边界再次分割该字符,完成字符的分割。

水尺右半边水尺上只有字符“E”,所以不进行字符识别,后续只用来精确确定水位。左半边水尺分割后的字符图像如图 10 所示。

图10 分割后的字符

3.2水尺字符识别

字符识别在车牌和验证码等识别领域已有广泛的应用,识别的方法有很多种,如基于字符结构、笔画、统计等特征的识别方法,以及神经网络和模板匹配法等。模板匹配法相较于其他识别方法,不需要大量的样本,具有简单、快速的优点,特别适用于待识别的字符种类有限的领域,因此在车牌识别[9]领域应用非常广泛。

鉴于水尺上的字符只有 11 种,字符分类器结构比较简单,因此选择模板匹配法进行字符识别。所谓模板,就是 1 幅已知的小图像,模板匹配就是将模板与目标图像在空间上对准,通过逐一比较同一位置上 2 幅图的像素值度量 2 幅图像的相似性。度量 2 幅图像相似性的计算公式为

式中:D 为图像相似性;M,N 分别表示图像行、列像素数;A 表示模板图像;B 表示待匹配图像。

从式(5)可以看出模板的大小直接影响计算量,根据分割后的水尺字符图像的大小及长宽比,选择 20 px×28 px 作为标准模板的大小,并在photoshop 中制作每个字符的黑白标准模板,保存在模板库中。为了消除由于字符图像大小、位置的差异对字符匹配的影响,在与模板匹配之前,首先对分割后的字符图像进行大小归一化处理,使其与标准模板大小相同;然后根据式(5)将待识别的字符与模板一一进行计算,取 D 值最小(D 值越小表明相似性越高)的模板所代表的字符作为识别结果。

字符识别要求具有较高的正确率,由于拍摄角度、字符缺损或遮挡,难免会误识别。相较于车牌、验证码等没有规律的字符序列,水尺上的字符排列具有一定的规律。因此,在模板匹配识别后,需对识别结果进行检查和校正,以提高水尺识别的正确率。左侧水尺上字符的排列规律为:字母“E”与数字交替出现,且数字是 9~0,公差为 -1 的等差数列。如果识别结果中连续的几个字符满足上述规律,则这几个字符被正确识别的可能性就较高。通过从识别结果中找出满足上述字符排列规律的最长的子字符串,并据此推求其他位置的字符,验证其他位置的识别结果是否正确,从而达到提高识别正确率的效果,具体优化流程如图 11 所示。

图11 字符识别结果优化流程图

4 水位计算

由于水面淹没最后 1 个字符的情况可以有很多种,因此无法制作各种情况的字符模板来识别最后1 个字符代表的具体值,以“E”为例,多种情况如图 12 所示。按照字符识别和结果优化方法,这几个图识别的结果是一样的,但实际上表示的水位是不同的。因此,需要计算出最后 1 个字符表示的高度,才能精确计算出水位。

图12 水面淹没最后 1 个字符的多种情况

因为“E”的水平投影呈“峰谷峰谷峰”的特征,如图 9 b 中黑色框所示即为“E”的水平投影。当最后 1 个字符是“E”时,根据它的水平投影的“峰”数确定表示的高度;当最后 1 个字符是数字时,根据水尺上数字右侧是“E”这一特征,计算数字右侧 “E”的水平投影的“峰”数确定高度。

为了简化计算,峰数的计算方法为:在图像列方向上,截取“E”图像中间 30% 的列做水平投影,则投影中像素和大于 0 的行表示峰,等于 0 的行表示谷,据此计算出峰数。当峰数为 1 时,表示的高度 Zc为 1 cm;当峰数为 2 时,表示的高度为3 cm;当峰数为 3 时,表示的高度为 5 cm。

确定最后 1 个字符表示的高度后,根据识别字符中是否有数字及最后 1 个字符是数字还是“E”,水尺读数的计算方法分为如下几种情况:

1)识别结果中有数字且最底端 1 个字符是 E,计算公式为

式中:Zn为当前水尺读数;Zl表示识别出的最后 1 个数字;Zc表示最后 1 个字符的高度。

2)识别结果中有数字且最底端 1 个字符是数字,计算公式为

3)识别结果仅有 1 个 E,此种情况作为水面即将淹没水尺处理,计算公式为

4)其他情况,作为识别结果错误处理,计算公式为

通过计算,所得结果只表示当前水尺(长度为100 cm)的水位读数,与人工读取水尺一样,若要计算出实际水位 Zs(m),还需要知道该水尺最高点表示的水位 Z(m),则

对图 13 所示多水尺垂直叠加的情况,字符识别的方法同样适用,但由于通常不能拍摄到全部的水尺,也很难从图像中判断是第几根水尺,因此虽然可以识别出图像中的字符,但只能给出当前没入水中的水尺的读数,其表示的实际水位无法计算;如果可以拍摄到全部的水尺,则可以通过水尺顶端代表的实际水位减去水尺识别的字符所代表的高度计算实际水位。

图13 多水尺叠加

5 结果与分析

对图 1 水尺原始图像的水位信息提取结果如图 14 所示。采用模板匹配法初次识别的结果为“9E8E7E6E5E4E36”,采用最长等差数列法优化校正后,最终的识别结果为“9E8E7E6E5E4E3E”。根据识别的结果中有数字且最后 1 个字符是“E”,当前水位的计算采用式(6)计算,得出当前水尺的读数为 0.27 m。

图14 水尺图像水位信息提取结果

应用图像自动提取技术对图 15 中几幅原始图像进行水位提取,结果如图 16 所示。

从图 14 和 16 的水位提取结果可以看出,将模板匹配和优化校正法结合使用,可有效提高水尺字符识别的正确性,误差分析如表 1 所示。

图15 实验应用原始图像

图16 实验应用水位提取结果

表1 水位提取结果误差分析 m

6 结语

将现代化的图像处理技术与传统的水尺量测水位的方法相结合,可提高水情遥测的自动化程度。此外,应用计算机代替人工进行水尺水位判读,可提高水位观测的及时性和自动化程度,提高水位监测的工作效率。实验结果表明,应用图像自动提取技术能够较准确地识别出水尺的字符,计算出的水尺读数与人工读数基本一致,可满足实际应用需求。虽然在字符识别后进行的识别优化过程可以在一定程度上解决由于尺面污染、水尺破损等导致的误识别的问题,但也不能完全保证正确,应采取措施保护水尺。此外,因为水尺图像是在野外拍摄的,受光照不足、雨、雾等因素的影响,图像质量可能较低,也会影响识别的正确性,所以实际应用时,还需要在现场安装一些保护及照明设施来提高水尺图像的质量。

参考文献:

[1] 陈金水. 基于视频图像识别的水位数据获取方法[J]. 水利信息化,2013 (1): 48-51.

[2] 万丽,陈普春. 一种基于数学形态学的图像对比度增强算法[J]. 现代电子技术,2009,32 (13): 131-133.

[3] 江明,刘辉,黄欢. 图像二值化技术的研究[J]. 软件导刊,2009 (4): 175-177.

[4] 吴冰,秦志远. 自动确定图像二值化最佳阈值的新方法[J]. 测绘学院学报,2001,18 (4): 283-286.

[5] 范九伦,赵凤. 灰度图像的二维 Otsu 曲线阈值分割法[J].电子学报,2007,35 (6): 751-755.

[6] 段瑞玲,李庆祥,李玉和. 图像边缘检测方法研究综述[J]. 光学技术,2005,31 (3): 415-419.

[7] 王植,贺赛先. 一种基于 Canny 理论的自适应边缘检测方法[J]. 中国图象图形学报,2005,9 (8): 957-962.

[8] 张艳玲,刘桂雄,曹东,等. 数学形态学的基本算法及在图像预处理中应用[J]. 科学技术与工程,2007,7 (3): 356-359.

[9] 胡桂珍. 基于数字图像处理的车牌识别系统研究[D]. 成都:西南交通大学,2010: 23-25.

Technology of Water Level Automatically Extract based on Image Processing

CHEN Cui1,5, LIU Zhengwei2, CHEN Xiaosheng3, LUO Manna3, NIU Zhixing1,5, RUAN Cong4,5
(1. Jiangsu Naiwch Co.Ltd, Nanjing 210012, China; 2. Kunming Branch Bureau of Yunnan Province Hydrology and Water Resources Bureau, Kunming 650000, China; 3. Poyanghu Branch Bureau of Jiangxi Province Hydrology and Water Resources Bureau, Jiujiang 332800, China) 4. Nanjing Automation Institute of Water Conservancy and Hydrology, the Ministry of Water Resources, Nanjing 210012, China; 5. Hydrology and Water Resources Engineering Research Center for Monitoring, the Ministry of Water Resources, Nanjing 210012, China)

Abstract:In order to meet requirements of automation and real-time of water gauge for measuring water levels, the article proposes research and technical methods of automatically extract water gauge water level image information by image processing technology . First it locates the water gauge by the disposes of image enhancement, binarization, edge detection and removal process noise for the water gauge image. Then it realizes character segmentation based on the characteristics of the characters on the water gauge, achieves character recognition using the template matching method, and uses the longest and other arithmetic method to optimize recognition results. Finally, it calculates water gauge readings based on the recognition results at the different situations. Experimental results show that the correctness and accuracy of the method for identifying information is higher. It may meet the actual application requirements.

Key words:image processing; character recognition; water gauge image; water level information; matlab; automatically extract

作者简介:陈 翠(1989-),女,江苏徐州人,硕士,主要研究方向:GIS 应用、水情信息系统软件研发。

收稿日期:2015-09-15

中图分类号:P331;TV39

文献标识码:A

文章编号:1674-9405(2016)01-0048-08

猜你喜欢
字符识别图像处理
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
一种改进深度学习网络结构的英文字符识别
基于自动智能分类器的图书馆乱架图书检测
仪表字符识别中的图像处理算法研究
纸币冠字号提取的方法研究
基于图像处理的定位器坡度计算
基于CUDA和深度置信网络的手写字符识别