基于自适应阈值投影的双行车牌分割方法*

2020-10-10 02:39马永杰陈振宇马芸婷
计算机工程与科学 2020年9期
关键词:车牌号双行波峰

马永杰,陈振宇,马芸婷

(西北师范大学物理与电子工程学院,甘肃 兰州 730070)

1 引言

目前,国内单行车牌号分割技术相对成熟,但对双行车牌号的分割方法较少,并且正确分割率较低。单行车牌常见于小型车辆,如民用轿车等,双行车牌主要用于大型车辆、摩托车以及电动自行车等。近年来,由于部分摩托车、电动自行车等未遵守交通规则而导致多起交通事故发生,对人民的生命和财产安全造成重大威胁。因此,研究双行车牌号的识别与分割技术是非常有必要的。

常用车牌字符分割方法主要有3种。第1种是基于神经网络的车牌分割方法。赵汉理等人[1]提出了基于卷积神经网络的双行车牌分割算法,将包含中文字符、数字、字母的单双行车牌进行分类,将双行车牌分割成单行车牌,然后识别出双行车牌号。Shi等人[2]提出了一个端到端训练的神经网络,识别自然场景中的文字。Sharma等人[3]利用一个空间转换网络和卷积神经网络,直接对字符进行识别。丁进超等人[4]提出基于ROI(Region Of Interest)区域,搭建双向长短期记忆网络(BLSTM) 模型,将车牌内字符串直接识别出来。以上基于神经网络的车牌分割技术可以准确地分割出大部分车牌,正确分割率比较高,但以上方法需要大量数据,并且训练周期长。

第2种是基于连通域法的车牌分割方法。王艳等人[5]提出了一种数字字母都独立的连通域分割方法,该方法首先校正分割定位成功区域内的连通域,然后提取骨架并归一化,与细化和归一化后的模板匹配,最终分割出字符。牛博雅等人[6]提出了一种连通域的字符分割方法,对已去除上下边框的车牌,提取图像中的各个连通区域,并根据连通区域的宽度和高度对粘连字符进行分割。文献[7,8]利用连通域分量法对车牌进行分割。其中,文献[5-7]主要针对单行车牌进行分割,无法分割双行车牌,文献[8]较早提出了一种双行车牌的分割方法,但正确分割率为55.3%,准确率比较低。

Figure 1 License plate segmentation steps图1 车牌分割步骤

第3种是基于投影法的车牌分割方法。但斌斌等人[9]使用投影法分割图像,对单行车牌有较好的分割效果,但投影法单一统计各个像素点,受噪声的影响较大。文献[10-15]同样使用投影法分割车牌,对单行车牌分割效果良好,但无法分割双行车牌。谢永祥等人[16]提出将水平投影后的图像,用下一行车牌图像的像素值减去上一行的,根据差值大小判断边界,并分割图像。此方法虽可以分割双行车牌号,但由于受图像边缘噪声的影响,容易混淆字符和边缘。此外,文献[17]用水平投影分割的方法对手写文稿进行分割,正确分割率较高,效果良好。但是,由于车牌号与手写文稿相比,前者有边框、磨损等诸多条件的限制,文献中所提方法对车牌图像分割效果不理想。

单行牌号有固定的字符排列规则,且牌号尺寸和字符宽度较大。机动车辆牌号中,最常见的双行车牌号为大型汽车所挂牌号,有固定的字符排列规则,且牌号尺寸和字符宽度也相对较大。常见机动车辆单行和双行牌号的这些固有特征给车牌分割带来了方便。电动自行车等牌号与以上2种牌号相比,前者牌号尺寸和字符宽度较小,无固定的字符排列规则,且车牌底色变化多样,这些特征给电动自行车等车牌号的分割带来了挑战。由于基于神经网络的车牌分割方法需要大量数据集,而目前电动自行车等非机动车辆数据集数量十分有限,加上此类车牌号尺寸和字符宽度较小等特点,基于连通域的方法分割效果也不理想,所以本文根据电动自行车等非机动车车牌图像本身特点,提出一种改进的自适应投影分割方法,可有效分割出牌号字符。

