✋ Распознаватель жестов руки (GestureAI_v1)
Привет! 👋
Это моя собственная свёрточная нейросеть, обученная с нуля распознавать жесты руки в реальном времени через веб-камеру.
Модель понимает 5 командных жестов и может использоваться для управления компьютером (например, движением мыши) или в других проектах.
🚀 Особенности модели
- ⭐ Модель была обучена на 24 760 реальных изображений голубой перчатки, из-за чего смогла научится обобщать за 1 эпоху.
- 🧠 Архитектура была сделана и обучена с нуля, вместе с датасетом (никаких предобученных моделей!)
- 🎥 Все 24 760 изображений было сделанно 1 человеком, но это никак не помешало модели обобщать.
- 👀 Модель способна понимать жест даже в тёмной комнате если есть малейший свет, который слегка освещает перчатку.
📊 Распознаваемые жесты
| Жест | Класс | Движение мышки |
|---|---|---|
| 👆 | up |
Движение вверх |
| 👇 | down |
Движение вниз |
| 👈 | left |
Движение влево |
| 👉 | right |
Движение вправо |
| 🙂 | nothing |
Никаких действий |
🧠 Архитектура модели
Модель реализована на PyTorch в виде последовательной CNN (nn.Sequential).
class GestureCNN(nn.Module):
def __init__(self, num_classes):
super().__init__()
self.net = nn.Sequential(
nn.Conv2d(3, 32, 3, padding=1), nn.BatchNorm2d(32), nn.ReLU(), nn.MaxPool2d(2),
nn.Conv2d(32, 64, 3, padding=1), nn.BatchNorm2d(64), nn.ReLU(), nn.MaxPool2d(2),
nn.Conv2d(64, 128, 3, padding=1), nn.BatchNorm2d(128), nn.ReLU(), nn.MaxPool2d(2),
nn.Conv2d(128, 256, 3, padding=1), nn.BatchNorm2d(256), nn.ReLU(), nn.AdaptiveAvgPool2d(1),
nn.Flatten(),
nn.Dropout(0.3),
nn.Linear(256, 128), nn.ReLU(), nn.Dropout(0.3),
nn.Linear(128, num_classes)
)
def forward(self, x):
return self.net(x)
# 📦 Как использовать
# 1. Установка зависимостей
# pip install torch pyautogui cv2
# 2. Запуск
# py main.py
- Downloads last month
- 21