Python приложение, которое использует компьютерное зрение для подсчёта количества пальцев, показываемых камере в реальном времени.
- Подсчёт пальцев в реальном времени
- Поддержка обеих рук (до 10 пальцев)
- Зеркальное отображение для естественного взаимодействия
- Счётчик FPS для мониторинга производительности
- Python 3.7 или выше до 13 версии Python так как на данный версии Python MediaPipe не поддерживается 15.03.2025
- Веб-камера
- Windows/macOS/Linux
Установите зависимости Python:
pip install opencv-python mediapipe numpy
Запустите счётчик пальцев:
python finger_counter.py
Приложение использует библиотеку MediaPipe от Google для:
- Обнаружения рук: Находит руки в видеопотоке камеры
- Определения ключевых точек: Определяет 21 ключевую точку на каждой руке
- Анализа пальцев: Определяет, разогнут ли каждый палец или согнут
- Логики подсчёта:
- Большой палец: Проверяет, находится ли кончик справа/слева от базового сустава
- Остальные пальцы: Проверяет, находится ли кончик выше среднего сустава
- 'q': Выйти из приложения
- Покажите руку: Камера автоматически обнаружит и посчитает пальцы
Приложение использует следующие ключевые точки для каждого пальца:
- Большой: Кончик (4) против MCP сустава (3)
- Указательный: Кончик (8) против PIP сустава (6)
- Средний: Кончик (12) против PIP сустава (10)
- Безымянный: Кончик (16) против PIP сустава (14)
- Мизинец: Кончик (20) против PIP сустава (18)
- Целевой FPS: 30+ FPS на современном оборудовании
- Уверенность обнаружения: Минимум 70% для стабильного обнаружения
- Уверенность отслеживания: Минимум 50% для плавного отслеживания
-
Камера не найдена
- Убедитесь, что камера подключена и не используется другим приложением
- Попробуйте изменить индекс камеры в коде (0, 1, 2 и т.д.)
-
Плохая точность обнаружения
- Обеспечьте хорошие условия освещения
- Держите руку хорошо видимой для камеры
- Избегайте беспорядка на заднем плане
-
Ошибки установки
- Попробуйте обновить pip:
python -m pip install --upgrade pip
- Устанавливайте пакеты по отдельности, если пакетная установка не удалась
- Попробуйте обновить pip:
Вы можете изменить следующие параметры в коде:
# В FingerCounter.__init__()
self.hands = self.mp_hands.Hands(
max_num_hands=2, # Количество рук для обнаружения (1-2)
min_detection_confidence=0.7, # Чувствительность обнаружения (0.0-1.0)
min_tracking_confidence=0.5 # Плавность отслеживания (0.0-1.0)
)
Этот проект является открытым исходным кодом и доступен под лицензией MIT.