💥1 概述
车牌识别问题作为现代交通工程领域中研究的重点和热点问题之一,受到越来越多人们的关注。 本文通过对车牌识别系统中车牌定位、图像预处理、字符分割、字符识别四个关键环节的分析研究,设计了一个完整的车牌识别系统,并在MATLAB环境下进行了仿真模拟。 在车牌的定位部分,本文采用的是基于颜色特征和纹理特征的车牌定位方法。该方法首先将彩色图片从RGB空间转换到HIS空间,利用蓝底白字车牌中蓝色的色度H为左右,且饱和度S值较大的特点,实现了车牌的粗定位。然后再对粗定位后的图像利用Canny算子进行边缘检测,根据车牌部分图像黑白跳变频率较高的特征,最终实现了车牌的精确定位。240° 在图像的预处理部分,本文将得到的车牌定位图像进行了灰度化处理,并利用了Otsu法将灰度图像转换为二值图像。由于在实际中车牌的边框和上下铆钉会对车牌的识别工作形成干扰,因此在该部分中对车牌的边框和铆钉进行了去除。在字符的分割部分,本文依据现行的车牌设计原则,利用改进后的水平投影法,将车牌图像分割7个待识别字符,并对分割后的字符进行了归一化处理。实践证明该方法对解决汉字的不连通问题、字符的粘连问题、噪声的干扰问题以及车牌的前2个字符和后面5个字符之间存在的小圆点问题是行之有效的。 在字符的识别部分,采用改进后的BP神经网络,针对汉字、字母、字母或数字、数字四种不同的识别问题,设计了四种不同的分类器。利用13特征提取法进行特征提取,将其结果作为网络的输入,最后将不同的识别结果组合得到车牌号码。
📚2 运行结果
🎉3 参考文献
[1]康健新. 基于图像的车牌识别系统的设计和实现[D].吉林大学,2014.
👨💻4 Matlab代码
主函数部分代码:
%数据导入 data=importdata('pattern3.xlsx'); input=data(1:200,1:1711); output=data(201:234,1:1711); input_train=input(1:200,1:1711); %神经网络输入数据 label_train=output(1:34,1:1711); %神经网络输出对比标准 %BP神经网络设置 net=newff(minmax(input_train),label_train,18,{'logsig','purelin'}); net.trainparam.show = 50; % 显示训练结果(训练50次显示一次) net.trainParam.epochs=10000; net.trainParam.lr=0.01; net.trainParam.mc=0.9; net.trainParam.goal=0.01; net.trainParam.max_fail=6; net=init(net); net=train(net,input_train,label_train);%神经网络训练 save('shuzizifu3','net');%保存神经网络 %读入测试图像 image=imread('C:\Users\11422\Desktop\cpsb\测试\09.png'); image=imresize(image,[20 10]); image=reshape(image,200,1); input_test=image; y=sim(net,input_test);%y=sim(net,x);net表示已训练好的网络,x表示输入数据,y表示网络预测数据。表示用训练好的网络预测输出函数 [num,n]=max(y);