扫一扫咨询方案
首页
登录/注册

{user.username}

ID: {user.id}

模板 SDK 文档

  • 云渲染

    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK

    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK

    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程

    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
产品简介
安卓端 SDK
iOS SDK
服务端 SDK
开发指南
Demo 下载
用户常见问题
首页 > iOS SDK > 人像抠图功能

人像抠图功能

更新时间 : 2021-12-22 18:08:19

人像抠图

抠图相关动态库及模型文件请向商务人员索取

工程中配置
添加
iOSseg.framework 抠图sdk
导入模板或剪辑SDKsdk集成步骤
并设置为Embed & Sign

添加Portrait.mnn(抠图依赖文件,竖屏)到工程中
添加mnn.metalib(metal功能依赖文件)到Bundle Resource
抠图sdk接入指南

抠图metal开启文件

代码示例

#import <VEVideoSdk/VEVideoSdk.h>
在使用之前开启SDK中的抠图功能 
typedef enum : NSUInteger {
    CPUEvent = 0,
    GPUEvent = 1
} MattingEvent;
// 在低端机型中,建议使用cpu计算渲染,包括8plus以下机型
[SXTemplate openPortaitMatting:CPUEvent];//抠图

/*修改扣图等级 
初始化后,可以随时改变运行等级。输入level为int 0~9(0,1,2,3,4,5,6,7,8,9)十个等级,0最快,9最慢
每次改变等级,或换不同分辨率的图像或视频去预测时,第一帧预测的速度会略慢几ms到几十ms,后面正常
 经过测试,低端机型抠图效果,使用等级0为测试标准,相机中测试为每秒10帧左右,7plus为每秒20帧左右,8plus为27帧左右每秒
建议:低端机型使用cpu作为相机和抠图的计算方式,高端机型(8plus以上机型,不包括8plus),可以根据实际渲染时间和效果选择gpu渲染,在iphone11中测试,等级0依然为cpu相机抠图比较快,但是等级9中gpu表现出了更好的性能*/
 + (BOOL)changePortaitLevel:(int)level; 

//单张图片扣图 
@param image 传递需要扣图的UIImage 
@return 返回扣图完成的UIImage  
+ (UIImage *)meetingImage:(UIImage *)image;

相机中开启抠像功能,必须添加相机模板后才能使用

[mTemplate.camera setMattingEnabled:true];//抠像

抠像功能代码示例

#import <SXVideoEnging/SXVideoEnging.h>

SXCamera *camera = [[SXCamera alloc] initWithSize:SXCameraSize720 frameRate:SXCameraFrameRate30 position:SXCameraPositionBack type:SXCameraSourceTypeAudioAndVideo];
SXTemplate *mTemplate = [[SXTemplate alloc] initWithWidth:720 height:1280 frameRate:20 camera:camera];

SXTemplatePlayer *mPlayer = [[SXTemplatePlayer alloc] initWithTemplate:_mTemplate audioPath:nil];
mPlayer.delegate = self;
UIView *playView = [mPlayer getPlayerView];
int videoWidth = [mTemplate mainCompWidth];
int videoHeight = [mTemplate mainCompHeight];
CGFloat playerScale = self.view.bounds.size.height / videoHeight;
playView.bounds = CGRectMake(0, 0, videoWidth * playerScale, self.view.bounds.size.height);
    if (isIphoneX) {
        playView.bounds = CGRectMake(0, 0, videoWidth * playerScale * 0.84, videoWidth * playerScale / 9 * 16 * 0.84);
    }
playView.center = CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height / 2);
if (isIphoneX) {
    playView.top += 25;
}
[self.view addSubview:playView];
[self.view sendSubviewToBack:playView];

[mTemplate commit];

[mPlayer start];

[camera start];

SXCameraTemplate *cameraTemplate = [[SXCameraTemplate alloc] initWithFilePath:@"相机模板路径"];
mTemplate.cameraTemplate = cameraTemplate;
[mTemplate.camera setMattingEnabled:true];//抠像

模板中的抠图功能,素材替换中开启抠图功能
代码示例

