博客专栏

EEPW首页 > 博客 > 基于嵌入式开发板的车辆识别系统设计

基于嵌入式开发板的车辆识别系统设计

发布人:utmel 时间:2023-05-25 来源:工程师 发布文章

  如今经济迅速发展,不但城市人口的数量变得日益庞大,而且城市中最重要的交通工具汽车的数量急剧增加,与日俱增的车辆时刻考验着城市交通管理的能力。高效,可靠地管理车辆已成为每个城市迫切需求。因此车牌识别系统作为智能交通管理系统的重要组成部分,越来越被重视。车牌识别技术的探索,促进交通管理的智能化和网络化,对于日益趋多的车辆管理的工作有较大帮助。本文提出基于树莓派开发板的车牌识别系统,实现物联网技术下的车牌识别。

  1.总体结构

  该车辆识别系统主要由台式机、嵌入式开发板、摄像头模块三个部分组成设计图如图1所示。

车辆识别设计图.jpg

 图1 车辆识别设计图


  该车辆识别系统包括嵌入式开发板、电源模块、摄像头模块、台式机模块、通信模块。台式机作为服务器,控制与之连接的树莓派开发板对车牌进行拍照;通信模块采用Java语言编写,它们之间的通信通过TCP/IP协议,实现数据的交换和传输。嵌人式开发板接入互联网,配合摄像头模块可实现在停车场、小区门禁等需要进行车辆身份验证的类似场景,快速识别车牌信息。

  2.组件分析

  2.1台式机

  台式机部分在Windows环境下,搭载了由VC2010开发,OpenCV软件辅助的识别系统。台式机不断接收来自嵌入式开发板的图像数据,图像被处理识别后再由无线传输,将识别结果返回至嵌人式开发板。

  开发环境如下:Visual Studio是由微软公司推出的开发环境。它是目前最流行的Windows平台应用程序开发环境之一。Microsoft Visual Studio 2010版本还支持支持微软云计算架构(Windows Azure)、移动与嵌入式装置开发以及当前最热门的敏捷软件开发模型。

  OpenCv(Open Source Computer Vision Library)于1999年由 Intel公司建立,现如今为其提供支持的是 Wil-low Garage。OpenCV是一个计算机视觉函数库,它是基于开源和跨平台发行的。

  OpenCV作为一个外部函数库,可以通过在 Windows、Linux环境下的IDE下配置连接,在编程开发时直接调用函数库中各种算法对应的函数就可以实现所需的操作,可以有效地加快开发速度。由于OpenCV专门针对Intel的处理器做了优化,因此在Intel平台下则表现出更快的速度。

  Tesseract是由Ray Smith于1985~1995年间在惠普布里斯托实验室开发出来的一个光学字符识别(Optical Charac-ter Recognition,OCR)引擎,曾经在1995年UNLV精确度测试中名列前茅,但1996年后就停止了开发。2006年,Google邀请Smith加盟,重新启动了该项目。该项目目前可以支持 Windows、Linux和 Mac OS等主流平台。Tes-seract-OCR 3.0.1以后发布的版本中加入了中文字符识别库,可以实现对tif、bmp格式中含中文字符的图像的识别。

  为了提高识别率,Tesseract-OCR还提供了样本训练功能,用户可以通过收集大量的样本素材来训练自己的识别库,从而可以提高用户对某些特定性的字符的识别率。在Microsoft Visual Studio 2010平台下用户可以通过调用Tesseract-OCR提供的API接口,将自己训练的识别库放入安装目录的tessdata中,配置环境变量后,对待识别的字符图像进行识别。

  2.2嵌入式开发板

  嵌入式开发板采用了当下较为流行的树莓派开发板。Raspberry是世界上最小的台式机,又称卡片式电脑,外形只有****大小,却具有电脑的所有基本功能。它是一款基于ARM的微型电脑主板,以SD/Micro SD卡为内存硬盘,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能。

  本次使用的是树莓派3B,相较于上代树莓派,3B的性能更加强大,搭载1.2GHz的64位四核处理器,增加802.11 b/g/n无线网卡和低功耗的蓝牙4.1,功耗也有小幅度的增加。

  3.无线通信传输

  由于台式机接收到的图像质量好坏会直接影响到最终识别的准确,因此如何将摄像头拍摄的图像准确性﹑快速地传递给台式机成了重中之重。TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,在正式收发数据前﹐必须和对方建立可靠的连接。由于TCP连接方式的可靠性,如图2所示,使得图片在传输过程中,数据的完整性得到保障。

