本示例通过调用AR引擎服务接口,结合AGP,将识别到的点云信息,平面信息等显示在屏幕上。
基于AR引擎实现空间感知能力(ArkTS)
介绍
AR Engine(以下统称AR引擎)助力应用融合虚拟世界与现实世界,打造全新的视觉体验和交互方式。
本示例展示了AR引擎提供的平面检测,运动跟踪,环境跟踪和命中检测能力。
- 运动跟踪能力,可以实时获取设备在空间中任意时刻的位姿。
- 环境跟踪能力,可以跟踪设备周围的平面,辅助开发者实现虚拟物体以场景化的方式逼真地融入现实物理世界。
- 命中检测能力,可以通过点击终端设备屏幕选中现实环境中的兴趣点,与虚拟物体进行交互。
效果预览
ARWorld效果预览
| 应用首页 | 识别平面 | 通过命中检测显示模型 |
|---|---|---|
![]() |
![]() |
![]() |
- 在手机的主屏幕,点击“ARSampleArkts”,启动应用,在主界面可见“ARWorld”按钮。
- 点击“ARWorld”按钮,拉起AR引擎的平面识别界面,对准地面,桌面,墙面等平面缓慢移动扫描,即可识别到平面并绘制到屏幕上。
- 识别出平面后,点击平面上某个点,通过AR引擎提供的命中检测的能力,会在屏幕被点击位置放置一个3D模型。
ARMesh效果预览
| 应用首页 | 识别Mesh网格 | 通过命中检测显示模型 |
|---|---|---|
![]() |
![]() |
![]() |
- 在手机的主屏幕,点击“ARSampleArkts”,启动应用,在主界面可见“ARMesh”按钮。
- 点击“ARMesh”按钮,拉起AR引擎平面识别界面,对准地面,桌面,墙面等平面缓慢移动扫描,即可绘制mesh网格到屏幕上。
- 绘制出mesh网格后,点击网格上某个点,通过AR引擎提供的命中检测的能力,会在屏幕被点击位置放置一个3D模型。
ARDepth效果预览
| 应用首页 | 深度估计信息 |
|---|---|
![]() |
![]() |
- 在手机的主屏幕,点击“ARSampleArkts”,启动应用,在主界面可见“ARDepth”按钮。
- 开启深度深度估计模式,屏幕上即可看见深度估计信息及深度置信度信息。
ARImage效果预览
| 应用首页 | Image模式选择 | 选取跟踪图片 | 跟踪图片(显示预览流) |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 在手机的主屏幕,点击“ARSampleArkts”,启动应用,在主界面可见“ARImage”按钮。
- 选择添加图片跟踪或者使用本地数据库。
- 若选择添加图片,则弹出图片添加窗口,否则直接进入下一步。
- 开始跟踪目标图片,屏幕上可看见蓝色线框框选的目标图片。
ARFace效果预览
| 应用首页 | 识别人脸并渲染 |
|---|---|
![]() |
![]() |
- 在手机的主屏幕,点击“ARSampleArkts”,启动应用,在主界面可见“ARFace”按钮。
- 选择ARFace。
- 进入后可以对着人脸进行扫描。
- 识别到人脸后可以渲染出人脸Mesh。
ARBody效果预览
| 应用首页 | 识别并渲染人体骨骼点 |
|---|---|
![]() |
![]() |
- 在手机的主屏幕,点击“ARSampleArkts”,启动应用,在主界面可见“ARBody”按钮。
- 点击“ARBody”并扫描人体。
- 识别到人体后可以渲染处人体骨骼点。
使用说明
开发者使用DevEco Studio打开本工程,签名后直接在真机设备上运行即可。
工程目录
├──entry/src/main
├──module.json5 // 模块的配置文件
├──ets // ets代码区
│ ├──entryability
│ │ └──EntryAbility.ets // 程序入口类
│ ├──pages
│ │ ├──ARBody.ets // ARBody界面
│ │ ├──ARDepth.ets // ARDepth选择模式界面
│ │ ├──ARFace.ets // ARFace界面
│ │ ├──ARImage.ets // ARImage选择模式界面
│ │ ├──ARImageByAdd.ets // ARImage本地图片模式界面
│ │ ├──ARImageByDatabase.ets // ARImage本地数据库模式界面
│ │ ├──ARMesh.ets // ARMesh界面
│ │ ├──ARWorld.ets // ARWorld界面
│ │ └──Selector.ets // 主界面
│ └──utils // Util工具类
└──resources // 资源文件目录
相关权限
- 获取相机权限:ohos.permission.CAMERA。
- 获取加速度传感器权限:ohos.permission.ACCELEROMETER。
- 获取陀螺仪传感器权限:ohos.permission.GYROSCOPE。
约束与限制
-
开发者可通过接口调用判断当前设备是否支持AR Engine。接口的调用参考方式如下:
import { arEngine, arViewController } from '@kit.AREngine'; let ret: boolean = arViewController.isARTypeSupported(arEngine.ARFeatureType.ARENGINE_FEATURE_TYPE_FACE);若对应接口返回错误码为ARENGINE_ERROR_DEVICE_NOT_SUPPORTED,则表示AR Engine不支持当前设备。
-
HarmonyOS系统:6.1.0 Release及以上。
-
DevEco Studio版本:DevEco Studio 6.1.0 Release及以上。
-
HarmonyOS SDK版本:推荐HarmonyOS 6.1.0 Release SDK及以上。
AR Engine深度估计功能技术局限性及免责声明
-
技术局限性声明:本功能提供的能力,涉及深度估计精度可能受以下因素影响:
- 环境光照条件(例如强光/弱光/反光场景)。
- 物体表面材质特性(例如透明/镜面/单色物体)。
- 设备硬件性能差异(例如摄像头/传感器参数)。
- 动态场景下的实时性限制等。
-
免责声明: 本深度估计仅提供功能,并不构成对产品的质量保证或任何承诺。开发者自主选择是否使用HarmonyOS提供的功能开发应用软件,开发者对应用软件的使用目的、 效果和责任自行负责。若开发用于视障人士避障、残疾人辅助等场景的应用软件,开发者应承担开展多场景压力测试,并建立数据校验机制,特别在安全相关场景需 部署冗余保障方案,并确保应用合法合规的开发和运营。HarmonyOS不承担由此产生的任何直接或间接责任。
深度估计提供的功能:
- 不作为医疗设备或生命安全系统设计。
- 未经认证,不作为医疗辅助设备;不作为医疗器材;未经无障碍设施认证或生命安全认证。
AR Engine高精几何重建功能技术局限性及免责声明
-
技术局限性声明:本功能提供的能力,涉及几何数值精度可能受以下因素影响:
- 环境光照条件(例如强光/弱光/反光场景)。
- 物体表面材质特性(例如透明/镜面/单色物体)。
- 设备硬件性能差异(例如摄像头/传感器参数)。
- 动态场景下的实时性限制等。
-
免责声明: 本高精几何重建仅提供功能,并不构成对产品的质量保证或任何承诺。开发者自主选择是否使用HarmonyOS提供的功能开发应用软件,开发者对应用软件的使用目的、 效果和责任自行负责。若开发用于视障人士避障、残疾人辅助等场景的应用软件,开发者应承担开展多场景压力测试,并建立数据校验机制,特别在安全相关场景需 部署冗余保障方案,并确保应用合法合规的开发和运营。HarmonyOS不承担由此产生的任何直接或间接责任。
高精几何重建提供的功能:
- 不作为医疗设备或生命安全系统设计。
- 未经认证,不作为医疗辅助设备;不作为医疗器材;未经无障碍设施认证或生命安全认证。
AR Engine人脸跟踪功能技术局限性及免责声明
-
技术局限性声明:本功能提供的能力,涉及人脸跟踪精度可能受以下因素影响:
- 环境光照条件(例如强光/弱光/反光场景)。
- 物体表面材质特性(例如透明/镜面/单色物体)。
- 设备硬件性能差异(例如摄像头/传感器参数)。
- 动态场景下的实时性限制等。
-
免责声明: 本人脸跟踪仅提供功能,并不构成对产品的质量保证或任何承诺。开发者自主选择是否使用HarmonyOS提供的功能开发应用软件,开发者对应用软件的使用目的、 效果和责任自行负责。若开发用于视障人士避障、残疾人辅助等场景的应用软件,开发者应承担开展多场景压力测试,并建立数据校验机制,特别在安全相关场景需 部署冗余保障方案,并确保应用合法合规的开发和运营。HarmonyOS不承担由此产生的任何直接或间接责任。
人脸跟踪提供的功能:
- 不作为医疗设备或生命安全系统设计。
- 未经认证,不作为医疗辅助设备;不作为医疗器材;未经无障碍设施认证或生命安全认证。
AR Engine人体跟踪与骨骼关键点识别功能技术局限性及免责声明
-
技术局限性声明:本功能提供的能力,涉及人体跟踪与骨骼关键点识别精度可能受以下因素影响:
- 环境光照条件(例如强光/弱光/反光场景)。
- 物体表面材质特性(例如透明/镜面/单色物体)。
- 设备硬件性能差异(例如摄像头/传感器参数)。
- 动态场景下的实时性限制等。
-
免责声明: 本人体跟踪与骨骼关键点识别仅提供功能,并不构成对产品的质量保证或任何承诺。开发者自主选择是否使用HarmonyOS提供的功能开发应用软件,开发者对应用软件的使用目的、效果和责任自行负责。若开发用于视障人士避障、残疾人辅助等场景的应用软件,开发者应承担开展多场景压力测试,并建立数据校验机制,特别在安全相关场景需部署冗余保障方案,并确保应用合法合规的开发和运营。HarmonyOS不承担由此产生的任何直接或间接责任。
人体跟踪与骨骼关键点识别提供的功能:
- 不作为医疗设备或生命安全系统设计。
- 未经认证,不作为医疗辅助设备;不作为医疗器材;未经无障碍设施认证或生命安全认证。










