发布时间:2023-06-02 09:00
OCR(Optical Character Recognition,光学字符识别)是计算机视觉最重要的方向之一。传统的OCR一般指面向文档的识别,现在一般指场景文字识别,主要面向自然场景。
我觉得OCR还可以算是CV和NLP的一个中间商,通过OCR技术将CV图像中的一些字符检测出来,再用NLP解析文字的含义。
OCR应用场景非常多:
OCR还可以作为多模态数据做一些更复杂的任务:
难点大概可以分为算法层和应用层两方面。
应用层:模型大小和模型性能如何平衡?精度和速度的平衡?
概念:将文字内容识别出来(就是认字,认出来这是什么字)
文本识别按识别文本的形状可以分为:规则文本识别和不规则文本识别两大类。
文本识别按最终识别结果的处理方式不同(解码方式的不同)可以分为:基于CTC和基于Attention两大类。
基于CTC:CRNN+CTC
主要创新:引入没有意义的空格字符。因为识别存在一个问题:时序特征的维度是固定的,但是最终要预测的图像特征是不固定的。所有引入空格字符,每一个时序特征都可以预测出一个字符,最后得到结果。
缺点:但是每个时序特征是单独解码的(Softmax),所以解码时并没有利用上下文信息,对不规则形状文本识别效果差。
基于Attention:Seq2Seq+attention
解码时利用了上下文信息,精度较高,但是过长或过短文本的识别效果较差。
其实还要一种分类:基于字符分割的方法。优点是可以解决弯曲文本和不规则文本,但是对字符的标注要求很高。
今年还有一种比较火的方法:基于transformer的方法。可以解决CNN在长依赖建模的局限性。
需求量很大,技术也比较难。
主要可分为版面分析、表格识别、关键信息提取三个技术方面。
PPOCR:中英文检测模型
基于深度学习的OCR技术导论(上)
基于深度学习的OCR技术导论(下)