2018-03-14 文字检测与识别 未完待续
个人总结:
自然场景文字识别
文字检测:端到端的文本区域检测
(1)水平文字检测比较好的算法是2016 ECCV乔宇老师团队的CTPN
(2)倾斜文字检测比较好的方法是2017 CVPR的EAST和Seglink
1).CTPN:Detecting Text in Natural Image with Connectionist Text Proposal Network
https://arxiv.org/pdf/1609.03605.pdf
这篇文章是基于Faster R-CNN 修改的,基于文本检测的特点修改了RPN网络,并且添加了RNN层获取图像内容信息。
文章的出发点:
(1)文本检测和一般目标检测的不同——文本线是一个sequence(字符、字符的一部分、多字符组成的一个sequence),而不是一般目标检测中只有一个独立的目标。这既是优势,也是难点。优势体现在同一文本线上不同字符可以互相利用上下文,可以用sequence的方法比如RNN来表示。难点体现在要检测出一个完整的文本线,同一文本线上不同字符可能差异大,距离远,要作为一个整体检测出来难度比单个目标更大——因此,作者认为预测文本的竖直位置(文本bounding box的上下边界)比水平位置(文本bounding box的左右边界)更容易。
(2)Top-down(先检测文本区域,再找出文本线)的文本检测方法比传统的bottom-up的检测方法(先检测字符,再串成文本线)更好。自底向上的方法的缺点在于(这点在作者的另一篇文章中说的更清楚),总结起来就是没有考虑上下文,不够鲁棒,系统需要太多子模块,太复杂且误差逐步积累,性能受限。
(3)RNN和CNN的无缝结合可以提高检测精度。CNN用来提取深度特征,RNN用来序列的特征识别(2类),二者无缝结合,用在检测上性能更好。
文章的贡献:
第一个贡献:我们将文本区域检测问题转化为定位连续的多个小尺度的文本区域候选框。我们还设计了一个锚回归机制,这个机制就是我们同时对那些小尺度候选框进行定位和进行二分类判断(文本区域或者是非文本区域),这种机制使得文本区域检测更加准确了,这也有别于原先的RPN网络结构,RPN网络是对整个目标进行检测定位,因此很难对这种文本行区域进行准确定位。
第二个贡献:我们提出一个给网络增加循环网络层的机制,这个循环网络层将那些连续的文本候选框连接起来。这个连接使得我们的模型可以获得这个文本行的丰富文字信息,它使得我们的文本区域检测更加鲁棒和准确。
第三个贡献:无论是检测一系列的小尺度区域还是添加一个循环神经网络,这两个操作都很好的整合在网络中,使得网络依然可以端到端的训练,另外我们的方法可以无需增加额外的操作,就可以处理多尺度图像和多种语言的文字。
倾斜文字检测比较好的方法是2017 CVPR的EAST和Seglink
2).EAST: EAST An Efficient and Accurate Scene Text Detector
EAST 与CTPN架构类似。不过CTPN只支持水平方向,而EAST在论文中指出是可以支持多方向文本的定位的。
Seglink: Detecting Oriented Text in Natural Images by link Segments
改进版的SSD用来解决多方向的文字检测问题。作者白翔也是CRNN的作者
文字识别:基于裁剪后的图像上进行端到端的文字识别
(1):CNN+RNN+CTC
(2):CNN+RNN+Attention
1).CNN+RNN+CTC:CRNN
An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition
这篇文章主要是考虑到图像的文字序列信息,通过RNN提取文本的序列特征,最后采用CTC实现端到端的输出。
1) 端到端可训练(把CNN和RNN联合训练)
2) 任意长度的输入(图像宽度任意,单词长度任意)
3) 训练集无需有字符的标定
4) 带字典和不带字典的库(样本)都可以使用
5) 性能好,而且模型小(参数少)
最后通过CTC(CTC :Connectionist Temporal Classifier 一般译为联结主义时间分类器 ,适合于输入特征和输出标签之间对齐关系不确定的时间序列问题)实现端到端的字符区域定位。
2):CNN+RNN+Attention
Attention :https://www.zhihu.com/question/68482809/answer/264632289
2016-CVPR:Robust Scene Text Recognition with Automatic Rectification
如上图,包括 Spatial Transformer Network (STN ) 以及 Sequence Recognition Network (SRN ) 两个网络结构。STN 通过 Thin-Plate-Spline 变换,能够将透射变换或者弯曲的文本图片对齐到一个正规的、更易读的图片;SRN 能够直接将输入的文本图片识别为一个文本序列。这个系统是一个端到端的文本识别系统,在训练过程中也不需要额外标记字符串的关键点、字符位置等。同时,由于 STN 和 SRN 这两个网络的共同作用,该系统在自然场景的文本识别方面取得了 state-of-the-art 的结果,特别是对于那些有着各种形变的字符图片。
http://blog.csdn.net/peaceinmind/article/details/51387367
文字检测 与 文字识别 融合
目前比较火的方法:
文字检测和识别放到一个网络里
沈春华老师团队2017 ICCV的
Towards End-to-end Text Spotting with Convolutional Recurrent Neural Networks
论文提出一种统一的网络结构模型,这种模型可以直接通过一次前向计算就可以同时实现对图像中文本定位和识别的任务。这种网络结构可以直接以end-to-end的方式训练,训练的时候只需要输入图像,图像中文本的bbox,以及文本对应的标签信息。
将检测和识别统一到一个模型里面,进行end-to-end训练的优点:
a.由于检测和识别是高度相关的,因此将检测和识别统一到一个模型里面,就使得图像的feature可以被共享利用。
b.检测和识别这两种任务可以是互补的,更好的检测结果可以提升识别的准确率,识别的信息也可以被用来精修检测的结果。
论文的主要贡献有三个:
a.end-to-end方式训练出来的模型可以学习到更丰富的图像特征,并且这种特征可以被两种不同任务所共享,可以有效的节省时间。
b.论文中提出了一种全新的region feature抽取方法。这种feature抽取方法可以很好的兼容文本bbox原始长宽比以及避免图像的扭曲,而且ROI pooling可以生成具有不同长度的feature maps。
c.提出了一种类似课程学习策略的方法用一种逐渐增加图像复杂性的数据集来训练模型。