FURenderKit

1. 获取FURenderKit示例

接口说明

fun getInstance(): FURenderKit

调用示例

protected FURenderKit mFURenderKit = FURenderKit.getInstance();

备注

单例模式

2. 释放FURenderKit

接口说明

fun release()

调用示例

mFURenderKit.release();

备注

移除特效、释放所有内存以及资源

3. 特效配置说明

属性

分类

类型

默认值

备注

actionRecognition

功能

ActionRecognition

null

动作识别

animationFilter

功能

AnimationFilter

null

动漫滤镜

antialiasing

功能

Antialiasing

null

3D抗锯齿

bgSegGreen

功能

BgSegGreen

null

绿幕抠像

bodyBeauty

功能

BodyBeauty

null

美体

faceBeauty

功能

FaceBeauty

null

美颜

hairBeauty

功能

HairBeautyNormal

null

美发

lightMakeup

功能

LightMakeup

null

轻美妆

makeup

功能

Makeup

null

美妆

musicFilter

功能

MusicFilter

null

音乐滤镜

propContainer

业务

PropContainer

PropContainer

多道具容器

avatarContainer

业务

AvatarContainer

AvatarContainer

PTA场景

FUAIController

业务

FUAIController

FUAIController

AI驱动管理

4. PropContainer

多道具容器,管理类似 道具贴纸、搞笑大头、表情识别、哈哈镜、手势识别、AnimojiAR面具、人像分割等业务 | 子类 |说明| | ------ | --------- | | Sticker | 道具贴纸 | | Animoji | Animoji | | ARMask | AR面具 | | HumanOutline | 人体分割线 | | PortraitSegment | 人像分割 | | BgSegCustom | 自定义背景分割 | | BigHead | 搞笑大头 | | ExpressionRecognition | 表情识别 | | FaceWarp | 哈哈镜 | | GestureRecognition | 手势识别 | | MakeupSticker | 美妆贴纸 | | FineSticker | 精品贴纸 |

4.1 添加道具

接口说明

fun addProp(prop: Prop): Boolean

参数说明

prop:多道具抽象类

调用示例

propContainer.addProp( prop);

4.2 移除道具

接口说明

fun removeProp(prop: Prop): Boolean

参数说明

prop:多道具抽象类

调用示例

propContainer.removeProp( currentAnimoji);

4.3 移除所有道具

接口说明

fun removeAllProp(): Boolean

调用示例

propContainer.removeAllProp( );

4.4 替换道具

接口说明

fun replaceProp(oldProp: Prop?, newProp: Prop?): Boolean

参数说明

oldProp:需要被替换的道具 newProp:新的道具

调用示例

propContainer.replaceProp(currentAnimoji, prop);

备注

oldPropnull执行新道具添加 newPropnull执行旧道具删除

4.5 获取全部道具

接口说明

fun getAllProp(): List<Prop>

5. FUSceneKit

Photo To Avatar场景使用

5.1 添加场景

接口说明

fun addScene(scene: Scene, listener: OnSceneListener? = null)

参数说明

ScenePTA场景模型

调用示例

FUSceneKit.getInstance().addScene(sceneModel);

5.2 移除场景

接口说明

fun removeScene(scene: Scene)

参数说明

ScenePTA场景模型

调用示例

FUSceneKit.getInstance().removeScene(sceneModel);

5.3 移除所有场景

接口说明

fun removeAllScene()

调用示例

FUSceneKit.getInstance().removeAllScene( );

5.4 获取全部场景

接口说明

fun getAllScene(): List<Scene>

6. FUAIKit

AI相关管理类

6.1 添加AI驱动

接口说明

fun loadAIProcessor(path: String, aiType: FUAITypeEnum)

参数说明

path:驱动对应地址 aiType:驱动类型

调用示例

FUAIKit.getInstance().loadAIProcessor(DemoConfig.BUNDLE_AI_FACE, FUAITypeEnum.FUAITYPE_FACEPROCESSOR);

6.2 判断当前类型AI驱动是否已经加载

接口说明

fun isAIProcessorLoaded(aiType: FUAITypeEnum):Boolean

参数说明

aiType:驱动类型

6.3 根据类型释放AI驱动

接口说明

fun releaseAIProcessor(aiType: FUAITypeEnum)

参数说明

