版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
通过车牌的自动检测与识别,向大家介绍一下图像的分割和特征提取即模式识别与图像处理的基础内容,以及两个重要的模式识别算法:支持向量机和人工神经网络。主要目的现在是1页\一共有61页\编辑于星期一主要内容车牌检测车牌字符的识别现在是2页\一共有61页\编辑于星期一车牌检测就是检测车牌在整个图像帧中的位置。当一个图像中的车牌用支持向量机算法检测到时,接着我们对车牌的字符进行识别。在车牌识别中,我们用人工神经网络算法来识别出车牌上的字母数字的字符。车牌检测与车牌字符的识别现在是3页\一共有61页\编辑于星期一车牌样本选取环境离车前方2-3米左右,在白天正常的光线下,并且不是平行与地面而是与车牌的有个小角度的倾斜情况下(因为很难做到拍摄出的车牌没有倾斜)拍摄车牌照片。现在是4页\一共有61页\编辑于星期一车牌样本现在是5页\一共有61页\编辑于星期一摄像机的选用如果我们使用一个带有红外线投影结构和滤波的摄像机重新获取,将得到一个非常高质量的照片以用来分割和随后的检测和识别车牌数字。也即照片不依赖于任何光线环境,如下图所示:现在是6页\一共有61页\编辑于星期一由于硬件限制,我们没有使用红外线摄像,而是使用常规的摄像。这样做,以至于很难得到一个最好的结果,其最终车牌的检测错误率和字符的识别错误率很相对高一些,但是无论何种摄像机,对车牌的处理过程是一样的。现在是7页\一共有61页\编辑于星期一车牌规格我们使用西班牙最普通(使用最多)的车牌,其大小是520*110mm。两种字符(数字和字母)的间距是41mm。数字和数字之前(或者字母和字母之间)距离是14mm。第一组字符含有四个数字。另外一组含有三个字母,其中不包括元音字母:A,E,I,O,U和N,Q。所有的字符大小为45*77。这些数据对于字符分割很重要,以这些尺寸为依据来大致确定区域是否是车牌或者字符区域,如下是一个车牌图。现在是8页\一共有61页\编辑于星期一车牌检测与车牌字符识别现在是9页\一共有61页\编辑于星期一车牌检测——检测出一个图像帧中的车牌。
第一步(分割),应用不同的滤波器,形态学操作,轮廓算法,获取所有可能的车牌部分。第二步(分类),我们采用支持向量机(SVM)分类得出我们所需要的车牌部分。现在是10页\一共有61页\编辑于星期一(一)车牌图像分割分割是把一幅图像分割成许多部分的过程。这个过程可以简化图像分析,使特征提取更容易。车牌部分的一个重要特征是在车牌中有高数量的垂直边缘(也就是垂直边缘比较多),假定照片是从前面拍的,车牌没有旋转,并且没有视觉上的扭曲。我们将sobel滤波得到垂直边缘特征可以作为分割的第一步,来排除那些没有垂直边缘的区域。在寻找垂直边缘之前,我们需要把彩色图像转换为灰度图像,因为彩色图像在我们的任务中没有帮助,并且用线性滤波的方法来移除来自相机或者外界对图像的噪声。如果我们不应用去噪方法,我们将得不到许多的垂直边缘,将会产生检测失败。现在是11页\一共有61页\编辑于星期一灰度化及线性滤波后效果现在是12页\一共有61页\编辑于星期一Sobel滤波后效果现在是13页\一共有61页\编辑于星期一Sobel滤波后,我们应用一个阈值滤波器来获得一个二值图像,阈值通过Otsu方法获得。Otsu算法又称大津算法,需要一个8位图像作为输入,该方法自动的获取图像最佳的阈值。现在是14页\一共有61页\编辑于星期一二值化后效果现在是15页\一共有61页\编辑于星期一接下来,通过应用一个闭操作(先膨胀,再腐蚀),我们能够去掉每个垂直边缘线的空白黑色部分。并且连接含有边缘数量很多的所有区域。在这一步,我们得到可能的含有车牌的区域。现在是16页\一共有61页\编辑于星期一闭操作后效果现在是17页\一共有61页\编辑于星期一连通域轮廓现在是18页\一共有61页\编辑于星期一最小外接矩形现在是19页\一共有61页\编辑于星期一我们基于面积和宽高比,对于检查到的所有外接矩形区域做一下确认。如果宽高比大于为520/110=4.727272(车牌宽除以车牌高)(允许带有40%的误差)和边界在15像素到125像素高的区域,我们才认为可能是一个车牌区域。这些值可以根据图像的大小和相机的位置进行估算。现在是20页\一共有61页\编辑于星期一
去除干扰区域后现在是21页\一共有61页\编辑于星期一剩余6块外接矩形现在是22页\一共有61页\编辑于星期一对仅剩下的6块区域,我们利用车牌的白色背景属性可以进一步改善。所有的车牌都有统一的背景颜色。我们可以使用漫水填充算法来获得这些剩余旋转矩阵的精确筛选。所谓漫水填充,简单来说,就是自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色,这是个非常有用的功能,经常用来标记或者分离图像的一部分进行处理或分析.漫水填充也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或者只处理掩码指定的像素点.现在是23页\一共有61页\编辑于星期一寻找种子点现在是24页\一共有61页\编辑于星期一随机选取每个区域十个种子点现在是25页\一共有61页\编辑于星期一为了下一步轮廓寻找、最小外接矩形的获取以及筛选合适大小的轮廓做准备,我们对图像漫水填充时,只对黑色背景的二值掩码区域进行填充,不对原彩色图进行填充,填充颜色为白色。现在是26页\一共有61页\编辑于星期一掩码填充效果现在是27页\一共有61页\编辑于星期一掩码填充效果现在是28页\一共有61页\编辑于星期一掩码填充效果现在是29页\一共有61页\编辑于星期一掩码填充效果现在是30页\一共有61页\编辑于星期一掩码填充效果现在是31页\一共有61页\编辑于星期一掩码填充效果现在是32页\一共有61页\编辑于星期一因为使用车牌,车牌有边界,漫水填充不会超过车牌的边界,而对于其他区域(检查出来的矩形)漫水填充会占据很多区域,形成的矩形也很大,再对矩形进行大小判别时,可能就会被丢弃,得到更可能是车牌的区域。因此我们在原图上标记出仅剩的三块可能车牌区域。现在是33页\一共有61页\编辑于星期一仅剩3块可能的车牌区域现在是34页\一共有61页\编辑于星期一将这三块区域提取出来后,先进行适当的旋转,然后把所有的图像调整为统一的大小,对其采用直方图均衡化最终效果如下。现在是35页\一共有61页\编辑于星期一车牌分类我们预处理和分割图像的所有可能部分之后,我们现在需要判别每一个分割部分是不是一个车牌。为这样做,我们使用SVM算法。支持向量机是一个模式识别算法,它是监督学习算法的一份子,最初创建是为了二值分类的。有监督的学习是一种机器学习算法,它通过标签数据的使用进行学习。我们需要一些带有标签的数据来训练这个算法。每一个数据集需要有一个类别。现在是36页\一共有61页\编辑于星期一SVM创建一个或多个超平面,用来区分每类数据。一个典型的例子是2维点集,它定义了两个类。SVM寻找最优线来区分每个类。现在是37页\一共有61页\编辑于星期一训练SVM分类器,简单来说在二维空间里就是求解这样一个线性函数,g(x)=wx+b,x是输入的特征,g(x)是输出的分类的类别,我们已知了输入特征与输出类别,来训练求解w和b的最优的值,获得这两个值后也就获得了这个分类的数学模型,接着就可对新样本进行预测。现在是38页\一共有61页\编辑于星期一寻找训练分类器所需特征在任一分类之前的第一个任务是训练我们的分类器。我们用大小为144*33的75张车牌和35非车牌来训练我们的系统。我们在下面的图中能看到数据的一些样本。现在是39页\一共有61页\编辑于星期一为机器学习的SVM算法训练的数据存储在一个N*M的矩阵中,N表示样本数,M表示特征数。类别存储在另外一个大小为N*1的矩阵中。用0或者1表示无车牌和有车牌类别。我们将以上存储了已经处理好和准备好的所有图像的数据,写成xml文件保存起来输入到分类器中进行训练。现在是40页\一共有61页\编辑于星期一创建和训练分类器Opencv为支持向量机算法定义了CvSVM类。我们用训练的数据、类别和参数数据来初始化它并用CvSVM类中的train()函数训练我们的分类器。CvSVM
svmClassifier(SVM_TrainingData,
SVM_Classes,
Mat(),
Mat(),
SVM_params);
boolCvSVM::train(constCvMat*trainData,constCvMat*responses,constCvMat*varIdx=0,constCvMat*sampleIdx=0,CvSVMParamsparams=CvSVMParams())现在是41页\一共有61页\编辑于星期一预测分类分类器准备好了,我们可以使用CvSVM类的predict函数来预测一个可能的修剪图像。这个函数返回类别i。在我们的实例中,我们标记每一个车牌类别为1,非车牌类别标记为0。对于每个检测到的区域,我们使用SVM来分出它是车牌还是非车牌。floatCvSVM::predict(constCvMat*samples,CvMat*results)const现在是42页\一共有61页\编辑于星期一车牌字符的识别车牌识别目标的第二步即要获取车牌上的字符。对于每个检测到的车牌,我开始分割车牌得到每个字符,并且使用人工神经网络机器学习算法来识别字符。现在是43页\一共有61页\编辑于星期一OCR分割(字符分割)我们将第一步检测到的车牌作为输入的图像然后对其进行二值化,因为我们需要获取字符的轮廓,而轮廓的算法寻找的是白色像素。所以通过改变二值化函数的参数来把白色值变为黑色,黑色值变为白色。最后我们检测到所有白色区域的轮廓,并且找到它们的最小外接矩形。现在是44页\一共有61页\编辑于星期一对于每一个检测到的轮廓,我们核实一下大小,去除那些规格太小的或者宽高比不正确的区域。字符是45/77的宽高比。我们允许用于选择或者扭曲带来的百分之35的误差。如果一个区域面积高于80%(就是像素大于0的超过80%),则我们认为这个区域是一个黑色块,不是字符。现在是45页\一共有61页\编辑于星期一提取每个字符的特征不像车牌检测特征提取的是图像的所有像素。我们使用一个更加通用的特征在字符识别中,其中包括水平和垂直累加直方图,一个低分辨率样本。现在是46页\一共有61页\编辑于星期一一旦我们拥有了特征,我们创建一个M列的矩阵,矩阵的每一行中的每一列都是特征值。现在是47页\一共有61页\编辑于星期一OCR分类(字符分类)在分类这一步,我们使用人工神经网络机器学习算法。更具体一点,多层感知器(MLP),一个广泛使用的人工神经网络算法。现在是48页\一共有61页\编辑于星期一MLP神经网络有一个输入层,输出层和一个或多个隐层。每一层有一个或多个神经元连接着前向和后向层。下面的例子表示一个3层感知器(它是一个二值分类器,它映射输入的是一个实值向量,输出单一的二值),它带有三个输入,两个输出和一个含有5个神经元的隐层。现在是49页\一共有61页\编辑于星期一每个神经元用带有权重的输入和加上一个偏移量再经过一个选择的激活函数转换后得到输出结果。现在是50页\一共有61页\编辑于星期一一个训练人工神经网络的输入是一个特征矢量。它传输值到隐层。用权重和激活函数来计算结果。它进一步的把输出结果往下传输直到到达含有一定数量的神经元类别时整个过程结束。每一层的权重,通过训练神经网络算法来计算和学习。现在是51页\一共有61页\编辑于星期一简单的神经网络学习过程现在是52页\一共有61页\编辑于星期一在图中,Xl,X2,…,Xn,是输入样本信号,W1,W2,…,Wn是权系数。输入样本信号通过权系数作用,在u产生输出结果∑WiXi,即有u=∑WiXi=W1X1+W2X2+…+WnXn,再把期望输出信号Y(t)和u进行比较,从而产生误差信号e。即权值调整机构根据误差e去对学习系统的权系数进行修改,修改方向应使误差e变小,不断进行下去,一直到误差e为零,这时实际输出值u和期望输出值Y(t)完全一样,则学习过程结束。现在是53页\一共有61页\编辑于星期一训练所需特征和类别charOCR::strCharacters[]={'0','1','2','3','4','5','6','7','8','9','B','C','D','F','G','H','J','K','L','M','N','P','R','S','T','V','W','X','Y','Z'};intOCR::numCharacters=30;现在是54页\一共有61页\编辑于星期一由于最终我们的分类器分类出30个类别,所以我们获取这30个类别的大量样本,提取每个类别每个样本的特征作为分类器的输入来训练我们的分类器。为机器学习的ANN算法训练的数据存储在一个N*M的矩阵中,N表示样本数,M表示特征数。现在是55页\一共有61页\编辑于星期一而和SVM分类器类别存储在一个大小为N*1的矩阵中不同的是,必须创建一个N*30大小的矩阵来存储类别,这里的N是训练的样本,30是类别(因为我们的车牌中是10个数字和20个字母)。如果某一行假定第i行属于j(j=0-29)类,则我们将位置(i,j)的设置为1.我们将以上存储了已经处理好和准备好的所有图像的数据,写成xml文件现在是56页\一共有61页\编辑于星期一创建并训练分类器我们用训练的特征数据,隐含层所含神经元的数目,类的数目及激活函数参数等来初始化分类器。OpenCV也为我们提供了ANN算法的类。layers.at<int>(0)=TrainData.cols;layers.at<int>(1)=nlayers;layers.at<int>(2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高一迎期末系列专栏001期-名篇名句默写(教师版)
- 房地产公司个人年终工作总结 15篇
- 感恩节感恩父母演讲稿范文15篇
- 总经理年会致辞(集合15篇)
- 养老保险知识
- 数据中心运维服务投标方案(技术标)
- 市场监管案件审核培训
- 初级会计实务-初级会计《初级会计实务》模拟试卷479
- 智研咨询-2024年中国消化类药物行业市场全景调查、投资策略研究报告
- 二零二五年度个人与物流企业货物运输信息保密及合作协议2篇
- 江苏省扬州市蒋王小学2023~2024年五年级上学期英语期末试卷(含答案无听力原文无音频)
- 数学-湖南省新高考教学教研联盟(长郡二十校联盟)2024-2025学年2025届高三上学期第一次预热演练试题和答案
- 决胜中层:中层管理者的九项修炼-记录
- 2024年海南公务员考试申论试题(A卷)
- 临床药师进修汇报课件
- 北京市首都师大附中2025届数学高三第一学期期末达标测试试题含解析
- 2024年贵州省高职(专科)分类考试招收中职毕业生文化综合考试语文试题
- 政治丨广东省2025届高中毕业班8月第一次调研考试广东一调政治试卷及答案
- 铸石防磨施工工艺
- 临时用电安全培训(汇编)
- 玻璃钢烟囱方案
评论
0/150
提交评论