2.2 中值滤波处理
粗定位后的车牌首先进行灰度化处理以减小数据量利于实时处理。其次为了抑制车牌图像在采集时产生的椒盐噪声等脉冲噪声影响,改善图像质量,本文对灰度化后的车牌图像进行中值滤波处理。
在FPGA中实现中值滤波,出于实际处理速度、处理效果和器件资源考虑,本文选用3×3邻域窗口。考虑到FPGA强大的并行处理数据能力,此处设计一种对3×3邻域中九个数据一起处理的方法,它是基于三输入排序单元构成,而每个三输入单元又是由若干二输入单元构成。这种方法比传统的冒泡排序法减少了逻辑资源的占用,却和其一样能找出中值,且只需经过3级的比较,即3个时钟周期的延时就可以找出中值。图2-2为本文在FPGA中设计实现快速中值滤波的框图。据此即完成了所采集的车牌图像的中值滤波去噪。
2.3 二值化处理
因为车牌定位和字符分割都是基于车牌区域的二值化结果进行,所以二值化的效果直接影响到车牌识别的效果。由于要从待检测的车牌图像区域截取图像的背景不会很复杂。前景区域和背景区域的差异比较明显,所以车牌图像的灰度直方图将有明显双峰效果。本文通过直方图的双峰法的方法来求取阈值,对车牌图像进行二值化处理。
3 车牌检测
在对采集到的车牌图像二值化处理以后,一帧图像的大小大幅度减小,约为400k 左右,下面就是把该二值化车牌图像传输至NIOS II 软核内进行分割等后续处理,考虑到NIOS II软核中资源丰富的特点,本文通过增加输入输出口的数量来提升数据传入的速度,从而满足系统的实时性处理要求。根据数据传输需求,本文设计通过22 个32bit 的输入输出口来传送数据,虽然22×32=704bit 相比一帧图像的一行720bit 少了16bit,但考虑到车牌图像的边缘是非字符目标区域的背景图像,对最终识别结果的影响甚小,故可以近乎忽略。
3.1 基于车牌字母及数字特征的准确定位
通过车牌的彩色特性对车牌进行预定位后,再根据车牌号码的字母和数字在二值化后的特性准确定位出车牌的位置,如果此时定位出车牌的位置在彩色通道预定位的车牌区域内,则说明车牌位置已经确定,如果不在彩色通道定义的车牌位置范围之内,则需要重新判断。
(1)定位牌照的上下边界:若某一行的0→1(白到黑)和1→0(黑到白)变化次数大于设定的阈值,则设其为待测车牌的最低点,继续扫描直至0→1 和1→0 变化次数小于阈值,将该阈值设为待测车牌的最高点。若最高点与最低点之差大于15,则认为目标已检测到,否则继续进行扫描;如果未检测到符合上述条件的目标,则自动门限值重复以上的操作,直到找到目标为止。
(2)定位牌照的左右边界:在找到车牌的上下限后,利用二值图像在竖直方向上的投影作为特征,从左到右寻找目标的中心点坐标。车牌定位效果如图3-1 所示: