LOMO由直接回归器(DR),迭代优化模块(IRM)和形状表示模块(SEM)组成。
首先,DR分支生成四边形形式的文本建议框。 接下来,IRM基于提取的初步建议功能块,通过迭代细化逐步感知整个长文本。 最后,通过考虑文本实例的几何属性(包括文本区域,文本中心线和边界偏移),引入了SEM来重构不规则文本的更精确表示。
贡献
- 提出了一种迭代优化模块,可以提高长的场景文本检测的性能;
- 引入实例级形状表达模块,以解决检测任意形状的场景文本的问题;
- 具有迭代细化和形状表达模块的 LOMO 可以以端到端的方式进行训练,并在多个基准(包括不同形式(定向,长,多语言和弯曲)的文本实例)上达到最先进的性能
首先,提取三个分支的共享特征图(原图的1/4,通道数128);然后,采用一个类似于 EAST 和 Deep Regress 的直接回归网络作为直接回归器(DR)分支,以像素为单位预测单词或文本行的矩形框,一般,DR 分支由于感受野的限制无法检测到极长的文本;因此,采用下一个分支 IRM 解决这个问题,IRM 可以细化从 DR 或者它自己输出的建议框,以使它们更接近真实边框,在IRM的帮助下,初步文本建议框更加完善,可以更全面地涵盖文本实例;最后,为了获得紧密的表示,特别是对于不规则的文本(四边形的建议形式很容易覆盖很多背景区域),SEM 通过学习其几何属性来重建文本实例的形状表示,几何属性包括文本区域,文本中心线和边框偏移量(中心线与上下边界线之间的距离)。
Direct Regressor(DR)
与EAST相似,预测出 score map 和 bbox map(8通道)。
score map : dice-coefficient loss 的尺度不变性版本:
L
c
l
s
=
1
−
2
∗
s
u
m
(
y
⋅
y
^
⋅
w
)
s
u
m
(
y
⋅
w
)
+
s
u
m
(
y
^
⋅
w
)
L_{cls} = 1 - \frac{2 * sum(y \cdot \hat{y} \cdot w)}{sum(y \cdot w) + sum(\hat{y} \cdot w)}
Lcls=1−sum(y⋅w)+sum(y^⋅w)2∗sum(y⋅y^⋅w)
其中
y
y
y 是一个 0/1 标签图,
y
^
\hat{y}
y^ 是预测分数图,
s
u
m
sum
sum 是2D 空间的累加函数,
w
w
w 是 2D 权重图。正像素位置的值由归一化常数
l
l
l 除以它们所属的四边形的较短边而得出,而负位置的值设置为 1.0 。文中
l
l
l 设置为 64。
bbox map : smooth L1 loss
s
m
o
o
t
h
L
1
(
x
)
=
{
0.5
x
2
if
∣
x
∣
< 1
∣
x
∣
−
0.5
otherwise,
\mathrm{smooth}_{L_1}(x) = \begin{cases} 0.5x^2 & \text{if $|x|$ < 1} \\ |x| - 0.5 & \text{otherwise,} \end{cases}
smoothL1(x)={0.5x2∣x∣−0.5if ∣x∣ < 1otherwise,
L
d
r
=
λ
L
c
l
s
+
L
l
o
c
L_{dr} = \lambda L_{cls} + L_{loc}
Ldr=λLcls+Lloc
其中超参数
λ
\lambda
λ 平衡两项,文中设置为 0.01。
Iterative Refinement Module(IRM)
与 Faster RCNN 的边界框回归部分类似。使用 RoI 转换层代替 RoI pooling 层或者 RoI align 层提取输入文本矩形框的特征块。和后两个相比,前者可以保持长宽比不变提取四边形建议框的特征块。此外,在相同的感受野内,靠近拐角的位置可以感知到更准确的边界信息。 因此,引入了拐角注意机制以回归每个拐角的坐标偏移。
把 DR 预测出的四边形和共享特征图一起作为 RoI Transform 的输入,得到
1
×
8
×
64
×
128
1×8×64×128
1×8×64×128 的特征块。接下来跟着三个
3
×
3
3×3
3×3 的卷积层提取富文本
f
r
f_r
fr 。然后使用
1
×
1
1×1
1×1 的卷积层和一个 sigmoid 层自动学习 4 交点注意力图
m
a
m_a
ma 。在每个角点注意力图的值都代表对应交点的偏移回归的贡献权重。 使用
f
r
f_r
fr 和
m
a
m_a
ma 可以通过 group dot production 和 sum reduction operation 提取 4 交点的回归特征:
f
c
i
=
r
e
d
u
c
e
_
s
u
m
(
f
r
⋅
m
a
i
,
a
x
i
s
=
[
1
,
2
]
)
i
=
1
,
…
,
4
f_c^i = reduce\_sum(f_r \cdot m_a^i, axis=[1, 2]) \quad i=1, \dots, 4
fci=reduce_sum(fr⋅mai,axis=[1,2])i=1,…,4
其中
f
c
i
f_c^i
fci 表示第
i
i
i 个角点回归特征(
1
×
1
×
1
×
128
1×1×1×128
1×1×1×128),
m
a
i
m_a^i
mai 是第
i
i
i 个学习到的角点注意力图。最后,基于角点回归特征
f
c
f_c
fc ,使用 4 个头部(每个都包含两个
1
×
1
1 × 1
1×1 的卷积层)预测输入四边形和真实文本框 4 个角点之间的偏移。
在训练阶段,我们从 DR 保留
K
K
K 个初步检测到的四边形,并且角回归损失可以表示为
L
i
r
m
=
1
K
∗
8
∑
k
=
1
K
∑
j
=
1
8
s
m
o
o
t
h
L
1
(
c
K
j
−
c
k
j
^
)
L_{irm} = \frac{1}{K * 8} \sum_{k=1}^K \sum_{j=1}^8 smooth_{L_1} (c_K^j - \hat{c_k^j})
Lirm=K∗81k=1∑Kj=1∑8smoothL1(cKj−ckj^)
其中
c
k
j
c_k^j
ckj 表示在第
k
k
k 对检测四边形和真值四边形的第
j
j
j 个坐标偏移,
c
k
j
^
\hat{c_k^j}
ckj^ 表示对应的预测值。
在测试过程中,如果 IRM 可以连续带来收益,那么它可以执行一次或多次优化。
Shape Expression Module(SEM)
受 Mask R-CNN 的启发,使用 SEM 检测不规则形状的文本。SEM 是一个有 RoI transform 层的全卷积网络,预测出三种文本几何属性,包括文本区域,文本中心线和边界偏移(在文本中心线和上/下边框线的偏移),然后构建文本实例的精确形状表示。
文本区域 是一个二值图,前景像素(在多边形标注内的像素)标记为 1,背景像素为 0。
文本中心线 是一个基于多边形标注的缩小版本的二值图。
边界偏移 是 4 通道图,在文本线图的相应位置上的正响应区域内具有有效值。在上图 (a) 中,通过中心线样本(红色点)绘制了一条垂直于其切线的法线,该法线与上下边界线相交以获得两个边界点(即 ,粉红色和橙色的)。 对于每个红点,通过计算从其自身到其两个相关边界点的距离来获得4个边界偏移。
在 RoI transform 层后有两个卷积(每一个包含一个上采样层和两个 3×3 卷积层),然后使用一个 6 个输出通道 1×1 的卷积层回归所有的属性图。
L
s
e
m
=
1
K
∑
K
(
λ
1
L
t
r
+
λ
2
L
c
t
l
+
λ
3
L
b
o
r
d
e
r
)
L_{sem} = \frac{1}{K} \sum^K (\lambda_1 L_{tr} + \lambda_2 L_{ctl} + \lambda3 L_{border})
Lsem=K1∑K(λ1Ltr+λ2Lctl+λ3Lborder)
其中
K
K
K 表示从 IRM 得到的文本四边的数量,
L
t
r
L_{tr}
Ltr 和
L
c
t
l
L_{ctl}
Lctl 表示文本区域和文本中心线的 dice-cofficient loss,
L
b
o
r
d
e
r
L_{border}
Lborder 表示 smooth L1 Loss。权重
λ
1
,
λ
2
,
λ
3
\lambda_1, \lambda_2, \lambda_3
λ1,λ2,λ3 分别设置为
0.01
,
0.01
,
1.0
0.01, 0.01, 1.0
0.01,0.01,1.0。
文本多边形生成
文本中心线采样: 在预测的文本中心线图上从左到右以等距间隔采样 n 个点。对不同的数据集取不同的 n n n,对于SCUT-CTW500 的弯曲文本,为 7;对于四边形标注设置为 2。
边界点生成:根据采样的中心点,可以决定对应的边界点。
多边形生成:通过顺时针连接全部的边界点,可以得到完整的文本多边形表示,最后计算在多边形内的相应的文本区域的均值作为新的置信度分数。
Training and Inference
L = γ 1 L d r + γ 2 L i r m + γ 3 L s e m L = \gamma_1 L_{dr} + \gamma_2 L_{irm} + \gamma_3 L_{sem} L=γ1Ldr+γ2Lirm+γ3Lsem
γ \gamma γ 全部设置为 1.0。
warming-up : 在合成数据上训练 DR 分支 10 epochs。
fine-tuning : 在真实数据上训练全部分支 10 epochs。
IRM 和 SEM 使用 DR 分支生成的相同的 proposal,NMS 保留前 K 个 proposals,由于DR最初的效果不佳,这会影响 IRM 和 SEM 分支的融合,因此在训练中,我们用随机干扰的 GT 文本四边形替换了前 K 个 proposals 中的50%。IRM 在训练期间只一次。