Следите за правильной осанкой - с помощью машинного обучения. Обеспечьте надлежащую эргономику офиса с помощью 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