身份证OCR识别API是一种能够自动识别身份证上文字信息的技术,广泛应用于需要快速录入身份证信息的业务场景中。目前,市场上有多家公司提供这项服务,包括微信、腾讯云、华为云和阿里云等。
微信的身份证OCR识别接口支持小程序调用,能够识别身份证正反面的所有字段,如姓名、性别、民族、出生日期、住址、公民身份证号、签发机关和有效期限等。接口调用凭证为access_token,文件大小限制在2M以内,支持HTTPS调用和云调用两种方式2。
腾讯云提供的身份证识别服务,能够识别身份证正反面所有字段,并且支持多种增值能力,如身份证照片裁剪、人像照片裁剪以及多种告警功能。该服务的识别准确度达到99%以上,并且默认接口请求频率限制为20次/秒4。
华为云的身份证识别服务支持识别身份证图片中的文字内容,并将结果以JSON格式返回。该服务支持多种告警功能,如身份证翻拍、PS、模糊、反光等,并提供校验身份证号等信息的功能。用户可以根据自己的需求选择是否需要这些增值服务5。
阿里云的身份证识别服务支持自动区分身份证正反面,识别少数民族版式、临时身份证、生僻字等,并具备证件风险检测预警能力。该服务还支持图像增强功能,如自动旋转、畸变矫正和模糊图片增强等。用户可以根据自己的需求选择是否需要图案检测和身份证质量检测功能6。
综上所述,不同的云服务提供商都提供了功能丰富、准确度高的身份证OCR识别API,用户可以根据自己的具体需求选择合适的服务。
我们看下Java实现身份证OCR识别API
//阿里云地址 https://market.aliyun.com/apimarket/detail/cmapi00066594?spm=5176.730005.result.46.64f93524JFQL7Q#sku=yuncode6059400002
public static void main(String[] args) {
String host = "https://kzcardocr.market.alicloudapi.com";
String path = "/api-mall/api/idcard/ocr";
String method = "POST";
String appcode = "你自己的AppCode";
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + appcode);
//根据API的要求,定义相对应的Content-Type
headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
Map<String, String> querys = new HashMap<String, String>();
Map<String, String> bodys = new HashMap<String, String>();
bodys.put("image", "image");
bodys.put("url", "url");
try {
/**
* 重要提示如下:
* HttpUtils请从
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
* 下载
*
* 相应的依赖请参照
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
*/
HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
System.out.println(response.toString());
//获取response的body
//System.out.println(EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
e.printStackTrace();
}
}
返回的数据
{
"msg": "成功",
"success": true,
"code": 200,
"data": {
"result": 0, //0 :识别成功,1:识别失败
"side": "front", // front:正面,back :反面
"orderNo": "202304031918463633573",
"info": {
"number": "330*********1011", //身份证号
"address": "浙江省*****651号", //住址
"month": "8", //出生月份
"nation": "汉", //民族
"year": "1981", //出生年份
"sex": "男", //性别
"name": "张*江", //姓名
"day": "16" //出生-日
}
}
}
{
"msg": "成功",
"success": true,
"code": 200,
"data": {
"orderNo": "202304031918463633574",
"result": 0, //0 :识别成功,1:识别失败
"side": "back",// back :反面
"info": {
"authority": "上海市公安局**局",//签发机关
"timelimit": "20220716-20420716"//有效期限
}
}
}