毕业设计(论文)-基于图像的车牌自动识别处理系统

毕业设计(论文)-基于图像的车牌自动识别处理系统

2023年7月26日发(作者:)

西华大学毕业设计说明书

摘 要

本设计是针对公路监控的需要,设计的基于单片机的车牌识别处理系统,可实现车牌的判断识别以及报警。本设计分为四大部分,图像的采集,图像处理,stm32程序的快速开发,单片机的外围电路设计。其中,用串口摄像头进行车牌图像的采集,利用MATLAB这个软件工具,将采集到的车牌图像数据通过MATLAB环境中建立的串口对象传到MATLAB中,接着进行图像的译码,译码完成后,就可对该车牌图像进行图像处理,提取图形的车牌区域,对该区域进行处理,最终识别出车牌图像中的车牌信息。最后再是利用rapidstm32模块的可视化交互式程序设计环境,在Smiulink下建模转化为基于stm32的C程序及工程,实现stm32程序的快速开发,最后在对程序做一些调整,设计该系统的外围电路,进行电路设计。

【关键字】车牌识别、图像处理、MATLAB、电路设计

I 西华大学毕业设计说明书

Abstract

This design is the need for road monitoring, license plate recognition processing

system based on single chip design, which can realize the judgment of license plate

recognition and alarm. This design is divided into four parts, image acquisition, image

processing, rapid development of the STM32 program, the external microcontroller

circuit design. Among them, using serial camera were license plate image acquisition,

and establish serial object in MATLAB, to receive image data. Then, Followed by

image decoding. After the completion of the decoding can be on the license plate image

for image processing, and license plate region extraction in graphics, then in the region

carried out, finally identify the license plate vehicle license plate image. Finally using

visual interactive programming environment of the rapidstm32 module in smiulink

modeling into C program and project based on STM32 stm3 2 the rapid development of

procedures, and make some adjustments to the program, the design of the external

circuit of the system, circuit design.

【Key words】license plate recognition, image processing,MTLAB,circuit design

II 西华大学毕业设计说明书

目 录

摘 要 ............................................................................................................................................... I

Abstract ................................................................................................................................................ II

目 录 ............................................................................................................................................. III

第1章前言 ...........................................................................................................................................1

1.1 基于图像的车牌识别系统的设计背景 ...............................................................................1

1.2 基于图像的车牌识别系统的国内外现状 ...........................................................................1

1.3 设计系统的情况 ...................................................................................................................2

第2章 方案设计 .................................................................................................................................3

2.1 设计要求 ...............................................................................................................................3

2.2方案选择 ................................................................................................................................3

2.3.1 设计方案的选择 .......................................................................................................3

2.3.2 字符识别方案的选择 ...............................................................................................3

2.3 系统方案 ...............................................................................................................................4

2.4总体方案设计 ........................................................................................................................4

2.4.1硬件设计 ....................................................................................................................5

2.4.2软件设计 ....................................................................................................................5

第3章硬件设计 ...................................................................................................................................7

3.1 主要原件介绍 .......................................................................................................................7

3.1.1 主芯片STM32T103C8T6 ............................................................................................7

3.1.2 语音芯片QGPN5 ........................................................................................................8

3.1.3 电平转换MAX232 ......................................................................................................9

3.1.4电压转换芯片 .......................................................................................................... 11

3.1.5 TFT LCD液晶 ........................................................................................................12

3.2 模块分析 .............................................................................................................................13

3.2.1 STM32控制模块 ......................................................................................................13

3.2.2电源模块 ..................................................................................................................14

3.2.3 滤波电路 .................................................................................................................15

3.2.4 语音输出模块 .........................................................................................................16

3.2.5报警模块 ..................................................................................................................16

3.2.6 采集模块 .................................................................................................................17

3.2.7 指示灯模块 .............................................................................................................18

3.2.8 液晶显示模块 .......................................................................................................18

3.2.9 下载调试模块 .........................................................................................................19

第4章 车牌图像采集 .....................................................................................................................20

4.1 PCTO1串口摄像头说明 ......................................................................................................20

4.1.1 PCTO1串口摄像头介绍 ..........................................................................................20

4.1.2 PCTO1串口摄像头界面说明 ..................................................................................21

4.1.3 PCTO1串口摄像头通讯协议 ..................................................................................21

4.1.4PCTO1串口摄像头上电初始化流程 ........................................................................23

III 西华大学毕业设计说明书

4.2 图像译码以及串口操作 .....................................................................................................23

4.2.1 图像的基本概念 .....................................................................................................23

4.2.2 JPEG档介绍 ............................................................................................................24

4.2.3 JPEG译码过程 ........................................................................................................27

第 5章车牌图像处理 ........................................................................................................................30

5.1 图像灰度化与二值化 .........................................................................................................30

5.1.1图像灰度化 ..............................................................................................................30

5.1.2灰度直方图阀值提取及图像的二值化 ..................................................................32

5.2 车牌图像边缘检测 .............................................................................................................33

5.2.1 边缘检测概述 .........................................................................................................33

5.2.2边缘检测方法 ..........................................................................................................33

5.3车牌定位和提取 ..................................................................................................................36

5.3.1车牌定位及提取概述 ..............................................................................................36

5.3.2车牌定位 ..................................................................................................................36

5.3.3车牌提取 ..................................................................................................................38

5.4车牌字符分割 ......................................................................................................................39

5.4.1分割前的处理 ..........................................................................................................40

5.4.2字符分割 ..................................................................................................................41

5.5车牌字符识别 ......................................................................................................................43

5.5.1 字符归一化 .............................................................................................................43

5.5.2字符识别 ..................................................................................................................44

5 .6 stm32软件快速开发 ...........................................................................................................45

总结与体会 .........................................................................................................................................46

致谢词 .................................................................................................................................................47

【参考文献】 .....................................................................................................................................48

附录 .....................................................................................................................................................50

IV 西华大学毕业设计说明书

第1章前言

1.1 基于图像的车牌识别系统的设计背景

随着经济的发展,每个城市之间的交通越来越复杂,汽车越来越多,它们在给出行提供方便的同时增加了车辆管理的难度,目前人工管理的方式已经不能满足人们的需求。我们只有寻找更好的方式才能解决越来复杂的交通状况。目前,智能交通越来越受到人们的青睐与重视,它的运用极大的提高了交通的管理效率。近年来,科技技术的不断进步,智能方面东西的运用已逐渐成为主流,他不仅能给我们带来方便而且还可以节省劳动力,推进社会的发展。

1.2 基于图像的车牌识别系统的国内外现状

车牌识别技术的研究国外起步较早。早在20世纪80年代,便有些零零散散的图像处理方法用于车牌自动识别的某些具体应用。在这个解读,车牌自动识别技术的研究还没有形成完整的系统体系,一般采用简单的图像处理方法来解决某些具体问题,并且最终结果通常需要人工作干预。

进入20世纪90年代后,车牌自动识别的系统化研究开始起步。[25]典型的如n等提出车辆牌照的自动识别的系统化研究开始起步。[25]典型的如提取和模板构造、字符识别等三部分完成车牌的自动识别。[25]使用视觉字符识别技术分析所获得的图像,首先在二值化图像中找到车牌,然后用辩解跟踪技术提取字符特征,再利用统计最邻近分类器与字符库中的字符进行比较,得出一个或几个车牌候选号码,在对这些号码进行核实检查,确定是否为该车牌号码,最终确定车牌号码,这个时期的应用在识别正确率方面有所突破,但还没有考虑识别事实性的要求,识别速度有待进一步提高。

在八十年代初,国外的研究人员对车牌识别技术有着广泛的关注。在20世纪90年代,随着计算机视觉技术的发展和计算机性能的提高,车牌识别系统得到了系统的研究。[26] 但是,该系统在中国车牌识别系统中无法识别汉字。目前,有一些更成熟的产品来解决我国的如汉王眼自动化HW公司中国科学院汉字识别问题,慧光车牌号码自动识别系统的亚洲视觉科技有限公司,深圳柯兴实业有限公司和中国信息产业部旗下的中智交通电子有限公司开发的相关识别产品。此外,上海交通大学计算机科学与工程系、浙江大学自动化系、清华大学计算机科学与工程 1 西华大学毕业设计说明书

