使用 surya-ocr 进行文字识别

devtools/2024/10/21 5:04:15/

surya-ocr 是一个开源的 OCR 模型,个人用是免费的,商用是需要License,收费标准有些复杂,具体可以查看官网。 主要包括以下功能:

  • 支持 90 多种语言的 OCR
  • 任何语言的行级文本检测
  • 版面分析(表格、图像、标题等检测)
  • 阅读顺序检测
  • 表格识别(检测行/列)

OCR 文字识别

首先安装依赖

!pip install surya-ocr

识别文字

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_processorimage = Image.open("slide_19.jpg")
langs = ["zh"] # Replace with your languages - optional but recommended
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)

识别结果给出了文字和位置信息
在这里插入图片描述

格式识别

from PIL import Image
from surya.detection import batch_text_detection
from surya.layout import batch_layout_detection
from surya.model.detection.model import load_model, load_processor
from surya.settings import settingsimage = Image.open("a.jpg")
model = load_model(checkpoint=settings.LAYOUT_MODEL_CHECKPOINT)
processor = load_processor(checkpoint=settings.LAYOUT_MODEL_CHECKPOINT)
det_model = load_model()
det_processor = load_processor()# layout_predictions is a list of dicts, one per image
line_predictions = batch_text_detection([image], det_model, det_processor)
layout_predictions = batch_layout_detection([image], model, processor, line_predictions)

图片是一个简单的表格
在这里插入图片描述
可以看到 Layout 可以正确识别出对应信息
在这里插入图片描述

表格识别

通过命令识别表格信息,识别的表格信息会保存到文件中。
在这里插入图片描述

总结

surya-ocr 识别效果不错,比前两天看到的 GOT 的结果要好一些,效果可以媲美 PaddleOCR 了。


http://www.ppmy.cn/devtools/127481.html

相关文章

高级java每日一道面试题-2024年10月12日-Web篇-http,servlet,tomcat 之间是什么关系?

如果有遗漏,评论区告诉我进行补充 面试官: http,servlet,tomcat 之间是什么关系? 我回答: HTTP(超文本传输协议)、Servlet 和 Tomcat 之间的关系可以这样理解:它们是构建Web应用程序的不同层次的技术。下…

帝国cms取得内容和栏目链接地址的方法

用以下2个函数解决内容页面和栏目页面链接,可有效解决更改URL显示方式(动态、静态、伪静态)不需要修改模版中的链接地址。 内容页链接地址: $infourlsys_ReturnBqTitleLink($r); $r为含“id,classid,newspath,filename,groupid,ti…

使用Diffutoon把视频转换成动漫风格,无需部署,开箱即用

无论是图片动漫转换以及视频动漫转换,我们前期也介绍过相关的模型,但是其模型输出的动漫视频不是有瑕疵,就是动漫效果不唯美,今天介绍一个modelscope社区开源的动漫风格转换模型Diffutoon。 Diffutoon模型接受视频作为输入&#x…

如何在Android中进行日志打印和调试?

在Android开发中,日志打印和调试是开发者定位问题、优化性能和提升应用质量的重要手段。以下将详细阐述如何在Android中进行日志打印和调试,包括日志工具的使用、调试技巧以及实践中的最佳实践。 一、日志工具的使用 1. Log类 Android中的日志工具类是…

Kafka异常重试方案小记

背景 在最近进行的项目架构升级中,我们对原有的核心项目结构进行了细致的拆分。 现在,核心项目与非核心项目之间的通信和数据交换主要通过Kafka这一中间件来实现。 这种设计主要体现在核心项目向非核心项目发送通知,这些通知大致可以分为三个…

分布式混沌工程工具(ChaosBlade)

ChaosBlade是一个分布式混沌工程工具,主要用于压力测试和故障注入,支持多种云原生应用程序。 一、下载与安装 获取软件: 前往ChaosBlade的官方GitHub发布页面(https://github.com/chaosblade-io/chaosblade/releases&#xff09…

【PhpSpreadsheet】ThinkPHP5+PhpSpreadsheet实现批量导出数据

目录 前言 一、安装 二、API使用 三、完整实例 四、效果图 前言 为什么使用PhpSpreadsheet? 由于PHPExcel不再维护,所以建议使用PhpSpreadsheet来导出exlcel,但是PhpSpreadsheet由于是个新的类库,所以只支持PHP7.1及以上的版…

阿里巴巴 | 推出升级版AI翻译工具:Marco MT 性能超越Google和ChatGPT

阿里巴巴国际业务部门推出了一款升级版的AI翻译工具,名为Marco MT。据称,这款工具在翻译性能上超过了Google、DeepL和ChatGPT的同类产品,旨在帮助商户提升国际市场的竞争力,特别是在跨境电商领域。 Marco MT 主要特性 基于大语言模…