1 摘要

传统的基于文本行的文档去扭曲方法在处理复杂布局和/或非常少的文本行时会出现问题。当图像中没有对齐的文本行时,这通常意味着照片、图形和/或表格占据了输入的大部分。因此,对于健壮的文档去扭曲变形,我们建议除了对齐的文本行之外,还使用图像中的线段。基于图像中的许多线段在校正良好的图像中水平或垂直对齐的假设和观察,我们将此属性编码到代价函数中,以及文本行对齐代价。通过最小化该代价函数,我们可以获得用于文档校正的相机姿态、页面曲线等的变换参数。考虑到在某些情况下线段方向上存在许多异常值和丢失的文本行,整个算法以迭代的方式设计。在每个步骤中,我们都会删除未对齐的文本组件和线段,然后使用更新的信息最小化成本函数。实验结果表明,该方法对各种页面布局具有鲁棒性。

2 引言

文档图像处理(如布局分析和光学字符识别(OCR))是文档理解的重要步骤,已经提出了许多用于扫描文档图像处理的方法(使用平板扫描仪将打印文档转换为数字图像,并应用文档图像处理算法)[16]–[17],[20],[23]。然而,随着具有高分辨率数码相机的智能手机的最近发展,需要文档图像处理算法来处理相机捕获的图像以及扫描的文档[5],[9]。
与扫描图像处理相比,由于相机视图和页面曲线导致的几何失真,相机捕获图像的处理被认为是一项具有挑战性的任务。尽管深度测量硬件允许我们消除一系列几何失真[2],但这种方法不适用于普通用户。因此,几十年来,开发易于使用的矫正方法受到了许多关注。例如,针对基于单个图像的校正,提出了许多基于文本行的方法。然而,它们专注于文本行(和文本块),在处理复杂的布局和/或非常少的文本行方面存在局限性。在本文中,为了减轻这些限制,我们提出了一种鲁棒的去扭曲变形方法,该方法通过考虑线段和文本行,适用于一系列文档(非常规布局和非常少的文本行)。

3 相关工作

3.1 使用附加信息的扭曲矫正方法

对于文档图像校正,通过使用深度测量硬件(例如,结构光或激光扫描仪)开发了许多方法[2],[15],[18],[28]。这种方法能够非常有效地估计弯曲页面的表面,但是,特殊硬件的要求限制了其应用领域。在[10],[24],[26]中,根据从不同视点拍摄的多幅图像来估计弯曲页面。虽然它们可以在没有额外硬件的情况下进行校正,但对普通用户来说,拍摄多张图像是一件很麻烦的事,而且它们的计算复杂度也很高。在[4],[27]中,提出了利用照明条件的阴影形状方法。尽管这些方法可以应用于单个文档图像,但它们对照明的假设在许多情况下可能不成立。

3.2 基于文本行的扭曲矫正方法

对于单个文档图像校正(没有附加信息),已经提出了许多使用文本行的方法。由于文本行是常见的,并且在文档图像中显示规则的结构,因此它们被认为是文档校正中非常有用的特征。
在[22]中,通过许多水平线(由文本线构成)和垂直线(由换行构成)来估计两个消失点。该方法有效地消除了透视失真,但不适用于曲面的几何失真。在大多数基于文本线的方法中,曲面是用广义柱面(GCS)[24]建模的,形状是根据文本线的属性来估计的。在[6],[21]中,通过将顶部和底部文本线拟合到平面文档区域来估计弯曲的页面表面。在[8]中,文本行(在未失真的文档中)的属性被编码为成本函数,并且通过最小化该函数来估计相机姿态和弯曲的页面表面。尽管这些基于文本行的方法能够在没有附加信息的情况下减少几何失真,但它们专注于文本区域,有时会对非文本区域(例如照片、图形或表格)产生严重失真,如图1所示。总之,基于文本行方法利用了文本行和文本块的规则结构,它们基本上适用于文本丰富的案例。

图1:所提出的方法与传统的基于文本行的方法的比较[8]:(a)输入图像,(b)[8]的结果。文本区域上的失真在很大程度上被消除,然而,在其他区域中引入了新的失真。(c) 建议方法的结果。我们利用(红色)线段和(绿色)文本线的特性,可以消除整体失真。

3.3 本文的方法

