You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Document AI OCR识别旧书扫描件中的非文本图像?

解决方案:用Google Document AI识别旧书扫描图中的图表

可以实现图表与文本、空白区域的区分,不过不能直接依赖visual_elements(如你所说,它仅支持复选框和表单字段),可以通过以下两种方式实现:

1. 使用自定义文档处理器(Custom Document Processor)

Google Document AI的自定义处理器支持训练模型识别自定义视觉元素(比如旧书里的各类图表):

  • 准备一批标注好的旧书扫描样本,手动标记出每个页面中图表的边界区域;
  • 在Document AI控制台创建自定义处理器,上传标注样本并训练模型;
  • 训练完成后,用该处理器分析扫描图,就能直接得到图表的位置信息和分类结果。
  • 注意:样本要覆盖你旧书中常见的图表类型(折线图、表格、手绘插图等),这样模型识别准确率会更高。

2. 基于Enterprise OCR的布局分析结果定位图表

Enterprise OCR的响应中包含页面的布局块信息,其中IMAGE类型的block就是识别到的图像/图表区域:

  • 遍历返回结果中的pages.blocks,筛选出block_type为IMAGE的条目,这些条目的bounding_poly字段包含图表的坐标边界;
  • 结合TEXT类型的block,就能明确区分文本、图表和空白区域。

示例代码(Python)

from google.cloud import documentai_v1 as documentai

def get_chart_areas(document):
    chart_locations = []
    for page in document.pages:
        for block in page.blocks:
            if block.block_type == documentai.Document.Page.Block.BlockType.IMAGE:
                vertices = block.layout.bounding_poly.vertices
                chart_locations.append({
                    "page": page.page_number,
                    "coords": {
                        "top_left": (vertices[0].x, vertices[0].y),
                        "bottom_right": (vertices[2].x, vertices[2].y)
                    }
                })
    return chart_locations

后续HTML生成建议

  • 文本部分:用OCR提取的文本内容生成<p>、<h1>等标准HTML文本标签;
  • 图表部分:根据获取到的坐标,从原始PNG中裁剪出对应区域的图像,用<img>标签插入到HTML的对应位置,实现原样保留。

内容的提问来源于stack exchange,提问作者SRobertJames

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:22:16