0


音视频进阶(四):实现视频会议场景的AI背景分割

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 =newZegoEffectsBlurParam();
param.intensity =100;
mEffects.setPortraitSegmentationBackgroundBlurParam(param);
人像分割背景马赛克

调用

enablePortraitSegmentationBackgroundMosaic

接口开启人像分割背景马赛克功能,打开马赛克功能后可调用

setPortraitSegmentationBackgroundMosaicParam

接口设置

ZegoEffectsMosaicParam

对象的 “intensity” 参数参数,调整马赛克的程度。

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

// 开启人像分割背景马赛克
mEffects.enablePortraitSegmentationBackgroundMosaic(true);// 设置人像分割背景马赛克参数ZegoEffectsMosaicParam param =newZegoEffectsMosaicParam();
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 =newZegoEffectsChromaKeyParam();mEffects.setChromaKeyParam(param);

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

绿幕分割背景虚化

调用

enableChromaKeyBackgroundBlur

接口开启绿幕背景虚化功能,打开虚化功能后可调用

setChromaKeyBackgroundBlurParam

接口设置

ZegoEffectsBlurParam

对下的 “intensity” 参数,调整虚化的程度。

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

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

调用

enableChromaKeyBackgroundMosaic

接口开启绿幕背景马赛克功能,打开马赛克功能后可调用

setChromaKeyBackgroundMosaicParam

接口设置

ZegoEffectsMosaicParam

对象的 “intensity” 参数,调整马赛克的程度。

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

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

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

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

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


本文转载自: https://blog.csdn.net/zego_0616/article/details/135004341
版权归原作者 ZEGO即构 所有, 如有侵权,请联系我们删除。

“音视频进阶(四):实现视频会议场景的AI背景分割”的评论:

还没有评论