[_resourcePath addObject:@{
              @"main_file": asset.editModel.assetModel.mAssetFiles.firstObject, 
              @"matting": @(asset.editModel.isFaceOpenMatting), //抠图功能开启字段,传入bool值 true和 false 
}];
首页 > iOS SDK > 人像抠图功能
人像抠图功能
更新时间 : 2021-12-22 18:08:19
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

人像抠图

抠图相关动态库及模型文件请向商务人员索取

工程中配置
添加
iOSseg.framework 抠图sdk
导入模板或剪辑SDKsdk集成步骤
并设置为Embed & Sign

添加Portrait.mnn(抠图依赖文件,竖屏)到工程中
添加mnn.metalib(metal功能依赖文件)到Bundle Resource
抠图sdk接入指南

抠图metal开启文件

代码示例

#import <VEVideoSdk/VEVideoSdk.h>
在使用之前开启SDK中的抠图功能 
typedef enum : NSUInteger {
    CPUEvent = 0,
    GPUEvent = 1
} MattingEvent;
// 在低端机型中,建议使用cpu计算渲染,包括8plus以下机型
[SXTemplate openPortaitMatting:CPUEvent];//抠图

/*修改扣图等级 
初始化后,可以随时改变运行等级。输入level为int 0~9(0,1,2,3,4,5,6,7,8,9)十个等级,0最快,9最慢
每次改变等级,或换不同分辨率的图像或视频去预测时,第一帧预测的速度会略慢几ms到几十ms,后面正常
 经过测试,低端机型抠图效果,使用等级0为测试标准,相机中测试为每秒10帧左右,7plus为每秒20帧左右,8plus为27帧左右每秒
建议:低端机型使用cpu作为相机和抠图的计算方式,高端机型(8plus以上机型,不包括8plus),可以根据实际渲染时间和效果选择gpu渲染,在iphone11中测试,等级0依然为cpu相机抠图比较快,但是等级9中gpu表现出了更好的性能*/
 + (BOOL)changePortaitLevel:(int)level; 

//单张图片扣图 
@param image 传递需要扣图的UIImage 
@return 返回扣图完成的UIImage  
+ (UIImage *)meetingImage:(UIImage *)image;

相机中开启抠像功能,必须添加相机模板后才能使用

[mTemplate.camera setMattingEnabled:true];//抠像

抠像功能代码示例

#import <SXVideoEnging/SXVideoEnging.h>

SXCamera *camera = [[SXCamera alloc] initWithSize:SXCameraSize720 frameRate:SXCameraFrameRate30 position:SXCameraPositionBack type:SXCameraSourceTypeAudioAndVideo];
SXTemplate *mTemplate = [[SXTemplate alloc] initWithWidth:720 height:1280 frameRate:20 camera:camera];

SXTemplatePlayer *mPlayer = [[SXTemplatePlayer alloc] initWithTemplate:_mTemplate audioPath:nil];
mPlayer.delegate = self;
UIView *playView = [mPlayer getPlayerView];
int videoWidth = [mTemplate mainCompWidth];
int videoHeight = [mTemplate mainCompHeight];
CGFloat playerScale = self.view.bounds.size.height / videoHeight;
playView.bounds = CGRectMake(0, 0, videoWidth * playerScale, self.view.bounds.size.height);
    if (isIphoneX) {
        playView.bounds = CGRectMake(0, 0, videoWidth * playerScale * 0.84, videoWidth * playerScale / 9 * 16 * 0.84);
    }
playView.center = CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height / 2);
if (isIphoneX) {
    playView.top += 25;
}
[self.view addSubview:playView];
[self.view sendSubviewToBack:playView];

[mTemplate commit];

[mPlayer start];

[camera start];

SXCameraTemplate *cameraTemplate = [[SXCameraTemplate alloc] initWithFilePath:@"相机模板路径"];
mTemplate.cameraTemplate = cameraTemplate;
[mTemplate.camera setMattingEnabled:true];//抠像

模板中的抠图功能,素材替换中开启抠图功能
代码示例

[_resourcePath addObject:@{
              @"main_file": asset.editModel.assetModel.mAssetFiles.firstObject, 
              @"matting": @(asset.editModel.isFaceOpenMatting), //抠图功能开启字段,传入bool值 true和 false 
}];