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

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

相关文章:

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

本文旨在以简单的方式解释 Visual NLP 的关键概念,让你了解 Visual NLP 的含义、它的用例是什么、如何使用它以及为什么它是构建自动提取管道的未来 。 NSDT在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在…...

力扣118双周赛

第 118 场双周赛 文章目录 第 118 场双周赛查找包含给定字符的单词最大化网格图中正方形空洞的面积购买水果需要的最少金币数找到最大非递减数组的长度 查找包含给定字符的单词 模拟 class Solution { public:vector<int> findWordsContaining(vector<string>&am…...

网络编程基本概念

网络编程基本概念 为什么需要网络编程&#xff1f; 用户在浏览器中&#xff0c;打开在线视频网站&#xff0c;如优酷看视频&#xff0c;实质是通过网络&#xff0c;获取到网络上的一个视频资源。 与本地打开视频文件类似&#xff0c;只是视频文件这个资源的来源是网络。 相…...

Flutter模板

简介 这个项目是Flutter应用程序的起点。与创建的官方默认模板相比&#xff0c;该项目实现了状态管理等功能&#xff0c;用于Url、本地化等的Navigator 2.0路由。 开始 该项目的入口文件为 ‘lib/init/init.dart’ 特性 状态管理 基于provider. Navigator 2.0适配 代码…...

坐标变换(其一)CSP

坐标变换&#xff08;其一&#xff09; 问题描述 对于平面直角坐标系上的坐标 (x,y)&#xff0c;小 P 定义了一个包含 n 个操作的序列 T(t1,t2,⋯,tn)。其中每个操作 ti&#xff08;1≤i≤n&#xff09;包含两个参数 dxi 和 dyi&#xff0c;表示将坐标 (x,y) 平移至 (xdxi,yd…...

C语言实现万年历

C语言实现万年历 一、项目介绍 需求和功能是用纯C语言实现一个可以属于年份&#xff0c;属于一个年份就可以显示该年各个月份的日历&#xff0c;如同日历一般&#xff0c;每个月当中每天对应的星期均可查看&#xff0c;即万年历&#xff0c;要求格式整齐&#xff0c;星期对照直…...

arp报文及使用go实现

一、ARP协议报文格式及ARP表 ARP&#xff08;Address Resolution Protocal&#xff0c;地址解析协议&#xff09;是将IP地址解析为以太网的MAC地址&#xff08;或者称为物理地址&#xff09;的协议。在局域网中&#xff0c;当主机或其他网络设备有数据要发送给另一个主机或设备…...

C++ 文件和流、异常处理、动态内存、预处理器

一、C文件和流&#xff1a; 在C中进行文件处理&#xff0c;需要包含头文件<iostream>和<fstream>。fstream标准库定义的三个新的数据类型&#xff1a; 数据类型 描述 ofstream 该数据类型表示输出文件流&#xff0c;用于创建文件并向文件写入信息。 ifstream …...

夜神模拟器 burp抓包 ADB 微信小程序

夜神模拟器 burp抓包 ADB 微信小程序 初始环境准备应用连接证书转换设置夜神模拟器环境ADB配置测试burp抓包 初始环境准备 既然想了解如何抓包&#xff0c;我想大多数是已经安装好 夜神模拟器 和 Burp 了&#xff0c;这里就不在赘述&#xff0c;直接开始操作。 openssl 的下载…...

WPF实战项目十七(客户端):数据等待加载弹框动画

1、在Common文件夹下新建文件夹Events&#xff0c;新建扩展类UpdateLoadingEvent public class UpdateModel {public bool IsOpen { get; set; }}internal class UpdateLoadingEvent : PubSubEvent<UpdateModel>{} 2、新建一个静态扩展类DialogExtensions来编写注册和推…...

22-Python与设计模式--状态模式

22-Python与设计模式–状态模式 一、电梯控制器 电梯在我们周边随处可见&#xff0c;电梯的控制逻辑中心是由电梯控制器实现的。电梯的控制逻辑&#xff0c;即使简单点设计&#xff0c; 把状态分成开门状态&#xff0c;停止状态和运行状态&#xff0c;操作分成开门、关门、运…...

电脑键盘推荐

一、键盘分类 &#xff08;1&#xff09;键位个数 目前有75&#xff0c;84&#xff0c;87&#xff0c;98&#xff0c;104&#xff0c;108的。 &#xff08;2&#xff09;薄膜键盘和机械键盘 薄膜键盘就是大多数办公室常见的键盘&#xff0c;主要打一个便宜&#xff0c;耐造…...

大数据-之LibrA数据库系统告警处理(ALM-37001 MPPDBServer实例Redo日志缺失)

告警解释 当DN主实例有未同步到DN备实例的xlog日志被删除时&#xff0c;产生该告警。 告警属性 告警ID 告警级别 可自动清除 37001 严重 是 告警参数 参数名称 参数含义 ServiceName 产生告警的服务名称 RoleName 产生告警的角色名称 HostName 产生告警的主机名…...

C#关键字、特性基础及扩展合集(持续更新)

一、基础 Ⅰ 关键字 1、record record&#xff08;记录&#xff09;&#xff0c;编译器会在后台创建一个类。支持类似于结构的值定义&#xff0c;但被实现为一个类&#xff0c;方便创建不可变类型&#xff0c;成员在初始化后不能再被改变 &#xff08;C#9新增&#xff09; …...

单例模式-支持并发的C语言实现

代码实现&#xff1a; c #include <stdio.h> #include <stdlib.h> #include <pthread.h>// 定义单例对象结构体 typedef struct {// 单例对象的数据成员int value; } Singleton;// 静态变量&#xff0c;用于保存唯一实例的指针 static Singleton* instance …...

java_基础_数据类型

1.数据类型 java 语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以他们的数据大小也不一样的. 数据类型关键字内存占用取值范围整数byte1-128~127short2-32768~32767int4-2的31次方到2的31次方-1long8-2的63次方到2的63次方…...

C++入门第九篇---Stack和Queue模拟实现,优先级队列

前言&#xff1a; 我们已经掌握了string vector list三种最基本的数据容器模板&#xff0c;而对于数据结构的内容来说&#xff0c;其余的数据结构容器基本都是这三种容器的延申和扩展&#xff0c;在他们的基础上扩展出更多功能和用法&#xff0c;今天我们便来模拟实现一下C库中…...

计算机组成原理(计算机系统概述)

目录 一. 计算机的发展二. 计算机硬件的基本组成2.1 早期冯诺依曼机2.2 现代计算机的结构 三. 各硬件的工作原理3.1 主存储器的基本组成3.2 运算器的基本组成3.3 控制器的基本组成 四. 计算机的工作过程 \quad 一. 计算机的发展 计算机系统 硬件 软件 #mermaid-svg-gp2AsYELE…...

Qt手写ListView

创建视图&#xff1a; QHBoxLayout* pHLay new QHBoxLayout(this);m_pLeftTree new QTreeView(this);m_pLeftTree->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑m_pLeftTree->setFixedWidth(300);创建模型和模型项&#xff1a; m_pLeftTree…...

【开源】基于Vue.js的城市桥梁道路管理系统的设计和实现

项目编号&#xff1a; S 025 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S025&#xff0c;文末获取源码。} 项目编号&#xff1a;S025&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...