论文题目:《A unified toolkit for Deep Learning Based Document Image Analysis》

论文链接:https://arxiv.org/abs/2103.15348

论文官方网站:https://layout-parser.github.io/

论文开源项目:https://github.com/Layout-Parser/layout-parser

上图是来自一篇论文,从图中可以看出结构是非常复杂的,既有图片,又有文本,而且文本还是两列形式,传统的OCR是按行进行识别的,识别结果可想而知是混乱的,而本文提出的LayoutParser是借助于目标检测模型来提取重要的内容patch,从而避免了两列内容按行扫描的混乱结果。BUT,LayoutParser的贡献不仅如此,下面来解密一下吧

LayoutParser核心贡献

  • 提供了基于深度学习模型的layout检测、字符识别以及其他document image analysis (DIA) 任务的toolkit工具包;

  • 支持非常丰富的预训练模型;

  • 支持文本图像数据的标注以及模型的客户化;

  • 可以分享和贡献模型的社区;

LayoutParser架构图

主要包括五个组件,分别是:layout detection models、layout data structures、OCR module、visualization and storage和layout data annotation and model training。

Layout detection models

Layout Detection模块主要是对文档图片进行目标检测识别,比如使用Faster R-CNN、Mask R-CNN。LayoutParser是基于Detectron2提供最小的接口,下面是调用的示例代码:

import layoutparser as lpimage = cv2. imread (" image_file ") # load imagesmodel = lp. Detectron2LayoutModel ("lp :// PubLayNet / faster_rcnn_R_50_FPN_3x / config ")layout = model . detect ( image )

模型与数据集有适配问题,加载模型的格式应该采用如下格式:lp://<dataset-name>/<model-architecture-name>

目前已经预支持9个预训练模型和5个数据集(注意:如果不满足需求,可以上传用户自定义模型),如下表所示:

Layout data structures

LayoutParser还提供了三种不同粒度的Layout数据类型,分别是:Coordinate、TextBlock和Layout,他们的关系如下图所示:

Coordinate是Layout的基本数据类型,支持三种类型,分别是:Interval、Rectangle和Quadrilateral。Interval和Rectangle分别使用2、4个参数来定位1D和2D区域;Quadrilateral支持一些复杂的区域提取,参数有4个顶点和8个自由度;

TextBlock存储每个Layout的位置和其他特性,通过指定parent字段可以指定Layout的阅读顺序;

Layout包括TextBlock的列表,也支持处理一个batch的数据,Layout同样可以嵌套使用。

以上三种Layout数据类型支持的运算操作如下表所示:

OCR module

LayoutParser为常见的OCR工具提供了统一的接口,示例代码如下:

ocr_agent = lp.TesseractAgent()# Can be easily switched to other OCR softwaretokens = ocr_agent.detect(image)

Visualization and storage

LayoutParser支持导出json、CSV以及XML数据格式;支持导入模型训练的COCO、网页数据。当然也可以实时看到OCR的识别结果,如下图所示:

Layout data annotation and model training

LayoutParser集成了主动学习工具,用户只需要标注图像中的部分目标,其他目标就会自动被标注,可以大大减少用户的标注时间

个人使用感受:在一些结构复杂的文本图像上提取效果比使用OCR工具要好很多。