为了缓解基于文本行的方法的局限性,我们提出了一种利用文本和非文本区域属性的展开方法:我们的方法使用线段和文本行。由于文档中的非文本区域通常具有许多线段(例如,表格和图像的边界),这些线段在经过良好校正的图像中水平或垂直对齐,因此我们将此特性编码到所提出的成本函数中,以及文本行的常规特性中。通过Levenberg-Marquardt算法[11],[13]最小化了成本函数,我们可以获得消除文本和非文本区域失真的校正变换,如图1所示。
实验结果表明,所提出的方法在文本区域上产生了最先进的校正性能(根据字符识别率评估),并在非文本区域上生成了视觉上令人愉悦的校正结果。此外,我们还使用几个定量度量(例如正交性)评估了非文本区域的校正性能。

4 本文建议的方法

为了实现鲁棒的展开,我们提出了一种考虑文本线和线段对齐特性的新算法。在本节中,我们首先介绍了校正变换的参数模型,并提出了反映对齐特性的代价函数。然后,我们讨论了代价函数的优化方法。尽管传统方法是通过假设文本行检测步骤中没有(显著)异常值来开发的[8],但少数异常值会显著降低性能,我们在所提出的优化步骤中处理异常值。

4.1 扭曲矫正过程的参数化模型


图2:扭曲矫正模型:(a)用相机查看的曲线文档,(b)曲线文档坐标,(c)平面文档坐标。

对于扭曲矫正过程的参数化建模,我们采用[8]中的模型。给定如图2-(a)所示的文档表面。图像域上的点(α,β)(α,β)(α,β)对应于曲线文档表面上的点 (x,y,z)(x,y,z)(x,y,z):
(αβ1)=(f0cx0fcy001)(sR⊤(xyz)+t)(1)\left(\begin{array}{c} \alpha \\ \beta \\ 1 \end{array}\right)=\left(\begin{array}{ccc} f & 0 & c_{x} \\ 0 & f & c_{y} \\ 0 & 0 & 1 \end{array}\right)\left(s \mathbf{R}^{\top}\left(\begin{array}{c} x \\ y \\ z \end{array}\right)+t\right) \tag1 ⎝⎛​αβ1​⎠⎞​=⎝⎛​f00​0f0​cx​cy​1​⎠⎞​⎝⎛​sR⊤⎝⎛​xyz​⎠⎞​+t⎠⎞​(1)
其中fff是相机的焦距,(cx,cy)(c_x,c_y)(cx​,cy​)是图像中心,(s,R,t)(s,R,t)(s,R,t)分别是两帧之间的缩放、旋转和平移。由于参数sss和ttt与校正无关,而是与图像比例和分辨率有关,因此我们在矫正过程中设置s=1s=1s=1,t=[0,0,f]⊤t=[0,0,f]^⊤t=[0,0,f]⊤ 。
对于图2(b)和(c)所示的GCS模型,曲面上的一个点可以转换为矫正文档上的对应点(u,v)(u,v)(u,v)
u=∫0x1+g′(t)2dtv=y(2)\begin{array}{l} u=\int_{0}^{x} \sqrt{1+g^{\prime}(t)^{2}} d t \\ v=y \end{array} \tag2 u=∫0x​1+g′(t)2​dtv=y​(2)
其中g(x)g(x)g(x)是用多项式表示的文档表面方程:
z=g(x)=∑m=0Mamxm(3)z=g(x)=\sum_{m=0}^{M} a_{m} x^{m} \tag3 z=g(x)=m=0∑M​am​xm(3)
其中M是多项式阶。小的M不能很好地描述实际的页面卷曲,大的M容易过度拟合。基于广泛的实验,我们发现四阶(M=4M=4M=4)多项式方程能很好地表示页面卷曲。
通过组合(1)、(2)和(3),可以将图像域上的点转换为校正文档图像上的对应点。
总之,捕获的图像域和校正的文档域之间的几何关系可以用多项式参数{am}m=0M\left\{a_{m}\right\}_{m=0}^{M}{am​}m=0M​和相机姿态R\mathrm{R}R(我们假设相机焦距fff是已知的)来参数化。因此,文档图像校正过程可以公式化为多项式参数和相机姿态的估计问题。

4.2 建议的代价函数

为了估计扭曲矫正参数Θ=(R,{am}m=0M)\Theta=\left(\mathbf{R},\left\{a_{m}\right\}_{m=0}^{M}\right)Θ=(R,{am​}m=0M​),我们开发了一个成本函数:
fcost (Θ)=ftext (Θ)+λfline (Θ)(4)f_{\text {cost }}(\Theta)=f_{\text {text }}(\Theta)+\lambda f_{\text {line }}(\Theta) \tag4 fcost ​(Θ)=ftext ​(Θ)+λfline ​(Θ)(4)
其中ftext (Θ)f_{\text {text }}(\Theta)ftext ​(Θ)反映校正图像中文本行属性的术语[8]。准确地说,当转换的文本行对齐良好时,ftext (Θ)f_{\text {text }}(\Theta)ftext ​(Θ)变小:水平直线,两个相邻文本行之间的行距是规则的,文本块要么左对齐,要么右对齐,要么对齐。然而,ftext (Θ)f_{\text {text }}(\Theta)ftext ​(Θ)的优化有时会在非文本区域上产生严重失真(如图1-(b)所示),我们还通过引入fline (Θ)f_{\text {line }}(\Theta)fline ​(Θ)来利用文档图像中的线段。

4.3 线段对齐和代价函数

对于fline (Θ)f_{\text {line }}(\Theta)fline ​(Θ)的设计,我们首先使用[25]中的线段检测器(LSD)提取给定图像中的线段。然后,根据在校正图像中大部分线段水平或垂直对齐的观察结果,我们将该术语定义为
fline (Θ)=∑imin⁡(cos⁡2θi,sin⁡2θi)(5)f_{\text {line }}(\Theta)=\sum_{i} \min \left(\cos ^{2} \theta_{i}, \sin ^{2} \theta_{i}\right) \tag5 fline ​(Θ)=i∑​min(cos2θi​,sin2θi​)(5)
其中θi\theta_iθi​是变换后的第iii条线段的角度(当使用当前参数Θ\ThetaΘ进行校正时),如图3所示,并且通过扭曲矫正过程(使用Θ\ThetaΘ)将它们的变换点定义为pi′p_{i}^{\prime}pi′​和qi′q_{i}^{\prime}qi′​。然后将θi\theta_iθi​定义为连接pi′p_{i}^{\prime}pi′​与qi′q_{i}^{\prime}qi′​的线段的方向。

图3:线段及其角度图示。


图4:相机捕获图像和校正图像中的文本线和线段。文本组件表示为(绿色)椭圆,线段表示为(红色)线。线段对齐项(5)分别为16.282和0.04。

由于线段在垂直或水平方向上对齐,如图4所示,该项变小。尽管存在异常值(具有任意方向的线段),公式(5)通过使用有界惩罚函数(cos⁡2θi≤1,sin⁡2θi≤1\cos ^{2} \theta_{i} \leq 1, \quad \sin ^{2} \theta_{i} \leq 1cos2θi​≤1,sin2θi​≤1). 此外,我们还开发了一个优化步骤,以缓解异常值问题。

4.4 异常值删除和优化


图5:我们的迭代方案:(a)输入图像,(b)第一次迭代后的结果,(c)第二次迭代之后的结果。

尽管[8]中使用的优化方法假设没有异常值(或它们的影响不是关键的),但由于异常值,fcost (Θ)f_{\text {cost }}(\Theta)fcost ​(Θ)的直接优化可能会产生如图5-(b)所示的不良校正结果。我们处理两种异常值类型,即缺失的文本行和具有任意方向(非水平/垂直)的线段。对于离群值的去除,我们设计了一种迭代方法。在每一步中,我们都通过删除异常值来细化特征(文本组件和线段),并使用更新的inliers最小化代价函数。准确地说,在第(j+1)(j+1)(j+1)次迭代时,一组更新的直线段被定义为
Lj+1={l∣l∈Lj,fline(l)<τj}(6)L_{j+1} = \{l\vert l\in L_{j},\ f_{line}(l) < \tau_{j}\} \tag{6} Lj+1​={l∣l∈Lj​, fline​(l)<τj​}(6)
其中,LjL_jLj​是第jjj次迭代时的内集。如果变换后的线段(在每个步骤)不是垂直/水平对齐的,我们将这些线段确定为异常值。文本的异常值删除也有类似的定义。如果转换后的文本行未对齐(不是水平行),我们将这些不在水平行上的文本组件确定为异常值。由于成本项反映了文本行和线段的对齐,我们通过计算成本项来检测异常值。重复此迭代,直到inlier的数量变得稳定。经过大量实验,我们将最大迭代次数设置为3。成本函数由平方项组成,Levenberg-Marquardt(LM)算法用于成本函数优化[11],[13]。

6 引用该论文的文献

[1] Document rectification and illumination correction using a patch-based CNN
https://dl.acm.org/doi/abs/10.1145/3355089.3356563
[2] Can you read me now? content aware rectification using angle supervision
https://link.springer.com/chapter/10.1007/978-3-030-58610-2_13
[3] Light-Weight Document Image Cleanup Using Perceptual Loss
https://link.springer.com/chapter/10.1007/978-3-030-86334-0_16
[4] Dewarping document image by displacement flow estimation with fully convolutional network
https://link.springer.com/chapter/10.1007/978-3-030-57058-3_10
[5] A Novel Adaptive Deskewing Algorithm for Document Images
https://www.mdpi.com/1424-8220/22/20/7944

