如何基于人体人脸跟踪实时监测心率?
Posted 华为移动服务
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何基于人体人脸跟踪实时监测心率?相关的知识,希望对你有一定的参考价值。
华为AR Engine是什么?
华为AR Engine服务是一个用于在android上构建增强现实应用的引擎。基于芯片平台整合AR核心算法,提供了运动跟踪、环境跟踪、人体和人脸跟踪等AR基础能力,通过这些能力可以让您的应用实现虚拟世界与现实世界的融合,为您的应用提供全新的视觉体验和交互方式。AR Engine拥有可实现人体健康检测的能力,包括心率、呼吸率、面部健康状态、心率波形图信号等健康信息。
基于华为AR Engine三大类能力: 运动跟踪、环境跟踪、人体和人脸跟踪之一的人体人脸跟踪,在运动过程中可以实时监测并呈现您的身体健康。
具体的使用场景
- 健身房:运动健身实时查看身体状态
- 医疗:实时查看病人身体状况
- 护理: 实时监测老年人的各项指标
AR监测的优势
- 实时计算人脸健康信息,同时计算人体关键健康信息(心率等)。
- AR Engine的人体和人脸跟踪让您的终端设备具备了对人的理解能力。通过定位人的手部位置和对特定手势的识别,可将虚拟物体或内容特效放置在人的手上;结合深度器件,还可精确还原手部的21个骨骼点的运动跟踪,做更为精细化的交互控制和特效叠加;当识别范围扩展到人的全身时,可利用识别到的23个人体关键位置,实时的检测人体的姿态,为体感和运动健康类的应用开发提供能力支撑。
Demo应用介绍
为了让开发者更好的了解华为AR健康检测的实现,快速高效的集成,这里提供了一个简单的集成案例,让你用高效的方式,简单的代码实现demo的运行。
- ENABLE_HEALTH_DEVICE启用健康检测。
- FaceHealthCheckStateEvent作为ServiceListener.handleEvent(EventObject eventObject)的参数,向应用传递健康检测状态信息。
- HealthParameter健康检测参数。包括心率,呼吸率,人脸属性:年龄·男性比重·女性比重,心率波形图信号等。
开发实战
开发准备
1. 工具准备
- 华为P30 Android 11
- 开发工具 Android Studio
2. 注册成为开发者
- 注册成为华为开发者。
- 创建一个应用:参考AR Engine开发准备在华为应用市场创建一个您的应用。
- 构建Demo应用:导入源代码到Android Studio将华为应用市场上新建应用的agconnect-services.json文件下载到本地,并将其替换示例代码的app目录下(\\app)。
关键步骤说明
1. 在项目级gradle里添加华为maven仓
AndroidStudio项目级build.gradle文件,增量添加如下maven地址:
buildscript {
repositories {
maven { url 'http://developer.huawei.com/repo/'}
}
dependencies {
...
// 增加agcp配置。
classpath 'com.huawei.agconnect:agcp:1.4.2.300'
}
}allprojects {
repositories {
maven { url 'http://developer.huawei.com/repo/'}
}
}
2. 在应用级的build.gradle里面加上SDK依赖
dependencies {
implementation 'com.huawei.hms:arenginesdk: 2.15.0.1'
}
3. 在AndroidManifest.xml文件里面声明系统权限
需要使用的权限包括相机权限和网络权限。
相机权限:android.permission.CAMERA,AR Engine Server能力依赖相机。
网络权限:android.permission.INTERNET,网络访问权限,用于分析接口调用情况,牵引能力持续优化。
<uses-permission android:name="android.permission.CAMERA" />
关键代码说明
1. 运行前验证
检查当前设备是否安装了AR Engine,若已经安装则正常运行,若没有安装,App应主动跳转应用市场,请求安装AR Engine。具体实现代码如下
boolean isInstallArEngineApk = AREnginesApk.isAREngineApkReady(this);
if (!isInstallArEngineApk) {
// ConnectAppMarketActivity.class为跳转应用市场的Activity。
startActivity(new Intent(this, com.huawei.arengine.demos.common.ConnectAppMarketActivity.class));
isRemindInstall = true;
}
2. 创建ARFaceTrackingConfig场景
// 创建ARSession。
mArSession = new ARSession(this);
// 根据要使用的具体场景,选用具体的Config来初始化ARSession。
ARWorldTrackingConfig config = new ARWorldTrackingConfig(mArSession);
3. 添加监听应用传递健康检测状态和进度等信息
mArSession.addServiceListener(new FaceHealthServiceListener() {
@Override
public void handleEvent(EventObject eventObject) {
//FaceHealthCheckStateEvent 向应用传递健康检测状态信息
if (!(eventObject instanceof FaceHealthCheckStateEvent)) {
return;
}
//获取健康检测状态。
final FaceHealthCheckState faceHealthCheckState =
((FaceHealthCheckStateEvent) eventObject).getFaceHealthCheckState();
runOnUiThread(new Runnable() {
@Override
public void run() {
mHealthCheckStatusTextView.setText(faceHealthCheckState.toString());
}
});
}
//handleProcessProgressEvent 健康检测进度
@Override
public void handleProcessProgressEvent(final int progress) {
mHealthRenderManager.setHealthCheckProgress(progress);
runOnUiThread(new Runnable() {
@Override
public void run() {
setProgressTips(progress);
}
});
运行示例应用
1. 将Demo应用安装到测试机。
2. 应用开启之后进入人脸识别,识别过程中会实时将您的识别进度反馈到界面上。
3. 识别成功后将展示您的心率,呼吸率及实时刷新心率波形图信号。
>>访问华为AR-Engine官网,了解更多相关内容
>>获取华为AR-Engine开发指导文档
>>华为机器学习服务开源仓库地址:GitHub、Gitee
点击右上角头像右方的关注,第一时间了解华为移动服务最新技术~
以上是关于如何基于人体人脸跟踪实时监测心率?的主要内容,如果未能解决你的问题,请参考以下文章
人脸识别基于matlab GUI人脸实时检测与跟踪含Matlab源码 673期
人脸识别/安全帽识别AI智能分析网关微信端告警推送如何配置模板消息?
图像检测基于帧差法实现人脸实时检测与跟踪matlab源码含 GUI