public class FaceEngine
extends java.lang.Object
限定符和类型 | 字段和说明 |
---|---|
static int |
ASF_AGE
初始化和调用引擎的属性,年龄检测
|
static long |
ASF_DETECT_MODE_IMAGE
IMAGE检测模式,用于处理单张的图像数据
|
static long |
ASF_DETECT_MODE_VIDEO
VIDEO检测模式,用于处理连续帧的图像数据
|
static int |
ASF_FACE_DETECT
初始化和调用引擎的属性,人脸检测
|
static int |
ASF_FACE_RECOGNITION
初始化和调用引擎的属性,人脸识别
|
static int |
ASF_FACE3DANGLE
初始化和调用引擎的属性,人脸三维角度检测
|
static int |
ASF_GENDER
初始化和调用引擎的属性,性别检测
|
static int |
ASF_IR_LIVENESS
初始化和调用引擎的属性,IR活体检测
|
static int |
ASF_LIVENESS
初始化和调用引擎的属性,RGB活体检测
|
static int |
ASF_NONE
初始化和调用引擎的属性,不初始化或调用任何引擎
|
static int |
ASF_OC_0
检测结果中的人脸角度,逆时针0度
|
static int |
ASF_OC_120
检测结果中的人脸角度,逆时针120度
|
static int |
ASF_OC_150
检测结果中的人脸角度,逆时针150度
|
static int |
ASF_OC_180
检测结果中的人脸角度,逆时针180度
|
static int |
ASF_OC_210
检测结果中的人脸角度,逆时针210度
|
static int |
ASF_OC_240
检测结果中的人脸角度,逆时针240度
|
static int |
ASF_OC_270
检测结果中的人脸角度,逆时针270度
|
static int |
ASF_OC_30
检测结果中的人脸角度,逆时针30度
|
static int |
ASF_OC_300
检测结果中的人脸角度,逆时针300度
|
static int |
ASF_OC_330
检测结果中的人脸角度,逆时针330度
|
static int |
ASF_OC_60
检测结果中的人脸角度,逆时针60度
|
static int |
ASF_OC_90
检测结果中的人脸角度,逆时针90度
|
static int |
ASF_OP_0_HIGHER_EXT
人脸检测角度,各个角度尝试检测,在IMAGE模式(
ASF_DETECT_MODE_IMAGE )下为了提高检测识别率,不支持该属性 |
static int |
ASF_OP_0_ONLY
人脸检测角度,逆时针0度
|
static int |
ASF_OP_180_ONLY
人脸检测角度,逆时针180度
|
static int |
ASF_OP_270_ONLY
人脸检测角度,逆时针270度
|
static int |
ASF_OP_90_ONLY
人脸检测角度,逆时针90度
|
static int |
CP_PAF_BGR24
图像格式,BGR格式,RGB 分量交织,按 B, G, R, B 字节序排布,且宽度必须为 4 的倍数
|
static int |
CP_PAF_DEPTH_U16
图像格式,DEPTH_U16格式,16-bit IR图像
|
static int |
CP_PAF_GRAY
图像格式,GRAY格式,8-bit IR图像
|
static int |
CP_PAF_NV21
图像格式,NV21格式,8-bit Y 通道,8-bit 2x2 采样 V 与 U 分量交织通道,且宽度必须为 4 的倍数,高度必须为 2 的倍数
|
构造器和说明 |
---|
FaceEngine() |
限定符和类型 | 方法和说明 |
---|---|
int |
active(android.content.Context context,
java.lang.String appId,
java.lang.String sdkKey)
激活SDK,与
activeOnline(Context, String, String) 接口功能相同,
activeOnline(Context, String, String) 接口做了优化,推荐使用activeOnline(Context, String, String) 接口 |
int |
activeOnline(android.content.Context context,
java.lang.String appId,
java.lang.String sdkKey)
在线激活SDK
|
int |
compareFaceFeature(FaceFeature feature1,
FaceFeature feature2,
FaceSimilar faceSimilar)
比对人脸特征数据获取相似度
|
int |
detectFaces(byte[] data,
int width,
int height,
int format,
java.util.List<FaceInfo> faceInfoList)
人脸检测
|
int |
extractFaceFeature(byte[] data,
int width,
int height,
int format,
FaceInfo faceInfo,
FaceFeature feature)
提取人脸特征数据
|
int |
getActiveFileInfo(android.content.Context context,
ActiveFileInfo activeFileInfo)
获取激活文件信息
|
int |
getAge(java.util.List<AgeInfo> ageInfoList)
获取年龄信息,需要在调用
process(byte[], int, int, int, List, int) 后调用 |
int |
getFace3DAngle(java.util.List<Face3DAngle> face3DAngleList)
获取人脸三维角度信息,需要在调用
process(byte[], int, int, int, List, int) 后调用 |
int |
getGender(java.util.List<GenderInfo> genderInfoList)
获取性别信息,需要在调用
process(byte[], int, int, int, List, int) 后调用 |
int |
getIrLiveness(java.util.List<LivenessInfo> irLivenessInfoList)
获取IR活体检测信息,需要在调用
processIr(byte[], int, int, int, List, int) 后调用 |
int |
getLiveness(java.util.List<LivenessInfo> livenessInfoList)
获取RGB活体检测信息,需要在调用
process(byte[], int, int, int, List, int) 后调用 |
int |
getVersion(VersionInfo versionInfo)
获取版本信息
|
int |
init(android.content.Context context,
long detectMode,
int detectFaceOrientPriority,
int detectFaceScaleVal,
int detectFaceMaxNum,
int combinedMask)
初始化人脸引擎
|
int |
process(byte[] data,
int width,
int height,
int format,
java.util.List<FaceInfo> faceInfoList,
int combineMask)
RGB活体、年龄、性别、三维角度检测,在调用该函数后,可以调用
getLiveness(List) ,getAge(List) ,getGender(List) ,getFace3DAngle(List) 分别获取
RGB活体、年龄、性别、三维角度的检测结果;
RGB活体最多支持 1 个人脸信息的检测,超过部分返回未知;
年龄、性别、三维角度最多支持4个人脸信息的检测,超过部分返回未知 |
int |
processIr(byte[] data,
int width,
int height,
int format,
java.util.List<FaceInfo> faceInfoList,
int combineMask)
IR活体检测,在调用该函数后,可以调用
getIrLiveness(List) 获取IR活体检测结果 |
int |
setLivenessParam(LivenessParam livenessParam)
修改活体阈值
|
int |
unInit()
销毁引擎
|
public static final int ASF_NONE
public static final int ASF_FACE_DETECT
public static final int ASF_FACE_RECOGNITION
public static final int ASF_AGE
public static final int ASF_GENDER
public static final int ASF_FACE3DANGLE
public static final int ASF_LIVENESS
public static final int ASF_IR_LIVENESS
public static final long ASF_DETECT_MODE_VIDEO
public static final long ASF_DETECT_MODE_IMAGE
public static final int CP_PAF_NV21
public static final int CP_PAF_BGR24
public static final int CP_PAF_GRAY
public static final int CP_PAF_DEPTH_U16
public static final int ASF_OP_0_ONLY
public static final int ASF_OP_90_ONLY
public static final int ASF_OP_270_ONLY
public static final int ASF_OP_180_ONLY
public static final int ASF_OP_0_HIGHER_EXT
ASF_DETECT_MODE_IMAGE
)下为了提高检测识别率,不支持该属性public static final int ASF_OC_0
public static final int ASF_OC_90
public static final int ASF_OC_270
public static final int ASF_OC_180
public static final int ASF_OC_30
public static final int ASF_OC_60
public static final int ASF_OC_120
public static final int ASF_OC_150
public static final int ASF_OC_210
public static final int ASF_OC_240
public static final int ASF_OC_300
public static final int ASF_OC_330
public int active(android.content.Context context, java.lang.String appId, java.lang.String sdkKey)
activeOnline(Context, String, String)
接口功能相同,
activeOnline(Context, String, String)
接口做了优化,推荐使用activeOnline(Context, String, String)
接口context
- 上下文对象appId
- 官网申请的APP_IDsdkKey
- 官网申请的SDK_KEYErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int activeOnline(android.content.Context context, java.lang.String appId, java.lang.String sdkKey)
context
- 上下文对象appId
- 官网申请的APP_IDsdkKey
- 官网申请的SDK_KEYErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int getActiveFileInfo(android.content.Context context, ActiveFileInfo activeFileInfo)
context
- 上下文对象activeFileInfo
- 激活文件信息对象,用于输出激活文件信息数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int init(android.content.Context context, long detectMode, int detectFaceOrientPriority, int detectFaceScaleVal, int detectFaceMaxNum, int combinedMask)
context
- 上下文对象detectMode
- 检测模式,支持VIDEO模式(ASF_DETECT_MODE_VIDEO
)和IMAGE模式(ASF_DETECT_MODE_IMAGE
)detectFaceOrientPriority
- 人脸检测角度,支持0度(ASF_OP_0_ONLY
),90度(ASF_OP_90_ONLY
),180度(ASF_OP_180_ONLY
),270度(ASF_OP_270_ONLY
),全角度检测(ASF_OP_0_HIGHER_EXT
),建议使用单一指定角度检测,性能比全角度检测更佳,IMAGE模式(ASF_DETECT_MODE_IMAGE
)为了提高检测识别率不支持全角度(ASF_OP_0_HIGHER_EXT
)检测detectFaceScaleVal
- 识别的最小人脸比例(图片长边与人脸框长边的比值),在VIDEO模式(ASF_DETECT_MODE_VIDEO
)下有效值范围[2,32],推荐值16;在IMAGE模式(ASF_DETECT_MODE_IMAGE
)下有效值范围[2,32],推荐值30detectFaceMaxNum
- 引擎最多能检测出的人脸数,有效值范围[1,50]combinedMask
- 需要启用的功能组合,可多选ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int unInit()
ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int detectFaces(byte[] data, int width, int height, int format, java.util.List<FaceInfo> faceInfoList)
data
- 输入的图像数据width
- 图像的宽度,为4的倍数height
- 图像的高度,NV21(CP_PAF_NV21
)格式为2的倍数;BGR24(CP_PAF_BGR24
)、GRAY(CP_PAF_GRAY
)、DEPTH_U16(CP_PAF_DEPTH_U16
)格式无限制format
- 图像的颜色空间格式,支持NV21(CP_PAF_NV21
)、BGR24(CP_PAF_BGR24
)、GRAY(CP_PAF_GRAY
)、DEPTH_U16(CP_PAF_DEPTH_U16
)faceInfoList
- 人脸列表,传入后赋值ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int process(byte[] data, int width, int height, int format, java.util.List<FaceInfo> faceInfoList, int combineMask)
getLiveness(List)
,getAge(List)
,getGender(List)
,getFace3DAngle(List)
分别获取
RGB活体、年龄、性别、三维角度的检测结果;
RGB活体最多支持 1 个人脸信息的检测,超过部分返回未知;
年龄、性别、三维角度最多支持4个人脸信息的检测,超过部分返回未知data
- 图像数据width
- 图像的宽度,为4的倍数height
- 图像的高度,NV21(CP_PAF_NV21
)格式为2的倍数,BGR24(CP_PAF_BGR24
)格式无限制format
- 图像的颜色空间格式,支持NV21(CP_PAF_NV21
)、BGR24(CP_PAF_BGR24
)faceInfoList
- 人脸列表combineMask
- 检测的属性(ASF_AGE
、ASF_GENDER
、ASF_FACE3DANGLE
、ASF_LIVENESS
),支持多选,注:检测的属性须在引擎初始化接口(init(Context, long, int, int, int, int)
)的combinedMask参数中启用ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int processIr(byte[] data, int width, int height, int format, java.util.List<FaceInfo> faceInfoList, int combineMask)
getIrLiveness(List)
获取IR活体检测结果data
- 图像数据width
- 图像的宽度,为4的倍数height
- 图像的高度,NV21(CP_PAF_NV21
)格式为2的倍数,GRAY(CP_PAF_GRAY
)、DEPTH_U16(CP_PAF_DEPTH_U16
)格式无限制format
- 图像的颜色空间格式,支持NV21(CP_PAF_NV21
)、GRAY(CP_PAF_GRAY
)、DEPTH_U16(CP_PAF_DEPTH_U16
)faceInfoList
- 人脸列表combineMask
- 检测的属性(ASF_IR_LIVENESS
),注:检测的属性须在引擎初始化接口(init(Context, long, int, int, int, int)
)的combinedMask参数中启用ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int extractFaceFeature(byte[] data, int width, int height, int format, FaceInfo faceInfo, FaceFeature feature)
data
- 图像数据width
- 图像的宽度,为4的倍数height
- 图像的高度,NV21(CP_PAF_NV21
)格式为2的倍数,BGR24(CP_PAF_BGR24
)、GRAY(CP_PAF_GRAY
) 格式无限制format
- 图像的颜色空间格式,支持NV21(CP_PAF_NV21
)、BGR24(CP_PAF_BGR24
)、GRAY(CP_PAF_GRAY
)faceInfo
- 人脸信息feature
- 人脸特征对象,用于输出人脸特征数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int compareFaceFeature(FaceFeature feature1, FaceFeature feature2, FaceSimilar faceSimilar)
feature1
- 人脸特征对象feature2
- 人脸特征对象faceSimilar
- 相似度信息,用于输出相似度数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int getAge(java.util.List<AgeInfo> ageInfoList)
process(byte[], int, int, int, List, int)
后调用ageInfoList
- 年龄信息列表,用于输出年龄信息数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int getGender(java.util.List<GenderInfo> genderInfoList)
process(byte[], int, int, int, List, int)
后调用genderInfoList
- 性别信息列表,用于输出性别信息数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int getFace3DAngle(java.util.List<Face3DAngle> face3DAngleList)
process(byte[], int, int, int, List, int)
后调用face3DAngleList
- 人脸三维角度信息列表,用于输出人脸三维角度信息数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int setLivenessParam(LivenessParam livenessParam)
livenessParam
- 活体阈值信息,SDK默认LivenessParam.rgbThreshold
为0.75,LivenessParam.irThreshold
为0.7ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int getLiveness(java.util.List<LivenessInfo> livenessInfoList)
process(byte[], int, int, int, List, int)
后调用livenessInfoList
- RGB活体检测信息列表,用于输出RGB活体检测信息结果数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int getIrLiveness(java.util.List<LivenessInfo> irLivenessInfoList)
processIr(byte[], int, int, int, List, int)
后调用irLivenessInfoList
- IR活体检测信息列表,用于输出IR活体检测信息结果数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int getVersion(VersionInfo versionInfo)
versionInfo
- 版本信息对象,用于输出版本信息数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义