当前位置: 首页 > article >正文

【OCR】总结github上开源 OCR 工具:让文字识别更简单

前言

在数字化的时代,光学字符识别(OCR)技术成为了我们处理文档、图像文字信息的得力助手。它能够将图像中的文字信息转换为可编辑和可处理的文本数据,极大地提高了信息处理的效率。今天,我要给大家介绍一些优秀的开源 OCR 工具,它们在不同的场景下各显神通,让我们一起来看看它们的强大之处吧!

1、端到端 OCR 模型:GOT-OCR 2.0

这是一款开源的端到端多模态 OCR 模型,模型大小仅 1.43 GB。除了能识别和提取文本,还能处理数学公式、分子式、图表、乐谱、几何图形等多种内容,极大地拓宽了 OCR 技术的应用范围。

目前在 GitHub 上已经获得了 7.2K 的 Star!

图片

    开源地址:https://github.com/Ucas-HaoranWei/GOT-OCR2.0

    2、开源多模态模型:兼容文字识别

    InternVL 是由 OpenGVLab 团队开发的开源多模态大模型,旨在提供接近 GPT-4V 和 Gemini Pro 等商业模型性能的替代方案,目前已经获得了 7.2K 的 Star。

    这个是视觉大模型,它能兼容的场景更广泛,比如图片理解,理论上不算 OCR 领域的垂直模型,不过这种视觉大模型能够向下兼容 OCR 提取文字场景的,所以我就算进来了。

    当然开源的视觉大模型有很多,我就不逐个梳理了,先拿这个做案例。

    图片

      开源地址:https://github.com/OpenGVLab/InternVL

      3、PDF 转成结构化文本:olmOCR

      olmOCR 是由 AllenAI 开发的一款专注于 PDF 文档线性化处理的工具包,将复杂布局的 PDF 转换为适合大语言模型(LLM)训练的结构化文本。目前已经获得了 9.8K 的 Star!

      其核心目标是通过高效处理 PDF 的图文混排、多栏布局等问题,生成连贯的文本数据,提升 LLM 在真实场景中的文档理解能力。

      要求配置是最新的 NVIDIA GPU(在 RTX 4090、L40S、A100、H100 上测试),至少有 20 GB 的 GPU RAM,30GB 可用磁盘空间

      图片

      图片

        开源地址:https://github.com/allenai/olmocr在线演示:https://olmocr.allenai.org/

        4、识别文字转成结构化文件:Zerox

        Zerox 是由 Omni-AI 团队开发的一款 AI 驱动的提取文字工具,可以把 PDF、图片、Docx 等格式的文档转换为结构化的 Markdown 文件。目前获得了 10.3K 的 Star!

        底层实现:底层基于视觉模型(如 GPT-4o-mini)实现 OCR 并直接生成结构化内容。

        无需训练:与传统 OCR 工具不同,Zerox 无需提前训练模型即可处理复杂布局。 

        格式结构:可识别学术论文的分栏排版、技术文档中的代码块、合同表格、试卷公式等,保留逻辑结构并生成整洁的 Markdown。

        图片

          开源地址:https://github.com/getomni-ai/zerox体验地址:https://getomni.ai/ocr-demo

          5、行级文本检测、布局分析:Surya

          Surya 专注于多语言文本及复杂文档结构的识别,尤其以表格识别能力见长。目前在 GitHub 上已经获得了 16.8K 的 Star!

          关键词:行级文本检测、布局分析(表格、图像、标题等检测)、阅读顺序检测、表格识别(检测行/列)、LaTeX OCR

          ① 多语言支持:支持90+ 种语言,涵盖中文、日语、阿拉伯语等复杂文字,以及英语、西班牙语等主流语言,适用于全球化场景的文档处理。

          ② 表格识别优化:能精准识别表格的行、列、单元格结构,包括旋转或复杂布局的表格,性能优于当前主流开源模型(如 Table Transformer)。

          ③ 复杂文档解析:可检测文档中的标题、图片、段落等元素,并智能判断阅读顺序,避免输出内容混乱。

          图片

          图片

          ④ 高效处理能力:支持 CPU/GPU 运行,通过批量处理和图像预处理优化(如去噪、灰度化),显著提升识别速度,适用于企业级文档数字化需求。

          开源地址:https://github.com/VikParuchuri/surya

          6、图片 PDF 变可复制、搜索

          这个开源工具,专为扫描版 PDF 文件(就是 PDF 中全是图片,图片中的文字不可复制的那种)添加可搜索、可复制的文本层。

          目前在 GitHub 已经获得了 20.7K 的 Star!

          使用的是 Tesseract OCR 引擎,支持 100 多种语言,能保留原始图像质量并优化文件体积,同时生成符合长期存储标准的 PDF 格式。  

          ① 精准识别:打开图片型 PDF 的时候,会发现图片上的文字是没办法复制和搜索的。将 OCR 文本层嵌入图片下方,支持高精度复制和搜索。  

          图片

          ② 批量处理:利用多核 CPU 加速,可高效处理上千页文档。  

          ③ 图像优化:自动校正倾斜页面、旋转错误页面,提升识别率。  

          ④ 跨平台支持:安装便捷,兼容 Linux、Windows、macOS 和 Docker

          开源地址:https://github.com/ocrmypdf/OCRmyPDF  接入文档:https://ocrmypdf.readthedocs.io/en/latest/

          7、PDF 转换为 Markdown、JSON 或 HTML

          Marker 是由 Vik Paruchuri 开发的高效文档转换工具,可以将 PDF、图像、Office 文档及 EPUB 等格式快速转换为 Markdown、JSON 或 HTML。

          目前在 GitHub 上已经获得了 22.8K 的 Star。

          图片

          优势在于高精度解析复杂内容(如表格、数学公式、代码块)和出色的处理速度,支持 GPU 加速,性能优于同类云服务(如 Llamaparse、Mathpix)。

          可以调用大语言模型(如 Gemini、Ollama)优化结果,例如跨页表格合并、公式格式化、表单数据提取。

          开源地址:https://github.com/vikParuchuri/marker

          8、EasyOCR

          EasyOCR 是由 JaidedAI 开发的开源 OCR 工具库,输入图片,返回提取出来的文字、对应位置坐标、置信度,目前在 GitHub 上获得了 26K 的 Star。

          支持 80+ 语言和多种文字系统(如中文、拉丁文、阿拉伯文),提供即用型文本识别功能。

          基于 PyTorch 深度学习框架,支持图片/字节流/URL等多种输入形式,通过简洁 API 输出文本内容、位置及置信度。

          其特点包括多语言混合识别、CPU/GPU 兼容和预训练模型快速部署,适用于多语言文档、自然场景文字(如路牌/车牌)等 OCR 场景,兼顾开发者友好性和工业级应用需求。

          例子

          示例2

          示例3

            开源地址:https://github.com/JaidedAI/EasyOCRDemo 地址:https://www.jaided.ai/documentai/demo

            9、安装即用的离线 OCR 文字识别软件

            这款免费、开源、离线的 OCR 文字识别软件,支持 Windows 7+ x64 和 Linux x64 系统,无需联网,下载即可本地运行。目前已经获得了 30.8K 的 Star 。

            关键词:本地软件解压即用,离线运行;截图OCR;批量OCR ;

            1-标题-1.png

            2-截图-1.png

            3-批量-1.png

              开源地址:https://github.com/hiroi-sora/Umi-OCR

              10、OCR 远古巨神:Tesseract

              Tesseract 是一个功能强大且广泛应用的开源光学字符识别(OCR)引擎,在 GitHub 上已经获得了 65.3K 的 Star 。

              能够将图像中的文字转换为可编辑的文本,1985 年至 1994 年间由惠普实验室开发, 1996 年后被移植到 Windows系统, 2005 年惠普将其开源。

              并最终由 Google 赞助,是知名度比较高的开源 OCR 系统之一。

              图片

              官方介绍使用先进的深度学习技术(如卷积神经网络)来进行字符识别,精度较高,尤其在处理质量较好的扫描图像时表现优异。支持超过 100 种语言的文本识别,方便开发者处理不同语言的文本识别任务。

              除此之外还有一个 JavaScript 版本的Tesseract OCR:Tesseract.js,但是逛逛实际测试下来,发现 JS 版本中文效果不咋滴。

              开源地址:https://github.com/tesseract-ocr/tesseract开源地址:https://github.com/naptha/tesseract.js

              图片

              相关文章:

              【OCR】总结github上开源 OCR 工具:让文字识别更简单

              前言 在数字化的时代,光学字符识别(OCR)技术成为了我们处理文档、图像文字信息的得力助手。它能够将图像中的文字信息转换为可编辑和可处理的文本数据,极大地提高了信息处理的效率。今天,我要给大家介绍一些优秀的开源…...

              为wordpress核心functions文件瘦身

              在wordpress主题开发过程中,常会用到functions.php这个文件,通过这个文件,可以让wordpress主题变得很强大。但是随着,功能的越来越多functions文件也会变得越来越臃肿庞大。要修改起functions文件来,也就越麻烦。特别是…...

              Jmeter使用之http请求默认值

              一、添加【HTTP请求默认值】 1、添加方式 【线程组】---->右击【添加】---->【配置元件】---->【HTTP请求默认值】 2、作用 在发送http请求的时候,自带默认值设置的参数(常用:【协议】、【服务器名称或IP】、端口号、内容编码&…...

              【QT】】qcustomplot的初步使用二

              功能预期: 在简单显示曲线()基础上加功能: 1.在曲线区域里,X轴可以随鼠标滚轮变化将图像缩放、随鼠标左键进行曲线移动; 2.在曲线区域里,Y轴的量程可以随Y轴数据大小自适应; 3.可以…...

              让 Google Play 成为助力 PC 游戏增长的最佳平台

              作者 / Google Play 游戏副总裁兼总经理 Aurash Mahbod 我们正在加强多平台游戏产品,并将在今年的游戏开发者大会 (GDC) 上发布激动人心的消息。我们将为用户带来更多游戏,提供更多跨设备畅玩游戏的方式,并进一步优化游戏体验。在游戏开发者大…...

              脚本一键式启动Nginx、Mysql、Redis

              此脚本包含拉取镜像、数据卷挂载、容器启动三大部分,可一键式安装三大环境 新建一个depoy.sh文件在服务器上,然后复制以下内容。 给脚本文件添加执行权限 chmod x depoy.sh # 文件的当前目录下 如果需要修改数据库MYSQL密码和Reids密码 MYSQL_ROO…...

              路径问题(greedy):地下城游戏

              题目描述: 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健…...

              LS-NET-008-OSPF、BGP、RIP三大路由协议

              LS-NET-008-OSPF、BGP、RIP三大路由协议 从网络层级、协议特性和厂商实现三个维度对比OSPF、BGP、RIP三大路由协议: 一、网络协议分层架构对比 graph TD L7[应用层] --> BGP(TCP/179) L7 --> RIP(UDP/520) L4[网络层] --> OSPF(IP协议号89) L4 -->|报…...

              electron框架(3.0)主程序与桥梁与渲染,以及之间的通信

              每个页面程序通过渲染和主进程通信,主进程根据需求调用Native Api来实现功能。 实际,每个页面和主程序通信时,需要建个桥梁来管理它们的通信,preload.js(自己创建),来管理实现通信。 ----创建preload.js定义桥梁js&a…...

              python写入excel多个sheet表 以及追加sheet表

              python写入excel多个sheet表 以及追加sheet表 写入多个sheet表在excel追加sheet表 可将不同DataFrame分别写入指定Sheet(如初始写入"箱_4"和"箱_2"),并通过封装函数append_to_excel支持动态追加新Sheet到现有文件&#x…...

              【大模型微调】使用Llama Factory实现中文llama3微调

              【大模型微调】使用Llama Factory实现中文llama3微调 github链接 为什么不用基座模型:95%用的英文数据训练,训练效果不好 所以用的Llama3-99-Chinese-Chat(别人微调过的再微调)...

              群体智能优化算法-牛顿-拉夫逊优化算法(Newton-Raphson-Based Optimizer, NRBO,含Matlab源代码)

              摘要(Abstract) 牛顿-拉夫逊优化算法(Newton-Raphson-Based Optimizer, NRBO)是一种新型群体智能优化算法,受牛顿-拉夫逊方法求解非线性方程的启发。NRBO 结合牛顿-拉夫逊搜索规则(Newton-Raphson Search …...

              JS—原型与原型链:2分钟掌握原型链

              个人博客:haichenyi.com。感谢关注 一. 目录 一–目录二–原型三–原型链 二. 原型 什么是原型? 每个JavaScript对象都有一个原型,这个原型也是一个对象。比方说 function Person(name) {this.name name; } let person new Person(&quo…...

              Canal 解析与 Spring Boot 整合实战

              一、Canal 简介 1.1 Canal 是什么? Canal 是阿里巴巴开源的一款基于 MySQL 数据库增量日志解析(Binlog)中间件,它模拟 MySQL 的从机(Slave)行为,监听 MySQL 主机的二进制日志(Binl…...

              「数据会说话」:让AI成为你的数据分析魔法师 ✨

              文章目录 「数据会说话」:让AI成为你的数据分析魔法师 ✨1. 核心技术 🛠️1.1 LIDA智能可视化引擎1.1.1 核心优势1.1.2 核心功能 1.2 前端交互框架 2. 系统架构设计 🏗️2.1 功能模块组成2.2 用户隔离与数据安全 🔒2.2.1 用户身份…...

              图论——Prim算法

              53. 寻宝(第七期模拟笔试) 题目描述 在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。 不同岛屿之间,路途距离不同,国王希望你可以规划建公路的方案,如何可以以最短的总公路距离将 所有岛屿联通…...

              2025年汽车加气站操作工考试精选题库

              汽车加气站操作工题库中题目及答案: 单项选择题 1、按压力容器的设计压力分为( )个压力等级。 A. 3 B. 4 C. 5 答案:B 2、缓冲罐的安装位置在天然气压缩机( )。 A. 前 B. 后 C. 中间 答案&#…...

              1. 初识golang微服务-gRPC

              单体架构 在这里插入图片描述 微服务架构 RPC架构(远程过程调用) 服务端实例代码: package mainimport ("fmt""net""net/rpc""time" )type Hello struct { }func (h Hello) SayHello(req stri…...

              C++20 指定初始化器

              指定初始化器 对于聚合,C20 提供了一种方法来指定应该用传递的初始值初始化哪个成员,但只能使用它 来跳过参数。 假设有以下聚合类型: struct Value {double amount{0};int precision{2};std::string unit{"Dollar";}; }; 那么&#x…...

              【从零开始学习计算机科学】设计模式(二)工厂模式、抽象工厂模式、单例模式、建造者模型、原型模式

              【从零开始学习计算机科学】设计模式(二)工厂模式、抽象工厂模式、单例模式、建造者模型、原型模式 工厂模式主要特点类型适用场景抽象工厂模式主要特点工作原理适用场景举例优点缺点总结单例模式主要特点工作原理适用场景优点缺点总结建造者模式主要特点工作原理适用场景优点…...

              视频翻译器免费哪个好?轻松玩转视频直播翻译

              你是不是觉得看外语视频很麻烦?每次遇到喜欢的外语电影、电视剧或动漫,总是要等字幕组的翻译,或者因为语言不通而错过精彩的情节。 这个时候,掌握多语种直播翻译方案就显得尤为重要,有了实时字幕,看外语视…...

              mysql 数据库异常排查

              1、简单查询语句无法执行 线上问题记录,有个删除语句走不了索引导致锁表,其他所有引用该表的操作需要等待删除成功后才能执行,导致服务不可用 排查思路,先看是否有长时间未提交的事务 SELECT * FROM information_schema.INNOD…...

              Python列表1

              # coding:utf-8 print("———————————— 列表 ——————————————")列表 是指一系列按照特定顺序排列的元素组成 是Python中内置的可变序列 使用[]定义列表,元素与元素之间使用英文的逗号分隔 列表中的元素可以是任意的数据类型列表的…...

              如何在前端发版时实现向客户端推送版本更新消息

              前端打包发版后如何用户一个更新提示,该提示会让用户主动去更新当前正在操作的页面,或者在系统有较大更新时,让用户重新更新本地缓存信息,这一操作比较友好,且能避免用户不更新当前系统,导致某些接口依赖更新后的数据而导致接口请求失败报错。 1、后端更新提示 有些情况…...

              Redis系列:深入理解缓存穿透、缓存击穿、缓存雪崩及其解决方案

              在使用Redis作为缓存系统时,我们经常会遇到“缓存穿透”、“缓存击穿”和“缓存雪崩”等问题,这些问题一旦出现,会严重影响应用性能甚至造成服务不可用。因此,理解这些问题的产生原因和解决方案非常重要。 本文将全面讲解缓存穿透…...

              3.19学习总结

              学习了Java中的面向对象的知识点 完成一道算法题,找树左下角的值,错误的以为左下角只能是最底层的左节点,但指的是最底层最左边的节点...

              服务创造未来 东隆科技携多款产品亮相慕尼黑

              慕尼黑上海光博会依托于德国慕尼黑博览集团,自2006年首次举办以来,始终坚持将国内外先进的光电技术成果展示给观众,深度链接亚洲乃至全球的激光、光学、光电行业的优质企业及买家。如今已经成为了国内外专业观众信赖的亚洲激光、光学、光电行…...

              AI 时代,学习 Java 应如何入手?

              一、Java 的现状:生态繁荣与 AI 融合的双重机遇 在 2025 年的技术版图中,Java 依然稳坐企业级开发的 “头把交椅”。根据行业统计,Java 在全球企业级应用中的市场份额仍超过 65%,尤其在微服务架构、大数据平台和物联网&#xff0…...

              LiteratureReading:[2016] Enriching Word Vectors with Subword Information

              文章目录 一、文献简明(zero)二、快速预览(first)1、标题分析2、作者介绍3、引用数4、摘要分析(1)翻译(2)分析 5、总结分析(1)翻译(2)…...

              JavaScript 实现导出内容自动居中:从原理到实践

              引言 在前端开发中,我们经常会遇到需要将页面上的内容导出为文件(如 PDF、Excel 等)的需求。而在导出的内容中,让元素自动居中显示可以提升内容的美观度和专业性。本文将围绕 JavaScript 实现导出内容自动居中展开,详…...