APP下载

基于HALCON的车牌识别研究

2014-08-20张银苹葛广英

现代电子技术 2014年16期
关键词:车牌字符分类器

张银苹+葛广英

摘 要: 为了实现车牌字符快速准确的识别,基于Halcon软件提出了一种二次阈值的车牌定位方法,根据车牌在HSV颜色模式中S通道的纹理特征进行一次阈值,获取车牌候选区域,其次校正车牌候选区域,最后进行第二次阈值,通过字符区域的最大(小)行(列)值确定出精确的车牌区域;在字符分割模块提出了一种汉字分割与其他字符连通域法相结合的方法。实验结果表明,这两种方法简单快捷、识别正确率高。

关键字: 车牌定位; 字符分割; 字符识别; Halcon

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2014)16?00092?04

Study on license plate recognition based on HALCON

ZHANG Yin?ping, GE Guang?ying

(School of Physics Science and Information Technology, Liaocheng University, Liaocheng 252000, China)

Abstract: In order to achieve accurate and quick recognition of license plates, a license plate positioning method with secondary threshold is proposed based on Halcon. A primary threshold is made based on the license plate texture characteristics of S channel in HSV color mode to get the candidate region of a license plate, and then adjusting the candidate region to make the second threshold and determine the exact license plate region according to the maximum (minimum) row (column) value of the character region. As for the character segmentation module, a method to combine Chinese character segmentation with other character connected domain method is proposed. The experimental results indicate that both of the two methods are simple and quick, and have high recognition rate.

Keywords: license plate location; character segmentation; character recognition; Halcon

0 引 言

随着私家车的不断增加,智能交通系统[1]在交通、大型停车场、收费站等场合的车辆管理发挥着重要作用,而车牌识别是智能交通系统中的重要部分。车牌识别系统包括图像采集、车牌定位、字符分割与字符识别四部分。其中,车牌定位是车牌识别系统实现字符分割与字符识别的前提。目前车牌定位有以下几种方法:基于纹理特征和颜色匹配的方法[2]、基于小波分解的方法[3]、基于边缘检测的方法[4?5]、基于形态学的方法[6]等。实践表明,以上每种方法都有其优点和不足之处,例如基于纹理的方法是根据车牌区域灰度变化密集的特征利用扫描法和投影法同时与车牌颜色匹配来实现车牌定位,克服了单一特征的局限性,但容易受光线干扰;边缘检测方法噪声抑制能力较强,定位准确率高,但在车牌褪色严重字迹不清的情况下无法检测到车牌边缘而导致定位失败。

字符分割是将车牌区域中的7个字符分割为相互独立的字符区域。通常字符分割方法有以下几种:聚类分析法[7]、垂直投影法[8?9]、模板算法[10]和最大最小优化熵法[11]等。但聚类方法中由于汉字包含多个连通域所以需要重复的聚类,而垂直投影法受噪声的影响较大。

本文针对车牌定位与字符分割模块分别提出了一种新的处理方法,在车牌定位模块提出了在HSV通道上采用两次阈值实现车牌定位的方法,由于在S通道上车牌区域明显比其他部位亮,可采用阈值方法获取,此方法简单并且节省时间。在字符分割模块提出了汉字分割与连通域相结合的方法,先将汉字独立分割出来,得到它的连通域,再将独立的汉字连通域与其他6个字符的独立连通域合并到一个区域中,得到一个包含7个相互独立的字符连通域的区域。此方法能够准确获取字符信息并解决了聚类方法中需要对汉字重复聚类的问题。字符识别是先提取分割字符的特征,然后利用已训练好的分类器进行分类识别的过程。在字符识别模块采用的是BP神经网络识别法。

1 车牌识别系统

车牌识别系统在德国MVTec公司研发的图像处理软件平台Halcon上实现,此软件包含1 000个以上的独立的函数,已经是公认的具有最佳效能的机器视觉软件[12]。使用Halcon软件来实现车牌识别系统的设计具有运行时间短、稳定性高和实时性好等特点。本文车牌识别系统包括图像采集、车牌粗定位、车牌校正、车牌精确定位、字符分割和字符识别几部分,如图1所示。

