public class FaceEngine
extends java.lang.Object
限定符和类型 | 字段和说明 |
---|---|
static int |
ASF_AGE
初始化和调用引擎的属性,年龄检测
|
static long |
ASF_DETECT_MODE_IMAGE
图像检测模式
|
static long |
ASF_DETECT_MODE_VIDEO
视频流检测模式
|
static int |
ASF_FACE_DETECT
初始化和调用引擎的属性,人脸检测
|
static int |
ASF_FACE_RECOGNITION
初始化和调用引擎的属性,人脸识别
|
static int |
ASF_FACE3DANGLE
初始化和调用引擎的属性,人脸三维角度检测
|
static int |
ASF_GENDER
初始化和调用引擎的属性,性别检测
|
static int |
ASF_LIVENESS
初始化和调用引擎的属性,活体检测
|
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
人脸检测角度,各个方向尝试检测
|
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 字节序排布,且宽度必须为 4 的倍数
|
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
|
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 |
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 |
getLiveness(java.util.List<LivenessInfo> livenessInfoList)
获取活体检测信息,需要在调用
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)
活体、年龄、性别、三维角度检测,在调用该函数后,可以调用
getLiveness(List) ,getAge(List) ,getGender(List) ,getFace3DAngle(List) 分别获取活体、年龄、性别、三维角度的检测结果
活体最多支持 1 个人脸信息的检测,超过部分返回未知
年龄、性别、三维角度在视频模式(ASF_DETECT_MODE_VIDEO )下在最多支持4个人脸信息的检测,超过部分返回未知 |
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 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 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
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)
context
- 上下文对象appId
- 官网申请的APP_IDsdkKey
- 官网申请的SDK_KEYErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int init(android.content.Context context, long detectMode, int detectFaceOrientPriority, int detectFaceScaleVal, int detectFaceMaxNum, int combinedMask)
context
- 上下文对象detectMode
- 检测模式,支持视频模式(ASF_DETECT_MODE_VIDEO
)和图像模式(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
),建议使用单一指定方向检测,性能比多方向检测更佳detectFaceScaleVal
- 人脸相对于所在图片的长边的占比,在视频模式(ASF_DETECT_MODE_VIDEO
)下有效值范围[2,16],在图像模式(ASF_DETECT_MODE_IMAGE
)下有效值范围[2,32]detectFaceMaxNum
- 引擎最多能检测出的人脸数,有效值范围[1,50]combinedMask
- 初始化引擎功能组合,可以是ASF_NONE
、ASF_FACE_DETECT
、ASF_FACE_RECOGNITION
、ASF_AGE
、ASF_GENDER
、ASF_FACE3DANGLE
、ASF_LIVENESS
中的单个或者多个,用 | 运算符拼接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
- 图像的宽度height
- 图像的高度format
- 图像的颜色空间格式,支持NV21(CP_PAF_NV21
)、BGR24(CP_PAF_BGR24
)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)
分别获取活体、年龄、性别、三维角度的检测结果
活体最多支持 1 个人脸信息的检测,超过部分返回未知
年龄、性别、三维角度在视频模式(ASF_DETECT_MODE_VIDEO
)下在最多支持4个人脸信息的检测,超过部分返回未知data
- 图像数据width
- 图像的宽度height
- 图像的高度format
- 图像的颜色空间格式,支持NV21(CP_PAF_NV21
)、BGR24(CP_PAF_BGR24
)faceInfoList
- 人脸列表combineMask
- 处理的组合,可以是ASF_AGE
、ASF_GENDER
、ASF_FACE3DANGLE
、ASF_LIVENESS
中的单个或者多个,用 | 运算符拼接ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int extractFaceFeature(byte[] data, int width, int height, int format, FaceInfo faceInfo, FaceFeature feature)
data
- 图像数据width
- 图像的宽度height
- 图像的高度format
- 图像的颜色空间格式,支持NV21(CP_PAF_NV21
)、BGR24(CP_PAF_BGR24
)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 getLiveness(java.util.List<LivenessInfo> livenessInfoList)
process(byte[], int, int, int, List, int)
后调用livenessInfoList
- 活体检测信息列表,用于输出活体检测信息结果数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义public int getVersion(VersionInfo versionInfo)
versionInfo
- 版本信息对象,用于输出版本信息数据ErrorInfo.MOK
为成功,其他情况详见ErrorInfo
中的定义