OCR之CRNN论文笔记

4.CRNN原理介绍

本文主要是根据论文《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition》翻译总结而来。CRNN可以识别不同大小,不同长度的图片文字。论文还识别了乐谱,理论上该模型也可以有效的识别中文,不区分语言。

4.1.1.CRNN摘要

Convolutional Recurrent Neural Network (CRNN), 顾名思义,它是 CNN 和 RNN的结合体。最后又加了CTC。

4.1.2.CRNN模型结构

如下图所示,包括三层,从下到上分别是卷积层、RNN层、翻译层。卷积层提取图片特征。RNN层采用的是LSTM。在卷积层和RNN层中间创建了一个Map-to-Sequence层。翻译层包括两种,一种基于字典的,一种不基于字典的。翻译层把RNN特征转换成结果标签。模型结构如下图。

在这里插入图片描述

在这里插入图片描述
在第3、4层使用1*2的windows代替正方形的windows,这个微小的调整增加了特征的长度,因此产生更长的特征序列。
使用了batch normalization 技术。
CRNN的所有层使用权重共享连接,同时没有全连接层,所以参数较少,占用内存较小。

4.1.3.特征提取CNN

1.全连接层被去掉了。
2.所有图片需相同高度输入,该模型是100*32,来提升训练效率。
3.按1像素宽度的列读取图片特征。如下图,是一系列特征的拼接。
在这里插入图片描述

4.1.4.Transcription层,CTC

Transcription层是将lstm层的输出与label对应,采用的技术是CTC。
CTC,Connectionist Temporal Classification,用来解决输入序列和输出序列难以一一对应的问题。
对于一对输入输出(X,Y)来说,CTC的目标是将下式概率最大化
在这里插入图片描述
解释一下,对于RNN+CTC模型来说,RNN输出的就是Pt概率,t表示的是RNN里面的时间的概念。乘法表示一条路径的所有字符概率相乘,加法表示多条路径。因为上面说过CTC对齐输入输出是多对一的,例如he-l-lo-与hee-l-lo对应的都是“hello”,这就是输出的其中两条路径,要将所有的路径相加才是输出的条件概率.
基于字典的模式,其实是就是上面CTC的基础上,在获得结果时,又从字典查了一遍,来更加提高准确率,而没有字典的就只能取高概率的结果,少了从字典查这一步。

4.1.5.模型训练

模型输入(I,I),I代表输入的图片,I代表实际的文字结果。训练结果就是最小化下面的函数。
在这里插入图片描述
其中y是cnn和rnn输出的结果,上面的函数没有任何的人工处理,相当于是直接的对输入和输出进行计算,故是端到端的模型(end-to-end)。
使用的是随机梯度下降(SGD)进行训练的。
使用ADADELTA来自动调整学习率。

4.1.6.乐谱识别

因为训练样本较少,对模型的进行了修剪。删除了第4和第6层的卷积层,2层的双向LSTM变成了2层单向的LSTM.
该模型在乐谱识别上也取得了优秀的结果。

