当前位置: 首页 > news >正文

opencv3和qt5计算机视觉应用开发pdf_计算机视觉方向简介 | 用深度学习进行表格提取...

b00777f61201b2e901349c9c01a7cf57.png
这一篇是2017年文档分析与识别国际会议(ICDAR)论文。来自巴基斯坦国立大学的Azka Gilani, Shah Rukh Qasim等人提出来的 基于Faster-RCNN表格检测的方法。该方法在对不同排版的文档时,具有更强的鲁棒性和泛化。

0a6f5256bd3b37b8b30b1a67e13470ed.png

背景介绍&已有方法

文档分析是一种定量分析,对文档进行检查和解释,以便引出意义,获得理解并归纳出经验知识。

表格用于以结构化方式向读者呈现基本信息,是许多文档分析应用程序中的关键步骤。但由于表格的布局和设计不同,这导致表格识别是一个难题。研究人员已经提出了许多基于文档布局分析的表格检测技术:

  • Costa e Silva提出使用隐式马尔科夫模型,将文本从PDF取出,并计算文段之间的距离作为特征向量。这个方法的缺点是:只适用于非光栅化PDF文档。
  • Anh提出一个混合方法,系统将先对文档图片话进行分类文字与非文字区域的划分。基于上一步的划分,寻找表格的候选区域。但这种方法无法识别跨页表格并且无法用于扫描的文档。
  • ...

大多数这些技术未能概括,因为它们依赖于手工设计的特征,这些特征对于布局变化不具有鲁棒性。

1.网络架构

79fa4368be6b304fe7bbd5d3490e231d.png

主要由两个模块组成:

  • Image Transformation
  • Faster R-CNN

1.1 图像变换(Image Transforamtion)

相比于直接用图像,他们认为对图像采用 distance transform可以精确地计算出文字区域与空白区域之间的距离,以便之后可以准确地推测出表格所在的区域,也能在已有的Faster R-CNN模型更好地训练。

424c94d2b2e4415209351ef3a0ea59d7.png

先分别对图片的三个通道进行不同的 distance transform,再把三个通道的处理结果相加,得到模型的输入。

cbb5ed9bbd5571e3b587df3b685b1f93.png

1.2 Faster-RCNN

4527ee979e2e23aad79b7a4295e9dde5.png

如图所示,Faster-RCNN分为三大部分:

1.共享的卷积层(shareable convolutional layers)

这篇paper用了5层的Zeiler and Fergus model(简称为ZF model)

2.候选区域生成网络(Region Proposal Network)

这就是Faster R-CNN的最大优势,可以更快生成检测框。RPN从共享卷积层得到feature map后再做3*3的卷积,相当于每个点融合了周围8个点的空间信息,并且每一个滑动窗生成最多 k=9个的anchors作为初始的检测框。 之后,分为2条线:

a) cls line:用 Softmax判定foreground(含有检测目标)和background,在训练的时候排除掉了超越图像边界的anchor。

b) reg line:采用 SmoothL1Loss进行训练,计算对于anchors的bounding box regression偏移量,以获得精确的proposal。

03b5e025ab04752a591336ac08dceb25.png

最后的 ProposalsLayer则综合两条线的信息,筛选掉太小和超边界的候选框,将合格的proposals输出到下一个分类器中。

3.对候选区域进行分类的网络(Classifier)

这里接受了两个输入:Feature MapsProposals ROIPooling的作用: a) 每个ROI从共享卷积层上摘取对应的特征

b) Proposals提供的检测框大小尺寸不同,需要做对齐,转换为固定大小的供下一步全连接层使用。

最后经过全连接层,获得两个输出: 检测框的四个坐标分类结果

2. 模型训练

分类器训练样本:

  • 正样本(positive example): 含有table的区域(table region)
  • 负样本(negative example): background

因此,这个网络并不会在负样本上过多地进行表格搜索,下面是一些失败案例。

7c6e62b7ca63fe3fb12c67618f138288.png

模型用了 MomentumOptimizer, 具体参数设置:

  • Learning rate: 0.001
  • Momentum: 0.9

3. 实验结果

