1. 程式人生 > >關於百度COR文字識別JAVA伺服器端設定

關於百度COR文字識別JAVA伺服器端設定

https://blog.csdn.net/qq_22570497/article/details/77965497

 

首先要先下載百度雲提供的JAVASDK

下載地址:http://ai.baidu.com/sdk

之後可以根據百度提供的文件進行開發,文件地址:http://ai.baidu.com/docs#/ASR-Online-Java-SDK/top

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

將下載的aip-speech-java-sdk-version.zip解壓後,複製到工程資料夾中。

在Eclipse右鍵“工程 -> Properties -> Java Build Path -> Add JARs”。

新增SDK工具包speech_sdk-version.jar``aip-core-version.jar和第三方依賴工具包json-20160810.jar。(好像他提供的sdk中沒有version.jar)

其中,version為版本號,新增完成後,使用者就可以在工程中使用KG Java SDK。

 

新建Client

 

1.初始化一個Client。

 
  1. public class Sample {

  2.  
  3. //設定APPID/AK/SK

  4. public static final String APP_ID = "你的 App ID";

  5. public static final String API_KEY = "你的 Api ID";

  6. public static final String SECRET_KEY = "你的 Secret Key";

  7.  
  8. public static void main(String[] args) {

  9.  
  10. // 初始化一個FaceClient

  11. AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);

  12.  
  13. // 可選:設定網路連線引數

  14. client.setConnectionTimeoutInMillis(2000);

  15. client.setSocketTimeoutInMillis(60000);

  16.  
  17. // 呼叫API

  18. JSONObject res = client.asr("test.pcm", "pcm", 16000, null);

  19. System.out.println(res.toString(2));

  20. }

  21. }

在上面程式碼中,常量APP_ID在百度雲控制檯中建立,常量API_KEYSECRET_KEY是在建立完畢應用後,系統分配給使用者的,均為字串,用於標識使用者,為訪問做簽名驗證,可在AI服務控制檯中的應用列表中檢視。

 

 

介面呼叫

語音識別

介面描述

 

向遠端服務上傳整段語音進行識別

請求說明

  • 原始語音的錄音格式目前只支援評測 8k/16k 取樣率 16bit 位深的單聲道語音
  • 壓縮格式支援:pcm(不壓縮)、wav、opus、speex、amr
  • 系統支援語言種類:中文(zh)、粵語(ct)、英文(en)。

舉例:

 
  1. public void synthesis(AipSpeech client)

  2. {

  3. // 對本地語音檔案進行識別

  4. String path = "D:\\code\\java-sdk\\speech_sdk\\src\\test\\resources\\16k_test.pcm";

  5. JSONObject asrRes = client.asr(path, "pcm", 16000, null);

  6. System.out.println(asrRes);

  7.  
  8. // 對語音二進位制資料進行識別

  9. byte[] data = Util.readFileByBytes(path); //readFileByBytes僅為獲取二進位制資料示例

  10. JSONObject asrRes2 = client.asr(data, "pcm", 16000, null);

  11. System.out.println(asrRes);

  12.  
  13. // 對網路上音訊進行識別

  14. String url = "http://somehost/res/16k_test.pcm";

  15. String callback = "http://callbackhost/aip/dump";

  16. JSONObject res = client.asr(url, callback, "pcm", 16000, null);

  17. System.out.println(res);

  18. }

介面函式說明:

 
  1. // 語音識別

  2. JSONObject asr(String path, String format, int rate, HashMap<String, Object> options);

  3. JSONObject asr(byte[] data, String format, int rate, HashMap<String, Object> options);

  4. JSONObject asr(String url, String callback, String format, int rate, HashMap<String, Object> options);

引數 型別 描述 是否必須
path/data String/byte[] 語音檔案所在路徑或二進位制資料
url String 語音下載地址
callback String 識別結果回撥地址
format String 包括pcm(不壓縮)、wav、opus、speex、amr
rate int 取樣率,支援 8000 或者 16000
cuid String 使用者唯一標識,用來區分使用者,填寫機器 MAC 地址或 IMEI 碼,長度為60以內
lan String 語種選擇,中文=zh、粵語=ct、英文=en,不區分大小寫,預設中文
ptc int 協議號,下行識別結果選擇,預設 nbest 結果

語音識別 返回資料引數詳情

引數 型別 是否一定輸出 描述
err_no int 錯誤碼
err_msg int 錯誤碼描述
sn int 語音資料唯一標識,系統內部產生,用於 debug
result string 識別結果陣列,提供1-5 個候選結果,string 型別為識別的字串, utf-8 編碼

返回樣例:

 
  1. // 成功返回

  2. {

  3. "err_no": 0,

  4. "err_msg": "success.",

  5. "corpus_no": "15984125203285346378",

  6. "sn": "481D633F-73BA-726F-49EF-8659ACCC2F3D",

  7. "result": ["北京天氣"]

  8. }

  9.  
  10. // 失敗返回

  11. {

  12. "err_no": 2000,

  13. "err_msg": "data empty.",

  14. "sn": null

  15. }

錯誤碼

錯誤碼 含義
3300 輸入引數不正確
3301 識別錯誤
3302 驗證失敗
3303 語音伺服器後端問題
3304 請求 QPS 過大,超過限額
3305 產品線當前日請求數超過


------------

文字識別API

獲取access_token示例程式碼

 

 
  1. import org.json.JSONObject;

  2.  
  3. import java.io.BufferedReader;

  4. import java.io.InputStreamReader;

  5. import java.net.HttpURLConnection;

  6. import java.net.URL;

  7. import java.util.List;

  8. import java.util.Map;

  9.  
  10. /**

  11. * 獲取token類

  12. */

  13. public class AuthService {

  14.  
  15. /**

  16. * 獲取許可權token

  17. * @return 返回示例:

  18. * {

  19. * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",

  20. * "expires_in": 2592000

  21. * }

  22. */

  23. public static String getAuth() {

  24. // 官網獲取的 API Key 更新為你註冊的

  25. String clientId = "百度雲應用的AK";

  26. // 官網獲取的 Secret Key 更新為你註冊的

  27. String clientSecret = "百度雲應用的SK";

  28. return getAuth(clientId, clientSecret);

  29. }

  30.  
  31. /**

  32. * 獲取API訪問token

  33. * 該token有一定的有效期,需要自行管理,當失效時需重新獲取.

  34. * @param ak - 百度雲官網獲取的 API Key

  35. * @param sk - 百度雲官網獲取的 Securet Key

  36. * @return assess_token 示例:

  37. * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"

  38. */

  39. public static String getAuth(String ak, String sk) {

  40. // 獲取token地址

  41. String authHost = "https://aip.baidubce.com/oauth/2.0/token?";

  42. String getAccessTokenUrl = authHost

  43. // 1. grant_type為固定引數

  44. + "grant_type=client_credentials"

  45. // 2. 官網獲取的 API Key

  46. + "&client_id=" + ak

  47. // 3. 官網獲取的 Secret Key

  48. + "&client_secret=" + sk;

  49. try {

  50. URL realUrl = new URL(getAccessTokenUrl);

  51. // 開啟和URL之間的連線

  52. HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();

  53. connection.setRequestMethod("GET");

  54. connection.connect();

  55. // 獲取所有響應頭欄位

  56. Map<String, List<String>> map = connection.getHeaderFields();

  57. // 遍歷所有的響應頭欄位

  58. for (String key : map.keySet()) {

  59. System.err.println(key + "--->" + map.get(key));

  60. }

  61. // 定義 BufferedReader輸入流來讀取URL的響應

  62. BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

  63. String result = "";

  64. String line;

  65. while ((line = in.readLine()) != null) {

  66. result += line;

  67. }

  68. /**

  69. * 返回結果示例

  70. */

  71. System.err.println("result:" + result);

  72. JSONObject jsonObject = new JSONObject(result);

  73. String access_token = jsonObject.getString("access_token");

  74. return access_token;

  75. } catch (Exception e) {

  76. System.err.printf("獲取token失敗!");

  77. e.printStackTrace(System.err);

  78. }

  79. return null;

  80. }

  81.  
  82. }

 

文字識別API,使用HTTPS POST傳送:

https://aip.baidubce.com/rest/2.0/ocr/v1/general?access_token=24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074  (access_token從上方的方法中獲得)

 

通用文字識別

先把程式碼粘過來吧:

