港澳台居民往来内地通行证识别(含质检)
接口描述
用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。
接口说明
请求URL:http://api.exocr.com/ocr/v1/gat_pass_check
请求方式:HTTP Post
返回格式:json
Header
参数 | 值 |
---|---|
Content-Type | 使用二进制方式时,为multipart/form-data;使用url方式时,为application/x-www-form-urlencoded |
请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
app_key | 是 | string | 请在控制台->我的应用中获取 |
app_secret | 是 | string | 请在控制台->我的应用中获取 |
image_base64 | 否 | string | 图像base64串。image_base64、image_url、image_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。 |
image_url | 否 | string | 图像url地址。image_base64、image_url、image_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。 |
image_binary | 否 | data | 图像二进制。image_base64、image_url、image_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。 |
crop_face_image | 否 | int | 是否返回切割头像 , 0:不返回,1:返回,默认不返回 |
check_all_risks | 否 | int | 是否返回所有风险项 ,0:不返回,1:返回,默认不返回 |
调用示例
java(相关依赖库下载)
package com.exocr.httpclient;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import com.exocr.common.utils.HttpClientUtils;
public class Test {
public static void main(String[] args) throws FileNotFoundException {
/**
* base64
*/
//识别url
String url = " http://api.exocr.com/ocr/v1/gat_pass_check";
//设置请求参数
Map<String, String> params = new HashMap<String, String>();
params.put("app_key", "#####");
params.put("app_secret", "#####");
params.put("crop_image", "1");
//设置识别图像base64编码
params.put("image_base64", "base64ImageStr");
//发送请求,得到识别结果
String result = HttpClientUtils.doPost(url, params);
System.out.println(result);
/**
* url
*/
//设置请求参数、识别图像url
params.put("app_key", "#####");
params.put("app_secret", "#####");
params.put("image_url", "imageUrl");
params.put("crop_image", "1");
//发送请求,得到识别结果
result = HttpClientUtils.doPost(url, params);
System.out.println(result);
/**
* 二进制
*/
//设置请求参数
params.put("app_key", "#####");
params.put("app_secret", "#####");
params.put("crop_image", "1");
//拿到本地图像,写入数据流
File file = new File("/Users/mac/logs/idcard.png");
InputStream in = new FileInputStream(file);
//设置数据流
Map<String, InputStream> streamMap = new HashMap<String, InputStream>();
streamMap.put("image_binary", in);
//发送请求,得到识别结果
result = HttpClientUtils.doPostStream(url, params, streamMap);
//关闭io流
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(result);
}
}
返回示例
{
"result": {
"recognize_result": {
"idno": {
"words": "H60795522",
"score": 0.999973,
"position": {
"left": 456,
"top": 725,
"width": 371,
"height": 57
},
"quad": "456,731,826,725,827,776,457,782",
"chinese_key": "身份证号码"
},
"area": {...},
"issued_times": {...},
"english_name": {...},
"gender": {...},
"birthdate": {...},
"chinese_name": {...},
"authority": {...},
"valid": {...}
},
"check_result": [
{
"risk": 6,
"risk_list": [
6,
8
],
"risk_details": {
"edge_cover": {
"bboxes": [],
"classes": [],
"scores": [],
"class_names": []
},
"light_spot": {
"bboxes": [
[30,10,1093,10,1093,692,30,692]
],
"classes": [
1
],
"scores": [
0.8373299837112427
],
"class_names": [
"spot"
]
},
"blur_score": 0.4320279359817505
},
"quad": [30,10,1093,10,1093,692,30,692]
}
]
},
"error_code": 0,
"description": "识别成功",
"request_id": "4AF8DD0FCD71427A82FA884FB00CFEA8",
"recognize_time": 377,
"available_count": 9999763,
"version": null,
"rotation": 0,
"face_img": "",
"page_name": "港澳台居民来往内地通行证正面",
"dbg_xml": "",
"crop_image": ""
}
返回说明
通用参数
参数 | 类型 | 说明 | |
---|---|---|---|
result | Object | 结果列表,包括识别结果和质检结果 | |
error_code | int | 错误码,返回0为正确,其他为错误 | |
description | string | 识别结果描述 | |
request_id | string | 请求唯一标识符 | |
recognize_time | int | 识别所用时间,单位为毫秒 | |
available_count | int | 识别剩余可用次数,次数不足时无法继续识别,可在控制台进行充值次数 | |
version | String | 版本信息 | |
rotation | int | 旋转角度 | |
face_img | String | 人脸切图 | |
page_name | String | 分类结果 | |
crop_image | String | 图片切图 |
result参数
字段 | 说明 | 类型 | 备注 |
---|---|---|---|
recognize_result | 识别结果 | Object | |
recognize_result/area | 地区 | Object | |
recognize_result/chinese_name | 中文姓名 | Object | |
recognize_result/english_name | 英文姓名 | Object | |
recognize_result/birthdate | 出生日期 | Object | |
recognize_result/gender | 性别 | Object | |
recognize_result/valid | 有效期限 | Object | |
recognize_result/authority | 签发机关 | Object | |
recognize_result/idno | 身份证号码 | Object | |
recognize_result/idno2 | 身份证号码2 | Object | MRZ码中的身份证号码 |
recognize_result/issued_times | 换证次数 | Object | |
recognize_result/name | 身份证姓名 | Object | |
recognize_result/MRZCode | MRZ码 | Object | |
recognize_result/name/chinese_key | 该字段中文含义 | String | |
recognize_result/name/words | 该字段识别结果 | String | utf-8格式 |
recognize_result/name/score | 该字段可信度 | Float | 取值范围为0~1 |
recognize_result/name/quad | 字段顶点坐标 | String | 所在区域的四个点,依次为左上,右上,右下,左下四个点的坐标值 |
recognize_result/name/position | 字段位置矩形框 | Object | 以左上角为基准,距离左侧,上侧,右侧矩形框长度,下侧矩形框长度 |
check_result | 质检结果 | List | check_all_risks为0时值为空 |
check_result/risk | 图像风险类型 | Int | 5:遮挡,6:切边,7:卡变形,8:有光斑,9:未检测到证件 10:模糊 |
check_result/risk_list | 风险列表 | List | 包含检测到的所有风险 |
check_result/risk_details | 风险详情 | Object | |
check_result/risk_details/blur_score | 模糊风险分值 | float | 0.3以下清晰,值越大越模糊 |
check_result/risk_details/edge_cover | 遮挡风险详情 | Object | |
check_result/risk_details/edge_cover/classes | 类型 | List | 1:有遮挡 |
check_result/risk_details/edge_cover/bboxes | 坐标信息 | List | |
check_result/risk_details/edge_cover/class_names | 遮挡 | List | Occlusion遮挡 |
check_result/risk_details/edge_cover/scores | 分值 | Float | 0.4以上分数越大,遮挡越可信 |
check_result/risk_details/light_spot | 光斑风险详情 | Object | |
check_result/risk_details/light_spot/classes | 类型 | int | 1:有光斑 |
check_result/risk_details/light_spot/bboxes | 坐标信息 | List | |
check_result/risk_details/light_spot/class_names | 光斑 | String | Spot光斑 |
check_result/risk_details/light_spot/scores | 分值 | Float | 0.4以上分数越大,光斑越可信 |
check_result/quad | 顶点坐标 | List |