OCR文字识别
Posted 无乎648
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OCR文字识别相关的知识,希望对你有一定的参考价值。
CTPN算法
- 文本通常都是从左往右写的(水平),并且字之间的宽度都大致相同
- 固定宽度,来检测文本高度即可,但是如何应对变长序列呢?
- 本质上还是RPN方法(可参考faster-rcnn),可将检测到的框拼在一起!
进行分块检测,每个块都是小长方形,宽度固定,但是高度不固定。
CTPN网络架构:
VGG提取特征,BLSTM融入上下文信息,基于RPN完成检测
加上LSTM可以对文字识别进行前后逻辑性判断,BLSTM进行双向检测
2k scores是背景得分值,每一个点有十个框,
2k vertical coordinates 框的y值和偏移量
k side-refinement 边界的偏移值
CTPN网络架构:
VGG特征提取模块:
经过了4次池化操作,特征图中一个像素对应原始输入的16(4次池化)个像素
CTPN网络:
Anchor大小选择,宽度固定,长度选了10个
CTPN网络架构:
- 输出结果包括了三部分: 2K得分, 2K回归, 1K边界调整
- 边界调整能使得文本检测框效果更好,下列是调整后的结果:
CTPN网络:
- 检测到每-个小块文本区域还需拼接成完整的文本区域:
- 规则, 分前向和后向两部分:
先前向走,对于Xi,基于重合度(0.7) 与位置距离(50像素) 找到score值
最大的的Xj,接下来再返向走(规则不变),比较两次得分值大小来判断序列。
如果score; >= scorek 则这是一个长序列,反之则该序列被更长的序列所包含。
CRNN算法:
- 一张图解释了网络架构:
- 首先CNN进行特征提取,接下来RNN进行序列特征提取,最后得出预测结果即可。
以上是关于OCR文字识别的主要内容,如果未能解决你的问题,请参考以下文章