代码地址:PMTD
1. 概述
导读:现有的一些基于Mask R-CNN的文本检测算法,在自然场景的文本检测已经取得了较为不错的性能,这篇文章也是在Mask R-CNN的基础上提出了新的自然场景文本检测算法PMTD(Pyramid Mask Text Detector)。需要注意的是:这个算法检测的对象不是任意形状的文本,检测的区域还是四边形区域。该算法不生成Mask R-CNN中的二值掩膜图,而是在Pyramid Label的监督下使用逐像素回归的形式,获得每个文本区域具有更多信息的soft text mask(对应文中Pyramid Label训练结果)。对于文本框的生成阶段,PMTD将获得的2D soft mask在3D空间重构,并且在3D维度引入了新的聚类算法以获取最优的文本检测框。在现有的标准数据集上PMTD获得了state-of-art的检测结果,特别的,在ICDAR 2017 MLT数据集上获得了80.13%的F-measure。
现有的一些文本检测方法将文本检测当做是实例分割任务,进而就有很多基于Mask R-CNN的文本检测器,但是这些检测器都有一些缺点:
- 1)过于简单的监督机制:一般来讲文本框的区域是使用四边形标注的,这个属性对于文本检测来说是有用的,但是现有的Mask R-CNN的文本检测器只关注于将文本区域从背景区域中分离出来(未考虑形状),从而没有有效利用标注;
- 2)粗糙的分割标签:由于使用的是四边形标注形式,这就会导致包含有背景像素的区域进入标注框,这些信息是训练时的噪声,从而导致分割掩膜生成错误,见下图所示;

- 3)错误信息的传递:在之前的Mask R-CNN的方法中会先生成bounding box,再在bounding box的基础上生成对应的文本检测框,这样就会导致bounding box的生成错误会传导到文本框生成。而PMTD方法由于有soft text mask的帮助可以很好回归文本框的区域,见下图所示:

为了解决上面提到的问题,PMTD舍弃掉了Mask R-CNN中逐像素二值预测的分割方法,而是采用“soft”分割文本区域与背景区域,见图2所示:

使用“soft”分割就涉及到对应的标注,这里为每个文本区域的像素分配 v a l u e ∈ [ 0 , 1 ] value\in[0,1] value∈[0,1]的值,得到soft pyramid label。该值是通过与文本框边界的区域确定下来的,这样的标注就显式地将文本区域的形状与位置信息包含进了训练数据中。此外,引入位置感知的分割标签(Pyramid Label)减少文本边界处错误标注像素带来的影响。
在测试阶段,由于逐像素分割的输出引入了新的坐标维度 Z Z Z,这就可以将2D的文本掩膜映射到3D上去重构,由此引出了3D下的聚类算法。既是从金字塔的4个支撑初始化平面开始,在每个支撑平面上使用聚类算法聚类邻近的点,并更支撑平面。在迭代之后会获得精确的bounding pyramid,其底部的面就是输出的文本检测框了。由于是支撑面参与寻找文本框的边界而不是边界上的像素,这就使得错误传导导致的检测问题得到缓解,能够获得更准确的检测结果。
文章的主要贡献:
- 1)这篇文章提出了PMTD文本检测算法,其性能在多个数据集上达到了state-of-art;
- 2)在文本与非文本区域上提出了“soft”分割,结合区域的形状以及位置信息参与到训练中,减轻标签不准确导致的边界不连续问题;
- 3)引入了新的平面聚类算法在3D坐标下更好地寻找文本区域,得到更精准的文本框并且提升了对不准确bounding box的鲁棒性;
2. 方法设计
2.1 网络结构
这篇文章中算法的网络结构与Mask R-CNN类似,主要的不同在于mask head部分

2.2 Pyramid Label
这部分将原来的硬性二值分割掩膜变换为了文中提到的soft pyramid label(
v
a
l
u
e
∈
[
0
,
1
]
value\in [0,1]
value∈[0,1]),这就使得PMTD算法能够捕获训练数据样本的形状以及位置信息。既是,将文本区域的中心(对应金字塔的顶端)设置为1(文本检测框就是金字塔的底座对应的区域,其周围的感受野都是文本区域自然分数应该高,而那些稍微远一些的区域由于可能包含背景自然分数要适当降低),然后其它的三角平面上按照线性插值进行填充,其示意图见图4所示:

