Skip to content
微信公众号二维码

Bob 官方公众号

ocr result

文本识别结果对象,支持两种模式:扁平模式texts)和结构化模式regionInfos),二选一,取决于 OCR 服务本身是否具备分段能力:

  • 如果 OCR 服务能够区分区域和段落的层级关系,建议使用 regionInfos,Bob 可以更好地利用布局信息进行智能分段和原图翻译
  • 如果 OCR 服务能够区分段落但不区分区域,同样可以使用 regionInfos,将所有段落放在一个 region 下即可
  • 如果 OCR 服务只返回扁平的文本行列表、不具备分段能力,使用 texts 即可

推荐按阅读顺序返回行级结果,这样在 Bob 中的展示、智能分段和原图翻译效果最佳。如果 OCR 服务只能返回更细粒度的结果,同样可以接入,但最终效果可能不如行级结果稳定。

更多详细说明请参考这篇博客

属性类型说明
fromstring图片中的文字的主要语言,可与查询参数中传入的 from 不一致,可不传。查看 语言代码
textsarray扁平文本行识别结果数组,见 ocr text。与 regionInfos 二选一,必传其中之一。
regionInfosarray结构化识别结果数组,见 region info。与 texts 二选一,必传其中之一。 Bob 1.20.0+ 可用
rawany如果插件内部调用了某文本识别接口,可将接口原始数据传回,方便定位问题,可不传。

ocr text

属性类型说明
textstring识别出的文本,推荐为一整行文字
boundingBoxbounding box文本的位置信息,可不传。 Bob 1.20.0+ 可用

region info Bob 1.20.0+ 可用

结构化识别时的区域信息,一个区域代表图片中的一个文本块。

属性类型说明
paragraphInfosarray段落信息数组,见 paragraph info
boundingBoxbounding box区域的位置信息,可不传。

paragraph info Bob 1.20.0+ 可用

段落信息,一个段落包含若干行文本。

属性类型说明
textsarray段落内按阅读顺序排列的文本行数组,见 ocr text
boundingBoxbounding box段落的位置信息,可不传。

bounding box Bob 1.20.0+ 可用

位置信息对象,用于描述文本在图片中的位置。

属性类型说明
pointsarray归一化坐标的四个顶点数组,见 point。坐标值范围 [0, 1],左上角为原点,x 向右、y 向下。四个顶点依次为左上、右上、左下、右下(Bob 会自动判定方向,无需严格按此顺序)。

point Bob 1.20.0+ 可用

归一化坐标点。

属性类型说明
xnumber横坐标,取值范围 [0, 1]
ynumber纵坐标,取值范围 [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 }
                ]
            }
        }
    ]
}