图1 车牌识别流程

2 车牌图像的处理与定位

车牌定位是车牌识别系统的重要一步,首先采集图像并对图像进行预处理,包括转换为灰度图像与HSV图像、灰度阈值和去噪声。然后利用S通道图像阈值,通过区域特征选择出车牌候选区域,再将候选区域校正,二次阈值定位,从而得到精确的车牌区域。

2.1 车牌图像处理

利用Halcon软件中的算子read_image()从磁盘中加载已获取的图像。而采集到的图像一般是彩色图像,需要在车牌识别处理前进行预处理将彩色图像转化为灰度图像,原图像与转化的灰度图像如图2所示,转化原理如下:

[fx,y=0.299Rx,y+0.587Gx,y+0.114Bx,y] (1)

式中:[fx,y]表示转化后灰度图像元素的灰度值;R(x,y);G(x,y),B(x,y)分别为彩色图像中每个元素的红、绿、蓝的分量值。

在灰度图像中,由于各种原因车牌区域与其他区域的对比度较低,难以实现车牌区域的定位。本文采用HSV颜色模式,其中H表示色调,S表示饱和度,V表示明度,此模式最接近人眼的观察效果,因此最适合用于图像处理。

可以看出在S通道上车牌区域灰度值明显大于其他区域(如图2所示),在转化HSV前需将彩色图像分为R、G、B三个独立单通道图像,再将此三个单通道图像转化为HSV图像,基本原理如下:

[V=maxR,G,B] (2)

[S=Max-MinMax] (3)

[H=G-BMax-Min×60,R=Max2+B-RMax-Min×60,G=Max4+R-GMax-Min×60,B=Max0, Max=Min] (4)

式中:[Min=minR,G,B],[Max=maxR,G,B]。

对S通道图像阈值,再进行去噪处理可以得到比较干净的车牌区域,处理后效果如图2所示。

图2 原图与部分处理后图像

2.2 车牌粗定位

图像预处理后可得到比较干净准确的车牌候选区(见图3),车牌第一次定位方法如下:

(1) 利用区域面积特征和Halcon中的select_shape_

std()算子选择出车牌候选区域。

(2) 在铆钉区域的影响下,车牌区域有时会出现字符孤立的情况,需对车牌区域进行膨胀处理,然后进行填充。膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程,它可以桥接裂缝。此处可运用膨胀算子dilation_circle(),膨胀半径选择为3.5。膨胀的定义为:

[A⊕B=z(B∧)Z?A≠?] (5)

此式表示B对A的膨胀,式中A和B是Z2中的集合。

(3) 利用算子get_region_points()获取车牌区域的行列,取得最大行列值和最小行列值,即可确定出一个包含车牌区域的矩形region。

(4) 通过获取的矩形region在灰度图片中分割出与此矩形区域大小位置一致包含车牌的图像,即车牌候选区,可用算子 reduce_domain()和crop_domain()实现。

2.3 车牌校正

在采集图像时车牌倾斜几乎是不可避免的,为了不影响字符分割,需要对倾斜车牌进行校正,可通过以下几步对车牌进行校正:

(1) 对粗定位后获取的车牌图像进行灰度阈值;

(2) 连接连通域,由连通域的不同特征选择出车牌上的字符区域;

(3) 将各个独立的字符连通域合并为一个连通域;

(4) 采用求连通域外接椭圆角度的方法,求得倾斜弧度[θ](外接椭圆长半轴与水平x轴的夹角)。其示意图如图4所示。

图3 车牌粗定位处理过程示意图

图4 外接椭圆角度示意图

求外接椭圆倾斜角度[θ]的公式如下:

[θ=-0.5arctan22M11,M02-M20] (6)

式中:[θ]的取值范围为:[-π2,π2];M20为二阶行矩,M02为二阶列矩。

