基于Opencv的车牌号识别系统设计与实现文献综述
2020-05-11 23:33:31
随着科技和经济的高速发展,汽车保有量逐年大幅增加,然而日益增多的车辆在带给人们便捷的同时也对传统的车辆管理和交通运行方式产生了巨大的压力和挑战,如交通堵塞和交通事故等问题。要解决这些问题的首要就是对车辆的管理和监控。车辆牌照识别技术(License Plate Recognition,简称LPR)应运而生。我国车牌识别研究的历史起源于90年代,它是以计算机视觉处理、数字图像处理、模式识别等技术为基础,利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别。其硬件基础一般包括触发设备(监测车辆是否进入视野)、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机(如计算机)等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。某些车牌识别系统还具有通过视频图像判断是否有车的功能称之为视频车辆检测。一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分(如图1所示)。当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。车牌识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。
本文的研究主要在计算机视觉库(Opencv)的代码简洁、高效和最优化基础上,以windows系统下 Visual Studio 2010为软件平台,设计的系统代码执行效率高,实时性好,具有可移植到嵌入式设备等优点,设计出一个较为完整的车牌号识别系统,最终实现车牌定位,车牌号字符分割,车牌号字符识别等功能。
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效#8212;#8212;由一系列 C 函数和少量 C 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C 语言编写,它的主要接口也是C 语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#,Ch, Ruby的支持。
所有新的开发和算法都是用C 接口。一个使用CUDA的GPU接口也于2010年9月开始实现。
Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和MicrosoftSilverlight 及Windows Phone。
系统需求:
在此设计的车牌号识别系统通过分析含有车牌号的图片,先后通过车牌定位、车牌字符分割以及车牌字符识别的处理,最终得到车牌图像、车牌号、车牌颜色等信息,此系统可以应用于公路收费、停车管理、交通执法等等方面。
系统具体要求:
(1)可以在作为输入的原始图像中通过一系列图像预处理定位出车牌的候选区域;
(2)可以通过对车牌图像进行倾斜矫正,运用图像的投影技术对车牌字符进行分割;
(3)可以通过训练好的神经网络对各个字符图像进行识别。