這個是呼叫API的主體程式

 
  1. package testOCR.test;

  2.  
  3. import java.io.BufferedReader;

  4. import java.io.File;

  5. import java.io.InputStream;

  6. import java.io.InputStreamReader;

  7. import java.net.HttpURLConnection;

  8. import java.net.URL;

  9.  
  10. import testOCR.token.AuthService;

  11. import testOCR.util.BASE64;

  12.  
  13. public class OCRTest {

  14.  
  15. public static String request(String httpUrl, String httpArg) {

  16. BufferedReader reader = null;

  17. String result = null;

  18. StringBuffer sbf = new StringBuffer();

  19.  
  20. try {

  21. URL url = new URL(httpUrl);

  22. HttpURLConnection connection = (HttpURLConnection) url

  23. .openConnection();

  24. connection.setRequestMethod("POST");

  25. connection.setRequestProperty("Content-Type",

  26. "application/x-www-form-urlencoded");

  27. // 填入apikey到HTTP header

  28. connection.setRequestProperty("apikey", "o3k2WVmMY4opdeyIXk4WrxtP");

  29. connection.setRequestProperty("access_token", AuthService.getAuth());

  30. connection.setDoOutput(true);

  31. connection.getOutputStream().write(httpArg.getBytes("UTF-8"));

  32. connection.connect();

  33. InputStream is = connection.getInputStream();

  34. reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));

  35. String strRead = null;

  36. while ((strRead = reader.readLine()) != null) {

  37. sbf.append(strRead);

  38. sbf.append("\r\n");

  39. }

  40. reader.close();

  41. result = sbf.toString();

  42. } catch (Exception e) {

  43. e.printStackTrace();

  44. }

  45. return result;

  46. }

  47.  
  48.  
  49. /**

  50. * @param args

  51. */

  52. public static void main(String[] args) {

  53. File file = new File("d:\\aaa.png");

  54. String imageBase = BASE64.encodeImgageToBase64(file);

  55. imageBase = imageBase.replaceAll("\r\n","");

  56. imageBase = imageBase.replaceAll("\\+","%2B");

  57. String httpUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_enhanced?access_token="+AuthService.getAuth();

  58. String httpArg = "fromdevice=pc&clientip=10.10.10.0&detecttype=LocateRecognize&languagetype=CHN_ENG&imagetype=1&image="+imageBase;

  59. String jsonResult = request(httpUrl, httpArg);

  60. System.out.println("返回的結果--------->"+jsonResult);

  61. }

  62. }


 

 

這個是將圖片base64編碼的工具類

 
  1. package testOCR.util;

  2.  
  3. import java.io.*;

  4.  
  5. import sun.misc.BASE64Encoder;

  6.  
  7. public class BASE64 {

  8. /**

  9. * 將本地圖片進行Base64位編碼

  10. *

  11. * @param imgUrl

  12. * 圖片的url路徑,如d:\\中文.jpg

  13. * @return

  14. */

  15. public static String encodeImgageToBase64(File imageFile) {// 將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理

  16. // 其進行Base64編碼處理

  17. byte[] data = null;

  18. // 讀取圖片位元組陣列

  19. try {

  20. InputStream in = new FileInputStream(imageFile);

  21. data = new byte[in.available()];

  22. in.read(data);

  23. in.close();

  24. } catch (IOException e) {

  25. e.printStackTrace();

  26. }

  27.  
  28. // 對位元組陣列Base64編碼

  29. BASE64Encoder encoder = new BASE64Encoder();

  30. return encoder.encode(data);// 返回Base64編碼過的位元組陣列字串

  31. }

  32. }

 

這塊上面的程式碼有,這是獲取access_token的程式碼

 

 
  1. package testOCR.token;

  2.  
  3. import org.json.JSONObject;

  4.  
  5. import java.io.BufferedReader;

  6. import java.io.InputStreamReader;

  7. import java.net.HttpURLConnection;

  8. import java.net.URL;

  9. import java.util.List;

  10. import java.util.Map;

  11.  
  12. /**

  13. * 獲取token類

  14. */

  15. public class AuthService {

  16.  
  17. /**

  18. * 獲取許可權token

  19. * @return 返回示例:

  20. * {

  21. * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",

  22. * "expires_in": 2592000

  23. * }

  24. */

  25. public static String getAuth() {

  26. // 官網獲取的 API Key 更新為你註冊的

  27. String clientId = "";

  28. // 官網獲取的 Secret Key 更新為你註冊的

  29. String clientSecret = "";

  30. return getAuth(clientId, clientSecret);

  31. }

  32.  
  33. /**

  34. * 獲取API訪問token

  35. * 該token有一定的有效期,需要自行管理,當失效時需重新獲取.

  36. * @param ak - 百度雲官網獲取的 API Key

  37. * @param sk - 百度雲官網獲取的 Securet Key

  38. * @return assess_token 示例:

  39. * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"

  40. */

  41. public static String getAuth(String ak, String sk) {

  42. // 獲取token地址

  43. String authHost = "https://aip.baidubce.com/oauth/2.0/token?";

  44. String getAccessTokenUrl = authHost

  45. // 1. grant_type為固定引數

  46. + "grant_type=client_credentials"

  47. // 2. 官網獲取的 API Key

  48. + "&client_id=" + ak

  49. // 3. 官網獲取的 Secret Key

  50. + "&client_secret=" + sk;

  51. try {

  52. URL realUrl = new URL(getAccessTokenUrl);

  53. // 開啟和URL之間的連線

  54. HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();

  55. connection.setRequestMethod("GET");

  56. connection.connect();

  57. // 獲取所有響應頭欄位

  58. Map<String, List<String>> map = connection.getHeaderFields();

  59. // 遍歷所有的響應頭欄位

  60. for (String key : map.keySet()) {

  61. System.err.println(key + "--->" + map.get(key));

  62. }

  63. // 定義 BufferedReader輸入流來讀取URL的響應

  64. BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

  65. String result = "";

  66. String line;

  67. while ((line = in.readLine()) != null) {

  68. result += line;

  69. }

  70. /**

  71. * 返回結果示例

  72. */

  73. System.err.println("result:" + result);

  74. JSONObject jsonObject = new JSONObject(result);

  75. String access_token = jsonObject.getString("access_token");

  76. return access_token;

  77. } catch (Exception e) {

  78. System.err.printf("獲取token失敗!");

  79. e.printStackTrace(System.err);

  80. }

  81. return null;

  82. }

  83. public static void main(String[] args) {

  84. System.out.println(getAuth());

  85. }

  86. }


最後貼上Controller,我用的是SSM框架,呼叫其實在程式主題中也已經有了,所以說這塊可以忽略

 
  1. package testOCR.controller;

  2.  
  3. import java.io.File;

  4. import java.io.IOException;

  5. import java.util.HashMap;

  6. import java.util.List;

  7. import java.util.Map;

  8.  
  9. import javax.servlet.http.HttpServletRequest;

  10.  
  11. import net.sf.json.JSONObject;

  12.  
  13. import org.springframework.stereotype.Controller;

  14. import org.springframework.web.bind.annotation.RequestMapping;

  15. import org.springframework.web.bind.annotation.RequestParam;

  16. import org.springframework.web.multipart.MultipartFile;

  17.  
  18. import testOCR.model.ResultModel;

  19. import testOCR.model.Word;

  20. import testOCR.test.OCRTest;

  21. import testOCR.token.AuthService;

  22. import testOCR.util.BASE64;

  23.  
  24. @Controller

  25. public class OcrController {

  26. private static final int List = 0;

  27.  
  28. /**

  29. * 血糖資料提交

  30. * @param bloodGlucose

  31. * @return

  32. */

  33. @RequestMapping(value="/file")

  34. public String fileUpload(@RequestParam MultipartFile image,HttpServletRequest req){

  35.  
  36. String path=req.getSession().getServletContext().getRealPath("/image");

  37. System.out.println("真實路徑"+path);

  38. try {

  39. image.transferTo(new File(path+"/"+image.getOriginalFilename()));

  40. } catch (IllegalStateException | IOException e) {

  41. e.printStackTrace();

  42. }

  43. File file = new File(path+"/"+image.getOriginalFilename());

  44. String imageBase = BASE64.encodeImgageToBase64(file);

  45. imageBase = imageBase.replaceAll("\r\n","");

  46. imageBase = imageBase.replaceAll("\\+","%2B");

  47. String httpUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token="+AuthService.getAuth();

  48. String httpArg = "fromdevice=pc&clientip=10.10.10.0&detecttype=LocateRecognize&languagetype=CHN_ENG&imagetype=1&image="+imageBase;

  49. String jsonResult = OCRTest.request(httpUrl, httpArg);

  50. Map classMap = new HashMap();

  51. classMap.put("words_result",Word.class);

  52. JSONObject jsonobject = JSONObject.fromObject(jsonResult);

  53. ResultModel model=(ResultModel)JSONObject.toBean(jsonobject,ResultModel.class,classMap);

  54.  
  55. StringBuilder sb=new StringBuilder();

  56. List<Word> wordList=model.getWords_result();

  57.  
  58. if(wordList.size()<=0){

  59.  
  60. }else{

  61. for (Word word : wordList) {

  62.  
  63. sb.append(word.getWords()+"\n");

  64. }

  65. System.out.println(sb);

  66. }

  67. return "index.jsp";

  68. }

  69. }


 

