Class ASAE_FSDKFace
功能描述:
用来保存传入引擎检测的人脸信息
构造函数:
ASAE_FSDKFace(ASAE_FSDKFace self)
参数:
ASAE_FSDKFace self
类对象,创建的对象和传入的对象数据一致
ASAE_FSDKFace(Rect rect, int degree)
成员函数:
Rect getRect()
返回值:保存的人脸框(Rect(left, top, right, bottom))
int getDegree()
返回值:保存的人脸角度(ASAE_FOC_0, ASAE_FOC_90等)
String toString()
返回值:格式化人脸信息的字符串(String(”Rect(left, top – right, bottom), Degree”))
ASAE_FSDKFace clone()
返回值: 本对象的拷贝
void setDegree(int degree)
Class ASAE_FSDKEngine
功能描述:
这个类具体实现了年龄检测的功能
成员函数:
ASAE_FSDKError ASAE_FSDK_InitAgeEngine(String appid, String sdkkey)
说明:这个函数功能为初始化引擎。创建对象后,必须先于其他成员函数调用,否则其他成员函数会返回MERR_BAD_STATE。
返回值:返回ASAE_FSDKError 对象,具体错误信息参考Class ASAE_FSDKError
参数
String appid
用户申请SDK时获取的App Id
String sdkkey
用户申请SDK时获取的SDK Key
ASAE_FSDKError ASAE_FSDK_AgeEstimation_Video(byte[] data, int width, int height, int format, List<ASAE_FSDKFace> faces, List<ASAE_FSDKAge> ages)
说明:这个函数功能为检测输入的视频帧中对应人脸的年龄,输出结果和人脸框以及角度参数有较大关系。
返回值:返回ASAE_FSDKError 对象,具体错误信息参考Class ASAE_FSDKError
参数
List<ASAE_FSDKFace> faces
输入的人脸信息需要放到该列表里。
List<ASAE_FSDKAge> ages
输出对应faces列表顺序的年龄信息,注意ASAE_FSDKAge对象引擎内部重复使用,如需保存,请clone一份ASAE_FSDKAge对象或另外保存
ASAE_FSDKError ASAE_FSDK_AgeEstimation_Image(byte[] data, int width, int height, int format, List<ASAE_FSDKFace> faces, List<ASAE_FSDKAge> ages)
说明:这个函数功能为检测输入的图片中对应人脸的年龄,输出结果和人脸框以及角度参数有较大关系。
返回值:返回ASAE_FSDKError 对象,具体错误信息参考Class ASAE_FSDKError
参数
List<ASAE_FSDKFace> faces
输入的人脸信息需要放到该列表里。
List<ASAE_FSDKAge> ages
输出对应faces列表顺序的年龄信息,注意ASAE_FSDKAge对象引擎内部重复使用,如需保存,请clone一份ASAE_FSDKAge对象或另外保存
ASAE_FSDKError ASAE_FSDK_UninitAgeEngine()
这个函数功能为销毁引擎,释放占用的内存资源。
返回值:返回ASAE_FSDKError 对象,具体错误信息参考Class ASAE_FSDKError
ASAE_FSDKError ASAE_FSDK_GetVersion(ASAE_FSDKVersion version)
这个函数功能为获取SDK版本信息
返回值:返回ASAE_FSDKError 对象,具体错误信息参考Class ASAE_FSDKError
参数
ASAE_FSDKVersion version
版本信息对象 参考Class ASAE_FSDKVersion
类常量:
颜色格式:
引擎支持的颜色格式
参数
CP_PAF_NV21
0x802 8-bit Y层,之后是8-bit的2x2 采样的U,V交织层
人脸角度:
检测结果中的人脸角度
ASAE_FSDKEngine engine = new ASAE_FSDKEngine();
// 用来存放检测到的人脸信息列表
List<ASAE_FSDKAge> result = new ArrayList<ASAE_FSDKAge>();
List<ASAE_FSDKFace> input = new ArrayList<ASAE_FSDKFace>();
//这里人脸框和角度,请根据实际对应图片中的人脸框和角度填写
input.add(new ASAE_FSDKFace(new Rect(210, 178, 478, 446), ASAE_FSDKEngine.ASAE_FOC_0));
//初始化人脸检测引擎,使用时请替换申请的APPID和SDKKEY
ASAE_FSDKError err = engine.ASAE_FSDK_InitAgeEngine("APPID","SDKKEY");
Log.d("com.arcsoft", "ASAE_FSDK_InitAgeEngine = " + err.getCode());
//输入的data数据为NV21格式(如Camera里NV21格式的preview数据),其中height不能为奇数,人脸检测返回结果保存在result。
err = engine.ASAE_FSDK_AgeEstimation_Image(data, width, height, ASAE_FSDKEngine.CP_PAF_NV21, input, result);
Log.d("com.arcsoft", "ASAE_FSDK_AgeEstimation_Image =" + err.getCode());
Log.d("com.arcsoft", "Face=" + result.size());
for (ASAE_FSDKAge age : result) {
Log.d("com.arcsoft", "Age:" + age.getAge());
}
//销毁人脸检测引擎
err = engine.ASAE_FSDK_UninitAgeEngine();
Log.d("com.arcsoft", "ASAE_FSDK_UninitAgeEngine =" + err.getCode());