【论文通读】SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents
SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents
- 前言
- Abstract
- Motivation
- Method
- GUI grounding for LVLMs
- Data Construction
- Training Details
- ScreenSpot
- Experiments
- GUI Grounding on ScreenSpot
- Visual GUI Agent Tasks
- MiniWob
- AITW
- Mind2Web
- Other experiments
- Conclusion
前言
一篇开创性的关于GUI智能体的工作,作者指出了当前GUI智能体面临的关键问题——GUI grounding能力不足,并基于此做了一系列工作,为提升GUI智能体性能指明了新的方向。
Paper | https://arxiv.org/pdf/2404.07972 |
---|---|
github | https://github.com/njucckevin/SeeClick |
Abstract
当前,GUI智能体与数字终端交互的方式通过提取的结构化信息,这些信息可能冗长或者无法访问。为此,本文提出SeeClick,只依赖于截图执行自动化任务。在之前的调研中,作者发现当前模型GUI grounding能力不足,为此,作者提出通过GUI预训练方式增强SeeClick该能力,并设计一种自动化管理GUI数据的方法。此外,作者还提出了ScreenSpot数据集,涵盖移动端、桌面和Web环境的真实benchmark。经过预训练后,SeeClick在ScreenSpot上展现了显著提升。此外,在在其他三个全面的benchmark上支持了作者的发现,即GUI grounding能力可以提升下游GUI智能体的性能。
Motivation
自动化桌面工具一直是个热门的话题,基于LLMs驱动的GUI智能体取得了一定的成功。但是仍面临一些问题:
- 结构化文本并不能总获取到。
- 结构化文本信息冗余,且忽视了关键的布局、图标等特征。
- 结构化文本种类繁杂,难以统一管理。
SeeClick如何解决这些问题?
避开结构化文本,从视觉角度构建GUI智能体,模仿人类的交互方式。但是这带来了新的问题:
当前的LVLMs grounding能力不足,无法根据指令定位到屏幕元素位置。
为此,SeeClick对LVLM进行了GUI grounding上的预训练,获得了在各种GUI环境中定位文本、图标等元素的能力。此外,为了填补GUI grounding评测领域的空白,作者提出ScreenSpot GUI grouding benchmark,涵盖IOS、Android、macOS、网页的600多个截图和1200条指令。最后,作者对SeeClick在mobile和web的benchmark上测试,取得了impressive的性能,这些实验一致支持了GUI grounding能力与GUI智能体性能的直接关联。
Method
GUI grounding for LVLMs
给定截图和一组元素集合 { ( x i , y i ) ∣ i } \{(x_i, y_i)|_i\} {(xi,yi)∣i},其中:
- x i x_i xi代表第i个元素的自然语言描述。
- y i y_i yi代表元素的位置。
LVLM的任务是根据元素 x i x_i xi预测 y i y_i yi的位置。预测数字坐标的任务是一个挑战,之前工作采用新加词表的方式,本文直接将数字作为自然语言的一部分。一个例子:
- instruction:View the new album of Jony J
- Prompt:In the UI, where should I click if I want to ?
- output:click (0.49, 0.40)
Data Construction
使用三种类型数据训练SeeClick:
- **Web UI data (Internet):**来自Common Crawl的300k web pages,每个网页收集两种类型元素,包括可见文本内容元素,以及悬停显示内容的元素(如下图所示)。
- **Mobile UI data (Public datasets):**Widget描述,手机UI grounding以及mobile UI summarization。20K截图,40Kwidgets,以及100K的描述。
- **General vision-language instruction-following data:**收集来自LLaVA的对话、详细描述和复杂推理的指令遵循数据,以维持LVLM对自然图像的理解能力。
Training Details
对Qwen-VL进行持续预训练。采用LoRA作用于visual encoder和LLM。
ScreenSpot
为了测试LVLM的GUI grounding的能力,作者构建了ScreenSpot,这是涵盖各种GUI平台最新、真实的grounding评估benchmark,它有两个显著特点:
- 各种GUI平台。
- 涉及Icons/widgets的评估。
Experiments
GUI Grounding on ScreenSpot
在ScreenSpot上测试当前LVLMs GUI grounding的能力,测试指标为点击的准确率。
- 通用的LVLMs由于GUIs和自然图像的差异,在GUI grounding上表现不佳。基于GUI的LVLMs有明显提升。
- SeeClick表现最好,表明GUI grounding预训练有效。
- SeeClick在desktop和web上文本定位表现不如CognitiveAgent,可能因为分辨率低以及训练数据小。
- 所有模型定位都不够好,说明ScreenSpot有一定挑战。
Visual GUI Agent Tasks
本小节测试SeeClick在mobile和计算机智能体任务上的能力,选取的数据集为MiniWob,AITW和Mind2Web,作者先将SeeClick在训练集上训练,再在测试集上测试。
MiniWob
- WebGUM由于使用了更大的数据集以及HTML+Image的方式,所以结果更高。
- SeeClick用少得多的训练数据超越了强大的baseline,包括同数据量下的WebGUM。
- 和同样的基于Image的模型相比,SeeClick仅用了0.3%的数据就超过了Pix2Act。
- SeeClick远远超过了Qwen-VL,强调了GUI grounding对提升LVLM性能的重要性。同时下图也展示了通用LVLMs在精准点击任务上存在困难。
AITW
本小节测试SeeClick在Android手机端benchmark AITW上的性能,同时对数据集按照任务类型重新划分以防止测试集数据泄露。评估指标为screen-wise action matching score以及点击准确率。
结果表明,SeeClick取得了最佳的平均性能。
Mind2Web
本小节测试SeeClick在Web浏览上的性能。采用Mini2Web数据集,该数据集本身是为文本智能体服务的,只选择了HTML中可操作的元素。为此作者从原始数据中解析了截图和目标元素,满足SeeClick输入的同时又和真实场景一致。评估指标采用元素精度、操作F1和步骤成功率。
SeeClick性能落后于基于HTML的方法,说明预测点击坐标的任务比从HTML候选中选择要难得多,凸显了GUI智能体还有很大的改进空间。
Other experiments
上图是grounding和智能体表现之间的联系。图中表明增强GUI能力可以提升智能体任务的表现。
上图表明统一GUI智能体任务会带来性能的下降,这是因为同的GUI界面有明显的不同。
Conclusion
本文提出视觉GUI智能体SeeClick,提出了当前GUI智能体面临的最大挑战:GUI grounding能力,基于此,作者对开源LVLM进行持续预训练,让其获得了一定的GUI grounding的能力,并在多个GUI任务上取得成功,此外,作者构建了第一个涵盖多个平台的真实GUI grounding评估数据集ScreenSpot,基于该数据集的实验表明SeeClick相对于LVLM基线有明显的改进。
对于这篇开创性的工作,有很多值得讨论的地方:
- GUI grounding能力是当前GUI智能体表现不足的主要原因,但是本文只是探索了点击能力,还没有对拖拽、滚动、typing等一系列GUI grounding的任务进行探索,统一这一系列任务,需要收集更丰富的数据集,定义新的动作空间,尤其是这些任务的组合涉及多步数据的收集或合成,这一系列的难题值得进一步的思考。
- 纯GUI grounding并不是最优的选择(可能是性价比最高的选择),文中实验也表明screenshot + HTML等文本信息会得到更优的结果,如果有机将这两个部分进行结合,可能会让GUI智能体获得超出人类的表现。
相关文章:

【论文通读】SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents
SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents 前言AbstractMotivationMethodGUI grounding for LVLMsData ConstructionTraining Details ScreenSpotExperimentsGUI Grounding on ScreenSpotVisual GUI Agent TasksMiniWobAITWMind2WebOther experiment…...

Ubuntu20.04离线安装Docker
1.下载3个docker离线安装包,下载网址: https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ 2.把3个离线安装包拷贝到ubuntu本地执行以下命令 sudo dpkg -i containerd.io_1.4.6-1_amd64.deb sudo dpkg -i docker-ce-cli_20.1…...

AI大模型战争:通用与垂直,谁将领跑未来?
文章目录 📑引言一、通用大模型:广泛适用,实力不容小觑1.1 强大的泛化能力1.2 广泛的适用场景 二、垂直大模型:专注深度,精准解决问题2.1 深度专注,精准度高2.2 快速落地与普及 三、通用与垂直:…...

计算机网络之TCP的三次握手和四次挥手
一.有关TCP协议的几个概念 1.1TCP协议的基本概念: TCP协议是传输层的一个协议,它支持全双工通信,是主机对主机之间数据的可靠传输,是一个连接导向的协议。 1.2连接: 连接是通信双方的一个约定,它的目的是让…...

JupyterLab使用指南(八):更改JupterLab左侧默认打开目录
在JupyterLab中,默认打开路径通常是由其配置文件中的root_dir设置决定的。如果你没有特意设置这个配置项,JupyterLab可能会使用当前用户的主目录或者上一次关闭时的路径作为默认打开路径。 更改JupyterLab默认路径的操作在不同操作系统下大体相似&…...

