CRNN

news/2025/12/6 22:13:56/文章来源:https://www.cnblogs.com/Dongmy/p/19316706
CRNN(Convolutional Recurrent Neural Network)是一种用于图像序列识别的端到端可训练神经网络,特别擅长处理场景文本识别任务
 
。CRNN 的核心架构包括三个主要部分:卷积层(CNN)、循环层(RNN)和转录层(Transcription Layer),结合 CTC(Connectionist Temporal Classification)损失函数实现端到端训练
 
端到端(End-to-End)” 是深度学习和人工智能领域中的一个重要概念,指的是从输入数据直接映射到输出结果的模型或系统,无需人工干预或手动设计特征提取等中间步骤。换句话说,端到端模型能够自动学习从原始输入到最终输出的映射关系

CRNN 的端到端序列识别实现

1. 卷积层(CNN)

  • 功能:卷积层负责从输入图像中提取局部特征。通常使用经典的 CNN 结构(如 AlexNet、ResNet 等)来实现。
  • 输出:卷积层将二维图像特征图转换为一维特征序列,为后续的 RNN 处理做准备
     

2. 循环层(RNN)

  • 功能:循环层在卷积特征的基础上继续提取序列特征,捕捉字符间的上下文关系
     
    。通常使用双向 LSTM(Long Short-Term Memory)或 GRU(Gated Recurrent Unit)等循环神经网络结构。
  • 输出:循环层输出的是一系列标签的概率分布
     

3. 转录层(Transcription Layer)

  • 功能:转录层将循环层输出的标签分布通过去重整合等操作转换成最终的识别结果
     
    。使用 CTC 损失函数作为条件概率,允许模型在训练期间处理不定长的序列输出
     
  • 输出:最终的文本序列,可以直接用于识别任务
     

4. CTC 损失函数

  • 功能:CTC 损失函数允许模型在训练期间处理不定长的序列输出
     
    。它通过扩展标签集并引入空白符,将 RNN 输出的不定长序列映射到标签序列
     
  • 优势:CTC 损失函数使得整个网络可以端到端地训练,无需复杂的预处理或多步骤处理
     

CRNN 的优势

  • 端到端训练:CRNN 能够直接从输入图像到输出序列标签进行端到端的训练,无需复杂的预处理或多步骤处理
     
  • 任意长度序列处理:CRNN 可以处理任意长度的序列,不依赖于字符分割或水平尺度归一化
     
  • 高效性:CRNN 实现了从图像到字符序列的端到端识别,无需进行复杂的字符分割和定位
     
  • 准确性:通过结合 CNN 和 RNN 的优势,CRNN 能够有效捕捉图像中的局部特征和字符间的上下文关系,从而提升了识别的准确性
     
  • 广泛应用:CRNN 不仅在场景文本识别上表现出色,还能够应用于其他图像序列识别任务,如音乐符号识别等。

实现示例(PyTorch)

以下是一个基于 PyTorch 的 CRNN 模型实现示例:
Python
复制
import torch
import torch.nn as nnclass CRNN(nn.Module):def __init__(self, imgH, nc, nclass, nh):super(CRNN, self).__init__()assert imgH % 16 == 0, 'imgH must be a multiple of 16'# CNN部分 (简化版)self.cnn = nn.Sequential(nn.Conv2d(nc, 64, 3, 1, 1), nn.ReLU(), nn.MaxPool2d(2, 2),nn.Conv2d(64, 128, 3, 1, 1), nn.ReLU(), nn.MaxPool2d(2, 2),nn.Conv2d(128, 256, 3, 1, 1), nn.BatchNorm2d(256), nn.ReLU(),nn.Conv2d(256, 256, 3, 1, 1), nn.ReLU(), nn.MaxPool2d((2, 2), (2, 1), (0, 1)),)# RNN部分self.rnn = nn.Sequential(BidirectionalLSTM(256, nh, nh),BidirectionalLSTM(nh, nh, nclass))def forward(self, input):# CNN前向传播conv = self.cnn(input)b, c, h, w = conv.size()assert h == 1, "the height of conv must be 1"conv = conv.squeeze(2)  # [b, c, w]conv = conv.permute(2, 0, 1)  # [w, b, c]# RNN前向传播output = self.rnn(conv)return outputclass BidirectionalLSTM(nn.Module):def __init__(self, nIn, nHidden, nOut):super(BidirectionalLSTM, self).__init__()self.rnn = nn.LSTM(nIn, nHidden, bidirectional=True)self.embedding = nn.Linear(nHidden * 2, nOut)def forward(self, input):recurrent, _ = self.rnn(input)T, b, h = recurrent.size()t_rec = recurrent.view(T * b, h)output = self.embedding(t_rec)output = output.view(T, b, -1)return output
 

总结

CRNN 通过结合 CNN 和 RNN 的优势,实现了端到端的图像序列识别
 
。它通过卷积层提取局部特征,循环层建模序列依赖关系,结合 CTC 损失函数完成端到端训练
 
。CRNN 在多个标准基准数据集上展示了优越的识别性能,适用于场景文本识别、文档扫描、车牌识别等多种 OCR 场景

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/990590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S中Ingress的采用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

『NAS』在群晖部署一款好看的白板工具-Excalidraw

点赞 + 关注 + 收藏 = 学会了整理了一个NAS小专栏,有兴趣的工友可以关注一下 👉 《NAS邪修》Excalidraw 是一款免费开源的手绘风格在线白板工具,支持实时协作和无限画布,无需注册即可直接使用,适合快速绘制草图、…

