【OCR】——端到端文字识别GOT-OCR2.0不香嘛?

代码:https://github.com/Ucas-HaoranWei/GOT-OCR2.0?tab=readme-ov-file
在线demo:https://huggingface.co/spaces/stepfun-ai/GOT_official_online_demo

0.前言

最早做ocr的时候,就在想如何能做一个端到端的模型,就不用先检测再识别,最起码只用只用维护一个模型。现在他来了。而且鲁棒性,适用面都很强。但是部署。。。

1.效果实测

可以通过在线demo实测,效果强的可怕。
在这里插入图片描述

2.论文解读

在这里插入图片描述

2.1 主要贡献

  • 实现了一种端到端的OCR模型。
  • 多样的输入,多样的输出,还支持交互式。
  • 在输入端,该模型支持切片和整页样式中常用的场景和文档样式图像。在输出端,GOT 可以通过简单的提示生成普通或格式化的结果(markdown/tikz/smiles/kern)。此外,该模型具有交互式OCR特征,即由坐标或颜色引导的区域级识别。此外,我们还将动态分辨率和多页OCR技术应用于GOT,以获得更好的实用性

2.2 网络结构

在这里插入图片描述
encoder:编码器结构是 VitDet基本版本,参数约为 80M,它将 1024×1024×3 输入图像转移到 256×1024 图像token,然后,这些图像标记通过 1024×768 线性层投影到语言模型。
qwen-0.5B:大语言模型

2.3 训练细节

第一阶段:encoder训练

受 LVLM 设计的启发,解码器可以通过训练有素的语言模型进行初始化。然而,我们没有为 OCR-2.0 模型找到合适的预训练编码器,所以我们必须自己训练一个。我们希望新的OCR编码器能够很好地处理各种输入形状(切片和整个页面)中常用的场景和文档文本识别。

编码器结构是 VitDet基本版本,再接一个小的decoder OPT-125M

第二阶段:微调大预言decoder
在视觉编码器的预训练步骤之后,我们将其连接到更强大的语言模型,以构建 GOT 的最终架构。在这里,我们采用 Qwen-0.5B作为解码器,因为它的参数数量相对较少,同时结合了多种语言的先验知识。连接器的尺寸(即线性嵌入层)调整为 1024×1024,以与 Qwen-0.5B 的输入通道对齐。因此,GOT 具有无缝的编码器-解码器范式,总共有大约 580M 的参数,这在计算上更友好,更容易部署在具有 4G 内存的消费级 GPU 上。编码器的高压缩率(1024×1024 光像素到 256 个图像标记)为解码器节省了大量标记空间以生成新的标记。同时,解码器的令人满意的解码上下文长度(我们使用大约 8K max-length)确保 GOT 可以有效地输出密集场景下的 OCR 结果

第三阶段:prompt微调

作为高交互特征,细粒度OCR是由空间坐标或颜色控制的区域级视觉感知。用户可以在问题提示中添加框坐标(框引导的 OCR)或颜色文本(颜色引导的 OCR),以请求感兴趣区域 (RoI) 内的识别,避免其他不相关字符的输出

2.4 实验结果

  1. open-source Fox benchmark上的结果
    在这里插入图片描述
  2. 论文中效果图
    在这里插入图片描述

3. other

  • 核心就是一个encoder+decoder模式的ocr,这和最开始的end2end ocr的核心是一样的,只是以前是用cnn+transformer,或者transformer+transformer,现在encoder,decoder都用了更大的模型,更多的数据。

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

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

相关文章

AndroidStudio-常见界面控件

