Skip to content

Repository files navigation

🎥 MediaPipe Skeleton Tracker

Приложение для анализа поз человека в реальном времени с использованием библиотеки MediaPipe.


🚀 Что это?

Это кроссплатформенное приложение на Python, которое отслеживает ключевые точки скелета человека с помощью веб-камеры и предоставляет удобный интерфейс для анализа, визуализации и экспорта данных.

✅ Особенности

  • 🖥️ Работает на весь экран
  • 🌓 Поддержка темной/светлой темы
  • 🌍 Двуязычный интерфейс: русский / английский
  • 📸 Автоматический запуск камеры при старте
  • 💾 Экспорт данных в форматах CSV и JSON
  • 📈 Встроенный график активности (движения ключевых точек во времени)
  • 🌐 Встроенный Flask API с эндпоинтом /status для мониторинга состояния приложения
  • 🔒 Защита от двойного запуска (только один экземпляр приложения)
  • 📝 Подробное логирование ошибок и событий
  • 📦 Готов к сборке в автономный .exe (через PyInstaller и т.п.)

▶️ Как запустить

1. Установите Python 3.10+

Убедитесь, что у вас установлен Python 3.10 или новее.
Проверить версию:

python --version

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

pip install opencv-python mediapipe numpy pillow flask psutil

💡 Совет: рекомендуется использовать виртуальное окружение:

python -m venv venv
source venv/bin/activate      # Linux/macOS
venv\Scripts\activate         # Windows
pip install -r requirements.txt

3. Запустите приложение

python main.py

Приложение автоматически:

  • откроет окно в полноэкранном режиме,
  • включит камеру,
  • начнёт отслеживать позу.

📁 Структура проекта (рекомендуемая)

mediapipe-skeleton-tracker/
├── main.py                 # Основной скрипт
├── app/                    # Модули приложения (логика, UI, экспорт и т.д.)
├── logs/                   # Логи ошибок и событий
├── exports/                # Экспортированные CSV/JSON файлы
├── static/                 # Статические файлы для Flask API
├── templates/              # HTML-шаблоны (если используется веб-интерфейс)
├── requirements.txt        # Зависимости
└── README.md

📤 Экспорт данных

Во время работы приложения вы можете:

  • Нажать кнопку «Экспорт» → выбрать формат (CSV или JSON)
  • Файлы сохраняются в папку exports/ с временной меткой

Пример структуры JSON:

{
  "timestamp": "2024-06-15T14:30:00",
  "landmarks": [
    {"x": 0.5, "y": 0.3, "z": 0.1, "visibility": 0.99},
    ...
  ]
}

🌐 Flask API

Приложение запускает локальный сервер Flask на http://localhost:5000.

Доступные эндпоинты:

  • GET /status — возвращает статус приложения:
    {
      "status": "running",
      "camera_active": true,
      "fps": 28.5,
      "language": "ru"
    }

⚠️ API работает в фоне и не блокирует основной GUI.

🛠️ Сборка в .exe (Windows)

Проект совместим со сборкой через PyInstaller:

pip install pyinstaller
pyinstaller --onefile --windowed --add-data "exports;exports" --add-data "logs;logs" main.py

Убедитесь, что все ресурсы (иконки, переводы и т.д.) включены в сборку.


🐞 Отладка и логирование

Все ошибки и события записываются в файл logs/app.log.
Формат лога: [2024-06-15 14:30:05] INFO: Camera started successfully [2024-06-15 14:31:22] ERROR: Failed to detect pose — no person in frame

🌍 Переводы

Интерфейс поддерживает два языка:

  • Русский (ru)
  • Английский (en) Язык определяется автоматически по системным настройкам или может быть выбран вручную в настройках.

📜 Лицензия

MIT License — свободно используйте, модифицируйте и распространяйте!

About

A computer vision tool for detecting humans in images and video streams. Built with Python and OpenCV, it provides a simple and efficient way to perform people counting and surveillance

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages