跳到主要内容
返回

MiniCPM-OCR

MiniCPM-V 多模态系列

MiniCPM-OCR 是面向高效文档解析和文字识别的系列模型,首次同时开放解析模型与 System-1 决策模型:

  • MiniCPM-OCR 1.0(解析模型):以 1.3B 小参数在 Real5-OmniDocBench(93.68)和 OCRBench v2(54.7)上取得双 SOTA,支持扫描、拍照、弯曲、倾斜、翻拍等复杂场景的高效文档解析。
  • MiniCPM-OCR Jev(决策模型):不解析文本,只对文本、公式和表格的解析结果进行质量判别并返回校准概率(JevOCRBench 整体 93.5),帮助开发者评估解析质量、筛选需重点复核的结果。

模型列表​

Checkpoint参数量架构任务
MiniCPM-OCR-1.01.3BSigLIP + Qwen3.5,基于 MiniCPM-V 4.6 训练文档解析、识别与字段抽取
MiniCPM-OCR-Jev2BQwen3.5-2B + 二分类头文本、公式与表格解析质量判别

核心特性​

MiniCPM-OCR 1.0​

  • 文档内容识别:覆盖中英文文字、表格、公式、图表、印章与关键信息抽取。
  • 整篇文档解析:minicpmvocr SDK 结合 PP-DocLayoutV3 版面检测与识别服务,按阅读顺序组装 Markdown,将 OTSL 表格转为 HTML,并保留 LaTeX 公式。
  • DSpark 加速:通过同版本配套草稿模型进行投机解码,也可使用普通解码。

MiniCPM-OCR Jev​

  • 区域级质量判别:模型输入为原始区域图片、OCR 候选文本与其渲染图片;带渲染器的服务只需提交原图、候选文本和正确的 category。
  • 复核分流:使用业务标注样本校准放行阈值,将低分区域交由人工复核。
  • 多候选择优:对同一裁剪区域的多个 OCR 模型结果评分并选择最高分;全部未达到业务阈值时仍可进入复核。

评测表现​

模型基准发布成绩
MiniCPM-OCR 1.0Real5-OmniDocBench93.68
MiniCPM-OCR 1.0OCRBench v254.7
MiniCPM-OCR JevJevOCRBench(整体)93.5

解析吞吐参考:在 RTX 5090 上,使用 OmniDocBench v1.6 的 1,651 张图片、图片级并发 1 与加速配置,约为 1.2 页/秒。同一页内的区域仍可并发识别,硬件、页面内容与并发设置都会影响速度。

快速开始​

先使用官方 Linux x86_64 / NVIDIA 配方,已在 RTX 5090 32 GB 上验证;使用 Python 3.12、≥580 驱动(CUDA 13),预留至少 40 GB 磁盘。SDK 与识别后端运行在独立环境中。

vLLM​

使用仓库脚本安装匹配的推理后端:

Bash
git clone https://github.com/OpenBMB/MiniCPM-OCR.git
cd MiniCPM-OCR
apt-get update
apt-get install -y software-properties-common
add-apt-repository -y ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install -y gcc-13 g++-13 libdw-dev libelf-dev
bash scripts/install.sh vllm

在仓库根目录另开终端启动服务:

Bash
source .venv-vllm/bin/activate
export CC=gcc-13 CXX=g++-13
export CUDA_HOME="$(python -c 'import sysconfig; print(sysconfig.get_path("purelib") + "/nvidia/cu13")')"
export PATH="$CUDA_HOME/bin:$PATH"

vllm serve openbmb/MiniCPM-OCR-1.0 \
--served-model-name minicpm-ocr \
--host 127.0.0.1 \
--port 18499 \
--max-model-len 40960 \
--max-num-batched-tokens 40960 \
--max-num-seqs 32 \
--limit-mm-per-prompt '{"image":36,"video":0}' \
--attention-backend FLASH_ATTN \
--mm-encoder-attn-backend FLASH_ATTN \
--mm-processor-kwargs '{"downsample_mode":"4x"}' \
--gpu-memory-utilization 0.85 \
--trust-request-mm-kwargs \
--speculative-config '{
"method": "dspark",
"model": "openbmb/MiniCPM-OCR-1.0-DSpark",
"num_speculative_tokens": 15,
"enable_adaptive_verification": false
}' \
--default-chat-template-kwargs '{"enable_thinking":false}'

发送测试请求,确认服务返回 minicpm-ocr:

Bash
curl -fsS http://127.0.0.1:18499/v1/models

命令通过配套草稿模型启用 DSpark。使用普通解码时,删除整个 --speculative-config 参数及 JSON 值。完整后端设置与排障见部署。

CLI​

保持识别服务运行,在仓库根目录创建独立的 SDK 环境,安装并解析 doc.pdf:

Bash
pip install uv
uv venv .minicpm-ocr --python 3.12 --seed
source .minicpm-ocr/bin/activate
python -m pip install "minicpm-ocr[all]==1.0.2"
python -m pip install "paddlepaddle-gpu==3.3.0" \
-i https://www.paddlepaddle.org.cn/packages/stable/cu129/

minicpmvocr parse \
--device cuda:0 \
--server-url http://127.0.0.1:18499 \
--model minicpm-ocr \
--input doc.pdf \
--output doc.md

SDK 会自动补全缺失的版面模型。打开 doc.md 查看解析结果;单区域识别与 Jev 质量判别分别见识别推理和 Jev 推理。

相关资源​

主题入口
代码仓库与发布说明OpenBMB/MiniCPM-OCR
在线体验MiniCPM-OCR Demo
API 接入API
官方文档SDK
评测与复现OCR 1.0 / Jev / 复现指南 / JevOCRBench
微调MiniCPM-OCR
部署MiniCPM-OCR 部署指南
推理MiniCPM-OCR 推理指南
量化MiniCPM-OCR 量化指南
模型权重OCR 1.0 / Jev