身份证质检接口
接口描述
检测图片上身份证合规性,多张证件返回多个结果。
接口说明
请求URL:http://api.exocr.com/ocr/v2/id_card_check
请求方式:HTTP Post
返回格式:json
请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
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图像为准。 |
ignore_list | 否 | String | 要忽略的合法性校验的项的列表,可忽略的项包括:1:复印件,2:拍屏,3:假证件,4:有水印,5:遮挡,6:切边,7:卡变形,8:有光斑,9:未检测到身份证,10:模糊。例如,设置该参数为1,2,3,4,9,则会忽略复印件、拍屏、假证件、有水印、未检测到身份证。默认情况下所有项都不忽略。 |
crop_check_th | 否 | String | 切边检测的阈值,身份证质检时,身份证留边低于该阈值会被判定为切边告警,例如20。默认情况下,不设置该阈值,系统会根据图像大小设置该阈值,建议用户在非必要情况下,不要设置该阈值 |
check_all_risks | 否 | String | 强制进行所有合法性校验,0=不强制校验所有,1=强制校验所有,默认不强制校验所有强制校验所有后,会返回字段risk_list,包含所有检测到的风险点列表 |
返回结果
字段 | 说明 | 类型 | 备注 |
---|---|---|---|
error_code | 错误码 | Int | 0:正确,1:无法识别,2:图像格式错误 |
description | 结果描述 | String | |
request_id | 唯一请求标识符 | String | 用于回溯问题 |
recognize_time | 识别所用时间 | Int | 毫秒为单位 |
available_count | 识别剩余可用次数,次数不足时无法继续识别,可在控制台进行充值次数 | int | |
result | 识别结果列表 | List | |
bbox | 身份证图像坐标 | List | |
risk | 图像风险类型 | Int | 0:无,1:复印件,2:拍屏,3:假证件,4:有水印,5:遮挡,6:切边,7:卡变形,8:有光斑,9:未检测到身份证, 10:模糊 |
risk_details | 风险详情 | Object | |
segment | 切割风险详情 | Object | |
class | 类型 | Int | 1:身份证正常,2:身份证复印,3:身份证拍屏,4:身份证假证,5:身份证水印 |
score | 分值 | Float | 0.7以上可信,越高越可信 |
edge_cover | 遮挡风险详情 | Object | |
bboxes | 坐标信息 | List | |
classes | 类型 | List | 1:有遮挡 |
scores | 分数 | Float | 0.4以上分数越大,遮挡越可信 |
class_names | 遮挡 | List | Occlusion遮挡 |
blur_score | 模糊风险分值 | List | 0.3以下清晰,值越大越模糊 |
调用示例
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/v2/id_card_check";
//设置请求参数
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": [
{
"risk": 0,
"bbox": [
[
101,
54
],
[
607,
64
],
[
601,
380
],
[
95,
370
]
]
}
],
"error_code": 0,
"description": null,
"request_id": "C45BDC57AC7245309726C1F3862FA3AA",
"recognize_time": 10975,
"available_count": 689,
"version": null
}