论文地址:Character Region Awareness for Text Detection
在处理具有挑战性的文本时,字符级意识有许多优势,可以通过自下而上的方式链接连续的字符。但目前大多数存在的文本数据集并没有提供字符级别的标注,因为这个工作代价非常大。
方法总述
由卷积神经网络产生字符region score和affinity score。region score用于定位图片中的单个字符,affinity score用于将单个字符分类到相应的实例。为了弥补缺少字符级标注的问题,作者提出了一个weakly-supervised学习框架,从现存的单词级的数据集中估计字符级的ground truth。
训练
产生ground truth
也就是产生ground truth的region score和affinity score,前者表示每个pixel是字符的中心的概率,后者表示每个pixel是相邻的字符中间的空间的中心的概率。
这里的两个score map并不是以0 1作为值,而是使用Gaussian heatmap来编码。
上面这个图解释了如何生成ground truth的两个map。
region score的生成:
- 对于每个字符box,提前准备一个2维的各向同性的Gaussian map;
- 计算Gaussian map和每个字符box之间的透视变换;
- 将Gaussian map对应到字符box区域。
affinity score的生成:
- 对于相邻的两个字符box,分别有四个顶点;
- 将每个box的两个顶点相连,每个box产生两个三角形;
- 取每个三角形的中心,会得到四个坐标,分别作为corner构成一个新的四边形;
- 这个四边形同样和上述的说法一样,用一个Gaussian map通过透视变换对应。
弱监督学习
上面提到了如何根据字符box生成两个map,但字符box本身在数据集中就是没有被标注的,所以我们需要先以弱监督学习的方式,从每个单词级别的标注中生成字符级别的标注。
上面这个图表示是整个训练的过程。
synthetic image是具有字符级标注的数据集中的某个图片,而real image只有单词级标注。
首先进行的是蓝色的线,也就是synthetic image,这部分图像是打了标签的,当用该数据集训练,模型趋于稳定后,再使用real image进行弱监督。
弱监督的具体的流程是:
- 将real image按照单词级的标注crop成多个文本区域;
- 通过网络预测得到region score;
- 使用watershed algorithm;
- 得到字符级的bounding box;
- 对应到原来的图片上,得到字符级的标注的图片。
由于real image的字符级的标注并不一定准确,所以这里用字符个数作为监督信息,因为字符个数一般在数据集中会提供,而且这也很容易通过预测后的字符级标注得到。对于字符个数预测准确的real image,由它产生的pseudo GT的置信度也会更高,因而模型预测出的结果和这个pseudo GT之间的loss更能影响模型的参数调整。
置信度的定义:
S
c
o
n
f
=
l
(
w
)
−
m
i
n
(
l
(
w
)
,
∣
l
(
w
)
−
l
c
(
w
)
∣
)
l
(
w
)
S_{conf}=\frac{l(w)-min(l(w),|l(w)-l^c(w)|)}{l(w)}
Sconf=l(w)l(w)−min(l(w),∣l(w)−lc(w)∣)其中,
l
(
w
)
l(w)
l(w)是real image中的单词级标注
w
w
w包含的真实的字符个数,
l
c
(
w
)
l^c(w)
lc(w)是预测得到的字符个数,置信度的值显然在0-1之间,且当预测个数和真实个数相等时,达到了1。
最终的目标损失函数计算为:
L
=
∑
p
S
c
(
p
)
⋅
(
∣
∣
S
r
(
p
)
−
S
r
∗
(
p
)
∣
∣
2
2
+
∣
∣
S
a
(
p
)
−
S
a
∗
(
p
)
∣
∣
2
2
)
L=\sum_p S_c(p)\sdot (||S_r(p)-S_r^*(p)||^2_2+||S_a(p)-S_a^*(p)||^2_2)
L=p∑Sc(p)⋅(∣∣Sr(p)−Sr∗(p)∣∣22+∣∣Sa(p)−Sa∗(p)∣∣22)带星号的是pseudo GT,不带星号的是预测的,将region score 和affinity score的差值都以L2损失计算,并且乘上置信度。
p
∈
R
(
w
)
p\in R(w)
p∈R(w),是
w
w
w中的一个像素。