<think>嗯,用户询问的是OCR技术与CRNN模型之间的区别与联系。这个问题需要系统梳理概念层级和技术路线。用户提供的参考文献非常有价值。引用1和4明确指出CRNN属于OCR技术的一种具体实现方案,是2015年提出的端到端识别网络。引用3和5详细说明了CRNN的三层结构:CNN特征提取、RNN序列建模和CTC转录层。尤其注意到引用5提到CRNN在实际应用中的局限性,比如空格识别和连续相同字符的识别问题。需要明确概念层级:OCR是光学字符识别的总称,包括传统方法和深度学习方法;而CRNN是具体的技术方案,属于深度学习OCR的经典框架。它们的关系类似于“汽车”和“特斯拉Model3”的关系——前者是类别,后者是具体产品。技术特征对比要突出三点:从方法演进看,OCR技术经历了模板匹配、传统机器学习到深度学习三个阶段;CRNN的创新点在于用CTC解决不定长文本对齐问题;目前CRNN工业落地时面临的挑战也很关键,比如引用5提到的连字符问题。为了增强专业深度,考虑补充一个具体示例:传统OCR分割字符时需要精确的字符定位,而CRNN通过RNN学习序列依赖后,CTC能直接输出整行文本。这正好解释为什么CRNN能解决汉字间距不均的难题。最后想到可以延伸的关联问题:既然CRNN存在连续字符识别缺陷,那AttentionOCR是如何解决这个问题的?另外用户可能对CRNN的具体实现层数也有兴趣。这些问题可以引导用户深入了解技术细节。</think> OCR(光学字符识别)与 CRNN(卷积循环神经网络)本质上是**整体技术领域与具体实现模型**的关系。以下是系统对比: --- ### **核心区别** | 维度 | OCR 技术 | CRNN 模型 | |--------------|--------------------------------------|---------------------------------------------| | **技术层级** | 计算机视觉领域 *总称*,解决图像→文本转换问题 | 深度学习实现OCR的*具体算法结构* | | **技术范畴** | 包含传统方法(如模板匹配)和深度学习方法 | 仅指基于 **CNN+RNN+CTC** 的端到端文本识别架构 | | **实现方式** | 可拆分步骤(文字定位→分割→识别) | 端到端一体化识别(图像直接输出文本序列) | | **典型代表** | Tesseract(传统)、CRNN、Attention OCR | CRNNOCR技术的一种实现方案 | --- ### **技术细节关联性** 1. **CRNN的定位** CRNN是**实现OCR功能的深度神经网络模型**,首次提出于2015年论文[^4]。其网络结构包含: - **卷积层 (CNN)** :提取图像局部特征(如笔画纹理) *示例结构:VGG式堆叠卷积池化层* - **循环层 (RNN)** :建模序列依赖(如文字上下文关系) *通常采用双向LSTM:$h_t = \text{LSTM}(x_t, h_{t-1})$* - **转录层 (CTC)** :对齐特征序列与标签序列 *损失函数:$\mathcal{L} = -\ln \text{P}(y|x;\theta)$,其中$y$为标签* 2. **与其他OCR模型对比** | 模型 | 特征层 | 对齐方式 | 优势场景 | |---------------|---------------|---------------|--------------------| | **CRNN** | CNN + RNN | CTC | 常规印刷体、规则文字 | | **Attention OCR** | CNN + RNN | Attention机制 | 复杂背景、弯曲文本 | | 传统分割OCR | 手工特征 | 单字分类 | 清晰字符集(如车牌) | --- ### **工业应用局限性与优化** CRNN在以下场景存在挑战[^5]: 1. **空格识别不准** → 解决方案:在字符集标签中加入空格符 2. **连续相同字符合并**(如"aaa"→"a") → 优化:LSTM后接**重复字符感知层** 3. **噪声干扰敏感** → 对策:数据增强(加噪、模糊处理) > **技术演进趋势**:CRNN作为经典结构,已被集成进工业级OCR系统(如百度PaddleOCR[^5]),并通过**空间变换网络(STN) + 多尺度特征融合**优化弯曲文本识别。 --- ### **典型OCR系统架构示例** ```mermaid graph LR A[输入图像] --> B[文本检测模块] B -->|文字区域坐标| C[CRNN识别模型] C -->|特征序列| D[CTC解码层] D --> E[输出文本] ``` --- ### **延伸问题** 1. **为什么CTC能解决CRNN的序列对齐问题?其数学原理如何?** *(涉及条件概率$P(\pi|x)$的优化路径,其中$\pi$为对齐路径)* 2. **CRNN在识别手写体时有哪些关键改进方法?** *(可讨论对抗样本训练/笔画结构建模)* 3. **Attention机制相比CTC在OCR任务中的优势与代价是什么?** *(计算复杂度/弯曲文本适应性等对比)* 4. **如何量化评估CRNN的识别准确率?** *(CER字符错误率计算:$\frac{\text{编辑距离}}{\text{总字符数}}\times 100\%$)* > 注:所有技术细节均基于引用文献[^1][^3][^4][^5],模型实现参考开源项目[^2]。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI强仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值