Мотивация: когда человек ест, он совершает характерные движения руками, которые можно распознать при помощи данных с датчиков на смарт-часах или фитнес-трекерах. По количеству и частоте этих движений можно определить количество съеденного и скорость поглощения пищи, что может быть полезно для людей, которые следят за питанием. Необходимо было построить модель для получения этой информации из данных с датчиков.
Что мы имели изначально:
- набор данных с IMU датчиков смарт-часов, снятый в то время, как человек ест;
- набор видео приемов пищи людей;
- разметка характерных движений рукой при приеме пищи для 3% видео;
- время с видео и с датчиков часто не синхронизировано.
Цели проекта:
- построить алгоритм детекции каждого движения рукой с прибором при приёмах пищи по данным с IMU датчиков смарт-часов.
Решение MIL Team:
Сперва мы доразметили дополнительные 6% видео с помощью привлечения outsource-команды. Перед отправкой видео на разметку мы использовали открытую модель детекции лиц с последующим блюрингом для анонимизации данных.
Далее использовался выход pose estimation модели на видео с приемом пищи в качестве входных данных для модели распознавания жестов. Обученную модель разметки видео мы запустили на остальных 91% видео для автоматической разметки. На этой разметке обучалась модель распознавания жестов по IMU данным. По корреляции между ответами этих моделей на видео и IMU рядах было синхронизировано время между видео и датчиками.
Итоговая модель обучалась на уже синхронизированной автоматической разметке и данных с датчиков. Также была решена задача классификации того, что человек стоит во время приема пищи по данным с датчиков.
Для построения модели были использованы:
- выход модели pose estimation на видео;
- аутсорс команда для разметки видео;
- открытая модель по детекции лиц.
Результаты моделирования: under NDA
Заказчик: under NDA
Технологический стек: Python, PyTorch