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