浏览器里实时看摄像头画面,自动识别手势和人脸。 基于 Google MediaPipe,纯本地推理,图像不上传任何服务器。
pip install -r requirements.txt waitress
bash restart.sh # 启动,固定端口 9000
open http://localhost:9000macOS 首次运行需在「系统设置 → 隐私与安全性 → 摄像头」里授权。
- ✋ 手势识别 —— MediaPipe Hands Tasks API,通过 21 个手部关键点计算手指伸出数量
- 🙂 人脸检测 —— MediaPipe Face Landmarker,478 个面部关键点
- 📺 MJPEG 实时流 —— 浏览器
<img>直接拉流,断连自动重连
用的是模型推理而不是手工阈值,所以不受光照、肤色、背景影响。
| 文件 | 作用 |
|---|---|
app.py |
Flask 入口。后台摄像头采集线程,提供 /(页面)和 /video_feed(MJPEG 流),用 waitress 作生产级 WSGI |
gesture_detector.py |
MediaPipe Hands,21 个关键点 → 手指计数 |
face_detector.py |
MediaPipe Face Landmarker,478 个关键点 |
templates/index.html |
前端页面,<img> 拉流 + 断连重连 |
restart.sh |
重启脚本:关旧实例 → 释放端口 9000 → 启新实例 |
Python · Flask · OpenCV · Google MediaPipe · waitress
首次运行会自动把 MediaPipe 模型下载到 ~/.cache/lookscan/,之后离线可用。
- 端口固定 9000(
restart.sh依赖此约定) waitress在app.py里被导入但没写进requirements.txt,需单独装