从零开始使用Surya-OCR最新版本0.6.1——最强文本检测模型:新添表单表格检测识别

news2024/11/8 8:34:05

目录

一、更新概述

二、环境安装

        1.基础环境配置

        2.模型参数下载

        3.参数地址配置——settings.py

三、指令使用

      1.命令指令运行


一、更新概述

        surya项目Github地址:https://github.com/VikParuchuri/surya

        号称今年最强OCR的surya近期迎来新的更新,Vik大佬更新了表格检测的模型。

        最新surya——0.6.1版本的识别效果如下。现在还可以识别文章阅读的行文顺序,对表格内的数字信息也可以很好的提取。

二、环境安装

        1.基础环境配置

        在之前使用surya的0.3.0版本中使用的是torch1.12.1,更新后的surya的0.6.0版本需要更高的torch环境,因此需要重新创建虚拟环境,并安装高于2.3.0的Pytorch。

        此处python版本虽然官方文档说和0.3.0版本一样3.9+即可,但使用3.9会红字报错,因为一些代码使用和书写规范在3.9后发生改变,最好使用版本在3.10+以上,如果坚持使用3.9,按下面使用部分报错修改处,处理源码。

# 创建虚拟conda环境
conda create -n surya0.6 python=3.10
# 激活环境
conda activate surya0.6

# 安装更高版本pytorch
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu118

# 或者官网稳定版2.4.1
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118


