支持 JAVA版本:1.7+
使用maven依赖:

添加以下依赖即可。其中版本号可在maven官网查询

<dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>${version}</version>
</dependency>

1.新建AipOcr
AipOcr是Optical Character Recognition的Java客户端,为使用Optical Character Recognition的开发人员提供了一系列的交互方法。
用户可以参考如下代码新建一个AipOcr,初始化完成后建议单例使用,避免重复获取access_token:

import com.baidu.aip.ocr.AipOcr;public class AipOcrSingleton {public static volatile AipOcr aipOcr = null;//设置APPID/AK/SKpublic static final String APP_ID = "你的appid";public static final String API_KEY = "你的apikey";public static final String SECRET_KEY = "你的secretkey";public static final int CONNECTION_TIME_OUT = 2000;//建立连接的超时时间(单位:毫秒)public static final int SOCKET_TIME_OUT = 6000;//通过打开的连接传输数据的超时时间(单位:毫秒)private AipOcrSingleton(){}public static AipOcr getAipOcr(){if(aipOcr == null){synchronized (AipOcrSingleton.class){if(aipOcr == null){aipOcr = new AipOcr(APP_ID, API_KEY, SECRET_KEY);// 可选:设置网络连接参数aipOcr.setConnectionTimeoutInMillis(CONNECTION_TIME_OUT);aipOcr.setSocketTimeoutInMillis(SOCKET_TIME_OUT);// 可选:设置代理服务器地址, http和socket二选一,或者均不设置// client.setHttpProxy("proxy_host", proxy_port);  // 设置http代理// client.setSocketProxy("proxy_host", proxy_port);  // 设置socket代理}}}return aipOcr;}
}

main方法测试下:

选择本地的一张身份证

