ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

如何在 10 分钟内部署 Surya 文档 OCR 实战指南

如何在 10 分钟内部署 Surya 文档 OCR 实战指南 如何在 10 分钟内部署 Surya 文档 OCR 实战指南【免费下载链接】suryaOCR, layout analysis, reading order, table recognition in 90 languages项目地址: https://gitcode.com/GitHub_Trending/su/surya一份扫描件 PDF 躺在你手里你只需要把它变成结构化文本却不想再手动敲一遍。surya-ocr 是 Datalab 开源的 650M 参数 OCR 模型一个模型同时干四件事整页文字识别、版面分析、阅读顺序、表格识别覆盖 90 种语言。它适合刚接触文档智能的开发者。装好依赖一条命令出结果全程不写一行训练代码。下文按先跑通、再拆解、后调参的顺序展开。快速上手10 分钟内拿到第一个 OCR 结果一条命令加一个 JSON 文件就是你要的第一个正反馈。先装包。要求 Python 3.10有 NVIDIA GPU 就自动走 vllm 后端纯 CPU 或 Apple Silicon 需要预装 llama.cpp 的llama-server二进制pip install surya-ocr对当前目录下的一张图片或 PDF运行surya_ocr page1.png首次运行会自动下载 650M 模型权重并拉起推理服务等 3~5 分钟看到Wrote results to即结束。结果写入results/文件名/results.json每页是一个字典blocks按阅读顺序排列每个块含labelText、SectionHeader、Table、Equation 等、html块内容公式包在math里、polygon/bbox坐标和confidence置信度。加--images会额外导出标注图方便对照原图检查框的落点加--page_range 0,5-10可只处理指定页。核心能力拆解四条管线各管一段活surya-ocr 的四条管线对应四条 CLI 命令输出都是results.json可以单独跑也可以串成完整流水线。跑通文字行检测管线文字行检测是唯一不依赖 VLM 后端的管线纯 PyTorch 即可运行速度快。surya_detect page1.png输入支持图片、PDF 或整个文件夹。输出的bboxes里每行文字含bbox、polygon和 0~1 的confidence另有竖线检测vertical_lines。检测阈值默认值在 surya/settings.py 的DETECTOR_TEXT_THRESHOLD0.6和DETECTOR_BLANK_THRESHOLD0.35。跑通整页 OCR 识别管线surya_ocr是主力命令每页只调一次 VLM版面、文字、阅读顺序一次全返回失败的页会自动回退到先版面、再逐块识别的兜底路径。关键输出字段看这三个html直接拿去渲染reading_order决定拼装顺序confidence低于 0.5 的块值得人工复核。数学公式无需单独流程LaTeX 直接内联在输出里。看懂版面分析与阅读顺序surya_layout把页面切成 17 类块Caption、Equation、ListGroup、Picture、SectionHeader、TableOfContents等每块带position字段标注阅读顺序双栏、三栏版面也能按正确顺序排出来。surya_layout page1.png版面走的是轻量级 RF-DETR 检测器默认置信度阈值 0.4框太多或太少时调FAST_LAYOUT_CONFIDENCE_THRESHOLD。提取表格行列结构surya_table输出rows、cols和行 × 列交叉出的cells每个都带几何坐标直接映射成结构化数据。图片里本来就有多个表格时它会先检测再逐个识别如果输入图已经裁到单张表加--skip_table_detection跳过检测步骤省一次推理。surya_table page1.png --images深度配置只动真正影响结果的参数所有可调参数集中在 surya/settings.py在项目根目录的local.env文件里按参数名值覆盖即可不用改源码。参数作用建议值IMAGE_DPI检测与版面阶段的输入分辨率96默认要更快可降到 64IMAGE_DPI_HIGHRES识别与表格阶段的分辨率192默认吞吐优先时降 96SURYA_INFERENCE_BACKEND推理后端选择留空自动NVIDIA→vllm否则 llama.cppSURYA_INFERENCE_PARALLEL客户端并发请求数GPU 给 16~32CPU 给 4~8SURYA_GUIDED_LAYOUT版面 JSON 的约束解码批量跑开启偶发解析失败再考虑关闭FAST_DETECTOR_DEVICE轻量版面检测器设备无 GPU 时显式填cpu其中 DPI 两项对吞吐的影响最明显识别阶段从 192 降到 96单页耗时约减半代价是小字号文本的准确率。避坑指南三个高频问题各给一行解法新手卡住的地方高度集中先看这三个。现象一首次运行surya_ocr后终端静默 3~5 分钟像卡死。原因模型权重在自动下载推理服务在自动启动这是正常路径不是死锁。解决SURYA_INFERENCE_KEEP_ALIVE1 surya_ocr page1.png --debug日志会告诉你卡在哪一步。现象二识别结果里大量confidence偏低或整行漏检。原因输入图太小字看不清——低分辨率扫描件和手机随手拍最典型。解决把输入图放大到字更大或超过 2048px 宽的原图缩到 2048px 再跑。现象三检测框过多、互相粘连或漏框。原因检测阈值与文档质量不匹配阈值偏高分辨率低时最明显。解决用--debug看检测概率热图——热图里有微弱框形就调低DETECTOR_TEXT_THRESHOLD框在粘连就调高它。现象四连续跑surya_ocr、surya_layout等多条命令每条都重新等服务启动。原因默认每次命令退出时推理服务一并关闭。解决第一条命令加--keep_server后续命令自动挂载不重复启动。另外提醒Apple Silicon / 纯 CPU 机器必须先装好llama-serverbrew install llama.cpp即可否则surya_layout、surya_ocr、surya_table都会报后端启动失败surya_detect不受此限。生态与延伸三条进阶路线交互式 GUIpip install streamlit pdftext后运行surya_gui在浏览器里拖图片 / PDF 试效果结果可视化直接给到 surya/scripts/streamlit_app.py。91 种语言逐语言得分表static/docs/multilingual.md选语种前先查一下你目标语言的基线。截图批量处理应用surya/scripts/screenshot_app.py适合把一批网页截图走同一套识别流程。跑通surya_ocr之后整页识别、版面、阅读顺序和表格结构已经在同一个 JSON 里了剩下的只是接你自己的下游逻辑。下一步建议挑一份你手里真实的文档跑surya_ocr xxx.pdf --images打开标注图核对几个低置信度的块把IMAGE_DPI_HIGHRES从 192 降到 96 对比一遍——10 分钟后你就有了属于自己场景的吞吐 / 准确率取舍数据。【免费下载链接】suryaOCR, layout analysis, reading order, table recognition in 90 languages项目地址: https://gitcode.com/GitHub_Trending/su/surya创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表