版面分析:[ICCV2017] Fast CNN-based document layout analysis

论文链接:https://openaccess.thecvf.com/content_ICCV_2017_workshops/papers/w18/Oliveira_Fast_CNN-Based_Document_ICCV_2017_paper.pdf

自动文档布局分析是认知计算和从文档图像中提取信息的过程中的关键步骤,如特定领域知识数据库创建、图形和图像理解、从表中提取结构化数据等。尽管在过去几年中在这一领域取得了进展,但挑战仍然存在,范围从准确检测内容框到将其分类为语义上有意义的类。

1. 动机(Motivation)

  • 卷积神经网络(CNN)已被广泛应用于许多不同领域,用于各种目的。然而,在低内存和快速处理至关重要的文档存储和检索应用中,它们固有的非常高的计算负担通常限制了使用它们的成本效益。
  • 使用投影识别图像块减少文档分析计算负担的方法,没有受益于使用一维卷积架构的 CNN 的鲁棒性。 这种场景为基于 CNN 的文档分析创新方法创造了许多机会,这些方法可以在不降低预期准确度的情况下降低计算成本和数据使用量。

2. 亮点(Highlights)

文章提出了新的一维CNN方法,用于快速自动检测结构化图像文档的布局。文章还实现了一个通用的二维CNN程序来比较性能,结果表明,快速一维体系结构使用一维投影以更少的数据使用和处理时间提供非常相似的结果。

3. 方法(Methodology)

文章为文档图像布局分析所提出的方法实现了一个pipeline,从文档图像分割成内容块到最终分类,如图1所示。以下小节详细描述了每个步骤。
在这里插入图片描述
图1. 文章提出的文档图像布局分析方法的框图

3.1 分割文档图像中的内容块

步骤如下:

  1. 将原始图像转换成灰度图像(参见图2a)。
  2. 将步骤1中获得的结果,由[1]中描述的游程长度算法进行处理,以检测包含信息的可能性高的区域。该算法应用于水平和垂直方向,并使用运算符and组合生成的二值图像,如图2b所示。
  3. 对步骤2生成的二值图像执行两次3×3膨胀操作,以创建内容块,如图2c所示。
  4. 迭代检测二值图像中最大的连通分量,并将其表示为一个内容块。检测过程直到在图像中找不到更多连接的组件为止。最终结果的示例如图2d所示。
    在这里插入图片描述
    图2. 用于将页面分成内容块的pipeline。a)输入灰度页面。b)由游程长度算法产生的二值图像。c)由mask 3×3两次膨胀产生的二值图像。d)生成的内容块。

拓展:游程平滑算法[1]

  • 游程平滑算法RLSA是借鉴于游程编码的一种版面分析前期处理方法。经过其处理后的版面图像被分成一个个子区域(将水平/垂直像素合并为线和区域),对这些区域的有效分类和合并时版面分割任务的关键。
  • 具体思路:任意两个连续前景像素之间的背景像素的数目小于预定的阈值,则把图像背景转换为前景(涂抹前景像素)。
  • 根据上述原理,版面分割的游程平滑算法的实现过程为:
  1. 在水平方向对原始图像进行平滑,当同一水平线上相邻的前景像素之间的背景像素小于给定的阈值,则将背景像素转换为前景像素,得到水平平滑图像,如图3中的Horizontal RLSA所示。垂直方向同理,得到Vertical RLSA。
  2. 将水平平滑图像(Horizontal RLSA)和垂直平滑图像(Vertical RLSA)做与运算。得到zone blocks。
    在这里插入图片描述
    图3. RLSA算法

3.2 对文档图像中的内容块进行分类

一旦文档图像被分割为内容块,文章使用CNN模型将其分为三个不同的类别:文本、表格和图像。文章实际实现了两种不同的CNN体系结构:一种常用于不同计算机视觉问题的二维方法,用作基线(baseline);文章提出的快速一维体系结构使用一维投影以更少的数据使用和处理时间提供非常相似的结果,如结果部分所示。
文章中使用的CNN体系结构受VGG体系结构的启发,由负责计算卷积特征的多个卷积层组成,然后是多个完全连接的层,这些层对特征进行分类,并为每个感兴趣的类别生成概率。

3.2.1 使用基于二维CNN的baseline分类

对于二维基线,文章实现了一种体系结构,该体系结构接收二维图像块作为输入,并使用三个二维卷积层序列(带有50个过滤器和ReLu激活)对其进行处理;然后使用50个节点的完全连接层和3个节点的完全连接层以及softmax激活(三类分类)评估卷积特征。在该模型中,每个二维卷积层后面都有MaxPooling层,它有2个像素内核和一个0.1dropout用于正则化。两个完全连接的层之间也存在0.3dropout,以便更好的模型泛化。所有实验中使用的卷积内核大小为3x3像素,图4中描述了该架构的模式。
在这里插入图片描述
图 4. CNN 模型架构:二维基线和提出的一维方法

3.2.2 文章提出的方法:基于CNN的快速一维分类

在文章的方法中,提出了一种一维CNN架构,该架构使用图像块垂直和水平投影来对内容块进行分类。
如图5所示,文本、表格和图像块对于此类投影具有非常不同且高度区分的特征:

  • 由于文本行的原因,文本块在垂直投影中通常具有方形信号状形状,而在水平投影中具有大致恒定的信号状形状;
  • 表格块在垂直投影中也有一个方形信号形状,但在水平投影中也有一个大致的方形信号形状,这是由于列组织的原因;
  • 图形在水平和垂直投影中都没有任何特殊图案。
    在这里插入图片描述
    图5. 文本、表格和图像内容块及其相应的垂直和水平投影(蓝色)的示例:(a)文本;(b)表格;©表格。

每个投影由一个独立的卷积轨迹进行处理,该轨迹由三个1D卷积层序列组成,每个1D卷积层具有50个滤波器,并且ReLu激活。每个轨迹的输出被连接并提交到一个完全连接的层,其中50个节点连接到一个3节点完全连接的层,并通过softmax激活三类分类。在该模型中,每个一维卷积层之后是一个MaxPooling层,其核大小为2个像素,和一个0.1dropout用于正则化。与二维模型类似,为了更好地泛化,在两个完全连接的层之间有0.3的dropout。在所有实验中使用的卷积核大小为3x1像素,架构如图4所示。
需要注意的是,文章在基线和一维体系结构中使用了相同数量的层、过滤器和内核大小,因此可以评估降低分析维度的影响,而不是模型中的参数差异。

4. 实验设计(Experimental Design)
4.1 Data

为了运行实验,文章从 ArXiv 论文中构建了一个数据库,过滤了最后 300 份在摘要中包含“地震”一词的文档。 地震关键字的使用与本文范围之外的原因有关,作者相信结果对于不同领域的论文会相似,并且不会损失概括性。
如第3.1节所述,作者将文档分为内容块。并根据其内容手动将其分类为文本、表格或图形。该过程衍生出一个由99个表块、2995个图像块和4533个文本块组成的带注释的数据库。

4.2训练和测试程序

为了处理这个非常不平衡的数据库并强调CNN模型,作者决定对数据库进行子采样和平衡,以训练CNN模型,创建一个由每个类90个随机选择的块组成的数据库。文章使用每100像素100像素的滑动窗口采样进行数据扩充,步长为30。这一过程衍生出一个训练数据库,每个类大约有6092块100x100像素块,总共执行18278个样本。该数据集进一步分为80%用于训练(其中20%用于验证),20%用于测试模型分类精度。在第5节中展示了这些结果。
一旦模型经过训练,文章就会根据整个不平衡的数据库对它们进行评估。 在这个测试中,文章评估的不是 100x100 像素图块,而是完整的内容分类块,为此使用了一个简单的投票模式。 对于每个内容块,作者使用上面相同的滑动窗口模式提取了几个图块,并针对训练过的模型对它们进行了评估。 给定内容块的最终分类是通过使用块中的所有图块计算最高平均类别概率来获得的,这模仿了概率加权投票模式。 然后,作者将带注释的参考与实验的结果进行比较,并将结果编译到混淆矩阵(误差矩阵)中,如第 5节所示。

拓展:混淆矩阵
在这里插入图片描述

5. 结果和讨论

为了公平地比较文章提出的方法和实施的二维基线,作者使用了完全相同的训练参数:30 个训练时期(足以在文章所提的实验中训练收敛)、50 个样本的小批量并仅保存最佳训练模型。在这里作者报告文章的第一个结果:训练过程在二维基线方法中花费了 823.82 秒,但在提出的一维方法中只花费了 126.92 秒,快了 6.5 倍。 两种模型的训练均使用 NVidia Tesla K80 GPU 进行。
对于经过训练的模型,作者首先评估了它们在 100x100 tiles(图块)分类中的表现。 回顾第 4.2 节,作者从总共 18278 个样本中分离出 20% 的图块进行测试,对应于 3656 个样本或每类大约 1218 个样本。 评价结果以混淆矩阵的形式如表1所示。 值得注意的是,两种模型都具有良好且相似的性能:二维基线的总体准确率达到了 96.8%,而文章所提出的方法达到了 96.6%。 将维度从二维patches(块)减少到一维投影并没有影响实验中的整体精度。

表1. 混淆矩阵显示了二维基线和一维方法的tiles性能
在这里插入图片描述
2D 准确度 = (1172 + 1144 + 1225) / (1172 + 17 + 12 + 32 + 1144 + 12 + 24 +18 + 1225) = 96.8%
Our 准确度 = (1186 + 1144 + 1204) / (1186 + 14 + 3 + 46 + 1144 + 22 + 12 + 25 + 1204) = 96.6%

文章还评估了这两个模型对完整内容分类块的执行情况。 在这个实验中,文章使用了整个不平衡数据集,包括 99 个表格块、2995 个图像块和 4533 个文本块。 如第 4.2 节所述,作者计算了该blocks(区块:完整块)中所有tiles(块)的每个类别的概率,并选择了对应于最高平均概率的类别,类似于概率加权投票模式。 文章所提出方法的结果显示在表 2 中,再次使用混淆矩阵。 可以注意到两个模型都表现良好:二维基线的总体准确率达到了 97.19%,而文章所提出的方法达到了 96.75%。 在实验中,将维度从 2D 块减少到 1D 投影似乎对整体精度没有非常显着的影响。

表2. 混淆矩阵显示了二维基线和一维方法的完整块(blocks)性能
在这里插入图片描述
为了突出使用所提出的一维方法的优势,文章还评估了评估新文档图像的处理时间。 为此,还计算了对给定页面的内容块进行分类所花费的处理时间,并将结果显示在表 3 中,其中文章的方法比文章测试的基线二维方法快 7.8 倍,几乎没有损失准确性。

表3. 使用二维基线和一维方法对每页内容块进行分类的处理时间
在这里插入图片描述
最后,为了完整性,文章还使用提出的方法在图 5 布局中显示了整页分类的结果。 可以看到灰色的文本块,黄色的图像和蓝色的表格,结果与目测一致。
在这里插入图片描述
图5. 使用文章的方法获得的结果与视觉检查一致:五页中的块被正确分割并分类为文本、图像和表格。

5.2 文章提出的方法和最新技术

文章还将结果与最先进的结果进行了比较。 这里值得一提的是,尽管使用公开文件来评估文章的方法,并实施了一个基线进行公平比较,但所有方法中使用的数据并不相同,因此应谨慎看待。使用相同数据集的文档图像分析方法的比较并不简单,因为有些是付费的(UW-III),有些在他们的主页上不可用(ICDAR-2009),或者没有文章内置数据库(MediaTeam)的相同类型的文档(学术论文)。 尽管如此,由于对文本和图像块进行分类的挑战具有许多前提,我们看到了在这种情况下比较作品的价值,并将它们编译在表 4 中,结果与此处介绍的最先进方法相当。 还值得一提的是,表格块的结果不包括在内,因为其他比较方法不处理此类。

表 4. 与其他方法的比较:我们的方法在文献中通常处理的类中取得了良好的结果。在这里插入图片描述
5.3 详细说明文章实验中的错误

在对文章的结果进行评估的过程中,作者在错误中发现了一些有趣的模式。如图6所示,错误通常与公式的存在有关,公式被标注为文本,但始终被归类为图像;内容分割块问题;或手动注释中的错误(尤其是注释为文本的表格)。

  • 与公式相关的错误(见图 6a)理论上可以通过向文章的模型添加一个新的公式类来修复,但这将涉及重新注释数据,作者在这项工作中还没有这样做。
  • 关于块分割的问题,作者注意到有时文章中用来分割块的算法会将不同的块合并在一起,如图6b所示,这会导致块分类错误。
  • 一个有趣的现象与有关手动数据库注释的错误有关,如图 6c 所示。 在这种情况下,模型实际上对块进行了正确分类,并且可以用于优化数据库,这是一个积极的方面。
    在这里插入图片描述
    图 6. 在文章的方法中发现的最常见的错误: (a) 注释为文本并分类为图像的公式; (b) 注释为文本并分类为图像的块分割问题; (c) 人工标注错误:图标注为文本分类为图像,表格标注为文本分类为表格。

6. 结论

本文提出了一种基于 CNN 的快速文档图像布局分析方法。 在我们的方法中,我们首先对文档图像中的内容块进行分割,然后将它们分成几个图块并计算它们的水平和垂直投影,这些投影由一维 CNN 模型共同使用,将它们分类为文本、表格和图片。 然后,图块分类结果结合了一个简单的投票模式,该模式定义了文档图像中每个内容块的最终类别。
为了评估我们的模型,我们使用来自 ArXiv 网站的公开可用文档构建了一个数据库,我们在摘要中过滤了最后 300 份文档。 我们按照第 3.1 节中的描述对文档页面进行分割,并手动将各个内容块分类为文本、表格或图形。 这个过程导出了一个由 99 个表格块、2995 个图像块和 4533 个文本块组成的带注释的数据库,通过我们的实验使用。
我们的模型是根据我们使用与我们的方法非常相似的架构实现的基于二维 CNN 的基线方法进行评估的,这使我们能够评估降低模型性能维度的影响。 我们的结果表明,我们的方法实现了在二维基线中观察到的相同精度,但相应的数据使用量要低得多(从 100x100=10M 像素到 2x100=200 像素,少 50 倍)和处理时间(大约快 7.8 倍) 文档页面评估)。 这些结果可能对移动应用程序或基于云的服务有用。
进一步的研究将包括为内容分类块包括其他语义类并处理不同类型的文档,例如历史文档。

References
[1]K. Y . Wong, R. G. Casey, and F. M. Wahl. Document analysis system.IBM journal of research and development,26(6):647–656, 1982.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29204.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文笔记之数据增广(1):mixup

mixup:BEYOND EMPIRICAL RISK MINIMIZATION 文章:https://arxiv.org/pdf/1710.09412.pdf 代码:github 作者:张宏毅 mixupBEYOND EMPIRICAL RISK MINIMIZATION 摘要背景 引入贡献 方法 公式理解 实验讨论 摘要 如今大规模深度…

【图像超分辨率重建】——EnhanceNet论文精读笔记

2017-EnhanceNet: Single Image Super-Resolution Through Automated Texture Synthesis(EnhanceNet) 基本信息 作者: Mehdi S. M. Sajjadi Bernhard Scholkopf Michael Hirsch 期刊: ICCV 引用: * 摘要: 单一图像超分辨率是指从…

旷视CVPR2019图卷积多标签图像识别Multi-Label Image Recognition with Graph Convolutional Networks论文详解

背景:GCN刚出来,很多很容易想到的idea会被运用起来,很容易产生一些paper。我们解析此篇论文,了解其中原理,一来看看如何将图卷积应用于目前技术上,二来看到底如何快速的把准确率刷到state of the art以便发…

Hierarchical Modular Network for Video Captioning【论文阅读】

Hierarchical Modular Network for Video Captioning 发表:CVPR 2022代码:HMNidea:现有方法在有监督学习的框架下比较生成句子与标注,没有对语义有详尽的探索。基于此,作者考虑从三个层面来连接视频特征和语义&#x…

CVPR2019超分辨率文章:Meta-SR,任意输入upsample factor的超分辨率网络

论文地址 CVPR2019的新文章,主要是针对以前超分辨率问题中需要固定上采样因子的问题作出的改进。 摘要 随着DNN的发展,超分辨率技术得到了巨大的改进。但是,超分辨率问题中的任意scale factor问题被忽视了很久。前面的很多工作都是把不同s…

GAIDC大会:飞桨邀你来大模型技术与应用论坛

深度学习大规模预训练模型的兴起,以其极强的通用能力和突破性的效果,正推动通用人工智能(AGI)快速发展,并带来了AI研发应用新范式,逐步改变AI生态格局。近期以大规模语言模型为基础的技术工作,展…

