完善个人信息

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

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

 无标题文档
人脸识别 Android开发文档
3、人脸比对API
类描述
Class AFR_FSDKFace
功能描述: 这个类用来保存人脸特征信息
构造函数:
AFR_FSDKFace(AFR_FSDKFace self)
                                
参数:
self
[in]
类对象,创建的对象和传入的对象数据一致
AFR_FSDKFace()

                                    
AFR_FSDKFace(byte[] data)
                                    
参数:
data
[in]
人脸特征信息,一般由引擎检测得到,也可以保存在本地加载
成员函数:
byte[] getFeatureData()
返回值:特定长度的人脸特征信息
void setFeatureData(byte[] data)
                               
参数:
data
[in]
特征数据长度
AFR_FSDKFace clone()
返回值:本对象的拷贝
                               
类常量:
FEATURE_SIZE
22020
引擎定义的特征信息数据长度
Class AFR_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过期
MERR_FSDK_FR_ERROR_BASE
0x12000
FR错误起始值
MERR_FSDK_FR_INVALID_MEMORY_INFO
0x12001
内存信息错误
MERR_FSDK_FR_INVALID_IMAGE_INFO
0x12002
图像信息错误
MERR_FSDK_FR_INVALID_FACE_INFO
0x12003
人脸信息错误
MERR_FSDK_FR_NO_GPU_AVAILABLE
0x12004
GPU不支持
MERR_FSDK_FR_MISMATCHED_FEATURE_LEVEL
0x12005
特征信息版本不匹配
Class AFR_FSDKVersion
功能描述: 这个类用来保存版本信息
构造函数:
AFD_FSDKVersion()
                                   
成员函数:
String toString()
返回值:包含所有版本信息的字符串
                            
Class AFR_FSDKMatching
功能描述: 这个类用来保存特征信息匹配度
构造函数:
AFR_FSDKMatching()
                                   
成员函数:
float getScore()
返回值:两份人脸特征信息的特征匹配分数 ,分数范围:[01.0]
                                   
Class AFR_FSDKEngine
功能描述: 这个类具体实现了人脸识别的功能
构造函数:
AFR_FSDKEngine()
                                   
成员函数:
AFR_FSDKError AFR_FSDK_InitialEngine(String appid, String sdkkey)
描述:这个函数功能为初始化引擎。创建对象后,必须先于其他成员函数调用,否则其他成员函数会返回MERR_BAD_STATE
返回值:返回AFR_FSDKError对象,具体错误信息参考 Class AFR_FSDKError
                                   
参数
String appid
用户申请SDK时获取的App Id
String sdkkey
用户申请SDK时获取的SDK Key
AFR_FSDKError AFR_FSDK_ExtractFRFeature(
byte[]data,int width,int height, int format,Rect face,nt ori,AFR_FSDKFace feature)
说明:函数功能为检测输入图像中的人脸特征信息,输出结果保存在AFR_FSDKFace feature
返回值:AFR_FSDKError对象,具体错误信息参考 Class AFR_FSDKError
                                       
参数
byte[] data
输入的图像数据
nt width
图像宽度
int height
图像高度
int format
图像格式
Rect face
已检测到的脸框
int ori
已检测到的脸角度
AFR_FSDKFace feature
AFR_FSDKFace feature 检测到的人脸特征信息
AFR_FSDKError AFR_FSDK_FacePairMatching(AFR_FSDKFace ref, AFR_FSDKFace input, AFR_FSDKMatching score)
说明: 函数功能为比较两份人脸特征信息的匹配度
返回值:返回AFR_FSDKError对象,具体错误信息参考 Class AFR_FSDKError
                                           

参数
ref
[in]
脸部特征信息对象
input
[in]
脸部特征信息对象
score
[in]
匹配度对象
AFR_FSDKError AFR_FSDK_GetVersion(AFR_FSDKVersion version)
说明: 函数功能为获取引擎版本信息
返回值:返回AFR_FSDKError对象,具体错误信息参考 Class AFR_FSDKError
                                           
参数
version
[in]
保存版本信息对象
AFR_FSDKError AFR_FSDK_UninitialEngine()
说明: 销毁引擎,释放内存资源
返回值:返回AFR_FSDKError对象,具体错误信息参考 Class AFR_FSDKError
                                           
类常量:
引擎支持的颜色格式
参数
CP_PAF_NV21
0x802 8-bit Y层,之后是8-bit的2x2 采样的U,V交织层
人脸角度:检测结果中的人脸角度
参数
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 度
其他说明
说明: “此版本为免费开放的标准版本(为保证最优体验,建议注册人脸数小于1000),若有定制升级需求,请联系我们。”
JAVA代码

    AFR_FSDKInterface engine = new AFR_FSDKEngine();

    //用来存放提取到的人脸信息, face_1 是注册的人脸,face_2 是要识别的人脸
    AFR_FSDKFace face1 = new AFR_FSDKFace();
    AFR_FSDKFace face2 = new AFR_FSDKFace();

    //初始化人脸识别引擎,使用时请替换申请的 APPID 和 SDKKEY
    AFR_FSDKError error = engine.AFR_FSDK_InitialEngine("APPID", "SDKKEY");
    Log.d("com.arcsoft", "AFR_FSDK_InitialEngine = " + error.getCode());

    //输入的 data 数据为 NV21 格式(如 Camera 里 NV21 格式的 preview 数据);人脸坐标一般使用人脸检测返回的 Rect 传入;人脸角度请按照人脸检测引擎返回的值传入。
    error = engine.AFR_FSDK_ExtractFRFeature(data1, width, height, AFR_FSDKEngine.CP_PAF_NV21, new Rect(210, 178, 478, 446), AFR_FSDKEngine.AFR_FOC_0, face1);
    Log.d("com.arcsoft", "Face=" + face1.getFeatureData()[0]+ "," + face1.getFeatureData()[1] + "," + face1.getFeatureData()[2] + "," + error.getCode());

    error = engine.AFR_FSDK_ExtractFRFeature(data1, width, height, AFR_FSDKEngine.CP_PAF_NV21, new Rect(210, 170, 470, 440), AFR_FSDKEngine.AFR_FOC_0, face2);
    Log.d("com.arcsoft", "Face=" + face2.getFeatureData()[0]+ "," + face2.getFeatureData()[1] + "," + face2.getFeatureData()[2] + "," + error.getCode());

    //score 用于存放人脸对比的相似度值
    AFR_FSDKMatching score = new AFR_FSDKMatching(); error = engine.AFR_FSDK_FacePairMatching(face1, face2, score); Log.d("com.arcsoft", "AFR_FSDK_FacePairMatching=" + error.getCode()); Log.d("com.arcsoft", "Score:" + score.getScore());

    //销毁人脸识别引擎
    error = engine.AFR_FSDK_UninitialEngine();
    Log.d("com.arcsoft", "AFR_FSDK_UninitialEngine : " + error.getCode());