车牌快速定位算法

 2023-03-21 04:03

论文总字数:14563字

摘 要

Abstrcat 3

第一章 引言 4

1.1 项目背景 4

1.2 国内外研究历史及现状 4

1.2.1边缘检测的车牌定位方法 4

1.2.2彩色分割的车牌定位方法 4

1.2.3小波变换的车牌定位方法 5

1.2.4遗传算法的车牌定位 5

1.2.5数学形态学的车牌定位方法 5

第二章 实验工具及环境 6

2.1关于matlab 6

2.2 Matlab编程环境 6

2.2.1简单好用 7

2.2.2强悍的处理能力 7

2.2.3关于图形处理 7

第三章 设计思路 8

3.1中国车牌的特征 8

3.2系统实现方法 8

3.2.1系统实现的一些困难 8

3.2.2系统实现的大致构思 8

第四章 系统分析及设计方案 10

4.1读取图片以及灰度处理 10

4.2增强图片信息 11

4.3除去聚团元素 18

4.4候选区域判断 19

第五章 实验测试结果 21

5.1一些测试结果: 21

第六章 总结 25

第七章 致谢 26

基于MATLAB的车牌快速定位算法

摘要

车牌快速定位系统,作为在车牌识别中最重要的一步,它识别效果的好坏,深深的影响着车牌识别系统后续的字符识别与分割的效果。当前市面上的一些主流方法有很多,但大致可以归纳为以下几种:彩色分割的车牌定位方法、小波变换的车牌定位方法、数学形态学的车牌定位方法、遗传算法的车牌定位方法、灰度图像纹理特征分析的车牌定位方法等。

以上这些方法够有各自的优势,同时也有自身的劣势。不过根据了解,当前还没有一种算法可以实现在多种方位,多种背景,多种光线下对被测图片进行车牌定位。也就是说,当前的这些识别程序没有能表现出普适性。

在本次实验中,我所采用的方法是基于数学形态学操作的车牌定位方法,并且利用Matlab软件进行了测试,根据结果表明,测试结果良好。

关键字:车牌识别;车牌定位;

窗体顶端

abstract窗体底端

Abstrcat

License plate fast positioning system, as the license plate recognition is the most important step, which identifies the effects of good or bad, deeply affecting the license plate recognition system subsequent character recognition and segmentation effects. There are many methods currently available in the market mainstream, but can be roughly summarized as follows: license plate location method of color segmentation, license plate location wavelet transform, mathematical morphology plate location techniques, genetic algorithms license plate location method, gray license plate location method for image texture analysis and the like.

These methods have their own advantages enough, but also has its own disadvantages. But we understand that there is not a current algorithm can be implemented in a variety of orientations, various backgrounds, pictures tested under a variety of light to locate the license plate. In other words, the current program is not able to identify these exhibits universality.

In this experiment, the method I used is based on the license plate location method of mathematical morphology operations, and the use of Matlab software has been tested, the results showed good test results.

Keywords: license plate recognition; license plate location;

第一章 引言

1.1 项目背景

近些年,我们发现一些现象,无论是在城市亦或是乡村,交通事故的发生频率的在增加,当然,世界在进步,经济在发展。全球的汽车产业也随着经济的发展而越变越大,道路上,车辆川流不息,但在这背后,与日俱增的交通事故也愈发引起广大民众的关心。

当然,不仅仅是道路上的交通安全,如何提高先进交通系统的交通效率,提高交通系统的自动化管理流程也同样是摆在世界各国的交通部门面前的一大障碍。目前,各国的发展是将智能交通系统引导进来。这也是为上述问题而开发的。

在智能交通系统中,如何高速有效的识别车辆信息是极为重要的,而与之相关的重要信息便是车牌信息,发动机信息,车架号信息。在一般监控中,有且就有车牌信息可以快速被掌握到。这样使得如何快速识别车牌成为智能交通系统的核心。

