博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于虹软人证核验 2.0 Android SDK开发集成入门
阅读量:6801 次
发布时间:2019-06-26

本文共 2728 字,大约阅读时间需要 9 分钟。

hot3.png

一、功能介绍 虹软人证核验 2.0 SDK(以下简称SDK)包含人脸检测、人脸跟踪、人证核验等能力,主要实现人证的1:1比对。 其中暴露对外的功能方法有: active 引擎激活 init 引擎初始化 inputIdCardData 输入身份证图片进行人脸检测 onPreviewData 输入视频或图片数据进行人脸检测 compareFeature 人证特征比对 getVersion 获取sdk版本信息 unInit 销毁引擎

二、获取SDK

  1. 进入SDK的申请地址
  2. 填写信息申请并提交 申请通过后即可下载SDK,查看APP_ID和SDK_KEY

三、使用SDK

  1. 创建工程,并将下载解压出的jar和so添加到工程

  1. 激活引擎
//激活方法首次调用有网络和文件操作,后续只有文件操作,建议不要放在主线程中进行int activeCode = IdCardVerifyManager.getInstance().active(MainActivity.this, Constants.APP_ID, Constants.SDK_KEY);if (activeCode == IdCardVerifyError.OK || activeCode == IdCardVerifyError.MERR_ASF_ALREADY_ACTIVATED) {    //激活成功或者已激活过的情况} else {    //激活失败的情况}
  1. 创建人脸特征提取结果回调对象
//需要注意回调的结果位于子线程,compareFeature接口需要在主线程中调用private IdCardVerifyListener idCardVerifyListener = new IdCardVerifyListener() {    @Override    public void onPreviewResult(DetectFaceResult detectFaceResult, byte[] bytes, int i, int i1) {        runOnUiThread(() -> {            if (detectFaceResult.getErrCode() == IdCardVerifyError.OK) {                //预览人脸特征提取成功, 若身份证人脸特征提取也成功,则可调用人证特征比对接口进行人证比对            }        });    }    @Override    public void onIdCardResult(DetectFaceResult detectFaceResult, byte[] bytes, int i, int i1) {        runOnUiThread(() -> {            if (detectFaceResult.getErrCode() == IdCardVerifyError.OK) {                //身份证人脸特征提取成功, 若预览人脸特征提取也成功,则可调用人证特征比对接口进行人证比对            }        });    }};
  1. 初始化引擎,推荐在onCreate中执行
int initCode = IdCardVerifyManager.getInstance().init(MainActivity.this, idCardVerifyListener);if (initCode != IdCardVerifyError.OK) {    //初始化成功} else {    //初始化失败}
  1. 传入身份证图像数据
//需要转化为nv21格式的数据,且需保证宽为4的倍数,高为2的倍数DetectFaceResult result = IdCardVerifyManager.getInstance().inputIdCardData(nv21Data, width, height);if (result.getErrCode() == IdCardVerifyError.OK) {    //身份证人脸检测成功} else {    //身份证人脸检测失败}
  1. 传入预览图像数据,在传入身份证图像数据后才会进行预览图像数据的特征提取
//需要转化为nv21格式的数据,且需保证宽为4的倍数,高为2的倍数DetectFaceResult result = IdCardVerifyManager.getInstance().onPreviewData(nv21Data, width, height, true);if (result.getErrCode() == IdCardVerifyError.OK) {    //预览人脸检测成功} else {    //预览人脸检测失败}
  1. 人证特征比对,身份证数据与预览数据都特征提取成功后调用 CompareResult compareResult = IdCardVerifyManager.getInstance().compareFeature(0.82d); if (compareResult.getErrCode() == IdCardVerifyError.OK) { //人证特征比对成功 } else { //人证特征比对失败 }

  2. 销毁引擎,推荐在onDestroy中执行

IdCardVerifyManager.getInstance().unInit();

四、注意事项

  1. 线程安全 除了激活接口,SDK的接口都需要在主线程中进行调用,SDK内部对耗时操作进行了异步处理,不用担心主线程阻塞的问题。
  2. 数据格式 SDK目前只支持NV21格式的数据,且需保证数据的宽为4的倍数,高为2的倍数。
  3. 调用流程 需要注意的是,由于人脸特征提取比较耗时,所以SDK在调用inputIdCardData接口传入身份证数据后,onPreviewData接口才会进行预览数据的人脸特征提取。
  4. so库名冲突 SDK与Arcface 2.0 SDK及活体检测SDK存在so库名冲突问题,无法同时使用,建议单一使用SDK实现人证核验需求,若有其他更加复杂需求,也可使用Arcface 2.0 SDK进行人证核验业务逻辑的实现。 五、SDK参考文档: Android平台开发指南: API接口说明 点喜欢赚钻最高日赚数百元

转载于:https://my.oschina.net/u/3970172/blog/3021338

你可能感兴趣的文章
Skynet 通过组播(Multicast)实现一个简单的世界频道
查看>>
HTML5定稿一周年,你必须要重新认识HTML5了
查看>>
Anti-Anti-Spider
查看>>
Java 序列化的高级认识
查看>>
WSL 编程环境配置
查看>>
Reveal配置及上架前配置
查看>>
MySQL可使用GRANT和REVOKE的权限设置
查看>>
iOS应用架构谈 好文
查看>>
Hexo 搭建个人博客
查看>>
Java多态对象的类型转换
查看>>
N*M网格中两对角有多少种不同的路径?(递归)
查看>>
迷宫出逃
查看>>
据说这样可以改变谷歌浏览器的滚动条的样式
查看>>
使用 db2diag 工具来分析 db2diag 日志文件
查看>>
Ubuntu 13.04 64位运行32位程序出现问题
查看>>
promise(then、catch、resolve、reject、race、all、done、finally)
查看>>
Ubuntu 下 配置 jdk1.7
查看>>
思维提升:思维广度,深度,高度,远度
查看>>
服务器空指针不打印堆栈信息解决方法
查看>>
《Linux 系列》- VM上安装CentOS7
查看>>