表格文字识别(异步接口)

接口描述

自动识别表格线及表格内容,结构化输出表头、表尾及每个单元格的文字内容。
本接口为异步接口,分为两个API:提交请求接口、获取结果接口。下面分别描述两个接口的使用方法。

提交请求接口

请求说明

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/request

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image true string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式

返回说明

返回参数

字段 是否必选 类型 说明
log_id long 唯一的log id,用于问题定位
result list 返回的结果列表
+request_id string 该请求生成的request_id,后续使用该request_id获取识别结果

返回示例

成功返回示例:

{
    "result" : [
        {
            "request_id" : "1234_6789"
        }
    ],
    "log_id":149689853984104 
}

失败返回示例(详细的错误码说明见本文档底部):

{
    "log_id": 149319909347709, 
    "error_code": 282000
    "error_msg":"internal error"
}

获取结果接口

请求说明

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/get_request_result

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
request_id string - 发送表格文字识别请求时返回的request id
result_type string - 期望获取结果的类型,取值为“excel”时返回xls文件的地址,取值为“json”时返回json格式的字符串,默认为”excel”

返回说明

返回参数

字段 是否必选 类型 说明
log_id long 唯一的log id,用于问题定位
result object 返回的结果
+result_data string 识别结果字符串,如果request_type是excel,则返回excel的文件下载地址,如果request_type是json,则返回json格式的字符串
+percent int 表格识别进度(百分比)
+request_id string 该图片对应请求的request_id
+ret_code int 识别状态,1:任务未开始,2:进行中,3:已完成
+ret_msg string 识别状态信息,任务未开始,进行中,已完成

返回示例

成功返回示例:

{
    "result" : {
        "result_data" : "",
        "percent":100,
        "request_id": "149691317905102",
        "ret_code": 3
        "ret_msg": "已完成",
    },
    "log_id":149689853984104 
}

当request_type为excel时,result_data格式样例为:

{
    "file_url":"https://ai.baidu.com/file/xxxfffddd"
}

当request_type为json时,result_data格式样例为:

{
    "result": {
        "result_data":"{
                        "form_num": 1,
                         "forms": [
                                {
                           "footer": [],
                                    "header": [
                                        {
                                            "column": [
                                             1,
                                             2
                                                        ],
                                                             "probability":0.925165,
                                                             "rect":{"left":1138.0,"top":127.0},
                                                             "row": [
                                            1
                                                        ],
                                            "word": "表头信息1",
                                        }
                                    ],
                                "body": [
                                        {
                                            "column": [
                                            1,
                                            2
                                                        ],
                                "probability":0.999275,
                                "rect":{"left":171.0,"top":26.0},
                                "row": [
                                            1
                                                        ],
                                            "word": "单元格文字",
                                     }
                        ],
                            }
                            ]
                }
}

其中各个参数的说明(jason方式返回结果时):

字段 是否必选 类型 说明
form_num int 表格数量(可能一张图片中包含多个表格)
forms list 表格内容信息的列表
+header list 每个表格中,表头数据的相关信息
+footer list 表尾的相关信息
+body list 表格主体部分的数据
++row list 该单元格占据的行号
++column list 该单元格占据的列号
++word string 该单元格中的文字信息

失败返回示例(详细的错误码说明见本文档底部):

{
    "log_id": 149319909347709, 
    "error_code": 282000
    "error_msg":"internal error"
}