当前位置: 首页 > 后端技术 > Java

春季健身正逢其时,送你一份人体健康检测攻略

时间:2023-04-02 10:43:48 Java

岁月在于春,万物复苏,我们迎来了健身的好时机。作为一名程序员,经常久坐或久坐办公桌前,带来了腰肌劳损、颈椎疼痛等亚健康状况。您是否开始为此开发运动旗帜?同时,您想时刻监控自己的健康指标吗?不如体验一下HMSCoreAREngine服务提供的人体和人脸追踪能力(目前只支持人脸追踪)!通过集成AR核心算法,在运动过程中实时监测你的心率、呼吸频率、面部健康状态、心率波形信号等健康信息。除了自我健康,开发者还可以将其融入到不同行业的应用中,比如在健身房实时查看人们的运动状态;Item指标等,为应用提供全新的视觉体验和交互方式。1、人脸追踪能力的优势和模型要求实时计算人脸健康信息和人体关键健康信息,包括心率、呼吸率、面部健康状态、心率波形信号等,让终端设备有理解人的能力。通过SLAM、3D重建等技术实现对现实世界中人脸的3D感知,最终以图像渲染的形式在手机应用上呈现AR的虚实融合效果。机型具体支持情况参见管网说明。软硬件依赖表2.Demo应用介绍为了让开发者更好的了解HMSCoreAREngine服务提供的人体和人脸追踪能力,这里给出一个简单的集成案例。教你用简单的代码快速高效的运行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文件中声明系统权限。:4.检查当前设备是否安装了AREngine。如果已安装,它将正常运行。若未安装,App应主动跳转到应用市场请求安装。增强现实引擎。booleanisInstallArEngineApk=AREnginesApk.isAREngineApkReady(this);if(!isInstallArEngineApk&&isRemindInstall){Toast.makeText(this,"请同意安装。",Toast.LENGTH_LONG).show();finish();}if(!isInstallArEngineApk){startActivity(newIntent(this,ConnectAppMarketActivity.class));isRemindInstall=true;}returnAREnginesApk.isAREngineApkReady(this);四、关键代码说明1、调用ARFaceTrackingConfig接口创建人脸追踪ARSession场景并设置人脸检测模式,配置运动追踪AR场景参数,启动运动追踪。mArSession=newARSession(this);mArFaceTrackingConfig=newARFaceTrackingConfig(mArSession);mArFaceTrackingConfig.setEnableItem(ARConfigBase.ENABLE_HEALTH_DEVICE);mArFaceTrackingConfig.setFaceDetectMode(ARConfigBase.FaceDetectMode.HEALTH_ENABLE_DEFAULT.getEnumValue());2.调用FaceHealthServiceListener健康检测事件监听接口,添加一个监控应用,传递健康检测状态和进度等信息。handleProcessProgressEvent()中回调健康检测进度。mArSession.addServiceListener(newFaceHealthServiceListener(){@OverridepublicvoidhandleEvent(EventObjecteventObject){if(!(eventObjectinstanceofFaceHealthCheckStateEvent)){return;}finalFaceHealthCheckStatefaceHealthCheckState=((FaceHealthCheckStateEvent)eventObject).getFaceHealthCheckState();runOnUiThread(newRunnable(){@Overridepublicvoidrun(){mHealthCheckStatusTextView.setText(faceHealthCheckState.toString());}});}@OverridepublicvoidhandleProcessProgressEvent(finalintprogress){mHealthRenderManager.setHealthCheckProgress(progress);runOnUiThread(newRunnable(){@Overridepublicvoidrun(){setProgressTips(progress);}});}});privatevoidsetProgressTips(intprogress){StringprogressTips="processing";if(progress>=MAX_PROGRESS){progressTips="完成";}mProgressTips.setText(progressTips);mHealthProgressBar.setProgress(progress);}实时更新页面数据并显示当前检测结果:mActivity.runOnUiThread(newRunnable(){@Overridepublicvoidrun(){mHealthParamTable.removeAllViews();TableRowheatRateTableRow=initTableRow(ARFace.HealthParameter.PARAMETER_HEART_RATE.toString(),healthParams.getOrDefault(ARFace.HealthParameter.PARAMETER_HEART_RATE,0.0f).toStringPar)addView(heatRateTableRow);TableRowbreathRateTableRow=initTableRow(ARFace.HealthParameter.PARAMETER_BREATH_RATE.toString(),healthParams.getOr.HealthParameter.PARAMETER_BREATH_RATE,0.0f).toString());mHealthParamTable.addView(breathRate);}了解更多HMSCoreAREngine服务了解更多>>访问华为开发者联盟官网获取开发指导文档华为移动服务开源仓库地址:GitHub、Gitee关注我们,第一时间了解HMSCore最新技术资讯~