“让爷看看”!开源智能坐姿守护者: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 的功能有什么提议?热烈欢迎各位在评论区分享交流心得与见解!!!


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

相关推荐
橘猫云计算机设计几秒前
基于django优秀少儿图书推荐网(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·python·小程序·django·毕业设计
黑猫Teng4 分钟前
Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实战指南
java·spring boot·后端
小智疯狂敲代码6 分钟前
Java架构师成长之路-框架源码系列-整体认识Spring体系结构(1)
后端
星河浪人10 分钟前
Spring Boot启动流程及源码实现深度解析
java·spring boot·后端
雷渊39 分钟前
深入分析Spring的事务隔离级别及实现原理
java·后端·面试
Smilejudy1 小时前
不可或缺的相邻引用
后端
惜鸟1 小时前
Elasticsearch 的字段类型总结
后端
rebel1 小时前
Java获取excel附件并解析解决方案
java·后端
微客鸟窝1 小时前
Redis常用数据类型和命令
后端
熊猫片沃子1 小时前
centos挂载数据盘
后端·centos