一种从图片中识别车牌的方法与流程

文档序号:12671123阅读:2707来源:国知局
一种从图片中识别车牌的方法与流程

本发明属于图像处理和数据挖掘技术,具体涉及一种从图片中识别车牌的方法。



背景技术:

车牌识别行业已经具备了一定的市场规模,如电子警察、停车场、汽修服务等领域都取得了一定的应用,总体而言,车牌识别行业在我国处于发展阶段。

识别算法是车牌行业发展的主要瓶颈,识别精度这是车牌识别质量好坏的重要指标,也是判断车牌识别能否取得广泛应用的关键因素。当前我国车牌识别的行业可谓是鱼龙混杂,虽然做车牌识别的公司很多,但是拥有核心技术和算法公司相对来说较少。且因公司较多,每个公司均占有一定的市场份额,集中度较低,缺乏真正意义的领导品牌。

目前车牌识别主要有两种识别方式,一种称为“硬识别”,另外一种称为“软识别”。硬识别是指将车牌识别的软件模块嵌入到软件中从而进行车牌识别,软识别是指通过对图片处理来获取图片中的车牌。现有的这些车牌识别方法往往不能适应各种复杂环境造成的车牌模糊的情况,从而识别率低。



技术实现要素:

发明目的:针对现有车牌识别技术中存在的问题,提出一种从图片中识别车牌的方法。

技术方案:本发明一种从图片中识别车牌的方法,依次包括以下步骤:

(1)采用车牌定位来确定包含车牌的矩形图片,即通过结合颜色定位和Sobel定位产生候选的车牌位置图片,然后采用SVM分类模型确定候选车牌图片中是否包含字符,确定真正车牌图片;

(2)采用字符分割将车牌中车牌号的字符分别提取,即通过对步骤(1)所得的车牌图块进行字符分割,分别识别每一个字符便可获取该车牌的车牌号码;

(3)基于神经网络模型对车牌号中的字符进行识别。

进一步的,所述步骤(1)中的颜色定位的具体方法为:将图像的颜色空间由RGB根据公式转换为HSV,对图像使用直方图均衡进行预处理;遍历图片中的像素,对H值在200-280之间,S和V均大于阈值的像素标记为白点像素,对其余像素标记为黑点像素,产生二值化图像;对二值图像使用闭操作,取轮廓等方法获取车牌的外接矩形。最终产生多个候选的车牌图片。

进一步的,所述步骤(1)中的Sobel定位的具体过程依次包括:高斯模糊处理、灰度化、Sobel算子、二值化处理、闭操作、取轮廓、判断车牌大小、角度判断、旋转以及尺寸标准化。其中,判断车牌大小根据中国车牌宽高比为3.14,来判断可能的车牌范围,尺寸标准化将定位出的车牌范围车牌尺寸调整为宽136mm,高36mm的矩形。最终产生多个候选的车牌图片。

进一步的,所述步骤(1)中利用SVM模型对定位出的图块进行分类的具体方法是针对通过颜色定位和Sobel定位后产生候选的车牌位置图片,采用OpenCV中内置的SVM模型实现EASYPR实现最终车牌图片的选择。

进一步的,所述步骤(2)具体依次包括以下步骤:二值化、取轮廓;二值化时,由于蓝色车牌与黄色车牌中字体颜色不同,需要采用不同的二值化参数,蓝色车牌采用OpenCv中的CV_THRESH_BINARY参数,而黄色车牌采用的是CV_THRESH_BINARY_INV参数;取轮廓操作时,针对第一个汉字,直接取车牌图片1/7和2/7位置处的矩形框,避免汉字被拆分的问题。

进一步的,所述步骤(3)中采用OpenCv中提供的神经网络类CvANN_MLP进行字符识别,具体方法为:

(31)实例化CvANN_MLP,使用CvANN_MLP构造神经网络。

(32)加载ANN.XML,ANN.XML是已训练好的字符识别权值矩阵。

(33)进行字符识别,将每个字符图块预处理之后输入到神经网络中便可获取一个最接近的字符。

有益效果:本发明通过处理图像来获取图像中的车牌,车牌识别主要包括两个流程,车牌定位和字符识别,车牌定位的目的是将图片中包含车牌的图块分割出来,而字符识别的目的是将分割出来的图片中的字符进行识别。本发明采用颜色定位与Sobel定位相结合的方式实现车牌定位;通过对车牌图像进行颜色判断,然后进行二值化,并提取字符轮廓和外接矩形,实现字符分割;采用神经网络算法实现车牌字符识别。本发明的车牌识别率较高,能够适应在不同特殊情况的车牌识别。

