 
						 
			(1) 概念解釋
表格識別:基于深度學習技術,自動定位并識別圖片中表格的位置、結構及文字內容,結構化返回可編輯的表格結果。支持用戶上傳報表、帶有表格的圖片等。
(2) 說明
Hi,您好,歡迎使用有道智云表格識別 iOS SDK。
如果您想快速體驗服務,建議您前往 體驗中心 或者搜索小程序(有道智云體驗中心)進行試用。
本文檔主要針對需要集成表格識別服務iOS SDK的開發工程師,詳細描述有道智云表格識別能力及集成過程。
如果您有與我們商務合作的需求,可以通過以下方式聯系我們:
商務郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內容有任何疑問,可以通過以下幾種方式聯系我們:
客服QQ:1906538062
智云OCR技術交流QQ 1群: 654064748
智云OCR技術交流QQ 2群: 471638046
聯系郵箱: zhiyun@corp.youdao.com
溫馨提示:
本文檔主要針對開發人員,接入測試前需要在后臺創建iOS應用,并綁定實例;如果您還沒有,請按照 新手指南 操作。 平臺向每個賬戶贈送50元的體驗金,供用戶集成前測試所用,具體資費規則詳見 表格識別服務報價 。
有道表格識別 SDK 是基于深度學習技術,自動定位并識別圖片中表格的位置、結構及文字內容,結構化返回可編輯的表格結果。支持用戶上傳報表、帶有表格的圖片等。
支持設備:運行了iOS 8.0及以上系統的 iOS 設備
開始集成SDK之前開發者需要登錄 有道智云平臺 ,創建應用獲取應用ID(或者通過運營人員獲取應用ID),以便使用表格識別服務。
格式支持:jpg/png
尺寸限制:2MB以下
表格識別 SDK 由如下幾個 SDK 組成,YDOCRTable.h、libbase.a、libocrtable.a
(1). 添加頭文件和庫文件:將 表格識別 SDK 添加到工程中,包括 YDOCRTable.h頭文件、libbase.a和libocrtable.a文件。可以直接將OCRTableSDK文件夾拖動到工程中,也可以選擇File “Add files to ‘Project Name’…”。
(2). 設置工程Other Linker Flags為-ObjC。如圖:

(3). 在工程build Phases – Link Binary With Libraries中添加libbase.a, libocrtable.a, AdSupport.framework, CoreTelephony.framework, SystemConfiguration, libz.tbd和libsqlite3.tbd。如圖:

說明:所有的查詢都需要初始化key,只執行初始化一次即可。
//初始化key
YDTranslateInstance *yd = [YDTranslateInstance sharedInstance];
yd.appKey = @"your appkey";
說明:請參考 demo 中 OCRTableVController 的使用
YDOCRTableRequest *request = [YDOCRTableRequest request];
YDOCRTableParam *param = [YDOCRTableParam param];
param.docType = @"json";
request.param = param;
NSData *data = [self compressImage];
NSString *input = [data base64EncodedStringWithOptions:0];
識別返回兩種情況,一種是成功,相關結果存儲在 result 參數中,另外一種是失敗,失敗信息放在 error,是一個枚舉類,整個識別是異步的。
[request lookup:input completionHandler:^(YDOCRTableRequest *request, NSDictionary *result, NSError *error) {
        if (error) {
            //失敗
            NSLog(@"%@", error.localizedDescription);
        } else {
            //成功
            [self handleResponse:result];
        }
}];
響應結果是以json形式輸出,包含字段如下表所示:
| 字段 | 含義 | 
|---|---|
| Result | 識別結果,如果docType是excel則返回excel的base64字符串 | 
| errorCode | 識別結果錯誤碼,一定存在 | 
| -tables | 返回的表格,如果一張圖像中有多個表格,返回多個 | 
| -orientation | 圖片方向 | 
| --rowRange | 單元格行號的范圍,如果當前行存在單元格合并情況,兩個值不同 | 
| --lines | 單元格中的每一行 | 
| --lang | 文字種類 zh為中文 | 
| --dir | 單元格方向:h水平 v豎直 | 
| --colRange | 單元格列號的范圍,如果當前列存在單元格合并情況,兩個值不同 | 
| --cells | 表格中的單元格 | 
| --boundingBox | 單元格文字的坐標 | 
| ---words | 字級別組 | 
| ---text | 識別的行文字 | 
| ---boundingBox | 行的坐標 | 
| ----word | 識別的文字 | 
| ----boundingBox | 字的坐標 | 
{  
       "errorCode":"0",   #返回狀態 如果成功, 返回0
       "Result":"   {        #如果沒有錯誤,返回識別的內容
          "orientation":"UP",#圖片方向
          "tables":[         #返回的表格,如果一張圖像中有多個表格,返回多個
                {"cells":[      #表格中的單元格
                   {  
                      "rowRange":"0,0", #單元格行號的范圍,如果當前行存在單元格合并情況,兩個值不同
                      "colRange":"0,0", #單元格列號的范圍,如果當前列存在單元格合并情況,兩個值不同
                      "boundingBox":"225,209,379,209,379,240,225,240", #單元格文字的bounding box
                      "dir":"h",   #方向 h水平 v豎直
                      "lang":"zh", #文字種類 zh為中文
                      "lines":[    #單元格中的每一行
                         {  
                            "boundingBox":"225,212,379,209,379,237,225,240", #行的坐標
                            "text":"工程項目合同名稱", #行文字
                            "words":[               #每個文字
                               {  
                                  "word":"工",
                                  "boundingBox":"231,212,238,212,238,240,231,240" #每個字的包圍框
                               },
                               {  
                                  "word":"程",
                                  "boundingBox":"245,212,258,211,258,239,245,240"
                               },
                               ......
                            ]
                         }
                      ]
                   },
                   {  
                      "rowRange":"0,0",#單元格行號的范圍,如果當前行存在單元格合并情況,兩個值不同
                      "colRange":"1,1",#單元格列號的范圍,如果當前列存在單元格合并情況,兩個值不同
                      "boundingBox":"441,206,536,206,536,234,441,234",
                      "dir":"h",
                      "lang":"zh",
                      "lines":[  
                         {  
                            "boundingBox":"441,206,536,206,536,234,441,234",
                            "text":"金額",
                            "words":[  
                               {  
                                  "word":"金",
                                  "boundingBox":"454,206,461,206,..."
                                        ......
                                        }
                                    ]
                                }]
                            }
                        }
                        .....
{  
       "errorCode":"0",   #返回狀態 如果成功, 返回0
       "Result":"{
					"orientation":"UP",#圖片方向
                    "tables":["UEsDBBQ ... ... AsAxQIAAOQ1AAA=="]# 表格excel,使用base64編碼后的結果
                 }"
}
| 錯誤碼 | 含義 | 
|---|---|
| 101 | 缺少必填的參數 | 
| 102 | 不支持的語言類型 | 
| 103 | 翻譯文本過長 | 
| 104 | 不支持的API類型 | 
| 105 | 不支持的簽名類型 | 
| 106 | 不支持的響應類型 | 
| 107 | 不支持的傳輸加密類型 | 
| 108 | 應用ID無效,注冊賬號,登錄后臺創建應用和實例并完成綁定,可獲得應用ID和應用密鑰等信息 | 
| 109 | batchLog格式不正確 | 
| 110 | 無相關服務的有效實例 | 
| 111 | 開發者賬號無效 | 
| 113 | q不能為空 | 
| 114 | 不支持的圖片傳輸方式 | 
| 201 | 解密失敗,可能為DES,BASE64,URLDecode的錯誤 | 
| 202 | 簽名檢驗失敗 | 
| 203 | 訪問IP地址不在可訪問IP列表 | 
| 205 | 請求的接口與應用的平臺類型不一致,如有疑問請參考入門指南 | 
| 206 | 因為時間戳無效導致簽名校驗失敗 | 
| 207 | 重放請求 | 
| 301 | 辭典查詢失敗 | 
| 302 | 翻譯查詢失敗 | 
| 303 | 服務端的其它異常 | 
| 304 | 會話閑置太久超時 | 
| 401 | 賬戶已經欠費停 | 
| 402 | offlinesdk不可用 | 
| 411 | 訪問頻率受限,請稍后訪問 | 
| 412 | 長請求過于頻繁,請稍后訪問 | 
| 1001 | 無效的OCR類型 | 
| 1002 | 不支持的OCR image類型 | 
| 1003 | 不支持的OCR Language類型 | 
| 1004 | 識別圖片過大 | 
| 1201 | 圖片base64解密失敗 | 
| 1301 | OCR段落識別失敗 | 
| 1411 | 訪問頻率受限 | 
| 1412 | 超過最大識別字節數 | 
| 2003 | 不支持的語音聲道 | 
| 2004 | 不支持的語音上傳類型 | 
| 2005 | 不支持的語言類型 | 
| 2006 | 不支持的識別類型 | 
| 2201 | 識別音頻文件過大 | 
| 2301 | 識別音頻時長過長 | 
| 2411 | 不支持的音頻文件類型 | 
| 2412 | 不支持的發音類型 | 
| 3001 | 不支持的語音格式 | 
| 3002 | 不支持的語音采樣率 | 
| 3003 | 不支持的語音聲道 | 
| 3004 | 不支持的語音上傳類型 | 
| 3005 | 不支持的語言類型 | 
| 3006 | 不支持的識別類型 | 
| 3007 | 識別音頻文件過大 | 
| 3008 | 識別音頻時長過長 | 
| 3009 | 不支持的音頻文件類型 | 
| 3010 | 不支持的發音類型 | 
| 3201 | 解密失敗 | 
| 3301 | 語音識別失敗 | 
| 3302 | 語音翻譯失敗 | 
| 3303 | 服務的異常 | 
| 3411 | 訪問頻率受限,請稍后訪問 | 
| 3412 | 超過最大請求字符數 | 
| 5001 | 無效的OCR類型 | 
| 5002 | 不支持的OCR image類型 | 
| 5003 | 不支持的語言類型 | 
| 5004 | 識別圖片過大 | 
| 5005 | 不支持的圖片類型 | 
| 5006 | 文件為空 | 
| 5201 | 解密錯誤,圖片base64解密失敗 | 
| 5301 | OCR段落識別失敗 | 
| 5411 | 訪問頻率受限 | 
| 5412 | 超過最大識別流量 | 
| 9001 | 不支持的語音格式 | 
| 9002 | 不支持的語音采樣率 | 
| 9003 | 不支持的語音聲道 | 
| 9004 | 不支持的語音上傳類型 | 
| 9005 | 不支持的語音識別 Language類型 | 
| 9301 | ASR識別失敗 | 
| 9303 | 服務器內部錯誤 | 
| 9411 | 訪問頻率受限(超過最大調用次數) | 
| 9412 | 超過最大處理語音長度 | 
| 10001 | 無效的OCR類型 | 
| 10002 | 不支持的OCR image類型 | 
| 10004 | 識別圖片過大 | 
| 10201 | 圖片base64解密失敗 | 
| 10301 | OCR段落識別失敗 | 
| 10411 | 訪問頻率受限 | 
| 10412 | 超過最大識別流量 | 
| 13001 | 不支持的角度類型 | 
| 13002 | 不支持的文件類型 | 
| 13003 | 表格識別圖片過大 | 
| 13004 | 文件為空 | 
| 13301 | 表格識別失敗 | 
| 17001 | 需要圖片 | 
| 17002 | 圖片過大(1M) | 
| 17003 | 識別類型未找到 | 
| 17004 | 不支持的識別類型 | 
| 17005 | 服務調用失敗 | 
| -1000 | 未知錯誤 | 
| -2000 | 查詢輸入為空 | 
運行程序崩潰?
 檢查下是否對應的 SDK靜態庫包 是否放到當前工程目錄下。
識別沒結果? 檢查下識別接口回調的錯誤信息,保證申請的應用ID是有效且提前綁定了。
如何獲得應用ID 注冊賬號,登錄后臺創建應用和實例并完成綁定, 可獲得應用ID和應用密鑰等信息。
| 上線日期 | 版本號 | 更新內容 | 
|---|---|---|
| 2019.03.25 | v1.0.0 | 有道智云 表格識別 iOS SDK上線 |