一:简介

快捷支付涉及到方方面面,同时安全问题既是用户所关心的,也是制作者不容忽视的重要部分。
比如涉及到支付和金钱的app,商户端app等等,都需要进行实名认证,实名认证可以通过银行卡认证和身份证认证。
通常办法是通过上传照片,并且手动输入基本信息进行认证,这种方法不仅操作复杂,而且容易出错。
网上很多资源,识别率低,速度慢,用户体验很差。今天我就和大家介绍一下我使用的方法,可以快速、高效的识别中国身份证信息。

二:原理

在拍摄框中右上区域加了一个人像区域提示框,并将该区域设为扫描人脸的区域,只有该区域扫描到身份证上的人脸时(确保用户的确将身份证人像对准了拍摄框中的人像框),才执行读取身份证信息的操作。

三:项目展示

扫描身份证面截图

头像面扫描

国徽面扫描

信息展示页面

头像页信息

国徽页信息

四: 使用流程介绍

4.1 身份验证

由于使用的是百度云的图像文字识别sdk,首先需要去百度云管理控制台
获得API Key / Secret Key。

管理控制台

管理控制台

4.2 下载demo

源码Demo获取方法

关注 【网罗开发】微信公众号,回复【162】便可领取。
网罗天下方法,方便你我开发,更多iOS技术干货等待领取,所有文档会持续更新,欢迎关注一起成长!

  1. 将下载的demo中libs目录下的ocr-sdk.jar文件拷贝到工程libs目录中,并加入工程依赖
  2. 将libs目录下armeabi,arm64-v8a,armeabi-v7a,x86文件夹按需添加到android studio工程src/main/jniLibs目录中, eclipse用户默认为libs目录。
  3. 在Android studio中以模块方式导入下载包中的identify文件夹,模块方式导入流程如下:
    首先要在顶层工程目录下的settings.gradle文件中include模块名
include ':app',':identify'

然后直接复制粘贴identify文件导入到项目的文件夹中!!!然后Build>Rebuild Project,重新构建项目。

4.3 权限配置

  1. 在工程AndroidManifest.xml文件中添加如下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  1. 在Proguard配置文件中增加, 防止release发布时打包报错:
-keep class com.baidu.ocr.sdk.**{*;}
-dontwarn com.baidu.ocr.**

4.4 核心函数介绍

  1. 初始化函数
OCR.getInstance().initAccessTokenWithAkSk(new OnResultListener<AccessToken>() {@Overridepublic void onResult(AccessToken result) {}@Overridepublic void onError(OCRError error) {error.printStackTrace();Log.d("onError", "msg: " + error.getMessage());}}, getApplicationContext(), "你注册的appkey", "你注册的sk");
  1. 身份证拍照
Intent intent = new Intent(MainActivity.this, CameraActivity.class);
intent.putExtra(CameraActivity.KEY_OUTPUT_FILE_PATH,FileUtil.getSaveFile(getApplication()).getAbsolutePath());
intent.putExtra(CameraActivity.KEY_CONTENT_TYPE, CameraActivity.CONTENT_TYPE_ID_CARD_FRONT);
startActivityForResult(intent, REQUEST_CODE_CAMERA);
  1. 图像回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == REQUEST_CODE_CAMERA && resultCode == Activity.RESULT_OK) {if (data != null) {String contentType = data.getStringExtra(CameraActivity.KEY_CONTENT_TYPE);String filePath = FileUtil.getSaveFile(getApplicationContext()).getAbsolutePath();if (!TextUtils.isEmpty(contentType)) {if (CameraActivity.CONTENT_TYPE_ID_CARD_FRONT.equals(contentType)) {recIDCard(IDCardParams.ID_CARD_SIDE_FRONT, filePath);} else if (CameraActivity.CONTENT_TYPE_ID_CARD_BACK.equals(contentType)) {recIDCard(IDCardParams.ID_CARD_SIDE_BACK, filePath);}}}}
}
  1. 数据解析
private void recIDCard(String idCardSide, String filePath) {IDCardParams param = new IDCardParams();param.setImageFile(new File(filePath));param.setIdCardSide(idCardSide);param.setDetectDirection(true);OCR.getInstance().recognizeIDCard(param, new OnResultListener<IDCardResult>() {@Overridepublic void onResult(IDCardResult result) {if (result != null) {Log.d("onResult", "result: " + result.toString());}}@Overridepublic void onError(OCRError error) {Log.d("onError", "error: " + error.getMessage());}});
}

到此身份证识别接入就结束了!!!