TCP方式传递图片.jpg

  图2 TCP方式传递图片


  树莓派官方预搭载的编程开发环境包含了Java语言。Java语言是一种面向对象的语言,它提供了基本的封装方法来完成指定的任务,只需要传人必要参数,即可调用相应方法,得到想要的结果。Java也适用于小型机,它的基本解释器及类的支持只有40KB左右。此外,Java是面向网络的语言,通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其他对象。本次设计就使用了Java语言的TCP/IP封装的方法。

  ①MAC地址是上网设备的“身份证号码”,具有全球唯一性。所以使用路由器绑定台式机的MAC地址以及多台树莓派的MAC地址,指定其内部网络IP地址,可以方便管理。

  ②台式机作为本次方案的服务器端,使用了Java多线程技术,监听来自不同P地址的数据,并将数据保存在指定文件目录下。

  ③树莓派作为本次方案的客户端,通过Java封装好的方法,实例化Socket流,连接指定IP地址的服务器端。在其拍照结束并检查文件的合法性,确认文件无异常后,通过字节流将文件发送给服务器。

IP地址分配图.jpg

  图3 IP地址分配图


  ④待文件确认传输完毕后,释放所有资源,等待下次命令的开启。图片通过网络,在发送端利用TCP/IP协议传递给台式机,若成功识别,会在指定目录下生成txt文档,保存车牌号。

  台式机服务器端多线程部分:

台式机服务器端多线程部分.jpg

  树莓派客户端发送数据部分:

树莓派客户端发送数据部分.jpg

  4.车辆识别过程

  (1)基于树莓派的云端识别车牌方法,准备过程如下:

  ①开启云端的电脑,接入互联网。

  ②打开电脑和树莓派之间相应的通信软件和识别车辆的软件,等待树莓派连接,每连接一个树莓派,开启一条线程处理。

  ③树莓派连接电源模块,接通电源,为方便管理,为每一台树莓派设置好静态固定的IP地址,通过无线网卡连接路由器。

  ④摄像头正确连接树莓派,装入树莓派保护盒内,保证工作状态下减少外界干扰。并将树莓派盒子内摄像头正对道路口,摆在需要车牌识别的地方。

  ⑤通过SSH方式开启树莓派通信模块,驱动摄像头,开始工作。

  (2)捕捉车辆过程如下:

  ①树莓派开启后﹐拍摄图片,并启用上传程序,发送给云端台式机。

  ②云端台式机收到连接请求,同意连接,并接受树莓派发来的数据﹐保存在指定目录下,启动识别车牌程序进行车牌的识别。

  ③若识别程序成功定位到车牌,进行识别车牌中的字符,并将结果保存在指定目录。

  若识别程序未定位到车牌,将舍弃此次数据,等待下次树莓派数据的传输。云端识别流程图如图4所示。

  (3)识别程序工作过程如下:

  本系统基于开源发行的OpenCV跨平台计算机视觉函数库进行设计和实现,采用Microsoft Visual Studio2010开发平台,运用MFC框架设计界面,使用C++语言编程,调用Tesseract-OCR对提取出的车牌字符进行识别,主要分三步来实现车牌识别技术:即车牌定位、字符分割、字符识别。车牌识别系统的工作的总流程如图5所示。

云端识别流程图.jpg

图4 云端识别流程图

车牌识别流程图.jpg

图5 车牌识别流程图

  ①图像的输入。本系统处理的图像都统一调整为像素为2592×1 456,经过大量实验,当判定条件的面积选择为大于10 000时,能够有效地去除掉微小噪点带来的干扰。

  ②车牌定位。此环节主要应用形态学方法,对车牌进行定位。

  ③字符分割环节采用阀值分割法,去除掉噪音的干扰,实现对车牌字符的分割,从而提取出车牌字符。

  ④字符识别环节则利用样本训练方法,对字符分割后的图像进行识别。

  5.测试结果

  本系统最后对15张端正的车牌图像进行测试分析,统计了车牌完全识别正确率和车牌字符识别正确的个数。测试结果如表1所列,可以看出在共计15张照片中,完全识别正确的达到12,正确率为80.0%。字符共计105个,完全识别正确的有820个,字符识别的正确率达94.3%。

车牌识别结果统计表.jpg

  对于识别错误的车牌,经过分析一般都是图像中车牌的位置出现较大的强光光斑干扰和车牌附着灰尘太多干扰造成,从而影响了对图像车牌的识别。含有强光光斑的汽车图像因素均会导致本系统的识别率下降。针对这一类图像的识别,可以在采集图像时,通过摄像头前增加偏光镜片,来降低强光光斑干扰的程度,使得识别率有所提高。

  结语

  以上就是基于嵌入式开发板的车辆识别系统设计介绍了。该设计在成本上大大缩减了铺设自动识别车辆的设备的费用,也免去了布线麻烦,功耗低等问题。

关注公众号“优特美尔商城”,获取更多电子元器件知识、电路讲解、型号资料、电子资讯,欢迎留言讨论。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。




相关推荐

技术专区

关闭