【论文通读】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…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
