基于手势识别的 PPT 智能控制系统

毕业设计 · 深圳职业技术大学

MediaPipe 21 点手部关键点检测 · 6 种手势 · 实时控制

6
种支持手势
21
个手部关键点
15
帧防抖缓冲
20ms
UI 刷新间隔

01研究背景与目标

人机交互从键盘鼠标发展到触摸、语音,手势交互是下一代自然交互方式。演讲场景中演示者受限于遥控器,无法在台上自由走动与观众互动。

本系统基于 MediaPipe + OpenCV + CustomTkinter 实现低延迟、高精度的实时手势识别,通过手势控制 PPT 翻页与放映。

02支持手势

☝️
食指
仅食指 → 上一页
✌️
剪刀手
食指+中指 → 下一页
🖐️
张开手掌
五根手指 → 放映模式
👍
点赞手势
仅拇指 → 退出放映
握拳
零根手指 → 死锁暂停
👌
OK 手势
拇指+食指 → 解锁

03核心识别算法

手指状态分析

指尖-指根判据
TIP.y < MCP.y → 手指伸展(指尖高于指根)
拇指特殊处理
距离 / 掌宽 > 0.9 → 拇指伸出(归一化比例,免疫远近)
OK 手势
拇指-食指闭合距离 < 0.05
防抖平滑
15 帧缓冲队列,连续帧过阈值才输出 · 多数投票机制

死锁保护

握拳 → is_paused=True,拦截一切指令。仅 OK 手势可解除死锁状态,防止演讲中误触发。

04系统架构

文件职责
main.py程序入口,启动 CustomTkinter 主循环
gesture_detector.py手势识别核心(MediaPipe 21 点骨架)
ppt_controller.pyPPT 控制(PyAutoGUI 按键注入)
ctk_app.pyUI 界面(暗色仪表盘 + 手势图鉴双栏卡片)

05技术栈

技术用途
MediaPipe 0.10手部检测 + 21 点骨架提取
OpenCV 4.x摄像头采集 + 图像处理
PyAutoGUI模拟键盘按键(翻页/放映/退出)
CustomTkinter现代化暗色 GUI 框架
Threading多线程解耦:AI后台计算 + UI主线程 20ms 轮询

06UI 设计亮点

暗色主题
深色背景 + 霓虹配色,符合演讲场景低亮度需求
实时状态栏
摄像头/手势/动作三行状态显示
手势图鉴
双栏卡片式指令说明,一目了然
全屏模式
F11 无缝全屏切换

07测试结果与总结

系统优势
防抖+死锁双保险 · 多线程解耦 · 比例算法免疫远近 · 全兼容 WPS/PowerPoint
已知限制
仅静态手势 · 强光下检测率下降 · 依赖摄像头质量
未来展望
LSTM 动态手势 · 自定义训练 · 双手交互 · 手机 App 移植