ocr文字识别

什么是ocr

OCR英文全称是Optical Character Recognition,中文叫做光学字符识别。识别的文字分手写体识别和印刷体识别。印刷体识别难点:在印刷过程中字体很可能变得断裂或者墨水粘连,当然这些都可以通过一些图像处理的技术帮他尽可能的还原,进而提高识别率;手写体识别:连笔,字体各异,有时候人都很难识别。国内文字识别识别的内容就包括:汉字、英文字母、阿拉伯数字、常用标点符号。识别难度依次是数字、英文字母、汉字。根据文字方向又可以分为水平文字检测(四个自由度,类似物体检测)和倾斜文字检测(文字框是不规则四边形,八个自由度)。水平文字检测个人认为比较好的算法是2016 ECCV乔宇老师团队的CTPN,倾斜文字检测个人比较喜欢的方法是2017 CVPR的EAST和Seglink。

常见ocr流程

  1. 判断页面上的文本朝向,因为待识别的文档很可能带有倾斜或者污渍
  2. 进行图像预处理,做角度矫正和去噪。
  3. 然后对文档版面进行分析,对每一行进行分割,把每一行的文字切割下来
  4. 对每一行文本进行列分割,切割出每个字符
  5. 将该字符送入训练好的OCR识别模型进行字符识别,得到结果。
  6. 对其进行识别结果的矫正和优化,比如我们可以设计一个语法检测器,去检测字符的组合逻辑是否合理。例如,单词Because,识别模型把它识别为8ecause,那么就可以用语法检测器去纠正这种拼写错误,并用B代替8并完成识别矫正。OCR流程可以分为:
    版面分析->预处理->行列切割->字符切割->字符识别->后处理识别矫正
    从上面的流程图可以看出,要做字符识别并不是单纯一个OCR模块就能实现的(如果单纯的OCR模块,识别率相当低),都要各个模块的组合来保证较高的识别率。

ocr与目标检测

对于复杂场景的文字识别,首先要定位文字的位置,即文字检测。
文本检测可以看成特殊的目标检测,但它有别于通用目标检测.在通用目标检测中,每个目标都有定义好的边界框,检测出的bbox与当前目标的groundtruth重叠率大于0.5就表示该检测结果正确.文本检测中正确检出需要覆盖整个文本长度,且评判的标准不同于通用目标检测,所以通用的目标检测方法并不适用文本检测。

ocr工具

  1. 谷歌开源OCR引擎Tesseract:在阿拉伯数字和英文字母上的识别效果较好,但汉字识别较差。

RPN: Region Proposal Network

区域推荐网络

ctpn

CTPN是在ECCV 2016提出的一种文字检测算法。CTPN结合CNN与LSTM深度网络,能有效的检测出复杂场景的横向分布的文字。

ctpn的思想主要借鉴了faster rcnn的rpn思想,主要的不同点在于作者观测到RPN比较难预测出整个文本行的框,而将文本行分成一个一个的小框去预测,小框是固定宽度所以主要是预测高度,如果用的是VGG conv5的特征,那么高度就是16。

参考:
CTPN:https://blog.csdn.net/bestrivern/article/details/100889632
双向LSTM:https://blog.csdn.net/qq_36696494/article/details/89028956

RPN

非极大值抑制NMS

CTC

east:倾斜文本检测

特点:传统由若干模块组成,文字区域检测、文字区域筛选、文本区域的合成,而east思想来自UNet。普通boundingbox是矩形,而文字一般比较长,且文字有旋转,普通的boundingbox不够精确,east算法是旋转矩形+四边形。

优点:速度快、精度高
论文:《EAST: An Efficient and Accurate Scene Text Detector》

数据增强

为什么进行数据增强

真实业务场景中的数据量不足
提高文本行检测和识别的准确率

如何做数据增强

亮度处理:图片尽量贴合真实的场景(如手机拍出的照片有亮度的变化)
几何变换:旋转处理,随机裁剪,很快的扩充样本
模糊处理:减少图片中的噪声,降低细节层次(高斯模糊、均值模糊)

参考

ocr:https://www.zhihu.com/question/20191727

[5] YOLO: Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified, Real-Time Object Detection[J]. arXiv preprint arXiv:1506.02640, 2015.
faster-rcnn 之 RPN网络的结构解析:https://blog.csdn.net/sloanqin/article/details/51545125

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值