如果用到上步的話缺少兩個轉換JSON用的實體類,我也給粘上來吧

 
  1. package testOCR.model;

  2.  
  3. import java.util.ArrayList;

  4. import java.util.List;

  5.  
  6. public class ResultModel {

  7. private String log_id;//登入id

  8. private String words_result_num;//識別結果數,表示words_result的元素個數 應該是行數

  9. private List<Word> words_result=new ArrayList<Word>();//結果列表

  10. public String getLog_id() {

  11. return log_id;

  12. }

  13. public void setLog_id(String log_id) {

  14. this.log_id = log_id;

  15. }

  16. public String getWords_result_num() {

  17. return words_result_num;

  18. }

  19. public void setWords_result_num(String words_result_num) {

  20. this.words_result_num = words_result_num;

  21. }

  22. public List<Word> getWords_result() {

  23. return words_result;

  24. }

  25. public void setWords_result(List<Word> words_result) {

  26. this.words_result = words_result;

  27. }

  28. @Override

  29. public String toString() {

  30. return "ResultModel [log_id=" + log_id + ", words_result_num="

  31. + words_result_num + ", words_result=" + words_result + "]";

  32. }

  33.  
  34. }


 

 

 
  1. package testOCR.model;

  2.  
  3. public class Word {

  4. String words;

  5.  
  6. public String getWords() {

  7. return words;

  8. }

  9.  
  10. public void setWords(String words) {

  11. this.words = words;

  12. }

  13.  
  14. @Override

  15. public String toString() {

  16. return "Word [words=" + words + "]";

  17. }

  18.  
  19.  
  20. }


 

 

 

介面描述

使用者向服務請求識別某張圖中的所有文字。

請求說明

請求示例

HTTP 方法:POST

請求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic

URL引數:

引數
access_token 通過API Key和Secret Key獲取的access_token,參考“Access Token獲取

Header如下:

引數
Content-Type application/x-www-form-urlencoded

Body中放置請求引數,引數詳情如下:

請求引數

引數 是否必選 型別 可選值範圍 說明
image 和url二選一 string - 影象資料,base64編碼,要求base64編碼後大小不超過4M,最短邊至少15px,最長邊最大4096px,支援jpg/png/bmp格式,當image欄位存在時url欄位失效
url 和image二選一 string - 圖片完整URL,URL長度不超過1024位元組,URL對應的圖片base64編碼後大小不超過4M,最短邊至少15px,最長邊最大4096px,支援jpg/png/bmp格式,當image欄位存在時url欄位失效
language_type false string CHN_ENG、ENG、POR、FRE、GER、ITA、SPA、RUS、JAP、KOR 識別語言型別,預設為CHN_ENG。可選值包括:
- CHN_ENG:中英文混合;
- ENG:英文;
- POR:葡萄牙語;
- FRE:法語;
- GER:德語;
- ITA:義大利語;
- SPA:西班牙語;
- RUS:俄語;
- JAP:日語;
- KOR:韓語
detect_direction false boolean true、false 是否檢測影象朝向,預設不檢測,即:false。朝向是指輸入影象是正常方向、逆時針旋轉90/180/270度。可選值包括:
- true:檢測朝向;
- false:不檢測朝向。
detect_language false string true、false 是否檢測語言,預設不檢測。當前支援(中文、英語、日語、韓語)
probability false string true、false 是否返回識別結果中每一行的置信度

請求程式碼示例

