胡峰松,朱 浩
(湖南大学 信息科学与工程学院,湖南 长沙410082)
近年来车牌定位算法受到许多研究者的关注,主要在以下方面取得了相应成果:基于纹理特征分析的算法[1,2],该算法对光照不均、车牌倾斜等情况定位较好,但当车牌背景较复杂时,易将图像中纹理分布类似车牌的区域定位进来,不但增加了计算难度,而且容易造成车牌误定位;基于边缘检测和形态学的算法[3-6],该算法对边缘特征简单的车牌图像能快速定位,但当图像中疑似车牌区域较多或车辆前身边缘较复杂时,误定率较高;基于颜色分割的车牌定位算法[7-9],该算法充分利用车牌区域的颜色特征,当车牌区域颜色与车身颜色存在较大差异时,定位准确率高,而当车牌颜色与车身颜色相近时,该算法难以准确定位。针对以上算法的特点与不足,提出一种基于HSI颜色空间和行扫描的车牌定位算法。该算法综合利用了车牌的颜色特征、几何特征以及纹理特征,克服了单一利用某种特征所引起的定位误差,且采用行扫描算法分析按序提取标号候选区域的纹理特征时,优先处理包含车牌的候选区域,加快了定位速度;另外利用行扫描算法对车牌候选区域进行纹理分析时,只需扫描符合车牌颜色的候选区域,降低了计算复杂度。
由于采集的车辆图像是彩色图像,处理前需将其灰度化。本文采用加权平均值法进行灰度化处理,如式 (1)所示
式中:f(x,y)——坐 标 点 为 (x,y)的 灰 度 值,R(x,y),G(x,y),B(x,y)——图像中坐标点为 (x,y)的红色分量、绿色分量以及蓝色分量的值,Wr,Wg,Wb——R(x,y),G(x,y),B(x,y)的权值,当 Wr,Wg,Wb取不同值时,加权平均值法形成的灰度图像也不相同。根据实验和理论推导可知,当Wr=0.30,Wg=0.59,Wb=0.11时,即当f(x,y)=0.30*R(x,y)+0.59*G(x,y)+0.11*B(x,y)时,得到的灰度图像最合理。
由于采集的车辆图像取自不同的自然环境,背景较复杂,尤其在曝光不足或过度情况下,图像的灰度值将局限于小范围内,此时得到的图像模糊不清,影响车牌定位与识别。因此需增强灰度化后的图像,改善图像质量,提高识别率。本文利用数学形态学高帽与低帽变换实现对灰度图像的增强。图像f(x,y)的高帽变换h(x,y)定义为图像f(x,y)与该图像开运算之差,如式 (2)所示
式中:f(x,y)——原灰度图像,s结构元素,f(x,y)s——使用结构元素s对图像f(x,y)进行开运算。
图像f(x,y)的低帽变换l(x,y)定义为图像f(x,y)与该图像闭运算之差,可表示为式 (3)
式中:f(x,y)·s——使用结构元素s对图像f(x,y)进行闭运算。
利用高帽变换与低帽变换增强灰度图像,如式 (4)所示
式中:gray(x,y)——灰度增强后的图像。
由于车牌在二值图像中存在黑白两像素跳变的纹理特征,而行扫描算法[10]主要是根据区域连续跳变数目来判断是否该区域包含车牌并确定车牌的上下边界,因此需要对增强后图像二值化。因最大类间方差法 (OSTU)计算简单,自动选择阀值,二值化效果好,故本文选取该方法进行二值化。
由于二值化后的车辆图像存在一些孤立点和小区域,因此需要对图像腐蚀去除干扰。本文采用3×3大小的结构体元素对二值化后的图像进行形态学腐蚀,消除图像中的孤立点和小区域。
我国车牌区域中字符颜色和车牌底色存在较大差异,且车牌区域内有多个水平排列的字符并存在丰富的边缘,呈现规则的纹理特征。因此可采用边缘检测算子突出图像中车牌区域。常用的边缘检测算子有Roberts、Log、Prewitt、Sobel和Canny等。其中Roberts算子利用局部差分算子检测图像边缘,但容易丢失一部分边缘,并且未对图像进行平滑处理,无法抑制噪声。Log算子检测图像边缘时会出现双边缘像素边界,并且该算子对噪声较敏感。Prewitt算子利用图像各像素点上下、左右邻点的灰度差,在边缘处达到极值时检测边缘,能去掉部分伪边缘,对噪声具有平滑作用。与Prewitt算子相比,Sobel算子对图像中各像素的位置的影响做了加权处理,降低了边缘模糊程度。Canny算子虽然边缘检测效果较好,但是容易平滑掉一些边缘信息。对比以上几种边缘检测算子,发现Sobel算子能抑制噪声,且可检测水平和垂直边缘,而我国汽车车牌区域内字符在垂直方向上边缘特征较明显,因此本文选取了Sobel算子来检测图像的边缘信息,其水平方向Sobel算子如式 (5)所示
垂直方向Sobel算子如式 (6)所示
本文为减少计算量,所以将原图像从1280×960压缩为640×480像素,再对压缩后图像灰度化,其压缩后图像和灰度图像分别如图1和图2所示。
图1 压缩后图像
图2 灰度图像
接着利用形态学高帽与低帽变换增强灰度图像的对比度,再通过OSTU算法二值化增强后图像,实验结果分别如图3和图4所示。
图3 灰度增强图像
图4 二值化图像
从图4可看出,图像中存在孤立的小白点,因此需先采用形态学腐蚀运算来消除,再利用Sobel算子对处理后图像进行边缘检测,如图5所示。
图5 形态学腐蚀与边缘检测后图像
本文综合利用车牌的颜色、面积、长宽比、纹理等多重特征,提出了一种基于HSI颜色空间和行扫描的车牌定位算法,具体流程如图6所示。
(1)预处理:首先将彩色车辆图像灰度化,利用形态学高帽与低帽变换增强图像对比度,再采用OSTU算法二值化增强后图像并用腐蚀运算消除孤立白点,最后利用Sobel算子进行边缘检测。
(2)将彩色车牌图像从RGB颜色空间转为HSI颜色空间。
(3)颜色分割:根据我国已有的车牌颜色,设置约束条件,并遍历转换后图像的每个像素点,将符合约束条件的点的像素值设为255,否则设为0。
(4)连通域分析与标号:对颜色分割后的图像执行数学形态学开运算,去除干扰并使相邻区域连通。分析图像中各候选区域外接矩形的面积与长宽比,设定阈值,剔除面积及长宽比不在阈值范围内的区域。将剩下各连通区域的长宽比与标准车牌长宽比进行比较并排序,再按设定的规则标号 (越接近标准的区域序号越小)。
(5)行扫描分析:按序提取标号区域在预处理后图像中对应的区域,利用行扫描算法分析该区域纹理跳变,判断该区域是否包含车牌,若包含则记录车牌的上下边界以及存在干扰的左右边界,进入步骤 (6);否则提取下一块标号区域进行扫描分析,重复直至获取车牌区域。
(6)垂直投影:在预处理二值化后的图像中截取步骤(5)得到的区域并利用形态学开运算处理,对处理后图像垂直投影,设定阈值,去除左右两边的干扰,得到精确的车牌区域。
图6 车牌定位算法流程
由于采集得到的车辆图像均是RGB模型,且该模型下R、G、B这3个分量对光线的强弱较敏感,因此RGB模型不适合进行彩色分割。而HSI颜色模型使用色度 (H)、饱和度 (S)和亮度 (I)描述颜色,更符合人的视觉特性。因此本文选取HSI颜色模型对车辆图像进行彩色分割。将彩色车辆图像从RGB转换为HSI颜色空间,其转换式如式(7)~式 (10)所示
其中
中国的车牌类型分为蓝底白字、黄底黑字、白底黑字和黑底白字4种,本文以蓝底白字的车辆牌照为例进行颜色分割。首先将彩色车辆图像从RGB颜色空间转换为HIS颜色空间,通过实验测试统计得出HSI颜色空间中车牌颜色的取值见表1。
表1 车牌颜色在HSI空间中取值范围
从表1中可知蓝色车牌的取值范围为:H∈ [161,301],S∈ [0.25,1],I∈ [0.25,1]。遍历转换后图像中各像素点的值,将符合取值范围的像素点的值设为1,否则设为0,得到二值化后的车牌图像如图7所示。
图7 颜色分割二值化后图像
从图7可看出,图中仍存在孤立的小白点,因此需用腐蚀方法进行消除。本文先利用3×3大小的结构体对二值化后图像进行腐蚀,再使用5×5大小的结构体进行膨胀,这样不仅可消除孤立的白点,而且能连通邻近的非连通区域,实验结果如图8所示。
图8 形态学处理后图像
由于采集的车辆图像背景中存在蓝色区域,因此在图8中会存在多个车牌候选区域。为在最短的时间内确定车牌所在区域,必须采取合适的策略对车牌候选区域进行分析,使得包含车牌的区域优先进入行扫描纹理分析。通过实验分析,本文综合考虑了各候选区域外接矩形的面积和长宽比,提出一种新的筛选方法,具体规则如下:
(1)计算各候选区域的面积与长宽比LWi,设定阀值T1,去除面积小于T1的候选区域。
(2)计算步骤 (1)处理后的候选区域外接矩形长宽比LWi,设定阈值T2,剔除长宽比LWi不在T2范围内的区域。
(3)将剩下的各候选区域的长宽比LWi与标准车牌长宽比LW 进行比较并排序,再按设定的规则标号 (越接近标准的区域序号越小)。
中国的汽车车牌标准轮廓尺寸为440×140mm,长宽比为 3.14,故本文选取 T1=200,T2 ∈ [2,4],LW=3.14。
由于车牌图像在二值化后具有黑白两像素的纹理跳变特征,且车牌区域内有7个连续的字符,字符间的间距较均匀,每个字符至少会出现2次跳变,因此车牌区域内每行连续跳变个数会比其他非车牌区域多。在边缘检测后图像中按序提取颜色分割后的标号区域,利用行扫描算法分析该区域纹理跳变,确定车牌上下边界。
水平定位算法步骤如下:
(1)自上而下、从左至右扫描区域中的行,计算每行连续跳变次数并用数组sum [i]保存 (数组下标位置对应行号),同时记录每行连续跳变起始与终止位置。将像素点的值由0到255或由255到0记为一次跳变,记相邻跳变距离在阈值T1范围内为连续跳变,其中T1的选取跟车辆图像采集的参数有关,本文中选取T1=10。
(2)设定阈值T2,分析数组sum [i]的值。如果数组中存在连续10个以上大于T2的值,则记录该值的起止下标,即为车牌的上下边界;否则取下一个标记区域继续扫描分析。
(3)根据车牌上下边界的跳变起始与终止位置,确定车牌区域在原图的位置。
由于车牌区域内有7个连续的字符,每个字符至少存在2次跳变,所以取T2值为14,行扫描算法分析标号区域每行纹理跳变个数及起始、终止位置,结果见表2。
从表2可知,车牌区域左上角和右下角在原图中位置为 [184,192],[201,292]。截取原彩色图像和二值化图像中此坐标区域,得到结果如图9所示。
表2 行扫描分析结果
图9 行扫描后得到车牌图像
通过行扫描算法可精确定位车牌上下边界,但左右边界仍存在干扰区域,效果不是很理想。本文采用垂直投影法去除车牌左右两边的干扰。具体的算法步骤如下:
(1)在预处理二值化后图像中提取行扫描算法得到的车牌区域;
(2)对步骤 (1)得到的二值化图像先采用3×3的结构体元素进行形态学腐蚀运算,再采用4×4大小的结构体元素进行膨胀处理,这样既可以消除车牌左右两边的噪点,又能够将车牌区域连通。
(3)将步骤 (2)得到的图像进行垂直投影,计算每列的白点像素个数,并保存到数组count[i]中;
(4)设定阈值T,对步骤 (3)得到的数组count[i]从左右两边分别寻找第一个大于T的值,即可确定车牌的左右边界位置,其中阈值T的选取跟车辆图像采集的参数有关。
通过垂直投影,可去除行扫描算法得到的车牌区域左右两边的干扰以及边框,从而得到精确的车牌区域,如图10所示。
图10 垂直投影后得到精确的车牌图像
为了验证基于HSI颜色空间和行扫描的车牌定位算法的准确率,本文共采集了300张来自不同背景、不同角度的车辆图像并在 Visual Studio 2010和 OpenCV 2.4.3平台下进行实验测试,定位准确率达到98%。在硬件配置为CPU Intel 2.0GHz,内存2G的计算机上运行本程序,平均定位时间为0.24s。未能成功定位的6张车辆图像主要是由于车牌倾斜过多以及采集时曝光不均等情况造成的。车牌倾斜过多会导致行扫描算法时定位不准确,无法得到完整的车牌图像,而曝光不均使得利用HSI颜色分割时得到车牌候选区域不准确,因而无法得到真正的车牌区域。
在相同图库下将本文算法与行扫描算法、基于边缘检测和形态学算法以及基于HSV色彩空间和形态学算法进行对比,实验结果见表3。
表3 车牌定位算法比较
从表3可看出,本文提出的算法定位准确率高。对比行扫描算法,本文算法先利用车牌颜色特征得到车牌的候选区域,再利用行扫描算法对候选区域进行纹理分析,减少了行扫描的计算量,并考虑到行扫描算法在定位车牌左右边界时并不精确,所以采用垂直投影算法定位车牌的左右边界,因而准确率更高。与基于边缘检测和形态学的车牌定位算法相比,本文算法综合利用了车牌颜色、纹理、面积、长宽比等特征来进行定位,比单一特征定位准确率更高。基于HSV色彩空间和形态学算法先利用车牌的颜色特征得到车牌的候选区域,再利用数学形态学对候选区域进行处理,使其连通,最后结合车牌的面积与长宽比得到车牌区域。但当车牌的颜色与车身颜色相似或背景中存在颜色与大小跟车牌相近的区域时,定位准确率较低。而本文在利用车牌颜色、数学形态学以及车牌几何特征得到候选区域后,再结合车牌的纹理特征进行分析,因此得到的车牌区域会更精确。
本文分析了已有车牌定位算法的优缺点,提出了一种基于HSI颜色空间和行扫描的车牌定位算法。该算法充分利用了车牌的多重特征,算法的创新点就是在HSI颜色空间中分割车牌区域后,利用车牌几何特征筛选候选区域并按设定规则标号,然后按序提取标号区域在边缘检测后图像中对应的区域,利用行扫描算法对该区域进行纹理分析,这样使得包含车牌区域优先处理,加快了定位速度,同时使用行扫描算法分析纹理特征时只分析符合车牌颜色的区域,降低了计算复杂度,缩短了定位时间。实验结果表明,该算法定位准确率高,在车牌颜色与车身颜色接近、一张图像中存在多个车牌等情况下也能定位成功,具有较强的实用性。
[1]LIU Meng,WU Chengdong,FAN Yuquan,et al.License plate position algorithm in complicated scenes [J].Journal of Image and Graphics,2010,15 (9):1357-1362 (in Chinese).[刘濛,吴成东,樊玉泉,等.复杂背景图像中的车牌定位算法 [J].中国图象图形学报,2010,15 (9):1357-1362.]
[2] WANG Cheng,LI Shaofa,HE Kai.Car plate localization method based on simplified pulse coupled neural network [J].Computer Engineering,2010,36 (24):178-182 (in Chinese).[王成,黎绍发,何凯.基于简化PCNN的车牌定位算法 [J].计算机工程,2010,36 (24):178-182.]
[3]LIAO Xiaojiao,LI Ying.A license plate location algorithm based on edge detection and morphology [J].Modern Electronics Technique,2011,34 (10):17-19 (in Chinese). [廖晓姣,李英.基于边缘检测和形态学的车牌定位算法 [J].现代电子技术,2011,34 (10):17-19.]
[4]WANG Lei,WANG Hanli,HE Lianghua.License plate recognition based on double-edge detection [J].Computer Engineering and Applications,2013,49 (8):169-173 (in Chinese).[王磊,王瀚漓,何良华.基于双边缘检测的车牌识别算法 [J].计算机工程与应用,2013,49 (8):169-173.]
[5]LIAO Chunsheng.Car plate detection and recognition using morphological method [J].Computer Simulation,2011,28(12):353-356 (in Chinese).[廖春生.基于数学形态学车牌定位算法仿真研究 [J].计算机仿真,2011,28 (12):353-356.]
[6]LIU Yichuan,ZHENG Chunhong.Vehicle license plate location based on mathematical morphology and variance projection[C]//International Conference on Image Analysis and Signal Processing,2011:360-363.
[7]REN Dehua.Multi-license plate extraction based on color features in nature complex environment [J].Journal of Image and Graphics,2009,14 (12):2517-2525 (in Chinese). [任得华.自然复杂环境中基于颜色的多车牌定位研究 [J].中国图象图形学报,2009,14 (12):2517-2525.]
[8]Vahid Abolghasemi,Alireza Ahmadyfars.An edge-based coloraided method for license plate detection [J].Image and Vision Computing,2009,27 (8):1134-1142.
[9]CHANG Qiaohong,GAO Mantun.Research on license plate location based on HSV color space and mathematical morphology [J].Journal of Graphic,2013,34 (4):159-162 (in Chinese).[常巧红,高满屯.基于HSV色彩空间和数学形态学的车牌定位研究 [J].图学学报,2013,34 (4):159-162.]
[10]LIU Xiongfei,LONG Qiaoyun,LI Gen,et al.License plate location algorithm based on line scanning and wavelet transform [J].Computer Applications and Software,2013,30(5):279-282 (in Chinese). [刘雄飞,龙巧云,李根,等.基于行扫描和小波变换的车牌定位算法 [J].计算机应用与软件,2013,30 (5):279-282.]
[11]LI Wenju,WEI Lihua,WANG Hongdong,et al.License plate location method using comprehensive features [J].Mini-MicroSystem,2011,22 (8):156-170 (in Chinese). [李文举,韦丽华,王洪东,等.利用综合特征的车牌定位方法[J].小型微型计算机系统,2011,22 (8):156-170.]
[12]HAN Liming,WANG Botao.Research and implementation on key technology in license plate recognition system [J].Computer Engineering and Design,2010,31 (17):3919-3923(in Chinese).[韩立明,王波涛.车牌识别技术中关键技术的研究与实现 [J].计算机工程与设计,2010,31(17):3919-3923.]