Следите за правильной осанкой - с помощью машинного обучения. Обеспечьте надлежащую эргономику офиса с помощью TensorFlow, веб-камеры и библиотек компьютерного зрения реального времени OpenCV Python. Код доступен по адресу https://github.com/saubury/posture-watch

Если вы часами сидите за столом, возможно, вы упадете. Это может привести к боли в шее и спине. Этого можно избежать, научив машину отличать «хорошую» позу от «плохой». Для улучшения осанки используется мгновенная обратная связь с быстрым звуком, когда каждый раз наблюдается плохая эргономика офиса. Обучение и мониторинг модели осуществляется локально на устройстве.

Классификация осанки в реальном времени - как это работает?

Пакеты машинного обучения, доступные для Python 3

  • Scikit-learn - библиотека машинного обучения Python с открытым исходным кодом, поддерживающая контролируемое обучение и взвешивание
  • Tensorflow Keras - высокоуровневый API для построения и обучения моделей.
  • OpenCV - библиотека функций программирования для компьютерного зрения в реальном времени.

Обучение

Во-первых, нам нужно сделать фотографии «хорошей осанки» и «сутулой осанки». Эти изображения необходимы в качестве входных данных для обучения алгоритму контролируемого обучения. В режиме захвата образец изображения снимается каждую секунду и сохраняется в папке обучения. Запустите режим захвата, немного перемещаясь в пространстве, чтобы получить разнообразие изображений. Нажмите кнопку «пробел» (при фокусировке рамки предварительного просмотра), чтобы остановить захват примерно через 30 изображений (30 секунд).

Примечание: первый запуск может занять несколько минут.

# Capture samples of "good" posture
python posture-watch.py --capture-good
# Capture samples of "bad" posture
python posture-watch.py --capture-slump

Тренироваться

Теперь у нас есть множество изображений, представляющих как «хорошие», так и «плохие» позы, что позволяет нам обучать модель. Это займет всего несколько минут. Чем больше сделанных изображений, тем больше времени потребуется на обучение, но оно должно быть более точным.

python posture-watch.py --train

Живое видео

Обучив модель, мы можем протестировать классификацию, запустив прямую видеотрансляцию с веб-камеры в модель. Классификация и достоверность предсказания накладываются на изображение. Для остановки нажмите клавишу «пробел» (с фокусом на рамку предварительного просмотра).

python posture-watch.py --live

Живое видео со звуком

Если вас устраивает точность прогнозов, вы можете постоянно запускать модель и выдавать звуковой сигнал каждый раз, когда обнаруживается плохая осанка.

python posture-watch.py --live --sound

Очистка

rm -fr train/

Настраивать

Убедитесь, что установлены Python 3, virtualenv и pip.

which python3
virtualenv -p `which python3` venv
source venv/bin/activate
python --version
pip --version
pip install -r requirements.txt

Код

Код доступен по адресу https://github.com/saubury/posture-watch