快速高效 | Android身份证识别相关推荐

  1. 快速高效 | iOS身份证识别

    一:简介 demo新增身份证国徽面识别,可识别出签发机关和有效期. 快捷支付涉及到方方面面,同时安全问题既是用户所关心的,也是制作者不容忽视的重要部分. 比如涉及到支付和金钱的app,商户端app等等 ...

  2. 杂谈Android身份证识别技术

    Android身份证识别技术,能从根源上杜绝违法行为! 黄牛:我宣布,抢票大军正式加入失业大军! 还记得被黄牛党支配的恐惧吗?那些年,每到春节前后,就会有一群"职业黄牛党"站出来, ...

  3. 快速高效 | iOS银行卡识别

    一:简介 快捷支付涉及到方方面面,同时安全问题既是用户所关心的,也是制作者不容忽视的重要部分. 比如涉及到支付和金钱的app,商户端app等等,都需要进行实名认证,实名认证可以通过银行卡认证和身份证认 ...

  4. Android身份证识别demo,文字识别

    百度云链接:https://console.bce.baidu.com/?fromai=1#/aip/overview 1.1首先去百度文字识别创建应用,获取ak和sk 配置ak和sk 1.2 jni ...

  5. android身份证自动识别

    android身份证拍照识别: 市场上身份证识别一般是通过第三方的公司专门做ocr识别的通过接口的形式对身份证进行识别,在此我主要介绍一下不通过第三方公司的接口该如何实现身份证自动识别. 1.拍照识别 ...

  6. 安卓版身份证识别技术

    Android身份证识别应用背景 随着智能终端(智能手机及平板电脑)及移动通信(4G)的发展,人们用手机的概率比用电脑的多,可以预见未来几年60%以上的业务将会逐渐转移到智能终端系统上来.如今手机AP ...

  7. android ocr识别源码_身份证识别OCR解决手动输入繁琐问题

    随着互联网金融的的发展,越来越多的互联网金融公司都推出了自己的金融APP,这些APP都涉及到个人身份证信息的输入认证,如果手动去输入身份证号码和姓名,速度非常慢,且用户体验非常差. 为了提高在手机移动 ...

  8. android ocr 身份证识别

    ocr opencv 想必做过程图像识别的同学们都对这两个词不陌生吧. ocr (optical character recognition ,光学字符识别) 是指电子设备(例如扫描仪或数码相机)检查 ...

  9. android tensorflow文字识别身份证识别ocr文字识别商用源码

    一 ,文字识别简介 计算机文字识别,俗称光学字符识别,英文全称是Optical Character Recognition(简称OCR),它是利用光学技术和计算机技术把印在或写在纸上的文字读取出来,并 ...

最新文章

  1. ruby安装插件报错
  2. python调用大华sdk
  3. python随机生成字符串_Python 2.6中的随机字符串(可以吗?)
  4. 同感,C#对JSON序列化和反序列化有点蹩脚
  5. python 调用支付宝微信接口_前端在h5页面调起微信支付接口和支付宝接口(日常笔记)...
  6. 网络流 24 题汇总(LOJ 上只有 22 题???)
  7. html5引入外联样式的优先级,CSS的4种引入方式及优先级
  8. 大会线上同步直播, 来不到现场也可以线上看直播,以及参会秘籍
  9. Linux-网络RAID技术DRBD
  10. memcached 命令_Memcached Telnet命令示例
  11. 多年前的csdn账号找回啦
  12. 【java】多线程_并发_同步_快乐影院
  13. 数据挖掘第三版课后习题
  14. win2003修改密码后提示确认用户名及域无误_周知!贵州高考志愿填报系统提示!...
  15. jpg、png、jpeg区别与压缩等知识总结 —— 性能优化篇
  16. Python3输出所有大小写字母(字母表)、数字
  17. Java实现生产者消费者的PV操作信号量操作
  18. 使用cipher加密配置文件
  19. 2021- css-doodle
  20. 汽车噪音检测要求有那些

热门文章

  1. 用Python制作小游戏之‘植物大战僵尸’(一)
  2. gdb: 疑惑1:info symbol为何可以看到atomicity.h的代码,但是代码里确实没有看到相关的代码
  3. 修改ppc模拟器的内存
  4. java-spider项目的部署
  5. vue-video-player基本使用
  6. 世上从不缺少美 只需发现美的眼睛
  7. idea服务器激活步骤(jetbrainsCrack.jar)
  8. IT耳朵“金耳朵奖”颁奖盛典 嘉宾阵容豪华11大奖项揭晓
  9. redis 热搜词 搜索存储
  10. 秒开IPTV服务器 互联网时代新享受