使用人像分割
注意:
虚拟背景目前仅支持 Web 端及小程序直播场景 native 模式接入。
设置背景
SDK 支持设置模糊背景、图片背景,支持在初始化参数中透传:
const config = {module: {beautify: true, // 是否启用美颜模块,启用后可以使用美颜、美妆、贴纸等功能segmentation: true // 是否启用人像分割模块,启用后可以使用背景功能segmentationLevel: 0 // 1.0.19 及以上版本开始支持切换背景分割模型},auth: authData, // 鉴权参数input: stream, // input传输入流beautify: { // 初始化美颜参数(可选)whiten: 0.1,dermabrasion: 0.3,eye: 0.2,chin: 0,lift: 0.1,shave: 0.2},background: {type: 'blur' // 模糊背景}}const sdk = new ArSdk(// 传入一个 config 对象用于初始化 sdkconfig)
SDK 也支持修改背景:
sdk.setBackground({type: 'image', // 图片背景src: 'https://webar-static.tencent-cloud.com/assets/background/1.jpg'})
SDK 支持 video 类型动态背景(1.0.23 版本开始支持):
sdk.setBackground({type: 'video', // 视频动态背景src: 'https://webar-static.tencent-cloud.com/assets/background/video-bg-1.mp4',})
设置边缘模糊程度(1.0.25 版本开始支持):
sdk.setBackground({type: 'image', // 图片背景src: 'https://webar-static.tencent-cloud.com/assets/background/1.jpg',edgeBlur: '6', // 取值范围 0-10,数值越低,边缘切割的越锐利,模糊程度越低。})
透明背景
SDK 在部分浏览器中支持透明背景:
sdk.setBackground({type: 'transparent'})
注意:
由于浏览器的兼容性问题,请注意以下几点:
人像分割同时支持移动端及桌面端浏览器。
仅能在本地处理并展示透明背景,WebRTC 不支持编码透明通道,推流会使透明背景失效。
透明背景效果仅支持桌面端的 Chrome/Firefox,桌面端 Safari 及 iOS 端均不支持。
1.0.19 及以上版本开始支持切换背景分割模型,参数支持:0、1、2。
level 0 的性能最好,但分割效果相对一般。
level 1 的效果和性能均适中。
level 2的分割效果最好,推理耗时最长,适合对分割效果要求高且硬件性能较好的场景。