基于单片机的小区车牌识别系统的设计

2024-01-27 13:41陈晶冯旭东潘琦周嘉明
电脑知识与技术 2023年36期
关键词:STM32单片机

陈晶 冯旭东 潘琦 周嘉明

摘要:随着经济的发展,各国对汽车的需求逐渐增加,城市的交通状况也变得拥堵,愈发受到人民的关注。如何高效地对交通进行管理以及对车辆进行监管,已成为人们日趋关注的问题。解决这类问题需要建立智能化的交通系统,汽车车牌识别系统是智能交通系统的一个重要组成部分,在交通的控制、管理中有着重要用途。該设计以STM32F103RCT6单片机作为核心元器件,用于车牌自动识别系统中完成车牌图像的识别与采集、数字图像的预处理、提取车牌号信息并将进入小区车辆的信息显示于液晶显示屏上。

关键词:STM32单片机;OV7670摄像头;TFT液晶显示屏

中图分类号:TP3        文献标识码:A

文章编号:1009-3044(2023)36-0016-03

开放科学(资源服务)标识码(OSID)

0 引言

随着经济的快速发展,人民生活水平的提高,汽车数量也在不断增长,车祸的发生也在逐渐增加。为此,要想减少车祸降低交通事故的发生,有效地管理车辆在道路中的运行,缓解交通压力,就需要研制一种全自动、全方位、通用、准确的智能交通系统。汽车车牌是车辆的“身份证”,是在公众场合中识别车辆身份的唯一证明,因此可以根据汽车车牌号的独立性,针对车辆不同行驶状况设计一套车牌识别系统。

传统的汽车车牌识别系统依靠PC进行识别,所有的关键算法都是由计算机完成,不仅对图像识别算法和内存要求高,而且以计算机为主要识别对象的系统造价昂贵、体积巨大,不易大规模地进行装配和携带。MCU的发展速度越来越快,甚至超越了PC机,最大优势在于它不需要操作系统,稳定性高、成本低、体积小。基于上述优势,本文选用了基于STM32单片机的车牌识别系统。

1 国内外研究现状

20世纪70年代,英国率先研制出车牌识别技术,并将其用于汽车失窃跟踪,且取得了一些成果。80年代,国外学者将传统的图像处理技术应用于特定场景中的车牌识别。90年代,越来越多的学者参与到这个领域,大量的汽车车牌识别算法应运而生。2010年,Kanayama等人[1]发现了汽车车牌与周围环境之间的颜色差异,在此基础上,运用Sobel算子来边缘性检测,并利用一定的长宽比对图像进行分割。2016年,Safaei等人[2]提出一种新的三维贝叶斯特征估计方法,该方法以贝叶斯特性为基础,具有很高的识别准确率。21世纪,人工智能和深度学习成为计算机技术发展趋势,神经网络也在车牌识别中逐步应用。

相对国外,我国车牌检验的研究工作起步较晚,且我国的道路交通方式也更为复杂。顾李云[3]利用高斯和中值滤波对图像进行预处理,改善了在光线较差的情况下对图像进行处理,且与Sobel算子比较,利用滤波变换对图像进行了较完整的提取。基于传统的汽车车牌识别方法和深度学习的汽车车牌识别技术也被越来越多的学者所采用,尤鸣宇等人[4]在2019年提出了基于神经网络的车牌识别算法,利用级联卷积神经网络进行车牌定位,但由于 CNN在定位过程中的滑窗操作使得系统工作效率低,难以用于实时检测。2020年王宁[5]基于Faster R-CNN 在RPN阶段引入角度和分支结构以生成适合车牌的候选区域,并提出了一种上下文融合网络增强车牌的特征表示。2020年彭鹏[6]利用Tensorflow开发平台对汽车车牌进行了建模,并将其输入嵌入式系统中,以完成对车牌的实时检测和识别。周世杰[7]于2020年提出了一种基于卷积神经网络结构来检测汽车车牌,在当前大规模场景中,由于汽车所占比重较大,使得车牌检测与识别变得更加困难,因此该方法可以有效地提高检测的准确度。

2 系统结构框架及设计

基于单片机的小区车牌识别系统总体框架图以STM32作为系统核心,主要由单片机电路设计、蜂鸣器电路设计、OV7670电路设计、TFT显示屏电路设计、按键电路设计等组成,如图1所示。

3 小区车牌识别系统硬件电路设计

3.1 STM32单片机最小系统电路设计

单片机最小系统电路设计由最少的电路元器件构成,可以保证微处理器的正常工作。系统接通电源后,可以通过单片机进行正常的复位、下载程序。STM32微处理器最小系统由复位和时钟两部分电路组成。

3.2 OV7670摄像头电路设计

