虹图AI开放平台是基于虹图自研的AI能力,打造的围绕音视频等应用场景的AI技术开放平台。虹图围绕“AI产品+场景+生态合作”的方案模式,以音视频应用为切入场景,打造服务音视频应用全生命周期的AI产品矩阵,加以组合生态合作伙伴产品,实现平台的“开放”意义,为用户的业务需求提供整体美颜SDK解决方案,与用户实现价值共生。
目前虹图美颜SDK已经获得了较多开发者们的关注,简化接口的同时,提供开箱即用型UI可直接面向C端使用,可以大大降低接入成本,进行快速商用。
无较多的UI层开发,希望快速接入人像人体特效,如美颜、美型、滤镜、贴纸道具等功能并快速上线使用的客户,推荐使用HTUI模块一键接入。
本文介绍一下如何快速接入虹图人像人体特效SDK。首先我们先介绍下什么事虹图人像人体特效SDK?相对于传统美颜SDK做了哪些优化?
01 虹图人像人体特效:场景化HTUI+SDK
虹图在去年正式推出包含了美颜SDK等多个涉及人像人体美化、特效的SDK,定位为场景化SDK。以场景例如泛娱乐直播、社交、电商、IoT、体育、智慧文旅等不同场景为区分,虹图推出了不同场景的HTUI+SDK模式,来满足不同场景使用的同时,降低客户的接入成本。
客户基本上通过一个UI入口就可以接入所需场景化的特效SDK,而SDK也根据场景使用的实际情况,选择合适的人像人体算法。大大降低了客户的对接成本和增加了实用性能,利于帮助更多的客户快速上线使用。
传统美颜SDK,定位更多的是提供前端调用接口,复杂场景下的实现逻辑客户需要亲力亲为,接入成本过高。
列举几个简单的例子:
如果客户的产品专注于电商,引入直播带货功能板块,想增加美颜功能,那么我们在导入美颜SDK后,需要自己对接美白、磨皮、大眼、瘦脸等API接口,并实现交互和UI。
如果这些还不够复杂,再进一步,如果想实现所有参数进行保存,提前设置好直接开播,也需要自己实现这一系列的外部逻辑,整体工作量就会远超过预期。
而接入成本高,给大多数客户带来的开发困难,并不是我们希望看到的,我们更希望客户可以专注业务层面。长期来看,为了给更多开发者提供便利,虹图人像人体特效SDK就应孕而生了,一系列复杂的场景化UI都由虹图来完成。
我们能提供的主要功能,也远比传统美颜SDK强大。虹图人像人体特效除了支持传统实时美颜、人脸美型、AR道具、特效滤镜、背景替换、风格推荐等功能外,还提供了影音级光影滤镜、可拖拽水印、3D Avatar等高阶功能,同时针对不同场景,支持了例如萌宠合拍等独特功能,让主人和萌宠同时使用特效,甚至让你的宠物露出一丝微笑。
而我们的目的只有一个,就是快速接入。
02 三步对接虹图人像人体特效SDK
导入工程:
iOS:将下载好的 HTEffect.framework 库文件和 HTEffect.bundle 资源包放到您的项目文件夹下。
Android:将 HTEffect.aar 文件拷贝到 app 模块中的 libs 文件夹下,并在 app 模块的 build.gradle 文件的 dependencies 中,增加如下依赖:
dependencies {
implementation files('libs/HTEffect.aar')
}
其次将 jniLibs 文件夹中,各个 ABI 对应的 libHTEffect.so 文件,拷贝到对应目录中。最后将 assets 资源文件拷贝到项目的对应目录中。
使用HTUI:
HTUI 是开源的,可根据项目需求选用或增改。 使用 HTUI 方法如下:
iOS:将 HTUI 文件夹添加到您的项目文件夹中,导入 HTUIManager.h 并设置 HTUIManagerDelegate后,调用如下:
[[HTUIManager shareManager] loadToWindowDelegate:self];
Android:依赖我们的 htui 工程,使用我们提供的开源 UI 库,将 htui 文件夹拷贝到工程根目录下,在工程根目录的 settings.gradle 文件中,增加如下代码:
include(":htui")
在 app 模块中的 build.gradle 文件的 dependencies 中,增加如下代码:
implementation project(':htui')
集成开发:
这里主要也是分为3步,初始化、渲染、销毁。
HTEffect 初始化函数程序中调用一次即可生效,建议您在首次进入APP的时候调用,如果渲染功能使用不频繁,也可以在使用的时候调用,接口如下:
iOS:
// 在线鉴权初始化方法
[[HTEffect shareInstance] initHTEffect:@"YOUR_APP_ID" withDelegate:self];
// 离线鉴权初始化方法
[[HTEffect shareInstance] initHTEffect:@"YOUR_APP_ID"];
Android:
// 在线鉴权初始化方法
HTEffect.shareInstance().initHTEffect(context, "YOUR_APP_ID", new InitCallback() {
@Override public void onInitSuccess() {}
@Override public void onInitFailure() {}
});
// 离线鉴权初始化方法
HTEffect.shareInstance().initHTEffect(context,"YOUR_APP_ID");
对应的APPID可以在虹图用户中心进行生成获取,项目运行后在控制台搜索 InitInfo,可查看具体的版本信息和初始化状态。
渲染过程,支持对纹理和视频帧数组渲染,会先定义一个 BOOL 变量 isRenderInit ,用来标志渲染器的初始化状态。根据获取到的格式,采用对应的方法进行渲染。
结束渲染时,需根据视频格式,调用对应的释放方法,通常写在 dealloc 方法、视频帧回调接口的销毁处,或者是 Activity , Fragment 的生命周期结束处,同时将定义的布尔变量 isRenderInit 置为 false。
iOS:
/**
* 销毁纹理渲染资源
*/
[[HTEffect shareInstance] releaseTextureRenderer];
/**
* 销毁buffer渲染资源
*/
[[HTEffect shareInstance] releaseBufferRenderer];
Android:
/**
* 使用其中一个
*/
HTEffect.shareInstance().releaseTextureOESRenderer();
HTEffect.shareInstance().releaseTextureRenderer();
HTEffect.shareInstance().releaseBufferRenderer();
/*
* 将 bool 置为 false
*/
isRenderInit = false;
详细接入文档查看:
https://doc.texeljoy.com/document/hummanBody/beauty/Introduce/overview.html
03 总结
无较多UI定制化需求,希望快速对接人像人体特效相关功能并上线使用的客户,推荐通过场景化HTUI(开源)+SDK的方式一键快速对接虹图人像人体特效功能。
体验虹图人像人体特效SDK:
https://doc.texeljoy.com/document/hummanBody/beauty/quickStart/demo.html
也可以移步我们的社区,为开发者提供一个讨论和共享的平台:https://www.texeljoy.com/community