Skip to content

A Python application that tracks your posture via a webcam. The MediaPipe neural network initially tracks shoulder position.

Notifications You must be signed in to change notification settings

Magerko/Posture-Control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Patriot - Система контроля осанки на Python

Надоело сутулиться? Пусть компьютер следит за твоей спиной!

Это приложение использует веб-камеру и нейросети для отслеживания твоей осанки в реальном времени. Как только ты начинаешь сидеть криво — включается музыка. Сядешь ровно — музыка выключится.


Как это работает?

  1. Камера захватывает видео
  2. Нейросеть MediaPipe находит твои плечи
  3. Если одно плечо выше другого — ты сидишь криво
  4. Включается "музыка наказания" пока не выпрямишься

Демонстрация работы


Технологии

Инструмент Для чего
Python Язык программирования
OpenCV Захват видео с камеры
MediaPipe Нейросеть от Google для детекции позы человека
Pygame Воспроизведение звука

Установка

1. Установи Python

Скачай Python 3.8+ с python.org

2. Установи зависимости

pip install opencv-python mediapipe pygame

3. Добавь свою музыку

Положи любой MP3 файл рядом с main.py и назови его music.mp3

4. Запусти

python main.py

Как использовать

  1. Запусти программу
  2. Сядь перед камерой так, чтобы были видны плечи
  3. Откроется окно "POTUZHNO" с твоим изображением и скелетом
  4. Сиди ровно — музыка не играет
  5. Наклонись в сторону — музыка включится
  6. Выпрямись — музыка выключится
  7. Нажми Q для выхода

Настройка чувствительности

В файле main.py можно изменить порог срабатывания:

SHOULDER_THRESHOLD = 0.04  # Чем меньше — тем чувствительнее
  • 0.02 — очень строго, реагирует на малейший наклон
  • 0.04 — стандартно (по умолчанию)
  • 0.08 — мягко, только при сильном наклоне

Структура проекта

patriot/
├── main.py      # Основной код программы
├── music.mp3    # Музыка "наказания"
└── README.md    # Эта документация

Как это устроено внутри

Детекция позы

MediaPipe находит 33 ключевые точки тела человека. Нам нужны только 2 — левое и правое плечо.

left_shoulder = results.pose_landmarks.landmark[mp_pose.PoseLandmark.LEFT_SHOULDER]
right_shoulder = results.pose_landmarks.landmark[mp_pose.PoseLandmark.RIGHT_SHOULDER]

Определение кривизны

Если разница высоты плеч больше порога — осанка неправильная:

shoulder_diff = abs(left_shoulder.y - right_shoulder.y)
is_sitting_crooked = shoulder_diff > SHOULDER_THRESHOLD

Управление музыкой

if is_sitting_crooked and not music_is_playing:
    pygame.mixer.music.unpause()  # Включить музыку
elif not is_sitting_crooked and music_is_playing:
    pygame.mixer.music.pause()    # Выключить музыку

Возможные улучшения

  • Добавить статистику времени с правильной/неправильной осанкой
  • Настройка через GUI вместо кода
  • Уведомления в телеграм
  • Разные звуки для разных уровней кривизны
  • Детекция положения головы и шеи

Требования

  • Python 3.8+
  • Веб-камера
  • Windows / macOS / Linux

Автор

Создано с любовью к здоровой спине.


Лицензия

Делай что хочешь, только спину держи ровно!

About

A Python application that tracks your posture via a webcam. The MediaPipe neural network initially tracks shoulder position.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages