基于python的车牌识别系统(源码)【字数:5631】
目 录
一、引言 1
(一)开发背景 1
(二)选题意义 1
(三)设计目标 1
(四)开发软件 2
二、系统分析与设计 4
(一)系统功能需求 4
(二)系统分析图 4
(三)数据集设计 5
(四)原型设计 5
(五)开发及运行环境 6
三、概要设计 7
(一)基本设计和处理流程 7
(二)系统功能模块 7
(三)系统功能结构 7
四、系统具体实现 8
(一)图像输入 8
(二)图像预处理 10
(三)图片定位和分割 11
(四)字符识别和结果输出 12
五、系统测试 15
(一)测试环境 15
(二)测试过程 15
六、结束语 19
致谢 20
参考文献 21
一、引言
(一)开发背景
随着经济社会的发展,原本价格不菲的汽车逐渐走进了越来越多的普通家庭。然而,随着汽车保有量的增多,各种道路交通问题也逐渐增加。因此,国内外也都开发了各种适应环境的智能交通系统。它将各种道路、车辆、以及行人有机结合起来,使得车辆能够更加安全地行驶在道路上,此外还能够有效提高出行效率,缓 *51今日免费论文网|www.51jrft.com +Q: ^351916072*
解交通压力,避免资源浪费。作为我国智能交通系统规划中重要的其中一个重要基本部分,智能车牌自动识别报警系统研究的进一步发展,决定了着今后智能交通系统的是否一定能够得以广泛应用。
随着人工智能,特别是深度学习技术的普及,基于相关技术实现系统的智能化成为人们关注的焦点。深度学习技术领域里出现的反向传播BP算法是一种广泛使用的优化求解算法。利用该算法神经网络系统可以快速从多个统计学习样本系统中自动的获取各种统计和学习数据规则,神经网络还可以获得基于未知系统数据规律的分类预测推理能力,与一些传统的基于已知系统规则的统计与学习方法研究相比,对于未知样本数据规律的统计及学习方法研究在信息分类研究和信息预测推断方面均具有优势。
目前,BP算法已经广泛应用于车牌识别中,并且国内外众多学者也针对其进行了大量的改进创新,可以说BP算法在车牌识别方面,已经很成熟了。
在软件开发,特别是数据分析和人工智能领域,作为动态开源脚本语言,Python由于其较好的适应性以及高效的执行效率,现在已经成为了一种主流开发语言。
基于以上背景,本毕业设计使用流行的BP神经网络,通过Python编程语言,来进行车牌的检测和识别,即通过界面输入一张带有车牌的汽车照片,就可以识别出车牌上的省份简称、字母和数字。
(二)选题意义
课堂学习过程中基于Python程序设计语言和人工智能相关知识的学习,促使我对于人工智能这个专业方面都产生的了一种浓厚的兴趣,在实习的时候,也找到了相关的工作进行进一步的了解和研究。现在选择这样一个题目,实现对车牌的识别,是对我的一个考验,也是对我整合信息,完善程序,撰写论文水平的一次能力提升。本次系统做的很简易,但是过程并不简单,这为我接下来的学习生活奠定了一定的基础,为我接下来的职业发展,提供了一次实验的机会。
(三)设计目标
在本地保存车辆及车牌的照片,打开系统,选择本地输入照片,或者直接从摄像头实时获取图片。如果选择上传照片之后,本系统对照片进行相关处理,之后会将识别的车牌信息进行展示输出。在当前环境下,我国的车牌又分为蓝牌,绿牌,黄牌,因此,考虑大更好的可用性,本系统还会根据颜色分配,将车牌的颜色显示出来。
(四)开发软件
1.Python
Python语言是当前数据科学及人工智能领域广泛使用的一种编程语言,该语言提供一个高级的数据结构和一个简单而又高效的高级的面向对象编程。不仅主要用来解释Python语言中的许多静态语法规则类型和动态类型,而且他还可以解释语言快速开发中的又一个本质要求,即是如何要我们在大多数的平台机器基础上快速地创建出另一种编程语言,能方便和快速有效的开发出脚本文件库和应用程序。由于不断更新版本和增加新的语言技能,它逐渐被用于大型独立项目的开发。
2.Spyder
Anaconda工具集成了Spyder集成开发工具,该工具是由一个Python的作者所开发完成的一个简单且易调用的集成开发环境。与一些其他的Python开发的环境语言程序相比,最大技术优势则是它可与与包管理程序无缝对接,完成相关开发包的编辑管理和更新。
Spyder的主界面由许多个小的工作窗格构成,用户自己则就可以去随意地根据属于他和自己的个人的使用或喜好来去调整安排好在它们间出现的间隔位置和间距大小。当有很多个的小的窗格间隔共同的出现在了同一个显示的区域时。将是直接地使用标签页的形式显示。例如我们在如上图例1中。可以依次直接可以看到"编辑"、和"变量浏览器"、和"文件"、还有和"控制台"和"历史"以及这是两个可以显示图像大小的窗格。在图像查看的菜单栏对话框中你就已经可以自动选择设置是否能够同时显示所有的这些窗格。
3.OpenCV
OpenCV是一个广泛使用的图形图形处理工具包,该工具包包含功能强大开源软件库,基于能够在Linux、Windows、Android等主流操作系统上运行。它可以由Python、许多的C类函数类和另一些的C+类函数组成,因此重量轻且效率高。OpenCV可以完全地用C++语言来进行脚本编写,它自身也已经具有了C++、Python、Java程序设计语言接口,并完全能同时支持应用于整个Windows、Linux、Android系统平台和整个Mac系统的OS、OpenCV主要还是更多倾向重于实时的视觉应用,并希望能够同时在可用时利用MMX指令和SSE指令,由于其广泛使用,如今它也已经可同时提供对于C#、Ch、Ruby、GO等的支持。
原文链接:http://www.jxszl.com/jsj/rjgc/608196.html