优图人脸精确配准
version: v1.0.0
package: com.tencent.youtu.YTFaceAlignment
-
static String getVersion();
- @brief 获得 SDK + MODEL 的版本号,如
v3.0.0-v7114
- MODEL 的版本号由
config.ini
中读取获得 - SDK 的版本号一般为
v3.0.0
/v3.0.0-beta.0
/v3.1.1-rc.0
- MODEL 的版本号由
- @return 版本号
- @brief 获得 SDK + MODEL 的版本号,如
-
static int globalInit(String dirPath, String filename);
- @brief 全局初始化函数,初始化模型,进程初始化一次即可,多线程不安全
- @param
dirPath
模型所在外部存储空间的绝对路径 - @param
filename
模型所在外部存储控件路径下 config 的文件名,如config.ini
- @return
< 0
失败
-
static int globalInit(AssetManager assetManager, String dirPath, String filename);
- @brief 全局初始化函数,初始化模型,进程初始化一次即可,多线程不安全
- @param
assetManager
Android 管理Assets
类,可通过this.getAssets()
获得 - @param
dirPath
模型所在Assets
存储下的相对路径 - @param
filename
模型所在Assets
存储下的相对路径下 config 的文件名,如config.ini
- @return
< 0
失败
-
static void globalRelease();
- @brief 全局析构函数,进程结束析构一次即可,多线程不安全
-
void destroy();
- @brief 每一个 new 出的实例,都需要明确的 destroy()。防止内存泄漏。
-
class FaceShapeInfo
- float faceProfile[]: 轮廓坐标
- float leftEyebrow[]: 左眉坐标
- float rightEyebrow[]: 右眉坐标
- float leftEye[]: 左眼坐标
- float rightEye[]: 右眼坐标
- float nose[]: 鼻子坐标
- float mouth[]: 嘴巴坐标
- float pupil[]: 瞳孔坐标
- float faceProfileVis[]: 轮廓可见度
- float leftEyebrowVis[]: 左眉可见度
- float rightEyebrowVis[]: 右眉可见度
- float leftEyeVis[]: 左眼可见度
- float rightEyeVis[]: 右眼可见度
- float noseVis[]: 鼻子可见度
- float mouthVis[]: 嘴巴可见度
- float pupilVis[]: 瞳孔可见度
- float confidence: 配准置信度
- Rect faceRect: 人脸框
-
class FaceShapeStatus
- int pupilDist: 瞳孔距离(像素)
- boolean isLeftEyeOpen: 左眼是否睁开
- boolean isRightEyeOpen: 右眼是否睁开
- boolean isMouthOpen: 嘴巴是否睁开
- float leftEyebrowBlock: 左眉遮挡分数,分数范围[0,100],分数越低,遮挡程度越大,[0,80]表示发生遮挡
- float rightEyebrowBlock: 右眉遮挡分数,分数范围[0,100],分数越低,遮挡程度越大,[0,80]表示发生遮挡
- float leftEyeBlock: 左眼遮挡分数,分数范围[0,100],分数越低,遮挡程度越大,[0,80]表示发生遮挡
- float rightEyeBlock: 右眼遮挡分数,分数范围[0,100],分数越低,遮挡程度越大,[0,80]表示发生遮挡
- float noseBlock: 鼻子遮挡分数,分数范围[0,100],分数越低,遮挡程度越大,[0,60]表示发生遮挡
- float mouthBlock: 嘴巴遮挡分数,分数范围[0,100],分数越低,遮挡程度越大,[0,50]表示发生遮挡
- float leftProfileBlock: 左脸遮挡分数,分数范围[0,100],分数越低,遮挡程度越大,[0,70]表示发生遮挡
- float chinBlock: 下巴遮挡分数,分数范围[0,100],分数越低,遮挡程度越大,[0,70]表示发生遮挡
- float rightProfileBlock: 右脸遮挡分数,分数范围[0,100],分数越低,遮挡程度越大,[0,70]表示发生遮挡
-
public FaceShapeInfo align(byte[] rgbData, int width, int height, Rect faceRect, boolean isFirstFrame)
- @brief 获取人脸配准信息,根据检测出人脸框进行配准
- @param rgbData rgb图像
- @param width 图像宽
- @param height 图像高
- @param faceRect 人脸框
- @param isFirstFrame true:针对单帧图片 false:针对连续视频帧
- @return 人脸配准信息
-
public FaceShapeInfo align(byte[] rgbData, int width, int height, FaceShapeInfo faceShapes)
- @brief 获取人脸配准信息,根据上一帧配准信息进行配准
- @param rgbData rgb图像
- @param width 图像宽
- @param height 图像高
- @param faceShapes 上一帧配准信息
- @return 人脸配准信息
-
public FaceShapeStatus getStatus(FaceShapeInfo faceShapeInfo)
- @brief 获取人脸状态(如遮挡,瞳距,睁闭眼等),根据配准得到的人脸信息进行计算
- @param faceShapeInfo 配准得到的人脸信息
- @return 人脸状态(如遮挡,瞳距,睁闭眼等)