问题标签 [activity-recognition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
737 浏览

java - 如何提高准确率?- 使用连续隐马尔可夫模型的活动识别 (Jahm​​m)

我是 HMM 的新手,但我尝试使用 Jahmm 为 UCI 人类活动识别数据集构建代码。该数据集有 561 个特征,7352 行,还包括加速度计和陀螺仪的 xyz 惯性值,主要用于识别 6 种活动:步行、步行上楼、步行下楼、坐着、站立和躺着。到目前为止,我已经尝试了以下方法:

使用 xyz 惯性值:

  1. 对于 6 项活动中的每一项,我为每个轴(加速度计和陀螺仪)训练了 6 个 HMM,仅使用相应 HMM 的活动训练数据。对于每项活动,我也对所有轴的概率(即,当应用于测试数据时)应用相同的权重,并将它们全部相加以获得每个活动的总数。最大概率将是被选中的那个。(这个我运气不好。有超高准确率的活动同时对其他人超低。)注意:我使用“ObservationReal”,6个状态(实际上是2-10个状态),并且只是均匀划分HMM 的初始值。我有时会得到一些活动的 NaN 值。
  2. 我还尝试先在 R 中缩放(z-score)数据,然后应用上述方法,但仍然无济于事。
  3. 我还尝试使用“ObservationVector”对惯性值进行编码,但我不知道如何设置初始 Opdf(它说它必须是一个正定矩阵)。

具有特征值:

  1. 我发现功能集太大而无法在 Jahmm 上运行,因此使用缩放数据(因为我无法使用开箱即用的数据获得任何体面的结果,尽管它已标准化 [-1,1]) ,我在我的 Jahmm 代码(由六个 6 态 HMM 组成,每个活动对应每个活动,使用测试数据取最大概率)之前,在 R 上运行了 PCA 和相关性的训练和测试数据,结果是还是不太好。尤其是坐姿活动,其准确率始终在 20% 左右。(与上述“注”参数相同)
  2. 我用 R 上的相同数据(mtry=8)运行了 randomForest,并得到了重要性值。我首先用 119 个变量将机车活动和静态活动分开,然后将机车活动(步行、W. Upstairs、W. Downstairs)分类为 89 个特征(基于 RF 重要性值)和静态活动(Sitting、Standing、Laying)分类为 5变量。将机车活动和静态活动分开很容易(2 个状态,100%),但是这种方法在调整 HMM 参数后,我只获得了 86% 的整体准确度。(第二级使用三态 HMM)
  3. 我为所有活动训练了一个 HMM,有 6 个状态(对应于 1 个活动,正如我在一篇论文中读到的)。但在那之后我不知道如何使用维特比。它告诉我 Viterbi 需要 List<Observation O>测试序列,但我显然有 List<List<ObservationReal>>我的测试数据。

我还在 R 中尝试过 HMM 包:

  1. depmixS4 - 没有维特比,我不知道如何用测试数据获得后验概率(它只给出火车数据的概率);我已经尝试联系包的作者,他试图帮助我,但他告诉我尝试的代码给了我错误(我还没有给他发电子邮件)。
  2. RHmm - 一开始就像一个魅力;只用所有训练数据训练了一个 6 状态 HMM,但产生了 nans,导致测试数据的维特比序列不好。

根据我目前所读到的关于 HMM 的内容,这些结果对于 HMM 来说太低了。难道我做错了什么?在使用上述技术之前我应该​​做更多的预处理吗?对于 HMM/Jahmm 来说,数据真的太大了吗?我过拟合了吗?我现在卡住了,但我真的必须为我的项目做活动识别和 HMM。我很高兴能从已经尝试过 Jahmm 和 R 进行连续 HMM 的人那里得到建议/反馈。我也愿意学习其他语言,如果这意味着它最终会奏效的话。

0 投票
0 回答
154 浏览

java - 活动识别 - 连续 HMM 的降维

我是 HMM 的新手,但我尝试使用 Jahmm 为 UCI 人类活动识别数据集构建代码。该数据集有 561 个特征,7352 行,还包括加速度计和陀螺仪的 xyz 惯性值,主要用于识别 6 种活动:步行、步行上楼、步行下楼、坐着、站立和躺着。数据已标准化 [-1,1],但未进行 z 缩放。我只能在缩放后得到不错的结果(R 中的 scale() 函数)。缩放后,我尝试了 PCA、90+% 的相关性和 mtry=8 的 randomForest 重要性度量以降低维度,但到目前为止,randomForest 是唯一似乎有效的方法,但结果仍然很低(80%) . 此外,有时,某些活动在 Jahmm 代码上运行时会给出 NaN 值。

根据我到目前为止所读到的关于 HMM 的内容,这些结果太低了。在使用上述降维技术之前我应该​​做更多的预处理吗?是否有与 HMM 兼容的特定降维技术?我过拟合了吗?还是我最好让它离散而不是连续?我真的必须为我的项目做活动识别和 HMM。我很高兴能从已经尝试过 Jahmm 和 R 进行连续 HMM 的人那里得到建议/反馈。如果有人可以建议一个使用对数概率的包/库,并在给定一组新的测试数据的情况下从拟合的 HMM 中发出维特比序列,那也很棒。

0 投票
1 回答
1775 浏览

r - 在边界处估计的概率是什么意思?使用 depmixS4 包在 R 中隐藏马尔可夫模型

我是隐马尔可夫模型的新手,我目前正在尝试使用连续 HMM 来预测 R 中 UCI 人类活动识别数据集(由加速度计和陀螺仪值组成)上的 6 个活动。我有训练数据和测试数据,还有总共有 561 个功能。在阅读了几篇论文后,我制作了一个 6 状态 HMM,并使用我拥有的训练数据对其进行了训练,假设状态代表一个要分类的活动。之后,我使用维特比来预测 HMM 应用于测试数据时最可能的序列。使用 HMM 的 depmixS4 包,我尝试输入以下代码:

当使用所有 561 个功能时,我很惊讶地看到这些代码产生了 100% 的准确度(使用 Jahmm 时我只获得了大约 80% 的准确度,但后来我无法使用它的所有 561 个功能,因为它挂起)。我实际上是在和 depmixS4 的开发者接触,他确认代码没问题,但也说,“注意,下面的拟合模型实际上是观察到的或普通的马尔科夫模型,而不是隐藏马尔科夫模型,因为所有的响应在边界处估计概率。” 他所说的“在边界处估计响应概率”是什么意思?我尝试在网上搜索它的含义,但没有运气。

使用维特比不是意味着它确实是一个隐马尔可夫模型吗?我做错了吗?

请注意,“viterbi()”函数仍然是包上未发布的函数(开发人员好心地告诉我它能够尝试我的想法)。

0 投票
1 回答
3055 浏览

android - 当手机状态为待机时,ActivityRecognitionClient requestActivityUpdates() 方法不会触发给定的 PendingIntent

我编写了一个应用程序来定期(在后台)记录用户的位置。我使用了 ActivityRecognitionClient。当收到活动时,会将其与先前的活动状态进行比较,并根据评估记录(或不记录)。

只要我的手机处于唤醒状态,它就会按预期工作。(日志消息定期出现在 Eclipse 的 LogCat 视图中)每当屏幕关闭并且设备进入待机状态时,它就会停止接收活动识别调用。另一方面,我也在平板电脑上安装了该应用程序,即使设备进入待机状态,它也会不断更新。(顺便说一句,我的手机是 General Mobile Discovery)

我已经在网上搜索了 3 天(包括 stackoverflow 问题),但到目前为止还没有找到任何对我有用的东西。我会很感激任何帮助...谢谢...

以下是我的应用程序相关代码:

AndroidManifest.xml(即使不需要,也有一些权限,它们可能是未成功尝试解决问题的剩余部分)

StartFamilyWatcherServiceAtBootReceiver.java(此接收器在设备启动时启动 FamilyWatcherService.java,应用程序 MainActivity.java 类也调用 FamilyWatcherService,因此它在首次安装时开始运行。)

FamilyWatcherService.java(此服务连接到 ActivityRecognitionClient 并注册一个待调用的 PendingIntend 活动更新。当它工作时调用 ActivityRecognitionService.onHandleIntend() 方法)

ActivityRecognitionService.java(该服务的 onHandleIntent() 方法被 Activity Recognition 更新调用)

0 投票
1 回答
389 浏览

android - Android手动启动ActivityRecognition

我的 Android 应用程序需要检测当前的活动(跑步、步行等)。

我按照 Android 开发页面上的说明进行操作:http: //developer.android.com/reference/com/google/android/gms/location/ActivityRecognitionClient.html

在我的意图服务中:

这是我的问题:我想自己开始活动识别。Android Dev Page 中的代码似乎应该这样做。但是,如果我不将该服务添加到 AndroidManifest,它不会做任何事情。onConnected() 方法被调用,但不是 onHandleIntent()。

所以我想我可能只需要将它添加到清单中。现在我确实收到了活动,但我一直收到它们。这也不是我想要的。我究竟做错了什么?

在此先感谢, 斯特夫

0 投票
1 回答
661 浏览

android - Android 活动识别示例错误

因此,我在 android 网站http://developer.android.com/training/location/activity-recognition.html上下载了“识别用户当前活动”的示例应用程序

我遇到的问题是,当我按“开始更新”按钮,然后按“停止更新”按钮,然后再次按“开始更新”按钮时,更新不会再次开始第二次。

我在网上搜索过,但找不到太多关于该主题的材料,所以是的,我也尝试过调试,发现 onDisconnected() 方法调用(通过 ConnectionCallbacks 接口)在任何一个 DetectionRemover 中都没有被调用。 java 或 DetectionRequester.java 文件。

如果有人知道为什么会这样,我真的很想知道为什么。从我收集到的内容来看,示例代码中似乎没有任何内容,我认为这可能是 Google 服务方面的问题。

PS 我正在使用 Google Play 服务 rev 16. 以及三星 Galaxy s2 android 版本 4.1.2

0 投票
0 回答
133 浏览

android - 除非我重新启动手机,否则活动识别更新不会开始

我在我的应用程序中使用活动识别服务。有时,服务突然停止,只有在我重新启动手机后才能正常工作。

在 Nexus 5 中,即使重新启动后也不会启动

我有最新的谷歌播放服务版本 4.3.23

提前致谢

0 投票
1 回答
1318 浏览

android - android Activity Recognition Parcelable 协议需要 Parcelable.Creator

我遇到活动识别问题,并且收到以下错误:

ActivityRecognitionResult课程来自 Google Play 服务,那么我该如何解决此错误?

0 投票
1 回答
1765 浏览

android - 活动识别 PendingIntent 停止在半夜被调用

我的应用程序定期收集活动识别的检测到的活动数据。我完全按照文档中的描述实现了它,但间隔一分钟。

只要用户登录 - 注册的应用程序PendingIntent从谷歌播放进程接收更新..

请不要跟我讲每分钟更新请求导致的电池使用、网络和性能问题,除非它与我的问题有关:

问题: 在某些设备中(在 Nexus 5 中发生最多),在半夜持续 5-6 小时 - IntentService停止被调用。

我不确定,但怀疑它与 Google 优化有关,并且重要的运动传感器没有检测到任何进入活动识别机制的运动处于空闲模式,如可能发生的文档中所述。

对我的应用程序来说,了解每分钟大约的当前活动是什么很重要,即使它保持不变或闲置了很长时间..

我的问题:

  • 我怎么知道是否由于重要的运动传感器或任何其他原因而停止调用周期性活动识别?
  • 有没有办法以某种方式强制 Google Play 进程执行活动更新而不停止它假定不需要的时间?
0 投票
1 回答
595 浏览

android - Google 的 Activity Recognition 是否适用于所有支持 API 高于 8 的 Android 设备?

我正在尝试启动任何 android ActivityRecognition 示例,但几天后没有成功。我安装了 Google 服务,成功连接到 LocationServices 客户端,安装了最新的 SDK,在我的应用中放置了意图服务,在设备首选项中打开了位置服务,但仍然 - 没有更新,没有调用 onHandleIntent(顺便说一句,我在意图服务中放置了断点构造函数,似乎应用程序永远不会出现:这正常吗?)。
我的设备是 XPERIA M。我尝试了 android 开发指南中的以下代码:http: //developer.android.com/shareables/training/ActivityRecognition.zip 并从这里开始:https ://github.com/diegofigueroa/activity-recognition -样本

除了添加元数据标签外,所有代码均未受影响: