edas字体嵌入acrobat_acrobat 嵌入字体_无法提取嵌入的字体

IEEE国际计算机视觉与模式识别会议 CVPR 2020 (IEEE Conference on Computer Vision and Pattern Recognition) 大会官方论文结果公布,旷视研究院 16 篇论文被收录(其中含 6篇 Oral 论文),研究领域涵盖物体检测与行人再识别(尤其是遮挡场景),人脸识别,文字检测与识别,实时视频感知与推理,小样本学习,迁移学习,3D感知,GAN与图像生成,计算机图形学,语义分割,细粒度图像,对抗样本攻击等众多领域,取得多项领先的技术研究成果,这与已开放/开源的旷视AI生产力平台Brain++密不可分。

本文是CVPR 2020论文系列解读第9篇。旷视研究院研究提出了一个合成场景文字图像的创新思路,这个合成引擎可以用3D图形引擎来渲染图像,其中文字和场景可以作为整体来渲染。一系列实验结果显示出本文方法的优越性。目前代码已开源。

论文名称:UnrealText: Synthesizing Realistic Scene Text Images from the Unreal World

论文链接:

论文代码:

目录

结论

参考文献

往期解读

导语

近年来,虽然文字检测与识别任务在神经网络技术的复苏下取得巨大飞跃,但这些深度学习模型也给带来了不少挑战。一方面,需要海量数据才能有效进行训练;另外,数据获取的成本十分高昂,有时还相当困难。

不仅如此,若想让模型在具体应用场景下获得不错的性能,还需要收集相应场景下的数据,这进一步加剧了数据的成本难题。因此,场景文字(scene text)任务中,数据合成及数据合成算法扮演了重要的角色。同时,数据合成还能提供大量真实数据因成本问题而不具有的详细标签信息。

目前,学界已提出多个有价值的合成算法。尤其是在场景文字识别领域,单是在合成数据上训练就已被接受为一个标准操作。然而,当一些研究员尝试用合成数据与真实数据同时训练模型时,却发现在大多数数据集上只取得了小幅性能提升。

与文字识别相反,场景文字检测领域目前仍然严重依赖真实数据。合成数据对于模型性能的提升并不必要。从现有合成器原理来看,大多比较类似。首先,系统会分析图像的背景,即使用现成的模型来进行语义分割和深度估计;然后,从分割出来的区域提取文字可能会嵌入的位置;最后,文字图像(前景)会依据估计出的深度信息来弯折、变形,嵌入背景图像。

但是问题在于,现有模型分析图像背景可能不够精准且较粗糙。如果这些误差进一步传递至文字生成模组,则会使得生成的文字嵌入到不恰当的位置上。另外,文字的嵌入过程也忽略了图像整体层面的因素,如光照和场景中的遮挡。对这两个因素的忽略使得文字会突兀地从背景中显现出来,让合成图像难以达到真实图像的水平。

简介

在本文中,旷视研究院提出一个数据合成引擎,可以从3D虚拟世界合成逼真的场景文字图像;它基于Unreal Engine 4(UE4)引擎构建,故称之为UnrealText。具体而言,合成的文字可以认为是前景带有纹理的平面多边形网格。这些网格被置于3D世界中合适的位置,经过渲染后,与场景融为一体。

edas字体嵌入acrobat_无法提取嵌入的字体_acrobat 嵌入字体

图1:UnrealText合成效果图

如图1所示,UnrealText较现有方法有如下优势:1)文字与场景整体渲染,在光照、遮挡和视角变换上皆实现了逼真效果;2)可以获取关于场景的精确信息,比如法向量、深度、物体网格等,因此能生成更好的文字区域信息。这些优势对于训练检测器来说至关重要。

为了进一步探究UnearText的潜力,研究员设计了3个关键部件:1)一个可以探索虚拟场景并生成相机视角的搜索算法,获得更多多样化且自然的背景;2)一个有规律改变环境光照条件以模仿真实世界变化的环境随机化模组;3)一个基于网格的文字区域生成方法,通过分析3D网格信息寻找合适的文字放置区域。

3D虚拟世界中的场景文字

UrealText基于UE4和UnrealCV插件构建:1)它能生成照片级真实度的图像;2)高效渲染、生成一张新的场景文字图像,仅需1到1.5秒;3)它是一个通用的、兼容现有3D场景模型的引擎。

acrobat 嵌入字体_无法提取嵌入的字体_edas字体嵌入acrobat

图2:本文合成方法的基本工作流程

图2是本文方法的整体流程,可以看到,它由一个视角搜索模组、一个环境随机化模组、一个文字区域生成模组和一个文字渲染模组构成。

视角搜索

视角搜索(viewfinder)模组的功能是根据3D场景自动决定相机的一系列位置和翻转情况,期间需要保证选择合理、变化明显,不能选择诸如从物体网格内部看出去的视角(如图3右下方)。

无法提取嵌入的字体_edas字体嵌入acrobat_acrobat 嵌入字体

图3:第一行(1)-(4)为随机游走算法的效果展示;第二行为本文方法和随机采样的视角的效果对比

基于学习的方法如导航和探索算法可能需要额外的训练数据,并且还不能保证可以泛化到不同的3D场景。因此,研究员转向到使用基于规则的方法,设计了一个受物理约束的3D随机游走算法,它同时还带有相机锚以更好地增强游走算法的效果(图3第一行)。

受物理约束的3D随机游走方法。该方法会从一个有效的位置开始游走,目的是找到下一个有效且变化不能太细微的位置。相对于有效位置,无效位置是指诸如物体网格内部或远离场景边界的情况。所谓位置变化不能太细微,是指变化后的位置不能过于接近现有位置,否则,新视角会和现有视角类似。本文提出的3D随机游走方法使用了光线投射方法(ray-casting),它受物理规则约束,可以通过检查物理环境来决定游走的位置。

具体来说,在每一步首先会随机改变相机翻转的俯仰(pitch)和偏移(yaw)值,让相机指向一个新的方向;然后从相机位置向视角方向投射光线。光线当抵达任何物体网格(或传播到一个固定长度)后会停止传播。在设计中,从现有位置到光线停止位置间的路径不能存在障碍物,即光线不会透过物体网格进行传播。所以,沿着光线路径的所有位置点都是有效的。最后,通过设定采样标准,保证视角变化不能太细微,该随机游走算法实现了可以生成多种相机视角的功能。

辅助游走算法的相机锚。鉴于本文提出的随机游走算法在对场景不同位置的探索上不够高效,因此,研究员在3D场景中手工选择了N个相机锚作为起始点,每过T步无法提取嵌入的字体,就重置相机位置。需要说明的是,这些位置点的选择没有严格的要求,只要保证视角能涵盖整个空间即可。

环境随机化

为了让引擎生成的环境具有真实世界一般的变化因素,比如光照条件,研究员会随机改变场景中所有光线的密度、颜色、方向。此外,团队还会增加烟雾条件,随机调整其浓度。环境的随机化操作可以保证提供多样化图像,训练出更加强大的检测器。

文字区域生成

真实世界中,文字通常嵌入在可以很好定义的表面上,如交通牌。因此本文提出了一个通过围绕3D世界中的物体网格进行探测来实现文字区域查找的方法。另外,考虑到对每个物体网格都进行检查很耗时间,因此提出一个两阶段流程:1)首先,检索ground truth的表面法向量图,生成最初的文字候选区域;2)然后,用物体网格把这个候选区域投影到3D世界并进行修正。进一步研究员从修正的区域采样出一个子集进行渲染。为了避免候选区域之间出现遮挡,研究员会把它们投影回屏幕空间,然后一个个丢掉重叠区域,直至遮挡消失。

从法向量图获取初始文字候选区域。在计算机图形学中,法向量值都是垂直于一个表面的单位向量。当投影到2D的屏幕空间时,有类似法向量值的区域就可能是一个可以很好定义的嵌入文字的区域。具体而言,研究员通过用64×64像素的网格在表面法向量图上滑动,检索平滑的表面法向量来查找有效的图像区域。进一步,随机采样至多10个不重叠的有效图像区域,来作为最初的文字候选区域。

在3D世界修正候选区域。如图4所示,2D屏幕空间中的方形初始候选区域会在投影到3D世界后发生扭曲变形。

无法提取嵌入的字体_acrobat 嵌入字体_edas字体嵌入acrobat

图4:对初始文字候选区域的修正效果

因此,需要首先矫正投射到3D世界的候选区域。研究员将初始区域的中心投射到3D空间,然后在围绕该点的相关网格表面上重新初始化一个正交框(下面的边与地平面平行,正交于引力方向)。然后,扩大宽度或高度,实现修正。

文字渲染

