1. 介绍
EAST: An Efficient and Accurate Scene Text Detector
论文地址:
https://arxiv.org/abs/1704.03155v2
- 本文使用单个神经网络直接预测任意方向的四边形的单词和文本行,消除了不必要的中间步骤(如:候选区域聚合 和 单词分区)。
- 本文提出的基础架构可以集中精力设计损失函数和神经网络。
- 在ICDAR2015的数据集上,此方法在Titan-X GPU上,获得了0.782的F-score,和13.2的FPS。
2. 模型介绍
2.1 概况
- 文本检测的核心是设计特征区别文字和背景。之前有手工设计的特征和基于深度学习的。
- 以前的算法,都包含几个阶段或者组件;本算法只包含两个阶段,全卷积神经网络和NMS合并阶段。
- 传统的方法有SWT(基于笔画宽度变换)、MSER(最大稳定的极端区域)、FASTText。
2.2 相关工作
2.2.1 网络设计
- 本方法的关键是一个全卷积神经网络输出密集的单词或者文本行(消除了候选区域推荐、文本分区等过程)。
- 后处理步骤只包含阈值操作和NMS。
- 网络经5次下采样后变为原来的 1 32 \frac{1}{32} 321,而后经过unpooling后进行concat操作、直到特征图变为原图大小的 1 4 \frac{1}{4} 41,特征通道由384-128-64-32。
- 预测输出分为2个部分:score map是置信度、和位置信息。位置信息用了两种方法:RBOX和QUAD。
- RBOX中:text boxes是预测框的几何位置,分别表示到四条边的距离 d 1 , d 2 , d 3 , d 4 d_1,d_2,d_3,d_4 d1,d2,d3,d4,text rotation angle是预测的角度值;QUAD中:8个值分别是四个顶点坐标的偏移量 ( Δ x i , Δ y i ) (\Delta x_i, \Delta y_i) (Δxi,Δyi)
2.2.2 标签生成
2.2.3 损失函数
-
损失函数如下: L = L s + λ g L g L = L_s + \lambda _gL_g L=Ls+λgLg
其中 L s L_s Ls代表score map的损失, L g L_g Lg代表几何坐标损失。 λ g \lambda_g λg代表权重,实验中设置为1。 -
大多数检测方法,通过平衡采样来处理样本不平衡的问题。这样做可能提高性能,但是带来了超参数。本文使用类别平衡交叉熵损失函数:
{ L s = b a l a n c e d − x e n t ( Y ^ , Y ∗ ) L s = − β Y ∗ l o g Y ^ − ( 1 − β ) ( 1 − Y ∗ ) l o g ( 1 − Y ^ ) \begin{cases} L_s = balanced-xent(\hat{Y},Y^*) \\ L_s= -\beta Y^*log{\hat{Y}}-(1-\beta)(1-Y^*)log(1-\hat{Y}) \\ \end{cases} {Ls=balanced−xent(Y^,Y∗)Ls=−βY∗logY^−(1−β)(1−Y∗)log(1−Y^)
其中 β \beta β为正负样本的平衡因子, Y ∗ Y^* Y∗是ground truth。
β = 1 − ∑ y ∗ ∈ Y ∗ y ∗ ∣ Y ∗ ∣ \beta = 1- \frac{\sum_{y^*\in{Y^*}}y^*}{|Y^*|} β=1−∣Y∗∣∑y∗∈Y∗y∗ -
几何损失方面:文本检测的问题是,不同的文本大小区别很大, L 1 , L 2 L_1,L_2 L1,L2损失将会导致Loss趋向于大的文本区域。因此,对于RBOX:使用IOU损失;对于QUAD:使用归一化的 L 1 L_1 L1损失。
-
RBOX:
L A A B B = − l o g I o U ( R ^ , R ∗ ) = − l o g ∣ R ^ ∩ R ∗ ∣ ∣ R ^ ∪ R ∗ ∣ w i = m i n ( d 2 ^ , d 2 ∗ ) + m i n ( d 4 ^ , d 4 ∗ ) h i = m i n ( d 1 ^ , d 1 ∗ ) + m i n ( d 3 ^ , d 3 ∗ ) L_{AABB}=-log IoU(\hat{R},R^*) = -log \frac{|\hat{R}\cap R^*|}{|\hat{R}\cup R^*|}\\ w_i=min(\hat{d_2},d_2^*)+min(\hat{d_4},d_4^*)\\ h_i=min(\hat{d_1},d_1^*)+min(\hat{d_3},d_3^*)\\ LAABB=−logIoU(R^,R∗)=−log∣R^∪R∗∣∣R^∩R∗∣wi=min(d2^,d2∗)+min(d4^,d4∗)hi=min(d1^,d1∗)+min(d3^,d3∗)
注意:在计算RBOX损失时,IOU的计算中没有考虑角度。
L θ ( θ ^ , θ ∗ ) = 1 − c o s ( θ ^ − θ ∗ ) L g = L A A B B + λ θ L θ L_\theta(\hat{\theta},\theta^*)=1-cos(\hat{\theta}-\theta^*)\\ L_g=L_{AABB}+\lambda _{\theta}L_{\theta} Lθ(θ^,θ∗)=1−cos(θ^−θ∗)Lg=LAABB+λθLθ -
QUAD:
C Q = { x 1 , y 1 , . . . , x 4 , y 4 } C_Q=\{ x_1,y_1,...,x_4,y_4\} CQ={x1,y1,...,x4,y4}
{ L g = L Q U A D ( Q ^ , Q ∗ ) L g = m i n ∑ c i ∈ C Q s m o o t h e d L 1 ( c i − c i ~ ) 8 ∗ N Q ∗ \begin{cases} L_g = L_{QUAD}(\hat{Q},Q^*)\\ L_g=min \sum_{c_i \in C_Q} \frac{smoothed_{L_1}(c_i-\widetilde{c_i} )}{8*N_{Q^*}} \end{cases} {Lg=LQUAD(Q^,Q∗)Lg=min∑ci∈CQ8∗NQ∗smoothedL1(ci−ci )
其中归一化项 N Q ∗ N_{Q^*} NQ∗是最短边的长度。
2.2.4 训练
- 使用adam优化器,输入图像裁剪为512*512,minibatch为24,lr为0.001,27300个minibatch后变为之前的十分之一,0.00001后终止。
- LA-NMS(Locality-Aware NMS)。预测出结果后,需要合并预测框,因为是密集预测,传统的NMS太慢。LA-NMS首先会逐行合并预测框
2.2.5 实验
- 在三个基准上进行实验:ICDAR2015、COCO-Text、MSRA-TD500。
- 网络使用了PVANET、PVANET2x、VGG16。
- 结果如下图所示: