ocr result
文本识别结果对象,支持两种模式:扁平模式(texts)和结构化模式(regionInfos),二选一,取决于 OCR 服务本身是否具备分段能力:
- 如果 OCR 服务能够区分区域和段落的层级关系,建议使用
regionInfos,Bob 可以更好地利用布局信息进行智能分段和原图翻译 - 如果 OCR 服务能够区分段落但不区分区域,同样可以使用
regionInfos,将所有段落放在一个 region 下即可 - 如果 OCR 服务只返回扁平的文本行列表、不具备分段能力,使用
texts即可
推荐按阅读顺序返回行级结果,这样在 Bob 中的展示、智能分段和原图翻译效果最佳。如果 OCR 服务只能返回更细粒度的结果,同样可以接入,但最终效果可能不如行级结果稳定。
更多详细说明请参考这篇博客。
| 属性 | 类型 | 说明 |
|---|---|---|
| from | string | 图片中的文字的主要语言,可与查询参数中传入的 from 不一致,可不传。查看 语言代码。 |
| texts | array | 扁平文本行识别结果数组,见 ocr text。与 regionInfos 二选一,必传其中之一。 |
| regionInfos | array | 结构化识别结果数组,见 region info。与 texts 二选一,必传其中之一。 Bob 1.20.0+ 可用 |
| raw | any | 如果插件内部调用了某文本识别接口,可将接口原始数据传回,方便定位问题,可不传。 |
ocr text
| 属性 | 类型 | 说明 |
|---|---|---|
| text | string | 识别出的文本,推荐为一整行文字 |
| boundingBox | bounding box | 文本的位置信息,可不传。 Bob 1.20.0+ 可用 |
region info Bob 1.20.0+ 可用
结构化识别时的区域信息,一个区域代表图片中的一个文本块。
| 属性 | 类型 | 说明 |
|---|---|---|
| paragraphInfos | array | 段落信息数组,见 paragraph info。 |
| boundingBox | bounding box | 区域的位置信息,可不传。 |
paragraph info Bob 1.20.0+ 可用
段落信息,一个段落包含若干行文本。
| 属性 | 类型 | 说明 |
|---|---|---|
| texts | array | 段落内按阅读顺序排列的文本行数组,见 ocr text。 |
| boundingBox | bounding box | 段落的位置信息,可不传。 |
bounding box Bob 1.20.0+ 可用
位置信息对象,用于描述文本在图片中的位置。
| 属性 | 类型 | 说明 |
|---|---|---|
| points | array | 归一化坐标的四个顶点数组,见 point。坐标值范围 [0, 1],左上角为原点,x 向右、y 向下。四个顶点依次为左上、右上、左下、右下(Bob 会自动判定方向,无需严格按此顺序)。 |
point Bob 1.20.0+ 可用
归一化坐标点。
| 属性 | 类型 | 说明 |
|---|---|---|
| x | number | 横坐标,取值范围 [0, 1] |
| y | number | 纵坐标,取值范围 [0, 1] |
示例
扁平模式(texts)
适用于简单场景,每个 text 对象代表一行或一段文字:
json
{
"from": "en",
"texts": [
{
"text": "New features available with macOS Catalina."
},
{
"text": "macOS Catalina gives users powerful ways to do amazing things. So you can create and discover like never before."
}
],
"raw": {}
}携带位置信息的扁平模式:
json
{
"from": "en",
"texts": [
{
"text": "New features available with macOS Catalina.",
"boundingBox": {
"points": [
{ "x": 0.1, "y": 0.05 },
{ "x": 0.9, "y": 0.05 },
{ "x": 0.1, "y": 0.09 },
{ "x": 0.9, "y": 0.09 }
]
}
},
{
"text": "macOS Catalina gives users powerful ways to do amazing things.",
"boundingBox": {
"points": [
{ "x": 0.1, "y": 0.15 },
{ "x": 0.9, "y": 0.15 },
{ "x": 0.1, "y": 0.19 },
{ "x": 0.9, "y": 0.19 }
]
}
}
]
}结构化模式(regionInfos) Bob 1.20.0+ 可用
适用于需要布局信息的场景(如原图翻译),使用 region → paragraph → text 三层结构:
json
{
"from": "en",
"regionInfos": [
{
"paragraphInfos": [
{
"texts": [
{
"text": "New features available",
"boundingBox": {
"points": [
{ "x": 0.1, "y": 0.05 },
{ "x": 0.5, "y": 0.05 },
{ "x": 0.1, "y": 0.09 },
{ "x": 0.5, "y": 0.09 }
]
}
},
{
"text": "with macOS Catalina.",
"boundingBox": {
"points": [
{ "x": 0.1, "y": 0.10 },
{ "x": 0.5, "y": 0.10 },
{ "x": 0.1, "y": 0.14 },
{ "x": 0.5, "y": 0.14 }
]
}
}
],
"boundingBox": {
"points": [
{ "x": 0.1, "y": 0.05 },
{ "x": 0.5, "y": 0.05 },
{ "x": 0.1, "y": 0.14 },
{ "x": 0.5, "y": 0.14 }
]
}
}
],
"boundingBox": {
"points": [
{ "x": 0.08, "y": 0.03 },
{ "x": 0.52, "y": 0.03 },
{ "x": 0.08, "y": 0.16 },
{ "x": 0.52, "y": 0.16 }
]
}
}
]
}
