内地往来港澳台居民通行证识别(含质检)
接口描述
用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。
接口说明
请求URL:http://api.exocr.com/ocr/v1/ga_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/ga_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": "L12341540",
"score": 0.997697,
"position": {
"left": 434,
"top": 112,
"width": 103,
"height": 17
},
"quad": "435,112,537,114,536,129,434,127",
"chinese_key": "证号"
},
"chinese_name": {...},
"english_name": {...},
"birthdate": {...},
"gender": {...},
"validthru": {...},
"issue_authority": {...},
"issue_place": {...},
"MRPZ30": {...}
},
"check_result": [
{
"risk": 8,
"risk_list": [
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.43348073959350586
],
"class_names": [
"spot"
]
},
"blur_score": 0.16629208624362946
},
"quad": [30,10,1093,10,1093,692,30,692]
}
]
},
"error_code": 0,
"description": "识别成功",
"request_id": "394826B8BB5944D880A2BF4941CFBAF3",
"recognize_time": 370,
"available_count": 9999761,
"version": null,
"rotation": 0,
"face_img": "",
"page_name": "往来港澳通行证",
"dbg_xml": "",
"crop_image": null
}
返回说明
通用参数
参数 | 类型 | 说明 |
---|---|---|
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/page_name | 页面名称 | String | |
recognize_result/idno | 证号 | Object | |
recognize_result/chinese_name | 中文姓名 | Object | |
recognize_result/english_name | 英文姓名 | Object | |
recognize_result/birthdate | 出生日期 | Object | |
recognize_result/gender | 性别 | Object | |
recognize_result/validthru | 有效期限 | Object | |
recognize_result/issue_authority | 签发机关 | Object | |
recognize_result/issue_place | 签发地点 | Object | |
recognize_result/MRPZ30 | MRPZ30 | Object | |
recognize_result/gender/chinese_key | 字段中文含义 | String | |
recognize_result/gender/words | 字段识别结果 | String | utf-8格式 |
recognize_result/gender/score | 字段可信度 | Float | 取值范围为0~1 |
recognize_result/gender/quad | 字段顶点坐标 | String | 所在区域的四个点,依次为左上,右上,右下,左下四个点的坐标值 |
recognize_result/gender/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 |