
这周的开源社区简直就是 OCR 领域的“百花齐放”!
前脚 LightOn 用 1B 刷榜,后脚 DeepSeek 用 LLM 颠覆架构,现在 百度 PaddleOCR 直接丢出了王炸——PaddleOCR-VL-1.5,直接登顶全球第一。

如果说 DeepSeek-OCR-2 的强项是“大脑”(用 LLM 理解逻辑),那么 PaddleOCR-VL-1.5 的强项就是 “眼睛”。它拥有目前地表最强的视觉鲁棒性。

(来源:X@Jason Zhu)
我们都知道现实环境里的文档,很少是完美扫描件:
传统 OCR 面对这些情况,基本靠运气。
而百度这次极其务实,刚刚开源的 PaddleOCR-VL-1.5,第一次把这个最棘手的问题,正面解决了,而其核心就是 “异形框定位”能力。

在仅有 0.9B 参数的情况下,在权威榜单 OmniDocBench v1.5 上以 94.5% 的准确率碾压全场,超越了 Gemini-3-Pro 和 DeepSeek-OCR2。

核心真实能力预览:
不规则文档解析:弯折页面、倾斜文档、发光页面、屏幕拍照、扫描件印章识别:合同、发票场景刚需跨页表格自动合并:长文档神器标题结构识别:减少后处理逻辑生僻字/古籍优化109 种语言支持(新增藏文、孟加拉文)下划线、复选框、多语言表格全面增强1、异形框定位
全球首创“异形框定位”,这是 PaddleOCR-VL-1.5 最具革命性的突破。
以前的 OCR 为什么怕“歪”? 因为绝大多数 OCR 算法,底层的逻辑框都是矩形的。当你的纸张发生弯曲、折叠或者拍摄角度倾斜时,文字的排列在二维平面上就变成了梯形、扇形甚至是波浪形。用矩形框去套波浪线,必然会漏掉信息。
而这一次 PaddleOCR-VL-1.5 能够理解“物理形变”。你可以把它理解为 AI 拥有了“空间想象力”。它先理解了这张纸是弯的,再从弯曲的空间里提取逻辑。
在扫描、弯曲、倾斜、屏摄和光照变化这五个现实场景的文档解析任务评估集上,表现全面优于主流的开源和闭源模型。

(来源x@超级个体|柿子)

(来源weibo@Karminski-牙医)
2、0.9B 的极致性价比

在“大力出奇迹”的 AI 时代,我们习惯了看谁的模型参数大。千亿参数是标配,万亿参数才敢叫旗舰。
但 PaddleOCR-VL-1.5 给了所有人一记响亮的耳光。它用 0.9B 的轻量级架构,在 OmniDocBench v1.5 这个硬核测试中,跑出了 94.5% 的准确率。

超越了全球顶尖的通用大模型和文档解析专用模型(比如:Gemini-3-Pro、DeepSeek-OCR2、Qwen3-VL-235B-A22B等),登顶第一。
并且扩展了文本检测识别和印章识别任务,进一步提升了其能力范围。

3、多元素识别能力增强
增强了特定场景和多语言识别方面的能力。
针对特殊符号、古籍、多语言表格、下划线和复选框的识别性能得到提升。
语言覆盖范围扩展,新增支持中国藏文和孟加拉语识别。
这对于数字化存档项目是刚需。

4、长文档跨页解析
模型支持跨页表格自动合并和跨页段落标题识别,有效缓解了长文档解析中的内容碎片化问题。

PaddleOCR-VL-1.5 的体验也非常简单,也不用特意去部署一个 OCR 服务才能用。
直接就能用官方体验地址:

https://aistudio.baidu.com/paddleocr
其中还可以调用 API,登录就送 100 万 Token 额度,真正的随便用了属于是。

需要先获取 AI Studio 访问令牌

参考以下 Python 代码示例,即可直接集成到你的产品或脚本中:
# Please make sure the requests library is installed
# pip install requests
import base64
import os
import requests
API_URL = "https://ycxxxxxxxq24a.aistudio-app.com/layout-parsing"
TOKEN = ""
file_path = "<local file path>"
with open(file_path, "rb") as file:
file_bytes = file.read()
file_data = base64.b64encode(file_bytes).decode("ascii")
headers = {
"Authorization": f"token {TOKEN}",
"Content-Type": "application/json"
}
required_payload = {
"file": file_data,
"fileType": <file type>, # For PDF documents, set `fileType` to 0; for images, set `fileType` to 1
}
optional_payload = {
"useDocOrientationClassify": False,
"useDocUnwarping": False,
"useChartRecognition": False,
}
payload = {**required_payload, **optional_payload}
response = requests.post(API_URL, json=payload, headers=headers)
print(response.status_code)
assert response.status_code == 200
result = response.json()["result"]
output_dir = "output"
os.makedirs(output_dir, exist_ok=True)
for i, res in enumerate(result["layoutParsingResults"]):
md_filename = os.path.join(output_dir, f"doc_{i}.md")
with open(md_filename, "w") as md_file:
md_file.write(res["markdown"]["text"])
print(f"Markdown document saved at {md_filename}")
for img_path, img in res["markdown"]["images"].items():
full_img_path = os.path.join(output_dir, img_path)
os.makedirs(os.path.dirname(full_img_path), exist_ok=True)
img_bytes = requests.get(img).content
with open(full_img_path, "wb") as img_file:
img_file.write(img_bytes)
print(f"Image saved to: {full_img_path}")
for img_name, img in res["outputImages"].items():
img_response = requests.get(img)
if img_response.status_code == 200:
# Save image to local
filename = os.path.join(output_dir, f"{img_name}_{i}.jpg")
with open(filename, "wb") as f:
f.write(img_response.content)
print(f"Image saved to: {filename}")
else:
print(f"Failed to download image, status code: {img_response.status_code}")1、纸质文件还原

2、图表版面解析

3、复杂公式提取

4、手写笔记扫描

5、医疗处方识别

6、古籍文献研究

PaddleOCR 一直是开源界的良心,这次 VL-1.5 的发布,我认为标志着 OCR 技术进入了一个新阶段:
从「文字识别」正式跨入「文档智能」,它第一次让 OCR 适应现实环境,而不是要求现实环境适应 OCR。
你越是在“脏数据”里,它越显优势。
如果你正在做合同、票据、财报、审计、档案数字化,这可能是你今年最值得认真看的 OCR 模型。
参考链接:
在线体验/API:https://aistudio.baidu.com/paddleocr GitHub:https://github.com/PaddlePaddle/PaddleOCR 模型:https://huggingface.co/PaddlePaddle/PaddleOCR-VL-1.5

如果本文对您有帮助,也请帮忙点个 赞👍 + 在看 哈!❤️
在看你就赞赞我!
