当前位置: 首页 > news >正文

超强的开源OCR工具Surya更新了表识别功能!GitHub收藏人数超过1万。

今天给大家介绍一个超强的开源OCR工具Surya,目前GitHub收藏人数超过1万。 Surya以具有普遍视野的印度教太阳神命名。新版本的Surya使用了新的架构,性能优于当前的SoTA开源模型 Table Transformer。

主要功能包括

  • 识别表格行、列和单元格和具体的字符

  • 识别复杂的布局(标题、图像等等)和旋转的表格(图2)

  • 支持包括中文在内的90多种语言

  • 可在本地运行,提供API

该模型是从头开始训练的,可用于商业用途。但如果你的公司收入或筹集资金超过500万美元,则会受到一些限制。

相关链接

  • 代码链接:https://github.com/VikParuchuri/surya

  • 托管API:https://www.datalab.to/
    • 适用于 PDF、图像、Word 文档和 Powerpoint

    • 一致的速度,无延迟峰值

    • 高可靠性和正常运行时间

效果展示

检测

光学字符识别

布局

阅读顺序

表格识别

基准测试

光学字符识别

Google Cloud Vision

将OCR与Google Cloud vision进行了基准测试,因为它的语言覆盖范围与Surya相似。

使用了 tesseract 和 surya 的 PDF 中的参考线 bbox,来评估 OCR 质量。对于 Google Cloud,将 Google Cloud 的输出与真实情况进行了调整。我不得不跳过 RTL 语言,因为它们不能很好地对齐。

文本行检测

Tesseract是基于CPU的,surya是CPU或GPU。在配备 A10 GPU 和 32 核 CPU 的系统上运行了基准测试。

  • tesseract - 32 个 CPU 核心,或 8 个工作线程,每个工作线程使用 4 个核心

  • surya - 36 个批量大小,用于 16GB VRAM 使用

安装

需要 python 3.9+ 和 PyTorch。如果不用 Mac 或 GPU 机器,需要先安装 CPU 版本的 torch。第一次运行 surya 时,模型权重将自动下载。

pip install surya-ocr

互动应用程序

Streamlit 应用程序,可让以交互方式在图像或 PDF 文件上尝试 Surya:

pip install streamlit
surya_gui

OCR(文字识别)

此命令将写出一个包含检测到的文本和 bbox 的 json 文件:

surya_ocr DATA_PATH

  • DATA_PATH可以是图像、pdf 或图像/pdf 文件夹

  • langs是一个可选(但推荐)参数,指定用于 OCR 的语言。您可以用逗号分隔多种语言。使用此处的语言名称或两个字母的 ISO 代码。 Surya 支持 90 多种语言surya/languages.py。

  • lang_file如果您想对不同的 PDF/图像使用不同的语言,您可以选择在文件中指定语言。格式是 JSON 字典,键是文件名,值是列表,例如{"file1.pdf": ["en", "hi"], "file2.pdf": ["en"]}.

  • images将保存页面图像和检测到的文本行(可选)

  • results_dir指定保存结果的目录而不是默认目录

  • max如果您不想处理所有内容,则指定要处理的最大页数

  • start_page指定开始处理的页码

该results.json文件将包含一个 json 字典,其中键是不带扩展名的输入文件名。每个值将是一个字典列表,输入文档的每一页一个。每页词典包含:

  • text_lines- 每行检测到的文本和边界框

  • text- 行中的文本

  • confidence- 模型在检测到的文本中的置信度 (0-1)

  • polygon- (x1, y1)、(x2, y2)、(x3, y3)、(x4, y4) 格式的文本行的多边形。这些点从左上角开始按顺时针顺序排列。

  • bbox- (x1, y1, x2, y2) 格式的文本行的轴对齐矩形。 (x1, y1) 是左上角,(x2, y2) 是右下角。

  • languages- 为页面指定的语言

  • page- 文件中的页码

  • image_bbox- (x1, y1, x2, y2) 格式图像的 bbox。 (x1, y1) 是左上角,(x2, y2) 是右下角。所有行 bbox 都将包含在该 bbox 中。


http://www.mrgr.cn/news/51052.html

相关文章:

  • Java微信支付接入(9) - API V3 微信支付查单API
  • 地平线与英伟达工具链 PTQ 工具功能参数对比与实操
  • 文件IO(Linux文件IO)
  • 二维码生成器 1.02.41| 一站式QR码生成器和美化工具
  • 判断 HTTP/2 多路复用是否在服务器上实现
  • Vue中v-bind对样式控制的增强—(详解v-bind操作class以及操作style属性,附有案例+代码)
  • 10.15学习
  • 【读书笔记-《30天自制操作系统》-28】Day29
  • libaom 源码分析:aomenc.c 文件
  • 【数据结构】二叉树(一)遍历
  • 虚拟机错误:‘VirtualBox Host-Only Ethernet Adapter #2‘
  • 猿人学 — 第1届第4题(解题思路附源码)
  • 前端性能优化之概述篇
  • C/C++语言基础--C++异常看这一篇就够了
  • 关于this指针
  • 海​能​达​一​面
  • 生成一个带有二维数据和对应标签的螺旋形数据集(非线性可分数据集)的代码解析
  • linux线程 | 同步与互斥(上)
  • C语言动态内存开辟
  • 尚硅谷rabbitmq2024 第15-18节 springboot整合与可靠性答疑