OV7670图像传感器用于摄像头的识别和读取车牌信息,将VCC、GND引脚分别连接至单片机的3.3V与GND,然后将D0-D7连接至单片机的PAO-PA7,最后将各个引脚与单片机的PC0-PC7相连接,此摄像头便于将摄像头所读取的有效信息能够及时传送给单片机处理。摄像头的电路原理图如图2所示:

3.3 滤波电路设计

在电路设计中选用100uf的极性电容,接在电源的正负极,用于滤除电源电路中的低频参量,让电源电压更平稳地运行。如图3为滤波电路原理图。

3.4 系统整体电路图

本次设计通过焊接组合的方式将各个模块相连,通过将TFT液晶显示屏、OVO7670摄像头、STM32F103RCT6单片机与PCB板焊接相连,以下是关于整个设计的系统硬件原理图,如图4所示。

4 小区车牌识别系统软件设计

4.1 摄像头模块子程序设计

摄像头通电,然后进行初始化设置,OV7670摄像头开始工作,本次选用带FIFO芯片的摄像头。为便于数据的采集,本文选用FIFO作为数据缓冲。通过C语言开发环境编程代码,整个流程如下:

在0V7670摄像头向FIFO中写数据,将其分为5个步骤。

1)0V7670摄像头同步接入单片机的外部终端,等待同步信号出现;

2)复位激活FIFO写指针运作;

3)FIFO写使能开启运行;

4)等待第二个同步信息出现;

5)禁止FIFO写使能工作。

4.2 TFT液晶显示屏子程序设计

TFT液晶显示器通电后,进行初始化的设置、内部存储及屏幕清零设定。初始化完成后,TFT液晶显示屏与STM32单片机是双向通信,单片机可以控制显示器的亮度及显示内容,将摄像头中所读取的画面经过单片机内部的处理,在液晶显示器显示出来,完成对车牌号码的信息提取。

设计的初始化函数LCD-lint,开启AFIO、GPIO以及FSMC时钟使能,GPIO初始化其函数为GPIO-lint以及对FSMC进行初始化设置,其函数为FSM等设置。将RW、CS、RD、WR全部设置推免输出。

5 实物调试与分析

通过CH340串口烧写模块实现对单片机程序的烧写,烧写速度快、效率高,编程稳定,可以通过USB接口供电。本设计硬件元器件主要有OV7670摄像头、STM32F103RCT6单片机、TFT液晶显示屏、PCB板等四部分构成,通过焊接组合的方法将实物硬件焊接在PCB板上,给实物通电后,显示图像的识别界面,LED灯闪烁表明单片机能够正常工作,当车牌识别成功后蜂鸣器就会提醒,将识别到的信息传送给单片机并暂时保存起来,经过一系列处理后将车牌信息显示在显示器上,显示器自动跳转到收费界面,显示车牌信息、进入时间、所缴费用,如图6所示。

按下K2按键,进入收费界面,该界面显示车牌信息、进入时间、所缴费用;按下K1按键,返回继续图像的识别、采集,其中电源插口设计为USB接口形式,便于插接。图7是基于单片機的小区车牌识别系统车牌信息显示图。

6 结论

本次设计基于单片机的小区车牌识别系统,当出入小区的小车到达指定位置时触发传感器,通过0V7670摄像头采集车牌定位,将收到的信息实时传送给单片机,单片机经过预处理,将信号指令发送给显示屏,显示屏显示该小车的车牌信息。

小区车牌识别系统应用广泛,在停车场、学校、小区车库等都有其身影。系统经过优化后更加先进,功能多样、价格实惠,能满足各个场景下的使用需求,在智能化管理方面可以大幅降低人工成本,更加精准地完成车牌识别及收费功能,在当代智能化社会具有很大潜力。

参考文献:

[1] KANAYAMA K,FUJIKAWA Y,FUJIMOTO K.Development and application of vehicle-license number recognition system using real-time image processing[J].Systems and Computers in Japan,1991,22(1):49-58.

[2] SAFAEI A,TANG H L,SANEI S.Real-time search-free multiple license plate recognition via likelihood estimation of saliency[J].Computers & Electrical Engineering,2016(56):15-29.

[3] 顾李云.基于图像处理的车牌识别算法的研究与设计[D].南京:南京邮电大学,2018.

[4] 尤鸣宇,韩煊.基于样本扩充的小样本车牌识别[J].南京师大学报(自然科学版),2019,42(03):1-10.

[5] 王宁.非受限场景下的车牌识别系统的研究与实现[D].南京:南京邮电大学,2020.

[6] 彭鹏.基于CNN卷积神经网络的车牌识别研究[D].济南:山东大学,2020.

[7] 周世杰,李顶根.基于卷积神经网络的大场景下车牌识别[J].计算机工程与设计,2020,41(9):2592-2596.

【通联编辑:代影】

猜你喜欢
STM32单片机
基于STM32单片机的脉冲信号参数高精度测试仪
基于STM32的智能电风扇设计