名片识别
接口描述
用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。
接口说明
请求URL:http://api.exocr.com/ocr/v1/business_card
请求方式:HTTP Post
返回格式:json
Header
参数 | 值 |
---|---|
Content-Type | 使用二进制方式时,为multipart/form-data;使用base64时,为application/x-www-form-urlencoded |
请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
app_key | 是 | string | 请在控制台->我的应用中获取 |
app_secret | 是 | string | 请在控制台->我的应用中获取 |
image_base64 | 否 | string | 证件图像base64编码。image_base64、image_binary两个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上两个参数,则以image_base64图像为准。 |
Image_binary | 否 | data | 证件图像二进制。image_base64、image_binary两个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上两个参数,则以image_base64图像为准。 |
调用示例
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 FaceCompareTest {
public static void main(String[] args) throws FileNotFoundException {
/**
* base64
*/
//识别url
String url = " http://api.exocr.com/ocr/v1/business_card";
//设置请求参数
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);
/**
* 二进制
*/
//设置请求参数
params.put("app_key", "#####");
params.put("app_secret", "#####");
//拿到本地图像,写入数据流
File file = new File("/Users/mac/logs/businessCard.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 {
in1.close();
in2.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(result);
}
}
返回示例
{
"result": {
"Fax": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "传真",
"score": 1.0,
"words": ""
},
"Tel": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "电话",
"score": 1.0,
"words": ""
},
"Name": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "姓名",
"score": 1.0,
"words": ""
},
"Zip": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "邮编",
"score": 1.0,
"words": ""
},
"Title": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "职位",
"score": 1.0,
"words": ""
},
"Mobile": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "手机",
"score": 1.0,
"words": ""
},
"Company": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "公司",
"score": 1.0,
"words": ""
},
"Address": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "地址",
"score": 1.0,
"words": ""
},
"Department": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "部门",
"score": 1.0,
"words": ""
},
"Homepage": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "主页",
"score": 1.0,
"words": ""
},
"Email": {
"position": {
"width": 0,
"top": 0,
"height": 0,
"left": 0
},
"chinese_key": "邮箱",
"score": 1.0,
"words": ""
}
},
"error_code": 0,
"description": "识别成功",
"request_id": "2CF72F651A8D48C28074E051DEBF2971",
"recognize_time": 206,
"dbg_xml": "",
"available_count": 10000,
"version": null
}
返回说明
通用参数
参数 | 类型 | 说明 |
---|---|---|
result | array | 返回结果数组,包括所有字段的识别信息 |
error_code | int | 错误码,返回0为正确,其他为错误 |
description | string | 识别结果描述 |
request_id | string | 请求唯一标识符 |
recognize_time | int | 识别所用时间,单位为毫秒 |
available_count | int | 识别剩余可用次数,次数不足时无法继续识别,可在控制台进行充值次数 |
名片识别特有参数
字段 | 说明 | 类型 | 备注 |
---|---|---|---|
fax | 传真 | Array | |
tel | 电话 | Array | |
name | 姓名 | Array | |
zip | 邮编 | Array | |
title | 职位 | Array | |
mobile | 手机 | Array | |
company | 公司 | Array | |
address | 地址 | Array | |
department | 部门 | Array | |
homepage | 主页 | Array | |
邮箱 | Array | ||
chinese_key | 该字段中文含义 | String | |
words | 识别结果 | String | utf-8格式 |
score | 照片可信度 | Float | 取值范围为0~1 |
quad | 四个顶点坐标 | String | 所在区域的四个点,依次为左上,右上,右下,左下四个点的坐标值 |
position | 位置矩形框 | Array | 以左上角为基准,距离左侧,上侧,右侧矩形框长度,下侧矩形框长度 |
left | 位置值 | Int | 距离原图左侧距离x,单位为像素 |
top | 位置值 | Int | 距离原图上方距离y,单位为像素 |
width | 位置值 | Int | 字段所在图框宽度w,单位为像素 |
height | 位置值 | Int | 字段所在图框高度h,单位为像素 |
错误码error_code说明
错误信息 | 错误码 | 说明 |
---|---|---|
GEN_OK | 0 | 调用成功 |
GEN_PARAM | 4001 | 参数非法,请重试 |
GEN_AUTH | 4002 | 授权验证未通过,请检查appKey与appSecret是否正确 |
GEN_RECHARGE | 4003 | 使用次数不足,请充值 |
GEN_IMAGE_PARSE | 4004 | 图片解析错误,请检查参数 |
GEN_IMAGE_SIZE | 4005 | 图片文件过大,请调整后重试 |
GEN_IMAGE_UPLOAD | 4006 | 图片上传错误,请重试 |
GEN_SERVER_BUSY | 4007 | 服务器忙,请重试 |
GEN_RECO_FAILED | 4008 | 识别失败 |
GEN_LIMIT_FAILED | 4009 | 请求过于频繁,请稍后再试 |