基于OpenCV的车牌识别算法毕业论文
2022-01-13 21:31:55
论文总字数:19901字
摘 要
我国的经济在这几十年来飞速的发展,汽车总量也在随之逐年猛增,人们的日常生活、出行已经离不开汽车。车牌进行识别技术,也是一个国内外计算机视觉学者研究的热门问题。不同国家的车牌,识别起来的难度和方法也不尽相同,中国车牌与国外车牌不同的地方在与包含中文、数字、英文的组合,因此如果直接利用国外的技术应用到这个问题上,效果不是很好,同时,识别的准确率也受图片质量、光线、角度、障碍物遮挡等因素影响。
OpenCV是一个强大的计算机视觉库,本文主要研究的是利用OpenCV库提供的Python接口进行中国车牌的识别。主要步骤包括车牌定位以及车牌识别。首先对包含车牌的图片进行图像预处理,然后利用Canny算子求得处理后图像的轮廓,再对所得轮廓进行一系列筛选(长宽比、轮廓所在区域的颜色)得到车牌所在区域完成车牌定位。车牌识别最先尝试使用Tesseract但过程中发现存在诸多缺点并且效果不佳,最后舍弃,改为采用了SVM(支持向量机),通过二值化图像的水平竖直方向投影的波峰分割出车牌中单独的一个个字符,提取字符的特征采用了HOG特征提取方法,对于大写英文字母和数字以及中文省份字符,分别训练了两个SVM模型用来识别。最终识别的准确率比较高,对于不同的情况,具有较强的鲁棒性。
关键字:车牌识别 Python OpenCV HOG SVM
The Algorithm of License Plate Recognition Based On OpenCV
Abstract
China's economy has developed rapidly in the past few decades, and the total number of cars has also increased year by year. People's daily life and travel have become inseparable from cars. The license plate recognition technology is also a hot issue for computer visual scholars all over the world. Chinese license plates contain Chinese characters, digital and English characters which make them different from foreign license plates. Therefore, if we apply foreign methods directly to Chinese license plate recognition, the results are unsatisfactory. Also, the accuracy of recognition is also affected by factors such as picture quality, lights, angle, obstacles and so on.
OpenCV is a powerful computer vision library. This paper focuses on the recognition of Chinese license plates using the Python interface provided by the OpenCV. The main steps include license plates location, text segmentation and character recognition. Firstly, the image preprocess is carried out on the image. The contours of the processed image are obtained by the Canny algorithm, and we can select the contour which contains license plate by some attributes such as ratio of length to width and color of the region. In the next step, I tried Tesseract to recognize characters at first but it turned out to be unstable. Finally, it was discarded and replaced with SVM (Support Vector Machine). The method of using horizontal and vertical projections is applied to separate the characters, then I adopts the HOG feature extraction method to extract features of every single character. For uppercase English letters, numbers and Chinese characters, two SVM models are trained for recognition individually. The accuracy of the final recognition is relatively high, and it is robust to different situations.
Keywords: license plate recognition; Python; OpenCV; HOG SVM
目 录
摘 要 I
Abstract II
第一章 绪论 1
1.1 课题背景及意义 1
1.2 课题国内外研究现状 1
1.3 课题研究内容 2
1.4 论文结构 3
第二章 相关工具 4
2.1 Python 4
2.2 OpenCV 4
2.3 SVM(支持向量机) 5
2.4 Tesseract 5
2.5 Tkinter 6
第三章 设计方案 7
3.1 总体流程 7
3.2 车牌定位 7
3.2.1 高斯模糊 7
3.2.2 灰度化 10
3.2.3 形态学变换 11
3.2.4 二值化 13
3.2.5 Canny边缘检测 15
3.2.6 筛选边缘 16
3.3 文本分割 17
3.4 字符识别 19
第四章 代码分析与结果展示 23
4.1 代码分析 23
4.1.1 车牌定位 23
4.1.2 字符分割 24
4.1.3 数据集介绍 25
4.1.4 字符识别 26
4.2结果展示 27
4.3 对于Tesseract的分析 28
第五章 总结与展望 30
参考文献 31
致谢 33
第一章 绪论
1.1 课题背景及意义
目前我国的汽车总量仍然在保持持续的上涨,根据公安部交通管理局官方于2018年底发布的数据显示,截至到18年底,全国汽车保有量达2.4亿辆,前一年同期增加2285万辆,增长幅度超过10%。在不久的将来,我国的汽车保有量有可能将超越美国,不仅如此,由于人口基数大、地区差异等因素,这个数字还将持续上涨,短时间内很难达到饱和状态。汽车的普及也带动了车牌识别这一技术的产生,由于通过汽车的型号和颜色等信息无法准确定位某一辆车,而每一辆车的车牌却是独一无二的,因此不管在城市智能交通系统中,还是在其他一些运用场景中,车牌识别技术无疑是十分重要的,它决定着智能交通系统的发展速度和技术水平。车牌识别技术广泛运用于电子警察系统、卡口系统、停车场收费系统、智能公交报站等场景,随着智能交通的迅猛发展,社会对车牌自动识别的需求量会越来越大,技术上要求也会越来越高。
车牌识别技术不仅仅能高效、准确地对车辆进行自动检测、监督和管理,从而减少人工操作,降低成本;还能有效地减少工作人员的错误、违规操作;另外,和人工相比,人工读取车牌可能要花费好几秒,但计算机自动识别的效率更高,从而使交通系统更顺畅得运作,减少交通堵塞的情况发生。其潜在的市场价值极大,能带来很大的的社会效益和经济效益。
1.2 课题国内外研究现状
从20世纪末国外学者就已经开启了对车牌识别技术的研究,主要的步骤就是对采集来的图片进行分析,提取出车牌的区域,然后识别车牌号码。但由于外界环境的复杂,比如光照不均匀、车牌图像本身不够清晰等,虽然他们通过一些方法提高了获取的图像质量,但准确率并不高,再加上运算量较大,没有办法很好地普及。
请支付后下载全文,论文总字数:19901字