Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OCR 通用端到端模型GOT,迈向OCR2.0的新时代

OCR 通用端到端模型GOT,迈向OCR2.0的新时代

作者头像
AI浩
发布于 2024-10-22 05:19:27
发布于 2024-10-22 05:19:27
45710
代码可运行
举报
文章被收录于专栏:AI智韵AI智韵
运行总次数:0
代码可运行

摘要

人工智能领域,光学字符识别(OCR)技术已经取得了显著的进展。随着技术的不断进步,我们正迈向OCR 2.0时代。本文将介绍由Vary团队开发的通用端到端模型GOT,这一模型在OCR领域具有革命性的潜力。

论文概览

  • 论文标题:GOT: Towards OCR-2.0
  • 发布平台:arXiv
  • 链接:arXiv.org

模型特点

GOT模型是首个迈向OCR 2.0时代的通用端到端模型,它在多个方面展现了其先进性:

  1. 多任务支持:GOT模型支持多种OCR任务,包括场景文本OCR、文档OCR、细粒度OCR以及更通用的OCR任务。
  2. 输出格式多样:除了支持纯文本输出,GOT还能输出格式化文本,如Markdown格式,增强了文本的可读性和可编辑性。
  3. 结构优化:采用vision encoder + input embedding layer + decoder的架构,其中encoder部分采用带local attention的VITDet架构,有效管理显存使用。

训练方法

GOT模型的训练分为三个阶段:

  1. 第一阶段:高效预训练encoder,使用小型OPT-125M作为decoder,快速引入大量数据。
  2. 第二阶段:联合训练encoder-decoder,使用Qwen团队预训练的Qwen0.5B,适当增大decoder以适应OCR-2.0的知识需求。
  3. 第三阶段:锁定encoder,加强decoder以适配更多OCR应用场景,如支持坐标或颜色引导的细粒度OCR,动态分辨率OCR技术,多页OCR技术。

数据工程

研究团队在数据工程方面投入巨大,学习并使用了多种数据渲染工具,包括Latex、Mathpix-markdown-it、Matplotlib、Tikz、Verovio、Pyecharts等,以构造多样化的数据。

项目地址

对GOT模型感兴趣的研究者和开发者可以通过以下链接访问项目代码:GitHub - Ucas-HaoranWei/GOT-OCR2.0

安装

基础环境cuda11.8+torch2.0.1

克隆仓库并导航到GOT文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/Ucas-HaoranWei/GOT-OCR2.0.git 
cd 'the GOT folder'

安装包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
conda create -n got python=3.10 -y
conda activate got
pip install -e .

安装 Flash-Attention

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install ninja
pip install flash-attn --no-build-isolation

GOT 权重

  • Huggingface
  • Google Drive
  • 百度云 密码: OCR2

演示

  1. 普通文本OCR:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 GOT/demo/run_ocr_2.0.py  --model-name  /GOT_weights/  --image-file  /an/image/file.png  --type ocr
  1. 格式文本OCR:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 GOT/demo/run_ocr_2.0.py  --model-name  /GOT_weights/  --image-file  /an/image/file.png  --type format
  1. 细粒度OCR:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 GOT/demo/run_ocr_2.0.py  --model-name  /GOT_weights/  --image-file  /an/image/file.png  --type format/ocr --box [x1,y1,x2,y2]
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 GOT/demo/run_ocr_2.0.py  --model-name  /GOT_weights/  --image-file  /an/image/file.png  --type format/ocr --color red/green/blue
  1. 多裁剪OCR:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 GOT/demo/run_ocr_2.0_crop.py  --model-name  /GOT_weights/ --image-file  /an/image/file.png 
  1. 多页OCR (图像路径包含多个.png文件):
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 GOT/demo/run_ocr_2.0_crop.py  --model-name  /GOT_weights/ --image-file  /images/path/  --multi-page
  1. 渲染格式化OCR结果:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 GOT/demo/run_ocr_2.0.py  --model-name  /GOT_weights/  --image-file  /an/image/file.png  --type format --render

注意: 渲染结果可以在/results/demo.html中找到。请打开demo.html查看结果。

训练

  1. 训练样本可以在此链接找到。注意,在'conversations'-'human'-'value'中的'<image>'是必要的!
  2. 此代码库仅支持在我们GOT权重上的后训练(第二/第三阶段)。
  3. 如果你想从我们论文中描述的第一阶段训练,你需要这个仓库。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deepspeed   /GOT-OCR-2.0-master/GOT/train/train_GOT.py \
 --deepspeed /GOT-OCR-2.0-master/zero_config/zero2.json    --model_name_or_path /GOT_weights/ \
 --use_im_start_end True   \
 --bf16 True   \
 --gradient_accumulation_steps 2    \
 --evaluation_strategy "no"   \
 --save_strategy "steps"  \
 --save_steps 200   \
 --save_total_limit 1   \
 --weight_decay 0.    \
 --warmup_ratio 0.001     \
 --lr_scheduler_type "cosine"    \
 --logging_steps 1    \
 --tf32 True     \
 --model_max_length 8192    \
 --gradient_checkpointing True   \
 --dataloader_num_workers 8    \
 --report_to none  \
 --per_device_train_batch_size 2    \
 --num_train_epochs 1 \
 --learning_rate 2e-5   \
 --datasets pdf-ocr+scence \
 --output_dir /your/output.path

注意:

  1. 更改constant.py中相应的数据信息。
  2. 更改conversation_dataset_qwen.py中第37行为你的数据名称。

