作者 | 第四范式
编辑 | 青 暮
在最近被ECCV2020接收的论文AutoSTR中,第四范式的研究人员提出了使用网络结构搜索(NAS)技术来自动化设计文本识别网络中的特征序列提取器,以提升文本识别任务的性能。
由于文本的多样性和场景的复杂性,场景文本识别(Scene Text Recognition,STR)具有很大的挑战性。通过对图像预处理模块(如校正和去模糊)或特征序列翻译模块的改进,提高文本识别网络的性能越来越受到各方关注。然而,另一个关键模块,即特征序列抽取器(骨干网络),还没有得到广泛的研究。
受神经架构搜索(NAS)的成功启发,第四范式提出了自动STR(AutoSTR)来搜索数据相关的主干网络,以提高文本识别性能。首先,该工作为STR设计了一个特定领域的搜索空间,既包含了操作上的选择,也包含了对下采样路径的约束。通过一个两步搜索算法将操作和下采样路径分离,以在给定的空间内进行有效的搜索。实验表明,通过搜索数据相关的主干网络,AutoSTR可以在标准基准测试中优于其他SOTA方法。
场景文本识别(STR)是以识别自然场景图像中的文本为目标,因其在身份认证、数字金融系统、车牌识别等领域的巨大商业价值而受到学术界和工业界的广泛关注。自然场景中的图像是多种多样的,由于在大小、字体、背景和布局上差异巨大,使得STR仍然是一个非常具有挑战性的问题。场景文本识别过程通常由校正模块、特征序列提取器、特征翻译模块等三个模块组成。校正模块目的是在识别前将不规则文本图像转换为规范形式;特征序列提取器则通过卷积层将输入的文本图像转换为特征序列;特征翻译模块用于将特征序列翻译成字符序列。
此前,许多方法通过提高矫正模块的性能,提高了文本识别的准确性。在特征翻译方面,受语音识别和机器翻译等其他seq-to-seq(序列到序列)任务的启发,基于CTC(Connectionist temporal classification)和Attention方法的翻译模块已进行了深入探索。相比之下,对于文本识别任务,特征序列抽取器的设计则相对较少。如何设计一个更好的特征序列抽取器在STR文献中还没有得到很好的讨论。然而,其对文本识别性能有很大影响。例如,只需将特征提取器从VggNet替换为ResNet,就可以获得显著的性能提升。此外,特征序列抽取器承担着沉重的计算和存储负担。因此,无论是有效性还是效率,特征序列抽取器的体系结构都应该引起业界的重视。此外,直接迁移其他任务下的网络结构对于STR任务来说可能是局部最优的。
近年来,神经网络架构搜索(NAS)在设计数据相关网络结构方面取得了巨大成功,其性能超过了人类专家在许多计算机视觉任务(例如图像分类、语义分割和对象检测中构建的体系结构)。因此,与其采用其他任务(例如图片分类和分割)中现成的特征抽取器,还不如重新设计数据相关的体系结构,以获得更好的文本识别性能。
本文介绍了在STR中搜索特征序列提取器(主干)的首要工作,即AutoSTR。首先,我们设计了一个特定领域的STR搜索空间,该空间包含每个卷积层的操作选择和特征下采样路径的约束。不同于现有的NAS算法,第四范式提出了一种新的两步搜索流水线,它将操作和下采样路径搜索分离,通过复杂度正则化优化识别损失,在模型复杂度和识别精度上进行了很好的权衡。实验表明,在给定一个通用的文本识别流水线的情况下,搜索序列特征抽取器能够以较少的算力和参数数量获得最新的结果。
作为一个不可或缺的通用模块,特征序列抽取器在当前大多数文本识别方法中起着至关重要的作用。该工作的目标是扩展NAS,为通用文本识别过程寻找更好的主干网络。该工作的主要贡献如下:
场景文本识别任务的输入是文本图像块,由于卷积神经网络(CNN)具有超强的自动提取视觉特征的能力,本文通过堆叠卷积层(Convolution layer)来搭建序列特征提取模块。一层卷积层可以被形式化定义为
,以下简称为
,其中
为输入特征矩阵,
为带有超参数
的卷积层。更具体来说,
定义了卷积层
的操作类型,可以为3X3的常规卷积操作、5X5的深度可分离卷积操作、3X3平均池化操作等等,
分别代表着在卷积滑动过程中在高度和宽度方向上面的步长,用于控制特征分辨率的变换。因此,一个深度卷积网络
可以看做是由
层卷积操作层的堆叠构成的,表示为
。经过深度卷积网络
处理后,
空间大小的输入
将被映射成固定大小的的输出,送入到特征翻译模块。
为了自动化设计用于文本识别任务的序列特征提取器,本文需要调整结构超参数以搜索出合适的体系结构,这些结构由
(对于卷积步长)和
(对于卷积操作)控制。本文用
表示网络
在训练数据集上面的损失,用
表示网络
在验证数据集上面的准确率。本文可以将自动设计序列特征提取器定义为公式(1)中的双层优化形式,
其中
和
为上层表示网络结构的超参数,
为下层网络卷积权重的变量,
表示
需要满足的约束条件,也就是:
其中
和
是针对于应用的输出特征空间大小的约束,约束
的目的是控制序列特征模块输出的分辨率大小,以便适用于后面的翻译模块。
搜索空间的设计是整个网络结构搜索的关键点,我们为STR任务设计了一个两级的层次化搜索空间,即下采样路径层级搜索空间和操作层级搜索空间,如下图所示。
经过矫正后的输入文本图像中,字符在图像中呈水平位置均匀放置,为了在紧凑的文本的形状中保留图像中字符更具区分性的特征,一种最常见的做法是沿着高度轴压缩特征直到降低为1,但是沿着宽度轴方向压缩更少的倍数以确保最终的特征序列长度大于字符串的长度。更具体来说,当前的主流方法使用的都是ASTER中提出来的特征序列提取器。输入的文本图像的高度统一为固定的大小,例如32。并且为了在宽度轴上面保留更多的分辨率,以区分相邻的字符, 因此卷积步长超参数
只能从
中选择,在整个下采样路径中
出现2次,
出现3次,从而满足约束
使得
、
,最终大小为
的输入文本图片被映射为长度
大小的特征序列,送入到后面的特征翻译模块。如下图任意一条从
到
的连通路径表示下采样路径搜索空间中一种结构配置。本文的目标是在这样的3D网格搜索空间中找到一条路径,实现最佳的识别性能。
此外目前的场景文本识别网络的特征提取层都是使用相同的卷积操作进行堆叠,比如ASTER中各层卷积都是使用了3X3的残差网络结构。这样的配置可能是局部最优的,且带来参数以及计算量的冗余。区别于手工设计的结构将每个
设置成固定的操作,本文为每层卷积层设置不同的操作,
可以从带有
个并行的卷积操作的选择块中挑选一个卷积操作,如下图所示。本文选择的基础卷积操作来源于MobileNetV2的结构, 其使用轻量级的深度可分离卷积来节约网络模型中的计算量(FLOPS)和模型参数量(Parameters)。
本文将搜索
的过程和搜索
的过程解耦成两步搜索过程,具体来说,在第一步中,本文下采样路径上面的卷积操作
全部固定成默认的3X3的普通残差网络层,然后在此基础上搜索下采样路径。第二步搜索的过程是基于第一步已经搜索出来的最优下采样路径,进一步搜索如何在该路径上面放置更好的卷积操作。
第一步:搜索特征下采样路径
用
表示卷积网络
在数据集
上计算得到的序列交叉熵损失。用
表示训练集,对应的
表示验证集。在这一步骤中先默认卷积操作为固定的
,搜索下采样路径。因此公式(1)中
变成了常量,可以被改写成公式(2)中的搜索任务。
在3.2.1节本文已经阐述了下采样路径中只能存在两次
和三次
的卷积滑动的步长策略以满足约束条件
,我们分别用符号
和
表示这两种步长策略。注意到目前的一些NAS方法,在每个卷积阶段使用相同数量的层,并取得了良好的效果。通过使用这些合理的先验知识与设计准则,本文对搜索空间进行了简化,对于一个深度
的网络,本文在第1、4、7、10、13层分别设置特征下采样,而其他层使用步长
即保持当前分辨率不变,从而将整个网络平均分成五个卷积阶段,每个卷积阶段包含3个卷积层。因此特征下采样路径可以划分为10种典型的路径:
、
、
、
、
、
、
、
、
和
。本文可以在这些典型的路径集合中进行小范围的网格化搜索,以找到最接近
的良好路径。然后,通过在搜索步骤2中学习跳连接(Skip-Connect)层,从而可以减少每个卷积阶段的卷积层数。
第二步:搜索卷积操作块
受可微分架构搜索的启发,我们给第
层的卷积操作
赋予结构参数
,从而将卷积块中操作的离散选择给连续化。由于
对整个网络的复杂度和准确率都会产生影响,因此我们给操作搜索的优化函数引入了一个正则项
以便实现一个良好的折中,如公式(3),
用于调节正则项对损失函数的影响程度,
表示作为参考网络的计算量。
因此公式(1)的优化目标可以继续改写成公式(4),
目前很多方法可以用来解决公式(4)中的问题,比如DARTS [1]、NASP [2]等等,为了节约显存,我们最后采用了ProxylessNAS [3]。
[1]. DARTS: Differentiable Architecture Search. ICLR 2018
[2]. Efficient Neural Architecture Search via Proximal Iterations. AAAI 2020.
[3]. Proxylessnas: Direct neural architecture search on target task and hardware. ICLR 2018
此次,根据一般场景文本识别设计基准来评估本次工作的搜索架构。实验数据包括IIIT 5K-Words (IIIT5K) 、Street View Text (SVT) 、ICDAR 2003 (IC03) 、 ICDAR 2013 (IC13) 、ICDAR 2015 (IC15)、SVT-Perspective (SVTP) 等数据,其中,前四个数据集中的图像是规则的,其余为不规则的。
在识别精度上,利用搜索到的主干网,整个框架与其他最先进的方法进行了比较,如下图所示。
AutoSTR在IIIT5K、SVT、IC15、SVTP中表现最好,在IC03、IC13中也获得了相似的结果。值得注意的是,AutoSTR在IIIT5K、SVT、IC03、IC13、SVTP、IC15上的表现优于ASTER,分别为1.4%、1.9%、0.9%、2.7%、2.3%,证明了AutoSTR的有效性。尽管SCRN可以获得与AutoSTR相当的性能,但它的校正模块需要额外的字符级注释来实现更精确的校正。作为一个插件,AutoSTR在配备SCRN整流模块的同时,有望进一步提高性能。
在计算耗能方面,下图详细比较了各方法的浮点运算和内存大小。
从中看出,与SAR、CA-FCN、ESIR、SCRN、ASTER等目前最先进的方法相比,AutoSTR搜索的架构在浮点运算和参数复杂度上都要更少。因此,AutoSTR在移动环境下更有效。
在数据集依赖关系上,下图展示了每个测试数据集上搜索到的特征表达式体系结构,以提供有关网络设计的一些见解。从中可以发现,网络的较浅的卷积级(例如,1、2)更喜欢较大的MBConv操作(例如,MBConv(k:5,e:6)),并且没有跳过连接层。但是在较深的卷积阶段(例如,3、4、5),部署较小的MBConv并学习跳跃连接以减少卷积层的数量。
特别是在最后一个卷积阶段,只存在一个卷积层。观察到的现象与一些人工设计的网络架构是一致的,比如SCRN。具体地说,在前两个阶段,ResNet50用于提取特征,而在后两个阶段,仅在快速下采样特征映射上附加几个卷积层来生成水平方向的特征序列。这一现象可能会启发我们设计更好的文本图像特征抽取器。
在紧凑性上,我们将搜索到的架构与所有MBConv(k:5,e:6)基线模型进行比较,后者选择每个层中参数数量最多的块,并使用ABABAB下采样策略。
对比图5和图6,我们可以看到,AutoSTR搜索的结构具有更少的浮点运算和参数,同时保持了更好的精确度。
此外,AutoSTR搜索的体系结构使用较少的浮点和参数,但超出了基线模型的精度,说明最大参数模型(All MBConv(k:5,e:6)基线)存在大量冗余参数,AutoSTR可以去除一些冗余层,优化网络结构。
在与随机搜索算法对比上,我们选择10个随机搜索体系结构,从头开始训练,然后在IIIT5K数据集上测试。随机搜索大约需要15×4 GPU天,而AutoSTR在下采样路径搜索步骤中只需要1.7×4 GPU天,而在操作搜索步骤只需要0.5×4 GPU天。如下图所示,AutoSTR所发现的体系结构比IIIT5K数据集中的随机体系结构性能高0.5%-1.4%,这表明AutoSTR更有效、更高效。
在下采样路径上。我们在搜索空间中,使用了两种典型的策略,即AABBB和ABABB来搜索iit5k数据集上的操作。
最佳下采样路径不受默认操作(即3×3残差卷积,MBConv(k:3,e:1))的影响。此外,一个更好的下采样策略(即ABABB)有助于AutoSTR在操作搜索步骤中找到一个更好的架构。
在正则化器的影响上。我们将浮点运算作为正则项引入目标函数中。
最终,可以在计算复杂度和准确度之间取得平衡。