完善个人信息

完善您的账号信息,便于为您提供更精准的服务

跳过
开发者类型:
企业名称:
联系人姓名:
真实姓名:
行业:
地区:

 无标题文档
人脸识别 Android开发文档
5、性别识别API
类描述
Class ASGE_FSDKFace
功能描述: 用来保存传入引擎检测的人脸信息
构造函数:
ASGE_FSDKFace(ASGE_FSDKFace self)
                                
参数:
ASGE_FSDKFace self
类对象,创建的对象和传入的对象数据一致
ASGE_FSDKFace()
                                
ASGE_FSDKFace(Rect rect, int degree)
                                
参数:
Rect rect
人脸框
int degree
人脸角度
成员函数:
Rect getRect()
返回值:保存的人脸框(Rect(left, top, right, bottom))
                               
int getDegree()
返回值:保存的人脸角度(ASGE_FOC_0, ASGE_FOC_90等)
                               
String toString()
返回值:格式化人脸信息的字符串(String(”Rect(left, top  right, bottom), Degree”))
                               
ASGE_FSDKFace clone()
返回值: 本对象的拷贝
                               
void setRect(Rect rect)
                               
参数:
Rect rect
人脸框
void setDegree(int degree)
                               
参数:
int degree
人脸角度
Class ASGE_FSDKError
功能描述: 这个类用来保存函数执行的错误信息。
构造函数:
ASGE_FSDKError()
                               
成员函数:
int getCode()
返回值:错误码值(MOK, MERR_INVALID_PARAM等)
                               
类常量:
引擎返回的错误值定义
参数
MOK
0
成功
MERR_BASIC_BASE
0x0001
基础错误起始值
MERR_UNKNOWN
0x0001
未知错误
MERR_INVALID_PARAM
0x0002
参数错误
MERR_UNSUPPORTED
0x0003
输入了引擎不支持的参数或者数据
MERR_NO_MEMORY
0x0004
内存不足
MERR_BAD_STATE
0x0005
状态错误(未初始化就调用了接口)
MERR_BUFFER_OVERFLOW
0x0009
内存上溢
MERR_BUFFER_UNDERFLOW
0x000a
内存下溢
MERR_FSDK_BASE
0x7000
校验错误起始值
MERR_FSDK_INVALID_APP_ID
0x7001
非法APPID
MERR_FSDK_INVALID_SDK_ID
0x7002
非法SDKID
MERR_FSDK_INVALID_ID_PAIR
0x7003
SDKKEY不是于当前APPID名下的
MERR_FSDK_MISMATCH_ID_AND_SDK
0x7004
SDKKEY不是当前SDK所支持的
MERR_FSDK_SYSTEM_VERSION_UNSUPPORTED
0x7005
不支持的系统版本
MERR_FSDK_LICENCE_EXPIRED
0x7006
SDK过期
Class ASGE_FSDKVersion
功能描述: 这个类用来保存版本信息
构造函数:
ASGE_FSDKVersion ()
                               
成员函数:
String toString ()
                               
返回值:包含所有版本信息的字符串
Class ASGE_FSDKGender
功能描述: 这个类用来保存性别信息
构造函数:
ASGE_FSDKGender()
                                   
ASGE_FSDKGender(ASGE_FSDKGender obj)
                                   
参数:
ASGE_FSDKGender obj
对象本身的复制
成员函数:
int getGender()
返回值:0为男性,1为女性,-1为未识别
ASGE_FSDKGender clone()
返回值:本身的拷贝
类常量:
引擎返回的检测年龄结果
MALE
0
男性
FEMALE
1
女性
UNKNOWN
-1
未知
Class ASGE_FSDKEngine
功能描述: 这个类具体实现了性别检测的功能
构造函数:
ASGE_FSDKEngine()
成员函数:
ASGE_FSDKError ASGE_FSDK_InitGenderEngine(String appid, String sdkkey)
这个函数功能为初始化引擎。创建对象后,必须先于其他成员函数调用,否则其他成员函数会返回MERR_BAD_STATE。
返回值:返回ASGE_FSDKError 对象,具体错误信息参考Class ASGE_FSDKError
参数
String appid
用户申请SDK时获取的App Id
String sdkkey
用户申请SDK时获取的SDK Key
ASGE_FSDKError ASGE_FSDK_GenderEstimation_Video(byte[] data, int width, int height, int format, List<ASGE_FSDKFace> faces, List<ASGE_FSDKGender> genders)
                                       
这个函数功能为检测输入的视频帧中对应人脸的性别,输出结果和人脸框以及角度参数有较大关系。
返回值:返回ASGE_FSDKError 对象,具体错误信息参考Class ASGE_FSDKError
参数
byte[] data
输入的图像数据
int width
图像宽度
int height
图像高度
int format
图像格式
List<ASGE_FSDKFace> faces
输入的人脸信息需要放到该列表里。
List<ASGE_FSDKGender> genders
输出对应faces列表顺序的年龄信息,注意ASGE_FSDKGender对象引擎内部重复使用,如需保存,请clone一份ASGE_FSDKGender对象或另外保存
ASGE_FSDKError ASGE_FSDK_GenderEstimation_Image(byte[] data, int width, int height, int format, List<ASGE_FSDKFace> faces, List<ASGE_FSDKGender> genders)
                                       
这个函数功能为检测输入的图片中对应人脸的性别,输出结果和人脸框以及角度参数有较大关系。
返回值:返回ASGE_FSDKError 对象,具体错误信息参考Class ASGE_FSDKError
参数
byte[] data
输入的图像数据
int width
图像宽度
int height
图像高度
int format
图像格式
List<ASGE_FSDKFace> faces
输入的人脸信息需要放到该列表里。
List<ASGE_FSDKGender> genders
输出对应faces列表顺序的年龄信息,注意ASGE_FSDKGender对象引擎内部重复使用,如需保存,请clone一份ASGE_FSDKGender对象或另外保存
ASGE_FSDKError ASGE_FSDK_UninitGenderEngine()
                                       
这个函数功能为销毁引擎,释放占用的内存资源。
返回值:返回ASGE_FSDKError 对象,具体错误信息参考Class ASGE_FSDKError
ASGE_FSDKError ASGE_FSDK_GetVersion(ASGE_FSDKVersion version)
                                       
这个函数功能为获取SDK版本信息
返回值:返回ASGE_FSDKError 对象,具体错误信息参考Class ASGE_FSDKError
参数
ASGE_FSDKVersion version
版本信息对象 参考Class ASGE_FSDKVersion
类常量:
颜色格式: 引擎支持的颜色格式
参数
CP_PAF_NV21
0x802 8-bit Y层,之后是8-bit的2x2 采样的U,V交织层
人脸角度: 检测结果中的人脸角度
参数
ASGE_FOC_0
0x1
0 度
ASGE_FOC_90
0x2
90度
ASGE_FOC_270
0x3
270 度
ASGE_FOC_180
0x4
180 度
ASGE_FOC_30
0x5
30 度
ASGE_FOC_60
0x6
60 度
ASGE_FOC_120
0x7
120 度
ASGE_FOC_150
0x8
150 度
ASGE_FOC_210
0x9
210 度
ASGE_FOC_240
0xa
240 度
ASGE_FOC_300
0xb
300 度
ASGE_FOC_330
0xc
330 度
JAVA代码

FSDKEngine engine = new ASGE_FSDKEngine();
// 用来存放检测到的人脸信息列表
List<ASGE_FSDKGenderList< result = new ArrayList<ASGE_FSDKGenderList<();
List<ASGE_FSDKFaceList< input = new ArrayList<ASGE_FSDKFaceList<();
//这里人脸框和角度,请根据实际对应图片中的人脸框和角度填写
input.add(new ASGE_FSDKFace(new Rect(210, 178, 478, 446), ASGE_FSDKEngine.ASGE_FOC_0));
//初始化人脸检测引擎,使用时请替换申请的APPID和SDKKEY
ASGE_FSDKError err = engine.ASGE_FSDK_InitgGenderEngine("APPID","SDKKEY");
Log.d("com.arcsoft", "ASGE_FSDK_InitgGenderEngine = " + err.getCode());
//输入的data数据为NV21格式(如Camera里NV21格式的preview数据),其中height不能为奇数,人脸检测返回结果保存在result。
err = engine.ASGE_FSDK_GenderEstimation_Image(data, width, height, ASGE_FSDKEngine.CP_PAF_NV21, input, result);
Log.d("com.arcsoft", "ASGE_FSDK_GenderEstimation_Image =" + err.getCode());
Log.d("com.arcsoft", "Face=" + result.size());
for (ASGE_FSDKGender gender : result) {
	switch(gender.getGender()) {
	case ASGE_FSDKGender.FEMALE : Log.d("com.arcsoft", "gender: FEMALE" ); break;
	case ASGE_FSDKGender.MALE: Log.d("com.arcsoft", "gender: MALE" ); break;
	case ASGE_FSDKGender.UNKNOWN: Log.d("com.arcsoft", "gender: UNKNOWN" ); break;
	default:;
	}
}
//销毁人脸检测引擎
err = engine.ASGE_FSDK_UninitGenderEngine();
Log.d("com.arcsoft", "ASGE_FSDK_UninitGenderEngine =" + err.getCode());