一年之计在于春,万物复苏中我们迎来了健身的好时节。作为程序员,常常久坐或伏案,这带来了腰肌劳损、颈椎酸痛等亚健康状况,为此你是否开始制定运动flag?同时希望时刻检测自己的健康指标呢?
不如来体验一下HMS Core AR Engine 服务提供的人体和人脸跟踪能力(目前仅支持人脸跟踪)吧!它通过整合AR核心算法,可以在你运动过程中实时监测心率、呼吸率、面部健康状态、心率波形图信号等健康信息。除了自我健康,开发者们还可以将其集成到不同行业的应用中,比如健身房实时查看人员运动状态;在医院,对病人进行实时查体;在护理行业,实时监测老年人、残障人士的各项指标等,为应用提供全新的视觉体验和交互方式。
实时计算人脸健康信息以及人体关键健康信息,包括心率、呼吸率、面部健康状态、心率波形图信号等。
让终端设备具备对人的理解能力。通过SLAM、三维重建等技术来实现对人脸在现实世界中的三维感知,最终以图像渲染的方式在手机应用端呈现AR的虚实融合效果。
机型具体支持的情况参考管网说明 软硬件依赖表
为了让开发者更好的了解HMS Core AR Engine 服务提供的人体和人脸跟踪能力,这里提供了一个简单的集成案例,教你用快速高效的方式、简单的代码实现demo的运行。
ENABLE_HEALTH_DEVICE 启用健康检测,1 << 6。
HealthParameter 健康检测参数 (心率;呼吸率;人脸属性:年龄,比重;心率波形图信号等)
FaceDetectMode 人脸检测模式 (包括健康检查心率;健康检查呼吸率;健康实时检测;同时启用心率、呼吸率和实时监测模式)
页面效果图:

下面为您介绍如何根据源代码将这个Demo运行起来,以便于了解实现细节。
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/'} }}implementation 'com.huawei.hms:arenginesdk:3.7.0.3':<uses-permission android:name="android.permission.CAMERA" />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);mArSession = new ARSession(this);mArFaceTrackingConfig = new ARFaceTrackingConfig(mArSession);mArFaceTrackingConfig.setEnableItem(ARConfigBase.ENABLE_HEALTH_DEVICE);mArFaceTrackingConfig .setFaceDetectMode(ARConfigBase.FaceDetectMode.HEALTH_ENABLE_DEFAULT.getEnumValue());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 服务详情
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~