车牌的定位与分割实验报告一实验目的针对交通智能系统所拍摄的汽车图片,利用设定的算法流程,完成对汽车车牌部分的定位,分割车牌部分,并完成字符的分割,以便于系统的后续分析及处理。
二实验原理详见《车牌的定位与字符分割》论文。
三概述1一般流程车牌自动识别技术大体可分为四个步骤:图像预处理、车牌定位与分割、车牌字符的分割和车牌字符识别。
而这四个步骤又可归结为两大部分:车牌分割和车牌字符识别。
图1-1为车牌自动识别技术的一般流程图。
2本实验的流程(1)图像预处理:图像去噪(2)车牌的定位:垂直边缘检测(多次)形态学处理的粗定位合并邻近区域结合车牌先验知识的精确定位(3)车牌预处理:车牌直方图均衡化倾斜校正判定(蓝底白字或者黄底黑字)归一化、二值化(4)字符的分割:垂直投影取分割阈值确定各个字符的左右界限(结合字符宽度、间隔等先验知识)分割字符四实验过程4.1图像预处理4.1.1图像去噪一般的去噪方法有:空间域上的均值滤波和中值滤波;频率域上的巴特沃斯滤波器。
图4-1是各滤波器处理椒盐噪声的效果。
a.被椒盐噪声污染的图片 b.均值滤波的效果图 c.中值滤波的效果图 d.BLPF的效果图图4-1 各滤波器处理椒盐噪声的仿真可见,中值滤波对椒盐噪声的处理效果极好,而一般所拍摄的图片上最多的便是孤立的污点,所以此处以中值滤波为主进行去噪。
图4-2是采用中值滤波处理实际汽车图片的效果。
a.原始图像b.灰度图像c.中值滤波后的图像图4-2 中值滤波处理实际汽车图片的效果很显然,经过中值滤波后去除了原图上的部分污点。
4.1.2图像复原由于通常情况下都不知道点扩展函数,所以我们采用基于盲解卷积的图像复原策略。
图4-3~4-7图是函数进行盲解卷积的实验结果,其中图4-3是图像cameraman 的模糊图像。
图4-3 模糊图像在盲解卷积处理中,选择适当大小的矩阵对恢复图像的效果很重要。
PSF的大小比PSF的值更重要,所以首先指定一个有代表性的全1矩阵作为初始PSF。
恢复的图像如图4-4所示,初始PSF如图4-5所示。
图4-4 初步恢复图像图4-5 初始PSF 复原的图像呈现出由算法中使用的离散傅里叶变换所引入的振铃,则我们在调用函数deconvblind之前要使用函数edgetaper。
消除振铃后的图像如图4-6所示,新重建的PSF如图4-7所示。
图4-6 消除振铃后的图像图4-7 新重建的PSF由图可以看出,恢复后的图像消除了振铃的存在,但是,恢复结果仍有一定的失真。
4.1.3图像增强此处采用直方图均衡化来增强图像对比度。
图4-8为原始图像,图4-9为直方图均衡化后的效果图。
图4-8 原始图像图4-9为直方图均衡化后的效果图很明显地增强了图像对比度。
4.2车牌定位4.2.1垂直边缘检测对于垂直边缘,我们提出了自己的算法,能很好地去除大量非字符的垂直边缘,定位效果也较好。
图4-10给出了本文算法与Sobel算法、Prewitt算法的应用结果比较。
图4-10(a)为原始图像,图(b)为其灰度图像,图(c)为用sobel 垂直算子获得的垂直边缘图,图(d)用prewitt垂直算子获得的垂直边缘图,图(e)为用canny算子获得的边缘图,图(f)为使用本文算法获得的垂直边缘图,模板参数取m=2,n=12。
a.原始图像b.灰度图像c.Sobel算子处理的结果d.Prewitt算子处理的结果e.Canny算子处理的结果f.本文算法处理结果图4-10本文算法和经典算法的比较4.2.2(多次)形态学处理的粗定位一次形态学处理后的结果如若不理想,可进行第二次形态学处理,且结构元素大小可根据实际情况进行调整。
图4-11是运用该算法对图4-10(f)的垂直纹理图进行两次形态学处理的结果。
a.一次形态中腐蚀的结果b.一次形态中膨胀的结果c.二次形态中腐蚀的结果d.二次形态中膨胀的结果图4-11 运用该算法对图4-10(f)的垂直纹理图进行两次形态学处理的结果其中,由图d可看出除了目标车牌外,还有三个疑似车牌区,只实现了车牌的粗定位,因此还需要后续处理。
4.2.3合并邻近区域图4-12是运用该算法对另一幅图的处理结果。
a.原始图像b.一次形态后的粗定位图4-12由图中可以看出,由于车牌字符最后三个字符为111,在形态学处理后所得的相应区域与前面的四个字符断开了,从而被当做疑似车牌被该算法舍去了。
而合并邻近区域可很好的解决该问题。
即在形态处理时,根据字符间最大间距等先验知识对形态处理所得个疑似区域进行必要的合并。
图4-13显示合并邻近区域的结果。
图4-13 邻近区域合并的效果4.2.4基于车牌恒定宽高比的后续处理--精确定位运用数学形态学对该图进行处理后,得到多个车牌可能区域。
然后合并邻近区域,再根据车牌的长宽比k恒定等特征,提取出车牌区域。
其中,k值与许多实际因素有关,比如摄像机的物距、拍摄的角度等。
图4-14是的图4-10(a)车牌的精确定位和分割结果。
a.左侧车牌定位b.右侧车牌定位c.定位的左侧车牌d.定位的右侧车牌e.分割出的左侧车牌f.分割出的右侧车牌图4-14 图4-10(a)车牌的精确定位和分割结果图4-15是的图4-12(a)车牌的精确定位和分割结果。
a.定位的车牌b.分割出的车牌图4-15 图4-12(a)车牌的精确定位和分割结果4.2.5 基于颜色的车牌定位由于基于颜色的算法存在以下缺点:车牌有蓝底白字、黄底黑字、黑底白字等多种颜色格式,其中蓝底黑字牌照中的蓝色在各个省之间还有所不同。
而受天气、光照等影响,即便是同种颜色也容易幻化成各种不同的颜色。
因此,彩色信息可靠性较差,如作为主要的定位手段会导致车牌识别系统容易受外界干扰,稳定性较差。
图4-16是的图4-12(a)车牌的精确定位。
a.精确定位b.定位的车牌图4-16 基于颜色的车牌定位虽然如此,但一些地方还可以结合上述基于车牌纹理的定位法达到更好的效果。
4.3车牌预处理4.3.1车牌直方图均衡化方法及结果同4.1.3。
4.3.2基于Radon变换的倾斜校正将所分割车牌归一化,二值化后,为提高边缘的准确性以及抗干扰能力,采用最优的动态阈值canny边缘检测算子。
然后利用Radon变换进行倾斜校正。
图4-17显示了校正结果。
a.原始图像b.分割的车牌c.二值化d.采用canny所得的边缘图像图4-17基于Radon的倾斜校正4.3.3 判定(蓝底白字或者黄底黑字)及二值化原理:①黄底车牌G对B比例在1.2~1.8之间,而蓝底车牌G对B比例,在0.7~1.1之间;②车牌中字符像素占车牌所有像素的比列为0.3~0.4。
图4-18(a、b)显示了判定图4-14(e)(f)及二值化后的结果。
4.4字符的分割4.4.1 垂直投影法图4-18是图4-14(e)(f)左右两车牌二值化及垂直投影后的结果。
a.左车牌b.右车牌c.a的垂直投影d.b的垂直投影图4-18左右两车牌二值化及垂直投影后的结果4.4.2分割字符算法:(1)确定波谷:从左往右依次读取垂直投影值,先判断出第一个波峰,然后根据一般字符宽度的先验知识,去除伪波谷,找到相应的第一个波谷,这便是一个字符,以此往复,得到所有波谷。
(2)去除“•”:各波谷间的距离若小于一般字符的最小宽度即可判断为是“•”,舍去。
(3)取阈值:取所有波谷中的最大值为阈值。
(4)分割字符:根据最终的阈值进行字符分割。
图4-19是最终的分割结果(以左车牌为例)。
图4-19 分割后的字符五实验总结车牌自动识别系统一般包括车牌定位、字符分割和字符识别三个模块。
车牌定位很关键,它直接影响着后面两个模块的处理效果字符分割决定了字符识别的有效性字符识别是整个系统的核心,其算法的优劣最终决定了系统的可用性。
针对汽车牌照自动识别系统中图像效果差的问题,采取了降噪和增强处理,并提出了一种基于盲解卷积的图像复原算法,对模糊图像较好地进行了恢复。
然后给出了一种基于纹理、颜色并结合车牌字符间隔、字符宽度等先验知识的车牌定位方法,该方法经边缘检测获取垂直边缘图,结合形态学而粗定位车牌区域,然后根据车牌固有特征(宽高比、颜色等),来筛选出真正的车牌区域。
字符分割时采用投影法,并借助牌照字符固定宽度、间距的固定比例关系等先验知识实现字符的分割。
另外,我们对车辆自动识别系统涉及的相关算法作了深入地分析和比较,提出了自己的部分算法,具体包括基于车牌特征的车牌定位算法、基于Radon变换的车牌校正算法、基于投影特征和车牌先验知识相结合的字符分割算法等。
此外我们还对文中的大部分算法进行了试验,给出了实验结果。
而且,每个过程均考虑了如何对模糊车牌图像和模糊车牌字符进行处理。
最后对车牌识别各个过程进行综合,完成了车牌识别系统的软件实现。
六实验展望本文虽然在车牌识别原理与方法的探索上作了大量的工作,取得了一定的成果。
但是由于时间的限制,本文的研究还存在许多不足和应该改进的地方,后续研究可以从以下几个方面进行完善:(1)字符分割的研究中,对噪声干扰较大的牌照的字符分割的研究还有待于加强。
同时对于字符关键部位的断裂、粘连等,也干扰了对字符关键特征的提取,因此要进一步选择多特征来表征字符。
(2)不管是车牌定位还是字符分割算法,我们总是不可避免的使用一些经验参数来简化问题。
但考虑人眼观察车牌的事实--具有高度的自适应性:人眼的焦距会随物体的远近也随之调整并能轻而易举的定位或者识别车牌。
如何设计一个经验参数完全自适应的智能算法是一个巨大的挑战。
(3)进一步提高现有算法的速度、准确度、鲁棒性。
目前系统对拍摄环境要求较为苛刻,系统的识别率、识别速度也有待提高。
(4)丰富系统各方面的应用功能,如车辆行驶违章监控、监测黑牌机动车等,并将软硬件结合起来,实现一个完整的智能车辆监控系统并把系统应用到实际中去来检验算法的可靠性,让系统脱离实验室的环境,使其不断得到升级和发展。