python车牌字符分割利用直方图

编程入门 行业动态 更新时间:2024-10-11 13:24:34

python车牌字符分割利用<a href=https://www.elefans.com/category/jswz/34/1763343.html style=直方图"/>

python车牌字符分割利用直方图

本发明属于图像处理和模式识别技术。

背景技术:

智能交通系统ITS是目前交通领域研究的前沿课题,它利用先进的无线通信技术、导航定位技术、信息处理技术、自动控制技术、计算机网络技术及图像处理和模式识别技术等加强道路、车辆、驾驶员和交通管理人员等的联系,实现道路交通管理自动化和车辆行驶的智能化,保证交通安全,减少交通堵塞,提高运输效率,减少环境污染,节约能源,提高经济活力。车牌识别系统做为智能交通系统的一个重要分支,旨在小区门口、十字路口、停车场口和高速公路能够实时的检测识别经过车辆的车牌信息。车牌识别算法一般由车牌定位、字符分割、字符识别3个部分组成,而车牌字符分割在车牌识别算法中也占据着非常重要的位置,其中字符识别严重依赖于车牌字符分割得到的结果。

现有效果较好的车牌字符分割方法,一般是利用标准车牌的模板来指导字符分割,例如申请号为201010608132.4和201310135291.0的两篇专利,其中提出的方法也都取得了不错的效果,但是这两种方法在实现过程中都使用了阈值,使用阈值对垂直投影结果二值化或者对待分割图像进行二值化,这些方法对清晰质量好的车牌字符效果较好,但由于阈值的存在,这种传统的基于图像处理和模板的字符分割方法对于模糊、字符粘连的车牌效果极差,而且流程复杂,需要提前判断车牌颜色,对粘连字符做特殊考虑等。

技术实现要素:

本发明所要解决的技术问题是,提供一种复杂场景下的车牌字符分割方法。

本发明为解决上述技术问题所采用的技术方案是,基于机器学习和模板的车牌字符分割方法,包括以下步骤:

1)评分模型训练步骤:

1-1)先收集并制作正、负样本;正样本为包含一个独立的完整车牌字符的图片,负样本由含有不完整字符或多于1个字符的图片和完全不含车牌字符的图片组成;

1-2)将正、负样本转换为归一化尺寸的灰度图,再对灰度图提取字符特征;

1-3)利用正、负样本的字符特征训练评分模型;

2)多比例模板构造步骤:

2-1)根据标准号牌式样将其整体缩放到构造标准车牌模板,标准车牌模板的宽高分别为W、H;由7个横向顺序排列的矩形框构成,一个矩形框对应框住一个车牌字符,每个矩形框按对应左上角点x坐标与y坐标,右下角点x坐标与y坐标进行位置存储;

2-2)根据标准模板进行尺寸变化,构造n个不同比例的模板T0-Tn-1,不同比例的模板间的字符框的宽高比例不同;

3)模板评分步骤:

3-1)对于一幅待分割的宽为w高为h的车牌图像,将其缩放为宽为H*w/h高为32的图像;

3-2)对于第i个模板Ti,i=0,…,n-1,其总宽度为len(Ti),将模板Ti在待分割图像上从左到右进行滑动并评分,记待分割图像左边第1列像素点位置为0,Ti从位置0开始滑动,对滑动的每一个位置,提取模板Ti中7个矩形框中图像的HOG特征并利用训练好的评分模型对7个矩形框进行评分,对7个矩形框进行评分进行求和得到模板Ti在该滑动位置上的评分,模板Ti的滑动范围为[0,H*w/h-len(Ti)];

3-3)遍历完所有模板,记录各模板在每一个滑动位置上的评分,选择最高评分所对应的模板以及滑动位置作为字符分割的尺寸以及起始位置。

本发明以机器学习作为切入点,通过使用多比例模板在待分割图像上滑动,然后使用支持向量机对每个模板在各滑动位置上评分,最后取最高评分所对应的模板和滑动位置,完成分割。此方法思路简洁明了,不需要判断车牌颜色,中间过程不需要设定阈值,不需要针对字符粘连做特殊处理。

本文的有益效果是,本发明借鉴了车牌标准模板指导字符分割的思路,但在后续步骤中完全摒弃了需要设定阈值的图像处理方法,不再需要将图像二值化,中间过程也不需要设定阈值,易于实现,同时具有很高的鲁棒性,不仅能对简单场景下的车牌完成分割,也能对复杂场景下的模糊、字符粘连的车牌完成分割。

附图说明

