开源OCR工具Surya新增表格识别功能
在日常办公场景中,处理多语言文档、表格和复杂排版已成为许多团队和个人的常态。OCR 技术为这些难题提供了高效解决方案。在众多开源 OCR 工具中,Surya 表现尤为突出——不仅在性能和功能上超越同类,更在表格识别与复杂布局分析方面带来了令人惊喜的成果。 Surya 核心功能 Surya 是一款专为
在日常办公场景中,处理多语言文档、表格和复杂排版已成为许多团队和个人的常态。OCR 技术为这些难题提供了高效解决方案。在众多开源 OCR 工具中,Surya 表现尤为突出——不仅在性能和功能上超越同类,更在表格识别与复杂布局分析方面带来了令人惊喜的成果。
Surya 核心功能
Surya 是一款专为文档处理优化的开源 OCR 识别工具,识别能力强劲。尤其在表格识别、复杂布局分析以及多语言混排场景下表现卓越。
Surya(苏里亚)之名源自印度教太阳神,寓意视野广阔、光明普照。

下表列出 Surya 的核心功能:
| 功能 | 描述 |
| 覆盖 90 种以上语言 | 支持全球90多种语言,轻松应对国际化文档需求。 |
| 行级文本精确检测 | 自动识别文本行,切分与阅读顺序处理精准可靠。 |
智能表格结构识别 | 自动检测表格的行、列及单元格,无论多复杂的表格结构均可完整提取。 |
| 复杂文档布局解析 | 图片、标题、段落等各类文档元素均可有效分离与识别。 |
| 精准高效文字识别 | 识别准确率高,逻辑顺序保持严谨一致。 |
| 本地部署与 API 集成 | 支持本地运行以保障数据隐私,同时提供 API 便于批量集成。 |
Surya 的核心优势
1、依托先进的深度学习模型架构,Surya 在识别速度与精度上显著提升,尤其在表格识别方面,已超越当前最先进的 Table Transformer 模型。
2、完全开源且支持商业使用——个人项目可免费使用,企业级集成同样不受限。
3、兼容 Windows、Mac、Linux 系统,支持本地部署。对于需要大规模离线文档处理的场景,Surya 是理想选择。
4、值得一提的是,Surya 在 GitHub 上已获得超过 10.4k Star,开发团队保持高度活跃,迭代更新迅速。
支持的文档类型
Surya 可胜任多种文档类型的 OCR 任务,包括但不限于:
• PDF 文件:支持扫描版图片 PDF 与原生文本 PDF。
• 图片格式:兼容 PNG、JPEG、TIFF 等常见图像格式。
• Office 文档:支持 Word(.docx)和 PowerPoint(.pptx)格式。
Surya 安装指南
Surya 安装过程十分简便,需 Python 3.9 及以上版本,并依赖 PyTorch。若使用非 GPU 设备或 Mac,需先安装 CPU 版本的 PyTorch。
1. 使用 pip 安装
直接执行以下命令:
pip install surya-ocr
首次运行时,Surya 将自动下载所需模型权重,简化操作流程。
2. Docker 安装
需要隔离运行环境?可通过 Docker 快速部署:
docker pull vikparuchuri/surya
docker run -v ${path_to_host_folder_to_scan}:/path vikparuchuri/surya:latest [COMMAND] [OPTIONS] [SOURCE_PATH]
3. 源码安装
偏好手动配置或需自定义功能,可直接从 GitHub 克隆并构建:
git clone https://github.com/VikParuchuri/surya.git cd surya make build
Surya 使用方法
Surya 提供简洁的命令行工具与 Python API 两种使用方式。以下是基本操作示例。
1、命令行使用示例
OCR 处理仅需一条命令,支持图片、PDF 或文件夹批量操作:
surya_ocr DATA_PATH
还可添加参数自定义处理:
•
--langs:指定识别语言,例如--langs en,zh支持英文和中文混合识别。•
--images:保存检测到的图片与文本行。•
--results_dir:自定义输出目录。•
--max:限制最大处理页数。•
--start_page:从指定页码开始处理。
生成的 results.json 包含每页检测结果——文本行、置信度、边界框等信息,一目了然。
2、Python API 使用示例
若希望在代码中直接调用,可参考以下标准示例:
from PIL import Image
from surya.ocr import run_ocr
from surya.model.detection.model import load_model as load_det_model, load_processor as load_det_processor
from surya.model.recognition.model import load_model as load_rec_model
from surya.model.recognition.processor import load_processor as load_rec_processor
image = Image.open("path_to_image.png")
langs = ["en"] # 替换成你需要的语言
det_processor, det_model = load_det_processor(), load_det_model()
rec_model, rec_processor = load_rec_model(), load_rec_processor()
predictions = run_ocr([image], [langs], det_model, det_processor, rec_model, rec_processor)
表格识别与布局分析
Surya 在复杂文档的布局分析与表格识别方面表现卓越。它能自动检测表格中的行、列结构,并输出结构化的 JSON 数据。

对于包含表格的 PDF,Surya 可自动识别每个单元格的内容与位置,结果如下所示:
{
"tables": [
{
"page": 1,
"cells": [
{
"text": "Header 1",
"bbox": [100, 200, 300, 250]
},
{
"text": "Header 2",
"bbox": [300, 200, 500, 250]
},
{
"text": "Cell 1",
"bbox": [100, 250, 300, 300]
},
{
"text": "Cell 2",
"bbox": [300, 250, 500, 300]
}
]
}
]
}
性能对比

| 模型 | 每页时间(秒) | 平均相似度 (⬆) |
| surya | .62 | 0.97 |
| tesseract | .45 | 0.88 |
对比数据可见,Surya 单页处理耗时稍高于 Tesseract,但识别准确度(平均相似度)高达 0.97,远超 Tesseract 的 0.88。在追求高精度的应用场景中,这一性能取舍极具价值。
结语
Surya 是一款功能强大的开源 OCR 工具,在处理复杂表格、多语言文档及多样布局分析方面效率极高。若您正在寻找一个支持本地部署、具备高精度识别能力的 OCR 解决方案,Surya 无疑是您的首选工具。

