注册
文档中心
API调试

功能描述

  • 通用表格识别
  • 适用于带有表格的文档图像
  • 上传图片返回表格区域分析后的文字识别结果以及表格外区域的其他文字识别结果

重要特性 详情描述
适用场景 默认支持带有表格的文档图像
文字方向 默认支持横向和纵向文字混合识别
语言种类 默认支持简体中文/繁体中文/英文/数字/西欧主流语言/东欧主流语言/共52种语言
印刷手写 默认支持手写和印刷判断以及印刷文字和手写文字混合识别
字符信息 可选返回完整的字符信息包括字符坐标和候选字等
表格分析 支持表格分析返回表格主体区域以及对应的每一个单元格信息

请求URL

https://api.textin.com/ai/service/v2/recognize/table

HTTP请求方法

HTTP POST

请求头说明(Request Header)

请在HTTP请求中添加以下自定义Header。

header 名
x-ti-app-id 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
x-ti-secret-code 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code

URL参数

参数名 数据类型 是否必填 允许的值 描述
lang_opt string 见描述
  • 语言选项,默认支持52种语言
  • 使用语言参数时引擎会在输出结果中做一些语言倾向性调整
  • 一般情况下使用默认为佳
character integer 0, 1
  • 返回完整的字符信息包括字符坐标和候选字等,默认关闭
straighten integer 0, 1
  • 坐标系选项,默认关闭并且所有结果返回均以原图为参照系
  • 若打开则返回结果的所有坐标点均以正置图像作为参照系
  • 调用者需要注意图像和API结果的角度关系
output_order string perpendicular, table_and_remain, table_only
  • 输出格式
  • perpendicular: 按照坐标顺序从上到下排序输出且非表格区域自动分块
  • table_and_remain: 按照坐标顺序从上到下排序输出且附带一个非表格区域
  • table_only: 只保留表格区域按照坐标顺序从上到下排序输出
table_type_hint string automatic, table_with_line, table_with_few_line, table_without_line
  • 提示当前样本的表格类型
excel integer 0, 1
  • 指定是否输出excel文件
  • 若指定则excel文件以base64格式输出

请求体说明(Request Body)

Content-Type: application/octet-stream

要上传的图片,目前支持jpg, png, bmp, pdf, tiff, 单帧gif等大部分格式.

请注意,请求体的数据格式为文件的二进制流,非 FormData 或其他格式。文件大小不超过 10M,图像宽高须介于 20 和 10000(像素)之间。

响应体说明(Response Data)

Content-Type: application/json

JSON结构说明如下:

字段名 类型 描述
code integer 错误码,详见“错误码说明”
message string

错误信息

duration number

服务时间消耗,单位是毫秒(ms)。

version string

接口版本号。

result object
+width integer

输入图像的宽度。

+excel string

excel文件以base64格式输出。

+angle integer

图像角度, 定义0度为人类阅读文字的图像方向,称为正置图像, 本字段表示输入图像是正置图像进行顺时针若干角度的旋转所得。

  • 0: ▲
  • 90: ▶
  • 180: ▼
  • 270: ◀
+height integer

输入图像的高度。

+tables array

表格数组。 由于一张图像中会存在一个或者多个表格,所以数组中有对应若干个表格对象。 同时为了完整输出图像中表格以外区域的文字,表格数组中存在一个对象为“非表格”区域,存储所有表格外文字。

   ++position array

以长度为8的整形数组表示四边形, 语义左上角为起始点顺时针构成闭合区域。

   ++type string

表格类型:

  • plain (文本区域而非表格区域): 仅返回文本行信息即字段"lines"
  • table_with_line (有线表格): 仅返回单元格信息即字段"table_cells"
  • table_without_line (无线表格): 仅返回单元格信息即字段"table_cells"
   ++height_of_rows array

表格正向放置时每行的高度,与图像旋转角无关,单位是像素(px)。

   ++width_of_cols array

表格正向放置时每列的宽度,与图像旋转角无关。

   ++table_cells array

单元格数组,当前区域类型为有线表格或者无线表格时返回本字段。

    +++start_row integer

单元格的起始行。

    +++start_col integer

单元格的起始列。

    +++end_row integer

单元格的结束行。

    +++end_col integer

单元格的结束列。

    +++text string

单元格内所有识别结果的合并字符串。

    +++position array

单元格的位置信息, 以长度为8的整形数组表示四边形, 语义左上角为起始点顺时针构成闭合区域。

    +++lines array

以文本行为单位的识别结果

     ++++score number

识别置信度

     ++++handwritten integer

文字是否手写所得。

  • -1: 未知
  • 0: 非手写文字, 一般为印刷文字
  • 1: 文字手写, 一般具备明显的书写特征
     ++++type string

文本类型,用于表示文字的形态。 当前版本下,文本类型包括:

  • text(文本)
  • stamp(印章)
  • formula(公式)
     ++++position array

以长度为8的整形数组表示四边形, 语义左上角为起始点顺时针构成闭合区域。

     ++++angle integer

图像角度, 定义0度为人类阅读文字的图像方向,称为正置图像, 本字段表示输入图像是正置图像进行顺时针若干角度的旋转所得。

  • 0: ▲
  • 90: ▶
  • 180: ▼
  • 270: ◀
     ++++direction integer

文字阅读方向。

  • -1: 其他
  • 0: 单字
  • 1: 横向
  • 2: 纵向
     ++++text string

识别内容字符串

     ++++char_scores array

字符置信度,值域范围0-1。设置character=1时输出。

     ++++char_centers array

字符中心点。设置character=1时输出。

     ++++char_positions array

字符四边形点坐标,以顺时针构成闭合区域。设置character=1时输出。

     ++++char_candidates array

候选字数组,表示每一个字符的候选,与候选置信度配套使用。设置character=1时输出。

     ++++char_candidates_score array

候选字置信度数组,表示每一个候选字符的置信度,与候选字符配套使用。设置character=1时输出。

   ++lines array

以文本行为单位的识别结果

    +++score number

识别置信度

    +++type string

文本类型,用于表示文字的形态。 当前版本下,文本类型包括:

  • text(文本)
  • stamp(印章)
  • formula(公式)
    +++angle integer

图像角度, 定义0度为人类阅读文字的图像方向,称为正置图像, 本字段表示输入图像是正置图像进行顺时针若干角度的旋转所得。

  • 0: ▲
  • 90: ▶
  • 180: ▼
  • 270: ◀
    +++direction integer

文字阅读方向。

  • -1: 其他
  • 0: 单字
  • 1: 横向
  • 2: 纵向
    +++handwritten integer

文字是否手写所得。

  • -1: 未知
  • 0: 非手写文字, 一般为印刷文字
  • 1: 文字手写, 一般具备明显的书写特征
    +++char_scores array

字符置信度,值域范围0-1。设置character=1时输出。

    +++char_centers array

字符中心点。设置character=1时输出。

    +++char_positions array

字符四边形点坐标,以顺时针构成闭合区域。设置character=1时输出。

    +++char_candidates array

候选字数组,表示每一个字符的候选,与候选置信度配套使用。设置character=1时输出。

    +++char_candidates_score array

候选字置信度数组,表示每一个候选字符的置信度,与候选字符配套使用。设置character=1时输出。

   ++table_rows integer

表格行数。

   ++table_cols integer

表格列数。

JSON结构示例

