完善个人信息

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

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


人脸识别 Android开发文档
1、人脸检测API
类描述
Class AFD_FSDKFace
功能描述: 用来保存检测到的人脸信息
构造函数:
AFD_FSDKFace(AFD_FSDKFace self)
                                
参数:
AFD_FSDKFace self
类对象,创建的对象和传入的对象数据一致
AFD_FSDKFace()
                                
成员函数:
Rect getRect()
返回值:保存的人脸框(Rect(left, top, right, bottom))
                               
int getDegree()
返回值: 保存的人脸角度(AFD_FOC_0, AFD_FOC_90等)
                               
String toString()
返回值:格式化人脸信息的字符串(String(”Rect(left, top  right, bottom), Degree”))
                               
AFD_FSDKFace clone()
返回值:本对象的拷贝
                               
Class AFD_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 AFD_FSDKVersion
功能描述: 这个类用来保存版本信息
构造函数:
AFD_FSDKVersion()
                               
成员函数:
String toString()
返回值:包含所有版本信息的字符串
                               
Class AFD_FSDKEngine
功能描述: 这个类具体实现了人脸检测的功能
构造函数:
AFD_FSDKEngine()
                                   
成员函数:
AFD_FSDKError AFD_FSDK_InitialFaceEngine(String appid, String sdkkey, int orientsPriority, int scale, int maxFaceNum)
说明:这个为初始化引擎,设置检测角度、范围,数量。创建对象后,必须先于其他成员函数调用,否则其他成员函数会返回MERR_BAD_STATE
返回值: 返回AFD_FSDKError 对象,具体错误信息参考Class AFD_FSDKError
                                  
参数
String appid
用户申请SDK时获取的App Id
String sdkkey
用户申请SDK时获取的SDK Key
int orientsPriority
指定检测的角度(AFD_OPF_0_ONLY, AFD_OPF_90_ONLY等)
int scale
指定支持检测的最小人脸尺寸,有效值范围[2,32],推荐值16
int maxFaceNum
最多能检测到的人脸个数,有效值范围[1,50],推荐值25
AFD_FSDKErrorAFD_FSDK_StillImageFaceDetection(byte[] data, int width, int height, int format, List<AFD_FSDKFace> list)
说明: 为检测输入的图像中存在的人脸,输出结果和初始化时设置的参数有密切关系
返回值:返回AFD_FSDKError 对象,具体错误信息参考Class AFD_FSDKError
                                       
参数
byte[] data
输入的图像数据
nt width
图像宽度
int height
图像高度
int format
图像格式
List<AFD_FSDKFace> List
检测到的人脸会放到到该列表里。注意AFD_FSDKFace对象引擎内部重复使用,如需保存,请clone一份AFD_FSDKFace对象或另外保存
AFD_FSDKError AFD_FSDK_UninitialFaceEngine()
说明:这个函数为销毁引擎,释放占用的内存资源
返回值:返回AFD_FSDKError 对象,具体错误信息参考Class AFD_FSDKError
                                           
AFD_FSDKError AFD_FSDK_GetVersion(AFD_FSDKVersion version)
说明: 这个为获取SDK版本信息
返回值:返回AFR_FSDKError对象,具体错误信息参考 Class AFR_FSDKError
                                           
参数
AFD_FSDKVersion version
版本信息对象 参考Class AFD_FSDKVersion
类常量:
颜色格式引擎支持的颜色
CP_PAF_NV21
0x802 8-bit Y层,之后是8-bit的2x2 采样的U,V交织层
检测角度: 引擎初始化时输入的目标检测角度
参数
AFD_OPF_0_ONLY
0x1
检测0度方向
AFD_OPF_90_ONLY
0x2
检测90度方向
AFD_OPF_270_ONLY
0x3
检测270度方向度
AFD_OPF_180_ONLY
0x4
检测180度方向度
AFD_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 度
AFR_FOC_30
0x5
30 度
AFR_FOC_60
0x6
60 度
AFR_FOC_120
0x7
120 度
AFR_FOC_150
0x8
150 度
AFR_FOC_210
0x9
210度
AFR_FOC_240
0xa
240 度
AFR_FOC_300
0xb
300 度
AFR_FOC_330
0xc
330 度
JAVA代码

    AFD_FSDKInterface engine = new AFD_FSDKEngine();

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

    //初始化人脸检测引擎,使用时请替换申请的 APPID 和 SDKKEY
    AFD_FSDKError err = engine.AFD_FSDK_InitialFaceEngine("APPID","SDKKEY",
    AFD_FSDKEngine.AFD_OPF_0_HIGHER_EXT, 16, 5);
    Log.d("com.arcsoft", "AFD_FSDK_InitialFaceEngine = " + err.getCode());

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

    //销毁人脸检测引擎
    err = engine.AFD_FSDK_UninitialFaceEngine();
    Log.d("com.arcsoft", "AFD_FSDK_UninitialFaceEngine =" + err.getCode());