(5) 可用图像旋转算子rotate_image()将倾斜车牌图像旋转[-θ]弧度,即可校正,因此算子的旋转量为角度,所以应先将弧度[θ]换算为角度,如图5所示。

图5 车牌校正过程示意图

2.4 车牌精确定位

校正后的图像中还有大量多余区域,需要对车牌进行第二次定位,此次定位与第一次定位相似,仍然采用灰度阈值的方法。首先,对校正后的图像灰度阈值,进行区域连通获得各个独立的连通域;其次,利用区域面积特征选择出字符区域,将字符区域合并为一个区域;然后,由获取的区域行列值画出一个比较精确的车牌字符矩形区域;最后,分割出精确的车牌字符区域图像,如图6所示。

图6 精确定位过程示意图

3 字符分割

我国车牌第一个字符为汉字,其他字符均为字母和数字,由于汉字一般由几个连通域组成,无法对汉字直接使用连通域法,所以本文字符分割采用的是汉字分割与字符连通域法相结合的方法(见图7),此算法简单快捷,而且准确率高,可通过以下步骤实现:

(1) 第二个字符和第三个字符之间的距离较接近一个字符的宽度,所以将车牌区域分割为8个大小相同的矩形,可以将汉字无信息丢失的分割出来,分割矩形宽度计算方法:获取精确定位后车牌图像的宽Width,分割宽度[d=Width8]。

(2) 对车牌图像和分割出的汉字图像进行灰度阈值,分别得到包含车牌所有字符区域region1和汉字连通区域region2。region1中包含了汉字区域,需将汉字区域剪切掉,得到字母与数字区域region3,再进行连通域连接,则可获取包含所有字母和数字相互独立连通域的区域region4。在region4中还含有车牌圆点的区域,通过区域面积特征将所需要的字符区域筛选出来得到只含有字母和数字的区域region5。

(3) 最后将汉字区域region2和字符区域region5相加,得到包含所有字符的区域region6,此区域中每个字符区域都是各自独立的连通域。

图7 字符分割过程示意图

4 字符识别

字符识别模块采用的是基于BP(Back Propagation)神经网络的识别算法,将提取到的字符特征输入到一个三层神经网络OCR分类器中进行分类识别。基于Halcon软件的强大功能,本系统中只训练了一个分类器,其中包含汉字、字母和数字。

BP神经网络采用的是误差反向后传学习算法,包含了信息的正向传播和误差的反向传播两个学习过程。BP神经网络由输入层、隐层和输出层组成,结构图如图8所示。输入层各经元将输入信号传递到隐层点,经过作用函数的非线性变换后,传输到输出节点,得到最终结果。当输出与期望输出不一致时,转入误差反向传播过程,将误差通过梯度下降的方式向隐含层、输入层逐层反传,修正各层权值,经过反复学习训练使误差达到最小。

图8 BP神经网络结构

进行分类器训练时,首先用算子append_ocr_trainf()训练OCR样本文件,将训练好的样本文件输入到要创建的分类器中,利用create_ocr_class_mlp(),trainf_ocr_

class_mlp()和write_ocr_class_mlp()三个算子来实现分类器的创建,并将创建好的分类器保存在指定位置。本文所创建的BP神经网络包括:输入层、隐含层和输出层,共三层。

对训练字符提取了8×10个特征,所以输入神经元为80个,隐含层神经元个数大约为输入神经元的2倍,经过实验测得当隐含层神经元取162个时效果最好。输出神经元的个数可由式(7)来计算:

[A=INTlogN+1] (7)

式中:A为输出神经元的个数;N为待识别字符的个数。

然后,对已得到的各个独立的字符连通域提取特征并分类识别,此处由Halcon实现:

(1) 从磁盘中调出已经创建好的分类器,用算子read_ocr_class_mlp()实现。

(2) 利用算子do_ocr_multi_class_mlp()对各个字符区域提取特征进行分类,并返回识别的字符数组。