图1为正样本和负样本示意图;

图2为标准模板示意图;

图3为多比例模板示意图;

图4为实施例字符分割结果示意图;

图5为实施例对模糊、粘连、污损车牌的分割结果示意图。

具体实施方式

基于机器学习和模板的字符分割方法主要有3个步骤,分别是训练评分模型、构造多比例模板、模板评分。

第一步、训练评分模型,记模型为P(x)。

先收集并制作样本,然后将字符图像作为正样本,非字符图像作为负样本如图1所示。

对于每张图像,首先将其尺寸归一化为16*32,然后转换为灰度图,灰度图有512个像素点,为了对图像的特性进行更好的表征,本文对灰度图像提取80维的方向梯度直方图HOG特征,HOG特征是一种对图像局部特征进行描述的特征描绘子。它通过计算和统计图像局部区域的梯度方向直方图来构成整幅图像特征。提取HOG特征的具体步骤是将归一化的灰度字符图像分为8个块block,每个block包含4*4个像素点,计算出每个像素的梯度,然后用10个bin的直方图来记录单个block的方向梯度特征,每个bin代表一个梯度方向角度的范围,它的值由满足相应梯度方向的像素点的梯度幅度值叠加得到。另外,还要对字符灰度图像提取16维的垂直投影特征和32维的水平投影特征,最后将这三种特征联合起来得到128维的字符特征,并将特征记为

然后训练出一个基于支持向量机的评分模型对于一张待测图像,提取其特征为通过评分模型对其打分的值是该张待测图像是字符的概率,的值越大则待测图像越像字符。

支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使他有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器,支持向量机的学习策略就是间隔最大化。

第二步、多比例模板构造。

根据国家发布的号牌式样尺寸将其整体缩放到156*32,然后构造一个标准的车牌模板,模板由7个有序排列的矩形框构成,7个矩形框分别为{(0,0,20,32),(20,0,40,32),(48,0,68,32),(69,0,89,32),(90,0,110,32),(111,0,131,32),(132,0,152,32)},每个矩形框按对应(左上角点x坐标,左上角点的y坐标,右下角点x坐标,右下角点的y坐标)进行存储,它们分每个矩形框刚好框住车牌字符,如图2所示。

在真实场景下的车牌图像中,单个字符图像的宽高比可能会由于拍摄角度等原因发生较大的变化,所以一个标准模板无法涵盖真实场景下的车牌,又由于即使拍摄角度变化,车牌字符矩形框的相对位置关系(相邻矩形的中心点构成线段长度的比例关系)不发生变化,所以本文根据标准模板构造了n个不同比例的模板,如图3所示,以涵盖真实场景下车牌多变比例,将构造好的n个模板记为T0-Tn-1。模板的多个比例指的是模板中每个字符框的宽高比例,真实场景中拍摄的车牌图像的字符宽高比有很多种,通过多比例模板的构造,真实场景中的车牌字符一定可以通过提前构造好的n个模板中的某一个准确地分割出来,下一步就是通过评分去找到最合适的模板。

第三步、模板评分。

对于一幅待分割的宽w高h车牌图像,将其缩放为宽32*w/h高32的图像。对于第i个模板Ti,记其总宽度为len(Ti),将其在待分割图像上从左到右进行滑动并评分,记待分割图像左边第1列像素点位置为0,Ti从位置0开始滑动,根据分割精度速度可选取合适的步长step,模板Ti的滑动范围为[0,32*w/h-len(Ti)]。当Ti在位置x上时,将模板7个框在待分割图像上对应的图像截取出来,并对这7张图像进行HOG特征提取得到7个128维的特征向量然后使用第一步中训练好的支持向量机对每张图像进行计算得到7个评分,然后将7个框的得分加起来得到在位置x上的总评分记为用一个集合来记录每个(i,x)组合的得分{[i,x,S(i,x)]},i∈[0,n],x∈[0,32*w/h-len(Ti)]。当T0-Tn-1所有模板都完成评分后,对集合{[i,x,S(i,x)]},i∈[0,n],x∈[0,32*w/h-len(Ti)],按S(i,x)的值进行降序排序,得到S(i,x)最大的组合[imax,xmax,S(imax,xmax)],将第imax个模板在待分割图像上滑动到xmax位置,如此便完成了字符分割,如图4所示。图5展示了本发明对模糊、粘连、污损车牌的能进行有效字符分割。

更多推荐

python车牌字符分割利用直方图

本文发布于:2024-02-11 21:08:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1683495.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:直方图   车牌   字符   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!