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.mfbz.cn/a/180012.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis-Plus3.0默认主键策略导致自动生成19位长度主键id的坑

码字不易,如果对您有用,求各位看官点赞关注~ 原创/朱季谦 目前的Mybatis-Plus版本是3.0,至于最新版本是否已经没有这个问题,后续再考虑研究。 某天检查一位离职同事写的代码,发现其对应表虽然设置了AUTO_INCREMENT自…

k8s部署的java服务查看连接nacos缓存的配置文件

一、问题描述 k8s部署的java服务,使用nacos中的配置文件,需要在缓存中查看该服务具体是使用到了哪些配置文件 二、解决 参考文档: https://nacos.io/zh-cn/docs/system-configurations.html 文档描述如下: 进入java服务容器进入用户目录下的nacos&a…

csapp archlab part 1

part A [rootedb3963640a6 misc]#./yas sum.ys [rootedb3963640a6 misc]# ./yis sum.yo./yas 和 ./yis 是汇编语言编译器和模拟器的命令行工具。 ./yas 是一个汇编语言编译器,它将汇编语言代码转换为可执行的二进制文件。./yas sum.ys 将sum.ys文件编译成了sum.yo可…

C++电脑组装项目(涉及知识点:多态,虚析构,使用父类指针和new关键字实例化子类时无法调用子类的析构函数,类的头文件和类的cpp文件的使用,父类中调用子类的析构函数)

一.电脑组装项目各文件的关系和cpp文件目录 二.使用父类指针和new关键字实例化子类时无法调用子类的析构函数 即使用如下代码,不会调用IntelCpu的析构函数。导致无法释放子类申请的空间。 AbstractCpu* cpu new IntelCpu; delete cpu;完整代码如下: …

华清远见嵌入式学习——网络编程——作业3

目录 作业要求&#xff1a;基于UDP的TFTP文件传输 代码 下载功能效果图​编辑 上传功能效果图 思维导图 模拟面试题和答案&#xff08;定期更新&#xff09; 作业要求&#xff1a;基于UDP的TFTP文件传输 完成文件的上传和下载功能 代码 #include<myhead.h>//实现…

一站式解决Mac音视频转换需求——Xilisoft Video Converter Ultimate for Mac

在数字化时代&#xff0c;音视频的应用越来越广泛&#xff0c;不同的设备和平台对音视频格式的要求也不尽相同。因此&#xff0c;如何找到一款功能强大、易于操作的音视频转换软件成为了Mac用户的迫切需求。而Xilisoft Video Converter Ultimate for Mac&#xff08;曦力音视频…

亚马逊智能机器人Astro新升级!可为中小企业提供巡逻服务

原创 | 文 BFT机器人 Astro是Amzon近年来推出的一种新型的家用机器人&#xff0c;由智能助手Alexa驱动&#xff0c;主要用于家庭监控&#xff0c;如检查炉子、水龙头是否开着&#xff0c;以及其他任务。它将人工智能、计算机视觉、传感器技术以及语音和边缘计算方面的新进展汇…

linux -系统通用命令查询

有时候内网环境下&#xff0c;系统有些命令没有安装因此掌握一些通用的linux 命令也可以帮助我们解决一些问题查看 1.查看系统内核版本 uname -r2.查看系统版本 cat /etc/os-release3. 查看cpu 配置 lscpu4.查看内存信息 free [参数] 中各个数值的解释如下表 数值解释t…

宿主Linux——KVM安装Windows7系统

KVM虚拟技术 KVM(Kernel-based Virtual Machine) 是基于Linux内核的开源虚拟化技术&#xff0c;在一台物理机上可同时运行多个虚拟系统。KVM使用硬件虚拟化扩展&#xff0c;例如Intel的VT和AMD的AMD-V&#xff0c;在性能方面更加高效&#xff0c;可提供更好的计算能力和响应速…

启发式搜索算法-人工智能

