【论文通读】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…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
