深度学习CTPN+CRNN模型实现图片内文字的定位与识别(OCR)

2017 年 11 月 25 日 数据挖掘入门与实战 要学习更多点这→

 向AI转型的程序员都关注了这个号👇👇👇


大数据挖掘DT数据分析  公众号: datadw


源码(PyTorch实现)github 地址

在公众号 datadw 里 回复 OCR   即可获取。


1:样本获取

**算法论文:**
      Synthetic Data for Text Localisation in Natural Images
      Github: https://github.com/ankush-me/SynthText
**词库:**     https://pan.baidu.com/s/10anmu  + 英文词汇 经过处理后得到大约500兆     6000万词组
**字体:**    ubntu系统下支持中文的字体,选了大概10种字体左右
**背景图片库:**   http://zeus.robots.ox.ac.uk/textspot/static/db/bg_img.tar.gz   大约有一万张分割好的图片
**算法大致过程:**   随机从背景图片库中选出一张图片,随机从词库中选出一些词组,与背景图片分割

的块进行匹配,选好字体,颜色,大小,变换等信息,将词组写入背景块中,

扣取背景块矩形框作为一个个样本。

**样本类似**

 
 
 

2:网络设计:

 
网络: 
1:input: 输入文字块,归一化到32*w 即height缩放到32,宽度按高度的比率缩 放,当然,也可以缩放到自己想要的宽度,如128(测试时统一缩放到[32,128],训练时为批次训练,缩放到[32,Wmax]) 
下面以32*128(w,h)分析 
2:conv3层时数据大小为256*8*32,两个pooling层宽高各除以4 
3:pooling2层时 步长为(2,1) dilation (1,1) 
所以此时输出为256*4*33 
4:bn层不改变输出的大小(就是做个归一化,加速训练收敛,个人理解),同样p3层时,w+1,所以pooling3层时,输出为512*2*34 
5:conv7层时,kernel 为2*2,stride(1,1) padding(0,0) 
Wnew = (2 + 2 * padW - kernel ) / strideW + 1 = 1 
Hnew = 33 
所以conv7层输出为512*1*33 
6: 后面跟两个双向Lstm,隐藏节点都是256 
Blstm1输出33*1*256 
Blstm2输出33*1*5530 5530 = 字符个数 + 非字符 = 5529 + 1 
最终的输出结果直观上可以想象成将128分为33份,每一份对应5530个类别的概率

3:实验结果

自动生成差不多150万个样本,测试集1500张左右,测试集全对率62%左右。因为硬件限制,所以样本较少,感觉样本数量应该要几千万甚至上亿,模型才会比较稳定。150万个样本训练也没收敛,还有2.5左右的cost.

4:CTPN+CRNN整合场景文字检测识别结果

没有进行版面分析,所以识别结果没有按顺序输出 
其中标点符号训练集较少,错得较多。整体识别率感觉还行,如果加大训练样本至几千万,上亿,模型应该会比较稳定,识别也会比较好 

http://blog.csdn.net/u013293750/article/details/73188934



人工智能大数据与深度学习

搜索添加微信公众号:weic2c

长按图片,识别二维码,点关注



大数据挖掘DT数据分析

搜索添加微信公众号:datadw


教你机器学习,教你数据挖掘

长按图片,识别二维码,点关注

登录查看更多
16

相关内容

OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。
【ICML2020-华为港科大】RNN和LSTM有长期记忆吗?
专知会员服务
73+阅读 · 2020年6月25日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
209+阅读 · 2020年4月26日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
76+阅读 · 2020年2月3日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
35+阅读 · 2019年12月15日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
你有哪些深度学习(rnn、cnn)调参的经验?
七月在线实验室
10+阅读 · 2019年3月27日
【OCR技术】大批量生成文字训练集
七月在线实验室
9+阅读 · 2019年3月11日
CNN与RNN中文文本分类-基于TensorFlow 实现
七月在线实验室
13+阅读 · 2018年10月30日
收藏!CNN与RNN对中文文本进行分类--基于TENSORFLOW实现
全球人工智能
12+阅读 · 2018年5月26日
Tensorflow:基于LSTM轻松生成各种古诗
数据挖掘入门与实战
4+阅读 · 2018年1月5日
OCR技术浅析
机器学习研究会
40+阅读 · 2017年12月8日
OCR开源库(文本区域定位和文本识别):github
数据挖掘入门与实战
28+阅读 · 2017年11月26日
tensorflow LSTM + CTC实现端到端OCR
数据挖掘入门与实战
8+阅读 · 2017年11月15日
推荐|caffe-orc主流ocr算法:CNN+BLSTM+CTC架构实现!
全球人工智能
19+阅读 · 2017年10月29日
A Sketch-Based System for Semantic Parsing
Arxiv
4+阅读 · 2019年9月12日
SlowFast Networks for Video Recognition
Arxiv
4+阅读 · 2019年4月18日
Arxiv
8+阅读 · 2019年3月28日
Arxiv
3+阅读 · 2018年10月25日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
Arxiv
21+阅读 · 2018年5月23日
VIP会员
相关资讯
你有哪些深度学习(rnn、cnn)调参的经验?
七月在线实验室
10+阅读 · 2019年3月27日
【OCR技术】大批量生成文字训练集
七月在线实验室
9+阅读 · 2019年3月11日
CNN与RNN中文文本分类-基于TensorFlow 实现
七月在线实验室
13+阅读 · 2018年10月30日
收藏!CNN与RNN对中文文本进行分类--基于TENSORFLOW实现
全球人工智能
12+阅读 · 2018年5月26日
Tensorflow:基于LSTM轻松生成各种古诗
数据挖掘入门与实战
4+阅读 · 2018年1月5日
OCR技术浅析
机器学习研究会
40+阅读 · 2017年12月8日
OCR开源库(文本区域定位和文本识别):github
数据挖掘入门与实战
28+阅读 · 2017年11月26日
tensorflow LSTM + CTC实现端到端OCR
数据挖掘入门与实战
8+阅读 · 2017年11月15日
推荐|caffe-orc主流ocr算法:CNN+BLSTM+CTC架构实现!
全球人工智能
19+阅读 · 2017年10月29日
相关论文
A Sketch-Based System for Semantic Parsing
Arxiv
4+阅读 · 2019年9月12日
SlowFast Networks for Video Recognition
Arxiv
4+阅读 · 2019年4月18日
Arxiv
8+阅读 · 2019年3月28日
Arxiv
3+阅读 · 2018年10月25日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
Arxiv
21+阅读 · 2018年5月23日
Top
微信扫码咨询专知VIP会员