读书笔记之《深度实践OCR:基于深度学习的文字识别》(绪论)
偶然在网上发现《深度实践OCR:基于深度学习的文字识别》一书,也为了先学习一下OCR的前置知识,于是阅读该书并浅浅地将重点和个人理解记录下来。
绪论
OCR发展史
著名会议
以下会议均发布过OCR领域的高质量论文,可供阅读与参考。
OCR相关
- ICDAR(文档分析与识别国际会议):dblp
- DAS(文档分析系统国际研讨会):dblp
- DPR(文档识别与检索国际会议):dblp
- ICPR(模式识别国际会议):dblp
- ICFHR(手写识别国际前沿会议):dblp
通用类别的计算机视觉三大会议
人工智能会议
- AAAI(人工智能促进协会):dblp
发展阶段
- 传统OCR技术方法
- 基于深度学习的OCR技术方法(重点)
其他概念
- DAR(Document Analysis and Recognition):文档图像分析和识别
- STR(Sense Text Recognition):场景文字识别(重点)
传统与现代
传统OCR方法的一般流程
图像输入
图像预处理
- 二值化:彩色图像处理成只含背景信息,前景信息定义为黑色,背景信息定义为白色。
- 去噪
- 倾斜校正
版面分析
- 分段落、分行的过程
- 没有一个固定与统一的切割模型
字符切割
意思是切割成一个个单字。
字符识别
- 从模板匹配发展到特征提取
- 笔画的各种形态会增加特征提取的难度
版面恢复
- 识别后的文字有规律地排版
- 最好是跟原来一样的
后处理
- 校正
以前习惯手动提取特征后,在采用一般的机器学习方法来做识别,如SVM。
深度学习OCR方法
两大核心步骤
- 文本检测:主要用于定位文本的位置
- 文本识别:用于识别文本的具体内容
文字检测
传统方法
经典的方法:SWT、HOG、MSER
处理过程:
- 先对图像设置特征金字塔
- 滑动窗口扫描
- 手动提取特征阶段(经典方法)
- 滑动窗口提取分类
- 汇总文本区域
深度学习方法
书本第七页有一张非常详细的图,可供参考。方法主要分成以下几类:
- 基于候选框(Anchor)
- 基于语义分割(Segmentation)
- 混合两种方法(Hybrid)
- 其他
文字识别
常见框架
- CNN+RNN+CTC
- CNN+Seq2Seq+Attention
CNN作为编码器主要用于提取特征
针对弯曲文本的方法
- STN矫正
- TPS变换找控制点
另外,书本第九页生动展示了文字识别相关框架的结构图,以及文字识别针对不同类型文本现有的处理模型。
本书2-4章
第二章:图像预处理,介绍二值化、平滑去噪和倾斜检测等方法;
第三章:传统机器学习方法。介绍了传统的机器学习方法如SVM、k-NN算法在OCR领域的应用及其原理。
第四章:介绍深度学习基础知识。用简洁的话语介绍深度学习的知识,如神经元、卷积神经网络等。
由于重点要放在深度学习在OCR上的应用,因此这四个章节忽略不写。但需要注意的是,这些内容是OCR上非常重要的基础,也有深度学习不可缺少的知识体系。在深入探讨深度学习在OCR上的应用时,务必要对以上内容有一定的了解。
本书后续章节
后续章节介绍了数据处理和生成、文本检测和识别的通用算法以及在OCR领域中独特的处理方法、后处理和版面分析等内容。总体而言,本书介绍的知识比较全面,能先将每个知识点先以一个宏观的角度去叙述,让人对其有一个初步的了解之后,才介绍在OCR中一些独特的方法。因此,对初学者而言是比较友好的。
个人比较感兴趣的还是在端到端的OCR技术上,此处本书也有体现。感兴趣的读者可以自行购买阅读。