基于v车牌识别模型与车牌号码识别算法的停车场自动计费装置

实时车牌检测:利用 YOLOv8 算法对摄像头捕获的画面实时检测车牌。通过YOLO训练出车牌模型 用于检测车牌在画面中的区域、车牌类型(如蓝色车牌:油车;绿色车牌:新能源车)

车牌号码识别:通过车牌号码识别算法(PaddleOCR算法/HyperLPR3算法)对检测区域进行字符分割与序列识别,实现车牌号码的识别。YOLO 车牌识别模型用于检测车牌区域,中文车牌号码识别算法 用于识别车牌字符,二者协同实现车牌识别任务 。

自动计费结算:根据车牌号码匹配车辆进出记录,自动计算停车时长与费用,联动闸机实现自动抬杆/落杆。

基于YOLO的停车场计费装置(车牌识别)

本项目是通过YOLO目标检测算法,使用车牌数据集,加载预训练YOLOv8s模型,训练出车牌识别模型。再结合车牌号码识别算法实现车牌号提取,进而记录进出停车场的车辆并完成自动计费。

常见的车牌号码识别算法有以下:

下图是我们的项目制作框架图,我们在电脑端完成模型的训练与测试,将模型部署到智能硬件——行空板M10中完成车牌识别同时显示车牌号,并制作出停车场计费装置。

(基于YOLO的车牌识别停车场计费装置项目框架图)

(YOLO项目框架图,供参考)

3.1软硬件器材清单

注意行空板M10固件在0.3.5——0.4.0的版本均可以用于制作本项目,但都需要为行空板装conda环境,详情见3.3硬件环境准备。

3.2软件环境准备

由于我们使用电脑进行训练货物位置检测模型,因此需要在电脑端安装相应的库。

首先按下win+R,输入cmd进入窗口。

在命令行窗口中依次输入以下指令,安装ultralytics库

输入之后会出现以下页面。

当命令运行完成,出现以下截图表示安装成功。

3.3硬件环境准备

在本项目中我们将要将训练好的YOLOv8框架的模型部署到行空板中,进行推理和执行操作。为了在行空板上成功运行YOLOv8,我们将使用Ultralytics官方提供的库进行部署 。

使用USB数据线连接行空板与电脑,等待行空板屏幕亮起表示行空板开机成功。

打开编程软件Mind+,点击左下角的扩展,在官方库中找到行空板库点击加载

点击返回,点击连接设备,找到10.1.2.3.点击连接,等待连接成功.

除了utralytics库本项目还需要使用onnx、onnxruntime、opencv -python 和pinpong库依次在Mind+终端输入以下命令

在Mind+终端输入以下指令,可以检查相应库是否安装成功

在Mind+终端输入以下指令,可以检查相应库是否安装成功

4.1数据集准备:

4.1.1采集图片

本文使用的数据集一共包含10881张车牌数据(详情见文档末尾附件)。部分图片如下:

解释:

省份:[“皖”, “沪”, “津”, “渝”, “冀”, “晋”, “蒙”, “辽”, “吉”, “黑”, “苏”, “浙”, “京”, “闽”, “赣”, “鲁”, “豫”, “鄂”, “湘”, “粤”, “桂”, “琼”, “川”, “贵”, “云”, “藏”, “陕”, “甘”, “青”, “宁”, “新”] 地市:[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’,‘X’, ‘Y’, ‘Z’] 车牌字典:[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’,‘Y’, ‘Z’, ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’] 4.1.2生成数据标注 目标:将 CCPD 数据集中图片文件名中解析出的车牌位置和车牌颜色等信息,转换成 YOLO 格式的标注文件(.txt)。 功能:通过代码解析文件名,并将标注信息保存到txt文件中。 注意:在自己电脑运行时,代码中的文件路径均需改为自己电脑端路径。

省份:[“皖”, “沪”, “津”, “渝”, “冀”, “晋”, “蒙”, “辽”, “吉”, “黑”, “苏”, “浙”, “京”, “闽”, “赣”, “鲁”, “豫”, “鄂”, “湘”, “粤”, “桂”, “琼”, “川”, “贵”, “云”, “藏”, “陕”, “甘”, “青”, “宁”, “新”]

地市:[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’,‘X’, ‘Y’, ‘Z’]

车牌字典:[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’,‘Y’, ‘Z’, ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’]

目标:将 CCPD 数据集中图片文件名中解析出的车牌位置和车牌颜色等信息,转换成 YOLO 格式的标注文件(.txt)。

