diff --git a/项目测试文档.md b/项目测试文档.md index 0cfebcc..42dbdfb 100644 --- a/项目测试文档.md +++ b/项目测试文档.md @@ -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 系统整体功能 **满足预期目标**,大部分核心功能已稳定实现。