請參考通用文字識別(含位置資訊版)的程式碼內容,並更換請求地址。

返回說明

返回引數

欄位 是否必選 型別 說明
direction int32 影象方向,當detect_direction=true時存在。
- -1:未定義,
- 0:正向,
- 1: 逆時針90度,
- 2:逆時針180度,
- 3:逆時針270度
log_id uint64 唯一的log id,用於問題定位
words_result array() 識別結果陣列
words_result_num uint32 識別結果數,表示words_result的元素個數
+words string 識別結果字串
probability object 識別結果中每一行的置信度值,包含average:行置信度平均值,variance:行置信度方差,min:行置信度最小值

返回示例

 
  1. HTTP/1.1 200 OK

  2. x-bce-request-id: 73c4e74c-3101-4a00-bf44-fe246959c05e

  3. Cache-Control: no-cache

  4. Server: BWS

  5. Date: Tue, 18 Oct 2016 02:21:01 GMT

  6. Content-Type: application/json;charset=UTF-8

  7. {

  8. "log_id": 2471272194,

  9. "words_result_num": 2,

  10. "words_result":

  11. [

  12. {"words": " TSINGTAO"},

  13. {"words": "青島睥酒"}

  14. ]

  15. }

錯誤碼

錯誤碼 錯誤資訊 描述
1 Unknown error 伺服器內部錯誤,請再次請求, 如果持續出現此類錯誤,請通過QQ群(224994340)或工單聯絡技術支援團隊。
2 Service temporarily unavailable 服務暫不可用,請再次請求, 如果持續出現此類錯誤,請通過QQ群(224994340)或工單聯絡技術支援團隊。
3 Unsupported openapi method 呼叫的API不存在,請檢查後重新嘗試
4 Open api request limit reached 叢集超限額
6 No permission to access data 無許可權訪問該使用者資料
17 Open api daily request limit reached 每天請求量超限額
18 Open api qps request limit reached QPS超限額
19 Open api total request limit reached 請求總量超限額
100 Invalid parameter 無效的access_token引數,請檢查後重新嘗試
110 Access token invalid or no longer valid access_token無效
111 Access token expired access token過期
282000 internal error 伺服器內部錯誤,請再次請求, 如果持續出現此類錯誤,請通過QQ群(631977213)或工單聯絡技術支援團隊。
216100 invalid param 請求中包含非法引數,請檢查後重新嘗試
216101 not enough param 缺少必須的引數,請檢查引數是否有遺漏
216102 service not support 請求了不支援的服務,請檢查呼叫的url
216103 param too long 請求中某些引數過長,請檢查後重新嘗試
216110 appid not exist appid不存在,請重新核對資訊是否為後臺應用列表中的appid
216200 empty image 圖片為空,請檢查後重新嘗試
216201 image format error 上傳的圖片格式錯誤,現階段我們支援的圖片格式為:PNG、JPG、JPEG、BMP,請進行轉碼或更換圖片
216202 image size error 上傳的圖片大小錯誤,現階段我們支援的圖片大小為:base64編碼後小於4M,解析度不高於4096*4096,請重新上傳圖片
216630 recognize error 識別錯誤,請再次請求,如果持續出現此類錯誤,請通過QQ群(631977213)或工單聯絡技術支援團隊。
216631 recognize bank card error 識別銀行卡錯誤,出現此問題的原因一般為:您上傳的圖片非銀行卡正面,上傳了異形卡的圖片或上傳的銀行卡正品圖片不完整
216633 recognize idcard error 識別身份證錯誤,出現此問題的原因一般為:您上傳了非身份證圖片或您上傳的身份證圖片不完整
216634 detect error 檢測錯誤,請再次請求,如果持續出現此類錯誤,請通過QQ群(631977213)或工單聯絡技術支援團隊。
282003 missing parameters: {引數名} 請求引數缺失
282005 batch processing error 處理批量任務時發生部分或全部錯誤,請根據具體錯誤碼排查
282006 batch task limit reached 批量任務處理數量超出限制,請將任務數量減少到10或10以下
282114 url size error URL長度超過1024位元組或為0
282808 request id: xxxxx not exist request id xxxxx 不存在
282809 result type error 返回結果請求錯誤(不屬於excel或json)
282810 image recognize error 影象識別錯誤