附图说明

图1为本发明中车牌识别整体流程示意图;

图2为本发明中车牌定位总体流程图;

图3为本发明中车牌Sobel定位的主要流程图;

图4为本发明中车牌字符分割流程图;

图5为本发明中车牌字符取轮廓操作效果图;

图6为实施例1中灯光昏暗条件车牌识别效果图;

图7为实施例1中雨天条件车牌识别效果图;

图8为实施例1中大角度下车牌识别效果图;

图9为实施例1中雪天条件车牌识别效果图;

图10为实施例1中车辆污损条件车牌识别效果图。

具体实施方式

下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。

如图1所示,本发明的一种从图片中识别车牌的方法,通过对摄像头采集的车牌图片进行处理获取图片中车牌号码,包括车牌定位、字符提取以及字符识别步骤,具体为:

步骤一、车牌定位

车牌定位结合颜色定位和Sobel定位产生候选的车牌位置图片,然后采用SVM分类模型确定候选车牌图片中是否包含字符,确定真正车牌图片。颜色定位是指在一幅图像中,寻找与车牌颜色相关的颜色区域,然后利用结构特征或者是纹理特征对该颜色区域进行判断,从而确定车牌区域。而Sobel定位是通过对二值图像进行处理,寻找图像中的垂直区域进行定位的方法。由于车身颜色和车牌颜色有可能相同从而无法使用颜色定位,故本发明采用颜色定位与Sobel定位相结合的方式进行车牌定位,车牌定位总体流程如图2所示。首先使用颜色定位,然后根据条件使用Sobel定位,以增加系统的适应能力。除此之外,为了加强鲁棒性,使用Sobel定位时,可以进行两个阶段的查找,即在已通过被Sobel定位的图块中再使用一次Sobel定位,可以增加定位的准确率。

1.1颜色定位

采用HSV颜色模型作为颜色定位使用的模型,但是仅仅使用H分量来判断车牌颜色是不够的,当H值固定的时候,S和V的取值也将对颜色产生一定的影响,S值过低,颜色越发趋向于变白,V值过低,颜色趋向于变暗,因此需要设定一个阈值,当S和V均大于这个阈值的时候,颜色才属于H所表达的颜色。在实验验证部分,S和V的阈值设定为0.35。经实验证明,大于该阈值可以排除大部分的车身颜色对使用颜色进行车牌定位的干扰。H取值在200-280的时候,这些颜色被认可为蓝色车牌的颜色范畴。同理,当H在30-80的时候,认为该颜色属于黄色车牌的颜色范畴。下面介绍颜色定位的具体步骤。

(1)将图像的颜色空间由RGB根据公式转换为HSV,因为受到一定光照强度的影响,因此对图像使用直方图均衡进行预处理。

(2)遍历图片中的像素,对H值在200-280之间,S和V均大于0.35的像素标记为白点像素,对其余像素标记为黑点像素。

(3)对第二步获取的二值图像进行传统的车牌识别处理,使用闭操作,取轮廓等方法将车牌的外接矩形获取之后做进一步的处理。

1.2Sobel定位

Sobel定位的主要流程如图3所示,下面分别介绍每一步的操作。

(1)高斯模糊:对图像进行去噪处理,可以让图像在后期处理中更容易的检测到边缘点,经过对比使用高斯和未使用高斯模糊,系统定位出“车牌”数量是不一样的,使用高斯模糊,车牌定位准确,不易产生多余定位结果,而未使用高斯模糊,则会定位出大量的无关矩形框。

(2)灰度化:边缘检测算法要求采用灰度化的环境,这一步的作用就是将彩色图片处理成灰度图片。

(3)Sobel算子:检测灰度图片中的垂直边缘,以便区分车牌。Sobel算子的算法是对灰度图像求垂直与水平方向的导数,以此来判断是否是垂直边缘。检测垂直边缘时,并未直接对图像求垂直与水平方向导数,而是使用了周边值得加权和方法,即“卷积”。

(4)二值化:对Sobel算子生成的灰度图像中的每一个像素进行阈值处理,生成二值化图像。

(5)闭操作:将车牌字母连接成一个完成的矩形局域,方便接下来的取轮廓操作,闭操作会使图像的形态发生改变,通过使二值图像先膨胀再腐蚀,可使许多靠近的图块相连成无突起的连通域。

(6)取轮廓:取轮廓的目的是勾画连通域的外围,形成外接矩形。

