llm_aided_ocr

用 LLM 把扫描 PDF 变成干净 Markdown,识别更准、格式更规整。

llm_aided_ocr 是一个利用大语言模型(LLM)增强 Tesseract OCR 输出的开源工具。它解决传统 OCR 识别率低、输出格式杂乱的问题,通过 LLM 进行错误纠正、智能分块和 Markdown 格式化,将扫描版 PDF 转换为结构清晰、可读性强的文本。核心能力包括:支持本地或 API 的多种 LLM 接入,灵活配置;对 OCR 结果进行上下文感知的纠错,显著提升准确率;自动将长文档分块处理,避免超出模型上下文限制;输出为 Markdown 格式,便于后续编辑、检索和知识库构建。项目基于 Python,易于集成到现有工作流中。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 3004
维护状态 维护中
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队Dicklesworthstone
所属国家
官网地址
定价模式free
价格说明开源项目,本地部署,完全免费
访问状态
是否开源是
开源协议NOASSERTION
主要语言Python
技术栈/模型ai-assist,llama2,llm,ocr,ocr-correction,tesseract
GitHub 星标★ 3004
30天Star增速
HF 下载量
上线时间2023-07-26 00:00:00
最近更新2026-09-23 00:00:00
维护状态维护中
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:进阶 约 15 分钟 部署方式:本地安装 5 步

环境要求

  • Python 3.12(README 要求用 pyenv 安装该版本)
  • pyenv(用于安装和管理 Python 3.12)
  • Tesseract OCR 引擎(项目 OCR 能力依赖它)
  • OpenAI 或 Anthropic 的 API Key(使用 API 模式时),或本地可运行的 LLM
  • 可选 GPU(README 提到本地 LLM 推理可用 GPU 加速)

安装与启动步骤

  1. 1安装 pyenv 与 Python

    按 README 提供的脚本安装 pyenv 所需的编译依赖、克隆 pyenv 并写入 zsh 配置,然后安装 Python 3.12。

    if ! command -v pyenv &> /dev/null; then
        sudo apt-get update
        sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
        git clone https://github.com/pyenv/pyenv.git ~/.pyenv
        echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
        echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
        echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
        source ~/.zshrc
    fi
    cd ~/.pyenv && git pull && cd -
    pyenv install 3.12
  2. 2准备项目环境

    README 第2步“Set up the project”的代码在节选中缺失,请对照仓库 README 完成依赖安装,并切换到 Python 3.12 环境。

  3. 3配置 .env

    在项目中使用 .env 文件配置 LLM 选择、API 提供商、模型、Token 上限与 Markdown 输出等选项。

  4. 4放入 PDF 并改路径

    把待处理 PDF 放在项目目录,并修改 main() 函数中的 input_pdf_file_path 变量为你的文件名。

  5. 5运行主脚本

    执行主脚本开始 PDF 转图片、Tesseract OCR、LLM 纠错与 Markdown 格式化流程。

    python llm_aided_ocr.py

关键配置

配置项必填说明示例
USE_LOCAL_LLM是True 使用本地 LLM,False 使用 API 方式的 LLMFalse
API_PROVIDER是选择 API 提供商,可选 OPENAI 或 CLAUDEOPENAI
OPENAI_API_KEY否使用 OpenAI API 时需要的密钥sk-xxxxxxxxxxxxxxxx
ANTHROPIC_API_KEY否使用 Anthropic(Claude)API 时需要的密钥sk-ant-xxxxxxxx
OPENAI_COMPLETION_MODEL否指定 OpenAI 侧使用的模型名称gpt-4o
CLAUDE_MODEL_STRING否指定 Claude 侧使用的模型名称claude-3-5-sonnet-latest

如何确认成功

脚本跑完后项目目录会生成多个输出文件,包含最终 LLM 纠正后的 Markdown 文本,终端日志无报错。

常见问题

Q:应该用本地 LLM 还是 API?

A:在 .env 中设置 USE_LOCAL_LLM:True 走本地模型,False 则通过 API_PROVIDER 选择 OPENAI 或 CLAUDE 并填写对应 API Key。

Q:运行时提示找不到 PDF 怎么办?

A:确认 PDF 已放入项目目录,并检查 main() 里 input_pdf_file_path 变量的文件名与实际文件完全一致。

Q:长文档会超出模型上下文吗?

A:项目内置智能分块功能,会把长文本切分后再交给 LLM 处理,避免超出上下文限制。

Q:本地 LLM 推理很慢怎么办?

A:README 提到支持 GPU 加速本地 LLM 推理,也可改用 API 方式获得更快的处理速度。

注意事项

  • README 第2步“Set up the project”的具体命令在节选中缺失,安装依赖前请以仓库当前 README 为准。
  • .env 中含 API Key,请不要把该文件提交到公开仓库。
  • 处理大量或超长 PDF 时,API 模式可能产生较高调用费用,建议先用少量页面测试。

核心亮点

  • 利用 LLM 上下文纠错,显著降低 OCR 错字率,尤其对专业术语和复杂排版
  • 智能分块处理长文档,突破上下文窗口限制,适合整本书级扫描件
  • 输出标准 Markdown,无缝对接笔记软件、知识库和文档管线

不足之处

  • 依赖外部 LLM 服务,本地模型需较高硬件配置,API 调用产生费用
  • 处理速度受 LLM 推理速度影响,大批量文档转换耗时较长
  • 文档/社区待观察

适用场景

  • 将扫描版书籍、论文转换为可检索的 Markdown 笔记
  • 批量数字化企业纸质档案,并结构化存储
  • 为 OCR 结果提供智能校对,提升数据录入准确率

替代项目

Marker、Mathpix、PaddleOCR

项目介绍

llm_aided_ocr 是计算机视觉领域的开源项目,由 Dicklesworthstone 开发,2023 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(3,004)位列前 30%,在计算机视觉分类的 446 个项目里位列前 14%。

项目仍在小幅维护中,最近一次代码更新于 2026-09-23。本地部署,完全免费。

它主要面向的使用场景是:将扫描版书籍、论文转换为可检索的Markdown笔记。同类可对比的替代方案包括 Marker、Mathpix、PaddleOCR。

上一篇:text-extract-api

下一篇:DeepCamera

同类项目推荐

modlens 开源

给纯文本编码代理装上眼睛,粘贴图片即刻获得结构化视觉证据。

The first vision plugin for DeepSeek Harness, and the vision bridge for every text-o···

★ 4019 2026-08-19
opencv 开源

开箱即用的视觉算法库,搞定图像视频处理与识别

Open Source Computer Vision Library

★ 90930 2026-08-10
OpenCVTutorials 开源

中文 OpenCV 教程,从入门到实战,边看边跑代码

OpenCV-Python4.1 中文文档

★ 1430 2026-08-20
DEIMv2 开源

用DINOv3做实时检测,又快又准,直接落地。

[DEIMv2] Real Time Object Detection Meets DINOv3

★ 2046 2026-08-14