本文通过对不同底色车牌的研究,针对双行车牌提出了一种基于HSV(Hue Saturation Value)颜色空间二值化的自适应阈值投影方法。首先将已倾斜矫正的RGB图像转换为HSV图像,然后二值化图像,最后使用本文方法分割字符。在分割过程中,本文针对双行车牌的特征,提出了一种自适应阈值的分割方法。实验表明,本文方法对双行车牌号分割效果良好,可以对不同底色的多种双行车牌号进行有效分割。

2 本文方法

本文所提方法主要由图像预处理、去边框和字符分割3部分组成。图像二值化过程建立在HSV颜色空间的基础上,极大提高了分割的准确率。去边框过程通过水平和垂直2个方向上的投影,去掉图像边框。字符分割首先把双行车牌分割成单行车牌,然后对2个单行车牌作垂直投影,分割出字符。本文方法的具体分割步骤由图1给出,其中,输入为已进行倾斜矫正后的图像。

2.1 图像预处理

图像预处理部分主要由图像二值化和图像形态化操作2部分组成。传统的图像二值化方法首先把RGB图像转换为灰度图像,然后根据灰度图直接二值化图像。本文方法首先遍历图像的色调H、饱和度S和透明度V共3个通道,通过设定阈值,修改各通道对应像素点的值,再将得到的图像转化为灰度图并二值化。图像预处理具体步骤如下所示:

步骤1将RGB
图像转换为HSV图像。转换方法由式(1)给出,其中,(r,g,b) 分别代表某一点颜色的红、绿、蓝的颜色值,max为r,g,b中的最大值,min为r,g,b中的最小值。

v=max

步骤2遍历HSV图像的每个通道,根据阈值Hs二值化图像,(x,y)处像素值F(x,y)由式(2)得到:

(2)

Tth=f(c)(x,y),c∈(H,S,V)

(3)

Figure 2 Border removal图2 去边框

其中,Tth为图像坐标(x,y)的值,阈值Hs可根据实际情况设定,f(c)(x,y)表示HSV空间中的f(x,y)。本文实验建立在OpenCV的基础上,因此取Hs的值为70,此方法对蓝底白字、白底红字、绿底黑字和黄底黑字的车牌图像可以达到理想的二值效果。

步骤3将步骤2中所得图像转换为灰度图像,并再次用传统方式二值化图像。图像灰度化方法分别由式(4)和式(5)给出,其中,R(i,j),G(i,j)和B(i,j)分别代表红、绿、蓝3个通道在坐标(i,j)处的灰度值,Gray(i,j)表示3个通道灰度值的平均值。式(5)中,dst(x,y)为二值化后的(x,y)处像素值,thresh表示所设定的一个阈值,当实际图像的像素值src(x,y)大于这个阈值时,取其本身作为该像素点的值,否则取0。

Gray(i,j)=(R(i,j)+G(i,j)+B(i,j))/3

(4)

(5)

步骤4根据白点个数,确定前景色和背景色,并进行形态化操作。

图像膨胀的定义如式(6)所示:

A⊕B={l|Bv+l∩A≠∅}

(6)

其中,A表示目标图像,B表示结构元素,Bv由B做自身关于原点的对称得到,l表示当前位置。式(6)表示的意义为:首先将结构元素的原点移至A的起始部分,求出交集,如果交集非空,将此结构元素的原点位置像素记为1,否则记为0,然后继续遍历图像A的所有区域,最后得到的结果即为膨胀后的图像。

图像腐蚀的定义如式(7)所示:

AΘB={d|B+d⊆A}

(7)

式(7)表示的意义为:将结构元素B在目标图像A上移动,每次将B移动d距离后,仍包含A内的所有点组成的集合,最终得到的图像即为图像腐蚀的结果。

2.2 去边框

由于受各种因素的影响,所取车牌往往会包含边框。去边框分为去上下边框和左右边框2部分。图2为去除边框的示例,图2d和图2e分别为去除上下边框和左右边框的结果。从图2中可以看出,本文方法可以准确去除车牌边框。

2.2.1 去上下边框

对于上下边框,主要有上下边框都有、只有上边框、只有下边框和上下边框都没有4种情况。本文针对以上4种情况,提出了一种自适应阈值水平投影去除上下边框的方法。具体步骤如下所示:

