# VKSession

基础库 2.20.0 开始支持,低版本需做兼容处理

vision kit 会话对象。

# 属性

# number state

会话状态

state 的合法值

说明 最低版本
0 不可用
1 运行中
2 暂停中
3 初始化中 2.29.0

# Object config

会话配置

属性 类型 说明 最低版本
version string vision kit 版本。 2.22.0
合法值 说明
v1 v1适用于用户在平面场景下,例如桌面,地面,泛平面场景,放置虚拟物体,不提供真实世界距离。用户放置物体时,手机相机倾斜向下对着目标平面点击即可,具有广泛的机型支持
v2 v2提供真实物理距离的 ar 定位功能,提供平面识别功能,用户在平面范围点击放置虚拟物体的功能,具有有限的机型支持。iOS 设备在基础库 2.22.0 开始支持v2。安卓设备在基础库 2.25.1 开始支持v2,另外,安卓v2不支持竖直平面。**使用v2算法需要初始化,移动手机进行左右平移初始化效果最佳。**
track Object 跟踪能力配置,目前不同的跟踪能力之间是互斥的,默认使用平面跟踪能力。需要注意目前 track 中不同的跟踪配置存在互斥关系(比如 marker 跟踪配置和 OSD 跟踪配置不能同时存在),请按需配置。
结构属性 类型 说明 最低版本
plane Object 平面跟踪配置
结构属性 类型 说明
mode number 平面跟踪配置模式
合法值 说明 最低版本
1 检测横向平面
2 检测纵向平面,只有 v2 版本支持 2.22.0
3 检测横向和纵向平面,只有 v2 版本支持 2.22.0
marker boolean marker 跟踪配置,基础库(3.0.0)开始允许同时支持v2的水平面检测能力 2.24.5
OSD boolean OSD 跟踪配置 2.24.5
depth Object 深度识别配置。用法详情指南文档 3.0.0
结构属性 类型 说明 最低版本
mode number 深度识别模式 3.0.0
合法值 说明 最低版本
1 通过摄像头实时检测 3.0.0
2 静态图片检测 3.0.0
face Object 人脸检测配置。用法详情指南文档。安卓微信8.0.25开始支持,iOS微信8.0.24开始支持。 2.25.0
结构属性 类型 说明 最低版本
mode number 人脸检测模式 2.25.0
合法值 说明 最低版本
1 通过摄像头实时检测 2.25.0
2 静态图片检测 2.25.0
OCR Object OCR检测配置。用法详情指南文档 2.27.0
结构属性 类型 说明 最低版本
mode number OCR检测模式 2.27.0
合法值 说明 最低版本
1 通过摄像头实时检测 2.27.0
2 静态图片检测 2.27.0
IDCard Object 身份证检测配置。用法详情指南文档 3.3.0
结构属性 类型 说明 最低版本
mode number 身份证检测模式 3.3.0
合法值 说明 最低版本
2 静态图片检测 3.3.0
body Object 人体检测配置。用法详情指南文档 2.28.0
结构属性 类型 说明 最低版本
mode number 人体检测模式 2.28.0
合法值 说明 最低版本
1 通过摄像头实时检测 2.28.0
2 静态图片检测 2.28.0
hand Object 手势检测配置。用法详情指南文档 2.28.0
结构属性 类型 说明 最低版本
mode number 手势检测模式 2.28.0
合法值 说明 最低版本
1 通过摄像头实时检测 2.28.0
2 静态图片检测 2.28.0
shoe Object 鞋部检测配置。用法详情指南文档 3.2.1
结构属性 类型 说明 最低版本
mode number 鞋部检测模式 3.2.1
合法值 说明 最低版本
1 通过摄像头实时检测 3.2.1
threeDof boolean 提供基础AR功能,输出相机旋转的3个自由度的位姿,利用手机陀螺仪传感器,实现快速稳定的AR定位能力,适用于简单AR场景。 2.28.0
gl WebGLRenderingContext 绑定的 WebGLRenderingContext 对象 2.23.0

# Object cameraSize

相机尺寸

属性 类型 说明
width number 宽度
height number 高度

# 方法

# VKSession.start(VKSessionStartCallback callback)

开启会话。

# VKSession.stop()

停止会话。

# VKSession.destroy()

销毁会话。

# number VKSession.requestAnimationFrame(function callback)

在下次进行重绘时执行。

# VKSession.cancelAnimationFrame(number requestID)

取消由 requestAnimationFrame 添加到计划中的动画帧请求。

# VKFrame VKSession.getVKFrame(number width, number height)

获取帧对象,每调用一次都会触发一次帧分析过程。目前 VKSession 相机的最大帧数是 30 fps,因此调用 getVKFrame 的频率也可以限制在 30 fps,以减少渲染开销。

# Array.<HitTestRes> VKSession.hitTest(number x, number y, Object reset)

触摸检测,v1 版本只支持单平面(即 hitTest 生成一次平面后,后续 hitTest 均不会再生成平面,而是以之前生成的平面为基础进行检测)。如果需要重新识别其他平面,可以在调用此方法时将 reset 参数置为 true。

# number VKSession.addMarker(string path)

添加一个 marker,要求调 wx.createVKSession 时传入的 track.marker 为 true

# VKSession.removeMarker(number markerId)

删除一个 marker,要求调 wx.createVKSession 时传入的 track.marker 为 true

# Array.<VKMarker> VKSession.getAllMarker()

获取所有 marker,要求调 wx.createVKSession 时传入的 track.marker 为 true

# number VKSession.addOSDMarker(string path)

添加一个 OSD marker(one-shot detection marker),要求调 wx.createVKSession 时传入的 track.OSD 为 true

# VKSession.removeOSDMarker(number markerId)

删除一个 OSD marker,要求调 wx.createVKSession 时传入的 track.OSD 为 true

# Array.<VKMarker> VKSession.getAllOSDMarker()

获取所有 OSD marker,要求调 wx.createVKSession 时传入的 track.OSD 为 true

# VKSession.update3DMode(Object object)

更新三维识别相关配置,要求调 wx.createVKSession 时使用 face / hand / body。

# VKSession.updateMaskMode(Object object)

设置裁剪相关配置,要求调 wx.createVKSession 时使用 shoe。

# VKSession.updateOSDThreshold(number threshold)

更新 OSD 识别精确度,要求调 wx.createVKSession 时传入的 track.OSD 为 true

# VKSession.setDepthOccRange(number threshold)

更新 深度遮挡 Occ范围,要求调 wx.createVKSession 时传入 {track: {depth: {mode: 2} } }

# VKSession.detectFace(Object object)

静态图像人脸关键点检测。当 wx.createVKSession 参数传入 {track: {face: {mode: 2} } } 时可用。用法详情指南文档。安卓微信8.0.25开始支持,iOS微信8.0.24开始支持。

# VKSession.detectBody(Object object)

静态图像人体关键点检测。当 wx.createVKSession 参数传入 {track: {body: {mode: 2} } } 时可用。用法详情指南文档

# VKSession.detectHand(Object object)

静态图像手势关键点检测。当 wx.createVKSession 参数传入 {track: {hand: {mode: 2} } } 时可用。用法详情指南文档

# VKSession.detectDepth(Object object)

深度识别。当 wx.createVKSession 参数传入 {track: {depth: {mode: 2} } } 时可用。用法详情指南文档

# VKSession.runOCR(Object object)

静态图像OCR检测。当 wx.createVKSession 参数传入 {track: {OCR: {mode: 2} } } 时可用。用法详情指南文档

# VKSession.on(string eventName, function fn)

监听会话事件。

# VKSession.off(string eventName, function fn)

取消监听会话事件。