# 基于车牌识别技术的停车场收费系统 **Repository Path**: masterp/parking-manager ## Basic Information - **Project Name**: 基于车牌识别技术的停车场收费系统 - **Description**: 基于SSM框架的停车场管理系统,包含利用Python实现的基于OPencv的车牌照识别功能以及计算停车费等功能 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 19 - **Created**: 2021-04-29 - **Last Updated**: 2021-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ParkingManager #### 介绍 基于SSM框架的停车场管理系统,包含利用Python实现的基于HyperLPR框架的车牌照识别功能以及计算停车费等功能 #### 软件架构 软件架构说明 1. web网页端负责显示 2. 服务端负责处理请求,访问数据库 * controller层 负责处理请求 * service层 负责业务逻辑处理,包括与python脚本的交互 * dao层 负责数据库访问 * bean层 数据库数据模型 3. python脚本实现图像识别 #### 安装教程 1. 关于车牌识别中python环境的安装 * python version:python 3(本人version:3.6) * python 外部包的导入: > pip install opencv==\
pip install hyperlpr * 安装注意: * 第一个包是opencv包,图像识别必备; * hyperlpr包是一个实验室开发的专用车牌照识别模块,直接调用即可,利用了机器学习,识别率还不错; * opencv版本过高可能会导致其中的findContours()函数出现错误,修改一下函数的返回参数个数就可以了(删除或去掉前面的下划线)。 * 安装成功测试: * 控制台下运行resource文件夹(里面有很多车牌测试图片)里的test.py即可检验,出现以下结果即安装成功: >D:\test.py
(1, 3, 377, 506)
227 136 364 178
[['浙E55555', 0.9792232172829765, [227, 136, 364, 178]]] 2. 项目主体用Springboot(eclipse)完成,主体的安装按照Springboot项目方式部署即可。 #### 项目需求 1. 登录 * 管理员、门卫两个角色登陆 2. 管理员 * 统计图表显示,分别显示各个停车场的统计图表,或显示所有停车场整体的统计图表。(打印可生成PDF格式存储) * 管理门卫账号,基础的增删改查功能。可根据停车时间(天、周、月、季、年)对停车数量、所收费用进行统计查询; * 管理员对收费标准进行设置,可以设置价格基数和价格系数。 3. 门卫 * 显示当前停车场有多少空余车位 * 车辆入库,识别车牌并显示车牌号文本,先播放入库动画,再将车辆图片上传到服务器并存储 * 车辆出库,识别车牌并显示车牌号文本,先播放入库动画,再将车辆图片上传到服务器并存储,可以显示车辆入库时间、出库时间,点击结算按钮可根据收费标准计算停车费用并调用支付宝收费接口进行收费。 * 收费人员对已经交费车辆可以通过手动或自动抬杆放行;(抬杆用动画模拟显示) * 查看,可以查找车库内的车辆,并显示其入库图片 #### 本人参与主要贡献 1. 车牌识别的实现 * 利用的成熟的车牌识别框架(HyperLPR)实现,非常简单,调库就可以实现; * 我也尝试过用数字图像的知识去检测车牌和分割车牌字符,但是效果非常不佳。车牌所处的环境和图片质量对检测和分割影响很大,识别率比较低; * 用Mask_rcnn可以训练自己的车牌分割模型,相关资料可参考官方github仓库。由于本人技术储备不佳和硬件设备的原因,我连官方的实例都没有跑起来,所以最终还是放弃,嘤嘤嘤...... * 百度EasyDL提供可视化的图像分割模型训练,非常方便。这个我也试了一下,效果也还不错。但是训练好的模型只有1000次免费调用机会。 2. 用Java运行python脚本 * Java的runtime类可以调用控制台命令,利用控制台命令可以运行python脚本,最后获取控制台输出就可以获得车牌识别的结果; * 其实这个方法比较的鸡肋,因为HyperLPR是有Java版本的,我只是单纯想用python写车牌识别,em........我的错! 3. 项目更多详情参见本人的[实践报告](./实践报告.pdf)