IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 入门深度学习OCR(Optical character recognition)开发 -> 正文阅读

[人工智能]入门深度学习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)icon-default.png?t=LA92https://github.com/PaddlePaddle/PaddleOCR
  2. MMOCR:???????GitHub - open-mmlab/mmocr: OpenMMLab Text Detection, Recognition and Understanding Toolboxicon-default.png?t=LA92http://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

后续:

本人菜鸟程序员一枚,致力于深度学习OCR方向,工作过程中得到过很多前辈的指导,内心充满感激,希望把工作中得到的经验与使用的方法带给想入门OCR方向的同学,能力有限,内容比较浅显,希望能够对想入门OCR技术开发的同学有一点点的帮助就很开心。后续也会把工作中使用的工程算法、调优细节、部署方案以及前沿方法实验与大家分享。

???

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-29 16:19:21  更:2021-11-29 16:22:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/11 2:46:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码