完善个人信息

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

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


人脸识别 Android开发文档
2、人脸跟踪API
类描述
Class AFT_FSDKFace
功能描述: 这个类用来保存检测到的人脸信息
构造函数:
AFT_FSDKFace(AFT_FSDKFace self)
说明:在一个init/unit 过程中, 只支持相同分辨率的图像数据
                                
参数:
AFT_FSDKFace self
类对象,创建的对象和传入的对象数据一致
AFT_FSDKFace()
                                
成员函数:
Rect getRect()
返回值:保存的人脸框(Rect(left, top, right, bottom))
                               
int getDegree()
返回值:保存的人脸角度(AFT_FOC_0, AFT_FOC_90等)
                               
String toString()
返回值:格式化人脸信息的字符串(String(”Rect(left, top  right, bottom), Degree”))
                               
AFT_FSDKFace clone()
返回值: 本对象的拷贝
                               
Class AFT_FSDKError
功能描述: 保存函数执行的错误信息
构造函数:
AFD_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 AFT_FSDKVersion
功能描述: 这个类用来保存版本信息
构造函数:
AFT_FSDKVersion ()
                               
成员函数:
String toString ()
返回值:包含所有版本信息的字符串
                               
Class AFD_FSDKEngine
功能描述: 这个类具体实现了人脸跟踪的功能
构造函数:
AFT_FSDKEngine()
                                   
成员函数:
AFT_FSDKError AFT_FSDK_InitialFaceEngine(String appid, String sdkkey, int orientsPriority, int scale, int maxFaceNum)
说明:这个函数功能为初始化引擎,设置检测角度、范围,数量。创建对象后,必须先于其他成员函数调用,否则其他成员函数会返回MERR_BAD_STATE
返回值:返回AFT_FSDKError 对象,具体错误信息参考Class AFT_FSDKError
                            
参数
String appid
用户申请SDK时获取的App Id
String sdkkey
用户申请SDK时获取的SDK Key
int orientsPriority
指定检测的角度(AFT_OPF_0_ONLY, AFT_OPF_90_ONLY等)
int scale
指定支持检测的最小人脸尺寸,有效值范围[2,16],推荐值16
int maxFaceNum
最多能检测到的人脸个数,有效值范围[1,50],推荐值25
AFT_FSDKError AFT_FSDK_FaceFeatureDetect(byte[] data, int width, int height, int format, List<AFT_FSDKFace> list)
说明:  函数功能为检测输入的图像中存在的人脸,输出结果和初始化时设置的参数有密切关系
返回值:返回AFT_FSDKError 对象,具体错误信息参考Class AFT_FSDKError
                            
参数
byte[] data
输入的图像数据
nt width
图像宽度
int height
图像高度
int format
图像格式
List<AFD_FSDKFace> List
检测到的人脸会add到此list.注意AFD_FSDKFace对象引擎内部重复使用,如需保存,请clone一份AFD_FSDKFace对象或另外保存
AFT_FSDKError AFT_FSDK_UninitialFaceEngine()
说明:函数功能为销毁引擎,释放占用的内存资源
返回值:AFT_FSDKError 对象,具体错误信息参考Class AFT_FSDKError
                                       
AFT_FSDKError AFT_FSDK_GetVersion(AFT_FSDKVersion version)
返回值:函数功能为获取版本信息
                                       
参数
AFT_FSDKVersion verion
版本信息对象 参考Class AFT_FSDKVersion
类常量:
支持的颜色格式及其对齐规则
CP_PAF_NV21
0x802 8-bit Y层,之后是8-bit的2x2 采样的U,V交织层
检测角度: 引擎初始化时输入的目标检测角度
参数
AFT_OPF_0_ONLY
0x1
检测0度方向
AFT_OPF_90_ONLY
0x2
检测90度方向
AFT_OPF_270_ONLY
0x3
检测270度方向 度
AFT_OPF_180_ONLY
0x4
检测180度方向 度
AFT_OPF_0_HIGHER_EXT
0x5
检测0, 90, 180, 270四个方向,0度更优先 度
人脸角度: 检测结果中的人脸角度
参数
AFR_FOC_0
0x1
0 度
AFR_FOC_90
0x2
90度
AFR_FOC_270
0x3
270 度
AFR_FOC_180
0x4
180 度
JAVA代码

    AFT_FSDKInterface engine = new AFT_FSDKEngine();

// 用来存放检测到的人脸信息列表
List<AFT_FSDKFace> result = new ArrayList<>();

//初始化人脸跟踪引擎,使用时请替换申请的APPID和SDKKEY
AFT_FSDKError err = engine.AFT_FSDK_InitialFaceEngine("APPID", "SDKKEY", AFT_FSDKEngine.AFT_OPF_0_HIGHER_EXT, 16, 5);
Log.d("com.arcsoft", "AFT_FSDK_InitialFaceEngine =" + err.getCode());

//输入的data数据为NV21格式(如Camera里NV21格式的preview数据),其中height不能为奇数,人脸跟踪返回结果保存在result。
err = engine.AFT_FSDK_FaceFeatureDetect(data, width, height, AFT_FSDKEngine.CP_PAF_NV21, result);
Log.d("com.arcsoft", "AFT_FSDK_FaceFeatureDetect =" + err.getCode());
Log.d("com.arcsoft", "Face=" + result.size());
for (AFT_FSDKFace face : result) {
    Log.d("com.arcsoft", "Face:" + face.toString());
}

        //销毁人脸跟踪引擎
        err = engine.AFT_FSDK_UninitialFaceEngine();
        Log.d("com.arcsoft", "AFT_FSDK_UninitialFaceEngine =" + err.getCode());