文档首页> 文字识别 OCR> API参考> API> 财务报表识别
更新时间:2023-04-07 GMT+08:00
分享

财务报表识别

功能介绍

识别用户上传的表格图片中的文字内容,并将识别的结果返回给用户。

约束与限制

  • 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。
  • 图像各边的像素大小在15px到8192px之间。
  • 图像中识别区域有效占比超过80%,保证整张表格及其边缘包含在图像内。
  • 支持图像任意角度的水平旋转。
  • 目前不支持复杂背景(如户外自然场景、防伪水印等)和表格线扭曲图像的文字识别。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

前提条件

在使用财务报表识别之前,需要您完成服务申请和认证鉴权,具体操作流程请参见开通服务认证鉴权章节。

用户首次使用需要先申请开通。服务只需要开通一次即可,后面使用时无需再次申请。如未开通服务,调用服务时会提示ModelArts.4204报错,请在调用服务前先进入控制台开通服务,并注意开通服务区域与调用服务的区域保持一致。

URI

POST https://{endpoint}/v2/{project_id}/ocr/financial-statement

表1 路径参数

参数

是否必选

说明

endpoint

终端节点,即调用API的请求地址。

不同服务不同区域的endpoint不同,您可以从终端节点中获取。

例如,OCR服务在“华北-北京四”区域的“endpoint”“ocr.cn-north-4.myhuaweicloud.com”

project_id

项目ID,您可以从获取项目ID中获取。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

用于获取操作API的权限。获取Token接口响应消息头中X-Subject-Token的值即为Token。

Content-Type

String

发送的实体的MIME类型,参数值为“application/json”。

表3 请求Body参数

参数

是否必选

参数类型

描述

image

String

与url二选一。

图片的Base64编码,要求Base64编码后大小不超过10MB。

图片最短边不小于15px,最长边不超过8192px,支持JPEG、JPG、PNG、BMP、TIFF格式。

图片Base64编码示例如/9j/4AAQSkZJRgABAg...,带有多余前缀会产生The image format is not supported报错。

url

String

与image二选一。

图片的URL路径,目前支持:

  • 公网http/https url
  • OBS提供的url,使用OBS数据需要进行授权。包括对服务授权、临时授权、匿名公开授权,详情参见配置OBS访问权限
说明:
  • 接口响应时间依赖于图片的下载时间,如果图片下载时间过长,会返回接口调用失败。
  • 请保证被检测图片所在的存储服务稳定可靠,推荐使用OBS服务存储图片数据。
  • url中不能存在中文字符,若存在,中文需要进行utf8编码。

return_text_location

Boolean

返回文本块坐标及单元格坐标信息,可选值包括:

  • true:返回文本块和单元格坐标;
  • false:不返回。

未传入该参数时默认为false,即不返回。

return_confidence

Boolean

返回字段识别置信度,小数点后四位。可选值包括:

  • true:返回字段置信度;
  • false:不返回。

未传入该参数时默认为false,即不返回字段置信度。

return_excel

Boolean

是否返回表格转换Microsoft Excel的Base64编码字段。可选值包括:

  • true:返回’excel’字段,表示xlsx格式的表格识别结果的Base64编码;
  • false:不返回。

对返回的Excel编码,可用Python函数 base64.b64decode解码后保存为xlsx文件。

return_table_location

Boolean

返回表格坐标,可选值包括:

  • true:返回表格坐标;
  • false:不返回。

未传入该参数时默认为false,即不返回。

return_image_size

Boolean

返回矫正后的图像大小,可选值包括:

  • true:返回矫正图像大小;
  • false:不返回。

未传入该参数时默认为false,即不返回。

return_rectification_matrix

Boolean

透视变换矩阵,可选值包括:

  • true:返回透视变换矩阵;
  • false:不返回。
说明:

说明:未传入该参数时默认为false,即不返回透视变换矩阵。

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

result

FinancialStatementResult object

识别结果。

调用失败时不返回此字段。

表5 FinancialStatementResult

参数

参数类型

描述

words_region_count

Integer

识别出来的表格、文本区域个数。

words_region_list

Array of FinancialStatementWordsRegionList objects

返回的表格、文本区域列表。输出顺序从左到右,从上到下。

excel

String

表格图像转换为excel的Base64编码,图像中的文字和表格按位置写入excel,可编辑。对返回的excel编码,可用base64.b64decode解码并保存为xlsx文件。

image_size

image_size object

矫正后图像的高宽信息。

rectification_matrix

Array<Array<Number>>

返回透视变换矩阵。

表6 FinancialStatementWordsRegionList

参数

参数类型

描述

type

String

区域属性:文本或表格。

words_block_count

Float

检测到的文字块数目。对文本区,文字块以文本字段为单位;对表格区,文字块以单元格内所有字段为单位。

table_location

Array<Array<Integer>>