步骤1对车牌作水平投影。根据直方图计算出每行包含的白点个数,按从小到大的顺序存储在列表list中。

步骤2确定自适应水平分割基准值,记为Th,其大小可由式(8)求出:

(8)

其中,L为表list的长度,k为表list的前k个数,Ai为列表中的第i个数,Z为波峰个数。

步骤3从上至下遍历图像,依此找出在阈值为Th时,波峰的起始点和终止点,并存于列表Hlist中。

步骤4根据波峰个数、波峰宽度和图像上下边框上白点的分布情况,确定边框位置,并根据位置去除上下边框,具体流程如图3所示。

Figure 3 Flow chart of top and bottom border removal图3 去上下边框流程图

在图3中,Gi为列表Hlist中的第i个数,Hi为图像第i行。

2.2.2 去左右边框

对已经去除水平边框的图像作垂直投影,统计波峰宽度,然后根据波峰宽度和图像左右两边白点分布情况,确定垂直分割坐标,最后得到无边框图像。

自然条件下,由于第1行和第2行字符叠加投影的作用,左右边框投影所得波峰宽度小于中间字符投影后的波峰宽度,因此波峰宽度可作为判断是否为边框的条件。特殊条件下,由于车牌左右边缘噪声和非车牌区域的影响,会出现边框投影所得波峰宽度等于甚至大于字符投影所得的波峰宽度的情况,此时,可将图像左右边缘白点的分布情况作为判断是否为车牌边框的条件。左右边框可以分为有左右边框、只有左边框、只有右边框和左右边框都没有4种情况。图4为4种情况的垂直投影图。图4a和图4b中有左右边框,前者左右边框分布在图像边缘上,扫描检测到后,可直接按车牌边框处理,图4b可根据波峰的宽度情况判定边框并处理。图4c和图4d分别为只有左边框和只有右边框的情况,可根据波峰宽度结合边框的位置分布情况,判定左右边框,并去掉边框。图4e中无左右边框,可根据波峰宽度情况以及第1个和最后1个波峰所在位置来判定,最终得到无边框图像。

Figure 4 Distribution projection of left and right borders图4 左右边框分布投影图

2.3 字符分割

首先对已去掉边框的车牌图像作水平投影,分割出每一行的车牌号,然后分别对每一行的车牌图像做垂直投影,分割出每一个字符。国内双行车牌第1行字符通常包含汉字、点和字母,第2行字符只有数字和字母。在第1行的汉字当中,左右结构的字在分割时容易发生字符断裂的情况,垂直投影后所得图像的波峰相对较宽,因此本文在字符分割时,2行字符使用的分割方法有所不同。

第1行车牌的分割方法为:首先,对第1行车牌图像做垂直投影,记录每一个波峰的起始和终止位置,计算出波峰和波谷的宽度及个数;然后根据波峰和波谷的宽度及个数,检测出断裂的字符和点;最后合并断裂的字符并去掉字符连接点,分割出每一个字符。由于第2行车牌的字符由数字和字母组成,因此在分割第2行字符时,本文不考虑字符断裂和字符连接点的影响,直接根据第2行的波峰和波谷宽度,检测有黏粘的字符,然后计算出分割阈值,最后分割出每一个字符。车牌字符分割的过程与结果展示如图5所示。

Figure 5 Character segmentation图5 字符分割

3 实验结果及讨论

3.1 图像二值化效果分析

本文根据车牌特点提出的二值化方法,可以有效减少使用单一传统二值化方法带来的噪声。图6为本文图像二值化与传统图像二值化对比图,图6b和图6c是已经确定了前景色和背景色,并形态化处理后的结果。图6b中传统二值化方法会使图像产生较多的噪声,这对后期图像分割有较大的影响。图6c所示为本文所提车牌二值化方法的效果,相比之下噪声大量减少,图像显得更加干净,有利于后期图像的处理。

Figure 6 Comparison of binaryzation effect图6 二值化效果比较

