CV之OCR:GOT-OCR2.0的简介、安装和使用方法、案例应用之详细攻略

CV之OCR:GOT-OCR2.0的简介、安装和使用方法、案例应用之详细攻略

目录

GOT-OCR2.0的简介

1、更新

GOT-OCR2.0的安装和使用方法

1、安装

安装环境cuda11.8+torch2.0.1

安装包

安装Flash-Attention

GOT权重:1.43G

2、演示

3、训练

4、评估

GOT-OCR2.0的案例应用

1、使用 NVIDIA GPU 上的 Huggingface transformers 进行推理

T2、在线测试


GOT-OCR2.0的简介

GOT-OCR2.0 是一款通用光学字符识别(OCR)理论的官方代码实现,旨在通过一个统一的端到端模型推进 OCR-2.0 的发展。

GOT-OCR2.0 提供了一种新的 OCR 解决方案,整合了最新的技术和理论,以提升文本识别的准确性和效率。该项目是基于 Huggingface 平台的 GPU 资源支持,并已在多个平台上开源。特点如下:
>> 统一端到端模型:整合多个模块于一体,提高整体识别精度。
>> 多种 OCR 类型支持:支持普通文本、格式化文本、细粒度 OCR、多裁剪和多页面 OCR 等。
>> 高效推理与训练:提供了高效的训练和推理代码,能够在有限的硬件资源上运行。
>> 开源与社区支持:代码、权重和基准测试已开源,鼓励社区进行进一步开发和应用。
该项目旨在通过创新的架构和方法,提升 OCR 技术的性能和应用范围。

GitHub地址:GitHub - Ucas-HaoranWei/GOT-OCR2.0: Official code implementation of General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model

1、更新

[2024/9/14] 我们发布了官方演示。非常感谢Huggingface提供的GPU资源。

[2024/9/13] 我们发布了Huggingface部署。

[2024/9/03] 我们开源了代码、权重和基准测试。论文可以在该仓库中找到。我们也已将其提交至Arxiv。

[2024/9/03] 我们发布了OCR-2.0模型GOT!

使用与许可声明:数据、代码及检查点仅供研究用途,并且仅限于遵循Vary许可协议的使用。

GOT-OCR2.0的安装和使用方法

1、安装

安装环境cuda11.8+torch2.0.1

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

git clone https://github.com/Ucas-HaoranWei/GOT-OCR2.0.git
cd 'the GOT folder'

安装包

conda create -n got python=3.10 -y
conda activate got
pip install -e .

安装Flash-Attention

pip install ninja
pip install flash-attn --no-build-isolation

GOT权重:1.43G

  • Huggingface
  • Google Drive
  • BaiduYun code: OCR2

2、演示

纯文本OCR:

python3 GOT/demo/run_ocr_2.0.py --model-name /GOT_weights/ --image-file /an/image/file.png --type ocr

格式化文本OCR:

python3 GOT/demo/run_ocr_2.0.py  --model-name  /GOT_weights/  --image-file  /an/image/file.png  --type format

细粒度OCR:

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]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

多裁剪OCR:

python3 GOT/demo/run_ocr_2.0_crop.py  --model-name  /GOT_weights/ --image-file  /an/image/file.png 

多页OCR(图片路径包含多个.png文件):

python3 GOT/demo/run_ocr_2.0_crop.py  --model-name  /GOT_weights/ --image-file  /images/path/  --multi-page

渲染格式化的OCR结果:

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查看结果。

3、训练

示例训练可以在这里找到。请注意,'conversations'-'human'-'value'中的'<image>'是必需的!

本代码库只支持基于我们的GOT权重进行后期训练(阶段2/阶段3)。

如果你想按照论文中描述的从阶段1开始训练,你需要这个仓库。

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

注意:
更改constant.py中的相应数据信息。
将conversation_dataset_qwen.py第37行更改为你的data_name。

4、评估

我们使用Fox和OneChart基准测试,其他基准测试可以在权重下载链接中找到。

评估代码可以在GOT/eval中找到。

你可以使用evaluate_GOT.py来运行评估。如果你有8个GPU,--num-chunks可以设置为8。

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

GOT-OCR2.0的案例应用

持续更新中……

1、使用 NVIDIA GPU 上的 Huggingface transformers 进行推理

要求在 Python 3.10 上进行测试

torch==2.0.1
torchvision==0.15.2
transformers==4.37.2
tiktoken==0.6.0
verovio==4.3.1
accelerate==0.28.0

