首页 > 其他分享 >电影绿幕走进生活?如何基于相芯SDK实现绿幕分割?

电影绿幕走进生活?如何基于相芯SDK实现绿幕分割?

时间:2023-05-30 12:08:04浏览次数:42  
标签:安全区 相芯 背景 绿幕 new SDK

绿幕,是一种广泛应用于电影、电视制作和视频编辑领域的技术。它通过在拍摄或录制过程中使用一块特殊颜色(通常是绿色)的背景布,然后在后期制作中将该颜色替换成其他图像或视频素材。这种技术主要基于颜色键盘合成技术(chroma keying),可以实现在虚拟环境中展示各种场景和效果。

相芯SDK绿幕功能使用图像分割算法将视频或图像中的前景和背景进行分离,具有较高的质量和准确性。对于其中的绿色背景,也能做到准确分离并平滑替代其他背景,从而产生逼真的绿幕效果。同时相芯SDK还具备较高的实时性和效率性,能够在实时或快速处理的情况下实现绿幕效果。相芯SDK支持多平台和其他附加功能的叠加使用,比如绿幕和美颜的叠加使用。

功能介绍

相芯SDK绿幕功能详细介绍:

  1. 安全区:相芯SDK提供的绿幕技术中,安全区指在视频编辑过程中需要保留的区域,以确保前景元素(例如人物或物体)不被意外地裁剪或遮挡。通过使用安全区,用户可以精确控制绿幕效果的应用范围,确保关键的前景元素不受到意外的修改。这对于保持视频的一致性和完整性非常重要,尤其是在涉及人物或需要保留特定物体的场景中。
  2. 背景替换:相芯SDK还支持绿幕背景替换,这项功能利用计算机视觉和图像处理技术,准确识别并分离视频或图像中的绿色背景,然后将其替换为用户自定义的背景。
  3. 相似度参数:相似度参数用于控制背景和前景之间的相似度阈值。较低的相似度阈值会更严格地分离背景和前景,确保准确性,但可能导致一些细节丢失。较高的相似度阈值则可能使得背景和前景的边界模糊,但可以保留更多的细节。用户可以根据需要调整相似度参数,以达到预期的分离效果。
  4. 关键颜色提取:关键颜色提取是指从绿色背景中提取关键色彩信息的过程。在绿幕技术中,绿色通常被用作背景色,因为它在大多数场景中相对较少出现于前景中。关键颜色提取算法可以识别并提取出这个特定的绿色,以便在后续的背景替换过程中准确地分离背景和前景。

更多参数,详见相芯科技官网

2.使用前必查

在项目中使用道具贴纸特效之前,请确保:

  • 已在项目中引入Faceunity SDK,详情请参考Faceunity集成文档。
  • 已申请包含绿幕权限的authpack证书文件。

3.使用步骤

3.1. build.gradle配置

allprojects配置

allprojects {  
    repositories {  
        ...  
        maven { url 'https://maven.faceunity.com/repository/maven-public/' }   
        ...  
  }  
}

dependencies导入依赖

dependencies {
...
implementation 'com.faceunity:core:8.6.0' 
implementation 'com.faceunity:model:8.6.0' 
...
}

3.2构造绿幕对象BgSegGreen

绿幕bundle主要是用来作绿幕抠图使用的,用绿色或蓝色背景,抠图效果会更佳。

加载绿幕道具bundle示例:

BgSegGreen bgSegGreen = new BgSegGreen(new FUBundleData(DemoConfig.BUNDLE_BG_SEG_GREEN));

设置绿幕参数:

bgSegGreen.setSimilarity(BgSegGreenSource.SIMILARITY);//设置相似度
        bgSegGreen.setSmoothness(BgSegGreenSource.SMOOTHNESS);//设置平滑度
        bgSegGreen.setTransparency(BgSegGreenSource.TRANSPARENCY);//设置相似度

3.3构造安全区

相芯绿幕支持构造安全区域,除了内置的安全区之外还支持用户上传自定义图片,安全区域不参与绿幕抠像。

