DocUNet:通过堆叠的U-Net文档图像解扭曲
摘要:由于移动摄像机无处不在,捕获文档图像是数字化和记录物理文档的常见方式。为了使文本识别更容易,当物理文档页被折叠或弯曲时,通常希望以数字方式展平文档图像。在本文中,我们开发了第一种基于学习的方法来实现这一目标。我们提出了一个具有中间监督的堆叠的U-net[25],以直接预测从失真图像到其校正版本的正向映射。因为难以获得具有地面真实变形的大规模真实世界数据,所以我们通过扭曲未变形的文档图像来创建具有大约10万个图像的合成数据集。该网络在该数据集上用各种数据扩充进行训练,以提高其泛化能力。我们进一步创建了一个涵盖各种现实条件的综合基准。我们在建议的基准上对建议的模型进行定量和定性评估,并将其与以前的非基于学习的方法进行比较。
1引言
文档数字化是保存现有打印文档的重要手段,使它们更容易随时随地访问。传统上,文件是用平板扫描仪数字化的,平板扫描仪是一种便携式、昂贵的设备。最近,随着移动相机的日益普及,对物理文档拍照已经成为扫描物理文档的最简单方式。一旦捕获,图像可以通过文本检测和识别管道进一步处理,用于内容分析和信息提取。
在拍摄文档图像时,一个常见的实际问题是文档页面不适合扫描:它们可能是弯曲的、折叠的或皱巴巴的,或者位于复杂的背景上。想想从口袋里拿出一张皱巴巴的收据。如图1所示,所有这些因素都可能对下游的自动文档图像分析过程造成重大问题。因此,希望对捕获的图像中的这种文档进行数字展平。
之前已经使用各种方法解决了文档图像平面化的问题。一些视觉系统依靠精心设计、校准良好的硬件来测量文档的3D失真,例如立体摄像机[35,29]或结构光投影仪[1,21]。它们产生高质量的结果,但是额外的硬件限制了它们的应用。其他工作[28,36]通过利用多视图图像来重建变形文档页的3D形状,从而消除了对额外硬件的需要。其他人的目标是通过分析单个图像,基于各种手工制作的低级特征,如照明/阴影[32,37],文本行[27,20]等,来恢复校正后的文档。
提出了一种新的基于学习的方法来恢复野外捕获的任意弯曲和折叠的纸质文档。与以前的技术不同,我们的方法是第一个端到端基于学习的方法来直接预测文档失真。以往的方法只使用学习进行特征提取,而最终的图像恢复仍然是基于传统的优化过程。我们的方法依赖于卷积神经网络(CNNs)来进行端到端图像恢复。与基于优化的方法相比,前馈网络在测试阶段是非常有效的。此外,如果提供适当的训练数据,这种数据驱动的方法可以更好地推广到许多文档类型(文本、图形、笔迹等)。
我们将此任务定义为寻找合适的二维图像扭曲,以纠正扭曲的文档图像。我们的网络预测一个映射域,将失真源图像S(u, v)中的一个像素移动到结果图像D中的(x, y):
以这种方式构造问题,我们发现该任务与语义切分有一些共性。对于后者,网络为每个像素分配一个类标签。类似地,我们的网络为每个像素分配一个二维向量。这启发了我们在我们的网络结构中使用U-Net[25],它在语义分割方面的成功是众所周知的。为了适应我们的回归问题,我们定义了一个新的损失函数来驱动网络对S中的每个像素回归D中的坐标(x, y)。
获取带有地面真值标签的大规模数据是深度监督学习的第一个挑战。为了训练我们的网络,我们需要获得大量不同程度失真的文档图像作为输入,以及可以导致完美校正的相应变形。目前不存在这样的数据集。在物理世界中获得地面真实变形是非常具有挑战性的。因此,我们采用合成数据进行训练。我们通过随机扭曲完全平坦的文档图像来合成100K图像,因此扰动的图像是输入,而我们用来扭曲图像的网格是我们旨在恢复的逆变形。
没有可公开获得的综合基准来评估文件展开。以前的方法要么对少量图像进行评估,要么数据集只包含一种或两种类型的失真,如平滑弯曲。我们通过创建一个包含130幅图像的基准来填补这一空白,这些图像包含文档类型、失真程度和类型以及捕获条件的巨大差异。
我们的主要贡献包括:
①第一个端到端,基于学习的文档图像复原方法。我们提出了一个具有中间监督的 堆叠UNet[25]。它以端到端方式进行训练,预测可以纠正扭曲文档的正向映射。
②一种合成弯曲或折叠纸质文档图像的技术。使用这种方法,我们创建了一个包含 大约100K个图像的大规模数据集用于训练。
③一个多样化的评估基准数据集,带有基本事实,我们在此基础上评估我们的方法, 并与以前的方法进行比较。
2相关工作
文献中对文档的校正进行了研究。我们大致将之前的方法分为两类:
三维形状重建。为了重建纸质文档的3D形状,Brown和Seales[1]使用了可见光投影摄像系统。Zhang等人的[38]采用了更先进的距离/深度传感器,并考虑了纸张的物理性能来恢复形状。最近,Meng等人建立了一个带有两束结构激光束的平台来获取文档卷曲度。除了额外的硬件,其他工作依赖于多视图图像进行三维形状重建。Ulges等人[29]通过图像patch匹配计算两幅图像之间的视差图。Yamashita等[35]用非均匀有理b样条(NURBS)参数化了三维形状。Tsoi和Brown的[28]并不需要一个精确校准的立体视觉系统。他们利用多视图图像的边界信息,将这些图像组合在一起生成校正后的图像。同样,Koo等[13]利用两幅不同视角的未校准图像通过SIFT匹配来测量三维形状。Östlund等人[24]提出了一种网格参数化方法,该方法可以重建给定参考图像对应的可变形曲面的三维形状。最近You等[36]通过多幅图像对纸张上的折痕进行建模,重建了文档的三维形状。
从低级特征塑造。低级别功能包括照明/阴影,文本线等。Wada等人利用阴影形状(Shape from Shading, SfS)制定了这个问题。扭曲的文件在定向光源下显示出不同的阴影。Courteille等人通过使用相机而不是扫描仪来扩展这项工作,并从阴影中估计透视图形状。Zhang等人提出了一种更加鲁棒的SfS系统,能够处理阴影和背景噪声。其他一些方法依赖于分析文档内容。一个普遍的策略是追踪文本行[8,30,18,21,11,16],假设修改后的文件的文本行应该是水平和直线的。特别是,Cao等人[2]在圆柱体上建模了弯曲文档,Liang等人[14]使用了可展曲面。Tian和Narasimhan将文本线作为水平线索和字符笔画作为垂直线索进行优化,从而生成3D网格。这些作品可以看作是更广泛的形状从纹理问题(SfT)的特例[34,19,9]。最近Das等[6]利用CNN检测纸张折痕进行校正。然而,CNN只是他们优化过程中的一个步骤,而不是端到端方式。
我们提出的方法可以归为第二类。然而,作为一种纯数据驱动的方法,它不同于所有以前的方法。该网络被端到端地训练以预测扭曲的正向映射,因此不使用手工制作的低级特征。测试阶段没有优化过程。我们的网络有两个好处:I)只要提供大规模的训练数据,就可以处理各种文档类型和条件。ii)它可以作为一种有效的方法部署在现实世界的应用中。
3数据集
该方法基于一个需要用大规模训练数据进行训练的CNN。在此任务中,文档变形可以表示为三维网格、表面法线、2D流等。在现实世界中以任何形式准确捕捉它都很困难。需要额外的硬件,如距离相机或校准的立体视觉系统,而估计变形的准确性通常取决于硬件的成本。此外,几乎不可能手动折叠/扭曲可以覆盖所有现实情况的文档。
我们考虑使用合成数据进行训练,这是最近深度学习系统中的一个常见步骤[31,26]。这允许完全控制数据集中的变化,例如3D网格形状、照明、材料等。
一个简单的想法是在3D渲染引擎中直接渲染扭曲的文档。然而,由于以下原因,这是不切实际的。首先,使用物理模拟生成物理正确的3D纸网格既困难又缓慢[22]。其次,通过路径跟踪进行渲染也很耗时,例如,在[6]中渲染一幅图像大约需要1分钟。渲染100K图像需要两个多月的时间。
3.12D的失真图像合成
我们在2D直接合成训练图像。虽然底层的物理建模被忽略了,但是操纵2D网格要容易得多,生成图像也更快。由于我们的目的是将失真的纸张映射到校正后的纸张,因此数据合成是相反的过程,即我们将校正后的图像扭曲成不同的失真。
创建失真图时,我们遵循以下经验准则:
①一张真正的纸是一种局部刚性的织物。它不会膨胀或压缩。某一点的变形将在空 间上传播。
②有两种变形:产生折痕和纸张卷曲的折叠和曲线。在现实世界中,通常会有这两种 基本扭曲的混合。
我们首先收集大量的平面数字文档,包括纸张、书籍和杂志页面。然后我们扭曲这些图像,如图2所示。程序详述如下。
扰动网格生成:给定一个图像I,我们在其上施加一个m × n网格M,以提供扭曲的控制点。在M上选择一个随机顶点p作为初始变形点。变形的方向和强度表示为v,也是随机产生的。最后,基于观察i),v通过权重w传播到其他顶点。扭曲网格上的顶点被计算为pi+ w v,∀i.
定义w是至关重要的。当p和v定义一条直线时,我们首先计算每个顶点和这条线之间的归一化距离d,并将w定义为d的函数。基于观察ii),我们为每个失真类型定义一个函数。对于折叠:
对于曲线:
其中α控制变形传播的程度。总的来说,较大的α将w引向1,这意味着所有其他顶点都与p共享相同的变形,使得变形更加全局,而较小的α将变形限制在p周围的局部区域。图4展示了这两个函数的效果。
扰动图像生成:扰动的网格提供了稀疏的变形场。我们对其进行线性插值,以构建像素级的密集变形图。然后,可以通过将扭曲图应用于原始图像来生成扰动图像。我们用这种方式在单个CPU上合成了100K个图像。每个图像包含多达19个合成失真(30%是弯曲失真,70%是折叠失真)。弯曲需要保持高斯曲率处处为0,而折叠是任意的。一些样品如图5所示。
3.2数据增加
由于真实数据和合成数据之间的差距,在合成数据上训练的模型可能不能很好地推广到真实数据。这个问题可以通过领域适应来缓解,例如,使用生成对抗网络[26]。然而,大规模的真实世界的数据是不可用的。我们通过用各种变换增强合成图像来缓解这个问题。首先,我们使用来自可描述纹理数据集(DTD) [4]的纹理图像来产生各种背景纹理。然后,我们在HSV颜色空间中添加抖动,以放大照明和纸张颜色变化。进一步应用投影变换来处理视点变化。实验表明,这些数据扩充方法大大提高了网络泛化能力。
4DocUNet
4.1网络体系结构
类似于语义分割,我们设计我们的网络来加强像素级的监督。我们选择U-Net[25]作为我们的基本模型,因为它简单和有效的语义分割任务。基本上U-Net是一个完全卷积网络[17]。它包含一系列下采样层和一系列上采样层。特征图在下采样层和上采样层之间串联。注意,我们在原来的U-Net实现中修改了填充方案,使网络的输入和输出具有相同的空间大小。
然而,一个U-Net的输出可能不令人满意,应该细化。受连续预测和渐进细化工作的启发[23,3],我们在第一个U-Net的输出处堆叠另一个U-Net作为细化器。
在我们的网络中,如图3所示,我们有一层将反卷积特征转换为最终的输出(x, y),第一个U-Net在最后一个反卷积层之后分裂。第一个U-Net的反卷积特征和中间预测y1连接在一起作为第二个U-Net的输入。第二个U-Net最后给出了一个精细化的预测y2,我们将其作为我们网络的最终输出。我们在训练中对y1和y2应用相同的损失函数。但是,在测试时,只有y2被用作网络的输出。
网络的输入是S∈ℜMs×Ns×3,输出是F∈ℜMs×Ns×2从扭曲图像到矫正图像的映射。不同于语义分割是一个像素级的分类问题,计算F是一个回归过程。语义分割网络的输出通常有C通道,其中C为语义类的数量。该网络仅输出(x, y)坐标的两个通道。
4.2损失函数
我们将损失函数定义为元素损失和移位不变损失的组合。L2元素的损失是:
其中n是F中的元素个数,y i是索引i处的预测值,y* i是对应的基本真值。
移不变损失Ls不关心F中y i的绝对值。它强制要求y i和y j之间的差应接近y* i和y* j之间的差。所以Ls可以写成:
假设d i = y i - y* i,等式5可以写成:
第一项只是元素上的损失。如果两个元素之间的距离与地面真值中的距离相似,则第二项减小损耗。这种损失也称为比例不变误差[7]。在式5中,两项的权值相同。我们可以在训练中给这两个术语分配不同的权重。我们还观察到L1损耗比L2损耗好。所以我们把损失函数重写为:
其中λ控制第二项的强度。我们所有的实验都用0.1。
F中与S中背景像素对应的元素有一个常负值-1,如第3节所述。所以Eq. 7的部分损失是由于背景造成的。实际上,网络不需要精确地将这些元素回归到-1。任何负值都足够了。因此,我们对背景像素使用铰链损耗:
而使用等式7仅为前景像素。
5实验
我们首先介绍我们的基准,该基准用于评估从单个图像纠正野生环境中的扭曲纸质文档。然后我们评估我们提出的基于学习的方法,并将结果与现有技术的非基于学习的方法进行比较[27]。
5.1基准
图片:该基准中的图像是由移动相机捕获的物理纸质文档的照片。我们收集了65份不同内容/格式的纸质文档,并为每份文档拍摄了两张照片,总共生成了130张图像。基准包含原始照片和裁剪过的照片。我们在实验中使用后一种方法,因为我们专注于纸张去扭曲,而不是在图像中定位文档。创建基准时考虑了以下因素:
①文档类型。我们选择的文件包括各种类型,如收据、信件、传单、杂志、学术论 文和书籍。其中大多数包含文本和图形的混合。有些是纯文本,有些只包含图像。 有些是彩色的,有些是黑白的。课文大部分是英文的,也有一些是日文和中文的。 还包括一些乐谱。大多数文档都有白色背景,但也包括不同背景颜色的文档。
②扭曲。原始的平面纸质文件被不同的人进行了物理扭曲。每个文件都被变形为两 种不同的形状。为了确保基准的多样性,我们既包括简单的案例,也包括困难的案 例。对于简单的情况,文件可能只有一个折痕或一个卷曲或一个“共同的折叠”[6]。 对于困难的情况,文件可能会严重起皱。我们故意让一些文档保持原样,以测试一 种方法是否能保存它们。特别是,94.6%的图像包含弯曲;31.7%含6倍以上;8.5% 是纸张起皱,这是具有挑战性的案例。
③环境。这些照片是由两个人用两部不同的手机在不同的室内和室外场景下拍摄 的,光照条件不同:阳光、室内灯光或手机内置闪光灯。我们也在一定程度上改变了 观点。最终的基准包含非常多样的例子,并且可以合理地近似最常见的用例。
真值:在折叠收集的纸质文件之前,我们使用平板扫描仪对它们进行扫描。我们调整了获得的图像的大小和整体颜色,以尽可能地匹配原始的平面文档。图6显示了我们的基准中的一些例子。
评估方案:之前的工作提出了两种不同的评估方案。一种是基于光学字符识别(OCR)的准确性,另一种是基于图像相似性的测量。我们选择后者,因为光学字符识别的准确性很大程度上取决于使用的光学字符识别模块,并且不能处理大多包含数字的文档。对于图像相似性,我们使用多尺度结构相似性(MS-SSIM) [33],因为任务主要是关于文档结构,而不是像素级的颜色准确性。我们还采用了一种使用密集SIFT流的方法[15]来评估由You等人[36]提出的局部失真(LD)。
对图像中的所有图像块计算单尺度SSIM。它基于统计度量的相似性,包括每个图像块内的平均值和方差。MS-SSIM的实现建立了输入图像和目标图像的高斯金字塔。MS-SSIM是在每个级别计算的SSIM的加权和。除了加权和,我们还报告了不同级别的单尺度SSIM。
5.2实验设置
我们在数据集中使用90K图像进行训练,其余的用于验证。我们用Adam[12]作为优化器。培训以0.0002的学习率开始,当验证损失达到稳定水平时,学习率会降低到原来的五分之一。为了公平比较,基准测试中使用的任何文档都不会用于创建用于培训的合成数据。事实上,基准包含比训练集更多样的数据,作为测试我们方法泛化能力的一种方式。
我们使用Tian和Narasimhan的公开代码在我们的基准测试上将我们的结果与他们的[27]进行定量比较。我们还将我们的结果与You等人[36]和Das等人[6]最近的两项研究进行了定性比较。考虑到这些方法没有公开可用的代码,我们在他们的论文中展示的示例上测试我们训练过的模型。
我们调整所有输出图像和目标图像的大小,使其具有相同的598,400区域,同时保持它们的纵横比。我们对MS-SSIM使用5级金字塔,每一级的权重是0.0448,0.2856,0.3001,0.2363,0.1333,这是从最初的实现继承而来的。对于SIFT流,我们使用作者提供的带有默认参数的代码。
我们的基准评价表明,该方法优于Tian和Narasimhan[27]提出的方法。具体来说,我们的方法在MS-SSIM方面达到了0.41,平均LD为14.08像素。[27]在MS-SSIM中仅达到0.13,在LD中仅达到33.69,这是因为他们的方法主要是针对带有文本行的文档设计的,它很大程度上依赖于文本行跟踪的质量。因此,它不能处理具有混合文本行和图形的更复杂的文档,或者文本行跟踪失败的区域,如图10所示。
就计算效率而言,[27]用它们的Matlab实现在CPU上处理一个图像需要3到4分钟。虽然这不是一个公平的比较,我们的网络可以在GTX 1080 Ti图形处理器上以28帧/秒的速度运行。瓶颈在于从映射中生成校正图像。我们的未优化的Matlab实现在一个CPU上需要大约3到4秒钟。总的来说,我们的方法比[27]快一个数量级。总的比较如表1所示。单标度SSIM值也显示在图7中。我们的方法在各种规模上都有更好的性能。
我们还在尤等人[36]和达斯等人[6]提供的例子上测试了我们的训练网络。定性结果表明,我们的模型可以成功地推广到许多其他情况。值得注意的是,[36]需要多视角图像作为输入,[6]只处理特定的折叠类型。我们的结果与他们的结果相当,尽管我们的方法只使用一幅图像,并且被设计成处理任意的失真,如图8和图9所示。图11显示了我们基准的更多定性结果。
我们通过一组消融实验证明了我们的网络设计和损耗功能。我们考虑以下三种配置:1)以L f (等式7)和L b (等式 8)为损失函数的堆叠U-Net。这是我们在之前的实验中使用的配置。2)堆叠U-Net,仅损耗常规L1。3)单U-Net,L1损耗。比较结果见表2。
提出的网络架构和损失函数的配置在我们的基准测试中取得了最佳结果。使用L1损失函数导致质谱-SSIM从0.41微降至0.40,而LD从14.08升至14.85。用单个U-Net进一步替换堆叠的U-Net将质谱SSIM降低到0.35,并将LD增加到15.73。
6结论和今后的工作
在这篇文章中,我们提出了第一个端到端的神经网络来平整和纠正扭曲的文件图像。我们提出了一种具有中间监督的堆叠式U-Net,并以端到端的方式对其进行训练,以直接预测可以消除失真的映射。我们提出了一个创建合成训练数据的程序。我们还创建了一个包含在各种条件下拍摄的真实世界图像的基准。实验结果证明了该方法的有效性和高效性。
我们的工作存在某些局限性。例如,如图11 (b)中的第五幅图像所示,我们的网络没有完全恢复透视失真,因此结果中的三列仍然包含透视失真的痕迹。这应该在今后的工作中加以解决。此外,在未来的工作中,我们希望应用GAN使我们的网络更好地推广到现实世界的图像。我们还想加入一个照明模型来消除校正图像上的高光或阴影。另一方面,我们将优化从映射生成校正文档的代码,并使整个管道实时,并将其部署在移动设备上。