从单一图像中提取文档图像:ICCV2019论文解读
从单一图像中提取文档图像:ICCV2019论文解读
DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regression Networks
论文链接:
摘要
在非结构化环境中使用手持设备捕获文档图像是当今的一种常见做法。然而,文档的“偶然”照片通常不适合自动提取信息,这主要是由于文档纸张的物理失真,以及相机的各种位置和照明条件。在这项工作中,本文提出了DewarpNet,一种从单一图像中提取文档图像的深度学习方法。本文的见解是,文档的三维几何结构不仅决定了其纹理的扭曲,还导致了照明效果。因此,本文的创新之处在于在端到端管道中对文档纸张的三维形状进行显式建模。此外,本文还提供了迄今为止最大、最全面的文档图像数据集——Doc3D。该数据集具有多个地面真值注释,包括3D形状、曲面法线、UV贴图、反照率图像等。使用Doc3D进行训练,通过大量的定性和定量评估,本文展示了DewarpNet的最新性能。本文的网络还显著提高了OCR在捕获的文档图像上的性能,平均降低了42%的字符错误率。代码和数据集都被开放。
1. Introduction
纸质文件承载着宝贵的信息,在本文的日常工作和生活中发挥着不可或缺的作用。数字化文档可以方便、安全、高效地存档、检索和共享。随着便携式相机和智能手机的日益普及,通过拍照,用户可以更方便地获取文档数字化。一旦捕获,文档图像可以转换为电子格式,例如PDF文件,以便进一步处理、交换、信息提取和内容分析。在拍摄图像时,最好以尽可能高的精度保存文档上的信息,与flifbedscanted版本的信息差别最小。然而,由于纸张的物理变形、相机位置的变化和不受限制的照明条件等不可控制的因素,使用移动设备拍摄的随意照片常常会受到不同程度的扭曲。
因此,这些原始图像往往不适合于自动信息提取和内容分析。以往的文献对文献的盗用问题进行了多方面的研究。传统的方法[26,46]通常依赖于纸张的几何特性来恢复粗纱。这些方法首先估计纸张的三维形状,可以用一些参数形状表示法[9,47]或一些非参数形状表示法[35,45]。之后,他们使用优化技术从扭曲图像和估计的形状计算出反射图像。
这些方法的一个共同缺点是,由于优化过程的原因,它们通常计算量大且速度慢。Ma等人最近的工作 [23]提出了一个深度学习系统,该系统直接从变形的文档图像中回归出不可逆操作。他们的方法极大地提高了文档取消系统的速度。然而,他们的方法并没有遵循纸张翘曲的三维几何特性——训练数据是用一组二维变形创建的——因此在测试中常常会产生不现实的结果。
纸张折叠是在3D中发生的:具有不同纹理但具有相同3D形状的纸张可以在相同的变形场中取消折叠。因此,三维形状可以说是恢复未翻动纸张的最关键线索。基于这一思想,本文提出了一种新的数据驱动的去毛刺框架DewarpNet,该框架利用显式的三维形状表示来学习去毛刺操作。
DewarpNet分两个阶段工作,有两个子网络:
i) “形状网络”使用变形文档的图像,并输出一个三维坐标图,该图已被证明足以完成取消扫描任务[45]。
ii)“纹理映射网络”将变形的文档图像反向映射到平滑的文档图像。
本文结合中间三维形状的回归损失和最终的失步结果来训练两个子网络(图1)。在那之后,本文提供“增强网络”消除了矩形图像的阴影效果,进一步提高了结果的感知质量。为了使用明确的中间3D表示来训练这个取消扫描网络,本文创建了Doc3D数据集,这是迄今为止用于文档图像取消扫描的最大和最全面的数据集。
本文以混合的方式收集Doc3D,结合
(1) 从自然扭曲的纸张中捕获三维形状(网格)
(2) 大量文档内容的真实照片级呈现。
每个数据点都带有丰富的注释,包括三维坐标贴图、曲面法线、UV纹理贴图和反照率贴图。总共,Doc3D包含了大约100000个带有丰富注释的真实照片图像。
本文的贡献总结如下:
首先,本文贡献Doc3D数据集。据本文所知,这是第一个和最大的文档图像数据集,在三维和二维领域具有多个地面真实性标注。
第二,本文提出了一种新的端到端深度学习架构DewarpNet。该网络实现了高质量的文档图像的实时取消抓取。
第三,使用Doc3D数据集中丰富的注释进行训练后,DewarpNet显示出与最新技术相比的优越性能[23]。通过对真实文档扫描的感知相似度评估,本文将多尺度结构相似度(MS-SSIM)提高了15%,将局部失真降低了36%。
此外,本文证明了本文的方法的实际意义,降低了42%的OCR字符错误率。
2. Previous Work
基于变形的建模方法,现有的两组文档反抽工作是:参数化的变形模型和非参数化的变形模型。
基于参数化形状的方法假设文档变形是由低维参数化模型表示的,并且这些模型的参数可以通过视觉线索推断出来。圆柱面是最流行的参数化模型[8,16,19,26,41,46]。其他模型包括非均匀有理B样条(NURBS)[10,44]、分段自然三次样条(NCS)[36]、Coon面片[9]等。用于估计模型参数的视觉提示包括文本行[25]、文档边界[5]或来自外部设备的激光束[27]。Shafait和Breuel[33]在一个只有透视和卷曲变形的小数据集上报道了几种基于参数形状的方法。然而,这种低维模型很难模拟复杂的表面变形。
相反,基于非参数化形状的方法不依赖于低维参数化模型。这种方法通常假定变形文档的网格表示,并直接估计网格上每个顶点的位置。用于估计顶点位置的方法,包括参考图像[29]、文本行[21、35、39]和卷积神经网络(CNN)[30]。许多方法都是从估计或捕获的三维纸张形状信息中重建网格。值得注意的例子是根据立体视觉[38]、多视图图像[45]、结构光[4]、激光测距扫描仪[47]等估计的点云。
还有一些工作是直接使用纹理信息来完成这个任务[11,24,43]。然而,借助于外部设备或多视图图像使得该方法不太实用。本地文本行功能无法处理将文本与图形混合的文档。此外,这些方法往往涉及复杂和耗时的优化。最近,Ma等人 [23]提出了“DocUNet”,这是第一个数据驱动的方法,用深度学习来解决文档丢失问题。与以往的方法相比,DocUNet在推理过程中速度更快,但在真实图像上的表现并不总是很好,这主要是因为合成训练数据集只使用了2D变形。
3. The Doc3D Dataset
本文使用真实的文档数据和渲染软件以混合的方式创建了Doc3D数据集。本文首先捕获了自然变形的真实文档纸张的三维形状(网格)。之后,本文在Blender[1]中使用路径跟踪[40]来渲染具有真实文档纹理的图像。本文在渲染中使用了不同的相机位置和不同的照明条件。本文的方法的一个显著好处是,数据集是用真实感渲染的方式大规模创建的。同时,本文的方法生成了多种类型的像素级文档图像地面真实度,包括三维坐标图、反照率图、法线、深度图和紫外线图。这样的图像形成变化对本文的任务很有用,但通常在实际的采集场景中很难获得。与文献[23]中仅在2D中建模3D变形的数据集[28]相比,本文的数据集以物理上固定的方式模拟文档变形。因此,本文有理由期望,与在[23]的数据集上训练的模型相比,在本文的数据集上训练的深度学习模型在现实世界的图像上测试时能够更好地泛化。本文直观地比较了图2中的数据集样本。
3.1. Capturing Deformed Document 3D Shape
三维点云捕捉
本文的变形文档形状捕获工作站(图3(I))由一个桌面、一个机架、一个深度摄影机和一个桌面架组成。机架保持深度摄像头水平,面向桌面,高度58厘米。在这个高度上,深度摄影机在保留变形细节的同时捕获整个文档。浮雕架有64个单独控制的插脚,提高了文件的高度,使其与桌面隔离。高度差使从深度图的背景中提取文档变得更容易。支架模拟文档的复杂静止曲面,还支持变形文档以保持卷曲或折痕。本文使用经过校准的Intel RealSense D415深度摄像头来捕捉深度图。假设没有遮挡,则通过X(3D)=K-1[i,j,dij]T获得文档的点云,其中dij是深度贴图中像素位置i,j处的深度值。从摄像机上读取了内禀矩阵K。本文平均6帧以减少零均值噪声,并应用带有高斯核的移动最小二乘(MLS)[32]来平滑点云。
本文使用真实的文档数据和渲染软件以混合的方式创建了Doc3D数据集。本文首先捕获了自然变形的真实文档纸张的三维形状(网格)。之后,本文在Blender[1]中使用路径跟踪[40]来渲染具有真实文档纹理的图像。本文在渲染中使用了不同的相机位置和不同的照明条件。本文的方法的一个显著好处是,数据集是用真实感渲染的方式大规模创建的。
同时,本文的方法生成了多种类型的像素级文档图像地面真实度,包括三维坐标图、反照率图、法线、深度图和紫外线图。这样的图像形成变化对本文的任务很有用,但通常在实际的采集场景中很难获得。与文献[23]中仅在2D中建模3D变形的数据集[28]相比,本文的数据集以物理上固定的方式模拟文档变形。
因此,本文有理由期望,与在[23]的数据集上训练的模型相比,在本文的数据集上训练的深度学习模型在现实世界的图像上测试时能够更好地泛化。本文直观地比较了图2中的数据集样本。
网格创建
本文使用球旋转算法从捕获的点云中提取网格[3]。网格有130000个顶点和270000个面覆盖所有顶点。然后,本文将每个网格子采样到一个100×100的均匀网格,以便于网格增强、对齐和渲染。由于本文廉价传感器的精度限制,即使是更高分辨率的网格也无法提供精细的细节,如细微的折痕。每个顶点都有一个UV位置,用于指示纹理坐标,用于渲染步骤中的纹理映射。将(u,v)={(0,0),(0,1),(1,0),(1,1)}指定给网格的4个角点,本文为所有顶点插值UV值[37]。
网格增强和对齐
为了进一步开发每个网格,本文首先沿着x、y、z轴分别映射网格,得到8个网格,并以不同的纵横比随机裁剪出4个从65×65到95×95的小网格。本文将所有网格插值到100×100的相同分辨率。这些额外的网格显著增加了数据集的多样性。通过解决绝对方向问题[13]来统一缩放、旋转和平移,所有网格都与模板网格对齐。该步骤确保了一个唯一的变形具有唯一的三维坐标表示。总共,本文生成了40000个不同的网格。
3.2. Document Image Rendering
配置
为了增加数据集的多样性,本文在渲染过程中更改了相机、灯光和纹理的配置。对于每幅图像,相机随机放置在球形盖上,在[-30°和30°范围内呈“向上”方向。摄影机方向被限制在虚拟世界原点周围的一个小区域内。
使用从高温室内HDR数据集的2100个环境地图中随机抽样的照明环境渲染了70%的图像[12]。本文还使用随机采样的点光源在简单照明条件下渲染了30%的图像。网格上的纹理是从真实的文档图像中获取的。本文收集了7200张学术论文、杂志、海报、书籍等的图片,包含多种布局的文本和图片。
丰富的注释
对于每个图像,本文生成了三维坐标贴图、深度贴图、法线、UV贴图和反照率贴图。本文展示了如何将这些地面真实图像融入到本文的网络中。
4. DewarpNet
DewarpNet,如图4所示,由学习脱蜡的两个子网组成:
形状网络和纹理映射网络。此外,本文还提出了一个用于光照效果调整的后处理增强模块,该模块可以在视觉上改善未旋转的图像。
形状网络
DewarpNet首先回归输入文档图像的三维形状。本文将此回归任务表述为图像到图像的转换问题:
给定输入图像I,形状网络将I的每个像素转换为3D坐标图
,其中每个像素值(X,Y,Z)对应于文档形状的3D坐标,如图4所示。本文使用U-Net[31]风格的编码器-解码器架构,在shape网络中使用跳跃连接。
纹理映射网络
纹理映射网络以三维坐标映射C为输入
,输出后向映射B。在纹理映射网络中,采用了一种多DenseNet[14]块的编解码结构。此任务是从C中的三维坐标到B中的纹理坐标的坐标转换。本文在纹理映射网络中应用坐标卷积(CoordConv),因为它被证明可以提高网络对坐标转换任务的泛化能力[18,22]。本文的实验证明了该技术在Sec5.5中的有效性。
Refinement Network
Re-fiment network是本文系统的后处理组件,用于调整矩形图像中的照明效果。该网络不仅提高了结果的感知质量,而且提高了OCR的性能。本文利用Doc3D数据集中的其他地面真实信息(即地表法线和反照率图)来训练增强网络。Refinement Network有两个U-Net[31]型编码器-解码器,如图5所示:
一个用于预测给定输入图像I的曲面法线N∈
;
另一个以I和相应的N为输入,估计一个阴影映射S∈
。S描述阴影强度和颜色。然后,本文基于内禀图像分解[2]:I = A ⊙ S, S来恢复无阴影图像A,⊙是Hadamard乘积算符。
Training Loss Functions
培训过程分为两个阶段。在第一阶段,分别训练形状网络和纹理映射网络进行初始化。在第二阶段,对两个子网进行联合训练,以提高解扩效果。
本文在包含100000张图像的Doc3D数据集上训练模型,将它们分成训练集和验证集,这样它们就没有共同的网格。在初始化训练的第一阶段,纹理映射网络以地面真值三维坐标映射C为输入。随后,在第二阶段的联合训练中,每个子网络都用最好的单独训练模型初始化。
5. Experiments
在[23]的130幅图像基准上进行了多次实验,并对[45]的真实图像进行了定性分析。作为基线,在新的Doc3D数据集上训练DocUNet[23]取消抓取方法。此外,从文档分析的角度来评估本文的方法的OCR性能。最后,提供了一个详细的融合研究,以显示坐标卷积的使用[22],以及损耗LD如何影响不旋转性能。定性评价如图7所示。
基准
为了定量评估,本文将130个图像基准[23]分为六类,表示六种不同程度的变形复杂性(见表1)。基准数据集包含各种文档,包括图像、图形和多语言文本。
评价指标
基于(a)图像相似性和(b)光学字符识别(OCR)性能,本文采用了两种不同的评价方案。
本文使用两种图像相似性度量:
多尺度结构相似性(MS-SSIM)[42]和局部畸变(LD)[45]作为定量评价标准,见[23]。SSIM计算每个图像块内的平均像素值和方差的相似性,并对图像中的所有块进行平均。MS-SSIM使用高斯金字塔在多个尺度上应用SSIM,更适合于评估结果与基本事实之间的全局相似性。
LD计算从未翻阅文档到相应文档扫描的密集筛选流[20],从而集中于本地细节的直接定位。LD的参数设置为[23]提供的实现的默认值。为了进行公平的比较,所有未旋转的输出和目标平面扫描图像都按照[23]中的建议调整为598400像素区域。
通过在本文的数据集Doc3D上训练DocUNet[23]中的网络架构,本文提出了对所提出的Doc3D数据集的基线验证。架构由两个堆叠的unet组成。DocUNet将二维图像作为输入并输出正向映射(每个像素表示纹理图像中的坐标)。
监控信号仅基于地面真值正向映射。与直接输出未扭曲图像的DewarpNet不同,DocUNet需要几个后处理步骤将前向映射转换为后向映射(每个像素代表扭曲输入图像中的坐标),然后对输入图像进行采样以得到未扭曲的结果。
表2中的结果显示,当本文在Doc3D上训练DocUNet而不是在[23]中的2D合成数据集上训练DocUNet时,有了显著的改进。LD的显著降低(14.08到10.85)意味着局部细节更清晰。
这种改进是(1)DewarpNet体系结构和(2)与[23]中的二维合成数据集相比,使用更实际的Doc3D数据集进行训练的结果。
本文在DocUNet基准数据集上评估DewarpNet和DewarpNet(ref)(即DewarpNet与后处理增强网络)。
本文提供了两者的比较
(1) 整个基准数据集(表2)和
(2) 基准测试中的每个类(图6)。后者提供了对本文的方法相对于以前方法的改进的详细见解。
从(a)级到(e)级,本文的模型持续改进了MM-SSIM和LD,超过了以前的最新水平。在最具挑战性的类(f)中,当图像通常呈现多个皱褶和随机变形时,本文的方法获得了可比且稍好的结果。
本文使用PyTesseract(v0.2.6)[34]作为OCR引擎来评估本文从图像中识别文本的工作的效用。文本地面真值(reference)由DocUNet【23】中的25幅图像生成。在所有这些图片中,超过90%的内容是文本。补充材料包含了本文的OCR测试集的一些样本。表3所示的OCR性能比较显示了方法的性能优于[23],在所有指标上都有很大的裕度。特别是,与DocUNet相比,DewarpNet减少了33%的CER,re-fiment网络减少了42%。 融合研究
坐标卷积(CoordConv)。研究了CoordConv对纹理映射网络性能的影响。Doc3D验证集上的实验(表4)表明,使用CoordConv可使ˆB上的误差减少16%,并使ˆD上的SSIM从0.9260略微提高到0.9281。丢失身份证。纹理映射网络从使用LD(未修复的视觉质量损失)中受益匪浅。如表4所示,与仅使用绝对像素坐标损失LB相比,使用LB+LD可显著减少ˆB上的“2”误差71%,并将ˆD上的SSIM提高9%。
定性评价
对于定性评估,本文比较了图7中的DewarpNet和DocUNet以及You等人。图8中的 [45]提出的方法利用多视图图像来取消对变形文档的扫描。即使只有一张图片,DewarpNet也显示出竞争性的不败结果。此外,本文在图9中证明了所提出的方法对光照变化和相机视点变化具有鲁棒性。为了评估光照的稳健性,本文使用固定的相机视点对多个图像进行测试,但从文档的前、后、左、右和环境光照角度不同。本文还测试了DewarpNet对多个摄像机视点的鲁棒性,在一系列由[45]提供的多视点图像上。结果表明,在所有情况下,脱蜡网产生的DewarpNet图像几乎相同。
6. Conclusions and Future Work
在这项工作中,本文提出了一个新的深度学习架构DewarpNet。本文的方法对文档内容、光照、阴影或背景都很稳健。通过对三维形状的显式建模,DewarpNet显示出比以前的最先进的性能。此外,本文还提供了Doc3D数据集,这是用于文档图像取消扫描的最大、最全面的数据集,具有多个2D和3D地面真值注释。
本文的工作存在一些局限性:
首先,廉价的深度传感器无法捕捉变形的细节,比如纸张褶皱上的细微褶皱。因此,本文的数据缺乏具有高度复杂纸张皱折的样本。在未来的工作中,本文计划构建一个具有更好细节和更复杂结构的数据集。
第二,DewarpNet对遮挡相对敏感:当部分图像被遮挡时,结果会降低。
在未来的工作中,本文计划通过数据增强和对抗性训练来解决这一难题。
从单一图像中提取文档图像:ICCV2019论文解读的更多相关文章
- Mongoose在向集合中插入文档时的集合命名问题
Mongoose使用结构化的模式应用到MongoDB集合,为MongoDB Node.js原生驱动程序提供了更多的功能和简化了数据库操作. 从创建连接到向数据库中写入一个条数据经历了以下步骤: 1.连 ...
- 在SharePoint 2013 中使用文档库Scheduling (计划公布功能)
本文讲述在SharePoint2013 中使用文档库Scheduling (计划公布功能)的步骤和注意的事项. 文档库Scheduling (计划公布功能) 用于设定当文档通过审批后特定的时间区间内才 ...
- JavaScript中的文档模式和严格模式
JavaScript中的文档模式和严格模式 语法模式有普通模式和严格模式两种 普通模式:正常的JavaScript语法拼写以及代码编写(相对于严格模式存在着语法上的不严谨),尽可能的识别错误以及不规范 ...
- MongoDB学习(操作集合中的文档)
文档概念 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式. BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON. 插入文档 insert()方法 ...
- 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档
孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...
- hibernate中出现 文档根元素 "hibernate-mapping" 必须匹配 DOCTYPE 根 "hibernate-configuration"
hibernate中出现 文档根元素 "hibernate-mapping" 必须匹配 DOCTYPE 根 "hibernate-configuration" ...
- jquery-7 jquery中的文档处理方法有哪些(方法的参数表示功能增强)
jquery-7 jquery中的文档处理方法有哪些(方法的参数表示功能增强) 一.总结 一句话总结:多看参考文档,多看主干目录.一般的功能分两个方法来实现,一个对应标签,一个对应标签和事情,比如克隆 ...
- Solr 18 - 通过SolrJ局部更新Solr中的文档 (原子操作、非覆盖操作)
目录 1 需求分析 2 需求实现 2.1 pom.xml依赖 2.2 Java代码示例 3 补充说明 3.1 关于文档中_version_的取值说明 3.2 store=true/false的区别 1 ...
- 如何在Linux中复制文档
在办公室里复印文档过去需要专门的员工与机器.如今,复制是电脑用户无需多加思考的任务.在电脑里复制数据是如此微不足道的事,以致于你还没有意识到复制就发生了,例如当拖动文档到外部硬盘的时候. 数字实体复制 ...
随机推荐
- 【Feign】Feign ,OpenFeign以及Ribbon之间的区别?
Ribbon Ribbon 是 Netflix开源的基于HTTP和TCP等协议负载均衡组件 Ribbon 可以用来做客户端负载均衡,调用注册中心的服务 Ribbon的使用需要代码里手动调用目标服务,请 ...
- 织梦seo
建站-->采集文章-->sitemap-->robots->百度提交链接(主推和自动结合)-->后续优化 http://jingyan.baidu.com/article ...
- 【原创】ansible常用模块整理
一.Ansible模块帮助 ansible-doc -l # 列出 Ansible 支持的模块 ansible-doc ping # 查看该模块帮助信息 二.远程命令模块 2.1command com ...
- ZOJ3715 竞选班长求最小花费
题意: 有n个小朋友竞选班长,一号想当班长,每个人都必须选择一个人当班长,并且不可以选择自己,并且每个人都有一个权值ai,这个权值就是如果1想让这个人改变主意选择自己当班长就得给他ai个糖 ...
- 测开之Python自动化全栈工程师+性能专项(送思维导图)
测开之Python自动化全栈工程师+性能专项 功能测试基础 接口测试基础接口的通信原理与本质cookie.session.token详解接口测试的意义与测试方法接口测试用例的设计 app测试 app流 ...
- Django(7)url命名的作用
前言 为什么我们url需要命名呢?url命名的作用是什么?我们先来看一个案例 案例 我们先在一个Django项目中,创建2个App,前台front和后台cms,然后在各自app下创建urls.py文件 ...
- opencv——形态学深究(分析和应用)
摘要: 形态学一般指生物学中研究动物和植物结构的一个分支.用数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具. 基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对 ...
- kubernetes dashboard延长自动超时注销
方法1:部署清单时,修改yaml文件,添加 container.Args 增加 --token-ttl=43200 其中43200是设置自动超时的秒数.也可以设置 token-ttl=0 以完全禁用超 ...
- gdb 调试,当发现程序退出,需要定位程序退出位置时。
在进入gdb后设置,执行下面语句 handle SIGSEGV nopass handle SIGSEGV nostop 执行程序,触发问题,gdb侧执行c 故障出现时,执行bt,显示堆栈调用.
- Fio 输出内容的解释
Fio 输出内容的解释 feilianbb 2016-01-11 16:18:54 27828 收藏 19 文章标签: Linux 存储 Fio SSD 性能 翻译原文来源 https://t ...