[关闭]
@w460461339 2018-10-12T17:04:40.000000Z 字数 2317 阅读 2561

通用OCR-文本检测:PixelLink,MaskTextSpotter,TextSnake

MachineLearning


PRML_Translation.pdf11991.3kB

药品识别-ctpn+crnn
身份证识别-heg+yolo+crnn
发票识别-sift+crnn

通用OCR-各种定位+crnn
风格迁移-GAN网络
人脸匹配-FaceNet

1.0 参考

https://zhuanlan.zhihu.com/p/38171172

1.1 原理

和EAST有点像,和其他一点都不像。

具体而言,就是不直接回归文本框,而是用实例分割的方式,找到像素级文字区域,然后通过这些区域得到文本框。

其实还是SSD+U-NET的想法。
image_1cocu3a1j1oei1hibem8a3t1qifp.png-471.2kB

2、MaskTextSpotter

2.1 参考

https://zhuanlan.zhihu.com/p/44491270

2.2 原理

image_1cod00mri12b5c4o1ncbg8o1ha21p.png-175.8kB

整个网络结构沿用了Mask RCNN,包括四个组件:

1).特征提取主干网络,采用的是ResNet+FPN;
2).候选区域生成RPN;
3).Fast RCNN回归边框;
4).mask分支,用于文本实例分割和字符分割;

相比原生的Mask-RCNN,MaskTextSpotter的创新点在于修改了mask分支的输出,使其包含全局文本实例分割和字符分割。

别人总结:

1、本文提出了端到端训练的Text-Spotting方法(MaskTextSpotter),该方法可以用于检测和识别任意形状的文本,包括水平文本、垂直文本、曲线文本.

2、MaskTextSpotter中文本检测模块采用的基于文本的实例分割(还有一些文本检测方法也是采用实例分割,如PixelLink、PSENet等),识别模块采用的是基于字符的识别方法.

3、在字符识别时,因为本文只提供了数字和英文字符的识别,并未实现中文的识别.但是在真实场景中,中文识别普遍存在,如果按照论文的方法,如果要想识别中文,需要修改mask分支的输出,如果没记错的话,常用的中文字就有5000个,那mask分支的最终输出为5038张特征图;而且在标注数据的时候,还需要生成对每个中文进行bbox标注,工程量还是挺大的.(这是个人想法,如果理解错误了,望提醒)

4、这篇文章主题的思路其实就是一个mask rcnn,增加了mask分支的输出

3、TextSnake

参考:
https://blog.csdn.net/qq_14845119/article/details/81671717 【更详细】
https://zhuanlan.zhihu.com/p/40864789

3.1 基本想法

image_1cpjiq69erapll7un121p7sc29.png-101.8kB

通过用一系列的圆形区域以及骨架线来描述各式各样的文本区域。

3.2 网络结构

image_1cpjj17jj7pnt9s1k2tn541nua43.png-66.5kB

3.3 打标是个大工程

image_1cpjjht5g8cu1ojm1oj02frah24g.png-17.3kB

image_1cpjjiaek1rrn1lne1tkio2b9gg4t.png-51.6kB

3.4 loss没有想象中的那么复杂。

image_1cpjjogbl10t91j0r10201kt61foa6q.png-41kB

两种loss:

1、TR和TCL区域的分类loss。
2、半径,cosθ,sinθ的回归loss。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注