我必须找到最好的方法来解决试图识别身体运动的问题 - 将 iPhone 放在口袋里 - 比如走路、停下、左转/右转、坐下。
我正在考虑只是启发式地找到与每个操作相对应的数据,然后根据该数据(带有阈值)检查传入的值并查看发生了什么。当然,这是一种非常粗略的方法,因此可能会使用支持向量机 方法之类的方法,但这对于我必须开发它的时间来说似乎太复杂了。
您会在这里建议哪种方法?
我必须找到最好的方法来解决试图识别身体运动的问题 - 将 iPhone 放在口袋里 - 比如走路、停下、左转/右转、坐下。
我正在考虑只是启发式地找到与每个操作相对应的数据,然后根据该数据(带有阈值)检查传入的值并查看发生了什么。当然,这是一种非常粗略的方法,因此可能会使用支持向量机 方法之类的方法,但这对于我必须开发它的时间来说似乎太复杂了。
您会在这里建议哪种方法?
步行:对重力方向信号进行 fft。测量其以不同速度行走的频率响应,然后设置一个简单的阈值。
停止:如果过去几秒内信号中的平均功率(即总能量)下降到某个阈值以下,那么您可以说用户已停止。
左转右转:使用重力矢量和陀螺仪转速矢量来判断用户是顺时针还是逆时针旋转
坐姿:这将很难确定,但如果你幸运的话,SVM 会找到正确的模式。
上面的每一个都可以被赋予一个权重,然后你必须找到一个好的方法来获取训练数据来训练你的 SVM。也许将信号从手机传输到网络服务器,同时手动记录用户的动作。
您最好的起点是 Apples 示例代码:CoreMotionTeapot
或者,您可以分析 GPS 信号。这将为您提供一种很好的方法来确定用户更大规模的运动,例如步行/移动或改变航向等。