生成文字图像。当完成图像中的文字区域的修正,文字生成模组会采样文字内容,然后使用特定的字体和颜色渲染文字图像。文字的行数和每行的字符数由字体大小和在2D空间中修正的候选区域大小来决定,从而保证字符不会太小,具有可读性。

在3D世界中渲染文字。研究员首先会对修正后的候选区域进行三角划分,以生成与底面紧密相连的平面三角形网格。然后将文字图像作为纹理加载到生成的网格上。此外,研究员还会随机采样纹理属性,比如漫反射、镜面反射比例。

实验

场景文字检测

为验证UnrealText的有效性,研究员使用当前领先的文字检测模型EAST来训练,并在真实数据集上进行测试。

完全在合成数据集上训练。研究员首先完全使用合成数据集训练EAST模型,对比不同合成数据集的训练性能,如表1所示。可以发现,由于不同合成数据集训练样本的数量差异,研究员在控制训练数据的前提下做了对比。所有情况下,本文方法训练的EAST模型皆显著超越其它方法。

acrobat 嵌入字体_edas字体嵌入acrobat_无法提取嵌入的字体

表1:在不同合成数据集上训练的EAST模型的检测结果(F1分数)对比

合成数据集的互补。考虑到UnrealText是从3D场景模型来生成图像,与从真实图像背景生成图像存在潜在的画风差异,研究员还用本文的合成数据和基于真实图像的合成数据VISD联合训练EAST模型,以测试效果,见表1最后一行。可以发现同样是在10K训练数据的前提下,混合训练的效果要好于单用任何一种数据训练的效果。

与真实数据协同训练。一般而言,合成数据的一个重要角色是用于模型的预训练,然后人们会进一步用某一具体领域真实数据集来提升性能。本文首先用不同合成数据对EAST进行了预训练,然后用具体领域的数据来微调模型,结果如表2。可以发现,用本文合成数据来协同训练的模型性能显著超越了其它方法。

无法提取嵌入的字体_acrobat 嵌入字体_edas字体嵌入acrobat

表2:EAST在合成数据集上预训练并用真实数据微调后的性能对比

在完整合成数据集上的协同训练。同样如表2所示,当研究员用本文方法合成的完整数据集进行预训练后,最终的模型性能得到了进一步提升,甚至在MLT17上的F1分数达到了74.1,超越了最近的SOTA结果(CRAFT 73.9,LOMO 73.1)。虽然增幅不大,但也说明本文方法的有效性。

场景文字识别

场景中拉丁文字的识别。研究员选用了基线模型ASTER,采用了ICDAR 2019 ArT 挑战赛拉丁文字识别组冠军模型的配置,结果如表6所示。

无法提取嵌入的字体_edas字体嵌入acrobat_acrobat 嵌入字体

表6:在英语数据集上的结果

可以看到,在限制训练的单词图像数量为1M的前提下无法提取嵌入的字体,用本文合成数据训练的模型性能明显高于其他合成数据集,同时在SVTP这样有着多种文字样式和复杂背景的数据集下的测试结果也表明,本文方法能很好提升场景文字识别系统在复杂案例上的表现。进一步,在更大的数据量训练下,本文方法合成的数据依然展现出了显著的优越性。

场景中多语言文字的识别。MLT 2017数据集虽然包含了多种语言,但是一直以来人们主要还是用它来进行文字检测的研究,因为大家没有足够的多语言文字识别训练数据。为此,研究员专门建立了一个包含MLT 2017中10个语言的多语言数据集,以供本次乃至未来进一步研究使用。

edas字体嵌入acrobat_acrobat 嵌入字体_无法提取嵌入的字体

表3:场景中多语言文字识别结果(其中MLT数据集将英语、法语、德语、意大利语均归为拉丁语类)

从结果可以看到,无论是单独使用,还是混合MLT-19进行使用,本文合成数据下的模型训练在总体性能上较先前工作均有显著提升,且在部分语言上(拉丁+7.6%, 混合+21.6%)更加突出。

结论

在本文中,旷视研究院提出一个合成场景文字图像的新引擎UnrealText,可以借助3D图形引擎来渲染图像,并且把文字和场景作为整体来渲染。一系列实验结果表明了该方法在文字检测/识别模型上的有效性。本文还研究了该引擎的不同部件,并相信该工作朝着更佳的合成算法迈出了坚实的一步。

参考文献

入群交流

欢迎加入旷视文字识别技术交流群

或者添加farman7230入群

往期解读

传送门

欢迎大家关注如下旷视研究院官方微信号