本发明属于图像处理及模式识别技术领域,特别涉及一种基于深度卷积神经网络的车牌识别方法。
背景技术:
车牌识别技术是现代智能交通系统中的关键技术,在日常生活中得到了广泛的应用,当今深度学习已经成为了计算机模式识别领域研究的热门,利用深度学习算法能够提升车牌识别的识别率,对提升车牌识别系统的鲁棒性具有重要的意义。
现有技术中的车牌识别方法在恶劣天气下、晚上、角度过于倾斜的情况下对车牌的识别率依然不高,字符模糊影响到了特征提取,特殊字符识别容易混淆,如8与B、2与Z、0与D、5与S等,因此亟需提出一种当车牌字符处在恶劣环境下提升车牌字符的识别率和鲁棒性的车牌识别方法。
技术实现要素:
本发明为了克服上述现有技术的不足,提供了一种基于深度卷积神经网络的车牌识别方法,本发明能够提高车牌识别的准确率,而且当车牌字符处在恶劣环境下能够提升车牌字符的识别率和鲁棒性。
为实现上述目的,本发明采用了以下技术措施:
一种基于深度卷积神经网络的车牌识别方法,包括以下步骤:
S1、对车辆图像进行车牌检测得到车牌;
S2、将已检测的车牌进行图像分割得到车牌字符,将所述车牌字符作为训练样本;
S3、对所述训练样本进行随机采样得到训练样本块集,将所述训练样本块集输入至深度自编码器来实现训练深度自编码器;
S4、将经过训练的深度自编码器作为卷积神经网络的卷积核,提取所述训练样本块集的卷积特征,再对训练样本块集的卷积特征进行池化操作,得到所述训练样本块集的特征向量;
S5、对所述训练样本块集的特征向量进行归一化处理,将归一化处理的训练样本块集的特征向量送入SVM分类器来实现训练SVM分类器;
S6、对待识别车辆进行识别。
优选的,采用adaboost方法对车辆图像进行车牌检测得到车牌。
优选的,所述车牌检测具体包括以下步骤:
S11、对车辆图像进行预处理;
S12、再提取车牌的Haar特征,然后训练adaboost级联分类器;
S13、采用所述adaboost级联分类器进行车牌检测。
优选的,所述训练深度自编码器具体包括以下步骤:
S31、预训练:设计具备四个隐层的深度自编码器,四个隐层的隐藏节点分别为200、200、100、50;
S311、利用前向传导计算公式,求卷积神经网络中四个隐层以及输入层的激活值;
S312、计算卷积神经网络的输出层即为第ni层中每一个输出单元i的残差,其计算公式如下:
其中,J(W,b;x,y)为训练样本(x,y)的损失函数,hW,b(x)为恒等函数,为第i输入单元总的加权和,W为权重,b为偏置项,yi为第i个样本的纵坐标,为第i个单元ni的激活值,为第ni层第i输入单元总的加权和;
S313、利用第l+1层即为卷积神经网络中四个隐层、输入层以及输出层的残差计算第l层的残差,其计算公式如下:
其中,为第l层的权值,为第l+1的残差,sl+1为第l+1层的节点数,为第nl层第i输入单元总的加权和;
S314、计算J(W,b;x,y)的偏导数,其计算公式如下:
为第l层第i个单元与第j个单元的连接权值,为第l层第j个单元的激活值,为第l层第i个单元的偏置项;
S315、采用梯度下降法对参数W和b进行迭代更新,将卷积神经网络中四个隐层、输入层以及输出层采用正态分布将参数W和b初始化为接近0的数值;
S316、对于i=1到m,使用反向传播算法计算和再利用和计算出和
S317、更新权重参数:
为第l层J(W,b;x,y)对W的偏导数,为第l层J(W,b;x,y)对b的偏导数,α为学习速率,m为训练样本的个数,W(l)为第l层的权值,ΔW(l)为第l层J(W,b;x,y)对W的偏导的增量,λ为特征值,b(l)为第l层的偏置,Δb(l)为第l层J(W,b;x,y)对b偏导的增量;
S318、重复步骤S311~S317操作,求出损失函数J(W,b)的最小值,解出接近最优的卷积神经网络模型;
S32、微调:对所述深度自编码器的所有参数进行二次调整,具体步骤如下:
S321、使用前向传播计算层即为四个隐层、输入层以及输出层的激励响应;
S322、对输出层nl层,令
S323、对于l=nl-1,nl-2,nl-3,...,2,令σ(l)=((W(l))Tσ(l+1))·f'(z(l))
为代价函数的导数,z(l)为l层的加权和;
S324、计算所需要的偏导数:
S325、更新权重参数:
S326、重复步骤S321~S325操作,进一步优化卷积神经网络参数,得到最优化的卷积神经网络模型。
进一步的,所述训练SVM分类器具体包括以下步骤:
S51、将所述训练样本块集的特征向量进行归一化处理;
S52、根据选定的线性核函数分别计算每个SVM分类器中的特征向量的特征相关值;
S53、根据所述特征相关值计算协方差矩阵空间;
S54、对所述协方差矩阵空间进行HouseHolder变换;
S55、计算SVM分类器的特征系数;
S56、获取SVM分类器的模型参数。
进一步的,步骤S6的具体操作步骤包括:
S61、对待识别车辆图像进行车牌检测;
S62、将已检测的车牌进行图像分割得到测试车牌字符,将所述测试车牌字符作为测试样本;
S63、将所述测试样本块集输入至卷积神经网络;
S64、利用经过训练的深度自编码器提取所述测试样本块集的卷积特征,并对测试样本块集的卷积特征进行池化操作,得到特征向量;
S65、将所述特征向量送入经过训练的SVM分类器得到车牌识别结果。
更进一步的,所述预处理依次包括采用直方图处理、高斯滤波算法处理。
本发明的有益效果在于:
1)、本发明通过训练深度自编码器和SVM分类器来对待识别的车辆进行检测,与现有技术相比大大提高了车牌识别的准确率,而且当车牌字符处在恶劣环境下能够提升车牌字符的识别率和鲁棒性。
2)、所述训练深度自编码器具体包括预训练和微调两个阶段,在预训练的过程中设计具备四个隐层的深度自编码器,四个隐层的隐藏节点分别为200、200、100、50,设计特定的隐藏节点大大降低了本发明的训练时间,增强了车牌识别的准确率。
附图说明
图1为本发明的原理图;
图2为本发明的流程图;
图3为本发明的训练SVM分类器的流程图;
图4为本发明的对待识别车辆进行测试的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1、2所示,一种基于深度卷积神经网络的车牌识别方法,包括以下步骤:
S1、对车辆图像进行车牌检测得到车牌;
S2、将已检测的车牌进行图像分割得到车牌字符,将所述车牌字符作为训练样本;
S3、对所述训练样本进行随机采样得到训练样本块集,将所述训练样本块集输入至深度自编码器来实现训练深度自编码器;
S4、将经过训练的深度自编码器作为卷积神经网络的卷积核,提取所述训练样本块集的卷积特征,再对训练样本块集的卷积特征进行池化操作,得到所述训练样本块集的特征向量;
S5、对所述训练样本块集的特征向量进行归一化处理,将归一化处理的训练样本块集的特征向量送入SVM分类器来实现训练SVM分类器;
S6、对待识别车辆进行识别。
采用adaboost方法对车辆图像进行车牌检测得到车牌。
所述车牌检测具体包括以下步骤:
S11、对车辆图像进行预处理;
S12、再提取车牌的Haar特征,然后训练adaboost级联分类器;
S13、采用所述adaboost级联分类器进行车牌检测。
所述预处理依次包括采用直方图处理、高斯滤波算法处理。
对海量的车辆图像进行预处理,将车牌统一像素大小至28×18,选择车辆图像的正样本10000张,反样本15000张,对车辆图像进行直方图处理消除光照影响,采用高斯滤波算法处理消除噪声影响,提取车牌的Haar特征,训练adaboost级联分类器,将已检测的车牌进行图像分割得到车牌字符,将所述车牌字符作为训练样本,将车牌字符像素大小统一至19×38。
所述训练深度自编码器具体包括以下步骤:
S31、预训练:设计具备四个隐层的深度自编码器,四个隐层的隐藏节点分别为200、200、100、50;;设计特定的隐藏节点大大降低了本发明的训练时间,增强了车牌识别的准确率。
S311、利用前向传导计算公式,求卷积神经网络中四个隐层以及输入层的激活值;
S312、计算卷积神经网络的输出层即为第ni层中每一个输出单元i的残差,其计算公式如下:
其中,J(W,b;x,y)为训练样本(x,y)的损失函数,hW,b(x)为恒等函数,为第i输入单元总的加权和,W为权重,b为偏置项,yi为第i个样本的纵坐标,为第i个单元ni的激活值,为第ni层第i输入单元总的加权和;
S313、利用第l+1层即为卷积神经网络中四个隐层、输入层以及输出层的残差计算第l层的残差,其计算公式如下:
其中,为第l层的权值,为第l+1的残差,sl+1为第l+1层的节点数,为第nl层第i输入单元总的加权和;
S314、计算J(W,b;x,y)的偏导数,其计算公式如下:
为第l层第i个单元与第j个单元的连接权值,为第l层第j个单元的激活值,为第l层第i个单元的偏置项;
S315、采用梯度下降法对参数W和b进行迭代更新,将卷积神经网络中四个隐层、输入层以及输出层采用正态分布将参数W和b初始化为接近0的数值;
S316、对于i=1到m,使用反向传播算法计算和再利用和计算出和
S317、更新权重参数:
为第l层J(W,b;x,y)对W的偏导数,为第l层J(W,b;x,y)对b的偏导数,α为学习速率,m为训练样本的个数,W(l)为第l层的权值,ΔW(l)为第l层J(W,b;x,y)对W的偏导的增量,λ为特征值,b(l)为第l层的偏置,Δb(l)为第l层J(W,b;x,y)对b偏导的增量;
S318、重复步骤S311~S317操作,求出损失函数J(W,b)的最小值,解出接近最优的卷积神经网络模型;
S32、微调:对所述深度自编码器的所有参数进行二次调整,具体步骤如下:
S321、使用前向传播计算层即为四个隐层、输入层以及输出层的激励响应;
S322、对输出层nl层,令
S323、对于l=nl-1,nl-2,nl-3,...,2,令σ(l)=((W(l))Tσ(l+1))·f'(z(l))
为代价函数的导数,z(l)为l层的加权和;
S324、计算所需要的偏导数:
S325、更新权重参数:
S326、重复步骤S321~S325操作,进一步优化卷积神经网络参数,得到最优化的卷积神经网络模型。
如图3所示,所述训练SVM分类器具体包括以下步骤:
S51、将所述训练样本块集的特征向量进行归一化处理;
S52、根据选定的线性核函数分别计算每个SVM分类器中的特征向量的特征相关值;
S53、根据所述特征相关值计算协方差矩阵空间;
S54、对所述协方差矩阵空间进行HouseHolder变换;
S55、计算SVM分类器的特征系数;
S56、获取SVM分类器的模型参数。
如图1、4所示,对待识别车辆进行测试。
S61、对待识别车辆图像进行车牌检测;
S62、将已检测的车牌进行图像分割得到测试车牌字符,将所述测试车牌字符作为测试样本;
S63、将所述测试样本块集输入至卷积神经网络;
S64、利用经过训练的深度自编码器提取所述测试样本块集的卷积特征,并对测试样本块集的卷积特征进行池化操作,得到特征向量;
S65、将所述特征向量送入经过训练的SVM分类器得到车牌识别结果。
表一为在恶劣环境下,如下雨天或夜里通过不同车牌识别方法来识别车牌的识别率与时间效率的对比。
表一:
通过表一的测试结果可以看出,本发明所提出的基于深度卷积神经网络的车牌识别方法在识别率与性能上均优于现有技术的其他方法,而且时间效率也相对较短,其应用有效并合理,大大提高了车牌识别的准确率,而且当车牌字符处在恶劣环境下能够提升车牌字符的识别率和鲁棒性,本发明所提出的方法具有较强的实用价值。