## cpu版本
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cpu

        pytorch安装好了以后直接pip安装最新版surya即可。在编写此文时最新版的为0.6.1版本。(注意此处不要直接选择安pip install surya-ocr,这是因为最新版本0.6.11要求torch2.5.0,会自动卸载安装的2.4.0版本torch。想要使用表格等功能使用0.6.1版本即可

# 安装0.6.1版本surya(包含表格识别和文本排序)
pip install surya-ocr==0.6.1

         最好将其最新的源码也下载下来,方便后续项目的查看和调试。

        Github地址Surya:https://github.com/VikParuchuri/surya

        2.模型参数下载

        和之前一样如果想直接使用surya需要有良好的“科学上网”配置,因为源码或安装库里面都不直接下载好的了模型参数,第一次使用会到huggingface下载对应模型参数。

        因此有两种解决办法,一是使用huggingface的国内镜像网站hf-mirror;或者提前下载好模型参数到项目目录,在设置中修改模型地址。本文选择后者。

        huggingface作者surya模型参数保存地址:https://huggingface.co/vikp

        (推荐)国内hugging-mirror镜像地址:https://hf-mirror.com/models?search=vikp 

        下载好的模型参数可以在surya源码下载处新建一个huggingmodel子文件夹,下存放各种模型参数。

        3.参数地址配置——settings.py

        推荐将模型下载到本地后,再在surya项目环境安装包源码处修改全局参数中关于模型加载地址部分,这样更不容易报错。

        首先打开在conda中安装的虚拟环境文件夹地址,在以下文件路径中。所有安装在虚拟环境中的库都在此路径下。

miniconda\envs\surya0.6\Lib\site-packages

        在所有安装库中找到surya名称的文件,再打开就可以看到settings.py文件了。

        根据之前源码拆解博文修改其中的模型配置参数。

        博文快速链接:https://blog.csdn.net/qq_58718853/article/details/137815688

三、指令使用

      1.命令指令运行

        有了上述环境准备后,可以直接使用指令快速使用。只需将实际本地图片地址替换下方Data_Path即可。

# ocr文本检测识别
surya_ocr Data_Path

# detect文本行检测
surya_detect Data_Path

# layout板式分析
surya_layout Data_PATH

# table表格检测
surya_table Data_PATH

# order文本阅读顺序
surya_order Data_PATH

        首先实验一下检测模型(只需要surya_det3)是否可以使用。结果会在项目项新建一个results文件夹。

         再来测试一下ocr模型。(需要surya_det3和surya_rec2模型)

        还有表格模型。(需要surya_rec2和surya_layout3和surya_tablerec模型)

        2.可视化结果

        只需在上述命令行指令后面加上“--images”即可完成可视化保存。

# 可视化保存
surya_detect DataPath --images

        本文随意截取了两张csdn界面的图像,使用surya进行识别检测测试。

        文本行检测模型可视化结果如下。其检测框似乎还不错,至少有95%以上的正确框。

        板式分析layout模型检测效果如下。

        表格检测模型效果如下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2228516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解C++ Lambda表达式:语法、用法与原理及其包装器的使用

深入理解C Lambda表达式:语法、用法与原理及其包装器的使用 lambda表达式C98中的一个例子lambda表达式语法lambda表达式各部分说明捕获列表说明 函数对象与lambda表达式 包装器function包装器 bind 🌏个人博客主页: 个人主页 本文深入介绍了…

nacos介绍

Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它致力于提供发现、配置和管理微服务的统一解决方案,以支持构建云原生应用。 服务发现(Service Discovery): Nacos 支持服务的动态注册与发现&#xff…

【操作系统实验课】Git操作基础

1. Windows系统 1.1. Git下载安装 下载 Git 访问 Git 官方网站:https://git-scm.com/。 在页面中找到适合 Windows 系统的下载链接,一般会有 “Windows” 字样的按钮,点击下载安装程序。 安装 Git 运行下载的安装程序。 在安装向导中,一般可以选择默认设置,也可以根…

搜维尔科技:Xsens动作捕捉、Manus数据手套和Faceware面部捕捉技术集成,应用于元宇宙数字人制作解决方案

Xsens动作捕捉、Manus数据手套和Faceware面部捕捉技术集成,能够实现非常逼真且高效的数字人动作和表情捕捉! 硬件连接与数据传输方面: 1.Xsens与Manus的集成:Xsens惯性动作捕捉系统通常可以与Manus的数据手套直接集成。Xsens主要…

MQTTnet4.3.x服务端+客户端实例测试(服务端和客户端方法及参数)

一、示例 目的:学习MQTTnet4.x使用方法,网上很多方法都是3.x版本介绍 二、方法调用 2.1 服务端 2.2 客户端 结合上篇博文,实现与多客户端进行交流(实现在线客服功能) 当然还有其他方法。之前曾写过相关MQTT文章&#…

【WebDriver】浏览器驱动下载及其配置

一、Windows电脑环境搭建-Chrome浏览器 行业内,Chrome (谷歌) 浏览器对于自动化程序来讲是比较稳定的. 自动化程序推荐使用 Chrome 浏览器的原因有几个: 开发者工具:Chrome 提供强大的开发者工具,方便调试和测试自动化脚本。 稳…

用jest做单元测试不得不知道的起手式配置,闭坑指南

做单元测试有很多的工具,今天在一个老项目中看到的用的工具是用的jest做的单元测试,特尝试更新下,遇到不少的问题。 相关依赖配置文件 npm install --save-dev jestpackage.json {"name": "jest-app","version&qu…

【Android】多渠道打包配置

目录 简介打包配置签名配置渠道配置配置打包出来的App名称正式包与测试包配置 打包方式开发工具打包命令行打包 优缺点 简介 多渠道打包 是指在打包一个 Android 应用时,一次编译生成多个 APK 文件,每个 APK 文件针对一个特定的渠道。不同的渠道可能代表…

Linux初学者导引:掌握主要命令与操作系统基础(第一天)

本文使用的工具:CentOS。 1.打开终端: 鼠标单击右键,选择“在终端打开(E)”选项。 2.命令行基础 常用命令: (1)ls:列出目录内容 列出当前目录或指定目录中的文件和文件夹。 基本用法:ls常…

块设备驱动的基本概念

块设备与字符设备 块设备只能以块为单位接收输入和返回输出,而字符设备则以字节为单位。大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作;字符设备只能被顺序读写,而块设备可以随机访问。 块设备对于I/O请求…

【力扣 + 牛客 | SQL题 | 每日4题】牛客大厂面试真题W3,W10

1. 牛客大厂面试真题SQLW3:分析客户逾期情况 1.1 题目: 描述 有贷款信息表:loan_tb(agreement_id:合同id,customer_id:客户id,loan_amount:贷款金额,pay_a…

python 写web前端的库

Gradio vs Streamlit vs Dash vs Flask几款的对比 Gradio:Gradio 是专门为机器学习模型构建的。因此,如果您想专门为您构建的机器学习模型创建一个 Web UI,Gradio 的简单语法和设置是您的不二之选。 Streamlit:如果您想快速启动和…

Ubuntu系统安装软件

在Linux系统中有四种软件安装方式:rpm、yum、apt、编译安装 编译安装 编译安装只有一个源码包,源码包是由一大堆源代码程序组成的,是由程序员按照特定格式和语法编写好了,现成的安装包 程序:未执行的代码 进程&#…

Halcon 多相机统一坐标系(标定)

多相机统一坐标系是指将多个不同位置的相机的图像采集到同一个坐标系下进行处理和分析的方法。 在计算机视觉和机器视觉领域中,多相机统一坐标系被广泛应用于三维重建、立体视觉、目标跟踪等任务中。 以gen_binocular_rectification_map(生成描述图像映…

【libGL error】Autodl云服务器配置ACT的conda虚拟环境生成训练数据时,遇到了libGL相关错误,涉及swrast_dri.so

问题与解决方案 1. libGL error: MESA-LOADER: failed to open iris conda install -c conda-forge libstdcxx-ng来源suffix _dri 下面的问题是在Autodl云服务器上运行程序是出现的,在Ubuntu笔记本上安装的Anaconda没有出现以下问题。 Autodl云服务器安装的是Mi…

逆变器竞品分析--绿联150W方案【2024/10/30】

绿联这款车载逆变器具备两个AC输出插座,支持150W输出功率。1A1C快充接口支持30W输出功率,可以同时为四台设备供电。逆变器采用车充输入供电,自带1.3米输入线,逆变器内置数显屏幕,能够实时显示工作状态,时刻…

LeetCode 热题 100之链表3

1.k个一组翻转链表 思路分析:我们需要将链表分成若干个长度为 k 的子链表组,逐组进行翻转。若最后一组节点的数量不足 k,则保持原有顺序 创建一个虚拟头节点 dummy,以简化边界条件的处理。该节点的 next 指向链表的头节点。通过 d…

Redis慢查询分析优化

文章目录 一、定义二、慢查询参数配置三、慢查询日志四、排查步骤五、Redis变慢原因 一、定义 在Redis执行时耗时超过某个阈值的命令,称为慢查询。 慢查询日志帮助开发和运维人员定位系统存在的慢操作。慢查询日志就是系统在命令执行前后计算每条命令的执行时间&…

接口自动化测试平台项目环境搭建

这篇文章主要记录开发接口自动化测试平台的尝试作---环境搭建和写一个项目管理模型。 电脑需要有python环境,且已经安装了django,我用的是python3.12 和 django 最新版本。写代码我使用的pycharm。 其中环境搭建大概分下面几步: 一、在代码…

Oracle OCP认证考试考点详解082系列06

题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 26. 第26题: 题目 解析及答案: 关于间隔(INTERVAL)数据类型,以下哪两个陈述是…