一、Button package com.example.review01import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextViewclass Review01Activity : AppCompatActivity() {override fun onCreate(savedInstanceStat…

网络安全中的 SOC 是什么?

当今世界,网络威胁日益增多,确保网络安全已成为各种规模企业的首要任务。网络安全讨论中经常出现的一个术语是 SOC,即安全运营中心的缩写。但网络安全中的 SOC 是什么呢? SOC在防御网络威胁、管理安全事件和全天候监控系统方面发…

智选球员:运用动态规划提升棒球队的签约效益

目录 一、签约棒球自由球员 二、分析和理解 (一)问题背景回顾 (二)目标确定 (三)约束条件分析 (四)明确输出要求 三、动态规划(Dynamic Programming)解…

Lua面向对象实现

Lua中的面向对象是通过表(table)来模拟类实现的,通过setmetatable(table,metatable)方法,将一个表设置为当前表的元表,之后在调用当前表没有的方法或者键时,会再查询元表中的方法和键,以此来实现…

航空美食新升级,光明肉业携手东航食品打造经典辣肉面新篇章

在航空餐饮日益注重品质与创新的大环境下,各大航空公司纷纷在美食领域下功夫,力求为乘客提供更加多元化、高品质的餐饮体验。近日,东航那碗面再次成为行业焦点,其经典辣肉面在光明肉业的助力下实现了“创新”升级,为乘…

在.NET 6中使用Serilog收集日志

此示例的完整详细信息:https://download.csdn.net/download/hefeng_aspnet/89998498 Serilog 是一个日志库,它提供对文件、控制台和其他几个地方的记录。它易于配置,并且具有干净且易于使用的界面。 Serilog具有无与伦比的输出目的地选择&…

STM32 HAL库开发学习5. 系统滴答定时器

STM32 HAL库开发学习5. 系统滴答定时器 一、滴答定时器概述1. 概述2. 时钟源3. 寄存器(1)控制与状态寄存器 STK_CTRL(2)重载寄存器 STK_LOAD(3)当前值寄存器 STK_VAL 二、HAL库滴答定时器初始化三、SysTick…

智慧零售时代传统供应链的痛点与数字化变革:定制开发 AI 智能名片 S2B2C 商城系统的应用与影响

摘要:本文深入探讨了智慧零售时代传统供应链所面临的痛点,分析了在该时代背景下打通线上线下渠道以及整合资源的关键需求。阐述了传统零售供应链若线上线下渠道独立、数据不流通将导致的库存管理与物流效率问题,并强调其必须进行数字化变革以…

国家信息中心单志广:智慧城市转型中的数据要素价值释放

今日,由中国电信集团主办的2024数字科技生态大会数据要素合作论坛在广州市举办。国家发改委国家信息中心信息化和产业发展部主任单志广在论坛发展主旨演讲:智慧城市转型中的数据要素价值释放,主要包括发展新形势、数据新要素、数据新产权、数…

从零开始使用GOT-OCR2.0——多模态OCR项目:微调数据集构建 + 训练(解决训练报错,成功实验微调训练)

在上一篇文章记录了GOT-OCR项目的环境配置和基于官方模型参数的基础使用。环境安装的博文快速链接: 从零开始使用GOT-OCR2.0——多模态通用型OCR(非常具有潜力的开源OCR项目):项目环境安装配置 测试使用-CSDN博客 本章在环境配置…

【在Linux世界中追寻伟大的One Piece】读者写者问题与读写锁

目录 1 -> 读者写者问题 1.1 -> 什么是读者写者问题 1.2 -> 读者写者与生产消费者的区别 1.3 -> 如何理解读者写者问题 2 -> 读写锁 2.1 -> 读写锁接口 3 -> 读者优先(Reader-Preference) 4 -> 写者优先(Writer-Preference) 1 -> 读者写者…

基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频&#xff09…

vxe-table 键盘操作,设置按键编辑方式,支持覆盖方式与追加方式

vxe-table 全键盘操作,按键编辑方式设置,覆盖方式与追加方式; 通过 keyboard-config.editMode 设置按键编辑方式;支持覆盖方式编辑和追加方式编辑 安装 npm install vxe-pc-ui4.3.15 vxe-table4.9.15// ... import VxeUI from v…

Java设计模式笔记(二)

十四、模版方法模式 1、介绍 1)模板方法模式(Template Method Pattern),又叫模板模式(Template Patern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需重写方法实现,但调用将以抽象类中定义的方式进行。 2&…

ZLMediaKit+wvp (ffmpeg+obs)推拉流测试

这里使用了两种方式: ffmpeg命令和 OBS OBS推流在网上找了些基本没有说明白的, 在ZLMediaKit的issues中看到了一个好大哥的提问在此记录一下 使用OBS推流,rtmp,报鉴权失败 推流 1. ffmpeg命令推流 官方说明文档地址: 推流规则 rtsp://192.168.1.4:10554…

思科模拟器路由器的基本配置

一、实验目的 了解路由器的作用掌握路由器的基本配置方法 3、掌握路由器模块的使用和互连方式 二、实验环境 2811路由器一台,计算机两台,Console配置线一根,网线若干;本实验拓扑图如图8-1所示;计算机IP地址规划如表8-…

TOPSIS法

TOPSIS 法:多属性决策的有效工具 在多属性决策分析领域,TOPSIS 法(Technique for Order Preference by Similarity to Ideal Solution)是一种广泛应用且极具价值的方法。它为解决复杂的决策问题提供了一种系统、科学的途径&#…

嵌入式入门Day24

数据结构Day5 树形结构相关概念二叉树相关概念二叉树的状态二叉树性质二叉树的存储二叉树根据已有序列推出树的结构练习 算法相关概念算法特性算法的设计要求时间复杂度排序算法冒泡排序(改良版)选择排序(O(n^2))直接插入排序&…

selenium常见接口函数使用

博客主页:花果山~程序猿-CSDN博客 文章分栏:测试_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 1. 查找 查找方式 css_s…

3-5 C常用的字符串库函数

1.0 字符串库函数 strlen()函数用于返回字符串的长度,不包括结尾\0 uint32_t strlen(char *str) {uint32_t len 0;while (str[len] ! \0){len;}return len; } 编译器在处理字符串时,会自动的在数据末尾添加ASCI码“0对应十进制0,便于程序对…