文本检测Progressive Scale Expansion Network 笔记

最近读了发表南京理工和南大联合发在cvpr2018的文章《Shape Robust Text Detection with Progressive Scale Expansion Network》,这篇文章提出了一个用于文本检测的网络PSENet。下面对文章的主要内容做一下笔记顺便分享一下。本人水平有限,接触神经网络时间不到一年,如果有理解或者表述不当的地方,请各位大佬批评指教。如果侵犯了作者的权益,麻烦作者大佬联系我修改或删除。
论文地址:https://arxiv.org/abs/1806.02559

文章的主要目的

对文章的效果以及其他大家都熟悉的东西就不过多描述了,主要集中在这篇文章独一无二的创新上。
其实之前已经有很多的文本检测的网络了,这篇文章解决的主要问题和找到的点主要在于以下两个:
(1)当前的很多文本检测网络用的四边形的bounding box对于不规则形状的文本或者形状比较随意的文本其实不太合适,识别出来的范围不算太好;
(2)很多相互靠的很近的文本经常被作为一个整体识别出来,比如两行的文本就可能会识别成一个对象。
因此本文在提高检测精度的基础上,着力点主要在这两个方面,为了解决这两个问题。这篇博客下面的内容也是按照这两个目的来写的。
对于第一个问题,这里采用的方法是进行像素级别的识别,这样对任何不规则的形状都可以识别;对于第二个问题,作者提出的方法是递进式的比例扩展(Progressive Scale Expansion),也就是本文的核心。

网络结构

网络的整体结构如下截图所示:
在这里插入图片描述
上图中,绿色方块层F之前的骨干结构是FPN网络,不多赘述,这个网络有专门的论文。F是一个1024通道的层,长和宽都是为原图片大小的一半,F这1024个通道来自P2,P3,P4和P5各256个通道的组合。F此后通过一系列3x3和1x1的卷积层,得到n幅mask也就是图中的S1到Sn。这里并没有用softmax之类的分类,而是对每个像素直接“回归”出了一个0到1之间的值,大于0.5的取为1,小于0.5的取为0,这样就得到了Si。
实际上这一步已经实现了目的中的第一个,也就是基于像素识别出文本区域,文本区域就是Sn中的白色区域。但是到这里有一个问题就是,文本区域是一大坨摆在那里,对于很多相互靠的很近的文本块,并不能够区分出来。然后下面就是对于不同的文本区域进行区分,比如区分不同的行。

逐步扩展PSE

得到S1到Sn这一串mask以后,接下来就是进行一系列的操作,这些操作已经不再属于网络的范畴里了,所以这个网络不是一个端到端的网络结构。
逐步扩展的方法可以参考如下的步骤:
(1)先从S1中找出所有的连通区域,比如上图中的连通区域有4个,这样,我们就认为有4个文本区域,记为4个核。
(2)把这些核放到S2中,把每个核的大小扩展到和S2一样,这里使用广度优先搜索的方法进行扩展。这样的话可以把S2中的每个像素属于哪个文本区域划分出来。然后再把这个扩展后的核放到S3中,按照S3的文本区域的样子扩展,扩展到和S3一样,如果有更多的Si则以此类推,最后得到Sn中每个像素属于哪个文本区域。这样就把靠的很近的文本区域分开了。

实际上到这里上面提到的文章的两个目的已经都实现了。下面的内容是对文章一些其他的需要注意的地方简要记录一下。

Note:这里的广度优先搜索的方法我也没有仔细看是怎么实现的,就不在这里瞎说了-_-

loss函数

loss函数包括两部分:
在这里插入图片描述
Lc是Sn的loss,Ls是S1到Sn-1的loss的和。
论文作者考虑到的一个情况是图片中的文字区域也就是Sn可能很小,那么对应的Si就会更小,这样用交叉熵误差就不太合适,不够精细。所以他们用了dice coefficient来求loss,这样可以着重求文本区域的loss。dice coefficient如下图所示:
在这里插入图片描述
因为groundtruth中黑色区域的值为0,因此,求得其实还是是文本区域的相似程度,然后Lc=1-D。Ls的道理也差不多,这个理解起来很容易,不在多讲了。不过作者在训练的时候又选了一些不容易识别,容易出错的样本进行训练,也就是Online Hard Example Mining。

关于“progressive(逐步)”

论文中“progressive”这个词还是比较重要的,基于这个词,有两个超参数需要注意,一个是Sn的n(也就是“逐步”的“步”是多少),另一个是S1的大小(也就是最小的核或者说mask是多大,占Sn的多少比例)。关于这两个超参数,论文作者给出的变化情况是:
在这里插入图片描述
可以看到,随着n增大,识别效果越好。但随着m增大,效果先增后减(这个很好理解,如果m很小,那S1中的文字区域就很小,对于一些长文本区域来说容易产生断开等情况;如果m过大,S1又太接近Sn,不能充分发挥出“逐步”的优势)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值