车辆牌照识别是计算机视觉与模式识别技术在智能交通领
域应用的重要研究课题之一 , 该技术可广泛应用于交通控制与
诱导 , 交通流量检测 , 住宅社区和停车场信息化 , 机场、港口
等出入口车辆管理 , 不停车自动收费等。到现在为止已经有大
量学者在牌照识别问题上做了很多研究 , 提出很多方法。例如
在牌照定位方面 , 主要有基于色彩空间的牌照颜色建模方法 ,
基于 Hough 直线检测的牌照边框定位方法 , 基于牌照纹理特
征的定位方法和基于模板匹配的定位方法等; 在字符分割模
块 , 主要有基于纹理、投影特征的分割算法 , 基于 SVM 的聚
类方法和基于区域生长的分割算法等; 在字符识别模块主要有
模板匹配法、特征分类法和基于神经网络的分类方法等。由于
实际拍摄的图像往往存在噪声污染 , 畸变扭曲 , 字符断裂 , 光
照不均 , 牌照颜色、尺寸多样化等问题 , 而且系统对算法的复
杂度、鲁棒性有较高要求 , 所以单一地运用某种方法不能解决
问题。本文在参考这些研究并综合考察各种算法的基础上 , 提
出一套完整的牌照识别算法 , 在牌照定位模块 , 利用牌照纹理
和投影特征定位 , 并提出了波峰合并算法 , 避免了常规算法中
循环检测跳变点的复杂程序。在字符分割模块利用投影特征和
牌照尺寸的先验知识进行分割。在字符识别模块采用基于字符
特征的分步识别方法和基于牌照字符排列的模块识别结构。整
个处理过程还包含了牌照的噪声去除、边缘检测、反色处理、
二值化等处理步骤 , 考虑了牌照图像中各种可能的不利情况
最后 , 经实验检验 , 该套算法是行之有效的。
1 牌照定位
牌照的定位算法主要应用了牌照区域的纹理特征和投影特
征。(1) 纹理特征: 在牌照的灰度图像中 , 牌照字符与牌照底
色间较大的灰度差异导致字符与牌照底色交界处有明显的灰度
值跳变 , 这种跳变在很大程度上与光照无关 , 而字符与牌照底
色内部无明显跳变。牌照内多个字符均匀分布 , 在车牌所在的
矩形区域内形成有规律的边缘纹理间隔特征。牌照所在矩形区
域长宽比有一定变化范围。(2) 投影特征: 牌照的纹理特征导
致在图像的边缘检测投影图上 , 牌照区域呈现独特的峰谷分布
特征。对边缘检测图进行水平投影和垂直投影如图 1 所示 , 可
以看出 , 牌照区域的水平投影表现为连续的波峰区域 , 区域内
部没有大的落差 , 波形平缓 , 与其它小的波峰区域有明显的波
谷间隔。牌照区域的垂直投影为连续的峰谷交替 , 表现为一组
密集的小峰群 , 各个小波峰间距较小 , 可以合并成一个大的波
峰区域。这组小峰群与其他峰群有较大的间隔 , 可以明显区
分。依据这些投影特征 , 可以对牌照进行水平和垂直定位。
111 边缘检测
首先 , 根据公式 (1) 将读入的彩色位图图像灰度化 , 然
后利用中值滤波方法去除图像中小的颗粒噪声。由于牌照的纹
理的特征主要体现在边缘交界处 , 且由于笔划原因 , 车牌区域
字符的水平边缘较垂直边缘远为丰富 , 所以本算法采用改进的
水平一阶差分算子 (2) 对图像进行水平边缘检测 , 该算子运
算简单 , 能有效地检测出水平方向的边缘象素。然后对检测结
果进行二值化处理 , 大量处理实验表明取阈值为 75 能很好地
保留牌照区域的纹理 , 同时削弱图像其余部分的背景纹理。最
后利用模板 [1 , 1 , 1 ] 对二值化后的单边缘象素进行水平膨
图 1 对边缘检测图进行投影
胀处理 , 使纹理特征更加明显。
gray = (013 3 r + 01 59 3 g + 0111 3 b)
(1)
µ F( x , y) = max[ F( x , y) - F( x - 1 , y) ,
F( x , y) - F( x + 1 , y) ]
(2)
112 投影定位
根据牌照的投影特征 , 投影定位的具体算法就是从水平投
影图中检测出连续的波峰区域 , 从垂直投影图中检测出密集的
峰群区域。检测算法是峰值区域合并。以往的纹理定位中 , 检
测牌照区域算法主要采用统计跳变点的方法 , 算法复杂且不直
观。本算法将行或列的投影和作为判断元素 , 从整体投影特征
出发 , 具有直观且算法简单的特点。在该算法中将投影曲线的
局部最大值定义为波峰 , 局部最小值定义为波谷 , 波峰及其两
侧波谷所夹的区域为该波峰的波峰区域。由投影图可见 , 要寻
找的区域是由毗邻或间隔的波峰区域组成的 , 所以该算法的思
想就是不断合并满足条件的相临波峰区域 , 算法流程如图 2 所
示。
图 2 算法流程
2 字符分割
字符分割就是把牌照中的 7 个字符独立地提取出来。首先
要在锁定的牌照位置上恢复牌照的灰度图像 , 然后用二值化的
方法最大限度地区分字符和背景区域 , 并根据需要对处理结果
做反色处理和倾斜矫正 , 最后依据字符和边框的投影特征进行
字符分割。下面逐一对这些步骤进行介绍。
211 二值化处理
字符和底色的区分在图像处理中应用的是二值化的方法 ,
将字符和底色用两个灰度级表示。二值化阈值的选取采用“特
征线”法[1 ] 。该算法的原理是提取穿过车牌中部的水平直线作
为特征线 , 统计该线上像素点的灰度特征来确定阈值。本文采
用特征线的灰度均值加上一个动态偏移量作为阈值 , 且对牌照
区域进行分段二值化处理 , 避免了牌照灰度不均对二值化的影
响。
T = m + mse/ 2
式中 , m 为特征线灰度均值, mse 为动态偏移量 , 取值为特征线
灰度值的均方差
m =
1
wi dt h ∑
wi dth
k = 1
gray ( J , k)
J =
hei ght
2
; wi dt h 为牌照区域宽度, gray 为每点的灰度
值, hei g ht 为牌照区域高度
mse =
1
wi dt h ∑
width
k = 1
( gray ( J , k) - m) 3 ( gray ( J , k) - m)
T 为最终所求阈值,二值化就是将牌照区域中灰度大于该
阈值的像素置白( gray = 255 或 RGB = (255 ,255 ,255) ) ,小于
该阈值的像素置黑( gray = 0 或 RGB = (0 ,0 ,0) ) 。
212 牌照反色
我国现行的牌照主要有 4 种类型 : 蓝底白字、黄底黑
字、白底黑字 (或红字) 和黑底白字[ 2 ] 。这 4 种规格的牌
照在二值化图像中表现为黑底白字或白底黑字 , 为统一牌
照区域为黑底白字 , 需要对牌照区域进行反色判断和反色
处理。本文采用连通区域法进行反色判断。判断依据 : 二
值化后的牌照底色部分和字符表现为不同灰度级的连通区
域 , 且底色的连通区域像素数一定远大于单个字符的连通
像素数。根据连通区域像素数目区分底色和字符 , 并将底
色和字符的灰度做比较即可判断是否需要反色处理。上述
步骤中寻找连通区域的算法为 :
Step1 扫描图像 , 对首先遇到的未标记点 s , 标记 s , 并
将 s 的所有 8 个邻点压入堆栈。
Step2 堆栈为空时 , 标记过程结束。堆栈非空时 , 从堆
栈弹出 1 个点并标记该点 , 然后将该点的所有未标记的且具有
相同灰度的邻点压入堆栈。
Step3 重复第 2 步 , 直至堆栈为空时一个连通域标记完
成。
Step4 转第 1 步 , 继续标记下一个连通域 , 直到图像扫
描结束。
213 倾斜矫正
当车牌由于悬挂或摄像原因倾斜角度过大时 , 就要对
牌照进行倾斜矫正。本文采用 Hough 变换进行倾斜矫正。
检测对象是牌照四周首行或首列边缘像素 , 利用 Hough 变
换做 4 条直线拟和 , 求出倾斜角 , 然后对图像进行水平和
垂直矫正。
214 利用投影特征进行字符分割
字符分割分为水平分割和垂直分割。水平分割主要是去除
上下边框及铆钉 , 寻找字符主体区域; 垂直分割是去除左右边
框及二、三字符中间的小圆点 , 然后将 7 个字符完整独立地分
割开。水平切分前 , 在不影响笔画的条件下对牌照图像做上下
方向的腐蚀运算 , 使字符区域和上下边框间的波谷更明显 , 然
后依据波谷切分出字符主体区域。在垂直投影图中 , 与投影均
值相比 , 过长投影一般为边框 , 过短投影一般为铆钉、间隔点
或污点 , 将这些投影视均为噪声去除。然后分波谷切分、字符
区域判定、牌照特征统计和矫正切分 4 步进行垂直分割 , 如下
步骤所示。
(1) 波谷切分: 以波谷作为分割条件 , 将连续的投影区域
切分开[3 ] 。
(2) 字符区域判定: 在牌照字符中 , 除汉字因笔画断裂和
字符“1”会造成较窄的投影外 , 其余字符宽度一致 , 且字符
宽度与牌照长、宽符合一定比例 , 即: L ≈415 H , H ≈119Wc ,
其中L 为字符串长度, H 为字符高度, Wc 为常规字符(“1”除外)
宽度。依据这两个条件对第一步分割出的投影区域进行判断,标
定出常规字符区域。
(3) 牌照特征统计:根据确定的字符区域, 统计具体的 H ,
Wc 值及常规字符间距 D (二、三字符间距除外) 值。
(4) 矫正分割:如果字符区域判定结果小于 7 个字符, 则根
据已经确定的字符区域的位置和字符信息 H 、Wc 、D 对剩余的
投影区做判断分割。其中字符“1”的投影区域满足:W n ≈
013Wc , Dn ≈01 5W c , W n 为字符“1”的宽度, Dn 为字符“1”两
侧的字符间隙。对剩余投影区域进行矫正分割后就可以切分出
7 个完整的字符区域。
3 字符识别
车牌共有 7 个字符 , 一般第 1 个字符是汉字 (警车除外) ,
第 2 个字符是大写英文字母 , 第 3 、4 个字符可能是英文字母 ,
也可能是阿拉伯数字 , 目前第 5 至第 7 个字符均为阿拉伯数
字 , 如“鲁 A ·X 1 2 3 4”。根据字符排列顺序分别采用“汉
字识别”、“字母识别”、“字母数字混合识别”、“数字识别”4
个识别模块 , 每个识别模块都是根据待识别字符的特点 , 分为
粗分类、细分类和特征识别 3 步进行识别。下面对汉字识别和
字母数字识别模块加以介绍。
311 汉字识别
(1) 粗分类: 对汉字进行组合分析 , 根据汉字能不能分解
为偏旁、部首这一性质 , 可以将汉字分成独体字和合体字两大
类。由于汉字结构复杂 , 笔划多 , 为便于识别 , 本文将合体字
仅分为上下式和左右式两类 , 将包围式、半陷式等都归入独体
字类[4 ] 。分类方法是对字符不同方向的投影做双峰检测。
(2) 细分类: 利用矩特征、区域密度、轮廓特征系数、笔
画 (横、竖、左斜、右斜笔画) 特征进行分类。
(3) 特征识别: 针对形似字 , 可以对含有特征笔画的区域
做比较判别。
312 字母数字识别
(1) 粗分类: 根据字母和数字所包含的封闭环的数量和位
置将字符分为单封闭环字符类、双封闭环字符类、无封闭环字
符类[5 ] 。所谓封闭环是指构成字母和数字的弧笔画所形成一个
封闭的环 , 如数字“0”、“8”。
(2) 细分类: 根据字符包含的直笔画的位置和数量进行分类 , 其中直笔画又可分为横笔画、竖笔画、左斜笔画和右斜笔
画 , 笔画识别方法是对字符区域不同方向的投影做波峰检测。
(3) 特征识别: 对形似字可以根据对称性和对含有特征笔
画的区域做对比分析加以区别。
4 处理实例
处理实例分别如图 3~图 7 所示。
图 3 读入彩色图象 图 4 牌照定位结果图
图 5 牌照区域二值化结果 图 6 字符分割结果
图 7 识别结果
5 结论
本文的牌照识别算法主要是从牌照和字符的自身特点出
发 , 具有稳定和适应性好的优点。处理过程中综合考虑了各种
情况 , 如牌照倾斜矫正、反色处理等; 牌照的定位和字符分割
部分在应用纹理和投影特征的基础上 , 提出了直观、简单的波
峰合并算法; 字符识别模块最大地应用了字符的固定特征 , 避
免了模板匹配等识别方法要求归一化、对字符完整性要求高的
特点。通过采集车头和车尾的 200 多幅车辆牌照图像 , 并依据
此方法进行试验 , 结果表明在光照合适、倾斜角小于 15°的条
件下 , 准确定位率可以达到 96 %。
参考文献:
[ 1 ] 张思远 , 樊志远 , 吴仁彪. 车牌识别预处理中的二值化及倾斜矫
正算法 [J ] 中国民航学院学报 , 2006 , 24 (1) : 39 - 41.
[ 2 ] 周运祥 , 林志毅. 车牌识别中反色判断的新方法 [J ] . 交通与计
算机 , 2005 , (3) : 117 - 119.
[ 3 ] 刘庆祥 , 胡迎春. 智能车牌识别系统中字符图像分割技术的研究
[J ] . 长江大学学报 (自科版) , 2005 , 2 (1) : 65 - 67.
[ 4 ] 任柯昱 , 唐 丹 , 尹显东. 基于字符结构知识的车牌汉字快速识别
技术 [J ] . 计算机测量与控制 , 2005 , 13 (6) : 592 - 594.
[ 5 ] 宋建才. 字符结构知识在车牌识别中的应用 [J ] . 计算机应用 ,
2005 , 21 (3) : 33 - 36.
没有评论:
发表评论