尊重作者劳动成果,转载请注明出处

原文链接:https://mp.weixin.qq.com/s/oRpW9AWLx60GpINHJ__BNw

前言

OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;

效果图

关于OCR文字识别技术,它的官方文档搞得很复杂,而且最终的效果也不理想,但是还好,百度的AI平台已经在此基础上改进了,于是,今天就给大家带来百度AI平台的文字识别技术,可识别身份证,银行卡,驾驶证,车牌等多种证件。

1、我们需要进入百度云文字识别的开发平台,进行一系列的注册,登陆。
https://cloud.baidu.com/product/ocr

2、创建应用

在创建应用的时候,应用名称我们可以随便写一个,但是我们要注意的是:我们在写文字识别包名的时候一定要写我们项目的包名,不然在识别的时候会提示你获取Token出错,接下来我们就直接创建我们的应用。

3、查看管理应用列表

这个就是我们刚刚创建的应用,我们需要记住它的API Key和Secret Key,在我们的项目中可能会用到。

4、点击应用列表左边最下面的sdk下载,就会到下载界面下载我们需要的技术文档和sdk。在sdk里面也有一份技术文档

下载下来sdk后,解压后,目录如下:

关于这几个文件的作用,引用官方文档的一张图来说明

  • libs:包含核心jar包以及so文件,直接拷贝到你项目的libs中即可

  • ocr-ui:是它提供的一个扫描的默认ui,我们可以用,也可以不用,

  • OCRDemo :官方提供的一个包含多种功能,可以直接运行的demo,但是必须要自己配置AK和SK才能运行,否则会提示获取Token失败。

必要的说明:看完了这里,你就可以少踩坑

直接运行官方demo,会失败,他会提示获取AccessToken失败。那什么是AccessToken?怎么获取?别急,笔者这就为大家讲述

注意:我们在使用百度AI平台的SDK之前必须先获取AccessToken成功

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

OCR Android SDK提供了以下3种获取AccessToken的方法.

方案一、API Key / Secret Key获取Token

也就是说调用下面这段代码获取AccessToken时,需要填写刚才你创建的应用的API Key / Secret Key,注意包名必须和你项目的包名一致,否则会失败。