系等高校实验室的实验室,将科研成果转化为技术领域。更重要的是,智勇刘,谁是从中国科学院自动化研究所,也发表了相关文章,并针对胡,一个来自北京航空航天大学的研究人员开发的车牌识别系统在模板匹配技术的基础上开发了一个车牌识别系统,该系统可应用于收费站。

1.3 设计系统的情况

本次设计通过串口摄像头对车牌图像进行采集,采集到的图片格式为jpeg格式,接着将车牌图像数据通过串口这一媒介传到在电脑上。当电脑接收到图像数据后,首先应对接收到的图片数据进行译码,还原图像数据成车牌图像,再对车牌图像进行相关的图像处理。由于maTLAB强大的计算功能,运算速度快,处理图片比较方便,编程简单等,本次在该环境下进行图片处理,对车牌进行定位,字符分割,字符识别等。然后再MTALB下利用Simulink建模,实现快速开发stm32源程序,生成STM32下的C程序和工程,完成本次设计任务。

2 西华大学毕业设计说明书

第2章 方案设计

2.1 设计要求

本次设计是针对门禁或公路监控的需要,设计基于单片机图像识别的车牌处理系统,实现监视区域内车牌判断、识别;可实现信息语音输出及数据的记录;可实现报警图像输出及传输。需要在matlab下操作串口实现图像的传输,运用matlab强大的计算功能,进行jpeg图像译码,再对采集到的车牌图像进行相关的图像处理.(如车牌的提取,字符的分割及识别等),用以识别图像中的车牌信息,将具体的车牌信息识别出来。

2.2方案选择

2.3.1 设计方案的选择

方案一:基于颜色的的车牌识别。

优点:对车牌进行自动区域定位、文字提取、识别。识别出结果之后进行语音朗读提醒。在定位出错和识别出错时可以进行语音警告。识别结果存入指定档内的档中。

缺点:该识别系统是针对蓝底白字的车牌进行的识别。故对颜色依赖度高。对颜色的抗干扰能力差。对蓝色汽车无法识别。

方案二:基于二值图的的车牌识别。

优点:识别别范围广,对车牌的要求少,以及能够适应较复杂的外在景物中提取出车牌。抗干扰能力强,开发时间段。

缺点:对图片的清晰度要求较高,算法及步骤要复杂一点。

综上的优缺点,以及结合现实的实际情况本次采用基于二值图的车牌识别,对车牌进行提取,字符的分割等。

2.3.2 字符识别方案的选择

方案一:人工神经网络进行字符识别。

3 西华大学毕业设计说明书

人工神经网络进行字符识别主要有两种方法:一种方法是先对待标识符元进行特征提取,然后用所获得的特征来训练神经网络分类器。[27]识别效果与字符特征的提取有关,而字符特征提取往往比较耗时。因此,字符特征的提取就成为研究的关键。[28]另一种方法则充分利用神经网络的特点,直接把输入网络,由网络自动实现特征提取直至识别。

方案二:模板匹配法。

模板匹配的主要特点是实现简单,当字符较规整时对字符图像的缺损、污迹干扰适应力强且识别率相当高。别的主要方法。

[15]综合模板匹配的这些优点我们将其用为车牌字符识2.3 系统方案

根据设计的要求,要实现功能,首先我们要对图像进行采集,要了解摄像头的相关参数,知道它是如何将数据传输到上位机的;紧接着在matlab环境下如何读取串口,如何将得到图像数据进行译码,这都是我设计的必备知识,然后才是本次设计的核心,如何对采集到了图像做处理,编写怎样的算法,才能将图片的中的车牌信息给识别出来。这些列的问题都是我必须解决的;最后解决实现单片机程序的快速开发以及单片机外围电路的设计,最终完整的实现本次设计。

经过分析设计了如图2-1系统框图:

车牌显示

串口摄像头采集图像

单片机

报警

语音输

图2-1 系统框图

2.4总体方案设计

本次设计的总体方案设计可以大致分为两个部分,硬件设计和软件设计。首先设计相关的硬件电路用于对整个系统进行控制,设计语音电路对车牌信息结果进 4 西华大学毕业设计说明书

行输出,还要设计电源以及显示电路等,使得整个系统的功能更加的齐全。然后,在软件方面,编写相关的算法,使的我们能将车牌提取出来完成字符的分割,将车牌的信息识别出来,这部分工作最为核心,算法的好坏直接关系到我的结果好坏。最后为实现STM32程序的快速开发利用MATLAB Simulink环境进行语言的转化达到程序的快速快发,避免了单片机的繁琐编程来实现功能,提高程序的开发效率,方便又快捷。本次要进行的工作步骤图如图2-2

车牌图像预处理

车牌提取

字符分割

字符识别

车牌图像的采集、输入

输出结果

图2-2工作框图

2.4.1硬件设计

本次设计的车牌识别系统硬件部分包括串口摄像头、主控机、语音播报电路、报警电路、电源电路以及报警图像的显示。串口摄像头用于采集车牌图像,它的像素会影响到拍摄图片的质效果;主控机是本次识别系统的核心用于对摄像头进行控制以及接收它传来的数据并进行处理,协调各个电路的运行;语音播报用于对检测到的车牌进行实时的播报;电源电路用于对整个车牌自动识别系统供电,为系统提供能量来源,保证系统能够正常运转;报警电路用于对错信息进行报警。

2.4.2软件设计

硬设备采集到图像后首先应考虑图像是什么格式的。目前常用的格式有*jpeg、*BMP、*GIF等,本次采集到的图片格式为*jpeg格式。程序的编写大多采用VC、MATLAB语言,本次设计选用的是MATLAB语言。

MATLAB具有以下优点:

1.编程效率高,使用非常的方便。以矩阵作为基本语言要素使得MATLAB在数字计算编程效率方面大大提高。它的图像处理工具扩展了MATALB解决图像处理的 5 西华大学毕业设计说明书

能力,其他的像神经网络和小波工具都对算法的分析有很大的帮助。

移植性好,交互性好,开放行好,扩充能力强。MATALB可在linux、windows系列平台上使用,且所有工具箱档和核心档都是公开的,我们可以直接修改源文件生成新的工具箱,扩充更多的新功能,有利于算法的改进和研究。还有MTLAB的库函数与用户档形式上是一样的,我们可以根据需求扩充和建立新的库函数,扩充的功能。

3.较强的处理和图形控制功能,自带API使我们可以方便的在MATLAB与C++、C等其他程序语言之间建立数据通讯。

本系统采用matlab进行程序的撰写,具有明显的优势:

1.我们可以直接调用matlab库函数对接收到图片数据进行处理,使得编程更加的容易,方便易懂。

2.由于图像信息量很大需要大量的计算,由于matlab强大的计算功能正好派上了用场,

使得工作效率大大提高。

的移植好交互性强,为以后将程序转化烧写到单片机上做好了准备,实现单片程序的快速开发。极大的减少了工作量。

整个软件系统是车牌识别功能的图像分析和处理的系统。首先将接收到的数据进行图像译码,然后对译码后的车牌图像进行灰度处理等相关图像增强操作,使图像更加的清晰。接着对车牌图像进行边缘检测得到车牌图像的边缘,然后在对边缘检测好的图像进形态学操作,经过了这一些的处理我可以清晰的看到车牌区域的轮廓以及背景区域。接着我们就可以根据车牌的具体情况以及前期处理的效果进行车牌进行定位和提取。然后将提取到的车牌图像进行二值化处理,根据投影找到倾斜的角度,对车牌进行倾斜校正,接着根据垂直投影,对车牌字符进行分割。最后运用模板法对分割出来的图片进行匹配,识别出车牌。整个系统的设计采用了M语言,最后通过rapidstm32实现单片机的程序快速开发。

6 西华大学毕业设计说明书

第3章硬件设计

3.1 主要原件介绍

3.1.1 主芯片STM32T103C8T6

STM32f103c8t6/STM32F103是 ST 公司基于ARM最新Cortex-M3架构内核的32位处理器产品,内置128KB的Flash、外设20K的RAM、丰富的增强I/O端口和联接到两条APB总线的、12位AD、4个16位定时器和还包含标准和先进的通信界面:多达2个I2C界面和SPI界面、3个USART界面、一个USB界面和一个CAN界面。等多种资源,时钟频率最高可达72MHz。参数说明如表4-1

表4-1 STM32F103C8T6参数说明

名称

