发布时间:2023-04-20 文章分类:电脑百科 投稿人:王小丽 字号: 默认 | | 超大 打印

目录

前言

课题背景和意义

实现技术思路

一、车牌识别系统总体方案设计

二、车牌识别系统硬件设计

三、车牌识别系统软件设计

四、 实验结果与分析

部分源代码

实现效果图样例

最后


前言

    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长毕设专题,本次分享的课题是

🎯基于 MATLAB 的车牌识别系统设计

课题背景和意义

 车牌识别系统(Vehicle License Plate Recogni
TIon,VLPR) 是
计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别在高速公路车辆管理中得到广泛应用,
电子收费(ETC)系统中,也是结合DSRC技术识别车辆身份的主要手段。车牌识别系统(Vehicle License Plate Recogni
TIon,VLPR) 是
计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别在高速公路车辆管理中得到广泛应用,
电子收费(ETC)系统中,也是结合DSRC技术识别车辆身份的主要手段。
针对车牌识别遇到的问题,提高车牌识别系统的识别率,目前采用的方法先对视频流中车辆的整体情况做出判断,随后对车牌进行精确定位,通过算法对车牌进行字符和数字识别。而我国汉字相对较复杂,无疑给准确识别字符带来了巨大的挑战,所以国内车牌识别系统成熟的产品不多,亟需广大科研工作者,企业、高校相关专家进一步研究,优化出更高效的车牌识别算法。模式识别是人工智能领域的研究重点与难点,然而智能交通领是整个智能行业十分关键的组成部分,因此模式识别就特别关键,对车牌号进行检测、分析与识别是模式识别领域构建智能交通系统重要内容之一。

实现技术思路

一、车牌识别系统总体方案设计

车牌识别系统的设计用到多种新型的技术,例如计算机技术、图像处理技术等,所以能够实时准确地识别出想要识别的字母、数字、汉字。建立相应的物理模型,通过建立的模型识别出符合车辆的特征,常用的特征就是车辆的车牌。因此只要能够从动态视频中寻找到我们需要的某一帧图像,就能够实现对该图片中存在车辆的信息进行确定。最后自动将车牌字符分割出来,并对字符进行识别。将车牌识别技术应用在现实生活中,可以维护好交通治安,缓解交通堵塞,对生活十分便利。
本系统的设计流程图。

毕业设计-基于 MATLAB 的车牌识别系统设计

二、车牌识别系统硬件设计

车牌识别摄像机
通过摄像机来对车辆的车牌图像进行获取,而这台摄像机配置了大规模的集成电路,其具有制作简单、重量轻、对能量需求小,所以应用较广泛。通过将其布置在车道的两侧,那么当车辆从此处通过时,摄像机就能够获取到其车牌的信息。装置可以采集车牌图像,对获取到的模拟信号进行离散化从而对其进行存储。当车辆通过时,采集卡就会采集到图像信息,并且以文件的类型保存下来。同时,我们还需要通过对识别系统所发出的识别结果进行接收的设备,并且实现和摄像装置的配合,实现对多个拍摄设备的同时管控。
毕业设计-基于 MATLAB 的车牌识别系统设计

三、车牌识别系统软件设计

车牌图像预处理

由于摄像头抓拍到的图像会受到光照、车辆行驶速 度、道路行驶车辆稠密度、车辆新旧程度、摄像头是否抖 动、摄像头拍摄的角度以及拍摄的距离等因素的影响,直 接获取到的车牌图像可能存在着一些噪点,导致无法直接 从其中提取到车牌的真实信息,因此需要通过图像预处 理,从而提升采集到的信息的质量。通常对图像进行滤波 去噪是改善图像质量的一种有效途径。

1)二值图像、灰度图像、彩色图像

①二值图像(Binary Image):图像中每个像素的灰度值仅可取0或1,即不是取黑,就是取白,二值图像可理解为黑白图像

②灰度图像(Gray Scale Image):图像中每个像素可以由0-255的灰度值表示,具体表现为从全黑到全白中间有255个介于中间的灰色值可以取

③彩色图像(Color Image):每幅图像是由三幅灰度图像组合而成,依次表示红绿蓝三通道的灰度值,即我们熟知的RGB,此时彩色图像要视为三维的[height,width, 3]

下面用一张图来感受一下灰度图与彩色图像之间的联系与差别

毕业设计-基于 MATLAB 的车牌识别系统设计

 边缘检测

摄像头拍摄出来的图像是彩色图像,然而在实际的边 缘过程中,其检测对象都是灰度图像,因此需要对采集到 的图像进行灰度转换。总的来说,就是将彩色图像的三个通道信号转变为单通道信号,因此灰度图像的每一个像素点只有一个像素值。边缘检测有多种算法,例如 canny 算法、sobel 算法。

