表格识别OCR API
小艾同学 ... 大约 2 分钟
# 表格识别OCR API
此 api 分为多种情况,无线表格、虚线表格、复杂表格
可以在api中配置,也可以配置自动识别表格类型
# 简介
用户需要先注册登录,然后才能正常使用。注意使用的时候需要带 token。
# 表格识别1
注意 可以检测到表格,但表格的识别有很大局限性。要求表格必须是很常见、很简单的表格形式。
# 支持
表格旋转一定的角度
[-10,9]
要求 table 中每个 cell 只能有一行文字
虚线表格
部分线条
# 待支持
干扰、噪声、背景、颜色等等都不行
无线线条
底色非白色的整行或整列
带边框的段落块
横线个数在0-1之间,纵线个数在0-1之间
两个横向长度相似的表格会被合成了一个
只有横线没有竖线无法检测
四个cell被保存为图片
# 表格识别2
复杂的表格图片
# 示例图片
# 接口/路由/入口
- 接口名称:表格识别OCR
- 接口地址:https://www.docpartner-serve.com/python/bpInterfaceTableOcr
- 请求方式:POST
- 响应类型:JSON(同步)
- content-type:application/json
# 输入说明
{
"requestData": {
"reqImgData": "asdfasf", // base64 图片base64 数据
}
}
1
2
3
4
5
2
3
4
5
# 输出说明
{
"isSuccessful": True,
"errorMsg" : "",
"data" : {
"respData":{
'latex': '$$\\int \\limits _ { x + y + z + c = 1$$', 'scores': 0.8
}
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 程序示例
# js 示例
// 基于 axios
import axios from "axios"
let token = "TODO" // TODO
let bpInterfaceTableOcr = "/bpInterfaceTableOcr"
let requestJsonData = {
requestData: {
queryDataDict: "TODO", // base64 字符串
}
}
axios.post(
bpInterfaceTableOcr,
requestJsonData,
{
baseURL: 'https://www.docpartner-serve.com/python/', // TODO
headers: {
"Authorization":`Bearer ${token}`,
"Content-Type":"application/json;charset=utf-8",
},
responseType: 'json'
}
)
.then(resp => {
if (resp.data.isSuccessful) {
console.log(resp.data.data)
} else {
console.log(`请求api失败!${resp.data.errorMsg}`);
}
})
.catch(err => {
console.log(err)
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# python 示例
# 基于 requests
import os
import base64
import requests
token = "" # TODO
bp = "bpInterfaceTableOcr"
url = "https://www.docpartner-serve.com/python/{bp}".format(
port=PORT,
bp=bp
) # 接口地址
imgPath = "test.png" # TODO
with open(imgPath, "rb") as f:
imgDataStr = base64.b64encode(f.read()) # --> b''
imgDataBase64 = imgDataStr.decode() # --> str 图片 base64 编码成字符串
jsondata = {
"requestData": {
"reqImgData": imgDataBase64,
}
}
headers = {
'Authorization': "Bearer " + token
}
r = requests.post(url,headers=headers,data=None,json=jsondata)
assert type(r.json()) == dict
print(r.json())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34