CRNN骨干网络替换指南

CRNN骨干网络替换指南

CRNN自2015年发表至今,仍然是OCR领域霸榜的存在。但当时所用的骨干网络直接早已落后于现在的AUTOML搜索,比如:mobilenetv3,efficientnet。如何将这些新型网络应用于CRNN呢,掌握本博客介绍的原则,轻松替换你的CRNN骨干网络。


文章目录

  • CRNN骨干网络替换指南
  • 前言
  • 一、CRNN的骨干网络设计
  • 二、实战部分
    • 1. 基于mobilenetv3的CRNN
    • 2. 基于efficientnet的CRNN
  • 总结


前言

修改CRNN骨干网络前,需要具备一个常识,自Vgg网络开始,所有的特性提取网络都有以下两个步骤:

1、5次下采样。
2、flatten、pooling、linear等操作输出最终类别

拿经典的Resnet为例,输入尺寸224×224,经过5次下采样缩减为7×7(224/32)特征图 ,最后经过AdaptiveAvgPool2d、linear操作输出最终类别


一、CRNN的骨干网络设计

首先看CRNN的骨干网络设计:
CRNN骨干网络替换指南_第1张图片
如图所示,模型输入为32×320的图像,输出为1×81的特征图,其中高度部分一共下采样5次(5个红色框),宽度部分只在前两次进行下采样(2个绿色框)。

基于此设计准则,我们就可以愉快地修改我们自己的CRNN特征提取网络了,我们要做的就是将所选的骨干网络,
1、倒数后3次的stride由2改为(2,1)
2、删除采样后面的pooling、linear等操作

二、实战部分

1. 基于mobilenetv3的CRNN

mobilenetv3没有官网实现,高星实现: mobilenetv3为基础模型。
如下图红框部分所示,将倒数3个s 由2改为(2,1)
CRNN骨干网络替换指南_第2张图片

2. 基于efficientnet的CRNN

efficientnet没有官网实现,高星实现: efficientnet为基础模型
如下图红框部分所示,将倒数3个s 由s22改为s21
CRNN骨干网络替换指南_第3张图片

总结

到此就可以回答很多初入ocrer的高频问题:模型训练时,训练样本最大字符个数是多少?欢迎交流讨论~

你可能感兴趣的:(OCR,计算机视觉,python,深度学习,人工智能)