1)一阶导数模板可以检测边缘,主要的边缘模型有:台阶边缘模型、脉冲或者线模型、斜坡边缘模型。

2)梯度偏导数的滤波器模板:通常称为梯度算子、差分算子、边缘算子或边缘检测子。

3)一阶梯度算子:[-1,0,+1];[-1,+1];[+1,-2,+1];

5)二阶梯度算子

(1)Robert算子(罗伯特交叉梯度算子);适用范围:对角线方向的边缘;

毕业设计-基于 MATLAB 的车牌识别系统设计

 (2)Prewitt算子:适用范围:垂直方向、水平方向的边缘。

毕业设计-基于 MATLAB 的车牌识别系统设计

 (3)Sobel算子:

毕业设计-基于 MATLAB 的车牌识别系统设计

 (4)拉普拉斯算子:

毕业设计-基于 MATLAB 的车牌识别系统设计

(5)LOG算子(Laplacian of Gaussian):

毕业设计-基于 MATLAB 的车牌识别系统设计

 形态学处理

图像形态学处理也是图像处理中应用非常广泛的技术,这种技术方法主要从图像中提取对识别结果的有意义的图像分量。图像形态学处理方法有腐蚀、膨胀、开和闭。

车牌字符识别
字符识别方法主要有基于模板匹配算法和基于人工神经网络算法。基于模板匹配算法是首先将分割后的字符二值化,并将其尺寸缩放为字符数据库中模板的大小,然后与所有模板进行匹配,最后选取最佳匹配作为结果。

四、 实验结果与分析

软件环境
为验证本文方法的有效性,对不同车牌图像做 了相关实验,在实验中用到微型计算机一台,实验的编译 环境为 MATLAB R2014a,操作系统为 Windows7 64 位操 作系统。
实验结果 在本论文中选取了多个车牌做了实验,在本节中选取 一组车牌图像做实验结果展示。输入的车牌图像如图所 示:

毕业设计-基于 MATLAB 的车牌识别系统设计

将原始图像先转换成灰度图像,灰度图像如图所示

毕业设计-基于 MATLAB 的车牌识别系统设计

 对车牌图像进行边缘检测,检测结果为图所示。

毕业设计-基于 MATLAB 的车牌识别系统设计

 选取结构元素为 3*1 的向量,经过腐蚀、膨胀形态学处理之后的车牌图像如图所示

毕业设计-基于 MATLAB 的车牌识别系统设计
毕业设计-基于 MATLAB 的车牌识别系统设计

 最后经过中值滤波后的图像如图所示。

毕业设计-基于 MATLAB 的车牌识别系统设计

在确定车牌字符位置时,由于通过处理后图像的行方向像素点灰度值累计和或者列方向像素点灰度值累计和是不一样的,所以在车牌字符处像素累计必然多,由此确定车牌字符的位置。

毕业设计-基于 MATLAB 的车牌识别系统设计

 随后车牌定位剪切出来的彩色车牌图像如图

毕业设计-基于 MATLAB 的车牌识别系统设计

确定车牌位置后下一步的任务就是将字符区域与车牌背景分离开。然后对图像中每个字符进行分割,在分割时经过多次试验,选出合适的阈值。二值化的图像如图

毕业设计-基于 MATLAB 的车牌识别系统设计

 构造训练样本,用训练好的神经网络识别车牌字符。最后识别结果以标题形式显示在车牌原始图像上。识别结果如图:

毕业设计-基于 MATLAB 的车牌识别系统设计

部分源代码

k=input( 'Enter the file name:,"s');%输入车牌照片
pic=imread(k);
imshow(pic);
pic_gray=rgb2gray(pic);
pic gray=medfilt2(pic_gray[3,3]);%对灰度图像进行中值滤波
Image=im2bw(pic gray,0.2);
BW=edge(pic gray, 'sobel’);%找出图像的边缘
imx,imy]=size(BW);%计算图像大小
msk=[00000
01110;
01110;
01110;
0 0 0 0 0;];
B0=conv2(double(BW),double(msk));%对边缘区域进行加强
se=ones(2,80);
B1=imdilate(B0,se);
%figure;%imshow(B1);
B2=imerode(B1,se);
se=ones(20,2);
B3=imdilate(B2,se);
B4=imerode(B3,se);
se=ones(50,2);
end
for k=1:length(B)%循环遍历每个连通域的边界
boundary=B{k};%获取一条边界上的所有点
delta sq=diff(boundary).^2;
perimeter=sum(sqrt(sum(delta sq,2)));%计算边界周长
area=stats(k).Area;%获取边界所围面积
metric=27*area/perimeter^2:%计算匹配度
metric string=sprintf('%2.2f',metric);%要显示的匹配度字串
end

实现效果图样例

车牌识别系统的应用:

毕业设计-基于 MATLAB 的车牌识别系统设计

 我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后