表格位置信息,列表形式,分别表示表格4个顶点的x, y坐标;坐标原点为图片左上角,x轴沿水平方向,y轴沿竖直方向。

words_block_list

Array of FinancialStatementWordsBlockList objects

区域内文字块列表,输出顺序从左到右,从上到下。

表7 FinancialStatementWordsBlockList

参数

参数类型

描述

words

String

文字块内容。当入参"return_text_location"为false时,每个单元格返回一个文本值,不同行文本由换行符 "\n" 拼接。

location

Array<Array<Integer>>

文字块位置信息,列表形式,分别表示文字块4个顶点的x, y坐标;坐标原点为图片左上角,x轴沿水平方向,y轴沿竖直方向。

confidence

Float

文字块识别结果置信度信息,置信度越大,表示本次识别的对应字段的可靠性越大,在统计意义上,置信度越大正确率越高。注:置信度由算法给出,其不直接等价于对应字段的精度。

rows

Array of integers

单元格行信息,列表形式。多个连续值表示单元格垮多行。

columns

Array of integers

单元格列信息,列表形式。多个连续值表示单元格垮多列。

cell_location

Array<Array<Integer>>

单元格位置信息,列表形式,分别表示单元格4个顶点的x, y坐标;坐标原点为图片左上角,x轴沿水平方向,y轴沿竖直方向。

表8 image_size

参数

参数类型

描述

height

Integer

矫正后图像的高。

width

Integer

矫正后图像的宽。

状态码: 400

表9 响应Body参数

参数

参数类型

描述

error_code

String

调用失败时的错误码,具体请参见错误码

调用成功时不返回此字段。

error_msg

String

调用失败时返回的错误信息。

调用成功时不返回此字段。

请求示例

  • Endpoint即调用API的请求地址,不同服务不同区域的Endpoint不同,具体请参见终端节点。 例如,财务报表识别服务部署在“华东-上海一”区域的“endpoint”为“ocr.cn-east-3.myhuaweicloud.com”或“ocr.cn-north-4.myhuaweicloud.cn”,请求URL为“https://ocr.cn-east-3.myhuaweicloud.com/v2/{project_id}/ocr/insurance-policy”,“project_id”为项目ID,获取方法请参见获取项目ID
  • 如何获取Token请参见认证鉴权
  • 请求样例(方式一:使用图片的Base64编码)
    POST https://{endpoint}/v2/{project_id}/ocr/financial-statement
    Request Header:
    Content-Type: application/json
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
    Request Body:
    {
      "image" : "/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAA..."
    }
  • 请求样例(方式二:使用图片URL)
    POST https://{endpoint}/v2/{project_id}/ocr/financial-statement
    Request Header:
    Content-Type: application/json
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
    Request Body:
    {
      "url" : "/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAA..."
    }
  • Python3语言请求代码示例(其他语言参照下列示例编写或使用OCR SDK)
    # encoding:utf-8
    
    import requests
    import base64
    
    url = "https://{endpoint}/v2/{project_id}/ocr/financial-statement"
    token = "用户获取得到的实际token值"
    headers = {'Content-Type': 'application/json', 'X-Auth-Token': token}
    
    imagepath = r'./data/financial-statement-demo.png' # 读取本地图片
    with open(imagepath, "rb") as bin_data:
        image_data = bin_data.read()
    image_base64 = base64.b64encode(image_data).decode("utf-8")  # 使用图片的Base64编码
    payload = {"image": image_base64}
    response = requests.post(url, headers=headers, json=payload)
    print(response.text)

响应示例

状态码: 200

成功响应样例

{
  "result" : {
    "words_region_count" : 2,
    "words_region_list" : [ {
      "type" : "text",
      "words_block_count" : 1,
      "words_block_list" : [ {
        "words" : "文字区域识别文字块1",
        "confidence" : 0.999
      } ]
    }, {
      "type" : "table",
      "table_location" : [ [ 120, 106 ], [ 200, 106 ], [ 200, 351 ], [ 120, 351 ] ],
      "words_block_count" : 2,
      "words_block_list" : [ {
        "words" : "负债和所有者权益(或股东权益)",
        "confidence" : 0.9963,
        "rows" : [ 0 ],
        "columns" : [ 0 ]
      }, {
        "words" : "行次",
        "confidence" : 0.9999,
        "rows" : [ 0 ],
        "columns" : [ 1 ]
      } ]
    } ],
    "excel" : "AQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKg…",
    "image_size" : {
      "height" : 2501,
      "width" : 1701
    }
  }
}

状态码: 400

失败响应样例

{
  "error_code" : "AIS.0103",
  "error_msg" : "The image size does not meet the requirements."
}

状态码

状态码

描述

200

成功响应示例。

400

失败响应样例。

状态码请参见状态码

错误码

错误码请参见错误码

分享:

    相关文档

    相关产品