功能:通过代码解析文件名,并将标注信息保存到txt文件中。

注意:在自己电脑运行时,代码中的文件路径均需改为自己电脑端路径。

在mind+中运行上面这段代码,制作完成之后如下图所示:

说明:testlabels是训练集标注信息文件,vallabels是验证集标注信息文件,testlables是测试集标注信息文件。

4.1.3划分训练集和验证集

根据前面标注信息文件,把相应的图片及标注文件放到训练集和验证集文件夹内:

4.2车牌识别模型训练

将文件放到一个能找到的路径,打开Mind+,选择Python模式下的代码模式,如下图。

在右侧“文件系统”中找到"电脑中的文件",找到此文件夹进行添加。

添加好后可以观察到如此下图。

点击"新建文件夹",在ultralytics文件夹中分别新建三个文件夹,依次命名为"datasets"(用于存放数据集),"yamls"(用于存放数据集对应的yaml文件)"runs"(用于存放训练模型的py文件)。

建好后如下图。

将车牌检测数据集的训练集和验证集文件夹放入"datasets"文件夹,将车牌检测数据集的yaml文件放入"yamls"文件夹。

完成之后文件夹是以下布局:

车牌检测数据集的yaml文件如下(0是蓝牌,1是绿牌):

YOLO模型的训练对电脑的配置要求比较高,使用电脑CPU一般训练时间较长,可以考虑使用GPU或者云端算力进行训练,这里我们使用的时本地电脑的CPU训练方法,操作比较简单,耗时略长。当训练完成后,我们可以观察"runs"文件夹中自动生成了"detect"文件夹,里面存放了训练模型的数据和训练好的模型文件。

4.3车牌识别模型测评

我们先在电脑端测试一下车牌识别模型的性能,这里使用pt模型,也可以使用onnx模型(需转换)。

4.3.1测试车牌识别模型检测效果

点击Mind+右上角的”运行",程序里面可以选择不同类型车牌验证,运行代码观察效果。

蓝牌检测效果:

观察终端信息,可以看到车牌数量、车牌类别、各阶段耗时等信息。

绿牌检测效果:

观察终端信息,可以看到车牌数量、车牌类别、各阶段耗时等信息。

打印下results的值,信息如下:

其中boxes里的值可以重点了解:

boxes值详细信息解释:

运行程序,可以发现一个窗口实时显示摄像头捕捉画面,并实时显示当前车牌类别和置信度等信息。

运行程序,可以发现一个窗口实时显示摄像头捕捉画面,并实时显示当前车牌类别和置信度等信息。

4.3.2提取车牌号并显示

接下来我们在车牌识别的基础上需要使用把车牌号识别出来,并且标写在图片上:

1、安装paddlepaddle库和paddleocr库,在mind+库管理里面输入库名安装。

效果如下图(可看到图片上的车牌号被提取并显示):

终端显示信息:

运行程序,可以发现一个窗口实时显示摄像头捕捉画面,并实时显示当前车牌号。

终端显示信息(有车牌号码和置信度等信息):

接着我们可以部署模型到行空板中制作车牌识别的停车场计费装置。使用USB数据线连接电脑与行空板。

连接行空板与摄像头。

打开编程软件Mind+,点击左下角的扩展,在官方库中找到行空板库点击加载

点击返回,点击连接设备,找到10.1.2.3点击连接,等待连接成功。

保持行空板的连接,在终端输入以下指令来激活行空板的yolo环境(请确保完成3.2硬件环境部署准备)。

在运行程序之前,需要先安装hyperlpr3库,在yolo环境下输入:pip install hyperlpr3,点击回车等待安装完成。

运行成功后,可以实现以下功能:

进入停车场:调整摄像头角度直到正对着车牌,然后按下P23按钮进行识别,识别成功之后图片会显示"车牌号和欢迎进入停车场",语音播报"欢迎进入停车场"同时闸机打开,闸机打开2秒后关闭。

离开停车场:调整摄像头角度直到正对着车牌,然后按下P21按钮进行识别,识别成功之后图片会显示"车牌号和停车时间、需缴费用",语音播报"停车时间和需缴费用"同时闸机打开,闸机打开2秒后关闭。

终端显示信息:

4.5核心代码解析

1.使用以下代码完成加载模型、摄像头初始化、硬件初始化。

2.以下代码的功能是设置车牌保存路径、计时函数、计费函数。