构造自定义安全区图片示例方法如下:

Public static BgSegGreenSafeAreaBean buildSafeAreaCustomBean(String path) {  
        if (path != null && path.trim().length() > 0 && new File(path).exists()) {  
            saveCachePortraitSegment(path);  
            return new BgSegGreenSafeAreaBean(0, BgSegGreenSafeAreaBean.ButtonType.NORMAL1_BUTTON, path,false);  
        }  
        return null;  
}

切换安全区域图片:

void onSafeAreaSelected(BgSegGreenSafeAreaBean bean);

3.4创建自定义背景

除了内置绿幕的5个背景道具以外,相芯还支持用户自定义绿幕背景,灵活打造各种场景下多功能背景。

public static ArrayList<BgSegGreenBackgroundBean> buildBgSegGreenBackground() {  
        ArrayList<BgSegGreenBackgroundBean> backgroundBeans = new ArrayList<>();  
        String fileDir = "bg_seg_green" + File.separator + "sample" + File.separator;  
        backgroundBeans.add(new BgSegGreenBackgroundBean(R.string.cancel, R.mipmap.icon_control_none, null));  
        backgroundBeans.add(new BgSegGreenBackgroundBean(R.string.bg_seg_green_science, R.mipmap.icon_green_science, fileDir + "science.mp4"));  
        return backgroundBeans;  
}

3.5 FURenderKit加载当前特效

加载当前绿幕特效:

public void bindCurrentRenderer() {  
       FUAIKit.getInstance().setMaxFaces(1); // 设置人脸数
       mFURenderKit.setFaceBeauty(FaceBeautyDataFactory.faceBeauty);  //加载美颜
       mFURenderKit.setBgSegGreen(mBgSegGreen);  //加载绿幕
       mBgSegGreenListener.onBackgroundSelected(mBgSegGreenBackgroundBeans.get(mCurrentBackgroundIndex));//加载绿幕背景
       mBgSegGreenListener.onSafeAreaSelected(mBgSegGreenSafeAreaBeans.get(mCurrentSafeAreaIndex));  //加载安全区
   }

4.API参考列表

Module

类名

说明

core

BgSegGreen

绿幕抠像功能业务模型

BgSegGreen

属性

说明

默认值

备注

enable

绿幕抠像开关

true

true表示开启,false表示关闭

isBGRA

BGRA类型

false

背景图片的颜色是否是BGRA类型

colorRGB

锚点颜色

FUColorRGBData(0.0, 255.0, 0.0)

选取的颜色RGB

similarity

相似度

0.518

取值范围0.0-1.0,相似度:色度最大容差,色度最大容差值越大,更多幕景被抠除

smoothness

平滑度

0.22

取值范围0.0-1.0,平滑:色度最小限差,值越大,更多幕景被扣除

transparency

透明度

0.0

取值范围0.0-1.0,透明度:图像前后景透明度过度,值越大,两者边缘处透明过度更平滑

centerPoint

中心坐标

FUCoordinate2DData(0.5, 0.5)

取值范围0.0-1.0,   [0.5,0.5]表示中心点坐标

zoom

缩放程度

1.0

取值范围0.25-4.0

5.总结

更多绿幕功能玩法详见相芯SDK文档,如在接入中遇到问题,可联系相芯科技进行咨询!

标签:安全区,相芯,背景,绿幕,new,SDK
From: https://blog.51cto.com/u_16072036/6377659

