一文理清OCR的前世今生

AI应用开发相关目录

本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧
适用于具备一定算法及Python使用基础的人群

  1. AI应用开发流程概述
  2. Visual Studio Code及Remote Development插件远程开发
  3. git开源项目的一些问题及镜像解决办法
  4. python实现UDP报文通信
  5. python实现日志生成及定期清理
  6. Linux终端命令Screen常见用法
  7. python实现redis数据存储
  8. python字符串转字典
  9. python实现文本向量化及文本相似度计算
  10. python对MySQL数据的常见使用
  11. 一文总结python的异常数据处理示例
  12. 基于selenium和bs4的通用数据采集技术(附代码)
  13. 基于python的知识图谱技术
  14. 一文理清python学习路径
  15. Linux、Git、Docker常用指令
  16. linux和windows系统下的python环境迁移
  17. linux下python服务定时(自)启动
  18. windows下基于python语言的TTS开发
  19. python opencv实现图像分割
  20. python使用API实现word文档翻译
  21. yolo-world:”目标检测届大模型“
  22. 爬虫进阶:多线程爬虫
  23. python使用modbustcp协议与PLC进行简单通信
  24. ChatTTS:开源语音合成项目
  25. sqlite性能考量及使用(附可视化操作软件)
  26. 拓扑数据的关键点识别算法
  27. python脚本将视频抽帧为图像数据集
  28. 图文RAG组件:360LayoutAnalysis中文论文及研报图像分析
  29. Ubuntu服务器的GitLab部署
  30. 无痛接入图像生成风格迁移能力:GAN生成对抗网络
  31. 一文理清OCR的前世今生

文章目录

  • AI应用开发相关目录
  • 简介
  • 技术架构
  • 技术变迁
    • 阶段1:基于图像处理和统计机器学习的OCR
      • 该阶段下,OCR特点:
    • 阶段2:基于深度学习的OCR
      • 阶段2下的OCR特点:
    • 阶段3:基于多模态大模型的OCR


简介

什么是OCR?

计算机文字识别,光学字符识别,英文全称Optical Charater Recognition,简称OCR.

是利用光学技术和计算机技术把印刷在或者写在图纸上的文字以文本形式提取出来,并转换成一种计算机能够接受、人又可以理解的格式的技术。OCR技术是实现文字快速录入的一项关键技术。在信息社会时代,每天会产生大量的票据、表单、证件数据,这些数据要电子化,需要利用OCR技术进行提取录入。

简而言之,OCR其本质是一种信息提取手段,也是一种工作提效方法。

技术架构

在这里插入图片描述
图像预处理:这一步骤主要是对输入的图像进行优化,以便更好地进行文字检测和识别。预处理可能包括以下步骤:
二值化:将图像转换为黑白两种颜色,便于后续处理。
降噪:去除图像中的噪声,如随机点、划痕等。
校正:对图像进行倾斜校正,使其文字行水平或垂直。
归一化:统一图像的尺寸和分辨率,便于后续算法处理。
文字检测:这一步骤是在预处理后的图像中定位文字区域。文字检测的方法有很多,包括:
基于连通区域的方法:通过分析图像中的连通区域来寻找文字。
基于特征的方法:利用文字的笔画、角点等特征进行检测。
基于深度学习的方法:使用卷积神经网络(CNN)等深度学习模型进行文字区域的检测。
文字识别:在检测到文字区域之后,需要对区域内的文字进行识别。文字识别的方法主要有两种:
基于规则的方法:通过分析文字的笔画结构和排列规则进行识别。
基于深度学习的方法:使用循环神经网络(RNN)、卷积神经网络(CNN)或结合这两种网络的模型进行文字识别。
后处理:在文字识别之后,可能需要进行一些后处理步骤来提高识别结果的准确性。后处理可能包括:
校对:利用语言模型和规则对识别结果进行校对和纠正。
格式化:将识别出的文本按照原文的格式进行排版。
结构化:提取文本中的关键信息,如标题、段落、表格等,并进行结构化处理。

技术变迁

OCR技术主要包括图像预处理、文字检测、文字识别以及后处理等几个关键环节。
而OCR技术的历史变迁,也集中于此,其中文字检测和文字识别两个环境变化最为明显。
在这里插入图片描述

阶段1:基于图像处理和统计机器学习的OCR

在这里插入图片描述
该阶段中,预处理手段包括:
图像低照度处理、图像倾斜校正、文字倾斜校正、文字扭曲校正等等内容,其解决方法包括图像二值化、最小面积矩形轮廓查询、霍夫线变换、比例缩放等技术。
在这里插入图片描述

文字检测则可以通过投影法实现分割实现。
在这里插入图片描述
文字识别则可通过图像匹配。

该阶段下,OCR特点:

1.文字提取时,面对不同的需求,需要专门设计不同的算法加以解决。

