基于BP神经网络的车牌识别问题研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

个人主页:Matlab科研工作室

个人信条:格物致知。

更多Matlab仿真内容点击

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

车牌识别系统(License Plate Recognition, LPR)在智能交通系统中占有非常重要的地位。同时,在智能交通领域的应用中,有很多基于图像处理、模式识别及机器视觉技术的研究课题,而其中重点之一即是车牌的自动识别,其主要包括车牌定位、倾斜矫正、字符分割及字符识别等四个部分。目前,车牌定位算法有很多种,且大部分都基于一定的理论知识体系,主要为:图像彩色信息、纹理分析、边缘检测、数学形态学、遗传学及神经网络,等等。车牌倾斜矫正主要有以下几种方法:基于几何与纹理分析的方法、基于Hough直线检测的方法及基于边缘检测的方法等。车牌字符分割主要有以下几种方法:基于纹理和投影特征的方法、基于SVM(Support Vector Machine,支持向量机)的聚类方法、基于区域生长的分割算法及基于先验知识的马尔可夫模型分割算法等。车牌字符识别主要有以下几种方法:模式匹配法、特征分类法及基于神经网络的分类方法等。充分考虑到汽车牌照在实际拍摄中往往存在着噪声污染、畸变扭曲、字符断裂、光照不均、车牌尺寸颜色多样化等不良因素,并在参考前人研究并综合考虑各种算法的优缺点的基础上,本论文提出了一套改进型车牌识别算法。在车牌定位部分,利用车牌纹理特征、投影特征及形状特征(长宽比)等有效信息,并应用Sobel y方向边缘检测、一阶水平差分、曲线平滑、波峰波谷检测法及波峰区域合并法,快速准确地实现车牌定位。在倾斜矫正部分,利用车牌字符的纹理分布特征,避免了车牌边缘被污染或不存在的影响及Hough直线检测复杂运算。在字符分割部分,在充分利用车牌字符的纹理特征、面积分布特征及形状特征(长宽比)等先验知识的前提下,结合投影特征和连通域特征来实现字符分割。在字符识别部分,采用了基于BP(Back Propagation,反向传播)神经网络的字符识别方法。同时,整个算法处理过程还应用到灰度变换、Otsu(Otsu,最大类间方差法)自适应阈值二值化、图像滤波、边缘检测等。本文首先介绍了车牌识别技术的研究背景及研究现状,并阐述了本文的主要研究内容、创新点及论文组织结构。其次介绍了一些本文应用到的相关知识及系统理论,包括数字图像处理的基础知识及其在相关方面的应用,数学形态学的基础知识及其在图像处理中的应用,BP神经网络理论基础及其在模式识别方面的应用。然后从车牌定位、车牌字符分割及车牌字符识别三个部分对本论文车牌识别算法进行了详细分析与介绍。最后从系统级上介绍了车牌识别技术的实现,对本论文算法进行仿真,并对结果进行分析、总结。实验证明,本论文中所述的改进型的车牌识别算法准确、有效、可靠。

基于BP神经网络的车牌识别问题研究附Matlab代码_第1张图片

基于BP神经网络的车牌识别问题研究附Matlab代码_第2张图片

基于BP神经网络的车牌识别问题研究附Matlab代码_第3张图片

基于BP神经网络的车牌识别问题研究附Matlab代码_第4张图片

基于BP神经网络的车牌识别问题研究附Matlab代码_第5张图片

⛄ 部分代码

function resultc=recchar(Ipchar, param_char)

% 此函数是对字符的二值图像进行识别

% --------------------------------------------------------

% 参数  [resultc, Ic]=recchar(Ichar);

% @输入 Ichar     二值化的数字或者字母图像

% @输出 resultc   识别结果

%       Ic        识别的原图

% --------------------------------------------------------

%                          

% /

image=Ipchar; % 识别图片

% 预处理

image=imresize(image,param_char.img_size);

image=double(reshape(image, param_char.img_size(1)*param_char.img_size(2), 1)'); % 行拉直,下一步PCA(主成分分析)

image=bsxfun(@times,image,1./sum(image,2));% 归一化,全部值映射到0-1

image = image*param_char.coef(:,1:param_char.dim);% 降维

image=bsxfun(@rdivide, image, sqrt(param_char.latent(1:param_char.dim)+1e-6));% 白化

imgage = image'; % 最终要使用列向量

% 仿真

val=sim(param_char.net, imgage);

[~,temp] = max(val);

resultc=param_char.cate(temp);

end

⛄ 运行结果

基于BP神经网络的车牌识别问题研究附Matlab代码_第6张图片

⛄ 参考文献

​[1]刘岩. 基于MATLAB与神经网络的汽车牌照识别系统[J]. 时代农机, 2012, 39(007):52-53.

❤️ 关注我领取海量matlab电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除

你可能感兴趣的:(图像处理,神经网络,matlab)