[论文阅读]Deep Relational Reasoning Graph Network for Arbitrary Shape Text Detection
用于任意形状文本检测的深度关系推理图网络
文章收录于2020 CVPR
[论文地址]https://arxiv.org/abs/2003.07493
[代码地址]https://github.com/GXYM/DRRG
摘要
本文针对形状文本检测提出了一种新的统一关系推理图网络。局部图(local graph)建立起了基于CNN的text proposal模型和基于GCN(Graph Convolutional Network)的深度关系推理网络之间的关系,使模型可以端到端训练。
简介
目前一些方法,例如TextSnake[17]和CRAFT[1]为了解决任意形状文本检测,采用了Connected Component (CC)策略(一些列的组件定位字符,最后合并组件)。这样的缺点就是,无法获得文字组件之间的更丰富的关系,从而无助于文本实例的划分。
对于CC策略来讲,一项重要的工作就是划分文本实例。现有的方法常采用:预定义规则(pre-defined rules)、链接映射(link map)、嵌入映射(embedding map)。对于长文本和弯曲文本,一般来讲,链接映射和嵌入映射比预定义规则更加鲁棒。
链接映射与嵌入映射的方法大多基于CNN,且CNN不适合处理这些独立的组件(非欧几里得数据),即不能够从两个不相邻的组件中学习相互之间的关系。
而这些非欧几里得数据可以被表示为图,如图1所示,本文选择一个文本组件作为一个节点,选择一个节点作为中枢,将中枢周围的节点连起来形成局部图。局部图(节点之间的边缘)中包含的上下文信息可为估计枢纽节点与其他节点之间的链接可能性提供信息。
本文首先将每一个文本实例,切分为文本组件。使用基于CNN的text proposal network预测这些文本组件的几何属性(高、宽、方向),然后利用这些几何属性采用了图卷积网络来执行深度关系推理,从而对这些组件进行分组聚合。
相关工作
基于回归的方法:此类方法使用单词级别(word level)或者行级别(line level)的ground-truth,通过基于框回归的文本检测框架。
- RRD[11]调整SSD [13]的锚定比,以适应非规则形状的宽高比变化。
- Textboxes ++ [10]修改了卷积核和锚定框,以有效地捕获各种文本形状。
- EAST [42]直接推断候选单词的像素级四边形,而无需锚定机制和proposal检测。
基于分割的方法:受语义分割思想的启发,通过估计单词边界区域来检测文本。
- PixelLink [3]通过预测像素与其相邻像素之间的链接关系,对属于同一实例的像素进行分类。
- PSENet [30]采用多种尺度渐进扩展网络,利用ground truth生成一系列不同大小的mask,最终提高了不规则文本的检测能力。
- Tian等人[28]将每个实例文本视为一个聚类,通过嵌入映射对像素进行聚类。
- TextField [34]采用深度方向域(deep direction field)来链接相邻像素并生成候选文本部分。
基于CC的方法:首先通常检测单个文本部分或字符,然后通过链接或者分组的后续处理生成最终的文本。
- CTPN [27]使用了一个基于Faster R-CNN [20]修改的网络,来提取具有固定宽度的文本,以轻松连接密集的文本组件并生成水平文本行。
- SegLink [21]将每个场景文本分解为两个可检测的元素,即段和链接,其中链接指示一对相邻的段属于同一单词。
- CRAFT [1]通过探索每个字符与字符之间的亲和关系来检测文本区域。
- TextDragon[4] 首先检测文字的局部区域,然后根据边界框的几何关系对其进行分组
关系推理:对于局部卷积算子的限制,CNN不能直接捕获远距离分量区域之间的关系。最近,Wang等人[33]为了解决这种问题,提出了基于频谱的GCN方法来聚类人脸。在复杂情况下,设计的GCN可以合理地链接属于同一个人的不同面部实例。
方法
概述
首先,通过基于CNN的text proposal network利用共享特征来估计文本组建的几何属性;然后局部图可以大致建立不同文本组建的链接;然后使用深度关系推理网络将进一步推断出文本组件与其相邻组件之间的链接可能性;最后根据推理结果将文本组件聚合为整体的文本实例。
其网络框架如图2所示;文本组件提议网络(text component proposal network)和深层关系推理图网络共享卷积特征,并且共享卷积使用VGG-16 和FPN [12]作为主干,如图3所示。
文本组件预测
如图4所示,(a)展示了一系列的文本组件,每个文本组件
D
D
D由(x,y,h,w,sin
θ
\theta
θ,cos
θ
\theta
θ)组成。其中
h
h
h为文本组件的高度,由(c )图中的h1和h2两部分组成。
w
w
w则是根据
h
h
h的大小确定的。
(b)中展示了文本组建的中心域,为了确定文本中心域(text center region 记为TCR)与文本组件的方向,本文采用了[17]中的方法来计算文本域的head和tail,如图4(a)中黑色箭头所示。
本文根据下列公式确定图4(a)中的上下两组点
P
1
=
{
t
p
0
,
t
p
1
,
.
.
.
,
t
p
i
,
.
.
.
,
t
p
n
}
P1= \left\{tp0,tp1,...,tpi,...,tpn\right\}
P1={tp0,tp1,...,tpi,...,tpn}和
P
2
=
{
b
p
0
,
b
p
1
,
.
.
.
,
b
p
i
,
.
.
.
,
b
p
n
}
P2= \left\{bp0, bp1, ..., bpi, ..., bpn\right\}
P2={bp0,bp1,...,bpi,...,bpn}。
p
=
∑
i
=
0
n
sin
(
v
i
)
,
v
i
∈
V
p=\sum_{i=0}^{n} \sin \left(v_{i}\right), v_{i} \in V
p=i=0∑nsin(vi),vi∈V
其中
V
=
{
t
p
0
−
b
p
0
,
.
.
.
,
t
p
i
−
b
p
i
,
.
.
.
,
t
p
n
−
b
p
n
}
V = \left\{tp0 − bp0,...,tpi − bpi,...,tpn − bpn\right\}
V={tp0−bp0,...,tpi−bpi,...,tpn−bpn},向量
v
i
v_i
vi的角度表示文本分量的方向
θ
θ
θ
TCR是通过缩小文本域(text region 记为TR)得到的,其计算步骤:1. 计算文本中心行 2.将中心行两端缩小0.5 w w w像素,使网络更容易分离相邻的文本实例并降低NMS的计算成本。 3.将文本中心行高度扩展0.3 h h h。
再提取共享特征之后,通过两个卷积层来计算CR(Classification and Regression),即文本组件的几何属性,
C
R
=
conv
1
×
1
(
conv
3
×
3
(
F
share
)
)
C R=\operatorname{conv}_{1 \times 1}\left(\operatorname{conv}_{3 \times 3}\left(F_{\text {share}}\right)\right)
CR=conv1×1(conv3×3(Fshare))
其中CR是一个
H
∗
W
∗
8
H*W*8
H∗W∗8大小的张量,带有4个通道的TR / TCR分类结果和4个通道的
h
1
,
h
2
,
c
o
s
θ
,
s
i
n
θ
h1,h2,cos\theta,sin\theta
h1,h2,cosθ,sinθ的回归结果。
通过Softmax TR / TCR并将平方和等于1的cosθ和sinθ正则化来获得最终预测。最终的结果通过阈值与正样本上的位置感知NMS产生。(TODO 不是很明白 )
局部图生成
本文对每一张图片生成了多个局部图,每个局部图拥有有限个节点。本文修改了IPS[33]来生成局部图,中枢节点附近的节点按照
h
h
h-
h
o
p
hop
hop方法选择。例如:
1
1
1-
h
o
p
hop
hop为中枢节点的最近8邻域节点;
2
2
2-
h
o
p
hop
hop为中枢节点的最近4邻域节点。高阶的邻居节点提供了枢纽与其邻居之间上下文的局部结构的辅助信息,但此处本文只考虑每个形成KNN操作的节点之间的欧氏相似性
E
s
Es
Es,计算方法为
E
s
=
1
−
D
(
p
,
v
i
)
/
max
(
H
m
,
W
m
)
,
v
i
∈
V
p
E_{s}=1-D\left(p, v_{i}\right) / \max \left(H_{m}, W_{m}\right), v_{i} \in V_{p}
Es=1−D(p,vi)/max(Hm,Wm),vi∈Vp
其中
D
(
p
,
v
i
)
D(p,vi)
D(p,vi)是中枢
p
p
p与节点
v
i
v_i
vi之间的L2距离,
H
m
H_m
Hm是图像的高度,
W
m
W_m
Wm是图像的宽度。
为避免训练中许多相同图形导致容易样本的累积积累,枢轴p应满足以下条件:
G
i
o
u
=
G
p
∩
G
q
G
p
∪
G
q
<
ξ
,
p
,
q
∈
T
G_{i o u}=\frac{G_{p} \cap G_{q}}{G_{p} \cup G_{q}}<\xi, p, q \in T
Giou=Gp∪GqGp∩Gq<ξ,p,q∈T
G
p
G_p
Gp和
G
q
G_q
Gq代表两个局部图,中枢
p
p
p与中枢
q
q
q是属于同一文本实例
T
T
T,分子与分母分别是两个局部图的
1
1
1-
h
o
p
hop
hop的交集与并集。
深度关系推理
局部图中包含的粗略链接信息(节点之间的边)对于估计枢轴及其邻居之间的链接可能性很有用。在局部图的基础上,本文采用基于GCN的深度关系推理网络来推断中枢与其邻域节点的链接可能性。图通常表示为 g ( X , A ) g(X,A) g(X,A), X X X为特征矩阵, A A A为邻接矩阵。
Node Feature Extraction
如图5中灰色矩形框所示,输入节点特征框需要由两个部分组成:上面分支的几何特征和中间分支的RROI特征。
其中RROI特征的输入为图3中的 F n Fn Fn,然后可以得到一个 1 × 3 × 4 × C r 1 \times 3 \times 4 \times C_{r} 1×3×4×Cr大小的张量,进一步reshape成为 1 × 12 ⋅ C r 1\times12\cdot{C_r} 1×12⋅Cr二维张量,记作 F r F_r Fr。
文本组件的几何属性根据[29]和[5]被嵌入到高维度空间,嵌入是通过将不同波长的正弦和余弦函数应用到标量
z
z
z,
ε
2
i
(
z
)
=
cos
(
z
100
0
2
i
/
C
ε
)
,
i
∈
(
0
,
C
ε
/
2
−
1
)
ε
2
i
+
1
(
z
)
=
sin
(
z
100
0
2
i
/
C
ε
)
,
i
∈
(
0
,
C
ε
/
2
−
1
)
\begin{array}{c}\varepsilon_{2 i}(z)=\cos \left(\frac{z}{1000^{2 i / C_{\varepsilon}}}\right), i \in\left(0, C_{\varepsilon} / 2-1\right) \\ \varepsilon_{2 i+1}(z)=\sin \left(\frac{z}{1000^{2 i / C_{\varepsilon}}}\right), i \in\left(0, C_{\varepsilon} / 2-1\right)\end{array}
ε2i(z)=cos(10002i/Cεz),i∈(0,Cε/2−1)ε2i+1(z)=sin(10002i/Cεz),i∈(0,Cε/2−1)
其中,嵌入向量
ϵ
(
z
)
{\epsilon}(z)
ϵ(z)的维数为
C
ϵ
C_{\epsilon}
Cϵ,结果是每一个文本组件都被嵌入到向量
F
g
F_g
Fg中,其维度为
6
⋅
C
ϵ
6\cdot C_{\epsilon}
6⋅Cϵ。
最终, F g F_g Fg与 F r F_r Fr执行Concat操作,作为节点特征。
Node Feature Normalization
为了更好地将中枢
p
p
p的特征编码至局部图中且为了更容易地学习到中枢与其邻居节点之间的链接可能性,本文将进行节点特征的归一化。
F
p
=
[
…
,
x
q
−
x
p
,
…
]
T
,
q
∈
V
p
\mathbf{F}_{p}=\left[\ldots, x_{q}-x_{p}, \ldots\right]^{T}, q \in V_{p}
Fp=[…,xq−xp,…]T,q∈Vp
其中,
x
p
x_p
xp是中枢
p
p
p的特征,
q
q
q是属于以
p
p
p为中枢的局部图
V
p
V_p
Vp的节点。
Adjacency Matrix Generation
本文使用邻接矩阵
A
p
∈
ℜ
N
∗
N
A_{p} \in \Re^{N * N}
Ap∈ℜN∗N来代表局部图。
Graph Convolutions
再得到了上述的
X
X
X和
A
A
A之后,本文采用基于图的关系推理网络。本文修改了[33]和[8]的结构,图卷积层的计算如下:
Y
(
l
)
=
σ
(
(
X
(
l
)
⊕
G
X
(
l
)
)
W
l
)
G
=
D
~
−
1
/
2
A
~
D
~
−
1
/
2
\begin{array}{c}\mathbf{Y}^{(l)}=\sigma\left(\left(\mathbf{X}^{(l)} \oplus \mathbf{G} \mathbf{X}^{(l)}\right) \mathbf{W}^{l}\right) \\ \mathbf{G}=\tilde{\mathbf{D}}^{-1 / 2} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-1 / 2}\end{array}
Y(l)=σ((X(l)⊕GX(l))Wl)G=D~−1/2A~D~−1/2
其中,
X
(
l
)
∈
ℜ
N
×
d
i
,
Y
(
l
)
∈
ℜ
N
×
d
o
\mathbf{X}^{(l)} \in \Re^{N \times d_{i}}, \mathbf{Y}^{(l)} \in \Re^{N \times d_{o}}
X(l)∈ℜN×di,Y(l)∈ℜN×do,
d
i
/
d
o
d_{i} / d_{o}
di/do是输入/输出节点的维度,
N
N
N是节点个数,
G
\mathbf{G}
G是
N
×
N
N\times N
N×N的对称归一化拉普拉斯算子,
⊕
\oplus
⊕是矩阵concatenation操作,
W
(
l
)
W^{(l)}
W(l)是特定层的可训练权重矩阵,
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)是非线性激活函数,
A
~
=
A
+
I
N
\tilde{A}=A+I_{N}
A~=A+IN是邻接矩阵加上自连接,即
I
N
I_N
IN是单位矩阵;
D
~
\tilde{\mathbf{D}}
D~是对角矩阵
D
~
i
i
=
∑
j
A
~
i
j
\tilde{D}_{i i}=\sum_{j} \tilde{A}_{i j}
D~ii=∑jA~ij。
本文中的深度推力模型由一个Batch Normalization层、4个接着ReLu的图卷积层组成,采用了softmax交叉熵损失。
推理阶段
- 根据关系推理结果,对文本组件分组
- 首先将阈值分别应用于TR和TCR,然后使用NMS减少冗余
- 遍历所有文本组件,以每个组件为中心构造一个局部图,因此获得了由链接可能性加权的一组边
- 使用宽度优先搜索BFS对链接进行聚类和合并
- 应用MinPath算法搜索所有文本组件中心的最短路径,然后通过搜索结果对实例T的各个组件进行排序
- 顺序地在有序文本组件中链接顶部和底部的中点,即可得到文本边界
实验
消融研究
使用关系推理网络后,在Total-Text、CTW1500和TD500数据集上,Hmean比baseline分别提升1.83%、0.78%和4.27%。在Recall上分别提升3.05%、0.88%和3.78%。
使用关系推理网络在TD500上的检测性能明显提高,但在CTW1500上并不明显,原因是CTW1500的标注是令人迷惑的,一些小文本没有标注,还有一些标注划分不合理,如图6所示。
与最优模型对比
多边形数据集:
-
Total-Text
如图7所示,本文提出的方法可以很好地检测细小的弯曲文本并且可以很好地划分排布紧密的文本。定量指标在Hmean上达到了85.73%,如表2所示。 -
CTW1500
本文方法同样在CTW1500上可以精准的检测文本边界,定量上达到了recall(83.02%),Hmean(84.45%)。
四边形数据集:本文针对此类数据集,将结果转化为矩形,使用最小的矩形进行评估。
-
MSRA-TD500
该数据集中包含很多长文本,本文方法可以成功地检测出任意形状、方向的长文本,如图7所示。
定量结果在Hmean上达到了85.08%。 -
ICDARs (IC15, IC17)
IC15包含很多低分辨率和小文本实例;IC17包含很多多语言场景图像和单词级别标注。
定量结果如表3和表4所示,在IC15和IC17的Hmean指标上分别达到了86.56%和67.31%。
总结
本文提出新的基于组件连接(CC)策略的文本检测方法。提出了基于图卷积的深度关系推理网络,来学习文本组件之间的链接可能性。
本文实验不仅在任意形状文本的数据集上表现出优越的检测精度,而且也适合定向和多语言文本检测。
遗憾的是,目前仅仅实现了检测功能,下一阶段应该完成端到端的文本阅读方法。