|
|
@ -153,11 +153,100 @@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 四、测试结果分析 |
|
|
|
## 四、核心功能测试(wavecontrol-test) |
|
|
|
|
|
|
|
项目测试脚本集中存放于 `wavecontrol-test/src/` (gesture分支)路径下,采用 TypeScript + Vue3 框架实现,通过 MediaPipe 实时检测与手势逻辑模块协同,实现系统功能验证。 |
|
|
|
|
|
|
|
### 4.1 hand_landmark 模块 |
|
|
|
|
|
|
|
- **detector.ts** |
|
|
|
核心手部关键点检测模块,封装对 MediaPipe 的调用逻辑,统一输出手部21个关键点的坐标、置信度等数据。 |
|
|
|
- 功能点:初始化摄像头流、绑定回调、封装模型参数。 |
|
|
|
- 用于:为 `VideoDetector.vue` 和 `gesture_handler.ts` 提供关键点数据源。 |
|
|
|
- **gesture_handler.ts** |
|
|
|
手势解析与事件派发模块,将 landmark 数据解析为具体手势动作(如光标控制、点击、跳跃等)。 |
|
|
|
- 支持自定义手势库扩展。 |
|
|
|
- 与游戏控制模块或系统控制指令绑定。 |
|
|
|
- **VideoDetector.vue** |
|
|
|
Vue 组件封装,展示摄像头实时画面 + 可视化 landmark 点位(调试模式用)。 |
|
|
|
- 提供测试 UI 面板,便于调试每个手势识别过程。 |
|
|
|
- 集成 FPS 状态、实时识别手势结果反馈。 |
|
|
|
|
|
|
|
### 4.2 独立运行说明与调试提示 |
|
|
|
|
|
|
|
- **模块定位:** |
|
|
|
`wavecontrol-test` 为独立测试工程,当前未集成至主项目的 UI 页面路由体系,主要用于**手势识别逻辑的单元测试与调试验证**。 |
|
|
|
- **运行状态说明:** |
|
|
|
启动后页面加载为空白(白屏),属**正常表现**,原因如下: |
|
|
|
- 项目尚未渲染任何主界面组件; |
|
|
|
- 测试逻辑运行主要依赖控制台输出来验证关键逻辑(如 landmark 检测、手势判断等)。 |
|
|
|
- **调试建议:** |
|
|
|
启动后打开浏览器开发者工具(快捷键 `F12` 或 `Ctrl+Shift+I`),查看: |
|
|
|
- 控制台(Console):打印识别结果、错误日志、手势状态; |
|
|
|
- 网络(Network):确认模型文件是否成功加载; |
|
|
|
- 元素(Elements):手动挂载 `VideoDetector.vue`注入测试组件进行临时渲染调试。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 五、游戏控制模块测试(`test.py` 等) |
|
|
|
|
|
|
|
### 5.1 模块定位与结构 |
|
|
|
|
|
|
|
该模块为游戏控制核心动作识别的测试环境,主要用于模拟真实场景下用户的手势输入,评估系统能否准确识别特定动作(如加速、转弯、刹车等),并通过 OpenCV 实时可视化手势状态与角度变化。 |
|
|
|
|
|
|
|
- **所在目录:** `wavecontrol/test_py/`(`game_control` 分支) |
|
|
|
- **相关脚本:** |
|
|
|
- `test.py`:主测试入口,执行实时手势识别与状态展示。 |
|
|
|
- `gesture_detector.py`:封装具体的手势识别逻辑。 |
|
|
|
- `utils.py`:通用工具类,如角度计算、数据格式处理等。 |
|
|
|
- `test_xbox.py`:拟用于连接虚拟 Xbox 控制器,模拟游戏输入。 |
|
|
|
- `test_gui.py`:图形界面测试入口。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 5.2 核心测试逻辑(基于 `test.py`) |
|
|
|
|
|
|
|
#### 功能点解析: |
|
|
|
|
|
|
|
- **手势状态追踪:** |
|
|
|
通过 `gesture_status` 字典记录五类状态: |
|
|
|
- `Left Fist`、`Right Fist`:用于映射刹车/加速等动作 |
|
|
|
- `Left Thumb`、`Right Thumb`:映射转向或音量等功能 |
|
|
|
- `Angle`:表示当前手势的偏转角度,用于模拟方向盘行为或特殊动作 |
|
|
|
- **视觉反馈:** |
|
|
|
使用 `OpenCV` (`cv2`) 实时将识别结果叠加在摄像头图像上,显示五种状态的当前值,方便快速人工验证是否识别准确。 |
|
|
|
- **模块化调用:** |
|
|
|
`GestureDetector` 实例通过 `gesture_detector.py` 导入,使得识别逻辑可独立测试、方便集成到主游戏模块。 |
|
|
|
|
|
|
|
------ |
|
|
|
|
|
|
|
### 5.3 使用说明 |
|
|
|
|
|
|
|
- **启动方法:** |
|
|
|
|
|
|
|
``` |
|
|
|
python test.py |
|
|
|
``` |
|
|
|
|
|
|
|
**运行效果:** |
|
|
|
|
|
|
|
- 打开摄像头窗口; |
|
|
|
- 实时显示识别到的五项手势状态; |
|
|
|
- 开发者可通过手部动作验证识别准确性。 |
|
|
|
|
|
|
|
- **测试目标:** |
|
|
|
|
|
|
|
- 验证关键手势在自然使用状态下的识别准确率; |
|
|
|
- 评估系统在不同光照/距离/角度条件下对“加速”“刹车”“左右转”的响应稳定性; |
|
|
|
- 检查 OpenCV 图像反馈是否与真实操作一致,便于回归对比。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 六、测试结果分析 |
|
|
|
|
|
|
|
[⌛️项目测试结果](./项目测试结果.xlsx) |
|
|
|
|
|
|
|
### **4.1 测试通过率** |
|
|
|
### **6.1 测试通过率** |
|
|
|
|
|
|
|
- **总体通过率:** |
|
|
|
在所有模块(主控制系统 + WaveSign + 游戏控制模块)共计 **50+ 条用例 × 10次测试 = 500+ 次执行记录**中,约 **88%** 的测试结果为“通过”,**12%** 的测试记录显示“未通过”。 |
|
|
@ -170,7 +259,7 @@ |
|
|
|
|
|
|
|
------ |
|
|
|
|
|
|
|
### **4.2 典型问题分析** |
|
|
|
### **6.2 典型问题分析** |
|
|
|
|
|
|
|
- **(1)识别类问题:** |
|
|
|
- 当背景复杂或光照不足时,MediaPipe 模型识别准确率下降,个别测试记录显示 **响应时间超过0.7s**,甚至未正确识别手势。 |
|
|
@ -185,7 +274,7 @@ |
|
|
|
|
|
|
|
------ |
|
|
|
|
|
|
|
### **4.3 综合结论** |
|
|
|
### **6.3 综合结论** |
|
|
|
|
|
|
|
- WaveControl 系统整体功能 **满足预期目标**,大部分核心功能已稳定实现。 |
|
|
|
|
|
|
|