车牌识别是很有意义的,例如在高速公路的的收费站,在小区停车场,在十字路口的红路灯系统中,在盗抢车辆管理系统中等都有这重要的运用。它对于实现交通系统自动化有着重要的意义,有效的改善了城市交通状况,防止交通堵塞。

车牌识别的一般识别步骤,首先将摄像机或是录像图像中关于车子的图像提取出来,再根据数字图像处理,计算机视觉处理等技术进行有效的分析。从而得到车辆的车牌信息,完成车牌号码的识别。

具体来说车牌识别系统,其关键的技术在于车牌的定位,它是后续的车牌字符分割以及字符识别的基础。如果车牌定位不准确,之后的字符识别和字符分割就变得毫无意义,所以说它是影响整个识别系统的重要因素,是车牌识别技术中至关重要的一步。当然,另外两步也是构成车牌识别的重要步骤

1.2 国内外研究历史及现状

1.2.1边缘检测的车牌定位方法

边缘检测,也叫边缘信息检测,它是指图像像素与周围有着明显跳跃性变化的一些像素点的集合。这个集合称作边缘信息。边缘信息的两侧分属不同的区域,这两个区域的灰度均匀,但边界存在这阶跃的差异。边缘检测不仅是检测边界像素集合,同样也会抑制图像中的噪点。边缘检测的方法有很多,例如Prewitt 算法,Sobel 算法,Roberts 边缘算法,他们都属于一阶检测算法。其中Roberts 对于边缘信息检测比较到位,另外两种算法对于抑制噪点有着良好的表现。除此之外,还有其他的一些算法,例如canny算法,拉普拉斯算法等,其中拉普拉斯算法是二阶边缘检测算法,他在检测图像的时候具有旋转不变性,但同时他的降噪能力不如之前提到的一阶算法。如何选择一种合适的算法对图像进行边缘检测。这是需要好好考量的。

当然,仅仅根据边缘信息检测来确定车牌位置的方法,虽然在效率,准确度上有着比较明显的优势,但是当面对图片再点过多的图片,比如车牌区域有着明显的损毁(比如3变成8,故意擦出一些笔画或添加一些笔画)是会导致定位失败,尤其是在车牌区域的边缘信息与保险杠区域边缘信息差异很小时,极有可能导致定位区域大于车牌区域。

1.2.2彩色分割的车牌定位方法

基于彩色分割的方法来定位车牌,是一种很好的车牌定位方法,我们采用的是基于颜色特征和纹理特征的车牌定位方法。从图片中提取车牌,应当准确的把握主车牌的特征。一张24位的BMP图片需要3个字节的内存,来存储红绿蓝的颜色信息。电脑通常使用RGB模型来描述一张图片的。在这个模型中,我们使用红色值,绿色和蓝色显示每一种颜色。但是这个模型会受到光照的影响。因此,我们将不同光线下的车牌颜色信息的RGB模型转译为HSI模型。彩色图片的HSI模型是用色调,饱和度和亮度来描述的。色调标志着每个颜色纯粹特征。饱和度是测量其纯色被摊薄的白光。亮度对应成像亮度和图像灰度。

根据车牌区域对应的色调,饱和度。我们就可以运用投影法分割图片得到车牌的区域。

当然,显而易见的是,这种方法对于颜色相近的候选区域的区分度不高,准确率可能会下降,并且伴随着识别速度变慢。

1.2.3小波变换的车牌定位方法

这种方法是基于小波分析的,在科学计研究中,小波变换被誉为“数学显微镜”。简单的来说,小波分析就是时间或空间频率的局部化分析,将原始的图像进行诸如伸缩或是平移等操作,将原始的图片信号分解为不同频率的信号波,这样我们就能聚焦图片信号的不同细节。