存储器,RAM

计时器

封装形式

工作的最高温度

工作的最低温度

通讯方式

位数

定时器位数

器件标号

时钟频率

界面类型

供电

模数转换输入数

闪存容量

针脚数

STM32f103c8t6

20KB

4

LQFP

105℃

-40℃

SPI,USART,USB,CAN

32

16

32f103c8t6

72MHZ

CAN,SPI,URAT,USB

2-3.6V

16

64KB

48

7 西华大学毕业设计说明书

3.1.2 语音芯片QGPN5

QGPN5 系列产品是一款专门为语音应用设计的。采用最先进的 CMOS工艺。内部自带 8 位 DSP 微控制器。分为 QGPN5A,QGPN5B,QGPN5C 系列。提供 4 通道语音/Tone/Midi 语音合成方式播放最高采样率可达 CD 音质 44.1kHz,并且内部自带硬件 16 级音量调节功能。提供两种音频输出方式,一种 PWM 输出,一种 DAC

输出。可利用芯片内部+-1%的振荡,您无需外加振荡电阻,您也可以根据需求外接

RC 振荡电阻,当只使用内部振荡电阻时,外接振荡电阻脚可做为普通 IO 口使用。提供待机模式(Halt mode),可大幅度的节省功耗;另外也可以选择慢速时钟,降低系统耗电。

芯片的引脚图如图4-1:

图3-1引脚图

下表3-1是语音芯片QGNP5的引脚说明:

表3-1 引脚说明

名称

VDD

GND

SPK

SPK/DAC

VPP

IO1-IO

0SC/PX3

8

属性

P

G

O

O/AO

P

I/O

I/O

功能描述

电源正极 2.0~5.5V 电源

电源负极

喇叭声音输出

喇叭声音输出,或 DAC 方式音频输出共享

芯片编程电源输入

芯片 IO 口

芯片的 IO 口或外部 RC 振荡外部扩展电阻脚 西华大学毕业设计说明书

表3-2是语音芯片的串口地址分配说明:

表3-2 串口地址分配

出口地址

0X00~0XDF

0XF0~0XFF

0XE0

0XE1

0XE2

0XE3

0XE4—0XED

0XEE

0XEF

3.1.3 电平转换MAX232

本次设计由于选用的是摄像头是串口摄像头,它的通讯方式是RS-232通讯,但是本次选用的STM32单片机的输出是TTL电平,所以我们必须经过转换,才能使stm32和串口摄像通正常通讯。本次设计选用max232来进行电平的转换,完成系统的采集工作。

MAX220–MAX249系列线驱动器/接收器,专为EIA/TIA-232E以及V.28/V.24通信界面设计,尤其是无法提供±12V电源的应用。由于这些芯片的消耗的功率最小可以达到 5μW之内,所以他们都非常的适合用电池供电。MAX225、MAX233、MAX235以及MAX245/MAX246/MAX247不需要外部元件,推荐用于印刷电路板面积有限的应地址功能

223 段声音地址

16 级音量调节功能

开启循环功能

关闭循环功能

开启接收缓冲模式

关闭接收缓冲模式

NC

缓冲数据发送完成

NC

功能描述

对应芯片内的声音段数起始地是 00H

16 级音量调节 。0 为最小音量 ,F

当前段一直循环播放知道发送停止循环指令为止

如果是外加功放可以关闭内部功放降低功耗

开启接收缓冲模式有 10 个位元组的缓冲区

关闭缓冲 , 即发一个地址立即播放一个声音

保留

这个命令只能在开启缓冲模式有效

保留

9 西华大学毕业设计说明书

用.MAX232的主要特点:

1、符合所有的RS-232C技术标准

2、只需要单一 +5V电源供电

3、片载电荷泵具有升压、电压极性反转能力。

4、能够产生+10V和-10V电压V+、V-。

5、功耗低,典型供电电流5mA

6、内部集成2个RS-232C驱动器

7、高集成度,片外最低只需4个电容即可工作。

MAX232引脚图表如图所示,其中第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要;第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从11引脚(T1IN)、10引脚(T2IN)输入转换成RS-232数据从14脚(T1OUT)、7脚(T2OUT)送到计算机DB9插头;DB9插头的RS-232数据从13引脚(R1IN)、8引脚(R2IN)输入转换成TTL/CMOS数据后从12引脚(R1OUT)、9引脚(R2OUT)输出;第三部分是供电。15脚GND、16脚VC(+5v)。Max232引脚图如图4-2

10 西华大学毕业设计说明书

如图3-2 Max232引脚图

3.1.4电压转换芯片

由于各种芯片的供电要求不一样,所以要根据需求,采用不同的电源,这里用ZY2405UHBD-5W将24V直流电转化成5V直流电,用ASM117-3.3三端稳压器将5V电压转化3.3V.

ZY_UHBD-5W 是由广州致远电子开发的宽电压输入隔离电源模块,它的转换效率非常的高,良好的高容性负载容量温度特性和低,而且还带有短路保护功能。国际标准引脚,UL94-V0级阻燃封装,无需外部散热器自然冷却,无需外部元件可直接使用,可直接焊接在PCB板上。连接简单。引脚图如图3-3

图3-3 ZY_UHBD引脚图

11

西华大学毕业设计说明书

表3-3是电源转换芯片ZY_UHBD-5W 的引脚说明:

表3-3 引脚定义

引脚号 引脚名称 引脚定义

1 Vin+ 电源输入端

2 Vin- 电源输入地

3 Vout 隔离电源输出负

5 Vout+ 隔离电源输出正

AMS1117-3.3芯片将5伏电压转化成3.3伏它的输出电流为1A,负载调整率为0-0.4%(最大)封装类型:SOT-223;工作结温范围:-40~125°C输入电压:15V焊接温度(25秒):265°C存储温度:- 65~150°C;输出电压:3.267~3.333V(0<= IOUT<=1A , 4.75V<=VIN<=12V)线路调整(最大):10mV(4.75V<=VIN<=12V)负载调节(最大):15mV(VIN=5V,0<= IOUT<=1A)电压差(最大):1.3V电流限制:900~1500mA静态电流(最大):10mA纹波抑制(最小):60dB。

3.1.5 TFT LCD液晶

TFT-LCD 又叫做薄膜晶体管液晶显示器,常用的液晶屏界面很多种,8 位、 9

位、16位、18 位都有。而常用的通信模式呢,主要有 6800 模式和 8080 模式两种,这次设计用的是 8080 模式。

为了显示得到的车牌结果,以及方便以后功能的扩展,本次选用的是TFT LCD液晶显示屏。以后可以扩展为触摸屏。它的控制芯片用的是ILI9325,为QVGA TFT

LCD显示的单晶片解决方案,支持240RGB×320像素,可以显示262144真色彩。支持MVA(Multi_domain Vertical Aligement多范围垂直队列)宽视角显示。组合720通道源极驱动和320通道门极驱动。内部集成172800字节的GRAM(图形存储器),它具有内部晶振和硬件复位支持240RGB×320像素,可以显示262144真色彩。支持MVA(Multi_domain Vertical Aligement多范围垂直队列)宽视角显示。而且在TFT液晶的内部具有复位和晶振电路,用起来非常的方便,他还支持四中高速界面。

12 西华大学毕业设计说明书

3.2 模块分析

3.2.1 STM32控制模块

微处理器模块,由STM32F103RBT6单片机,时钟电路,复位电路构成,是整个系统的核心,也是整个系统的控制中枢,进行 数据的处理以及对语音模块,显示模块的控制、报警模块的控制,维持整个系统的正常运行。时钟电路采用的是外部晶振用的是32.768KHZ与两个33pf的电容组成;复位电路能够实现上电单片机复位操作,使系统上电正常进入运行。电路图如图3-4。

图3-4 STM32控制模块

13 西华大学毕业设计说明书

3.2.2电源模块

