基于FPGA的车牌识别系统

Download Report

Transcript 基于FPGA的车牌识别系统

基于FPGA车牌识别系统
指导老师:翟建芳
小组成员:邹玉龙
于洋
苟旭博
李少华
项目背景





随着经济与生活水平的提高,车辆的数目日益增多,
对车辆的自动化管理显得日益重要。
总体上看,对车辆的管理,已经成为国家交通运输的
重要内容。
传统的车辆管理系统是在对图像进行采集后进行存储,
之后传送至计算机内进行人工识别。
如果单靠人工进行管理,浪费了大量的精力与物力。
很显然,传输图像有许多多余,而且这种工作对于人
类来说很枯燥与无价值。
项目产品特点
本系统采用FPGA来做车牌自动识别,能在以下
几个方面应用并体现出优越性:





停车场乱停车辆:在交通不是繁忙地段可以传输文字。
车辆的追踪:可以根据该车辆在数据库的信息,查出
该车出现过位置
节约存储空间
节约人力资源
体积小,可靠性高
理论基础

模式识别、数字图像处理、数字信号处理以及
概率统计理论基础,通过FPGA的灵活编程实
现自己计算方法。通过功能仿真、综合后仿真
和时序仿真后,确保编写出的模块正确性,就
可以把编写好的各个功能模块下载到FPGA内
部或者片外的配置器件中。
硬件平台
FPGA(现场可编程逻辑阵列)
本系统采用Xilinx公司SPARTAN-3E和Virtex-5进行测试,Virtex中嵌入
了PowerPC处理器,在SPARTAN-3E上使用Microblaze软核系统开发,
在Virtex-5中实现软件硬件化。
开发流程
FPGA系统开发流程可分为软件与硬件,从硬件寄存器
操作和算法程序代码编写两方面进行开发。
软件平台







*)Xilinx ISE:仿真,对算法、关键路径、流水线、有限状态机等
优化,软核与EDK的应用。
*)Synplify:综合下载到FPGA
*)Modelsim:功能仿真
*)Xilinx AccelDSP:数字信号处理工具
*)Xilinx platform studio(XPS):在集成环境GUI中创建完成嵌入式
设计
*)Xilinx software development kit(SDK):对XPS的一些补充,包
括中断定时器控制等
*)可编程网表构造(platform generator):以及验证测试软件
系统功能确定
系统研制
数据库服务器
采集数据
PC机
传输通信
开发人员
客户
TFT-LCD
SPARTAN-3/VIRTEX-5
FPGA
交互
用户

用户输入车牌
显示出该车出现位置
互联网
图像数据传送到FPGA上,通过算法实现将车牌上字
符显示在LCD上
研发预期成果
系统指标




性能:以O(n)=1s实现识别功能。
成本:spartan-3e(700元) virtex-5(10290元);
开发人员费用(0元);
模式识别、数字图像处理视频(0元);
相关FPGA书籍以及网络资源(0元);
功耗:本身传输字符小容量并且使用交流电。
功耗因素影响较弱。
可靠性:达到60%识别率,车牌倾斜角度不超过10度内,
可以成功识别。
系统阶段产品时间
Q4 10年
ID
任务名称
开始时间
Q1 11年
完成
11/14 11/21 11/28 12/5 12/12 12/19 12/26 1/2 1/9 1/16 1/23 1/30 2/6 2/13 2/20 2/27 3/6
1 调研讨论所涉及领域、搜集方案
2010/11/11
2010/11/24
2 确定核心算法、分析可行性与需求
2010/11/29
2010/12/22
3 图像处理、FPGA调试、代码编写
2010/12/24
2011/1/14
4 完成各个模块与单元功能仿真
2011/1/17
2011/2/10
5 系统集成与测试、确保识别率
2011/2/11
2011/3/10
阶段分析





阶段一:理论调研
对车牌涉及的图像、算法、模式识别、FPGA、总
线协议知识进行调研作为理论基础。
阶段二:分割字符
将图像数据输入FPGA中,基于常用的垂直投影
算法,使用变换的分割阈值,经过迭代循环,达
到字符分割。
阶段三:识别
车牌上的字符由字母,数字,汉字构成。由模式
识别中的聚类来看一共是26+10+34个聚类中心,
对采集来的数据进行滤波等处理后进行聚类
结构匹配,由于已知是70个聚类,所以采用K均
值聚类法来进行分类决策
算法:在FPGA上使用软核对其进行K均值迭代计
算,将样本与已经有的聚类通过最小距离进行匹
配。这里K中聚类的数目、初始值、模块集合分
布会影响算法速度,如果可以优化出能快速选中
相邻的聚类,可以大大的提高实时要求。
阶段四:定位
车牌的提取,采用多个特征(颜色分量,灰度图,
形状大小)进行对车牌的定位提取出车牌图像,
FPGA上并行处理后给出决策判定。
阶段五(*):传输
通过通信协议进行对经过处理的图像数据与PC的
互联。
关键技术分析

