Visual NLP:图像信息自动提取的未来

本文旨在以简单的方式解释 Visual NLP 的关键概念,让你了解 Visual NLP 的含义、它的用例是什么、如何使用它以及为什么它是构建自动提取管道的未来 。

NSDT在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 

1、什么是Visual NLP?

NLP 的一个分支,结合了视觉(空间和布局)特征和文档中存在的文本信息。 大多数经典的 NLP 问题都处理文本数据,这些数据包含大量信息,但仍然缺乏帮助我们区分文本内容和含义的视觉队列。

鉴于我们正处于像 ChatGPT、Bard、Claude 等人工智能LLM时代,它们本质上是多模式的,即接受图像和文本作为输入,我们确实看到了这些系统的潜力。

转向 Visual NLP 的主要原因之一是需要对扫描文档进行信息提取。 目前,IE 活动是通过将扫描文档转换为文本并在其上运行 NLP 来进行的。

现在,让我们看看这种方法的局限性:

  • 由于文本表示不明确(例如清晰度、字体等),OCR 文本识别失败。
  • 不使用可能为文本增加价值的视觉图像。
  • 通过 OCR 转换为文本时,表格数据会变得混乱。

添加视觉数据有助于克服此类挑战,并为模型提供丰富的数据,以更好地完成任务。

2、Visual NLP用例

Visual NLP 的一些用例包括:

  • 视觉文档分类(使用文本+空间特征+图像)
  • 视觉问答
  • 布局分析:分析文档内容的空间排列以了解其结构和含义的过程。 这包括识别文本、图像、表格和其他元素的位置,以及整体文档结构,例如标题和副标题。
  • 关键信息提取:从文档和其他视觉内容中提取关键信息的过程。 这可以包括姓名、日期、地点和金额等信息。
  • 图像字幕:生成图像的文本描述的任务。
  • 表格检测:识别和定位图像和文档中的表格的任务。
  • 表结构识别:识别表的逻辑和物理结构的任务。 表的逻辑结构是指表中不同单元格之间的关系,例如哪些单元格属于同一标题行或列。 表格的物理结构是指表格的布局,例如边框的位置和单元格之间的间距。

下面是如何利用 Visual NLP 力量的一些示例。

2.1 从扫描收据中提取关键信息

此任务的目的是从给定收据中提取多个关键字段的文本,并将每个收据图像的文本保存在 json 文件中。 我们对 Donut 模型进行了微调,以从扫描的发票收据中提取公司、地址、日期、总计等实体。

事实数据如下:

{     
"company": "BOOK TA .K (TAMAN DAYA) SDN BHD",     
"date": "25/12/2018",     
"address": "NO.53, TAMAN DAYA, 81100 JOHOR BAHRU, JOHOR.",     
"total": "9.00" 
}

该模型能够学习直接从图像中提取这些实体。 当考虑真实情况和预测文本完全匹配的正确实例时,我们能够获得约 60% 的准确率。

2.2 视觉质量检查

此任务的目的是从图像中生成给定问题的答案。 我们针对此任务对 Donut 模型进行了微调。

事实数据如下所示:

{
"gt_parses": [{"question": "what is AGE?", "answer": "30"}, {"question": "what is GENDER?", "answer": "Female"}, {"question": "what is DATE?", "answer": "2023-01-07"}
]
}

该模型能够学习直接从图像生成答案。

一些可以通过HuggingFace使用的Visual NLP模型

  • Donut
  • Pix2Struct
  • LayoutLM
  • DiT

在上面的示例中,我们使用 Donut 作为起点来展示 Visual NLP 系统的功能,但你可以使用上述任何模型。

3、基于 Visual NLP 的自动化信息提取流程

上述示例展示了当前 Visual NLP 系统的明显潜力,以及为什么该研究领域将成为自动提取管道的未来。

视觉 NLP 是一个快速发展的领域,有可能彻底改变我们处理和理解信息的方式。 通过结合视觉和文本特征,视觉 NLP 模型可以克服传统 NLP 模型的局限性,从更广泛的来源(包括扫描文档)提取更准确、更全面的信息。

随着视觉 NLP 领域的不断成熟,我们可以期待看到更多创新和突破性的应用程序出现。 例如,视觉 NLP 可用于开发能够理解和索引文本和图像的新搜索引擎,或者创建新型教育工具,通过结合视觉和文本信息来帮助学生更有效地学习。


原文链接:Visual NLP简明教程 - BimAnt

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

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

相关文章

在线工具收集

在线工具收集 1、在线P图 https://www.photopea.com/ 一款类似于PS的在线抠图软件 ①去除图片中的文字,并填充背景色 第一步:使用矩形选中要清除的文字 第二步:点击编辑选择填充 第三步:选择内容识别,保留透明区域…

趋势解读:TikTok独创的社交语言是如何演变的

在数字时代的浪潮中,社交媒体平台成为人们传递信息、表达创意和建立社交联系的重要场所。而在这众多社交平台中,TikTok以其独特的社交语言和创新的内容形式,迅速吸引了全球数以亿计的用户。本文将深入探讨TikTok的社交语言是如何独创并演变的…

使用Python画一棵树

🎊专栏【不单调的代码】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 🥰欢迎并且感谢大家指出我的问题 文章目录 🌹Turtle模块🎄效果🌺代码🛸代码…

IvorySQL3.0:基于PG16.0最新内核,实现兼容Oracle数据库再升级

Oracle作为全球最大的数据库厂商之一,具有较高的市场知名度和份额。但随着数据处理需求日益增长,使用Oracle的企业可能面临一些挑战,如数据库复杂性、高昂维护成本、数据迁移和集成问题等,难以满足企业实时数据处理需求&#xff0…

练习八-利用有限状态机进行时序逻辑的设计

利用有限状态机进行时序逻辑的设计 1,任务目的:2,RTL代码,及原理框图3,测试代码,输出波形 1,任务目的: (1)掌握利用有限状态机实现一般时序逻辑分析的方法&am…

第二十章 多线程

20.2创建线程 20.2.1继承Thread类 Thread类是Java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建议Thread实例。 public class ThreadTest extedns Thread{} run方法格式: public void run(){} 20.1让线…

matplotlib

设置中文字体,图片大小,分辨率,中文负号 符号 x轴和y轴 设置x轴和y轴的刻度 字体大小 线条样式 绘制多个线条 图例 显示每个坐标值 gca 分辨率 画布尺寸 创建图形对象 不能直接使用区域对象作画 绘制多子图 均等的划分画布 柱状图 同一位置多…

Ocam——自由录屏工具~

当我们想要做一些混剪、恶搞类型的视频时,往往需要源影视作品中的诸多素材,虽然可以通过裁减mp4文件的方式来获取片段,但在高画质的条件下,mp4文件本身通常会非常大,长此以往,会给剪辑工作带来诸多不便&…

GDB Debugging Notes

1 Debugging programs using gdb 1.1 gdb简介 gdb是一个功能强大的调试工具,可以用来调试C程序或C程序。在使用这个工具进行程序调试时,主要涉及下面几个方面的操作: 启动程序:在启动程序时,可以设置程序运行环境。设置断点:程序…

使用kafka_exporter监控Kafka

prometheus 监控 kafka 常见的有两种开源方案,一种是传统的部署 exporter 的方式,一种是通过 jmx 配置监控, 项目地址: kafka_exporter:https://github.com/danielqsj/kafka_exporterjmx_exporter:https://github.com/prometheus/jmx_exporter本文将采用kafka_exporter方…

matlab使用scatter函数画图时报错“数组索引必须为正整数或逻辑值”解决办法

一、背景 在使用matlab的scatter函数画图时报错“数组索引必须为正整数或逻辑值”。 scatter函数说明:scatter(x,y) 在向量 x 和 y 指定的位置创建一个包含圆形标记的散点图。 二、解决办法 如果使用scatter函数时报上述错误,尝试将连续函数先转换为函…

ubuntu编译sqlite3并使用

SQLite3是一种轻量级的关系型数据库管理系统,它是在C语言基础上实现的。SQLite3具有许多优点,例如: 1.灵活:它可以在多种操作系统上运行,并且可以将多个数据库文件合并成一个文件。 2.易于使用:SQLite3使用…

Centos上安装Docker和DockerCompose

安装Docker Docker可以运行在MAC,Windows,CtenOS,UBUNTU等操作系统上。目前主流的版本有Docker CE和Docker EE,CE是免费的开源Docker版本,适用于开发人员和小型团队,EE是适用于企业的容器化解决方案。它基于Docker CE…

如何判断交流回馈老化测试负载是否合格?

交流回馈老化测试负载是用于模拟实际工作环境中设备运行状态的测试工具,主要用于检测设备的耐久性和稳定性。 负载性能:需要检查负载的性能是否符合设计要求,这包括负载的功率、电流、电压等参数是否在规定的范围内,以及负载的工作…

可编程交流回馈式负载箱在电源设备中的应用

可编程交流回馈式负载箱可以用于测试电源设备的输出能力,通过在负载箱中设置不同的负载条件,可以模拟不同的工作负载情况,从而测试电源设备在不同负载下的输出能力和稳定性。这对于电源设备的设计和生产非常重要,可以帮助制造商评…

打造高效医患沟通:陪诊小程序开发技术指南

随着科技的不断发展,陪诊小程序作为医患沟通的新工具逐渐成为关注焦点。本文将带领你通过使用React和Node.js技术栈,构建一个功能强大且用户友好的陪诊小程序,实现医患互动的便捷和高效。 1. 准备工作 确保你的开发环境中已安装了Node.js和…

037、目标检测-算法速览

之——常用算法速览 目录 之——常用算法速览 杂谈 正文 1.区域卷积神经网络 - R-CNN 2.单发多框检测SSD,single shot detection 3.yolo 杂谈 快速过一下目标检测的各类算法。 正文 1.区域卷积神经网络 - R-CNN region_based CNN,奠基性的工作。…

原来 TinyVue 组件库跨框架(Vue2、Vue3、React、Solid)是这样实现的?

本文由 TinyVue 组件库核心成员郑志超分享,首先分享了实现跨框架组件库的必要性,同时通过演示Demo和实际操作向我们介绍了如何实现一个跨框架的组件库。 前言 前端组件库跨框架是什么? 前端组件库跨框架是指在不同的前端框架(如…

类加载过程

Java类加载过程包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)五个阶段。这些阶段是按照顺序逐步执…

7种SQL的进阶用法

1.自定义排序(ORDER BY FIELD) 在MySQL中ORDER BY排序除了可以用ASC和DESC之外,还可以使用自定义排序方式来实现。 CREATE TABLE movies ( id INT PRIMARY KEY AUTO_INCREMENT, movie_name VARCHAR(255), actors VARCHAR(255), price DEC…