入门深度学习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

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

暂无评论

发表评论

相关推荐

如何使用Albumentations 对目标检测任务做增强

目录 1、导入所需的库 2、定义可视化函数显示图像上的边界框和类标签 3、获取图像和标注 4、使用RandomSizedBBoxSafeCrop保留原始图像中的所有边界框 5、定义增强管道 6、输入用于增强的图像和边框 7、其他不

实战深度学习目标检测:RCNN (1)

深度学习目标检测:RCNN 什么是目标检测?目标检测主要是明确从图中看到了什么物体?他们在什么位置。传统的目标检测方法一般分为三个阶段:首先在给定的图像上选择一些候选的区域&#xff0c

YOLOv3 YOLOv4 YOLOv5老鼠识别检测告警

前言 在食品安全众多环节中,后厨安全无疑是重中之重。俗话说“民以食为天,食以安为先”,食材新鲜程度如何、加工过程规不规范、厨具是否经过清洁消毒等问题,备受大家关注。 一、为什么需要AI检