说明:主要考虑深度学习的方法,传统的方法不在考虑范围之内。
1.文字识别步骤
1.1detection:找到有文字的区域(proposal)。
1.2classification:识别区域中的文字。
2.文字检测
文字检测主要有两条线,两步法和一步法。
2.1两步法:faster-rcnn.
2.2一步法:yolo。相比于两步法,一步法速度更快,但是accuracy有损失。
文字检测按照文字的角度分。
2.1水平文字检测:四个自由度,类似于物体检测。水平文字检测比较好的算法是2016ECCV乔宇老师团队的CTPN。
2.2倾斜文字检测:文本框是不规则的四边形,八个自由度。倾斜文字检测个人比较喜欢的方法是2017CVPR的EAST和Seglink。套路:检测文本框->用radon hough变换等方法进行文本矫正->通过投影直方图分割出单行的文本的图片->最后对单行OCR。
3.文字识别
只考虑了不需要对文字进行分割。
3.1定长的,各个字符之间看成是独立的:multi-digit number。
3.2不定长的:RNN/LSTM/GRU+CTC。白翔老师团队的CRNN写的比较清楚。
3.3不定长的attention-mechanism(CNN+RNN+Attention):分为hard attention(直接给出hard location,不能直接暴力pb)、soft attention(可以暴力pb)、gradient-base attention。
参考:https://www.zhihu.com/question/20191727