OCR.getInstance().initAccessTokenWithAkSk(new OnResultListener<AccessToken>() {    @Overridepublic void onResult(AccessToken result) {        // 调用成功,返回AccessToken对象String token = result.getAccessToken();}    @Overridepublic void onError(OCRError error) {        // 调用失败,返回OCRError子类SDKError对象}
}, getApplicationContext(), "您的应用AK", "您的应用SK");

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

方案二、授权文件(安全模式)获取Token

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

这时候应该有人就在想 什么是授权文件?如何获取?

  • 在应用列表找到对应的应用

  • 下载对应应用的授权文件

  • 将授权文件添加至工程assets文件夹,文件名必须为aip.license

  • 调用initAccessToken方法,初始化OCR单例,来获取AccessToken:

OCR.getInstance().initAccessToken(new OnResultListener<AccessToken>() {    @Overridepublic void onResult(AccessToken result) {        // 调用成功,返回AccessToken对象String token = result.getAccessToken();}        @Overridepublic void onError(OCRError error) {                // 调用失败,返回OCRError子类SDKError对象}
}, getApplicationContext());

通过这种方式,你就不需要填写你的ak和sk了,这种授权文件的方式较为安全,推荐使用。

3、自助AccessToken管理(不推荐)

此种身份验证方案直接使用开发者提供的AccessToken,鉴于安全性考虑不推荐此方式,使用此模式将不能开启身份证本地质量控制能力。
        若开发者的应用有自行搭建的服务端,也可在自己的服务端进行token的获取与管理,然后分配给移动客户端使用。token的获得可以参考API鉴权认证机制。此种授权方案在移动客户端上没有任何AK/SK信息,风险系数低,但需要开发者自行管理token的获取与分配,适合有条件的开发者使用。

使用步骤:
        将您需要使用的token传入对应的构造函数,初始化OCR单例:

OCR.getInstance().initWithToken(getApplicationContext(), "自行获取的access_token");

到这里,核心部分就讲完了,你只需要按照文档上面的SDK导入就好,注释很清楚,在此提供一个官方的接入文档的地址

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

Demo地址:https://github.com/zhouxu88/OCRDemo

Android 图像识别之OCR识别身份证,银行卡等证件信息相关推荐

  1. Android图像识别扫名片识别技术SDK

    Android图像识别扫名片识别技术SDK 一.Android图像识别扫名片识别技术应用背景 这些年,随着移动互联的发展,APP应用成爆发式的增长,在很多APP中都涉及到对名片信息的录入,如移动CRM ...

  2. android智能识别技术,基于Android平台的OCR识别技术研究与实现

    摘要: 随着智能手机市场的迅猛发展和普及,Android成为所占市场份额最高的手机操作系统,与此同时,人们希望在手机终端享受更丰富舒适的应用功能.将OCR和Android智能终端相结合,依托光学字符识 ...

  3. uni-app之接入百度OCR识别身份证(微信小程序版本)

    本文为uni-app接入百度OCR识别身份证号,话不多说,直接上代码: 1. 第一步注册百度智能云账号,选择文字识别,创建应用,获取Api Key 与 Secret Key(下面要用到): 2.第二步 ...

  4. android集成百度OCR实现身份证、银行卡、营业执照等识别

    声明:申请步骤账号这一块比较懒,直接借用了[大千世界小书童] 大神的原图,有想看大神的可以直接去看,地址:www.jianshu.com/p/a9b5d8b22- 第一步:先登录百度智能云 image ...

  5. 通用卡证信息高精度识别流程 OCR 文本检测 文本识别 身份证 银行卡

    目录 如何将一张身份证图像的信息识别出来? 身份证识别点我 银行卡识别点我 第一步 目标检测 第二步 图像校正 如何获取匹配点对坐标 求解透视变换矩阵 第三步 文本检测 CTPN 第四步 文本识别 C ...

  6. 调用移动云OCR识别身份证

    一.开通移动云OCR服务 在下面这个网址开通免费服务,,每个账号可免费使用500次,先要实名认证. 通用文字识别 (10086.cn)https://ecloud.10086.cn/home/prod ...

  7. java 百度ocr识别身份证,营业执照流程

    1.打开 百度开放平台登录帐号 2.点击右上角控制台进入后台管理页面 3.左面列表产品服务选择文字识别 4.创建应用 5.获取 API Key 和 Secret Key (下面程序需要用到) 6.收费 ...

  8. python ocr识别身份证_不告诉你我用了它配合Python简简单单开发OCR识别,带你识别手写体、印刷体、身份证等N种,附代码!...

    一.你心目中的OCR二.成果展示(一)手写体成果展示(一)印刷体成果展示(三)名片识别成果展示(四)身份证(同样是模板)成果展示(五)表格识别成果展示:(六)整题识别成果展示:三.前期准备四.开发过程 ...

  9. 记录在小程序中前端调用百度 Ocr 识别身份证信息

    微信小程序因为业务扩展需要用户身份证信息,这里记录一下在小程序中通过百度ocr识别的一个开发过程记录. 1. 注册百度云账号 首先,我们要去百度云注册个账号,百度云注册 ,已经注册过可以忽略这部.注册 ...

最新文章

  1. 他是世界上最杰出的程序员,一个月写了个操作系统,退休后去做飞行员!
  2. android android:process=,关于android:Android-appprocess的使用
  3. UIBezierPath的使用(持续更新)
  4. URLshorting网址短链接PHP源码 开源源码
  5. 【华为云技术分享】开发团队中的任务没人领取,你头疼吗?
  6. linux构建基于mac的vlan,通过CLI配置交换机的基于MAC的VLAN组
  7. Echarts多条折线可拖拽
  8. 深度去除WinRAR广告
  9. UltraEdit(UE)主窗口颜色修改
  10. 小程序UI与传统HTML5区别
  11. 基于51单片机的红外计数器proteus仿真 LCD1602显示原理图程序设计
  12. 【Linux】一步一步学Linux——stty命令(243)
  13. 计算共形几何暑假课lecture1
  14. 2021年全球网络保险收入大约9593.9百万美元,预计2028年达到68230百万美元,2022至2028期间,年复合增长率CAGR为35.1%
  15. Ant下载及配置安装
  16. Cousera-Introduction to Data Science in Python Assignment1-4答案
  17. 【网络游戏植入案例】
  18. win10总出现繁体字怎么关闭
  19. 农场元宇宙Plato Farm,乌托邦式田园生活
  20. Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics)C. Unusual Competitions

热门文章

  1. 腾讯云 轻量服务器 体验
  2. MySQL 异常错误码使用 及 对照表 DataException
  3. 全新自适应地址发布页HTML源码
  4. python 爬虫-(2)认识爬虫
  5. 避 孕药熟知的几种负面影响
  6. Windows11 WSL2 ubuntu中vscode调试代码
  7. 解决IAR软件生成的HEX文件用记事本打开出现乱码
  8. 使用微信小程序新的订阅消息接口,主动推送。
  9. 亚利桑那州佛罗伦萨携手Subex保障关键基础设施网络安全
  10. 模式识别更接近计算机还是自动化,2020中科院自动化所考研初试经验