本文分别测试了白底红字、绿底白字、蓝底白字和黄底黑字车牌。总体上,本文所提二值化方法效果良好,但对于曝光严重的图像,二值化效果不太理想。图7a中,图像在部分区域反光强烈,图7b和图7c分别为采用传统二值化方法和本文二值化方法所得结果示例图。从图7中明显可以看出,在反光较强的数字“7”区域,传统二值化方法的效果优于本文二值化方法的。

Figure 7 Strong reflective images图7 反光强烈图像

3.2 字符分割结果

本文对150*100的白底红字、绿底白字、黄底黑字和蓝底白字总共200幅普通条件下的双行车牌图像进行分割。图8为自然条件下正确分割案例。从图8中可以看出,本文方法可以准确分割白底红字、绿底白字、黄底黑字和蓝底白字的双行车牌号。

Figure 8 Correct segmentation cases under natural conditions图8 自然条件下正确分割案例

本文方法可以对被尘埃覆盖、非车牌区域干扰以及在旋转矫正过程中车牌边缘与图像边缘产生空隙的牌号进行准确分割。图9表示特殊条件下的正确分割案例。从图9a中可以看出,车牌由于沙尘、雨水等因素的影响,表面已被尘土笼罩,第2幅图像更加严重,本文方法照样可以正确分割出字符。图9b中除车牌本身外,还有非车牌区域的干扰,车牌边缘与图像边缘间隙较大。在第2幅图像中,车牌不仅有非车牌区域的干扰,而且车牌本身还有变形,对于这一类车牌,本文方法也可以对其进行准确分割。

Figure 9 Correct segmentation cases under special conditions图9 特殊条件下正确分割案例

为了研究车牌旋转角度对车牌字符分割准确率的影响,本文将图像旋转角度范围设置为0°~6°,角度值步长为0.5°,依次递增,实验数据由表1给出。其中,错误率表示分割失败的图像数占总图像数的比例。从表1中可以看出,当旋转角度小于1°时,错误率随旋转角度变化的增值变大(旋转角度为0.5°时,错误率为0.03%,旋转角度为1°时,错误率为0.10%),出现这种情况的原因是车牌边框和字符在同一方向上投影所得的叠加白点数较少。当旋转角度达到并超过5°时,由于车牌边框和字符在同一方向上投影所得的叠加白点数较多,错误率为1.00%,意味着分割失败。综上所述,本文方法受小幅度旋转角度的影响比较小,受大幅度旋转角度的影响较大。

Table 1 Relationship between rotation angle and error rate表1 旋转角度与错误率关系

图10为错误分割案例。图10a中“时”字断裂,“临”字缺少偏旁,主要原因为图像的对比度较低,有轻度曝光现象,本文实验对象在自然条件下获得,并未作图像增强的处理。图10b中由于高反光区域影响,右半部分字符丢失。

Figure 10 Error segmentation cases图10 错误分割案例

Figure 11 Rivets and words cross area图11 铆字交叉区

图10c中,“甘”字和“A”字上半部分缺失,主要原因如图11所示,假设把车牌铆钉看作一个圆,则直线l2为2个圆的公切线,直线l1定义为字符末端切线。直线l1和l2之间既有车牌铆钉存在,也有车牌字符存在,本文把介于l1和l2之间的区域称为铆字交叉区。由于铆字交叉区的影响,在分割此类车牌时会出现字符残缺的现象,因此对于有铆字交叉区的车牌,本文方法分割效果不理想。

表2为本文方法与文献[1]方法的对比结果。文献[1]方法是一种基于CNN的双行车牌分割方法,直接把双行车牌水平分割为2个单行车牌,所使用的训练集包含116 423幅图像,训练时间为1 h。由于本文所兼顾车型牌号训练集十分有限,而基于CNN方法分割的准确率受训练集数量的影响较大,因此本文所提方法不需要训练集,也不用花太多时间训练。从图7中看到,本文方法可以分割多种底色、不同车型的牌号,是一种简单高效的分割方法。

Table 2 Comparison between the methods in this paper and convolution neural network表2 本文方法与卷积神经网络方法对比

3.3 准确率评估

