收藏和点赞,您的关注是我创作的动力
概要
随着我国日渐强盛,交通问题也越来越大,人们需要一款高科技的可靠性高的车牌识别系统。本文即是针对这一问题开发了一款基于python OpenCV车牌识别计费系统,本系统的图像处理主要来源于计算机视觉库OpenCV,采用了python语言来对我国常见车牌进行识别。该识别系统通过对车牌的文本图像信息进行了车牌图像信息预处理、车牌图像定位、车牌字符图像分割和车牌文本字符识别等多种图像处理方式,从而基本实现了汽车车牌识别系统中的各种重要功能。根据实验结果可以看出,该系统可以识别我国常见的大部分车牌。
关键词:OpenCV,图像的文字预处理,车牌号的定位,图像的字符分割,图像的字符识别
一、研究背景与意义
随着当前阶段我国新型现代城镇化工程建设工作进程的深入和不断加速,社会主义市场经济和国家工业技术现代
化等社会科学信息技术的广泛引入和应用迅猛发展,人们对于自己汽车出行的需要日益扩大,机动车已经逐渐地成为
现代人们在日常生活中必须使用的一种重要交通方式。截至2021年第一季度,全国累计发放新增驾驶注册机动车966
万辆,同比上一季度上一季度多了67.31%,比2019年同期上一季度多了31.96%,创同期的历史最高水平。机动车虽然给
人们的日常生活方式带来极大的方便,但也在其中滋生了一个社会性的问题。即是说,机动车虽然在给人们的工作和
日常生活都带来极大的方便,但也在其中滋生了一个社会性的问题。也就是说,私有机动车辆总量的迅猛增长直接导
致了我国许多大城市和中小型农村地区的机动车停放困难问题越来越凸显,而且机动车辆停放困难的问题也成为长期
困扰人们的社会问题,给当前我国的交通运输和管理工作带来了极大的压力。要想完全解决机动车停放困难的问题,
不能再简单地用一个停车场有偿使用或者是加大对停车场基础设施工程的建设投资来进行调整。所以这些都不是很
好的解决方法。而是需要充分运用以人民服务为中心的发展理念的现代科学技术,利用先进的现代科学技术来构造高
效的停车场计时和计费系统,提高停车场的计时和计费工作效率,实现整个停车场的智能化。此类问题的管理工作已
经是政府、运输行政主管部门、物流行政主管和道路交通行政执法机构的一项重要工作。
基于 python opencv 车牌识别计费系统,本研究课题主要来基于对停车场的安保管理措施薄弱、计时和计费不
合理、停车资料保存不健全,且与当代信息自动化、智能化等城市建设的推进方向不相适应和协调,影响了整个城市
温暖和力量的品牌形象等众多问题而提出的。本套系统设计旨在开发出一个具有较高技术含量、成本较低、维修简
单、计时和收费准确等优势。
二、系统的设计
1、实现思路
本文的研究课题主要对对我国汽车专用牌照的文字图像信息预处理与对比及车牌号码的准确定位、文字图像信
息源的分割、文字信息识别、车型趋势判断、计时和自动算法收费等相关系统基础设计几个重要工作过程的进行深
入分析研究,其系统基础设计工作完成流程以及框架设计如软件图1.1所示。
图 1.1 本课题的基本流程
三、系统实现
3 车牌图像的准确定位
对于图像的边缘检测只能大体定位到车牌,并不能获取准确的车牌位置,这里面除了包含着真实的车牌位置还
有一些虚假的拆牌区域,而在这些区域里面,我们只需要一个区域,就是真实的车牌所在的区域。要准确的定位车
牌的位置就一定要除掉图像的虚假车牌区域,具体操作如下:
第一步:对候选连通域逐个进行长宽对比,这会使结果在一定区间上,将结果的区间设定在[2,5],将计算结果
不在这个区间的区域删除。
第二部:将经过第一步处理后的区域分别计算面积, 这样计算结果也会在一定的区间里,将结果区间设定在
[2500,7500],然后排除那些结果不在这个区间的区域。
11
第三步:再将经过前两步排除剩下的区域进行色彩分量的分析,将其与我国车牌色彩饱和度特征进行对比,排
除那些不匹配的区域。
剩下的就是真实的车牌所在的区域,将这些区域用最小外接矩形标记并记下坐标,可以使用函数cv2.
findContours()对图像进行矩形检测,具体的效果图如图3.1所示:
图3.1 车牌精准定位后图像
3.车牌字符分割技术的设计与实现
将车牌图像中的字符分割成一个个单独的字符这就是车牌图像的字符分割,车牌图像的字符分割是为了下一步
的字符识别打下基础。
3.1车牌图像的水平校正
经过定位后,所获得的车牌难免存在某种程度的倾斜 情况,最终会影响到车牌识别正确率。所以,首先应该
检 查倾斜角度,做倾斜矫正。
3.1.1车牌图像倾斜角度检测
本文使用的是OpenCV中的函数HoughLines和函数HoughLinesP,HoughLines函数可以调用标准的HoughLine转换
和多尺度的HoughLine转换。HoughLinesP函数用于调用累积概率HoughLine转换。
,可以用方程 。这里我们用通过函数的极坐标来求出函数中的a和
要在二维坐标轴上表示一条直线
b,函数极坐标的表达式如公式3.1所示:
这些都是一条直线的基本特征。只要在OpenCV里调用霍夫线变换,就可以得到这两个值。
3.1.2 车牌图像的倾斜矫正
本文对于图片倾斜矫正处理的方法是先利用霍夫变换,找到与竖直方向夹角不大于30 的直线,接着对这些直线
与竖直方向的夹角取平均值avAng,然后再将图像旋转avAng,以此来实现车牌校正,车牌图像校正前后对比如图4.1
和4.2所示。
图4.1车牌图像水平校正前 图4.2车牌图像水平校正后
经过两图对比可以看出,经过水平校正后的图片更加规整,更加利于系统对其进行处理。
3.2车牌边框和铆钉去除
经过2.2.4节的操作后我们得到了车牌图像的二值图像,但是二值化的图像里仍然惨在这边框和铆钉,这会对我们的垂直投影在成很大影响。为了使系统能够更加准确的处理车牌图像,我们要去除二值化图像中的边框和铆钉。
根据我国车牌特点,在车牌的第二个的右上方和第六个字符的左上方有二个铆钉。在目前去车牌边框和铆钉的方法
非灰度跳变法莫属[21]。
灰度跳变法基本原理:将灰度变化平缓的边框区域看成背景,把灰度变化快的字符区域看成主题。设定一个阈
值,是系统在扫描过程中可以分辨出背景与主体的边界。在对调处理的车牌图像进行水平扫描的过程中,把灰度跳
变的次数记录下来;根据跳变规律提取字符区域。灰度跳变为0的背景行没有铆钉,灰度跳变加1的背景有铆钉。设
定阈值分割出车牌。一个字符会发生不小于两次的2次跳变,一行像素会发生不小于12次跳变。将前面提到的阈值设
定为9,将不大于9次的像素值跳变次的行投影值全设为0。具体步骤:首先令相关参数如下:
H:二值车牌图像的高度;
L:车牌图像的长度;
N:水平方向投影的次数,其初始值为0;
S:字符上边界坐标;
D:字符下边界坐标;
(1)统计行像素上发生跳变的次数,发生一次跳变对N加1;
(2)设置阈值T对步骤(1)的N进行筛选。从中间值 开始向两端扫描。再向上扫描,当T大于跳变次数时扫描
结束,记录位置L。接着向下扫描,同理T大于跳变次数时扫描结束,记录位置L。
(3)将图像从H开始扫描一直到L,再一次获取图像,如图4.3所示:
图4.3除去边框和铆钉车牌图像
观察本图可知,车牌图像在进行边框和铆钉的去除工作后更加简洁了,去除了图像中的干扰因素,系统的可靠
性进一步得到了加强。
3.3车牌字符分割的具体步骤与操作
3.3.1车牌字符的特点
我国现阶段实行的机动车号牌规范为《中华人民共和国机动车号牌》(GA36-2007)。如图4.4所示,是一幅
44cm×14cm的汽车牌照中,在此牌照中,有7个字符:省、直辖市、自治区的简称(汉字字符)排在第一个;大写字
母,即所在城市的代号排在第二个。后五个字符可是数字和字母。牌照和其中字符的高度与宽度确定。第二个字符
与第三个字符的间隔比其他字符间隔大,上述信息可以作为先验知识简化字符分割的难度,提升字符分割精确度。
图4.4 我国常见汽车号牌样式
四、总结
基于车牌识别式停车场的计时和计费系统就是针对我们国家在信息化和智能交通建设的大背景下所提出来的,总
结了传统的停车场计费和管理存在的问题,自行研究开发设计了一种可以直接实现车牌识别、自动判断车型、自动缴
纳等收费的智能停车场计费系统。此次系统为了顺应当前智能化交通技术发展的趋势,顺应基于车牌信息识别的大型
停车场自动计时、电算化控制系统的研究设计、调试等过程中,本人主要完成了下面的几个任务:
(1)在本课题的选择与问卷和系统研究开发初期,我认真地阅读了许多与此课题相关的文献并对它们的内容做出
了深入的学习和总结。学习了与数字图像处理、模式识别的基础原理、数据库知识等密切相关的理论知识,加强了
python 等软件编程技术能力的培养,这些都是为我下面项目工作开展做好准备的。
(2)文中已经将车牌辨认的三个主要过程全部介绍和仿真。利用车牌的边缘性特征提取及数学形态理论相结合的
车牌定位技术手段来完成车牌的边缘性特征提取。我们采用了垂直投影技术以及结合汽车牌照先验性知识的字符分
割技术方法来很好地实现了字符的分割,最后我们采用了基于模板匹配的方式来完成了字符分割识别。
(3)通过对 his 图像进行建立模拟,查看 h - s 分量与 s - s 分量简易地实现了对车型识别的功能。
(4)使用 pycharm 软件来进行开发程序、搭建数据库,通过 ado . net 来实现交互。设计了一款简易方便、能
够满足根据基本情况需求而制定的停车位计时、算账系统。
由于自己的水平与时间有限,本次操作中还是存在一些缺点之处及其他我们可以改进的地方:
(1)本系统在光线充足的情况下运行较为稳定,但在光线不好的时候系统识别车牌可能会遇到一些问题,还要进
一步改善。
(2)没有对车型的判别进行深入的研究,只能实现简单的判别车型的功能。
(3)系统整体结构的设计虽然已经满足了整体计时和运行的基本要求,但是对于各类停车场的单位预订、整体单
位调度等需要却无法得到充分的满足,在今后的一段时间里还是有待进一步优化。
(4)本文所提出的算法和设计的系统只是在实验室的环境下仿真模拟的,运用到实际中需要进一步的优化。
四、 文章目录
摘要- 1 -
关键词- 1 -
Abstract.- 1 -
Key words- 1 -
1 绪论- 1 -
1.1 研究背景及意义- 1 -
1.1.1 课题研究背景- 2 -
1.1.2 车牌识别技术国内外发展现状- 2 -
1.1.3课题研究意义- 3 -
1.2 车牌识别技术的应用- 3 -
1.3 车牌识别技术难点- 4 -
1.4 论文安排- 5 -
1.4.1系统框图- 5 -
1.4.2 本文的章节安排- 5 -
2.车牌图像预处理和车牌图像准确定位的设计与实现- 6 -
2.1 HSV通道图像的获取- 6 -
2.2 对HSV通道图像的灰度处理- 7 -
2.2.1 高斯滤波- 7 -
2.2.2 边缘检测- 8 -
2.2.3 图像的二值化处理- 9 -
2.2.4 形态学处理- 10 -
2.3车牌图像的准确定位- 11 -
2.4 本章小结- 12 -
3.车牌字符分割技术的设计与实现- 12 -
3.1车牌图像的水平校正- 12 -
3.1.1车牌图像倾斜角度检测- 12 -
3.1.2 车牌图像的倾斜矫正- 12 -
3.2车牌边框和铆钉去除- 13 -
3.3车牌字符分割的具体步骤与操作- 13 -
3.3.1车牌字符的特点- 13 -
3.3.2 垂直投影结合车牌字符特点的字符分割- 14 -
3.3.3 车牌字符分割- 15 -
3.4 小结- 16 -
4.字符识别和车型判别的设计与实现- 16 -
4.1 车牌字符识别- 16 -
4.1.2 字符归一化处理- 16 -
4.1.3 字符特征提取- 17 -
4.1.4 字符识别- 18 -
4.2.车型判别的设计与实现- 20 -
4.2.1 车型分类- 20 -
4.2.2 车牌颜色识别算法要求- 21 -
4.3 本章小结- 21 -
5.系统设计与实现- 22 -
5.1开发语言、工具及环境介绍- 22 -
5.1.1 Python技术介绍- 22 -
5.1.2图像识别工具OpenCV技术介绍- 22 -
5.2程序功能需求分析- 23 -
5.2.1 功能分析- 23 -
5.2.2 计时计费软件开发要求- 24 -
5.3 系统总体实现分析- 24 -
5.3.1 数据库系统的设计- 25 -
5.3.2 系统功能实现与调试- 25 -
5.4 本章小结- 25 -
3
6.总结- 25 -
参考文献:- 26 -
致谢- 26