LZ-Says:最近好哥儿们因公来廊坊,在家里可谓夜夜笙歌,喝酒喝的俩眼发懵,最近状态欠佳,导致学习计划一直在滞留,今天通过简短的小例子,重新拾起学习之路,滚蛋吧,懒瘤君~

前言

Today,由于昨晚喝蒙了,今天晕乎乎的为大家带来如何快速集入ocr身份证识别。

关于ocr的前世今生这里不做过多的说明,百度一抓一大把。

前期准备

百度AI开放平台ocr地址:

https://ai.baidu.com/sdk#ocr

说明文档地址:

http://ai.baidu.com/docs#/OCR-Android-SDK/top

下载SDK以及测试demo,解压后附上官方对此说明:

这里还需要大家注意一点,便是有关身份验证与安全。

百度AI开放平台使用OAuth2.0授权调用开放API,调用API时必须在URL中带上accesss_token参数。AccessToken可用AK/SK或者授权文件的方式获得。

OCR Android SDK提供了以下3种AccessToken管理方法.

1. API Key / Secret Key

此种身份验证方案使用AK/SK获得AccessToken。

虽然SDK对网络传输的敏感数据进行了二次加密,但由于AK/SK是明文填写在代码中,在移动设备中可能会存在AK/SK被盗取的风险。有安全考虑的开发者可使用第二种授权方案。

2. 授权文件(安全模式)

此种身份验证方案使用授权文件获得AccessToken,缓存在本地。建议有安全考虑的开发者使用此种身份验证方式。

在您的移动APP分发出去之后,APP存在被反编译的可能,所以直接将AK / SK 置于APP源码之中,存在被盗取的风险。采用授权文件的身份验证方法,可有效保护AK/SK在移动设备中的安全。攻击者即使拦截了流量,盗取了授权文件,也难以盗用您的配额。

3. 自助AccessToken管理

此种身份验证方案直接使用开发者提供的AccessToken,鉴于安全性考虑不推荐此方式,使用此模式将不能开启身份证本地质量控制能力。

若开发者的应用有自行搭建的服务端,也可在自己的服务端进行token的获取与管理,然后分配给移动客户端使用。token的获得可以参考API鉴权认证机制。此种授权方案在移动客户端上没有任何AK/SK信息,风险系数低,但需要开发者自行管理token的获取与分配,适合有条件的开发者使用。

运行demo查看效果

首先需要在控制台创建测试应用,我们只是为了查看效果,所以直接拿到AK以及SK即可。

代码中替换AK以及SK即可:

运行瞅瞅效果:

相比俩种拍摄方式,个人更青睐于第二种,毕竟能让用户少一步操作当然要少一步操作。

那么,下面进行具体的开搞。

撸码开搞

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"/>

2. 导入ocr-ui依赖

3. 修改ocr-ui配置与主工程目录一致即可

4. 添加依赖、导入jar、放置so一气呵成

5. 依据官方demo完成我们最后一步(基本拷贝)

首先进行初始化,初始化的方式如下:

    private void initAccessToken() {OCR.getInstance().initAccessToken(new OnResultListener<AccessToken>() {@Overridepublic void onResult(AccessToken accessToken) {String token=accessToken.getAccessToken();}@Overridepublic void onError(OCRError ocrError) {ocrError.printStackTrace();Toast.makeText(selfActivity, "licence方式获取token失败", Toast.LENGTH_SHORT).show();}}, selfActivity);}

这里需要注意的是,初始化的时候,最好提前进行初始化,如果使用频繁的话,最好还是放在BaseApplication中。

放置前,需要下载文件,这个就不用多说了吧,毕竟使用的是授权文件(安全模式)。

剩下相关的,可以具体GitHub查看。

6. 拓展 - 如何截取拍摄身份证照片的头像呢?

看官方给出的文档说明,我们可以知道,他们识别出的内容都有一个自己的坐标点,那么我们可以根据这点,进行曲线救国。

代码如下:

int rectX = result.getAddress().getLocation().getWidth() + result.getAddress().getLocation().getLeft() + 10;int rectY = result.getName().getLocation().getTop();Location location = result.getIdNumber().getLocation();int height = location.getTop() - rectY - 20;int width = location.getWidth() + location.getLeft() - rectX + 40;Bitmap ocrBitmap = BitmapFactory.decodeFile(filePath);if (ocrBitmap != null) {Bitmap headBitmap = Bitmap.createBitmap(ocrBitmap, rectX, rectY, width, height, null,false);ivHeadShow.setImageBitmap(headBitmap);}

效果如下:

GitHub查看地址

https://github.com/HLQ-Struggle/BaiduOcrStudy

结束

最近几天的状态不佳啊,自己都看不过去了。

回家国庆后再回来,身上疼不说,看的家里人心里很是不舒服。

无奈。唯有自己好好努力。让自己变得越来越好才能让家里欣慰。加油~

今天鸡排兄内推小米和今日头条的高级Android,艾特了我一下,给我吓得一哆嗦。

