1 背景分割功能简介

ZegoEffects SDK AI视觉SDK提供背景分割功能,适用于在线教育、视频会议、美发、短视频等多种场景。

2 视频中背景分割功能实现的前提条件

在使用 ZegoEffects SDK AI视觉SDK的背景分割功能前,请确保:

  • 已在项目中集成 ZegoEffects SDK,实现基本的图像处理功能,详情请参考 快速开始 - 集成 SDK。
  • 导入 “SegmentationModel” 模型路径,详情请参考 快速开始 - 导入资源和模型。

3 AI视觉SDK使用步骤

背景分割包括人像分割、绿幕分割,以及背景虚化、背景马赛克等功能。

3.1 人像分割

使用人像分割功能前,请先导入对应的 “SegmentationModel” 模型文件,否则功能无法生效。详情请参考 快速开始 - 导入资源和模型。

  1. 调用 setPortraitSegmentationBackgroundPathsetPortraitSegmentationBackgroundBuffersetPortraitSegmentationBackgroundTexture 接口,设置人像分割使用的背景路径、背景 Buffer 或背景 Texture(三选一)。

    // 设置人像分割使用的背景路径(和设置 Buffer、Texture 的方式三选一即可)
    mEffects.setPortraitSegmentationBackgroundPath("MY_BACKGROUND_PATH", ZegoEffectsScaleMode.ASPECT_FILL);// 设置人像分割使用的背景 Buffer(和设置路径、Texture 的方式三选一即可)
    mEffects.setPortraitSegmentationBackgroundBuffer(buffer, bufferLength, param, ZegoEffectsScaleMode.ASPECT_FILL);// 设置人像分割使用的背景 Texture(和设置路径、Buffer 的方式三选一即可)
    mEffects.setPortraitSegmentationBackgroundTexture(textureID, param, ZegoEffectsScaleMode.ASPECT_FILL);
    
  2. 调用 enablePortraitSegmentation 接口开启人像分割功能。

    // 开启人像分割功能
    mEffects.enablePortraitSegmentation(true);
    

开启人像分割功能后,开发者可以根据需要进一步设置背景虚化、背景马赛克等功能。

人像分割背景虚化

调用 enablePortraitSegmentationBackgroundBlur 接口开启人像分割背景虚化功能,打开虚化功能后可调用 setPortraitSegmentationBackgroundBlurParam 接口设置 ZegoEffectsBlurParam 对象的 “intensity” 参数,调整背景虚化的程度。

开启人像分割背景虚化功能后,会覆盖自定义背景及背景马赛克功能。

// 开启人像分割背景虚化
mEffects.enablePortraitSegmentationBackgroundBlur(true);// 设置人像分割背景虚化参数
ZegoEffectsBlurParam param = new ZegoEffectsBlurParam();
param.intensity = 100;
mEffects.setPortraitSegmentationBackgroundBlurParam(param);

人像分割背景马赛克

调用 enablePortraitSegmentationBackgroundMosaic 接口开启人像分割背景马赛克功能,打开马赛克功能后可调用 setPortraitSegmentationBackgroundMosaicParam 接口设置 ZegoEffectsMosaicParam 对象的 “intensity” 参数参数,调整马赛克的程度。

开启人像分割背景马赛克功能后,会覆盖自定义背景及背景虚化功能。

// 开启人像分割背景马赛克
mEffects.enablePortraitSegmentationBackgroundMosaic(true);// 设置人像分割背景马赛克参数
ZegoEffectsMosaicParam param = new ZegoEffectsMosaicParam();
param.intensity = 100;
mEffects.setPortraitSegmentationBackgroundMosaicParam(param);