文中采用的标注形式为四边形标注
A
(
x
a
,
y
a
)
,
B
(
x
b
,
y
b
)
,
C
(
x
c
,
y
c
)
,
D
(
x
d
,
y
d
)
A(x_a,y_a),B(x_b,y_b),C(x_c,y_c),D(x_d,y_d)
A(xa,ya),B(xb,yb),C(xc,yc),D(xd,yd),那么点
P
(
x
p
,
y
p
)
P(x_p,y_p)
P(xp,yp)对应的分数为
s
c
o
r
e
p
score_p
scorep,则首先对应的文本中间区域
O
(
x
o
,
y
o
)
O(x_o,y_o)
O(xo,yo)描述为:

对于一个区域
R
O
M
N
R_{OMN}
ROMN(来自
R
O
A
B
,
R
O
B
C
,
R
O
C
D
,
R
O
D
A
R_{OAB},R_{OBC},R_{OCD},R_{ODA}
ROAB,ROBC,ROCD,RODA),则其中的一个点
P
P
P与定点组成的向量
O
P
⃗
\vec{OP}
OP可以被描述为:

其中对应的
α
,
β
\alpha,\beta
α,β是通过下面的关系计算的:

点
P
P
P在区域
R
R
R中应该满足的条件是:

对应的分数
s
c
o
r
e
p
score_p
scorep的计算被描述为:

前面的中心区域值高借鉴了感受野的解释,因而更大的感受野对PMTD产生更好的结果是很重要的,为了增大感受野文章将mask head中国的前4个卷积替换为了stride为2的膨胀卷积。
由于反卷积可能造成网格效应,对此文章将反卷积替换为了双线性插值,从而使得预测更加准确,见图5所示:

替换膨胀卷积与双线性插值相比baseline提升了0.41%
这里使用像素级的
L
1
L_1
L1损失函数去优化预测的文本区域掩膜,继承于Mask R-CNN文章将损失函数定义为:
L
=
L
r
p
n
+
λ
1
L
c
l
s
+
λ
2
L
b
o
x
+
λ
3
L
p
y
r
a
m
i
d
m
a
s
k
L=L_{rpn}+\lambda_1 L_{cls}+\lambda_2 L_{box}+\lambda_3 L_{pyramid mask}
L=Lrpn+λ1Lcls+λ2Lbox+λ3Lpyramidmask
其中,
λ
1
=
1
,
λ
2
=
1
,
λ
3
=
5
\lambda_1=1,\lambda_2=1,\lambda_3=5
λ1=1,λ2=1,λ3=5
2.3 Plane Clustering
这部分是使用文中提到的平面聚类算法从预测得到的soft text mask上回归最合适的文本框。这个过程可以看做是Pyramid Label生成的逆向过程。将预测的特征图与对应的分数组合成为三维的体系,从三维金字塔的支撑面聚类得到最后的文本框边界,这里可以将这个聚类的为题转换为寻找参数
A
,
B
,
C
A,B,C
A,B,C适配每个支撑面
A
x
+
B
y
+
C
z
+
D
=
0
,
C
=
1
Ax+By+Cz+D=0,C=1
Ax+By+Cz+D=0,C=1,则这个平面聚类算法可以描述为:

初始的死后选取
z
>
0.1
z>0.1
z>0.1作为初始的P,只用P的的顶点作为初始金字塔的顶点,下面的4个角点有bounding box确定。在完成初始化之后,就会使用迭代更新的机制更新聚类的点,具体示意见图6所示:

文中指出使用最小二乘法从聚类的点中回归4个支撑面,从而使得检测结果对噪声鲁棒。在达到最大迭代次数(文中为10)或是最小二乘法的结果足够小(
1
e
−
4
1e-4
1e−4)的时候算法停止。
3. 实验结果
ICDAR 2017:

ICDAR 2015:

92

被折叠的 条评论
为什么被折叠?



