
大家好,我是 Ai 学习的老章
关于 OCR 这个话题,我之前写过太多了:
刚刚,百度又放大招了!PaddleOCR-VL-1.5 正式发布,0.9B 参数干翻一众百亿级大模型,在 OmniDocBench v1.5 上达到 94.5% 准确率,直接刷新 SOTA。这让我不禁想起之前测试 DeepSeek-OCR 时的结论——"不如百度",现在百度用新版本再次证明了自己。
PaddleOCR-VL-1.5 是 PaddleOCR-VL 的下一代升级版本,主打一个"以小博大"。只有 0.9B 参数(没错,不到 1B),却在文档解析领域全面超越了一众开源和闭源大模型。
下图展示了 PaddleOCR-VL-1.5 的模型架构和多任务能力:

PaddleOCR-VL-1.5 模型架构与任务概览
这货最牛的地方是什么?它是基于 ERNIE-4.5-0.3B 微调的!百度把自家的 ERNIE 4.5 系列和 PaddleOCR 的工程经验结合起来,搞出了这么个小而美的怪物。
官方给它的定位是:Towards a Multi-Task 0.9B VLM for Robust In-the-Wild Document Parsing(面向真实场景的多任务 0.9B 视觉语言模型),翻译成人话就是——"别管你的文档有多烂、多歪、多糊,我都能给你认出来"。
核心指标一览,直接甩出成绩单:

PaddleOCR-VL-1.5 核心指标
核心能力一览:
PaddleOCR-VL-1.5 证明了工程能力 + 场景理解 > 单纯堆参数:
安装方式非常简单,官方提供了 pip 一键安装:
# 安装 PaddlePaddle(CUDA 12.6 版本)
python -m pip install paddlepaddle-gpu==3.2.1 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
# 安装 PaddleOCR
python -m pip install -U "paddleocr[doc-parser]"
注意:需要 PaddlePaddle 3.2.1 及以上版本。macOS 用户建议使用 Docker 环境。
PaddleOCR-VL-1.5 提供了三种使用方式,覆盖从入门到进阶的全场景需求。
最简单的方式,一行命令搞定:
paddleocr doc_parser -i your_document.png
支持本地图片、PDF 文件,甚至网络图片 URL。
更灵活的调用方式:
from paddleocr import PaddleOCRVL
pipeline = PaddleOCRVL()
output = pipeline.predict("your_document.png")
for res in output:
res.print() # 打印结果
res.save_to_json(save_path="output") # 保存为 JSON
res.save_to_markdown(save_path="output") # 保存为 Markdown
需要高并发场景?可以用 Docker 启动 vLLM 服务:
docker run \
--rm \
--gpus all \
--network host \
ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-genai-vllm-server:latest-nvidia-gpu \
paddleocr genai_server --model_name PaddleOCR-VL-1.5-0.9B --host 0.0.0.0 --port 8080 --backend vllm
然后通过 API 调用:
from paddleocr import PaddleOCRVL
pipeline = PaddleOCRVL(
vl_rec_backend="vllm-server",
vl_rec_server_url="http://127.0.0.1:8080/v1"
)
output = pipeline.predict("your_document.png")
如果你更习惯 Hugging Face 的生态,也可以用 transformers 直接推理:
from PIL import Image
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText
model_path = "PaddlePaddle/PaddleOCR-VL-1.5"
image = Image.open("test.png").convert("RGB")
model = AutoModelForImageTextToText.from_pretrained(
model_path,
torch_dtype=torch.bfloat16
).to("cuda").eval()
processor = AutoProcessor.from_pretrained(model_path)
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": "OCR:"}, # 可选:'Table Recognition:', 'Formula Recognition:', 'Spotting:', 'Seal Recognition:'
]
}
]
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
result = processor.decode(outputs[0][inputs["input_ids"].shape[-1]:-1])
print(result)
注意:需要 transformers v5.0.0 及以上版本。
根据官方公布的数据:
OmniDocBench v1.5 测试结果:

OmniDocBench v1.5 性能对比
Real5-OmniDocBench 真实场景测试(这是官方新发布的测试集,专门测试恶劣场景):

Real5-OmniDocBench 真实场景测试
全是 SOTA,就问你服不服?
推理性能:在单张 A100 上,批量处理 512 页 PDF 文档,端到端推理速度也是遥遥领先。

推理性能对比
光说不练假把式,来看看 PaddleOCR-VL-1.5 在各种恶劣场景下的实际表现:

光照不均场景识别效果

倾斜文档识别效果

屏幕拍摄识别效果

扫描件识别效果

弯曲变形识别效果

文本定位能力展示

印章识别能力展示
不想本地部署?官方提供了在线 Demo:
🔗 Hugging Face Spaces:https://huggingface.co/spaces/PaddlePaddle/PaddleOCR-VL-1.5_Online_Demo
🔗 飞桨星河社区:https://aistudio.baidu.com/paddleocr(还支持 API 调用和 MCP 服务)
PaddleOCR-VL-1.5 是一个非常值得关注的开源项目,尤其适合以下场景:
推荐使用:
可能的不足:
和 DeepSeek-OCR 相比:
总的来说,百度这次用 PaddleOCR-VL-1.5 证明了一件事:在 OCR 领域,工程能力和场景理解比堆参数更重要。0.9B 参数干翻百亿级大模型,这波百度赢麻了。
制作不易,如果这篇文章觉得对你有用,可否点个关注。给我个三连击:点赞、转发和在看。若可以再给我加个🌟,谢谢你看我的文章,我们下篇再见!