You need to enable JavaScript to run this app. 如何在Python脚本中通过`from kraken import ...`方式使用Kraken OCR库
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python脚本中通过`from kraken import ...`方式使用Kraken OCR库

Kraken OCR库Python导入式开发使用指南

Kraken官方文档的公开内容长期以命令行工具的使用说明为主,没有单独整理Python API的导入使用章节,因此很难在公开文档中检索到from kraken import ...形式的用法说明,但该库本身完整提供了可直接调用的Python功能接口。

前置环境校验

  • 确保安装的是完整版本的Kraken Python包,安装命令为pip install kraken[all],仅安装核心精简包会缺少API依赖组件。
  • 安装完成后可在Python交互环境执行import kraken,无导入报错即代表环境就绪,若报错优先排查版本冲突、依赖缺失问题。

核心可导入模块及功能

  • kraken.binarization:图像二值化预处理模块,常用方法为nlbin(),适配历史手稿、扫描件的自适应二值化需求。
  • kraken.pageseg:版面文本行分割模块,常用方法为segment(),可输出图像中文本行的位置边界框。
  • kraken.rpred:文本识别预测核心模块,提供TextRecognizer()类,可基于分割结果逐行输出识别文本。
  • kraken.lib.models:模型加载工具模块,提供load_any()方法,可直接加载本地训练完成的.kraken格式OCR模型。

最小可运行识别流程示例

以下流程完全通过Python API实现,和命令行识别效果等价

from PIL import Image
from kraken import binarization, pageseg, rpred
from kraken.lib import models

# 加载待识别的本地图像
input_img = Image.open("target.png")
# 执行自适应二值化
binary_img = binarization.nlbin(input_img)
# 检测图像内所有文本行位置
segment_result = pageseg.segment(binary_img)
# 加载本地预训练OCR模型
ocr_model = models.load_any("local_trained_model.kraken")
# 初始化逐行识别器
line_recognizer = rpred.TextRecognizer(ocr_model, segment_result['boxes'], binary_img)
# 遍历输出所有行的识别文本
for recognized_line in line_recognizer:
    print(recognized_line['text'])

常见使用避坑提示

  • 不要直接导入Kraken命令行入口文件内的函数,这类函数耦合了命令行参数解析逻辑,直接调用会出现参数不匹配报错。
  • 不同大版本的Kraken Python API存在不兼容变更,调用参数、返回值结构可能存在差异,可直接查看对应模块内的源码注释获取最新参数说明。
  • 如果需要对齐命令行kraken recognize的输出效果,需要对照CLI入口脚本内的参数配置,调整API调用时的DPI、分割阈值、识别解码参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 22:36:01