我试图找出knocktounlock.com如何能够在iPhone上检测到"敲门".我确信他们使用加速度计来实现这一点,但是我的所有尝试都会出现假标志(如果用户移动,跳跃等等,它有时会触发)
基本上,我希望能够检测到用户何时敲击/敲击/敲击他们的手机(并且能够将其与可能也会增加加速度计的东西区分开来).所以我正在寻找尖锐的高峰.该设备将放在口袋中,因此设备的移动不会太多.
我尝试过高/低通(不确定是否会有更好的选择)
这与此重复:通过加速计检测iPhone上的任何硬点但是它没有收到任何答案.
任何帮助/建议都会很棒!谢谢.
编辑:在我接受下面的答案之前寻找更多的想法.我确实收到了Knocktounlock的回复,他们使用四阶导数(jounce)来获得更好的值,然后进行分析.这很有趣.
我认为这里的方法是使用加速度计数据进行模式识别.您可以(编写)训练分类器(例如K最近邻居),其中包含您收集的数据并且已经手动分类.神经网络也是一种选择.但是,有许多不同的方法可以解决这个问题.但实现这一点可能没有直接的方法.
一些论文显示了类似主题(活动,运动)的模式识别方法,如 http://www.math.unipd.it/~cpalazzi/papers/Palazzi-Accelerometer.pdf (更多,但我不允许发布它们我的声誉计数.您可以搜索"模式识别加速度计数据")
还有一篇关于iPhone手势识别的硕士论文:http: //klingmann.ch/msc_thesis_marco_klingmann_iphone_gestures.pdf
一般而言,您将无法实现100%正确的分类.根据获得的时间/知识,结果将在良好可用和我们可以使用随机分类之间变化.
我会认为敲击iPhone与两部手机碰撞完全一样.看看这个Github Repo,
https://github.com/joejcon1/iOS-Accelerometer-visualiser
在iPhone上构建并运行应用程序并检查绿线上的峰值.你可以清楚地看到尖峰的价值,
敲iPhone:
正如您所看到的,当您敲击手机时,实际尖峰的时间非常短.然而,在Hard Knock和Soft knock中,尖峰模式几乎没有什么不同,但可以通过编程方式区分.
现在让我们看看iPhone在空间中自由移动时的加速度计模式,
正如您所看到的,Spikes是钟形的,这意味着尖峰值需要一点时间才能返回0.
通过这些模式,更容易确定爆震模式.祝好运.
此外,这将耗尽您的电池,因为传感器将始终运行,iPhone需要通过蓝牙与Mac保持连接.
PS:另请查看此答案,/sf/ask/17360801/