【论文笔记】Detecting Oriented Text in Natural Images by Linking Segments
Baoguang Shi, Xiang Bai, Serge Belongie. Detecting Oriented Text in Natural Images by Linking Segments[J]. arXiv preprint arXiv:1703.06520v3, 2017
本文针对文字检测的特定环境改进SSD算法,提出Seglink多方向文本检测方法。核心是将文本检测转换成两个局部元素的检测:segment和link。segment 是一个有方向的box,覆盖文本内容的一部分,而link则连接了两个相邻的segments,表达了这两个segment是否属于同一个文本。本文算法通过在多尺度上进行segment和link的检测,最终按照links的表达将相关的segment合并成最终的bounding box。经实验证明,该算法提高了检测正确率及训练效率。
-网络结构
-Training过程
-Combine算法
-实验相关
-算法的局限性
1. 网络结构(cnn model)
本文算法以图片作为CNN模型的输入,模型输出为一组segments和links。具体的网络结构如下图所示:
图中的网络由卷积feauture layers和predictors组成,在多个feature layer(文中为6个)上检测出segments和links,再合并成一个完整的检测结果。
网络结构与SSD相似,采用VGG16作为基础网络,其中全连接层(fc6,fc7)替换成卷积层(conv6,conv7),再接卷积层conv8_1到conv11。从其中的6个feature layer上检测segment和link,feature layer的索引设为
1)Segment的预测
segment的预测部分,网络结构与SSD很相似,不同地方在于: a)每个feature map的每个位置上只用了一个default box;b)default box的scale不是人工设置,而是与感受野相关,aspect ratio=1,不是原来的1,2,3,1/2,1/3;c)输出为
对于第
其中
2) Within-Layer Link和Cross-Layer Link
within-layer link表示在同一层feature layer里,每个Segment与8邻域内的segment的连接状况,如下图(a)所示。且每个link有2维,一维是正分,表示两个segment属于同一文本,一维是负分,表示两个segment不属于同一文本。所以,每个predictor输出16(8*2)维向量。
cross-layer link:在不同的feature layer上有可能会检测到同一文本的segments,造成冗余,cross-layer link的提出就是为了解决这个问题。cross-layer link连接了两个相邻feature layer上的segments,如图(b)所示。需要注意的是,由于下采样使后一层为前一层scale的1/2,定义一个segment的cross-layer邻居为前一层4邻域更小的segment,即前一层是后一层的邻居,但后一层不是前一层的邻居,所以
3) Output
每一个predictor都是一个卷积层,scale与接连的feature layer相同。每个位置上都有2+5+16+8=31维的输出,但Conv4_3层没有cross-layer link,所以该层的predictor只有2+5+16=23维输出。
2. Training过程
1)Groundtruths of segments and links
训练过程的Groundtruth包括:所有default box的label(正样本or负样本),default box的offsets,所有within-layer和cross-layer link的label。这些都通过文本groundtruth的bounding box来获得。
i) 判断default box是否为正样本:
首先假设一张图只有一个groundtruth,满足以下两个条件的default box记为正样本。a) box的中心在bounding box里面,如下图中(1)所示;b) default box的高度
如果图上有多个groundtruth,如果一个default box与所有groundtruth都不满足i)中的条件,记为负样本;否则记为正样本,且属于大小与他最接近的groundtruth。
ii) 计算offsets:
通过正样本来计算offsets的值,计算过程如下图所示。如(4)所示的黄色矩形框为训练要用的segment,而蓝色为正样本default box,它们之间的offsets即为网络要学习的。
iii) 判断link的label:
不论是within-layer link还是cross-layer link,满足以下两个条件即为有连接:a) 两个default box均为正样本;b) 两个default box均属于同一groundtruth。
2) Optimization
目标函数分为三个部分:segment classification, offsets regeression, link classification,与SSD相比,不仅学习的segment的box部分,还学习了它们的link关系。
另外,Online Hard Negative Mining和Data Augmentation的使用与SSD一样。
Online Hard Negative Mining 对于Segments和links来说,训练样本中的负样本均占大多数,所以平衡正负样本数量非常必要, 文中选取正样本和负样本数量的比例为1:3。正负样本的选择是一个难例挖掘的过程,首先确定了负样本候选集,计算prediction loss按照从大到小排列后,选择得分较高的候选负样本加入到负样本集。本文针对segments和links分别进行hard negative mining。
Data Augmentation 训练样本被随机裁切成一个patch,与groundtruth之间的overlap比例为:0,0.1,0.3,0.5,0.7,0.9,采样的patch与原始图像大小的比例在[0.1, 1]之间。在采样之后,每一个patch在进入训练前被resize到固定的大小,不进行水平翻转。
3. Combine算法
网络输出一组segments和links,数量的多少与图像的尺寸有关。
1)在合并前,分别设定segment和link的阈值
2)以segment作为node,以link作为edge,建立图模型。采用DFS(depth-first search)算法找到连通分量,每个连通分量即为一个单词或文本行;
3)将以上的连通分量进行连接,求出所有segment的平均
4. 实验相关
模型在SynthText数据集上进行训练,在真实数据集上进行fine-tune,在以下三个公开数据集上进行评测:ICDAR 2015,MSRA-T500,ICDAR 2013。训练和fine-tune过程中,图像在随机crop后resize到384
对数据集IC15,测试图像resize到1280
5. 算法的局限性
1)segments和links的阈值
2)无法检测间隔很大的文本行,如下图(b)所示;
3)无法检测形变的文本,如下图(c)所示。