摘要:Surya 是一个功能强大的开源 OCR 文档处理工具包,支持 90 多种语言的 OCR 识别,并提供布局分析、阅读顺序检测和表格识别等功能。本文将详细介绍 Surya 的功能、应用场景和使用方法,帮助您快速掌握这款强大的工具。
Surya 是一个功能强大的开源 OCR 文档处理工具包,支持 90 多种语言的 OCR 识别,并提供布局分析、阅读顺序检测和表格识别等功能。本文将详细介绍 Surya 的功能、应用场景和使用方法,帮助您快速掌握这款强大的工具。
Surya适用于多种文档类型,包括PDF、图像和Word文档等。通过实际应用案例,我们可以更直观地了解Surya的强大功能。
检测OCR布局阅读顺序表格识别名称检测OCR布局顺序表格识别日语简体中文
印地语
阿拉伯语
Surya的安装和使用相对简单。你需要Python 3.10+和PyTorch。安装后,模型权重将在首次运行Surya时自动下载。
在使用GPU时,正确设置RECOGNITION_BATCH_SIZE环境变量可以显著提高性能。每个批次项将使用40MB的VRAM,因此可以实现非常高的批量大小。默认批量大小为512,将使用约20GB的VRAM。
以下是如何从Python使用Surya进行OCR的示例代码:
from PIL import Imagefrom surya.ocr import run_ocrfrom surya.model.detection.model import load_model as load_det_model, load_processor as load_det_processorfrom surya.model.recognition.model import load_model as load_rec_modelfrom surya.model.recognition.processor import load_processor as load_rec_processorimage = Image.open(IMAGE_PATH)langs = ["en"] # 替换为你的语言 - 可选但推荐det_processor, det_model = load_det_processor, load_det_modelrec_model, rec_processor = load_rec_model, load_rec_processorpredictions = run_ocr([image], [langs], det_model, det_processor, rec_model, rec_processor)Surya支持模型的编译,你可以通过设置环境变量来启用编译:
识别:COMPILE_RECOGNITION=true检测器:COMPILE_DETECTOR=true布局:COMPILE_LAYOUT=true表格识别:COMPILE_TABLE_REC=true或者,你也可以设置COMPILE_ALL=true来编译所有模型。
Surya可以输出包含检测到的表格单元格和行/列ID以及行/列边界框的JSON文件。
Surya专门用于文档OCR,可能不适用于照片或其他图像。它适用于印刷文本,而不是手写文本(尽管它可能适用于某些手写文本)。
故障排除如果OCR工作不正常,可以尝试以下方法:
增加图像的分辨率,使文本更大。如果分辨率已经很高,尝试将其降低到不超过2048px的宽度。对图像进行预处理(二值化、去倾斜等)可以帮助处理非常老旧/模糊的图像。可以调整DETECTOR_BLANK_THRESHOLD和DETECTOR_TEXT_THRESHOLD以获得更好的结果。Surya在OCR、文本行检测、布局分析、阅读顺序和表格识别方面都有出色的表现。基准测试结果表明,Surya在多个方面都优于现有的解决方案。
同类项目Tesseract OCR: Tesseract OCR 是一个开源 OCR 引擎,支持多种语言,并且可以运行在多种平台上。OCRopus: OCRopus 是一个开源 OCR 平台,提供多种 OCR 功能,例如文本检测、字符识别等。Kraken: Kraken 是一个开源 OCR 引擎,支持多种语言,并且可以运行在多种平台上。通过这篇文章,我们详细介绍了Surya的功能、应用场景和使用方法,希望能帮助读者更好地理解和使用这个强大的OCR工具包。随着技术的不断进步,我们相信Surya将在文档数字化处理领域发挥更大的作用。
来源:IT技术资源爱好者