基于MATLAB的卷积神经网络车牌识别系统

2023-05-16

车牌识别是基于车牌照片的车牌信息的识别工作,车牌识别技术对我们的实际生活至关重要,例如交通违规行为的增加,拦截非法车辆,在速度上能够进行快速识别能够很好地解决这些问题。获得的照片的质量是影响车牌识别准确性的最重要因素之一。卷积神经网络在图像识别领域具有良好的适应性,目前在计算机视觉任务中应用广泛,并在手写数字识别、人脸识别、车牌识别等图像领域的应用中取得了很好的效果。两只企鹅:1341703358,可以知道更多!
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407195812809.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDczNDMwNg==,size_16,color_FFFFFF,t_70#pic_center)
本文基于MATLAB卷积神经网络车牌识别主要包括卷积神经网络的模型的建立、数据预处理、模型训练、加载模型、车牌图片预处理、车牌定位、车牌裁剪、字符识别等操作。
卷积神经网络的结构设置如下,其输入层是车牌图像,其大小为32*32;C1卷积层,该层采用 6个 5*5的卷积核对图像进行卷积;C2层为卷积层,该层采用12个5*25特征图进行卷积并累加;全连接层,本文采用120个过滤器。

```handlebars
net.layers = {
    struct('type','i','iChannel',1,'iSizePic',[32 32])          
    struct('type','c','iChannel',6,'iSizeKer',5)                
    struct('type','s','iSample',2)                              
    struct('type','c','iChannel',12,'iSizeKer',5)               
    struct('type','s','iSample',2)                              
    struct('type','f','iChannel',120)                                                
    struct('type','f','iChannel',40)                               
              };
net.alpha = 4;                                                  
net.eta = 0.5;                                                  
net.batchsize = 12;                                             
net.epochs = 75;    
```
车牌预处理,部分代码如下,

```handlebars
img_gray = rgb2gray(img_rgb);    % RGB图像转灰度图像
% 均值滤波
A=fspecial('average',3);      
img_filt=filter2(A,img_gray)/255;      %用生成的高斯序列进行滤波
% 边缘提取
img_edge = edge(img_filt, 'sobel', 0.1, 'vertical');
% 检测背景蓝色区域
img_r=img_rgb(:,:,1);
img_g=img_rgb(:,:,2);
img_b=img_rgb(:,:,3);

index= img_r>200&img_g>200;
img_b(index)=0;
index2=img_r<20&img_g<20;
img_b(index2)=0;
[m,n]=size(img_b);
img_bw = im2bw(img_b,0.4);
[L,m] = bwlabel(img_bw,8);
status = regionprops(L,'BoundingBox');
for i=1:m
    rect(i,:)=getfield(status(i),'BoundingBox');
end
ratio=rect(:,3)./rect(:,4);
for i=1:m
    if(ratio(i)<=2.5)
        img_bw(find(L==i))=0;
    end
end
```
得到的结果如图,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407202519434.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDczNDMwNg==,size_16,color_FFFFFF,t_70#pic_center)
字符分割与识别,将候选的车牌经过CNN过滤,我们可以筛选出对我们有重要意义的车牌照片。由于边缘检查是白色边缘检查,通过过滤器,我们将图像一数值的方式体现出来,去除车牌边缘无用图像,得到的图像进行矩形分割,统一修改为32×32的大小。首先,关于所取得的牌照照片,我们使用过滤器的平衡度来增强图像的可读性。由于检查边缘是在白色边缘进行的,通过过滤设备对图像进行多次调整,寻找白色字体并获得最小的外部矩形。最后,在根据宽度、高度和像素比率进行分类后,将这个数字调整为32×32。识别结果如下,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407203251950.png#pic_center)
部分代码,
```handlebars
%分割字符
for i=1:7
    while((Px0<n)&&(count_y(1,Px0)<2))%求字符的左边界
    Px0=Px0+1;
    end
    Px1=Px0;
    while((Px1<n)&&(count_y(1,Px1)>=2||(Px1-Px0)<7))%求字符右边界
    Px1=Px1+1;
    end
    Z=bw_word(:,Px0:Px1);
    switch i
    case 1
    PIN0=Z;
    case 2
    PIN1=Z;
    case 3
    PIN2=Z;
    case 4
    PIN3=Z;
    case 5
    PIN4=Z;
    case 6
    PIN5=Z;
    otherwise
    PIN6=Z;
    end
    Px0=Px1;
end
```
通过卷积神经网络进行车牌数据集的预处理,得到训练的模型的准确率可以达到90%,由于本人能力有限,网络结构参数还存在改进的地方。整个系统界面如下所示,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407203530761.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDczNDMwNg==,size_16,color_FFFFFF,t_70#pic_center)
转载请备注原作者,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于MATLAB的卷积神经网络车牌识别系统 的相关文章

