春天健身正当时,送你一份人体健康检测指南

Posted 华为移动服务

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了春天健身正当时,送你一份人体健康检测指南相关的知识,希望对你有一定的参考价值。

一年之计在于春,万物复苏中我们迎来了健身的好时节。作为程序员,常常久坐或伏案,这带来了腰肌劳损、颈椎酸痛等亚健康状况,为此你是否开始制定运动flag?同时希望时刻检测自己的健康指标呢?

不如来体验一下HMS Core AR Engine 服务提供的人体和人脸跟踪能力(目前仅支持人脸跟踪)吧!它通过整合AR核心算法,可以在你运动过程中实时监测心率、呼吸率、面部健康状态、心率波形图信号等健康信息。除了自我健康,开发者们还可以将其集成到不同行业的应用中,比如健身房实时查看人员运动状态;在医院,对病人进行实时查体;在护理行业,实时监测老年人、残障人士的各项指标等,为应用提供全新的视觉体验和交互方式。

一、 人脸跟踪能力的优点及机型要求

  1. 实时计算人脸健康信息以及人体关键健康信息,包括心率、呼吸率、面部健康状态、心率波形图信号等。

  2. 让终端设备具备对人的理解能力。通过SLAM、三维重建等技术来实现对人脸在现实世界中的三维感知,最终以图像渲染的方式在手机应用端呈现AR的虚实融合效果。

  3. 机型具体支持的情况参考管网说明 软硬件依赖表

二、 Demo应用介绍

为了让开发者更好的了解HMS Core AR Engine 服务提供的人体和人脸跟踪能力,这里提供了一个简单的集成案例,教你用快速高效的方式、简单的代码实现demo的运行。

  • ENABLE_HEALTH_DEVICE 启用健康检测,1 << 6。

  • HealthParameter 健康检测参数 (心率;呼吸率;人脸属性:年龄,比重;心率波形图信号等)

  • FaceDetectMode 人脸检测模式 (包括健康检查心率;健康检查呼吸率;健康实时检测;同时启用心率、呼吸率和实时监测模式)

页面效果图:

下面为您介绍如何根据源代码将这个Demo运行起来,以便于了解实现细节。

三、关键步骤说明

1. 在项目级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依赖。

implementation 'com.huawei.hms:arenginesdk:3.7.0.3'

3. 在androidManifest.xml文件里面声明系统权限。

:<uses-permission android:name="android.permission.CAMERA" />

4. 检查当前设备是否安装了AR Engine,若已经安装则正常运行,若没有安装,App应主动跳转应用市场,请求安装AR Engine。

boolean isInstallArEngineApk = AREnginesApk.isAREngineApkReady(this);
if (!isInstallArEngineApk && isRemindInstall) 
    Toast.makeText(this, "Please agree to install.", Toast.LENGTH_LONG).show();
    finish();

if (!isInstallArEngineApk) 
    startActivity(new Intent(this, ConnectAppMarketActivity.class));
    isRemindInstall = true;

return AREnginesApk.isAREngineApkReady(this);

四、 关键代码说明

1. 调用ARFaceTrackingConfig接口,创建人脸跟踪ARSession场景,设置人脸检测模式,配置运动跟踪AR场景参数、启动运动跟踪。

mArSession = new ARSession(this);
mArFaceTrackingConfig = new ARFaceTrackingConfig(mArSession);
mArFaceTrackingConfig.setEnableItem(ARConfigBase.ENABLE_HEALTH_DEVICE);
mArFaceTrackingConfig
    .setFaceDetectMode(ARConfigBase.FaceDetectMode.HEALTH_ENABLE_DEFAULT.getEnumValue());

2. 调用FaceHealthServiceListener 健康检测事件监听接口,添加监听应用传递健康检测状态和进度等信息。在handleProcessProgressEvent()中回调健康检测进度。

mArSession.addServiceListener(new FaceHealthServiceListener() 
    @Override
    public void handleEvent(EventObject eventObject) 
        if (!(eventObject instanceof FaceHealthCheckStateEvent)) 
            return;
        
        final FaceHealthCheckState faceHealthCheckState =
            ((FaceHealthCheckStateEvent) eventObject).getFaceHealthCheckState();
        runOnUiThread(new Runnable() 
            @Override
            public void run() 
                mHealthCheckStatusTextView.setText(faceHealthCheckState.toString());
            
        );
    
    @Override
    public void handleProcessProgressEvent(final int progress) 
        mHealthRenderManager.setHealthCheckProgress(progress);
        runOnUiThread(new Runnable() 
            @Override
            public void run() 
                setProgressTips(progress);
            
        );
    
); 
private void setProgressTips(int progress) 
    String progressTips = "processing";
    if (progress >= MAX_PROGRESS) 
        progressTips = "finish";
    
    mProgressTips.setText(progressTips);
    mHealthProgressBar.setProgress(progress);

实时更新页面数据,展示当前检测结果:

mActivity.runOnUiThread(new Runnable() 
    @Override
    public void run() 
        mHealthParamTable.removeAllViews();
        TableRow heatRateTableRow = initTableRow(ARFace.HealthParameter.PARAMETER_HEART_RATE.toString(),
            healthParams.getOrDefault(ARFace.HealthParameter.PARAMETER_HEART_RATE, 0.0f).toString());
        mHealthParamTable.addView(heatRateTableRow);
        TableRow breathRateTableRow = initTableRow(ARFace.HealthParameter.PARAMETER_BREATH_RATE.toString(),
            healthParams.getOrDefault(ARFace.HealthParameter.PARAMETER_BREATH_RATE, 0.0f).toString());
        mHealthParamTable.addView(breathRateTableRow);
    
); 

欲了解更多HMS Core AR Engine 服务详情

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

以上是关于春天健身正当时,送你一份人体健康检测指南的主要内容,如果未能解决你的问题,请参考以下文章

你真的会 Vue 吗?送你一份 Vue 进阶指南

使用ESP32 + HaaS Python打造运动心率检测系统 云上实时守护运动健康

送你一份perl书单

如何基于人体人脸跟踪实时监测心率?

送你一份 Nginx 最佳入门手册

金 3 银 4,送你一份前端面试宝典