《Arbitrary Shape Scene Text Detection with Adaptive Text Region Representation》论文笔记
参考代码:暂无
1. 概述
导读:这篇文章为任意形状的自然场景下文本检测提供了一个新的算法,这个算法中使用了自适应形状的文本区域表达(使用RNN网络)。文章的网络首先给定一张待检测的图片,网络通过text RPN网络提取出可能的文本区域,之后这些区域通过优化网络进行修正与优化。在优化网络中采用了基于RNN结构去预测一对边界点,直到没有新的点预测出来为止(使用RNN去预测停止位),最后通过这样预测出来的点对任意形状的文本进行表达(构成一个包含文本的多边形区域)。文章的算法在CTW1500/ TotalText/ ICDAR2013 15/ MSRA-TD500数据集上获得了较为不错的效果。
2. 方法设计
2.1 网络结构
文章提出的检测网络整体运算流程如下图所示,主要包含了Text-RPN与Text-Refinement。Text-RPN主要用于产生文本候选区域,这样对应区域的CNN特征就可以通过对应区域截取得到(RoI Pooling)。Text-Refinement是对应流程中的后半部分,这里得到是否为文本的二分类结果,bounding-box与使用RNN网络得到的多对文本区域对应点,这些对应的点组合起来就是文本区域的多边形区域了。
2.2 文本区域的表达方式
在使用水平框对文本区域进行描述的时候2个对角线的点信息就足够了,但是对于扭曲文本的情况就显然无法满足了,例如CTW1500中有使用14个点来表示一个文本区域,但是这样固定的方式也是有明显局限的,因而可以输出多个点从而构成文本区域表达的方式应该是较为合理的。
在之前的论文中使用文本区域的“角点”来对文本区域进行表达(见原论文图2(a)图),但是会导致网络较难去学习,因而文章从文本区域的特点出发,分析文本的一些特征具有上下边界对应的关系,因而将其拆分成为了上下对应的点的形式,这也是文章使用RNN进行回归的目标,见下图3所示:
2.3 Text proposal
文章中使用的Text proposal方法与Faster RCNN中使用的RPN是类似的,只是采用的backbone与anchor设置不同,backbone是加了SE模块的VGG16,对于anchor的设置size为 { 32 , 64 , 128 , 256 , 512 } \{32,64,128,256,512\} { 32,64,128,256,512},对于aspect ratio为 { 0.5 , 1 , 2 } \{0.5,1,2\} { 0.5,1,2}。
2.4 Proposal Refinement
文章中网络的输出有3个分支:是否为文本区域的分类,水平检测框,基于RNN的文本区域多边形预测。前面两个分支与传统的两阶段检测方法类似,最后一个分支使用的不定长编解码结构正是这篇文章的核心所在。
在文章中采用的文本区域预测结构如下图5所示,在每一个时间步上预测得到一对坐标,等待解码完成之后就可以得到整个文本区域的多边形表达。
除了上面的文本区域表达方式之外,文章还提到了一种并未采用的方式:使用文本中心点 ( x i c , y i c ) (x_i^c,y_i^c) (xic,yic),中心点位置处的高度信息 h i h_i hi,中心点的角度信息 θ i \theta_i θi。但是这样的设计会使得网络的回归变得比较困难,因而文章还是选用上面提到的方式。
文章采用的方法涉及到使用RNN网络在每个time-step上去预测一对坐标点的值还需要预测是否还需要继续预测,这两个任务是没有办法兼容到同一个RNN网络中去的,因而文章采用的是2组RNN网络,分别去预测pair点坐标点与停止位。
2.5 网络损失函数
这篇文章的损失函数由4个部分组成:是否为文本的分类损失,水平检测框的边界回归损失,RNN网络对于坐标点的回归损失以及RNN网络对是否为停止位的回归损失。其损失函数定义为:
对于检测框分类损失使用的是log loss,水平框的分类使用的是原Faster RCNN相同的损失,而对于RNN输出的坐标点损失,文章中将其与文本区域中心点以及RPN输出框的宽高组合建立回归模型,使用的损失函数也是smooth L1。而RNN的停止位损失函数使用的是与之前分类损失一样的损失函数。
3. 实验结果
ICDAR 2015:
MSRA-TD500
速度:
图解Python数据结构与算法-实战篇
还没有评论,来说两句吧...