акселерометр - распознавание образов движения (iphone) - PullRequest
4 голосов
/ 30 марта 2011

Мне нужно найти лучший подход для решения проблемы, связанной с попыткой распознать физические движения - с iPhone в кармане - например, вальяж, остановка, поворот влево / вправо, сидя.

Я думал просто эвристически найти данные, соответствующие каждому действию, затем проверить входящие значения по этим данным (с порогом) и посмотреть, что происходит. Конечно, это очень грубый подход, поэтому, возможно, используется что-то вроде Support Vector Machine методы, но это кажется слишком сложным для того времени, которое я должен разработать.

Какой подход вы бы предложили здесь?

1 Ответ

6 голосов
/ 30 марта 2011

Ходьба : Сделайте fft по сигналу направления силы тяжести. Измерьте его частотную характеристику для ходьбы на разных скоростях, а затем установите простой порог.

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

Поворот влево, вправо : Используйте вектор гравитации и вектор скорости вращения гироскопов, чтобы определить, вращается ли пользователь по часовой стрелке или против часовой стрелки

Сидя : Это будет очень трудно определить, но если вам повезет, SVM найдет правильный шаблон.

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

Ваша лучшая отправная точка - яблоки. Пример кода: CoreMotionTeapot

В качестве альтернативы вы можете анализировать сигнал GPS. Это даст вам очень хороший способ определить более масштабные движения пользователей, такие как ходьба / движение или изменение курса и т. Д.

...