论文研读系列汇总:
1.AlexNet论文研读
2.VGG论文研读
3.GoogLeNet论文研读
4.Faster RCNN论文研读
5.ResNet 论文研读
6.SENet 论文研读
7.CTPN 论文研读
8.CRNN 论文研读
9.EAST 论文研读
文本检测领域,有一篇经典的论文,是旷世科技在2017年提出来的EAST模型,论文的全称为《EAST: An Efficient and Accurate Scene Text Detector》,论文的下载地址如下:
论文地址:https://arxiv.org/pdf/1704.03155.pdf
本文将对该方法进行具体介绍,为解释详细并通俗,这篇文章基本涵盖了网上能找到的大部分热门east讲解文章
EAST模型介绍
1.EAST模型结构
通过下图我们知道,一个文本检测有多个阶段,就以region proposals系的检测算法为例,他们通常包含候选框提取、候选框过滤、bouding box回归、候选框合并等阶段,EAST的作者认为,一个文本检测算法被拆分成多个阶段其实并没有太多好处,实现真正端到端的文本检测网络才是正确之举。所以EAST的pipeline相当优雅,只分为FCN生成文本行参数阶段和局部感知NMS阶段,网络的简洁是的检测的准确性和速度都有了进一步的提高。
2.全文贡献
- 提出了一个由两阶段组成的场景文本检测方法:FCN阶段和NMS阶段。FCN直接生成文本区域,不包括冗余和耗时的中间步骤。
- 该pipeline可灵活生成wordlevel或line level预测,其几何形状可为旋转框或矩形。
- 所提出的算法在准确性和速度上明显优于最先进的方法。
3. 模型原理
EAST的网络结构总共包含三个部分:feature extractor stem(特征提取分支), feature-merging branch(特征合并分支) 以及 output layer(输出层)。
-
在特征提取分支部分,主要由四层卷积层组成,可以是一些预训练好的卷积层,作者采用的是VGG16中pooling-2到pooling-5每一层得到的feature map。记每一层卷积层卷积后得到feature map为fi,如图1所示,从上到下。
-
在特征合并分支部分,其实作者借鉴了U-net的思想,只是U-net采用的是反卷积的操作,而这里采用的是反池化的操作,具体的计算大致如下,对于一个fi,首先经过一层反池化操作,得到与上一层卷积feature map同样大小的特征,然后将其与fi+1进行拼接,拼接后再依次进入一层和的卷积层,以减少拼接后通道数的增加,得到对应的,在特征合并分支的最后一层,是一层的卷积层,卷积后得到的feature map最终直接进入输出层。具体的计算公式如下:
其中,gi被称为合并基,hi是合并后得到feature map。之所以要引入特征合并分支,是因为在场景文字识别中,文字的大小非常极端,较大的文字需要神经网络高层的特征信息,而比较小的文字则需要神经网络浅层的特征信息,因此,只有将网络不同层次的特征进行融合才能满足这样的需求。
#代码实现该部分
for i in range(4):
print('Shape of f_{} {}'.format(i, f[i].shape))
g = [None, None, None, None]
h = [None, None, None, None]
num_outputs = [None, 128, 64, 32]
for i in range(4):
if i == 0:
h[i] = f[i] # 计算h
else:
c1_1 = slim.conv2d(tf.concat([g[i-1], f[i]], axis=-1), num_outputs[i], 1)
h[i] = slim.conv2d(c1_1, num_outputs[i], 3)
if i <= 2:
g[i] = unpool(h[i]) # 计算g
else:
g[i] = slim.conv2d(h[i], num_outputs[i], 3)
print('Shape of h_{} {}, g_{} {}'.format(i, h[i