Ходьба : Сделайте fft по сигналу направления силы тяжести. Измерьте его частотную характеристику для ходьбы на разных скоростях, а затем установите простой порог.
Остановка : если средняя мощность, т. Е. Общая энергия сигнала в течение последних нескольких секунд, падает ниже определенного порога, то вы можете сказать, что пользователь остановился.
Поворот влево, вправо : Используйте вектор гравитации и вектор скорости вращения гироскопов, чтобы определить, вращается ли пользователь по часовой стрелке или против часовой стрелки
Сидя : Это будет очень трудно определить, но если вам повезет, SVM найдет правильный шаблон.
Каждому из вышеперечисленных можно присвоить весовые коэффициенты, и тогда вам нужно будет найти хороший способ получения обучающих данных для обучения вашего SVM. Возможно передавать сигналы с телефона на веб-сервер и одновременно записывать движения пользователей вручную.
Ваша лучшая отправная точка - яблоки. Пример кода: CoreMotionTeapot
В качестве альтернативы вы можете анализировать сигнал GPS. Это даст вам очень хороший способ определить более масштабные движения пользователей, такие как ходьба / движение или изменение курса и т. Д.