一种基于多信息邻域投票的车牌检测方法
技术领域
本发明属于图像处理与计算机视觉领域,主要涉及目标检测和目标分割技术,应用于智能交通领域中的车牌识别系统。
技术背景
智能交通系统(IntelligentTransportationSystem,ITS)的概念是1990年由美国智能交通学会提出,主要包括车牌识别,车辆监控,智能辅助驾驶,危险报警等等,目前已在世界上经济发达国家的一些城市及高速公路系统中得到实施。车牌识别在智能交通系统中扮演着非常重要的角色,可以广泛应用于治安卡口(车辆记录系统)、交通旅行时间系统、小区停车场管理系统、道路违章管理(闯红灯、超速、逆行)等地方。国内从2000年开始,很多城市都陆续安装了车牌识别系统,为交通管理,打击犯罪都起到了很好的作用。
车牌检测和分割是车牌识别系统中最核心的步骤。由于车牌识别的实际环境比较复杂,且存在车牌视角变化、光照变化、运动模糊等干扰,车牌检测分割面临很大的挑战。已有的车牌检测方法包括:
1)Kamat基于车牌的外形是线条构成的思路提出了利用Hough变换来做车牌检测,但是单纯的线条检测不能够全面的利用车牌信息,并且误检率很高。详见文献:V.KamatandS.Ganesan,"AnefficientimplementationoftheHoughtransformfordetectingIEEERealTimeTechnologyandApplicationsSymposium,Chicago,Illinois,USA,pp.58-59,1995.
2)Jia和Zhang利用颜色特征检测车牌,但是这种方法受光照干扰比较严重。详见文献:W.Jia,H.Zhang,X.He,andM.Piccardi,"MeanShiftforAccurateLicensePlateLocalization,"ProceedingsofInternationalConferenceonIntelligentTransportationSystems.2005.,Vienna,Austria,pp.566-571,2005.
3)Zhang等人提出利用Adaboost的方法结合全局统计特征和局部的Harr-like特征来检测车牌。该方法的缺点是车牌定位不够精确。详见文献:H.Zhang,W.Jia,X.HeandQ.Wu,“Learning-BasedLicensePlateDetectionUsingGlobalandLocalFeatures,”ICPR,Vol.2,2006,pp.1102-1105.
4)Matas等利用字符为车牌的基础单元提出了一种基于纹理定位算法,对光照和视角有一定的鲁棒性,然而却很难去除非车牌字符对真正的车牌所造成的干扰。详见文献:J.MatasandK.Zimmermann,"Unconstrainedlicenceplateandtextlocalizationandrecognition,"Proceedingsof2005IEEEIntelligentTransportationSystems,pp.225-230,2005.
发明内容
本发明所要解决的技术问题是,为克服目前车牌检测方法存在检测准确率不高,受光照影响大,对视角鲁棒性不强等诸多问题,提供一种为基于多种信息结合进行车牌检测的方法。
本发明为解决上述技术问题所采用的技术方案是,一种基于多信息邻域投票的车牌检测算法,包括以下步骤:
1)车牌粗定位步骤:
1-1)求输入图像的竖直边缘;
1-2)根据车牌颜色的先验值,在输入图像的颜色空间上提取满足车牌颜色的区域;
1-3)对图像中每一个像素进行投票表决,将当前表决像素点邻域范围内既存在边缘点又存在车牌颜色像素点则判定该像素点为车牌内部点;
1-4)对图像中车牌内部点进行闭操作,获得闭操作后的连通区域;
1-5)根据车牌大小、比例的先验值去掉大小,比例不符合要求的连通区域,留下的每个连通域的外接矩形即为疑似车牌区域;
2)车牌精定位步骤:
2-1)计算出疑似车牌区域对应的灰度图像,将灰度图像的各像素点水平方向的差分的绝对值作为该像素的值,对得到的差分图像矩阵按列相加成一列向量,再参考列向量中间部分元素的均值确定竖直阈值,利用竖直阈值对列向量进行二值化操作,列向量中大于等于竖直阈值的元素赋值为1,否则为0,最后利用列向量二值化操作后值为1垂直距离最大的两个点的维数位置作为车牌上下边缘对疑似车牌区域进行水平切割;所述像素点水平方向的差分为当前像素点的右边相邻的一个像素点的灰度值减相邻左边的一个像素点的灰度值;
2-2)从水平切割后的疑似车牌区域中划分背景部分和字符部分;
2-3)对水平切割后的疑似车牌区域求水平和竖直边缘,在每一个边缘点处投票判决在其邻域范围内是否同时存在背景像素和字符像素,如果是,则判定该像素点为车牌内边缘点。将车牌内边缘图像矩阵按列相加成一个行向量,再参考行向量均值确定水平阈值,使用水平阈值对行向量进行二值化操作,大于等于阈值的元素赋值为1,否则为0,最后利用行向量二值化操作后值为1水平距离最大的两个点对应的维数位置作为左右边缘对疑似车牌区域进行水平切割得到车牌精定位区域;
3)车牌校正步骤:通过透视变换将车牌精定位区域矫正为车牌标准尺寸。
本发明根据车牌的颜色,边缘和先验知识,结合形态学操作获得车牌疑似区域;然后对车牌疑似区域进行精确定位,最后校正车牌。使车牌颜色、边缘和先验信息相结合,能有效提高车牌检测的鲁棒性和准确性,减少误检。另一方面,本方法速度快,能够满足实时应用要求。
进一步的,提出一种使用kmeans聚类方法分割车牌中的字符和背景。使用此分割方法不易受光照的影响,鲁棒性更强,且分割出的字符更精确。
进一步的,提出了一种简单有效的车牌倾斜校正方法,对一定范围内的角度倾斜有很好地校正作用,具体包括以下子步骤:
3-1)对车牌精定位区域二值化,标定车牌内每一个字符形成的连通域,寻找每一个连通域最高点和最低点的坐标位置,利用车牌字符顶端的坐标和低端的坐标拟合顶端直线L1与低端直线L2,求取两直线的平均斜率k和平均截距b,利用平均斜率k和平均截距b确定车牌字符中线LM;
3-2)寻找最左边连通域的最左端横坐标xl,最右边连通域的最右端横坐标xr,通过车牌字符中线LM计算出最左边连通域的最左端点对应纵坐标yl以及最右边连通域的最右端点对应纵坐标yr,取与车牌字符中线LM垂直方向为车牌字符的方向,计算出左端直线L3的斜率和截距右端直线L4的斜率和截距
3-3)计算直线L1、L2、L3、L4两两相交的交点,即得到车牌字符外接四边形的四个顶点,让其分别与目标矩阵的四个顶点一一对应来计算透视变换的变换矩阵,再通过对车牌图像进行透视变换即得到矫正后的标准矩形车牌。
本发明的有益效果是,有效提高车牌检测的鲁棒性和准确性,减少误检,能够满足实时应用要求。
附图说明
图1是实施例流程示意图。
图2是实施例流程对黄色牌照进行提取的结果示意图。
图3是实施例透视仿射变换示意图。
具体实施方式
如图1所示,实施例包括以下步骤:
步骤1、疑似车牌区域提取。
步骤1-1:首先将输入图像转换到色调-饱和度-强度HSI颜色空间,在图像的饱和度通道上求竖直的边缘。本实施例采用索贝尔算子求图像的竖直边缘,并通过阈值化处理获得二值边缘图像I_edge如图2_b。之所以在饱和度通道求边缘,是因为饱和度是判断色彩(蓝色和黄色)与非色彩(白和黑)的最好手段,即蓝色背景白色字符,以及黄色背景黑色字符的边缘响应可以被强化,还能抑制其它一些干扰边缘。
步骤1-2:在HSI颜色空间上通过对色调、饱和度、亮度的限制,找到图像上满足车牌颜色(蓝色,黄色)的区域,从而获得二值蓝色或黄色图像(I_blue或I_yellow)如图2_c。实验设计蓝色像素的色调H大于0.45小于0.65,饱和度S大于0.5,亮度I大于0.25;黄色像素的色调H通道值大于0.06小于0.19,饱和度S通道值大于0.45。本领域技术人员也可以将输入图像转换至其他颜色空间,通过相应的车牌颜色特征在提取满足车牌颜色的区域。
步骤1-3:根据二值蓝色(黄色)图像I_blue(I_yellow)和二值边缘图像I_edge,对图像中每一个像素投票表决是否属于车牌内部点。具体做法是,当一个像素点周围3*3邻域范围内既存在边缘点又存在蓝色(黄色)像素点,则该像素判断为车牌内部点。二值车牌内部点图像I_inner如图2_d。本步骤也可以看作,将一个3*3大小的窗口滑过整个图像,在每一个像素处必须要满足即是边缘且窗口内又存在合适的颜色才能判决为车牌内的边缘点。如此可以抑制非车牌区域的干扰。
步骤1-4:对二值车牌内部点图像I_inner进行闭操作,获得多个连通区域。闭操作算子选择15*25的矩阵。
步骤1-5:去掉大小,比例不符合要求的连通区域,最终保留的每个连通域的外接矩形即为疑似车牌区域如图2_e。
步骤2:车牌的精确定位。在获得疑似车牌区域后,可按如下步骤得到精确的车牌位置。
步骤2-1:在疑似车牌区域中找到精确的车牌上下边缘。首先计算出对应灰度图像,对灰度图像的每一个像素值求水平方向的差分(后一个像素减去前一个像素的灰度值)的绝对值,作为本像素的值。然后对得到的差分图像在水平方向上求和投影(把图像矩阵按列相加成一列向量)。对于此向量进行二值化操作,选向量长度1/3到2/3之间元素的均值的0.75倍作为阈值T2。找到这列向量中值为1距离最大的两个点的维数位置col_1,col2。,切割原车牌区域图像col_1以上行数,col_2以下行数。车牌上下边缘精确定位如图2_f。
步骤2-2:步骤2-1给出了精确的车牌上下边缘,在此基础上提取车牌区域内每个像素的3维颜色作为特征(色调,饱和度,亮度),并进行kmeans聚类。通过聚类操作可以得到车牌区域的背景(蓝色或黄色)和前景字符(白色或黑色)。
步骤2-3:首先对车牌区域求水平和竖直边缘,然后在每一个边缘点处投票判断3*3邻域范围内是否存在车牌背景像素和车牌字符像素,如果存在则该像素为车牌字符与车牌背景的边缘点。最终可以得到车牌内边缘图像。将其按竖直方向投影(把图像矩阵按列相加成一个行向量),选择向量均值的0.9倍作为阈值T对其进行二值化操作。找到向量中大于T的最左边和最右边的维度作为车牌左右边缘的精确位置。最终车牌精定位区域如图2_g。
步骤3:车牌倾斜矫正
通过寻找车牌字符的外接四边形的四个顶点,由四个顶点坐标和映射后目标矩形四个定点坐标计算透视变换的变换矩阵,通过透视变换将车牌字符矫正为标准大小以及按标准矩形方式排列。
步骤3-1:对定位的车牌图像二值化,标定连通域,这样车牌内每一个字符将形成一个连通域。寻找每一个连通域最高点和最低点的坐标位置。利用车牌字符顶端的坐标和低端的坐标拟合两条直线L1,L2。求取两直线的平均斜率k和平均截距b表示与字符平行的中线LM,如图3_a。
步骤3-2:寻找最左边连通域的最左端横坐标xl,最右边连通域的最右端横坐标xr,通过LM的直线公式计算出对应纵坐标yl,yr,近似取与LM直线垂直方向为车牌字符的方向(车牌垂直方向),故近似计算出第三条直线L3斜率和截距第四条直线L4斜率和截距如图3_a。
步骤3-3:计算L1,L2,L3,L4两两相交的交点,即得到车牌字符外接四边形的四个顶点,让其分别与目标矩阵(车牌标准尺寸)四个顶点(0,0)(180,0)(0,40)(180,40)一一对应来计算透视变换的变换矩阵,再通过对车牌图像进行透视变换即得到矫正后的标准矩形车牌如图3_b。
本文中提到的HSI颜色空间变换、索贝尔算子、闭操作、kmeans聚类、连通区域标定、透视仿射变换均为本领域常用的技术,具体方法不在此赘述。