Surya 2 OCR实战:6.5亿参数模型跑通识别全链路,弱项场景怎么补

发布时间:2026/9/6 22:36:47
Surya 2 OCR实战:6.5亿参数模型跑通识别全链路,弱项场景怎么补 Surya 2 OCR实战6.5亿参数模型跑通识别全链路弱项场景怎么补【免费下载链接】suryaOCR, layout analysis, reading order, table recognition in 90 languages项目地址: https://gitcode.com/GitHub_Trending/su/surya预训练模型在你的私有文档上翻车时问题通常不在模型不行而在场景失配老扫描件、多栏排版、密集表格这些边缘 case恰恰是公开基准里最容易露怯的地方。Surya 2 用一个 650M 参数的 VLM 同时做 OCR 文本识别、版面分析和表格识别90 多种语言开箱即用它的弱项也很透明——官方把分场景通过率直接摆在 README 里你可以据此判断哪类文档值得投入调优。先看底牌Surya 2 的能力数字架构layout、OCR、表格识别共用同一个 Qwen3.5 风格 VLM约 650M 参数按 prompt 分别输出布局 JSON 或整页 HTML文本行检测是另一个独立的 EfficientViT segformer 小模型纯 torch不依赖推理后端。精度olmOCR-bench 得分 83.3是 3B 参数以下这一档的第一名比 1B 的 LightOnOCR 2-1B83.2高出一线约为 8.3B 的 olmOCR77.45.9 分。分场景通过率8,413 个测试用例Base 99.7、ArXiv 88.3、表格 86.6、多栏 82.4、旧式扫描件 41.8。 最后一列是关键如果你的目标语料是老旧印刷品Surya 2 不是开箱即用而是开箱后需要调。吞吐RTX 5090 上 vllm 并发 128 时约 5.35 页/秒、1.29 万 token/秒Mac 上用 llama.cpp 的 Metal 后端也有 0.11 页/秒功耗约 30WCPU 场景并非不可用。多语言91 种语言内部基准整体 87.2%其中 38 种 ≥90%中文 82.5%、日文 86.2%、韩文 86.7%。环境准备与最小可运行路径两条路径按你的角色选# 使用者绝大多数情况pip 装即可 pip install surya-ocr推理后端二选一Surya 首次调用时会自动拉起NVIDIA GPU装 Docker NVIDIA Container Toolkit后端走vllmCPU / Apple Silicon装 llama.cpp 的llama-servermacOS 下brew install llama.cpp。# 开发/阅读源码uv 管理依赖 git clone https://gitcode.com/GitHub_Trending/su/surya cd surya uv sync --group dev跑通的最小路径就一行——对任意图片、PDF 或文件夹执行surya_ocr ./sample_page.png结果写在results.json按输入文件名去扩展名为键每页一个 dict包含blocks按阅读序、image_bbox等字段。配置项集中在 surya/settings.py全部可用环境变量覆盖比如SURYA_INFERENCE_BACKENDvllm、SURYA_INFERENCE_URLhttp://host:8000/v1直接挂一个现成的 OpenAI 兼容服务。三大任务怎么调OCR、版面与表格单页 OCR 与版面分析PythonRecognitionPredictor 默认走整页模式一次 VLM 调用输出一整页的 block 列表数学公式以math.../math标签内联在 HTML 里KaTeX 兼容的 LaTeX表格输出为table不需要单独的 LaTeX OCR 流程from PIL import Image from surya.inference import SuryaInferenceManager # 首次调用自动拉起 vllm / llama-server from surya.recognition import RecognitionPredictor manager SuryaInferenceManager() rec RecognitionPredictor(manager) pages rec([Image.open(doc.png)]) block pages[0].blocks[0] print(block.label, block.html, block.confidence) # label: Text / SectionHeader / Table / Equation ... # html: 该 block 的内容数学包在 math 标签里每个 block 带label、html、polygon、bbox、confidence0-1 的逐 token 平均概率、skipped纯图像块未 OCR和error。想按版面逐块识别先跑LayoutPredictor拿到布局再把 layout 结果传给RecognitionPredictor即可自动切到 block 模式。表格识别简单模式与 full 模式TableRecPredictor 默认只给出行、列几何cell 由行列交叉推导跨行跨列的复杂表建议直接用predict_full它会输出完整table.../tableHTML正确处理合并单元格和表头行from surya.table_rec import TableRecPredictor table_rec TableRecPredictor(manager) simple table_rec([img]) # rows colscells 由交叉推导 full table_rec.predict_full([img]) # 输出完整 table HTML适合合并单元格/表头如果图像本身就是裁好的表格区域CLI 加--skip_table_detection跳过检测直接识别。批量处理CLI 与服务复用命令行入口在 surya/scripts/四个核心命令对应四个任务surya_ocr ./pages --page_range 0,5-10,20 --keep_server surya_layout ./pages # 版面 阅读序 surya_table ./pages --skip_table_detection surya_detect ./pages # 文本行检测独立 torch 模型无需 VLM 后端DATA_PATH可以是单图、PDF 或整个文件夹--images附带导出标注图--page_range支持单页、列表、区间及混合写法。⚠️ 一个容易忽略的成本项默认每条命令各自拉起 VLM 服务、退出即销毁连续跑多条命令会反复支付启动和权重加载的时间。加--keep_server让服务保持在线后续命令直接 attachdocker stop对应容器或 killllama-server进程收尾也可设SURYA_INFERENCE_KEEP_ALIVE1把常驻设为默认。效果验证与调优置信度、分辨率和阈值怎么判断结果够用每个 block 自带confidence0-1可以直接做置信度过滤或抽检排序低置信 block 优先人工复核是最低成本的质量闸。布局结果里每个 box 还有count模型对该 block 解码量的估计用于分配解码预算和raw模型原始输出出问题时对照调试用。调优的三个杠杆按性价比排序输入分辨率/DPI官方建议先把 DPI 从 192 降到 96 验证精度损失是否在可接受范围换取吞吐提升文字太小时则反向加分辨率但宽度超过 2048px 反而要往下调。图像预处理老扫描件、模糊图先做二值化、纠斜收益通常高于任何参数调整——这也正是上面 41.8% 弱项场景的主要补救手段。检测阈值仅文本行检测路径DETECTOR_BLANK_THRESHOLD控制行间留白判定DETECTOR_TEXT_THRESHOLD控制文字行合并后者必须高于前者。检测器的 debug 热力图是调参依据看到幽灵虚框就降阈值看到两行被错误粘连就升阈值。微调的真实路径v2 和 v1 不是一回事先说结论v2 仓库里没有自助微调脚本。v1 时代流传的 HF Trainer 微调流程finetune_ocr.py、识别后处理模块等在 v2 中已经移除——架构从多模块流水线换成了单一 VLM输出 schema 也全面变更text_lines→blocks表格 cell 去掉is_header/colspan/rowspan旧脚本和旧教程的代码无法直接套到 v2。官方给的路径是VLM 权重使用 OpenRAIL-M 授权研究、个人、融资低于 5M 美元的创业公司免费有自有数据需要定制训练时走 Datalab 的托管微调服务README 的 Training 一节留了联系方式。开源侧你能自己训练的是文本行检测模型650M 的 VLM 权重本身不支持本地微调。实操提示先摸底再决策对目标文档各抽一批样本跑surya_ocr统计低置信 block 比例和分场景通过率再决定投入方向。印刷体/现代文档出现零星错字 → 调 DPI 与分辨率别急着上微调老扫描件、模糊图 → 预处理二值化、纠斜 提高分辨率收益最大整类领域术语/格式系统性错误 → 才考虑托管微调服务准备语料时先收集约 1,000 张有代表性的问题页。v2 真正高频动的旋钮是三个输入分辨率、推理并发SURYA_INFERENCE_PARALLEL默认 8、服务生命周期--keep_server。把这三个调顺之前不值得动别的。【免费下载链接】suryaOCR, layout analysis, reading order, table recognition in 90 languages项目地址: https://gitcode.com/GitHub_Trending/su/surya创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考