参考文献

[1] 论文:Robust Document Image Dewarping Method Using Text-Lines and Line Segments
[2] 代码:https://github.com/taeho-kil/Document-Image-Dewarping

Robust Document Image Dewarping Method Using Text-Lines and Line Segments论文学习笔记相关推荐

  1. An efficient augmented Lagrangian method with applications to total variation minimization论文阅读笔记

    An efficient augmented Lagrangian method with applications to total variation minimization论文阅读笔记 论文信 ...

  2. 《Fast Gradient Projection Method for Text Adversary Generation and Adversarial Training》论文学习笔记

    最近在学习对抗学习在文本分类方面的论文,对抗训练在提高深度神经网络对图像分类的鲁棒性方面表现出了有效性和高效性.然而,对于文本分类,文本输入空间的离散特性使得基于梯度的对抗方法难以从图像域进行自适应. ...

  3. Progressive Minimal Path Method for Segmentation of 2D and 3D Line Structures论文学习

    Progressive Minimal Path Method for Segmentation of 2D and 3D Line Structures论文翻译和学习 今天就先学到这里吧!明天接着研 ...

  4. PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency (PointDSC) 论文学习笔记小结

    PointDSC工作基于利用空间一致性的Outlier Removal, 是对Spectral Match(SM)算法的改进与拓展.SM算法通过长度一致性构建对应关系间的相容图.随后使用特征分析来进行 ...

  5. 《Mining Quality Phrases from Massive Text Corpora》论文学习笔记

    目录 一.序言 二.研究背景 三.基础概念 四.研究意义 4.1 传统的短语挖掘方法

  6. Learning From Documents in the Wild to Improve Document Unwarping论文学习笔记

    1 广告 论文2022年发表在SIGGRAPH顶会上. 预训练出来的模型有139M. 对文档的去扭曲变形效果在我们调研的深度学习模型里面算是最好的. 2 摘要 文档图像去扭曲是文档数字化和分析的重要内 ...

  7. Uncaught TypeError: Object #Document has no method 'load'

    当Javascript加载XML文件时,IE和FF下正常,但Chrome下报错:Uncaught TypeError: Object #<Document> has no method ' ...

  8. 【笔记】Every Document Owns Its Structure Inductive Text Classifification via

    [笔记]Every Document Owns Its Structure: Inductive Text Classifification via Graph Neural Networks 一.背 ...

  9. Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks论文理解

    [标题] <Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networks& ...

最新文章

  1. 2021年大数据Kafka(四):❤️kafka的shell命令使用❤️
  2. mybatis支持驼峰自动转换sql吗_mybatis-plus返回map自动转驼峰配置操作
  3. sharepoint 2016 开启Project 2016 pwa网站
  4. 收藏功能_六款多功能榻榻米,装完你家会大一半!超实用,收藏
  5. Spring官方推荐的@Transactional还能导致生产事故?
  6. linux判断改行符_Linux判断符如何使用?
  7. Objective-c的点符号(.)的奇怪之处
  8. 月薪3000我不干!为什么学完Python后我失业了!
  9. 慎用PHP的unset、array_unique方法
  10. javascript生成m位随机数
  11. 手机端html本地存储,HTML5 web storage本地存储
  12. 网页模板----01
  13. heatmap绘制热图时出现样本列名顺序调换
  14. 算法的定义、特征及其算法设计的要求
  15. LabVIEW编程LabVIEW开发 控制雷赛运动控制器SMC604A例程与相关资料
  16. 祝贺父亲节快乐的python代码_祝福父亲节快乐的句子50句
  17. 数据库(Mysql)的事物详解
  18. js验证营业执照号码是否合规
  19. 2022安全员-B证考试题及在线模拟考试
  20. 西安理工大学计算机视觉与应用,关于举办计算机视觉与图像处理应用最新进展报告会的通知...

热门文章

  1. 如何充实地度过大学四年?
  2. IIS 应用程序池自动停止处理
  3. python中callable什么意思_python中callable对象有什么用
  4. [科普]3.5mm耳机国标和美标
  5. 研究生开学第一周Week01
  6. 使用Hogo+LoveIt主题搭建博客网站
  7. 分享七天写好SCI初稿:
  8. 计算机毕业设计nodejsLIN广告设计网站系统
  9. 慕课网—前端开发工具SublimeTex实用技巧{黑客教父部落}
  10. RTD2172/RTD2171 Type-C转HDMI设计方案|替代RTD2171/RTD2172芯片|GSV2201可完全替代兼容RTD2172/RTD2171