Skip to content

lokkitc/Python-finger-counter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Счётчик пальцев

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 для:

  1. Обнаружения рук: Находит руки в видеопотоке камеры
  2. Определения ключевых точек: Определяет 21 ключевую точку на каждой руке
  3. Анализа пальцев: Определяет, разогнут ли каждый палец или согнут
  4. Логики подсчёта:
    • Большой палец: Проверяет, находится ли кончик справа/слева от базового сустава
    • Остальные пальцы: Проверяет, находится ли кончик выше среднего сустава

Управление

  • 'q': Выйти из приложения
  • Покажите руку: Камера автоматически обнаружит и посчитает пальцы

Технические детали

Логика определения пальцев

Приложение использует следующие ключевые точки для каждого пальца:

  • Большой: Кончик (4) против MCP сустава (3)
  • Указательный: Кончик (8) против PIP сустава (6)
  • Средний: Кончик (12) против PIP сустава (10)
  • Безымянный: Кончик (16) против PIP сустава (14)
  • Мизинец: Кончик (20) против PIP сустава (18)

Производительность

  • Целевой FPS: 30+ FPS на современном оборудовании
  • Уверенность обнаружения: Минимум 70% для стабильного обнаружения
  • Уверенность отслеживания: Минимум 50% для плавного отслеживания

Устранение неполадок

Частые проблемы

  1. Камера не найдена

    • Убедитесь, что камера подключена и не используется другим приложением
    • Попробуйте изменить индекс камеры в коде (0, 1, 2 и т.д.)
  2. Плохая точность обнаружения

    • Обеспечьте хорошие условия освещения
    • Держите руку хорошо видимой для камеры
    • Избегайте беспорядка на заднем плане
  3. Ошибки установки

    • Попробуйте обновить pip: python -m pip install --upgrade 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.

Благодарности

  • Создан с использованием OpenCV для компьютерного зрения
  • Использует MediaPipe для обнаружения рук
  • Вдохновлён проектами распознавания жестов и компьютерного зрения

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages