ocr小白入门CRNN
什么是CRNN
CRNN的整体框架图:
CRNN=CNN+RNN+CTC
1)CNN主要是为RNN提取特征;
2)RNN主要是将CNN输出的特征序列转换为输出;
3)CTC为翻译层,得到最终的预测结果,由于CTC适合不知道输入和输出是否对齐的情况使用的算法,所以CTC适合语音识别和手写字符识别的任务,具体内容也可参考[2];
具体内容,参考[1]中的内容已经介绍的很详细,然后这边重点对比一下pytorch中网络结构代码:
其中:CRNN的网络结构详细:
注意:1.Transcription为转录层,将每一帧的预测变为最终的标签序列
pytorch中的代码实现:
class CRNN(nn.Module):def __init__(self, imgH, nc, nclass, nh, n_rnn=2, leakyRelu=False):super(CRNN, self).__init__()#assert imgH % 16 == 0, 'imgH has to be a multiple of 16'ks = [3, 3, 3, 3, 3, 3, 2]ps = [1, 1, 1, 1, 1, 1, 0]ss = [1, 1, 1, 1, 1, 1, 1]nm = [64, 128, 256, 256, 512, 512, 512]cnn = nn.Sequential()def convRelu(i, batchNormalization=False):nIn = nc if i == 0 else nm[i - 1]nOut = nm[i]cnn.add_module('conv{0}'.format(i),nn.Conv2d(nIn, nOut, ks[i], ss[i], ps[i]))if batchNormalization:cnn.add_module('batchnorm{0}'.format(i), nn.BatchNorm2d(nOut))if leakyRelu:cnn.add_module('relu{0}'.format(i),nn.LeakyReLU(0.2, inplace=True))else:cnn.add_module('relu{0}'.format(i), nn.ReLU(True))convRelu(0)cnn.add_module('pooling{0}'.format(0), nn.MaxPool2d(2, 2)) # 64x16x64convRelu(1)cnn.add_module('pooling{0}'.format(1), nn.MaxPool2d(2, 2)) # 128x8x32convRelu(2, True)convRelu(3)cnn.add_module('pooling{0}'.format(2),nn.MaxPool2d((2, 2), (2, 1), (0, 1))) # 256x4x16convRelu(4, True)convRelu(5)cnn.add_module('pooling{0}'.format(3),nn.MaxPool2d((2, 2), (2, 1), (0, 1))) # 512x2x16convRelu(6, True) # 512x1x16self.cnn = cnnself.rnn = nn.Sequential(BidirectionalLSTM(512, nh, nh),BidirectionalLSTM(nh, nh, nclass))# print('')def forward(self, input):# conv featuresconv = self.cnn(input)b, c, h, w = conv.size()assert h == 1, "the height of conv must be 1"conv = conv.squeeze(2)conv = conv.permute(2, 0, 1) # [w, b, c]# rnn featuresoutput = self.rnn(conv)# output = self.rnn(conv)return output
注意:1.在卷积层后面都接入了激活relu层,在网络结构表中,并没有体现,详细可看下面的代码;
参考文献
参考[1]:CRNN算法详解
参考[2]:CTC算法详解
参考[3]:《Connectionist Temporal Classification》
参考[4]:中文文字检测与识别的评测方法
参考[5]:Sequence Modeling With CTC
其他:CTPN
好文链接:如何优雅的使用pytorch内置torch.nn.CTCLoss的方法
ocr小白入门CRNN相关推荐
- 自然场景OCR检测(YOLOv3+CRNN)
(自然场景OCR检测(YOLOv3+CRNN))(中文+英文模型) 前言 最近对于自然场景下的OCR比较有兴趣,所以总结了一些目前OCR现状,并且找了一个自然场景OCR的项目练练手.本人新手小白,若出 ...
- 【小白入门】超详细的OCRnet详解(含代码分析)
[小白入门]超详细的OCRnet详解(含代码分析) OCRnet 简介 网络结构 具体实现(含代码分析) 实验结果 本文仅梳理总结自己在学习过程中的一些理解和思路,不保证绝对正确,请酌情参考.如果各位 ...
- React Native小白入门学习路径——五
React Native小白入门学习路径--五 序 "哦天呐!" 这句话成了我在实验室的口头禅, 老师可能觉得我们都是大神吧,都还在看着基础就给布置了那么多任务:写一个RN的TDD ...
- python 快速排序_小白入门知识详解:Python实现快速排序的方法(含实例代码)...
前言: 今天为大家带来的内容是:小白入门知识详解:Python实现快速排序的方法(含实例代码)希望通过本文的内容能够对各位有所帮助,喜欢的话记得点赞转发收藏不迷路哦!!! 提示: 这篇文章主要介绍了P ...
- 7.1 pdo 宝塔面板php_小白入门基础傻瓜式操作PHP面板安装使用_Bt宝塔面板
小白入门基础傻瓜式操作PHP面板安装使用--Bt宝塔面板 从购买服务器到安装面板在到搭建网站(最基础的教程,以后会延伸到部署项目) 不用写代码谁都可以做到搭建自己的网站(PHP类)还有小程序,只要 ...
- 安装python步骤-小白入门:Python安装的10个步骤,极其细致!!
原标题:小白入门:Python安装的10个步骤,极其细致!! 你有没有发现,在自学的时候去群里问大神python怎么安装,基本都不会有人理你,因为他们认为你这问题就跟踩死一只蚂蚁一样简单,都不屑于回答 ...
- python爬虫入门实例-Python爬虫天气预报实例详解(小白入门)
本文研究的主要是Python爬虫天气预报的相关内容,具体介绍如下. 要求是把你所在城市过去一年的历史数据爬出来. 分析网站 我们可以看到,我们需要的天气数据都是放在图表上的,在切换月份的时候,发现只有 ...
- python魔力手册-小白入门宝典:Python快速入门魔力手册 PDF 超清版
给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于小白入门.python入门.Python手册方面的内容,本书是由魔力手册出版,格式为PDF,资源大小11.8 MB,魔力手册编写,目前豆 ...
- python编程入门与案例详解pdf-Python爬虫天气预报实例详解(小白入门)
本文研究的主要是Python爬虫天气预报的相关内容,具体介绍如下. 这次要爬的站点是这个:http://www.weather.com.cn/forecast/ 要求是把你所在城市过去一年的历史数据爬 ...
- python语言入门w-Python完全小白入门指南
前几天整理了Linux的入门材料Linux运维完全小白入门指南,趁着这热乎劲,又整理了一下自己学Python时候的资料,今天也一并分享出来. 还是之前的说过的,这里只适合初级或者未入门的小白,想看高阶 ...
最新文章
- 2017年诺贝尔生理学或医学奖揭晓
- 关于XML在与FLASH交互应用中的理解
- cubase怎么添加midi设备_Cubase教程丨20分钟快速上手Cubase(下)
- LDAP实现企业异构平台的统一认证
- bzoj 1657: [Usaco2006 Mar]Mooo 奶牛的歌声(单调栈)
- L2.三.Python注释
- 搜狐校园“情感分析×推荐排序“算法大赛 AutoX方案 转载poteman
- 商业银行会计学内容概述
- UG二次开发GRIP成品工具
- python查询12306余票_Python之12306余票查询
- Aviary 图片编辑
- Python员工信息作业
- C++ 数学与算法系列之认识格雷码
- python教育数据挖掘_Python 数据分析 与 数据挖掘 (介绍篇)
- 万家乐“天工系列”预热AWE2019 厨卫电器呈现新形态
- CH138 兔子和兔子 题解报告
- 2018年全国多校算法寒假训练营练习比赛(第二场)H-了断局
- 【技术贴】怎么 豆瓣网在线看书
- 对MySQL 8.0分区表探索总结
- 遇到问题--k8s--helm安装prometheus报错Error: failed to download “stable/prometheus-operator“
热门文章
- HTML 禁用Select下拉框的上下左右键盘按键默认事件
- ArcGIS符号库下载 | 制图规范、三调、1:1万地形图、土地利用总体规划图.....
- Sql面试50题 详解 持续更新
- 526个儿童游戏APP应用音效游戏声音集合音效素材 Kids Game Sound Effects
- 360浏览器html在哪儿,360浏览器打印页面设置在哪里
- centos 打包某个目录_Linux(CentOS)下目录档案管理以及档案文件系统打包压缩
- 计算机万维考试题,计算机培训 万维考试系统选择题题库(含参考答案).pdf
- IPv6笔记-地址结构与分类
- Unity 获取GPS经纬度
- 手机12306买卧铺下铺技巧_手机12306怎么买下铺