最近参加了百度Paddle的动手学OCR课程,特此做一个学习总结。

1. 简介

OCR(Optical Character Recognition,光学字符识别)是计算机视觉重要方向,传统的OCR一般面向扫描文档类对象,现在的OCR是指场景文字识别(Scene Text Recogntion,STR)主要面向自然场景。

2. 前沿算法

2.1 文本检测

文本检测是定位出输入图像中的文字区域。可以将文本检测作为目标检测中的一个特定场景,基于通用目标检测算法进行改进适配,如TextBoxes基于SSD算法,CTPN是基于Faster RCNN算法。同时,由于文件检测任务在文本的特殊性,衍生了许多专用的算法,例如,EAST、PSENet,DBNet等。

目前较为流行的文本检测算法可以大致分为基于回归基于分割的两大类文本检测算法,也有一些算法将二者相结合。基于回归的算法借鉴通用物体检测算法,通过设定anchor回归检测框,或者直接做像素回归,这类方法对规则形状文本检测效果较好,但是对不规则形状的文本检测效果会相对差一些,比如CTPN对水平文本的检测效果较好,但对倾斜、弯曲文本的检测效果较差,SegLink对长文本比较好,但对分布稀疏的文本效果较差;基于分割的算法引入了Mask-RCNN,这类算法在各种场景、对各种形状文本的检测效果都可以达到一个更高的水平,但缺点就是后处理一般会比较复杂,因此常常存在速度问题,并且无法解决重叠文本的检测问题

2.2 文本识别

文本识别是识别出图像中的文字内容,一般输入是来自文本检测得到的文本框截出的图像文字区域。文本识别一般可以根据识别文本形状分为规则文本识别不规则文本识别。规则文本主要指印刷字体、扫描文本等,文本大致处在水平线位置;不规则文本往往不在水平位置,存在弯曲、遮挡、模糊等问题。不规则文本场景具有很大的挑战性,也是目前文本识别领域的主要研究方向。

  • (1960s-2015):过分割+单字识别

连通域分析 ,寻找潜在的文字切分位置---->切分片段组合+集束搜索

  • (2016-2021)文本行识别时代

单个模型识别整个文本行--->基于CTC解码/分割/注意力额编码-解码结构/并行注意力解码(四种方法)

规则文本识别的算法根据解码方式的不同可以大致分为基于CTC和Sequence2Sequence两种,将网络学习到的序列特征 转化为 最终的识别结果 的处理方式不同。基于CTC的算法以经典的CRNN为代表。

不规则文本的识别算法相比更为丰富,如STAR-Net等方法通过加入TPS等矫正模块,将不规则文本矫正为规则的矩形后再进行识别;RARE等基于Attention的方法增强了对序列之间各部分相关性的关注;基于分割的方法将文本行的各字符作为独立个体,相比与对整个文本行做矫正后识别,识别分割出的单个字符更加容易;此外,随着近年来Transfomer的快速发展和在各类任务中的有效性验证,也出现了一批基于Transformer的文本识别算法,这类方法利用transformer结构解决CNN在长依赖建模上的局限性问题,也取得了不错的效果。

2.3 文档结构化识别

有一些应用场景是获取结构化信息,例如身份证、发票的信息抽取,表格的结构化识别等,可以采用OCR结果+后处理的方案。常用场景有

  • 版面分析

版面分析(Layout Analysis)主要是对文档图像进行内容分类,类别一般可分为纯文本、标题、表格、图片等。

  • 表格识别

表格识别(Table Recognition)的任务就是将文档里的表格信息进行识别和转换到excel文件中。

  • 关键信息抽取

关键信息提取(Key Information Extraction,KIE)是Document VQA中的一个重要任务,主要从图像中提取所需要的关键信息,如从身份证中提取出姓名和公民身份号码信息,这类信息的种类往往在特定任务下是固定的,但是在不同任务间是不同的。

关键信息提取通常分为两个子任务进行研究:

  • SER: 语义实体识别 (Semantic Entity Recognition),对每一个检测到的文本进行分类,如将其分为姓名,身份证。如下图中的黑色框和红色框。
  • RE: 关系抽取 (Relation Extraction),对每一个检测到的文本进行分类,如将其分为问题和的答案。然后对每一个问题找到对应的答案。如下图中的红色框和黑色框分别代表问题和答案,黄色线代表问题和答案之间的对应关系。

3. 细节

3.1. 语种和标注

英文:识别单个字符,共有36个字符

中文:识别单个汉字,有6623个常用汉字

单词校正字典:将识别的结果进行遍历,未在字典中发现,则返回较相近的结果。

3.2. 常见数据集

(1)合成数据集:Synth90k & Synth Text

(2)自然场景数据集:水平文本

(3)自然场景数据集:不规则文本

 4. 面临的挑战

  • 算法层:

  • 应用层

5. 结论

该章节只是初步了解OCR的常见任务、数据集和面临的问题,具体细节在后续博客中更新

OCR系列——总体概述相关推荐

  1. 软件浪涌测试原理与功能,EMC测试总体概述及浪涌测试原理与浪涌防护元器件使用...

    <EMC测试总体概述及浪涌测试原理与浪涌防护元器件使用>由会员分享,可在线阅读,更多相关<EMC测试总体概述及浪涌测试原理与浪涌防护元器件使用(31页珍藏版)>请在人人文库网上 ...

  2. 软件浪涌测试原理与功能,EMC测试总体概述及浪涌测试原理与浪涌防护元器件使用分析.ppt...

    EMC测试总体概述及浪涌测试原理与浪涌防护元器件使用分析 EMC测试概述 EMC测试包含EMI与EMS两部分 EMC测试概述 RE&RS测试简介 EMC测试概述 CE测试简介 EMC测试概述 ...

  3. 基于深度学习的脑电图识别 综述(一)总体概述

    作者|Memory逆光 本文由作者授权分享 本文主要介绍了深度学习在EEG分析上的应用<Deep learning-based electroencephalography analysis: ...

  4. 【大模型】—AI大模型总体概述

    大模型--AI大模型总体概述 随着人工智能技术的迅猛发展,AI大模型一直被视为推动人工智能领域提升的关键因素,大模型已成为了引领技术浪潮研究和应用方向.大模型是指具有庞大规模和复杂结构的人工智能模型, ...

  5. 05_ClickHouse、MergeTree系列引擎概述与存储结构、建表模板、建表语句、MergeTree设置、建表示例、数据存储、数据片段(data part)

    2.MergeTree系列引擎概述与存储结构 2.1.建表模板 2.2.建表语句 2.3.MergeTree设置 2.4.建表示例 2.5.数据存储 2.6.数据片段(data part) 2.Mer ...

  6. 阵列信号DOA估计系列(一).概述

    阵列信号DOA估计系列 之 概述 1.从相位差说起 2.空间相位差的来源 3.从"空间相位差"到"DOA估计" 3.1 时域 3.2 空域 3.3 DOA估计 ...

  7. OpenGL ES 2.0 总体概述

    文章目录 OpenGL ES 2.0 总体概述 1. OpenGL ES 的两个小伙伴 1.1 EGL 1.2 GLSL 2. 屏幕图片的本质和产生过程 3. OpenGL ES pipeline 3 ...

  8. 美国兰德公司《未来战争2030》(The Future of Warfare in 2030)系列研究报告概述(下)

    2020年5月11日,美国兰德公司官网发布<未来战争2030>(The Future of Warfare in 2030)系列研究报告. 该系列研究报告包括7份研究报告:分别为一份总报告 ...

  9. 我的 WinClock 项目系列之一 (概述)

    源起:     三年前,当我还是一个学生的时候,同学在用一个类似雪狐迷你钟     的小软件,具体叫什么现在忘记了,当时这个软件是收费的,不     过他用的是破解版,呵呵,主要功能包括:       ...

最新文章

  1. R构建KNN多分类模型
  2. 欠拟合的原因以及解决办法(深度学习)
  3. 滴滴自动驾驶获得江苏省苏州公安局颁发的路测牌照
  4. 前端自动化构建工具Grunt
  5. c++17(30)-文件读写(1)
  6. harmonyos con,鸿蒙HarmonyOS系统中的JS开发框架
  7. hadoop伪分布式搭建 java_hadoop2.2.0伪分布式搭建
  8. Qt值得学习吗?详解Qt的几种开发方式
  9. 红外探头_问题3: 关于在线近红外光谱仪的探头
  10. 大神干货:算法高手郭大顶级经验分享助你轻松通过初赛!
  11. resnet50代码_十余行代码完成迁移学习,百度PaddleHub实战解读
  12. 【optimization、pypi-packages、Github、GitCode、pip】optimtool介绍文档
  13. Exchange 2010 用户邮箱使用空间统计
  14. 【HCIE-RS 天梯路】MSDP
  15. C语言:寻找重复数字
  16. 请尝试将 `lib` 编译器选项更改为 es2015 或更高版本
  17. 经典梯度下降、随机梯度下降、批量梯度下降是个啥?
  18. 【Python】Python实验:回文是一个正向和逆向都相同的整数,如123454321、463364、9889。编写函数判断一个整数是否是回文数。
  19. 数据分析中,文本分析远比数值型分析重要!(上)
  20. win10 蓝牙无法删除 完美解决方案

热门文章

  1. [WorldWind学习]5.相机对象
  2. HTML5学习笔记(一):初步印象
  3. Something about WinCE6.0 R3
  4. IT人员必看的几个网站 http://gzsean.blog.51cto.com
  5. Android应用开发—eventBus发布事件和事件处理的时序关系
  6. python神奇的小海龟_Python笔记_第一篇_面向过程_第一部分_8.画图工具(小海龟turtle)...
  7. 使用栈来完成一个表达式的结果
  8. 01Pandas_数据结构
  9. mac 编译android系统,mac 编译 Android 系统杂记
  10. oracle 备份导出,oracle 怎么备份或导入导出表