2.以下代码的功能是设置车牌保存路径、计时函数、计费函数。

results详细信息解释:

我们可以观察到原始的推理输出有比较多的内容,在项目的制作中不是每一个输出数据都要用到,其中本项目最常用的数据是"names"和"boxes"。names: 提供类别ID到类别名称的映射,用于将检测结果转换为人类可读的类别名称。boxes:检测结果列表,含所有检测框的坐标、类别、置信度。

完整代码如下所示:

项目扩展思考:后续可以使用更多样化的车牌数据集(包含不同的字体、颜色、位置、光照条件等)以提升模型的泛化能力。还可以集成停车位检测系统,为车主推荐最近的空闲停车位。集成多种支付方式(如二维码支付、NFC支付、银行卡支付)。最后是将识别数据上传至云端进行存储和管理,方便后续分析和运营优化。

THE END
0.车牌号OCR识别提交查询接口文档对接接入APIimg_file 图片文件(img_file、img_url二选一传递,小于1MB,支持jpg、png、bmp) file 否 img_url 图片url(img_file、img_url二选一传递,小于1MB,支持lists[] 全部车牌信息 array Number 车牌号 京GQQ777 string 6、响应状态码说明 code msg 0 未知错误 1 提交失败 2 提交成功 400 非法ip访问 401jvzquC41yy}/kqz{k0ipo8iqe1udt8qrp1gqk8Xwdoou0qyon
1.丰田牌GTM7200GANAVI小型轿车,车牌号蒙E63189标的名称:丰田牌GTM7200GA-NAVI小型轿车,车牌号蒙E63189 标的编号:3 标的类型:机动车 拍卖次数:0 拍品数量:1 计量单位:辆 拍卖机构名称:呼伦贝***公司 标的图片:https://cdnimg.***.net/GPAI5_Compress/2025-11/Cv8IODlbpLmFPIzfKo6r.jpghttps://cdnimg.***.net/GPAI5_Compress/2025-11/jvzquC41yy}/srfpnksb0lto1doe/>:355;:5=3jvor
2.python中使用Opencv进行车牌号检测——2018.10.24大大木瓜('../image/carnumber7.jpg',cv2.IMREAD_COLOR)#预处理图像rect,afterimg=find_license(img)#框出车牌号cv2.rectangle(afterimg,(rect[0],rect[1]),(rect[2],rect[3]),(0,255,0),2) cv2.imshow('afterimg',afterimg)#分割车牌与背景cutimg=cut_license(afterimg,rect) cv2.imshow('cutimg',cutjvzquC41yy}/ewgnqiy/exr1fq3ic{iyqtqjpp4r1;>3;::30jznn
3.车牌号OCR识别数链云【车牌号OCR识别-车牌号识别-车牌号图片】传入车牌照片,扫描识别车牌信息并返回,支持多个车牌号(支持新能源,澳门、台湾及部分国外车牌)。 图片要求:格式为 JPG(JPEG),BMP,PNG(小写也可以),宽和⾼大于100px且⼩于等于4000px,大小不能超过1MB 价格 ¥0 107 交易成功 商品规格 0.00元/10次 1.00元/10次 2.jvzquC41ocxlg}3enq{e0}jpegtu0lto1rxpf~hvu1868=5
4.车牌号码为鲁E7X550的五十铃牌汽车一辆司法拍卖 标的名称: 车牌号码为鲁E7X550的五十铃牌汽车一辆 标的编号: (略) 标的类型: 股票 拍卖次数: 1 拍品数量: 计量单位: 拍卖机构名称: 广(略) 标的图片: http://**-11/(略)345.jpg 拍卖开始时间: 2025年11月07日 结束时间: 2025年11月08日 jvzquC41uj4ckmhgpvks0lto0et0frvweqtugwy/5:>47;<6:/?/j}rn
5.OCR车牌识别车牌识别技术OCR图像识别车牌OCR识别技术支持多种类型车牌,快速准确。广泛应用于交通执法、停车登记、汽修美容会员识别等场景。立即购买 API 文档 在线体验 提示:可支持JPG、PNG、PDF、BMP等格式;图片大小不超过5M 或 识别结果 JSON数据 返回码 0 图片中车牌数 1 车牌明细 车牌号 粤BDT5583 车牌颜色 绿色 产品优势 多种类识别 支持对蓝jvzq<84gvqvmkj0eqs0r{tfwezt1unegpyfrufvg0jp