Skip to content

文档与 PDF 标注工具对比:开源与付费

对比 Potato、Labelbox、Label Studio、INCEpTION、Kili、Prodigy 和 doccano 在 PDF 标注上的表现,涵盖原生渲染、区域框、OCR 与跨页链接。

标注 PDF 需要三样文本工具不提供的东西:渲染真实的页面、把标签锚定到页面坐标,以及把标注跨页链接起来。Potato、Labelbox、INCEpTION 和 Kili 原生渲染 PDF。记录了如何链接不同页面上标注的,是 Labelbox 和 Potato 这两款。Label Studio 的开源版要求先把 PDF 转成图片,其原生 PDF 标注是 Enterprise 功能。

PDF 描述的是页面上的标记,而不是字符序列,所以把它当作抽取出来的文本去标注,会丢掉页码、栏序和表格结构。如何标注文档讲了这为什么重要,以及有哪些替代做法。本页比较各款工具。

本页只涉及文档。标注工具对比在一页里涵盖所有数据类型。

功能并列对照

下表每一项都是在 2026-09-24 从工具自身的文档中读到的。短横线表示文档没有描述该功能,这与工具拒绝该功能并不是一回事。

工具原生渲染 PDF页面上的区域框跨页链接内置 OCR许可证
Potato是是是可选,链接模式下开源
Labelbox是是是是,编辑器内未说明档位
Kili是是关系是,跨页未说明是免费试用,之后付费
INCEpTION是仅文本片段关系是,跨页未说明需要内嵌文本Apache 2.0
Label Studio仅 Enterprise是-读取已有文本层核心 Apache 2.0,PDF 受限
Prodigy通过 prodigy-pdf 插件是-是,通过 Tesseract付费,个人 $390
doccano----MIT
brat----MIT
CVAT文档列出图片、视频、音频、点云---开源

多数项目由两列决定。原生渲染让标注者看到的是文档本身,而不是对它的重建;跨页链接让标注者能记录第 2 页的某个论断依据的是第 9 页的某张表。

跨页链接

页面内部的关系很常见。这里凡是能渲染 PDF 的工具,都能把相邻的两条标注连起来。跨越页面边界去链接则少见得多,因为这要求界面同时把两处相距很远的位置留在屏幕上或内存里。

Labelbox 为此记录了明确的操作流程。标注者选择关系工具,右键点击第一条标注并选择"选择关系起点"("Select relationship start"),滚动到目标位置后选择"选择关系终点"("Select relationship end")。Potato 走的是另一条路,在 view_mode: scroll 下把所有页面堆叠进一个可滚动容器,于是链接的两端不用离开当前视图就都能够到,链接本身画成一段弧。

INCEpTION 和 Kili 都支持在 PDF 上建立关系,两者的文档都没有说明关系能否跨页。请把这当作未知,而不是当作否定。

版本之间的差别

Label Studio 是版本比工具本身更关键的一例。它面向多页文档的开源模板写道,标注"要求你先把文档转换成一张张单独的图片来做预处理"("requires that you first pre-process your document by converting it into separate images"),这会丢掉文本层,连带丢掉文本片段标注。原生 PDF 渲染和 OcrLabels 标签被记录为 Enterprise 功能,PDF 最多 100 页,每条结果上带一个 pageIndex。

它的 OCR 读取的是已经存在的文本层,而不是识别图像里的字符。文档对这个前提说得很直接,请你先确认"能否用光标在 PDF 里选中并高亮文本"("whether you can highlight text in the PDF using your cursor")。扫描页需要先走一步外部 OCR。

Prodigy 通过单独的 prodigy-pdf 插件处理 PDF,其中 pdf.image.manual 用于在渲染后的页面上画框,pdf.spans.manual 用于在抽取文本上标片段,pdf.ocr.correct 用于校对 Tesseract 的输出。Prodigy 是专有的终身授权,个人使用 $390,企业按席位计每席 $490,最少五个席位。

doccano 和 brat 是文本工具。doccano 随附的导入器清单列有 TextFile、TextLine、CSV、FastText、JSON、JSONL、Excel、CoNLL、ImageFile 和 AudioFile,其中没有 PDF 导入器。brat 把每份文档存成纯 UTF-8 文本文件,旁边放一个独立的 .ann 文件,因此页面在它的数据模型里没有对应表示。两者都是 MIT 许可,也都仍然适合它们当初所面向的文本任务。

CVAT 文档中记载的媒体格式是图片、视频、音频和点云。它的文档没有提到 PDF,这是关于文档的陈述,而不是关于代码库的陈述。

扫描文档

在替你做多少事这一点上,各工具在 OCR 上的分歧最大。Labelbox 和 Kili 从像素识别文字,因此扫描件不用准备就能用。Kili 在 PDF 自带文本存在时使用它,否则回退到图像,并支持通过一个 Google Vision 格式的元数据字段接收外部算好的 OCR 结果。Label Studio 和 INCEpTION 都要求内嵌文本层,识别的活留给你自己。

Potato 的 OCR 是可选的,且只在链接模式下运行。ocr 选项接受 false、true 或 auto,auto 只在内嵌文本层返回为空时才跑这一遍,适合数字原生文件与扫描件混在一起的语料。

yaml
instance_display:
  fields:
    - key: pdf
      type: pdf
      label: "Document"
      display_options:
        annotation_mode: link
        view_mode: scroll
        ocr: auto
        enable_text_anchors: true
        enable_region_anchors: true
        anchor_labels:
          - name: claim
            color: "#dc2626"
          - name: figure
            color: "#2563eb"
        link_types:
          - name: refers_to
            directed: true
            allowed_source_labels: [claim]
            allowed_target_labels: [figure]

allowed_source_labels 和 allowed_target_labels 限定某种链接类型可以连接哪些锚点,于是 refers_to 链接只能从论断出发,也只能落在图上。这样表达出来的规范由界面来执行,而不必靠标注者记住。

Potato 在文档标注上不做的事

Potato 不提供标注人力,而 Labelbox、Kili 和 Scale 都是围绕托管标注服务建立的。Potato 没有挂在文档标注上的模型训练闭环,那是 prodigy-pdf 借助 Prodigy 的其余部分提供的。Potato 的 OCR 只在链接模式下运行,所以要在扫描件上做片段模式的任务,得事先补上文本层。

Word 和 Markdown 文件用的是 Potato 另一个 document 显示类型,而不是 pdf 显示类型。在这里列出的工具中,doccano 和 INCEpTION 的格式清单足够明确,可以说 DOCX 不在其列;其余几款两方面都没有提及。

延伸阅读

已于 2026-09-24 对照各项目的文档、定价页和代码仓库核查。若有某格写错,请告诉我们。