CN108805125A - 基于粒子群算法优化神经网络的车牌识别系统及方法 - Google Patents
基于粒子群算法优化神经网络的车牌识别系统及方法 Download PDFInfo
- Publication number
- CN108805125A CN108805125A CN201810605580.5A CN201810605580A CN108805125A CN 108805125 A CN108805125 A CN 108805125A CN 201810605580 A CN201810605580 A CN 201810605580A CN 108805125 A CN108805125 A CN 108805125A
- Authority
- CN
- China
- Prior art keywords
- value
- character
- particle
- neural network
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/245—Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/146—Aligning or centring of the image pick-up or image-field
- G06V30/1475—Inclination or skew detection or correction of characters or of image to be recognised
- G06V30/1478—Inclination or skew detection or correction of characters or of image to be recognised of characters or characters lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
- G06V20/625—License plates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Character Discrimination (AREA)
Abstract
本发明揭示了一种基于粒子群算法优化神经网络的车牌识别系统及方法,所述车牌识别系统包括:车牌定位模块、字符识别预处理模块、车牌识别模块;所述车牌定位模块包括:车牌字符初步定位单元、真实车牌获取单元、车牌铆钉去除单元、字符轴线确定单元;字符识别预处理模块包括二值化单元、倾斜校正单元、归一化处理单元;所述车牌识别模块包括粒子群学习单元、动态优化神经网络单元、识别单元。本发明提出的基于粒子群算法优化神经网络的车牌识别系统及方法,采用粒子群算法优化神经网络,动态优化神经网络的权值和隐层神经元个数,提高车牌识别精度和识别速度。
Description
技术领域
本发明属于车牌识别技术领域,涉及一种车牌识别系统,尤其涉及一种基于粒子群算法 优化神经网络的车牌识别系统;同时,本发明还涉及一种车牌识别方法。
背景技术
随着社会经济的发展,人民生活水平的不断提高,私人拥有机动车辆的数量迅速增加,车 辆普及成为必然的趋势。在此情况下,仅仅依靠大力发展交通设施己不能解决交通拥挤、交通 事故频发、环境污染加剧等问题。车辆牌照识别,技术是智能交通系统中的一个重要环节,它 在交通监视和控制中占有很重要的地位,车辆牌照识别技术作为交通信息服务系统的重要手 段,其任务是分析处理车辆图像,自动识别汽车牌号码。为了避免人工干预所带来的弊端,提高 管理效率,对车辆牌照自动识别系统的需求和标准的要求越来越高。
目前,基于数字图像处理和模式识别的方法是车牌自动识别中最为常用和最为有效的方 法。传统的基于神经网络的车牌识别采用BP算法优化神经网络权值,再进行车牌识别。由于 BP算法学习效率低,同时无法优化神经网络隐层节点数,导致车牌识别率不高等问题。
有鉴于此,如今迫切需要设计一种新的车牌识别系统,以便克服现有车牌识别系统存在 的上述缺陷。
发明内容
本发明所要解决的技术问题是:提供一种基于粒子群算法优化神经网络的车牌识别系统, 采用粒子群算法优化神经网络,动态优化神经网络的权值和隐层神经元个数,提高车牌识别 精度和识别速度。
此外,本发明还提供一种基于粒子群算法优化神经网络的车牌识别方法,采用粒子群算 法优化神经网络,动态优化神经网络的权值和隐层神经元个数,提高车牌识别精度和识别速 度。
为解决上述技术问题,本发明采用如下技术方案:
一种基于粒子群算法优化神经网络的车牌识别系统,所述车牌识别系统包括:车牌定位 模块、字符识别预处理模块、车牌识别模块;
所述车牌定位模块用以获取图像中车牌的位置,对其进行定位;
所述车牌定位模块包括:车牌字符初步定位单元、真实车牌获取单元、车牌铆钉去除单 元、字符轴线确定单元;
(1)所述车牌字符初步定位单元,用以初步定位车牌字符;
首先对获取的图像进行灰度化,如下式所示:
Y=0.299*R+0.587*G+0.114*B
R、G、B分别为图像的红、绿、蓝的三色分类;
车牌的处理涉及到红色、白色、黄色和蓝色四种颜色,以蓝底白字车牌的基层进行初始 设定,非蓝底白字车牌需要转换成蓝底白字的车牌;对于黄底黑字车牌经反色即变成蓝底白 字,即各个颜色通道分量值为255减去当前颜色分量值;黑底白字的车牌,首先把黑色处理 成为蓝色,即对应的蓝色通道分量值加255,将黑底白字的车牌处理成蓝底白字;
由于已经把车牌处理成蓝底白字,即(255,255,255)的像素点认为为字符笔画位置,由 于车牌的尺寸是固定的,字符笔画位置固定后,再根据车牌区域的背景颜色和字符颜色所占 像素点的比例也是固定的,从而即使拍摄角度有差异,车牌仍然会局限在一定的范围,从而 对车牌进行了初定位;
(2)所述真实车牌获取单元用以获取真实车牌;
一张图像中可能存在多块区域蓝底白色,需要获取到真实的车牌部分;由于车牌的大小 和字符的大小是固定的,通过可比对蓝底白色模块的区域的大小和白色部分在蓝底中所占的 比例,即可确定真实的车牌部分;
(3)所述车牌铆钉去除单元用以去除车牌铆钉;
由于车牌安装时需要铆钉,而带有铆钉的字符高度大于字符平均高度的1.115倍,从而 当发现字符的高度大于平均字符的高度的1.115倍时,就将字符的上坐标按下坐标的值+字符 的平均高度,从而去除铆钉对字符的影响;
(4)所述字符轴线确定单元用以确定车牌字符大致位置,利用车牌字符间的相对位置, 根据两点直线公式确定车牌所在的轴线;如下式所示:
将字符矩形包络的坐标带进上述公式,求出车牌字符所在轴线,得出车牌的水平倾斜角度 值,也就是字符偏离水平方向的角度,根据车牌偏离水平方向的角度得到车牌偏离竖直方向的 角度,并保存该矩形左上角和右下角的坐标,从而获取车牌的范围;
利用己经找到的现有的字符的倾斜包络,初步得到倾斜字符的斜宽和斜高。根据现有字符 的斜宽和斜高,推出车牌倾斜字符之间的倾斜间距;由于在寻找字符的过程中,并不一定能完 全寻找到所有的车牌字符,但是已经找到了车牌字符中的一部分字符,并得到了它们的斜宽、 斜高、和字符之间的间距,利用字符之间的位置关系,将一个完整的车牌模板套上去,当模板完 整的将已经找到的字符嵌入进去,车牌上的所有字符便都找到;
所述字符识别预处理模块用以对图像进行二值化处理、倾斜校正处理、归一化处理,通 过上述预处理获取字符的特征值,这个特征值作为神经网络的输入值;所述字符识别预处理 模块包括二值化单元、倾斜校正单元、归一化处理单元;
(1)二值化单元用以通过选取一个合理的阈值,把原图像像素点仅用两个灰度值表示图 像的目标和背景颜色,从而产生相应的二值图像。
若一幅灰度图像中的灰度级范围是0~255,设有一阈值为T(0≤T≤255),则:
其中,g(x,y)表示二值化后图像中各个像素点的值。若g(x,y)=255则说明该点是目标,反 之,则是背景;阈值T可根据实际情况设置;
(2)倾斜纠正单元用以找到图像的倾角后,应对车牌字符图像做几何变换;首先要确定 校正变换前后图像的坐标关系:
相应的由新图坐标反算回的原图坐标为:
其中(i,j)是原图像f(x,y)中的像素点的坐标;是对应像素点(i,j)经过旋转变 换后的图像的像素点的坐标;经变换后的坐标位置可能不是整数,这样,在旋转后的图像 中就会出现空穴,使用双线性插值法进行空穴进行填充;考虑车牌识别所涉及到10数字、31 个汉字和26个字母的特性,均为从上向下即可识别;空穴像素值的赋值,采用把空穴点作为 3*3矩阵的中心点,从上向下,从左到右依次识别读取范围内非空穴像素点中像素值为1和像 素点为0的个数,二者那个像素点的个数多,空穴赋值为对应的像素点的值;如果像素值为1 和像素点为0的个数相同,通过生成(0,1)之间的随机数,如果生成的随机数大于0.5,空 穴的像素点为1,小于等于0.5,空穴的像素点为0;在为空穴赋值的过程中,如果空穴在像 素点的边框部分,无法作为3*3矩阵的中心点,考虑到字符的边框,字符均在图像的中间的 特点,对这些空穴均赋值为0;
(3)归一化处理单元用以将待识别的字符进行大小统一,以便于进行字符特征提取,本 文采用插值变化的归一化方式;设f(x,y)为原图像,g(x0,y0)为归一化后的图像,设(x0,y0)为g中的任意一点,对应与f(x,y)中的点(a,b),根据(a,b)的具体情况来表示 g(x0,y0)中各像素点的值;归一化后图像的像素点和原图像中的像素点的映射公式为:
公式中的w是原图像的宽度,是归一化以后的宽度;d是原图像的高度,d是归一化以 后的高度;归一化的图像中的点(x0,y0)映射到原图像中的点(a,b)可能存在非整数的情况,当(a,b)不是整数是要进行像素内插变换;如果(a,b)是整数,表明(x0,y0)对 应在原图像的网络点上,不必进行内插变换,直接令(x0,y0)的灰度值等于(a,b)位置 处的灰度值:
g(x0,y0)=f(a,b)
如果(a,b)不是整数,则采取内插变换方法来决定g(x0,y0)的值;
邻近插值法中归一化的图像g(x0,y0)的灰度值是用f(x,y)邻接的四个网络点(i,j),(i+1, j),(i,j+1),(i+1,j+1)中几何距离最接近它的灰度值来近似。
所述车牌识别模块用以通过神经网络来识别字符,采用粒子群算法动态优化神经网络; 一个完整的粒子全算法优化神经网络实现字符识别的流程;
所述车牌识别模块包括粒子群学习单元、动态优化神经网络单元、识别单元;
神经网络的结构分为输入层,隐含层和输出层;
作为人工神经网络的基本单元的神经元模型,它有三个基本要素:
(1)一组连接,对应于生物神经元的突触,连接强度由各连接上的权值表示,权值为正 表示激活,为负表示抑制;
(2)一个求和单元,用于求取各输入信号的加权和,即线性组合;
(3)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内;
此外还有一个阈值θk(或偏置bk=-θk);
以上工作用数学表示式表示为:
vk=netk=uk-θk;
式中,x1,x2,…,xn为输入信号,wk1,wk2,…,wkp为神经元k的权值,uk为线性 组合权值,θk为阈值,φ(·)为激活函数,yk为神经元k的实际输出;
激活函数φ(·)设为Sigmoid函数:
若把输入的维数增加一维,则可把阈值θk包括进去,则
此处增加了一个新的连接,其输入为x0=-1,权值为wk0=θk(或bk);由于的值是 (-1,1)范围内的值,当小与0的时候,输出值为0,当大于等于0的时候,输出值为1;
(1)所述粒子群学习单元通过粒子向自身经验Pi和群体经验Pg不断学习,实现在解空间 内寻优;假设粒子群第i个粒子在d维空间中的位置为xi=(xi1,xi2,…,xid),飞行速度为vi=(vi1, vi2,…,vid),其经历过的最好位置为Pi=(pi1,pi2,…,pid),所有粒子经历过的最好位置为Pg=(pg1, pg2,…,pgd),粒子按下式更新:
式中,vid表示第i个粒子第d维速度分量,t为迭代次数,惯性权重w为0.98,学习因子c1=c2=2,r1和r2为(0,1)之间均匀分布的随机数;
首先考虑粒子的编码,由于输入为20*36的0和1的编码,则神经网络输入节点为720 个;考虑到车牌需要识别26个英文字母,涉及到31个汉字和10个阿拉伯数据,共51个字符,根据二进制,则需要6个输出节点;隐藏节点先根据经验公式在少两个和多10个之间,在学习阶段把隐藏神经元设置为最大 隐藏神经元76;
神经网络最大结构确认后,对隐藏神经元的阈值随机赋予0或1的值,为0表示该隐藏 神经元没有参与学习,为1表示隐藏神经元参与学习,再对神经网络的所有权值赋予(-1,1) 范围内的随机值;由于车牌识别的特殊性,输入值只为0和1两种值,对应的神经网络的阈 值只相当于多了一个权值,从而可以对神经网络阈值θk进行精简,从而简化网络结构;
粒子的目标函数:根据车牌识别的特点,共涉及到51个字符,依次对字母,阿拉伯数字 和31个文字设置为二进制递增的值:000000,000001,000010,…,110010,110011,输出 为二进制数,由于神经元的激活函数为输出为(-1,1)之间的随机值;但为 了更快的优化网络,避免陷入局部极值,在学习过程中,输入节点不用严格的转换成二进制 值;采用其中num为学习样本数,Yi为节点实际输出, Oi为节点期望输出;同时根据Moody准则,当网络训练精度达到一定程度时,网络有效参数 越少,网络泛化能力越优;从而在网络适应值相同的情况下,选取隐藏神经元为0多的为优 胜者;
(2)所述动态优化神经网络单元用以实现前馈网络结构和权值同时优化的方法;设定全 国各地车牌5000作为学习样本,为保证各省汉字都能识别到,每省车牌图像不少于100个; 随机初始化40个粒子,每个粒子代表一个神经网络,对隐藏神经元和神经网络权值和阈值赋 值后,当隐藏神经元为0时,与之相连的权值不参与神经网络学习;再分别对40个粒子根据 神经网络学习算法获取每个粒子初始识别率,初始识别率也作为当前粒子的最初粒子最优值, 再从中选择识别率最高的作为当前最优粒子;算法共学习5000代,每代中比较每个粒子历史 最优值和所有粒子历史最优值,分别作为粒子自身最优值和全局历史最优值;
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神 经元数和全局历史最优值隐藏神经元数比较;当粒子的隐藏神经元数小于粒子自身最优值隐 藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的 随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最 优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识 为1的随机选择一个设置为0,下一代对应的权值不参与学习;同时为了避免粒子陷入局部极 值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以 增加粒子群算法的扰动,避免粒子陷入局部极值;
当算法学习10000代后或粒子的识别率低于千分之一的时候,把全局最优粒子,作为车 牌字符识别的网络,为加快计算,减少内存,神经网络隐藏神经元标识为0且与之相连的权 值全部清除,精简网络结构;
图像经过上述图像预处理模块预处理后得到最终的20*36的矩阵,所述识别单元采用学 习后最优神经网络进行识别,由于神经网络的激活函数是输出的为(-1,1) 之间的随机值,所以当激活函数输出的值小于0时赋值为0,大于等于0时赋值为1,根据最 终转换后的二进制字符,识别车牌字符。
一种基于粒子群算法优化神经网络的车牌识别系统,所述车牌识别系统包括车牌定位模 块、字符识别预处理模块、车牌识别模块;所述车牌定位模块、字符识别预处理模块、车牌 识别模块依次连接;
所述车牌定位模块用以获取图像中车牌的位置,对其进行定位;
所述字符识别预处理模块用以对图像进行二值化处理、倾斜校正处理、归一化处理,通 过上述预处理获取字符的特征值,这个特征值作为神经网络的输入值;
所述车牌识别模块用以通过神经网络来识别字符,采用粒子群算法动态优化神经网络; 采用一个完整的粒子全算法优化神经网络实现字符识别的流程;
所述车牌识别模块包括动态优化神经网络单元,所述动态优化神经网络单元用以实现前 馈网络结构和权值同时优化的方法;
将设定数量的车牌作为学习样本,随机初始化若干个粒子,每个粒子代表一个神经网络, 对隐藏神经元和神经网络权值和阈值赋值后,当隐藏神经元为0时,与之相连的权值不参与 神经网络学习;再分别对各个粒子根据神经网络学习算法获取每个粒子初始识别率,初始识 别率也作为当前粒子的最初粒子最优值,再从中选择识别率最高的作为当前最优粒子;算法 共学习若干代,每代中比较每个粒子历史最优值和所有粒子历史最优值,分别作为粒子自身 最优值和全局历史最优值;
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神 经元数和全局历史最优值隐藏神经元数比较;当粒子的隐藏神经元数小于粒子自身最优值隐 藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的 随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最 优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识 为1的随机选择一个设置为0,下一代对应的权值不参与学习;同时为了避免粒子陷入局部极 值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以 增加粒子群算法的扰动,避免粒子陷入局部极值。
一种基于粒子群算法优化神经网络的车牌识别方法,所述方法包括:
步骤1、对车牌定位,找出车牌位置;
步骤2、通过图像预处理的方式,获取字符的特征值;这个特征值作为神经网络的输入值;
步骤3、通过粒子群算法优化神经网络,优化好的神经网络即可满足车牌识别的需要。
本发明的有益效果在于:本发明提出的基于粒子群算法优化神经网络的车牌识别系统及 方法,采用粒子群算法优化神经网络,动态优化神经网络的权值和隐层神经元个数,提高车 牌识别精度和识别速度。
本发明实现了粒子群算法同时优化神经网络的权值和隐层神经元个数,而且对粒子群算 法有了优化“同时为了避免粒子陷入局部极值,每代对粒子的全局极值和个体极值选取随机 选取10%的权值乘以(0.8,1.2)的随机值,以增加粒子群算法的扰动,避免粒子陷入局部极值。”
附图说明
图1为本发明系统中倾斜纠正单元8*8矩阵的示意图。
图2为本发明车牌识别系统的系统框图。
图3为神经网络结构的示意图。
图4为基本神经元模型的示意图。
图5为神经网络粒子编码的示意图。
图6为粒子群算法优化神经网络的流程图。
图7为最近邻插值示意图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
实施例一
本发明揭示了一种基于粒子群算法优化神经网络的车牌识别系统,所述车牌识别系统包 括:车牌定位模块、字符识别预处理模块、车牌识别模块。以下对各个模块分别详细介绍。
【车牌定位模块】
所述车牌定位模块包括:车牌字符初步定位单元、真实车牌获取单元、车牌铆钉去除单 元、字符轴线确定单元。
所述车牌字符初步定位单元,用以初步定位车牌字符;
首先对获取的图像进行灰度化,如下式所示:
Y=0.299*R+0.587*G+0.114*B
R、G、B分别为图像的红、绿、蓝的三色分类。
车牌的处理涉及到红色、白色、黄色和蓝色四种颜色,由于多数车牌均为蓝底白字,本 文以蓝底白字车牌的基层进行研究对接,非蓝底白字车牌需要转换成蓝底白字的车牌。对于 黄底黑字车牌经反色就可以变成蓝底白字,即各个颜色通道分量值为255减去当前颜色分量 值;黑底白字的车牌,首先把黑色处理成为蓝色,即对应的蓝色通道分量值加255,就可以将 黑底白字的车牌处理成蓝底白字。
由于已经把车牌处理成蓝底白字,即(255,255,255)的像素点认为为字符笔画位置,由 于车牌的尺寸是固定的,字符笔画位置固定后,再根据车牌区域的背景颜色和字符颜色所占 像素点的比例也是固定的,从而即使拍摄角度有差异,车牌仍然会局限在一定的范围,从而 对车牌进行了初定位。
所述真实车牌获取单元用以获取真实车牌。
一张图像中,可能存在多块区域蓝底白色,需要获取到真实的车牌部分。由于车牌的大 小和字符的大小是固定的,通过可比对蓝底白色模块的区域的大小和白色部分在蓝底中所占 的比例,即可确定真实的车牌部分。
所述车牌铆钉去除单元用以去除车牌铆钉。
由于车牌安装时需要铆钉,而带有铆钉的字符高度大于字符平均高度的1.115倍,从而 当发现字符的高度大于平均字符的高度的1.115倍时,就将字符的上坐标按下坐标的值+字符 的平均高度,从而去除铆钉对字符的影响。
所述字符轴线确定单元用以确定车牌字符大致位置,利用车牌字符间的相对位置,根据 两点直线公式确定车牌所在的轴线;如下式所示:
将字符矩形包络的坐标带进上述公式,求出车牌字符所在轴线,得出车牌的水平倾斜角度 值,也就是字符偏离水平方向的角度,根据车牌偏离水平方向的角度得到车牌偏离竖直方向的 角度,并保存该矩形左上角和右下角的坐标,从而获取车牌的范围。
利用己经找到的现有的字符的倾斜包络,初步得到倾斜字符的斜宽和斜高。根据现有字符 的斜宽和斜高,推出车牌倾斜字符之间的倾斜间距;由于在寻找字符的过程中,并不一定能完 全寻找到所有的车牌字符,但是已经找到了车牌字符中的一部分字符,并得到了它们的斜宽、 斜高、和字符之间的间距,利用字符之间的位置关系,将一个完整的车牌模板套上去,当模板完 整的将已经找到的字符嵌入进去,车牌上的所有字符便都找到。
【字符识别预处理模块】
所述字符识别预处理模块用以对图像进行二值化处理、倾斜校正处理、归一化处理,通 过上述预处理获取字符的特征值,这个特征值作为神经网络的输入值。字符识别预处理模块 包括二值化单元、倾斜校正单元、归一化处理单元。
(1)二值化单元用以通过选取一个合理的阈值,把原图像像素点仅用两个灰度值表示图 像的目标和背景颜色,从而产生相应的二值图像。
若一幅灰度图像中的灰度级范围是0~255,设有一阈值为T(0≤T≤255),则:
其中,g(x,y)表示二值化后图像中各个像素点的值。若g(x,y)=255则说明该点是目标,反 之,则是背景;阈值T可根据实际情况设置。
(2)倾斜纠正单元用以找到图像的倾角后,应对车牌字符图像做几何变换;首先要确定 校正变换前后图像的坐标关系:
相应的由新图坐标反算回的原图坐标为:
其中(i,j)是原图像f(x,y)中的像素点的坐标;是对应像素点(i,j)经过旋转变 换后的图像的像素点的坐标;经变换后的坐标位置可能不是整数,这样,在旋转后的图像 中就会出现空穴,使用双线性插值法进行空穴进行填充;考虑车牌识别所涉及到10数字、31 个汉字和26个字母的特性,均为从上向下即可识别;空穴像素值的赋值,采用把空穴点作为 3*3矩阵的中心点,从上向下,从左到右依次识别读取范围内非空穴像素点中像素值为1和像 素点为0的个数,二者那个像素点的个数多,空穴赋值为对应的像素点的值;如果像素值为1 和像素点为0的个数相同,通过生成(0,1)之间的随机数,如果生成的随机数大于0.5,空 穴的像素点为1,小于等于0.5,空穴的像素点为0;在为空穴赋值的过程中,如果空穴在像 素点的边框部分,无法作为3*3矩阵的中心点,考虑到字符的边框,字符均在图像的中间的 特点,对这些空穴均赋值为0。为了方便解释本实施例以8*8的矩阵进行解释,其中蓝色部分 是像素值为1的部分,灰色部分是像素值为0的部分,红色部分(图1中的深色部分)为空 洞部分发现空值的区间为图1。
例如红色部分为空穴部分,9和63无法作为3*3矩阵的中心点,空穴像素点直接赋值为 0;36的像素点为:由于方块27,28,29,35,37,43、44,45的中间,像素点27,28,35,37,45 的像素点为1,29、44像素点为0,则空穴36的像素点赋值为1。
(3)归一化处理单元用以将待识别的字符进行大小统一,以便于进行字符特征提取,本 文采用插值变化的归一化方式;设f(x,y)为原图像,g(x0,y0)为归一化后的图像,设(x0,y0)为g中的任意一点,对应与f(x,y)中的点(a,b),根据(a,b)的具体情况来表示 g(x0,y0)中各像素点的值;归一化后图像的像素点和原图像中的像素点的映射公式为:
公式中的w是原图像的宽度,是归一化以后的宽度;d是原图像的高度,d是归一化以 后的高度;归一化的图像中的点(x0,y0)映射到原图像中的点(a,b)可能存在非整数的情况,当(a,b)不是整数是要进行像素内插变换;如果(a,b)是整数,表明(x0,y0)对 应在原图像的网络点上,不必进行内插变换,直接令(x0,y0)的灰度值等于(a,b)位置 处的灰度值:
g(x0,y0)=f(a,b)
如果(a,b)不是整数,则采取内插变换方法来决定g(x0,y0)的值;
邻近插值法中归一化的图像g(x0,y0)的灰度值是用f(x,y)邻接的四个网络点(i,j),(i+1, j),(i,j+1),(i+1,j+1)中几何距离最接近它的灰度值来近似;可结合图7所示。
考虑到图像尺寸和像素值要求,本实施例图像归一化的尺寸为20*36。
【车牌识别模块】
字符图像归一化后,获得一个20*36的特种值,本文通过神经网络来识别字符,考虑到 传统的神经网络学习算法慢且容易陷入局部极值,本实施例采用粒子群算法动态优化神经网 络。一个完整的粒子全算法优化神经网络实现字符识别的流程,分为学习和识别两个过程, 如图2所示。
所述车牌识别模块用以通过神经网络来识别字符,采用粒子群算法动态优化神经网络; 一个完整的粒子全算法优化神经网络实现字符识别的流程;
所述车牌识别模块包括粒子群学习单元、动态优化神经网络单元、识别单元;
神经网络的结构分为输入层,隐含层和输出层;
作为人工神经网络的基本单元的神经元模型,它有三个基本要素:
(1)一组连接,对应于生物神经元的突触,连接强度由各连接上的权值表示,权值为正 表示激活,为负表示抑制;
(2)一个求和单元,用于求取各输入信号的加权和,即线性组合;
(3)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内;
此外还有一个阈值θk(或偏置bk=-θk);
以上工作用数学表示式表示为:
vk=netk=uk-θk;
式中,x1,x2,…,xn为输入信号,wk1,wk2,…,wkp为神经元k的权值,uk为线性 组合权值,θk为阈值,φ(·)为激活函数,yk为神经元k的实际输出;
激活函数φ(·)设为Sigmoid函数:
若把输入的维数增加一维,则可把阈值θk包括进去,则
此处增加了一个新的连接,其输入为x0=-1,权值为wk0=θk(或bk);由于的值是 (-1,1)范围内的值,当小与0的时候,输出值为0,当大于等于0的时候,输出值为1;
所述粒子群学习单元通过粒子向自身经验Pi和群体经验Pg不断学习,实现在解空间内寻 优;假设粒子群第i个粒子在d维空间中的位置为xi=(xi1,xi2,…,xid),飞行速度为vi=(vi1, vi2,…,vid),其经历过的最好位置为Pi=(pi1,pi2,…,pid),所有粒子经历过的最好位置为Pg=(pg1, pg2,…,pgd),粒子按下式更新:
式中,vid表示第i个粒子第d维速度分量,t为迭代次数,惯性权重w为0.98,学习因子c1=c2=2,r1和r2为(0,1)之间均匀分布的随机数;
所述动态优化神经网络单元用以
首先考虑粒子的编码,由于输入为20*36的0和1的编码,则神经网络输入节点为720 个;考虑到车牌需要识别26个英文字母,涉及到31个汉字和10个阿拉伯数据,共51个字符,根据二进制,则需要6个输出节点;隐藏节点先根据经验公式在少两个和多10个之间,在学习阶段把隐藏神经元设置为最大 隐藏神经元76;
神经网络最大结构确认后,对隐藏神经元的阈值随机赋予0或1的值,为0表示该隐藏 神经元没有参与学习,为1表示隐藏神经元参与学习,再对神经网络的所有权值赋予(-1,1) 范围内的随机值;由于车牌识别的特殊性,输入值只为0和1两种值,对应的神经网络的阈 值只相当于多了一个权值,从而可以对神经网络阈值θk进行精简,从而简化网络结构;
粒子的目标函数:根据车牌识别的特点,共涉及到51个字符,依次对字母,阿拉伯数字 和31个文字设置为二进制递增的值:000000,000001,000010,…,110010,110011,输出 为二进制数,由于神经元的激活函数为输出为(-1,1)之间的随机值;但为 了更快的优化网络,避免陷入局部极值,在学习过程中,输入节点不用严格的转换成二进制 值;采用其中num为学习样本数,Yi为节点实际输出, Oi为节点期望输出;同时根据Moody准则,当网络训练精度达到一定程度时,网络有效参数 越少,网络泛化能力越优;从而在网络适应值相同的情况下,选取隐藏神经元为0多的为优 胜者;
所述动态优化神经网络单元用以实现前馈网络结构和权值同时优化的方法;设定全国各 地车牌5000作为学习样本,为保证各省汉字都能识别到,每省车牌图像不少于100个;随机 初始化40个粒子,每个粒子代表一个神经网络,对隐藏神经元和神经网络权值和阈值赋值后, 当隐藏神经元为0时,与之相连的权值不参与神经网络学习;再分别对40个粒子根据神经网 络学习算法获取每个粒子初始识别率,初始识别率也作为当前粒子的最初粒子最优值,再从 中选择识别率最高的作为当前最优粒子;算法共学习5000代,每代中比较每个粒子历史最优 值和所有粒子历史最优值,分别作为粒子自身最优值和全局历史最优值;
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神 经元数和全局历史最优值隐藏神经元数比较;当粒子的隐藏神经元数小于粒子自身最优值隐 藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的 随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最 优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识 为1的随机选择一个设置为0,下一代对应的权值不参与学习。同时为了避免粒子陷入局部极 值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以 增加粒子群算法的扰动,避免粒子陷入局部极值。
当算法学习10000代后或粒子的识别率低于千分之一的时候,把全局最优粒子,作为车 牌字符识别的网络,为加快计算,减少内存,神经网络隐藏神经元标识为0且与之相连的权 值全部清除,精简网络结构;
所述识别单元用以根据上述图像预处理方法将图像进行预处理,获取最终的20*36的矩 阵,采用学习后最优神经网络进行识别,由于神经网络的激活函数是输出 的为(-1,1)之间的随机值,所以当激活函数输出的值小于0时赋值为0,大于等于0时赋值为 1,根据最终转换后的二进制字符,识别车牌字符。
本发明还揭示一种基于粒子群算法优化神经网络的车牌识别方法,所述车牌识别方法包 括:
【步骤S1】车牌定位步骤;
由于车牌的字符个数、大小、尺寸、背景颜色都是固定的。本发明采用一种先对车牌初 定位,在进行字符分割的方式,进行车牌定位。
(1)车牌字符的初步定位;
首先对获取的图像进行灰度化,如下式所示:
Y=0.299*R+0.587*G+0.114*B
R、G、B分别为图像的红、绿、蓝的三色分类。
车牌的处理涉及到红色、白色、黄色和蓝色四种颜色,由于多数车牌均为蓝底白字,本 文以蓝底白字车牌的基层进行研究对接,非蓝底白字车牌需要转换成蓝底白字的车牌。对于 黄底黑字车牌经反色就可以变成蓝底白字,即各个颜色通道分量值为255减去当前颜色分量 值。黑底白字的车牌,首先把黑色处理成为蓝色,即对应的蓝色通道分量值加255,就可以将 黑底白字的车牌处理成蓝底白字。
由于已经把车牌处理成蓝底白字,即(255,255,255)的像素点认为为字符笔画位置,由 于车牌的尺寸是固定的,字符笔画位置固定后,再根据车牌区域的背景颜色和字符颜色所占 像素点的比例也是固定的,从而即使拍摄角度有差异,车牌仍然会局限在一定的范围,从而 对车牌进行了初定位。
(2)获取真实车牌部分
一张图像中,可能存在多块区域蓝底白色,需要获取到真实的车牌部分。由于车牌的大 小和字符的大小是固定的,本文通过可比对蓝底白色模块的区域的大小和白色部分在蓝底中 所占的比例,即可确定真实的车牌部分。
(3)去除车牌铆钉
由于车牌安装时需要铆钉,而带有铆钉的字符高度大于字符平均高度的1.115倍,从而 当发现字符的高度大于平均字符的高度的1.115倍时,就将字符的上坐标按下坐标的值+字符 的平均高度,从而去除铆钉对字符的影响。
(4)确定字符轴线
车牌字符大致位置确定胡,可利用车牌字符间的相对位置,根据两点直线公式确定车牌 所在的轴线。如下式所示:
将字符矩形包络的坐标带进上述公式,求出车牌字符所在轴线,得出车牌的水平倾斜角度 值,也就是字符偏离水平方向的角度,根据车牌偏离水平方向的角度得到车牌偏离竖直方向的 角度,并保存该矩形左上角和右下角的坐标,从而获取车牌的范围。
利用己经找到的现有的字符的倾斜包络,初步得到倾斜字符的斜宽和斜高。根据现有字符 的斜宽和斜高,推出车牌倾斜字符之间的倾斜间距。由于在寻找字符的过程中,并不一定能完 全寻找到所有的车牌字符,但是已经找到了车牌字符中的一部分字符,并得到了它们的斜宽、 斜高、和字符之间的间距,利用字符之间的位置关系,将一个完整的车牌模板套上去,当模板完 整的将已经找到的字符嵌入进去,车牌上的所有字符就都找到了。
【步骤S2】字符识别预处理步骤。
车牌字符图像预处理包括字符的二值化、倾斜校正、归一化处理。
(1)二值化
二值化是一种图像分割技术,通过选取一个合理的阈值,把原图像像素点仅用两个灰度 值表示图像的目标和背景颜色,从而产生相应的二值图像。
若一幅灰度图像中的灰度级范围是0~255,设有一阈值为T(0≤T≤255),则:
其中,g(x,y)表示二值化后图像中各个像素点的值。若g(x,y)=255则说明该点是目标,反 之,则是背景。本文阈值T可根据实际情况设置。
(2)倾斜纠正
找到图像的倾角后,应对车牌字符图像做几何变换。首先要确定校正变换前后图像的坐标 关系:
相应的由新图坐标反算回的原图坐标为
其中(i,j)是原图像f(x,y)中的像素点的坐标;是对应像素点(i,j)经过旋转变 换后的图像的像素点的坐标。经变换后的坐标位置可能不是整数,这样,在旋转后的图像 中就会出现空穴,本文使用双线性插值法进行空穴进行填充。考虑车牌识别所涉及到10数字、 31个汉子和26个字母的特性,均为从上向下即可识别。本文空穴像素值的赋值,采用把空穴 点作为3*3矩阵的中心点,从上向下,从左到右依次识别读取范围内非空穴像素点中像素值 为1和像素点为0的个数,二者那个像素点的个数多,空穴赋值为对应的像素点的值。如果 像素值为1和像素点为0的个数相同,通过生成(0,1)之间的随机数,如果生成的随机数大 于0.5,空穴的像素点为1,小于等于0.5,空穴的像素点为0。在为空穴赋值的过程中,如 果空穴在像素点的边框部分,无法作为3*3矩阵的中心点,考虑到字符的边框,字符均在图 像的中间的特点,对这些空穴均赋值为0。为了方便解释我们以8*8的矩阵进行解释,其中蓝 色部分是像素值为1的部分,灰色部分是像素值为0的部分,红色部分(图1中的深色区域) 为空洞部分发现空值的区间为图1所示。
例如红色部分为空穴部分,9和63无法作为3*3矩阵的中心点,空穴像素点直接赋值为 0;36的像素点为:由于方块27,28,29,35,37,43、44,45的中间,像素点27,28,35,37,45 的像素点为1,29、44像素点为0,则空穴36的像素点赋值为1。
(3)归一化
将待识别的字符进行大小统一,以便于进行字符特征提取,本文采用插值变化的归一化 方式。设f(x,y)为原图像,g(x0,y0)为归一化后的图像,设(x0,y0)为g中的任意一点, 对应与f(x,y)中的点(a,b),根据(a,b)的具体情况来表示g(x0,y0)中各像素点的值。归一化后图像的像素点和原图像中的像素点的映射公式为:
公式中的w是原图像的宽度,是归一化以后的宽度;d是原图像的高度,d是归一化以 后的高度。归一化的图像中的点(x0,y0)映射到原图像中的点(a,b)可能存在非整数的情况,当(a,b)不是整数是要进行像素内插变换。如果(a,b)是整数,表明(x0,y0)对 应在原图像的网络点上,不必进行内插变换,直接令(x0,y0)的灰度值等于(a,b)位置 处的灰度值:
g(x0,y0)=f(a,b)
如果(a,b)不是整数,则采取内插变换方法来决定g(x0,y0)的值
请参阅图7,邻近插值法中归一化的图像g(x0,y0)的灰度值是用f(x,y)邻接的四个网络 点(i,j),(i+1,j),(i,j+1),(i+1,j+1)中几何距离最接近它的灰度值来近似。
考虑到图像尺寸和像素值要求,本文图像归一化的尺寸为20*36。
【步骤S3】粒子群算法优化神经网络的车牌识别步骤。
字符图像归一化后,获得一个20*36的特种值,本文通过神经网络来识别字符,考虑到 传统的神经网络学习算法慢且容易陷入局部极值,本文采用粒子群算法动态优化神经网络。 一个完整的粒子全算法优化神经网络实现字符识别的流程,分为学习和识别两个过程。
(1)神经网络
神经网络的结构如图3所示,分为输入层,隐含层和输出层。
作为人工神经网络的基本单元的神经元模型,它有三个基本要素,如图4所示:
(1)一组连接(对应于生物神经元的突触),连接强度由各连接上的权值表示,权值为正 表示激活,为负表示抑制。
(2)一个求和单元,用于求取各输入信号的加权和(线性组合)。
(3)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内。
此外还有一个阈值θk(或偏置bk=-θk)。
以上工作可以用数学表示式表示为:
vk=netk=uk-θk
式中x1,x2,…,xn为输入信号,wk1,wk2,…,wkp为神经元k的权值,uk为线性组 合权值,θk为阈值,φ(·)为激活函数,yk为神经元k的实际输出。
激活函数φ(·)设为Sigmoid函数:
若把输入的维数增加一维,则可把阈值θk包括进去,则
此处增加了一个新的连接,其输入为x0=-1,权值为wk0=θk(或bk)。由于的值是 (-1,1)范围内的值,当小与0的时候,输出值为0,当大于等于0的时候,输出值为1。
(2)基本PSO算法
粒子群算法是粒子向自身经验Pi和群体经验Pg不断学习,实现在解空间内寻优。假设粒 子群第i个粒子在d维空间中的位置为xi=(xi1,xi2,…,xid),飞行速度为vi=(vi1,vi2,…, vid),其经历过的最好位置为Pi=(pi1,pi2,…,pid),所有粒子经历过的最好位置为Pg=(pg1,pg2,…, pgd),粒子按下式更新:
式中,vid表示第i个粒子第d维速度分量,t为迭代次数,惯性权重w为0.98,学习因子c1=c2=2,r1和r2为(0,1)之间均匀分布的随机数。
(3)粒子群算法动态优化神经网络
首先考虑粒子的编码,由于输入为20*36的0和1的编码,则神经网络输入节点为720 个。考虑到车牌需要识别26个英文字母,涉及到31个汉子和10个阿拉伯数据,共51个字符,根据二进制,则需要6个输出节点。隐藏节点先根据经验公式在少两个和多10个之间,在学习阶段把隐藏神经元设置为最大 隐藏神经元76。
神经网络最大结构确认后,对隐藏神经元的阈值随机赋予0或1的值,为0表示该隐藏 神经元没有参与学习,为1表示隐藏神经元参与学习,再对神经网络的所有权值赋予(-1,1) 范围内的随机值。由于车牌识别的特殊性,输入值只为0和1两种值,对应的神经网络的阈 值只相当于多了一个权值,从而可以对神经网络阈值θk进行精简,从而简化网络结构。图3 对应神经网络,粒子的编码可参考图5所示。
其中flag为0或1的常数,用以表示隐层神经元的连接标识符,当其为0时表示神经元 没有参与连接,与其相连的权值均为0;为1时表示神经元参与连接。u为输入层与隐层之间 的连接权值,v为隐层与输出层之间的连接权值。
粒子的目标函数:根据本文车牌识别的特点,共涉及到51个字符,依次对字母,阿拉伯 数字和31个文字设置为二进制递增的值:000000,000001,000010,…,110010,110011, 输出为二进制数,由于神经元的激活函数为输出为(-1,1)之间的随机值。 但为了更快的优化网络,避免陷入局部极值,在学习过程中,输入节点不用严格的转换成二 进制值。采用其中num为学习样本数,Yi为节点实际输 出,Oi为节点期望输出。同时根据Moody准则,当网络训练精度达到一定程度时,网络有效 参数越少,网络泛化能力越优。从而在网络适应值相同的情况下,选取隐藏神经元为0多的 为优胜者。
本文设计了一种能够实现前馈网络结构和权值同时优化的方法。从百度上下载全国各地 车牌5000作为学习样本,为保证各省汉子都能识别到,每省车牌图像不少于100个。随机初 始化40个粒子,每个粒子代表一个神经网络,对隐藏神经元和神经网络权值和阈值赋值后, 当隐藏神经元为0时,与之相连的权值不参与神经网络学习。再分别对40个粒子根据神经网 络学习算法获取每个粒子初始识别率,初始识别率也作为当前粒子的最初粒子最优值,再从 中选择识别率最高的作为当前最优粒子。算法共学习5000代,每代中比较每个粒子历史最优 值和所有粒子历史最优值,分别作为粒子自身最优值和全局历史最优值。
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神 经元数和全局历史最优值隐藏神经元数比较。当粒子的隐藏神经元数小于粒子自身最优值隐 藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的 随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最 优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识 为1的随机选择一个设置为0,下一代对应的权值不参与学习。同时为了避免粒子陷入局部极 值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以 增加粒子群算法的扰动,避免粒子陷入局部极值。
当算法学习10000代后或粒子的识别率低于千分之一的时候,把全局最优粒子,作为车 牌字符识别的网络,为加快计算,减少内存,神经网络隐藏神经元标识为0且与之相连的权 值全部清除,精简网络结构。
(4)识别过程;
根据上述图像预处理方法将图像进行预处理,获取最终的20*36的矩阵,采用学习后最 优神经网络进行识别,由于神经网络的激活函数是输出的为(-1,1)之间的 随机值,所以当激活函数输出的值小于0时赋值为0,大于等于0时赋值为1,根据最终转换 后的二进制字符,识别车牌字符。
请参阅图6,所述识别方法包括如下步骤:
步骤A1、初始化BP神经网络结构,从而设定粒子对应网络的输入神经元,隐藏神经元和 输出层神经元的个数;
步骤A2、初始化BP神经网络的权值和阈值,从而设定粒子对应的位置;
步骤A3、粒子速度初始化为(-1~1)之间的随机值;
步骤A4、计算每个粒子的适应值;
步骤A5、每个粒子同自身最优粒子和全局最优粒子选取10%的权值随机乘以(0.8,1.2) 范围内的随机值,比较刚生产的每个粒子的适应值、个体极值选取部分权值变异后的个体极 值和之前的个体极值确认粒子最新的个体极值;根据粒子个体极值、全局最优粒子选取部分 权值变异后的全局最优值和之前最优粒子进行确认更新全局最优粒子;
步骤A6、更新粒子的位置和速度;
步骤A7、判断是否得到最大迭代次数或预设精度,若是,结束,否则转向步骤A4。
实施例二
一种基于粒子群算法优化神经网络的车牌识别方法,所述方法包括如下步骤:
步骤S1、车牌定位步骤;具体包括:
步骤S11、车牌字符初步定位步骤,初步定位车牌字符;
首先对获取的图像进行灰度化,如下式所示:
Y=0.299*R+0.587*G+0.114*B
R、G、B分别为图像的红、绿、蓝的三色分类。
车牌的处理涉及到红色、白色、黄色和蓝色四种颜色,由于多数车牌均为蓝底白字,本 文以蓝底白字车牌的基层进行研究对接,非蓝底白字车牌需要转换成蓝底白字的车牌。对于 黄底黑字车牌经反色就可以变成蓝底白字,即各个颜色通道分量值为255减去当前颜色分量 值;黑底白字的车牌,首先把黑色处理成为蓝色,即对应的蓝色通道分量值加255,就可以将 黑底白字的车牌处理成蓝底白字。
由于已经把车牌处理成蓝底白字,即(255,255,255)的像素点认为为字符笔画位置,由 于车牌的尺寸是固定的,字符笔画位置固定后,再根据车牌区域的背景颜色和字符颜色所占 像素点的比例也是固定的,从而即使拍摄角度有差异,车牌仍然会局限在一定的范围,从而 对车牌进行了初定位;
步骤S12、真实车牌获取步骤,获取真实车牌部分;
一张图像中,可能存在多块区域蓝底白色,需要获取到真实的车牌部分。由于车牌的大 小和字符的大小是固定的,通过可比对蓝底白色模块的区域的大小和白色部分在蓝底中所占 的比例,即可确定真实的车牌部分;
步骤S13、车牌铆钉去除步骤,去除车牌铆钉;
由于车牌安装时需要铆钉,而带有铆钉的字符高度大于字符平均高度的1.115倍,从而 当发现字符的高度大于平均字符的高度的1.115倍时,就将字符的上坐标按下坐标的值+字符 的平均高度,从而去除铆钉对字符的影响;
步骤S14、字符轴线确定步骤,确定车牌字符大致位置,利用车牌字符间的相对位置,根 据两点直线公式确定车牌所在的轴线;如下式所示:
将字符矩形包络的坐标带进上述公式,求出车牌字符所在轴线,得出车牌的水平倾斜角度 值,也就是字符偏离水平方向的角度,根据车牌偏离水平方向的角度得到车牌偏离竖直方向的 角度,并保存该矩形左上角和右下角的坐标,从而获取车牌的范围;
利用己经找到的现有的字符的倾斜包络,初步得到倾斜字符的斜宽和斜高。根据现有字符 的斜宽和斜高,推出车牌倾斜字符之间的倾斜间距;由于在寻找字符的过程中,并不一定能完 全寻找到所有的车牌字符,但是已经找到了车牌字符中的一部分字符,并得到了它们的斜宽、 斜高、和字符之间的间距,利用字符之间的位置关系,将一个完整的车牌模板套上去,当模板完 整的将已经找到的字符嵌入进去,车牌上的所有字符便都找到;
步骤S2、字符识别预处理步骤;具体包括:
步骤S21、二值化处理步骤;
通过选取一个合理的阈值,把原图像像素点仅用两个灰度值表示图像的目标和背景颜色, 从而产生相应的二值图像。
若一幅灰度图像中的灰度级范围是0~255,设有一阈值为T(0≤T≤255),则:
其中,g(x,y)表示二值化后图像中各个像素点的值。若g(x,y)=255则说明该点是目标,反 之,则是背景;阈值T可根据实际情况设置;
步骤S22、倾斜纠正步骤;
找到图像的倾角后,应对车牌字符图像做几何变换;首先要确定校正变换前后图像的坐标 关系:
相应的由新图坐标反算回的原图坐标为:
其中(i,j)是原图像f(x,y)中的像素点的坐标;是对应像素点(i,j)经过旋转变 换后的图像的像素点的坐标;经变换后的坐标位置可能不是整数,这样,在旋转后的图像 中就会出现空穴,使用双线性插值法进行空穴进行填充;考虑车牌识别所涉及到10数字、31 个汉字和26个字母的特性,均为从上向下即可识别;空穴像素值的赋值,采用把空穴点作为 3*3矩阵的中心点,从上向下,从左到右依次识别读取范围内非空穴像素点中像素值为1和像 素点为0的个数,二者那个像素点的个数多,空穴赋值为对应的像素点的值;如果像素值为1 和像素点为0的个数相同,通过生成(0,1)之间的随机数,如果生成的随机数大于0.5,空 穴的像素点为1,小于等于0.5,空穴的像素点为0;在为空穴赋值的过程中,如果空穴在像 素点的边框部分,无法作为3*3矩阵的中心点,考虑到字符的边框,字符均在图像的中间的 特点,对这些空穴均赋值为0;
步骤S23、归一化处理步骤;
将待识别的字符进行大小统一,以便于进行字符特征提取,本文采用插值变化的归一化 方式;设f(x,y)为原图像,g(x0,y0)为归一化后的图像,设(x0,y0)为g中的任意一点, 对应与f(x,y)中的点(a,b),根据(a,b)的具体情况来表示g(x0,y0)中各像素点的值;归一化后图像的像素点和原图像中的像素点的映射公式为:
公式中的w是原图像的宽度,是归一化以后的宽度;d是原图像的高度,d是归一化以 后的高度;归一化的图像中的点(x0,y0)映射到原图像中的点(a,b)可能存在非整数的情况,当(a,b)不是整数是要进行像素内插变换;如果(a,b)是整数,表明(x0,y0)对 应在原图像的网络点上,不必进行内插变换,直接令(x0,y0)的灰度值等于(a,b)位置 处的灰度值:
g(x0,y0)=f(a,b)
如果(a,b)不是整数,则采取内插变换方法来决定g(x0,y0)的值;
邻近插值法中归一化的图像g(x0,y0)的灰度值是用f(x,y)邻接的四个网络点(i,j),(i+1, j),(i,j+1),(i+1,j+1)中几何距离最接近它的灰度值来近似。
步骤S3、车牌识别步骤,通过神经网络来识别字符,采用粒子群算法动态优化神经网络; 具体包括:
步骤S31、神经网络的结构分为输入层,隐含层和输出层;
作为人工神经网络的基本单元的神经元模型,它有三个基本要素:
(1)一组连接,对应于生物神经元的突触,连接强度由各连接上的权值表示,权值为正 表示激活,为负表示抑制;
(2)一个求和单元,用于求取各输入信号的加权和,即线性组合;
(3)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内;
此外还有一个阈值θk(或偏置bk=-θk);
以上工作用数学表示式表示为:
vk=netk=uk-θk;
式中,x1,x2,…,xn为输入信号,wk1,wk2,…,wkp为神经元k的权值,uk为线性 组合权值,θk为阈值,φ(·)为激活函数,yk为神经元k的实际输出;
激活函数φ(·)设为Sigmoid函数:
若把输入的维数增加一维,则可把阈值θk包括进去,则
此处增加了一个新的连接,其输入为x0=-1,权值为wk0=θk(或bk);由于的值是 (-1,1)范围内的值,当小与0的时候,输出值为0,当大于等于0的时候,输出值为1;
步骤S32、粒子群学习步骤;
通过粒子向自身经验Pi和群体经验Pg不断学习,实现在解空间内寻优;假设粒子群第i 个粒子在d维空间中的位置为xi=(xi1,xi2,…,xid),飞行速度为vi=(vi1,vi2,…,vid),其经 历过的最好位置为Pi=(pi1,pi2,…,pid),所有粒子经历过的最好位置为Pg=(pg1,pg2,…,pgd), 粒子按下式更新:
式中,vid表示第i个粒子第d维速度分量,t为迭代次数,惯性权重w为0.98,学习因子c1=c2=2,r1和r2为(0,1)之间均匀分布的随机数;
步骤S33、动态优化神经网络步骤;
首先考虑粒子的编码,由于输入为20*36的0和1的编码,则神经网络输入节点为720 个;考虑到车牌需要识别26个英文字母,涉及到31个汉字和10个阿拉伯数据,共51个字符,根据二进制,则需要6个输出节点;隐藏节点先根据经验公式在少两个和多10个之间,在学习阶段把隐藏神经元设置为最大 隐藏神经元76;
神经网络最大结构确认后,对隐藏神经元的阈值随机赋予0或1的值,为0表示该隐藏 神经元没有参与学习,为1表示隐藏神经元参与学习,再对神经网络的所有权值赋予(-1,1) 范围内的随机值;由于车牌识别的特殊性,输入值只为0和1两种值,对应的神经网络的阈 值只相当于多了一个权值,从而可以对神经网络阈值θk进行精简,从而简化网络结构;
粒子的目标函数:根据车牌识别的特点,共涉及到51个字符,依次对字母,阿拉伯数字 和31个文字设置为二进制递增的值:000000,000001,000010,…,110010,110011,输出 为二进制数,由于神经元的激活函数为输出为(-1,1)之间的随机值;但为 了更快的优化网络,避免陷入局部极值,在学习过程中,输入节点不用严格的转换成二进制 值;采用其中num为学习样本数,Yi为节点实际输出, Oi为节点期望输出;同时根据Moody准则,当网络训练精度达到一定程度时,网络有效参数 越少,网络泛化能力越优;从而在网络适应值相同的情况下,选取隐藏神经元为0多的为优 胜者;
所述动态优化神经网络单元用以实现前馈网络结构和权值同时优化的方法;设定全国各 地车牌5000作为学习样本,为保证各省汉字都能识别到,每省车牌图像不少于100个;随机 初始化40个粒子,每个粒子代表一个神经网络,对隐藏神经元和神经网络权值和阈值赋值后, 当隐藏神经元为0时,与之相连的权值不参与神经网络学习;再分别对40个粒子根据神经网 络学习算法获取每个粒子初始识别率,初始识别率也作为当前粒子的最初粒子最优值,再从 中选择识别率最高的作为当前最优粒子;算法共学习5000代,每代中比较每个粒子历史最优 值和所有粒子历史最优值,分别作为粒子自身最优值和全局历史最优值;
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神 经元数和全局历史最优值隐藏神经元数比较;当粒子的隐藏神经元数小于粒子自身最优值隐 藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的 随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最 优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识 为1的随机选择一个设置为0,下一代对应的权值不参与学习。同时为了避免粒子陷入局部极 值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以 增加粒子群算法的扰动,避免粒子陷入局部极值。
当算法学习10000代后或粒子的识别率低于千分之一的时候,把全局最优粒子,作为车 牌字符识别的网络,为加快计算,减少内存,神经网络隐藏神经元标识为0且与之相连的权 值全部清除,精简网络结构;
步骤S34、识别步骤;
根据上述图像预处理方法将图像进行预处理,获取最终的20*36的矩阵,采用学习后最 优神经网络进行识别,由于神经网络的激活函数是输出的为(-1,1)之间的 随机值,所以当激活函数输出的值小于0时赋值为0,大于等于0时赋值为1,根据最终转换 后的二进制字符,识别车牌字符。
综上所述,本发明提出的基于粒子群算法优化神经网络的车牌识别系统及方法,采用粒 子群算法优化神经网络,动态优化神经网络的权值和隐层神经元个数,提高车牌识别精度和 识别速度。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这 里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替 换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本 质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部 件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形 和改变。
Claims (10)
1.一种基于粒子群算法优化神经网络的车牌识别系统,其特征在于,所述车牌识别系统包括:车牌定位模块、字符识别预处理模块、车牌识别模块;
所述车牌定位模块用以获取图像中车牌的位置,对其进行定位;
所述车牌定位模块包括:车牌字符初步定位单元、真实车牌获取单元、车牌铆钉去除单元、字符轴线确定单元;
所述车牌字符初步定位单元,用以初步定位车牌字符;
首先对获取的图像进行灰度化,如下式所示:
Y=0.299*R+0.587*G+0.114*B
R、G、B分别为图像的红、绿、蓝的三色分类;
车牌的处理涉及到红色、白色、黄色和蓝色四种颜色,以蓝底白字车牌的基层进行初始设定,非蓝底白字车牌需要转换成蓝底白字的车牌;对于黄底黑字车牌经反色即变成蓝底白字,即各个颜色通道分量值为255减去当前颜色分量值;黑底白字的车牌,首先把黑色处理成为蓝色,即对应的蓝色通道分量值加255,将黑底白字的车牌处理成蓝底白字;
由于已经把车牌处理成蓝底白字,即(255,255,255)的像素点认为为字符笔画位置,由于车牌的尺寸是固定的,字符笔画位置固定后,再根据车牌区域的背景颜色和字符颜色所占像素点的比例也是固定的,从而即使拍摄角度有差异,车牌仍然会局限在一定的范围,从而对车牌进行了初定位;
所述真实车牌获取单元用以获取真实车牌;
一张图像中可能存在多块区域蓝底白色,需要获取到真实的车牌部分;由于车牌的大小和字符的大小是固定的,通过可比对蓝底白色模块的区域的大小和白色部分在蓝底中所占的比例,即可确定真实的车牌部分;
所述车牌铆钉去除单元用以去除车牌铆钉;
由于车牌安装时需要铆钉,而带有铆钉的字符高度大于字符平均高度的1.115倍,从而当发现字符的高度大于平均字符的高度的1.115倍时,就将字符的上坐标按下坐标的值+字符的平均高度,从而去除铆钉对字符的影响;
所述字符轴线确定单元用以确定车牌字符大致位置,利用车牌字符间的相对位置,根据两点直线公式确定车牌所在的轴线;如下式所示:
将字符矩形包络的坐标带进上述公式,求出车牌字符所在轴线,得出车牌的水平倾斜角度值,也就是字符偏离水平方向的角度,根据车牌偏离水平方向的角度得到车牌偏离竖直方向的角度,并保存该矩形左上角和右下角的坐标,从而获取车牌的范围;
利用己经找到的现有的字符的倾斜包络,初步得到倾斜字符的斜宽和斜高;根据现有字符的斜宽和斜高,推出车牌倾斜字符之间的倾斜间距;由于在寻找字符的过程中,并不一定能完全寻找到所有的车牌字符,但是已经找到了车牌字符中的一部分字符,并得到了它们的斜宽、斜高、和字符之间的间距,利用字符之间的位置关系,将一个完整的车牌模板套上去,当模板完整的将已经找到的字符嵌入进去,车牌上的所有字符便都找到;
所述字符识别预处理模块用以对图像进行二值化处理、倾斜校正处理、归一化处理,通过上述预处理获取字符的特征值,这个特征值作为神经网络的输入值;
所述字符识别预处理模块包括二值化单元、倾斜校正单元、归一化处理单元;
所述二值化单元用以通过选取一个合理的阈值,把原图像像素点仅用两个灰度值表示图像的目标和背景颜色,从而产生相应的二值图像;
若一幅灰度图像中的灰度级范围是0~255,设有一阈值为T(0≤T≤255),则:
其中,g(x,y)表示二值化后图像中各个像素点的值;若g(x,y)=255则说明该点是目标,反之,则是背景;阈值T可根据实际情况设置;
所述倾斜纠正单元用以找到图像的倾角后,应对车牌字符图像做几何变换;首先要确定校正变换前后图像的坐标关系:
相应的由新图坐标反算回的原图坐标为:
其中(i,j)是原图像f(x,y)中的像素点的坐标;(i,j)是对应像素点(i,j)经过旋转变换后的图像g(i,j)的像素点的坐标;经变换后的坐标位置可能不是整数,这样,在旋转后的图像中就会出现空穴,使用双线性插值法进行空穴进行填充;考虑车牌识别所涉及到10数字、31个汉字和26个字母的特性,均为从上向下即可识别;空穴像素值的赋值,采用把空穴点作为3*3矩阵的中心点,从上向下,从左到右依次识别读取范围内非空穴像素点中像素值为1和像素点为0的个数,二者那个像素点的个数多,空穴赋值为对应的像素点的值;如果像素值为1和像素点为0的个数相同,通过生成(0,1)之间的随机数,如果生成的随机数大于0.5,空穴的像素点为1,小于等于0.5,空穴的像素点为0;在为空穴赋值的过程中,如果空穴在像素点的边框部分,无法作为3*3矩阵的中心点,考虑到字符的边框,字符均在图像的中间的特点,对这些空穴均赋值为0;
所述归一化处理单元用以将待识别的字符进行大小统一,以便于进行字符特征提取,本文采用插值变化的归一化方式;设f(x,y)为原图像,g(x0,y0)为归一化后的图像,设(x0,y0)为g中的任意一点,对应与f(x,y)中的点(a,b),根据(a,b)的具体情况来表示g(x0,y0)中各像素点的值;归一化后图像的像素点和原图像中的像素点的映射公式为:
公式中的w是原图像的宽度,是归一化以后的宽度;d是原图像的高度,d是归一化以后的高度;归一化的图像中的点(x0,y0)映射到原图像中的点(a,b)可能存在非整数的情况,当(a,b)不是整数是要进行像素内插变换;如果(a,b)是整数,表明(x0,y0)对应在原图像的网络点上,不必进行内插变换,直接令(x0,y0)的灰度值等于(a,b)位置处的灰度值:
g(x0,y0)=f(a,b)
如果(a,b)不是整数,则采取内插变换方法来决定g(x0,y0)的值;
邻近插值法中归一化的图像g(x0,y0)的灰度值是用f(x,y)邻接的四个网络点(i,j),(i+1,j),(i,j+1),(i+1,j+1)中几何距离最接近它的灰度值来近似;
所述车牌识别模块用以通过神经网络来识别字符,采用粒子群算法动态优化神经网络;一个完整的粒子全算法优化神经网络实现字符识别的流程;
所述车牌识别模块包括粒子群学习单元、动态优化神经网络单元、识别单元;
神经网络的结构分为输入层,隐含层和输出层;
作为人工神经网络的基本单元的神经元模型,它有三个基本要素:
(1)一组连接,对应于生物神经元的突触,连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制;
(2)一个求和单元,用于求取各输入信号的加权和,即线性组合;
(3)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内;
此外还有一个阈值θk(或偏置bk=-θk);
以上工作用数学表示式表示为:
vk=netk=uk-θk;
式中,x1,x2,…,xn为输入信号,wk1,wk2,…,wkp为神经元k的权值,uk为线性组合权值,θk为阈值,φ(·)为激活函数,yk为神经元k的实际输出;
激活函数φ(·)设为Sigmoid函数:
若把输入的维数增加一维,则可把阈值θk包括进去,则
此处增加了一个新的连接,其输入为x0=-1,权值为wk0=θk(或bk);由于的值是(-1,1)范围内的值,当小与0的时候,输出值为0,当大于等于0的时候,输出值为1;
所述粒子群学习单元通过粒子向自身经验Pi和群体经验Pg不断学习,实现在解空间内寻优;假设粒子群第i个粒子在d维空间中的位置为xi=(xi1,xi2,…,xid),飞行速度为vi=(vi1,vi2,…,vid),其经历过的最好位置为Pi=(pi1,pi2,…,pid),所有粒子经历过的最好位置为Pg=(pg1,pg2,…,pgd),粒子按下式更新:
式中,vid表示第i个粒子第d维速度分量,t为迭代次数,惯性权重w为0.98,学习因子c1=c2=2,r1和r2为(0,1)之间均匀分布的随机数;
首先考虑粒子的编码,由于输入为20*36的0和1的编码,则神经网络输入节点为720个;考虑到车牌需要识别26个英文字母,涉及到31个汉字和10个阿拉伯数据,共51个字符,根据二进制,则需要6个输出节点;隐藏节点先根据经验公式在少两个和多10个之间,在学习阶段把隐藏神经元设置为最大隐藏神经元76;
神经网络最大结构确认后,对隐藏神经元的阈值随机赋予0或1的值,为0表示该隐藏神经元没有参与学习,为1表示隐藏神经元参与学习,再对神经网络的所有权值赋予(-1,1)范围内的随机值;由于车牌识别的特殊性,输入值只为0和1两种值,对应的神经网络的阈值只相当于多了一个权值,从而可以对神经网络阈值θk进行精简,从而简化网络结构;
粒子的目标函数:根据车牌识别的特点,共涉及到51个字符,依次对字母,阿拉伯数字和31个文字设置为二进制递增的值:000000,000001,000010,…,110010,110011,输出为二进制数,由于神经元的激活函数为输出为(-1,1)之间的随机值;但为了更快的优化网络,避免陷入局部极值,在学习过程中,输入节点不用严格的转换成二进制值;采用其中num为学习样本数,Yi为节点实际输出,Oi为节点期望输出;同时根据Moody准则,当网络训练精度达到一定程度时,网络有效参数越少,网络泛化能力越优;从而在网络适应值相同的情况下,选取隐藏神经元为0多的为优胜者;
所述动态优化神经网络单元用以实现前馈网络结构和权值同时优化的方法;设定全国各地车牌5000作为学习样本,为保证各省汉字都能识别到,每省车牌图像不少于100个;随机初始化40个粒子,每个粒子代表一个神经网络,对隐藏神经元和神经网络权值和阈值赋值后,当隐藏神经元为0时,与之相连的权值不参与神经网络学习;再分别对40个粒子根据神经网络学习算法获取每个粒子初始识别率,初始识别率也作为当前粒子的最初粒子最优值,再从中选择识别率最高的作为当前最优粒子;算法共学习5000代,每代中比较每个粒子历史最优值和所有粒子历史最优值,分别作为粒子自身最优值和全局历史最优值;
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数比较;当粒子的隐藏神经元数小于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为1的随机选择一个设置为0,下一代对应的权值不参与学习;同时为了避免粒子陷入局部极值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以增加粒子群算法的扰动,避免粒子陷入局部极值;
当算法学习10000代后或粒子的识别率低于千分之一的时候,把全局最优粒子,作为车牌字符识别的网络,为加快计算,减少内存,神经网络隐藏神经元标识为0且与之相连的权值全部清除,精简网络结构;
图像经过上述图像预处理模块预处理后得到最终的20*36的矩阵,所述识别单元采用学习后最优神经网络进行识别,由于神经网络的激活函数是输出的为(-1,1)之间的随机值,所以当激活函数输出的值小于0时赋值为0,大于等于0时赋值为1,根据最终转换后的二进制字符,识别车牌字符。
2.一种基于粒子群算法优化神经网络的车牌识别系统,其特征在于,所述车牌识别系统包括车牌定位模块、字符识别预处理模块、车牌识别模块;所述车牌定位模块、字符识别预处理模块、车牌识别模块依次连接;
所述车牌定位模块用以获取图像中车牌的位置,对其进行定位;
所述字符识别预处理模块用以对图像进行二值化处理、倾斜校正处理、归一化处理,通过上述预处理获取字符的特征值,这个特征值作为神经网络的输入值;
所述车牌识别模块用以通过神经网络来识别字符,采用粒子群算法动态优化神经网络;采用一个完整的粒子全算法优化神经网络实现字符识别的流程;
所述车牌识别模块包括动态优化神经网络单元,所述动态优化神经网络单元用以实现前馈网络结构和权值同时优化的方法;
将设定数量的车牌作为学习样本,随机初始化若干个粒子,每个粒子代表一个神经网络,对隐藏神经元和神经网络权值和阈值赋值后,当隐藏神经元为0时,与之相连的权值不参与神经网络学习;再分别对各个粒子根据神经网络学习算法获取每个粒子初始识别率,初始识别率也作为当前粒子的最初粒子最优值,再从中选择识别率最高的作为当前最优粒子;算法共学习若干代,每代中比较每个粒子历史最优值和所有粒子历史最优值,分别作为粒子自身最优值和全局历史最优值;
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数比较;当粒子的隐藏神经元数小于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为1的随机选择一个设置为0,下一代对应的权值不参与学习;同时为了避免粒子陷入局部极值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以增加粒子群算法的扰动,避免粒子陷入局部极值。
3.根据权利要求2所述的基于粒子群算法优化神经网络的车牌识别系统,其特征在于:
所述车牌定位模块包括:车牌字符初步定位单元、真实车牌获取单元、车牌铆钉去除单元、字符轴线确定单元;
所述车牌字符初步定位单元,用以初步定位车牌字符;
首先对获取的图像进行灰度化,如下式所示:
Y=0.299*R+0.587*G+0.114*B
R、G、B分别为图像的红、绿、蓝的三色分类;
车牌的处理涉及到红色、白色、黄色和蓝色四种颜色,由于多数车牌均为蓝底白字,本文以蓝底白字车牌的基层进行研究对接,非蓝底白字车牌需要转换成蓝底白字的车牌;对于黄底黑字车牌经反色就可以变成蓝底白字,即各个颜色通道分量值为255减去当前颜色分量值;黑底白字的车牌,首先把黑色处理成为蓝色,即对应的蓝色通道分量值加255,将黑底白字的车牌处理成蓝底白字;
由于已经把车牌处理成蓝底白字,即(255,255,255)的像素点认为为字符笔画位置,由于车牌的尺寸是固定的,字符笔画位置固定后,再根据车牌区域的背景颜色和字符颜色所占像素点的比例也是固定的,从而即使拍摄角度有差异,车牌仍然会局限在一定的范围,从而对车牌进行了初定位;
所述真实车牌获取单元用以获取真实车牌;
一张图像中,可能存在多块区域蓝底白色,需要获取到真实的车牌部分;由于车牌的大小和字符的大小是固定的,通过可比对蓝底白色模块的区域的大小和白色部分在蓝底中所占的比例,即可确定真实的车牌部分;
所述车牌铆钉去除单元用以去除车牌铆钉;
由于车牌安装时需要铆钉,而带有铆钉的字符高度大于字符平均高度的1.115倍,从而当发现字符的高度大于平均字符的高度的1.115倍时,就将字符的上坐标按下坐标的值+字符的平均高度,从而去除铆钉对字符的影响;
所述字符轴线确定单元用以确定车牌字符大致位置,利用车牌字符间的相对位置,根据两点直线公式确定车牌所在的轴线;如下式所示:
将字符矩形包络的坐标带进上述公式,求出车牌字符所在轴线,得出车牌的水平倾斜角度值,也就是字符偏离水平方向的角度,根据车牌偏离水平方向的角度得到车牌偏离竖直方向的角度,并保存该矩形左上角和右下角的坐标,从而获取车牌的范围;
利用己经找到的现有的字符的倾斜包络,初步得到倾斜字符的斜宽和斜高;根据现有字符的斜宽和斜高,推出车牌倾斜字符之间的倾斜间距;由于在寻找字符的过程中,并不一定能完全寻找到所有的车牌字符,但是已经找到了车牌字符中的一部分字符,并得到了它们的斜宽、斜高、和字符之间的间距,利用字符之间的位置关系,将一个完整的车牌模板套上去,当模板完整的将已经找到的字符嵌入进去,车牌上的所有字符便都找到。
4.根据权利要求2所述的基于粒子群算法优化神经网络的车牌识别系统,其特征在于:
所述字符识别预处理模块包括二值化单元、倾斜校正单元、归一化处理单元;
所述二值化单元用以通过选取一个合理的阈值,把原图像像素点仅用两个灰度值表示图像的目标和背景颜色,从而产生相应的二值图像;
若一幅灰度图像中的灰度级范围是0~255,设有一阈值为T(0≤T≤255),则:
其中,g(x,y)表示二值化后图像中各个像素点的值;若g(x,y)=255则说明该点是目标,反之,则是背景;阈值T可根据实际情况设置;
所述倾斜纠正单元用以找到图像的倾角后,应对车牌字符图像做几何变换;首先要确定校正变换前后图像的坐标关系:
相应的由新图坐标反算回的原图坐标为:
其中(i,j)是原图像f(x,y)中的像素点的坐标;(i,j)是对应像素点(i,j)经过旋转变换后的图像g(i,j)的像素点的坐标;经变换后的坐标位置可能不是整数,这样,在旋转后的图像中就会出现空穴,使用双线性插值法进行空穴进行填充;考虑车牌识别所涉及到10数字、31个汉字和26个字母的特性,均为从上向下即可识别;空穴像素值的赋值,采用把空穴点作为3*3矩阵的中心点,从上向下,从左到右依次识别读取范围内非空穴像素点中像素值为1和像素点为0的个数,二者那个像素点的个数多,空穴赋值为对应的像素点的值;如果像素值为1和像素点为0的个数相同,通过生成(0,1)之间的随机数,如果生成的随机数大于0.5,空穴的像素点为1,小于等于0.5,空穴的像素点为0;在为空穴赋值的过程中,如果空穴在像素点的边框部分,无法作为3*3矩阵的中心点,考虑到字符的边框,字符均在图像的中间的特点,对这些空穴均赋值为0;
所述归一化处理单元用以将待识别的字符进行大小统一,以便于进行字符特征提取,本文采用插值变化的归一化方式;设f(x,y)为原图像,g(x0,y0)为归一化后的图像,设(x0,y0)为g中的任意一点,对应与f(x,y)中的点(a,b),根据(a,b)的具体情况来表示g(x0,y0)中各像素点的值;归一化后图像的像素点和原图像中的像素点的映射公式为:
公式中的w是原图像的宽度,是归一化以后的宽度;d是原图像的高度,d是归一化以后的高度;归一化的图像中的点(x0,y0)映射到原图像中的点(a,b)可能存在非整数的情况,当(a,b)不是整数是要进行像素内插变换;如果(a,b)是整数,表明(x0,y0)对应在原图像的网络点上,不必进行内插变换,直接令(x0,y0)的灰度值等于(a,b)位置处的灰度值:
g(x0,y0)=f(a,b)
如果(a,b)不是整数,则采取内插变换方法来决定g(x0,y0)的值;
邻近插值法中归一化的图像g(x0,y0)的灰度值是用f(x,y)邻接的四个网络点(i,j),(i+1,j),(i,j+1),(i+1,j+1)中几何距离最接近它的灰度值来近似。
5.根据权利要求2所述的基于粒子群算法优化神经网络的车牌识别系统,其特征在于:
所述车牌识别模块包括粒子群学习单元、动态优化神经网络单元、识别单元;
神经网络的结构分为输入层,隐含层和输出层;
作为人工神经网络的基本单元的神经元模型,它有三个基本要素:
(1)一组连接,对应于生物神经元的突触,连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制;
(2)一个求和单元,用于求取各输入信号的加权和,即线性组合;
(3)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内;
此外还有一个阈值θk(或偏置bk=-θk);
以上工作用数学表示式表示为:
vk=netk=uk-θk;
式中,x1,x2,…,xn为输入信号,wk1,wk2,…,wkp为神经元k的权值,uk为线性组合权值,θk为阈值,φ(·)为激活函数,yk为神经元k的实际输出;
激活函数φ(·)设为Sigmoid函数:
若把输入的维数增加一维,则可把阈值θk包括进去,则
此处增加了一个新的连接,其输入为x0=-1,权值为wk0=θk(或bk);由于的值是(-1,1)范围内的值,当小与0的时候,输出值为0,当大于等于0的时候,输出值为1;
所述粒子群学习单元通过粒子向自身经验Pi和群体经验Pg不断学习,实现在解空间内寻优;假设粒子群第i个粒子在d维空间中的位置为xi=(xi1,xi2,…,xid),飞行速度为vi=(vi1,vi2,…,vid),其经历过的最好位置为Pi=(pi1,pi2,…,pid),所有粒子经历过的最好位置为Pg=(pg1,pg2,…,pgd),粒子按下式更新:
式中,vid表示第i个粒子第d维速度分量,t为迭代次数,惯性权重w为0.98,学习因子c1=c2=2,r1和r2为(0,1)之间均匀分布的随机数;
首先考虑粒子的编码,由于输入为20*36的0和1的编码,则神经网络输入节点为720个;考虑到车牌需要识别26个英文字母,涉及到31个汉字和10个阿拉伯数据,共51个字符,根据二进制,则需要6个输出节点;隐藏节点先根据经验公式在少两个和多10个之间,在学习阶段把隐藏神经元设置为最大隐藏神经元76;
神经网络最大结构确认后,对隐藏神经元的阈值随机赋予0或1的值,为0表示该隐藏神经元没有参与学习,为1表示隐藏神经元参与学习,再对神经网络的所有权值赋予(-1,1)范围内的随机值;由于车牌识别的特殊性,输入值只为0和1两种值,对应的神经网络的阈值只相当于多了一个权值,从而可以对神经网络阈值θk进行精简,从而简化网络结构;
粒子的目标函数:根据车牌识别的特点,共涉及到51个字符,依次对字母,阿拉伯数字和31个文字设置为二进制递增的值:000000,000001,000010,…,110010,110011,输出为二进制数,由于神经元的激活函数为输出为(-1,1)之间的随机值;但为了更快的优化网络,避免陷入局部极值,在学习过程中,输入节点不用严格的转换成二进制值;采用其中num为学习样本数,Yi为节点实际输出,Oi为节点期望输出;同时根据Moody准则,当网络训练精度达到一定程度时,网络有效参数越少,网络泛化能力越优;从而在网络适应值相同的情况下,选取隐藏神经元为0多的为优胜者;
所述动态优化神经网络单元用以实现前馈网络结构和权值同时优化的方法;设定全国各地车牌5000作为学习样本,为保证各省汉字都能识别到,每省车牌图像不少于100个;随机初始化40个粒子,每个粒子代表一个神经网络,对隐藏神经元和神经网络权值和阈值赋值后,当隐藏神经元为0时,与之相连的权值不参与神经网络学习;再分别对40个粒子根据神经网络学习算法获取每个粒子初始识别率,初始识别率也作为当前粒子的最初粒子最优值,再从中选择识别率最高的作为当前最优粒子;算法共学习5000代,每代中比较每个粒子历史最优值和所有粒子历史最优值,分别作为粒子自身最优值和全局历史最优值;
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数比较;当粒子的隐藏神经元数小于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为1的随机选择一个设置为0,下一代对应的权值不参与学习;同时为了避免粒子陷入局部极值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以增加粒子群算法的扰动,避免粒子陷入局部极值;
当算法学习10000代后或粒子的识别率低于千分之一的时候,把全局最优粒子,作为车牌字符识别的网络,为加快计算,减少内存,神经网络隐藏神经元标识为0且与之相连的权值全部清除,精简网络结构;
图像经过上述图像预处理模块预处理后得到最终的20*36的矩阵,所述识别单元采用学习后最优神经网络进行识别,由于神经网络的激活函数是输出的为(-1,1)之间的随机值,所以当激活函数输出的值小于0时赋值为0,大于等于0时赋值为1,根据最终转换后的二进制字符,识别车牌字符。
6.一种基于粒子群算法优化神经网络的车牌识别方法,其特征在于,所述车牌识别方法包括:
步骤S1、车牌定位步骤,获取图像中车牌的位置,对其进行定位;具体包括:
步骤S11、车牌字符初步定位步骤,初步定位车牌字符;
首先对获取的图像进行灰度化,如下式所示:
Y=0.299*R+0.587*G+0.114*B
R、G、B分别为图像的红、绿、蓝的三色分类;
车牌的处理涉及到红色、白色、黄色和蓝色四种颜色,由于多数车牌均为蓝底白字,本文以蓝底白字车牌的基层进行研究对接,非蓝底白字车牌需要转换成蓝底白字的车牌;对于黄底黑字车牌经反色就可以变成蓝底白字,即各个颜色通道分量值为255减去当前颜色分量值;黑底白字的车牌,首先把黑色处理成为蓝色,即对应的蓝色通道分量值加255,就可以将黑底白字的车牌处理成蓝底白字;
由于已经把车牌处理成蓝底白字,即(255,255,255)的像素点认为为字符笔画位置,由于车牌的尺寸是固定的,字符笔画位置固定后,再根据车牌区域的背景颜色和字符颜色所占像素点的比例也是固定的,从而即使拍摄角度有差异,车牌仍然会局限在一定的范围,从而对车牌进行了初定位;
步骤S12、真实车牌获取步骤,获取真实车牌部分;
一张图像中,可能存在多块区域蓝底白色,需要获取到真实的车牌部分;由于车牌的大小和字符的大小是固定的,通过可比对蓝底白色模块的区域的大小和白色部分在蓝底中所占的比例,即可确定真实的车牌部分;
步骤S13、车牌铆钉去除步骤,去除车牌铆钉;
由于车牌安装时需要铆钉,而带有铆钉的字符高度大于字符平均高度的1.115倍,从而当发现字符的高度大于平均字符的高度的1.115倍时,就将字符的上坐标按下坐标的值+字符的平均高度,从而去除铆钉对字符的影响;
步骤S14、字符轴线确定步骤,确定车牌字符大致位置,利用车牌字符间的相对位置,根据两点直线公式确定车牌所在的轴线;如下式所示:
将字符矩形包络的坐标带进上述公式,求出车牌字符所在轴线,得出车牌的水平倾斜角度值,也就是字符偏离水平方向的角度,根据车牌偏离水平方向的角度得到车牌偏离竖直方向的角度,并保存该矩形左上角和右下角的坐标,从而获取车牌的范围;
利用己经找到的现有的字符的倾斜包络,初步得到倾斜字符的斜宽和斜高;根据现有字符的斜宽和斜高,推出车牌倾斜字符之间的倾斜间距;由于在寻找字符的过程中,并不一定能完全寻找到所有的车牌字符,但是已经找到了车牌字符中的一部分字符,并得到了它们的斜宽、斜高、和字符之间的间距,利用字符之间的位置关系,将一个完整的车牌模板套上去,当模板完整的将已经找到的字符嵌入进去,车牌上的所有字符便都找到;
步骤S2、字符识别预处理步骤,对图像进行二值化处理、倾斜校正处理、归一化处理,通过上述预处理获取字符的特征值,这个特征值作为神经网络的输入值;具体包括:
步骤S21、二值化处理步骤;
通过选取一个合理的阈值,把原图像像素点仅用两个灰度值表示图像的目标和背景颜色,从而产生相应的二值图像;
若一幅灰度图像中的灰度级范围是0~255,设有一阈值为T(0≤T≤255),则:
其中,g(x,y)表示二值化后图像中各个像素点的值;若g(x,y)=255则说明该点是目标,反之,则是背景;阈值T可根据实际情况设置;
步骤S22、倾斜纠正步骤;
找到图像的倾角后,应对车牌字符图像做几何变换;首先要确定校正变换前后图像的坐标关系:
相应的由新图坐标反算回的原图坐标为:
其中(i,j)是原图像f(x,y)中的像素点的坐标;(i,j)是对应像素点(i,j)经过旋转变换后的图像g(i,j)的像素点的坐标;经变换后的坐标位置可能不是整数,这样,在旋转后的图像中就会出现空穴,使用双线性插值法进行空穴进行填充;考虑车牌识别所涉及到10数字、31个汉字和26个字母的特性,均为从上向下即可识别;空穴像素值的赋值,采用把空穴点作为3*3矩阵的中心点,从上向下,从左到右依次识别读取范围内非空穴像素点中像素值为1和像素点为0的个数,二者那个像素点的个数多,空穴赋值为对应的像素点的值;如果像素值为1和像素点为0的个数相同,通过生成(0,1)之间的随机数,如果生成的随机数大于0.5,空穴的像素点为1,小于等于0.5,空穴的像素点为0;在为空穴赋值的过程中,如果空穴在像素点的边框部分,无法作为3*3矩阵的中心点,考虑到字符的边框,字符均在图像的中间的特点,对这些空穴均赋值为0;
步骤S23、归一化处理步骤;
将待识别的字符进行大小统一,以便于进行字符特征提取,本文采用插值变化的归一化方式;设f(x,y)为原图像,g(x0,y0)为归一化后的图像,设(x0,y0)为g中的任意一点,对应与f(x,y)中的点(a,b),根据(a,b)的具体情况来表示g(x0,y0)中各像素点的值;归一化后图像的像素点和原图像中的像素点的映射公式为:
公式中的w是原图像的宽度,是归一化以后的宽度;d是原图像的高度,d是归一化以后的高度;归一化的图像中的点(x0,y0)映射到原图像中的点(a,b)可能存在非整数的情况,当(a,b)不是整数是要进行像素内插变换;如果(a,b)是整数,表明(x0,y0)对应在原图像的网络点上,不必进行内插变换,直接令(x0,y0)的灰度值等于(a,b)位置处的灰度值:
g(x0,y0)=f(a,b)
如果(a,b)不是整数,则采取内插变换方法来决定g(x0,y0)的值;
邻近插值法中归一化的图像g(x0,y0)的灰度值是用f(x,y)邻接的四个网络点(i,j),(i+1,j),(i,j+1),(i+1,j+1)中几何距离最接近它的灰度值来近似;
步骤S3、车牌识别步骤,通过神经网络来识别字符,采用粒子群算法动态优化神经网络;具体包括:
步骤S31、神经网络的结构分为输入层,隐含层和输出层;
作为人工神经网络的基本单元的神经元模型,它有三个基本要素:
(1)一组连接,对应于生物神经元的突触,连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制;
(2)一个求和单元,用于求取各输入信号的加权和,即线性组合;
(3)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内;
此外还有一个阈值θk(或偏置bk=-θk);
以上工作用数学表示式表示为:
vk=netk=uk-θk;
式中,x1,x2,…,xn为输入信号,wk1,wk2,…,wkp为神经元k的权值,uk为线性组合权值,θk为阈值,φ(·)为激活函数,yk为神经元k的实际输出;
激活函数φ(·)设为Sigmoid函数:
若把输入的维数增加一维,则可把阈值θk包括进去,则
此处增加了一个新的连接,其输入为x0=-1,权值为wk0=θk(或bk);由于的值是(-1,1)范围内的值,当小与0的时候,输出值为0,当大于等于0的时候,输出值为1;
步骤S32、粒子群学习步骤;
通过粒子向自身经验Pi和群体经验Pg不断学习,实现在解空间内寻优;假设粒子群第i个粒子在d维空间中的位置为xi=(xi1,xi2,…,xid),飞行速度为vi=(vi1,vi2,…,vid),其经历过的最好位置为Pi=(pi1,pi2,…,pid),所有粒子经历过的最好位置为Pg=(pg1,pg2,…,pgd),粒子按下式更新:
式中,vid表示第i个粒子第d维速度分量,t为迭代次数,惯性权重w为0.98,学习因子c1=c2=2,r1和r2为(0,1)之间均匀分布的随机数;
步骤S33、动态优化神经网络步骤;
首先考虑粒子的编码,由于输入为20*36的0和1的编码,则神经网络输入节点为720个;考虑到车牌需要识别26个英文字母,涉及到31个汉字和10个阿拉伯数据,共51个字符,根据二进制,则需要6个输出节点;隐藏节点先根据经验公式在少两个和多10个之间,在学习阶段把隐藏神经元设置为最大隐藏神经元76;
神经网络最大结构确认后,对隐藏神经元的阈值随机赋予0或1的值,为0表示该隐藏神经元没有参与学习,为1表示隐藏神经元参与学习,再对神经网络的所有权值赋予(-1,1)范围内的随机值;由于车牌识别的特殊性,输入值只为0和1两种值,对应的神经网络的阈值只相当于多了一个权值,从而可以对神经网络阈值θk进行精简,从而简化网络结构;
粒子的目标函数:根据车牌识别的特点,共涉及到51个字符,依次对字母,阿拉伯数字和31个文字设置为二进制递增的值:000000,000001,000010,…,110010,110011,输出为二进制数,由于神经元的激活函数为输出为(-1,1)之间的随机值;但为了更快的优化网络,避免陷入局部极值,在学习过程中,输入节点不用严格的转换成二进制值;采用其中num为学习样本数,Yi为节点实际输出,Oi为节点期望输出;同时根据Moody准则,当网络训练精度达到一定程度时,网络有效参数越少,网络泛化能力越优;从而在网络适应值相同的情况下,选取隐藏神经元为0多的为优胜者;
所述动态优化神经网络单元用以实现前馈网络结构和权值同时优化的方法;设定全国各地车牌5000作为学习样本,为保证各省汉字都能识别到,每省车牌图像不少于100个;随机初始化40个粒子,每个粒子代表一个神经网络,对隐藏神经元和神经网络权值和阈值赋值后,当隐藏神经元为0时,与之相连的权值不参与神经网络学习;再分别对40个粒子根据神经网络学习算法获取每个粒子初始识别率,初始识别率也作为当前粒子的最初粒子最优值,再从中选择识别率最高的作为当前最优粒子;算法共学习5000代,每代中比较每个粒子历史最优值和所有粒子历史最优值,分别作为粒子自身最优值和全局历史最优值;
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数比较;当粒子的隐藏神经元数小于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为1的随机选择一个设置为0,下一代对应的权值不参与学习;同时为了避免粒子陷入局部极值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以增加粒子群算法的扰动,避免粒子陷入局部极值;
当算法学习10000代后或粒子的识别率低于千分之一的时候,把全局最优粒子,作为车牌字符识别的网络,为加快计算,减少内存,神经网络隐藏神经元标识为0且与之相连的权值全部清除,精简网络结构;
步骤S34、识别步骤;
图像经过上述图像预处理步骤将图像预处理后得到最终的20*36的矩阵,采用学习后最优神经网络进行识别,由于神经网络的激活函数是输出的为(-1,1)之间的随机值,所以当激活函数输出的值小于0时赋值为0,大于等于0时赋值为1,根据最终转换后的二进制字符,识别车牌字符。
7.一种基于粒子群算法优化神经网络的车牌识别方法,其特征在于,所述方法包括:
步骤1、对车牌定位,找出车牌位置;
步骤2、通过图像预处理的方式,获取字符的特征值;这个特征值作为神经网络的输入值;
步骤3、通过粒子群算法优化神经网络,优化好的神经网络即可满足车牌识别的需要。
8.根据权利要求7所述的基于粒子群算法优化神经网络的车牌识别方法,其特征在于:
所述步骤S3包括:
步骤A1、初始化BP神经网络结构,从而设定粒子对应网络的输入神经元,隐藏神经元和输出层神经元的个数;
步骤A2、初始化BP神经网络的权值和阈值,从而设定粒子对应的位置;
步骤A3、粒子速度初始化为(-1~1)之间的随机值;
步骤A4、计算每个粒子的适应值;
步骤A5、每个粒子同自身最优粒子和全局最优粒子选取10%的权值随机乘以(0.8,1.2)范围内的随机值,比较刚生产的每个粒子的适应值、个体极值选取部分权值变异后的个体极值和之前的个体极值确认粒子最新的个体极值;根据粒子个体极值、全局最优粒子选取部分权值变异后的全局最优值和之前最优粒子进行确认更新全局最优粒子;
步骤A6、更新粒子的位置和速度;
步骤A7、判断是否得到最大迭代次数或预设精度,若是,结束,否则转向步骤A4。
9.根据权利要求7所述的基于粒子群算法优化神经网络的车牌识别方法,其特征在于:
所述步骤S1具体包括:
步骤S11、车牌字符初步定位步骤,初步定位车牌字符;
首先对获取的图像进行灰度化,如下式所示:
Y=0.299*R+0.587*G+0.114*B
R、G、B分别为图像的红、绿、蓝的三色分类;
车牌的处理涉及到红色、白色、黄色和蓝色四种颜色,由于多数车牌均为蓝底白字,本文以蓝底白字车牌的基层进行研究对接,非蓝底白字车牌需要转换成蓝底白字的车牌;对于黄底黑字车牌经反色就可以变成蓝底白字,即各个颜色通道分量值为255减去当前颜色分量值;黑底白字的车牌,首先把黑色处理成为蓝色,即对应的蓝色通道分量值加255,就可以将黑底白字的车牌处理成蓝底白字;
由于已经把车牌处理成蓝底白字,即(255,255,255)的像素点认为为字符笔画位置,由于车牌的尺寸是固定的,字符笔画位置固定后,再根据车牌区域的背景颜色和字符颜色所占像素点的比例也是固定的,从而即使拍摄角度有差异,车牌仍然会局限在一定的范围,从而对车牌进行了初定位;
步骤S12、真实车牌获取步骤,获取真实车牌部分;
一张图像中,可能存在多块区域蓝底白色,需要获取到真实的车牌部分;由于车牌的大小和字符的大小是固定的,通过可比对蓝底白色模块的区域的大小和白色部分在蓝底中所占的比例,即可确定真实的车牌部分;
步骤S13、车牌铆钉去除步骤,去除车牌铆钉;
由于车牌安装时需要铆钉,而带有铆钉的字符高度大于字符平均高度的1.115倍,从而当发现字符的高度大于平均字符的高度的1.115倍时,就将字符的上坐标按下坐标的值+字符的平均高度,从而去除铆钉对字符的影响;
步骤S14、字符轴线确定步骤,确定车牌字符大致位置,利用车牌字符间的相对位置,根据两点直线公式确定车牌所在的轴线;如下式所示:
将字符矩形包络的坐标带进上述公式,求出车牌字符所在轴线,得出车牌的水平倾斜角度值,也就是字符偏离水平方向的角度,根据车牌偏离水平方向的角度得到车牌偏离竖直方向的角度,并保存该矩形左上角和右下角的坐标,从而获取车牌的范围;
利用己经找到的现有的字符的倾斜包络,初步得到倾斜字符的斜宽和斜高;根据现有字符的斜宽和斜高,推出车牌倾斜字符之间的倾斜间距;由于在寻找字符的过程中,并不一定能完全寻找到所有的车牌字符,但是已经找到了车牌字符中的一部分字符,并得到了它们的斜宽、斜高、和字符之间的间距,利用字符之间的位置关系,将一个完整的车牌模板套上去,当模板完整的将已经找到的字符嵌入进去,车牌上的所有字符便都找到;
所述步骤S2具体包括:
步骤S21、二值化处理步骤;
通过选取一个合理的阈值,把原图像像素点仅用两个灰度值表示图像的目标和背景颜色,从而产生相应的二值图像;
若一幅灰度图像中的灰度级范围是0~255,设有一阈值为T(0≤T≤255),则:
其中,g(x,y)表示二值化后图像中各个像素点的值;若g(x,y)=255则说明该点是目标,反之,则是背景;阈值T可根据实际情况设置;
步骤S22、倾斜纠正步骤;
找到图像的倾角后,应对车牌字符图像做几何变换;首先要确定校正变换前后图像的坐标关系:
相应的由新图坐标反算回的原图坐标为:
其中(i,j)是原图像f(x,y)中的像素点的坐标;(i,j)是对应像素点(i,j)经过旋转变换后的图像g(i,j)的像素点的坐标;经变换后的坐标位置可能不是整数,这样,在旋转后的图像中就会出现空穴,使用双线性插值法进行空穴进行填充;考虑车牌识别所涉及到10数字、31个汉字和26个字母的特性,均为从上向下即可识别;空穴像素值的赋值,采用把空穴点作为3*3矩阵的中心点,从上向下,从左到右依次识别读取范围内非空穴像素点中像素值为1和像素点为0的个数,二者那个像素点的个数多,空穴赋值为对应的像素点的值;如果像素值为1和像素点为0的个数相同,通过生成(0,1)之间的随机数,如果生成的随机数大于0.5,空穴的像素点为1,小于等于0.5,空穴的像素点为0;在为空穴赋值的过程中,如果空穴在像素点的边框部分,无法作为3*3矩阵的中心点,考虑到字符的边框,字符均在图像的中间的特点,对这些空穴均赋值为0;
步骤S23、归一化处理步骤;
将待识别的字符进行大小统一,以便于进行字符特征提取,本文采用插值变化的归一化方式;设f(x,y)为原图像,g(x0,y0)为归一化后的图像,设(x0,y0)为g中的任意一点,对应与f(x,y)中的点(a,b),根据(a,b)的具体情况来表示g(x0,y0)中各像素点的值;归一化后图像的像素点和原图像中的像素点的映射公式为:
公式中的w是原图像的宽度,是归一化以后的宽度;d是原图像的高度,d是归一化以后的高度;归一化的图像中的点(x0,y0)映射到原图像中的点(a,b)可能存在非整数的情况,当(a,b)不是整数是要进行像素内插变换;如果(a,b)是整数,表明(x0,y0)对应在原图像的网络点上,不必进行内插变换,直接令(x0,y0)的灰度值等于(a,b)位置处的灰度值:
g(x0,y0)=f(a,b)
如果(a,b)不是整数,则采取内插变换方法来决定g(x0,y0)的值;
邻近插值法中归一化的图像g(x0,y0)的灰度值是用f(x,y)邻接的四个网络点(i,j),(i+1,j),(i,j+1),(i+1,j+1)中几何距离最接近它的灰度值来近似。
10.根据权利要求7所述的基于粒子群算法优化神经网络的车牌识别方法,其特征在于:
所述步骤S3具体包括:
步骤S31、神经网络的结构分为输入层,隐含层和输出层;
作为人工神经网络的基本单元的神经元模型,它有三个基本要素:
(1)一组连接,对应于生物神经元的突触,连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制;
(2)一个求和单元,用于求取各输入信号的加权和,即线性组合;
(3)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内;
此外还有一个阈值θk(或偏置bk=-θk);
以上工作用数学表示式表示为:
vk=netk=uk-θk;
式中,x1,x2,…,xn为输入信号,wk1,wk2,…,wkp为神经元k的权值,uk为线性组合权值,θk为阈值,φ(·)为激活函数,yk为神经元k的实际输出;
激活函数φ(·)设为Sigmoid函数:
若把输入的维数增加一维,则可把阈值θk包括进去,则
此处增加了一个新的连接,其输入为x0=-1,权值为wk0=θk(或bk);由于的值是(-1,1)范围内的值,当小与0的时候,输出值为0,当大于等于0的时候,输出值为1;
步骤S32、粒子群学习步骤;
通过粒子向自身经验Pi和群体经验Pg不断学习,实现在解空间内寻优;假设粒子群第i个粒子在d维空间中的位置为xi=(xi1,xi2,…,xid),飞行速度为vi=(vi1,vi2,…,vid),其经历过的最好位置为Pi=(pi1,pi2,…,pid),所有粒子经历过的最好位置为Pg=(pg1,pg2,…,pgd),粒子按下式更新:
式中,vid表示第i个粒子第d维速度分量,t为迭代次数,惯性权重w为0.98,学习因子c1=c2=2,r1和r2为(0,1)之间均匀分布的随机数;
步骤S33、动态优化神经网络步骤;
首先考虑粒子的编码,由于输入为20*36的0和1的编码,则神经网络输入节点为720个;考虑到车牌需要识别26个英文字母,涉及到31个汉字和10个阿拉伯数据,共51个字符,根据二进制,则需要6个输出节点;隐藏节点先根据经验公式在少两个和多10个之间,在学习阶段把隐藏神经元设置为最大隐藏神经元76;
神经网络最大结构确认后,对隐藏神经元的阈值随机赋予0或1的值,为0表示该隐藏神经元没有参与学习,为1表示隐藏神经元参与学习,再对神经网络的所有权值赋予(-1,1)范围内的随机值;由于车牌识别的特殊性,输入值只为0和1两种值,对应的神经网络的阈值只相当于多了一个权值,从而可以对神经网络阈值θk进行精简,从而简化网络结构;
粒子的目标函数:根据车牌识别的特点,共涉及到51个字符,依次对字母,阿拉伯数字和31个文字设置为二进制递增的值:000000,000001,000010,…,110010,110011,输出为二进制数,由于神经元的激活函数为输出为(-1,1)之间的随机值;但为了更快的优化网络,避免陷入局部极值,在学习过程中,输入节点不用严格的转换成二进制值;采用其中num为学习样本数,Yi为节点实际输出,Oi为节点期望输出;同时根据Moody准则,当网络训练精度达到一定程度时,网络有效参数越少,网络泛化能力越优;从而在网络适应值相同的情况下,选取隐藏神经元为0多的为优胜者;
所述动态优化神经网络单元用以实现前馈网络结构和权值同时优化的方法;设定全国各地车牌5000作为学习样本,为保证各省汉字都能识别到,每省车牌图像不少于100个;随机初始化40个粒子,每个粒子代表一个神经网络,对隐藏神经元和神经网络权值和阈值赋值后,当隐藏神经元为0时,与之相连的权值不参与神经网络学习;再分别对40个粒子根据神经网络学习算法获取每个粒子初始识别率,初始识别率也作为当前粒子的最初粒子最优值,再从中选择识别率最高的作为当前最优粒子;算法共学习5000代,每代中比较每个粒子历史最优值和所有粒子历史最优值,分别作为粒子自身最优值和全局历史最优值;
为实现神经网络结构的学习,每个粒子的每代的隐藏神经元数与粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数比较;当粒子的隐藏神经元数小于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为0的随机选择一个设置为1,下一代对应的权值参与学习;当粒子的隐藏神经元数大于粒子自身最优值隐藏神经元数和全局历史最优值隐藏神经元数之和的平均值时,把粒子隐藏神经元标识为1的随机选择一个设置为0,下一代对应的权值不参与学习;同时为了避免粒子陷入局部极值,每代对粒子的全局极值和个体极值选取随机选取10%的权值乘以(0.8,1.2)的随机值,以增加粒子群算法的扰动,避免粒子陷入局部极值;
当算法学习10000代后或粒子的识别率低于千分之一的时候,把全局最优粒子,作为车牌字符识别的网络,为加快计算,减少内存,神经网络隐藏神经元标识为0且与之相连的权值全部清除,精简网络结构;
步骤S34、识别步骤;
图像经过上述图像预处理步骤将图像预处理后得到最终的20*36的矩阵,采用学习后最优神经网络进行识别,由于神经网络的激活函数是输出的为(-1,1)之间的随机值,所以当激活函数输出的值小于0时赋值为0,大于等于0时赋值为1,根据最终转换后的二进制字符,识别车牌字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810605580.5A CN108805125B (zh) | 2018-06-13 | 2018-06-13 | 基于粒子群算法优化神经网络的车牌识别系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810605580.5A CN108805125B (zh) | 2018-06-13 | 2018-06-13 | 基于粒子群算法优化神经网络的车牌识别系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108805125A true CN108805125A (zh) | 2018-11-13 |
CN108805125B CN108805125B (zh) | 2022-08-19 |
Family
ID=64085630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810605580.5A Active CN108805125B (zh) | 2018-06-13 | 2018-06-13 | 基于粒子群算法优化神经网络的车牌识别系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108805125B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020650A (zh) * | 2019-03-26 | 2019-07-16 | 武汉大学 | 一种针对倾斜车牌的深度学习识别模型的构建方法、识别方法及装置 |
CN110232372A (zh) * | 2019-06-26 | 2019-09-13 | 电子科技大学成都学院 | 基于粒子群优化bp神经网络的步态识别方法 |
CN110458168A (zh) * | 2019-08-29 | 2019-11-15 | 上海眼控科技股份有限公司 | 车辆检测报告的处理方法、装置、计算机设备和存储介质 |
CN111860490A (zh) * | 2020-04-01 | 2020-10-30 | 邵阳学院 | 基于pso-wnn的场景图像中字符检测与提取方法 |
CN111931771A (zh) * | 2020-09-16 | 2020-11-13 | 深圳壹账通智能科技有限公司 | 票据内容识别方法、装置、介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408933A (zh) * | 2008-05-21 | 2009-04-15 | 浙江师范大学 | 基于粗网格特征提取和bp神经网络的车牌字符识别方法 |
US20130166351A1 (en) * | 2011-12-21 | 2013-06-27 | Ramprasad Arunachalam | System and Method for Generating a Marketing-Mix Solution |
CN105070053A (zh) * | 2015-07-21 | 2015-11-18 | 武汉理工大学 | 一种识别车辆违规运动模式的智能交通监控摄像机 |
-
2018
- 2018-06-13 CN CN201810605580.5A patent/CN108805125B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408933A (zh) * | 2008-05-21 | 2009-04-15 | 浙江师范大学 | 基于粗网格特征提取和bp神经网络的车牌字符识别方法 |
US20130166351A1 (en) * | 2011-12-21 | 2013-06-27 | Ramprasad Arunachalam | System and Method for Generating a Marketing-Mix Solution |
CN105070053A (zh) * | 2015-07-21 | 2015-11-18 | 武汉理工大学 | 一种识别车辆违规运动模式的智能交通监控摄像机 |
Non-Patent Citations (4)
Title |
---|
CHIRAG INDRAVADANBHAI PATEL: "Automatic Number Plate Recognition System (ANPR): A Survey", 《INTERNATIONAL JOURNAL OF COMPUTER APPLICATIONS》 * |
XUE YANGANG 等: "Monitor System Design for Machine Electric Spindle Based on MCGS", 《2010 WASE INTERNATIONAL CONFERENCE ON INFORMATION ENGINEERING》 * |
范春梅: "车牌识别算法的研究与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
黄继红: "基于改进PSO的BP网络的研究及应用", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020650A (zh) * | 2019-03-26 | 2019-07-16 | 武汉大学 | 一种针对倾斜车牌的深度学习识别模型的构建方法、识别方法及装置 |
CN110020650B (zh) * | 2019-03-26 | 2021-08-03 | 武汉大学 | 一种基于深度学习识别模型的倾斜车牌的识别方法及装置 |
CN110232372A (zh) * | 2019-06-26 | 2019-09-13 | 电子科技大学成都学院 | 基于粒子群优化bp神经网络的步态识别方法 |
CN110232372B (zh) * | 2019-06-26 | 2021-09-24 | 电子科技大学成都学院 | 基于粒子群优化bp神经网络的步态识别方法 |
CN110458168A (zh) * | 2019-08-29 | 2019-11-15 | 上海眼控科技股份有限公司 | 车辆检测报告的处理方法、装置、计算机设备和存储介质 |
CN111860490A (zh) * | 2020-04-01 | 2020-10-30 | 邵阳学院 | 基于pso-wnn的场景图像中字符检测与提取方法 |
CN111860490B (zh) * | 2020-04-01 | 2022-06-21 | 邵阳学院 | 基于pso-wnn的场景图像中字符检测与提取方法 |
CN111931771A (zh) * | 2020-09-16 | 2020-11-13 | 深圳壹账通智能科技有限公司 | 票据内容识别方法、装置、介质及电子设备 |
CN111931771B (zh) * | 2020-09-16 | 2021-01-01 | 深圳壹账通智能科技有限公司 | 票据内容识别方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108805125B (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108805125A (zh) | 基于粒子群算法优化神经网络的车牌识别系统及方法 | |
CN110163093B (zh) | 一种基于遗传算法的路牌识别对抗防御方法 | |
CN109766898A (zh) | 图像文字识别方法、装置、计算机设备及存储介质 | |
CN108154160B (zh) | 车牌颜色识别方法及系统 | |
CN107038416B (zh) | 一种基于二值图像改进型hog特征的行人检测方法 | |
CN109977865B (zh) | 一种基于人脸颜色空间和度量分析的欺诈检测方法 | |
CN108764358A (zh) | 一种太赫兹图像识别方法、装置、设备及可读存储介质 | |
CN101615244A (zh) | 手写板坯号自动识别方法及识别装置 | |
CN112614136B (zh) | 一种红外小目标实时实例分割方法及装置 | |
CN109145964B (zh) | 一种实现图像颜色聚类的方法和系统 | |
KR20190123372A (ko) | 계층적 협업 표현 기반 분류를 통한 강인한 얼굴인식 장치 및 그 방법 | |
CN111291696A (zh) | 一种基于卷积神经网络的手写东巴文识别方法 | |
CN110781882A (zh) | 一种基于yolo模型的车牌定位和识别方法 | |
CN109344856B (zh) | 一种基于多层判别式特征学习的脱机签名鉴别方法 | |
CN107563290A (zh) | 一种基于图像的行人检测方法及装置 | |
CN109002756A (zh) | 手写汉字图像识别方法、装置、计算机设备及存储介质 | |
CN110766016A (zh) | 一种基于概率神经网络的喷码字符识别方法 | |
CN113159045A (zh) | 一种结合图像预处理与卷积神经网络的验证码识别方法 | |
CN110188646B (zh) | 基于梯度方向直方图与局部二值模式融合的人耳识别方法 | |
CN116563410A (zh) | 基于两级生成对抗网络的电气设备电火花图像生成方法 | |
CN115908930A (zh) | 一种基于改进cfwpso-svm的前视声呐图像识别分类方法 | |
CN112084988B (zh) | 车道线实例聚类方法、装置、电子设备和存储介质 | |
CN114519788A (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN111368776A (zh) | 一种基于深度集成学习的高分辨率遥感图像分类方法 | |
CN109359656A (zh) | 一种基于粒子群算法优化神经网络的车牌识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |