Synthetic Data for Text Localisation in Natural Images 之 FCRN 结构学习笔记

Synthetic Data for Text Localisation in Natural Images 是VGG组所做的CVPR2016的文章,实现 text spotting. paper的核心点是两个:synthetic data 的生成 + FCRN 结构。

synthetic data 实现:人工将没有任何文本行的img与随机的文本行(‘word’) “粘”起来,得到我们想要的训练数据。这样做是为了获取大量的训练数据以支持deep net 的训练;以及,这样做我们可以对合成所得的图像内,文本行的label信息非常精准的定位。因为就是我们自己合成“粘”上去的啊,这有利于识别结果的精度提高。

关于实现synthetic data 部分的算法我个人觉得有点复杂,参考了两篇博文:

synthetic data 算法解读1    这一篇写 Synthetic Data 算法真的蛮仔细的,我差不多算是看这个才懂的。

synthetic data 算法解读2

然后,这里写一下我自己对这篇paper的第二创新点 FCRN 结构的理解吧:

网络结构是基础的特征提取部分+text predictor部分,基础部分是9层conv4层maxpooling:

Synthetic Data for Text Localisation in Natural Images 之 FCRN 结构学习笔记

paper中首先是把img都resize成512x512大小的。然后因为是4层maxpooling,所以到最后得到的feature map那里,每一个pixel的感受野是2^4=16,二个维度的话,那么map中的每一个pixel就是含有16x16个pixels的特征。paper中的:

Synthetic Data for Text Localisation in Natural Images 之 FCRN 结构学习笔记每个16x16(也即最末层的feature map中的每个pixel结构)中含有512个 ϕfuv(x,我不是很理解。难道是每一个pixel可以像2个方向predictor?所以16x16x2=512?这个我搞清楚后再来补充。

有了 ϕfuv(x之后,现在可以构建 dense text predictors,些 ϕfuv(x施以7个 5x5 大小的ϕruv。


ϕruv 要 regressing 7 个参数中的一个:

Synthetic Data for Text Localisation in Natural Images 之 FCRN 结构学习笔记这里我与synthetic data 算法解读2理解不太一样...


Synthetic Data for Text Localisation in Natural Images 之 FCRN 结构学习笔记

注意是对input img 进行尺度缩小。


最后是:Post-processing proposals 

为了进一步的提高 FCRN 的检测性能,paper 使用 Max Jaderberg 等人在 Reading Text in the Wild with Convolutional Neural Networks 中使用的 post-processing 方法:

  • 用一个 random forest classifier 来过滤 text/non-text;
  • 使用一个 bounding box regression 的 CNN 结构来进一步提高 bounding box 的准确度;
  • 再经过一个 NMS。


paper的核心大概还是 word detection 比较重点吧,所以算法核心也基本在 synthetic data 这块,FCRN介绍的不太多。text spotting也只在4.4 text spotting 里写了一点点。paper最终用的是: FCRNall + multi-filt 实现end-to-end img内文本行识别:

Synthetic Data for Text Localisation in Natural Images 之 FCRN 结构学习笔记

最高的成绩刷到了84.7%。。。



以上,有新的理解会再来补充,欢迎大家指正!!!