自动化车牌识别与车辆管理一体系统 第二次迭代需求文档
文章目录
自动化车牌识别与车辆管理一体系统 第二次迭代需求文档
第一章 文档内容简介
1.1目的
此次文档为第二次迭代的具体设计与成果文档,供小组实验设计与总结、老师查阅
1.2此次迭代主要任务
在第一次迭代的需求分析文档的基础上,这次迭代工作重点在于自动化车牌识别与车辆管理一体系统的具体实现上。
主要包括:1、C++代码的编写,实现逻辑功能操作;
2、初步的界面设计,系统管理员方(QT),用户方(html);
3、数据库的配置,建立数据表(MySql);
4、C++代码与MySql在QT中的连接;
5、python图像识别程序的调试,测试与QT的连接。
第二章 具体功能的实现方式与成果
2.1 C++功能代码
2.1.1 具体功能需求
1、直接通过图片识别、获得车牌号字符串;
2、车牌号为用户账号,以此到用户表(park_puser)中进行身份匹配,判断是否为已注册人员(本小区人员);
3、反馈给车牌号一个指定车位,记录车牌号、时间;
4、出库:将出库车辆的图片拖到界面的对应位置,获得出库车牌号。
查询该车牌号入库时间,与当前时间比较后计算出收费,反馈到界面。
此时将车辆的入库和出库信息更新到历史日志表(park_history)中。
5、登录操作,输入账户和密码,以此到用户表(park_puser)中进行身份匹配,匹配成功则可进入界面进行数据查询操作。
其中:车牌号作为账户的为普通用户,以sys账户登录的是管理员。
6、查询与统计:普通用户可查询自己相关的所有信息;sys管理员可查询所有日志信息。
7、维护数据完整性:当系统多日未打开时(车库多日未使用),再次打开时会自动将车库中的滞留车辆进行收费,并自动将缺失日的日志信息添加到历史日志表(park_history)中。
2.1.2 数据流图
2.1.3 类与类图
2.2 初步的界面设计
2.2.1 界面需求
2.2.2 初步实现
1、实现细节
(1)实现环境
本界面是用QT5进行制作。考虑到界面的复杂性,用QT的界面设计工具代替了纯代码制作。调试和改变页面只需要在ui设计中进行,控制界面的参数在(2)中说明。
(2)界面变量说明 (待补充)
2.界面截图;
(1) 初始界面
(2)入库
(3)出库
3、解释QT界面上的每类按钮的功能(功能部件+操作+实现,例如:
2.3 MySql数据库建立数据表
2.3.1 表与约束
·当前车库车辆信息表(park_currentcars)
·历史日志表(park_history)
·上次系统打开日期表(park_oldday)
·用户表(park_user)
2.3.2 表相关的操作
·当前车库车辆信息表(park_currentcars):
初始化车库成员对象数组;
保存车辆信息;
·历史日志表(park_history):
记录出入库操作的车辆信息;
供查询、统计使用;
·上次系统打开日期表(park_oldday):
供维护历史日志表完整性时使用;
·用户表(park_user):
供登录、身份认证、录入新用户操作使用。
2.4 python图像识别程序的调试
2.4.1 实现原理
Python程序由前端和后端部分组成,前端是基于tkinter的界面部分,后端是基于opencv中SVM的算法部分。
程序入口为读取图片文件,根据设定阈值和图片真方图定位车牌位置,并去掉非车牌区域并矫,正使用sample进行svm训练,包括对省份(汉字)和字符(英文字母+数字)的识别,最后输出。但由于训练样本有限,车牌字符识别误差概率较大。
界面部分着重实现了输入输出区域的分割和按钮的定义。
2.4.2 功能展示
由传感器输入车身照片,输出车牌颜色和号码集合。如图所示:
第三章 下次迭代主要任务
1、将成熟的QT界面连接到已有的程序中;
2、实现更多的查询功能;
3、实现用户身份认证;
4、实现登录功能;