mertinkos/cat-face
GitHub: mertinkos/cat-face
基于 MediaPipe landmark 和规则引擎的桌面应用,实时检测手势、姿势与面部表情并匹配显示对应的猫咪表情包。
Stars: 0 | Forks: 0
# 🐱 猫脸
这是一款桌面应用程序,能够实时检测你在镜头前的姿势、手势或面部表情,
并在侧边栏中显示匹配的猫咪表情包。
它完全**基于规则**运行:在 MediaPipe 的手部和面部 landmark 之上
应用几何规则(+ 用于面部表情的模型 blendshape 分数),
没有训练任何额外的 ML 模型。
## 姿势
| 姿势 | 如何操作 | 猫咪 |
| -----------| ----------------------------------------------------| ------------------|
| 🙏 | 双掌合十,手指朝上 | `praying_cat` |
| 🕶️ 特工 | 将食指或大拇指靠近太阳穴/耳朵 | `cool_sticker` |
| 😱 震惊 | 一只手捂住嘴,另一只手举起 | `arms_up_kitten` |
| ☝️ 指向 | 只伸出食指 | `pointing_cat` |
| 🤙 傻气 | 张开大拇指 + 小指,收起中间三指 | `shaka_cat` |
| 😢 难过 | 噘起嘴唇 | `crying_cat` |
| 😴 困倦 | 闭眼 + 张嘴 | `tongue_cat` |
一旦检测到姿势,就会立即显示匹配项;当姿势中断时,经过短暂的容忍
时间(0.3 秒)后,匹配状态将解除(可防止单帧抖动)。
## 安装说明
需要 Python 3.12+。
```
git clone
cd cat-face
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
```
## 运行说明
```
python main.py
```
首次运行时,MediaPipe 模型文件(约 11 MB)会自动下载到
`models/` 文件夹中。按 **Q** 或 **ESC** 退出。
要在屏幕上显示 blendshape 分数以调整面部表情阈值:
```
python main.py --debug
```
## 项目结构
```
main.py # Kamera döngüsü, landmark tespiti, iki panelli arayüz
hand_rules.py # 5 el jesti kuralı (landmarks -> jest adı | None)
face_rules.py # 2 yüz ifadesi kuralı (landmarks + blendshapes -> ifade | None)
matcher.py # Zaman bazlı stabilizasyon (0.5 sn sabit tespit -> onay)
assests/ # Kedi görselleri / gif'leri
models/ # MediaPipe .task modelleri (otomatik indirilir, git'e girmez)
```
## 添加新姿势
1. 在 `hand_rules.py` 或 `face_rules.py` 中编写规则函数,并将其
连接到相关的 `detect_*` 函数。
2. 将其添加到 `main.py` 中的 `POSE_ASSETS` 和 `POSE_LABELS` 字典中。
3. 将图像放入 `assests/` 文件夹中(png/jpg/gif;扩展名不限)。
标签:MediaPipe, OpenCV, TCP/UDP协议, 姿态识别, 手势识别, 桌面应用, 表情识别, 计算机视觉, 逆向工具