|
2 months ago | ||
---|---|---|---|
__pycache__ | 删除 | 2 months ago | |
img | 删除 | 2 months ago | |
source | 删除 | 2 months ago | |
.gitignore | 2 months ago | ||
README.md | 2 months ago | ||
con_signal.py | 2 months ago | ||
gesture_detector.py | 2 months ago | ||
main.py | 2 months ago | ||
requirements.txt | 2 months ago | ||
test.py | 2 months ago | ||
test_gui.py | 2 months ago | ||
test_xbox.py | 2 months ago | ||
utils.py | 2 months ago |
本项目基于 Google 的 MediaPipe 手部追踪系统,结合自定义几何规则与信号滤波算法,实现了无需物理手柄的赛车游戏操作方式。用户通过简单自然的手势(如拇指上扬、手掌倾斜等),即可完成加速、刹车、转向等核心动作,实现“举手即控”,打造更自然流畅、沉浸感强的赛车体验。
系统已成功应用于 Steam 游戏 《Rush Rally Origins》,在实机演示中展现出流畅、精准的控制体验,广泛适用于支持 Xbox 手柄输入的竞速类游戏。
为提升可视性与操作便利性,系统配套开发了基于 PySide2 的图形界面,集成摄像头画面、手势识别反馈、指令图标展示与灵敏度调节等功能,支持完整的交互闭环。
主要功能:
功能项 | 实现细节 |
---|---|
实时画面展示 | OpenCV 摄像头采集 + QImage 渲染窗口 |
手势图标反馈 | 根据识别结果在界面中央展示代表性图标(如加速、左转) |
文本提示 | 显示当前识别出的指令(如“加速”、“左转”) |
灵敏度调节 | 滑动条实时控制手势判断敏感度(用于调试与个性化) |
平滑识别 | Kalman Filter + Sigmoid 映射,过滤角度抖动与误判 |
虚拟控制输出 | 手势状态映射为 Xbox 指令,传递至 vgamepad 接口 |
稳定机制:
"left_up"
、"unknown_bark"
)构建指令队列;部分功能:
项目整体已形成:摄像头采集 → 手势识别 → 稳定判断 → 图像反馈 → 虚拟控制 的完整闭环。
模块 | 技术方案 |
---|---|
图像处理 | OpenCV |
手势识别 | Mediapipe(21点追踪) |
虚拟手柄 | vgamepad(XInput模拟) |
UI界面 | PySide2(Qt5框架) |
数据滤波 | Kalman Filter |
pip install -r requirements.txt
python main.py
请确保电脑已连接摄像头,并支持 DirectShow 接口访问
手势 | 游戏行为 |
---|---|
👍 右手拇指上扬 | 加速 |
👍 左手拇指上扬 | 刹车 |
✋ 手掌向左倾斜 | 左转 |
✋ 手掌向右倾斜 | 右转 |
展示从摄像头采集 → 手势识别 → 指令生成 → 虚拟手柄控制的全过程,含实时反馈 UI 和多种手势切换效果:
说明:展示项目在真实竞速游戏中的使用效果,包括自然过弯、加速等场景。 项目已实现较高精度识别 + 流畅操作体验,证明可作为真实控制手段用于轻量竞速类游戏。