方差的迭代计算公式 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Ubuntu下,MySQL密码遗失时修改密码

问题背景 MySQL密码连接不上,需要重置密码 解决方案 由于修改密码本身需要连接到数据库,因此需要另一个系统账号来登录数据库。 下面是相关步骤: 1. 首先执行以下命令 sudo cat /etc/mysql/debian.cnf 获取到系统账…

支离破碎发言(七)

退役了,曾经的目标变为幻想,当然我其实也知道大概率最后就是幻想。 回想过来这一年多的 OI 生涯,也没什么可埋怨的,毕竟自己实力确实没到省队水准。 不过一年多 OI 生涯给我的最大感触就是,贵圈真乱。 因为竞赛本…

MD-FPN

MD-FPN 是一种优化的特征金字塔网络结构,旨在提高多尺度目标检测的性能。它通过引入多尺度预测融合和注意力机制,增强了特征提取能力 MD-FPN(Multi-Dilation Feature Pyramid Network)可以与 Faster R-CNN 结合使用…

2025最新贵州特产/伴手礼供应商TOP5推荐!贵州/贵阳/遵义/毕节/黔东南特产选购平台/渠道/供应商/采购渠道榜单发布,甄选贵州地道风物好礼

随着消费者对地域特色产品和健康生活方式的追求日益提升,贵州特产凭借独特的自然禀赋与文化底蕴备受青睐。本榜单基于品牌实力、产品特色、服务体系、文化传承四大维度,结合市场口碑与消费者反馈,权威解析2025年五大…

进程监控:通过 SSH 远程监测嵌入式设备进程重启

背景 dhcp频繁请求ip导致cpr反复重启。 为了量化这一问题,并精准捕捉重启发生的时间点(以便与网络日志对齐),我们需要一个外部监控工具。该工具需要满足以下需求:非侵入式:无需修改设备固件,通过 SSH 远程监控。…

街头徒手健身3硬核核心训练

3 硬核核心训练 “我们并非只是这副躯壳,别过分执着于皮囊表象。”—— 乔治・哈里森 作为一名痴迷功能性健身的爱好者,我一直渴望近距离观察人体内部的运转机制。所以几年前,当我的一位客户送给我《人体世界》展览…

我们的休闲娱乐区,会变成什么样子(哽咽)

本文同步发布于洛谷休闲娱乐区 我们的休闲娱乐区,会变成什么样子(哽咽) 或许我们要先追问,最初的休闲娱乐区,是什么样子的呢? 灌水区倒闭之后,审查力度加大,休闲娱乐区最初只是一片净土。 然而,很快,伴随着小…

【ZeroRange WebRTC】对称加密 vs 非对称加密(从原理到实践) - 详解

【ZeroRange WebRTC】对称加密 vs 非对称加密(从原理到实践) - 详解2025-12-06 21:43 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto…

Cloudflare成功抵御AISURU僵尸网络发起的破纪录29.7 Tbps DDoS攻击

Cloudflare在2025年第三季度成功抵御了AISURU僵尸网络发起的一场峰值达29.7 Tbps的破纪录DDoS攻击。报告揭示了DDoS攻击在规模、复杂性和目标行业上的显著演变,并对当前威胁态势下的防御策略提出建议。Cloudflare成功…

2025最新贵州伴手礼厂家/采购渠道/供应商/平台/卖场/超市TOP5推荐!地道风物+文化赋能权威榜单发布,甄选贵礼传递黔地心意

随着文旅消费升级和健康生活理念深入人心,兼具地域特色与文化内涵的伴手礼成为连接游客与目的地的重要纽带。本榜单基于产品地道性、健康属性、文化融合度、服务覆盖力四大核心维度,结合行业协会数据与消费者口碑调研…

从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战 - Rainbow

从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战 @目录从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战升级背景升级目标与核心变化完整升级步骤第一阶段:准备工作(JDK 8 环境)…

2025.12.6日21:24-incapacity无能力

ai智能发布助手当前Windows 11已使用内存:MB是460 南京4℃ 霾Enjoy the beauty and joy of the moment; dont worry too much about the future. 享受当下的美好和快乐,不要过于担忧未来。今日热点如下挑战者杯,我的…

001.makdown快速入门

基础语法 1.标题:# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题// # 与 标题名 之间要加空格2.代码块://```cpp// ```//在两行```之间添加代码 //第一行```后的cpp表示代码使用的语…

Focal Loss

Focal Loss 是一种用于解决类别不平衡问题的损失函数,特别适用于目标检测任务。在目标检测中,背景类别通常远多于目标类别,这导致模型在训练过程中对背景类别过度拟合,而忽视了目标类别。Focal Loss 通过调整损失函…

2025最新贵州/贵阳手信/伴手礼厂家 TOP5 评测!地道风物+文化赋能权威榜单发布,甄选贵礼传递山水心意

随着文旅消费升级,兼具地域特色与文化内涵的手信成为游客出行必备。本榜单基于产品地道性、文化融合度、全渠道服务、品质保障四大维度,结合百万消费者真实反馈与行业专家评审,权威解析2025年五大贵州手信厂家综合实…

Oracel VirtualBox安装Windows11时无法找到ISO文件或不满足系统要求

如果在启动VirtualBox启动后,出现下面的情况 取消UEFI后,重新启动即可但取消UEFI又会导致下面的问题 这时按Shift+F10,输入 regedit 并按回车键启动注册表编辑器。在注册表编辑器左侧的树状结构中,导航到以下路径:…