【论文研读笔记---九】EAST文本检测

论文研读系列汇总:

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值