一款支持身份证、驾驶证、护照、车牌等证件识别插件

2024-09-03 15:20

本文主要是介绍一款支持身份证、驾驶证、护照、车牌等证件识别插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CardOCR

证件识别是一个apk插件,为应用开发方提供身份证、驾驶证、车牌号、护照等的OCR识别服务,如通过扫描身份证,可以快速识别二代身份证上的身份证号等信息,并将这些信息返回给第三方应用。

最新版本的OCR识别库具备以下明显优势:

  1. 识别率大幅提高,车牌号和身份证正常情况下毫秒级完成识别,成功率达到99%以上。
  2. 车牌识别除了支持普通的蓝色、黄色、警用等车牌外,同时也支持新能源车牌。
  3. 驾驶证识别率大幅提升,证件识别实现自动对焦锁定,用户体验大幅提升。

使用指南

接口简介

证件识别APK为通过Activity意图调用的方式为业务应用提供服务。在调用接口方法前,务必保证识别库插件已经安装。

插件可以提示用户手动安装,也可由业务应用方内置,出发安装。插件的包名是:cn.lvzhulin.zjsb

组件所提供的接口调用方法都是通过隐试启动activity并结合onActivityResult方法回调实现结果的回传来实现的,

【示例代码】

Intent intent = new Intent(Action 名称,下面的接口详细调用中会阐述”);
Intent.putExtra(“pkgName”, “第三方应用(调用方)的包名”);
startActivityForResult(intent, REQUEST_CODE);

另外,API接口回传的数据结构有多种,包括直接返回部分数据信息,以及将所有识别的结果转换为json字符串后返回,调用方可以结合业务场景灵活选择处理。

接口描述

插件根据业务场景的不通提供两种调用方式,第一种是直接通过相机拍照识别的调用,另一种是通过扫描本地已经存在的图片来完成识别,调用方可以根据业务场景需求灵活选择。

身份证识别

Activity启动意图Action定义为: cn.lvzhulin.zjsb.sfzsb.action

【示例代码】

请求启动:

Intent intent = new Intent("cn.lvzhulin.zjsb.sfzsb.action");
Intent.putExtra(“pkgName”, “com.jarlen.app”);
/*身份证识别标识,
*传0或者不传表示是识别正面,
*传1表示识别反面*/
Intent.putExtra(“sfzbs”,1);
startActivityForResult(intent, 11);

结果返回:

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode != RESULT_OK) {return;}if (requestCode == 11) {/*获取身份证号*/kString sfzh = data.getStringExtra("sfzh");/*json字符串包括姓名、性别、年龄、名族、身份证号、居住地址等所有信息*/String json = data.getStringExtra("json");}
}
字段描述
xm姓名
xb性别
mz名族
sfzh身份证号
csrq出生日期
csdz出生地址
blzd保留字段
-----------------------------------以下是身份证背面识别数据
qfjg签发机关
yxqx有效期限
qfrq签发日期
yxqz有效期至

车牌识别

Activity启动意图Action定义为: cn.lvzhulin.zjsb.cpsb.action

【示例代码】

请求启动

Intent intent = new Intent("cn.lvzhulin.zjsb.cpsb.action");
Intent.putExtra(“pkgName”, “包名”);
startActivityForResult(intent, 11);

结果返回

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode != RESULT_OK) {return;}if (requestCode == 11) {String number = data.getStringExtra("number"); String color = data.getStringExtra("color");}
}
字段描述
number车牌号
color车牌颜色

驾驶证识别

Activity启动意图Action定义为: cn.lvzhulin.zjsb.jszsb.action

【示例代码】

请求启动

Intent intent = new Intent("cn.lvzhulin.zjsb.jszsb.action");
Intent.putExtra(“pkgName”, “包名”);
startActivityForResult(intent, 11);

结果返回

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode != RESULT_OK) {return;}if (requestCode == 11) {/*包括姓名、性别、身份证号等所有信息*/String json = data.getStringExtra("json");}
}

结果json包括姓名、性别、身份证号等所有信息,通过JSONObject或转为Bean获取,主要字段参数描述如下:

字段描述
xm姓名
xb性别
sfzh身份证号
csrq出生日期
csdz出生地址
cslzrq初始领证日期
zjcx准驾车型
yxqqsrq有效期起始日期
yxjzrq有效截止日期
yxqx有效期限
blzd保留字段

护照识别

Activity启动意图Action定义为: cn.lvzhulin.zjsb.passport.action

【示例代码】

请求启动