由于目前国家没有对非机动车双行车牌样式作统一的规定,因此车牌字符排列没有固定的规则,不同地区的车牌字符数也不相同,所以自动统计车牌的准确率有难度,因此本文采用手动统计正确分割率的方法。首先检查从每一个车牌上分割出来的字符是否完整,字符边缘与分割出来的图像边缘是否恰好相切,如果每一个字符都满足以上条件,则表明分割准确,然后统计正确分割的车牌数量,结合所使用的总数据集,最后算出车牌分割的准确率。

本文使用的车牌图像总共有200幅,其中,黄底黑字的机动车车牌25幅,非机动车车牌共175幅,包括电动自行车车牌155幅、电动三轮车车牌20幅,不同类型的车牌数量和准确率由表3给出。从表3中可以看出,本文方法对白底红字的车牌分割准确率最高,达到90.2%,蓝底白字和绿底白字的车牌分割准确率分别为89.2%和88.5%,黄底黑字的机动车车牌分割准确率为76.0%。相比于前3种车牌,黄底黑字的车牌分割准确率最低,主要原因是受车牌铆钉的影响,部分图像进行水平投影后,无法准确计算出字符上边界的位置坐标,本文方法并未对车牌铆钉做相应的处理。在所有车牌图像中,非机动车车牌正确分割数量为157幅,准确率为89.7%,机动车车牌分割准确率为76.0%,总分割准确率为88.0%,由此可见本文方法对非机动车车牌的分割准确率明显高于机动车车牌的。

Table 3 Accuracy of different types of license plates表3 不同类型车牌准确率测试结果

本文方法和其它方法准确率对比数据由表4给出。文献[8]使用连通域分量法分割车牌号,此方法对单行车牌号分割准确率较高,但分割双行车牌号时,常将边框与字符混淆,因此准确分割率较低。文献[18]基于马尔可夫链的先验知识嵌入方法以及字符分割技术对双行车牌号进行分割,取得了比较好的结果,但由于在去边框时,利用Hough变换获得二值化图像中最长直线作为边框并处理的方法,导致边框去除不彻底,并且在进行连通域标记时,容易将边框也标记进去,因此,该方法对自然条件下的图像准确分割率比较低。文献[8]和文献[18]中所提方法都需要作连通域标记,对尺寸较大的大型客车等的机动车辆牌号分割效果稍佳,但对小尺寸车牌作连通域标记时,容易发生字符与边框、字符与字符粘结的情况。本文使用改进的二值化方法二值化图像,极大减少了图像噪声;提出的自适应阈值投影方法,极大提升了水平切割的准确度;细化了去边框过程,极大提高了去边框准确度。从表4中可以看出,本文方法分割率明显高于以上2种方法的。

Table 4 The accuracy of this method iscompared with other three methods表4 本文方法与其它3种方法准确率对比

文献[1]基于CNN的方法直接将双行车牌分割为2个单行车牌,并未分割出车牌单个字符,且使用大量训练集训练模型,所以准确率为97.53%,是目前机动车辆双行车牌分割算法中准确率最高的方法。本文方法准确率虽然没有文献[1]方法高,但可以直接把车牌单个字符分割出来,能有效分割电动自行车等非机动车车牌图像,同时规避了目前非机动车等车牌号训练集少,而基于CNN的方法需要大量训练集的问题,是一种简单、便捷、高效的分割方法。

4 结束语

为了有效分割双行车牌,本文提出了一种自适应阈值投影分割方法,同时,针对车牌本身特点,提出了一种新的二值化方法,该方法利用车牌图像在HSV颜色空间的特性,结合传统二值化方法二值化图像,通过自适应阈值解决了国内双行车牌号分割方法针对车型单一且准确率低的问题。与已有方法相比,本文方法能在分割大型机动车辆牌号的同时,也能对电动自行车等非机动车牌号进行准确分割。未来需要进一步降低由于反光强烈、车牌铆钉突出等因素导致的分割误差。

猜你喜欢
车牌号双行波峰
炮制工程骗钱的“甲方”
作用于直立堤墙与桩柱的波峰高度分析计算
校企合作背景下幼儿发展与健康管理专业“双行”人才培养模式探究
差一点
我出高考数学题(十八)
二十世纪美术钩沉·周铁衡
差一点儿
种蒜达人:亩产轻松超过2000千克
儿童标准12导联T波峰末间期的分析
高速公路收费数据车牌号质量分析