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


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

相关推荐
轲轲0117 分钟前
面试题springboot面试
spring boot·后端·面试
前端达人29 分钟前
基于React和TypeScript的开源白板项目(Github项目分享)
前端·react.js·typescript·前端框架·github
听忆.1 小时前
RabbitMQ消息可靠性等机制详解(精细版三)
java·开发语言·spring boot·后端·spring·java-ee·rabbitmq
肖哥弹架构1 小时前
策略模式(Strategy Pattern):电商平台的优惠券系统实战案例分析
前端·后端·程序员
泡芙冰淇淋ya1 小时前
【Spring Boot】spring boot环境搭建
java·spring boot·后端
阳爱铭1 小时前
GitHub:现代软件开发的协作平台
驱动开发·后端·中间件·面试·架构·github·学习方法
肖哥弹架构2 小时前
组合模式(Composite Pattern): 在线教育平台课程管理实战案例分析
前端·后端·程序员
g32308632 小时前
springboot封装请求参数json的源码解析
spring boot·后端·json
=(^.^)=哈哈哈3 小时前
Go语言实现的端口扫描工具示例
开发语言·后端·golang
孤寒者3 小时前
(三十一)Flask之wtforms库【剖析源码下篇】
后端·python·flask·源码剖析·wtforms