aiType:驱动类型

6.4 释放所有AI驱动

接口说明

fun releaseAllAIProcessor()

6.5 设置检测驱动类型

接口说明

fun setTrackFaceAIType(aiType: FUAITypeEnum)

参数说明

aiType:驱动类型

6.6 获取检测到的人脸数量

接口说明

fun trackFace(imgBuffer: ByteArray, format: FUInputBufferEnum, width: Int, height: Int): Int

参数说明

imgBufferByteArray format:数据类型 width:宽 height:高

6.7 获取检测到的人脸数量

接口说明

fun trackFace(imgBuffer: ByteArray, format: FUInputBufferEnum, width: Int, height: Int, rotMode: Int): Int

参数说明

imgBufferByteArray format:数据类型 width:宽 height:高 rotMode:识别角度

6.8 获取检测到的人体数量

接口说明

fun humanProcessorGetNumResults(): Int

6.9 获取检测到的人手数量

接口说明

fun handProcessorGetNumResults(): Int

6.10 获取检测到的人脸数量

接口说明

fun isTracking(): Int

6.11 设置识别模式

接口说明

fun setFaceProcessorDetectMode(mode: FUFaceProcessorDetectModeEnum)

6.12 获取人脸信息

接口说明

fun getFaceInfo(faceId: Int, name: String, value: FloatArray)
 

6.12.1 获取人脸信息关键字补充

信息名称

长度

类型

含义

权限

face_rect

4

float

人脸矩形框,图像分辨率坐标,数据为   (x_min, y_min, x_max, y_max)

默认

rotation_mode

1

int

识别人脸相对于设备图像的旋转朝向,取值范围   0-3,分别代表旋转0度、90度、180度、270

默认

failure_rate[已废弃]

1

float

人脸跟踪的失败率,表示人脸跟踪的质量。取值范围为   0-2,取值越低代表人脸跟踪的质量越高

默认

is_calibrating

1

int

表示是否SDK正在进行主动表情校准,取值为   0   1

默认

focal_length

1

float

SDK当前三维人脸跟踪所采用的焦距数值

默认

landmarks

75*2

float

人脸   75 个特征点,图像分辨率坐标

Landmark

landmarks_ar

75*3

float

3D 人脸特征点

Avatar

rotation

4

float

人脸三维旋转,数据为旋转四元数*

Landmark

translation

3

float

人脸三维平移,数据为   (x, y, z)

Landmark

eye_rotation

4

float

眼球旋转,数据为旋转四元数*,上下22度,左右30度。

Landmark

eye_rotation_xy

2

float

眼球旋转,数据范围为[-1,1],第一个通道表示水平方向转动,第二个通道表示垂直方向转动

Landmark

expression

46

float

人脸表情系数,表情系数含义可以参考《Expression   Guide

Avatar

expression_with_tongue

56

float

1-46为人脸表情系数,同上expression,表情系数含义可以参考《Expression   Guide》。47-56为舌头blendshape系数

Avatar

armesh_vertex_num

1

int

armesh三维网格顶点数量

armesh

armesh_face_num

1

int

armesh三维网格三角面片数量

armesh

armesh_vertices

armesh_vertex_num * 3

float

armesh三维网格顶点位置数据

armesh

armesh_uvs

armesh_vertex_num * 2

float

armesh三维网格顶点纹理数据

armesh

armesh_faces

armesh_face_num * 3

int

armesh三维网格三角片数据

armesh

armesh_trans_mat

4x4

float

armesh transformation 注意: 1.   获取'armesh_trans_mat'前需要先获取对应脸的'armesh_vertices'2. trans_mat,相比使用'position''rotation'重算的transform更加准确,配合armesh,更好贴合人脸。

armesh

tongue_direction

1

int

舌头方向,数值对应   FUAITONGUETYPE 定义,见下表。

Avatar

expression_type

1

int

表情识别,数值对应   FUAIEXPRESSIONTYPE定义,见下表。

Avatar

rotation_euler

3

float

返回头部旋转欧拉角,分别为rollpitchyaw

默认

参数说明

faceId:人脸标识 name:参数key value:返回值

6.13 业务配置

属性

分类

类型

默认值

备注

maxFaces

业务

Int

4

最大人脸数

maxHumans

业务

Int

1

最大人体数

7. 单帧渲染

