arcFacePublic

概述

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

android配置:

(1) 下载 arcFacePublicAppendix原生插件zip包并解压(解压后会看到一个arcFacePublicAppendix文件夹) (2) 将文件夹中的source\目录下以及target文件夹下的sdk更换为从虹软官网下载的人脸识别sdk,armeabi-v7a 目录下的so放到target目录下,arm64-v8a目录复制到target目录下,source目录中的文件也要替换。 (3)将arcFacePublicAppendix文件夹重新打为zip包,已自定义原生插件方式与项目打包编译。

常见问题以及注意事项见虹软官方文档

init

初始化引擎

init({params}, callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
status: true,      //布尔型;true||false 是否成功

}

err:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码
}

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.init(function(ret, err) {
  api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统 iOS系统

可提供的1.0.0及更高版本

openFaceDetect

开启人脸检测

openFaceDetect({params}, callback(ret, err))

params

rect:

  • 类型:Json对象类型
  • 描述:(可选项)控件位置参数
  • 内部字段
{
    x:0,   //数字类型,控件左上角x坐标,默认:0
    y:0,   //数字类型;控件左上角y坐标,默认:0
    w:100,   //数字类型;控件宽,,默认:当前fram或win宽
    h:200,   //数字类型;控件高,默认:当前fram或win高
}

cameraId:

  • 类型:数字类型
  • 描述:(可选项)指定使用前摄像头或后摄像头
  • 取值范围:0/后置摄像头,1/前置摄像头
  • 默认:1

mirror:

  • 类型:布尔类型
  • 描述:(可选项)是否开启镜像,iOS不支持
  • 默认:false

faceOrientation:

  • 类型:字符串类型
  • 描述:(可选项)设置检测人脸方向
  • 取值范围:'0'/仅检测0度方向,'90'/仅检测90度方向,'180'/仅检测180度方向,'270'/仅检测270度方向,'ALL'/所有方向全部检测
  • 默认:'ALL'

showFaceRect:

  • 类型:布尔类型
  • 描述:(可选项)识别到人脸是否显示人脸位置框
  • 默认:false

returnFaceImg:

  • 类型:布尔类型
  • 描述:(可选项)是否返回人脸图片信息(仅android支持)
  • 默认:true

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)原生插件视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:原生插件依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)原生插件是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
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:

  • 类型:JSON 对象
  • 内部字段:
{
   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

关闭获取人脸控件

closeFaceDetect({params}, callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
status: true,      //布尔型;true||false 是否关闭

}

err:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码

  }

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.closeFaceDetect(function(ret, err) {
   api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统 iOS系统

可提供的1.0.0及更高版本

detectImg

开启人脸检测

detectImg({params}, callback(ret, err))

params

imgPath:

  • 类型:字符串类型
  • 描述:检测图片路径,支持fs,widget,原生路径。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
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:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码

  }

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.detectImg({
imgPath:'',
},function(ret, err) {
  api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统 iOS系统

可提供的1.0.0及更高版本

compareFace

人脸对比返回相似度

compareFace({params}, callback(ret, err))

params

featureL:

  • 类型:字符串类型
  • 描述:对比人脸特征base64字符串,iOS传图片路径,支持fs,widget,

featureR:

  • 类型:字符串类型
  • 描述:被对比人脸特征base64字符串,iOS传图片路径,支持fs,widget,

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
status: true,      //布尔型;true||false 是否返回正常信息
score:'',              //小数类型;相似度

  }

err:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码

  }

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.compareFace({
    featureL:'',
    featureR:'',
},function(ret, err) {
   api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统 iOS系统

可提供的1.0.0及更高版本

addFace

添加人脸到本地库(iOS不支持)

addFace({params}, callback(ret, err))

params

feature:

  • 类型:字符串类型
  • 描述:人脸特征base64字符串

img:

  • 类型:Json对象类型
  • 描述:人脸图片base64字符串
  • 内部字段:
{
content:'',          //字符串类型;图片base64字符串
width:,               //数字类型;图片宽
height:,            //数字类型;图片高
}

name:

  • 类型:字符串类型
  • 描述:人脸对应信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
status: true,      //布尔型;true||false 是否添加成功

}

err:

  • 类型:JSON 对象
  • 内部字段:
{
   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及更高版本

delFace

把人脸从本地库删除(iOS不支持)

delFace({params}, callback(ret, err))

params

name:

  • 类型:字符串类型
  • 描述:人脸对应信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
status: true,      //布尔型;true||false 是否删除成功

}

err:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码

  }

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.delFace({
    name:'',
},function(ret, err) {
   api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统

可提供的1.0.0及更高版本

getAllFace

获取本地库所有人脸信息(iOS不支持)

getAllFace({params}, callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
status: true,      //布尔型;true||false 是否获取成功
faces:[{
    img:             //Json对象类型;人脸图片信息
      {
      content:'',          //字符串类型;图片base64字符串
      width:,               //数字类型;图片宽
      height:,            //数字类型;图片高
      },
    feature:'',       //字符串类型;人脸特征Base64字符串
    name:'',           //字符串类型;人脸对应信息
},
]
  }

err:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码

}

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.getAllFace(function(ret, err) {
   api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统

可提供的1.0.0及更高版本

getImagePath

根据图片base64字符串获取图片(iOS不支持)

getImagePath({params}, callback(ret, err))

params

imgBase64:

  • 类型:字符串类型
  • 描述:图片base64字符串

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false 是否正常获取图片
    imgPath:'',          //字符串类型;转换后的图片路径
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码

}

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.getImagePath({
    imgBase64:'',
},function(ret, err) {
   api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统

可提供的1.0.0及更高版本

compareAllFace

与本地库所有人脸对比返回最大相似度(iOS不支持)

compareAllFace({params}, callback(ret, err))

params

feature:

  • 类型:字符串类型
  • 描述:对比人脸特征base64字符串

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
status: true,      //布尔型;true||false 是否返回正常信息
score:'',              //小数类型;相似度
name:'',			//字符串类型;人脸对应信息
img:{				//Json对象类型;人脸图片信息
  content:'',          //字符串类型;图片base64字符串
  width:,               //数字类型;图片宽
  height:,            //数字类型;图片高
    },
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码

  }

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.compareAllFace({
    feature:'',
},function(ret, err) {
   api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统

可提供的1.0.0及更高版本

getActiveDeviceInfo

获取设备信息,该信息可用于离线激活。

离线激活方式

  1. 调用该方法后会生成一个deviceInfo.txt文件,该文件用来保存该设备信息
  2. 在虹软后台点击查看试用码,然后点击离线激活,选择V4.2版本,然后上传刚刚得到的txt文件,然后生成离线授权文件
  3. 将该离线授权文件放置在sdcard根目录下,命名为active_result.dat
  4. 然后就可以使用activeOffLine方法进行离线激活初始化了

getActiveDeviceInfo({params}, callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false 是否成功
    path:""            //字符串类型,表示离线激活方式第一步生成的deciceInfo.txt文件所在的位置
 }

err:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码
 }

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.getActiveDeviceInfo(function(ret, err) {
  api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统 iOS系统

activeOffLineInit

离线激活初始化。

activeOffLineInit({params}, callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false 是否成功
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
   errCode:,        //数字类型;初始化失败错误码,请参考虹软平台返回错误码
 }

示例代码

var arcFacePublic= api.require('arcFacePublic');
arcFacePublic.activeOffLineInit(function(ret, err) {
  api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

Android系统

是否仍需要帮助? 请保持联络!
最后更新于 2024/04/24