基于STM32的智慧停车场管理系统设计与实现

2023-08-26 04:13彭瑾
电脑知识与技术 2023年20期
关键词:深度学习

彭瑾

关键词:智慧停车场;STM32;深度学习

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

文章编号:1009-3044(2023)20-0057-03

0 引言

隨着我国经济的快速发展,汽车成为人们生活中的必备品,对于停车位的需求也大量增加。传统的停车场管理系统通常是人工进行管理,智慧化程度不高[1-2]。物联网技术的飞速发展带动了各个领域的智慧化改造,智慧化停车场管理系统的需求成为新的发展方向[3]。停车行业存在供需矛盾显著,资源利用不均,信息化、智能化程度不足,信息无法共享,管理效率较低,产业链新技术快速发展,需求多样化,停车行业能力不足等诸多问题。智慧停车场管理系统是将车辆检测、车牌识别、管理显示等功能集成的自主运营总成系统,具有无人化管理、精准计费、远程监控等突出优势[4-5]。

本文将详细介绍基于STM32的智慧停车场管理系统的设计、实现,采用图像识别技术检测车辆多参量信息(车牌、车型等),通过深度学习神经网络算法进行车牌检测和车牌识别,设计多媒体显示界面,将车牌识别结果显示在LCD屏幕上并语音播报,根据识别结果对闸机进行控制,从而实现停车场系统的无人化自动管理功能。

1 系统总体设计方案

根据设计思路,智慧停车场管理系统的开发流程如图1所示。

根据开发流程,智慧停车场管理系统可以分为三个模块,模块一是车牌识别模型部署;模块二是闸机控制系统的构建;模块三是智慧停车场管理系统项目开发(车牌识别功能插件构建、闸机控制功能插件构建和功能集成)。

2 各模块解决方案

2.1 车牌识别和模型部署

车牌识别技术是智慧停车场系统中的重要组成部分。车牌识别模型部署主要分为三个步骤:首先,提取图像中的车牌大致位置。然后,加载车牌识别模型,提取车牌的精确位置。最后,利用OCR字符识别方法识别车牌号并输出。

2.1.1 车牌粗提取

对采集到的车牌要进行初步检测定位,目的是检测出车牌大致位置,对图像进行一些插补和调整比例,其中,核心部分就是cascade级联分类器的应用。这里的级联分类器基于Haar+Adaboost构成,也即cas?cade.xml文件,该文件存放了一些车牌的Haar特征。

这里,我们采用了cascade.xml 检测模型,然后使用OpenCV的detectMultiscale方法对图像进行滑动窗口遍历寻找车牌,实现车牌的粗定位。

其中,detectMultiscale()函数为多尺度多目标检测。通常,多尺度搜索目标的模板尺寸大小是固定的,但不同图片大小不同,目标对象的大小也不固定,因此,多尺度即不断缩放图片大小(缩放到与模板匹配),通过模板滑动窗函数搜索匹配。同一幅图片可能在不同尺度下都可以得到匹配值,所以多尺度检测函数detectMultiscale()是多尺度合并的结果。

因此,cascade.xml这个文件是通过很多的正样本车牌图片和负样本非车牌图片转换的cascade.xml文件,其中的Haar特征数据已经通过Adaboost处理。通过这个xml文件可以训练出一个级联分类器,该分类器的判别车牌标准是通过计算大量车牌特征后得出的一个阈值,大于这个阈值判别为车牌,否则判别为非车牌,如图2所示,通过该方法得到了图像中车牌的粗定位。

2.1.2 车牌精提取

对车牌进行粗定位后,再对车牌进行精定位。这里的精定位是切掉原来粗定位后车牌的多余部分,首先,使用透视变换矫正车牌位置。然后,调用tflite模型实现垂直精细绘图方法输出车牌精定位。使用OpenCV 的getPerspectiveTransform()和warpPerspective()函数实现透视变换,矫正图像中的车牌位置。

2.1.3 车牌识别实现

确定好车牌位置后,对该车牌字符信息进行识别,最终输出车牌号。车牌字符信息识别采用OCR字符识别技术,也就是在不分割字符的前提下能够识别出车牌七个字符。传统的车牌字符识别是先分割字符然后再逐一使用分类算法进行识别。不分割字符直接识别方式的优点是仅需较少的字符样本即可用于分类器的训练。目前,大多数商业车牌识别软件采用的就是这种方法。在某些恶劣的自然情况下,车牌字符的分割和识别变得尤其困难,在传统的方法不能取得很好的结果时,可以采用整体识别方式。通常,车牌由七个字符组成,可以采用多标签分类的方法直接输出多个标签,如图 3所示。

2.2 闸机控制系统构建

闸机系统采用了智能节点核心控制板、舵机执行器、LCD显示屏、语音识别模块摄像头等硬件模块。

1) 智能节点核心控制板

核心板采用ARM-Cortex-M4内核的STM32F407ZET6为主控芯片,主要实现与项目软件部分进行通信,获取车牌识别结果并上传闸机状态,同时通过串口控制舵机执行器开关,控制LCD显示屏显示车牌号等功能。

2) 舵机执行器

舵机是一种位置(角度)伺服的驱动器,适用于一些需要角度不断变化并可以保持的控制系统。舵机实际上是一种俗称,其是一种伺服马达。

舵机SG90由三根线控制。暗灰色线为GND,地线;红色线为VCC,电源线,工作电压为4.8~7.2V,通常情况下使用+5V做电源电压;橙黄色线为控制线,通过该线输入脉冲信号,从而控制舵机转动,其转动角度为180°。

3) LCD显示屏

TFT-LCD即薄膜晶体管液晶显示器,主要实现车牌号和车位数显示功能。闸机控制系统构建效果如图4所示。

2.3 基于车牌识别的道闸控制系统

2.3.1 车牌识别功能插件构建

实现第一个功能插件,车牌图像获取功能插件。调用摄像头获取车牌图像,获取车牌识别结果消息队列,并调用函数实现车牌识别结果绘制。

2.3.2 车牌识别模型推理功能插件实现

首先,获取待识别车牌图像,调用车牌识别函数实现车牌识别,并将识别结果传递到消息队列。然后,定义车牌识别模型推理函数,输入待识别车辆图像,调用车牌检测级联分类器模型提取车牌图像,再对提取出的车牌图像进行矫正和精提取。最后,调用OCR字符识别模型和字符标签文件输出车牌号。

识别到车牌后,将识别结果传递到q_rec识别结果消息队列,车牌图像获取线程就会对识别结果进行绘制。根据返回的车牌位置坐标,利用OpenCV绘制出矩形框选出车牌框,再将车牌号显示到矩形框上方,从而实现车牌识别结果的可视化显示。

2.3.3 道闸控制系统功能插件构建

实现嵌入式设备数据传递插件,将车牌识别结果以及闸机控制指令传递给闸机控制系统。

3 系统设计结果展示

车牌识别结果如图5所示,当检测到正确的车牌后,控制闸机系统打开舵机。

4 结束语

本文的智慧停车场管理系统开发项目结合人工智能技术和嵌入式硬件设备模拟实现智慧停车场管理系统。首先,利用深度学习神经网络算法进行车牌检测和车牌识别。然后,根据识别结果对闸机进行控制以及LCD屏幕显示车牌识别结果和当前车位占领情况。最后,结合Web端进行数据分析和可视化。其中,车牌识别技术不但可以用于智慧停车场,还可以在智慧交通、智能驾驶等场景使用,具有较高的参考价值。

猜你喜欢
深度学习
有体验的学习才是有意义的学习
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望