微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 汽车车牌定位识别完整设计

汽车车牌定位识别完整设计

时间:12-20 来源:互联网 点击:

1 摘要

该项目要求基于FPGA完成车牌定位算法。本项目拟充分发掘FPGA并行运算在图像处理领域的优势,实现基于Adboost算法的车牌检测硬件架构,最终完成车牌定位信息的实时输出。

2 系统原理和技术特点

2.1 Adaboost车牌定位算法原理

Adaboost车牌定位算法的设计,分为离线训练模块和在线识别模块如图1所示,离线训练模块通过对大量正、负样本的学习,形成一系列的弱分类器(典型特征),然后依据权重把这些弱分类器组合成强分类器,如图2(a)所示。实际应用时,若干个强分类器构成如图2(b)所示的Cascade结构,Cascade结构就像一个筛孔可变的筛子,开始的筛孔很大,使得大多数车牌都能通过,在此基础上尽量抛弃反例,位置越靠后的筛孔越复杂,即包含越多的弱分类器,因而也具有更强的分类能力。在线检测模块通过离线训练模块训练好的Cascade结构分类器,使用可以缩放的Haar特征,在待识别图片上进行多尺度的扫描,最后经过后续处理输出识别结果(车牌位置信息)。在线检测算法流程如图3所示。首先检测当前窗口,若未通过分类器则跳出;若通过所有分类器则判定为车牌,然后检测下一窗口。扫描完当前图像以后,放大检测窗口,重新扫描。

Adboost车牌定位算法基于Haar特征,Haar特征由一组矩形构成,图4所示就是几种Haar特征,黑白矩形内像素的灰度加权和是该特征的特征值。积分图表示其图像中任意一点,都是原始图像中行号和列号均小于该点的像素点像素值之和。利用积分图可以快速计算矩形的灰度和,即Sum=P1 +P4-P2-P3,其中Pi是积分图中矩形顶点对应的积分值。多个Haar特征组成一个分类器,多个分类器级联可以提高检测精度。

通过对近30000车牌样本的离线训练,本实验室已经得到能够适应复杂环境的Adaboost车牌特征(识别)库,实现的Adboost车牌检测算法在固定环境下拍照车辆图像,车牌定位识别率可达99%。本次大赛将重点关注车牌Adaboost算法在线检测的FPGA实现。

图1 AdaBoost车牌定位算法框图

(a)

(b)

图2 (a)强分类器构造 (b)Cascade结构图

图3 Adboost车牌定位算法流程图

(1) (2) (3)

图4(1)Harr特征 (2)积分图 (3)灰度和

2.2系统工作原理

2.2.1 系统组成

如图5,整个系统由FPGA完成车牌定位算法,配合外围的视频A/D,D/A、存储器等芯片,完成图像的采集和定位标记与原始图像地叠加输出。

图5 车牌检测系统

图6 基于FPGA的Adaboost车牌定位方案

2.2.2 系统方案

FPGA实现的Adaboost车牌定位方案如图6所示:

系统内I2C模块通过I2C总线配置A/D芯片的寄存器,使得A/D芯片能够正常工作。

视频输入模块接收A/D芯片输出的Ycbcr格式的视频数据,解码并提取出图像灰度数据后,将数据存到图像RAM和帧存RAM中。

车牌检测模块开始工作,读取图像RAM中内容,在被检图像中扫描是否包含车牌。车牌检测模块包括图像读取单元,流水线处理单元,分类器读取单元和检测单元。如果检测到车牌,则将车牌信息存储到检测结果合并单元。

车牌检测模块工作的同时,图像缩放单元负责将存储在帧存RAM中的图像进行缩小,并存储到图像RAM中。

交换处理对象,重复步骤3-4直到图像缩小后的大小与扫描窗口相当。

检测结果合并单元合并图像中检测到的重复的车牌,减少冗余的窗口以及误检的车牌。

绘制单元读取合并后的车牌位置和大小信息,并在原始图像中相应车牌位置绘制矩形标明。

在步骤1-7的同时,视频输出模块读取帧存RAM中的图像数据,并以VGA格式输出至D/A芯片,显示到显示器上。

重复以上步骤。

2.2.3 功能模块

整个系统负责接收经过流水线计算得到的特征向量值,并根据这些值以及扫描窗口的平方积分和等信息判断扫描窗口是否包含车牌。

视频输入模块:视频输入单元负责从A/D输出端接收视频数据,并将其中的有效像素提取出来,并产生正确的像素地址信息,保存到帧存中。

视频输出单元:视频输出单元负责从帧存中读出需要显示的图像,并按照VGA格式输出至D/A芯片,最终显示到显示器上。

图像读取单元:图像读取单元负责从帧存中读出扫描窗口,完成列积分和平方积分。

图像缩放单元:利用扫描窗口检测图像时,只能检测到与扫描窗口大小一致的车牌。图像缩放单元用于将图像缩小,使得同样大小的扫描窗口能够检测原图像中大于扫描窗口的窗口中是否含有车牌。

绘制单元:在原始图像上绘制车牌位置信息和车牌号码信息。

流水线处理单元:该流水线包括扫描窗口(存储阵列)及特征向量两条流水线,用于计算特征向量的特征值。

结果合并单元:车牌检测结果合并单元的作用就是将车牌区域周围的多个合格扫描窗口合并为

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top