人工智能大模型多场景应用原理解析

​强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan 前言 在上篇文章《人工智能大模型之ChatGPT原理解析》中分享了一些大模型之ChatGPT的核心原理后,收到大量读者的反馈,诸如:在了解了核心原理后想进一步了解未来的发展…

3日行程安排

22号 13:30出发到峡山码头坐船--横山岛景区 峡山码头 船费:来回70r 固定开船时间:9:30,12:00,14:00 或者🈵️12人自动开船,最晚4点有船返回 岛上风景 逛山海“小普陀”寺庙普南禅院,被誉为宁…

托福备考经验心得

综述 托福备考准备经验与心得。全部都是个人的反思,带有个人的观点色彩,按需自取即可。首先是几个深刻的经验教训: 对备考的强度要有一个基本的把握,之前一方面在忙别的事情一方面备考感觉自己成效不是特别明显 (可能是我本人能…

初识托福TOEFL口语

对于想要准备托福的童鞋,并不怎么了解托福考试内容的可以看一看,本文主要给大家分享下托福考试中口语部分介绍。 托福考试中总共有4个部分,第一个部分是Reading(阅读),第二个部分是(Listening&…

chatgpt赋能Python-pycharm自动纠错

Pycharm自动纠错:提高开发效率,减少犯错 随着Python语言的流行,Pycharm成为了众多Python工程师的首选IDE之一。Pycharm具有丰富的功能,其中之一就是自动纠错。本文将介绍Pycharm自动纠错的优点和如何正确使用它来提高开发效率&am…

KFC - VME = 50

KFC - VME 50 CalHeightFromPointToPlane.java_spencer_tseng的博客-CSDN博客

kfc 商家地址获取

简单获取商家地址(kfc) 学习源址 基本的查找url,请求方式我也是在上面的链接中学到的,在此就不赘述了,只是重点分享和记录一下自己遇到的一些bug 代码 import requestsurl http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?opkeyw…

java实现kfc点餐系统

一、题目分析 1.1、题目要求 正常餐品结算和找零。基本套餐结算和找零。使用优惠劵购买餐品结算和找零。可在一定时间段参与店内活动(自行设计或参考官网信息)。模拟打印小票的功能(写到文件中)。 基本要求:程序设计风…

html网页肯德基设计代码作业,Illustrator设计一幅肯德基广告单页制作教程

给各位Illustrator软件的使用者们来详细的解析分享一下设计一幅肯德基广告单页的制作教程。 教程分享: 首先来看一下最终效果图: 本幅广告页面我们很常见,就是一幅肯德基广告页面。在现实生活中,同学可以细心观察身边的事物&#…

kfc扫描点餐系统java_Java实现KFC点餐系统过程解析

这篇文章主要为大家详细介绍了java实现KFC点餐系统,模拟肯德基快餐店的收银系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银…

python爬取ajax动态内容肯德基门店,Python爬虫如何爬取KFC地址

随着人们生活水平的提高,肯德基这类的快餐消费的十分火爆,成为小朋友和年轻人的最爱,我们到一个地方想要找到肯德基店面,会根据导航获取肯德基地址,那你知道我们也可以使用python爬虫获取KFC地址吗?我们可以…

爬虫爬取国内肯德基门店信息

预期效果 爬取每个城市(300城市)所有的肯德基门店信息,保存到excel中,效果如下: 代码实现 import requests import csv import jsondef getData(page,key):urlhttp://www.kfc.com.cn/kfccda/ashx/GetStoreList.as…

python爬取肯德基KFC全国门店2021-01-11

python爬取肯德基KFC全国门店 改进版 之前,参考两位网友的代码,爬取全国KFC门店,发现有些许问题。在参考网友代码的基础上,进行改进,最终爬取了全国KFC门店。 思路如下: 第一步:通过KFC门网页…

html网页肯德基设计代码作业,AI快速制作一幅肯德基广告单页教程

这篇AI教程向脚本之家上的朋友介绍AI快速制作一幅肯德基广告单页方法,教程以实例的形式向我们介绍广告单页的制作方法,很实用,也比较简单,喜欢的朋友快来学习一下吧! 首先来看一下最终效果图: 本幅广告页面…