{
  "code": 200,
  "message": "success",
  "result": {
    "height": 1440,
    "tables": [
      {
        "type": "table_with_line",
        "position": [
          0,
          0,
          50,
          0,
          50,
          30,
          0,
          30
        ],
        "width_of_cols": [
          20,
          20,
          20,
          20
        ],
        "table_rows": 3,
        "table_cols": 4,
        "table_cells": [
          {
            "end_col": 3,
            "position": [
              0,
              0,
              50,
              0,
              50,
              50,
              0,
              50
            ],
            "text": "单元格里面的文字,若为多行则行间存在换行符。",
            "lines": [
              {
                "text": "这是一个例子。",
                "score": 0.99,
                "type": "text",
                "position": [
                  0,
                  0,
                  50,
                  0,
                  50,
                  30,
                  0,
                  30
                ],
                "angle": 90,
                "direction": 1,
                "handwritten": 1,
                "char_candidates_score": [
                  [
                    0.99
                  ],
                  [
                    0.99
                  ],
                  [
                    0.95,
                    0.05
                  ],
                  [
                    0.99
                  ],
                  [
                    0.99
                  ],
                  [
                    0.99
                  ],
                  [
                    0.89,
                    0.11
                  ]
                ],
                "char_candidates": [
                  [
                    "这"
                  ],
                  [
                    "是"
                  ],
                  [
                    "一",
                    "-"
                  ],
                  [
                    "个"
                  ],
                  [
                    "例"
                  ],
                  [
                    "子"
                  ],
                  [
                    "。",
                    "O"
                  ]
                ],
                "char_centers": [
                  [
                    20,
                    10
                  ],
                  [
                    30,
                    10
                  ],
                  [
                    40,
                    10
                  ],
                  [
                    50,
                    10
                  ],
                  [
                    60,
                    10
                  ],
                  [
                    70,
                    10
                  ],
                  [
                    80,
                    10
                  ]
                ],
                "char_scores": [
                  0.99,
                  0.98,
                  0.95,
                  0.95,
                  0.99,
                  0.93,
                  0.87
                ],
                "char_positions": [
                  [
                    18,
                    8,
                    22,
                    8,
                    22,
                    12,
                    18,
                    12
                  ],
                  [
                    28,
                    88,
                    32,
                    8,
                    32,
                    12,
                    28,
                    12
                  ],
                  [
                    38,
                    88,
                    42,
                    8,
                    42,
                    12,
                    38,
                    12
                  ],
                  [
                    48,
                    88,
                    52,
                    8,
                    52,
                    12,
                    48,
                    12
                  ],
                  [
                    58,
                    88,
                    62,
                    8,
                    62,
                    12,
                    58,
                    12
                  ],
                  [
                    68,
                    88,
                    72,
                    8,
                    72,
                    12,
                    68,
                    12
                  ],
                  [
                    78,
                    88,
                    82,
                    8,
                    82,
                    12,
                    78,
                    12
                  ]
                ]
              }
            ],
            "end_row": 2,
            "start_col": 1,
            "start_row": 1
          }
        ],
        "height_of_rows": [
          4,
          5,
          6
        ],
        "lines": [
          {
            "text": "这是一个例子。",
            "score": 0.99,
            "type": "text",
            "position": [
              0,
              0,
              50,
              0,
              50,
              30,
              0,
              30
            ],
            "angle": 90,
            "direction": 1,
            "handwritten": 1,
            "char_candidates_score": [
              [
                0.99
              ],
              [
                0.99
              ],
              [
                0.95,
                0.05
              ],
              [
                0.99
              ],
              [
                0.99
              ],
              [
                0.99
              ],
              [
                0.89,
                0.11
              ]
            ],
            "char_scores": [
              0.99,
              0.98,
              0.95,
              0.95,
              0.99,
              0.93,
              0.87
            ],
            "char_positions": [
              [
                18,
                8,
                22,
                8,
                22,
                12,
                18,
                12
              ],
              [
                28,
                88,
                32,
                8,
                32,
                12,
                28,
                12
              ],
              [
                38,
                88,
                42,
                8,
                42,
                12,
                38,
                12
              ],
              [
                48,
                88,
                52,
                8,
                52,
                12,
                48,
                12
              ],
              [
                58,
                88,
                62,
                8,
                62,
                12,
                58,
                12
              ],
              [
                68,
                88,
                72,
                8,
                72,
                12,
                68,
                12
              ],
              [
                78,
                88,
                82,
                8,
                82,
                12,
                78,
                12
              ]
            ],
            "char_centers": [
              [
                20,
                10
              ],
              [
                30,
                10
              ],
              [
                40,
                10
              ],
              [
                50,
                10
              ],
              [
                60,
                10
              ],
              [
                70,
                10
              ],
              [
                80,
                10
              ]
            ],
            "char_candidates": [
              [
                "这"
              ],
              [
                "是"
              ],
              [
                "一",
                "-"
              ],
              [
                "个"
              ],
              [
                "例"
              ],
              [
                "子"
              ],
              [
                "。",
                "O"
              ]
            ]
          }
        ]
      }
    ],
    "width": 1280,
    "excel": "UEsDBBQAAAAIAAAAIQAR0e9YNAoAAIpUAAAYAAAA...",
    "angle": 90
  },
  "duration": 871.5,
  "version": "v2.0.0"
}

错误码说明

错误码 描述
40101 x-ti-app-id 或 x-ti-secret-code 为空
40102 x-ti-app-id 或 x-ti-secret-code 无效,验证失败
40103 客户端IP不在白名单
40003 余额不足,请充值后再使用
40004 参数错误,请查看技术文档,检查传参
40007 机器人不存在或未发布
40008 机器人未开通,请至市场开通后重试
40301 图片类型不支持
40302 上传文件大小不符,文件大小不超过 10M
40303 文件类型不支持
40304 图片尺寸不符,图像宽高须介于 20 和 10000(像素)之间
40305 识别文件未上传
30203 基础服务故障,请稍后重试
500 服务器内部错误
版本
v2.0
体验中心
人工客服
400-6666-582