宣城市网站建设_网站建设公司_测试工程师_seo优化
2026/1/10 16:56:07 网站建设 项目流程

2 车牌定位

2.1车牌特征
车牌号码是在机动车前后两面分别悬挂着的板材,各国之间使用的材质各不相同。在车牌上会登记显示着车辆的登记地区、号码或者其他的基本相关资料。各国之间的车牌外观、材质和内容之间都有些各自的区别及特征存在。
想要准确的定位到车牌所在区域,车牌的特征是车牌定位的关键信息,车牌的识别技术在各方面大多要依靠车牌自身所特有的一些特征来进行分析。以一般我国的车牌来说,首先,在车牌的外观上,一般的车牌都是长方形的形状,并且在长度与高度上都有着统一的标准规定;其次,在车牌的字符上,字符由左到右依次排列,通常情况下第一个字符为汉字,第二个字符为英文字符,各个字符的大小都是由统一的规定,各个字符之间的间隔大小也是相同的;最后,在车牌颜色上看,我国的车牌颜色不同与外国,呈多种颜色,如最常见的目前是普通的小型客车的蓝底白字与最近几年迅速发展的新能源汽车的绿底黑字。它们的车牌底色与字符颜色通常不一样,切相差较大,使得在计算机处理及灰度图上会有一些较明显的变化。
车牌定位方法大致有几种,第一种是通过形态学处理和车牌的颜色特征的方法;第二种为根据车牌的形状特征为基础的定位方法,根据车牌的矩形特征和矩形的长宽比来进行;第三种方法是基于Lab的颜色模型和聚类分割以及车牌的性质特征的定位方法[7]。
目前本文所使用的车牌定位最主要依靠两点进行。其一为颜色,在我国,最常见的车牌的颜色特征大致可以分为几类,主要由大型汽车车牌的黄底黑字,普通小型汽车的蓝底白字以及在最几年开始广泛使用的新型能源汽车车牌的绿底黑字。其二为车牌的尺寸、字符特征,车牌第一个字符为省、自治区、直辖市的汉字字符简称,第二个字符为发牌机关代号(通常为英文字符),之后为英文数字之间混合组成的字符。各个字符之间隔,整体车牌的长宽比等车牌尺寸的细节特征如下图2.1的标准车牌尺寸图所示。

图2.1 标准车牌尺寸图
因拍摄角度,外界的各种干扰因素,实际所获得到的汽车图像的尺寸特征并不会严格如图2.1一般,各标准之间会有一定的小范围内变化。下面大致介绍具体的定位流程。

2.2定位流程
定位的大致流程如下图2.2定位流程图所示:

图2.2 定位流程图
对图像的预处理部分,首先对输入的汽车图像使用高斯滤波去噪,使图像变得平滑去除部分噪声。再将图像转化为灰度图并进行图像的二值化处理。在OpenCV的Python接口(以下均默认为Python的接口)中分别对应GaussianBlur()、cvtColor()、threshold()函数。经过预处理后的二值化图像大致如图2.3所示。

图2.3 二值化图像
3 字符分割

3.1 切割方式
在获得比较精确的车牌定位区域后,开始进一步对获得到的图像进行字符分割。车牌的字符分割主要的作用是为了方便之后所要实现的识别功能。在准确的分割算法下,车牌识别能够获得较高的准确率,但分割算法要达到较高的准确率是比较困难的,其表现结果受光线强度、车牌扭曲等的影响较大,停车场的应用场景下车辆往往可以保持良好的“姿态”且距离采集设备较近,因此采用字符分割的方法可以获得优秀的识别效果,但对于无人机摄像头或交通摄像头来说环境会更加复杂[8]。
现在,最常见最常用的分割方法为两种,一种是基于连通域的分割方法,另一种是基于车牌的投影图像的分割方法通俗来说即是垂直投影法。本文所采用的方法则是基于垂直投影的方法来进行。
垂直投影法是目前应用较多的字符分割的方法,其特点为比较简单且相对要容易实现。它是根据图像在垂直方向上的投影,(在车牌字符分割中,理想状态下只有在有字符的位置上垂直投影是有数值的,而字符与字符之间的间隙是为0的)车牌之间的字符是由一段间距存在的,因此根据投影之间的数值,可以判断出字符与字符之间所在的间隔位置,依此可以将字符之间给分割出来。在本文,分割方法的大致的实现步骤为,首先对车牌二值化图像进行逐行扫描,记录其数值的跳变次数。因为车牌之间的间距存在,车牌二值化图像的数值横向跳变次数基本是保持在一定的次数以上(因噪声的存在,图像预处理的不完善,字符有一定几率存在粘连等多种因素无法保证为固定数值)可以大致的确定上下边界。之后再对图像进行逐列的扫描,分别记录下黑白像素的数量值。根据数量值,我们可以设定一个较为宽松的阈值,通过修改阈值可解决一些字符粘连上的问题。

3.2 切割流程
在使用垂直投影法进行车牌字符分割操作的流程大致如下流程图3.1所示。

图3.1 分割流程图
首先是图像的预处理部分。为了之后的处理方便以及尺寸统一,先将传入的车牌区域图像尺寸修改为统一的长度与宽带(本文中暂时分别设为140,36)。
4 车牌识别

4.1 字符识别方式
将车牌定位于车牌字符分割说做车牌识别整体的基石,那么字符识别的性能好坏也是直接关系到了整体车牌识别的成果。由于计算机的整体普及、计算能力的进一步发展以及大数据智能化的时代到来,字符识别的方法变得多种多样,各个方法之间得优劣各有千秋。例如基于字符特征的方法,基于模板匹配的方法、基于神经网络的识别方法与支持向量机法等等。基于车牌的特征统计方法是目前在车牌识别的应用中使用也是比较广泛的一种,这种方法主要是依靠在统计学之上的一种识别方法。在之前的车牌定位中,我们获得到了车牌的具体区域,在字符切割中得到了车牌的单个字符图像。最后,在本文中,根据现有的资源以及OpenCV中附带有的函数功能,本文中采取使用支持向量机的方法进行字符识别。
支持向量机,也被称为SVM,是一种能够构造出线性和非线性分类器的方法。作为一种二分类模型时,它的基本做法是求解出能够正确地划分训练数据集并且使几何间隔最大的分离决策面,此外SVM包括一种核技巧,可以通过核方法使它达到非线性分类器的效果。简单来说,SVM方法是基于结构风险最小化原理的统计学方法[9]。SVM分类器的优点在于它能够相对缩短时间复杂度,只需要进行一次模型的训练,对模型可以重复地进行使用。虽然这种方法有着许多优势,却也有着缺点存在,为了提高识别精度,需要大量的训练集当作样本,训练的时间以及对计算机本身的要求较大。

4.2 识别流程
在OpenCV中提供了相应的训练的sample样例函数,仅仅是使用的话非常方便。OpenCV所附带的sample函数的本质为将灰度图、二值图、16值图的HOG特征在一定的权重下融合为联合HOG特征,使用核主成分分析法(KPCA)对联合HOG特征进行降维,进而利用支持向量机进行分类[10]。若需要训练模型,只需要通过cv2.ml.SVM_create()函数创建SVM类,将所需要训练的图片通过OpenCV中附带的sample样例转化为相应的格式后,再将转化好的训练样本图片以及图片的标签传入所创建的SVM类中的.train()函数之中即可。最后在训练完成之后,将训练好的模型保存至本地即可。由于设备以及无法获得足够的训练样本集,因此本文采用已经训练完成的sample模型作为字符识别模块使用。大致的流程如下图4.1所示。

图4.1 识别流程图

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询