接口说明

fun renderWithInput(input: FURenderInputData): FURenderOutputData

参数说明

input:单帧渲染数据模型 return 渲染后的数据模型

8. FURenderInputData 单帧数据模型

属性

上级

类型

默认值

备注

width


Int


height


Int


texture

FUTexture

null

纹理参数


imageBuffer

FUImageBuffer

null

buffer参数


renderConfig

FURenderConfig

null

渲染配置


texId

texture

Int


纹理id

inputTextureType

texture

FUInputTextureEnum


纹理类型

inputBufferType

imageBuffer

FUInputBufferEnum


buffer类型

buffer

imageBuffer

ByteArray

null

数据Buffer   /YUV_BUFFER 对应Y-Buffer

buffer1

imageBuffer

ByteArray

null

数据Buffer   YUV_BUFFER 对应U-Buffer

buffer2

imageBuffer

ByteArray

null

数据Buffer   /YUV_BUFFER 对应V-Buffer

externalInputType

renderConfig

FUExternalInputEnum

FUExternalInputEnum.EXTERNAL_INPUT_TYPE_CAMERA

数据源类型:相机、图片、视频

inputTextureType

renderConfig

FUInputTextureEnum

FUInputTextureEnum.FU_ADM_FLAG_COMMON_TEXTURE

纹理类型

inputOrientation

renderConfig

Int

0

数据源人脸朝向:090180270

deviceOrientation

renderConfig

Int

90

手机硬件朝向-陀螺仪获取:090180270

cameraFacing

renderConfig

CameraFacingEnum

CameraFacingEnum.CAMERA_FRONT

数据源为相机时候->前置、后置摄像头

inputTextureMatrix

renderConfig

FUTransfromMatrixEnum

FUTransfromMatrixEnum.CCROT0_FLIPVERTICAL

输入纹理旋转调整角度

inputBufferMatrix

renderConfig

FUTransfromMatrixEnum

FUTransfromMatrixEnum.CCROT0

输入数据旋转调整角度

outputMatrix

renderConfig

FUTransfromMatrixEnum

FUTransfromMatrixEnum.CCROT0

输出数据旋转调整角度

isRenderFaceBeautyOnly

renderConfig

Boolean

false

是否只使用美颜渲染

isNeedBufferReturn

renderConfig

Boolean

false

是否需要合成后Buffer返回

8.1 TRANSFORM_MATRIX 定义

一张图像最多只有8个方位方向,TRANSFORM_MATRIX定义了将一张图像进行变换,变换的顺序为先逆时针旋转,然后镜像。 DEFAULTCCROT0默认输入方向不做处理。CCROT90为逆时针旋转90度。CCROT90_FLIPVERTICAL为先逆时针旋转90度,然后再竖直方向翻转。如下图所示,

orientationall

9. FURenderOutputData 单帧返回数据模型

属性

上级

类型

备注

texture


FUTexture

纹理数据

image


FUImageBuffer

图象数据

texId

texture

Int

纹理id

width

texture

Int

height

texture

Int

buffer

image

ByteArray

数据Buffer   YUV_BUFFER 对应Y-Buffer

buffer1

image

ByteArray

数据Buffer   YUV_BUFFER 对应U-Buffer

buffer2

image

ByteArray

数据Buffer   YUV_BUFFER 对应V-Buffer

width

image

Int

height

image

Int

stride

image

Int

YUV数据stride

stride1

image

Int

YUV数据stride

stride2

image

Int

YUV数据stride

10. 其他

10.1 配置是否使用AI线程

接口说明

fun setUseAsyncAIInference(isUse: Boolean): Int

参数说明

isUse 是否使用

10.2 配置使用是否使用multi buffer

接口说明

fun setUseMultiBuffer(isUseMultiGPUTexture: Boolean, isUseMultiCPUBuffer: Boolean): Int

参数说明

isUseMultiGPUTexture 是否使用MultiGPUTexture isUseMultiCPUBuffer:是否使用MultiCPUBuffer

10.3异步读取输出纹理

接口说明

fun setUseTexAsync(isUse: Boolean): Int

参数说明

isUse 是否使用

10.4 清除输入缓存

接口说明

fun clearCacheResource(): Int

 


< 上一页: FaceUnity集成
下一页: Activity快速集成 >