相关文章

  • 如何选择适合平台的直播美颜SDK:从技术和商业角度考虑
    直播美颜SDK作为一种技术解决方案,可以帮助直播应用实现优秀的美颜效果,提高用户体验和粘性。然而,如何选择适合你应用的直播美颜SDK,需要从技术和商业角度综合考虑。本文将从这两个角度出发,为你介绍如何选择适合你应用的直播美颜SDK。一、从技术角度考虑1. 美颜算法美颜算法是直播美......
  • 踏入数字天地之中 | Metaworld SDK 2.0进化纵览
    ​ZEGO从未停止对技术边界的探索,我们力图让用户能够更高效、便捷地使用技术去创造价值。 去年8月,ZEGO打造的元宇宙智能互动引擎首次与大家见面,MetaworldSDK作为其中的核心能力组件,囊括了化身(Avatar)、空间打造和交互互动等关键能力。彼时的Metaworld虽然各项能力都已具备,但在......
  • error C1083: 无法打开包括文件:“dxsdkver.h”: No such file or directory
    参考1:https://www.cnblogs.com/AI-Algorithms/p/3778527.html参考2:https://learn.microsoft.com/zh-cn/windows/win32/directx-sdk--august-2009-?redirectedfrom=MSDN参考3:https://www.microsoft.com/en-us/download/details.aspx?id=6812......
  • C#-微信平台SDK有哪些?
    1、Senparc.Weixin(WeixinMPSDK):  盛派C#微信SDK,开源;提供了微信公众平台(订阅号+服务号+小程序+小游戏+小商店+视频号)、企业微信、小程序、微信支付等多个平台的API封装,支持.NETFramework和.NETCore。2、SKIT.FlurlHttpClient.Wechat(SKIT):  封装全部已知的微信API,包......
  • 公网对讲SDK——对讲应用场景
    anyRTC公网对讲SDK的发布,解决了开发者想做公网对讲应用但没有技术的困境;SDK全平台支持的特性,让开发者可以在任何平台接入对讲能力;同时因为包体积小、对业务零入侵等特性被运用到各行各业中,下面咱们就来聊一聊公网对讲SDK的使用场景。公网对讲调度系统公网对讲调度系统行业已经......
  • 公网对讲SDK——对讲应用场景
    anyRTC公网对讲SDK的发布,解决了开发者想做公网对讲应用但没有技术的困境;SDK全平台支持的特性,让开发者可以在任何平台接入对讲能力;同时因为包体积小、对业务零入侵等特性被运用到各行各业中,下面咱们就来聊一聊公网对讲SDK的使用场景。公网对讲调度系统公网对讲调度系统行业已经......
  • 什么是相芯科技滤镜sdk?如何集成相芯滤镜SDK(Android)
    相芯科技sdk是一种基于深度学习技术开发的图像处理工具,能够让开发者轻松实现各种美颜、滤镜、瘦脸、大眼等常见图像增强效果,并且可以高度定制化,满足各种不同用户需求。采用的主要技术包括图像处理、计算机视觉、机器学习和人工智能等。通过这些技术,相芯sdk可以实现丰富的滤镜效果,并......
  • 海康威视SDK - 门禁admin用户密码设置
    门禁/报警主机获取用户信息方法及参数调用方法:NET_DVR_GetAlarmDeviceUser(userId,1,refNET_DVR_ALARM_DEVICE_USER);//HCNetSDK中声明类[DllImport(@"..\..\runtime\hk\HCNetSDK.dll")]publicstaticexternboolNET_DVR_GetAlarmDeviceUser(intlUserID,intlUserIn......
  • LinuxMint 安装 .NET 7 发生No SDKs were found.
    一、环境LinuxMint21.1二、安装方式1.通过系统软件管理器,搜索DotNetSDK安装.net7SDK2.dotnet--info查看.net信息,提示.NETSDKsInstalled:NoSDKswerefound.  3.查看安装程序(1)/usr/lib/dotnet检查/usr/lib/dotnet中,是否存在sdk,sdk-manifests,templates目录?(2)/us......
  • 直播和短视频美颜sdk的开发流程、代码分析
    目前,美颜技术是提高视频质量的重要手段之一,特别是短视频和直播两个行业。本文将介绍其开发流程和代码分析。 一、美颜SDK的开发流程1.需求分析首先我们需要明确的一点就是“需求”,例如:美颜效果、美颜程度、性能要求等。同时,我们需要考虑到不同的设备和网络环境,保证SDK的兼容性和稳......