入门深度学习OCR(Optical character recognition)开发

前言:

光学字符识别(OCR)指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。目前OCR主要落地应用场景包括:自然场景文本检测识别、文档类印刷体文本检测识别、手写体文本检测识别。自然场景应用例如汽车车牌、汽车VIN码、街景等文本检测识别,证件(身份证,户口本等)、银行卡、票据(发票,收据,小票等)文本检测识别等等;文档类印刷体文本检测识别应用例如学生试卷转录,合同、法律判决书、论文电子书文本检测识别等等;手写体文本检测识别应用例如手写快递单文本检测识别,手写签名文本检测识别,学生考试作答试卷文本检测识别等等。虽然不同场景不同任务技术实现略有差别,但是主要核心技术包含:文本检测,文本识别;相关技术包含:文本图像矫正,图像文本版面分析,文本识别结果矫正,关键信息抽取等

文本检测算法:

一:基于 Anchor Boxes 自上而下 + 自下而上 的检测方法:

  1. Faster-RCNN:基于通用物体检测实现文本检测。
  2. TextBoxes:基于SSD更改卷积核尺寸,特殊设置 anchor,解决单词级别文本检测。
  3. TextBoxes ++:解决单词级别,多方向文本检测。
  4. R2CNN:解决旋转文本检测。
  5. RRPN
  6. YOLO系列
  7. SegLink:解决任意长短,形状文本检测。
  8. CTPN:解决水平或竖直任意长短文本检测。

二:基于 Anchor Free 的分割方法:

  1. EAST/EAST++:解决任意形状文本检测。
  2. Pixel Link
  3. PSENet:解决相邻文本实例分割困难问题。
  4. PAN
  5. DBNet

总结:基于Anchor方法准确率较高,但是对于弯曲文本和畸变文本并不能够很好的处理,文本召回与Anchor预先设置的尺度息息相关。基于分割的方法能够克服弯曲和畸变,但是后处理相对麻烦,无法解决文本中包含文本的情况。目前通用OCR检测工程落地DBNet会应用更多。

文本识别算法:

  1. ​​​​​​​CRNN + CTC
  2. CRNN + ACE
  3. CRNN + attention
  4. CNN + Transformer
  5. Transformer

总结:目前通用OCR识别无特殊要求情况下,工程落地CTC会应用更多些。当识别文本序列位置敏感或者隐藏含有结构信息时,例如弯曲畸变文本识别或者数学公式识别,会应用attention(Seq2Seq)和Transformer更多一些。近一年由于vision transformer的热潮,也催生文本识别更多基于Transformer范式的出现,例如结合图像和文本信息的多模态识别方法;基于大规模自监督图像预训练等等。

工程部署:

在实际项目中,训练一般都会使用python语言基于pytorch、tensorflow等开发框架实验算法,而在应用中大多会使用C++进行模型推理,同时加速模型推理速度,降低模型占用资源,方便集成到项目系统之中,无论是服务器还是端侧设备。基于框架优化,CPU环境下会将模型转化成onnx格式,利用onnxruntime框架加速推理;GPU环境下将模型转化成trt格式,利用tensorrt框架加速推理,同时tensorrt支持模型量化,降低存储内存。基于模型优化,一般会选用小模型预训练,以大模型为教师网络蒸馏小模型,并以一定策略剪枝模型,加速推理速度。

常用资源:

一:论文学习资源

  1. 顶会:ICDAR、CVPR、ECCV、ICCV等
  2. Arxiv搜索引擎:http://www.arxiv-sanity.com/
  3. 论文速读CVer :CVer计算机视觉 - 知乎

二:工程学习资源

  1. PaddleOCR:GitHub - PaddlePaddle/PaddleOCR: Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)https://github.com/PaddlePaddle/PaddleOCR
  2. MMOCR:​​​​​​​GitHub - open-mmlab/mmocr: OpenMMLab Text Detection, Recognition and Understanding Toolboxhttp://github.com/open-mmlab/mmocr

三:部分常用公开数据集

  1. SVT(Street View Text)
  2. SVTP (Street View Text Perspective)
  3. IIIT5K
  4. ICDAR 2003 (IC03)
  5. ICDAR 2013 (IC13)
  6. ICDAR 2015 (IC15)
  7. CUTE80 (Curve Text)
  8. ICDAR2019-LSVT
  9. ICDAR2017-RCTW-17
  10. ICDAR2019-ArT

   

版权声明:本文为CSDN博主「epithet4」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/epithet4/article/details/121593426

epithet4

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