代码链接:https://gitlab.com/rex-yue-wu/ISI-PPT-Text-Detector
摘要
该论文由Yue Wu等人发表于ICCV 2017。针对文字检测中提取文字的行级候选区需要大量后处理、复杂且耗时的问题,提出了一种基于边界学习的场景文字检测方法(只需要极少后处理、可以区分任意形状的文本区)。
文章的主要贡献有:
(1)分析了将文字检测作为二分类问题(文字/非文字)的局限性;
(2)首次将边界类别引入到文本检测问题中,验证了文本边界在很大程度上简化了解码过程;
(3)建立了一个新的用于文本检测的ppt数据集(10692幅图像,非文本、边界和文本标注);
(4)提出了一个轻量级FCN(0.28M参数,支持多分辨率分析)来有效地学习文本图像中的边界。
1 方法
为什么文字检测需要繁杂的后处理过程呢?因为检测算法得到的候选区域不是期望的行级文字区域。为什么不直接预测期望的行级文字区域呢?实际上,有一些文字检测算法使用行级标注,以期获得文本行级的候选区域,但效果不佳,因为几行文字行间距很小时很难将几行文字拆分开。
将文字检测作为二分类问题具有局限性,如图1所示:图1(a)表明当行间距较大时文字/非文字可以正确地实现文本行分割,而当文本行间距很小时(图1(b))就无法将其分离开。作者引入了边界类(图1(c)中的绿色区域)来辅助进行文字区域分割,可以看出分割效果很好。边界类可以有效地将紧邻的文字区域划分开,而且文字类和边界类具有共存关系(因为边界是文字的边界),所以引入边界类有助于进一步提升文字区域预测。 作者提出将文字检测的二分类问题(文字/非文字)转化为三分类问题(文字/非文字/边界),采用端到端训练避免学习和调整显式的后处理规则、分类器和其他参数,测试阶段直接从预测的概率图中获得文本候选区(边界有助于将每个单独的文本区域与其他文本区域隔离开来)。
2 实验
作者建立了一个由PPT图像组成的文字检测数据集,该数据集包括10692幅PPT图像(77dpi,分辨率720*540,共93228个文字区),语言为英语和阿拉伯语。文中对边界类的定义为:假设原始文字区域的行高是ĥ,标记宽度为c∗ĥ的带状区域为文本边界(文中c取0.15)。下图是关于数据集的一些信息。
由于作者将文字检测问题重定义为分割问题,所以设计了一个轻量级的FCN网络来有效地学习文字边界从而实现文字检测。FCN的结构如下图所示(包括单分辨率和多分辨率):
为了验证方法的有效性,作者首先在自己建立的数据集上进行对比实验。将PPT数据集划分为训练集(0.9)、验证集(0.05)和测试集(0.05),数据扩增策略包括随机resize、随机颜色变换、随机旋转等等。训练获得单分辨率的baseline模型后直接将其植入多分辨率模型中继续训练至网络收敛。表2比较了Text-Block FCN和文中提出的FCN的效果,可以看出,文中提出的轻量级FCN在不引入边界类的情况下效果与Text-Block FCN相当,但是参数少得多(14.71M vs 0.27M)而且处理速度快。而引入了边界类之后,单分辨率的f值提升了27个点,而运行时间几乎没有增加;多分辨率的模型的f值更是达到了惊人的0.96。
从预测的概率map得到水平矩形bounding box的算法如下:
在公共数据集上的实验作者在ICDAR 2015和MSRA-TD 500数据集上进行实验,对每个数据集进行微调,图像过大时缩小(维持宽高比),重复使用多分辨率baseline训练过程的所有设置。对标注进行修正:
实验结果:
可见,该方法不仅在水平文字检测方面效果出色,而且对于倾斜文字的检测效果也达到了state of art水平。对于扭曲文字,该方法也有很好的效果。下面是一些图像上的检测结果,图中蓝色区域表示非文本区,红色表示文本区,绿色表示边界。
3 分析总结
该方法也有一些缺陷和不足,比如垂直文本错误划分、异形文字检测、光照强烈情况下的漏检情况等等,如下图所示:
总而言之,边界类的引入使得文字检测任务的后处理工作大大减少;边界和文字具有共存关系,可以利用边界来进一步提升文字检测的准确率;边界的形状与文字区域的轮廓紧密相关,可以用于文字区域的校正等工作。