“让爷看看”!开源智能坐姿守护者:PoseMonitor

PoseMonitor :智能监测,健康生活,让不良坐姿无处遁形。- 精选真开源,释放新价值。

概览

"让爷康康"是一款创新的安卓手机应用,专注于通过人工智能技术实时监测并纠正用户的坐姿。基于Tensorflow Lite的官方姿态估计示例,该应用集成了MoveNet Thunder神经网络模型,以及一个全连接网络,用于对姿态进行精确分类。无需联网,所有AI功能均在本地运行,保护用户隐私同时提供即时反馈。用户界面简洁直观,操作简便,适合所有年龄段的用户。


主要功能

css 复制代码
├───android
│   ├───app
│   │   └───src
│   └───gradle
├───doc_images
├───main
│   └───pose_data
│       └───train
│           ├───forwardhead
│           └───standard

项目的两个主要文件夹为 android/ 与 main/。android/ 下包含了所有与移动 App 相关的代码,main/ 文件夹下则是分类网络的训练数据与记录了训练过程的 pose_classification.ipynb 文件,训练数据存放在 main/pose_data/train/ 目录下,为精简项目体积,只上传了 pose_classification.ipynb 用到的两张示例图片。如果需要训练分类模型,可以按 pose_classification.ipynb 上面的指示填充 main/pose_data/train/ 与 main/pose_data/test/ 两个文件夹。doc_images/ 文件夹下是本文档所用到的示例图片,并不包括项目代码。

  • 实时姿态监测

应用利用手机内置摄像头实时捕捉用户的坐姿,通过集成的MoveNet Thunder模型进行高效的姿态估计。该模型能够精确识别人体关键点,从而分析出用户的坐姿是否符合健康标准。用户可以通过这一功能,随时了解自己的坐姿状态,并及时作出调整。

将手机连接至电脑,Android Studio 可以对本项目进行编译并将 App 安装至手机。打开应用,授权使用相机后,App 便可以监测人体坐姿并根据实时检测结果给出语音提示。程序的显示界面主要分为上、中、下三部分,顶部显示 AI 对当前姿态的判断结果,中部为摄像头实时画面,底部为信息显示界面,其中"运算设备"一栏可以选择不同选项,使用 CPU、GPU 或 NNAPI(Hexagon AI 加速器)进行计算,其中 NNAPI 速度最快,也最省电。为了避免程序误报,App 加入了一系列判断逻辑以提高 Precision(精确率)。连续 30 帧出现不健康坐姿时,程序会进入警戒状态,此时如果接下来 30 帧画面同样均判定为不健康坐姿,程序才会发出语音提示。效果如图所示:

  • 智能语音提示

一旦监测到用户的坐姿偏离健康标准,应用会立即通过语音提示用户。这种即时反馈机制,使用户能够在第一时间内意识到并纠正坐姿,有效预防长时间不良坐姿带来的健康问题。

  • 本地AI处理

"让爷康康"应用的所有AI处理工作均在用户的设备上完成,无需将数据发送到远程服务器。这种设计不仅保护了用户的隐私,也减少了对网络的依赖,确保了应用即使在没有网络连接的情况下也能正常工作。

除了 MoveNet Thunder,本项目还使用了一个简单的全连接网络对 MoveNet 输出的姿态信息(人体 17 个关键点的坐标)进行分类,用来判断画面中的人处于"标准坐姿"、"翘二郎腿"、"脖子前倾驼背"中的哪一种状态。关于该分类网络的介绍以及训练过程实际演示,可以参考 Tensorflow Lite 的 Jupyter Notebook 教程,或是本项目中修改并注释过的版本。本项目为了对"标准坐姿"、"翘二郎腿"、"脖子前倾驼背"三种姿态进行分类,为每种姿态采集了约 300 张照片作为训练集(共 876 张照片),为每种姿态采集了约 30 张作为测试集(共 74 张照片)。其中训练集与测试集为不同人物主体,以此来在训练过程中及时发现模型的过拟合问题。训练数据应存放于 main/pose_data/train/ 路径下的 standard、crossleg、forwardhead 三个文件夹中,测试数据则位于 main/pose_data/test/ 路径下。本项目中用于训练分类网络的 Jupyter Notebook 会将原始数据自动转化为训练数据包,在此过程中生成每张照片的 MoveNet 检测结果,并将每张照片标记为三种姿态中的一种,最后将所有信息存储在 main/pose_data/train_data.csv、main/pose_data/test_data.csv,并生成记录标签信息的文本文件 main/pose_data/pose_labels.txt。在 Notebook 中训练完毕后,在 main/pose_data/ 路径下会自动生成 .tflite 权重文件,导入至 Android Studio 项目中,替换掉本项目中的 android\app\src\main\assets\classifier.tflite 即可使用。

  • 多样化运算设备选择

应用支持用户根据个人设备的性能,选择最合适的计算方式。无论是CPU、GPU还是NNAPI(Hexagon AI加速器),用户都可以根据需求选择,以达到最佳的性能和电池使用效率。

  • 高精度姿态分类

应用内置的全连接网络能够对MoveNet输出的人体关键点数据进行深入分析,将用户的姿态精确分类为"标准坐姿"、"翘二郎腿"或"脖子前倾驼背"。这种分类不仅提高了监测的准确性,也使得反馈更加具体和有用。

  • 易于使用的用户界面

用户界面的设计注重直观性和易用性。顶部区域清晰展示AI对当前姿态的判断结果,中部实时显示摄像头捕捉的画面,底部提供必要的信息显示。这种布局使得用户能够快速理解应用的当前状态,并根据需要进行操作。

通过这些功能,"让爷康康"应用为用户提供了一个全面、实用且易于使用的坐姿监测解决方案,帮助用户养成良好的坐姿习惯,预防相关健康问题。


信息

截至发稿概况如下:

语言 占比
Jupyter Notebook 96.7%
Kotlin 3.3%
  • 收藏数量:2.5K

尽管"让爷康康"在监测坐姿和保护用户健康方面表现出色,但也存在一些潜在的挑战。例如,不同用户的体型和坐姿习惯可能导致姿态识别的准确性有所差异。此外,持续的监测可能会对设备的电池寿命造成一定影响。为了解决这些问题,我们建议进一步优化算法以提高识别的普适性和准确性,并探索更节能的运行模式。同时,我们鼓励用户和开发者共同参与到应用的改进和讨论中来,共同推动健康生活方式的普及。

各位在使用 PoseMonitor 的过程中是否发现了什么问题?或者对 PoseMonitor 的功能有什么提议?热烈欢迎各位在评论区分享交流心得与见解!!!


声明:本文为辣码甄源原创,转载请标注"辣码甄源原创首发 " 并附带原文链接。

相关推荐
Ljw...14 分钟前
表的增删改查(MySQL)
数据库·后端·mysql·表的增删查改
编程重生之路15 分钟前
Springboot启动异常 错误: 找不到或无法加载主类 xxx.Application异常
java·spring boot·后端
薯条不要番茄酱15 分钟前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea
qq_17448285758 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
锅包肉的九珍9 小时前
Scala的Array数组
开发语言·后端·scala
心仪悦悦9 小时前
Scala的Array(2)
开发语言·后端·scala
2401_882727579 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
心仪悦悦10 小时前
Scala中的集合复习(1)
开发语言·后端·scala
代码小鑫10 小时前
A043-基于Spring Boot的秒杀系统设计与实现
java·开发语言·数据库·spring boot·后端·spring·毕业设计
真心喜欢你吖10 小时前
SpringBoot与MongoDB深度整合及应用案例
java·spring boot·后端·mongodb·spring