OCR综述—持续更新
整个OCR就是:文本检测、文本识别是其中两个关键环节
- 目前OCR的应用场景主要分为以下三个方面:
-
1、自然场景下多形态文本检测与识别
2、手写体文本检测与识别
3、文档的文本检测与识别(版面分析等)
OCR目前的技术综述以及文献
一、文本检测
CTPN(基于Faster RCNN):目前比较成熟的文本检测框架,精确度较好。但是检测时间较长,有很大的优化空间。
【文献】Detecting Text in Natural Image with Connectionist Text Proposal NetworkTextBoxes、TextBoxes++(基于SSD):调整Anchor长宽比,适用于文字细长的特点,但针对小文本会有漏检。
【文献】TextBoxes: A Fast Text Detector with a Single Deep Neural Network
TextBoxes++: A Single-Shot Oriented Scene Text DetectorSegLink(CTPN+SSD):通常用于自然场景下,检测多角度文本。
【文献】Detecting Oriented Text in Natural Images by Linking SegmentsDMPNet:采用非矩形四边形选定Anchor进行检测,通过Monte-Carlo方法计算标注区域于矩形候选框和旋转候选框的重合度后重新计算顶点坐标,得到非矩形四边形的顶点坐标。适用于自然场景下文本检测。
【文献】Deep Matching Prior Network: Toward Tighter Multi-oriented Text DetectionYOLO:文本检测时间短,精确度较好。但针对小目标效果一般,容易造成大范围漏检。
【文献】YOLOv3: An Incremental ImprovementEAST:采取FCN思路,做特征提取和特征融合,局部感知NMS阶段完成检测。网络的简洁使得检测准确率和速度都有进一步提升。(针对自然场景下使用较多)
【文献】EAST: An Efficient and Accurate Scene Text DetectorPixel-Anchor:针对Anchor数量多引起文本出现的丢失问题、Pixel感受野不足引起长文本丢失情况,结合两者各自的优点,对于长行的中文检测场景有较好的适应性。网络结构可以分为两部分,其中pixel-based的方法为对EAST的改进,anchor-based的方法为对SSD的改进。前者主要为了检测中等的文本,后者主要为了检测长行和较小的文本。
【文献】Pixel-Anchor: A Fast Oriented Scene Text Detector with Combined NetworksIncepText:针对大尺度、长宽比及方向变化问题,借鉴GoogLeNet中的inception模块来解决这些问题。在inception结构中通过不同尺寸的卷积核设计达到检测不同大小和宽高比的文字,同时引入deformable卷积层操作和deformable PSROI pooling层提升任意方向文字的检测效果。
【文献】IncepText: A New Inception-Text Module with Deformable PSROI Pooling for Multi-Oriented Scene Text Detection
二、文本识别
文本识别模型需要具备哪些要素:
- 首先是要读取输入的图像,提取图像特征,因此,需要有个卷积层用于读取图像和提取特征。
- 由于文本序列是不定长的,因此在模型中需要引入RNN(循环神经网络),一般是使用双向LSTM来处理不定长序列预测的问题。
- 为了提升模型的适用性,最好不要要求对输入字符进行分割,直接可进行端到端的训练,这样可减少大量的分割标注工作,这时就要引入CTC模型(Connectionist temporal classification, 联接时间分类),来解决样本的分割对齐的问题。
- 最后根据一定的规则,对模型输出结果进行纠正处理,输出正确结果。
下面介绍以下识别模型
CNN+RNN+CTC(如CRNN):使用目前最为广泛的一种文本识别框架。需要自己构建字词库(包含常用字、各类字符等)。
【文献】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text RecognitionCNN(如Densenet)+CTC:资料不多,效果一般,泛化能力较差。没有加入了RNN的效果好。
【文献】暂未找到,可参考GitHubTesserocr(Tesseract):使用比较广泛的一种开源识别框架,支持多语言多平台。Tesseract在识别清晰的标准中文字体效果还行,稍微复杂的情况就很糟糕(多字体等),而且花费的时间也很多。
RARE:主要用于识别变形的文本图像效果好,用于自然场景下文本识别。
【文献】Robust Scene Text Recognition with Automatic RectificationFOTS(EAST+CRNN):端到端OCR模型,检测和识别任务共享卷积特征层,既节省了计算时间,也比两阶段训练方式学习到更多图像特征。引入了旋转感兴趣区域(RoIRotate), 可以从卷积特征图中产生出定向的文本区域,从而支持倾斜文本的识别。
【文献】FOTS: Fast Oriented Text Spotting with a Unified Network
OCR技术系列实践
自然场景文本检测技术综述(CTPN, SegLink, EAST)文本检测CTPN的代码实现
端到端不定长文字识别CRNN算法详解 端到端不定长文本识别CRNN代码实现
身份证识别
深度学习实践系列之–身份证上汉字及数字识别系统的实现
https://github.com/Raymondhhh90/idcardocr:web部署,第二代居民身份证信息识别,速度略慢,待优化
https://github.com/wzb19960208/idCardRecognition身份证识别
https://github.com/rmtheis/android-ocr基于Tesseract的身份证识别
https://github.com/developer79433/passport_mrz_detector_cpp护照识别
https://github.com/evilgix/Evil: 银行卡、身份证、门牌号光学识别
https://github.com/AstarLight/CPS-OCR-Engine:3755个(一级字库)的印刷体汉字识别
https://github.com/senlinuc/caffe_ocr:CNN+BLSTM+CTC的识别架构
https://github.com/simplezhli/Tesseract-OCR-Scanner:基于Tesseract-OCR实现自动扫描识别手机号
tensorflow 实现端到端的OCR:二代身份证号识别ocr_tensorflow_cnn
tensorflow LSTM+CTC实现端到端的不定长数字串识别
OCR_repo文本检测、文本识别(cnn+ctc、crnn+ctc)
车牌识别
CCPD: Chinese City Parking Dataset
https://github.com/lyl8213/Plate_Recognition-LPRnet:LPRNet: License Plate Recognition via Deep Neural Networks的tensorflow实现
https://github.com/liuruoze/EasyPR中文车牌识别系统
https://github.com/zeusees/HyperLPR基于深度学习的实时车牌识别项目
https://github.com/zhubenfu/License-Plate-Detect-Recognition-via-Deep-Neural-Networks-accuracy-up-to-99.9基于MTCNN的车牌识别
移动端部署
https://github.com/wangtaoT/AndroidOCR:基于Google Tesseract-OCR 文字识别 仿小猿搜题、作业帮
https://github.com/still-wait/IdCard_DeepLearning身份证识别移动端
文字检测
https://github.com/ploverpang/HeadlineDetectionBySWT基于SWT的文字检测
https://github.com/tianzhi0549/CTPNDetecting Text in Natural Image with Connectionist Text Proposal Network
https://github.com/eragonruan/text-detection-ctpnCTPN的tensorflow实现
https://github.com/MhLiao/TextBoxesA Fast Text Detector with a Single Deep Neural Network
https://github.com/yestinsong/Text-DetectionMser-Swt-Text-Detection-With-Verification
https://github.com/argman/EASTAn Efficient and Accurate Scene Text Detector
https://github.com/huoyijie/AdvancedEASTEAST的加速版
https://github.com/chenxinpeng/SSD_scene_text_detection
https://github.com/Belval/TextRecognitionDataGenerator:训练数据生成工具
https://github.com/JarveeLee/SynthText_Chinese_version汉字生成工具
https://github.com/szad670401/OCR_CharGen用于OCR训练的字符样本生成工具
https://github.com/johnhany/textRotCorrect:使用OpenCV实现的基于离散傅里叶变换的文本图像旋转校正
https://github.com/NVlabs/ocropus3pytorch
OCR综述—持续更新相关推荐
- 学习知识汇总(持续更新......)
章节 内容 常用 Colab使用教程 csdn博客编辑教程目录 新版CSDN编辑器示例(代码及显示样式) 如何快速转载CSDN中的博客 B站视频资料汇总 系统 windows10和安装linux双系统 ...
- 自然语言处理评测汇总(持续更新)
自然语言处理评测汇总(持续更新) 目录 自然语言处理评测汇总(持续更新) 一.评测相关会议 1. WSDM Cup 2021(3月份) 2. TAC相关评测(3月份) 3. CCKS 2021相关评测 ...
- 明翰全日制英国硕士学术写作V0.1(持续更新)
明翰全日制英国硕士学术写作V0.1(持续更新) 文章目录 传送门 PAP学术写作 `批判性思维` 定义解释 `Position` Reason Evidence Argument Rebuttal ` ...
- iOS精品资源汇总(持续更新)
文章目录 引言 I.iOS自定义视图相关热门资源 1.1 <用户协议及隐私政策>弹框 1.2 电子签名 1.3 商品详情页 1.4 上传图片视图的封装[支持删除和添加] 1.5 查看风险商 ...
- 小白学习三维检测和三维语义理解(3D-understanding)持续更新中。。
Uderstanding Understanding 三维 understanding 一.Learning only from point cloud (1)PointNet: Deep Learn ...
- 嵌入式相关开源项目、库、资料------持续更新中
学习初期最难找的就是找学习资料了,本贴精心汇总了一些嵌入式相关资源,包括但不限于编程语言.单片机.开源项目.物联网.操作系统.Linux.计算机等资源,并且在不断地更新中,致力于打造全网最全的嵌入式资 ...
- 《阅读与写作》专栏总目录(持续更新)
文章目录 引言 I.阅读方法论 II.写作方法论 III.实用文体写作 3.1 技术博客写作指南 IV 中文素养课 V 扩展(私密) see also 引言 欢迎大家来到#公众号:iOS逆向的< ...
- NLP论文笔记合集(持续更新)
NLP论文笔记合集(持续更新) 经典论文 参考文献 情感分析论文 关键词 综述 参考文献 非综述 参考文献 其他论文 参考文献 经典论文 2003年发表的文章1^11,NLP经典论文:NNLM 笔记 ...
- 自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新
自己在 git 上看到一个非常好的总结的东西,但是呢, fork 了几次,就是 fork 不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常 ...
最新文章
- 惊!!!CV界的BERT要来了?准确率提高近25%!
- java log4j mysql_java – 配置log4j属性文件以存储在mysql数据库中
- CIDR地址块及其子网划分
- html:(6):body标签和p标签
- 特设三场!!快来看看 NVIDIA DLI 深度学习入门课程有没来到你的城市~
- SparkStreaming之mapWithState
- linux 下ftp的上传与下载
- 消息队列技术终结者(三)—ActiveMQ的特性及优势
- linux安装番茄时钟,Tomato Pie番茄钟
- 怎么提高企业微信加人的通过率,让企业微信加更多客户?快速加人,引流拓客有什么技巧(企微运营干货)
- Android程序员英文介绍,安卓程序员面试英文自我介绍
- 嵌入式系统开发环境概述
- The second sprint
- Docker应用(一)Elasticsearch
- ORA-27300 ORA-27301 ORA-27302
- vue设置div块隐藏与显示(v-show)
- 企业无线架构——旁挂式组网
- 更改本地计算机用户名,Win10怎么修改本地账号的用户名
- 实现米思齐按键控制LED灯
- Windows API 程序设计入门