香港身份证识别接口
接口描述
用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。
接口说明
请求URL:http://api.exocr.com/ocr/v1/hk_id
请求方式:HTTP Post
返回格式:json
Header
参数 | 值 |
---|---|
Content-Type | 使用二进制方式时,为multipart/form-data;使用base64和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图像为准。 |
返回结果
字段 | 说明 | 类型 | 备注 |
---|---|---|---|
error_code | 错误码 | Int | 0:正确,1:无法识别,2:图像格式错误 |
description | 结果描述 | String | |
request_id | 唯一请求标识符 | String | 用于回溯问题 |
recognize_time | 识别所用时间 | Int | 毫秒为单位 |
result | 识别结果列表 | Array | |
crop_img | 身份证切割图 | String | Base64字符串 |
face_img | 大头照切割图 | String | Base64字符串 |
chinese_name | 中文姓名 | Array | |
date_of_issue | 签发日期 | Array | |
idno | 身份证号码 | Array | |
date_of_birth | 出生日期 | Array | |
permanent | 永久居民 | Array | |
english_name | 英文姓名 | Array | |
gender | 性别 | Array | |
chinese_key | 该字段中文含义 | String | |
words | 识别结果 | String | utf-8格式 |
score | 照片可信度 | Float | 取值范围为0~1 |
quad | 四个顶点坐标 | String | 所在区域的四个点,依次为左上,右上,右下,左下四个点的坐标值 |
position | 位置矩形框 | Array | 以左上角为基准,距离左侧,上侧,右侧矩形框长度,下侧矩形框长度 |
available_count | 识别剩余可用次数 | Int | 次数不足时无法继续识别,可在控制台进行充值次数 |
left | 位置值 | Int | 距离原图左侧距离x,单位为像素 |
top | 位置值 | Int | 距离原图上方距离y,单位为像素 |
width | 位置值 | Int | 字段所在图框宽度w,单位为像素 |
height | 位置值 | Int | 字段所在图框高度h,单位为像素 |
code | 电码 | Object | |
id_mark | 证件标记 | Object | |
date_of_first_issue | 首次签发日期 | Object |
调用示例
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/hk_id";
//设置请求参数
Map<String, String> params = new HashMap<String, String>();
params.put("app_key", "#####");
params.put("app_secret", "#####");
//设置识别图像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");
//发送请求,得到识别结果
result = HttpClientUtils.doPost(url, params);
System.out.println(result);
/**
* 二进制
*/
//设置请求参数
params.put("app_key", "#####");
params.put("app_secret", "#####");
//拿到本地图像,写入数据流
File file = new File("/Users/mac/logs/test.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": {
"face_img": "",
"crop_img": "",
"chinese_name": {
"quad": "79,133,123,133,123,175,79,175",
"chinese_key": "中文姓名",
"score": 0.99966919,
"words": "龍子鑫",
"position": {
"width": 240,
"top": 178,
"height": 37,
"left": 87
}
},
"date_of_issue": {
"quad": "347,563,526,559,526,594,347,598",
"chinese_key": "签发日期",
"score": 0.99514496,
"words": "18-08-06",
"position": {
"width": 179,
"top": 559,
"height": 39,
"left": 347
}
},
"idno": {
"position": {
"width": 238,
"top": 545,
"height": 45,
"left": 762
},
"chinese_key": "身份证号码",
"score": 0.9941597,
"words": "P958270(2)",
"quad": "762,553,999,545,1000,583,763,590"
},
"date_of_birth": {
"quad": "340,362,527,356,528,387,341,393",
"chinese_key": "出生日期",
"score": 0.99998206,
"words": "25-11-1975",
"position": {
"width": 188,
"top": 356,
"height": 37,
"left": 340
}
},
"permanent": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "永久居民",
"score": 0.0,
"words": "Y",
"quad": "0,0,0,0,0,0,0,0"
},
"english_name": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "英文姓名",
"score": 0.99401027,
"words": "LONG, ZiXin",
"quad": "87,182,326,178,327,211,87,215"
},
"gender": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "性别",
"score": 0.99856663,
"words": "男",
"quad": "657,350,736,346,738,382,659,386"
}
},
"error_code": 0,
"description": "识别成功",
"request_id": "814E6211B2F44465BB2523B590934A49",
"recognize_time": 489,
"available_count": 687,
"version": null
}