Intent intent = new Intent("cn.lvzhulin.zjsb.passport.action");
Intent.putExtra(“pkgName”, “包名”);
startActivityForResult(intent, 11);

结果返回

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode != RESULT_OK) {return;}if (requestCode == 11) {/*获取所有信息*/String json = data.getStringExtra("data");}
}

结果json包括姓名、性别、身份证号等所有信息,通过JSONObject或转为Bean获取,主要字段参数描述如下:

字段描述
hzlx护照类型
hzhmmrz护照号码MRZ
bgxm本国姓名
ywxm英文姓名
xb性别
csrq出生日期
yxqz有效期至
qfgdm签发国代码
ywx英文姓
ywm英文名
mrz1MRZ1
mrz2MRZ2
czrgjdm持证人国籍代码
hzhm护照号码
csdd出生地点
qfdd签发地点
qfrq签发日期
rfid_mrzRFID MRZ
ocr_mrzOCR MRZ
csddpy出生地点拼音

浏览本地图片识别

Activity启动意图Action定义为: cn.lvzhulin.zjsb.picture.action

【代码示例】

Intent intent = new Intent(“cn.lvzhulin.zjsb.picture.action”); //action名称
intent.putExtra(“pkgName”, “调用方的包名”);
intent.putExtra(“picture_type”, type);//type是业务类型,下面会定义
intent.putExtra(“path”, filepath);//path是图片的存储路径,包括文件名
startActivityForResult(intent, REQUEST_CODE);

其中type定义如下:

type类型名称传入值
识别车牌1
识别身份证2
识别驾照3
识别护照4

通过onActivityForResult获取,通过intent.getIntExtra(“type”)获取业务类型,然后根据以上每一个业务定义的返回结果标识来获取结果,

例如:调用接口传入本地的车牌号图片路径识别车牌号:

Intent intent = new Intent(“cn.lvzhulin.zjsb.picture.action”); 
intent.putExtra(“pkgName”, “调用方的包名”);
intent.putExtra(“picture_type”, 1); //1标识识别车牌
intent.putExtra(“path”, “图片路径”);//车牌号图片存储路径
startActivityForResult(intent, REQUEST_CODE);

结果返回:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode != RESULT_OK) {return;}if (requestCode == 11) {int type = data.getIntExtra("type", 0);if (type == 0) { //type是0表示识别失败/*识别失败*/} else if (type == 1) { //type是1表示识别车牌String number = data.getStringExtra("number"); //获取车牌号信息String color = data.getStringExtra("color");//获取车牌颜色}}
}

数据获取成功后,可以参考【车牌识别】结果来处理;
**注意!**如果获取到的type值是0,标识识别失败!

使用授权

授权信息

使用前,需提供调用方信息,具体如下:

类别说明
调用方应用签名可通过命令’keytool -printcert -jarfile xxx.apk’或其他工具读取
应用包名与build.gradle中配置的applicationId一致

费用说明

类别描述
按应用99元/年
按签名298元/年
终身698元/年

定制服务

类别描述
定制UI按照定制UI需求范围,评估投入进行收费
新增功能按照定制需求范围,评估投入进行收费
    |

费用说明

类别描述
按应用99元/年
按签名298元/年
终身698元/年

定制服务

类别描述
定制UI按照定制UI需求范围,评估投入进行收费
新增功能按照定制需求范围,评估投入进行收费

这篇关于一款支持身份证、驾驶证、护照、车牌等证件识别插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133333

相关文章

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

eclipse安装subversion(SVN)版本控制插件

陈科肇 查看插件更新站点 网址:http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 网站截图: 根据自己的eclipse版本,选择需要的更新站点. 使用eclipse集成subservion插件 Help > Install New Software…> 等待下载安装插件…

Weex入门教程之2,Android Studio安装Weex插件

插件位置及描述 https://plugins.jetbrains.com/idea/plugin/8460-weex 貌似对windows还不是很支持,先放着吧。 安装 插件功能 先预览下都有什么功能 安装完成Weex插件后,如果在main toolbar找不到这些功能图标,那么就需要手动添加到main toolbar 添加到main toolbar 红框内就是

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

mybatis框架基础以及自定义插件开发

文章目录 框架概览框架预览MyBatis框架的核心组件MyBatis框架的工作原理MyBatis框架的配置MyBatis框架的最佳实践 自定义插件开发1. 添加依赖2. 创建插件类3. 配置插件4. 启动类中注册插件5. 测试插件 参考文献 框架概览 MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射,为开发者提供了极大的灵活性和便利性。以下是关于M