tt.getAlgorithmManager收藏我的收藏
收藏
我的收藏获取传入字段对应的算法管理器。目前该接口仅对白名单小程序开放,如需使用,开发者需要至控制台-小程序页面下,进入“能力-能力实验室-小程序能力”,申请AI算法管理器能力。以上仅申请接口权限,无法满足使用条件;能力使用方式及付费问题,详情请联系火山引擎商务咨询。
语法
tt.getAlgorithmManager(options)
参数说明
options 为 object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
width | number | | 是 | 输入图像的宽度 | 2.18.0 |
height | number | | 是 | 输入图像的高度 | 2.18.0 |
useSyncMode | boolean | | 是 | 是否使用同步模式 | 2.18.0 |
requirements | string[] | | 是 | 2.18.0 | |
success | function | | 否 | 接口调用成功的回调函数 | 2.18.0 |
fail | function | | 否 | 接口调用失败的回调函数 | 2.18.0 |
complete | function | | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 2.18.0 |
requirements 的合法值
值 | 说明 | 最低支持版本 |
['skeleton'] | 肢体识别算法对应字段 | 2.18.0 |
['face106'] | 面部 106 点算法对应字段 | 2.18.0 |
['nail'] | 指甲分割算法对应字段 | 2.18.0 |
['foot'] | 足部识别算法对应字段 | 2.18.0 |
['trackingAr'] | 追踪 AR 算法对应字段 | 2.26.0 |
回调成功
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
algorithmManager | 获取的算法管理器 | 2.18.0 | |
errMsg | string | "getAlgorithmManager:success" | 2.18.0 |
回调失败
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
errMsg | string | "getAlgorithmManager:fail " + 详细错误信息 | 2.18.0 |
代码示例
index.js
Page({ data: {}, onLoad: function () { this.cameraContext = tt.createCameraContext(); }, initCanvasConfig() { this.cameraContext = tt.createCameraContext(); this.cameraListener = this.cameraContext.onCameraFrame((frame) => { this.frameWidth = frame.width; this.frameHeight = frame.height; this.canvas.requestAnimationFrame(() => { this.onFrame(frame); }); }); this.cameraListener.start(); }, init() { this.frameWidth = 480; this.frameHeight = 640; if (this.algorithmModule == null) { this.algorithmModule = require("./AlgorithmModule"); this.algorithmModule.initAlgorithm( this.frameWidth, this.frameHeight, this.showAlgorithmResult ); } this.cameraContext = tt.createCameraContext(); this.cameraListener = this.cameraContext.onCameraFrame((frame) => { this.onFrame(frame); }); this.cameraListener.start(); }, onFrame(cameraFrame) { if (this.algorithmModule != null) { this.algorithmModule.onFrame(cameraFrame.data); } }, showAlgorithmResult(algorithmResult) { console.log( "[debug] showAlgorithmResult :: algorithmResult = ", algorithmResult ); }, onError(e) { tt.showModal({ content: "相机出错了:" + e.detail.errMsg, }); }, });
AlgorithmModule.js
let algorithmManager = null; let width, height = null; let cb = null; export function initAlgorithm(_width, _height, onResultFallback) { cb = onResultFallback; width = _width; height = _height; tt.getAlgorithmManager({ width: _width, height: _height, useSyncMode: true, requirements: ["face106"], success: (algMgr) => { console.log("get algorithm Manager ~"); console.log(algMgr); algorithmManager = algMgr.algorithmManager; }, fail: (errMsg) => { console.log(errMsg); }, complete: () => { console.log("get alg mgr complete"); }, }); } export function onFrame(cameraData) { if (algorithmManager != null) { algorithmManager.doExecute({ input: cameraData, width: width, height: height, timeStamp: Date.now() / 1e9, success: (algMgr) => { cb(algMgr); }, fail: (errMsg) => { console.log(errMsg); }, }); } }
Bug & Tip
- •Tip: 传入参数 requirements 目前仅支持单个元素数组。