华为AR Engine是什么?

华为AR Engine服务是一个用于在Android上构建增强现实应用的引擎。基于芯片平台整合AR核心算法,提供了运动跟踪、环境跟踪、人体和人脸跟踪等AR基础能力,通过这些能力可以让您的应用实现虚拟世界与现实世界的融合,为您的应用提供全新的视觉体验和交互方式。AR Engine拥有可实现人体健康检测的能力,包括心率、呼吸率、面部健康状态、心率波形图信号等健康信息。

基于华为AR Engine三大类能力: 运动跟踪环境跟踪人体和人脸跟踪之一的人体人脸跟踪,在运动过程中可以实时监测并呈现您的身体健康。

具体的使用场景

  • 健身房:运动健身实时查看身体状态
  • 医疗:实时查看病人身体状况
  • 护理: 实时监测老年人的各项指标

AR监测的优势

  1. 实时计算人脸健康信息,同时计算人体关键健康信息(心率等)。
  2. 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开发指导文档
>>华为机器学习服务开源仓库地址:GitHubGitee

点击右上角头像右方的关注,第一时间了解华为移动服务最新技术~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