• Android如何实现实时音视频会议的背景分割


    1 背景分割功能简介

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

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

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

    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);
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    2. 调用 enablePortraitSegmentation 接口开启人像分割功能。

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

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

    人像分割背景虚化

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

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

    // 开启人像分割背景虚化
    mEffects.enablePortraitSegmentationBackgroundBlur(true);
    
    // 设置人像分割背景虚化参数
    ZegoEffectsBlurParam param = new ZegoEffectsBlurParam();
    param.intensity = 100;
    mEffects.setPortraitSegmentationBackgroundBlurParam(param);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    人像分割背景马赛克

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

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

    // 开启人像分割背景马赛克
    mEffects.enablePortraitSegmentationBackgroundMosaic(true);
    
    // 设置人像分割背景马赛克参数
    ZegoEffectsMosaicParam param = new ZegoEffectsMosaicParam();
    param.intensity = 100;
    mEffects.setPortraitSegmentationBackgroundMosaicParam(param);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    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);
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    2. 调用 enableChromaKey 接口开启绿幕分割功能,然后调用 setChromaKeyParam 接口设置参数,调整颜色容差、边缘平滑指数等。

      // 开启绿幕分割功能
      mEffects.enableChromaKey(true);
      
      // 设置绿幕分割参数
      ZegoEffectsChromaKeyParam param = new ZegoEffectsChromaKeyParam();
      mEffects.setChromaKeyParam(param);
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

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

    绿幕分割背景虚化

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

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

    // 开启绿幕分割背景虚化
    mEffects.enableChromaKeyBackgroundBlur(true);
    
    // 设置绿幕分割背景虚化参数
    ZegoEffectsBlurParam param = new ZegoEffectsBlurParam();
    param.intensity = 100;
    mEffects.setChromaKeyBackgroundBlurParam(param);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    绿幕分割背景马赛克

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

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

    // 开启绿幕分割背景马赛克
    mEffects.enableChromaKeyBackgroundMosaic(true);
    
    // 设置绿幕分割背景马赛克参数
    ZegoEffectsMosaicParam param = new ZegoEffectsMosaicParam();
    param.intensity = 100;
    mEffects.setChromaKeyBackgroundMosaicParam(param);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

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

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

  • 相关阅读:
    前端学习笔记
    R语言【数据管理】
    D. The Enchanted Forest
    大语言模型(LLM)综述(六):大型语言模型的基准和评估
    chromium 53 chrome 各个版本发布功能列表(85-108)
    《强化学习周刊》第69期:ICLR2023强化学习论文推荐、MIT实现自动调整内在奖励的强化学习...
    Redis 过期删除策略和内存淘汰策略
    C++前缀和算法应用:矩形区域不超过 K 的最大数值和
    阿里云iot haas python连接esp32;esp32物联网设备上报信息及云端信息获取;远程控制设备自带led熄灭;网页界面交互远程控制
    docker network怎么创建桥接网络
  • 原文地址:https://blog.csdn.net/ZEGO123/article/details/126589069