init openFaceDetect closeFaceDetect detectImg compareFace addFace delFace getAllFace getImagePath compareAllFace getActiveDeviceInfo activeOffLineInit
arcFacePublic人脸检测原生插件,封装的虹软人脸检测sdk,将信息注册到本地,打开摄像头返回检测到的结果。 Android系统版本要求5.*以及以上
使用此原生插件之前必须先配置 config 文件,配置方法如下:
<feature name="arcFacePublic">
<param name="appId" value="" />
<param name="appKey_Android" value="" />
<param name="appKey_iOS" value="" />
<param name="active_key" value="" />
</feature>
字段描述:
appId:虹软后台 应用appId appKey_Android:虹软后台 配置的android SDK KEY appKey_iOS:虹软后台配置的 iOS SDK KEY active_Key:虹软后台配置的激活码 要求必须选择虹软 ArcFace Pro版本号为4.2的版本
此原生插件安卓需要权限:READ_PHONE_STATE、CAMERA、READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE
(1) 下载 arcFacePublicAppendix原生插件zip包并解压(解压后会看到一个arcFacePublicAppendix文件夹) (2) 将文件夹中的source\目录下以及target文件夹下的sdk更换为从虹软官网下载的人脸识别sdk,armeabi-v7a 目录下的so放到target目录下,arm64-v8a目录复制到target目录下,source目录中的文件也要替换。 (3)将arcFacePublicAppendix文件夹重新打为zip包,已自定义原生插件方式与项目打包编译。
初始化引擎
init({params}, callback(ret, err))
ret:
{
status: true, //布尔型;true||false 是否成功
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.init(function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统 iOS系统
可提供的1.0.0及更高版本
开启人脸检测
openFaceDetect({params}, callback(ret, err))
rect:
{
x:0, //数字类型,控件左上角x坐标,默认:0
y:0, //数字类型;控件左上角y坐标,默认:0
w:100, //数字类型;控件宽,,默认:当前fram或win宽
h:200, //数字类型;控件高,默认:当前fram或win高
}
cameraId:
mirror:
faceOrientation:
showFaceRect:
returnFaceImg:
fixedOn:
fixed:
ret:
{
status: true, //布尔型;true||false 是否返回正常信息
action:'', //字符串类型;触发事件,‘show’/控件添加成功,‘face’/识别到人脸
faceS:[{ //Json数组类型;人脸信息,当action为‘face’时返回
feature:'', //字符串类型;人脸特征信息base64字符串,iOS不支持
img:{ //Json对象类型;识别到人脸的图片信息,iOS不支持
content:'', //字符串类型;识别到人脸的图片的base64字符串
width:, //数字类型;图片宽
height: //数字类型;图片高
},
age:, //数字类型;年龄
sex:, //数字类型;性别,0/男 ,1/女,-1/未知
isAlive:, //布尔类型;是否是活体,iOS不支持
faceRect:{ //Json对象类型;图片中人脸位置
left:, //数字类型;人脸左边位置
top:, //数字类型;人脸上边位置
right:, //数字类型;人脸右边位置
bottom:, //数字类型;人脸下边位置
},
face3DAngle{ //Json对象类型;识别到人脸角度,android不支持
status:0, //数字类型;状态;0:成功,1:失败
rollAngle:0, //数字类型;横滚角
yawAngle:0, //数字类型;偏航角
pitchAngle:0, //数字类型;俯仰角
}
},
]
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.openFaceDetect({
rect:{
x:0,
y:0,
w:300,
h:400,
},
cameraId:1,
mirror:true,
faceOrientation:'180',
fixedOn:api.frameName,
fixed:true
},function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统 iOS系统
可提供的1.0.0及更高版本
关闭获取人脸控件
closeFaceDetect({params}, callback(ret, err))
ret:
{
status: true, //布尔型;true||false 是否关闭
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.closeFaceDetect(function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统 iOS系统
可提供的1.0.0及更高版本
开启人脸检测
detectImg({params}, callback(ret, err))
imgPath:
ret:
{
status: true, //布尔型;true||false 是否有人脸
faces:[{ //Json对象类型;人脸信息
feature:'', //字符串类型;人脸特征信息base64字符串,iOS不支持
age:, //数字类型;年龄
sex:, //数字类型;性别,0/男 ,1/女,-1/未知
isAlive:, //布尔类型;是否是活体,iOS不支持
faceRect:{ //Json对象类型;图片中人脸位置
left:, //数字类型;人脸左边位置
top:, //数字类型;人脸上边位置
right:, //数字类型;人脸右边位置
bottom:, //数字类型;人脸下边位置
},
face3DAngle{ //Json对象类型;识别到人脸角度,android不支持
status:0, //数字类型;状态;0:成功,1:失败
rollAngle:0, //数字类型;横滚角
yawAngle:0, //数字类型;偏航角
pitchAngle:0, //数字类型;俯仰角
}
},
]
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.detectImg({
imgPath:'',
},function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统 iOS系统
可提供的1.0.0及更高版本
人脸对比返回相似度
compareFace({params}, callback(ret, err))
featureL:
featureR:
ret:
{
status: true, //布尔型;true||false 是否返回正常信息
score:'', //小数类型;相似度
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.compareFace({
featureL:'',
featureR:'',
},function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统 iOS系统
可提供的1.0.0及更高版本
添加人脸到本地库(iOS不支持)
addFace({params}, callback(ret, err))
feature:
img:
{
content:'', //字符串类型;图片base64字符串
width:, //数字类型;图片宽
height:, //数字类型;图片高
}
name:
ret:
{
status: true, //布尔型;true||false 是否添加成功
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.addFace({
feature:'',
img:{
content:'',
width:,
height,
},
name:'',
},function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统
可提供的1.0.0及更高版本
把人脸从本地库删除(iOS不支持)
delFace({params}, callback(ret, err))
name:
ret:
{
status: true, //布尔型;true||false 是否删除成功
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.delFace({
name:'',
},function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统
可提供的1.0.0及更高版本
获取本地库所有人脸信息(iOS不支持)
getAllFace({params}, callback(ret, err))
ret:
{
status: true, //布尔型;true||false 是否获取成功
faces:[{
img: //Json对象类型;人脸图片信息
{
content:'', //字符串类型;图片base64字符串
width:, //数字类型;图片宽
height:, //数字类型;图片高
},
feature:'', //字符串类型;人脸特征Base64字符串
name:'', //字符串类型;人脸对应信息
},
]
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.getAllFace(function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统
可提供的1.0.0及更高版本
根据图片base64字符串获取图片(iOS不支持)
getImagePath({params}, callback(ret, err))
imgBase64:
ret:
{
status: true, //布尔型;true||false 是否正常获取图片
imgPath:'', //字符串类型;转换后的图片路径
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.getImagePath({
imgBase64:'',
},function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统
可提供的1.0.0及更高版本
与本地库所有人脸对比返回最大相似度(iOS不支持)
compareAllFace({params}, callback(ret, err))
feature:
ret:
{
status: true, //布尔型;true||false 是否返回正常信息
score:'', //小数类型;相似度
name:'', //字符串类型;人脸对应信息
img:{ //Json对象类型;人脸图片信息
content:'', //字符串类型;图片base64字符串
width:, //数字类型;图片宽
height:, //数字类型;图片高
},
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.compareAllFace({
feature:'',
},function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统
可提供的1.0.0及更高版本
获取设备信息,该信息可用于离线激活。
getActiveDeviceInfo({params}, callback(ret, err))
ret:
{
status: true, //布尔型;true||false 是否成功
path:"" //字符串类型,表示离线激活方式第一步生成的deciceInfo.txt文件所在的位置
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.getActiveDeviceInfo(function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统 iOS系统
离线激活初始化。
activeOffLineInit({params}, callback(ret, err))
ret:
{
status: true, //布尔型;true||false 是否成功
}
err:
{
errCode:, //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}
var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.activeOffLineInit(function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统