from transformers import AutoModel, AutoTokenizertokenizer = AutoTokenizer.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True)
model = AutoModel.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True, low_cpu_mem_usage=True, device_map='cuda', use_safetensors=True, pad_token_id=tokenizer.eos_token_id)
model = model.eval().cuda()# input your test image
image_file = 'xxx.jpg'# plain texts OCR
res = model.chat(tokenizer, image_file, ocr_type='ocr')# format texts OCR:
# res = model.chat(tokenizer, image_file, ocr_type='format')# fine-grained OCR:
# res = model.chat(tokenizer, image_file, ocr_type='ocr', ocr_box='')
# res = model.chat(tokenizer, image_file, ocr_type='format', ocr_box='')
# res = model.chat(tokenizer, image_file, ocr_type='ocr', ocr_color='')
# res = model.chat(tokenizer, image_file, ocr_type='format', ocr_color='')# multi-crop OCR:
# res = model.chat_crop(tokenizer, image_file, ocr_type='ocr')
# res = model.chat_crop(tokenizer, image_file, ocr_type='format')# render the formatted OCR results:
# res = model.chat(tokenizer, image_file, ocr_type='format', render=True, save_render_file = './demo.html')print(res)

T2、在线测试

地址:https://huggingface.co/spaces/stepfun-ai/GOT_official_online_demo

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

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

相关文章

直接在tomcat下面访问jsp

复制一份tomcat为tomcat-8.5.99test 记住修改tomcat-8.5.99test下面bin/startup.sh&#xff08;Linux/Mac&#xff09;或 bin/startup.bat&#xff08;Windows&#xff09; 在 Linux/Mac export CATALINA_BASE/path/to/tomcat1 $CATALINA_HOME/bin/startup.sh 在 Windows: …

springboot 控制器

springboot 控制器 文章目录 springboot 控制器1.Controller和RestController**Controller&#xff1a;数据和页面****RestController&#xff1a;数据**所以我们的controller一般在springmvc中使用&#xff0c;返回页面&#xff0c;但是现在的项目基本上都是前后端分离项目&am…

手写SpringMVC

1、开发HspDispatcherServlet 2、完成客户端/浏览器可以请求控制层 目的&#xff1a;发出url请求时&#xff0c;经过前端控制器&#xff0c;找到Monster的List方法&#xff0c;把结果再打回去 3、从web.xml动态获取hspspringmvc.xml 4、完成自定义Service注解功能 目的&…

什么是 SaaS?(软件即服务)

什么是SaaS软件&#xff1f; 软件即服务&#xff08;SaaS&#xff09;是一种云计算方法&#xff0c;其中应用程序在线存储&#xff0c;并以订阅的方式提供给用户。SaaS解决方案可以从任何web浏览器中使用&#xff0c;而无需在pc端或服务器上安装软件。 SaaS消除了基础设施、升…

Microsoft Edge 五个好用的插件

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏 插件_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; 目录 Microsoft Edge 一.安装游览器 ​编辑 二.找到插件商店 1.打开游览器后&#xff0c;点击右上角的设置&#…

day-58 最佳观光组合

思路 用right表示最佳观光组合的右边的景点的索引&#xff0c;同时维护一个该景点左边values[left]left的最大值 解题过程 这样在遍历过程中&#xff0c;以right为右边景点的最佳得分即为values[right]-rightleftmax&#xff0c;再与ans比较&#xff0c;选择较大的那一个&…

ProtoBuf介绍及安装

文章目录 序列反序列化ProtoBuf特点安装ProtoBufwindowsUbuntuCentos 序列反序列化 在网络传输过程当中&#xff0c;可以理解为&#xff1a; 发送方接收方 它们彼此要通信&#xff0c;先要定好一个规则&#xff0c;也就是协议&#xff0c;双方都能认识的结构化数据&#xff…

优化 IT 投资与资源管理,实现企业数字化转型的成功

为何优化 IT 投资与资源管理对数字化转型至关重要 在当今瞬息万变的商业环境中&#xff0c;数字化转型已成为企业保持竞争力的必要手段。然而&#xff0c;随着技术的不断进步&#xff0c;企业在推进数字化进程时面临着巨大的IT 投资和资源管理挑战。优化这些投资不仅能确保企业…

算法.图论-并查集

文章目录 1. 并查集介绍2. 并查集的实现2.1 实现逻辑2.2 isSameSet方法2.3 union方法(小挂大优化)2.4 find方法(路径压缩优化) 3. 并查集模板4. 并查集习题4.1 情侣牵手4.2 相似字符串组 1. 并查集介绍 定义&#xff1a; 并查集是一种树型的数据结构&#xff0c;用于处理一些不…

