资源描述
Q260046902 专业做论文
西南科技大学
毕业设计(论文)
题目名称:车辆牌照图像识别算法研究与实现
西南科技大学本科生毕业论文 IV
车辆牌照图像识别算法研究与实现
摘要:近年来随着国民经济的蓬勃发展,国内高速公路、城市道路、停车场建设越来越多,对交通控制、安全管理的要求也日益提高。因此,汽车牌照识别技术在公共安全及交通管理中具有特别重要的实际应用意义。本文对车牌识别系统中的车牌定位、字符分割和字符识别进行了初步研究。对车牌定位,本文采用投影法对车牌进行定位;在字符分割方面,本文使用阈值规则进行字符分割;针对车牌图像中数字字符识别的问题,本文采用了基于BP神经网络的识别方法。在学习并掌握了数字图像处理和模式识别的一些基本原理后,使用VC++6.0软件利用以上原理针对车牌识别任务进行编程。实现了对车牌的定位和车牌中数字字符的识别。
关键词:车牌定位;字符分割;BP神经网络;车牌识别;VC++
Research and Realization of License Plate Recognition Algorithm
Abstract: In recent years, with the vigorous development of the national economy,there are more and more construct in the domestic expressway, urban road, and parking area. The requisition on the traffic control, safety management improves day by day. Therefore, license plate recognition technology has the particularly important practical application value in the public security and the traffic control. In the paper, a preliminary research was made on the license location, characters segment and characters recognition of the license plate recognition. On the license location,the projection was used to locate the license plate; On the characters segmentation, the liminal rule was used to divide the characters; In order to solve the problem of the digital characters recognition in the plate, BP nerve network was used to recognize the digital characters. After studying and mastering some basic principles of the digital image processing and pattern recognition, the task of license plate recognition was programmed with VC++ 6.0 using above principles. The license location and the digital characters recognition in the license plate were implemented.
Keywords: license location, characters segmentation, BP nerve network, license plate recognition, VC++
目 录
第1章 绪论 1
1.1 课题研究背景 1
1.2 车辆牌照识别系统原理 1
1.3 车辆牌照识别在国内外研究现状 2
1.4 本文主要工作及内容安排 3
第2章 车辆牌照的定位方法 4
2.1 车辆牌照图像的预处理 4
2.1.1 256色位图灰度化 4
2.1.2 灰度图像二值化 5
2.1.3 消除背景干扰去除噪声 6
2.2 车辆牌照的定位方法简介 6
2.3 系统采用的定位方法 7
2.3.1 车辆牌照的水平定位 7
2.3.2 车辆牌照的垂直定位 7
2.3.3 定位的算法实现 10
2.4 实验结果分析 12
第3章 车辆牌照的字符分割 13
3.1 车牌预处理 13
3.1.1 去边框处理 13
3.1.2 去噪声处理 13
3.1.3 梯度锐化 15
3.1.4 倾斜调整 16
3.2 字符分割方法简介 17
3.3 系统采用的分割方法 19
3.3.1 算法介绍 19
3.3.2 算法的实现 20
3.4 字符分割实验结果 21
第4章 特征提取与字符识别 22
4.1 字符的特征提取 22
4.2 字符的识别方法简介 23
4.3 系统采用的识别方法 24
4.3.1 人工神经网络简介 24
4.3.2 BP神经网络识别车牌 25
4.3.3 BP神经网络识别算法实现 28
4.4 实验结果分析 29
总结 32
致谢 33
参考文献 34
西南科技大学本科生毕业论文
第1章 绪论
1.1 课题研究背景
现代社会已经进入信息时代,计算机技术、通信技术和计算机网络技术的不断发展,自动化信息处理能力的不断提高,在人们社会活动和生活的各个领域得到了广泛的应用,在这种情况下,作为信息来源的自动检测、图像识别技术越来越受到人们的重视。
随着汽车数量的急剧增加,车牌自动识别(license plate recognition, LPR)技术日益成为交通管理自动化的重要手段[1]。车牌自动识别技术是计算机视觉、图像处理技术与模式识别等技术的融合,是智能交通系统中一项非常重要的技术。通过车辆牌照自动识别,就可以对运动车辆查询相关的数据库,根据提取的车辆信息,实现有针对性的车辆检查,极大的提高工作人员的效率,降低工作强度,同时也减少了国家财政收入的流失,减少交通事故的发生以及加强社会治安。因此对车牌识别技术研究有巨大的经济价值和现实意义。
由于车牌自动识别技术在智能化交通控制管理中发挥的重要作用,吸引了各国的科研工作者对其进行广泛的研究,目前已有众多的算法,有些已应用于交叉路口、车库管理、路口收费、高速公路等场合。由于需适应各种复杂背景,加之要识别的车辆种类繁多,颜色变化多端,以及检测时要适应不同天气变化导致的不同光照条件,因此,目前的系统都或多或少地存在一些问题。但随着计算机性能的提高和计算机视觉理论及技术的发展,这种技术必将日趋成熟。
车牌的定位与识别技术,总体来说是图像处理技术与车牌本身特点的有机结合,当然也包括小波分析、神经网络、数学形态学、模糊理论等数学知识的有效运用[2]。
本课题是对汽车图像进行分析,从算法角度来研究车牌的定位与识别。
1.2 车辆牌照识别系统原理
一个典型的车辆牌照识别系统(LPR)是由图像采集系统和图像识别系统组成的,如图1-1[3]。当系统发现有车时,图像采集系统便开始采集车辆牌照信息,得到的信息是图像识别系统的输入。通过识别系统的预处理,为目标搜索提供一个良好的定位环境。在预处理的基础上把图像中的车牌从背景中分割出来。对车牌中的字符做字符分割,最后把分割后的字符进行识别,便得到了汽车牌照的号码。
整套系统实际是一种硬件和软件的集成。在硬件上,它需要集成可控照明灯、镜头、图像采集模块、数字信号处理器、存储器、通信模块、温控模块、单片机等;在软件上,它包括车牌定位、车牌字符切割、车牌字符识别等算法。这样一体化的结构形式能在现实中降低对环境的要求。
图1-1 车辆牌照识别系统原理框图
1.3 车辆牌照识别在国内外研究现状
自1988年以来,人们就对车辆牌照识别系统进行了广泛的研究,目前国内外已经有众多的算法,一些实用的LPR技术也开始用于车流监控、出入控制、电子收费等场合。然而无论是LPR算法还是LPR产品都存在一定的局限性,都需要适应新的要求而不断完善。如以色列Hi-Tech公司的See/Car System系列,它需要多种变形的产品来分别适应某一个国家的车牌;新加坡Optasia公司的VLPRS系列,只适合于新加坡的车牌;See/Car Chinese系统可以对中国大陆的车牌进行识别,但都存在一定的缺陷,而且不能识别车牌中的汉字。
我国在90年代初期开始了车辆牌照识别技术的研究。但由于以下几个原因使我国的车辆牌照识别技术在研究和应用方面都有一定难度,且落后于其它国家:①我国的标准汽车牌照是由汉字、英文字母和阿拉伯数字组成,汉字的识别与字母和数字的识别有很大的不同,从而增加了识别的难度。②国外许多国家汽车牌照的底色和字符颜色通常只有对比度较强的两种颜色,而我国汽车牌照仅底色就有蓝、黄、黑、白等多种颜色,字符颜色也有黑、红、白等几种颜色。③其他国家的汽车牌照格式通常只有一种,而我国则根据不同车辆、车型、用途,规定了多种牌照格式。④我国汽车牌照的规范悬挂位置并不唯一,而且由于环境、道路或人为因素造成汽车牌照污染的情况比较严重,这都给车牌识别造成了一定的难度。
因此,我国车辆牌照识别技术的提高和广泛应用还需广大科研工作者和相关交通部门的共同努力。
1.4 本文主要工作及内容安排
本文主要研究车辆牌照识别系统中的数字识别技术,将数字图像处理技术与模式识别技术紧密结合,针对汽车牌照字符识别的特点,分析了车牌定位与分割、字符分割、特征提取、BP神经网络等算法。在车牌定位、字符分割和特征提取的基础上,详细研究了车牌数字字符的识别。
文章在接下来的第二章介绍了车辆牌照的定位方法;第三章介绍了车辆牌照的字符分割算法;第四章介绍了车辆牌照数字字符的识别。其中车辆牌照数字字符的识别是本课题的重点。文章在每一步处理后给出了实验结果,并给出了最后的识别结果。
第2章 车辆牌照的定位方法
车辆牌照的定位方法是基于图像处理的基础上,对图像进行分析、总结并经过大量的试验所获得的。定位方法的研究与车牌特征和图像处理技术是分不开的。从自然背景中准确可靠地分割出车牌区域是提高系统识别率的关键,但是由于车牌图像摄于背景复杂且光照不均匀的自然场景,因而会出现颜色失真或低对比度的图像,这给车辆牌照的定位带来了很大的困难。为此人们进行了大量的研究,并取得了一定的成果。
本课题中,根据车牌的二值图像在水平和垂直方向的投影特性提出了基于二值化图像投影法和数学形态学相结合的车牌定位算法,该算法具有快速、简洁实用和与背景相关性小的特点。车牌的定位算法分为预处理、水平定位、垂直定位。其流程图如图2-1所示。
图2-1 车辆牌照定位原理
2.1 车辆牌照图像的预处理
为了使车牌能够被精确定位,在定位搜索以前,要对车牌图像进行预处理。为了能够方便的进行后期的数字图像处理,需要将彩色图像转化成256色的灰度图后进行处理,然后对图像做二值化处理,削弱背景干扰,消除噪声。经过以上的预处理,就可以对车牌进行定位和分割处理。
2.1.1 256色位图灰度化
由于256色的位图的调色板内容比较复杂,使得图像处理的许多算法都没有办法展开,因此有必要对它进行灰度处理。所谓灰度图像就是图像的每一个象素的RGB分量的值是相等的。彩色图像的每个象素的RGB值是不同的,所以显示出红绿蓝等各种颜色。灰度图像没有这些颜色差异,有的只是亮度上的不同。灰度值大的象素比较亮,反之比较暗。图像灰度化有各种不同的算法,比较直接的一种是给象素的RGB值各自一个加权系数,然后求和。经常用到的灰度化公式由式(2-1)完成:
(2-1)
式(2-1)中为灰度值。
加权系数的取值是建立在人眼的视觉模型之上的,对于人眼较为敏感的绿色取较大的权值,对人眼较为不敏感的蓝色则取较小的权值。这样可以使得到的灰度图像在视觉上更接近人的主观感觉。应该注意的是最后得到结果一定要归一到0~255之内。
2.1.2 灰度图像二值化
在进行了灰度化处理以后,图像中的每个象素只有一个值,即象素的灰度值。它的大小决定了象素的亮暗程度。为了更加便利的开展下面的图像处理操作,还需要对已经得到的灰度图像做一个二值化处理。图像的二值化就是把图像中的象素的灰度值根据一定的标准分化成两种颜色。在系统中是根据象素的灰度值将图像处理成黑白两种颜色。图像的二值化有很多成熟的方法:可以采用阈值分割法,也可以采用给定阈值法。阈值分割法可以分为全局阈值法和局部阈值分割法。所谓局部阈值分割法是将原始图像划分成较小的图像,并对每个子图像选取相应的阈值。在阈值分割后,相邻子图像之间的边界处可能产生灰度级的不连续,因此需用平滑技术进行排除。局部阈值法常用的方法有灰度差直方图法、微分直方图法。
全局阈值分割方法在图像处理中应用比较多,它在整幅图像内采用固定的阈值分割图像。根据阈值选择方法的不同,可以分为模态方法、迭代式阈值选择等方法。这些方法都是以图像的灰度直方图为研究对象来确定阈值的。另外还有类间方差阈值分割法、二维最大熵分割法、模糊阈值分割法、共生矩阵分割法、区域生长法等等。
在本系统中考虑到所要进行处理的图像大多是噪声比较少的灰度车牌,系统中采用全局阈值分割的方法进行处理,初始阈值的确定方法是由式(2-2)完成:
(2-2)
和分别是最高和最低灰度值。该阈值对不同牌照有一定的适应性,能够保证背景基本被置为0,以突出牌照区域。
经过二值化,可以进行下一步处理。
2.1.3 消除背景干扰去除噪声
对二值化后的图像进行相邻象素灰度值相减,得到新的图像,左边缘可以直接赋值,不会影响整体效果。考虑到图像中的文字是由短的横竖线组成,而背景噪声有一大部分是孤立噪声,所以用模板(1,1,1,1) T对图像进行中值滤波,得到去除大部分干扰的图像。
2.2 车辆牌照的定位方法简介
经过以上的预处理,我们就可以对图像进行车牌的定位和分割。
为了快速、准确地定位车牌,目前已有很多学者提出许多定位算法。其中,众多算法都是利用了车牌自身异于背景区域的特征来进行车牌定位的。这些特征包括车牌的颜色特征、几何特征、纹理特征和经过处理运算后得到的车牌区域固有的特征(异于背景区域特征)等。
车牌定位的算法基本上可以分为两大类:第1类是通过一个步骤将车牌定位出来;第2类是通过两个步骤将车牌定位出来[4]。
第1类:这类算法的主要特点是通过一个步骤就可以将车牌区域定位出来。其主要的算法介绍如下:
(1)基于神经网络的车牌定位方法:该方法首先是用神经网络对大量的样本图像进行训练,然后再进行图像预处理,最后用训练的神经网络提取真正的车牌区域。该算法要求把图像中每一个像素所提取特征输入神经网络来进行学习,计算量很大,同时需处理好网络局部收敛的问题,且车牌定位时间长[5]。
(2)基于模板匹配的车牌定位方法:该算法主要是设立一个滑动窗口,该窗口有若干向量值,利用该窗口在汽车图像上滑动,并计算该窗口所覆盖的那块车牌图像的向量值,找出最佳的向量值,认为是车牌区域。
(3)直线边缘检测:这种方法主要利用Hough变化检测车牌周围边框直线。这种方法的缺点是Hough变换计算量大,对于边框不连续的实际车牌,需附加大量的运算[6]。
(4)统计直方图及投影方法:该方法通过对图像的水平和垂直两个方向灰度投影直方图来分析推断出牌照的位置。该方法的缺点是对噪声敏感,且牌照图像存在倾斜时,不能达到预期的效果。
第2类:即先对车辆图像进行车牌的粗定位,然后再进行精定位。所谓粗定位有两种含义:第1种粗定位的含义就是从车辆图像中找出车牌的大致位置,它并不要求非常精确的定位出车牌的位置,只需要给出包含车牌的相对较小或较大的一块区域就达到目的;第2种粗定位的含义就是利用粗分割,即给出包含车牌区域在内的若干候选区域,再从这些区域中提取车牌区域[7]。这里不再作详细的论述。
2.3 系统采用的定位方法
在系统中,采用投影法来实现车辆牌照的定位。利用水平投影来检测车牌的水平位置,利用垂直投影和形态学的方法检测车牌的垂直位置[8]。
2.3.1 车辆牌照的水平定位
得到二值化图像以后,首先把二值图像投影到y轴。根据车牌特征,车牌区域中的垂直边缘较密集,而且车牌一般悬挂在车身较低的位置其下方没有很多的边缘密集区域。因此在车牌对应的水平位置上会出现一个峰值,如图2-2所示。峰值的两个低谷点就是车牌的垂直位置,这样就得到了包含了车牌的带状区域。所以问题转成确定低谷点的位置。但是从图中可以发现投影图不是十分的光滑,会给精确定位带来一些困难,所以对投影图进行平滑。窗口尺寸比较关键,选小了不足以平滑,选大了则会改变投影图原有的基本变化特性。对于实际的投影曲线可以通过找差分曲线的过零点来确定低谷点,所以对平滑以后的投影图求一阶差分:
(2-3)
找出其由正至负的点,也就是局部最小值。但是并不是所有的局部最小值之间都能称为峰的,它可能附属邻近的一个峰,因而要确定哪一个局部最小值是峰谷,哪一个是毛刺。如何判决峰的独立性呢?本文采取了3个判决依据:
1. 独立峰具有一定峰顶和峰谷的落差,当局部最大值和邻近的局部最小值的差大于阈值,则该局部最小值为谷底,反之则为毛刺。
2.独立峰具有一定的宽度,这是由车牌的宽度信息决定的。
3.独立峰具有一定的面积,这是因为在经过边缘提取,二值化后,在车牌区域具有明显的纹理特征。
在光照均匀和背景不是很复杂的图像中,车牌的峰值特性十分明显,很容易就可以定位出车牌区域的水平位置。但在光照不均匀或背景复杂的图像中峰值特性就不是很明显了。如何准确地确定局部最小值是否为谷底,关键在于阈值的选取。
2.3.2 车辆牌照的垂直定位
根据车牌的特征可以知道,车牌在垂直方向的投影呈现有规律的“峰、谷、峰”的分布。字符与字符之间的间隔是近似相等的,而且字符的宽度是近似相等的,而车
(a)二值化图像 (b)水平投影图
图2-2 水平投影
牌具有7个字符,所以车牌区域在垂直方向上的投影应该存在6个低谷点,而且相邻低谷点之间的距离是近似相等的,第二和第三字符之间的距离略大于其他字符间的距离。但在现实中得到二值图像的“峰、谷、峰”的特点并不十分明显,采用这种方法对车牌的垂直位置进行定位效果不是很好,本文考虑使用形态学与投影法相结合的方法来对车牌进行垂直定位,下面简单介绍图像形态学[9]。
最初形态学是生物学中研究动物和植物的一个分支,后来也用数学形态学来表示以形态学为基础的图像分析数学工具。形态学的基本思想是使用具有一定形态的结构元素来度量和提取图像中的对应形状,从而达到对图像进行分析和识别的目的。数学形态学可以用来简化图像数据,保持图像的基本形状特性,同时去掉图像中与研究目的无关的部分。使用形态学操作可以实现增强对比度、消除噪声、细化、填充和分割等常用的图像处理任务。
数学形态学的数学基础和使用的语言是集合论,其基本运算有四种:膨胀(Dilation ) 、腐蚀(Erosion )、开启(Open)和闭合(Close )。基于这些基本运算还可以推导和组成各种数学形态学运算方法。其运算对象是集合,通常给出一个图像集合和一个结构元素集合,利用结构元素对图像进行操作。结构元素是一个用来定义形态操作中所用到的邻域的形状和大小的矩阵,可以具有任意的大小和维数。下面简单介绍一下以上4种运算。
1、膨胀
膨胀的运算符为“”,图像集合用结构元素来膨胀,记作,其定义见式(2-4),其中表示的映像,即与关于原点对称的集合。式(2-4)表明,用对进行膨胀的过程是这样的:首先对作关于原点的映射,再将其映像平移,当与映像的交集不为空集时,的原点就是膨胀集合的像素。也就是说,用来膨胀得到的集合是的位移与至少有一个非零元素相交时的原点的位置的集合。
(2-4)
膨胀的作用效果如图2-3所示。其中白色表示目标,背景为黑色,结构元素为一3×3正方形对象。
(a)膨胀前 (b)膨胀后
图2-3 图像膨胀前后的显示效果对比
2、腐蚀
腐蚀的运算符是,图像集合用结构元素来腐蚀记作,其定义为:
(2-5)
式(2-5)表明,用来腐蚀的结果是所有满足将平移后,仍全部包含在中的的集合,从直观上看就是经过平移后全部包含在中的原点组成的集合。
腐蚀的操作效果如图2-4所示,其中白色为目标,黑色为背景,结构元素为一3×3正方形对象。
(a)腐蚀前 (b)腐蚀后
图2-4 图像腐蚀前后的显示效果对比
3、开启
开启的运算符为“”, 用来开启记为,其定义如下:
(2-6)
4、闭合
闭合的运算符为“”,用来闭合记为,其定义见式(2-7):
(2-7)
开启和闭合运算不受原点位置的影响,无论原点是否包含在结构元素中,开启和闭合的结果都是一样的。
开启和闭合操作的效果如图2-5所示,其中白色为目标,黑色为背景。
对形态学了解后,我们用形态学来进行定位,具体算法为:
1、对得到的带状区域用结构算子先进行一次腐蚀运算,消除一些独立的亮点,但使用的结构算子不能太大,否则会失去一部分车牌的信息。
(a)原图 (b)对原图开启操作后 (c)对原图闭合操作后
图2-5 图像的开启、闭合操作的显示效果
2、再进行二次膨胀运算,由于膨胀的目的是要把车牌区域连通,因此使用的结构算子和腐蚀的结构算子不一样,要略大一些。
3、最后进行一次开运算,将车牌区域平滑一下。可以发现车牌在图像中形成了一个块状区域。如图2-6所示。
将得到的图像再投影到垂直方向,再根据车牌的宽度信息,设定一个范围,可以把这个范围设置大些,这是因为经过形态学变化后,车牌的长度会变大,而且有可能把附近的一些杂点连在一起了,从而增大了车牌连通区域的长度,如果范围定的太小,就有可能检测不到车牌区域[10]。
2.3.3 定位的算法实现
利用投影法,在Visual C++中用C++语言对以上算法进行编程,对车辆牌照进行定位。实验中水平方向上的定位函数为HprojectDIB();垂直方向上的定位函数为VprojectDIB();定位以后分割过程所用的函数为TempSubert();iTop和iBottom分别是车牌的上下边缘,iLeft和iRight为车牌的左右边缘。定出车牌的四个边缘以后,就可以通过分割函数TempSubert()将车牌从源图像中裁减出来,为了使裁减的准确,可以设置边缘的微量调整。图像定位算法流程图如图2-7所示。
(a) 水平投影分割得到的图像 (b) 腐蚀运算得到的图像
(c) 第一次膨胀运算得到的图像 (d) 第二次膨胀运算得到的图像
图2-6 形态学变化得到的图像
图2-7 定位流程图
2.4 实验结果分析
经实验,大部分图片中的牌照能够被正确的定位出来如图2-8,极少部分牌照不能正确定位。实验表明,投影法基本上实现了车辆牌照的定位,但同时不难看出被定位的车牌还包括车牌边框,与理想要求还有很大差距,如果在这些车牌上进行字符分割,将会有很大的困难。另外在实验中还发现该算法对车牌背景环境要求比较严格,车牌如果比较倾斜或者车牌颜色与汽车颜色相近或者车牌背景中的噪声较大,则定位起来比较困难,不能实现车牌的精确定位,以后需要进一步改进。
图2-8 定位前后的图像
34
第3章 车辆牌照的字符分割
在做字符分割以前,必须对定位出来的图像做进一步的处理,要对车牌做去边框处理、去噪声处理、梯度锐化、倾斜度调整等预处理才能进行字符分割。
3.1 车牌预处理
3.1.1 去边框处理
一般蓝底白字的车牌都有白色边框,与字符的颜色相同,它的存在将对后继的字符识别造成影响,因此它的滤除十分必要。
1、滤除上下边框
将检测到的二值牌照图像进行水平投影,在0<I<Height的范围内,计算各sum[I],( sum[I]为从0到Width的范围内,二值化牌照图像的白像素点数)然后,将所有的sum[I]累加起来,记为一值,然后将该值除以2*Height-(2/3)*Height,如果sum[I]小于该商,就令该sum[I]为0。这样直方图中必有连零块和非连零块,测试每个非连零块的宽度,如果它不在车牌高度的范围内,就置其为零,那么就将边框滤除了(其中Height,Width为牌照图像的高度和宽度)。
2、滤除左右边框
滤除左右边框的方法与滤除上下边框的方法类似,只是阈值有些不同,不再赘述。
3.1.2 去噪声处理
图像在扫描或者传输过程中夹带了噪声,去噪声是图像处理中常用的手法。通常去噪声用滤波的方法,比如空间域滤波和同态滤波。采用合适的滤波方法不但可以滤除噪声还可以对图像进行锐化,增强图像的边缘信息。下面介绍几种常用的滤波方法。
1、邻域平均法
为了消除图像中的噪声,可以直接在空间域上对图像进行平滑滤波。它的作用有两种:一种是模糊;另一种是消除噪声。空间域的平滑滤波一般采用简单平均法进行,就是求邻近像素点的平均亮度值,称为邻域平均法。邻域的大小与平滑的效果直接相关,邻域越大平滑的效果越好,但邻域过大,平滑会使边缘信息损失的越大,从而使输出的图像变得模糊,因此需要合理选择邻域的大小。典型的邻域有两种:四邻域和八邻域,其模板见式(3-1)。
如果图像中的噪声是随机不相关的加性噪声,窗口内各点噪声是独立分布的,经过上述模板平滑后,信号与噪声的方差比可提高许多倍。这种算法简单,处理速度快,但它的主要缺点是在降低噪声的同时使图像产生模糊,特别在边缘和细节处。而且,
(3-1)
随着邻域的增大,虽然增强了去噪声的能力,但同时模糊程度也更严重。
2、高通滤波
在进行图像处理时,我们经常要对图像进行锐化以便突出图像的边缘。同样的,可以采用在空间域对图像进行滤波的方法,只不过这时采用的冲激响应阵列与空间域低通滤波时所采用的完全不同。采用高通滤波器让高频分量顺利通过,而对低频分量则充分限制,使图像的边缘变得清晰,实现图像的锐化。但是,对图像进行空间域的高通滤波,在增强图像边缘的同时,孤立的噪声点也得到了增强。常用于空间域高通滤波的冲激响应阵列有以下几种:
(3-2)
3、中值滤波
中值滤波是一种非线性滤波,它也是一种邻域运算,类似于卷积。但中值滤波的计算不是加权求和,而是把它邻域内的所有像素按灰度值进行排序,然后取该组的中间值作为邻域中心像素点的输出值。中值滤波的突出优点是在消除噪声的同时,还能防止边缘模糊。如果图像的噪声多是孤立的点,这些点对应的像素又很少,而图像则是由像素较多、面积较大的块构成,中值滤波效果很好。
4、同态滤波
同态滤波器的思想就是用一系列方法把乘性信号变换成加性组合信号,经过处理后再反变换回乘性信号。同态滤波以图像的照明反射模型作为频域处理的基础,它在数字图像处理中有着十分重要的应用。这里不再详细论述。
去除噪声处理要根据不同的噪声特点选取合适的方法。本系统采用的是去除杂点的方法来进行去噪声处理。具体的算法如下:扫描整个图像,当发现一个黑色点的时候就考察和该点直接或间接相连接的黑色点的个数有多少,如果大于一定的值,就说明该点不是离散点,否则就是离散点,把它去除掉。在考察相连的黑色点的时候用的是递归的方法。
3.1.3 梯度锐化
我们所得到的二值化图像的字体一般是比较模糊的,对识别造成了一定的困难,所以有时要对图像进行锐化处理使模糊的图像变得清晰,同时可以对噪声起到一定的抑制和去除作用。
图像的锐化有很多方法,一种是微分法,一种是高通滤波法,梯度锐化的方法就是微分法的一种。
梯度对应一阶导数,梯度算子是一阶导数算子。对一个连续函数它在位置的梯度可以表示为一个矢量:
(3-3)
这个矢量的幅度(也常直接简称为梯度)和方向角分别为:
(3-4)
(3-5)
以上三式中的偏导数需要对每个象素位置计算。在实际中常用小区域模板卷积来近似计算。对和各用一个模板,所以需要两个模板组合起来构成一个梯度算子。根据模板的大小,其中元素值的不同,人们提出了许多种不同的算子如图3-1。在这三个算子中,最简单的算子是Roberts算子,Roberts算子是效果比较好的一种,我们采用的就是这个算子,效果如图3-2所示。算子运算时是采用类似卷积的方式,将模板在图像上移动并在每个位置计算中心象素的梯度值。在边缘灰度值过渡比较尖锐且图像中噪声比较小时,梯度算子的工作效果较好。
(a)Roberts (b) Prewitt (c) Sobel
图3-1 几种常见的梯度模板算子
通过图3-2可以看出梯度锐化可以让模糊的边缘变的清楚,同时选择合适的阈值还可以减弱和消除一些细小的噪声。
实验证明梯度锐化具备一定的去噪声能力,但同时也会对字符的边缘有所损伤。从处理结果可以看出图像的边缘变得清晰而且少了很多细小的杂点,但梯度锐化有其自身的缺陷,当处理的图像边缘很细的时候可能造成边缘信息的损失。在实验中,如果图像中的字符较为细小,则不使用梯度锐化。
(a)原始图像 (b)利用Roberts算子检测到的边缘
(c)利用Prewitt算子检测到的边缘 (d)利用Sobel算子检测到的边缘
图3-2 梯度算子的检测效果比较
3.1.4 倾斜调整
虽然在拍摄车辆车牌时,可以调整CCD摄像机的俯仰角度、摄取方向和水平度,以保持车牌的横向边缘的倾斜度尽可能小,并且让车牌在整幅图像中处于相对居中的位置,即图像的视觉中心上。但是,实际上CCD摄像机通常安装在路边或顶部,这将造成车辆车牌与CCD摄像头成像平面不平行,产生不同程度的车牌图像的倾斜与变形,影响车牌的检测和分割。就图像的旋转倾斜的问题,更多的情况下,图像的水平校正是放在车牌的二值化和分割,甚至是在车牌字符切分之后再进行,这样图像
的运算量大大减少。然而,倾斜的车牌图像本身就极不利于车牌字符的切分,因此,将图像水平校正放在图像预处理过程中是切实可行的[11]。
一般情况下,可将倾斜的车牌图像近似看成一个平行四边形,它有三种倾斜模式:水平倾斜见图3-3,垂直倾斜见图3-4和水平垂直倾斜见图3-5,分别如下所示。
水平倾斜时,字符基本上无倾斜,车牌的水平轴与图像坐标系的水平轴有一个倾斜角度,只要求取,将图像绕轴旋转即可。垂直倾斜时,倾斜实际上是同一行间像素的错位偏移,只要检测到垂直倾斜角度进行错位偏移校正即可。水平垂直倾斜时,既存在水平倾斜又存在垂直倾斜,是最一般的情况。可先检测水平倾斜角度,进行水平倾斜校正,然后再求取垂直倾斜角度进行垂直倾斜校正。
对车辆牌照做预处理以后就可以进行字符分割的步骤。
(a) 水平倾斜() (b) 水平倾斜()
图3-3 水平倾斜
(a) 垂直倾斜() (b) 垂直倾斜()
图3-4 垂直倾斜
(a) 水平垂直倾斜() (b) 水平垂直倾斜()
图3-5 水平垂直倾斜
3.2 字符分割方法简介
图像分割是一种基本的计算机视觉技术,是由图像处理进行到图像分析的关键步骤,这是因为图像的分割、目标的分离、特征的提取和参数的测量将原始图像转化为更抽象更紧凑的形式,使得更高层的分析和理解成为可能。图像分割多年来一直得到人们的高度重视,至今已提出各种类型的分割算法[12]。
字符分割的算法很多,通常根据处理对象的不同有许多相应的方法。为了实现
更好的分割,有关景物的总体知识和先验信息是很有用的,根据包含在图像中的信息,可以定制相应的判决准则和控制策略,使其完成自动分割,比如对多行文本的处理,邮政部门对邮政编码和地址的识别,金融等部门对支票签名手写字迹的分割识别等等,都是针对具体的不同研究对象而采用不同的算法。
传统的字符分割算法可以归纳为以下三类:直接的分割法,基于识别基础上的分割法,自适应分割线聚类法[13]。直接的分割法简单,但它的局限是分割点的确定需要较高的准确性;基于识别结果的分割是把识别和分割结合起来,但是需要识别的高准确性,它根据分割和识别的耦合程度又有不同的划分;自适应分割线聚类法是要建立一个分类器,用它来判断图像的每一列是否是分割线,但是对于粘连的字符是很难训练的。因为分割不可能做到完全正确,现在有的算法已经把字符的分割作为不必要的步骤,而是直接把字符组成的单词当作一个整体来识别。利用诸如马尔可夫数学模型等方法进行处理,这主要是应用于文本识别。以上的字符分割算
展开阅读全文