评估

  1. 使用Fox和OneChart基准,其他基准可以在权重下载链接中找到。
  2. 评估代码可以在GOT/eval中找到。
  3. 你可以使用evaluate_GOT.py运行评估。如果你有8个GPU,--num-chunks可以设置为8。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 GOT/eval/evaluate_GOT.py --model-name /GOT_weights/ --gtfile_path xxxx.json --image_path  /image/path/ --out_path /data/eval_results/GOT_mathpix_test/ --num-chunks 8 --datatype OCR
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI智韵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
安装不了
安装不了
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Open_R1_Complete_Training_Guide
Open R1是由Hugging Face团队开发的完全开源的DeepSeek-R1复现项目,目标是构建R1推理管道中缺失的组件,让所有人都能复现和构建类似的推理模型。
@小森
2025/07/31
1180
Open_R1_Complete_Training_Guide
世界人工智能大赛 Top1 方案!手写体 OCR 识别
参加了“世界人工智能创新大赛”——手写体 OCR 识别竞赛(任务一),取得了Top1的成绩。队伍随机组的,有人找我我就加了进来,这是我第一次做OCR相关的项目,所以随意起了个名字。下面通过这篇文章来详细介绍我们的方案。
Datawhale
2022/03/01
1.8K0
世界人工智能大赛 Top1 方案!手写体 OCR 识别
免费的OCR识别工具就是香!
经常在网上查询文档资料的朋友一定有过这样的经历:好不容易找到了需要的内容,可是别说下载了,连复制一句话都不给复制的。尤其是 PDF 文档和图片类资料,就算我们充值下载到本地,很多也无法复制文本,只能手动敲出来。
永恒君
2022/12/06
6.6K0
免费的OCR识别工具就是香!
BERT模型实战之多文本分类(附源码)
BERT模型也出来很久了,之前看了论文学习过它的大致模型(可以参考前些日子写的笔记NLP大杀器BERT模型解读),但是一直有杂七杂八的事拖着没有具体去实现过真实效果如何。今天就趁机来动手写一写实战,顺便复现一下之前的内容。这篇文章的内容还是以比较简单文本分类任务入手,数据集选取的是新浪新闻cnews,包括了[‘体育’, ‘财经’, ‘房产’, ‘家居’, ‘教育’, ‘科技’, ‘时尚’, ‘时政’, ‘游戏’, ‘娱乐’]总共十个主题的新闻数据。那么我们就开始吧!
全栈程序员站长
2022/06/29
1.8K0
BERT模型实战之多文本分类(附源码)
学习笔记 TF059 :自然语言处理、智能聊天机器人
本文介绍了自然语言处理技术在金融智能客服系统中的应用和实践。通过引入对话智能引擎,将自然语言处理技术应用于客服场景,实现快速、准确地回答客户问题,提升客户体验。同时,利用深度学习技术对大量语料进行训练,使得系统能够更好地理解用户意图和上下文信息,从而提供更准确的服务。
利炳根
2017/11/06
1.9K0
【多模态大模型实战】 搭建DeepSeek Janus-Pro 7B 多模态模型,以及推理微调,推理后的模型融合
Janus-Pro是DeepSeek最新开源的多模态模型,是一种新颖的自回归框架,统一了多模态理解和生成。通过将视觉编码解耦为独立的路径,同时仍然使用单一的、统一的变压器架构进行处理,该框架解决了先前方法的局限性。这种解耦不仅缓解了视觉编码器在理解和生成中的角色冲突,还增强了框架的灵活性。Janus-Pro 超过了以前的统一模型,并且匹配或超过了特定任务模型的性能。
AI浩
2025/02/08
3K1
【多模态大模型实战】 搭建DeepSeek Janus-Pro 7B 多模态模型,以及推理微调,推理后的模型融合
【HuggingFace项目】:Open-R1 - DeepSeek-R1 大模型开源复现计划
Open-R1 是由 HuggingFace 发布的一个完全开放的项目,旨在通过三个主要步骤复现 DeepSeek-R1 的完整训练流程。这个项目的目标是让更多人能够理解和使用 DeepSeek-R1 的技术方案,从而推动大模型技术的发展和应用。
致Great
2025/01/27
6170
【HuggingFace项目】:Open-R1 - DeepSeek-R1 大模型开源复现计划
NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解
NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
汀丶人工智能
2024/04/14
3.8K0
NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解
FastChat——一个用于训练、部署和评估基于大型语言模型的聊天机器人的开放平台
在AI盛起的当下,各类AI应用不断地出现在人们的视野中,AI正在重塑着各行各业。相信现在各大公司都在进行着不同程度的AI布局,有AI大模型自研能力的公司毕竟是少数,对于大部分公司来说,在一款开源可商用的大模型基础上进行行业数据微调也正在成为一种不错的选择。
山行AI
2023/06/26
37K0
FastChat——一个用于训练、部署和评估基于大型语言模型的聊天机器人的开放平台
MiniCPM-o-2.6 多模态大模型微调实战(完整代码)
MiniCPM-o-2.6是OpenBMB(面壁智能)团队最近开源的多模态大语言模型。以MiniCPM-o-2.6作为基座多模态大模型,通过指令微调的方式实现特定场景下的OCR,是学习多模态LLM微调的入门任务。
Grafin
2025/01/25
7430
MiniCPM-o-2.6 多模态大模型微调实战(完整代码)
1小时上手MaskRCNN·Keras开源实战 | 深度应用
MaskRCNN 是何恺明基于以往的 faster rcnn 架构提出的新的卷积网络,一举完成了 object instance segmentation。该方法在有效地目标的同时完成了高质量的语义分割。文章的主要思路就是把原有的 Faster-RCNN 进行扩展,添加一个分支使用现有的检测对目标进行并行预测。
AI科技大本营
2019/08/23
1.8K0
1小时上手MaskRCNN·Keras开源实战 | 深度应用
学习笔记CB014:TensorFlow seq2seq模型步步进阶
神经网络。《Make Your Own Neural Network》,用非常通俗易懂描述讲解人工神经网络原理用代码实现,试验效果非常好。
利炳根
2018/05/05
1.2K1
PaddleOCR 训练模型参考
本文章介绍的是NV显卡训练。CPU训练 仅供参考,部分不同的地方请前往官方网站获取信息。
沙漠尽头的狼
2022/04/18
1.4K0
PaddleOCR 训练模型参考
Python 智能项目:1~5
人工智能(AI)在过去几年中一直处于技术的最前沿,并已进入主流应用,例如专家系统,移动设备上的个性化应用, 自然语言处理中的机器翻译,聊天机器人,自动驾驶汽车等。 但是,AI 的定义在很长一段时间以来一直是一个争论的主题。 这主要是因为所谓的 AI 效应将过去已经通过 AI 解决的工作归类为非 AI。 根据一位著名的计算机科学家的说法:
ApacheCN_飞龙
2023/04/23
1.1K0
单个GPU就能跑!UC伯克利领头,130亿参数「小羊驼」权重公布
---- 新智元报道   编辑:好困 【新智元导读】刚刚,UC伯克利、CMU、斯坦福等,联手发布了最新开源模型骆马(Vicuna)的权重。 3月31日,UC伯克利联手CMU、斯坦福、UCSD和MBZUAI,推出了130亿参数的Vicuna,俗称「小羊驼」(骆马),仅需300美元就能实现ChatGPT 90%的性能。 今天,团队正式发布了Vicuna的权重——只需单个GPU就能跑! 项目地址:https://github.com/lm-sys/FastChat/#fine-tuning 130亿参数,
新智元
2023/04/04
8410
单个GPU就能跑!UC伯克利领头,130亿参数「小羊驼」权重公布
tensorflow LSTM + CTC实现端到端OCR
本文github源码地址: 在公众号 datadw 里 回复 OCR 即可获取。 最近在做OCR相关的东西,关于OCR真的是有悠久了历史了,最开始用tesseract,然而效果总是不理想,其中字符分割真的是个博大精深的问题,那么多年那么多算法,然而应用到实际总是有诸多问题。比如说非等间距字体的分割,汉字的分割,有光照阴影的图片的字体分割等等,针对特定的问题,特定的算法能有不错的效果,但也仅限于特定问题,很难有一些通用的结果。于是看了Xlvector的博客之后,发现可以端到端来实现OCR,他是基于mxn
机器学习AI算法工程
2018/03/15
4.4K1
tensorflow LSTM + CTC实现端到端OCR
『OCR_Recognition』CRNN
文字识别是AI的一个重要应用场景,文字识别过程一般由图像输入、预处理、文本检测、文本识别、结果输出等环节组成。
小宋是呢
2021/09/10
4K1
《书生大模型实战营第3期》进阶岛 第4关: InternVL 多模态模型部署微调实践
InternVL 是一种用于多模态任务的深度学习模型,旨在处理和理解多种类型的数据输入,如图像和文本。它结合了视觉和语言模型,能够执行复杂的跨模态任务,比如图文匹配、图像描述生成等。通过整合视觉特征和语言信息,InternVL 可以在多模态领域取得更好的表现
流川疯
2024/08/24
9850
《书生大模型实战营第3期》进阶岛 第4关: InternVL 多模态模型部署微调实践
大规模语言LLaVA:多模态GPT-4智能助手,融合语言与视觉,满足用户复杂需求
一个面向多模式GPT-4级别能力构建的助手。它结合了自然语言处理和计算机视觉,为用户提供了强大的多模式交互和理解。LLaVA旨在更深入地理解和处理语言和视觉信息,从而实现更复杂的任务和对话。这个项目代表了下一代智能助手的发展方向,它能够更好地理解和应对用户需求。
汀丶人工智能
2023/10/18
2.7K0
大规模语言LLaVA:多模态GPT-4智能助手,融合语言与视觉,满足用户复杂需求
『深度应用』一小时教你上手训练MaskRCNN·Keras开源实战(Windows&Linux)
MaskRCNN是何凯明基于以往的faster rcnn架构提出的新的卷积网络,一举完成了object instance segmentation. 该方法在有效地目标的同时完成了高质量的语义分割。 文章的主要思路就是把原有的Faster-RCNN进行扩展,添加一个分支使用现有的检测对目标进行并行预测。
小宋是呢
2019/08/26
2.1K0
推荐阅读
相关推荐
Open_R1_Complete_Training_Guide
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档