突破距离限制:大文件跨境传输的高效策略揭秘

目前越来越多的人认识到大数据的重要性&#xff0c;有人将大数据比作“石油”&#xff0c;未来的某一天石油资源可能会面临枯竭&#xff0c;但是大数据中蕴藏的资源却不会。海外市场对于数据驱动的产品和服务的需求不断增加&#xff0c;越来越多的企业寻求更深度的跨国业务及合…

国内人工智能AI头部公司32家(包括详细技术、特点和综合实力)

国内AI头部公司前100家及其详细技术、特点和综合实力&#xff0c;基于当前行业认知和市场表现选取的一些代表性企业。 1. 百度&#xff08;Baidu&#xff09; 技术&#xff1a;百度在人工智能AI领域拥有深厚的技术积累&#xff0c;包括自然语言处理、计算机视觉、深度学习等核…

【文心智能体】 旅游手绘手帐 开发分享 零代码 手绘风景 记录行程和心情 旅游攻略

旅游手绘手帐&#xff0c;点击文心智能体平台AgentBuilder | 想象即现实 (baidu.com) 背景 这个智能体是一个零代码智能体&#xff08;文心智能体平台现主推零代码&#xff0c;低代码将于10月8日低代码下架迁移&#xff09;&#xff0c;同时它已公开配置详情&#xff0c;感兴趣…

使用centos7搭建wiki论坛,使用nginx网站来搭建wiki负载均衡,反向代理。

1.安装一个wget&#xff0c;进入目录opt下 #安装wget yum -y install wget#进入目录/opt/下面 cd /opt/2.获取 mysql8.0 rpm包,安装mysql8.0,安装mysql-server&#xff0c;yum会自动下载所需安装及依赖包. #获取 mysql8.0 rpm包 wget https://dev.mysql.com/get/mysql80-comm…

【文化课学习笔记】【物理】电场

【物理】电场 前置知识 绝缘体&#xff1a;本质是物体内部电荷无法自由移动。 导体&#xff1a;本质是物体内部电荷可以自由移动。 电荷的移动&#xff1a;导体内部能够发生自由移动的电荷只有负电荷。 显电性&#xff1a;显示的电性&#xff0c;是内部的正负电荷中和之后的结果…

NLP 文本分类任务核心梳理

解决思路 分解为多个独立二分类任务将多标签分类转化为多分类问题更换 loss 直接由模型进行多标签分类 数据稀疏问题 标注更多数据&#xff0c;核心解决方案&#xff1a; 自己构造训练样本 数据增强&#xff0c;如使用 chatGPT 来构造数据更换模型 减少数据需求增加规则弥补…

《2024中国AI大模型产业图谱2.0版》重磅发布

‍ 数据猿出品 本次“数据猿2024年度三大媒体策划活动——《2024中国AI大模型产业图谱3.0版》”正式发布。下一次版本迭代将于2024年12月底发布2024年3.0版&#xff0c;敬请期待&#xff0c;欢迎报名。 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着科技的飞速发展&…

7.C++程序中的基本数据类型-数据类型之间的转换

在C中&#xff0c;类型转换是将一个数据类型转为另外一个数据类型&#xff0c;其转换过程比较复杂&#xff0c;目前只讨论基本数据类型之间的转换。 类型转换分为两部分&#xff1a;隐式转换和显示转换 隐式转换又称为自动转换&#xff0c;显示转换又称为强制转换。 隐式转换…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《基于台区剩余电流关联性分析的接线错误漏电用户识别方法》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

基于软件项目开发流程的软件综合实训室解决方案

一、引言 1.1 软件实训室的重要性 软件实训室作为高等教育和职业教育中的不可或缺组成部分&#xff0c;对于培养学生的实践能力和创新思维发挥着重要作用。随着信息技术的快速发展&#xff0c;软件行业对于高素质技术人才的需求日益增长。实训室提供了一个模拟真实工作环境的…

视频监控平台AS-V1000的目录管理和区域管理:实现现有监控视频资源的行政区域划分和管理

目录 一&#xff0e;行政区划相关概念 1.1 视频监控系统中的行政区划 1.2 国标GB28181中行政区划目录定义 二&#xff0e;视频资源管理平台介绍 2.1 AS-V1000视频平台介绍 2.2 平台相关服务的说明 三&#xff0e;区域管理功能介绍 3.1区域管理功能结构树 3.1.1区域管理…