(3) 将识别出的字符显示在图像窗口上,见图9。

图9 识别结果显示

5 结 语

本文利用机器视觉Halcon软件对使用同一个相机随机采集的多幅不同背景的车牌图像进行了识别测试,识别正确率达到了95.2%,平均每0.466 s可完成一幅图像识别。

本文提出的一种二次阈值的定位方法,经实验验证此方法简单可行,并且采用的HSV颜色模式在处理夜间车牌图像时也有很大优势[11]。在字符分割模块提出了汉字分割与其他字符连通域法相结合的方法,此方法只需将汉字分割出来,无需精确计算每个字符的宽度,为字符分割模块减少了计算量。

参考文献

[1] 黄宝生,黄海波.车牌视频识别系统的设计[J].现代电子技术,2013,36(10):90?93.

[2] 黄艳国,赵书玲,许伦辉.基于纹理特征和颜色匹配的车牌定位方法[J].微电子学与计算机,2011,28(9):123?126.

[3] 许礼武,许伦辉,黄艳国.基于小波分解的车牌定位算法[J].计算机工程,2006,32(21):191?193.

[4] 沈勇武,章专.基于特征颜色边缘检测的车牌定位方法[J].仪器仪表学报,2008,29(12):2673?2677.

[5] 王磊,王瀚漓,何良华.基于双边缘检测的车牌识别算法[J].计算机工程与应用,2013,49(8):169?173.

[6] 李刚,增锐利,林凌,等.基于数学形态学的车牌定位算法[J].仪器仪表学报,2007,28(7):1323?1327.

[7] 陈黎,黄心汉,王敏,等.基于聚类分析的车牌字符分割方法[J].计算机工程与应用,2002,38(6):221?223.

[8] 迟晓君,孟庆春.基于投影特征值的车牌字符分割算法[J].计算机应用研究,2006,23(7):256?257.

[9] 周景超,陈锋,陈为多,等.车牌字符分割的研究和实现[J].计算机工程,2006,32(5):238?243.

[10] 穆丽娟,籍焱.基于新模板的算法在车牌字符分割中的应用[J].计算机工程与应用,2012,48(19):191?196.

[11] 王洪亚.基于HSV的夜间车牌识别算法[J].智能计算机与应用,2013(2):86?88.

[12] 谭杰,王殊轶,王慧芳,等.基于Halcon的图像拼接算法研究[J].微电子学与计算机,2011,28(12):184?187.

(3) 最后将汉字区域region2和字符区域region5相加,得到包含所有字符的区域region6,此区域中每个字符区域都是各自独立的连通域。

图7 字符分割过程示意图

4 字符识别

字符识别模块采用的是基于BP(Back Propagation)神经网络的识别算法,将提取到的字符特征输入到一个三层神经网络OCR分类器中进行分类识别。基于Halcon软件的强大功能,本系统中只训练了一个分类器,其中包含汉字、字母和数字。

BP神经网络采用的是误差反向后传学习算法,包含了信息的正向传播和误差的反向传播两个学习过程。BP神经网络由输入层、隐层和输出层组成,结构图如图8所示。输入层各经元将输入信号传递到隐层点,经过作用函数的非线性变换后,传输到输出节点,得到最终结果。当输出与期望输出不一致时,转入误差反向传播过程,将误差通过梯度下降的方式向隐含层、输入层逐层反传,修正各层权值,经过反复学习训练使误差达到最小。

图8 BP神经网络结构

进行分类器训练时,首先用算子append_ocr_trainf()训练OCR样本文件,将训练好的样本文件输入到要创建的分类器中,利用create_ocr_class_mlp(),trainf_ocr_

class_mlp()和write_ocr_class_mlp()三个算子来实现分类器的创建,并将创建好的分类器保存在指定位置。本文所创建的BP神经网络包括:输入层、隐含层和输出层,共三层。