同时,小波分析方法也非常符合人类的视觉神经机制。利用它的特性,我们可以检测图像在不同频率上的变化情形。当然,目前利用小波分析法来分析车牌位置是需要结合其他的方法的。比如集合基于形态学操作的方法进行车牌定位。首先先利用小波分析将图像信号进行分解,并且进行分析,利用车牌区域的存在高频像素图像,以及与周围图像存在跳跃式的频差,确定出子图像,确定车牌区域的大致区域,然后利用数学形态学操作进行滤波或是填充操作(即膨胀腐蚀),这样用以清除图片中的无用信息和噪点的干扰。最后确定出车牌的具体位置,在一般情况下,这种方法的精确度非常高。但是在进行小波分析时会消耗大量时间,一旦图片信息过大,或是图片中噪点或其他一些干扰项过多,就会导致检测速率变慢以及错误的定位现象频发。

1.2.4遗传算法的车牌定位

基于遣传算法的车牌定位方法首先利用遗传算法对图像进行优化搜索,其次结合区域特

利用遗传算法来确定车牌区域是近年来比较流行的做法,实际上他的基础就是从参量空间寻找最优定位参量的问题。针对这一问题,遗传算法是非常适合的。我们把这个问题分解开来:首先,先利用遗传算法的特性对图像进行检索,然后结合车牌区域的特征向量的适应度函数,寻找在这个向量空间内的最优解的问题。据此,可知在进行车牌定位是会进行大量的运算,一旦遗传算法中的迭代次数增大,计算量也将增大,导致车牌区域检索速度大幅下降。

1.2.5数学形态学的车牌定位方法

首先,仅仅利用数学形态学操作来进行车牌的确定是不可能的,它同样是结合了一些其他的算法,比如说是边缘信息检测,或图像二值化等。形态学的基本操作是膨胀腐蚀,开闭操作,这些操作的核心都与结构元素这一概念有关,结构元素实际上是自己定义的,根据所需达到目的的不同可定义成各种不同形状、大小。比如在车牌定位过程中,我们将构造元素定义成矩形,这极大的方便了车牌区域的标识。

由于结构元素大小的不同,会导致形态学操作后候选区域大小不那么精确,这就导致了最后分割图像时的不精确,所以在处理图像是会进行滤波,或是边缘信息检测等操作,经处理的图像最后会形成一个连通区域,这样我们在根据中国车牌的一些特征信息对这些候选区域进行判定,知道分隔出车牌区域。

这样两种方法结合,极大的加快了车牌的识别速度和精确度,相比于传统的车牌定位算法,可谓是省时省力。

第二章 实验工具及环境

2.1关于matlab

Matlab是一款功能强大的数学软件,它是美国公司MathWorks出品的,其结合了许多强大开发工具和可视化界面,对于图像处理,算法开发等运用不在话下,尤善矩阵运算。它不仅是一种高级计算式语言,还提供了良好的交互式环境。为开发者们提供了良好的开发环境。

MATLAB的中文名字是矩阵工厂(也可以称作矩阵实验室),这个自构词实际上是由两个单词组合而成的,联想到他的中文名字,我们马上可以猜出是matrix(矩阵)和laboratory(实验室)这两个单词的组合。它的主要服务对象是进行科学计算的研究者们,对于一系列诸如矩阵计算、数值分析、非线性动态系统的建模、科学数据可视化和仿真等操作,matlab将它们集成在一个可视化界面中,它的书写程序的语言更贴近非程序员(即科研工作者)的习惯,并且提供了强大的容错性。为众多的科学领域提供了一份全面的解决方案。

在数学应用软件中matlab和mathematica、maple这两款软件均非常有名,matlab可以进行多种科学计算,比如图像处理,它本身自带的强大的图像处理函数可以轻松的对图像进行操作。在或是信号检测,绘图等能力。Matlab的基本数据单位是矩阵,它在这方面有着算法的优化。

相比于其他的一些语言,比如java或是FORTRAN,php等。Matlab吸收这这些程序设计语言的有点,同时他的指令没有这些语言那么复杂,更加贴近数学表达式。这令很多问题变得相当便捷。同时,因为这些语言相当流行,matlab也对他们做了相应的支持,比如c 可以调用matlab的m文件生成dll动态引用连接,这极大的丰富了matlab的应用范围。

2.2 Matlab编程环境