本次设计采用电源是开关开关电源。开关电源具有性能稳定,输出的电压波动小,给我们系统造成的干扰小,体积小等优点。[22]开关电源的工作频率目前基本上是工作在50kHz,是线性稳压电源的1000倍,这使整流后的滤波效率几乎也提高了1000倍;即使采用半波整流后加电容滤波,效率也提高了500倍。在相同的纹波输出电压下,采用开关电源时,滤波电容的容量只是线性稳压电源中滤波电容的1/500~1/1000。电路中晶闸管控制电路的导通,采用了TOP414G稳压芯片进行稳压,采用管够欧进行隔离。开关电源电路中,晶体管V在 激励信号的激励下,它交替地工作在导通—截止和截止—导通的开关状态,转换的速率非常的快,最普遍的是在50KHZ,但是在发达国家也有例外,最快可以达到1000KHZ。由于它转换的频率高,所有它消耗的功率小,这样可以很大幅度的增加电源的使用效率。开关电源电路图如图3-5

如图3-5 开关电源

由于该系统会用到多个电源如

3.3V,5V电源等,为了满足要求,采用DC-DC14 西华大学毕业设计说明书

变换,将开关电源的24V直流电转化为5V的直流电用到的芯片型号为ZY2405UHBD-5W;再将5V的直流电转化为3.3V的直流电用到的芯片型号为ASM1117。

电路图如图3-6

图3-6电压的转换

3.2.3 滤波电路

由于系统电源会给整个系统带来干扰,为了使电源电压更加稳定的供电,去除电源带来的干扰,我们需要对电源滤波,滤除电路中不必要的交流成份和其他的谐波。电源滤波电路如图4-7。

图3-7 滤波电路

15 西华大学毕业设计说明书

3.2.4 语音输出模块

该模块的功能是用于语音输出,将得到的车牌结果语音输出,QGPN5可以单线控制、 双线控制、SPI 总线控制、I2C 总线控制、并口控制 等多种通信方式,本次设计采用的是cpu三线串口接线。IO1接时钟信号,IO2是送的数据信号。SPEK2是输出外接喇叭用于语音的播报。本模块用到的芯片型号为QGPN5。电路接线图如图3-8。

图3-8语音输出模块

3.2.5报警模块

本模块主要由蜂鸣器和三极管组成,功能是用于系统故障报警,对系统的安全起到一定监管和保护作用;用于指定的特定的环境情况报警,方便简洁。由于单片机的电流不足以驱动蜂鸣器发声,所以用到一个三级管进行功放,把电流放大,以驱动蜂鸣器发声。保护系统,在系统有故障的情况下及时的发现,并检修,减小故障给我们带来的损失,电路图如图3-9

16 西华大学毕业设计说明书

图3-9 报警模块

3.2.6 采集模块

由于本次采集用的是PCT01串口摄像头采用的RS232通信,而单片机是TTL电平,为了实现正常通信,我们需要将TTL电平转换成RS232电平。本次采用的是MAX232,就有16引脚。它的11,12脚分别与单片机的分别与TXD,RXD相连,13和14脚分别与摄像头的TXD,RXD相连。采集模块电路图如图3-10

如图4-10 采集模块

17 西华大学毕业设计说明书

3.2.7 指示灯模块

本系统设有3个指示灯(红、黄、绿灯),用以简单的知道系统的运行状况,知道系统是否处于正常的运行状态。当绿灯亮起,表示系统正处于正常运行状态;当系统黄灯亮起,表示系统正处于调试状态;当系统红灯亮起,表示系统处于故障状态,提醒我们需要对系统及时进行检修。指示灯电路如图3-11。

图3-11指示灯电路

3.2.8 液晶显示模块

本次设计用的TFT-LCD液晶,本次的触摸信号线悬空,方便以后功能的扩展。

电路接线图如图3-12,引脚说明如表3-1

引脚

REST

CS

RS

RD

WR

作用

复位选择管脚 为0是复位,1为取消复位

片选信号

寄存器操作0为控制寄存器,1为数据寄存器;RD是读信号

读信号

写操作

XL、XD、YU、YD 触摸屏控制信号线

表3-1

18 西华大学毕业设计说明书

图3-12液晶显示模块

3.2.9 下载调试模块

本次采用的是JLINK界面下载调试。Jlink是一种仿真下载器,它用的是JTAG协议,接的是JTAG界面,不是USART口。ARM内核都支持JTAG协议和JTAG界面,通过这个界面,配合JLINK或者 ULink下载程序.接线图如图4-13

图3-13 下载模块

19

西华大学毕业设计说明书

第4章 车牌图像采集

Matlab功能强大,串口操作异常简单 ,而且数据处理能力非常的强大快速。鉴于这些特点本次将采集数据的图像通过串口实现matlab与串口摄像头通讯,将图像数据传输到matlab,进行下一步数据的处理。由于matlab接收到的数据包括帧头和帧尾,首先我们要将帧头帧尾去掉只保留图像数据,然后再对图像数据进行译码,还原图像。 本次设计选用的是ptc01串口摄像头,使用matlab进行图像译码不仅减少编程的工作量,而且使程序变得简单明了,提高开发效率。

4.1 PCTO1串口摄像头说明

4.1.1 PCTO1串口摄像头介绍

PTC08是广州市谱泰通信科技有限公司设计生产的一工业级采集处理模块。本产品默认的串列传输速率为38400,其他可选串列传输速率有9600,19200,57600,115200。其内置的高性能数字信号处理芯片实现了对原始图像的高比例压缩。产品图像输出采用的JPEG格式标准,可方便兼容各种处理软件,为满足不同界面的需要采用标准的三线制RS-232通讯界面和RS-485界面,通过简单的图像传输协议使得摄像头可以方便的实现与计算机以及各种嵌入式系统的连接,附加的红外补光功能更可满足各种光照条件下清晰成像。PTC08串口摄像头实物如图4-1

图4-1 摄像头实物

20 西华大学毕业设计说明书

4.1.2 PCTO1串口摄像头界面说明

本次设计用到的是标准三线制RS-232通讯界面,如图4-2

图4-2 通讯线

摄像头RS232界面说明如下:

摄像头引出四根线,红色、黑色、绿色、黄色。

红色――――――电源的正极(+5V )

黑色――――――电源的负极,DB9 串口第 5pin

绿色――――――DB9 串口第 2pin (RXD )