对训练字符提取了8×10个特征,所以输入神经元为80个,隐含层神经元个数大约为输入神经元的2倍,经过实验测得当隐含层神经元取162个时效果最好。输出神经元的个数可由式(7)来计算:

[A=INTlogN+1] (7)

式中:A为输出神经元的个数;N为待识别字符的个数。

然后,对已得到的各个独立的字符连通域提取特征并分类识别,此处由Halcon实现:

(1) 从磁盘中调出已经创建好的分类器,用算子read_ocr_class_mlp()实现。

(2) 利用算子do_ocr_multi_class_mlp()对各个字符区域提取特征进行分类,并返回识别的字符数组。

(3) 将识别出的字符显示在图像窗口上,见图9。

图9 识别结果显示

5 结 语

本文利用机器视觉Halcon软件对使用同一个相机随机采集的多幅不同背景的车牌图像进行了识别测试,识别正确率达到了95.2%,平均每0.466 s可完成一幅图像识别。

本文提出的一种二次阈值的定位方法,经实验验证此方法简单可行,并且采用的HSV颜色模式在处理夜间车牌图像时也有很大优势[11]。在字符分割模块提出了汉字分割与其他字符连通域法相结合的方法,此方法只需将汉字分割出来,无需精确计算每个字符的宽度,为字符分割模块减少了计算量。

参考文献

[1] 黄宝生,黄海波.车牌视频识别系统的设计[J].现代电子技术,2013,36(10):90?93.

[2] 黄艳国,赵书玲,许伦辉.基于纹理特征和颜色匹配的车牌定位方法[J].微电子学与计算机,2011,28(9):123?126.

[3] 许礼武,许伦辉,黄艳国.基于小波分解的车牌定位算法[J].计算机工程,2006,32(21):191?193.

[4] 沈勇武,章专.基于特征颜色边缘检测的车牌定位方法[J].仪器仪表学报,2008,29(12):2673?2677.

[5] 王磊,王瀚漓,何良华.基于双边缘检测的车牌识别算法[J].计算机工程与应用,2013,49(8):169?173.

[6] 李刚,增锐利,林凌,等.基于数学形态学的车牌定位算法[J].仪器仪表学报,2007,28(7):1323?1327.

[7] 陈黎,黄心汉,王敏,等.基于聚类分析的车牌字符分割方法[J].计算机工程与应用,2002,38(6):221?223.

[8] 迟晓君,孟庆春.基于投影特征值的车牌字符分割算法[J].计算机应用研究,2006,23(7):256?257.

[9] 周景超,陈锋,陈为多,等.车牌字符分割的研究和实现[J].计算机工程,2006,32(5):238?243.

[10] 穆丽娟,籍焱.基于新模板的算法在车牌字符分割中的应用[J].计算机工程与应用,2012,48(19):191?196.

[11] 王洪亚.基于HSV的夜间车牌识别算法[J].智能计算机与应用,2013(2):86?88.

[12] 谭杰,王殊轶,王慧芳,等.基于Halcon的图像拼接算法研究[J].微电子学与计算机,2011,28(12):184?187.

(3) 最后将汉字区域region2和字符区域region5相加,得到包含所有字符的区域region6,此区域中每个字符区域都是各自独立的连通域。

图7 字符分割过程示意图

4 字符识别

字符识别模块采用的是基于BP(Back Propagation)神经网络的识别算法,将提取到的字符特征输入到一个三层神经网络OCR分类器中进行分类识别。基于Halcon软件的强大功能,本系统中只训练了一个分类器,其中包含汉字、字母和数字。

BP神经网络采用的是误差反向后传学习算法,包含了信息的正向传播和误差的反向传播两个学习过程。BP神经网络由输入层、隐层和输出层组成,结构图如图8所示。输入层各经元将输入信号传递到隐层点,经过作用函数的非线性变换后,传输到输出节点,得到最终结果。当输出与期望输出不一致时,转入误差反向传播过程,将误差通过梯度下降的方式向隐含层、输入层逐层反传,修正各层权值,经过反复学习训练使误差达到最小。

