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

增加定位能力提升图表问答性能,新的图表理解框架-RefChartQA

现有工作主要包括图表问答(Chart QA)基准、图表理解模型和视觉答案定位(VAG)。Chart QA基准如FigureQA、DVQA、PlotQA和ChartQA等,主要集中在图表问答任务上,但缺乏显式的视觉定位,从而忽略了VLMs在ChartQA上的可解释性。RefChartQA通过将Chart QA与视觉定位相结合,并提供了一个新的基准测试,使模型能够引用图表图像中的多个粒度元素。该基准扩展了现有的ChartQA资源,专注于涉及算术或逻辑推理的问题。

RefChartQA框架:将图表理解任务与视觉答案定位相结合

RefChartQA基准测试

RefChartQA是一个新的基准测试,扩展了现有的ChartQA资源,专注于需要算术或逻辑推理的问题,并通过边界框注释实现答案的视觉定位。

标注过程

标注过程包括三个阶段:单元素提取、基于程序思维(PoT)的提取和基于GPT的注释。

单元素提取:这一阶段主要针对不需要计算或逻辑推理的单元素非算术问题。答案通常直接对应于图表中的一个数据元素。使用启发式方法,通过分析问题和答案文本,提取x轴标签、类别和数据值(仅从答案中提取),并结合字符串和颜色匹配来识别相关的视觉元素。如果只有一个匹配的元素,则选择它作为定位元素;如果有多个匹配,则注释失败,问题进入下一阶段。

基于程序思维(PoT)的提取:这一阶段处理更复杂的问题,特别是那些需要算术运算或多元素交互的问题。使用TinyChart的PoT方法来重建推导定位所需的逻辑推理路径。例如,通过提取相关元数据(如年份和人数),并进行一系列推理操作,最终得出答案。在验证过程中,确保PoT预测与真实答案完全匹配,以减少错误。然后使用模板方法提取相关的推理元素作为定位注释。

基于GPT的注释:对于单元素和PoT方法无法处理的复杂推理问题,使用GPT-4o-mini进行注释。提供图表元数据(包括数据值和视觉属性),模型被要求预测答案并识别关键的图表元数据元素。同样要求预测的准确性,以减少幻觉。

PoT code

每个基准划分样本的情况

不同阶段的标注成功分布情况:单一元素检索、基于PoT的推理以及基于GPT的定位

方法

1、视觉定位序列构建:使用边界框(bounding box)范式来实现视觉定位。具体来说,利用现有的语言标记来编码边界框,采用角点表示法,将每个边界框用<box>...</box>包围。这种方法使LLMs能够适应新任务,同时保持其原有的任务特定技能。为了提高图像理解能力,文档提到在自回归模型中交错空间和文本信息可以增强模型将对象与其上下文描述关联的能力。为了避免空间表示的不一致性,文档采用了Qwen-VL的方法,将每个坐标归一化并量化到[0, 1000)范围内。

2、序列预测顺序:在自回归模型中,边界框参数的预测顺序对模型性能有显著影响。图表数据元素通常按类别分组,并按有意义的顺序排列(如从左到右或从上到下),这与自然图像不同。标注中保留了这种内在顺序,确保模型在预测时能够正确关联对象。

3、输出模板:最终的输出模板设计为可以容纳多个边界框,并使用特定的分隔符将定位信息与最终答案区分开来。模板的结构为:(<box>x_min, y_min, x_max, y_max</box>)^n|<grounding-sep>|answer

实验

  • 引入定位任务后,模型在复杂查询上的响应准确性显著提高
    对比

  • 引入视觉定位任务后,模型的解释能力增强,能够更好地关注图表中的关键区域。然而,也存在一些错误定位和错误答案的情况,主要原因包括数学推理不足、多个有效答案的选择问题以及推理-定位对齐失败。
    案例

参考文献:RefChartQA: Grounding Visual Answer on Chart Images through Instruction Tuning,https://arxiv.org/pdf/2503.23131v2

http://www.lqws.cn/news/460963.html

相关文章:

  • 筑梦岛APP低俗内容事件分析:算法的合规与治理
  • 【国产桌面操作系统开发】设置及屏蔽快捷键(原始文件中设置,绝对生效)
  • python打卡day37
  • 银行账户管理系统-交互系统
  • 考研英语作文评分标准专业批改
  • C++ 学习笔记精要(二)
  • RPC常见问题回答
  • Cargo 与 Rust 项目
  • 让Agent的应用价值增长
  • 实验问题记录:PyTorch Tensor 也会出现 a = b 赋值后,修改 a 会影响 b 的情况
  • 博士,超28岁,出局!
  • 深入解析BERT:语言分类任务的革命性引擎
  • 3D Gaussian Splatting算法安装与实测
  • GO Gin Web框架面试题及参考答案
  • Android sdk 36沉浸式兼容性问题修复
  • 每天一个前端小知识 Day 7 - 现代前端工程化与构建工具体系
  • LeetCode 2942.查找包含给定字符的单词
  • P12894 [蓝桥杯 2025 国 Java B] 智能交通信号灯
  • 伸缩线充电宝推荐丨倍思灵动充45W突破移动界限!
  • 计算机——硬盘驱动器
  • 结构体解决冒泡排序
  • 多线程八股
  • 【Go语言基础】对齐边界与内存填充
  • 初学python的我开始Leetcode题10-2
  • Vuex(一) —— 集中式的状态管理仓库
  • AI 产品的“嵌点”(Embedded Touchpoints)
  • 如何落地你的AI创意
  • 一体三面:UEBA在数据分析、数据治理与数据安全中的应用洞察
  • 【Flink实战】 Flink SQL 中处理字符串 `‘NULL‘` 并转换为 `BIGINT`
  • 零基础入门PCB设计 一实践项目篇 第四章(STM32开发板PCB设计)