场景文本检测(TextSnake)

ECCV2018论文:TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes

文章链接https://arxiv.org/abs/1807.01544

github链接https://github.com/princewang1994/TextSnake.pytorch


        记录下自己在学习弯曲文本检测中遇到的一些比较好的检测算法,如:CTD+TLOC、TextSnake、Psenet、CRAFT等等。在场景文本检测算法中,从研究场景中水平多向文本开始,到如今不断出现检测扭曲文本的算法,而且越来越多优秀的算法开始出现,这次先记录下TextSnake。。。。,在数据集(Total-Text and SCUT-CTW1500)上,获得了state-of-the-art的效果。

        (a)矩形框选,(b)旋转矩形,(c)四边形,(d)蛇形(凸多边形),这也是近些年来(a、b、c)针对水平多向等文本检测的一个变化改进趋势,而(d)是本文作者提出的一种新的文本行构建形状(凸多边形),相比于其他三种形式,可以去除更多的背景无关区域,以适应各种形状文本。

TextSnake构建:

        首先定义TextSnake的基本单元,圆盘(Disk),我们将任意弯曲形状(假设文字与文字之间,同一个文字的不同部分之间不会重叠)的文本描述为若干不同大小的圆盘序列,每个圆盘拥有几个属性D=(c,r,\theta ):中心c=(x,y),圆盘半径(r),圆盘方向(\theta )。所有圆盘序列的中心点连接可以构成一条中心线(text center line, TCL),具体如下图,绿色为中心线,黄色区域为文字区域(text region, TR),蓝色为每个圆盘区域,这里要注意的是,圆盘的方向θ表示的是该圆盘的中心点与下一个圆盘中心点连接线和水平方向的角度。

        文本实例t可以看作是一个有序列表S(t)。S(t)={D0,D1,…,Di,…,Dn},其中Di代表第i个圆盘,n代表圆盘数。当获得S(t)后,则可可以通过构建DL模型来学习圆盘的各种集合属性,最后用于推测文字的位置和形状。

网络结构(pipeline):

        基于FCN+FPN网络预测文本框,包含特征提取、特征合并、输出层三个阶段,如下图所示,主干网络(蓝色)结构为一个VGG-16/19网络,VGG分为5次下采样,最后将原图缩小为1/32大小,并开始上采样,融合下采样时的特征图:

        按顺序叠加各个阶段,每个阶段由一个从上一阶段提取的特征图和相应的主干网络层组成。合并过程由下列方程定义:

第五个合并阶段之后,得到一个新的特征图,其size为原始输入图像的1/2;然后,增加上采样层和2个卷积层产生最终的像素级预测输出层P,其中最后一个卷积层为1x1的卷积把特征图映射为[B,H, W, 7]的7通道特征图P,其中H和W是原图的高和宽,B为batchsize,7通道分为:文本中心线(TCL,Text Center Line)2个通道、文本区域(TR,Text Region)2个通道,圆盘的几何属性(r、cosθ和sinθ)3个通道。

        在前向传播之后,网络输出层生成TCL、TR和几何图属性。对于TCL和TR的后处理,分别采用Ttcl和Ttr值阈值操作;然后,将预测得到的TCL的mask和TR的mask做一个element-wise product得到了最终的TCL区域(利用TR与TCL的交集消除噪点),(值得借鉴一下)。

Inference:

以TCL区域的任意一个点作为起始点,做Centralizing操作(Act(a)操作),具体步骤如下

初始化:在起始点利用sin和cos画出改点位置的切线(虚线)和法线(实线)

Act(a) Centralizing: 法线部分与TCL区域第一次相交的两个点取中点作为Centraling点

Act(b) Striding: 选定Centraling点,想切线方向迈一步,步长为±\frac{1}{2} r×cosθ

Act(c) Sliding: 从初始点的左右分别都生成到末端,每次在中心点画一个圆,最后所有被圆覆盖的地方我们就作为Text预测出来。

此外文章采用了启发式的过滤规则:

1、如果TCL的mask面积不到半径的0.2倍,剔除。

2、如果最终预测出来的Text面积与TR的交集不到TR的一半,剔除。

生成标签:

文本中心线:本文方法也依赖一个前提假设,即假设文本实例是蛇形的,不会分叉到多个分支。对于蛇形文本实例,它有两个边,分别是头部和尾部,即如图7(a)中的AH和DE(底边)。头部或尾部附近的两条边是平行的,但方向相反,如图7(a)中的AB和GH。

1、确定底边:

        由一组顶点{v0,v1,v2,…,vn}按顺时针或逆时针顺序表示文本实例t,确定一条边ei,i+1是底边的度量方式是旁边的两条边夹角是180度,定义一条边是底边的度量指标:

若M(ei,i+1)  接近--1,则为底边

2、分割长边:

        确定底边以后,他们首尾连接就得到了对应的长边,对两个边线(ABCD和HGFE)上采样相同数量的锚点,将两个长边分为相等的小段,把每个等分点相连,对应点连接后取中点,这个中点就是TCL的所在点,而连接线的长度就是圆盘的直径,两点之间连线的角度就是方向。

3、生成圆盘和TCL:

        为了让TCL能够完全包括在TR中,本文作者将TCL的两端缩小1/2 r(两端TCL点的半径)像素,这可以令TCL位于TR内,并使网络更容易学习两个相邻的文本实例。又因为单点线容易产生噪声,所以本文将TCL的面积扩大1/5 r,如(c)图中的浅红色区域。

损失函数:

        损失函数包括两个部分,分类loss和回归loss:

分类loss用于TR和TCL的分类,使用的是普通的Cross Entropy,而回归loss都是用了SmoothL1Loss:,其中,Lcls代表TR和TCL的分类损失,Lreg代表r、cosθ和sinθ的回归损失;Ltr和Ltcl分别是TR和TCL的交叉熵损失;Lr, Lsin和Lcos为smooth-L1损失:

实验:

        本文实验效果图,具体实验参数设置等细节见论文。

    TextSnake提出一种基于圆盘覆盖的文字结构表示,确实是比较新颖的,值得学习,而且文章实验效果还是很好的,但是2019年也出现许多其他优秀的算法(SPCNET等)来检测场景文本,同时简化了后处理的过程。


参考:

[1]:http://blog.prince2015.club/2019/01/06/TextSnake/

[2]: S. Long, J. Ruan, W. Zhang, X. He, W. Wu, and C. Yao.Textsnake: A flexible representation for detecting text of ar-bitrary shapes. In ECCV, pages 19–35. Springer, 2018. 2, 7,8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343