图8 BP神经网络结构

进行分类器训练时,首先用算子append_ocr_trainf()训练OCR样本文件,将训练好的样本文件输入到要创建的分类器中,利用create_ocr_class_mlp(),trainf_ocr_

class_mlp()和write_ocr_class_mlp()三个算子来实现分类器的创建,并将创建好的分类器保存在指定位置。本文所创建的BP神经网络包括:输入层、隐含层和输出层,共三层。

对训练字符提取了8×10个特征,所以输入神经元为80个,隐含层神经元个数大约为输入神经元的2倍,经过实验测得当隐含层神经元取162个时效果最好。输出神经元的个数可由式(7)来计算:

[A=INTlogN+1] (7)

式中:A为输出神经元的个数;N为待识别字符的个数。

然后,对已得到的各个独立的字符连通域提取特征并分类识别,此处由Halcon实现:

(1) 从磁盘中调出已经创建好的分类器,用算子read_ocr_class_mlp()实现。

(2) 利用算子do_ocr_multi_class_mlp()对各个字符区域提取特征进行分类,并返回识别的字符数组。

(3) 将识别出的字符显示在图像窗口上,见图9。

图9 识别结果显示

5 结 语

本文利用机器视觉Halcon软件对使用同一个相机随机采集的多幅不同背景的车牌图像进行了识别测试,识别正确率达到了95.2%,平均每0.466 s可完成一幅图像识别。

本文提出的一种二次阈值的定位方法,经实验验证此方法简单可行,并且采用的HSV颜色模式在处理夜间车牌图像时也有很大优势[11]。在字符分割模块提出了汉字分割与其他字符连通域法相结合的方法,此方法只需将汉字分割出来,无需精确计算每个字符的宽度,为字符分割模块减少了计算量。

参考文献

[1] 黄宝生,黄海波.车牌视频识别系统的设计[J].现代电子技术,2013,36(10):90?93.

[2] 黄艳国,赵书玲,许伦辉.基于纹理特征和颜色匹配的车牌定位方法[J].微电子学与计算机,2011,28(9):123?126.

[3] 许礼武,许伦辉,黄艳国.基于小波分解的车牌定位算法[J].计算机工程,2006,32(21):191?193.

[4] 沈勇武,章专.基于特征颜色边缘检测的车牌定位方法[J].仪器仪表学报,2008,29(12):2673?2677.

[5] 王磊,王瀚漓,何良华.基于双边缘检测的车牌识别算法[J].计算机工程与应用,2013,49(8):169?173.

[6] 李刚,增锐利,林凌,等.基于数学形态学的车牌定位算法[J].仪器仪表学报,2007,28(7):1323?1327.

[7] 陈黎,黄心汉,王敏,等.基于聚类分析的车牌字符分割方法[J].计算机工程与应用,2002,38(6):221?223.

[8] 迟晓君,孟庆春.基于投影特征值的车牌字符分割算法[J].计算机应用研究,2006,23(7):256?257.

[9] 周景超,陈锋,陈为多,等.车牌字符分割的研究和实现[J].计算机工程,2006,32(5):238?243.

[10] 穆丽娟,籍焱.基于新模板的算法在车牌字符分割中的应用[J].计算机工程与应用,2012,48(19):191?196.

[11] 王洪亚.基于HSV的夜间车牌识别算法[J].智能计算机与应用,2013(2):86?88.

[12] 谭杰,王殊轶,王慧芳,等.基于Halcon的图像拼接算法研究[J].微电子学与计算机,2011,28(12):184?187.

猜你喜欢

车牌字符分类器
寻找更强的字符映射管理器
字符代表几
一种USB接口字符液晶控制器设计
数字图像处理技术在车牌识别系统中的应用
消失的殖民村庄和神秘字符
BP-GA光照分类器在车道线识别中的应用
第一张车牌
基于MATLAB 的车牌识别系统研究
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器