2.文字提取时,要完成需求,提取步骤较多,步骤间耦合性强,整体算法鲁棒性差。

3.文字提取时,其效果较差,精度低。

4.文字提取后,结果需进行大量后处理,如结果的拼接、格式化等。

5.算法具备高度可解释性。

阶段2:基于深度学习的OCR

其中预处理可通过GAN等生成对抗网络进行图像清晰度复原等工作。
在这里插入图片描述
在这里插入图片描述
文字检测和文字识别通用可以通过深度学习算法进行实现,不再依赖简单的图像学和统计算法。
其中最具代表性的是百度飞桨平台推出的OCR模型。
在这里插入图片描述
其模型功能涵盖了文字检测、方向检测、内容提取三项。
此外,飞桨针对具体场景,如数码管、表单、表格等数据更是研究了数码管专项识别、版面识别、文本超分等内容。

阶段2下的OCR特点:

1.文字提取时,采用深度学习技术完成文字检测和识别,依赖神经网络完成对图像特征的提取。

2.文字提取时,其效果较强,精度较高,具备一定的鲁棒性。

3.文字提取后,结果需进行大量后处理,如结果的拼接、格式化等。

4.算法具备高度一定的解释性。

阶段3:基于多模态大模型的OCR

该阶段内容我曾在往期博客中多次提到,本次进行总结。

https://blog.csdn.net/qq_43128256/article/details/139685113
https://blog.csdn.net/qq_43128256/article/details/138574623
https://blog.csdn.net/qq_43128256/article/details/138163078
https://blog.csdn.net/qq_43128256/article/details/138337768

传统OCR采用深度学习模型通过文字检测、方向检测、文字识别的步骤完成文字的抽取工作,在应用落地上的困难,从效果上存在一定缺陷,本案例如右图所示,以PaddleOCR开源模型为例,总结表述如下:
在这里插入图片描述

1.检测能力不足,如上图圆圈信息未能识别。
2.识别精度不足,如上图橙框内容,为误识内容。
3.冗余信息较多,如上图蓝框内容,50%无意义内容。
4.结果分布紊乱,如上图黑框内容,各参数无有效区分,且掺入了误识内容;此外结果整体与无意义内容错落分布,可用性较差。
5.智能化水平低,如上图绿框内容,传统模式无语义理解和逻辑推理能力,对于“广东电网”的广字无补全能力。

在这里插入图片描述
大模型OCR方案的主要创新点包括:
(1)灵活的OCR赋能分治方案:在不同资源场景下,采用不同的赋能方式。资源受限时,采用传统识别模式配合通用大语言模型能力实现信息的智能提取;否则,利用多模态大模型将信息识别、内容分析、格式整合等步骤一站式完成。
(2)多类型图像的Agent识别策略:LLM的引入Agent策略,可使模型面向不同类型图像时可自主决定使用不同的工具进行处理,这种端到端优化但有定制化优点的策略,可在拓充OCR泛用性的同时保持系统性能。
(3)复杂图像的鲁棒性识别:面对复杂的图像,传统OCR识别能力不足,识别错误率高,识别结果分布杂乱。LLM能够理解复杂的语言结构和图像语义,为LLM进行知识注入可有效提高OCR在复杂场景下的识别准确率。
(4)碎片化结果的格式化整合:传统OCR的识别结果往往是结果碎片化的,可用性低。LLM通过上下文理解和语义分析可改善OCR的后处理流程,提高文本的连贯性和可用性。
(5)多语言和多字体支持:LLM在多语言和多字体上的训练和应用,为OCR技术提供了更广泛的语言和字体支持,有助于实现更广泛的应用场景,具备更强的实用性。
(6)交互式OCR:LLM的生成能力可以用于提供交互式OCR结果,提高用户体验。

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

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

相关文章

队列(数据结构篇)

数据结构之队列 队列(queue) 概念: 队列也是一种线性表,使用队列时插入在一端进行而删除则在另一端进行,队列的基本操作是入队,它是在表的末端(也叫做队尾)插入一个元素,出队,它是删除在**表的开头(**队…

Springboot 项目启动时扫描所有枚举并存入缓存(redis)

为什么这么做? 为了springboot 注解属性转换字典方便一点(使用缓存的方式在Springboot 启动时获取字典数据) 在启动时会扫描com.vehicle.manager.core.enumerate包下的所有枚举(包括类中的内部枚举),并取出对应属性以json的方式存入redis 目录结构如下: RedisUtil可以在Red…

DLT645电表数据 转IEC104项目案例

案例说明 设置网关采集DLT645电表数据数据把采集的数据转成IEC104协议转发给其他系统。 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议。网关可以采集西门子,欧姆龙,三菱,AB PLC,DLT64…

南开大学漏洞报送证书【文尾有福利】

证书介绍 获取来源:edusrc(教育漏洞报告平台) url:教育漏洞报告平台(EDUSRC) 兑换价格:30金币​ 获取条件:南开大学任意中危或以上级别漏洞 证书规格:证书做了木框装裱,显得很高…

我工作中用Redis的10种场景

Redis作为一种优秀的基于key/value的缓存,有非常不错的性能和稳定性,无论是在工作中,还是面试中,都经常会出现。 今天这篇文章就跟大家一起聊聊,我在实际工作中使用Redis的10种场景,希望对你会有所帮助。 …

竞赛选题 python opencv 深度学习 指纹识别算法实现

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python opencv 深度学习 指纹识别算法实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:4分创新点:4分 该项目较为新颖…

springBoot高校宿舍交电费系统-计算机毕业设计源码031552

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作…

忘记 iPhone 密码:如果忘记密码,如何解锁 iPhone

为了提高个人数据的安全性,用户通常会为不同的帐户和设备创建不同的复杂密码。虽然较新的 iPhone 型号具有生物识别和面部解锁功能,但这些功能并不总是有效 - 如果您忘记了 iPhone 的密码,您可能会遇到麻烦。 iPhone 用户和 Android 用户一样…

MYSQL 四、mysql进阶 4(索引的数据结构)

一、为什么使用索引 以及 索引的优缺点 1.为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。Mysql中也是一样的道理,进行数…

办公人必备宝藏网站,提升工作效率!

对于每个办公人来说,如何在繁杂的工作中保持高效,是每位职场人士追求的目标。其中,高效的工具和资源可以极大地提升我们的工作效率。下面小编就来和大家分享一些办公人必备的宝藏网站,提升大家的工作效率。 1. 办公人导航 办公人…

反激开关电源变压器设计2

实际计算 已知 Vin:AC176-264V Vo:5V Io2A Vmax264V*根号2373V PoVo*Io10W η0.8 PinPo/η12.5W DCM变压器,在开关电源的整个输入电压范围内满载工作时都工作在断续模式 CCM变压器,在开关电源的整个输入电压范围内满载工作时都工…

小程序开发的技术难点

小程序开发是一项技术难度较高的工作,需要开发者具备多方面的知识和技能,小程序开发的技术难点主要体现在以下几个方面。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 多端兼容 小程序需要在微信、支付宝…

渗透测试基础(五) 获取WiFi密码

1. 前提条件 需要无线网卡,kali无法识别电脑自带的网卡。 2. 实验步骤: 2.1 查看网卡 命令:airmon-ng 2.2 启动网卡监听模式 命令airmon-ng start wlan0 检查下是否处于监听模型:ifconfig查看一下,如果网卡名加…

ARM64汇编0C - inlinehook

本文是ARM64汇编系列的完结篇,主要利用前面学过的知识做一个小实验 完整系列博客地址:https://www.lyldalek.top/article/arm 这里只讨论 ARM64 下的 inlinehook,做一个简单的demo,只是抛砖引玉,有兴趣了解更多细节的可…

WordPress主题 酱茄免费主题

酱茄free主题由酱茄开发的一款免费开源的WordPress主题,主题专为WordPress博客、资讯、自媒体网站而设计,遵循GPL V2.0开源协议发布。 运行环境 酱茄Free主题当前版本:2020.11.25 V1.0.0 支持WordPress版本:5.4 兼容Chrome、Fire…

word复制技巧二则

1 纵向复制 按下Alt键,按下鼠标左键拖动,选中要纵向复制的内容,如下图, 再粘贴即可; 2 整页复制 在页的任意位置单击,然后按CtrlA,这会选中整页;然后再复制粘贴即可;

更换域名流程记录

华为云的服务器,阿里云购买的域名。 1.购买域名 2.在域名服务商绑定服务器ip(以阿里云为例) 控制台->域名控制台->域名列表->点击域名->域名解析->添加记录 记录类型填A , 主机记录“”或“www”,记录值填服务器i…

最新暑假带刷规划:50天吃透660+880!

现在只刷一本题集根本不够 去做做24年的考研真题卷就什么都明白了,24年的卷子就是典型的知识点多,杂,计算量大。 而现在市面上的任何一本题集,都无法做到包含所有的知识点,毕竟版面有限! 所以&#xff0…

iptables(3)规则管理

简介 上一篇文章中,我们已经介绍了怎样使用iptables命令查看规则,那么这篇文章我们就来介绍一下,怎样管理规则,即对iptables进行”增、删、改”操作。 注意:在进行iptables实验时,请务必在个人的测试机上进行,不要再有任何业务的机器上进行测试。 在进行测试前,为保障…

【JavaEE精炼宝库】多线程(7)定时器

目录 一、定时器的概念 二、标准库中的定时器 三、自己实现一个定时器 3.1 MyTimerTask 实现: 3.2 MyTimer 实现: 一、定时器的概念 定时器也是软件开发中的⼀个重要组件。类似于一个 "闹钟"。达到一个设定的时间之后,就执行…