和各位大佬,各位老哥哥,差距真的不是一般的大了。要好好抓紧了。。。

Android Study 玩转百度ocr身份证识别不是梦~相关推荐

  1. 百度Ocr身份证识别

    controller代码 //可以写入配置文件String clientId = "去百度云注册账号获取";// 官网获取的 Secret Key 更新为你注册的String cl ...

  2. 关于调用百度云OCR身份证识别接口,用Java语言,识别结果缺少身份证号码的问题解决

    问题描述: 最近项目系统开发,使用到了相关证件的信息提取.识别,由于是学校科研使用,选择了百度云OCR文字识别的API.具体的相关识别身份等证件的代码将在另一篇文章中叙述,最近真的太忙了,草稿箱中还有 ...

  3. VUE element-ui之百度OCR证件识别,组件内证件照转码解码识别身份证照文字

    步骤: 接上一篇博文继续完善获取access_token 封装Base64照片转码方法: const identification = {// 将图片转为base64格式transformBase64 ...

  4. 百度OCR文字识别-Android安全校验

    百度OCR文字识别-Android安全校验 本文转载自好基友upuptop:https://blog.csdn.net/pyfysf/article/details/86438769 效果图: 如下为 ...

  5. android百度识别,百度OCR文字识别-Android安全校验

    效果图: 如下为文章正文: 百度OCR接口使用总结: 之前总结一下关于百度OCR文字识别接口的使用步骤(Android版本 不带包名配置 安全性弱).这边博客主要介绍,百度OCR文字识别接口,官方推荐 ...

  6. 国航APP接入百度大脑OCR身份证识别技术,让机票购买更便捷!

    价值成果 中国国航APP通过接入百度大脑OCR身份证识别技术,实现了旅客线上自助修正错购机票信息的功能.购票信息错误的旅客只需在中国国航APP上传身份证照片,即可进行购票身份认证,并立即修正错误信息. ...

  7. Android百度ocr相机裁剪,百度OCR文字识别案例_android防止akamp;sk;泄漏版本

    [实例简介] 百度OCR文字识别,支持手机拍照识别,相册选择识别.网络图片识别等功能.该demo的配文博客为https://blog.csdn.net/pyfysf/article/details/8 ...

  8. 百度OCR 文字识别 Android安全校验

    百度OCR接口使用总结: 之前总结一下关于百度OCR文字识别接口的使用步骤(Android版本 不带包名配置 安全性弱).这边博客主要介绍,百度OCR文字识别接口,官方推荐使用方式,授权文件(安全模式 ...

  9. 百度OCR文字识别API使用心得 com.baidu.ocr.sdk.exception.SDKError[283604]

    百度OCR文字识别API使用心得 com.baidu.ocr.sdk.exception.SDKError[283604] 本文转载自好基友upuptop:https://blog.csdn.net/ ...

最新文章

  1. 经典再读 | NASNet:神经架构搜索网络在图像分类中的表现
  2. python【蓝桥杯vip练习题库】ADV-92求最大公约数(递归)
  3. PAT甲级1127 ZigZagging on a Tree (30分):[C++题解]之字形层次遍历树bfs实现一层一层读入
  4. 教你从0到1搭建秒杀系统-抢购接口隐藏与单用户限制频率
  5. ArcGIS Server常见问题集锦(转载)
  6. Spring 加载、解析applicationContext.xml 流程
  7. 浏览器窗口尺寸clientHeight / scrollHeight / offsetHeight / innerHeight
  8. type=radio增加onclick没有效果_佳能6d+小痰盂镜头,加1张餐巾纸拍摄花卉,朦胧美效果你喜欢吗?...
  9. 如何成为更优秀的工程师?
  10. 递归下降分析法的基本思想。_八大算法思想总结提高
  11. 微信小程序样式-id选择器的使用教程
  12. 社群运营的八大变现模式
  13. 计算机从外部世界接收信息和向外部世界反馈运算结果的手段
  14. h5跳转高德百度导航
  15. win10蓝牙链接上的标准串行com口无法删除
  16. Python将csv文件以某列为条件分类切割
  17. Laravel Sail 使用 PhpStorm 与 Xdebug 进行调试
  18. 2021年,我的年终总结
  19. WMI使用小工具——WMI代码生成器(转)
  20. 计算机网络题库——第6章 应用层

热门文章

  1. EOJ1600公路巡逻
  2. 小程序wx.chooseMedia,chooseImage等会触发onshow,onload的坑
  3. C# 之 GUID格式化
  4. 挣值管理(PV、EV、AC、SV、CV、SPI、CPI)记忆之我见
  5. 如何用R语言进行云计算
  6. Java 下载 Excel(.xlsx) 文档
  7. c语言 版本号,C语言版本学生信息管理系统
  8. vue中失焦事件和点击事件冲突,如何解决?
  9. Ubuntu中找不到yum及安装方法
  10. js 调用android定位,基于html5+ 高德地图JS API使用安卓定位sdk用来进行定位