(7)尺寸判断:排除不可能车牌的矩形区域。中国车牌的一般大小是440*140(单位:mm),面积为440*140,宽高比为3.14。设置一个最大宽高比Rmax和最小宽高比Rmin,判断矩形区域是否在该宽高比之内即可判断该区域是否有可能是车牌。

(8)角度判断:目的是进一步排除不可能是车牌的区域,设定一个角度阈值,如果该区域旋转角度大于该阈值则舍弃该区域。

(9)旋转:将小于角度阈值的矩形调整到水平范围,便于统一尺寸。

(10)统一尺寸:在导入机器学习模型中之前,需要将车牌尺寸进行统一,否则该图片无法被机器学习模型处理。实验验证中,车牌尺寸调整为宽136mm,高36mm的矩形。

1.3SVM模型

经过颜色定位和Sobel定位后,预选出一些符合车牌大小或者颜色的图块,但是这些图块中有很多并不是车牌,利用SVM模型对定位出的图块进行分类,判断图块是否包含车牌。此处使用OpenCV内置的SVM模型从候选车牌中选择真正车牌。

(1)加载OpenCV中EASYPR车牌识别开源的SVM训练模型参数文件SVM.XML。

(2)读取图块,将图块转化为OpenCV支持的数据类型。

(3)调用svm的实现类CVSVM的predict方法进行预测分析,如果返回值为1则该图块为车牌,如果返回值为0,则舍弃该图块。

步骤二、字符分割

车牌定位结束之后,可以获取仅包含车牌的图块,接下来通过对车牌图块进行字符分割,分别识别每一个字符便可获取该车牌的车牌号码。字符分割的目的是将车牌中的所有文字经过处理后划分为单一的字符,这样才能一一进行字符识别工作。字符分割的主要流程如图4所示。

字符分割中灰度化,颜色判断与车牌定位类似,在此不再赘述。而二值化与取轮廓有所改变,下面分别介绍二值化与取轮廓操作。

2.1二值化

使用二值化时,由于蓝色车牌与黄色车牌中字体颜色不同,需要采用不同的二值化参数,蓝色车牌采用OpenCv中的CV_THRESH_BINARY参数,而黄色车牌采用的是CV_THRESH_BINARY_INV参数。此外,由于车牌中有着铆钉的存在,导致车牌四周会出现一些白色的点,所以在二值化的同时,还应该将图像进行截取,排除铆钉对取轮廓操作的影响。

2.2取轮廓操作

使用取轮廓操作时,有的中文字符会发生断裂现象,如图5中中文字符“苏”,所以在处理取轮廓操作时,在判断出所有的外接矩形之后,取1/7和2/7位置处的矩形框,如图中的字符“E”,将轮廓框向左平移一定位置后,便可截取出中文字符。

截取图块之后便可获取七个包含车牌字符的图块,放到字符识别中进行识别。

步骤三、字符识别

本发明利用神经网络进行字符识别,采用OpenCv中提供了的神经网络类CvANN_MLP进行字符识别。CvANN_MLP是一个多层感知网络,它有一个输入层,一个输出层以及一个或者是多个隐藏层。使用CvANN_MLP进行字符识别主要有以下几个步骤:

(1)实例化CvANN_MLP,使用CvANN_MLP构造神经网络。

(2)加载ANN.XML,ANN.XML是已训练好的字符识别权值矩阵。

(3)进行字符识别,将每个字符图块预处理之后输入到神经网络中便可获取一个最接近的字符。

实施例1:

本实施例中,车牌识别模块可在多种环境条件下进行车牌识别,如灯光昏暗、雨雪天气、大角度车牌、车牌污损等条件。除车牌污损条件下车牌识别效果不好外,其他条件下均可完成需求。下面分别给出各种条件的识别效果。

图6位灯光昏暗条件识别效果,灯光昏暗条件下,使用颜色定位可以较好的分辨出车牌位置。且经过多次试验,灯光昏暗条件对车牌识别影响较低。

图7为雨天识别效果,雨天对车牌识别影响较大,可以采用高清摄像头进行拍照提高识别准确率。

图8为雪天识别效果,雪天条件下可以识别出大部分英文字符,但对中文字符的识别效果不好。可以考虑使用高清摄像头进行拍照识别。

图9为车辆大角度识别效果,系统对大角度车牌的识别效果较好。在进行车牌定位时,对矩形进行旋转使小于角度阈值的矩形调整到水平范围。提高了大角度车牌的识别效果。

图10为车辆污损识别效果,污损条件下的字符很难识别出正确的字符,在以后可以通过改善识别算法提高污损条件下的车牌识别正确率。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1