基于MATLAB的车牌识别系统的研究
扫描二维码
随时随地手机看文章
1 引言
车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并应满足实时性要求。牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术,其硬件一般包括触发、摄像、照明、图像采集等设备,其软件核心包括车牌定位、车牌字符分割和字符识别等算法。
2 系统的实现
2.1 系统简述
一个完整的牌照识别系统应包括车辆检测、图像采集、图像预处理、车牌定位、字符分割、字符识别等单元。当车辆到达触发图像采集单元时,系统采集当前的视频图像,牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。牌照识别系统原理如图1所示。
2.2 图像预处理
输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。对图像进行灰度化处理、提取背景图像、增强处理、图像二值化、边缘检测、滤波等处理的主要MATLAB语句如下所示:
2.3 车牌定位
自然环境下,汽车图像背景复杂,光照不均匀,在自然背景中准确地确定牌照区域是整个图像识别过程中的关键。首先对采集到的图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳区域作为牌照区域,将其从图像中分割出来,同时要考虑车牌倾斜问题。算法流程如下:
(1)对二值图像进行区域提取,计算并比较区域特征参数,提取车牌区域。
(2)计算包含所标记区域的最小宽和高,并根据先前知识,提取并显示更接近的车牌二子值图。
(3)通过计算车牌旋转角度解决车牌倾斜问题。由于车牌倾斜导致投影效果峰谷不明显,需车牌矫正处理。采取线性拟合方法,计算出车牌上边或下边图像值为1的点拟合直线与水平X轴的夹角。用MATLAB函数的旋转车牌图象函数Imrotate,计算车牌旋转角度和经旋转、二值化后的车牌二值子图处理结果如图2所示。
2.4 字符分割
完成牌照区域的定位后,再将牌照区域分割为单个字符。一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值,并且该位置应满足牌照的字符书写格式、字符、尺寸限制等条件。利用垂直投影法实现复杂环境下汽车图像中的字符分割效果较好。通过分析计算字符的水平投影和垂直投影,可获得车牌字符高度、字符顶行与尾行、字符宽度、每个字符的中心位置,以方便提取分割字符。然后计算车牌垂直投影,去掉车牌垂直边框。获取车牌及字符平均宽度。最后计算车牌每个字符的中心位置和最大字符宽度,提取分割字符,其算法流程如图3所示,通过程序算法计算的车牌字符高度和宽度及分割的字符,如图4所示。
3 结论
从MATLAB编程运行结果看,这里采用的图像识别算法对车牌的定位非常有效,该算法可有效检测车牌图像的上下左右边框、旋转角度,准确分割及识别车牌字符。通过对多个车牌进行试验,正确率高,与传统的采用C++语言相比,工作量和开发周期都减少很多。实际应用中,牌照识别系统的识别率与牌照质量和图像拍摄质量密切相关,还会受到各种因素,需不断完善识别系统和算法。