随机推荐

  • 软件体系整理5-6章

    第五章 软件体系结构风格 1 管道过滤器风格 特征 xff1a xff08 1 xff09 构件即过滤器 xff08 Filter xff09 xff0c 对输入流进行处理 转换 xff0c 处理后的结果在输出端流出 而且 xff0c 这种
  • Hive中的DDL操作

    参考文章 xff1a https www cnblogs com qingyunzong p 8723271 html 官方文档 xff1a https cwiki apache org confluence display Hive La
  • linux echo输出结果赋值给变量,shell变量n位补零

    name 61 96 echo 1 awk 39 printf 34 04d n 34 0 39 96 将 1 进行4位数补零 xff0c 后传递字符串给 name 将下面代码 xff0c 命名为 playVideo sh 的shell脚本
  • LCD1602和12864显示器-第1季第17部分-朱有鹏-专题视频课程

    LCD1602和12864显示器 第1季第17部分 3539人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第17个课程 xff0c 主要讲解LCD1602和LCD12864这两种单片机常用LCD显示器的显示原理 以及
  • CV小白实践--实现MNIST手写数字识别时遇到的问题

    1 RuntimeError size mismatch m1 800 x 4 m2 320 x 50 问题原因 xff1a 这个问题出现在神经网络最后一层卷积层与第一层全连接层之间 首先来看一下我实现的神经网络的结构 def init s
  • Hbase中Scan数据时的缓存优化以scan 过滤器的使用

    1 缓存优化 在hbase的java api 中 默认在scan 过程中scan next一次进行一次rpc请求 这导致scan的效率很低 设置scan的缓存优化很有必要 1 scan setBatch int 10 设置一次next 返回
  • 人脸识别之人脸检测(三)--Haar特征原理及实现

    本文主要由于OpenCV的haartraining程序 xff0c 对haar特征的补充及代码注释 原文 xff1a http www aiuxian com article p 2476165 html Haar特征的原理是什么 xff1
  • 网络基础(一)【解决mininet中xterm域名无法解析的问题】

    mininet是一个很好用的网络仿真实验平台 xff0c 基于网络命名空间技术的python封装 我是在linux虚拟机中安装了mininet环境 sudo mn mininet gt xterm h1 h2 启动一个xterm程序 xff
  • 多任务学习:Multi-Task Learning as Multi-Objective Optimization

    前言 最近在写一篇文章 xff0c 是一篇深度学习与安全相结合的文章 xff0c 模型的输出会交给两个损失函数 xff08 availability amp security xff09 进行损失计算 xff0c 进而反向传播 起初的想法是
  • 浅析Linux命令之alias

    转自 xff1a http man linuxde net alias 1 作用 用来设置指令的别名 我们可以使用该命令将一些较长的命令进行简化 使用alias时 xff0c 必须使用单引号将原来的命令引起来 xff0c 防止特殊字符导致错
  • Verilog实现串口通讯(UART)

    Verilog实现串口通讯 xff08 UART xff09 本代码参考了野火的相关教程 xff0c 实现了发送和接收回环 xff0c 同时可以通过串口数据控制LED灯的亮灭 xff0c 在电脑发送数据时要选择HEX发送模式 xff0c 发
  • Ubuntu 查看硬盘容量

    在服务器节点上使用硬盘较多 xff0c 被强制清盘多次 xff0c 清盘时需要查看文件夹占用情况 xff0c 并考虑是否重要来决定删除 因此必不可少一些查看硬盘占用的命令 1 du s h 43 路径 du s h 查看home目录下占用总
  • Matlab R2018a初始化问题

    前几天装的MATLAB2018 xff08 我装在C盘 xff0c 用的是在线安装 xff0c 自己下的License 破解了 xff09 xff0c 但是初始化问题一直没解决 xff0c 下面显示我遇到的问题 xff1a 等4 5分钟才就
  • vnc view安装与使用

    vnc view安装与使用 1 安装 vnc远程连接 xff0c 需要在服务器端安装vnc server 在客户端安装vnc viewer 这里我主要是研究如何在自己的电脑安装vnc viewer xff0c 来远程连接服务器 1 xff0
  • 温度传感器DS18B20-第2季第1部分-朱有鹏-专题视频课程

    温度传感器DS18B20 第2季第1部分 1700人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第2季第1个课程 xff0c 主要讲解单片机系统中常用的温度传感器DS18B20 本课程的目标是让大家进一步掌握时序的分析和编
  • Shell删除某个文件夹下指定字符开头的所有文件

    工作中遇到过日志文件夹里面存放的日志数量太多 xff0c 直接使用rm rf 删除提示参数太多 xff0c 其实是因为要删除的文件太多 xff0c 没法一次全部删除 xff0c 具体rm rf能够一次删除的数量是多少就不知道了 xff0c
  • Ubuntu 11.10 远程桌面Windows设置

    升级到Ubuntu 11 10时原来远程客户端tsclient不能用了 xff0c 那么怎么办 xff1f 两个途径可以 xff1a 1 Remmina远程桌面客户端 xff0c 如果在互联网下没有 xff0c 在新立得下安装即可 设定几乎
  • 模型的学习方式-迁移学习、多任务学习、小样本学习、元学习

    前言 无论是有监督学习还是无监督学习 半监督学习 无论算法是什么 xff0c 一直感觉机器学习 深度学习模型都是一种数据驱动的 换句话说 xff0c 足够且有质量的数据 xff0c 才能让模型学到一定的知识 xff0c 达到比较理想的效果
  • 【CVPR2019_论文汇总】(按方向划分,0401 更新中)

    转载链接 xff1a http bbs cvmart net topics 302 cvpr2019paper 作为计算机视觉领域三大顶会之一 xff0c CVPR2019 xff08 2019 6 16 6 19在美国洛杉矶举办 xff0
  • 基于MATLAB的卷积神经网络车牌识别系统

    车牌识别是基于车牌照片的车牌信息的识别工作 xff0c 车牌识别技术对我们的实际生活至关重要 xff0c 例如交通违规行为的增加 xff0c 拦截非法车辆 xff0c 在速度上能够进行快速识别能够很好地解决这些问题 获得的照片的质量是影响车