最近做项目训练用到数据增强,在看一些如何在自然图像上生成合理数据的论文,欢迎志同道合的同学评论留言。
或者有什么好的论文可以共享一下。
参考博客:https://blog.csdn.net/u010167269/article/details/52389676
源码:https://github.com/ankush-me/SynthText
主要讲的第一部分合成数据的贡献 : https://blog.csdn.net/bvl10101111/article/details/76851281
在本文中,我们介绍了一种新的在自然图像中文本检测方法。该方法包括两个贡献:第一,快速且可缩放的用于生成杂乱的文本的合成图像方法。该方法以自然的方式将合成文本覆盖到现有背景图像,还考虑到图像的3D布局。其次,我们使用合成图像来训练全卷积回归网络(FCRN),该网络在图像中的所有位置和多个尺度上有效地执行文本检测和边界框回归。我们讨论了FCRN与最近推出的YOLO算法的关系,以及基于深度学习的其他端到端物体检测系统。我们的检测网络很好的检测到在自然图像中的文本,在标准ICDAR 2013基准测试中实现了84.2%的F值。此外,它可以在GPU上每秒处理15帧图像。
文本定位,即在自然场景中阅读文本的能力,是计算机视觉的非常重要的应用。最先进的系统通过结合两个简单而有力的方法实现了高级文本定位功能。首先,明确地将识别和检测单个字符组合起来识别文本的复杂识别方法可以被非常强大的分类器取代,这些分类器直接将图像块映射为单词。第二,通过综合生成所需的训练数据,可以学习这些强大的分类器。[19 Synthetic data and artificial neural networks for natural scene text recognition.]
虽然[20 Reading text in the wild with convolutional neural networks]成功解决了在给定包含单词的图像块的情况下识别文本的问题,但获得这些图像的过程仍然不是最理想的。一些通用的检测方法,如HoG ,EdgeBoxes和聚合通道功能,并仅在后期阶段引入文本分类功能,其中检测的图像块最终被识别为特定单词。这种情况是非常不受欢迎的,原因有二。首先,检测的性能成为文本定位的新瓶颈,主要是由于检测文本区域不正确。其次,整体效率缓慢。
在本文中,我们提出类似于[20]中文本检测的补充问题的改进。我们做出了两项重要贡献。首先,我们提出了一种生成文本合成图像的新方法,该文本自然地融合现有自然场景中,使用现成的深度学习和分割技术将文本框与背景图像轴对齐并尊重场景边界。我们使用此方法在杂乱的条件下自动生成新的文本合成数据集。这个名为SynthText in Wild的数据集(下图)适用于训练高性能场景文本检测器。与现有合成文本数据集(例如[20]之一)的主要区别在于它们仅包含字符区域,不适合训练检测器。
第二个贡献是文本检测网络,它既准确又有效。我们称之为全卷积回归网络。与用于图像分割的完全卷积网络(FCN)等模型类似,它在每个图像位置密集地执行预测。但是,与FCN不同,预测不仅仅是类标签(文本/非文本),而是包围以该位置为中心的单词的边界框的参数。后一种想法借鉴了YOLO算法。但卷积回归量显着提升了性能。
新的数据和检测器在标准基准数据集上实现了最先进的文本检测性能,同时在测试时比传统文本检测器快一个数量级(在GPU上每秒最多15个图像)。我们还通过检测器在直接插入文本,而不考虑场景布局的图像上进行训练来证明数据集的逼真度的重要性,则检测性能比较差。最后,由于更准确的检测步骤,一旦新检测器在最先进的方法中替换现有检测器,端到端的字体识别效果也会得到改善。我们的研究结果总结在第5节。
大型的模型,例如包含数百万个参数的深度CNN的监督训练需要非常大量的标记训练数据,人为的标注代价昂贵。此外,公开可用的文本定位或检测数据集非常小。这样的数据集不仅不足以训练大型CNN模型,而且不足以代表自然场景中可能的文本变化空间:字体,颜色,大小,位置等。因此,在本节中,我们开发了一个合成文本场景图像生成引擎,构建了一个用于文本定位的大型标注数据集。
我们的合成引擎(1)产生逼真的场景文本图像,以便训练的模型可以推广到真实场景,(2)完全自动化,(3)快速,这使得能够生成大量的无监督数据。文本生成方法可以总结如下。
我们的引擎需要大约半秒钟生成新的场景文本图像。此方法生成800,000个场景文本图像,每个图像具有以不同样式呈现的多个单词实例。
合成文本生成过程从对一些文本和背景图像进行采样开始。文本以三种方式从Newsgroup20数据集中提取 - 单词,行(最多3行)和段落(最多7行)。单词被定义为由空格字符分隔的标记,行由换行符分隔。这是一个丰富的数据集,自然分布的英文文本,散布着符号,标点符号,名词和数字。
为了支持多样性,通过在Google图像查询不同对象/场景以及室内/室外和自然/人工场所,提取了8,000个背景图像。为了保证所有出现的文本都被完全标注,这些图像不得包含自己的文本。因此,可以调用图像中的大量文本的关键字来避免,包含文本的图像通过手动检查被删除。
在真实图像中,文本倾向于包含在明确定义的区域中。我们通过要求文本包含在以均匀颜色和纹理为特征的区域中来近似该约束。这也可以防止文本穿过不连续图像,这比较符合实际。通过使用[3]的有效的图形分割方法,取0.11阈值对gPb-UCM轮廓层次处理来获得区域。
在自然图像中,文本倾向于在表面上绘制。为了在我们的合成数据中逼近类似的效果,文本根据局部表面法线进行透视变换。通过首先使用[30]的CNN预测上面分割区域的深度图,然后使用RANSAC [10 Random sample consensus:A paradigm for model fitting with applications to image analysis and automated cartography]方法将平面拟合到其上来自动估计法线。[深度图是为了对文本进行透视变换的 ]
文本与区域方向轴对齐方法如下:首先,使用估计的平面法线将图像区域轮廓扭曲成正面平行视图;然后,在扭曲好的视图上拟合一个矩形;最后,文本与此矩形的较长边(“宽度”)对齐。在同一区域放置多个文本实例时,会检查文本是否掩盖,以避免他们重叠。并非所有分割区域都适合放置文本,区域太小,具有极端的纵横比,或者具有与观察方向正交的表面法线,在这个阶段过滤所有这些区域。此外,还过滤具有太多纹理的区域,其中纹理程度通过RGB图像中的三阶导数的强度来测量。
讨论。使用CNN来估计深度的替代方案是使用RGBD图像的数据集,这是一个容易出错的过程。我们更喜欢估计不完美的深度图,因为:(1)它基本上允许使用任何场景类型的背景图像,而不仅仅是RGBD数据,以及(2)因为公共可用的RGBD数据集,例如NYUDv2 ,B3DO,Sintel 和Make3D 在我们的背景下有几个限制:小尺寸(NYUDv21中的1,500个图像,Make3D中的400个帧,以及B3DO和Sintel中的少量视频) ,分辨率低而且运动模糊,对室内图像受限(在NYUDv2和B3DO中),以及基于视频的数据集(B3DO和Sintel)的图像变化限制。[讨论了为何使用CNN估计深度图,而没有使用其他方法]
确定文本的位置和方向后,将为文本指定一种颜色。文本的调色板是从IIIT5K数据集中的裁剪后的单词图像中学习的。使用Kmeans将每个裁剪的单词图像中的像素划分为两组,得到颜色对,其中一种颜色近似于前景(文本)颜色而另一种颜色近似于背景。渲染新文本时,选择背景颜色与目标图像区域最佳匹配的颜色对(使用颜色空间中的L2范数),并使用相应的前景颜色渲染文本。
随机选择大约20%的文本带有边框。边框颜色选择与前景色增加或减少通道值,或者选择为前景色和背景色的平均值。
为了保持合成文本图像中的亮度梯度,我们使用泊松图像编辑[35 Poisson image editing.ACM Transactions on Graphics
]将文本混合到背景图像上。我们使用Raskar提出的基于离散正弦变换方法有效地解决了这个问题。
附快速的泊松图像编辑代码:https://web.media.mit.edu/~raskar/photo/code.pdf
在本节中,我们将介绍我们用于自然场景中文本检测的CNN架构。虽然现有的文本检测结合了几个临时步骤并且速度很慢,但我们提出了一种高精度,快速且可端到端训练的检测器。
设x表示图像。基于CNN的检测最常见的方法是提出可能包含目标对象的多个图像区域R,裁剪图像,并使用神经网络对建议区域评分将它们分为是否包含目标。这种方法已经被R-CNN推广[12],效果很好但速度很慢,因为每张图像都需要数千次经过CNN网络。
在本文中,我们提出了一种Hough投票的变体,其灵感来自全卷积网络(FCN)You Look Only Once(YOLO)技术 [36]。在ISM和Hough投票中,每个独立的预测通过整张图片汇总。 YOLO也是类似,但是避免投票并直接使用独立预测;由于这个想法可以加速检测,我们在这里采用它。
比对了hough voting方法和YOLO的差异。作者接下来提出了自己的网络结构。
虽然YOLO的方法允许获取在检测PASCAL或ImageNet对象时有用的上下文信息,但我们发现这不适用于更小和更多变化的文本出现。相反,我们在这里提出了一种介于YOLO和Hough投票之间的方法。与YOLO一样,每个检测器仍然可以直接预测物体的出现,而无需进行昂贵的投票累积过程;然而,在霍夫投票中,检测器是局部的并且是平移不变的,共享参数。我们将应用这个平移不变和局部预测器作为深层CNN的最后一层的输出,从而获得全卷积回归网络(FCRN)。
首先,在4.1节中,我们描述了评估模型的文本数据集。接下来,我们在4.2节中评价文本定位任务的模型。在4.3节中,为了研究合成数据生成方法中的哪些部分很重要,我们进行了详细的消融实验。在4.4节中,我们使用模型的结果进行端到端文本定位。我们在端到端文本定位方面展示了最先进的技术。最后,在4.5节中,我们讨论了使用我们的模型进行文本定位所获得的加速。
我们在标准数据集上评估我们的文本检测网络:ICDAR 2011,2013数据集和Street View Text数据集[43]。接下来将对这些数据集进行评估,并在表1中给出它们的统计数据。
自由的合成数据文本。使用我们的合成数据的方法,生成了80000张训练数据集,每张图像大约有10个标注的字符实例。
ICDAR数据集。ICDAR数据集(IC011,IC013)分别来自2011年和2013年的比赛。它们包含标志牌,书籍,海报和其他具有轴对齐边界框注释的文本的真实世界图像。数据集主要包含相同的图像,但随机分割测试和训练。我们不评估最新的ICDAR 2015数据集,因为它几乎与2013年数据集相同。
Street View Text。此数据集(缩写为SVT)由从带有轴对齐边界框标注的Google街景视图中收集的图像组成。 SVT比ICDAR数据更具挑战性,因为它包含更小和更低分辨率的文本。此外,并非所有文本实例都有注释。实际上,这意味着在评估中严重低估了精度。为每个图像提供由50个带有真实标注的干扰词组成的词典,我们指的是使用这些词典作为SVT-50对SVT进行测试。
我们评估我们的检测网络 ——(1)比较图像的单尺度和多尺度版本时的性能,以及(2)在用作文本检测时当使用高质量的建议时,改进最先进的结果。
训练。
推理。
评价方案。(1)ICDAR比赛中用的DetEval(2)PASCAL VOC中用的IOU交并比
单尺寸和多尺寸检测。如下表。
表2中的“FCRN多尺度”显示了我们网络的多尺度应用的性能。与单尺度方法相比,该方法将最大召回率提高了12%以上,并且优于Neumann等人的方法。
我们研究了合成文本场景数据生成的各个阶段对定位精度的贡献:我们生成三个合成训练数据集,其复杂程度越来越高,其中文本(1)被放置在图像中的随机位置, (2)限制局部颜色和纹理边界,(3)透视变换以匹配局部场景深度(同时也尊重(2)中所述)。数据集的所有其他方面保持不变 ——例如文本词典,背景图像,颜色分布。
下图显示了我们的方法“FCRNall + multi-filt”在SVT数据集上的定位结果。与随机放置相比,将文本限制为局部颜色和纹理区域会显着增加最大召回率(+ 6.8%),AP(+ 3.85%)和最大F度量(+ 2.1%)。增加失透变换可以看到边际改善:AP为+ 0.75%,最大F值为+ 0.55%,最大召回率无变化。这可能是由于SVT数据集中的大多数文本实例处于前后平行方向。 ICDAR 2013数据集观察到了类似的趋势,但由于ICDAR的文本实例比SVT简单得多,并且从更高级的数据集中受益更少,因此差异更大。
文本定位受到检测阶段的限制,因为最先进的文字剪裁图像识别精度超过98%。我们利用我们在文本定位方面的改进来获得文本识别最先进的结果。
表3显示了使用“FCRN + multi-filt”和“FCRN all + multi-filt”方法的端到端文本定位任务的结果。为了识别,我们使用Jaderberg方法。我们对先前报告的结果(F-测量)进行了提高:ICDAR数据集上+ 8%,SVT数据集上+ 3%。鉴于我们的方法的高召回率(如图5中所示),在SVT中许多未标记文本实例导致精度下降;因此,我们看到SVT的收益较小,而SVT-50的收益则更差。
和其他方法进行了推理时间的比较。主要是多尺度检测和是否检测全部的区域建议 。
我们开发了一种新的CNN架构,用于在图像中生成文本建议。在可用的标注数据集上训练这种结构是不可行的,因为它们包含的样本太少,但我们已经证明,可以综合生成足够逼真的训练图像,并且仅对这些图像进行训练的CNN超过了在现实图像上进行检测和端到端文本定位的最先进性能。