该实验为软件工程实验5,有三部分:数据库设计、 E_R 图、功能流程图。
成员
230809010118---张艳
230809010119---田吉琼
230809010127---马秀兰
一、数据库设计概述----负责人--田吉琼
为支撑智能手势控制系统的数据持久化需求,本项目采用 SQL Server 关系型数据库,设计了 gesture_control 数据库,包含 6 张核心数据表,实现了手势定义、指令映射、用户日志等业务数据的结构化存储。
数据库整体设计遵循第三范式,各表通过外键建立关联,保证数据一致性与完整性,同时便于后续功能扩展与维护。
1. dbo.app 应用信息表
app 表是系统的基础配置表,用于存储所有支持手势控制的应用信息,为手势指令的场景适配提供数据依据。表中记录了应用的名称、类型、路径及创建时间,支持对办公软件、浏览器、多媒体播放器等不同类型应用的统一管理。

2. dbo.gesture 手势信息表
gesture 表是系统的核心基础表,存储所有预定义手势的元数据,包括手势名称、类型、关键点特征及识别置信度阈值,是手势识别模块的数据来源。

3. dbo.app_command_map 手势 - 指令映射表
app_command_map 表是系统的业务核心表,定义了 “手势 + 应用” 对应的具体操作指令,实现手势到功能的映射,例如 “上划手势 + PPT → 上翻页”,是系统控制逻辑的关键。

4. dbo.operation_log 操作日志表
operation_log 表用于记录用户所有手势操作行为,包括操作时间、手势类型、应用场景及执行结果,为系统调试、行为分析与功能优化提供数据支持。

5. dbo.user 用户信息表
user 表存储系统用户信息,支持多用户使用场景,实现用户账号管理与操作行为的关联追踪。

6. dbo.gesture_usage_count 手势统计表
gesture_usage_count 表用于统计各手势的使用频率,记录使用次数与最后使用时间,为后续手势识别优化与用户行为分析提供数据依据。

二、团队项目的 ER 图----负责人--张艳
1. 四个实体(用方框画)
用户(User)
手势(Gesture)
应用(Application)
指令(Command)
2. 每个实体的属性(用椭圆 / 圆角矩形画)
用户(User):用户 ID(主键)、用户名、操作权限
手势(Gesture):手势 ID(主键)、手势名称、手势类型、关键点描述
应用(Application):应用 ID(主键)、应用名称、应用类型
指令(Command):指令 ID(主键)、指令名称、指令功能
3. 关系(用菱形画,标注基数)
手势 ↔ 指令:关系菱形写对应,标注1:N(一个手势对应多个指令)
指令 ↔ 应用:关系菱形写适配,标注1:N(一个指令适配多个应用)
用户 ↔ 手势:关系菱形写触发,标注1:N(一个用户触发多个手势)
ER 图的几个基础符号:

下图是ER 图以及文字说介绍