3.2 绿幕分割

  1. 调用 setChromaKeyBackgroundPathsetChromaKeyBackgroundBuffersetChromaKeyBackgroundTexture 接口,设置绿幕分割使用自定义背景路径、背景 Buffer 或背景 Texture(三选一)。

    // 设置绿幕分割使用的背景路径(和设置 Buffer、Texture 的方式三选一即可)
    mEffects.setChromaKeyBackgroundPath("MY_BACKGROUND_PATH", ZegoEffectsScaleMode.ASPECT_FILL);// 设置人像分割使用的背景 Buffer(和设置路径、Texture 的方式三选一即可)
    mEffects.setChromaKeyBackgroundBuffer(buffer, bufferLength, param, ZegoEffectsScaleMode.ASPECT_FILL);// 设置人像分割使用的背景 Texture(和设置路径、Buffer 的方式三选一即可)
    mEffects.setChromaKeyBackgroundTexture(textureID, param, ZegoEffectsScaleMode.ASPECT_FILL);
    
  2. 调用 enableChromaKey 接口开启绿幕分割功能,然后调用 setChromaKeyParam 接口设置参数,调整颜色容差、边缘平滑指数等。

    // 开启绿幕分割功能
    mEffects.enableChromaKey(true);// 设置绿幕分割参数
    ZegoEffectsChromaKeyParam param = new ZegoEffectsChromaKeyParam();
    mEffects.setChromaKeyParam(param);
    

开启绿幕分割功能后,开发者可以根据需要进一步设置背景虚化、背景马赛克等功能。

绿幕分割背景虚化

调用 enableChromaKeyBackgroundBlur 接口开启绿幕背景虚化功能,打开虚化功能后可调用 setChromaKeyBackgroundBlurParam 接口设置 ZegoEffectsBlurParam 对下的 “intensity” 参数,调整虚化的程度。

开启绿幕分割背景虚化功能后,会覆盖自定义背景及背景马赛克功能。

// 开启绿幕分割背景虚化
mEffects.enableChromaKeyBackgroundBlur(true);// 设置绿幕分割背景虚化参数
ZegoEffectsBlurParam param = new ZegoEffectsBlurParam();
param.intensity = 100;
mEffects.setChromaKeyBackgroundBlurParam(param);

绿幕分割背景马赛克

调用 enableChromaKeyBackgroundMosaic 接口开启绿幕背景马赛克功能,打开马赛克功能后可调用 setChromaKeyBackgroundMosaicParam 接口设置 ZegoEffectsMosaicParam 对象的 “intensity” 参数,调整马赛克的程度。

开启绿幕分割背景马赛克功能后,会覆盖自定义背景及背景虚化功能。

// 开启绿幕分割背景马赛克
mEffects.enableChromaKeyBackgroundMosaic(true);// 设置绿幕分割背景马赛克参数
ZegoEffectsMosaicParam param = new ZegoEffectsMosaicParam();
param.intensity = 100;
mEffects.setChromaKeyBackgroundMosaicParam(param);

4 获取 Android AI视觉SDK背景分割功能 更多帮助

获取本文AI视觉SDK背景分割功能的开发文档、技术支持,访问即构文档中心IM即时通讯开发文档页,可多平台实现聊天社交IM即时通讯功能;

近期有开发规划的开发者可上即构官网查看,恰逢即构七周年全线音视频产品1折的优惠,联系商务获取"IM即时通讯一个月免费试用 "产品优惠;

