androidstudy玩转百度ocr身份证识别不是梦~

HLQ_Struggle HLQ_Struggle     2023-03-13     488

关键词:

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>() 
            @Override
            public void onResult(AccessToken accessToken) 
                String token=accessToken.getAccessToken();
            

            @Override
            public 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,艾特了我一下,给我吓得一哆嗦。

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

CSDN 社区图书馆,开张营业! 深读计划,写书评领图书福利~

借助百度ocr,实现一键识别图片中文字,就是这么酷!

...成了对简单带有背景的文字图片识别,后续会逐步增加对身份证、银行卡、驾驶证、车牌号的识别,所 查看详情

基于paddlelite的ocr识别身份证号码应用

一、概要现在的核酸检测,需要给身份证拍照,然后识别身份证号码,从而快速识别登记用户信息。同样的应用场景还有很多,本来要靠手动输入身份证号的操作,现在只要拍张照片就可以识别,大大提高工作效率。PaddleLite是... 查看详情

在线ocr证件识别软件如何使用?

我们知道身份证是我们基本的信息,在办理各种业务的时候都要用到它,输入身份证信息是很烦人的事情,一次,两次还好,多了我们就会烦躁,有些业务更需要完整的身份证信息,这时候我们可以用身份证识别软件啊,在线ocr... 查看详情

程序员的吃鸡大法利用ocr文字识别+百度算法搜索,玩转冲顶大会百万英雄芝士超人等答题赢奖金游戏

【先上一张效果图】: 一、原理:其实原理很简单:1.手机投屏到电脑;2.截取投屏画面的题目部分,进行识别,得到题目和三个答案;3.将答案按照一定的算法,进行搜索,得出推荐答案;4.添加了一些其他辅助功能,比如... 查看详情

证件识别,身份证识别,人脸校对,活体检测,ocr身份证识别

...情况下,为了提高效率、节省成本,同时提升用户体验,身份证识别已迅速被各个企业所应用。目前,市面上有身份证识别产品的公司大约有七八家,各家特点不一样,在选择身份证识别产品时要综合考量几家的优缺点。作为后... 查看详情

ocr软件能识别百度的验证码吗?

OCR软件能识别百度的验证码吗?参考技术A为什么不可以,二值化,锐化.......之类处理过之后图片是可以被识别的吧!!!! 参考技术B不可以的!本回答被提问者采纳 查看详情

一款android图文识别与扫描软件

...基于百度在业界领先的人工智能与深度学习技术,提供对身份证、银行卡、营业执照等常用卡片及证照的文字内容进行结构化识别的服务。功能身份证识别银行卡识别文字识别驾驶证识别行驶证识别车票识别发票识别营业执照识... 查看详情

java调用百度ocr接口实现文字识别(代码片段)

...字识别功能,由于之前有过使用百度云平台接口进行身份证识别的经历,因此这次也是自然而然的再次选择了百度AI平台,首先需要开通百度通用文字识别功能。然后我们需要创建一个应用:然后我们就可以进行... 查看详情

java调用百度ocr接口实现文字识别(代码片段)

...字识别功能,由于之前有过使用百度云平台接口进行身份证识别的经历,因此这次也是自然而然的再次选择了百度AI平台,首先需要开通百度通用文字识别功能。然后我们需要创建一个应用:然后我们就可以进行... 查看详情

私有云ocr身份证识别

私有云身份证识别产品是文通开发的一款基于服务器平台的身份证OCR识别服务程序,企业可将该识别服务部署在自有服务器上(云服务器或本地服务器),部署完成后,APP端、PC客户端、web端、微信H5端等均可发送识别请求,通... 查看详情

微信小程序实现ocr扫描识别(代码片段)

在小程序还发过程中,经常会遇到对证件(身份证、驾驶证、营业执照)的扫描识别认证功能;这里我根据自己的经历借鉴总结一下相关的方法;文章目录一、第三方插件:OCR支持1、添加第三方插件2、购... 查看详情

案例云链智运携手百度ocr,实现货运物流智能化升级

...的智能货运交易平台在新用户注册环节,接入百度OCR身份证识别、驾驶证识别、行驶证识别,实现了对司机身份信息和货车车辆信息的自动化录入, 查看详情

案例云链智运携手百度ocr,实现货运物流智能化升级

...的智能货运交易平台在新用户注册环节,接入百度OCR身份证识别、驾驶证识别、行驶证识别,实现了对司机身份信息和货车车辆信息的自动化录入, 查看详情

ios动态库(dynamic框架)的创建以及引用添加(embedbinary方式嵌入)

首先项目有需求,需要用到OCR识别功能(包括身份证正反面识别,银行卡识别),身份证识别基本已搞定,无论是识别速度还是识别精准度都在接受范围之内.银行卡识别这块开始用Card.io这个框架做测试,发现这个框架局限性比较大(只支... 查看详情

基于百度ocr提取图像中的文本(代码片段)

...及提高识别率就需要注册且付费。本文主要讲述如何通过百度OCR服务来识别图片中的文本。开通百度OCR服务登录百度的AI开放平台,在开放功能的文本识别模块选择通用文字识别,开通服务(下面图片是开通服务后的页面)。百... 查看详情

基于百度ocr提取图像中的文本(代码片段)

...及提高识别率就需要注册且付费。本文主要讲述如何通过百度OCR服务来识别图片中的文本。开通百度OCR服务登录百度的AI开放平台,在开放功能的文本识别模块选择通用文字识别,开通服务(下面图片是开通服务后的页面)。百... 查看详情

ocr软件是文字识别软件,怎么样用在百度文件中?

什么意思?是说百度文库中吗?ORC是识别图片中的文字的,对图片也有一定的要求,不同软件不一样的参考技术AOCR仅能把图像上的文字有条件的识别; 参考技术B用汉王文豪7600(图形OCR识别成WORD或EXCEL),支持图形、照片、屏... 查看详情

ocr的一些项目

OCR技术系列:身份证识别深度学习实践系列之–身份证上汉字及数字识别系统的实现https://github.com/Raymondhhh90/idcardocr:web部署,第二代居民身份证信息识别,速度略慢,待优化https://github.com/wzb19960208/idCardRecognition身份证... 查看详情