本项目 ER 图以实体 - 关系模型为基础,包含用户、手势、指令、应用四个核心实体。其中,用户实体通过 “触发” 关系与手势实体建立一对多联系(1:N),一个用户可触发多个手势;手势实体通过 “对应” 关系与指令实体建立一对一联系(1:N),每个手势在不同场景对应不同的操作指令;指令实体通过 “适配” 关系与应用实体建立一对多联系(1:N),一个指令可适配多个应用场景。
各实体的主键属性通过双线椭圆标识,清晰表达了系统中用户、手势、指令、应用之间的关联逻辑,为数据库设计提供了直观的依据。
三、 团队项目主要功能流程描述----负责人--马秀兰
本智能手势控制系统整体运行流程完整闭环,主要分为系统启动与初始化流程、手势采集与识别流程、指令映射与执行流程、操作日志与数据统计流程、系统关闭流程五大核心模块。各模块依次联动、循环执行,实现从设备启动、手势识别、智能控制、数据记录到安全退出的完整业务流程。
3.1 系统启动与初始化流程
系统启动后自动完成全局初始化工作,为后续手势识别与控制功能提供运行环境,具体流程如下:
1. 加载系统核心功能模块,包括摄像头采集模块、图像预处理模块、手势识别算法模块、指令执行模块。
2. 连接 SQL Server 数据库,读取 gesture_control 数据库中的基础数据,包含用户信息、手势参数、应用列表、手势与指令映射规则等配置内容。
3. 检测本地摄像头设备,获取设备权限并初始化分辨率、帧率等参数,若无摄像头则给出提示,设备正常则开启实时画面采集。
4. 支持默认免登录模式与账号密码登录模式,登录成功后加载用户个性化手势配置与历史操作数据,进入系统主界面。
3.2 手势采集与识别流程
手势采集与识别是本项目的核心业务流程,系统基于 OpenCV 图像处理与 MediaPipe 关键点检测技术,实现静态手势与动态手势的精准识别,流程如下:
1. 手势采集:摄像头实时读取画面,采集用户手部动作图像与连续运动轨迹,实时输出手部21个关键点坐标,为手势判断提供原始数据。
2. 图像预处理:对画面进行去噪、图像增强、色彩转换、手部区域分割,消除背景干扰与抖动误差,输出标准化手部图像数据。
3. 手势特征匹配:系统提取手势关键点距离、角度、运动轨迹等特征,与数据库中预存的手势特征参数进行比对。
4. 识别结果判定:当匹配置信度大于0.7阈值时判定识别成功,返回对应手势名称;匹配度不足则识别失败,系统继续监听下一帧画面。
5. 自定义手势流程:支持用户自定义新手势,采集手势特征后保存手势参数、手势类型,并绑定对应控制指令,存入数据库实现个性化手势扩展。
3.3 指令映射与执行流程
手势识别成功后,系统根据当前应用场景自动匹配并执行对应操作指令,实现智能化自动控制,流程如下:
1. 活跃应用检测:系统实时获取当前电脑前台活跃应用,包括办公软件、浏览器、播放器等,若无活跃应用则执行系统全局指令。
2. 手势指令匹配:根据识别得到的 gesture_id 与当前 app_id,查询 app_command_map 映射表,查询该场景下对应的控制指令内容、指令类型与执行延迟。
3. 自动化指令执行:通过 PyAutoGUI 模拟键盘、鼠标、系统操作,完成翻页、保存、音量调节、播放暂停等功能。若应用不支持或执行异常,系统记录错误信息并提示用户。
4. 映射关系管理:用户可自主修改、启用、禁用手势与指令的映射关系,所有修改实时更新至数据库,实现个性化自定义控制逻辑。
3.4 操作日志与数据统计流程
系统具备完整的数据记录与统计功能,全程记录用户操作行为,为系统优化和问题排查提供数据支撑:
1. 操作日志记录:每一次登录、手势识别、指令执行、自定义手势操作均写入 operation_log 日志表,记录用户ID、手势ID、应用ID、操作内容、操作时间与执行结果。
2. 手势使用统计:每次手势成功执行后,自动更新 gesture_usage_count 统计表,更新手势使用次数与最新使用时间,实现手势使用数据长期统计。
3. 数据分析应用:通过日志与统计数据,可分析高频手势、识别失败场景、用户使用习惯,为算法优化与功能迭代提供依据。
3.5 系统关闭流程
用户关闭程序时,系统执行完整的安全退出流程:依次关闭摄像头采集、手势识别与指令监听模块,同步保存所有未写入的日志数据与用户配置,释放硬件与内存资源,保证数据不丢失,实现安全稳定退出。
下图是智能手势控制系统整体运行说明图

流程总结
整套系统从启动初始化、手势识别、指令执行、数据记录到安全退出,形成完整闭环业务流程。各模块分工明确、联动稳定,既实现了多场景智能手势控制核心功能,又具备日志追溯、数据统计、个性化配置等扩展能力,系统稳定性与可维护性较强。
浙公网安备 33010602011771号