Skip to content

MarkItDown OCR精度5步优化:60%到95%的实战指南

2026年5月5日

MarkItDown的OCR不是传统Tesseract,是把图片提取出来送给Vision LLM做"看图识字"。GPT-4o能到95%+,小模型可能只有60%。这5步优化让OCR精度从60%升到95%。

Step 1:先把OCR开启

MarkItDown默认不启用OCR,需要手动开启:

bash
pip install 'markitdown[all]' markitdown-ocr
pip install openai  # 或 anthropic / google-generativeai
python
from markitdown import MarkItDown
from openai import OpenAI

md = MarkItDown(
    enable_plugins=True,      # 关键:启用 OCR 插件
    llm_client=OpenAI(),
    llm_model="gpt-4o"        # 精度优先选 gpt-4o 或 claude-3-5-sonnet
)

result = md.convert("scan.pdf")
print(result.text_content)

CLI模式:

bash
markitdown document.pdf --use-plugins --llm-client openai --llm-model gpt-4o -o output.md

Step 2:选对模型

推荐模型适用场景
gpt-4o / claude-3-5-sonnet复杂表格、公式、高精度需求
gemini-2.0-flash-exp速度快,精度尚可
claude-opus-4最高精度,响应较慢
4o-mini / LLaVA + Ollama简单文本,可本地运行

Step 3:自定义OCR Prompt

默认Prompt偏通用,对于特定场景明确要求效果更好:

python
# 公式文档
"Extract all text accurately, convert formulas to LaTeX, output clean Markdown"

# 表格文档
"Convert tables to proper Markdown grid tables, preserve all data"

# 图文混排
"Extract text in reading order, describe images briefly, output structured Markdown"

Step 4:图像预处理(低质量扫描件杀手)

在送进MarkItDown之前,先用OpenCV预处理:

python
import cv2
import numpy as np

def preprocess_for_ocr(img_path):
    img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
    img = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)  # 放大两倍
    _, img = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)  # 二值化
    img = cv2.medianBlur(img, 3)  # 去噪
    cv2.imwrite("preprocessed.jpg", img)
    return "preprocessed.jpg"

这招对扫描件、倾斜照片、低分辨率图片效果尤其明显。

Step 5:LLM后处理

MarkItDown跑完后,再喂给LLM做一次cleanup:

"Fix any OCR errors in this text, standardize formatting, output clean Markdown only"

精度预期

文档类型OCR精度
清晰打印文本 + 强模型95%+
复杂表格 / 轻微倾斜80-90%
公式 / 手写 / 低分辨率60-75%

公式和手写仍是难题,可搭配MathPix或Nougat后处理。

精度还是不够?替代方案

工具优势
Docling(IBM)结构化更好,表格和公式处理更强
Marker / MinerUGPU加速,适合批量处理
Azure Document Intelligence付费服务,精度高,可与MarkItDown组合
LlamaParse付费但精度极佳

最佳实践:先用MarkItDown + GPT-4o,不够再用Docling兜底。

📦 GitHub:github.com/microsoft/markitdown

不要孤军奋战啦!

加入微信群一起学习交流 AI

与大神一起使用 OpenClaw、Hermes、Claude Code、Seedance 2.0、GPT-Image-2 等

微信公众号

扫码关注微信公众号
私信 "加群",将自动获取微信群二维码

探索 AI 世界,掌握智能未来