Android SurfaceFlinger——HWC Adapter初始化(五)
上一篇文章对 HWC 硬件加载流程进行了分析,在加载完成后开始创建 HAL 实例时,首先需要对 hwc2_device_t 的适配器进行初始化,这里我们主要分析 HWC Adapter 的创建流程。 一、创建HWC Adapter 在创建 HAL 实例之前,我们先来看一下 HWC Adapter 的创建。 1、createHalWith…...

泛微开发修炼之旅--17基于Ecology短信平台,实现后端自定义二开短信发送方案及代码示例
文章链接:17基于Ecology短信平台,实现后端自定义二开短信发送方案及代码示例...

SpringMVC系列二: 请求方式介绍
RequestMapping 💞基本使用💞RequestMapping注解其它使用方式可以修饰类和方法可以指定请求方式可以指定params和headers支持简单表达式支持Ant 风格资源地址配合PathVariable 映射 URL 绑定的占位符注意事项和使用细节课后作业 上一讲, 我们学习的是Spr…...

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展
今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语…...

C# 关于通讯观察线程(1) -- 开启通讯线程
通讯观察线程是个有意思,又是非常实用的功能。 具体怎么实现呢,我们来看看主要过程的伪代码。对于高手这也许很简单,但是要用好也是需要实践到通讯的流程正确,同时应对好网络故障等。 先在合适的地方启动观察线程: …...

15.树形虚拟列表实现(支持10000+以上的数据)el-tree(1万+数据页面卡死)
1.问题使用el-tree渲染的树形结构,当数据超过一万条以上的时候页面卡死 2.解决方法: 使用vue-easy-tree来实现树形虚拟列表,注意:vue-easy-tree需要设置高度 3.代码如下 <template><div class"ve-tree" st…...

【服务器07】之【GitHub项目管理】及【Unity异步加载场景】
登录GitHub官网 GitHub: Let’s build from here GitHub 注册账号 登录账号 输入一个自定义名字,点击创建存储库就可以了 现在我们下载Fork Fork - a fast and friendly git client for Mac and Windows (git-fork.com) 免费的 下载完成之后点击File下的Clone …...

ansible提权之become_method与become_flags详解
目录 常见become_methodbecome_flagssu 常见选项总结sudo 常见选项总结pbrun 常见选项总结pfexec 常见选项总结doas 常见选项总结示例使用 sudo 的示例:使用 pbrun 的示例:使用 pfexec 的示例:使用 doas 的示例: 配置方式1. 配置文…...

elementui的el-dialog组件与el-tabs同时用导致浏览器卡死的原因解决
在el-dialog弹出框中,如果使用el-tabs,点击弹框的关闭按钮时,会导致弹出框无法关闭,且浏览器卡死。 解决方式(一): 在el-talbs的面板中不放任何内容: <el-tab-pane label"…...

基于图扑 HT for Web 实现拓扑关系图
拓扑结构在计算机网络设计和通信领域中非常重要,因为它描述了网络中的设备(即“点”)如何相互连接(即通过“线”)。这种结构不仅涉及物理布局,即物理拓扑,还可以涉及逻辑或虚拟的连接方式&#…...

linux笔记10--编辑器之神VIM
文章目录 1. 简单介绍① 为什么叫vim② linux常见的编辑器③ 注意事项④ 其它 2. 操作模式的划分① 两种 -- 国际上普通模式(命令操作模式)插入模式 ② 三种 -- 国内普通模式如何进入与退出界面 插入模式如何进入与退出界面 命令模式如何进入与退出界面常见的命令模式 ③ 区别④…...

安全管理中心-集中管控(6点)
记忆内容: 应划分出特定的管理区域,对分布在网络中的安全设备或安全组件进行管控。(三级新增) 应能够建立一条安全的信息传输路径,对网络中的安全设备或安全组件进行管理。(三级新增) 应对网络…...

使用electron打包Vue前端项目的详细流程
使用electron打包Vue前端项目的详细流程 需要更改的东西 路由模式的修改 # 修改前:url不带#mode: history# 修改后:url带#mode: hash全局修改Cookies为localStorage 由于打包成exe或deb这类可执行文件后,本地是没有 Cookies 全局搜索Cooki…...

《计算机英语》 Unit 4 Information Management 信息管理
Section A Information Storage 信息存储 1. The importance of Information信息的重要性 词汇 reside vi属于,驻留 tablet n平板电脑 laptop n笔记本电脑 repository n仓库 claim n索赔 regulatory n法规 contractua…...

如何打包数据库文件
使用 mysqldump 命令: mysqldump -u username -p database_name > output_file.sql username 是数据库的用户名。database_name 是要导出的数据库名称。output_file.sql 是导出的 SQL 文件名,可以自定义。 示例: mysqldump -u root -p…...

iOS抓包指南 正则过滤爬取
解读iOS抓包 抓包 (packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。 什么是正则表达式? 正则表达式(regular expression)是用来描述…...

FLASH仿真EEPROM---基于智芯Z20K11XM
一、介绍 电可擦和可编程只读存储器(EEPROM)可以对字节或字编程和擦除。EEPROM中的数据即使断电也能保持,但Z20K1xx芯片不含EEPROM。然而,闪存可以通过EEPROM仿真软件来模拟EEPROM。Z20K1xx包含两个flash阵列。编程和擦除操作可以在一个数组上进行&#…...

阿里云PAI大模型评测最佳实践
作者:施晨、之用、南茵、求伯、一耘、临在 背景信息 内容简介 在大模型时代,随着模型效果的显著提升,模型评测的重要性日益凸显。科学、高效的模型评测,不仅能帮助开发者有效地衡量和对比不同模型的性能,更能指导他…...

应用图扑 HT for Web 搭建拓扑关系图
拓扑结构在计算机网络设计和通信领域中非常重要,因为它描述了网络中的设备(即“点”)如何相互连接(即通过“线”)。这种结构不仅涉及物理布局,即物理拓扑,还可以涉及逻辑或虚拟的连接方式&#…...

Django Aggregation 使用指南
Django Aggregation 使用指南 在构建Django应用时,我们经常需要对数据库中的数据进行汇总或聚合操作。例如,计算某个字段的平均值、最大值或最小值。这篇文章将详细介绍如何在Django中使用聚合查询,并结合实例进行说明。 聚合查询简介 Dja…...

嵌入式学习——Linux操作系统——文件编程练习
1.使用fread和fwrite方式完成任意普通文件的拷贝功能。 模拟 文件下载 #include <stdio.h>void do_copy(FILE *fp_s,FILE *fp_d) {char buf[100] {0};int ret;while (ret fread(buf,sizeof(char),sizeof(buf),fp_s))fwrite(buf,sizeof(char),ret,fp_d); }//./a.out sr…...

用JavaScript实现了一个简单的图像坐标点标注工具
这段代码实现了一个简单的图像标注工具,允许用户在加载的图像上进行点选标注,并且通过右键确认一个点序列来形成一个多边形。 标注效果如下 实现代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"U…...

Pytorch深度解析:Transformer嵌入层源码逐行解读
前言 本部分博客需要先阅读博客: 《Transformer实现以及Pytorch源码解读(一)-数据输入篇》 作为知识储备。 Embedding使用方式 如下面的代码中所示,embedding一般是先实例化nn.Embedding(vocab_size, embedding_dim)。实例化的…...

HSP_10章 Python面向对象编程oop_基础部分
文章目录 P107 类与实例的关系1.类与实例的关系示意图2.类与实例的代码分析 P109 对象形式和传参机制1. 类与对象的区别和联系2. 属性/成员变量3. 类的定义和使用4. 对象的传递机制 P110 对象的布尔值P111 成员方法1. 基本介绍2. 成员方法的定义和基本使用3.注意事项和使用细节…...

JavaWeb系列十七: jQuery选择器 上
jQuery选择器 jQuery基本选择器jquery层次选择器基础过滤选择器内容过滤选择器可见度过滤选择器 选择器是jQuery的核心, 在jQuery中, 对事件处理, 遍历 DOM和Ajax 操作都依赖于选择器jQuery选择器的优点 $(“#id”) 等价于 document.getElementById(“id”);$(“tagName”) 等价…...