首先介绍一下我在开发过程中用到的技术。

(1)利用车牌颜色的对车牌进行定位。首先我们要设定蓝色的数值范围,在图片中不同的蓝色有不同的数值,只有设定了范围才可以对原图中的蓝色车牌进行定位。

(2)擦除多余的蓝色更加进准的定位车牌的位置。该方法主要目的是排除在以蓝色定位时由于有其他的蓝色部分会干扰车牌的地位,未能擦除多余的颜色可能导致车牌位置不准确。

(3)车牌分割算法。要划分定位车牌,然后将字符分成划分的车牌。在准备随后的车牌识别时,主要用于算法的车牌的定位被平均划分。

(4)模版匹配算法。版匹配算法主要是利用已经分割和的字符模版与从原图中分割出的字符图片进行二维数组的相减取绝对值最小的那个值就是我们要找的模版,然后取模版中文件的名字提取字符。

(5)卷积神经网络识别算法。算法的主题思想是利用分割好大量字符文件进行训练生成相应的神经网络。然后利用神经网对原图中的字符文件进行卷积操作,找到对用的特征,根据特征找到对应的标签即对应的字符,然后提取标签完成本次的识别。

我在这里主要是利用了车牌的颜色对车牌进行定位。

在本系统中主要是是对私家的小型汽车的特点进行有效的识别。车牌的定位操作主要是依据车牌的颜色进行有效的定位。但是,由于蓝色空间中两点之间可能不是线性的,因此在设置蓝色区域时可能无法找到牌照。这也是对车牌定位失败的原因。还有就是在员图片中可能会出现蓝色背景这样车牌的识别率也会下降,不能有效分割出车牌区域。在系统中编写了自适应调节方案。主要是对定位区域选定时多次筛选。根据汽车牌照的长宽比和蓝色,对分割区域进行多次比较。从而找到车牌区域。

(1)对于车牌倾斜角度校正

由于在拍摄时会出现车牌倾斜的情况,本次设计总还设计了调整图片中定位区域的倾斜角度问题。这里,rando算法是Matlab中用于计算倾斜角度。这样就可以将原图中的定位区域调整到在水平方向一致的图片。这有利于车牌的划分和以后对图像的识别。

(2)字符分割算法

该方法利用先前计算的牌照位置区域的分色图像,然后X方向和Y方向投影灰度分割图像的白色部分。计算X方向垂直峰值,并使用该算法计算汽车车牌字符高宽比。一般来说不正确的阈值,会使字符切割不准确,对于这种情况,我们可以通过车牌格式来表征,然后执行剪切字符宽度的统计分析数据为引导分割以处理出错分割的字符。针对这种问题对分割出来的字体的宽度应该与整个车牌的宽度对比,错误操作字符进行合并。对于智能识别系统,应该最小化系统以过分依赖阈值。

(3)字体识别方法

这里使用了当今比较成熟的识别算法,首先是利用已经分割好的字符图片,然后利用模版匹配的算法,首先与模版库中的模版进行相减得到一个数值,这时开始对比数值最小的那个模版,然后提取模版文件的文件名字,文件名字就是我们要的对应识别字符。在系统中使用了卷积神经网络,这里识别前期的准备耗时长但是识别是非常方便的,它是利用训练好的神经网络进行识别,这里就只做简单的介绍,下文会有详情介绍。

语音读取车牌:语音读车牌就是利用已经识别号的车牌字符,对字符进行语音报出车牌信息的方法,这里利用了已经录好的语音,在该算法中寻找所需的音频文件,然后一个一个的报出对应的语音。

这里详细讲解一下车牌的分割实现:

在车牌识别过程中,字符分割需要定位前面的牌照并准备车牌字符识别。它在前牌照定位的前提下划分车牌字符,然后使用拆分结果识别车牌字符。

汽车牌照字符的分割通常使用投影方法。字符在投影方向上的投影必须接近字符之间或字符之间的间隙。并且这个位置应该符合汽车车牌的字符格式,大小限制条件。使用垂直投影法对自然环境中汽车图像中车牌字符的分割效果很好。

详细算法如下:

(1)为了确定分割后图像中字符的高度:先经过自下而上对图像进行的扫描,发现首个黑素像素,这是系统就会记下行号,重复上面的步骤。可以标记字符的近似高度范围,直到找到两个行号。

(2)为了确定每个车牌字符在左边位置和右终止位置:第一步中获得的高度范围内进行扫描,遇到第一个黑色像素时,方向是从左到右逐列。此时,它被认为是车牌字符分割的左起始位,然后继续向左扫描直到列中没有黑色像素。这时就可以认为是这个字符的最右边位置,紧接着准备开始进行下一个字符的分割。依据上述方法重复扫描,这时在扫描六次就可以找到,七个字符分割位置然后就可以进行分割。

(3)现在知道每个字符的宽度范围,然后按照上面的方法,自下而上和自上而下分别扫描,得到每个字符的确切高度范围。