Matlab的自带工具很多,其中大部分是交互式的界面,这样极大的方便了用户的使用,在java中或类似的高级程序语言中的命令窗口,编辑窗口调试器,工作空间等,这些在matlab中同样拥有,并且随着软件的不断升级,它的图形界面也在不断的加强,给用的的感觉越来越精致。使得人机交互更加方便,操作更简单。在新版本中,还添加了新的诸如联机的机制,help命令,这使得非程序员的一般科学工作者能够更为轻松的使用matlab,同时提供了极强的容错性,变量使用前不需要声明,检测系统也能够快速的找到错误地方并且给出错误分析,还有matlab所带的gui系统可以是用户轻松的拖拽出心中所想的程序界面,简化回调函数的编写。

2.2.1简单好用

Matlab是一种高级语言,他更加注重的是人机交互,所以他的控制语句,循环,变量类型,数据存储结构等都保留着面向对象编程语言的的证。比如说,在java中,我们的封装这一特性,我们在使用一段逻辑的时候将它写成一个方法,放在一个类中,在matlab中我们同样可以这么干,我们将所需要的逻辑编写在一个后缀名为.m的文件中,只要当前的环境中包含了这个文件,当我们需要用到其中的某一个函数的时候,直接使用函数名即可。比java还要用类.函数名()更为简单。同样的matlab也有着类似高级语言可移植性好,可拓展性好的特点。这就是为何matlab越来越受欢迎的原因。

2.2.2强悍的处理能力

Matlab是一个科学计算工具,那么它当然会加深计算方面的功能,多达700个工程中所用到的运算函数,亦或是算法。使得计算变得如此简单。经过深度的优化后的性能,使得在进行一些简单的程序编写时可以代替其他高级编程语言,这大大的减少了编程的工作量。由于matlab的基本单位是矩阵,所以在关于矩阵方面,他有着先天的运算效率优势,当然在一些函数变换等操作中,它的性能也不容小觑。像是傅立叶变换,三角函数,线性方程求特征值等等。

Matlab在动态仿真中也有这不错的表现,如图像仿真,音频仿真等等。随着版本的更新,我相信它的表现会越来越好的。

2.2.3关于图形处理

Matlab在图像处理方面有着惊人的成就,从基础的科学制图、工程制图到例如光照处理,色彩分析等功能都有涉及,它的工具箱所包含的诸如偏微分方程求解、神经网络、定点仿真、数据库接口、概率统计、样条拟合等等的功能,这些都是由在各个专业方向上的专家们编写的,它已经集成在了matlab的工具库里了,根本不需要你来从新编写,你只需要知道什么是你想要的,并且你需要你提供什么参数就好了。

同样,集成在工具内的gui系统,这极大的方便了用户的使用,你只需要用鼠标拖拖就能拖出你所需要的程序界面,然后根据某个按钮,做出这个按钮的相应的回调函数就好了,轻松方便。这对有着这方面需求的用户来说,是一个极大的体验改善。

第三章 设计思路

3.1中国车牌的特征

中国的车牌种类与外国是不同的,在国外车牌基本是一种,但是在国内,车牌根据用处或者车辆的类别分为多种。

在中国,车牌的信息文字是由3部分构成,第一是代表省份的汉字简称,第二是英文字母,第三是车牌编号。汉字简称很容易理解,比如晋,京,吉,冀等等,这些汉字代表的是省份或者是地区。第二,就是汉字后面跟随的英文字母,它是从a开始的,根据每个省份的行政区域的行政编码划分(通常就是各个地级市,或者是某区域的区一级的行政编码),比如a代表省会,例如晋A什么的就代表所在区域是山西太原。同样在这里面仍然有一些特殊的字符,例如英文字符I和O,他们往往备用来当作警车或者是当地机关单位用车。在这之后就是一串连续的数字加字母的编号了,在早起,我国的车牌编号是没有字母的,但随着社会的进步,我过拥有车辆的人口越来越多,使得车牌紧张(基本是从05年开始逐渐出现的),现在只要符合规则,任何人都可以自己编写一个自己喜欢的车牌号。

