名片識別__API介紹_文字識別_人工智能圖像類-阿裏雲
本頁麵主要介紹服務對應的接口和返回結果中的關鍵字段的含義,請在閱讀本頁麵之前,了解請求數據格式介紹,了解輸入輸出的通用數據格式。 此外,在本頁最後,附上了名片識別服務調用的程序示例,以供參考。
請求接口
雲市場接口
- 請求方法: POST
- 請求url: 在雲市場搜索
印刷文字識別-名片識別
,在API接口
中找到調用地址
數加接口
- 請求方法: POST
- 請求url: 打開管理控製台,接口名稱選擇
ocr_business_card
,查看請求地址
請求參數
參數名稱 | 參數類型 | 描述 | 默認值 |
---|---|---|---|
image | string | dataType為50, dataValue是base64編碼後的圖像數據, | 空字符串 |
POST請求body 示例如下:
{
"inputs": [
{
"image": {
"dataType": 50, #50表示image的數據類型為字符串
"dataValue": "base64_image_string" #圖片以base64編碼的string/oss圖片鏈接
}
}]
}
返回結果格式
返回結果格式如下:
{
"outputs": [
{
"outputLabel": "ocr_businesscard",
"outputMulti": {},
"outputValue": {
"dataType": 50,
"dataValue": "{
"name": "張三", #姓名
"company": ["阿裏巴巴", "阿裏巴巴有限公司" ], #公司結果數組,數組可能為空
"department": ["市場部" ], #部門結果數組,數組可能為空
"title" : [ "經理" ], #職位結果數組,數組可能為空
"tel_cell" : ["15234563443"], #手機結果數組,數組可能為空
"tel_work": ["057185212345"], #座機結果數組,數組可能為空
"addr": ["浙江省杭州市西湖區文一西路969號"], #地址結果數組,數組可能為空
"email": [], #郵箱結果數組 ,數組可能為空
"request_id" : 20160822_32423dfsa23432f #請求對應的唯一表示
"success": true #識別成功與否 true/false
}"
}
}]
}
返回結果是json格式,存放在dataValue字段對應的json String
(不是json object)中,主要有如下字段:
- name: 姓名, 類型為字符串
- company: 公司, 類型為字符串數組,如果沒有該字段,數組為空
- department: 部門, 類型為字符串數組,如果沒有該字段,數組為空
- title: 職位, 類型為字符串數組,如果沒有該字段,數組為空
- tel_cell: 手機, 類型為字符串數組,如果沒有該字段,數組為空
- tel_work: 座機, 類型為字符串數組,如果沒有該字段,數組為空
- addr: 地址, 類型為字符串數組,如果沒有該字段,數組為空
- email(暫無): 郵箱, 類型為字符串數組,如果沒有該字段,數組為空
- request_id: 請求對應的唯一表示, 用戶可以保存該字段用以進行問題追溯,類型為字符串
- success: 識別流程是否出現異常, false表示識別失敗,true表示識別成功, 類型為布爾型
程序示例
雲市場
在雲市場搜索印刷文字識別-名片識別
,在API接口
中找到請求示例
數加平台
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import sun.misc.BASE64Encoder;
import org.json.JSONObject;
import org.json.JSONArray;
import org.json.JSONException;
public class BusinessCard {
/*
* 獲取參數的json對象
*/
public static JSONObject getParam(int type, JSONObject dataValue) {
JSONObject obj = new JSONObject();
try {
obj.put("dataType", type);
obj.put("dataValue", dataValue);
} catch (JSONException e) {
e.printStackTrace();
}
return obj;
}
/*
* 獲取參數的json對象
*/
public static JSONObject getParam(int type, String dataValue) {
JSONObject obj = new JSONObject();
try {
obj.put("dataType", type);
obj.put("dataValue", dataValue);
} catch (JSONException e) {
e.printStackTrace();
}
return obj;
}
public static void main(String[] args) {
String img_file = "businesscard.jpg";
String service_url = "your-service-url";
String ak_id = "your access key id";
String ak_secret = "your access key secret";
// 對圖像進行base64編碼
String img_base64 = "";
try {
File file = new File(img_file);
byte[] content = new byte[(int) file.length()];
FileInputStream finputstream = new FileInputStream(file);
finputstream.read(content);
finputstream.close();
img_base64 = (new BASE64Encoder()).encode(content);
} catch (IOException e) {
e.printStackTrace();
return;
}
// 拚裝請求body的json字符串
JSONObject request_obj = new JSONObject();
try {
JSONObject obj = new JSONObject();
JSONArray input_array = new JSONArray();
obj.put("image", getParam(50, img_base64));
JSONObject config_obj = new JSONObject();
config_obj.put("is_oss_data", false);
obj.put("configure", getParam(50, config_obj.toString()));
input_array.put(obj);
request_obj.put("inputs", input_array);
} catch (JSONException e) {
e.printStackTrace();
}
String body = request_obj.toString();
// Sender代碼參考
// https://help.aliyun.com/document_detail/shujia/OCR/ocr-api/sender.html
String result = Sender.sendPost(service_url, body, ak_id, ak_secret);
System.out.println(result);
// 解析請求結果
try {
JSONObject result_obj = new JSONObject(result);
JSONArray output_array = result_obj.getJSONArray("outputs");
// 取出結果json字符串
String output = output_array.getJSONObject(0)
.getJSONObject("outputValue").getString("dataValue"); //請注意,dataValue字段對應的是一個字符串,不是json object
JSONObject out = new JSONObject(output);
if (out.getBoolean("success")) {
// code to get result
// 獲取姓名, 隻有姓名不是數組
String name = out.getString("name");
// 獲取所有公司結果
JSONArray company_array = out.getJSONArray("company");
// 獲取手機號數組
JSONArray tel_cell_array = out.getJSONArray("tel_cell");
// 請求對應的唯一表示,可以用於事後debug問題
JSONArray request_id_array = out.getJSONArray("request_id");
StringBuilder companys = new StringBuilder();
StringBuilder cells = new StringBuilder();
// 所有公司
for (int i = 0; i < company_array.length() - 1; ++i) {
companys.append(company_array.getString(i) + ",");
}
companys.append(company_array.getString(company_array.length() - 1));
// 所有手機號
for (int i = 0; i < tel_cell_array.length() - 1; ++i) {
cells.append(tel_cell_array.getString(i) + ",");
}
cells.append(tel_cell_array.getString(tel_cell_array.length() - 1));
System.out
.println("name is " + name + ", Companys is "
+ companys.toString() + ",Cells is "
+ cells.toString());
} else {
System.out.println("predict error");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
最後更新:2016-11-23 16:04:18
上一篇:
英文識別__API介紹_文字識別_人工智能圖像類-阿裏雲
下一篇:
發送請求示例代碼__API介紹_文字識別_人工智能圖像類-阿裏雲
管理索引__數據庫開發_用戶指南(RDBMS)_數據管理-阿裏雲
數據推送__性能篇_最佳實踐_開放搜索-阿裏雲
報錯信息匯總__常見問題_短信服務-阿裏雲
編碼格式設置__腳本開發_Lite用戶使用手冊_性能測試-阿裏雲
開始使用阿裏雲MNS__快速入門_消息服務-阿裏雲
修改本機係統Hosts文件來測試Web應用防火牆__常見問題_常見問題_Web 應用防火牆-阿裏雲
ECS Linux 服務器如何配置網站以及綁定域名__服務與應用_Linux操作運維問題_雲服務器 ECS-阿裏雲
雲服務器 ECS Linux SSH 啟用 UseDNS 導致連接速度變慢__遠程登錄 (SSH)_Linux操作運維問題_雲服務器 ECS-阿裏雲
發送事務消息__Java SDK_TCP 接入(專業)_消息隊列 MQ-阿裏雲
美食團購_阿裏雲幫助中心-阿裏雲,領先的雲計算服務提供商
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