用AR Engine手部骨骼跟踪能力实现虚拟手表试戴

AR技术的落地应用 , 推动着电商领域的不断升级 , 通过增强现实为用户带来了虚拟与现实结合的AR购物体验 。如AR试衣、AR试鞋、AR试妆等功能的出现让用户在手机上就能体验产品的佩戴效果 , 可以让用户更直观、更真实的了解产品信息 , 提升消费者的购物愉悦感 , 帮助电商应用提高购物转化率 。华为AR Engine也为AR购物提供了实现方案 , 使用手部跟踪能力即可实现虚拟手表试戴 。
效果展示

用AR Engine手部骨骼跟踪能力实现虚拟手表试戴

文章插图
实现方法AR Engine提供手部骨骼跟踪能力 , 可以识别跟踪21个手部关节点的位置和姿态 , 形成手部骨骼模型 。通过手势识别能力 , 可以给AR应用提供交互功能并实现一些趣味玩法 , 比如可以将AR世界中的虚拟物体置放到人的手部更精确的位置 , 如手指尖、手掌心等;还可驱动虚拟手做出更精细的动作 。下面我会展示虚拟手表试戴功能的具体开发步骤 。
集成步骤开发环境要求:JDK 1.8.211及以上 。
安装Android Studio 3.0及以上:
minSdkVersion 26及以上
targetSdkVersion 29(推荐)
compileSdkVersion 29(推荐)
Gradle 6.1.1及以上(推荐)
在华为终端设备上的应用市场下载AR Engine服务端APK(需在华为应用市场 , 搜索“华为AR Engine”)并安装到终端设备 。
测试应用的设备:参见AREngine特性软硬件依赖表 。如果同时使用多个HMS Core的服务 , 则需要使用各个Kit对应的最大值 。
开发准备
  1. 在开发应用前需要在华为开发者联盟网站上注册成为开发者并完成实名认证 , 具体方法请参见帐号注册认证 。
  2. 华为提供了Maven仓集成方式的AR Engine SDK包 , 在开始开发前 , 需要将AR Engine SDK集成到您的开发环境中 。
  3. Android Studio的代码库配置在Gradle插件7.0以下版本、7.0版本和7.1及以上版本有所不同 。请根据您当前的Gradle插件版本 , 选择对应的配置过程 。
  4. 以7.0为例:
打开Android Studio项目级“build.gradle”文件 , 添加Maven代码库 。
在“buildscript > repositories”中配置HMS Core SDK的Maven仓地址 。
buildscript {repositories {google()jcenter()maven {url "https://developer.huawei.com/repo/" }}}打开项目级“settings.gradle”文件 , 配置HMS Core SDK的Maven仓地址
dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {repositories {google()jcenter()maven {url "https://developer.huawei.com/repo/" }}}}
  1. 添加依赖 在“dependencies”中添加如下编译依赖:
dependencies {implementation 'com.huawei.hms:arenginesdk:{version}}应用开发1.运行前验证:检查当前设备是否安装了AR Engine , 若已经安装则正常运行 , 若没有安装 , App应采用合适的方式提醒用户安装AR Engine , 如主动跳转应用市场 , 请求安装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.初始化AR场景:AREngine提供5种场景 , 包括运动跟踪(ARWorldTrackingConfig)、人脸跟踪(ARFaceTrackingConfig)、手部识别(ARHandTrackingConfig)、人体跟踪(ARBodyTrackingConfig)和图像识别(ARImageTrackingConfig) 。

经验总结扩展阅读