拒绝加班狗,PDF一行代码提取Excel文件

导 读

相信大家在工作生活中经常会遇到表格识别的问题,比如导师说,把下面 PDF 文件里面的表格取出来整理成 Excel 表。

也可能会遇到,公司领导或者客户发来一张截图,需要里面的表格取出来转成 Excel 表。

这种情况下你会怎么做呢,新建一个 Excel 一个一个数据敲么,辛辛苦苦半天赶出来,领导还会来一句,怎么这么慢,简直郁闷死……

别着急,只要稍微会一点 Python 代码,这个开源项目神器拯救你!

效果展示

版面分析 表格识别

如图所示,针对一张完整的 PDF 图片,这个开源项目可以对文档图片中的文本、表格、图片、标题与列表区域进行分类。同时还可以利用表格识别技术完整地提取表格结构信息,使得表格图片变为可编辑的 Excel 文件。

不仅仅是 PDF 文件转 excel,如果编程能力再强一些,结合版面分析技术,PDF 转 Word 都不在话下。

而且使用也是非常方便,在完成 Python whl 包安装之后,简单几行代码即可完成快速试用。

最终结果会输出图片文件夹,Excel 表和文字识别结果,确实是非常方便。

传送门:

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.2/ppstructure/README_ch.md

版面分析与表格识别核心技术概述

不管是版面分析还是表格识别,现有方案可大致分为基于图像处理的传统方法和基于深度学习的方法。

(1)传统方法:版面分析比较著名的是 O’Gorman 在 1993 年 TPAMI 中发表的算法 Docstrum。通过自下而上的方法依次将图像中的黑白连通域划分为文字、文本行与文本块,从而得到版面布局。表格识别的传统方法通过腐蚀、膨胀等操作获得表格线、划分行列区域,然后将单元格与文本内容相结合重构为表格对象。但是传统算法主要问题在于,对于版面布局分析和表格结构的提取,图像处理的方法依赖各种阈值和参数的选择,对于不同场景下的文档图片难以保证泛化性。

(2)深度学习方法:除了直接使用检测模型来对版面内容进行分类以外,还融合了检测、分割、图神经网络、注意力机制等众多前沿技术能力。依赖算法工程师对于深度神经网络的精心设计,可以不再依赖阈值与参数,具有更好的泛化性。

PP-Structure 核心技术解读

  • 版面分析技术
PP-Structure 的版面分析技术,主要是对图片形式的文档进行版面分析,将文档划分为文字、标题、表格、图片以及列表 5 类区域(与 Layout-Parser 联合使用)。其核心技术思路与 Layout-Parser 项目密切合作,参考了 Layout-Parser 的工程结构设计,配合 PaddleDetection 开源的高效检测算法 PP-YOLO v2,在数据集 TableBank 和 PubLayNet 上 mAP 分别达到 93.6 和 96.2, NVIDIA Tesla P40 耗时仅需 66.6ms,且可以支持用户根据自己的数据自定义训练。

Layout-Parser 是开源的基于深度学习的文档图像分析工具箱,可用于布局检测,字符识别和许多其他文档处理任务,包含大量丰富模型,支持自定义 DL 模型,支持多个文档布局检测数据集。

GitHub 地址:

https://github.com/Layout-Parser/layout-parser

  • 表格识别技术
表格识别技术则主要使用基于注意力机制的图片描述模型 RARE,整体流程如下图所示,对于其中的表格区域进行表格识别处理。
表格识别的难点主要在于表格结构的提取,以及将表格信息与 OCR 信息融合。整体流程可以分为上下两部分,其中上半部分(黑色支路)是普通的 OCR 过程,通过(1)文本检测模块对表格图片进行单行文字检测,获得坐标,然后通过(2)文本识别模块识别模型得到文字结果。
而在下半部分的在蓝色支路中,表格图片首先经过(3)表格结构预测模块,获得每个 Excel 单元格的四点坐标与表格结构信息。结合黑色支路文本检测获得的单行文字文本框 4 点坐标,共同输入(4)Cell 坐标聚合模块,再通过(5)Cell 文本聚合模块,将属于同一单元格的文本拼接在一起。最后结合表格结构信息,通过(6)Excel 导出模块获得 Excel 形式的表格数据。
下面分别针每个模块分别展开介绍。
(1)文本检测模块 (2)文本识别模块
主要使用 PP-OCR 提供的检测和识别算法。
(3)表格结构预测模块,主要使用基于 Attention 的图片描述模型 RARE,RARE 模型可以实现:输入一张图片,通过带有注意力机制的网络输出一段文字,描述图片的内容,而针对于表格图片的图片描述网络,输入一张经过版面分析的表格图片,输出的是一串 HTML 字符(如下图所示)。表格的结构通过 HTML 的结构标记表示,其中的内容即为表格文本中的内容。通过进一步的 HTML 解析,可以获得每个文本的单元格四点坐标和表格结构信息。

(4)Cell 坐标聚合模块,主要用来解决如何将跨行单元格的文本重新拼接在一个单元格内的问题。它通过计算由文本检测算法获得的文本框坐标(红色框)与表格结构预测模块得到的 Cell 坐标(蓝色框)之间的 IOU 和顶点距离来进行单行到多行的聚合。使用 IOU 判断哪些红色框同属于一个蓝色框,使用顶点距离和 IOU 判断红色框的排列顺序。

(5)Cell 文本聚合模块,根据已有的红色文本框顺序,按照从上到下从左到右顺序利用(4)Cell 坐标聚合模块的结果将(2)文本识别结果和进行拼接,这样对于多行文本的单元格内容即可拼接成一个字符串。

(6)Excel 导出模块,将(3)表格结构预测结果 html 结果与(5)Cell 文本聚合模块文本结果结合,最终导出为 Excel 输出。

以上所有内容均在 PaddleOCR 项目开源,目前 star 数量超过 13.5k

(0)

相关推荐

  • WPS表格技巧—怎么把数据分列

    我们在利用WPS表格和Excel表格进行日常办公时,数据经常混在一起,看起来非常乱,所以我们经常利用WPS表格来进行分列,那么说起分列,很多朋友都不知道有这个功能,那么今天我们就来给大家介绍一下,如何 ...

  • 走进AI时代的文档识别技术 之表格图像识别

    导读:作者系腾讯QQ研发中心--CV应用研究组的yonke.本文主要介绍基于深度神经网络的表格图像识别解决方案. 1.前言 1.1背景 大多数人日常办公处理的文件,无非就是表格和文档,其中表格的重要性 ...

  • Excel单元格内怎么换行

    在使用Excel软件进行表格排版时,有的时候需要将某一个或多个单元格内的文本进行换行设置,可有的小伙伴却不知道怎么操作,下面就让我们一起来了解一下吧. 1.在电脑打开有数字表格的Excel文档. 2. ...

  • 如何把excel表格中的文本链接变成可点击打开的网址链接

    如何把excel表格中的文本链接变成可点击打开的网址链接

  • 教你在Excel表格中怎么换行?

    在Excel表格中怎么换行,在我们平常办公的时候,通常会遇到一段很长的文字或者其他数据在一个单元格中显示不开,当文本长度超过单元格的宽度时,您可能无法看到全部文本,接下来笔者就来告诉大家在Excel表 ...

  • Github标星13.6k!一行代码从PDF提取Excel文件

    第一时间获取价值内容 开源技术:OCR开源技术 我们在工作生活中经常会遇到表格识别的问题,比如导师说,把下面PDF文件里面的表格取出来整理成Excel表. 只要稍微会一点Python,这个开源项目神器 ...

  • 一行代码调用您的“黑盒子因子”-如何用真格量化读取策略附件Excel

    部分量化交易者觉得一些内容不适合写到策略代码中,他们更希望从策略附件中调用这些内容(比如一些事先由"高深莫测的AI"选定的交易标的列表.一些平台还未提供的数据或其他各种" ...

  • Python提取 “Excel文本框” 内容,这个需求头一次见,1000个表,10行代码!

    前天 本文介绍 说实话,这个需求头一次碰到,我相信对于大多数朋友来说,也是头一次碰到."提取excel文本框中的内容",对,你没有听错!我也不知道你碰到过没有,但是这确实是一位朋友 ...

  • 提取PDF中表格到Excel?同事半小时,这方法两键,5秒

    经常在处理PDF文件时候,从里面提取表格到Excel,方法就非常多了,常见的有PQ,PDF导出等等,但是效率太低了,本节讲解的方法,5秒钟搞定: 下节课分享Power Query 来进行提取,敬请期待 ...

  • 实战VBA代码-一键提取EXCEL中的所有公式!

    有的时候,我们希望把表中的公式提取出来,进行保存! 少量,我们可以手动复制,量大,猝-- 所以我们今天就分享一下如何一键提取 用什么,VBA上吧! 还是老规矩,我们先看一下动画效果 动画效果 制作教程 ...

  • 学会这些EXCEL技能,拒绝加班!

    说起Excel,几乎每个职场人都要接触.地产行业尤其明显,每天都要和无数数据,图表打交道. 简单吐槽下,地产人的众"表"相,仅仅才只是冰山一角. 营销岗: 货量统计表.货量结构分析 ...

  • 炸裂:PDF表格提取Excel算法开源啦

    相信大家在工作生活中经常会遇到表格识别的问题,比如导师说,把下面PDF文件里面的表格取出来整理成Excel表. 也可能会遇到,公司领导或者客户发来一张截图,需要里面的表格取出来转成Excel表. 这种 ...

  • excel提取工作表名视频:vba代码提取表名到单元格创建超链接

    excel提取工作表名视频|vba代码提取表名视频|创建工作表超链接视频|提取表名到单元格视频 本视频教程由部落窝教育分享.

  • 拒绝加班的五个Excel神技!

    点击下方 ↓ 关注,每天免费看Excel专业教程 置顶公众号或设为星标 ↑ 才能每天及时收到推送 个人微信号 | (ID:LiRuiExcel520) 微信服务号 | 跟李锐学Excel(ID:LiR ...