我国大部分车辆是小轿车,它的显著特征就是蓝色的车牌底色,正面的长宽比接近于22:7,后车牌为2:1.而其它类型的车辆,例如大卡车,它的车牌底色是黄色的,使馆车是黑色的。

不仅是车牌比例以及色彩的不同给车牌便是带来干扰,识别汉字与数字也不是一个难度的,它们之间的区别很大。综上,中国的车牌识别难度也是很大的。

3.2系统实现方法

3.2.1系统实现的一些困难

1,由于取得的图片并不是固定统一的,其背景,光线明暗,图片本身的分辨率以及噪点等都会对图片的识别造成干扰。所以去除干扰元素(即滤波)成为车牌定位重要的一步。干净利落的去除这些干扰项可以加快车牌定位的速度,但如果没有去除好,可能对实验结果造成致命的影响。

2,中国车牌一般为蓝底白字车牌、黄底黑字车牌、以及白底黑字车牌等等,同时,在图片中,天空、绿地、或是车体本身的颜色等其他干扰源。如何兼容对多种底色车牌进行车牌快速定位?

3,车牌区域如何确定?我们都知道,在车牌的四周一般都是车辆的保险杠,这也包含着众多的边缘信息。那么,如何保证定位的结果是车牌而不是其他类似的地方,这种问题需要对所有候选区域进行判定。那么标准是什么?

3.2.2系统实现的大致构思

整体流程,如图1所示:

分割图片

待选区域判定

形态学处理

检测边缘信息

去除噪点

去除背景

读取图片

图1

第四章 系统分析及设计方案

4.1读取图片以及灰度处理

处理图像时,由于彩色图片包含的信息量是很大的,如果直接拿来进行处理,会非常耗时间,所以通常我们需要将彩色图片转换成灰度图片以后,再进行才对图片的处理。

彩色图转换灰度图的原理如下:

车牌图片的颜色都是多彩的,如果直接对彩色图片进行处理,会降低系统的处理速度,不能满足在指定时间内快速处理问题。这是由于系统的复杂性以及庞大的数据库。因此,对彩色图片进行定位应当对图片进行处理得到灰度图片。一个像素24位BMP图像需要三字节的内存来存储,which contents red, green, blue color information. We denote其内容包含红,绿,蓝颜色信息。我们用R,G和B表示red, green and blue color information with R, G and B. The红色,绿色和蓝色的颜色信息。gray value is shown by g. We can use following three formula灰度值用g表示。我们可以用以下三个公式to turn the images into gray images:将图像转化为灰度图像:

图2

所以我们第一步是对原图进行灰度转化,对比图如图3所示:

图3

从上图我们可以看出转换程度良好。

当然,仅仅转换成灰度图片是远远不够的,虽然接下来的步骤可以简单的对图片进行二值化处理,但是为了适应多数图片明暗的不同,并不能简单的对图片进行二值化。这样就引导出了我们要进行的下一个步骤,增强图片的边缘信息。

4.2增强图片信息

在灰度图片中我们可以看出有许多无用的信息,如何将这些无用的信息去除这就是增强图像信息所要做的。但是如何去做?我在这里使用的是基于形态学的方法,其中涉及形态学基本操作膨胀,腐蚀,开操作,闭操作。

结构元素

结构元素,就是根据自己的需要,构造出来的一个矩阵图像,可以是矩形,可以是圆形,只要你需要,你就可以构建出来。在matlab中,同样提供了这项支持。

形态学腐蚀

腐蚀操作,这是形态学的一项基本操作,从字面理解,就是使原本的图像缩小了一圈,它的具体实现方法是用我们之前生成的构造元素与图像本身的像素点的矩阵与运算,这样从视觉上来看,原本的图像就像是被橡皮(结构元素)将外围的一圈都擦掉了。

剩余内容已隐藏,请支付后下载全文,论文总字数:14563字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;