汽车车牌的号码识别
1技术要求
用相机拍摄获取彩汽车车牌的图片,对图片进行相应处理(如,去噪,去除背景提取目标,边缘分割,轮廓提取等)提取得到车牌上的数字号码(只能用黑显示)。整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,其中字符识别过程主要由以下3个部分组成:①正确地分割文字图像区域;②正确的分离单个文字;正确识别单个字符。用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。
2基本原理
车牌号码识别的基本工作原理为:将摄像头拍摄到的包含的图像通过视频卡输入到计算机中进行预处理,再由检索模块对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,得到输出结果。
图1 车牌号码识别系统原理图
车牌号码识别系统原理图各部分说明如下:
(1)图像预处理:对汽车图像进行图像转换、图像增强和边缘检测等。
(2)车牌定位:从预处理后的汽车图像中分割出车牌图像。即在一幅车辆图像中到车牌所在的位置。
(3)字符分割:对车牌图像进行几何校正、去噪、二值化以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像。
(4)字符识别:对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。
3建立模型描述
本次拓展训练的任务是设计一个基于matlab的汽车牌照识别程序,能够实现车牌图像预处理,车牌定位,字符分割,然后通过神经网络对车牌进行字符识别,最终从一幅图像中提取车牌中的字母和数字,给出文本形式的车牌号码。识别整个系统主要是由车牌定位和字符识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割与特征提取和单个字符识别两个模块。其基本工作原理为:车牌用照相机拍摄车牌号码的实物图片,然后通过视频卡输入到计算机中进行预处理,
再由检索模块对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,最终转化为车牌号码的数字显示。各部分功能说明及具体步骤如下:
3.1图像采集
通过数码相机拍摄清晰的车牌号码的实物图,然后将BMP格式的实物图保存在电脑里备用。
3.2图像预处理
对图像进行灰度化处理、边缘提取。边缘提取是较经典的算法,此处边缘的提取采用的是Roberts算子。图像的平滑处理会使图像的边缘信息受到损失,图像变得模糊,图像的锐化可以增强图像中物体的边缘轮廓,但同时也使一些噪声得到了增强。而原始图像清晰度又比较高,因此此处作了简化处理。
图2 预处理及边缘提取流程图
3.3车牌号码定位
车牌号码定位的主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置。由于车牌图像是一个水平度较高的横向近似的长方形,它在原始图象中的相对位置比较集中,而且其灰度值与周边区域有明显的不同,因而在其边缘形成了灰度突变的边界,这样就便于通过边缘检测来对图象进行分割。其中用到了膨胀和闭合这两个基本运算,最后还用了bwareaopen来去除对象中不相干的小对象。
图3 车牌定位流程图
3.4车牌字符分割
确定车牌位置后下一步的任务就是进行字符切分分离出车牌号码的全部字符图像。字符识别的算法很多,因为车牌字符间间隔较大,不会出现字符粘连情况,所以此处采用的方法为寻连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割。一般分割出来的字符要进行进一步的处理,以满足下一步字符识别的需要。但是对于车牌的识别,并不需要太多的处理就已经可以达到正确识别的目的。在此只进行了归一化处理,然后进行后期处理。
图4 字符分割与归一化流程图
3.5车牌字符识别
字符识别方法主要有基于模板匹配算法和基于人工神经网络算法。基于模板匹配算法是首先将分割后的字符二值化,并将其尺寸缩放为字符数据库中模板的大小,然后与所有模板进行匹配,最后选取最佳匹配作为结果。建立数字库对该方法在车牌识别过程中很重要, 数字库准确才能保证检测出的数据正确。基于人工神经元网络的算法有两种,一种是先对特征提取待识别字符,然后用所获得的特征训练神经网络分配器;另一种是直接将待处理图像输入网络由网络自动实现特征提取直至识别结果。在本程序中用人工神经网络算法识别车牌字符。在车牌字符识别部分, 字符集中包含约50个汉字, 26个大写英文字母及10个阿拉伯数字。总的字符样本并不太多。
图5 车牌识别流程图
4源程序代码
4.1 图像预处理与车牌定位
I=imread('DSC01344.jpg');%读取图像
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论