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
该命令自动完成三项操作:
- 二值化 图像(使用 nlbin 算法)。
- 分段 页面为文本行(基线分段器)。
- 识别 文本,使用默认模型并输出纯文本文件。
您也可以单独调用每个步骤(例如: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+)资助,凸显其在数字人文与文化遗产项目中的重要性。
更多信息
- 文档网站:https://kraken.re
- GitHub 仓库:https://github.com/mittagessen/kraken(包含测试套件、贡献指南)
- 社区聊天:README 中链接的 Gitter 频道,可用于 eScriptorium 集成相关问题求助。
TL;DR
kraken 是一个基于 Python、完全可训练的 OCR 引擎,专为历史文献和非拉丁文字设计,提供端到端处理(二值化 → 布局分析 → 识别)和开源模型库。使用 pipx install kraken 安装,获取模型后运行 kraken -i file.tif out.txt binarize segment ocr 即可开始数字化古籍。
相关
- 项目
- 项目
- 项目
- 项目
- 项目