import java.util.HashMap;import org.json.JSONException;
import org.json.JSONObject;import com.baidu.aip.ocr.AipOcr;
import com.bimface.sample.ocr.baidu.AipOcrSingleton;public class Idcard {public static void main(String[] args) throws JSONException {// 新建的ApiOcrAipOcr aipOcr = AipOcrSingleton.getAipOcr();// 传入可选参数调用接口HashMap<String, String> options = new HashMap<String, String>();/*** 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括: - true:检测朝向; -* false:不检测朝向。*/options.put("detect_direction", "true");/*** 是否开启身份证风险类型(身份证复印件、临时身份证、身份证翻拍、修改过的身份证)功能,默认不开启,* 即:false。可选值:true-开启;false-不开启*/options.put("detect_risk", "false");options.put("probability", "true");options.put("language_type", "CHN_ENG");// front:身份证含照片的一面;back:身份证带国徽的一面String idCardSide = "front";// 参数为二进制// byte[] bytes = file.getBytes();// 参数为本地路径String image = "C:/Users/Administrator/Desktop/1.jpg";JSONObject res = aipOcr.idcard(image, idCardSide, options);System.out.println(res.toString(2));}}

运行结果如下:

{"log_id": 2820901037396161190,"words_result": {"姓名": {"words": "徐乐","location": {"top": 449,"left": 681,"width": 263,"height": 113}},"民族": {"words": "汉","location": {"top": 683,"left": 1186,"width": 65,"height": 78}},"住址": {"words": "安徽省宿州市埇桥区朱仙庄镇","location": {"top": 1088,"left": 653,"width": 1051,"height": 224}},"公民身份号码": {"words": "652901196611026716","location": {"top": 1620,"left": 1055,"width": 1426,"height": 103}},"出生": {"words": "19661102","location": {"top": 873,"left": 657,"width": 836,"height": 90}},"性别": {"words": "男","location": {"top": 679,"left": 664,"width": 74,"height": 88}}},"words_result_num": 6,"image_status": "normal","direction": 0
}

项目实战时获取身份对应信息

 @RequestMapping("/idcard")@ResponseBodypublic Map<String, Object> ocr(MultipartFile file) throws IOException {AipOcr aipOcr = AipOcrSingleton.getAipOcr();// 传入可选参数调用接口HashMap<String, String> options = new HashMap<String, String>();/*** 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括: - true:检测朝向; -* false:不检测朝向。*/options.put("detect_direction", "true");/*** 是否开启身份证风险类型(身份证复印件、临时身份证、身份证翻拍、修改过的身份证)功能,默认不开启,* 即:false。可选值:true-开启;false-不开启*/options.put("detect_risk", "false");options.put("probability", "true");options.put("language_type", "CHN_ENG");// front:身份证含照片的一面;back:身份证带国徽的一面String idCardSide = "front";// 将文件转为二进制byte[] bytes = file.getBytes();JSONObject res = aipOcr.idcard(bytes, idCardSide, options);// 获取对应的身份证信息Map<String, Object> map = new HashMap<>();JSONObject words_result = res.getJSONObject("words_result");if (words_result == null) {map.put("error", "error");return map;}for (String key : words_result.keySet()) {JSONObject result = words_result.getJSONObject(key);String info = result.getString("words");switch (key) {case "姓名":map.put("name", info);break;case "性别":map.put("sex", info);break;case "民族":map.put("nation", info);break;case "出生":map.put("birthday", info);break;case "住址":map.put("address", info);break;case "公民身份号码":map.put("idNumber", info);break;case "签发机关":map.put("issuedOrganization", info);break;case "签发日期":map.put("issuedAt", info);break;case "失效日期":map.put("expiredAt", info);break;}}return map;}

当用户选择身份证后,将信息展示在页面不需要手动录入

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>身份证 - 验证</title>
<script src="/js/jquery-3.4.1.min.js"></script>
</head>
<body><form><div>身份证:<input type="file" id="file" name="file"></div><div>姓名:<input type="text" id="name"></div><div>民族:<input type="text" id="mz"></div><div>住址:<input type="text" id="zz"></div><div>身份证号码:<input type="text" id="id"></div><div>出生日期:<input type="text" id="b"></div><div>性别:<input type="text" id="sex"></div><div>签发机关:<input type="text" id="issuedOrganization"></div><div>签发日期:<input type="text" id="issuedAt"></div><div>失效日期:<input type="text" id="expiredAt"></div><div><input type="button" id="upload" value="上传" /></div></form></body><script type="text/javascript">
//选择图片显示
$(function () {$("#file").change(function () {var formData = new FormData();formData.append("file", document.getElementById("file").files[0]);   $.ajax({url: "/ocr/idcard",type: "POST",data: formData,/***必须false才会自动加上正确的Content-Type*/contentType: false,/*** 必须false才会避开jQuery对 formdata 的默认处理* XMLHttpRequest会对 formdata 进行正确的处理*/processData: false,success: function (data) {if (data != null) {$("#name").val(data["name"]);$("#mz").val(data["nation"]);$("#zz").val(data["address"]);$("#id").val(data["idNumber"]);$("#b").val(data["birthday"]);$("#sex").val(data["sex"]);}if (data == null) {alert("上传失败!");}},error: function () {alert("上传失败!");}});});
});
</script></html>

百度智能云OCR身份证识别-SDK相关推荐

  1. 调用百度智能云OCR接口识别身份证和户口本

    一.百度智能云获取token类编写 package com.wy.gcserver.ocr.service;import org.slf4j.Logger; import org.slf4j.Logg ...

  2. Delphi 百度智能云 OCR API 调用控件

    百度智能云提供了OCR识别功能,其识别种类非常丰富,包括:卡证文字识别.通用场景文字识别.交通场景文字识别.财务票据文字识别...等等.无论是移动端,还是PC端,通过调用OCR服务,可以方便的识别成需 ...

  3. Linux下基于百度智能云平台人脸识别

    Linux下基于百度智能云平台人脸识别 1.百度智能云接口及简介 https://cloud.baidu.com/product/face   接口技术文档: 2.人脸检测属性分析项目示例  硬件平台 ...

  4. 基于百度智能云的人脸识别登陆系统

    基于百度智能云的人脸识别登陆系统 设计说明 后端项目结构 前端页面 项目版本1下载 使用说明 项目版本1的Gitee链接 项目版本2--基于人脸对比的登陆系统 项目2下载链接 版本2的Gitee链接 ...

  5. python:ocr图文识别(百度智能云API文字识别)

    文章目录 前言 一.创建账号和应用 二.具体步骤 1.第一种方式: 2.第二种方式 总结 前言 说道OCR图文识别,其实python也有在自己的库(以下是我了解,应该还有很多): 第一个 tesser ...

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

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

  7. 接入百度智能云的营业执照识别接口、工商信息查询(基础版)接口到实际业务,参考代码

    我的代码放在公共模块如下: 1.根据百度云官方文档-SDK中心,下载sdk对应jar包,我下载下来的版本是bce-java-sdk.0.10.254 2.使用mvn命令手动引入jar mvn inst ...

  8. c#使用百度智能云,文字识别、语音识别demo总结

    c#调用流程如下 首先,需要在百度智能云平台领取免费资源,并创建应用,此时会得到AppID,API Key和Secret Key这三个参数,在调用该应用时需要使用这三个参数. 在VS2019中,选择项 ...

  9. QT + 百度智能云之人脸识别

    人脸识别 如果您对百度的API接口还没有一点点了解的话,建议在看本文之前先看一下AI接入指南和这篇. 基于qt+百度智能云API写的一个人脸识别示例,在用户的人脸库中进行搜索,用户需要创建人脸库和注册 ...

最新文章

  1. Windows Server 2008 R2 配置笔记,密码设置为任意长度,远程桌面终端连接数的设置...
  2. 复旦邱锡鹏教授公布《神经网络与深度学习》,中文免费下载 | 极客头条
  3. 记录ie暂时遇到的问题
  4. php获取数据库不同,php – 从master数据库获取数据库凭据,然后连接到不同的数据库...
  5. 彻底清除备份域服务器数据元的方法
  6. java消息头,Java网络编程从入门到精通:HTTP消息头字段
  7. 算法 --- 二叉树查找树的先序(中序、后序)遍历的js实现
  8. spring整合mybatis接口无法注入问题
  9. 角度控制_手机拍剪影,选择拍摄角度,还要控制画面亮度
  10. mysql常用sql总结_获取多个字段最大值最小值
  11. HDU 3333 Turing Tree(树状数组/主席树)
  12. 【Flutter】微信项目实战【03】我的界面搭建(下)
  13. python可视化计算器_使用Python自带GUI tkinter编写一个期权价格计算器
  14. 做正确的事永远都不迟
  15. 这10本豆瓣高分经典数学书,果断收藏!
  16. 利用计算机网络技术全面规划供应链中的,供应链是围绕核心企业,通过对商流、信息流、物流、资金流的控制,从采购原材料开始,制成中间产品以 - 试题答案网问答...
  17. 朋友圈一杠中间一个点_朋友圈只显示一条线 中间一个点 是被删除了么
  18. 21世纪十大热门编程语言大集合,看你适合哪一种?
  19. 解决vc6卡死的办法就是打上官方的原版VC6sp6补丁|VS6sp6补丁
  20. 微信小程序 手机号码验证

热门文章

  1. HorizontalScrollView重置滑动位置问题
  2. [转]孙正义:软银未来十年要做世界第一的移动互联网公司
  3. oneinstack安装java_Ubuntu 16.04安装OneinStack以及配置java开发环境
  4. winscp连接验证日志(具体情况参见会话日志): 使用用户名 root。验证失败
  5. Vmware虚拟机安装Ubuntu镜像
  6. .net网站部署 IIS只列出目录 浏览只显示目录浏览
  7. 数值计算·第九集:半正定规划(CVXPY版)
  8. 如何快速入门webvr的开发教程 - mxreality.js 简介
  9. Linux 服务器安装rancher-cli
  10. Vue基础知识和案例展示