超越OCR的富文档内容解析神器LayoutParser相关推荐

  1. Tika:一个强大的Java文档内容解析工具

    Tika介绍 Apache Tika是基于java的内容检测和分析的工具包,可检测并提取来自上千种不同文件类型(如PPT,XLS和PDF)中的元数据和结构化文本. 它提供了命令行界面.GUI界面和一个 ...

  2. python读取word指定内容_python解析html提取数据,并生成word文档实例解析

    简介 今天试着用ptyhon做了一个抓取网页内容,并生成word文档的功能,功能很简单,做一下记录以备以后用到. 生成word用到了第三方组件python-docx,所以先进行第三方组件的安装.由于w ...

  3. 使用HttpHandler解析并展示PDF文档内容

    前言 如果我们想将服务端的PDF文档内容展示给客户端,往往会通过URL直接访问的方式.这样一来,PDF文档就会毫无保留的保存到客户端去,通过浏览器的PDF插件,客户端可以随意拷贝PDF的副本.(如下图 ...

  4. HttpHandler解析并展示PDF文档内容

    2019独角兽企业重金招聘Python工程师标准>>> HttpHandler 解析并展示 PDF 文档内容 如果我们想将服务端的 PDF 文档内容展示给客户端,往往会通过 URL ...

  5. POI解析文档内容(txt,doc,docx,xls,xlsx,ppt,pdf)

    Apache POI  是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.POI为" ...

  6. java中sax的使用_java使用sax对xml文档的解析

    随着互联网技术的发展,XML技术变得越来越重要,从而出现了很多 与XML的整合应用方面的技术,SAX就是其中之一.在这里,我就简要 谈谈java怎样使用sax对xml文档的解析. 首先,让我们来谈谈S ...

  7. xml批量修改php,通过php修改xml文档内容的方法

    本文实例讲述了通过php修改xml文档内容的方法,.具体实现方法如下: 代码如下:<?php //1.创建一个DOMDocument对象.该对象就表示 xml文件 $xmldoc = new D ...

  8. Android学习笔记(八)XML文档的解析

    一.废话 最近几天四川一直下雨,冷!今天到成都的时候,下午3点多的天和晚上天差不多,黑呼呼的... ...难道传说的2012来了?哈哈哈... ... 二.正文 在上一篇笔记中提到过说在Android ...

  9. 文档内容结构化技术探索

    word,ppt,excel和pdf等十几种常见办公文档,核心基础服务是文档转码和展现. 为了统一十几种文档的转码和展现方案,不依赖于原文件格式的开档软件,技术调研后,最终方案为任意文档转码为pdf格 ...

最新文章

  1. 在VMware Workstation中安装Ubuntu设置网络连接
  2. React Native 0.59.0 发布,使用 React 编写原生应用
  3. 2022-2028年中国石油焦行业运行现状与发展态势展望报告
  4. css为网页顶部和底部都加入背景图
  5. 设计模式 ---适配器模式
  6. 创业型软件公司的心得
  7. 我忽然发现我写的cve漏洞管理系统简直就是redmine的一个小模块
  8. Office2021中文零售版的离线安装包下载地址合集
  9. ELF 文件数据分析: 全局变量
  10. 谷歌浏览器无法上网问题解决
  11. 非功能需求分析--web开发课内实例
  12. 大数据收集系统架构图
  13. 例说图解TCP/IP协议族--PKI与证书(7)之给思科路由器制作证书
  14. 企业电子邮箱的地址格式
  15. 【Unity3D日常开发】新建2D、3D场景,新建场景没有灯光等问题
  16. 基于子类的动态代理(使用CBl工具)
  17. 【Vue2注册登录界面】Vue2+elementUI编写一个登录页面,路由式开发,后台管理系统登录界面
  18. 【ES】一、ES入门及JavaAPI使用
  19. 【调剂】北京科技大学钢铁共性技术协同创新中心2021年硕士拟接收调剂公告
  20. docker打jdk 1.8镜像

热门文章

  1. 撸了这么多代码,你真的了解字体吗?
  2. 微信小程序期末大作业-天使童装商城
  3. 2020年最新计算机二级考试题库资料大全!
  4. EPLAN 设备选择
  5. 二叉树的基本性质及证明
  6. 华为路由TC7102实现一根网线分离同时支持路由器无线网络使用和电信IPTV机顶盒播放的方法步骤
  7. Vue2.0基本用法之组件的注册和传值(父子props,插槽,$emit)和学写购物车
  8. 2021.12.13 - 176.保持城市天际线
  9. OC方法以及文件编译
  10. A-Frame使用方法 教程 API