字符分割:将背景中有意义的单个字符提取出来,为识别打下基础。
字符分割技术有许多比如:车牌区域纹理特征、数学形态学、Hough变换
都能分割字符。
本系统字符分割流程:二值化->搜索字符边界->执行分割
由于字符块在竖直方向上的投影必然在字符间取得局部最小,因此字符
正确分割位置应该在上述局部最小值附近,所以采用垂直投影方法实现。
这里是基于车牌已经定位情况。明确白色灰度值255,黑色灰度值0。
分割流程:二值化->搜索字符边界->执行分割
*)二值化:将灰度图像选取一个适当的阈值变为黑白图像,可以根据需求
设置不同的阈值以便进行分割。
*)寻找字符边框:竖直扫描图像出现灰度值连续超过某个定值,确定上下
边界;横向扫描图像出现灰度值连续超过某个定值,确定左右边界。也
可以采用Hough变换(原坐标系下对应的线在参数左边系下呈现成点)求
得。
*)字符分割:垂直投影就是竖直边界内扫描,小于某个定值即进行分割。
关键技术分析

字符识别:由于涉及模式识别、图像处理、人工智能、计算机
等学科,识别方法多种多样。
主要识别方法有:统计识别、结构识别、神经网络字符识别、模
板匹配字符识别。由于图像环境复杂,统计和 结构识别两种传统
方法并不可靠,目前主要采用后两类。
*)神经网络字符识别具有良好容错、分类、并行 处理能力,但是为
了保证识别率需要大量样本,这就需要长时间学习。
*)模板匹配字符识别相对算法简单,速度较快主要有简单模板匹配、
外围轮廓匹配、投影序列匹配、外围轮廓投影匹配等。
本系统主要研究神经网络和模板匹配两种方法。目前掌握知识还
有所欠缺,边做边学。
关键技术分析

车牌定位:车牌图像中并不只包含车牌,还有车身、背景以及噪
声。
目的:在复杂环境中准确快速找出车牌位置。
方法:水平灰度特征提取、边缘检测定位、车牌颜色特征提取、
Hough变换定位、小波变换、数学形态学等理论方法。
由于水平灰度特征对车体颜色依赖性、边缘检测后续工作依然复杂、
小波变换在FPGA上实现难度等特点,并且由于理论到实践以及代
码实现有所差别,本系统将测试主要使用颜色特征提取,也将实
验Hough变换定位或者更多的方法进行实验。
其中颜色特征提取根据每个颜色都是由RGB分量构成而RGB与灰
度图关系转换成灰度图像,由于车牌大部分是蓝白和黑黄所以设
定特定的阈值来进行局部二值化后,从底部开始水品扫描,由于
字符的存在,通过黑白变化的次数来确定字符上下界。
阶段开发管理




实现客户需要主要功能:即识别车牌。
开发中,每2周开次30分钟例行会议,每周4人
轮流写份周报,提高交流沟通。
第二阶段完成能交付客户识别字符功能,与用
户交流(根据用户需求看能否省略如疆等字符
识别),给予充足时间对主要需求进行测试。
第三阶段完成交付客户车牌定位功能,根据进
度分析用户是否需要变更或者额外功能。
风险估计

1、管理和设计风险(40%)


类似的成熟产品已经出现,需要在别人的基础上面,做得更好。
项目的时间很有限,需要完成的工作比较重。

2、技术风险(50%)


需要学习模式识别、数字图像处理、数字信号处理以及概率统计理论基
础课程和FPGA,以及一些软件的使用。
需要攻克一些技术难点。
文字和图像定位技术。
文字和图像分割技术。
文字和图像提取技术。
文字和图像存储技术。
将文字和图像数据和FPGA关联的技术。
模糊识别,排除环境干扰等等的技术。
节省流量技术。

3、保证产品的稳定性与识别率(10%)







任务分解,成员分工
工程实践
邹玉龙
于洋
苟旭博
李少华
图像识别理论
C代码实现
通信与数据搬移
时序控制仿真
FPGA图像算法
功能仿真
综合意见
参考文献
给定车牌
LCD显示
车牌定位
LCD显示
传输至PC进
行管理
基于FPGA车牌识别系统
工程开发避免不了人力分配,考虑到考试等外界因素,在我们这次系统
开发中两个人负责一个功能模块,不但防止人员变动造成产品延期,也
能促进成员对系统整体了解。
当前进度

按照课本以及相关FPGA书
籍上测试程序在开发板上实
验(包括点亮LED、LCD库
内字符显示、开关控制LED
和LCD),加深对FPGA了
解,熟悉开发环境。

目前任务是汉字字符在LCD
上的显示,EDK使用与IP核
内寄存器使用。
小组理念




项目可视化:明确各阶段目标交付产品。
满意度:与同是做FPGA车牌识别系统小组进
行探讨并且接受他们对产品意见。
交流沟通 :两周一次例会交流对目前工作问
题与难点交流。
关注变化:FPGA以及自学视频收获写在周报
上进行交流。