Skip to content

Latest commit

 

History

History
97 lines (80 loc) · 4.63 KB

优图人脸精确配准文档.md

File metadata and controls

97 lines (80 loc) · 4.63 KB

优图人脸精确配准文档

优图人脸精确配准

version: v1.0.0

CHANGELIST

Java

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
    • @return 版本号
  • 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 人脸状态(如遮挡,瞳距,睁闭眼等)