基于树莓派实现的车牌鉴定与字符识别原型
摘要
本文介绍了在RASPBERRY PI 3设备上实现的车牌鉴定与字符识别原型的开发。该设备用作程序控制器,能够通过集成摄像头获取实时视频。从视频中提取车牌图像,并据此识别其中的字符。随后,将车牌信息、当前日期、时间和摄像头代码整合到服务器中,可通过网络应用程序进行访问。由此可实现对车辆出入的系统化控制。
1. 引言
人工视觉(AV)是人工智能(AI)的一个领域,旨在通过获取、处理和分析现实世界图像的方法,创建光学识别的技术系统,以生成可供机器处理的信息[1]。
AV的一个应用是车辆牌照自动识别系统(ALPR),这些系统由硬件和软件组成,能够通过光学字符识别技术(OCR)读取车牌并识别字母数字字符[2]。
本文介绍了通过RASPBERRY PI 3电子设备开发用于车辆车牌鉴定及所含字符识别的原型。其主要功能包括:自动车牌鉴定、使用光学字符识别进行字符识别、生成牌照文本以及自动将信息发送至服务器。用户通过网络应用程序与系统交互,查看数据库中登记的信息,例如日期、时间、车辆照片和车牌[3]。
2. 相关工作
有许多关于图像处理与分析应用于车辆牌照识别的不同研究和项目,现在我们介绍其中最重要的几项研究。2008年,圣布埃纳文图拉大学波哥大分校的学生开发了名为“sistema de visión artificial para el reconocimiento de placas en vehículos particulares”的系统,该系统通过数字图像处理技术识别车辆车牌上的六个字符,并将识别数据记录在一个可编辑的文本文件中,文件包含鉴定的时间和日期等附加信息。图像采集通过网络摄像头完成。为实现车牌定位及字符分割,采用了多种图像处理技术,如颜色滤波器、形态学操作、区域增长等。该研究建议在未来的工作中使用神经网络[2]。另一项重要工作是由工业学院系统工程与自动化系开发的“用于车牌检测与识别的人工视觉系统”。
瓦拉勒博大学工程学院。该项目源于开发一种用于汽车车牌检测与识别系统的构想。其主要目标是可用于停车场出入口控制,当摄像头检测到车辆时即拍摄图像。系统由三个模块组成:车辆注册车牌的位置定位、图像处理以及字符识别。该算法被设计为无论车牌大小或旋转角度如何,均能获得满意的结果。本项目采用基于C ++编程语言的开源OpenCV库进行开发[4]。
最后,我们可以提到“3LPR”,它是一种自动车牌识别系统(LPR系统),用于识别和登记进出停车场的车辆,实现对车辆牌照的有效管控,从而提高安全性。自动车牌识别系统不仅限于停车场应用,还可用于所有需要控制、监控并记录通过特定出入口车辆的场所,例如企业私人车库、购物中心、收费站、医院等。[5]
有多种型号的摄像头集成了车辆车牌识别功能,例如海康威视IP型号 DS2CD4A26FWDIZS/P,该摄像头具有200万像素分辨率,并采用专用ALPR算法,被用作停车场出入口及车辆通行区域的安全装置。这类摄像头通常价格相对较高,部分型号的价格可能超过具有相似特征的普通摄像头的四倍以上。
3. 方法与材料
3.1. Raspberry Pi 3
它是一个完整的计算机,具有优良特征的系统,由于其成本相对较低、低功耗以及强大的处理能力,常用于嵌入式系统的开发,可用于构建专用系统以解决过去需要使用计算机才能处理的问题。
该设备在其网站平台中有多种操作系统,可以根据所需应用领域的最佳性能进行安装和配置,其中一些操作系统包括:Raspbian(最常用的)、Ubuntu Mate、Snappy Ubuntu Core、Windows 10 IOT Core、OSMC、LIBREELEC、Pinet、RISC OS、气象站和Ichigojam RPI
3.2. OpenALPR
OpenALPR 是一个图像处理框架;针对图像的算法修改与应用。Tesseract OCR 是一种用于字符识别的开源软件,它使用机器学习算法[7]。该自动车辆牌照识别库用 C++ 语言编写,属于开源库,支持 C#、Java、Node.js 和 Python 中的链接。该库分析图像和视频序列以识别车牌。结果是车牌字符的文本表示[5]。该库已配置好用于车辆牌照检测的基本参数,可对任何国家格式的车牌识别进行训练。由于该库是开源的,您可以直接在其代码中进行修改,以实现改进或根据我们的需求进行定制。
OpenALPR 依赖于其他库来运行,这些库包括:
- OpenCV:这是一个用于图像处理的框架;用于图像中算法的修改和应用。
- OCR Tesseract:是一种使用机器学习算法的开源字符识别软件。
自动车牌识别(ALPR)是一种大规模监控方法,通过在图像中使用光学字符识别技术来读取车辆牌照,该方法由一组特殊的硬件和软件组件构成。
自动车牌识别过程分为两个主要步骤:车牌检测和车牌识别。第一步是检测摄像头整个画面中的车牌位置。当在图像中检测到车牌后,将车牌区域发送到第二步进行识别,该步骤使用 OCR 算法确定车牌上的字母数字字符[2]。
在模式识别算法中通常定义的三个额外步骤如下:
- 分割:检测并移除图像中的每个感兴趣区域。
- 特征提取:从一个区域中提取一组特征或变量。
- 分类:在车牌检测步骤[8‐9]中将每个图像区域分类为“车牌”或“非车牌”。
3.3. Open ALPR 用于识别
在车辆牌照识别方面,实现了OpenALPR,该系统通过分析图像和视频序列来识别车辆牌照,并在其编码库中引入了基于计算机视觉技术的强大开源库,如OpenCV和Tesseract OCR,这些库支持自动学习算法。同时开发了一个网络应用程序用于数据采集和信息管理。
在白天输入的内容会被列出,在“摄影”列中显示树莓派捕获的图像,同时加载其他数据。
4. 结果
在算法的实现过程中,测试了多个专注于计算机视觉的库。最终选定的库是OpenALPR,该库可用于实现用于图像处理的人工神经网络,并使用一组新的车辆车牌图像对神经网络进行了重新训练。
测试使用了16个车牌的批次,图像在不同角度和一天中的不同时段拍摄。每个车牌由六个字符组成,其中3个为字母,3个为数字。测试中提出了三种条件:对角图像、正面(正常)图像和破损车牌图像。
对角图像测试的结果表明,这些车牌无法被算法识别,因为无法从完整图像中提取出车牌,这种情况通常是因为图像的倾斜角度大于30°。
在从前方拍摄图像的情况下,成功率为81%,其余19%出现错误,平均每块车牌有2个错误字符,单块车牌最多出现3个错误字符。ANPR算法识别了受损的车牌并获取了车牌图像,在OCR识别过程中部分字符被识别,这是由于车牌上没有均匀色调所致。
此外,由于算法在训练时未将车牌字符按字母和数字进行区分,因此存在产生错误的倾向,特别是对于与数字字符相似的字母,如A和4、O和0、I和1等,错误率会增加。
5. 结论与建议
构建了一个车辆牌照识别和字符识别的原型,通过在树莓派设备上安装的OpenALPR库实现信息登记过程的自动化。此外,还开发了一个用户界面,以方便查询进入车辆的历史数据。
对于未来的工作,建议改进字符识别算法的训练过程,并使用包含更多哥伦比亚车牌车辆的更大规模图像集进行测试。丢弃那些不符合车辆牌照的识别结果,建议向算法说明哥伦比亚的车辆牌照格式(3个字母‐3 个数字),如果是摩托车,则由三个字母、两个数字和末尾一个字母组成。
3495

被折叠的 条评论
为什么被折叠?