Android如何实现实时音视频会议的背景分割相关推荐

  1. 网易实战分享|实时音视频会议场景下QoS策略

    文|网易云信资深流媒体开发工程师 背    景 科技的进步以及通讯基建的高速发展,使得人们对交流的模式要求越来越即时,对交流内容要求越来越具象,这些要求催化着内容交换模式的不断发展,从传统的信件,到短 ...

  2. 实时音视频会议场景下QoS策略

    文|网易智慧企业资深流媒体开发工程师 背    景 科技的进步以及通讯基建的高速发展,使得人们对交流的模式要求越来越即时,对交流内容要求越来越具象,这些要求催化着内容交换模式的不断发展,从传统的信件, ...

  3. 用声网 Android UIKit 为实时视频通话应用添加自定义背景丨声网 SDK 教程

    使用声网 SDK 和 UIKit 创建视频推流应用非常简单,而且声网还有许多功能,可以提高视频通话的质量和便利性.例如,我们可以在视频通话过程中使用虚拟背景,为视频通话增添趣味性. 我们可以通过以下三 ...

  4. 微信小程序集成实时音视频通话功能

    微信小程序集成实时音视频通话功能 背景 在项目的开发当中,很多时候,我们会有音频.视频通话的需求,但是一般都不会自己来写,所以我们就需要借助第三方来实现.尤其是这次的项目开发当中,需要在微信小程序当中 ...

  5. (精华)2020年8月7日 微信小程序 实时音视频通话

    微信小程序集成实时音视频通话功能 背景 在项目的开发当中,很多时候,我们会有音频.视频通话的需求,但是一般都不会自己来写,所以我们就需要借助第三方来实现.尤其是这次的项目开发当中,需要在微信小程序当中 ...

  6. 视频教程-Android WebRTC 实现1V1实时音视频通信-Android

    Android WebRTC 实现1V1实时音视频通信 从2012年开始从事移动互联网方面的开发工作,曾担任去哪儿网开发工程师,搜狗高级开发工程师,拥有多年一线实战开发经验. 擅长语言:Object- ...

  7. 直播、视频会议、屏幕共享—RTC实时音视频各大平台如何选择

    最近在做一个聊天项目,除了简单的图文交互,逐渐接触到了直播,音视频通话,音视频会议等功能.开源的直播和音视频会议有好多解决方案,但是了解得越多,发现音视频服务涉及到的技术越来越深,自己和团队有些hol ...

  8. 视频会议/远程医疗/在线教育网页视频实时音视频通话目前有什么优势和不足?

    很长时间以来,实时通信能力一直是电信类专用设备(如电话.手机)的专有属性.随着各种互联网应用和移动互联网应用的层出不穷,特别是随着用户接入带宽条件的不断改善,许多新的应用都对实时通信服务有着切实的需求 ...

  9. Android端实时音视频开发指南

    简介 yun2win-sdk-Android提供Android端实时音视频完整解决方案,方便客户快速集成实时音视频功能. SDK 提供的能力如下: 发起 加入 AVClient Channel AVM ...

  10. Android实时音视频如何快速实现回声消除

    1 概述 在实时音视频通话时,可以对音频进行 3A 处理,提高通话质量和用户体验.主要包括 AEC(Acoustic Echo Cancelling,回声消除),AGC(Automatic Gain ...

最新文章

  1. 程序员进阶之算法练习:LeetCode专场
  2. 智慧医疗解决医生“带病工作、超负荷工作”
  3. boost信号量 boost::interprocess::interprocess_semaphore的用法
  4. java 输出 三角形_Java实现输出三角形
  5. max的贴图烘焙技术简易流程
  6. .netframework3.5 中TimeZoneInfo 类的使用
  7. 12c oracle 激活_Windows运维之Windows server 2016 安装及ORACLE 12C 安装
  8. mysql压力写入测试_mysql压力测试工具
  9. Animation Studio插件怎么用?Nitrozme Animation Studio Packages Mac(AE插件拓展包) 安装教程
  10. chap01 .net 基本框架介绍
  11. 工程验收工作笔记0002---可以提供等保服务的几个平台
  12. Windows下Goland的环境搭建
  13. 为什么说车联网安全将成为热门产业
  14. [spark]Spark2.4.6用bulkload写入Hbase1.3.1表的多列
  15. CAD增强属性块的还原
  16. 为什么公司宁愿花 15k 重招一个新人,也不愿加薪 5k 留住老程序员?
  17. 17行python代码轻松搞定堆糖网所有小姐姐图片
  18. Linux-各种UID
  19. 【项目实战-MATLAB】:基于机器学习的虹膜识别系统设计
  20. termux获取sd卡读写权限_原来是用错了读卡器,雷克沙lexar 1667X 真实读写性能测试...

热门文章

  1. 使用 vue-waterfall2插件 vue 瀑布流
  2. 关于travis scott的网名_【游戏网名】微信情侣名字情侣专用2020 霸气秀恩爱的情侣网名...
  3. 云服务器查看物理MAC地址的方法
  4. 邮件安全证书(S/MIME),如何申请邮件证书
  5. linux 退出vi报e37,vim模式下报错E37: No write since last change (add ! to override)
  6. php mysql webim_webim(icomet) 使用
  7. 【图像配准】基于光流场算法Horn_Schunck和Brox及Lucas_Kanade实现医学图像配准matlab代码
  8. python长整型怎么用_长整型 python
  9. C#判断是否是节假日
  10. PAT乙级1068 万绿丛中一点红(测试点3、测试点5)