Skip to main content
Version: 3.x

VKSession

vision kit 会话对象

支持情况:

参考文档

方法​

参数类型说明
statekeyof IState会话状态
configIConfig会话配置
cameraSizeISize相机尺寸

addMarker​

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

支持情况:

参考文档

(path: string) => number
参数类型说明
pathstring图片路径,目前只支持本地用户图片

addOSDMarker​

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

支持情况:

参考文档

(path: string) => number
参数类型说明
pathstring图片路径,目前只支持本地用户图片

cancelAnimationFrame​

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

支持情况:

参考文档

(requestID: number) => void
参数类型
requestIDnumber

destroy​

销毁会话

支持情况:

参考文档

() => void

detectBody​

静态图像人体关键点检测。当 Taro.createVKSession 参数传入 {track: {body: {mode: 2} } } 时可用。

支持情况:

参考文档

(option: IDetectBodyOption) => void
参数类型
optionIDetectBodyOption

detectDepth​

深度识别。当 Taro.createVKSession 参数传入 {track: {depth: {mode: 2} } } 时可用。

支持情况:

参考文档

(option: IDetectDepthOption) => void
参数类型
optionIDetectDepthOption

detectFace​

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

支持情况:

参考文档

(option: IDetectFaceOption) => void
参数类型
optionIDetectFaceOption

detectHand​

静态图像手势关键点检测。当 Taro.createVKSession 参数传入 {track: {hand: {mode: 2} } } 时可用。

支持情况:

参考文档

(option: IDetectHandOption) => void
参数类型
optionIDetectHandOption

getAllMarker​

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

支持情况:

参考文档

() => IMarker[]

getAllOSDMarker​

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

支持情况:

参考文档

() => IOSDMarker[]

getVKFrame​

获取帧对象,每调用一次都会触发一次帧分析过程

支持情况:

参考文档

(width: number, height: number) => VKFrame
参数类型说明
widthnumber宽度
heightnumber高度

hitTest​

触摸检测,v1 版本只支持单平面(即 hitTest 生成一次平面后,后续 hitTest 均不会再生成平面,而是以之前生成的平面为基础进行检测)。

如果需要重新识别其他平面,可以在调用此方法时将 reset 参数置为 true。

支持情况:

参考文档

(x: number, y: number, reset?: boolean) => IHitTestResult[]
参数类型说明
xnumber相对视窗的横坐标,取值范围为 [0, 1],0 为左边缘,1 为右边缘
ynumber相对视窗的纵坐标,取值范围为 [0, 1],0 为上边缘,1 为下边缘
resetboolean是否需要重新识别其他平面,v2 版本不再需要此参数

off​

取消监听会话事件。

支持情况:

参考文档

(eventName: string, fn: TaroGeneral.EventCallback) => void
参数类型说明
eventNamestring事件名称
fnTaroGeneral.EventCallback事件监听函数

on​

监听会话事件。

支持情况:

参考文档

(eventName: string, fn: TaroGeneral.EventCallback) => void
参数类型说明
eventNamestring事件名称
fnTaroGeneral.EventCallback事件监听函数

removeMarker​

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

支持情况:

参考文档

(markerId: number) => number
参数类型说明
markerIdnumbermarker id

removeOSDMarker​

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

支持情况:

参考文档

(markerId: number) => number
参数类型说明
markerIdnumbermarker id

requestAnimationFrame​

在下次进行重绘时执行。

支持情况:

参考文档

(callback: TaroGeneral.TFunc) => number
参数类型说明
callbackTaroGeneral.TFunc执行函数

runOCR​

静态图像 OCR 检测。当 Taro.createVKSession 参数传入 {track: {OCR: {mode: 2} } } 时可用。

支持情况:

参考文档

(option: IRunOCROption) => void
参数类型
optionIRunOCROption

start​

开启会话。

支持情况:

参考文档

(callback: (status: keyof IStartStatus) => void) => void
参数类型说明
callback(status: keyof IStartStatus) => void开启会话回调

stop​

停止会话。

支持情况:

参考文档

() => void

update3DMode​

开启 3D 模式

支持情况:

参考文档

(open3d: boolean) => void
参数类型说明
open3dboolean是否开启

updateOSDThreshold​

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

支持情况:

参考文档

(threshold: number) => void
参数类型说明
thresholdnumber阈值

参数​

IState​

state 的合法值

参数说明
0不可用
1运行中
2暂停中
3初始化中

IConfig​

会话配置

参数类型说明
versionkeyof IVersion不可用
trackITrack运行中
markerbooleanmarker 跟踪配置,基础库(3.0.0)开始允许同时支持v2的水平面检测能力
OSDbooleanOSD 跟踪配置
depthIDepth深度识别配置
faceIFace人脸检测配置。安卓微信8.0.25开始支持,iOS微信8.0.24开始支持。
OCRIOCROCR 检测配置。
bodyIBody人体检测配置。
handIHand手势检测配置。
threeDofboolean提供基础AR功能,输出相机旋转的3个自由度的位姿,利用手机陀螺仪传感器,实现快速稳定的AR定位能力,适用于简单AR场景。
glWebGLRenderingContext绑定的 WebGLRenderingContext 对象

IVersion​

vision kit 版本

参数说明
v1旧版本
v2v2 版本,目前只有 iOS 基础库 2.22.0 以上支持

