mittagessen/kraken

OCR engine for all the languages

什么是 kraken

kraken 是一个开源的 OCR(光学字符识别)工具包,旨在数字化历史文献以及主流 OCR 引擎难以处理的非拉丁文字。它集成了可训练的布局分析器、阅读顺序检测器和能够处理从右到左、双向及从上到下书写的神经网络识别器。


主要功能

功能 重要性
完全可训练的流水线 – 您可以教会系统新的页面布局、阅读顺序和字符集,这对于古籍、非拉丁字母或自定义字体至关重要。
双向与竖排文本支持 – 支持阿拉伯文、希伯来文、CJK 竖排文本等。
多种输出格式 – ALTO、PageXML、abbyyXML、hOCR 等,可直接用于数字图书馆工作流。
单词级边界框与字符切片 – 提供细粒度定位,适用于学术标注。
Zenodo 上的模型库 – 一个公开的预训练模型仓库(例如印刷体法语、历史字体),可通过单条命令获取。
可插拔的网络架构 – 可根据速度或精度需求更换识别器主干网络。
跨平台 – 支持 Linux 和 macOS,可在 x86_64 和 ARM CPU 上运行。

快速入门(推荐安装)

# 推荐:使用 pipx 创建隔离环境
sudo apt install pipx            # 在 Debian/Ubuntu 上
pipx install kraken               # 下载包及其依赖项

若偏好传统虚拟环境:

python -m venv venv && source venv/bin/activate
pip install kraken               # 或从仓库中执行 `pip install .`

如需 PDF 或多图像 TIFF 支持,请添加可选依赖:

pip install kraken[pdf]

一行命令运行 OCR

kraken -i image.tif image.txt binarize segment ocr

该命令自动完成三项操作:

  1. 二值化 图像(使用 nlbin 算法)。
  2. 分段 页面为文本行(基线分段器)。
  3. 识别 文本,使用默认模型并输出纯文本文件。

您也可以单独调用每个步骤(例如:kraken -i img.tif bw.png binarize)。


使用自定义模型扩展

# 从公开的 Zenodo 收集中获取现成模型
kraken get 10.5281/zenodo.10592716

# 列出所有可用的社区模型
kraken list

对于自定义项目,您可以在自己的标注数据上训练新模型(完整工作流程详见 https://kraken.re 的文档)。


谁在使用它?

kraken 由 eScripta 研究组(École Pratique des Hautes Études, Université PSL)开发,并与 eScriptorium 网页界面深度集成,后者提供训练数据标注和推理的 GUI。该项目获得多个欧盟研究计划(ATRIUM、ERC MiDRASH、RESILIENCE 以及法国 ANR Biblissima+)资助,凸显其在数字人文与文化遗产项目中的重要性。


更多信息


TL;DR

kraken 是一个基于 Python、完全可训练的 OCR 引擎,专为历史文献和非拉丁文字设计,提供端到端处理(二值化 → 布局分析 → 识别)和开源模型库。使用 pipx install kraken 安装,获取模型后运行 kraken -i file.tif out.txt binarize segment ocr 即可开始数字化古籍。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目