基于Android与opencv的手机端车牌识别毕业论文
2021-04-26 21:33:03
摘 要
随着社会的发展和科学技术水平的提高,车牌识别在当今社会的智能交通体系扮演者举足轻重的地位,可以有非常广泛和深刻的应用。车牌识别技术主要包括图像处理,模式识别,数据库,计算机技术等等智能技术,可以帮助交通系统智能化与自动化的发展,节省人力物力,提高交通系统的工作效率。
本文首先针对本次设计所需要的开发环境进行学习和介绍,对Android系统的架构进行了较为深入的学习。然后学习opencv内容。然后学习车牌识别所需的各类算法,其中包括车牌分割和字符识别,要用到支持向量机的SVM算法和神经网络。学习完车牌识别所需的核心算法后,利用C 编程核心程序。本文中有两套识别方案,方案一为西班牙车牌识别,由于中文字符比外文更加复杂,故设计有更完备,识别率更高的方案二。利用C 编程进行车牌识别,利用Java编程是程序导入安卓工程,在手机端实现对照片中的车牌进行识别、显示字符。本文基于外文车牌识别进行改进。由于中文字符的复杂性以及国内研究的不充分,基于外文字符的车牌识别对中文车牌的识别率并不是很理想,所以本文对此进行了一些改进,但此改进并不唯一,改进的算法也多种多样。目前过内手机应用市场还没有成熟的APP可供下载使用。相信随着国内外研究的不断深入,将会出现更为高效、便捷的车牌识别应用。
关键词:车牌识别;SVM;神经网络;OpenCV;Android
Abstract
With the development of the society and the improvement of science and technology, license plate recognition in intelligent transportation system plays important role in today's society, there can be a very extensive and profound application.License plate recognition technology mainly include image processing, pattern recognition, database, computer technology and so on intelligence technology, can help the development of intelligent transportation systems and automation, save manpower material resources, improve the working efficiency of the transportation system.
In this paper, first of all, this design for the need of the development environment for learning and introduction, the architecture of Android system has carried on the thorough study.Then learning opencv content.Then learn required for license plate recognition algorithm, including the license plate segmentation and character recognition, to use the SVM algorithm of support vector machine and neural network.After learning the essential algorithm of license plate recognition, core program using c programming.This article has two sets of identification solutions, a license plate recognition for Spain, because Chinese characters than the foreign language is more complex, so the design is more complete, higher recognition rate of 2.The use of c programming for license plate recognition, the use of Java programming is to import the android project, in the mobile terminal to the license plate identification, display characters in the picture.In this paper, based on foreign license plate recognition was improved.Because of the complexity of the Chinese characters and inadequate domestic research, based on the foreign characters of license plate recognition of license plate recognition rate in Chinese is not very ideal, so in this paper, some improvements were carried out, but this improvement is not the only, the improved algorithm is varied also.Are now in the mobile application market is not mature APP available for download to use.Believe that with the deepening of the research at home and abroad, there will be more efficient and convenient license plate recognition applications.
Key Words:license plate recognition;SVM;OpenCV;Neural Networks;Android
目 录
目 录 1
第一章 绪论 1
1.1 研究意义与背景 1
1.2 国内外发展现状 2
1.3 课题研究内容 3
1.4 论文组织结构 4
第2章 Android开发环境 5
2.1 Android开发环境简介 5
2.2 Android操作系统系统架构 5
2.3 Android操作系统的应用组件 7
2.4 Java开发环境搭建 7
2.5 Android-NDK动态库调用和Android-JNI的搭建 8
第3章 OpenCV库 9
3.1 OpenCV简介 9
3.2 OpenCV环境配置 10
3.3 OpenCV库相关函数介绍 11
第4章 相关算法介绍 13
4.1 支持向量机SVM 13
4.2 人工神经网络ANN 14
4.3 高斯模糊 16
第5章 车牌识别系统 18
5.1 简介 18
5.2 车牌检测(Plate Detection) 19
5.3 SVM的开发与训练 25
5.3.1 SVM调用 26
5.3.2 SVM训练 26
5.4 字符识别 29
5.4.1 字符分割 30
5.4.2 字符定位 31
5.5 实验结果及分析 32
5.5.1 移植车牌识别源码到Android工程 32
5.5.2 实验结果 32
5.5.3 实验结果分析 34
总结与展望 36
参考文献 38
附录 39
附录A 开发环境搭建 39
附录A1 JNI搭建代码 39
附录B 车牌检测部分程序 39
附录B1 CPlateLocate类的声明 39
附录B2角度判断及旋转操作 40
附录B3 SVM训练及运行 41
附录C 字符识别部分代码 43
附录C1文字定位程序 43
致谢 55
第一章 绪论
1.1 研究意义与背景
改革开放三十多年来,经济高速的发展随之而来的是道路上的机动车数量越来越多。中国的汽车保有量将近2亿辆,随之而来的是一系列的交通问题,如城市道路极为拥堵,车辆数目繁多,种类纷杂,交通事故频发等。这些问题导致了我国对于机动车的监察与管理存在着不少难题。因此我国的交通管理部门有严格的交通管理条例和处罚措施,执法部门对机动车的监察和管理都要以车牌为依据,为此我国对机动车车牌的管理尤为严格,其制作、安装等过程都要求由有关部门统一管理。但如何对车牌信息进行有效的采集和处理目前也存在着不少问题。针对目前车牌信息的采集和处理所存在的问题,若能设计开发出一种能在公众场合迅速准确地对机动车牌照进行识别的系统,那么这将是一件非常有意义的工作,并将极大地提高机动车的监察与管理的效率[11]。
车牌识别就是利用车牌这一“身份证”的唯一性来帮助监察和管理机动车辆的。车牌识别系统的主要任务和功能是根据拍摄到的到的在复杂环境下(如高速公路,较为繁忙的路口等)的车辆图像。然后对此图像进行分析和处理,对图片中的车牌进行定位、分割,以提取出车牌图块。最后通过模式识别技术自动的识别出车牌照上的字符。车牌识别系统将获取车辆图像经过一系列的处理,输出一个字符串的形式,这样不但少量的数据,便于存储,操作更简单,方便车牌识别系统是无法匹配的人工车牌识别它包含大量的经济价值和发展空间,车牌识别技术的研究是很有意义的[12]。