ITrack​

跟踪配置

参数类型说明
planeIPlane平面跟踪配置

IPlane​

平面跟踪配置

参数类型说明
modekeyof IPlaneMode平面跟踪配置模式

IPlaneMode​

平面跟踪配置模式合法值

参数说明
1检测横向平面
2检测纵向平面,只有 v2 版本支持
3检测横向和纵向平面,只有 v2 版本支持

IDepth​

深度识别配置

参数类型
modekeyof IDepthMode

IDepthMode​

深度识别模式

参数说明
1通过摄像头实时检测
2静态图片检测

IFace​

人脸检测模式

参数类型
modekeyof IFaceMode

IFaceMode​

人脸检测模式

参数说明
1通过摄像头实时检测
2静态图片检测

IOCR​

OCR 检测配置

参数类型
modekeyof IOCRMode

IOCRMode​

OCR 检测模式

参数说明
1通过摄像头实时检测
2静态图片检测

IBody​

人体检测模式

参数类型
modekeyof IBodyMode

IBodyMode​

人体检测模式

参数说明
1通过摄像头实时检测
2静态图片检测

IHand​

手势检测配置

参数类型
modekeyof IHandMode

IHandMode​

手势检测模式

参数说明
1通过摄像头实时检测
2静态图片检测

ISize​

相机尺寸

参数类型说明
widthnumber宽度
heightnumber高度

IDetectBodyOption​

参数类型必填说明
frameBufferArrayBuffer是人脸图像像素点数据,每四项表示一个像素点的 RGBA
widthnumber是图像宽度
heightnumber是图像高度
scoreThresholdnumber否评分阈值。正常情况传入 0.8 即可。默认值 0.8
sourceTypekeyof ISourceType否图像源类型。正常情况传入 1 即可。当输入的图片是来自一个连续视频的每一帧图像时,sourceType 传入 0 会得到更优的效果。默认值1

ISourceType​

图像源类型。

参数说明
1表示输入的图片是随机的图片
0表示输入的图片是来自一个连续视频的每一帧图像

IDetectDepthOption​

参数类型说明
frameBufferArrayBuffer人需要识别深度的图像像素点数据,每四项表示一个像素点的 RGBA
widthnumber图像宽度
heightnumber图像高度

IDetectFaceOption​

参数类型必填说明
frameBufferArrayBuffer是人脸图像像素点数据,每四项表示一个像素点的 RGBA
widthnumber是图像宽度
heightnumber是图像高度
scoreThresholdnumber否评分阈值。正常情况传入 0.8 即可。默认值 0.8
sourceTypekeyof ISourceType否图像源类型。正常情况传入 1 即可。当输入的图片是来自一个连续视频的每一帧图像时,sourceType 传入 0 会得到更优的效果。默认值1
modelModelkeyof IModelModel否算法模型类型。正常情况传入 1 即可。0、1、2 分别表示小、中、大模型,模型越大识别准确率越高,但资源占用也越高。建议根据用户设备性能进行选择。

IModelModel​

算法模型类型

参数说明
0小模型
1中模型
2大模型

IDetectHandOption​

参数类型必填说明
frameBufferArrayBuffer是人脸图像像素点数据,每四项表示一个像素点的 RGBA
widthnumber是图像宽度
heightnumber是图像高度
scoreThresholdnumber否评分阈值。正常情况传入 0.8 即可。默认值0.8
algoModekeyof IAlgoMode否算法检测模式

IAlgoMode​

算法检测模式

参数说明
0检测模式,输出框和点
1手势模式,输出框和手势分类
2结合0和1模式,输出框、点、手势分类

IMarker​

参数类型说明
markerIdnumbermarker id
pathstring图片路径

IOSDMarker​

OSD marker

参数类型说明
markerIdnumbermarker id
pathstring图片路径

IRunOCROption​

参数类型说明
frameBufferArrayBuffer待识别图像的像素点数据,每四项表示一个像素点的 RGBA
widthnumber图像宽度
heightnumber图像高度

IHitTestResult​

hitTest 检测结果

参数类型说明
transformFloat32Array包含位置、旋转、放缩信息的矩阵,以列为主序

IStartStatus​

start status 的合法值

参数说明
0成功
2000000系统错误
2000001参数错误
2000002设备不支持
2000003系统不支持
2003000会话不可用
2003001未开启系统相机权限
2003002未开启小程序相机权限

API 支持度​

API微信小程序H5React NativeHarmonyASCF元服务
VKSession✔️
VKSession.addMarker✔️
VKSession.addOSDMarker✔️
VKSession.cancelAnimationFrame✔️
VKSession.destroy✔️
VKSession.detectBody✔️
VKSession.detectDepth✔️
VKSession.detectFace✔️
VKSession.detectHand✔️
VKSession.getAllMarker✔️
VKSession.getAllOSDMarker✔️
VKSession.getVKFrame✔️
VKSession.hitTest✔️
VKSession.off✔️
VKSession.on✔️
VKSession.removeMarker✔️
VKSession.removeOSDMarker✔️
VKSession.requestAnimationFrame✔️
VKSession.runOCR✔️
VKSession.start✔️
VKSession.stop✔️
VKSession.update3DMode✔️
VKSession.updateOSDThreshold✔️