CRNN文本识别模型

CRNN文本识别模型

描述

CRNN是一种简单高效的文本识别模型。相比与Attention类型的文本识别模型,其具有如下优缺点。
优点:

  1. 容易训练,模型容易收敛,且鲁棒性较高。
  2. 易于部署,模型结构简单,inference速度快且支持变长输入,适合文本长度变化较大的生产环境。

缺点:

  1. 识别准确率相对较低,在包含大量中文字符集情况下,会比RARE类型的Attention模型低不少,英文字符集的情况下会低更多。
  2. 对于艺术字等有较大形变的短文本,或自然场景下的变化较大的文本,CRNN识别准确率较低。

模型结构

CRNN模型是由图片特征提取层(CNN)、序列化建模层(BiLSTM)以及解码层(CTC)组成。模型结构如图所示:
Alt

CNN

图片在输入网络前会进行长度的补充与缩放用于组成固定形状的batch送入模型训练。一般选择的固定长度是由数据集决定的,包含95%左右数据的长度是比较合适的。选择过大的长度可能容易出现CTC loss 不稳定甚至无法训练的情况。所有图片的高度都是固定的,一般选择32。宽度大于batch宽度的可以直接resize,小于batch宽度的需要补0或1。

CNN结构用于提取图片特征。一般情况下选择resnet18就够用了,在特别复杂的情况下也可以选择更复杂的模型,如resnet50等。但是由于模型更加复杂,batchsize需要适当减少,模型收敛时间也会相对变长。

为了将图片特征提取变成高度为1的特征序列,resnet18需要做一些调整,使其高度方向的stride为32,宽度方向的stride为4。实验证明,在CNN模型最有使用kernel size为(2,2)的maxpooling有助于提升模型的鲁棒性。

RNN

RNN通常使用BiLSTM。尝试过BiGRU以及transformer,效果没有BiLSTM好。LSTM是一种时序模型,其结构如下。
Alt
LSTM包含三个门,第一个为遗忘门,其决定了cell state的保存比例。第二个门是输入门,该门将当前输入及上次输出组合后添加至cell state。最后一个门为输出门,将cell state与ht-1以及xt 结合后输出,作为ht

CTC

CTC用于对齐输出的文本,它分为前向与反向两个阶段。前向时只需要按照CTC解码的方式解码就行,反向时需要求CTC Loss。CTC Loss为给定输入x的情况下所有可能结果为l的路径的概率的和。
Alt
其中pi代表经过 B变化后等于l的路径
Alt

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值