接下来开始确定车牌字符左右边界,通过垂直扫描过程,因为数字和字母具有连通性,在分割数字和字母相对来说容易。然后,再次开始垂直扫描处理,并计算黑色像素的数量,因为在两个字符之间没有黑色像素,因此它可以用作字符分割的边界。

车牌字符分割通常使用垂直投影。此时,还需要去除周围的空白,因为字符在垂直方向上的投影必须接近空间之间或字符内空间之间的局部最小值。而且这个位置必须符合车牌的字符格式,尺寸限制和其他一些条件。垂直投影法在自然条件下对汽车图像中的字符分割具有良好的效果。

然后讲解一下我的车牌识别思想,我识别方法我这里利用了模版匹配方法和卷积神经网路。

汽车牌照字符匹配识别的是要对比模版库中的制作好的字符模版,再将已车牌字符的分割和进行了字符的归一化处理然后进行单个字符相相减,最后利用循环减法值从模板字符中减去识别字符的特征值比较找到取绝对值最小的那个模版即为匹配得最相似的字符。车牌识别字符识别步骤如下图所示:

建立模板字库表

读取分割出来的字符

第一个字符与模板中的汉字模板进行匹配

第二个字符与模板中的字母模板进行匹配

待识别字符与模板字符相减,值越小相似度越大,找到最小的一个即为匹配的最好的

识别完成,输出此模板对应值

后5个字符与模板中的字母与数字模板进行匹配

识别汽车的字符匹配是识别汽车卡的重要部分。因此首先要建立起精准的模板库,目的是将切割的牌照字符与库的内容进行比较。然后来通过读取切割的字符,与模版图片进行比较。

模版匹配采用将目标图像与模板图像做差,得到第三幅图像,最后得到第三幅二进制图像中像素为1的数量,找到最小值是我们需要的结果,并比较最高数字。

下面是卷积神经网络

车牌字符图像预处理,包括图像预处理、车牌灰化、车牌定位、车牌分割和分割图像标准化。

以下是CNN的识别方法介绍,该程序中使用的神经网络的结构如下图的结构网所示。

结构体net

包含5层

每层的结构

图4-4结构网

这五层的结构如下:

图 4-5五层结构图

每层的结构分别如下:

图 4-6 每层的结构

在下文中,分别引入每层的输入,输出和传播分解,以仅考虑某一批单词的样本。第一层到第五层的数据传递如图4-7所示。

图 4-7卷积操作

利用循环,分别计算第二层每个map的输出。

(1)初始化一个三维矩阵z,z的大小为24*24*50,即第二层中每个map的尺寸z存放的是第二层中每个map的输入。

(2)计算第2层第j个map的输入,即第1层的所有输出(i=1,…,inputmaps)对第2层第j个输入的贡献的累积z贡献。利用第二层的第 j个 map的卷积核 net. layers{2}. k{ i}{j}分别在第1层中卷积第i个地图并将得到的所有卷积结果相加,第2层的inputmaps=1。net.layers{l}.k{i}{j}含义如下:

net.layers{l}.k:是一个元胞,有两层;net.layers{l}.k{i}:l-1层的第i个映射到第一层的所有映射的卷积核;net.layers{l}.k{i}{j}:net.layers{l}.k{i}{j}:是第l层的第l-1层到第j层的第i个映射的卷积核。

从第三层的第一个映射到第四层的映射的所有映射的卷积核如图4-8所示。

图 4-8 卷积核

第三层的第一个映射到第四层的第一个映射的卷积核如图4-9所示。

图 4-9 卷积核数据

(3)计算第2层的第j个map的输出,第二层的第j个map的输出为net.layers{2}.a{j}=sigm(z+net.layers{l}.b{j})。

(4)第一层地图上的卷积运算图例如图4-10所示。

图 4-10卷积运算图例

(5)第2层到第3层(l=3)的降采样操作,如图4-11所示。

图 4-11降采样操作

在第二层的第j个映射上执行卷积运算,并且通过z获得的卷积核(尺寸是比例*比例)按照如下步骤获得:

(1)下采样z以获得第三层的第j个映射的输出。

(2)使用循环,分别计算第四层的每个地图的输出net.layers{4}.a{j} (j=1,..,12)。上图所示的下采样过程的例子如下图所示。

图 4-12采样过程

接下来,将讨论在讨论第j个循环时循环体内的逐步分析。

(1)初始化一个三维矩阵z,z的大小为24*24*50,即第二层中每个map的尺寸,z存放的是第四层中每个map的输入。

(2)计算第4层的第j个map的输入,即第3层的所有输出(i=1,…,inputmaps)对第4层第j个输入的贡献累积。

计算方法是:利用第4层的第j个 map的卷积核 net. layers{4}. k{ i}{j}卷积第3层中的第i个地图(i = 1,…, net.layers{1}.outputmaps),并将得到的所有卷积结果相加,第4层的inputmaps=12。

(3)计算第4层的第j个map的输出,第4层的第j个map的输出为net.layers{4}.a{j}=sigm(z+net.layers{4}.b{j})。

