为检测弯曲文本,提出与起始顶点无关的坐标回归,提出文本实例精度损失作为辅助任务来细化预测坐标。
基于回归+像素
贡献
- 提出了与起点无关的回归损失,而不是传统的回归损失,以优化文本实例的预测坐标,并且与基于分割的方法不同,可以直接优化多边形的坐标。
- 引入文本实例精度损失来获得具有更大IoU的文本多边形,从而在不增加网络计算的情况下进一步提高了性能。
- 提出了一种简单有效的基于像素的方法,该方法仅使用NMS后处理步骤。 该方法可用于无需附加标注的任意形状文本检测,并在Total-Text数据集上获得最新性能
Label Generation
要回归的目标类别图和目标坐标图
首先,由于SSD的结构,需要将 gt 分配给相应的特征图层。 计算多边形面积与多边形周长的比率,并将该比率作为文本的参考级别(此方法可用于任意形状的文本)。 在分配了每个多边形的文本级别之后,仅将 gt 内的像素视为正样本。
只有顶点数量和顺序,没有开始顶点。采样坐标集如下,n是超参数:
C
P
=
{
x
1
,
y
1
,
x
2
,
y
2
,
…
,
x
n
,
y
n
}
C_P = \{ x_1, y_1, x_2, y_2, \dots, x_n, y_n\}
CP={x1,y1,x2,y2,…,xn,yn}
设第
k
k
k 级
p
p
p 的坐标为
{
x
p
,
y
p
}
\{x_p, y_p\}
{xp,yp},因此坐标将被标准化为
x
i
∗
=
x
i
−
x
p
g
r
i
d
_
s
i
z
e
k
y
i
∗
=
y
i
−
y
p
g
r
i
d
_
s
i
z
e
k
,
i
∈
N
,
i
∈
[
0
,
n
]
x_i^* = \frac{x_i - x_p}{grid\_size_k} \\ y_i^* = \frac{y_i - y_p}{grid\_size_k} , i \in \Bbb{N}, i \in [0, n]
xi∗=grid_sizekxi−xpyi∗=grid_sizekyi−yp,i∈N,i∈[0,n]
与起点无关的坐标回归损失
L r e g = ∑ m ∈ L r e g + min j ∈ [ 0 , … , n − 1 ] ∑ i = 0 n − 1 s m o o t h L 1 ( z ^ i m − z ( j + i ) % n m ∗ ) L_{reg} = \sum_{m \in L_{reg}^+} \min_{j \in [0, \dots, n-1]} \sum_{i=0}^{n-1} smooth_{L_1}(\hat{z}_i^m - z_{(j+i)\%n}^{m*}) Lreg=m∈Lreg+∑j∈[0,…,n−1]mini=0∑n−1smoothL1(z^im−z(j+i)%nm∗)
s m o o t h L 1 ( x ) = { 0.5 x 2 if | x | < 1 , ∣ x ∣ − 0.5 otherwise 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| < 1,otherwise
其中 z ^ i m \hat{z}_i^m z^im 是第 m m m 个预测多边形的第 i i i 个顶点, z ^ i m ∗ \hat{z}_i^{m*} z^im∗ 是第 m m m 个 gt 的第 i i i 个顶点, m ∈ L r e g + m \in L_{reg}^+ m∈Lreg+ 表示 m m m 是正样本的元素。
文本实例准确性损失
通过渲染过程生成 rendered mask。
M P = R ( P ) M_P = R(P) MP=R(P) 其中 P P P 是 多边形的点集的预测序列, R R R 是渲染函数, M P M_P MP 是从 P P P 的 rendered mask
把 gt mask 和 rendered mask 都归一化为 64 × 64 大小,使用 L1 损失计算:
L
a
c
c
=
∑
∣
∣
M
P
−
M
g
t
∣
∣
1
L_{acc} = \sum ||M_P - M_{gt}||_1
Lacc=∑∣∣MP−Mgt∣∣1
L
a
c
c
L_{acc}
Lacc 是逐像素精度,并且与预测多边形和 gt 多边形之间的IoU相关。
L
a
c
c
L_{acc}
Lacc 越小,重叠区域越大。 文本实例精度损失是在IoU的指导下细化预测多边形的坐标,然而与起点无关的损失直接优化了坐标。
目标函数
L = λ c l s ⋅ L c l s + λ r e g ⋅ L r e g + λ a c c ⋅ L a c c L = \lambda_{cls} \cdot L_{cls} + \lambda_{reg} \cdot L_{reg} + \lambda_{acc} \cdot L_{acc} L=λcls⋅Lcls+λreg⋅Lreg+λacc⋅Lacc
基于像素的分类损失,与起点无关的坐标回归损失,文本实例准确性损失。
L
c
l
s
L_{cls}
Lcls 使用 Focal Loss
L
c
l
s
=
−
∑
(
y
i
∗
⋅
α
⋅
(
1
−
y
^
i
)
γ
⋅
l
o
g
(
y
^
i
)
+
(
1
−
y
i
∗
)
⋅
(
1
−
α
)
⋅
(
y
^
i
)
γ
⋅
l
o
g
(
1
−
y
^
i
)
)
L_{cls} = - \sum(y_i^* \cdot \alpha \cdot (1 - \hat{y}_i)^{\gamma} \cdot log(\hat{y}_i) + (1-y_i^*) \cdot (1-\alpha) \cdot (\hat{y}_i)^{\gamma} \cdot log(1 - \hat{y}_i))
Lcls=−∑(yi∗⋅α⋅(1−y^i)γ⋅log(y^i)+(1−yi∗)⋅(1−α)⋅(y^i)γ⋅log(1−y^i))
y
i
∗
∈
{
0
,
1
}
y_i^* \in \{0, 1\}
yi∗∈{0,1} 表示第
i
i
i 个像素的分类标签,
y
^
i
\hat{y}_i
y^i 表示预测的分类置信度。实验中,
α
=
0.25
,
γ
=
2
\alpha = 0.25, \gamma = 2
α=0.25,γ=2