下面是一些UNLV数据的检测结果,蓝色为ground truth,红色为模型检测区域。

00d50d1a7ab5a370db3f71aa86e6d4a1.png

作者认为ICDAR2013提出方法都不具备普遍性,因为不是数据驱动型的(data-driven),并且高度依赖表格的排版和其他主观特征提取,所以并不和ICDAR2013中的方法进行比较。

d75f12bdbcb67d3e09bac428bc7af666.png
  • 蓝色框为ground truth
  • 绿色框为模型检测区域
  • 红色框为Abbyy Cloud OCR SDK检测结果
  • 紫色框为Tesseract检测结果

f4dbd09e298b80fd0894521c5318232a.png

4. 总结

结果表明,基于深度学习的系统对于表格检测的布局分析更稳定的,因为它不依赖于手工设计的特征。与由Google开发的Tesseract最先进的表格检测的相比,它可以提供更好的结果系统。未来,将会针对表格结构和表格内容提取进行深入研究。

Reference

  • 论文链接:Table Detection using Deep Learning
  • 数据集: UNLV dataset
  • 部分图片及文字来源: 实例分割模型Mask R-CNN详解:从R-CNN,Fast R-CNN,Faster R-CNN再到Mask R-CNN

推荐阅读

计算机视觉方向简介 | 从全景图恢复三维结构

计算机视觉方向简介 | 阵列相机立体全景拼接

计算机视觉方向简介 | 单目微运动生成深度图

计算机视觉方向简介 | 深度相机室内实时稠密三维重建

计算机视觉方向简介 | 深度图补全

计算机视觉方向简介 | 人体骨骼关键点检测综述

计算机视觉方向简介 | 人脸识别中的活体检测算法综述

计算机视觉方向简介 | 目标检测最新进展总结与展望

计算机视觉方向简介 | 唇语识别技术

计算机视觉方向简介 | 三维深度学习中的目标分类与语义分割

相关文章:

  • Runtime 类
  • vue element tree 后台 数据转换_mallcloud商城vue
  • excel统计行数_WPS| 12个简单的Excel技巧,却能让造价人变得如此逆天!
  • RandomAccess接口
  • python用input输入list_python怎么用input函数输入一个列表
  • sublime text 2 卸载与重装
  • 数字图像中255表示什么_数字图像处理学习之(一):图像与图像的表示
  • 初见Hadoop—- 搭建MyEclipse 访问HDFS 上的文件
  • 有些网站打开一半空白_如何发一条空白的朋友圈
  • 一台服务器能承载多少用户_冰淇淋机多少钱一台?做冰淇淋也能小有成就
  • json web token 网上学习笔记
  • python中函数包括_python函数
  • bzoj1059 [ZJOI2007]矩阵游戏
  • python 直方图的绘制方法全解_python可视化:matplotlib绘制直方图进阶篇!
  • CPU位数、操作系统位数、机器字长、C/C++基本数据类型长度
  • php的引用
  • 【comparator, comparable】小总结
  • 【前端学习】-粗谈选择器
  • 3.7、@ResponseBody 和 @RestController
  • Android Studio:GIT提交项目到远程仓库
  • chrome扩展demo1-小时钟
  • CODING 缺陷管理功能正式开始公测
  • js写一个简单的选项卡
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • mysql外键的使用
  • vue的全局变量和全局拦截请求器
  • WePY 在小程序性能调优上做出的探究
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 回流、重绘及其优化
  • 来,膜拜下android roadmap,强大的执行力
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 实战|智能家居行业移动应用性能分析
  • 移动端解决方案学习记录
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​Java并发新构件之Exchanger
  • ​用户画像从0到100的构建思路
  • # centos7下FFmpeg环境部署记录
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (js)循环条件满足时终止循环
  • (LeetCode C++)盛最多水的容器
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (分类)KNN算法- 参数调优
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET BackgroundWorker
  • .net 反编译_.net反编译的相关问题
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .net生成的类,跨工程调用显示注释
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [BZOJ1008][HNOI2008]越狱
  • [C#]获取指定文件夹下的所有文件名(递归)