第1关:评估函数和启发信息 第2关:A*搜索算法 class Array2D:"""说明:1.构造方法需要两个参数,即二维数组的 宽和高2.成员变量w和h是二维数组的宽和高3.使用:‘对象[x][y]’可以直接取到相应的值4.数组的默认值都是0"""def __init__(s…

Python语言创建爬虫代理ip池详细步骤和代码示例

作为长期游弋于代码世界中的程序猿来说&#xff0c;拥有自己的服务器以及代理池能够让自己网络爬虫更得心应手。那么新手如何创建自己的私有IP池呢&#xff1f;它的步骤又有哪些&#xff1f;带着这些问题我们意义探讨。 以我多年的爬虫经验创建一个IP池的大体上可以分为以下几个…

可上手 JVM 调优实战指南

文章目录 为什么要学 JVM一、JVM 整体布局二、Class 文件规范三、类加载模块四、执行引擎五、GC 垃圾回收1 、JVM内存布局2 、 JVM 有哪些主要的垃圾回收器&#xff1f;3 、分代垃圾回收工作机制 六、对 JVM 进行调优的基础思路七、 GC 情况分析实例八、最后总结 全程可上手JVM…

又下一城!文心中国行入厦,大模型助推区域产业智能化提速

11月22日&#xff0c;“文心中国行”落地厦门。活动现场&#xff0c;厦门火炬高技术产业开发区管委会、厦门市思明区政府授予百度飞桨“人工智能公共技术服务平台”并举行授牌仪式。来自当地政产学研各界的领导、专家、企业嘉宾分享了AI大模型的最新技术趋势、产教融合开源共创…

React16中打印事件对象取不到值的现象及其原因分析

React16中打印事件对象取不到值的现象及其原因分析 一、背景 在最近的开发过程中&#xff0c;遇到了一个看起来匪夷所思的问题❓&#xff1a; <Inputplaceholder"请输入"onChange{(e) > {console.log(e:, e)}}onKeyDown{handleKeyDown} />此时按理来说我…

畅谈Linux在小型微型企业中的应用

在这篇文章里我们讨论和畅谈一下linux系统在小微型企业中的应用&#xff0c;为什么会写这篇文章呢&#xff1f;因为在平时的工作中&#xff0c;认识的一些做小微型企业的朋友&#xff0c;他们经常找我咨询或是去解决一些平时工作中的IT相关的问题&#xff0c;那么小微型企业中的…

人物血条的制作_unity基础开发教程

人物血条的制作 场景创建导入素材血条制作血量控制代码部分 场景创建 随便创建一个地板、一个胶囊体&#xff0c;搭建一个简易的场景&#xff0c;我这里就继续使用前面文章创建的场景 导入素材 在unity编辑器中选择Window&#xff0c;点击Asset Store 点击Search online 在搜…

Course1-Week1:机器学习简介

Course1-Week1&#xff1a;机器学习简介 文章目录 Course1-Week1&#xff1a;机器学习简介1. 课程简介1.1 课程大纲1.2 Optional Lab的使用 (Jupyter Notebooks)1.3 欢迎参加《机器学习》课程 2. 机器学习简介2.1 机器学习定义2.2 有监督学习2.3 无监督学习 3. 线性回归模型3.1…

垂直领域生成式AI模型的矿业应用

快速发展的人工智能 (AI) 领域正在出现一种新范式&#xff1a;更小的、垂直的生成式 AI 模型。 这种方法不同于旨在解决许多问题的传统横向模型。 相反&#xff0c;它开发专门的人工智能模型来解决特定行业或垂直领域的问题。 垂直导向的生成式AI模型迎合特定行业&#xff0c;提…

【nlp】3.2 Transformer论文复现:1. 输入部分(文本嵌入层和位置编码器)

Transformer论文复现:输入部分(文本嵌入层和位置编码器) 1 输入复现1.1 文本嵌入层1.1.1 文本嵌入层的作用1.1.2 文本嵌入层的代码实现1.1.3 文本嵌入层中的注意事项1.2 位置编码器1.2.1 位置编码器的作用1.2.2 位置编码器的代码实现1.2.3 位置编码器中的注意事项1 输入复现…
最新文章