这篇论文是乔宇老师发表在ECCV2016的一篇文章,创新点在于:提出了文本可以看做一个由固定宽度的text proposals密集排列组成的序列,可以用Anchor来预测这些文本候选区域,最后将它们用文本线构造法连接成最后的文本区域。另外,还引入了一个双向LSTM来编码文本序列的上下文信息帮助预测。
网络结构
CTPN类似于Faster RCNN+LSTM,预测的是等宽的text proposals,最后用文本线构造法连接proposals
参考https://zhuanlan.zhihu.com/p/34757009
- 首先用VGG16提取特征,获得大小为 N,C,H,W 的conv5特征图
- 用 3*3*C 的卷积对conv5特征图做卷积,每个点都结合周围3*3的区域获得一个长度为3*3*C的特征向量,最终输出N*9C*H*W的特征图,该特征图只有卷积的空间信息,而没有序列信息
- 再将这个feature进行reshape:N*9C*H*W----->NH*W*9C
- 然后以Batch=NH,且最大时间长度Tmax=W的数据依次输入到BiLSTM中,学习每一行的序列特征。双向LSTM输出(NH)*W*256,再reshape:(NH)*W*256----->N,256,W,H,这样得到的特征既有空间信息,又有序列信息
- 然后经过全连接FC层,变成N,512,H,W的特征
- 输出预测k个anchor的text/non-text acores, y-axis coordinates, side-refinement offsets
- 随后通过NMS、文本线构造法得到文本区域
- 最后用Side-refinement修复left、right坐标
为何用双向LSTM?
- 文本是一个序列,而CNN只能提取到空间信息,无法提取序列信息,而且双向LSTM使得感受野可以corer到整个图片的宽度。
FC层如何得到Text Proposals?
CTPN通过CNN+BiLSTM学习到一组具有“空间+序列”的特征后,直接连接512D的全连接层预测进行Anchor的预测。作者给每个点配了10个等宽不等高的Anchor,分别预测以下内容:
- 经由SoftMax预测Text/None-Text score(2k)
- 回归Vertical Coordinates,包括Anchor的y轴坐标以及高度H(2k)
- Side-Refinement:由GT计算出离左、右边距离为32-pixel之内的点,位于这些点的Anchor还要额外预测距离文本左边或右边的Side Offset(k)