(4)计算第三层地图上的卷积运算图例。获取第五层的第j个输出映射的大小,该映射是三维的,并且获得的三维大小向量存储在sa中,将第五层的第j个输出映射的矩阵转换为sa(1)* sa(2),sa。

matlab车牌识别系统的开发步骤相关推荐

  1. matlab车牌识别系统论文,基于Matlab的车牌识别系统.doc

    摘 要: 车牌识别系统研究在这个信息化的时代是一项重大发展,也是在智能交通范围的一项课题.车牌识别可以获取交通信息,在交通车辆管理.交通车辆监控.交通车流量检测等方面应用普遍,受到相关学者的高度关注. ...

  2. EasyPR中文开源车牌识别系统 开发详解

     在上篇文档中作者已经简单的介绍了EasyPR,现在在本文档中详细的介绍EasyPR的开发过程. 正如淘宝诞生于一个购买来的LAMP系统,EasyPR也有它诞生的原型,起源于CSDN的taotao ...

  3. 基于matlab的车牌识别系统程序,基于matlab的车牌识别系统的设计(附程序).doc

    基于matlab的车牌识别系统的设计(附程序).doc 1车牌识别系统的设计1.摘要:汽车牌照自动识别系统是制约道路交通智能化的重要因素,包括车牌定位.字符分割和字符识别三个主要部分.本文首先确定车辆 ...

  4. EasyPR--中文车牌识别系统 开发详解(开源)

    人工智能AI与大数据技术实战  公众号: weic2c 一个开源的中文车牌识别系统, Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR ...

  5. python的快车智能车牌号码识别系统的开发

    It is not always possible to prove some crimes. To achieve this, modern tools may be needed which mu ...

  6. 基于Matlab的车牌识别系统完整版课论文分享 快看

    基于Matlab的车牌识别系统 一.设计原理 车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索.检测.定位,并分割出包 ...

  7. matlab车牌识别的外文文献翻译,汽车车牌识别系统(带外文翻译).doc

    汽车车牌识别系统 车牌定位子系统的设计与实现 摘 要 汽车识别系统是近几年发展起来的计算机视觉和模式识别技术在智能交通领域应用的重要研究课题之一.在车牌自动识别系统中,首先要将车牌从所获取的图像中分割 ...

  8. EasyPR中文车牌识别系统开发

    EasyPR中文车牌识别系统开发,我主要介绍如何使用开源的EasyPR中文车牌识别系统,我会介绍训练机器学习 SVM 支持向量机和 ANN 人工神经网络模型在车牌识别的应用,并公开训练数据. 目录: ...

  9. MATLAB多方法车牌识别系统(bp+模板+GUI)

    一.课题介绍 资源链接https://gitee.com/chending006/cpsbhttps://gitee.com/chending006/cpsb 随着汽车数量的增加,城市交通状况日益受到 ...

最新文章

  1. 单文件浏览器_图文并茂深度解析浏览器渲染原理,包看懂超值得收藏
  2. 电量检测芯片BQ27510使用心得
  3. 今天网易云有大事发生?!
  4. 【大话Hibernate】Hibernate的核心接口和类
  5. centos7 安装rabbitMQ3.6.6
  6. from + size must be less than or equal to: [10000] but was [10550]
  7. java中的语句有哪些_java中的循环语句有哪些
  8. matlab仿真三相交流电路,三相交流调压电路的MATLAB仿真
  9. 什么电脑的牌子好用_什么牌子的盘点机好用?
  10. 机器学习实战之信用卡诈骗(二)
  11. 纪念短暂而美好的恋情:愿得一人心 白首不相离
  12. 把 Win 8.1 升级成 Windows 2012 R2 (再续)
  13. Leetcode滑窗系列(java):643. 子数组最大平均数 I
  14. UDS汽车诊断入门01 - 简介
  15. 【清华大学-郑莉教授】C++语言程序设计 类与对象
  16. Vue3实现回车键登录
  17. android监控手机使用次数,原来手机还自带监控功能,手机使用记录一清二楚,赖也赖不掉...
  18. 写代码这条路,能走多远?阿里算法专家告诉你
  19. MPLS基本概念、设置和效验
  20. 双系统win10自动改动EFI启动顺序解决方案

热门文章

  1. 使用斯凯平台图片缩放函数注意的地方
  2. 代数几何:Zariski Closures、不可约簇-素理想
  3. 采购管理软件最好的哪个?采购查询功能详解
  4. cnpm 安装文件找不到_新手美工求职被拒,找不到工作也许是以下原因
  5. win10卸载Ubuntu14:Mbrfix方法卸载失败
  6. 【图像加密】正交拉丁方+二维Arnold置乱图像加密【含GUI Matlab源码 813期】
  7. Angular2或Angular4使用echarts,ngx-echarts
  8. 顺利完成网页版体温单
  9. TC358743xbg是一颗将HDMI信号转换成MIPI CSI2的芯片
  10. 一、ONVIF协议:使用gSOAP生成ONVIF框架代码