什么是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相关推荐

  1. 自然场景OCR检测(YOLOv3+CRNN)

    (自然场景OCR检测(YOLOv3+CRNN))(中文+英文模型) 前言 最近对于自然场景下的OCR比较有兴趣,所以总结了一些目前OCR现状,并且找了一个自然场景OCR的项目练练手.本人新手小白,若出 ...

  2. 【小白入门】超详细的OCRnet详解(含代码分析)

    [小白入门]超详细的OCRnet详解(含代码分析) OCRnet 简介 网络结构 具体实现(含代码分析) 实验结果 本文仅梳理总结自己在学习过程中的一些理解和思路,不保证绝对正确,请酌情参考.如果各位 ...

  3. React Native小白入门学习路径——五

    React Native小白入门学习路径--五 序 "哦天呐!" 这句话成了我在实验室的口头禅, 老师可能觉得我们都是大神吧,都还在看着基础就给布置了那么多任务:写一个RN的TDD ...

  4. python 快速排序_小白入门知识详解:Python实现快速排序的方法(含实例代码)...

    前言: 今天为大家带来的内容是:小白入门知识详解:Python实现快速排序的方法(含实例代码)希望通过本文的内容能够对各位有所帮助,喜欢的话记得点赞转发收藏不迷路哦!!! 提示: 这篇文章主要介绍了P ...

  5. 7.1 pdo 宝塔面板php_小白入门基础傻瓜式操作PHP面板安装使用_Bt宝塔面板

    ​ 小白入门基础傻瓜式操作PHP面板安装使用--Bt宝塔面板 从购买服务器到安装面板在到搭建网站(最基础的教程,以后会延伸到部署项目) 不用写代码谁都可以做到搭建自己的网站(PHP类)还有小程序,只要 ...

  6. 安装python步骤-小白入门:Python安装的10个步骤,极其细致!!

    原标题:小白入门:Python安装的10个步骤,极其细致!! 你有没有发现,在自学的时候去群里问大神python怎么安装,基本都不会有人理你,因为他们认为你这问题就跟踩死一只蚂蚁一样简单,都不屑于回答 ...

  7. python爬虫入门实例-Python爬虫天气预报实例详解(小白入门)

    本文研究的主要是Python爬虫天气预报的相关内容,具体介绍如下. 要求是把你所在城市过去一年的历史数据爬出来. 分析网站 我们可以看到,我们需要的天气数据都是放在图表上的,在切换月份的时候,发现只有 ...

  8. python魔力手册-小白入门宝典:Python快速入门魔力手册 PDF 超清版

    给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于小白入门.python入门.Python手册方面的内容,本书是由魔力手册出版,格式为PDF,资源大小11.8 MB,魔力手册编写,目前豆 ...

  9. python编程入门与案例详解pdf-Python爬虫天气预报实例详解(小白入门)

    本文研究的主要是Python爬虫天气预报的相关内容,具体介绍如下. 这次要爬的站点是这个:http://www.weather.com.cn/forecast/ 要求是把你所在城市过去一年的历史数据爬 ...

  10. python语言入门w-Python完全小白入门指南

    前几天整理了Linux的入门材料Linux运维完全小白入门指南,趁着这热乎劲,又整理了一下自己学Python时候的资料,今天也一并分享出来. 还是之前的说过的,这里只适合初级或者未入门的小白,想看高阶 ...

最新文章

  1. 2017年诺贝尔生理学或医学奖揭晓
  2. 关于XML在与FLASH交互应用中的理解
  3. cubase怎么添加midi设备_Cubase教程丨20分钟快速上手Cubase(下)
  4. LDAP实现企业异构平台的统一认证
  5. bzoj 1657: [Usaco2006 Mar]Mooo 奶牛的歌声(单调栈)
  6. L2.三.Python注释
  7. 搜狐校园“情感分析×推荐排序“算法大赛 AutoX方案 转载poteman
  8. 商业银行会计学内容概述
  9. UG二次开发GRIP成品工具
  10. python查询12306余票_Python之12306余票查询
  11. Aviary 图片编辑
  12. Python员工信息作业
  13. C++ 数学与算法系列之认识格雷码
  14. python教育数据挖掘_Python 数据分析 与 数据挖掘 (介绍篇)
  15. 万家乐“天工系列”预热AWE2019 厨卫电器呈现新形态
  16. CH138 兔子和兔子 题解报告
  17. 2018年全国多校算法寒假训练营练习比赛(第二场)H-了断局
  18. 【技术贴】怎么 豆瓣网在线看书
  19. 对MySQL 8.0分区表探索总结
  20. 遇到问题--k8s--helm安装prometheus报错Error: failed to download “stable/prometheus-operator“

热门文章

  1. HTML 禁用Select下拉框的上下左右键盘按键默认事件
  2. ArcGIS符号库下载 | 制图规范、三调、1:1万地形图、土地利用总体规划图.....
  3. Sql面试50题 详解 持续更新
  4. 526个儿童游戏APP应用音效游戏声音集合音效素材 Kids Game Sound Effects
  5. 360浏览器html在哪儿,360浏览器打印页面设置在哪里
  6. centos 打包某个目录_Linux(CentOS)下目录档案管理以及档案文件系统打包压缩
  7. 计算机万维考试题,计算机培训 万维考试系统选择题题库(含参考答案).pdf
  8. IPv6笔记-地址结构与分类
  9. Unity 获取GPS经纬度
  10. 手机12306买卧铺下铺技巧_手机12306怎么买下铺