黄色――――――DB9 串口第 3pin (TXD

PTC01 摄像头内部默认配有 SP3232EEN IC,从 DB9 串口第 2,第 3pin 出来的 RXD,TXD 是 RS232 电平的信号,可以直接匹配标准 PC 机的串口电平。

4.1.3 PCTO1串口摄像头通讯协议

PTC01/A 的串口通讯协议格式如下所示:

命令格式: 协议标志(1 字节) + 序列号(1 字节) +命令字(1 字节) + 数据长度(1

字节) + 数据(0~16 字节)

21 西华大学毕业设计说明书

回复格式: 协议标志(1 字节) + 序列号(1 字节) +命令字(1 字节) + 状态字节(1

字节) + 数

据长度(1 字节) + 数据(0~16 字节)

其中:

协议标志: 命令的协议标志固定为: 0x56

回复的协议标志固定为: 0x76

命令字:用于标识具体的串口通讯命令。

数据:命令使用到的数据,不同的命令,数据的长度和格式有所不同,最大为 16 字节。表4-1是该摄像头的参数表

表4-1

指令名称 发送指令数据 返回数据 备注

复位 56 00 26 00 76 00 26 00 +DSP 版

本信息

拍照 56 00 36 01 00 76 00 36 00 00

读取图片56 00 34 01 00 76 00 34 00 04 00 00 XX YY ---图片数据长度,XX 为长度 XX YY 高位字节,YY 为低位字节

读取所拍56 00 32 0C 00 76 00 32 00 00 FF 00 00 XX XX --- 起始地址(先图片数据 0A 00 00 XX FF D9 高位字节,后低位字节。必须是 8

00 00 YY YY 00 76 00 32 00 00 的倍数 )

FF 00 00 YY YY --- 本次读的数据长度(先高位字节,后低位字节)

清空图片56 00 36 01 02 76 00 36 00 00

缓存

设置拍照56 00 31 05 01 76 00 31 00 00 XX 一般选 36 (范围:00 ----FF)

图片压缩01 12 04 XX

设置拍照56 00 31 05 04 76 00 31 00 00 XX为11图片大小为320*240

图片大小 01 00 19 XX XX为00图片大小为640*480

XX为22图片大小为160*120

修改串口56 00 24 03 01 76 00 24 00 00 XX YY 速率

临时串列XX YY AE C8 9600

传输速率 56 E4 19200

2A F2 38400

1C 4C 57600

0D A6 115200

修改串口56 00 31 06 04 76 00 31 00 XX YY 速率

初始波特 02 00 08 XX YY AE C8 9600

22 西华大学毕业设计说明书

56 E4 19200

2A F2 38400

1C 4C 57600

0D A6 115200

移动侦56 00 37 01 XX 76 00 37 00 00 XX 为 00 ,关闭移动侦测功能。

测功能 每次上电后,移动侦测功能处于关闭状态。XX 为01 ,打开移动侦测功能。

移动侦56 00 31 05 01 76 00 31 00 00 XX 为移动感应灵敏度 ,范围

测灵敏度01 1A 6E XX 00~FF 。00 -- 最灵敏,容易误设置 触发

FF -- 最迟钝,很难有效触发

移动侦测56 00 38 00 76 00 38 00 01 XX XX为00表示移动侦测功能已关状态查询 闭;XX为01表示移动侦测功能已打开

注:表5-1中数据采用的十六进制数

4.1.4PCTO1串口摄像头上电初始化流程

(1) 上电

(2) 延时 2.5 秒

(3)设置拍照图片大小指令

(4)设置拍照图片压缩率指令

拍照片的过程

(1)发送清空图片缓存指令

(2)发送拍照指令

(3)发送读取所拍图片长度指令

(4)发送读取所拍图片数据指令

4.2 图像译码以及串口操作

4.2.1 图像的基本概念

常用数字图像的格式有BMP格式、PNG格式、GIF格式、JPEG格式,本次设计 23 西华大学毕业设计说明书

采集到的图像是JPEG格式的图像,这种格式图像档是多媒体课件和学习网站最常用的一种数字图像档。由于标准化要求和高效的压缩效率,目前已广泛用于静止图像、印刷、彩色传真、电话会议以及新闻图片的传送上。

4.2.2 JPEG档介绍

JPEG档使用的数据储存有多种。最常用的格式称为JPEG档交换格式。而JPEG档大体上可以分为两个部分:标记码和压缩码。

标记码由两个位元组构成,其前字节是固定值0xFF,后一个字节根据不同数值代表不同的意义。每个标记码前可以添加多个无意义的0xFF,表示一个标记码的开始。而一个完整的两字节的标记码后就是该标记码对应的压缩数据流,记录了档的储存信息。

常用的标记有SOI、APP0、DQT、SOF0、DHT、DRI、SOS、EOI。这些都是标记的名称。在档中,标记码是以标记码形式出现。如在JPEG档中出现0XFFD8,则表示此处是SOI标记。表5-2列出了常用标记码占用的字节长度和表示的意义。

24 西华大学毕业设计说明书

25 西华大学毕业设计说明书

26 西华大学毕业设计说明书

4.2.3 JPEG译码过程

图像译码是一个非常繁琐的过程,算法复杂,对于设计编程的要求高、难度大,没有一定程序功底的人是很难完成图像译码的算法程序,本次采用matlab对图像进行译码,由于matlab自身功能的强大,利用很简单的算法,很简明的程序就能 27 西华大学毕业设计说明书

将接收到的图像数据译码还原成图片,大大的提高了程序的开发效率。缩短了开发时间,简化了系统的开发流程。

要在matlab行译码,那么首要我们需要在matlab中新建一个串口对象,用他来接收和发送数据,并初始化,包括停止位、串列传输速率、输入输出缓冲区的大小、有无校验等。然后在对接收得到数据进行处理,如找出图像数据的长度,去帧头帧尾,以及如何将数据还原成图片等。具体步骤如下:

(1)利用scom=serial('COM6')建立一个串口对象。

(2)创建完串口对象后,一般需要设置对串口对象的属性,否则出口不会相互通信。一般情况下需要设置BaudRate(串列传输速率)、Parity(奇偶校验类型)、inputbuffersize(输入缓冲区)、outputbuffersize(输出缓冲区)等,若要查看全部属性,可使用语句get(scom)即可。本次根据需要只需设置串列传输速率、和输入输出缓冲区,其他的采用默认值就可以了。串列传输速率为38400,根据本次摄像头得到数据的大小将输出缓冲区为20000就足以满足需求。

set(s,'BaudRate',38400); %设置串口

set(s,'inputbuffersize',20000);

set(s,'outputbuffersize',1000);

(3)当串口对象完成初始化之后,使用fopen(scom)打开串口,就可以进行串口摄像头和matlab进行数据的收发。

(4)再是结合串口摄像的相关指令进行车牌图像的采集以及数据的传输。对接收到的数据进行处理(转换进制数、去帧头帧尾)

对串口摄像头进行复位:

a=['56'; '00'; '26'; '00'] %摄像头复位指令

A=hex2dec(a) %将字符转化为十六进制

fwrite(s,A) %将复位指令发送到摄像头

out1=fread(s) %用out1接收摄像头返回的指令

Receivedate1=dec2hex(out1) %将接收到的数据转化为十六进制

用摄像头进行拍照采集才车牌图像:

b=['56';'00';'36';'01';'00'] %摄像头拍照指令

B=hex2dec(b)

fwrite(s,B);

out2=fread(s);

Receivedate2=dec2hex(out2)

读取图像的长度:用out3来接收返回的指令,由摄像头的技术参数可知out3数组中第八个和第九个数据储存的是 所拍照片的数据长度。

28 西华大学毕业设计说明书

c=['56';'00';'34';'01';'00'] %摄像头读取照片拍照长度指令

C=hex2dec(c)

fwrite(s,C);

out3=fread(s);

Receivedate3=dec2hex(out3)

ReadPictureLength = out3(8)*256+out3(9)+8;%计算数据的长度

读取照片数据:由于上面测到的数据长度是怎个数据的长度,它包括了帧头和帧尾,所以要对图片数据进行处理就必须去掉帧头帧尾,得到完整的图片数据(从0xFFD8到0xFFD9),对数据进行处理。

d=[86;0;50;12;0;10;0;0;0;0;0;0;out3(8);out3(9);0;255] %读取照片指令

fwrite(s,d);

out=fread(s,ReadPictureLength); %用out接收摄像头返回的指令

Receivedate4=dec2hex(out) ; %将接收到的数据转化为十六进制

b=Receivedate4(6:ReadPictureLength-3,1:2)%去掉数据中帧头和帧尾

为了便于后面数据的处理我们将行矢量转换成列矢量并测量出该矢量的维度,存在变量m、n中:

c=hex2dec(b)

d=c' % 转置

[m,n]=size(d); %测维度

(5)对图像数据进行处理,译码还原成采集到待处理的车牌图片,为下一步的处理做好准备。首先打开也空的JPEG格式的档,这非常的重要,他在这次译码中起到了非常重要的作用,然后将接收到经过处理的数据,写到刚才打开的JPEG格式的档中,matlab进行自动译码,就还原出了车牌图片,完成了本次图片的译码,就可进行下一的图像处理。

fid=fopen('','w+')%打开一个 fwrite(fid,d(k));

end

fclose(fid)

I=imread('');

% 读取译码后的图片

imshow(I)

%显示图片

JPEG格式档用于写操作

for k=1:n

%将图片数据写入档中进译码

(6)最后当所以工作完成,应使用fclose(scom)和delete(scom)关闭与清除串口设备,如果没有进行此工作,待下一次采集图像将会报错,不能完成串口摄像头的正常通讯。

29 西华大学毕业设计说明书

第 5章车牌图像处理

为了改善识别效果,克服图像干扰,要对图像进行预处理。首先我们需要图像的预处理包括对动态采集到的图像进行灰度处理,二值化,滤波,边界增强等。

由于自然环境会影响车牌图像信息的采集、输入过程,如天气、光照以及模糊等因素,会使所获得的图像质量下降,给后面的车牌定位提取、车牌字符分割以及车牌识别带来很大的困难。因此我们需要对车牌进行预处理,以此来提高图像的质量并突出我们需要的信息,有利于我们的后续处理。经过了图像预处理,去除或削弱无用信息、改善图像效果、把原来不清晰的图像变得清晰或者抑制图像的某些特征使另外一些特征得到增强,从而来提高特征提取、匹配和识别的可靠性。在进行了一些前期的图像处理,接着我们确定车牌区域将车牌从车牌图像中提取出来,然后对车牌字符进行分割,将车牌字符分割成单个的字符,字符分割好后,接着对字符进行识别,本次字符识别采用的是模板匹配法,将分割好的字符与模板库的字符进行比对,得到最相似的字符,即为识别的结果。

本章介绍来了牌定位前的图像预处理技术,车牌的定位提取,车牌字符的分割,车牌字符的识别,最终将车牌信息识别出来。

5.1 图像灰度化与二值化

5.1.1图像灰度化

一般情况下,摄像头采集到的原始图片都是彩色图像,又叫RGB图像。在Matlab中存储N x M x 3的数据矩阵。所有的彩色图像都是由红、绿、蓝组合而成。在数字图像中每一种颜色都有256个等级。对于灰度图像是指每个像素信息由一个量化后的灰度级来描述的数字图像,灰度图像不包括彩色信息。标准的灰度图像中每个像素的灰度级由一个字节表示灰度级数为256级,每个像素可以是0-255(从黑到白)之间的任何一个值,若灰度值为255就代表白色,灰度值为0就代表黑色。由此一幅彩色图所包含的信息远远大于一幅灰度图像,他不仅需要大量的存储空间还需要还需要复杂的图像处理算法,这使得整个车牌识别系统操作时间过长,无法达到实时性的要求。所以,首先要将采集到的彩色图像转化为灰度图像,便于后续的处理,这个过程就是图像的灰度化。彩色图像转化为灰度图像时,图像灰度值H可 30 西华大学毕业设计说明书

由下面公式计算:

H0.229R0.587G0.114B (5.1)

BGR

H (5.2)

3 (5.1)式使用了权值加重法,(5.2)式使用均值法,使用权值法的好处是可以突出某个通道,Matlab内的RGB转灰度图函数rgb2gray()就是使用的(5.1)式权值比例公式,采用这种算法可以使得到的灰度图像在视觉上更接近人的主观感觉,而且这样还可以利用边缘检测方法,识别出临近区域灰度值相差大的分界区,得到最合理的汽车牌照灰度图。

图像向灰度图像的转化,按实际需要修正原始图像的灰度分布,从而消除灰度畸变,增强对比度,改善视觉效果;从程序来讲,需要判判断位图档图像的类别,只有将图像转化灰度图像后,才能更好的进行下面的一系列的操作,Matlab中将彩色图像转灰度图函数是rgb2gray()。它的调用格式是:I=rgb2gray(RGB)。在matlab中运行下面程序可以得到如图 5-1-1的汽车牌照彩色图以及转化后的汽车牌照灰度图像如图 5-1-2。

I=imread(''); %将图像格式档读入

figure(1),imshow(I);title('原图')%显示图像

I1=rgb2gray(I); %灰度图像转化

figure(2),subplot(1,2,1),imshow(I1);title('灰度图');%显示灰度图像

图5-1-1 图5-1-2

31 西华大学毕业设计说明书

5.1.2灰度直方图阀值提取及图像的二值化

在识别的过程中,我们希望把目标从背景中分离出来。为了尽可能的减少背景图的干扰,保留或增强目标信息,我们可以把图像分为目标和背景两部,用两个灰度级表示:0和1,通常0表示背景,1表示目标,像这样的图像就是我们所说的二值图。二值图灰度层次变化简单,仅有黑白两种颜色。由灰度图得到二值图的过程叫图像的二值化。灰度直方图是数字图像处理中一种实用的工具,它用直方图的形式描述图像的灰度值得分布及比例。灰度直方图是表达灰度值的一种函数,表现了图像中灰度值像素的个数,将灰度情况具体的统计出来,反映图像中每种灰度出现的频率。具体MATLAB程序实现函数是imhist,该函数是用于得到图像的数据直方图,它的调用格式是:[count,x]=imhist(I)。其中I表示计算机中读取的灰度图像。即被测对象。其中count表示对图像灰度的统计,X表示图像的灰度级别。采集到的车牌灰度直方图如图5-1-3

图5-1-3

图像的二值化是图像处理的基本技术,其应用领域非常的广泛,特别是在图像信息压缩、边缘提取和形状分析等方面起着重要的作用,成为其处理过程中的一个基本手段。二值化的目的是将上步的图像增强结果转化为二值图像,从而得到清晰 32 西华大学毕业设计说明书

的边缘轮廓线,更好的为边缘提取、图像分割、车牌识别等后续处理服务。基本过程如下:

(1)对图像进行低通滤波,降低或去除噪声

(2)用算法确定最佳阀值T

(3)根据这个阀值,将大于或者该值得像素都用255代替,小于该值得像素值都用0像素值代替。经过这样的处理我们就可以把整个车牌图像分成黑白两种颜色方便后续的处理实现了车牌图像的二值化。

255,f(x,y)T g(x,y)=

0,f(x,y)T

(5.1)

车牌图像二值化的过程中,阀值的选择是最为重要的部分,它的合适与否直接关系到我们图像的效果,以及后面的一些操作。这里阀值选取的基本方法有双峰法、P参数法、Otsu法等。

5.2 车牌图像边缘检测

5.2.1 边缘检测概述

数字图像的边缘检测是图像分割、区域形状提取、目标区域的识别等图像分析领域很重要的基础。图像边缘是图像的最基本特征。目前,他在工程应用中具有重要地位。由于车牌区域存在大量边缘信息,所以边缘检测对于本次车牌识别相当的重要。

根据灰度变化的特点,常见的边缘可分为阶跃型、凸缘型和房顶型。但是现实的实际的图形分析要复杂的多,图像边缘灰度边缘的变化情况并不仅局限上述情况。在MTALB图像处理工具箱中使用edge函数来检测边界,寻找像素剧烈变化的像素边。

5.2.2边缘检测方法

由于图像物体边缘表现为灰度变化,因此,可以通过计算灰度的不连续来增强 33 西华大学毕业设计说明书

和检测边缘。边缘检测的方法很多,主要有空间微分算子、拟合曲面、小波多尺度边缘检测以及数学形态学的边缘检测。对于空间微分算子是对图像进行简单的一阶导数运算,具有固定的方向性,只能检测特定方向的边缘,所以不具有普遍性;拟合曲面是从统计角度来说的,通过回归分析得到一个曲面然后作类似处理;小波多尺度边缘检测作为研究非平稳的工具,小波分析在边缘检测方面具有得天独厚的优势;数学形态是一种有代表性的非线性数学方法,在图像处理中已得到广泛应用。将数学形态用于边缘检测,既能有效地滤除噪声,又可保留图像中原有的细节信息。目前常见的较成熟、基于数学形态的边缘检测方法有基于多尺度形态学的边缘检测、基于数学形态多级平均的图像边缘检测、基于偏微分方程的形态学的边缘检测、基于均衡化和数学形态的组合边缘检测以及基于坐标逻辑的多结构元图边缘检测方法。

本设计采用MATALB内的edge函数来求边界。用edge函数来求边界的方法有sobel、prewitt、roberts、log、zeroscross和canny。

(1)对于roberts方法,调用方法如下。

BW=edge(I,‘roberts’)

BW=edge(I,‘roberts’,thresh)

BW=edge(I,‘roberts’,thresh,options)

其中I是待处理图片;roberts是本次边缘检测的方法是roberts;thresh指阀值,低于该阀值的像素值被忽略;options是一个可选的输入,在默认情况下为‘thinning’,即边缘细化,当为nothinning时,边缘不细化,可以加快算法的速度;BW是返回的边缘,为二值图像,取值为1的是边缘。

(2)对于sobel方法,调用方法如下。

BW=edge(I,‘sobel’)

BW=edge(I,‘sobel’,thresh)

BW=edge(I,‘sobel’,thresh,direction)

BW=edge(I,‘sobel’,thresh,direction,options)

其中I是待处理图片;sobel是本次边缘检测的方法是sobel;thresh指阀值,低于该阀值的像素值被忽略Direction可取的字符串值为horizontal(水平向)vertical(垂直方向)或both(两个方向)默认方向为both;options是一个可选的输入,在默认情况下为‘thinning’,即边缘细化,当为nothinning时,边缘不细化,可以加快算法的速度;BW是返回的边缘,为二值图像,取值为1的是边缘。

34 西华大学毕业设计说明书

(3)对于canny方法,调用方法如下。

BW=edge(I,‘canny’)

BW=edge(I,‘canny’,thresh)

BW=edge(I,‘rcanny’,thresh,sigma)

其中I是待处理图片;canny指所用的边缘检测方法为canny;thresh指阀值,若为两个元素的矢量,则第一个元素为低阀值,第二个元素为高阀值,若为标量,则为高阀值,低阀值为0.5*thresh;sigma是指高斯滤波器的标准差,默认值为1,滤波器的大小根据sigma的值选择;BW是返回的边缘,为二值图像,取值为1的是边缘。

(4)对于prewitt方法,调用方法如下

BW=edge(I,‘prewitt’)

BW=edge(I,‘prewitt’,thresh)

BW=edge(I,‘prewitt’,thresh,direction)

其中BW是返回的边缘,为二值图像,取值为1的是边缘;I是待处理图片;prewitt是本次边缘检测的方法是prewitt;thresh指阀值,低于该阀值的像素值被忽略;Direction可取的字符串值为horizontal(水平方向)、vertical(垂直方向)或both(两个方向)默认方向为both;

本次采用的是roberts的方法进行车牌边缘的检测,得到如图图5-2-1

图5-2-1 边沿检测图

35 西华大学毕业设计说明书

5.3车牌定位和提取

5.3.1车牌定位及提取概述

用本次的串口摄像头拍到的图像中景物非常的复杂,不只是只有车牌图像,但是对我们有用的就只有车牌所在的图像区域,所以我们要想方设法的把与车牌无关的信息、景物去掉,只留下对我们有用的部分。我们把车牌从原图中分离出来首先我们需要对图像进行预处理如腐蚀、形态学运算等,再找到车牌的四周边界值,我们就可以将车牌从原图中提取出来。车牌定位和提取的流程图如图5-3-1

通过计算寻找x

和y方向的区域

对图像进行腐蚀 进行形态学开闭运算

对车牌图像进行提取

完成车牌定位

图5-3-1 车牌定位提取流程图

5.3.2车牌定位

车牌图像经过边缘检测和灰度化处理后,边缘得到了加强。使得牌照区域已经非常的明显,此时可进一步确定牌照在整幅图象中的准确位置。数学形态学用具有一定形态的机构元素去量度和提取图像中的对应形状以达到对图像分析和识别的目的,能有效的去除噪声,简化图像数据,保留图像原有信息的同时提取的边缘比较平滑,提取的图像骨架也比较连续,断点少,而且可以保持它们基本的形态特征,并除去不相干的结构。现在我们将经过预处理的图像进行图像腐蚀以及去除杂质,就可以得到相对准确的车牌位置。

在图像处理中用腐蚀操作去掉目标对象中的像素,消除小且无意义的目标物,matlab中用imrode函数实现。用膨胀操作增加目标对象中的像素,使目标边界向外部扩张的处理,填补目标区域的某些空洞,以及消除包含在目标区域中的小 36 西华大学毕业设计说明书

颗粒噪声,matlab中用imdilate函数实现。 虽然腐蚀处理可以将粘连的目标物体进行分离,膨胀处理可以将断开的目标物进行接续,但都改变了原有的面积。为了解决这个问题提出了开、闭运算。Matlab中用inclose函数实现图形闭运算。Matlab中用inopen函数实现开图形运算。图像经过了开、闭运算,都具有目标物原有大小不变的优点。

运行下面程序可以得到如图5-2-2和图5-3-3的结果。其中对图像进行腐蚀处理的结构元素se用的是一个线性结构;对图像进行闭运算的结构元素采用的是一个25*25的矩形窗,使用矩形是因为车牌是一个矩形,这样,可以是提取的图像最接近预期效果。

se=[1;1;1];

I3=imerode(I2,se);

figure(4),imshow(I3);title('腐蚀后图像');

se=strel('rectangle',[25,25]);

I4=imclose(I3,se);

figure(5),imshow(I4);title('平滑图像的轮廓');

图5-3-2 图5-3-3

由图5-3-3可以看出图中除了目标图像还存在其他的小物体,即干扰物,它会对我们后面车牌的提出造成很大的影响所以我们要这些杂质去掉,可以用bwareaopen函数来去除对象中不相干的小对象,为以后车牌精确的提取奠定基础。处理后的图像如图5-3-4,由图可以看出的达到了想要的效果。去除了图中的小对象只留下目标物体车牌。

37 西华大学毕业设计说明书

图5-3-4

5.3.3车牌提取

在将采集到车牌进行了二值化,轮廓平滑处理等处理后我们可以从结果图中清晰的看到,图像中只用黑白颜色。他把整个画面,分成了两部分,即只有黑和白的特殊灰度图,其中图中的白色区域部分感兴趣部分,由图中可以看到存在两部分白色区域,这里我们根据车牌长宽比5:1这一先验知识来确定车牌区域所在的位置,将车牌从原图中提取出来。

为了将车牌的具体区域提取出来,采用水平与垂直双向投影法确定车牌四周边界值,提取车牌。车牌提取最重要的是确定车牌的边界,只要车票的边界确定的好车牌就能完整的提取出来。这里我们首先确定车牌在竖直方向上的边界,在matlab下调用size函数测出图像矩阵的大小,再建立一个与图像矩阵同宽度的一维数组,用于储存图像矩阵中车牌区域的每一行蓝色点像素值个数的总数。由于蓝色点的像素值不是固定值,所以直接统计起来非常的困难,但是由于车牌的图像经过了一定图像相关处理使得车牌图像的蓝色区域都为白色,这样我们就可以转化统计每一行白色区域的点的总数,储存在我们建立的一维数组中。这样可以使我们的算法变得 38 西华大学毕业设计说明书

简单,提高程序的开发效率并能够节省程序的运行时间。接着应用max函数找到它最大累计蓝色点所在的行,然后运用while函数向上和向下扫面找到车牌的上下边界。在寻找车牌区域在水平方向上的左右边界方法与上面类似,只是需要注意的是将这里需要建立一个与图像矩阵长度相同的一维数组。经过上述处理得到图5-3-5的行方向合理区域与图5-3-6定位剪切后的彩色车牌。

图5-3-5 图5-3-6

从结果来看车牌的四周边界被很好的确定下来了,这样我们就可以从原始图像中直接确定车牌的区域。车牌被成功的提取出来了。从图5-3-6来看,车牌的提取效果非常的好,达到的车牌的提取效果。

5.4车牌字符分割

在进行车牌分割前我们必须对提取到的车牌我们进行处理,因为经过车牌提取,是将车牌区域从原始车牌图像中提取出来的,是没有经过处理的彩色图像。因此我们在分割前必须对上面提取到的车牌进行相关的处理,如对图像进行二值化,通过再次使用bareopen函数移除车牌对象中的小对象,来去除车牌中原点给分割带来的干扰,以及对图像进行滤波,去除图像中的噪声,使分割出来的字符更加的准确,有利于我们后面的处理。当我们得到的车牌区域图像都处理好后,我们就可以进行下一步操作-字符分割。在进行字符分割我们也特变关注不连通的汉字分割,如“川”,如果对于他的分割我们还是简单的只利用垂直投影的话,就会导致我们的分割错误而是失败,也会影响到我们后面的结果。对于川字的处理我们必须再加约束条件,才能是他正确完整的分割出来。为了能够准确的将字符分割出来里,我做了一个调查,得知我国车牌第1个字符都为汉字,并且宽度在45mm左后,第2个字符为字母,根据这一先验知识,我们可以把它作为又一个分割的约束条件,这样就能将字符准确的分割出来。这样就能更好的实用与中国 39 西华大学毕业设计说明书

汉字的分割情况。

5.4.1分割前的处理

经过了上述处理我们将车牌从原图提取出来了,但是得到的是RGB图像,不能进行字符的分割。所以我们需要提取到的彩色图像做分割前的处理,将我们得到的彩色车牌图像转化为清晰的二值图像。转化成二值图有一个关键的问题就是阀值的确定,如果大于阀值则为1,小于阀值为0。本次阀值采用全局阀值,它适用于背景和前景有明显对比的图像。采用这种方法的二值图像可能受到车牌图像背景和光照等外在因素限制,使我们得到的二值图像不想我们想象的那么理想,但是他计算简单,方便实现,程序运算效率高。我们还是选用全局阀值进行二值化。在Matlab实现方式如(1):

T=round(g_max-(g_max-g_min)/3) (1)

经过二值化的处理得到如图5-4-1所示的结果

图5-4-1

从结果来看图像中还是存在大量的噪声点,所以我们需要对车牌进一步去噪处理。这里采用均值滤波方式进行滤波,消除车牌中的噪声。所谓均值滤波实际上就是用均值替代原图中的各个像素值。它的方法是对待处理前的当前像素,选择一个模板,该模板为其近领域的若干像素组成,用模板中像素的均值来替代原像素的方法。在Matlab调用方式:

h=fspecial('average',3);

d=im2bw(round(filter2(h,d)));

imwrite(d,'4.均值滤波后.jpg');

figure(8),subplot(3,2,4),imshow(d),title('4.均值滤波后')

得到如图5-4-2的结果,

图5-4-2

从结果可以明显看出车牌去除了车牌中的噪声,而且图像得到了锐化。

40 西华大学毕业设计说明书

接着在对车牌图像进行膨胀和腐蚀处理根据经验值,车牌图像中,字符面积与车牌面积之比在(0.235,0.365)之间,因此计算字符面积与车牌面积比值,如果大于0.365则对图像进行腐蚀,如果小于0.235则对图像进行膨胀,这里的结果元素se采用的是一个二维单位矩阵,得到如图5-4-3所示结果

图5-4-3

由图5-4-3的结果图可以看出,车牌存在一定的倾斜角度,因此我们需要把车牌修正到水平,为后续车牌的处理奠定一定基础。本次设计采用rando变换对车牌进行倾斜校正,计算车牌饿倾斜角度,根据得到的角度对车牌进行一个旋转,即可将车牌调整到水平方向。采用rando变换方法简单,编程也不复杂,理解起来也比较的容易。在matlab的调用方式:[R,xp] = radon(I,theta)其中,I是图像矩阵,theta是角度,R是返回的radon变换,xp包含沿x轴的相应坐标,本次theta是一个矢量,R的列对应为相应角度的radon变换。在利用radon变换找到了图像的倾斜角度后,接着我们再利用旋转函数imrotate函数对原二值图进行旋转, 在Matlab的调用如下:d=imrotate(d,qingxiejiao,'bilinear','crop'),其中括号的d是原二值图,等号左边的d是经过倾斜校正后的图,qingxiejiao表示图像需要旋转的角度,bilinear表示双线性,crop表示旋转后图像的大小不发生变化方式。经过了图像的倾斜校正后,得到图5-4-4的结果图,由结果可以看出车牌被调整到了水平方向

图5-4-4倾斜校正

5.4.2字符分割

完成车牌了车牌的彩色图像提取,然后又对该车牌进行了比较理想的图像处

理如(二值化,去除小对象等)后,我们就可以对车牌字符进行分割。由于车牌 41 西华大学毕业设计说明书

进行处理后只有两个像素值0和1,根据这一特点,对车牌竖直方向上进行投影,有字符存在的地方,该投影就不为零,投影为零的即为字符与字符的分界线,即我们需要重处分割。但是这一分割方法当遇到不连通的字符如川就会出错,他会把川字分割成3个字符导致分割错误而失败。为了更好的分割不连通汉字,这里我们还需把先验知识作为约束条件,根据车管所的规定我们知道每个车牌包含七个字符,每个字符宽45mm,高90mm,字符间隔12mm,间隔符号宽10mm,我们可以把这些作为约束条件,这样可以提高字符分割准确性以更好的适应中国汉字的分割情况。字符切割流程图如下:

开始

车牌二值图

垂直投影

切除车牌四周的多余部分只留

下字符区域

切割出字符

将剩余部分保存并覆盖原

先图像

字符是否达到7个

保存字符

结束

图5-4-4字符切割流程图

我们在进行车牌的分割前,必须切除字符上下左右的空白区域,只留下字符区域。这里用投影法可以去除字符周边的黑色区域,在水平方向上投影,即可去除车牌字 42 西华大学毕业设计说明书

符上下的黑色区域,竖直方向投影可以去除字符左右的黑色区域。当一个字符被分割出来我们应该及时保存,然后将该字符区域用0像素覆盖,再切割,直到切割出7个字符为止。 经过切割,得到如图5-4-5的结果。

图5-4-6

从分割的结果图5-4-6可以明显看到,车牌被分割成了单个的字符“川”“A”“C”“P”“2”“8”“9”,每个字符被很好的隔离开来,分割的效果非常的好。

5.5车牌字符识别

为了后面我们能准确的将车牌信息识别出来,不论是运用模板法,还是运用神经网络法我们都需要对待识别的字符缩放成统一大小尺寸,方便后续的识别。针对本次设计的实际情况,考虑到模板法简单,编程简单,能够快速完成识别,所以本次设计采用模板法。由于车牌字符只有10个阿拉伯数字(0-9),50多个汉字(省份简称),20多个英文字母组成(A-Z),这里我们将10个数字、2个英文字母字符以及根据需求将“苏豫陕鲁川”做成40*20的模板,保存在字符模板档夹中。然后用经过归一化字符与模板匹配,得出车牌中的信息。这种识别方法简单、快速,但识别率低、误识别率高。

5.5.1 字符归一化

为了方便后续的识别工作,准确无误的将车牌识别出来,我们这里需要对分割好的字符归一化为统一大小,消除字符大一不一带来的识别错误问题。这里采用商用系统程序中归一化大小为 40*20。Matlab中用imresize(I,Size,Model)来实现,其中Model是插值运算方法,选用'nearest'最近邻插值法,经归一化后的图像如图5-5-1

图5-5-1

43

西华大学毕业设计说明书

5.5.2字符识别

本次设计采用的是模板匹配法对车牌字符的进行识别,在识别的过程中我们首先要根据要求建立本次要用到的模板档,matlab中调用liccode=char(['0':'9'

'A':'Z' '苏豫陕鲁川'])代码建立自动识别代码库。其中liccode是一个字符数组,char数组中所对应的元素号路径即为该字符模板。接着建立一个40 x 20的全零矩阵,用于接收匹配后的结果。然后由我国车牌的现状可知,车牌的第1个字符必定为汉字,所以我们只需与已建立得到char数组37-41号所对应的汉字字符模板进行对比,得到车牌的1个字符。由车牌的先验知识可知,车牌的第二个字符也为固定类型为字母,所以我们只需与将char数组中10-36号路径所在的字母模板进行对比,得出车牌的第2个字符。由车牌的常识知道,车牌后面剩下的5个字符既可以是字母也可以是数字,所以我们需要与char数组中1-36号所对应的数字元模板进行对比,得出车牌后面5字符的结果,最后将完整的车牌号显示在界面上。字符识别流程图如图5-5-2。

建立模板字符表

读取分割好的字符

第一个字符与模板中的汉字模

板进行比对

第一个字符与模板中的

汉字模板进行比对

后五个字符与模板中的字

母模板进行匹配

待标识符元与模板相减,找到相似

对最大的,即为匹配最好的

完成识别,结果输出

图5-5-2 字符识别流程图

44 西华大学毕业设计说明书

经过了一系列的在MATALB中图像各种处理,得到了如图5-5-3的结果图。从结果来看将本次的车牌号“川ACP289”被识别了出来了,显示在Matlab中的界面上。达到了设计的目的与要求。

图5-5-3 车牌结果图

5 .6 stm32软件快速开发

本次设计为了既利用到MATALB的强大功能又能实现STM32源程序的快速开发,需要在MATALB环境下安装rapidstm32这个模块。rapidstm32为MATLAB与STM32之间架起了一座桥梁,再利用rapidstm32模块的可视化交互式程序设计环境,不要在MDK下建立工程编写C程序,直接在Smiulink下建模转化为基于stm32的C程序及工程,实现stm32程序的快速开发,最后在对程序做一些调整。为了能够成功快速的开发在MATALB中安装此模块具有以下要求:

(1)只能用于MATLAB R2009a和32位r2011b之间。rapidstm32模块不与R2012或以后的工作。

(2)MATALB具有编码产生器Real-Time Workshop。

(3)RealView MDK需要4.13a或者以后版本。

(4)Windows需要XP SP2或者更高版本。

(5)需要Microsoft .Net Framework version 3.5或者更高版。

接着利用此模块的可视化交互式程序设计环境,在Smiulink下建模转化为基于stm32的程序和工程,不需要手工编写C或汇编语言,减少了很多的工作量,缩短了开发的时间。

45

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690331038a333766.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信