National Conference in Emerging Computer Applications (NCECA2019)
Automatic Number Plate Recognition
System Using OpenCV And Machine
Learning
Basil Baby1, Jikku Jose2, Lithin Thomas3, ShellyShiju George4
1, 2, 3 P.G Scholar of Amal Jyothi College of Engineering, Kanjirappally, Kerala
4 Asst. Professor of Amal Jyothi College of Engineering Kanjirappally, Kerala
Abstract- Automatic Number Plate Recognition System is a useful application to identify the vehicles from complex security systems, parking sectors and Traffic controls. ANPR is an active research topic in the field of Image Processing using different Algorithms, Methods and
Techniques.This paper presents the implementation of ANPR system with the help of Free – Dynamic software Python in support with Open Computer Vision Libraries. The extraction of characters from Number plate is done with Machine Learning, which is a branch of Artificial Intelligence - where Building, Training, Classifying and Predicting data using
different Classifiers.
I. INTRODUCTION
The scientific world is deploying research in intelligent transportation areas which have a significant impact on people‟s lives. Nowadays, vehicles are increasing rapidly, which makes it complicate to manage all these vehicles. The identification of vehicles are essential in several cases like traffic, gate entrance, etc., [3] for ensuring the security. Every vehicle is uniquely identified on the basis of their number plates. The manual entering of vehicle licence numbers will be a tedious process. This paper discuss the effective method that can be used to reduce the complexity of manual entering and make the process automatic.
The ANPR [4] is a system designed to help in recognition of number plates of vehicles. This system is based on image processing [2]. It helps in the methods like detection of number plates of the vehicles, processing them and using processed data for further functions like storing vehicle details, allowing vehicles to pass or to reject vehicles. ANPR[1] is a mass surveillance method that uses Machine Learning on images to read the licence plates on vehicles. ANPR can be used to store the images that are captured by the cameras as well as the text from the number plate. This systems commonly use infrared (IR) lighting to allow the camera to capture the image at any time of the day. It is an embedded system that has numerous applications and challenges. Number Plate Recognition Technology is being used all around the world for surveillance applications. This technology is being used to identify and record license plate numbers and offers advantages in law enforcement, security and vehicle access. License Plate Technology is being used for secure and gated entrances, for traffic enforcement, for law enforcement, and at toll gates.
II.LITERATURE REVIEW
There have been several studies on extraction of text from number plate‟s problem by using various statistical approaches. Through literature review, we only found a few studies which were related to ANPR. But all the contributions that are made in this field are getting more advanced day by day.
Some of the information we obtained and discussed are given below: Miyata et.al [1] proposes the license plate detection process which detects only the edge vertical components, and the sample license plates are narrowed down using the contours obtained by dilation and erosion processing and region fill processing. A Support Vector Machine (SVM) based on negative and positive examples is used to determine whether a sample area is a license plate or not, and finally the position
of the license plate is identified. This paper examines how the license plate detection process results
in license plate and non-license plate images were affected by differences in aspect ratios,
Emerging Trends in Engineering Research ISBN-978-93-5267-349-0 52
National Conference in Emerging Computer Applications (NCECA2019)
differences in brightness between the vehicle body and license plate, and the number of positive and negative examples used for learning. The success of this method was confirmed to yield a license plate detection rate of approximately 90%.
Kulkarni et.al [2] proposes the task of recognizing number plate for Indian conditions, in which number plate standards are rarely followed. The system consists of a combination of algorithms that are specifically designed for Indian number plates. The algorithms used are bdquo;Feature-based number plate Localization‟ for locating the number plate, bdquo;Image Scissoring‟ for character segmentation and bdquo;statistical feature extraction‟ for character recognition. The system is capable of recognizing single and double line number plates under widely varying lighting conditions. The system have a success rate of about 82%. Khare et.al [3] introduces a new concept called partial character reconstruction for segmenting characters of license plates. This increases the performance of license plate ecognition systems. Partial character reconstruction is proposed on the basis of stroke width in the Laplacian and gradient domain in a novel way. This results in character components with incomplete shapes. The angular information of character components determined by PCA and the major axis are then studied by considering regular spacing between characters and aspect ratios of character components in a new way for segmenting characters. Then, the same stroke width properties are used for reconstructing the complete shape of each character in the gray domain rather than in the gradient domain, which helps in improving the re
剩余内容已隐藏,支付完成后下载完整资料
全国新兴计算机应用大会 (NCECA2019)
基于OpenCV和机器学习的车牌自动识别系统
Basil Baby1, Jikku Jose2, Lithin Thomas3, ShellyShiju George4
1, 2, 3喀拉拉邦坎吉拉帕利阿马尔·约蒂工程学院学者
4喀拉拉邦阿马尔·约蒂工程学院教授
摘要:车牌自动识别系统是一个非常有用的应用程序,可以用来识别来自复杂环境的安全系统、停车场和交通控制系统的车辆。ANPR是利用不同的算法、方法和技术进行图像处理的一个活跃的研究课题。本文在开放的计算机视觉库的支持下,利用自由动态软件Python实现了ANPR系统。车牌字符的提取是通过机器学习完成的,机器学习是人工智能的一个分支,它使用不同的分类器来构建、训练、分类和预测数据。
I. 简介
科学界正在智能交通领域展开研究,这对人们的生活产生了重大影响。当前,车辆数量的快速增长,使车辆管理变得复杂。车辆识别在交通、出入口等情况下是必不可少的,是保证安全的关键[3]。每辆车都是根据车牌号进行唯一标识的。手动输入车辆牌照号码将是一个繁琐的程序。我们探讨了减少人工录入的复杂性,实现流程自动化的有效方法。
ANPR[4]是一个设计用来帮助识别车辆车牌的系统。该系统基于图像处理[2],它有助于检测车辆的车牌、对车牌进行处理,并将处理后的数据用于进一步的功能,如存储车辆详细信息、允许或拒绝车辆通过。ANPR[1]是一种大规模监测方法,它使用机器学习图像来读取车辆的牌照。ANPR可用于存储摄像机捕获的图像和车牌文本。该系统通常使用红外(IR)照明,允许相机在一天的任何时间捕捉图像。它是一个有着众多应用和挑战的嵌入式系统。车牌识别技术正在世界各地被用于监控系统。这项技术正被用于识别和记录车牌号码,并在执法、安全和车辆通行方面具有优势。车牌识别技术还被用于安全入口和大门入口、交通执法、刑事侦查、收费站等。
II.文献综述
我们利用各种统计方法对从车中提取文本的问题进行了一些研究。通过文献综述,我们发现仅有少量与ANPR相关的研究。但是在这一领域的各方面研究都在日益进步并取得一定成果。
我们得到并讨论的一些信息如下:Miyata et.al[1]提出了仅检测边缘垂直分量的车牌检测过程,并使用膨胀和侵蚀处理和区域填充处理得到的轮廓来缩小样本车牌。利用基于正、负样本的支持向量机(SVM)确定样本区域是否为车牌,最终确定车牌位置。本文研究了车牌检测过程中,由于长宽比的差异,车身与车牌的亮度差异,以及学习中使用的正、反例的数量等因素对车牌图像和非车牌图像的影响。该方法有约90%的车牌检测率。
工程研究的新趋势 ISBN-978-93-5267-349-0 52
全国新兴计算机应用大会 (NCECA2019)
Kulkarni et.al[2]提出了识别印度环境下车牌的任务,在这种国情下车牌标准很少被遵守。该系统由一系列专门为印度车牌设计的算法组成。采用的算法有基于特征的车牌定位算法、字符分割的图像截尾算法和字符识别的统计特征提取算法。该系统能够在大范围变化的照明条件下识别单线和双线车牌。该系统的成功率约为82%。Khare et.al[3]提出了一种新的车牌字符分割方法——部分字符重构,这提高了车牌识别系统的性能。他提出了一种基于拉普拉斯域和梯度域笔划宽度的局部特征重构方法,这导致了形状不完整的字符组件。在此基础上,提出了一种字符分割的新方法,即考虑字符间的规则间距和字符成分的纵横比,研究了主成分和主轴确定的字符成分的角信息。然后,使用相同的笔画宽度属性在灰度域中而不是在梯度域中重建每个字符的完整形状,这有助于提高识别率。Qadri et.al[4]提出了一种与其他ANPR系统相比计算成本更低的系统。本文的目的是建立一个有效的自动车辆识别系统的模型。我们利用Matlab实现了该系统,并在真实图像上进行了性能测试。系统有三个步骤,第一步是车辆的检测和捕获图像,第二步是检测和提取车牌图像,和第三步利用图像分割技术部分的个性OCR识别数据库存储的个性帮助每一个字母数字字符。用于识别的OCR方法对失配和不同的尺寸非常敏感。为了提高OCR在不同尺寸和角度下的识别效果,可以采用仿射变换。实验结果表明,所开发的系统能够成功地对真实图像中的车牌号进行检测和识别。
Merzban等人提出一种利用灰度图像的多级阈值化的方法。这是计算机视觉的基本操作之一,在图像增强和分割中有广泛的应用。阈值水平值选择的各种标准之一是使用类间方差最大化方法的Otsu标准。用Otsu准则计算阈值是一个计算量大的过程。该系统使用重新访问动态规划算法,该算法为问题提供了准确和有效的解决方案,并将其与现代的元启发式算法进行比较。为算法的正确性提供了严密的证明。算法的计算代价与阈值水平的数目成线性关系。将该算法与现有算法进行了比较,验证了其优越的性能。实验表明,它可以提高2.45倍的检测速度。
Conci 等人[6]介绍了一个解决实际场景中车辆识别问题的系统。所有的方法和步骤,包括从图像场景采集到光学字符识别,都是为了实现车牌的自动识别。该系统可用于所有类型的国家规则或车牌设计,并适用于各种环境。该系统计算效率高,适用于其它相关的图像识别应用。
Selmi等人提出了一种基于深度学习的车牌自动检测与识别系统。该系统分为三个部分:车牌检测,字符分割,字符识别。为了检测一个车牌,在应用第一个CNN模型对车牌或非车牌进行分类之前,需要进行许多预处理步骤。然后,通过几个预处理步骤对车牌进行分割,最终识别出大写字母格式(a-z)和数字(0-9)的所有字符,使用第二个CNN模型,包含37个类。该系统在两个数据集上进行了性能测试,数据集包含了图像质量差、图像透视失真、昼光、夜光、环境复杂等条件下的图像。所提出的系统的准确性显示了很大的百分比的结果。
III. 实现
ANPR[1]的流程图如图1所示。识别车牌的位置和从车牌中提取字符的步骤是通过不同的方法进行的。
工程研究的新趋势 ISBN-978-93-5267-349-0 53
全国新兴计算机应用大会 (NCECA2019)
A. 创建训练数据集
机器学习是人工智能的一个分支,它处理各种数据项、处理过程和用于未来预测的模式。机器学习可以分为监督学习和非监督学习。监督学习利用已知的数据集(称为训练数据集)来实现字符的销毁。在这篇文章中,它将采取监督学习的方式,因为我们已经知道了As, Bs, Cs和所有其他字符和字母的样子。监督学习可以进一步分为两类;分类和回归。由于字符识别属于分类范畴,本文采用了监督学习的分类范畴。我们需要得到一个训练数据集,选择一个监督学习分类器,训练一个模型,并测试模型的准确性。为了训练我们的模型,我们考虑使用20px * 20px的数据集。注意:我们需要在字符分割中调整字符的大小,这将在接下来的步骤中解释。数据集中的每个字母都有10个不同的图像。
B. 捕获图像
车辆图像是用高分辨率相机拍摄的。为了执行扩孔步骤,捕获的图像中的字符应该是可读的形式。使用清晰度和分辨率更高的更好的相机将增加系统的成功率。
- 预处理
图像预处理涉及到降低计算图像信息的成本。捕获的图像将是一些多媒体标准或原始格式。通常情况下,这些图像将处于RGB模式,有三个通道(即红色、绿色和蓝色)。通道的数量定义了图像上可用的颜色信息的数量,而我们要将图像转换为灰度图以便进行定位。
D. 定位
所捕获的图像当然包含了车辆和环境的其他部分,而这些部分是系统不需要的。图像中让我们感兴趣的区域是车牌,需要从噪声中定位。我们使用一种称为阈值化的图像处理技术进行定位。根据阈值的大小,将图像像素截断为两个值。为了确定合适的阈值,需要对图像进行预处理。自适应阈值技术为每个图像像素确定局部最优阈值,避免了光照不均匀带来的问题。OpenCV提供了Otsu方法[5]
E.相连区域分析
为了消除不需要的图像区域,首先将连通分量算法应用于二值化的平台数据。其他方法,如边缘检测和形态处理也可以实现。首先在二值图像中映射所有相关区域并标记它们。然后在所有映射区域上画一个矩形。在识别连通分量后,提取形状为矩形、宽度和高度为预定值的连通分量。
F. 分割.
最后一步是对分割后的图像进行特征识别。字符检测方法有多种,OCR[4]就是其中之一。为了提高精度,我们使用了带有SVC模型的机器学习。我们已经有了一个训练好的模型,我们可以尝试预测我们之前分割的字符。
工程研究的新趋势 ISBN-978-93-5267-349-0 54
全国新型计算机应用大会 (NCECA2019)
图1
IV. 实现方法
Python是一种高级、强大的动态、面向对象的编程语言,它关注代码的可读性。与Java或c 相比,Python中的语法帮助程序员以更少的步骤进行编码。Python支持与其他语言和工具的强大集成。它有一个大型的标准库,具有自动内存管理和动态特性。Python的主要缺点是速度。它使用解释器而不是编译器。
A. 训练数据集
学习数据集的一些属性,然后根据另一个数据集测试这些属性,这称为机器学习[1]。机器学习中常用的一种技术是通过将数据集一分为二来评估算法。我们称其中一个集合为训练集,在这个集合上我们学习一些属性;我们称另一个集合为测试集合,在这个集合上我们测试学习到的属性。
要使用SVC,我们需要安装scikit-learn包。SVC方法属于sklearn.svm。首先加载数据集,然后对数据集进行训练和匹配,以预测样本所属的类。
svc_model.fit(image_data, target_data)
B. 图像采集
可以使用Python或其他语言从摄像机捕获图像。因为我们可以将python与其他语言集成。下面的代码片段解释了如何从webcam捕获一个帧并将其保存到本地以供以后使用。
camera = cv2.VideoCapture(0)
return_value, image = camera.read()
cv2.imwrite(opencv str(i) .png, image)
工程研究的新趋势 ISBN-978-93-5267-349-0 55
全国新兴计算机应用大会 (NCECA2019)
C. 预处理.
预处理是为了调整图像的大小,将图像转换为灰度,使OpenCV的图像处理能够快速完成。
imgBlurred = cv2.GaussianBlur(img, (5,5), 0)
gray =cv2.cvtColor(imgBlurred,cv2.COLOR_BGR2GRAY)
上面的代码将图像进行高斯模糊,并转换为灰度图。
D. 定位
定位基本上是一个图像二值化的过程,图像被转换成黑白色。已有研究表明,otsu的阈值算法[5]是对图像进行二值化的有效方法[7]。
E. 相连区域分析.
我们使用findContours来查找矩形区域,从而从图像中检测车牌位置[7]。
hierarchy=cv2.findContours(morph_img_threshold,mode=cv2.RETR_EXTERNAL, method=cv2.CHAIN_APPROX_NONE)
- 字符分割.
在这一阶段,我们使用相连区域分析来绘制出所有字符从识别的车牌。 rect_border = patches.Rectangle((x0, y0),x1 - x0, y1 - y0, edgecolor='red',linewidth=2,fill=False)
上面的代码选中了车牌的矩形部分[4].
resized_char = resize(roi, (20, 20))
我们需要将字符大小调整为20px * 20px来检查经过训练的数据集
G. 字符识别
字符识别是ANPR的最后阶段。我们已经建立了一个训练好的模型,在这个阶段,我们试图预测我们之前分割的字符。
下面的代码将有助于从训练过的数据集中预测字符。
Foreach_characterinsegmentation.charact
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[254343],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。