跳到主要内容
版本: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 NativeHarmony
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✔️